CINXE.COM
Drawing 3D OpenGL Graphics on Google Maps | CodeGuru
<!doctype html > <!--[if IE 8]> <html class="ie8" lang="en"> <![endif]--> <!--[if IE 9]> <html class="ie9" lang="en"> <![endif]--> <!--[if gt IE 8]><!--> <html lang="en-US"> <!--<![endif]--> <head> <title>Drawing 3D OpenGL Graphics on Google Maps | CodeGuru</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="pingback" href="https://www.codeguru.com/wp/xmlrpc.php" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <link rel="icon" type="image/png" href="https://assets.codeguru.com/uploads/2021/08/CG_Favicon.png"> <!-- This site is optimized with the Yoast SEO plugin v23.8 - https://yoast.com/wordpress/plugins/seo/ --> <meta name="description" content="1. Introduction OpenGL 3D drawing on Google Maps is a concept of fetching a Google map on a separate window application (rather than on a browser) and" /> <link rel="canonical" href="https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Drawing 3D OpenGL Graphics on Google Maps | CodeGuru" /> <meta property="og:description" content="1. Introduction OpenGL 3D drawing on Google Maps is a concept of fetching a Google map on a separate window application (rather than on a browser) and" /> <meta property="og:url" content="https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/" /> <meta property="og:site_name" content="CodeGuru" /> <meta property="article:published_time" content="2016-05-18T07:15:00+00:00" /> <meta property="article:modified_time" content="2021-08-09T21:42:06+00:00" /> <meta property="og:image" content="https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg" /> <meta property="og:image:width" content="478" /> <meta property="og:image:height" content="359" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="author" content="Pravin Kumar Sinha" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:label1" content="Written by" /> <meta name="twitter:data1" content="Pravin Kumar Sinha" /> <meta name="twitter:label2" content="Est. reading time" /> <meta name="twitter:data2" content="4 minutes" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"Article","@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#article","isPartOf":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/"},"author":{"name":"Pravin Kumar Sinha","@id":"https://www.codeguru.com/#/schema/person/849e8f4a92e43d855ed744e385ef9f13"},"headline":"Drawing 3D OpenGL Graphics on Google Maps","datePublished":"2016-05-18T07:15:00+00:00","dateModified":"2021-08-09T21:42:06+00:00","mainEntityOfPage":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/"},"wordCount":793,"publisher":{"@id":"https://www.codeguru.com/#organization"},"image":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#primaryimage"},"thumbnailUrl":"https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg","keywords":["C++","graphics","Qt"],"articleSection":["Multimedia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/","url":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/","name":"Drawing 3D OpenGL Graphics on Google Maps | CodeGuru","isPartOf":{"@id":"https://www.codeguru.com/#website"},"primaryImageOfPage":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#primaryimage"},"image":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#primaryimage"},"thumbnailUrl":"https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg","datePublished":"2016-05-18T07:15:00+00:00","dateModified":"2021-08-09T21:42:06+00:00","description":"1. Introduction OpenGL 3D drawing on Google Maps is a concept of fetching a Google map on a separate window application (rather than on a browser) and","breadcrumb":{"@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#primaryimage","url":"https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg","contentUrl":"https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg","width":478,"height":359},{"@type":"BreadcrumbList","@id":"https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.codeguru.com/"},{"@type":"ListItem","position":2,"name":"Drawing 3D OpenGL Graphics on Google Maps"}]},{"@type":"WebSite","@id":"https://www.codeguru.com/#website","url":"https://www.codeguru.com/","name":"CodeGuru","description":"","publisher":{"@id":"https://www.codeguru.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.codeguru.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.codeguru.com/#organization","name":"Code Guru","url":"https://www.codeguru.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.codeguru.com/#/schema/logo/image/","url":"https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy.png","contentUrl":"https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy.png","width":2267,"height":339,"caption":"Code Guru"},"image":{"@id":"https://www.codeguru.com/#/schema/logo/image/"}},{"@type":"Person","@id":"https://www.codeguru.com/#/schema/person/849e8f4a92e43d855ed744e385ef9f13","name":"Pravin Kumar Sinha","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.codeguru.com/#/schema/person/image/","url":"https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=96&d=mm&r=g","contentUrl":"https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=96&d=mm&r=g","caption":"Pravin Kumar Sinha"},"url":"https://www.codeguru.com/author/pravin-kumar-sinha/"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//www.codeguru.com' /> <link rel='dns-prefetch' href='//assets.codeguru.com' /> <link rel="alternate" type="application/rss+xml" title="CodeGuru » Feed" href="https://www.codeguru.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="CodeGuru » Comments Feed" href="https://www.codeguru.com/comments/feed/" /> <!-- codeguru.com is managing ads with Advanced Ads 1.55.0 --><script data-src="data:text/javascript;base64,CgkJCXdpbmRvdy5hZHZhbmNlZF9hZHNfcmVhZHk9ZnVuY3Rpb24oZSxhKXthPWF8fCJjb21wbGV0ZSI7dmFyIGQ9ZnVuY3Rpb24oZSl7cmV0dXJuImludGVyYWN0aXZlIj09PWE/ImxvYWRpbmciIT09ZToiY29tcGxldGUiPT09ZX07ZChkb2N1bWVudC5yZWFkeVN0YXRlKT9lKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIsKGZ1bmN0aW9uKGEpe2QoYS50YXJnZXQucmVhZHlTdGF0ZSkmJmUoKX0pLHtvbmNlOiJpbnRlcmFjdGl2ZSI9PT1hfSl9LHdpbmRvdy5hZHZhbmNlZF9hZHNfcmVhZHlfcXVldWU9d2luZG93LmFkdmFuY2VkX2Fkc19yZWFkeV9xdWV1ZXx8W107CQk=" data-type="lazy" id="wp-ads-ready"></script> <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='wp-block-library' href='https://www.codeguru.com/wp/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='wp-block-library' href='https://www.codeguru.com/wp/wp-includes/css/dist/block-library/style.min.css?ver=6.6.2' type='text/css' media='all'></noscript><style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 11px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 32px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--regular: 15px;--wp--preset--font-size--larger: 50px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='taxopress-frontend-css' href='https://www.codeguru.com/wp-content/plugins/simple-tags/assets/frontend/css/frontend.css?ver=3.27.0' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='taxopress-frontend-css' href='https://www.codeguru.com/wp-content/plugins/simple-tags/assets/frontend/css/frontend.css?ver=3.27.0' type='text/css' media='all'></noscript><link rel='stylesheet' id='parent-style-css' href='https://www.codeguru.com/wp-content/themes/newspaper/style.css?ver=1730988897' type='text/css' media='all' /> <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='td-plugin-multi-purpose' href='https://www.codeguru.com/wp-content/plugins/td-composer/td-multi-purpose/style.css?ver=def8edc4e13d95bdf49953a9dce2f608' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='td-plugin-multi-purpose' href='https://www.codeguru.com/wp-content/plugins/td-composer/td-multi-purpose/style.css?ver=def8edc4e13d95bdf49953a9dce2f608' type='text/css' media='all'></noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='font_awesome' href='https://www.codeguru.com/wp-content/plugins/td-composer/assets/fonts/font-awesome/font-awesome.css?ver=def8edc4e13d95bdf49953a9dce2f608' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='font_awesome' href='https://www.codeguru.com/wp-content/plugins/td-composer/assets/fonts/font-awesome/font-awesome.css?ver=def8edc4e13d95bdf49953a9dce2f608' type='text/css' media='all'></noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='td-theme' href='https://www.codeguru.com/wp-content/themes/Newspaper-child-codeguru/style.css?ver=1730988887' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='td-theme' href='https://www.codeguru.com/wp-content/themes/Newspaper-child-codeguru/style.css?ver=1730988887' type='text/css' media='all'></noscript><style id='td-theme-inline-css' type='text/css'>@media (max-width:767px){.td-header-desktop-wrap{display:none}}@media (min-width:767px){.td-header-mobile-wrap{display:none}}</style> <link rel='stylesheet' id='td-legacy-framework-front-style-css' href='https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/css/td_legacy_main.css?ver=def8edc4e13d95bdf49953a9dce2f608' type='text/css' media='all' /> <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='td-standard-pack-framework-front-style' href='https://www.codeguru.com/wp-content/plugins/td-standard-pack/Newspaper/assets/css/td_standard_pack_main.css?ver=1b3d5bf2c64738aa07b4643e31257da9' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='td-standard-pack-framework-front-style' href='https://www.codeguru.com/wp-content/plugins/td-standard-pack/Newspaper/assets/css/td_standard_pack_main.css?ver=1b3d5bf2c64738aa07b4643e31257da9' type='text/css' media='all'></noscript><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='tdb_style_cloud_templates_front' href='https://www.codeguru.com/wp-content/plugins/td-cloud-library/assets/css/tdb_main.css?ver=b33652f2535d2f3812f59e306e26300d' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='tdb_style_cloud_templates_front' href='https://www.codeguru.com/wp-content/plugins/td-cloud-library/assets/css/tdb_main.css?ver=b33652f2535d2f3812f59e306e26300d' type='text/css' media='all'></noscript><script type="text/javascript" src="https://www.codeguru.com/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/simple-tags/assets/frontend/js/frontend.js?ver=3.27.0" data-type="lazy" type="text/javascript" id="taxopress-frontend-js-js"></script> <link rel="https://api.w.org/" href="https://www.codeguru.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.codeguru.com/wp-json/wp/v2/posts/14524" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.codeguru.com/wp/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.6.2" /> <link rel='shortlink' href='https://www.codeguru.com/?p=14524' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.codeguru.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.codeguru.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F&format=xml" /> <!-- Google Tag Manager --> <script type="text/javascript"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NR3XXWX8'); </script> <!-- End Google Tag Manager --> <script data-src="data:text/javascript;base64,CgkJdmFyIGFkdmFkc0NmcFF1ZXVlID0gW107CgkJdmFyIGFkdmFkc0NmcEFkID0gZnVuY3Rpb24oIGFkSUQgKXsKCQkJaWYgKCAndW5kZWZpbmVkJyA9PSB0eXBlb2YgYWR2YWRzUHJvQ2ZwICkgeyBhZHZhZHNDZnBRdWV1ZS5wdXNoKCBhZElEICkgfSBlbHNlIHsgYWR2YWRzUHJvQ2ZwLmFkZEVsZW1lbnQoIGFkSUQgKSB9CgkJfTsKCQk=" data-type="lazy" type="text/javascript"></script> <script> window.tdb_global_vars = {"wpRestUrl":"https:\/\/www.codeguru.com\/wp-json\/","permalinkStructure":"\/%category%\/%postname%\/"}; window.tdb_p_autoload_vars = {"isAjax":false,"isAdminBarShowing":false,"autoloadStatus":"off","origPostEditUrl":null}; </script> <style id="tdb-global-colors">:root{--accent-color:#fff}</style> <!-- JS generated by theme --> <script type="text/javascript" id="td-generated-header-js"> var tdBlocksArray = []; //here we store all the items for the current page // td_block class - each ajax block uses a object of this class for requests function tdBlock() { this.id = ''; this.block_type = 1; //block type id (1-234 etc) this.atts = ''; this.td_column_number = ''; this.td_current_page = 1; // this.post_count = 0; //from wp this.found_posts = 0; //from wp this.max_num_pages = 0; //from wp this.td_filter_value = ''; //current live filter value this.is_ajax_running = false; this.td_user_action = ''; // load more or infinite loader (used by the animation) this.header_color = ''; this.ajax_pagination_infinite_stop = ''; //show load more at page x } // td_js_generator - mini detector ( function () { var htmlTag = document.getElementsByTagName("html")[0]; if ( navigator.userAgent.indexOf("MSIE 10.0") > -1 ) { htmlTag.className += ' ie10'; } if ( !!navigator.userAgent.match(/Trident.*rv\:11\./) ) { htmlTag.className += ' ie11'; } if ( navigator.userAgent.indexOf("Edge") > -1 ) { htmlTag.className += ' ieEdge'; } if ( /(iPad|iPhone|iPod)/g.test(navigator.userAgent) ) { htmlTag.className += ' td-md-is-ios'; } var user_agent = navigator.userAgent.toLowerCase(); if ( user_agent.indexOf("android") > -1 ) { htmlTag.className += ' td-md-is-android'; } if ( -1 !== navigator.userAgent.indexOf('Mac OS X') ) { htmlTag.className += ' td-md-is-os-x'; } if ( /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) ) { htmlTag.className += ' td-md-is-chrome'; } if ( -1 !== navigator.userAgent.indexOf('Firefox') ) { htmlTag.className += ' td-md-is-firefox'; } if ( -1 !== navigator.userAgent.indexOf('Safari') && -1 === navigator.userAgent.indexOf('Chrome') ) { htmlTag.className += ' td-md-is-safari'; } if( -1 !== navigator.userAgent.indexOf('IEMobile') ){ htmlTag.className += ' td-md-is-iemobile'; } })(); var tdLocalCache = {}; ( function () { "use strict"; tdLocalCache = { data: {}, remove: function (resource_id) { delete tdLocalCache.data[resource_id]; }, exist: function (resource_id) { return tdLocalCache.data.hasOwnProperty(resource_id) && tdLocalCache.data[resource_id] !== null; }, get: function (resource_id) { return tdLocalCache.data[resource_id]; }, set: function (resource_id, cachedData) { tdLocalCache.remove(resource_id); tdLocalCache.data[resource_id] = cachedData; } }; })(); var td_viewport_interval_list=[{"limitBottom":767,"sidebarWidth":228},{"limitBottom":1018,"sidebarWidth":300},{"limitBottom":1140,"sidebarWidth":324}]; var tdc_is_installed="yes"; var td_ajax_url="https:\/\/www.codeguru.com\/wp\/wp-admin\/admin-ajax.php?td_theme_name=Newspaper&v=12.6.8"; var td_get_template_directory_uri="https:\/\/www.codeguru.com\/wp-content\/plugins\/td-composer\/legacy\/common"; var tds_snap_menu=""; var tds_logo_on_sticky=""; var tds_header_style=""; var td_please_wait="Please wait..."; var td_email_user_pass_incorrect="User or password incorrect!"; var td_email_user_incorrect="Email or username incorrect!"; var td_email_incorrect="Email incorrect!"; var td_user_incorrect="Username incorrect!"; var td_email_user_empty="Email or username empty!"; var td_pass_empty="Pass empty!"; var td_pass_pattern_incorrect="Invalid Pass Pattern!"; var td_retype_pass_incorrect="Retyped Pass incorrect!"; var tds_more_articles_on_post_enable=""; var tds_more_articles_on_post_time_to_wait=""; var tds_more_articles_on_post_pages_distance_from_top=0; var tds_captcha=""; var tds_theme_color_site_wide="#238fee"; var tds_smart_sidebar=""; var tdThemeName="Newspaper"; var tdThemeNameWl="Newspaper"; var td_magnific_popup_translation_tPrev="Previous (Left arrow key)"; var td_magnific_popup_translation_tNext="Next (Right arrow key)"; var td_magnific_popup_translation_tCounter="%curr% of %total%"; var td_magnific_popup_translation_ajax_tError="The content from %url% could not be loaded."; var td_magnific_popup_translation_image_tError="The image #%curr% could not be loaded."; var tdBlockNonce="4d336fd651"; var tdMobileMenu="enabled"; var tdMobileSearch="enabled"; var tdDateNamesI18n={"month_names":["January","February","March","April","May","June","July","August","September","October","November","December"],"month_names_short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"day_names_short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}; var tdb_modal_confirm="Save"; var tdb_modal_cancel="Cancel"; var tdb_modal_confirm_alt="Yes"; var tdb_modal_cancel_alt="No"; var td_deploy_mode="deploy"; var td_ad_background_click_link=""; var td_ad_background_click_target=""; </script> <!-- Header style compiled by theme --> <style>.td-page-content .widgettitle{color:#fff}.td-mobile-content .td-mobile-main-menu>li>a{font-family:brother-xl}.td-mobile-content .sub-menu a{font-family:brother-xl}#td-mobile-nav,#td-mobile-nav .wpb_button,.td-search-wrap-mob{font-family:brother-xl}.td-page-title,.td-category-title-holder .td-page-title{font-family:brother-xl}.td-page-content p,.td-page-content li,.td-page-content .td_block_text_with_title,.wpb_text_column p{font-family:brother-xl}.td-page-content h1,.wpb_text_column h1{font-family:brother-xl}.td-page-content h2,.wpb_text_column h2{font-family:brother-xl}.td-page-content h3,.wpb_text_column h3{font-family:brother-xl}.td-page-content h4,.wpb_text_column h4{font-family:brother-xl}.td-page-content h5,.wpb_text_column h5{font-family:brother-xl}.td-page-content h6,.wpb_text_column h6{font-family:brother-xl}body,p{font-family:brother-xl}.white-popup-block,.white-popup-block .wpb_button{font-family:brother-xl}:root{--td_theme_color:#238fee;--td_slider_text:rgba(35,143,238,0.7);--td_text_header_color:#151948;--td_mobile_menu_color:#080a19;--td_mobile_gradient_one_mob:#238fee;--td_mobile_gradient_two_mob:#26bde9;--td_mobile_text_active_color:#151948;--td_mobile_button_color_mob:#ffffff;--td_page_title_color:#7e90a9;--td_page_content_color:#122c56;--td_page_h_color:#7e90a9}.td-header-style-12 .td-header-menu-wrap-full,.td-header-style-12 .td-affix,.td-grid-style-1.td-hover-1 .td-big-grid-post:hover .td-post-category,.td-grid-style-5.td-hover-1 .td-big-grid-post:hover .td-post-category,.td_category_template_3 .td-current-sub-category,.td_category_template_8 .td-category-header .td-category a.td-current-sub-category,.td_category_template_4 .td-category-siblings .td-category a:hover,.td_block_big_grid_9.td-grid-style-1 .td-post-category,.td_block_big_grid_9.td-grid-style-5 .td-post-category,.td-grid-style-6.td-hover-1 .td-module-thumb:after,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-menu-item>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>li>a:hover,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.sfHover>a{background-color:#238fee}.td_mega_menu_sub_cats .cur-sub-cat,.td-mega-span h3 a:hover,.td_mod_mega_menu:hover .entry-title a,.header-search-wrap .result-msg a:hover,.td-header-top-menu .td-drop-down-search .td_module_wrap:hover .entry-title a,.td-header-top-menu .td-icon-search:hover,.td-header-wrap .result-msg a:hover,.top-header-menu li a:hover,.top-header-menu .current-menu-item>a,.top-header-menu .current-menu-ancestor>a,.top-header-menu .current-category-ancestor>a,.td-social-icon-wrap>a:hover,.td-header-sp-top-widget .td-social-icon-wrap a:hover,.td_mod_related_posts:hover h3>a,.td-post-template-11 .td-related-title .td-related-left:hover,.td-post-template-11 .td-related-title .td-related-right:hover,.td-post-template-11 .td-related-title .td-cur-simple-item,.td-post-template-11 .td_block_related_posts .td-next-prev-wrap a:hover,.td-category-header .td-pulldown-category-filter-link:hover,.td-category-siblings .td-subcat-dropdown a:hover,.td-category-siblings .td-subcat-dropdown a.td-current-sub-category,.footer-text-wrap .footer-email-wrap a,.footer-social-wrap a:hover,.td_module_17 .td-read-more a:hover,.td_module_18 .td-read-more a:hover,.td_module_19 .td-post-author-name a:hover,.td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more span,.td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more i,.td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more span,.td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more i,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-menu-item>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.sfHover>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>li>a:hover{color:#238fee}.td-mega-menu-page .wpb_content_element ul li a:hover,.td-theme-wrap .td-aj-search-results .td_module_wrap:hover .entry-title a,.td-theme-wrap .header-search-wrap .result-msg a:hover{color:#238fee!important}.td_category_template_8 .td-category-header .td-category a.td-current-sub-category,.td_category_template_4 .td-category-siblings .td-category a:hover,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-menu-item>a,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style4 .tdm-header .sf-menu>li>a:hover,.tdm-menu-active-style4 .tdm-header .sf-menu>.sfHover>a{border-color:#238fee}.td-theme-wrap .td-mega-span h3 a{color:#080a19}.td-theme-wrap .td_mega_menu_sub_cats a{color:#080a19}.td-theme-wrap .td_mod_mega_menu:hover .entry-title a,.td-theme-wrap .sf-menu .td_mega_menu_sub_cats .cur-sub-cat{color:#238fee}.td-theme-wrap .sf-menu .td-mega-menu .td-post-category:hover,.td-theme-wrap .td-mega-menu .td-next-prev-wrap a:hover{background-color:#238fee}.td-theme-wrap .td-mega-menu .td-next-prev-wrap a:hover{border-color:#238fee}.td-theme-wrap .td-aj-search-results .td-module-title a,.td-theme-wrap #td-header-search,.td-theme-wrap .header-search-wrap .result-msg a{color:#080a19}.td-theme-wrap .header-search-wrap .td-drop-down-search .btn{background-color:#080a19}.td-theme-wrap .header-search-wrap .td-drop-down-search .btn:hover,.td-theme-wrap .td-aj-search-results .td_module_wrap:hover .entry-title a,.td-theme-wrap .header-search-wrap .result-msg a:hover{color:#238fee!important}.td-page-content .widgettitle{color:#fff}.td-mobile-content .td-mobile-main-menu>li>a{font-family:brother-xl}.td-mobile-content .sub-menu a{font-family:brother-xl}#td-mobile-nav,#td-mobile-nav .wpb_button,.td-search-wrap-mob{font-family:brother-xl}.td-page-title,.td-category-title-holder .td-page-title{font-family:brother-xl}.td-page-content p,.td-page-content li,.td-page-content .td_block_text_with_title,.wpb_text_column p{font-family:brother-xl}.td-page-content h1,.wpb_text_column h1{font-family:brother-xl}.td-page-content h2,.wpb_text_column h2{font-family:brother-xl}.td-page-content h3,.wpb_text_column h3{font-family:brother-xl}.td-page-content h4,.wpb_text_column h4{font-family:brother-xl}.td-page-content h5,.wpb_text_column h5{font-family:brother-xl}.td-page-content h6,.wpb_text_column h6{font-family:brother-xl}body,p{font-family:brother-xl}.white-popup-block,.white-popup-block .wpb_button{font-family:brother-xl}:root{--td_theme_color:#238fee;--td_slider_text:rgba(35,143,238,0.7);--td_text_header_color:#151948;--td_mobile_menu_color:#080a19;--td_mobile_gradient_one_mob:#238fee;--td_mobile_gradient_two_mob:#26bde9;--td_mobile_text_active_color:#151948;--td_mobile_button_color_mob:#ffffff;--td_page_title_color:#7e90a9;--td_page_content_color:#122c56;--td_page_h_color:#7e90a9}.td-header-style-12 .td-header-menu-wrap-full,.td-header-style-12 .td-affix,.td-grid-style-1.td-hover-1 .td-big-grid-post:hover .td-post-category,.td-grid-style-5.td-hover-1 .td-big-grid-post:hover .td-post-category,.td_category_template_3 .td-current-sub-category,.td_category_template_8 .td-category-header .td-category a.td-current-sub-category,.td_category_template_4 .td-category-siblings .td-category a:hover,.td_block_big_grid_9.td-grid-style-1 .td-post-category,.td_block_big_grid_9.td-grid-style-5 .td-post-category,.td-grid-style-6.td-hover-1 .td-module-thumb:after,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-menu-item>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>li>a:hover,.tdm-menu-active-style5 .td-header-menu-wrap .sf-menu>.sfHover>a{background-color:#238fee}.td_mega_menu_sub_cats .cur-sub-cat,.td-mega-span h3 a:hover,.td_mod_mega_menu:hover .entry-title a,.header-search-wrap .result-msg a:hover,.td-header-top-menu .td-drop-down-search .td_module_wrap:hover .entry-title a,.td-header-top-menu .td-icon-search:hover,.td-header-wrap .result-msg a:hover,.top-header-menu li a:hover,.top-header-menu .current-menu-item>a,.top-header-menu .current-menu-ancestor>a,.top-header-menu .current-category-ancestor>a,.td-social-icon-wrap>a:hover,.td-header-sp-top-widget .td-social-icon-wrap a:hover,.td_mod_related_posts:hover h3>a,.td-post-template-11 .td-related-title .td-related-left:hover,.td-post-template-11 .td-related-title .td-related-right:hover,.td-post-template-11 .td-related-title .td-cur-simple-item,.td-post-template-11 .td_block_related_posts .td-next-prev-wrap a:hover,.td-category-header .td-pulldown-category-filter-link:hover,.td-category-siblings .td-subcat-dropdown a:hover,.td-category-siblings .td-subcat-dropdown a.td-current-sub-category,.footer-text-wrap .footer-email-wrap a,.footer-social-wrap a:hover,.td_module_17 .td-read-more a:hover,.td_module_18 .td-read-more a:hover,.td_module_19 .td-post-author-name a:hover,.td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more span,.td-pulldown-syle-2 .td-subcat-dropdown:hover .td-subcat-more i,.td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more span,.td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more i,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.current-menu-item>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>.sfHover>a,.tdm-menu-active-style3 .tdm-header.td-header-wrap .sf-menu>li>a:hover{color:#238fee}.td-mega-menu-page .wpb_content_element ul li a:hover,.td-theme-wrap .td-aj-search-results .td_module_wrap:hover .entry-title a,.td-theme-wrap .header-search-wrap .result-msg a:hover{color:#238fee!important}.td_category_template_8 .td-category-header .td-category a.td-current-sub-category,.td_category_template_4 .td-category-siblings .td-category a:hover,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-menu-item>a,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-menu-ancestor>a,.tdm-menu-active-style4 .tdm-header .sf-menu>.current-category-ancestor>a,.tdm-menu-active-style4 .tdm-header .sf-menu>li>a:hover,.tdm-menu-active-style4 .tdm-header .sf-menu>.sfHover>a{border-color:#238fee}.td-theme-wrap .td-mega-span h3 a{color:#080a19}.td-theme-wrap .td_mega_menu_sub_cats a{color:#080a19}.td-theme-wrap .td_mod_mega_menu:hover .entry-title a,.td-theme-wrap .sf-menu .td_mega_menu_sub_cats .cur-sub-cat{color:#238fee}.td-theme-wrap .sf-menu .td-mega-menu .td-post-category:hover,.td-theme-wrap .td-mega-menu .td-next-prev-wrap a:hover{background-color:#238fee}.td-theme-wrap .td-mega-menu .td-next-prev-wrap a:hover{border-color:#238fee}.td-theme-wrap .td-aj-search-results .td-module-title a,.td-theme-wrap #td-header-search,.td-theme-wrap .header-search-wrap .result-msg a{color:#080a19}.td-theme-wrap .header-search-wrap .td-drop-down-search .btn{background-color:#080a19}.td-theme-wrap .header-search-wrap .td-drop-down-search .btn:hover,.td-theme-wrap .td-aj-search-results .td_module_wrap:hover .entry-title a,.td-theme-wrap .header-search-wrap .result-msg a:hover{color:#238fee!important}</style> <link rel="preload" href="https://securepubads.g.doubleclick.net/tag/js/gpt.js" as="script"> <script nowprocket async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <!-- Start: Data Layer --> <script nowprocket> window.dataLayer = window.dataLayer || []; dataLayer.push({"event":"CMS_Data","topic":"multimedia","kw":["c","graphics","qt"],"taxonomy":["audience purchase stage awareness","product development programming languages c cplusplus visualc","product development client side","audience purchase stage evaluation","audience purchase stage implementation"],"category":"multimedia","keywords":["c","graphics","qt"]}); </script> <!-- End: Data Layer--> <!-- Start: GAM Head Tag --> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; // VID const vid = fetch('https://link.technologyadvice.com/_me', { cache: "force-cache" }) .then(res => res.json()) .then(data => window.googletag.cmd.push(() => { window.googletag.pubads() .setTargeting('visitor_id', data.vid) .setTargeting('user_agent', data.user_agent); ([ ['is_datacenter', ['is-datacenter']], ['is_suspected_bot', ["suspected-bad-bot", "bad-bot"]], ['is_ta_user', ["is-ta-user"]], ['is_crawler', ["user-agent-blocked"]], ['is_ad_blocked', ["is-ad-blocked"]], ]) .filter(([tag, flags]) => data.tags?.includes(tag)) .reduce((acc, [_, flags]) => [...acc, ...flags], []) .forEach(flag => window.googletag.pubads().setTargeting(`site.${flag}`, 'true')); })) .catch(err => console.error(err)); // 6Sense const sense6 = fetch("https://epsilon.6sense.com/v3/company/details", { cache: "force-cache", headers: { 'Authorization': 'Token d20a1b0e892442270cbc4cb6801c0160d28af04c' } }) .then(res => res.json()) .then(data => window.googletag.cmd.push(() => { if (data.segments?.ids?.length) { window.googletag.pubads() .setTargeting('segment_ids_6si', data.segments.ids.map(String)); } })) .catch(err => console.error(err)); window.googletag.cmd.push(() => { window.googletag.pubads() .addEventListener("slotResponseReceived", async (event) => { if (!event.slot.getResponseInformation()) { window.requestAnimationFrame(() => { const id = event.slot.getSlotElementId(); if (!id) return; const slot = document.getElementById(id); if (!slot) return; // unset sizing on slots if no ads are available for assignment slot.style.setProperty('height', 'unset'); slot.style.setProperty('width', 'unset'); }) } }); const env = 'prod' const ptype = 'article'; const keywords = ["c","graphics","qt"]; const taxonomies = ["audience purchase stage awareness","product development programming languages c cplusplus visualc","product development client side","audience purchase stage evaluation","audience purchase stage implementation"]; const categories = ["multimedia"]; const path = window.location.pathname; const url = window.location.hostname + path; const content_id = path.split('/').filter(v => !!v).pop() ?? ''; const campaign = (new URL(window.location)).searchParams.get("adTargeting_campaign") ?? ''; const cookies = Object.fromEntries(document.cookie.split('; ').map(c => c.split('=', 2))) const pvKey = 'userIP3.133.61.52'; const pvValue = Number(cookies[pvKey] ?? '0') + 1; document.cookie = `${pvKey}=${pvValue}; path=/; expires=` + (new Date(new Date().getTime() + (60 * 60 * 24 * 400)).toUTCString()); window.googletag.pubads() .setTargeting("env", env) .setTargeting("url", url) .setTargeting("hostname", window.location.hostname) .setTargeting("kw", keywords) .setTargeting("tax", taxonomies) .setTargeting("topic", categories.join(' ')) .setTargeting("path", path.split('/').filter(v => !!v)) .setTargeting("pv", `${pvValue}`) .setTargeting("ptype", ptype) .setTargeting("campaign", campaign) .setTargeting("cid", content_id) .setTargeting('lazyload', 'true'); window.googletag.pubads().enableSingleRequest(); window.googletag.pubads().enableLazyLoad({ fetchMarginPercent: 300, // when to fetch the ad? renderMarginPercent: 150, // when to render the ad mobileScaling: 2.0 // config for mobile }); }) window.googletag.cmd.push(() => { window.googletag.enableServices() }); </script><!-- Start: GAM Ad Slot Definitions | Codeguru Multimedia --> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.ta = window.ta || { gam: { ready: false, tags: {} } }; googletag.cmd.push(function() { // Define Ad Slot Configurations // Inline Top window.ta.gam.tags.inlinetop = { id: 'inline-top', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.inlinetop.slot = googletag.defineSlot( '/5055/B2B/DEV/codeguru/multimedia/inline-top', [ [300, 50], [320, 50], [728, 90], [970, 90], [970, 250], [1000, 90] ], 'inline-top' ).defineSizeMapping( googletag.sizeMapping() // Desktop .addSize([1240, 650], [ [728, 90], [970, 90], [970, 250], [1000, 90] ]) // Tablet .addSize([768, 321], [ [728, 90] ]) // Mobile .addSize([0, 0], [ [300, 50], [320, 50] ]) .build() ) .addService(googletag.pubads()) .setTargeting('pos', 'top') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Sticky Rail window.ta.gam.tags.stickyrail = { id: 'sticky-rail', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.stickyrail.slot = googletag.defineSlot( '/5055/B2B/DEV/codeguru/multimedia/sticky-rail', [ [300, 50], [320, 50], [300, 250], [300, 600], [160, 600] ], 'sticky-rail' ).defineSizeMapping( googletag.sizeMapping() // Desktop .addSize([1240, 650], [ [300, 250], [300, 600], [160, 600] ]) // Tablet .addSize([768, 650], [ [300, 250], [300, 600], [160, 600] ]) // Mobile .addSize([0, 0], [ [300, 50], [320, 50], [300, 250] ]) .build() ) .addService(googletag.pubads()) .setTargeting('pos', 'top') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Sticky Bottom window.ta.gam.tags.stickybottom = { id: 'sticky-bottom', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.stickybottom.slot = googletag.defineSlot( '/5055/B2B/DEV/codeguru/multimedia/sticky-bottom', [ [300, 50], [320, 50], [728, 90], [970, 90], [1000, 90] ], 'sticky-bottom' ).defineSizeMapping( googletag.sizeMapping() // Desktop .addSize([1240, 650], [ [728, 90], [970, 90], [1000, 90] ]) // Tablet .addSize([768, 321], [ [728, 90] ]) // Mobile .addSize([0, 0], [ [300, 50], [320, 50] ]) .build() ) .addService(googletag.pubads()) .setTargeting('pos', 'sticky') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); var nativeSiteName = 'codeguru'; var nativeCategory = 'multimedia'; // Native Study Guide window.ta.gam.tags.nativestudyguide = { id: 'native-study-guide', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.nativestudyguide.slot = googletag.defineSlot( '/5055/B2B/DEV/' + nativeSiteName + '/' + nativeCategory + '/native-study-guide', ['fluid'], 'native-study-guide').defineSizeMapping( googletag.sizeMapping() .build()) .addService(googletag.pubads()) .setTargeting('pos', 'native-study-guide') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Native Study Guide window.ta.gam.tags.nativebiggrid = { id: 'native-big-grid', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.nativebiggrid.slot = googletag.defineSlot( '/5055/B2B/DEV/' + nativeSiteName + '/' + nativeCategory + '/native-big-grid', ['fluid'], 'native-big-grid').defineSizeMapping( googletag.sizeMapping() .build()) .addService(googletag.pubads()) .setTargeting('pos', 'native-big-grid') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Native RR Article window.ta.gam.tags.nativerrarticle = { id: 'native-rr-article', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.nativerrarticle.slot = googletag.defineSlot( '/5055/B2B/DEV/' + nativeSiteName + '/' + nativeCategory + '/native-rr-article', ['fluid'], 'native-rr-article').defineSizeMapping( googletag.sizeMapping() .build()) .addService(googletag.pubads()) .setTargeting('pos', 'native-rr-article') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Native Main Well window.ta.gam.tags.nativemainwell = { id: 'native-main-well', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.nativemainwell.slot = googletag.defineSlot( '/5055/B2B/DEV/' + nativeSiteName + '/' + nativeCategory + '/native-main-well', ['fluid'], 'native-main-well').defineSizeMapping( googletag.sizeMapping() .build()) .addService(googletag.pubads()) .setTargeting('pos', 'native-main-well') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); // Native BOAP window.ta.gam.tags.nativeboap = { id: 'native-boap', refreshable: false, refresh_delay: 5, pending_refresh: false, refreshed: false, max_refresh: 5, refresh_counter: 0, viewable: false, in_view: undefined, visibility: 0, view_percentage_threshold: 85 }; window.ta.gam.tags.nativeboap.slot = googletag.defineSlot( '/5055/B2B/DEV/' + nativeSiteName + '/' + nativeCategory + '/native-boap', ['fluid'], 'native-boap').defineSizeMapping( googletag.sizeMapping() .build()) .addService(googletag.pubads()) .setTargeting('pos', 'native-boap') .setTargeting('refreshable', 'false') .setTargeting('adrefreshed', 'false'); }); </script> <!-- End: GAM Ad Slot Definitions | Codeguru Multimedia --> <!-- Button style compiled by theme --> <style>.tdm-btn-style1{background-color:#238fee}.tdm-btn-style2:before{border-color:#238fee}.tdm-btn-style2{color:#238fee}.tdm-btn-style3{-webkit-box-shadow:0 2px 16px #238fee;-moz-box-shadow:0 2px 16px #238fee;box-shadow:0 2px 16px #238fee}.tdm-btn-style3:hover{-webkit-box-shadow:0 4px 26px #238fee;-moz-box-shadow:0 4px 26px #238fee;box-shadow:0 4px 26px #238fee}</style> <style id="tdw-css-placeholder"></style><noscript><style id="rocket-lazyload-nojs-css">.rll-youtube-player, [data-lazy-src]{display:none !important;}</style></noscript></head> <body class="post-template-default single single-post postid-14524 single-format-standard td-standard-pack drawing-3d-opengl-graphics-on-google-maps global-block-template-2 tdb_template_138 tdb-template tdc-header-template tdc-footer-template td-full-layout" itemscope="itemscope" itemtype="https://schema.org/WebPage"> <div class="td-scroll-up" data-style="style1"><i class="td-icon-menu-up"></i></div> <div class="td-menu-background" style="visibility:hidden"></div> <div id="td-mobile-nav" style="visibility:hidden"> <div class="td-mobile-container"> <!-- mobile menu top section --> <div class="td-menu-socials-wrap"> <!-- socials --> <div class="td-menu-socials"> </div> <!-- close button --> <div class="td-mobile-close"> <span><i class="td-icon-close-mobile"></i></span> </div> </div> <!-- login section --> <!-- menu section --> <div class="td-mobile-content"> <div class="menu-header-menu-container"><ul id="menu-header-menu-1" class="td-mobile-main-menu"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-first menu-item-18398"><a href="https://www.codeguru.com/news/">News</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-18391"><a href="https://www.codeguru.com/cplusplus/">C++<i class="td-icon-menu-right td-element-after"></i></a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18400"><a href="https://www.codeguru.com/soap/">SOAP</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-item-18396"><a href="https://www.codeguru.com/multimedia/">Multimedia</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18397"><a href="https://www.codeguru.com/network/">Network Programming</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18404"><a href="https://www.codeguru.com/windows/">Windows Programming</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18390"><a href="https://www.codeguru.com/csharp/">C#</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children menu-item-18387"><a href="https://www.codeguru.com/dotnet/">.NET<i class="td-icon-menu-right td-element-after"></i></a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18403"><a href="https://www.codeguru.com/visual-studio/">Visual Studio</a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18402"><a href="https://www.codeguru.com/visual-basic/">Visual Basic</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18394"><a href="https://www.codeguru.com/java/">Java</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18392"><a href="https://www.codeguru.com/database/">Database</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18388"><a href="https://www.codeguru.com/azure/">Azure</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18393"><a href="https://www.codeguru.com/iot/">IoT</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18395"><a href="https://www.codeguru.com/mobile/">Mobile</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18399"><a href="https://www.codeguru.com/research/">Research</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18401"><a href="https://www.codeguru.com/tools/">Tools</a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18389"><a href="https://www.codeguru.com/blog/">Blog</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18442"><a href="http://forums.codeguru.com">Forums</a></li> </ul></div> </div> </div> <!-- register/login section --> </div><div class="td-search-background" style="visibility:hidden"></div> <div class="td-search-wrap-mob" style="visibility:hidden"> <div class="td-drop-down-search"> <form method="get" class="td-search-form" action="https://www.codeguru.com/"> <!-- close button --> <div class="td-search-close"> <span><i class="td-icon-close-mobile"></i></span> </div> <div role="search" class="td-search-input"> <span>Search</span> <input id="td-header-search-mob" type="text" value="" name="s" autocomplete="off" /> </div> </form> <div id="td-aj-search-mob" class="td-ajax-search-flex"></div> </div> </div> <div id="td-outer-wrap" class="td-theme-wrap"> <div class="td-header-template-wrap" style="position: relative"> <div class="td-header-mobile-wrap "> <div id="tdi_1" class="tdc-zone"><div class="tdc_zone tdi_2 wpb_row td-pb-row tdc-element-style" > <style scoped>.tdi_2{min-height:0}.td-header-mobile-wrap{position:relative;width:100%}@media (max-width:767px){.tdi_2:before{content:'';display:block;width:100vw;height:100%;position:absolute;left:50%;transform:translateX(-50%);box-shadow:0px 6px 8px 0px rgba(0,0,0,0.08);z-index:20;pointer-events:none}@media (max-width:767px){.tdi_2:before{width:100%}}}@media (max-width:767px){.tdi_2{position:relative}}</style> <div class="tdi_1_rand_style td-element-style" ><style>@media (max-width:767px){.tdi_1_rand_style{background-color:#222222!important}}</style></div><div id="tdi_3" class="tdc-row"><div class="vc_row tdi_4 wpb_row td-pb-row tdc-element-style" > <style scoped>.tdi_4,.tdi_4 .tdc-columns{min-height:0}.tdi_4>.td-element-style:after{content:''!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;z-index:0!important;display:block!important;background-color:#080a19}.tdi_4,.tdi_4 .tdc-columns{display:block}.tdi_4 .tdc-columns{width:100%}.tdi_4:before,.tdi_4:after{display:table}@media (max-width:767px){@media (min-width:768px){.tdi_4{margin-left:-0px;margin-right:-0px}.tdi_4 .tdc-row-video-background-error,.tdi_4>.vc_column,.tdi_4>.tdc-columns>.vc_column{padding-left:0px;padding-right:0px}}}</style> <div class="tdi_3_rand_style td-element-style" ></div><div class="vc_column tdi_6 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_6{vertical-align:baseline}.tdi_6>.wpb_wrapper,.tdi_6>.wpb_wrapper>.tdc-elements{display:block}.tdi_6>.wpb_wrapper>.tdc-elements{width:100%}.tdi_6>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_6>.wpb_wrapper{width:auto;height:auto}@media (max-width:767px){.tdi_6{vertical-align:middle}}@media (max-width:767px){.tdi_6{width:20%!important;display:inline-block!important}}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_mobile_menu tdi_7 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_7" > <style>@media (max-width:767px){.tdi_7{margin-left:-13px!important}}</style> <style>.tdb-header-align{vertical-align:middle}.tdb_mobile_menu{margin-bottom:0;clear:none}.tdb_mobile_menu a{display:inline-block!important;position:relative;text-align:center;color:var(--td_theme_color,#4db2ec)}.tdb_mobile_menu a>span{display:flex;align-items:center;justify-content:center}.tdb_mobile_menu svg{height:auto}.tdb_mobile_menu svg,.tdb_mobile_menu svg *{fill:var(--td_theme_color,#4db2ec)}#tdc-live-iframe .tdb_mobile_menu a{pointer-events:none}.td-menu-mob-open-menu{overflow:hidden}.td-menu-mob-open-menu #td-outer-wrap{position:static}.tdi_7{display:inline-block}.tdi_7 .tdb-mobile-menu-button i{font-size:22px;width:55px;height:55px;line-height:55px}.tdi_7 .tdb-mobile-menu-button svg{width:22px}.tdi_7 .tdb-mobile-menu-button .tdb-mobile-menu-icon-svg{width:55px;height:55px}.tdi_7 .tdb-mobile-menu-button{color:#ffffff}.tdi_7 .tdb-mobile-menu-button svg,.tdi_7 .tdb-mobile-menu-button svg *{fill:#ffffff}@media (max-width:767px){.tdi_7 .tdb-mobile-menu-button i{font-size:27px;width:54px;height:54px;line-height:54px}.tdi_7 .tdb-mobile-menu-button svg{width:27px}.tdi_7 .tdb-mobile-menu-button .tdb-mobile-menu-icon-svg{width:54px;height:54px}}</style><div class="tdb-block-inner td-fix-index"><span class="tdb-mobile-menu-button"><i class="tdb-mobile-menu-icon td-icon-mobile"></i></span></div></div> <!-- ./block --></div></div><div class="vc_column tdi_9 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_9{vertical-align:baseline}.tdi_9>.wpb_wrapper,.tdi_9>.wpb_wrapper>.tdc-elements{display:block}.tdi_9>.wpb_wrapper>.tdc-elements{width:100%}.tdi_9>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_9>.wpb_wrapper{width:auto;height:auto}@media (max-width:767px){.tdi_9{vertical-align:middle}}@media (max-width:767px){.tdi_9{width:60%!important;display:inline-block!important}}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_logo tdi_10 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_10" > <style>.tdb_header_logo{margin-bottom:0;clear:none}.tdb_header_logo .tdb-logo-a,.tdb_header_logo h1{display:flex;pointer-events:auto;align-items:flex-start}.tdb_header_logo h1{margin:0;line-height:0}.tdb_header_logo .tdb-logo-img-wrap img{display:block}.tdb_header_logo .tdb-logo-svg-wrap+.tdb-logo-img-wrap{display:none}.tdb_header_logo .tdb-logo-svg-wrap svg{width:50px;display:block;transition:fill .3s ease}.tdb_header_logo .tdb-logo-text-wrap{display:flex}.tdb_header_logo .tdb-logo-text-title,.tdb_header_logo .tdb-logo-text-tagline{-webkit-transition:all 0.2s ease;transition:all 0.2s ease}.tdb_header_logo .tdb-logo-text-title{background-size:cover;background-position:center center;font-size:75px;font-family:serif;line-height:1.1;color:#222;white-space:nowrap}.tdb_header_logo .tdb-logo-text-tagline{margin-top:2px;font-size:12px;font-family:serif;letter-spacing:1.8px;line-height:1;color:#767676}.tdb_header_logo .tdb-logo-icon{position:relative;font-size:46px;color:#000}.tdb_header_logo .tdb-logo-icon-svg{line-height:0}.tdb_header_logo .tdb-logo-icon-svg svg{width:46px;height:auto}.tdb_header_logo .tdb-logo-icon-svg svg,.tdb_header_logo .tdb-logo-icon-svg svg *{fill:#000}.tdi_10 .tdb-logo-a,.tdi_10 h1{flex-direction:row;align-items:center;justify-content:center}.tdi_10 .tdb-logo-svg-wrap{display:block}.tdi_10 .tdb-logo-img-wrap{display:none}.tdi_10 .tdb-logo-text-tagline{margin-top:-3px;margin-left:0;display:block;font-family:Montserrat!important;}.tdi_10 .tdb-logo-text-title{display:block;color:#ffffff}.tdi_10 .tdb-logo-text-wrap{flex-direction:column;align-items:center}.tdi_10 .tdb-logo-icon{top:0px;display:block}@media (max-width:767px){.tdb_header_logo .tdb-logo-text-title{font-size:36px}}@media (max-width:767px){.tdb_header_logo .tdb-logo-text-tagline{font-size:11px}}@media (min-width:768px) and (max-width:1018px){.tdi_10 .tdb-logo-img{max-width:186px}.tdi_10 .tdb-logo-text-tagline{margin-top:-2px;margin-left:0}}@media (max-width:767px){.tdi_10 .tdb-logo-svg-wrap+.tdb-logo-img-wrap{display:none}.tdi_10 .tdb-logo-img-wrap{display:block}.tdi_10 .tdb-logo-text-title{font-family:Roboto!important;font-size:20px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:1px!important;}}</style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://www.codeguru.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201134%20181'%3E%3C/svg%3E" alt="Logo" title="" width="1134" height="181" data-lazy-src="https://assets.codeguru.com/uploads/2021/08/CG_MobileLogo_White.png" /><noscript><img class="tdb-logo-img" src="https://assets.codeguru.com/uploads/2021/08/CG_MobileLogo_White.png" alt="Logo" title="" width="1134" height="181" /></noscript></span></a></div></div> <!-- ./block --></div></div><div class="vc_column tdi_12 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_12{vertical-align:baseline}.tdi_12>.wpb_wrapper,.tdi_12>.wpb_wrapper>.tdc-elements{display:block}.tdi_12>.wpb_wrapper>.tdc-elements{width:100%}.tdi_12>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_12>.wpb_wrapper{width:auto;height:auto}@media (max-width:767px){.tdi_12{vertical-align:middle}}@media (max-width:767px){.tdi_12{width:20%!important;display:inline-block!important}}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_mobile_search tdi_13 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_13" > <style>@media (max-width:767px){.tdi_13{margin-right:-19px!important;margin-bottom:0px!important}}</style> <style>.tdb_mobile_search{margin-bottom:0;clear:none}.tdb_mobile_search a{display:inline-block!important;position:relative;text-align:center;color:var(--td_theme_color,#4db2ec)}.tdb_mobile_search a>span{display:flex;align-items:center;justify-content:center}.tdb_mobile_search svg{height:auto}.tdb_mobile_search svg,.tdb_mobile_search svg *{fill:var(--td_theme_color,#4db2ec)}#tdc-live-iframe .tdb_mobile_search a{pointer-events:none}.td-search-opened{overflow:hidden}.td-search-opened #td-outer-wrap{position:static}.td-search-opened .td-search-wrap-mob{position:fixed;height:calc(100% + 1px)}.td-search-opened .td-drop-down-search{height:calc(100% + 1px);overflow-y:scroll;overflow-x:hidden}.tdi_13{display:inline-block;float:right;clear:none}.tdi_13 .tdb-header-search-button-mob i{font-size:22px;width:55px;height:55px;line-height:55px}.tdi_13 .tdb-header-search-button-mob svg{width:22px}.tdi_13 .tdb-header-search-button-mob .tdb-mobile-search-icon-svg{width:55px;height:55px;display:flex;justify-content:center}.tdi_13 .tdb-header-search-button-mob{color:#ffffff}.tdi_13 .tdb-header-search-button-mob svg,.tdi_13 .tdb-header-search-button-mob svg *{fill:#ffffff}@media (max-width:767px){.tdi_13 .tdb-header-search-button-mob i{font-size:27px;width:54px;height:54px;line-height:54px}.tdi_13 .tdb-header-search-button-mob svg{width:27px}.tdi_13 .tdb-header-search-button-mob .tdb-mobile-search-icon-svg{width:54px;height:54px;display:flex;justify-content:center}}</style><div class="tdb-block-inner td-fix-index"><span class="tdb-header-search-button-mob dropdown-toggle" data-toggle="dropdown"><i class="tdb-mobile-search-icon td-icon-search"></i></span></div></div> <!-- ./block --></div></div></div></div></div></div> </div> <div class="td-header-desktop-wrap "> <div id="tdi_14" class="tdc-zone"><div class="tdc_zone tdi_15 wpb_row td-pb-row tdc-element-style" > <style scoped>.tdi_15{min-height:0}.td-header-desktop-wrap{position:relative}.tdi_15{position:relative}</style> <div class="tdi_14_rand_style td-element-style" ><style>.tdi_14_rand_style{background-color:#ffffff!important}</style></div><div id="tdi_16" class="tdc-row tdc-row-is-sticky tdc-rist-top stretch_row_1400 td-stretch-content"><div class="vc_row tdi_17 wpb_row td-pb-row tdc-element-style" > <style scoped>body .tdc-row.tdc-rist-top-active,body .tdc-row.tdc-rist-bottom-active{position:fixed;left:50%;transform:translateX(-50%);z-index:10000}body .tdc-row.tdc-rist-top-active.td-stretch-content,body .tdc-row.tdc-rist-bottom-active.td-stretch-content{width:100%!important}body .tdc-row.tdc-rist-top-active{top:0}body .tdc-row.tdc-rist-absolute{position:absolute}body .tdc-row.tdc-rist-bottom-active{bottom:0}.tdi_17,.tdi_17 .tdc-columns{min-height:0}.tdi_17>.td-element-style:after{content:''!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;z-index:0!important;display:block!important;background-color:#080a19!important}#tdi_16.tdc-rist-top-active .tdi_17:before,#tdi_16.tdc-rist-bottom-active .tdi_17:before{display:block;width:100vw;height:100%;position:absolute;left:50%;transform:translateX(-50%);box-shadow:0px 0px 6px .75px #3d3d3d;z-index:20;pointer-events:none;top:0}.tdi_17,.tdi_17 .tdc-columns{display:block}.tdi_17 .tdc-columns{width:100%}.tdi_17:before,.tdi_17:after{display:table}@media (min-width:767px){body.admin-bar .tdc-row.tdc-rist-top-active{top:32px}}@media (min-width:768px){.tdi_17{margin-left:-21px;margin-right:-21px}.tdi_17 .tdc-row-video-background-error,.tdi_17>.vc_column,.tdi_17>.tdc-columns>.vc_column{padding-left:21px;padding-right:21px}}@media (min-width:768px) and (max-width:1018px){@media (min-width:768px){.tdi_17{margin-left:-10px;margin-right:-10px}.tdi_17 .tdc-row-video-background-error,.tdi_17>.vc_column,.tdi_17>.tdc-columns>.vc_column{padding-left:10px;padding-right:10px}}}.tdi_17{padding-top:15px!important;padding-bottom:15px!important;z-index:100!important;position:relative}.tdi_17 .td_block_wrap{text-align:left}</style> <div class="tdi_16_rand_style td-element-style" ><style>.tdi_16_rand_style{background-color:#151948!important}</style></div><div class="vc_column tdi_19 wpb_column vc_column_container tdc-column td-pb-span12 td-is-sticky"> <style scoped>.tdi_19{vertical-align:baseline}.tdi_19>.wpb_wrapper,.tdi_19>.wpb_wrapper>.tdc-elements{display:block}.tdi_19>.wpb_wrapper>.tdc-elements{width:100%}.tdi_19>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_19>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" data-sticky-enabled-on="W3RydWUsdHJ1ZSx0cnVlLHRydWVd" data-sticky-offset="20" data-sticky-is-width-auto="W2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXQ=="><div class="td_block_wrap tdb_header_logo tdi_20 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_20" > <style>.tdi_20{margin-right:21px!important}</style> <style>.tdi_20{display:inline-block}.tdi_20 .tdb-logo-a,.tdi_20 h1{flex-direction:column;align-items:center}.tdi_20 .tdb-logo-svg-wrap{display:block}.tdi_20 .tdb-logo-svg-wrap+.tdb-logo-img-wrap{display:none}.tdi_20 .tdb-logo-img{max-width:280px}.tdi_20 .tdb-logo-text-tagline{margin-top:-3px;margin-left:0;display:block;font-family:Montserrat!important;}.tdi_20 .tdb-logo-text-title{display:block;color:#ffffff;font-family:Roboto!important;font-size:20px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:1px!important;}.tdi_20 .tdb-logo-text-wrap{flex-direction:column;align-items:center}.tdi_20 .tdb-logo-icon{top:0px;display:block}@media (min-width:768px) and (max-width:1018px){.tdi_20 .tdb-logo-img{max-width:186px}.tdi_20 .tdb-logo-text-tagline{margin-top:-2px;margin-left:0}}</style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://www.codeguru.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202267%20352'%3E%3C/svg%3E" alt="Logo" title="" width="2267" height="352" data-lazy-src="https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy-white-2.png" /><noscript><img class="tdb-logo-img" src="https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy-white-2.png" alt="Logo" title="" width="2267" height="352" /></noscript></span></a></div></div> <!-- ./block --><div class="td_block_wrap tdb_header_menu tdi_21 tds_menu_active3 tds_menu_sub_active1 tdb-head-menu-inline tdb-mm-align-screen td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_21" style=" z-index: 999;"> <style>.tdb_header_menu{margin-bottom:0;z-index:999;clear:none}.tdb_header_menu .tdb-main-sub-icon-fake,.tdb_header_menu .tdb-sub-icon-fake{display:none}.rtl .tdb_header_menu .tdb-menu{display:flex}.tdb_header_menu .tdb-menu{display:inline-block;vertical-align:middle;margin:0}.tdb_header_menu .tdb-menu .tdb-mega-menu-inactive,.tdb_header_menu .tdb-menu .tdb-menu-item-inactive{pointer-events:none}.tdb_header_menu .tdb-menu .tdb-mega-menu-inactive>ul,.tdb_header_menu .tdb-menu .tdb-menu-item-inactive>ul{visibility:hidden;opacity:0}.tdb_header_menu .tdb-menu .sub-menu{font-size:14px;position:absolute;top:-999em;background-color:#fff;z-index:99}.tdb_header_menu .tdb-menu .sub-menu>li{list-style-type:none;margin:0;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif)}.tdb_header_menu .tdb-menu>li{float:left;list-style-type:none;margin:0}.tdb_header_menu .tdb-menu>li>a{position:relative;display:inline-block;padding:0 14px;font-weight:700;font-size:14px;line-height:48px;vertical-align:middle;text-transform:uppercase;-webkit-backface-visibility:hidden;color:#000;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif)}.tdb_header_menu .tdb-menu>li>a:after{content:'';position:absolute;bottom:0;left:0;right:0;margin:0 auto;width:0;height:3px;background-color:var(--td_theme_color,#4db2ec);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:width 0.2s ease;transition:width 0.2s ease}.tdb_header_menu .tdb-menu>li>a>.tdb-menu-item-text{display:inline-block}.tdb_header_menu .tdb-menu>li>a .tdb-menu-item-text,.tdb_header_menu .tdb-menu>li>a span{vertical-align:middle;float:left}.tdb_header_menu .tdb-menu>li>a .tdb-sub-menu-icon{margin:0 0 0 7px}.tdb_header_menu .tdb-menu>li>a .tdb-sub-menu-icon-svg{float:none;line-height:0}.tdb_header_menu .tdb-menu>li>a .tdb-sub-menu-icon-svg svg{width:14px;height:auto}.tdb_header_menu .tdb-menu>li>a .tdb-sub-menu-icon-svg svg,.tdb_header_menu .tdb-menu>li>a .tdb-sub-menu-icon-svg svg *{fill:#000}.tdb_header_menu .tdb-menu>li.current-menu-item>a:after,.tdb_header_menu .tdb-menu>li.current-menu-ancestor>a:after,.tdb_header_menu .tdb-menu>li.current-category-ancestor>a:after,.tdb_header_menu .tdb-menu>li.current-page-ancestor>a:after,.tdb_header_menu .tdb-menu>li:hover>a:after,.tdb_header_menu .tdb-menu>li.tdb-hover>a:after{width:100%}.tdb_header_menu .tdb-menu>li:hover>ul,.tdb_header_menu .tdb-menu>li.tdb-hover>ul{top:auto;display:block!important}.tdb_header_menu .tdb-menu>li.td-normal-menu>ul.sub-menu{top:auto;left:0;z-index:99}.tdb_header_menu .tdb-menu>li .tdb-menu-sep{position:relative;vertical-align:middle;font-size:14px}.tdb_header_menu .tdb-menu>li .tdb-menu-sep-svg{line-height:0}.tdb_header_menu .tdb-menu>li .tdb-menu-sep-svg svg{width:14px;height:auto}.tdb_header_menu .tdb-menu>li:last-child .tdb-menu-sep{display:none}.tdb_header_menu .tdb-menu-item-text{word-wrap:break-word}.tdb_header_menu .tdb-menu-item-text,.tdb_header_menu .tdb-sub-menu-icon,.tdb_header_menu .tdb-menu-more-subicon{vertical-align:middle}.tdb_header_menu .tdb-sub-menu-icon,.tdb_header_menu .tdb-menu-more-subicon{position:relative;top:0;padding-left:0}.tdb_header_menu .tdb-normal-menu{position:relative}.tdb_header_menu .tdb-normal-menu ul{left:0;padding:15px 0;text-align:left}.tdb_header_menu .tdb-normal-menu ul ul{margin-top:-15px}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item{position:relative;list-style-type:none}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a{position:relative;display:block;padding:7px 30px;font-size:12px;line-height:20px;color:#111}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon,.tdb_header_menu .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:0;padding-right:inherit;font-size:7px;line-height:20px}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg,.tdb_header_menu .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon-svg{line-height:0}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg svg,.tdb_header_menu .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon-svg svg{width:7px;height:auto}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg svg,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg svg *,.tdb_header_menu .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon svg,.tdb_header_menu .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon svg *{fill:#000}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item:hover>ul,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.tdb-hover>ul{top:0;display:block!important}.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-menu-item>a,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-menu-ancestor>a,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-category-ancestor>a,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.current-page-ancestor>a,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item.tdb-hover>a,.tdb_header_menu .tdb-normal-menu ul .tdb-menu-item:hover>a{color:var(--td_theme_color,#4db2ec)}.tdb_header_menu .tdb-normal-menu>ul{left:-15px}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul,.tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list{width:100%!important}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul li,.tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list li{display:inline-block;width:auto!important}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu,.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item{position:static}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu ul ul{margin-top:0!important}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu>ul{left:0!important}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item>a .tdb-sub-menu-icon{float:none;line-height:1}.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item:hover>ul,.tdb_header_menu.tdb-menu-sub-inline .tdb-normal-menu .tdb-menu-item.tdb-hover>ul{top:100%}.tdb_header_menu.tdb-menu-sub-inline .tdb-menu-items-dropdown{position:static}.tdb_header_menu.tdb-menu-sub-inline .td-pulldown-filter-list{left:0!important}.tdb-menu .tdb-mega-menu .sub-menu{-webkit-transition:opacity 0.3s ease;transition:opacity 0.3s ease;width:1114px!important}.tdb-menu .tdb-mega-menu .sub-menu,.tdb-menu .tdb-mega-menu .sub-menu>li{position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tdb-menu .tdb-mega-menu .sub-menu>li{top:0;width:100%;max-width:1114px!important;height:auto;background-color:#fff;border:1px solid #eaeaea;overflow:hidden}.tdc-dragged .tdb-block-menu ul{visibility:hidden!important;opacity:0!important;-webkit-transition:all 0.3s ease;transition:all 0.3s ease}.tdb-mm-align-screen .tdb-menu .tdb-mega-menu .sub-menu{-webkit-transform:translateX(0);transform:translateX(0)}.tdb-mm-align-parent .tdb-menu .tdb-mega-menu{position:relative}.tdb-menu .tdb-mega-menu .tdc-row:not([class*='stretch_row_']),.tdb-menu .tdb-mega-menu .tdc-row-composer:not([class*='stretch_row_']){width:auto!important;max-width:1240px}.tdb-menu .tdb-mega-menu-page>.sub-menu>li .tdb-page-tpl-edit-btns{position:absolute;top:0;left:0;display:none;flex-wrap:wrap;gap:0 4px}.tdb-menu .tdb-mega-menu-page>.sub-menu>li:hover .tdb-page-tpl-edit-btns{display:flex}.tdb-menu .tdb-mega-menu-page>.sub-menu>li .tdb-page-tpl-edit-btn{background-color:#000;padding:1px 8px 2px;font-size:11px;color:#fff;z-index:100}.tdi_21{max-width:100%;display:inline-block;float:right;clear:none}.tdi_21 .tdb-menu>li .tdb-menu-sep,.tdi_21 .tdb-menu-items-dropdown .tdb-menu-sep{top:-1px}.tdi_21 .tdb-menu>li>a .tdb-sub-menu-icon,.tdi_21 .td-subcat-more .tdb-menu-more-subicon{top:-1px}.tdi_21 .td-subcat-more .tdb-menu-more-icon{top:0px}.tdi_21 .tdb-menu>li>a,.tdi_21 .td-subcat-more{color:#ffffff}.tdi_21 .tdb-menu>li>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .td-subcat-more .tdb-menu-more-subicon-svg svg,.tdi_21 .td-subcat-more .tdb-menu-more-subicon-svg svg *,.tdi_21 .td-subcat-more .tdb-menu-more-icon-svg,.tdi_21 .td-subcat-more .tdb-menu-more-icon-svg *{fill:#ffffff}.tdi_21 .tdb-menu>li>a,.tdi_21 .td-subcat-more,.tdi_21 .td-subcat-more>.tdb-menu-item-text{font-family:brother-xl!important;font-size:13px!important;text-transform:capitalize!important}.tdi_21 .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon,.tdi_21 .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon{right:0;margin-top:1px}.tdi_21 .tdb-menu .tdb-normal-menu ul,.tdi_21 .td-pulldown-filter-list,.tdi_21 .td-pulldown-filter-list .sub-menu{background-color:#ffffff;box-shadow:1px 1px 4px 0px rgba(0,0,0,0.15)}.tdi_21 .tdb-menu .tdb-normal-menu ul .tdb-menu-item>a,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li a,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li a{color:#151948}.tdi_21 .tdb-menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li a .tdb-sub-menu-icon-svg svg *{fill:#151948}.tdi_21 .tdb-menu .tdb-normal-menu ul .tdb-menu-item>a,.tdi_21 .td-pulldown-filter-list li a{font-family:brother-xl!important;font-size:15px!important;font-weight:700!important;text-transform:capitalize!important;letter-spacing:0px!important}.tdi_21 .tdb-menu .tdb-mega-menu .sub-menu>li{box-shadow:0px 2px 6px 0px rgba(0,0,0,0.1)}@media (max-width:1140px){.tdb-menu .tdb-mega-menu .sub-menu>li{width:100%!important}}@media (min-width:768px) and (max-width:1018px){.tdi_21 .tdb-menu>li>a,.tdi_21 .td-subcat-more{padding:0 9px}.tdi_21 .tdb-menu>li>a,.tdi_21 .td-subcat-more,.tdi_21 .td-subcat-more>.tdb-menu-item-text{font-size:11px!important;line-height:48px!important}}</style> <style>.tds_menu_active3 .tdb-menu>li>a:after{opacity:0;-webkit-transition:opacity 0.2s ease;transition:opacity 0.2s ease;height:100%;z-index:-1}.tds_menu_active3 .tdb-menu>li.current-menu-item>a:after,.tds_menu_active3 .tdb-menu>li.current-menu-ancestor>a:after,.tds_menu_active3 .tdb-menu>li.current-category-ancestor>a:after,.tds_menu_active3 .tdb-menu>li.current-page-ancestor>a:after,.tds_menu_active3 .tdb-menu>li:hover>a:after,.tds_menu_active3 .tdb-menu>li.tdb-hover>a:after{opacity:1}.tds_menu_active3 .tdb-menu-items-dropdown .td-subcat-more:after{opacity:0;-webkit-transition:opacity 0.2s ease;transition:opacity 0.2s ease;height:100%;z-index:-1}.tds_menu_active3 .tdb-menu-items-dropdown:hover .td-subcat-more:after{opacity:1}.tdi_21 .tdb-menu>li.current-menu-item>a,.tdi_21 .tdb-menu>li.current-menu-ancestor>a,.tdi_21 .tdb-menu>li.current-category-ancestor>a,.tdi_21 .tdb-menu>li.current-page-ancestor>a,.tdi_21 .tdb-menu>li:hover>a,.tdi_21 .tdb-menu>li.tdb-hover>a,.tdi_21 .tdb-menu-items-dropdown:hover .td-subcat-more{color:#ffffff}.tdi_21 .tdb-menu>li.current-menu-item>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li.current-menu-item>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu>li.current-menu-ancestor>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li.current-menu-ancestor>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu>li.current-category-ancestor>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li.current-category-ancestor>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu>li.current-page-ancestor>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu>li:hover>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li:hover>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu>li.tdb-hover>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu>li.tdb-hover>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu-items-dropdown:hover .td-subcat-more .tdb-menu-more-icon-svg svg,.tdi_21 .tdb-menu-items-dropdown:hover .td-subcat-more .tdb-menu-more-icon-svg svg *{fill:#ffffff}.tdi_21 .tdb-menu>li>a:after,.tdi_21 .tdb-menu-items-dropdown .td-subcat-more:after{background-color:#238fee}</style> <style>.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-item>a,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-ancestor>a,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-category-ancestor>a,.tdi_21 .tdb-menu ul .tdb-normal-menu.tdb-hover>a,.tdi_21 .tdb-menu ul .tdb-normal-menu:hover>a,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li:hover>a{color:#ffffff;background-color:#b361e0}.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-item>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-item>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-ancestor>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-menu-ancestor>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-category-ancestor>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu ul .tdb-normal-menu.current-category-ancestor>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu ul .tdb-normal-menu.tdb-hover>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu ul .tdb-normal-menu.tdb-hover>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu ul .tdb-normal-menu:hover>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu ul .tdb-normal-menu:hover>a .tdb-sub-menu-icon-svg svg *,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li:hover>a .tdb-sub-menu-icon-svg svg,.tdi_21 .tdb-menu-items-dropdown .td-pulldown-filter-list li:hover>a .tdb-sub-menu-icon-svg svg *{fill:#ffffff}</style><div id=tdi_21 class="td_block_inner td-fix-index"><div class="tdb-main-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-down tdb-main-sub-menu-icon"></i></div><div class="tdb-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-right-arrow"></i></div><ul id="menu-header-menu-2" class="tdb-block-menu tdb-menu tdb-menu-items-visible"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-first tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18398"><a href="https://www.codeguru.com/news/"><div class="tdb-menu-item-text">News</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18391 tdb-menu-item-inactive"><a href="https://www.codeguru.com/cplusplus/"><div class="tdb-menu-item-text">C++</div><i class="tdb-sub-menu-icon td-icon-down tdb-main-sub-menu-icon"></i></a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item tdb-normal-menu menu-item-18400"><a href="https://www.codeguru.com/soap/"><div class="tdb-menu-item-text">SOAP</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent tdb-menu-item tdb-normal-menu menu-item-18396"><a href="https://www.codeguru.com/multimedia/"><div class="tdb-menu-item-text">Multimedia</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item tdb-normal-menu menu-item-18397"><a href="https://www.codeguru.com/network/"><div class="tdb-menu-item-text">Network Programming</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item tdb-normal-menu menu-item-18404"><a href="https://www.codeguru.com/windows/"><div class="tdb-menu-item-text">Windows Programming</div></a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18390"><a href="https://www.codeguru.com/csharp/"><div class="tdb-menu-item-text">C#</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-has-children tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18387 tdb-menu-item-inactive"><a href="https://www.codeguru.com/dotnet/"><div class="tdb-menu-item-text">.NET</div><i class="tdb-sub-menu-icon td-icon-down tdb-main-sub-menu-icon"></i></a> <ul class="sub-menu"> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item tdb-normal-menu menu-item-18403"><a href="https://www.codeguru.com/visual-studio/"><div class="tdb-menu-item-text">Visual Studio</div></a></li> </ul> </li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18402"><a href="https://www.codeguru.com/visual-basic/"><div class="tdb-menu-item-text">Visual Basic</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18394"><a href="https://www.codeguru.com/java/"><div class="tdb-menu-item-text">Java</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18392"><a href="https://www.codeguru.com/database/"><div class="tdb-menu-item-text">Database</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18388"><a href="https://www.codeguru.com/azure/"><div class="tdb-menu-item-text">Azure</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18393"><a href="https://www.codeguru.com/iot/"><div class="tdb-menu-item-text">IoT</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18395"><a href="https://www.codeguru.com/mobile/"><div class="tdb-menu-item-text">Mobile</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18399"><a href="https://www.codeguru.com/research/"><div class="tdb-menu-item-text">Research</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18401"><a href="https://www.codeguru.com/tools/"><div class="tdb-menu-item-text">Tools</div></a></li> <li class="menu-item menu-item-type-taxonomy menu-item-object-category tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18389"><a href="https://www.codeguru.com/blog/"><div class="tdb-menu-item-text">Blog</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-18442"><a href="http://forums.codeguru.com"><div class="tdb-menu-item-text">Forums</div></a></li> </ul></div></div></div></div></div></div><div id="tdi_24" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_25 wpb_row td-pb-row" > <style scoped>.tdi_25,.tdi_25 .tdc-columns{min-height:0}.tdi_25,.tdi_25 .tdc-columns{display:block}.tdi_25 .tdc-columns{width:100%}.tdi_25:before,.tdi_25:after{display:table}.tdi_25{margin-top:15px!important}.tdi_25 .td_block_wrap{text-align:left}</style><div class="vc_column tdi_27 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_27{vertical-align:baseline}.tdi_27>.wpb_wrapper,.tdi_27>.wpb_wrapper>.tdc-elements{display:block}.tdi_27>.wpb_wrapper>.tdc-elements{width:100%}.tdi_27>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_27>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="tdm_block td_block_wrap tdm_block_socials tdi_28 tdm-content-horiz-left td-pb-border-top td_block_template_2" data-td-block-uid="tdi_28" > <style>.tdm_block.tdm_block_socials{margin-bottom:0}.tdm-social-wrapper{*zoom:1}.tdm-social-wrapper:before,.tdm-social-wrapper:after{display:table;content:'';line-height:0}.tdm-social-wrapper:after{clear:both}.tdm-social-item-wrap{display:inline-block}.tdm-social-item{position:relative;display:inline-block;vertical-align:middle;-webkit-transition:all 0.2s;transition:all 0.2s;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.tdm-social-item i{font-size:14px;color:var(--td_theme_color,#4db2ec);-webkit-transition:all 0.2s;transition:all 0.2s}.tdm-social-text{display:none;margin-top:-1px;vertical-align:middle;font-size:13px;color:var(--td_theme_color,#4db2ec);-webkit-transition:all 0.2s;transition:all 0.2s}.tdm-social-item-wrap:hover i,.tdm-social-item-wrap:hover .tdm-social-text{color:#000}.tdm-social-item-wrap:last-child .tdm-social-text{margin-right:0!important}</style> <style>.tds-social3 .tdm-social-item{background-color:var(--td_theme_color,#4db2ec)}.tds-social3 .tdm-social-item:hover{background-color:#000}.tds-social3 .tdm-social-item i{color:#fff}.tdi_29 .tdm-social-item i{font-size:16px;vertical-align:middle}.tdi_29 .tdm-social-item i.td-icon-linkedin,.tdi_29 .tdm-social-item i.td-icon-pinterest,.tdi_29 .tdm-social-item i.td-icon-blogger,.tdi_29 .tdm-social-item i.td-icon-vimeo{font-size:12.8px}.tdi_29 .tdm-social-item{width:32px;height:32px;line-height:32px;margin:5px 10px 5px 0}.tdi_29 .tdm-social-item-wrap:last-child .tdm-social-item{margin-right:0!important}body .tdi_29 .tdm-social-item i{color:#151948}body .tdi_29 .tdm-social-item-wrap:hover i{color:#ffffff}body .tdi_29 .tdm-social-item{background-color:#ffffff}body .tdi_29 .tdm-social-item-wrap:hover .tdm-social-item{background-color:#238fee}.tdi_29 .tdm-social-text{margin-left:2px;margin-right:18px;display:none}</style><div class="tdm-social-wrapper tds-social3 tdi_29"><div class="tdm-social-item-wrap"><a href="https://www.facebook.com/CodeGuru-108048391032729" target="_blank" title="Facebook" class="tdm-social-item"><i class="td-icon-font td-icon-facebook"></i><span style="display: none">Facebook</span></a></div><div class="tdm-social-item-wrap"><a href="https://www.linkedin.com/company/codegurutoday/?viewAsMember=true" target="_blank" title="Linkedin" class="tdm-social-item"><i class="td-icon-font td-icon-linkedin"></i><span style="display: none">Linkedin</span></a></div><div class="tdm-social-item-wrap"><a href="https://twitter.com/CodeGuruToday" target="_blank" title="Twitter" class="tdm-social-item"><i class="td-icon-font td-icon-twitter"></i><span style="display: none">Twitter</span></a></div></div></div></div></div><div class="vc_column tdi_31 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_31{vertical-align:baseline}.tdi_31>.wpb_wrapper,.tdi_31>.wpb_wrapper>.tdc-elements{display:block}.tdi_31>.wpb_wrapper>.tdc-elements{width:100%}.tdi_31>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_31>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ></div></div><div class="vc_column tdi_33 wpb_column vc_column_container tdc-column td-pb-span4"> <style scoped>.tdi_33{vertical-align:baseline}.tdi_33>.wpb_wrapper,.tdi_33>.wpb_wrapper>.tdc-elements{display:block}.tdi_33>.wpb_wrapper>.tdc-elements{width:100%}.tdi_33>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_33>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_search_form tdi_34 td-pb-border-top td_block_template_2" data-td-block-uid="tdi_34" > <style>.tdi_34{margin-top:10px!important;margin-bottom:10px!important;padding-bottom:0px!important;width:60%!important}</style> <style>.tdb_search_form{margin-bottom:40px}.tdb_search_form .tdb-search-form-inner{position:relative;display:flex;background-color:#fff}.tdb_search_form .tdb-search-form-border{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #e1e1e1;pointer-events:none;transition:all .3s ease}.tdb_search_form .tdb-search-form-input:focus+.tdb-search-form-border{border-color:#b0b0b0}.tdb_search_form .tdb-search-form-input:not([value=""])+.tdb-search-form-border+.tdb-search-form-placeholder{display:none}.tdb_search_form .tdb-search-form-input,.tdb_search_form .tdb-search-form-btn{height:auto;min-height:32px}.tdb_search_form .tdb-search-form-input{position:relative;flex:1;background-color:transparent;line-height:19px;border:0}.tdb_search_form .tdb-search-form-placeholder{position:absolute;top:50%;transform:translateY(-50%);padding:3px 9px;font-size:12px;line-height:21px;color:#999;-webkit-transition:all 0.3s ease;transition:all 0.3s ease;pointer-events:none}.tdb_search_form .tdb-search-form-input:focus+.tdb-search-form-border+.tdb-search-form-placeholder,.tdb-search-form-input:not(:placeholder-shown)~.tdb-search-form-placeholder{opacity:0}.tdb_search_form .tdb-search-form-btn{text-shadow:none;padding:7px 15px 8px 15px;line-height:16px;margin:0;background-color:#222222;font-family:var(--td_default_google_font_2,'Roboto',sans-serif);font-size:13px;font-weight:500;color:#fff;z-index:1;-webkit-transition:all 0.3s ease;transition:all 0.3s ease}.tdb_search_form .tdb-search-form-btn:hover{background-color:var(--td_theme_color,#4db2ec)}.tdb_search_form .tdb-search-form-btn i,.tdb_search_form .tdb-search-form-btn span{display:inline-block;vertical-align:middle}.tdb_search_form .tdb-search-form-btn i{position:relative;font-size:12px}.tdb_search_form .tdb-search-form-btn .tdb-search-form-btn-icon{position:relative}.tdb_search_form .tdb-search-form-btn .tdb-search-form-btn-icon-svg{line-height:0}.tdb_search_form .tdb-search-form-btn svg{width:12px;height:auto}.tdb_search_form .tdb-search-form-btn svg,.tdb_search_form .tdb-search-form-btn svg *{fill:#fff;-webkit-transition:all 0.3s ease;transition:all 0.3s ease}.tdb_search_form .tdb-search-msg{font-size:12px}.tdi_34{max-width:80%;float:right;clear:none}.td-theme-wrap .tdi_34{text-align:left}.tdi_34 .tdb-search-form-input:focus+.tdb-search-form-border+.tdb-search-form-placeholder,.tdb-search-form-input:not(:placeholder-shown)~.tdb-search-form-placeholder{top:-0%;transform:translateY(0)}.tdi_34 .tdb-search-form-border{border-width:2px 0 2px 2px;border-radius:0px;border-color:#f2f2f2}.tdi_34 .tdb-search-form-inner{border-radius:0px}.tdi_34 .tdb-search-form-input{border-top-left-radius:@input_radius;border-bottom-left-radius:@input_radius;font-family:Rubik!important}.tdi_34 .tdb-search-form-btn-icon{top:0px}.tdi_34 .tdb-search-form-btn{border-radius:2px;background:-webkit-linear-gradient(120deg,#26bde9,#238fee);background:linear-gradient(120deg,#26bde9,#238fee);font-family:brother-xl!important;font-weight:700!important}.tdi_34 .tdb-search-msg{margin-top:11px}.tdi_34 .tdb-search-form-btn:hover{color:#ffffff;background-color:#b361e0}.tdi_34 .tdb-search-form-btn:hover svg,.tdi_34 .tdb-search-form-btn:hover svg *{fill:#ffffff}</style><div class="tdb-block-inner td-fix-index"><form method="get" class="tdb-search-form" action="https://www.codeguru.com/"><div role="search" class="tdb-search-form-inner"><input id="tdb-search-form-input-tdi_34" class="tdb-search-form-input" placeholder=" " type="text" value="" name="s" /><div class="tdb-search-form-border"></div><button class="wpb_button wpb_btn-inverse tdb-search-form-btn" aria-label="Search" type="submit"><span>Search</span></button></div></form></div></div></div></div></div></div><div id="tdi_35" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_36 wpb_row td-pb-row tdc-row-content-vert-center" > <style scoped>.tdi_36,.tdi_36 .tdc-columns{min-height:0}.tdi_36,.tdi_36 .tdc-columns{display:block}.tdi_36 .tdc-columns{width:100%}.tdi_36:before,.tdi_36:after{display:table}@media (min-width:768px){.tdi_36{margin-left:-14px;margin-right:-14px}.tdi_36 .tdc-row-video-background-error,.tdi_36>.vc_column,.tdi_36>.tdc-columns>.vc_column{padding-left:14px;padding-right:14px}}@media (min-width:767px){.tdi_36.tdc-row-content-vert-center,.tdi_36.tdc-row-content-vert-center .tdc-columns{display:flex;align-items:center;flex:1}.tdi_36.tdc-row-content-vert-bottom,.tdi_36.tdc-row-content-vert-bottom .tdc-columns{display:flex;align-items:flex-end;flex:1}.tdi_36.tdc-row-content-vert-center .td_block_wrap{vertical-align:middle}.tdi_36.tdc-row-content-vert-bottom .td_block_wrap{vertical-align:bottom}}.tdi_36{padding-top:24px!important}.tdi_36 .td_block_wrap{text-align:left}@media(min-width:1141px){.tdi_36{display:none!important}}@media (min-width:768px) and (max-width:1018px){.tdi_36{padding-top:14px!important}}</style><div class="vc_column tdi_38 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped>.tdi_38{vertical-align:baseline}.tdi_38>.wpb_wrapper,.tdi_38>.wpb_wrapper>.tdc-elements{display:block}.tdi_38>.wpb_wrapper>.tdc-elements{width:100%}.tdi_38>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_38>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="vc_row_inner tdi_40 vc_row vc_inner wpb_row td-pb-row" > <style scoped>.tdi_40{position:relative!important;top:0;transform:none;-webkit-transform:none}.tdi_40,.tdi_40 .tdc-inner-columns{display:block}.tdi_40 .tdc-inner-columns{width:100%}</style><div class="vc_column_inner tdi_42 wpb_column vc_column_container tdc-inner-column td-pb-span12"> <style scoped>.tdi_42{vertical-align:baseline}.tdi_42 .vc_column-inner>.wpb_wrapper,.tdi_42 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_42 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}@media (min-width:768px) and (max-width:1018px){.tdi_42{display:none!important}}@media (min-width:1019px) and (max-width:1140px){.tdi_42{display:none!important}}</style><div class="vc_column-inner"><div class="wpb_wrapper" ></div></div></div></div></div></div></div></div></div></div> </div> </div> <div id="tdb-autoload-article" data-autoload="off" data-autoload-org-post-id="14524" data-autoload-tpl-id="138" data-autoload-type="" data-autoload-count="5" data-autoload-scroll-percent="50"> <style> .tdb-autoload-wrap { position: relative; } .tdb-autoload-wrap .tdb-loader-autoload { top: auto !important; bottom: 50px !important; } .tdb-autoload-debug { display: none; width: 1068px; margin-right: auto; margin-left: auto; } @media (min-width: 1019px) and (max-width: 1018px) { .tdb-autoload-debug { width: 740px; } } @media (max-width: 767px) { .tdb-autoload-debug { display: none; width: 100%; padding-left: 20px; padding-right: 20px; } } </style> <div class="td-main-content-wrap td-container-wrap"> <div class="tdc-content-wrap"> <article id="template-id-138" class="post-138 tdb_templates type-tdb_templates status-publish post" itemscope itemtype="https://schema.org/Article" > <style type="text/css"> .commission-disclaimer-message { background-color: #f7f7f7; color: #aaaaaa !important; font-weight: 300; font-size: .8rem !important; padding: 10px 20px; margin-bottom:10px; border-radius: 20px; } .search .commission-disclaimer-message, .archive .commission-disclaimer-message, .category .commission-disclaimer-message { display: none; } </style><div id="tdi_43" class="tdc-zone"><div class="tdc_zone tdi_44 wpb_row td-pb-row" > <style scoped>.tdi_44{min-height:0}</style><div id="tdi_45" class="tdc-row"><div class="vc_row tdi_46 wpb_row td-pb-row" > <style scoped>.tdi_46,.tdi_46 .tdc-columns{min-height:0}.tdi_46,.tdi_46 .tdc-columns{display:block}.tdi_46 .tdc-columns{width:100%}.tdi_46:before,.tdi_46:after{display:table}</style><div class="vc_column tdi_48 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped>.tdi_48{vertical-align:baseline}.tdi_48>.wpb_wrapper,.tdi_48>.wpb_wrapper>.tdc-elements{display:block}.tdi_48>.wpb_wrapper>.tdc-elements{width:100%}.tdi_48>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_48>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="td-block td-a-rec td-a-rec-id-custom-spot tdi_49 td_block_template_2"> <style>.tdi_49.td-a-rec{text-align:center}.tdi_49.td-a-rec:not(.td-a-rec-no-translate){transform:translateZ(0)}.tdi_49 .td-element-style{z-index:-1}</style><div class="wp-ads-inline-top" id="wp-ads-2095686004"><!-- Start: GAM Ad Slot Render | Codeguru Inline Top --> <div id="inline-top" style="min-width: 300px; width: auto; text-align:center; min-height: 50px; max-height: 250px; height: auto; background-color: #ffffff; border:0px solid #efefef;"> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("inline-top"); }); </script> </div> <!-- End: GAM Ad Slot Render | Codeguru Inline Top --></div></div></div></div></div></div><div id="tdi_50" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_51 wpb_row td-pb-row" > <style scoped>.tdi_51,.tdi_51 .tdc-columns{min-height:0}.tdi_51,.tdi_51 .tdc-columns{display:block}.tdi_51 .tdc-columns{width:100%}.tdi_51:before,.tdi_51:after{display:table}.tdi_51{margin-top:40px!important}.tdi_51 .td_block_wrap{text-align:left}</style><div class="vc_column tdi_53 wpb_column vc_column_container tdc-column td-pb-span8"> <style scoped>.tdi_53{vertical-align:baseline}.tdi_53>.wpb_wrapper,.tdi_53>.wpb_wrapper>.tdc-elements{display:block}.tdi_53>.wpb_wrapper>.tdc-elements{width:100%}.tdi_53>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_53>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_breadcrumbs tdi_54 td-pb-border-top td_block_template_2 tdb-breadcrumbs " data-td-block-uid="tdi_54" > <style>.tdi_54{margin-bottom:18px!important}</style> <style>.tdb-breadcrumbs{margin-bottom:11px;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif);font-size:12px;color:#747474;line-height:18px}.tdb-breadcrumbs a{color:#747474}.tdb-breadcrumbs a:hover{color:#000}.tdb-breadcrumbs .tdb-bread-sep{line-height:1;vertical-align:middle}.tdb-breadcrumbs .tdb-bread-sep-svg svg{height:auto}.tdb-breadcrumbs .tdb-bread-sep-svg svg,.tdb-breadcrumbs .tdb-bread-sep-svg svg *{fill:#c3c3c3}.single-tdb_templates.author-template .tdb_breadcrumbs{margin-bottom:2px}.tdb_category_breadcrumbs{margin:21px 0 9px}.search-results .tdb_breadcrumbs{margin-bottom:2px}.tdi_54 .tdb-bread-sep{font-size:10px;margin:0 5px}.tdi_54,.tdi_54 a{color:#a5a5a5}.tdi_54 .tdb-bread-sep-svg svg,.tdi_54 .tdb-bread-sep-svg svg *{fill:#a5a5a5}.tdi_54 a:hover{color:#b361e0}.td-theme-wrap .tdi_54{text-align:left}.tdi_54{font-family:Rubik!important;font-size:14px!important;font-weight:400!important;letter-spacing:.25px!important}</style><div class="tdb-block-inner td-fix-index"><span><a title="" class="tdb-entry-crumb" href="https://www.codeguru.com/">Home</a></span><i class="tdb-bread-sep td-icon-right"></i><span><a title="View all posts in Multimedia" class="tdb-entry-crumb" href="https://www.codeguru.com/multimedia/">Multimedia</a></span></div></div><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "item": { "@type": "WebSite", "@id": "https://www.codeguru.com/", "name": "Home" } },{ "@type": "ListItem", "position": 2, "item": { "@type": "WebPage", "@id": "https://www.codeguru.com/multimedia/", "name": "Multimedia" } } ] } </script><div class="td_block_wrap tdb_title tdi_55 tdb-single-title td-pb-border-top td_block_template_2" data-td-block-uid="tdi_55" > <style>@media (max-width:767px){.tdi_55{padding-right:0px!important}}@media (min-width:768px) and (max-width:1018px){.tdi_55{padding-right:0px!important}}@media (min-width:1019px) and (max-width:1140px){.tdi_55{padding-right:100px!important}}</style> <style>.tdb_title{margin-bottom:19px}.tdb_title.tdb-content-horiz-center{text-align:center}.tdb_title.tdb-content-horiz-center .tdb-title-line{margin:0 auto}.tdb_title.tdb-content-horiz-right{text-align:right}.tdb_title.tdb-content-horiz-right .tdb-title-line{margin-left:auto;margin-right:0}.tdb-title-text{display:inline-block;position:relative;margin:0;word-wrap:break-word;font-size:30px;line-height:38px;font-weight:700}.tdb-first-letter{position:absolute;-webkit-user-select:none;user-select:none;pointer-events:none;text-transform:uppercase;color:rgba(0,0,0,0.08);font-size:6em;font-weight:300;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:-0.36em;z-index:-1;-webkit-text-fill-color:initial}.tdb-title-line{display:none;position:relative}.tdb-title-line:after{content:'';width:100%;position:absolute;background-color:var(--td_theme_color,#4db2ec);top:0;left:0;margin:auto}.tdb-single-title .tdb-title-text{font-size:41px;line-height:50px;font-weight:400}.tdi_55 .tdb-title-text{background-color:#080a19;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-family:brother-xl!important;font-size:30px!important;line-height:1.2!important;font-weight:700!important}html[class*='ie'] .tdi_55 .tdb-title-text{background:none;color:#080a19}.tdi_55 .tdb-title-line:after{height:2px;bottom:40%}.tdi_55 .tdb-title-line{height:50px}.td-theme-wrap .tdi_55{text-align:left}.tdi_55 .tdb-first-letter{left:-0.36em;right:auto;font-family:brother-xl!important;font-weight:700!important}.tdi_55 .tdb-add-text{font-family:brother-xl!important}@media (min-width:1019px) and (max-width:1140px){.tdi_55 .tdb-title-text{font-size:48px!important}}@media (min-width:768px) and (max-width:1018px){.tdi_55 .tdb-title-text{font-size:36px!important}}@media (max-width:767px){.tdi_55 .tdb-title-text{font-size:18px!important;line-height:1.6!important}}</style><div class="tdb-block-inner td-fix-index"><h1 class="tdb-title-text">Drawing 3D OpenGL Graphics on Google Maps</h1><div></div><div class="tdb-title-line"></div></div></div><div class="td_block_wrap tdb_single_author tdi_56 td-pb-border-top td_block_template_2 tdb-post-meta" data-td-block-uid="tdi_56" > <style>.tdi_56{margin-bottom:0px!important}</style> <style>.tdb-post-meta{margin-bottom:16px;color:#444;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif);font-size:11px;font-weight:400;clear:none;vertical-align:middle;line-height:1}.tdb-post-meta span,.tdb-post-meta i,.tdb-post-meta time{vertical-align:middle}.tdb_single_author{line-height:30px}.tdb_single_author a{vertical-align:middle}.tdb_single_author .tdb-block-inner{display:flex;align-items:center}.tdb_single_author .tdb-author-name-wrap{display:flex}.tdb_single_author .tdb-author-name{font-weight:700;margin-right:3px}.tdb_single_author .tdb-author-by{margin-right:3px}.tdb_single_author .tdb-author-photo img{display:block}.tdi_56{display:inline-block}.tdi_56 .tdb-author-name-wrap{align-items:baseline}.tdi_56 .avatar{width:30px;height:30px;margin-right:6px;border-radius:0px}.tdi_56 .tdb-author-by{color:#080a19;font-family:Rubik!important;font-size:14px!important;font-weight:400!important;text-transform:capitalize!important}.tdi_56 .tdb-author-name{color:#238fee;font-family:Rubik!important;font-size:14px!important;font-weight:400!important;text-transform:capitalize!important}.tdi_56 .tdb-author-name:hover{color:#b361e0}</style><div class="tdb-block-inner td-fix-index"><a class="tdb-author-photo" href="https://www.codeguru.com/author/pravin-kumar-sinha/" title="Pravin Kumar Sinha"><img alt='Pravin Kumar Sinha' src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2030%2030'%3E%3C/svg%3E" data-lazy-srcset='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=60&d=mm&r=g 2x' class='avatar avatar-30 photo' height='30' width='30' decoding='async' data-lazy-src="https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=30&d=mm&r=g"/><noscript><img alt='Pravin Kumar Sinha' src='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=30&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=60&d=mm&r=g 2x' class='avatar avatar-30 photo' height='30' width='30' loading='lazy' decoding='async'/></noscript></a><div class="tdb-author-name-wrap"><span class="tdb-author-by">By</span> <a class="tdb-author-name" href="https://www.codeguru.com/author/pravin-kumar-sinha/">Pravin Kumar Sinha</a></div></div></div><div class="td_block_wrap tdb_single_date tdi_57 td-pb-border-top td_block_template_2 tdb-post-meta" data-td-block-uid="tdi_57" > <style>.tdi_57{margin-bottom:2px!important;margin-left:10px!important}@media (max-width:767px){.tdi_57{margin-right:10px!important}}</style> <style>.tdb_single_date{line-height:30px}.tdb_single_date a{vertical-align:middle}.tdb_single_date .tdb-date-icon-svg{position:relative;line-height:0}.tdb_single_date svg{height:auto}.tdb_single_date svg,.tdb_single_date svg *{fill:#444}.tdi_57{display:inline-block;color:#a5a5a5;font-family:Rubik!important;font-size:14px!important;font-weight:400!important;text-transform:capitalize!important;letter-spacing:.05px!important}.tdi_57 svg{width:14px}.tdi_57 .tdb-date-icon{margin-right:5px}.tdi_57 svg,.tdi_57 svg *{fill:#a5a5a5}</style><div class="tdb-block-inner td-fix-index"><time class="entry-date updated td-module-date" datetime="2016-05-18T07:15:00+00:00">May 18, 2016</time></div></div> <!-- ./block --><div class="td_block_wrap tdb_single_post_share tdi_58 td-pb-border-top td_block_template_2" data-td-block-uid="tdi_58" > <style>.tdi_58{margin-top:20px!important;margin-bottom:60px!important}@media (min-width:768px) and (max-width:1018px){.tdi_58{margin-top:15px!important;margin-bottom:40px!important}}@media (max-width:767px){.tdi_58{margin-bottom:20px!important}}</style> <style>.tdb_single_post_share{margin-bottom:23px}.tdb-share-classic{position:relative;height:20px;margin-bottom:15px}.td-post-sharing-show-all-icons .td-social-sharing-hidden .td-social-expand-tabs{display:none}.td-post-sharing_display-vertically .td-post-sharing-visible,.td-post-sharing_display-vertically .td-social-sharing-hidden{display:flex;flex-direction:column}.tdi_58 .td-post-sharing-visible{align-items:flex-start}.tdi_58 .td-social-handler .td-social-but-text{font-family:brother-xl!important;font-size:12px!important;font-weight:300!important}.tdi_58 .td-social-network{font-family:brother-xl!important;font-weight:300!important}.tdi_58 .td-social-expand-tabs-icon,.tdi_58 .td-icon-share{color:#080a19}.tdi_58 .td-social-share-text .td-social-but-text{color:#080a19}.tdi_58 .td-social-handler .td-social-but-text:before{background-color:#080a19}.tdi_58 .td-ps-bg .td-social-network div,.tdi_58 .td-ps-icon-bg .td-social-network .td-social-but-icon,.tdi_58 .td-ps-dark-bg .td-social-network div{background-color:#238fee}.tdi_58 .td-ps-icon-arrow .td-social-but-icon:after{border-left-color:#238fee}.tdi_58 .td-ps-border-colored .td-social-but-text{border-color:#238fee}</style><div id="tdi_58" class="td-post-sharing tdb-block td-ps-bg td-ps-notext td-ps-bar td-post-sharing-style5 "> <style>.td-post-sharing-classic{position:relative;height:20px}.td-post-sharing{margin-left:-3px;margin-right:-3px;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif);z-index:2;white-space:nowrap;opacity:0}.td-post-sharing.td-social-show-all{white-space:normal}.td-js-loaded .td-post-sharing{-webkit-transition:opacity 0.3s;transition:opacity 0.3s;opacity:1}.td-post-sharing-classic+.td-post-sharing{margin-top:15px}@media (max-width:767px){.td-post-sharing-classic+.td-post-sharing{margin-top:8px}}.td-post-sharing-top{margin-bottom:30px}@media (max-width:767px){.td-post-sharing-top{margin-bottom:20px}}.td-post-sharing-bottom{border-style:solid;border-color:#ededed;border-width:1px 0;padding:21px 0;margin-bottom:42px}.td-post-sharing-bottom .td-post-sharing{margin-bottom:-7px}.td-post-sharing-visible,.td-social-sharing-hidden{display:inline-block}.td-social-sharing-hidden ul{display:none}.td-social-show-all .td-pulldown-filter-list{display:inline-block}.td-social-network,.td-social-handler{position:relative;display:inline-block;margin:0 3px 7px;height:40px;min-width:40px;font-size:11px;text-align:center;vertical-align:middle}.td-ps-notext .td-social-network .td-social-but-icon,.td-ps-notext .td-social-handler .td-social-but-icon{border-top-right-radius:2px;border-bottom-right-radius:2px}.td-social-network{color:#000;overflow:hidden}.td-social-network .td-social-but-icon{border-top-left-radius:2px;border-bottom-left-radius:2px}.td-social-network .td-social-but-text{border-top-right-radius:2px;border-bottom-right-radius:2px}.td-social-network:hover{opacity:0.8!important}.td-social-handler{color:#444;border:1px solid #e9e9e9;border-radius:2px}.td-social-handler .td-social-but-text{font-weight:700}.td-social-handler .td-social-but-text:before{background-color:#000;opacity:0.08}.td-social-share-text{margin-right:18px}.td-social-share-text:before,.td-social-share-text:after{content:'';position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:100%;width:0;height:0;border-style:solid}.td-social-share-text:before{border-width:9px 0 9px 11px;border-color:transparent transparent transparent #e9e9e9}.td-social-share-text:after{border-width:8px 0 8px 10px;border-color:transparent transparent transparent #fff}.td-social-but-text,.td-social-but-icon{display:inline-block;position:relative}.td-social-but-icon{padding-left:13px;padding-right:13px;line-height:40px;z-index:1}.td-social-but-icon i{position:relative;top:-1px;vertical-align:middle}.td-social-but-text{margin-left:-6px;padding-left:12px;padding-right:17px;line-height:40px}.td-social-but-text:before{content:'';position:absolute;top:12px;left:0;width:1px;height:16px;background-color:#fff;opacity:0.2;z-index:1}.td-social-handler i,.td-social-facebook i,.td-social-reddit i,.td-social-linkedin i,.td-social-tumblr i,.td-social-stumbleupon i,.td-social-vk i,.td-social-viber i,.td-social-flipboard i,.td-social-koo i{font-size:14px}.td-social-telegram i{font-size:16px}.td-social-mail i,.td-social-line i,.td-social-print i{font-size:15px}.td-social-handler .td-icon-share{top:-1px;left:-1px}.td-social-twitter .td-icon-twitter{font-size:14px}.td-social-pinterest .td-icon-pinterest{font-size:13px}.td-social-whatsapp .td-icon-whatsapp,.td-social-kakao .td-icon-kakao{font-size:18px}.td-social-kakao .td-icon-kakao:before{color:#3C1B1D}.td-social-reddit .td-social-but-icon{padding-right:12px}.td-social-reddit .td-icon-reddit{left:-1px}.td-social-telegram .td-social-but-icon{padding-right:12px}.td-social-telegram .td-icon-telegram{left:-1px}.td-social-stumbleupon .td-social-but-icon{padding-right:11px}.td-social-stumbleupon .td-icon-stumbleupon{left:-2px}.td-social-digg .td-social-but-icon{padding-right:11px}.td-social-digg .td-icon-digg{left:-2px;font-size:17px}.td-social-vk .td-social-but-icon{padding-right:11px}.td-social-vk .td-icon-vk{left:-2px}.td-social-naver .td-icon-naver{left:-1px;font-size:16px}.td-social-gettr .td-icon-gettr{font-size:25px}.td-ps-notext .td-social-gettr .td-icon-gettr{left:-5px}.td-social-copy_url{position:relative}.td-social-copy_url-check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out;z-index:11}.td-social-copy_url .td-icon-copy_url{left:-1px;font-size:17px}.td-social-copy_url-disabled{pointer-events:none}.td-social-copy_url-disabled .td-icon-copy_url{opacity:0}.td-social-copy_url-copied .td-social-copy_url-check{opacity:1}@keyframes social_copy_url_loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.td-social-expand-tabs i{top:-2px;left:-1px;font-size:16px}@media (min-width:767px){.td-social-line,.td-social-viber{display:none}}.td-ps-bg .td-social-network{color:#fff}.td-ps-bg .td-social-facebook .td-social-but-icon,.td-ps-bg .td-social-facebook .td-social-but-text{background-color:#516eab}.td-ps-bg .td-social-twitter .td-social-but-icon,.td-ps-bg .td-social-twitter .td-social-but-text{background-color:#29c5f6}.td-ps-bg .td-social-pinterest .td-social-but-icon,.td-ps-bg .td-social-pinterest .td-social-but-text{background-color:#ca212a}.td-ps-bg .td-social-whatsapp .td-social-but-icon,.td-ps-bg .td-social-whatsapp .td-social-but-text{background-color:#7bbf6a}.td-ps-bg .td-social-reddit .td-social-but-icon,.td-ps-bg .td-social-reddit .td-social-but-text{background-color:#f54200}.td-ps-bg .td-social-mail .td-social-but-icon,.td-ps-bg .td-social-digg .td-social-but-icon,.td-ps-bg .td-social-copy_url .td-social-but-icon,.td-ps-bg .td-social-mail .td-social-but-text,.td-ps-bg .td-social-digg .td-social-but-text,.td-ps-bg .td-social-copy_url .td-social-but-text{background-color:#000}.td-ps-bg .td-social-print .td-social-but-icon,.td-ps-bg .td-social-print .td-social-but-text{background-color:#333}.td-ps-bg .td-social-linkedin .td-social-but-icon,.td-ps-bg .td-social-linkedin .td-social-but-text{background-color:#0266a0}.td-ps-bg .td-social-tumblr .td-social-but-icon,.td-ps-bg .td-social-tumblr .td-social-but-text{background-color:#3e5a70}.td-ps-bg .td-social-telegram .td-social-but-icon,.td-ps-bg .td-social-telegram .td-social-but-text{background-color:#179cde}.td-ps-bg .td-social-stumbleupon .td-social-but-icon,.td-ps-bg .td-social-stumbleupon .td-social-but-text{background-color:#ee4813}.td-ps-bg .td-social-vk .td-social-but-icon,.td-ps-bg .td-social-vk .td-social-but-text{background-color:#4c75a3}.td-ps-bg .td-social-line .td-social-but-icon,.td-ps-bg .td-social-line .td-social-but-text{background-color:#00b900}.td-ps-bg .td-social-viber .td-social-but-icon,.td-ps-bg .td-social-viber .td-social-but-text{background-color:#5d54a4}.td-ps-bg .td-social-naver .td-social-but-icon,.td-ps-bg .td-social-naver .td-social-but-text{background-color:#3ec729}.td-ps-bg .td-social-flipboard .td-social-but-icon,.td-ps-bg .td-social-flipboard .td-social-but-text{background-color:#f42827}.td-ps-bg .td-social-kakao .td-social-but-icon,.td-ps-bg .td-social-kakao .td-social-but-text{background-color:#f9e000}.td-ps-bg .td-social-gettr .td-social-but-icon,.td-ps-bg .td-social-gettr .td-social-but-text{background-color:#fc223b}.td-ps-bg .td-social-koo .td-social-but-icon,.td-ps-bg .td-social-koo .td-social-but-text{background-color:#facd00}.td-ps-dark-bg .td-social-network{color:#fff}.td-ps-dark-bg .td-social-network .td-social-but-icon,.td-ps-dark-bg .td-social-network .td-social-but-text{background-color:#000}.td-ps-border .td-social-network .td-social-but-icon,.td-ps-border .td-social-network .td-social-but-text{line-height:38px;border-width:1px;border-style:solid}.td-ps-border .td-social-network .td-social-but-text{border-left-width:0}.td-ps-border .td-social-network .td-social-but-text:before{background-color:#000;opacity:0.08}.td-ps-border.td-ps-padding .td-social-network .td-social-but-icon{border-right-width:0}.td-ps-border.td-ps-padding .td-social-network.td-social-expand-tabs .td-social-but-icon{border-right-width:1px}.td-ps-border-grey .td-social-but-icon,.td-ps-border-grey .td-social-but-text{border-color:#e9e9e9}.td-ps-border-colored .td-social-facebook .td-social-but-icon,.td-ps-border-colored .td-social-facebook .td-social-but-text{border-color:#516eab}.td-ps-border-colored .td-social-twitter .td-social-but-icon,div.td-ps-border-colored .td-social-twitter .td-social-but-text{border-color:#29c5f6;color:#29c5f6}.td-ps-border-colored .td-social-pinterest .td-social-but-icon,.td-ps-border-colored .td-social-pinterest .td-social-but-text{border-color:#ca212a}.td-ps-border-colored .td-social-whatsapp .td-social-but-icon,.td-ps-border-colored .td-social-whatsapp .td-social-but-text{border-color:#7bbf6a}.td-ps-border-colored .td-social-reddit .td-social-but-icon,.td-ps-border-colored .td-social-reddit .td-social-but-text{border-color:#f54200}.td-ps-border-colored .td-social-mail .td-social-but-icon,.td-ps-border-colored .td-social-digg .td-social-but-icon,.td-ps-border-colored .td-social-copy_url .td-social-but-icon,.td-ps-border-colored .td-social-mail .td-social-but-text,.td-ps-border-colored .td-social-digg .td-social-but-text,.td-ps-border-colored .td-social-copy_url .td-social-but-text{border-color:#000}.td-ps-border-colored .td-social-print .td-social-but-icon,.td-ps-border-colored .td-social-print .td-social-but-text{border-color:#333}.td-ps-border-colored .td-social-linkedin .td-social-but-icon,.td-ps-border-colored .td-social-linkedin .td-social-but-text{border-color:#0266a0}.td-ps-border-colored .td-social-tumblr .td-social-but-icon,.td-ps-border-colored .td-social-tumblr .td-social-but-text{border-color:#3e5a70}.td-ps-border-colored .td-social-telegram .td-social-but-icon,.td-ps-border-colored .td-social-telegram .td-social-but-text{border-color:#179cde}.td-ps-border-colored .td-social-stumbleupon .td-social-but-icon,.td-ps-border-colored .td-social-stumbleupon .td-social-but-text{border-color:#ee4813}.td-ps-border-colored .td-social-vk .td-social-but-icon,.td-ps-border-colored .td-social-vk .td-social-but-text{border-color:#4c75a3}.td-ps-border-colored .td-social-line .td-social-but-icon,.td-ps-border-colored .td-social-line .td-social-but-text{border-color:#00b900}.td-ps-border-colored .td-social-viber .td-social-but-icon,.td-ps-border-colored .td-social-viber .td-social-but-text{border-color:#5d54a4}.td-ps-border-colored .td-social-naver .td-social-but-icon,.td-ps-border-colored .td-social-naver .td-social-but-text{border-color:#3ec729}.td-ps-border-colored .td-social-flipboard .td-social-but-icon,.td-ps-border-colored .td-social-flipboard .td-social-but-text{border-color:#f42827}.td-ps-border-colored .td-social-kakao .td-social-but-icon,.td-ps-border-colored .td-social-kakao .td-social-but-text{border-color:#f9e000}.td-ps-border-colored .td-social-gettr .td-social-but-icon,.td-ps-border-colored .td-social-gettr .td-social-but-text{border-color:#fc223b}.td-ps-border-colored .td-social-koo .td-social-but-icon,.td-ps-border-colored .td-social-koo .td-social-but-text{border-color:#facd00}.td-ps-icon-bg .td-social-but-icon{height:100%;border-color:transparent!important}.td-ps-icon-bg .td-social-network .td-social-but-icon{color:#fff}.td-ps-icon-bg .td-social-facebook .td-social-but-icon{background-color:#516eab}.td-ps-icon-bg .td-social-twitter .td-social-but-icon{background-color:#29c5f6}.td-ps-icon-bg .td-social-pinterest .td-social-but-icon{background-color:#ca212a}.td-ps-icon-bg .td-social-whatsapp .td-social-but-icon{background-color:#7bbf6a}.td-ps-icon-bg .td-social-reddit .td-social-but-icon{background-color:#f54200}.td-ps-icon-bg .td-social-mail .td-social-but-icon,.td-ps-icon-bg .td-social-digg .td-social-but-icon,.td-ps-icon-bg .td-social-copy_url .td-social-but-icon{background-color:#000}.td-ps-icon-bg .td-social-print .td-social-but-icon{background-color:#333}.td-ps-icon-bg .td-social-linkedin .td-social-but-icon{background-color:#0266a0}.td-ps-icon-bg .td-social-tumblr .td-social-but-icon{background-color:#3e5a70}.td-ps-icon-bg .td-social-telegram .td-social-but-icon{background-color:#179cde}.td-ps-icon-bg .td-social-stumbleupon .td-social-but-icon{background-color:#ee4813}.td-ps-icon-bg .td-social-vk .td-social-but-icon{background-color:#4c75a3}.td-ps-icon-bg .td-social-line .td-social-but-icon{background-color:#00b900}.td-ps-icon-bg .td-social-viber .td-social-but-icon{background-color:#5d54a4}.td-ps-icon-bg .td-social-naver .td-social-but-icon{background-color:#3ec729}.td-ps-icon-bg .td-social-flipboard .td-social-but-icon{background-color:#f42827}.td-ps-icon-bg .td-social-kakao .td-social-but-icon{background-color:#f9e000}.td-ps-icon-bg .td-social-gettr .td-social-but-icon{background-color:#fc223b}.td-ps-icon-bg .td-social-koo .td-social-but-icon{background-color:#facd00}.td-ps-icon-bg .td-social-but-text{margin-left:-3px}.td-ps-icon-bg .td-social-network .td-social-but-text:before{display:none}.td-ps-icon-arrow .td-social-network .td-social-but-icon:after{content:'';position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:calc(100% + 1px);width:0;height:0;border-style:solid;border-width:9px 0 9px 11px;border-color:transparent transparent transparent #000}.td-ps-icon-arrow .td-social-network .td-social-but-text{padding-left:20px}.td-ps-icon-arrow .td-social-network .td-social-but-text:before{display:none}.td-ps-icon-arrow.td-ps-padding .td-social-network .td-social-but-icon:after{left:100%}.td-ps-icon-arrow .td-social-facebook .td-social-but-icon:after{border-left-color:#516eab}.td-ps-icon-arrow .td-social-twitter .td-social-but-icon:after{border-left-color:#29c5f6}.td-ps-icon-arrow .td-social-pinterest .td-social-but-icon:after{border-left-color:#ca212a}.td-ps-icon-arrow .td-social-whatsapp .td-social-but-icon:after{border-left-color:#7bbf6a}.td-ps-icon-arrow .td-social-reddit .td-social-but-icon:after{border-left-color:#f54200}.td-ps-icon-arrow .td-social-mail .td-social-but-icon:after,.td-ps-icon-arrow .td-social-digg .td-social-but-icon:after,.td-ps-icon-arrow .td-social-copy_url .td-social-but-icon:after{border-left-color:#000}.td-ps-icon-arrow .td-social-print .td-social-but-icon:after{border-left-color:#333}.td-ps-icon-arrow .td-social-linkedin .td-social-but-icon:after{border-left-color:#0266a0}.td-ps-icon-arrow .td-social-tumblr .td-social-but-icon:after{border-left-color:#3e5a70}.td-ps-icon-arrow .td-social-telegram .td-social-but-icon:after{border-left-color:#179cde}.td-ps-icon-arrow .td-social-stumbleupon .td-social-but-icon:after{border-left-color:#ee4813}.td-ps-icon-arrow .td-social-vk .td-social-but-icon:after{border-left-color:#4c75a3}.td-ps-icon-arrow .td-social-line .td-social-but-icon:after{border-left-color:#00b900}.td-ps-icon-arrow .td-social-viber .td-social-but-icon:after{border-left-color:#5d54a4}.td-ps-icon-arrow .td-social-naver .td-social-but-icon:after{border-left-color:#3ec729}.td-ps-icon-arrow .td-social-flipboard .td-social-but-icon:after{border-left-color:#f42827}.td-ps-icon-arrow .td-social-kakao .td-social-but-icon:after{border-left-color:#f9e000}.td-ps-icon-arrow .td-social-gettr .td-social-but-icon:after{border-left-color:#fc223b}.td-ps-icon-arrow .td-social-koo .td-social-but-icon:after{border-left-color:#facd00}.td-ps-icon-arrow .td-social-expand-tabs .td-social-but-icon:after{display:none}.td-ps-icon-color .td-social-facebook .td-social-but-icon{color:#516eab}.td-ps-icon-color .td-social-pinterest .td-social-but-icon{color:#ca212a}.td-ps-icon-color .td-social-whatsapp .td-social-but-icon{color:#7bbf6a}.td-ps-icon-color .td-social-reddit .td-social-but-icon{color:#f54200}.td-ps-icon-color .td-social-mail .td-social-but-icon,.td-ps-icon-color .td-social-digg .td-social-but-icon,.td-ps-icon-color .td-social-copy_url .td-social-but-icon,.td-ps-icon-color .td-social-copy_url-check,.td-ps-icon-color .td-social-twitter .td-social-but-icon{color:#000}.td-ps-icon-color .td-social-print .td-social-but-icon{color:#333}.td-ps-icon-color .td-social-linkedin .td-social-but-icon{color:#0266a0}.td-ps-icon-color .td-social-tumblr .td-social-but-icon{color:#3e5a70}.td-ps-icon-color .td-social-telegram .td-social-but-icon{color:#179cde}.td-ps-icon-color .td-social-stumbleupon .td-social-but-icon{color:#ee4813}.td-ps-icon-color .td-social-vk .td-social-but-icon{color:#4c75a3}.td-ps-icon-color .td-social-line .td-social-but-icon{color:#00b900}.td-ps-icon-color .td-social-viber .td-social-but-icon{color:#5d54a4}.td-ps-icon-color .td-social-naver .td-social-but-icon{color:#3ec729}.td-ps-icon-color .td-social-flipboard .td-social-but-icon{color:#f42827}.td-ps-icon-color .td-social-kakao .td-social-but-icon{color:#f9e000}.td-ps-icon-color .td-social-gettr .td-social-but-icon{color:#fc223b}.td-ps-icon-color .td-social-koo .td-social-but-icon{color:#facd00}.td-ps-text-color .td-social-but-text{font-weight:700}.td-ps-text-color .td-social-facebook .td-social-but-text{color:#516eab}.td-ps-text-color .td-social-twitter .td-social-but-text{color:#29c5f6}.td-ps-text-color .td-social-pinterest .td-social-but-text{color:#ca212a}.td-ps-text-color .td-social-whatsapp .td-social-but-text{color:#7bbf6a}.td-ps-text-color .td-social-reddit .td-social-but-text{color:#f54200}.td-ps-text-color .td-social-mail .td-social-but-text,.td-ps-text-color .td-social-digg .td-social-but-text,.td-ps-text-color .td-social-copy_url .td-social-but-text{color:#000}.td-ps-text-color .td-social-print .td-social-but-text{color:#333}.td-ps-text-color .td-social-linkedin .td-social-but-text{color:#0266a0}.td-ps-text-color .td-social-tumblr .td-social-but-text{color:#3e5a70}.td-ps-text-color .td-social-telegram .td-social-but-text{color:#179cde}.td-ps-text-color .td-social-stumbleupon .td-social-but-text{color:#ee4813}.td-ps-text-color .td-social-vk .td-social-but-text{color:#4c75a3}.td-ps-text-color .td-social-line .td-social-but-text{color:#00b900}.td-ps-text-color .td-social-viber .td-social-but-text{color:#5d54a4}.td-ps-text-color .td-social-naver .td-social-but-text{color:#3ec729}.td-ps-text-color .td-social-flipboard .td-social-but-text{color:#f42827}.td-ps-text-color .td-social-kakao .td-social-but-text{color:#f9e000}.td-ps-text-color .td-social-gettr .td-social-but-text{color:#fc223b}.td-ps-text-color .td-social-koo .td-social-but-text{color:#facd00}.td-ps-text-color .td-social-expand-tabs .td-social-but-text{color:#b1b1b1}.td-ps-notext .td-social-but-icon{width:40px}.td-ps-notext .td-social-network .td-social-but-text{display:none}.td-ps-padding .td-social-network .td-social-but-icon{padding-left:17px;padding-right:17px}.td-ps-padding .td-social-handler .td-social-but-icon{width:40px}.td-ps-padding .td-social-reddit .td-social-but-icon,.td-ps-padding .td-social-telegram .td-social-but-icon{padding-right:16px}.td-ps-padding .td-social-stumbleupon .td-social-but-icon,.td-ps-padding .td-social-digg .td-social-but-icon,.td-ps-padding .td-social-expand-tabs .td-social-but-icon{padding-right:13px}.td-ps-padding .td-social-vk .td-social-but-icon{padding-right:14px}.td-ps-padding .td-social-expand-tabs .td-social-but-icon{padding-left:13px}.td-ps-rounded .td-social-network .td-social-but-icon{border-top-left-radius:100px;border-bottom-left-radius:100px}.td-ps-rounded .td-social-network .td-social-but-text{border-top-right-radius:100px;border-bottom-right-radius:100px}.td-ps-rounded.td-ps-notext .td-social-network .td-social-but-icon{border-top-right-radius:100px;border-bottom-right-radius:100px}.td-ps-rounded .td-social-expand-tabs{border-radius:100px}.td-ps-bar .td-social-network .td-social-but-icon,.td-ps-bar .td-social-network .td-social-but-text{-webkit-box-shadow:inset 0px -3px 0px 0px rgba(0,0,0,0.31);box-shadow:inset 0px -3px 0px 0px rgba(0,0,0,0.31)}.td-ps-bar .td-social-mail .td-social-but-icon,.td-ps-bar .td-social-digg .td-social-but-icon,.td-ps-bar .td-social-copy_url .td-social-but-icon,.td-ps-bar .td-social-mail .td-social-but-text,.td-ps-bar .td-social-digg .td-social-but-text,.td-ps-bar .td-social-copy_url .td-social-but-text{-webkit-box-shadow:inset 0px -3px 0px 0px rgba(255,255,255,0.28);box-shadow:inset 0px -3px 0px 0px rgba(255,255,255,0.28)}.td-ps-bar .td-social-print .td-social-but-icon,.td-ps-bar .td-social-print .td-social-but-text{-webkit-box-shadow:inset 0px -3px 0px 0px rgba(255,255,255,0.2);box-shadow:inset 0px -3px 0px 0px rgba(255,255,255,0.2)}.td-ps-big .td-social-but-icon{display:block;line-height:60px}.td-ps-big .td-social-but-icon .td-icon-share{width:auto}.td-ps-big .td-social-handler .td-social-but-text:before{display:none}.td-ps-big .td-social-share-text .td-social-but-icon{width:90px}.td-ps-big .td-social-expand-tabs .td-social-but-icon{width:60px}@media (max-width:767px){.td-ps-big .td-social-share-text{display:none}}.td-ps-big .td-social-facebook i,.td-ps-big .td-social-reddit i,.td-ps-big .td-social-mail i,.td-ps-big .td-social-linkedin i,.td-ps-big .td-social-tumblr i,.td-ps-big .td-social-stumbleupon i{margin-top:-2px}.td-ps-big .td-social-facebook i,.td-ps-big .td-social-reddit i,.td-ps-big .td-social-linkedin i,.td-ps-big .td-social-tumblr i,.td-ps-big .td-social-stumbleupon i,.td-ps-big .td-social-vk i,.td-ps-big .td-social-viber i,.td-ps-big .td-social-fliboard i,.td-ps-big .td-social-koo i,.td-ps-big .td-social-share-text i{font-size:22px}.td-ps-big .td-social-telegram i{font-size:24px}.td-ps-big .td-social-mail i,.td-ps-big .td-social-line i,.td-ps-big .td-social-print i{font-size:23px}.td-ps-big .td-social-twitter i,.td-ps-big .td-social-expand-tabs i{font-size:20px}.td-ps-big .td-social-whatsapp i,.td-ps-big .td-social-naver i,.td-ps-big .td-social-flipboard i,.td-ps-big .td-social-kakao i{font-size:26px}.td-ps-big .td-social-pinterest .td-icon-pinterest{font-size:21px}.td-ps-big .td-social-telegram .td-icon-telegram{left:1px}.td-ps-big .td-social-stumbleupon .td-icon-stumbleupon{left:-2px}.td-ps-big .td-social-digg .td-icon-digg{left:-1px;font-size:25px}.td-ps-big .td-social-vk .td-icon-vk{left:-1px}.td-ps-big .td-social-naver .td-icon-naver{left:0}.td-ps-big .td-social-gettr .td-icon-gettr{left:-1px}.td-ps-big .td-social-copy_url .td-icon-copy_url{left:0;font-size:25px}.td-ps-big .td-social-copy_url-check{font-size:18px}.td-ps-big .td-social-but-text{margin-left:0;padding-top:0;padding-left:17px}.td-ps-big.td-ps-notext .td-social-network,.td-ps-big.td-ps-notext .td-social-handler{height:60px}.td-ps-big.td-ps-notext .td-social-network{width:60px}.td-ps-big.td-ps-notext .td-social-network .td-social-but-icon{width:60px}.td-ps-big.td-ps-notext .td-social-share-text .td-social-but-icon{line-height:40px}.td-ps-big.td-ps-notext .td-social-share-text .td-social-but-text{display:block;line-height:1}.td-ps-big.td-ps-padding .td-social-network,.td-ps-big.td-ps-padding .td-social-handler{height:90px;font-size:13px}.td-ps-big.td-ps-padding .td-social-network{min-width:60px}.td-ps-big.td-ps-padding .td-social-but-icon{border-bottom-left-radius:0;border-top-right-radius:2px}.td-ps-big.td-ps-padding.td-ps-bar .td-social-but-icon{-webkit-box-shadow:none;box-shadow:none}.td-ps-big.td-ps-padding .td-social-but-text{display:block;padding-bottom:17px;line-height:1;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:2px}.td-ps-big.td-ps-padding .td-social-but-text:before{display:none}.td-ps-big.td-ps-padding .td-social-expand-tabs i{line-height:90px}.td-ps-nogap{margin-left:0;margin-right:0}.td-ps-nogap .td-social-network,.td-ps-nogap .td-social-handler{margin-left:0;margin-right:0;border-radius:0}.td-ps-nogap .td-social-network .td-social-but-icon,.td-ps-nogap .td-social-network .td-social-but-text{border-radius:0}.td-ps-nogap .td-social-expand-tabs{border-radius:0}.td-post-sharing-style7 .td-social-network .td-social-but-icon{height:100%}.td-post-sharing-style7 .td-social-network .td-social-but-icon:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.31)}.td-post-sharing-style7 .td-social-network .td-social-but-text{padding-left:17px}.td-post-sharing-style7 .td-social-network .td-social-but-text:before{display:none}.td-post-sharing-style7 .td-social-mail .td-social-but-icon:before,.td-post-sharing-style7 .td-social-digg .td-social-but-icon:before,.td-post-sharing-style7 .td-social-copy_url .td-social-but-icon:before{background-color:rgba(255,255,255,0.2)}.td-post-sharing-style7 .td-social-print .td-social-but-icon:before{background-color:rgba(255,255,255,0.1)}@media (max-width:767px){.td-post-sharing-style1 .td-social-share-text .td-social-but-text,.td-post-sharing-style3 .td-social-share-text .td-social-but-text,.td-post-sharing-style5 .td-social-share-text .td-social-but-text,.td-post-sharing-style14 .td-social-share-text .td-social-but-text,.td-post-sharing-style16 .td-social-share-text .td-social-but-text{display:none!important}}@media (max-width:767px){.td-post-sharing-style2 .td-social-share-text,.td-post-sharing-style4 .td-social-share-text,.td-post-sharing-style6 .td-social-share-text,.td-post-sharing-style7 .td-social-share-text,.td-post-sharing-style15 .td-social-share-text,.td-post-sharing-style17 .td-social-share-text,.td-post-sharing-style18 .td-social-share-text,.td-post-sharing-style19 .td-social-share-text,.td-post-sharing-style20 .td-social-share-text{display:none!important}}</style> <div class="td-post-sharing-visible"><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F" title="Facebook" ><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Drawing+3D+OpenGL+Graphics+on+Google+Maps&url=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F&via=CodeGuru" title="Twitter" ><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/&title=Drawing+3D+OpenGL+Graphics+on+Google+Maps" title="Linkedin" ><div class="td-social-but-icon"><i class="td-icon-linkedin"></i></div><div class="td-social-but-text">Linkedin</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Drawing+3D+OpenGL+Graphics+on+Google+Maps %0A%0A https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/" title="WhatsApp" ><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-reddit" href="https://reddit.com/submit?url=https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/&title=Drawing+3D+OpenGL+Graphics+on+Google+Maps" title="ReddIt" ><div class="td-social-but-icon"><i class="td-icon-reddit"></i></div><div class="td-social-but-text">ReddIt</div></a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="tdi_58" title="More"> <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div> </a></div></div></div><div class="td_block_wrap tdb_single_content tdi_59 td-pb-border-top td_block_template_2 td-post-content tagdiv-type" data-td-block-uid="tdi_59" > <style>.tdi_59{margin-top:0px!important}@media (max-width:767px){.tdi_59{margin-top:0px!important}}</style> <style>.tdb_single_content{margin-bottom:0;*zoom:1}.tdb_single_content:before,.tdb_single_content:after{display:table;content:'';line-height:0}.tdb_single_content:after{clear:both}.tdb_single_content .tdb-block-inner>*:not(.wp-block-quote):not(.alignwide):not(.alignfull.wp-block-cover.has-parallax):not(.td-a-ad){margin-left:auto;margin-right:auto}.tdb_single_content a{pointer-events:auto}.tdb_single_content .td-spot-id-top_ad .tdc-placeholder-title:before{content:'Article Top Ad'!important}.tdb_single_content .td-spot-id-inline_ad0 .tdc-placeholder-title:before{content:'Article Inline Ad 1'!important}.tdb_single_content .td-spot-id-inline_ad1 .tdc-placeholder-title:before{content:'Article Inline Ad 2'!important}.tdb_single_content .td-spot-id-inline_ad2 .tdc-placeholder-title:before{content:'Article Inline Ad 3'!important}.tdb_single_content .td-spot-id-bottom_ad .tdc-placeholder-title:before{content:'Article Bottom Ad'!important}.tdb_single_content .id_top_ad,.tdb_single_content .id_bottom_ad{clear:both;margin-bottom:21px;text-align:center}.tdb_single_content .id_top_ad img,.tdb_single_content .id_bottom_ad img{margin-bottom:0}.tdb_single_content .id_top_ad .adsbygoogle,.tdb_single_content .id_bottom_ad .adsbygoogle{position:relative}.tdb_single_content .id_ad_content-horiz-left,.tdb_single_content .id_ad_content-horiz-right,.tdb_single_content .id_ad_content-horiz-center{margin-bottom:15px}.tdb_single_content .id_ad_content-horiz-left img,.tdb_single_content .id_ad_content-horiz-right img,.tdb_single_content .id_ad_content-horiz-center img{margin-bottom:0}.tdb_single_content .id_ad_content-horiz-center{text-align:center}.tdb_single_content .id_ad_content-horiz-center img{margin-right:auto;margin-left:auto}.tdb_single_content .id_ad_content-horiz-left{float:left;margin-top:9px;margin-right:21px}.tdb_single_content .id_ad_content-horiz-right{float:right;margin-top:6px;margin-left:21px}.tdb_single_content .tdc-a-ad .tdc-placeholder-title{width:300px;height:250px}.tdb_single_content .tdc-a-ad .tdc-placeholder-title:before{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);margin:auto;display:table;width:100%}.tdb_single_content .tdb-block-inner.td-fix-index{word-break:break-word}.tdi_59,.tdi_59>p,.tdi_59 .tdb-block-inner>p{font-family:Rubik!important;font-size:16px!important;line-height:1.6!important;font-weight:400!important}.tdi_59 h1{font-family:brother-xl!important;font-weight:700!important;letter-spacing:0px!important}.tdi_59 h2{font-family:brother-xl!important;font-weight:700!important;letter-spacing:0px!important}.tdi_59 h3:not(.tds-locker-title){font-family:brother-xl!important;font-weight:700!important;letter-spacing:0px!important}.tdi_59 h4{font-family:brother-xl!important;font-weight:500!important;letter-spacing:0px!important}.tdi_59 h5{font-family:brother-xl!important;font-weight:500!important;letter-spacing:0px!important}.tdi_59 h6{font-family:brother-xl!important;font-weight:500!important;letter-spacing:0px!important}.tdi_59 li{font-family:Rubik!important;font-size:16px!important;font-weight:400!important}.tdi_59 li:before{margin-top:1px;line-height:16px!important}.tdi_59 .tdb-block-inner blockquote p{font-family:brother-xl!important;font-size:30px!important;line-height:1.1!important;font-weight:700!important;text-transform:uppercase!important;color:#222222}.tdi_59,.tdi_59 p{color:#080a19}.tdi_59 h1,.tdi_59 h2,.tdi_59 h3:not(.tds-locker-title),.tdi_59 h4,.tdi_59 h5,.tdi_59 h6{color:#238fee}.tdi_59 .wp-caption-text,.tdi_59 figcaption{color:#080a19}.tdi_59 a:not(.wp-block-button__link){color:#238fee}.tdi_59 a:not(.wp-block-button__link):hover{color:#b361e0}@media (max-width:767px){.tdb_single_content .id_ad_content-horiz-left,.tdb_single_content .id_ad_content-horiz-right,.tdb_single_content .id_ad_content-horiz-center{margin:0 auto 26px auto}}@media (max-width:767px){.tdb_single_content .id_ad_content-horiz-left{margin-right:0}}@media (max-width:767px){.tdb_single_content .id_ad_content-horiz-right{margin-left:0}}@media (max-width:767px){.tdb_single_content .td-a-ad{float:none;text-align:center}.tdb_single_content .td-a-ad img{margin-right:auto;margin-left:auto}.tdb_single_content .tdc-a-ad{float:none}}@media (min-width:768px) and (max-width:1018px){.tdi_59 .tdb-block-inner blockquote p{font-size:24px!important;line-height:1.2!important}}@media (max-width:767px){.tdi_59 h2{line-height:1.2!important}.tdi_59 .tdb-block-inner blockquote p{font-size:24px!important;line-height:1.2!important}}</style><div class="tdb-block-inner td-fix-index"><p class="commission-disclaimer-message"> CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. <a href="/editorial-policy/" target="_blank">Learn More</a>. </p><h2>1. Introduction</h2> <p>OpenGL 3D drawing on Google Maps is a concept of fetching a Google map on a separate window application (rather than on a browser) and extend the functionality of the window in such a way that it would provide feasibility to get 3D drawings possible on it. This concept opens the door to powerful and versatile OpenGL drawings on ubiquitous Google maps.</p> <h2>2. Scenario</h2> <p>In a flight simulator or radar flight detection kind of scenario, a moving air craft is required to be drawn on a map. The air craft has to be independent of the map type. Here, the map type can be many: Road Map Satellite map, Terrain map, Hybrid map, and so forth. The exact position of the air craft with respect to the map latitude, longitude, and its height from the ground are required to be drawn. Sometimes, air craft pitching or rolling movements also need to be drawn.</p> <h2>3. Issues</h2> <p>Google Map and OpenGL both need a windowing system. Qt(5.2), an operating system independent windowing system, has been used.</p> <h2>4. Solution</h2> <h3>4.1 Design</h3> <p>Flight- and Google map-related information has been provided through a conf file, where there is an entity called Controller that reads the file and uses another entity, Drawer, to draw it on a window. Drawer is responsible for drawing the Google map and OpenGL primitives. The conf file is a multiple line entry, with each line formatted as <LATITUDE>, <LONGITUDE>, and <ALTITUDE>. The air craft follows each line and shifts its position accordingly. Rolling, pitching, and heading are calculated as per changes in these three parameters.</p> <p><img decoding="async" alt="GMap1" height="120" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20333%20120'%3E%3C/svg%3E" width="333" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap1.jpg" /><noscript><img decoding="async" alt="GMap1" height="120" src="https://assets.codeguru.com/uploads/2021/07/GMap1.jpg" width="333" /></noscript><br /> <strong>Figure 1:</strong> The three parameters of positioning</p> <p>Further, Drawer can be divided into three different parts:</p> <ul> <li>Window</li> <li>Web Drawer</li> <li>OpenGL Drawer</li> </ul> <p>In order for the Controller to use the three modules in Drawer, a mediator is introduced. It mediates between the Controller and the three components of Drawer.</p> <p><img fetchpriority="high" decoding="async" alt="GMap2" height="146" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20409%20146'%3E%3C/svg%3E" width="409" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap2.jpg" /><noscript><img fetchpriority="high" decoding="async" alt="GMap2" height="146" src="https://assets.codeguru.com/uploads/2021/07/GMap2.jpg" width="409" /></noscript><br /> <strong>Figure 2:</strong> Adding a mediator</p> <p>Here, the drawing engine and view relation is better described in Qt as Graphics View architecture which follows an Observer pattern or MVC architecture. Here, QGraphicsScene with QGraphicsItem behave as data (subjectee) and QGraphicsView behaves as view (observers).</p> <p><img decoding="async" alt="GMap3" height="171" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20436%20171'%3E%3C/svg%3E" width="436" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap3.jpg" /><noscript><img decoding="async" alt="GMap3" height="171" src="https://assets.codeguru.com/uploads/2021/07/GMap3.jpg" width="436" /></noscript><br /> <strong>Figure 3:</strong> The drawing engine and view relation</p> <p>Here, the mediator (QMainWindow) plays an important role to make the Controller interact with the drawing engine and vice versa.</p> <p><img decoding="async" alt="GMap4" height="255" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20497%20255'%3E%3C/svg%3E" width="497" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap4.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap4" height="255" src="https://assets.codeguru.com/uploads/2021/07/GMap4.jpg" width="497" /></noscript><br /> <strong>Figure 4:</strong> The mediator makes the Controller interact with the drawing engine</p> <h3>4.2 Class Diagram</h3> <ul> <li><strong>Controller:</strong> Airplane, which is a type of flight device, extends the device. The device contains the mediator pointer.</li> <li><strong>View:</strong> QGraphicsView (uses QGLWidget as viewport)</li> <li><strong>Data:</strong> QGraphicsScene with item as ngrpahicswebview (extends QGraphicsWebView). ngraphicswebview contains the mediator pointer.</li> <li><strong>Mediator:</strong> nmainwindow extends QMaiWindow and contains device, ngraphicswebview, QGraphicsView, and QGrahpicsScene.</li> </ul> <p><img decoding="async" alt="GMap5" height="329" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20460%20329'%3E%3C/svg%3E" width="460" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap5.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap5" height="329" src="https://assets.codeguru.com/uploads/2021/07/GMap5.jpg" width="460" /></noscript><br /> <strong>Figure 5:</strong> Class diagram</p> <h2>5. How It Works</h2> <p>In Graphics View design, QGraphicsScene is the entity that manages graphics items (QGraphicsItem) that need to be drawn on the graphics view (widget). QGLWidget, being a subclass of QWidget, is made as a widget of the graphics view. QGraphicsWebView, a QGraphicsItem, is sub classed.</p> <p>QGraphicsScene calls each registered graphics item’s paint method, passing QPainter, Style options, and the widget to be drawn on as arguments.</p> <p>Sub classed QGrahpicsWebView, being a graphics item (QGraphicsItem), also gives its paint method a chance where it first calls the parent (QGrahpicsWebView) paint method for 2D Web view painting, followed by enabling QGLWidget current context and then calling OpenGL functions.</p> <p>Thus, 3D is drawn on top of a 2D Web view painting.</p> <h2>6. Program</h2> <pre><<ngrphicswebview.cpp>> void ngraphicswebview::paint(QPainter *p, const QStyleOptionGraphicsItem *options, QWidget *widget){ QGraphicsWebView::paint(p,options,widget); p->beginNativePainting(); mediator->update(this); p->endNativePainting(); } <<nmainwindow.cpp>> nmainwindow::nmainwindow(QWidget *p):QMainWindow(p){ gs=new QGraphicsScene(0,0,1024,768); gview = new QGraphicsView(gs,this); glwidget=new QGLWidget(QGLFormat(QGL::SampleBuffers)); glwidget->makeCurrent(); gwv=new ngraphicswebview(this); gview->setScene(gs); gs->addItem(gwv); gview->setViewport(glwidget); setCentralWidget(gview); . . } </pre> <h2>7. Experimental Data</h2> <p>Experimental data is provided on the Google map where the 3D item is an aircraft. It is tried with static images of the Google map and aircraft and later followed by animation.</p> <p><img decoding="async" alt="GMap6" height="330" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20330'%3E%3C/svg%3E" width="600" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap6.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap6" height="330" src="https://assets.codeguru.com/uploads/2021/07/GMap6.jpg" width="600" /></noscript><br /> <strong>Figure 6:</strong> Aircraft, OpenGL 3D drawing</p> <h3>7.1 Static Drawing</h3> <p>Now, a drawing of an 3D OpenGL item on Google Map (ROAD MAP).</p> <p><img decoding="async" alt="GMap7" height="431" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20431'%3E%3C/svg%3E" width="600" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap7.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap7" height="431" src="https://assets.codeguru.com/uploads/2021/07/GMap7.jpg" width="600" /></noscript><br /> <strong>Figure 7:</strong> A Google Map (ROADMAP) with an 3D OpenGL drawing</p> <h3>7.2 Animation</h3> <p>Animation can be tried on a Google map where a 3D image changes its orientation on moving across the Google map making believe that the 3D entity is actually moving. This technique can use the flight simulator programs running on top of Google Map.</p> <p><img decoding="async" alt="GMap8" height="397" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20576%20397'%3E%3C/svg%3E" width="576" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap8.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap8" height="397" src="https://assets.codeguru.com/uploads/2021/07/GMap8.jpg" width="576" /></noscript><br /> <strong>Figure 8:</strong> Air craft climbing, Google Map (SATELLITE)</p> <p><img decoding="async" alt="GMap9" height="398" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20576%20398'%3E%3C/svg%3E" width="576" data-lazy-src="https://assets.codeguru.com/uploads/2021/07/GMap9.jpg" /><noscript><img loading="lazy" decoding="async" alt="GMap9" height="398" src="https://assets.codeguru.com/uploads/2021/07/GMap9.jpg" width="576" /></noscript><br /> <strong>Figure 9:</strong> Air Craft descending, Google Map (ROADMAP)</p> <h2>8. Summary</h2> <p>This article is about drawing 3D items on a Google map. At the beginning, the article discussed the possible design that can make the implementation exist in the easiest possible fashion. This article also discussed the MVC and mediator design pattern. A little about Qt Graphics View was also discussed. This article includes two kinds of experimental data—one for static graphics on a Google map and other is animation. <a href="/imagesvr_ce/6261/240047.zip" target="new" rel="noopener">Complete source code</a> with conf.txt has been provided.</p> <h2>9. References</h2> <ul> <li>OpenGL Programming Guide, Version 1.4. Dave, Jackie, Mason, and Tom.</li> <li>Qt 5.2 documentation.</li> </ul> </div></div><div class="td_block_wrap tdb_single_post_share tdi_60 td-pb-border-top td_block_template_2" data-td-block-uid="tdi_60" > <style>.tdi_60{margin-top:20px!important;margin-bottom:60px!important}@media (min-width:768px) and (max-width:1018px){.tdi_60{margin-top:15px!important;margin-bottom:40px!important}}</style> <style>.tdi_60 .td-post-sharing-visible{align-items:flex-start}.tdi_60 .td-social-handler .td-social-but-text{font-family:brother-xl!important;font-size:12px!important;font-weight:400!important}.tdi_60 .td-social-network{font-family:brother-xl!important;font-weight:400!important}.tdi_60 .td-social-expand-tabs-icon,.tdi_60 .td-icon-share{color:#080a19}.tdi_60 .td-social-share-text .td-social-but-text{color:#080a19}.tdi_60 .td-social-handler .td-social-but-text:before{background-color:#080a19}.tdi_60 .td-ps-bg .td-social-network div,.tdi_60 .td-ps-icon-bg .td-social-network .td-social-but-icon,.tdi_60 .td-ps-dark-bg .td-social-network div{background-color:#238fee}.tdi_60 .td-ps-icon-arrow .td-social-but-icon:after{border-left-color:#238fee}.tdi_60 .td-ps-border-colored .td-social-but-text{border-color:#238fee}</style><div id="tdi_60" class="td-post-sharing tdb-block td-ps-bg td-ps-notext td-ps-bar td-post-sharing-style5 "><div class="td-post-sharing-visible"><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F" title="Facebook" ><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Drawing+3D+OpenGL+Graphics+on+Google+Maps&url=https%3A%2F%2Fwww.codeguru.com%2Fmultimedia%2Fdrawing-3d-opengl-graphics-on-google-maps%2F&via=CodeGuru" title="Twitter" ><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/&title=Drawing+3D+OpenGL+Graphics+on+Google+Maps" title="Linkedin" ><div class="td-social-but-icon"><i class="td-icon-linkedin"></i></div><div class="td-social-but-text">Linkedin</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Drawing+3D+OpenGL+Graphics+on+Google+Maps %0A%0A https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/" title="WhatsApp" ><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-reddit" href="https://reddit.com/submit?url=https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/&title=Drawing+3D+OpenGL+Graphics+on+Google+Maps" title="ReddIt" ><div class="td-social-but-icon"><i class="td-icon-reddit"></i></div><div class="td-social-but-text">ReddIt</div></a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="tdi_60" title="More"> <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div> </a></div></div></div><div class="vc_row_inner tdi_62 native-boap-before vc_row vc_inner wpb_row td-pb-row" > <style scoped>.tdi_62{position:relative!important;top:0;transform:none;-webkit-transform:none}.tdi_62,.tdi_62 .tdc-inner-columns{display:block}.tdi_62 .tdc-inner-columns{width:100%}@media (min-width:768px){.tdi_62{margin-left:-15px;margin-right:-15px}.tdi_62>.vc_column_inner,.tdi_62>.tdc-inner-columns>.vc_column_inner{padding-left:15px;padding-right:15px}}.tdi_62{margin-bottom:20px!important}.tdi_62 .td_block_wrap{text-align:left}</style><div class="vc_column_inner tdi_64 wpb_column vc_column_container tdc-inner-column td-pb-span3"> <style scoped>.tdi_64{vertical-align:baseline}.tdi_64 .vc_column-inner>.wpb_wrapper,.tdi_64 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_64 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}</style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="tdb-author-box td_block_wrap tdb_single_author_box tdi_65 tdb-content-vert-top td-pb-border-top td_block_template_2" data-td-block-uid="tdi_65" > <style>.tdi_65{margin-bottom:60px!important;box-shadow:0 3px 20px rgba(0,0,0,0.15)!important}@media (min-width:768px) and (max-width:1018px){.tdi_65{margin-bottom:40px!important;box-shadow:0 3px 20px rgba(0,0,0,0.15)!important}}</style> <style>.tdb-author-box .tdb-author-photo,.tdb-author-box .tdb-author-info{display:table-cell;vertical-align:top}.tdb-author-box .tdb-author-photo img{display:block}.tdb-author-box .tdb-author-counters span{display:inline-block;background-color:#222;margin:0 10px 0 0;padding:5px 10px 4px;font-family:var(--td_default_google_font_2,'Roboto',sans-serif);font-size:11px;font-weight:700;line-height:1;color:#fff}.tdb-author-box .tdb-author-name,.tdb-author-box .tdb-author-url{display:block}.tdb-author-box .tdb-author-name{margin:7px 0 8px;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif);font-size:15px;line-height:21px;font-weight:700;color:#222}.tdb-author-box .tdb-author-name:hover{color:#4db2ec}.tdb-author-box .tdb-author-url{margin-bottom:6px;font-size:11px;font-style:italic;line-height:21px;color:#444}.tdb-author-box .tdb-author-url:hover{color:#4db2ec}.tdb-author-box .tdb-author-descr{font-size:12px}.tdb-author-box .tdb-author-social{margin-top:4px}.tdb-author-box .tdb-social-item{position:relative;display:inline-block;-webkit-transition:all 0.2s;transition:all 0.2s;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0)}.tdb-author-box .tdb-social-item:last-child{margin-right:0!important}.tdb-author-box .tdb-social-item i{color:#000;-webkit-transition:all 0.2s;transition:all 0.2s}.tdb-author-box .tdb-social-item:hover i{color:#000}.tdi_65{padding:21px;border:1px solid #ededed}.tdi_65 .tdb-author-photo{display:inline-block;width:130px;transform:translateZ(0);-webkit-transform:translateZ(0);pointer-events:auto}.tdi_65 .tdb-author-info{display:inline-block;width:100%;padding-top:21px;padding-left:0}.tdi_65 .tdb-block-inner{text-align:center}.tdi_65 .avatar,.tdi_65 .tdb-author-photo:before,.tdi_65 .tdb-author-photo:after{border-radius:0px}.tdi_65 .tdb-author-name{color:#238fee;font-family:Rubik!important;font-size:18px!important;line-height:1.2!important;font-weight:400!important}.tdi_65 .tdb-author-name:hover{color:#b361e0}.tdi_65 .tdb-author-url{color:#a5a5a5;font-family:Rubik!important;font-size:11px!important;line-height:1.1!important;font-weight:400!important}.tdi_65 .tdb-author-url:hover{color:#b361e0}.tdi_65 .tdb-author-descr{color:#080a19;font-family:Rubik!important;font-size:15px!important;font-weight:300!important}.tdi_65 .tdb-social-item i{font-size:16px;vertical-align:middle;line-height:24px;color:#080a19}.tdi_65 .tdb-social-item i.td-icon-twitter,.tdi_65 .tdb-social-item i.td-icon-linkedin,.tdi_65 .tdb-social-item i.td-icon-pinterest,.tdi_65 .tdb-social-item i.td-icon-blogger,.tdi_65 .tdb-social-item i.td-icon-vimeo{font-size:12.8px}.tdi_65 .tdb-social-item{min-width:24px;height:24px;margin:7px 14px 7px 0}.tdi_65 .tdb-social-item:hover i{color:#ffffff}.tdi_65 .tdb-social-item:hover{background-color:#238fee}.tdi_65 .tdb-author-photo:hover:before{opacity:0}@media (min-width:1019px) and (max-width:1140px){.tdi_65{border:1px solid #ededed}}@media (min-width:768px) and (max-width:1018px){.tdi_65{border:1px solid #ededed}.tdi_65 .tdb-author-descr{font-size:12px!important}}@media (max-width:767px){.tdi_65{border:1px solid #ededed}}</style><div class="tdb-block-inner td-fix-index"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/" class="tdb-author-photo" title="Pravin Kumar Sinha"><img alt='Pravin Kumar Sinha' src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20130%20130'%3E%3C/svg%3E" data-lazy-srcset='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=260&d=mm&r=g 2x' class='avatar avatar-130 photo' height='130' width='130' decoding='async' data-lazy-src="https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=130&d=mm&r=g"/><noscript><img alt='Pravin Kumar Sinha' src='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=130&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/a76c46d6d7c6e84dc7069e1ab7c3f4ec?s=260&d=mm&r=g 2x' class='avatar avatar-130 photo' height='130' width='130' loading='lazy' decoding='async'/></noscript></a><div class="tdb-author-info"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/" class="tdb-author-name">Pravin Kumar Sinha</a><div class="tdb-author-descr"></div><div class="tdb-author-social"></div></div></div></div></div></div></div><div class="vc_column_inner tdi_67 wpb_column vc_column_container tdc-inner-column td-pb-span9"> <style scoped>.tdi_67{vertical-align:baseline}.tdi_67 .vc_column-inner>.wpb_wrapper,.tdi_67 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_67 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}</style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="td_block_wrap td_flex_block_1 tdi_68 td-pb-border-top td_block_template_2 td_flex_block" data-td-block-uid="tdi_68" > <style> .td_block_template_2.widget > ul > li { margin-left: 0 !important; } .td_block_template_2 .td-block-title { font-size: 17px; font-weight: 500; margin-top: 0; margin-bottom: 16px; line-height: 31px; text-align: left; } .td_block_template_2 .td-block-title > * { color: var(--td_text_header_color, #000); } .td_block_template_2 .td-related-title a { padding: 0 20px 0 0; } @media (max-width: 767px) { .td_block_template_2 .td-related-title a { font-size: 15px; } } .td_block_template_2 .td-related-title .td-cur-simple-item { color: var(--td_theme_color, #4db2ec); } .td-theme-wrap .tdi_68 .td-block-title > *, .td-theme-wrap .tdi_68 .td-pulldown-filter-link:hover, .td-theme-wrap .tdi_68 .td-subcat-item a:hover, .td-theme-wrap .tdi_68 .td-subcat-item .td-cur-simple-item, .td-theme-wrap .tdi_68 .td-subcat-dropdown:hover .td-subcat-more span, .td-theme-wrap .tdi_68 .td-subcat-dropdown:hover .td-subcat-more i { color: #151948; } .td-theme-wrap .tdi_68 .td-subcat-dropdown ul:after { background-color: #151948; } .td-theme-wrap .tdi_68 .td_module_wrap:hover .entry-title a, .td-theme-wrap .tdi_68 .td_quote_on_blocks, .td-theme-wrap .tdi_68 .td-opacity-cat .td-post-category:hover, .td-theme-wrap .tdi_68 .td-opacity-read .td-read-more a:hover, .td-theme-wrap .tdi_68 .td-opacity-author .td-post-author-name a:hover, .td-theme-wrap .tdi_68 .td-instagram-user a { color: #151948; } .td-theme-wrap .tdi_68 .td-next-prev-wrap a:hover, .td-theme-wrap .tdi_68 .td-load-more-wrap a:hover { background-color: #151948; border-color: #151948; } .td-theme-wrap .tdi_68 .td-read-more a, .td-theme-wrap .tdi_68 .td-weather-information:before, .td-theme-wrap .tdi_68 .td-weather-week:before, .td-theme-wrap .tdi_68 .td-exchange-header:before, .td-theme-wrap .td-footer-wrapper .tdi_68 .td-post-category, .td-theme-wrap .tdi_68 .td-post-category:hover { background-color: #151948; } </style> <style>.tdi_68 .td-image-wrap{padding-bottom:60%}.tdi_68 .entry-thumb{background-position:center 50%}.tdi_68 .td-image-container{flex:0 0 30%;width:30%;display:block;order:0}.ie10 .tdi_68 .td-image-container,.ie11 .tdi_68 .td-image-container{flex:0 0 auto}.tdi_68 .td-module-container{flex-direction:row;padding:0 0 10px 0;border-width:0 0 2px 0;border-style:solid;border-color:#000;border-color:#eaeaea!important}.ie10 .tdi_68 .td-module-meta-info,.ie11 .tdi_68 .td-module-meta-info{flex:1}body .tdi_68 .td-favorite{font-size:36px;box-shadow:1px 1px 4px 0px rgba(0,0,0,0.2)}.tdi_68 .td-module-meta-info{padding:0px;border-color:#eaeaea}.tdi_68 .td_module_wrap{width:50%;float:left;padding-left:10px;padding-right:10px;padding-bottom:9px;margin-bottom:9px}.rtl .tdi_68 .td_module_wrap{float:right}.tdi_68 .td_block_inner{margin-left:-10px;margin-right:-10px}.tdi_68 .td-module-container:before{bottom:-9px;border-color:#eaeaea}.tdi_68 .td-post-vid-time{display:block}.tdi_68 .td-post-category{padding:6px 8px;background-color:#238fee;color:#ffffff;border-color:#ffffff;font-family:brother-xl!important;font-size:14px!important}.tdi_68 .td-post-category:not(.td-post-extra-category){display:none}.tdi_68 .td-author-photo .avatar{width:20px;height:20px;margin-right:6px;border-radius:50%}.tdi_68 .td-excerpt{display:none;margin:0px;column-count:1;column-gap:48px}.tdi_68 .td-audio-player{opacity:1;visibility:visible;height:auto;font-size:13px}.tdi_68 .td-author-date{display:inline}.tdi_68 .entry-review-stars{display:inline-block}.tdi_68 .td-icon-star,.tdi_68 .td-icon-star-empty,.tdi_68 .td-icon-star-half{font-size:15px}.tdi_68 .td-module-comments{display:none}.tdi_68 .td_module_wrap:nth-child(2n+1){clear:both}.tdi_68 .td_module_wrap:nth-last-child(-n+2){margin-bottom:0;padding-bottom:0}.tdi_68 .td_module_wrap:nth-last-child(-n+2) .td-module-container:before{display:none}.tdi_68 .td-module-thumb a:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26));background:linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26))}.tdi_68 .td-post-category:hover{background-color:#f2f2f2!important;color:#238fee;border-color:#ffffff}.tdi_68 .td-module-title a{color:#151948;box-shadow:inset 0 0 0 0 #238fee}.tdi_68 .td_module_wrap:hover .td-module-title a{color:#151948!important;box-shadow:inset 0 -2px 0 0 #238fee}.tdi_68 .td-post-author-name a{color:#238fee}.tdi_68 .td-post-author-name:hover a{color:#b361e0}.tdi_68 .td-post-date,.tdi_68 .td-post-author-name span{color:#a5a5a5}.tdi_68.td_with_ajax_pagination .td-next-prev-wrap a,.tdi_68 .td-load-more-wrap a{color:#a5a5a5;background-color:#ffffff;border-color:#dbdbdb;border-width:0px}.tdi_68 .td-load-more-wrap a .td-load-more-icon-svg svg,.tdi_68 .td-load-more-wrap a .td-load-more-icon-svg svg *,.tdi_68.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg,.tdi_68.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg *{fill:#a5a5a5}.tdi_68.td_with_ajax_pagination .td-next-prev-wrap a:hover,.tdi_68 .td-load-more-wrap a:hover{color:#ffffff;background-color:#238fee!important;border-color:#238fee!important;border-color:#f2f2f2!important}.tdi_68 .td-load-more-wrap a:hover .td-load-more-icon-svg svg,.tdi_68 .td-load-more-wrap a:hover .td-load-more-icon-svg svg *,.tdi_68.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg,.tdi_68.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg *{fill:#ffffff}.tdi_68 .entry-title{margin:0 0 5px 0;font-family:brother-xl!important;font-size:17px!important;line-height:1.2!important;font-weight:700!important}.tdi_68 .td-read-more{margin:15px 0 0 0}.tdi_68 .td-read-more a{border-width:2px;border-style:solid;border-color:#000;background-color:#238fee!important;color:#ffffff;border-color:#ffffff!important;font-family:brother-xl!important;font-size:12px!important;font-weight:700!important}.tdi_68 .td-read-more:hover a{background-color:#ffffff!important;color:#a5a5a5;border-color:#dbdbdb!important}.tdi_68.td_with_ajax_pagination .td-next-prev-wrap,.tdi_68 .td-load-more-wrap{margin-top:0px}.tdi_68 .td-block-title a,.tdi_68 .td-block-title span{font-family:brother-xl!important;font-size:30px!important;font-weight:700!important;text-transform:capitalize!important}.tdi_68 .td-subcat-list a,.tdi_68 .td-subcat-dropdown span,.tdi_68 .td-subcat-dropdown a{font-family:brother-xl!important}.tdi_68 .td-editor-date,.tdi_68 .td-editor-date .td-post-author-name a,.tdi_68 .td-editor-date .entry-date,.tdi_68 .td-module-comments a{font-family:Rubik!important;font-size:14px!important;font-weight:400!important}.tdi_68 .td-load-more-wrap a{font-family:brother-xl!important}html:not([class*='ie']) .tdi_68 .td-module-container:hover .entry-thumb:before{opacity:0}html:not([class*='ie']) .tdi_68 .entry-thumb{filter:brightness(1) contrast(1) saturate(1);transition:all 1s ease;-webkit-transition:all 1s ease}@media (min-width:768px){.tdi_68 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}@media (min-width:1141px){html:not([class*='ie']) .tdi_68 .td-module-container:hover .entry-thumb{filter:brightness(0.7) contrast(0.7) saturate(1)}}@media (min-width:1019px) and (max-width:1140px){.tdi_68 .td_module_wrap{padding-bottom:9px;margin-bottom:9px;clear:none!important;padding-bottom:9px!important;margin-bottom:9px!important}.tdi_68 .td-module-container:before{bottom:-9px}.tdi_68 .td_module_wrap:nth-child(2n+1){clear:both!important}.tdi_68 .td_module_wrap:nth-last-child(-n+2){margin-bottom:0!important;padding-bottom:0!important}.tdi_68 .td_module_wrap .td-module-container:before{display:block!important}.tdi_68 .td_module_wrap:nth-last-child(-n+2) .td-module-container:before{display:none!important}.tdi_68 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_68 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_68 .entry-title{font-size:14px!important}@media (min-width:768px){.tdi_68 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (min-width:768px) and (max-width:1018px){.tdi_68 .td-image-wrap{padding-bottom:90%}.tdi_68 .td-module-meta-info{padding:0 0 0 10px}.tdi_68 .td_module_wrap{padding-bottom:8px;margin-bottom:8px;clear:none!important;padding-bottom:8px!important;margin-bottom:8px!important}.tdi_68 .td-module-container:before{bottom:-8px}.tdi_68 .td_module_wrap:nth-child(2n+1){clear:both!important}.tdi_68 .td_module_wrap:nth-last-child(-n+2){margin-bottom:0!important;padding-bottom:0!important}.tdi_68 .td_module_wrap .td-module-container:before{display:block!important}.tdi_68 .td_module_wrap:nth-last-child(-n+2) .td-module-container:before{display:none!important}.tdi_68 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_68 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_68 .entry-title{font-size:12px!important}@media (min-width:768px){.tdi_68 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (max-width:767px){.tdi_68 .td-module-meta-info{padding:0px 5px 5px 15px}.tdi_68 .td_module_wrap{width:100%;float:left;padding-bottom:9px;margin-bottom:9px;padding-bottom:9px!important;margin-bottom:9px!important}.rtl .tdi_68 .td_module_wrap{float:right}.tdi_68 .td-module-container:before{bottom:-9px}.tdi_68 .td_module_wrap:nth-last-child(1){margin-bottom:0!important;padding-bottom:0!important}.tdi_68 .td_module_wrap .td-module-container:before{display:block!important}.tdi_68 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none!important}.tdi_68 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_68 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_68 .entry-title{font-size:15px!important}@media (min-width:768px){.tdi_68 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}</style><script data-src="data:text/javascript;base64,dmFyIGJsb2NrX3RkaV82OCA9IG5ldyB0ZEJsb2NrKCk7CmJsb2NrX3RkaV82OC5pZCA9ICJ0ZGlfNjgiOwpibG9ja190ZGlfNjguYXR0cyA9ICd7ImZfaGVhZGVyX2ZvbnRfdHJhbnNmb3JtIjoiY2FwaXRhbGl6ZSIsImFqYXhfcGFnaW5hdGlvbiI6IiIsImNhdGVnb3J5X2lkIjoiX21vcmVfYXV0aG9yIiwic29ydCI6IiIsImFsbF9tb2R1bGVzX3NwYWNlIjoiZXlKd2IzSjBjbUZwZENJNklqRTJJaXdpWVd4c0lqb2lNVGdpZlE9PSIsImltYWdlX2Zsb2F0ZWQiOiJmbG9hdF9sZWZ0IiwiaW1hZ2Vfd2lkdGgiOiIzMCIsImltYWdlX2hlaWdodCI6ImV5SmhiR3dpT2lJMk1DVWlMQ0p3YjNKMGNtRnBkQ0k2SWprd0luMD0iLCJtZXRhX3BhZGRpbmciOiJleUp3YjNKMGNtRnBkQ0k2SWpBZ01DQXdJREV3Y0hnaUxDSndhRzl1WlNJNklqQndlQ0ExY0hnZ05YQjRJREUxY0hnaUxDSmhiR3dpT2lJd0luMD0iLCJzaG93X2V4Y2VycHQiOiJub25lIiwic2hvd19idG4iOiIiLCJzaG93X2NvbSI6Im5vbmUiLCJzaG93X2RhdGUiOiIiLCJzaG93X2F1dGhvciI6IiIsImJsb2NrX3RlbXBsYXRlX2lkIjoidGRfYmxvY2tfdGVtcGxhdGVfMiIsImZfdGl0bGVfZm9udF9zaXplIjoiZXlKd2IzSjBjbUZwZENJNklqRXlJaXdpYkdGdVpITmpZWEJsSWpvaU1UUWlMQ0p3YUc5dVpTSTZJakUxSWl3aVlXeHNJam9pTVRjaWZRPT0iLCJmX3RpdGxlX2ZvbnRfbGluZV9oZWlnaHQiOiIxLjIiLCJmX3RpdGxlX2ZvbnRfd2VpZ2h0IjoiNzAwIiwiZl9oZWFkZXJfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9oZWFkZXJfZm9udF93ZWlnaHQiOiI3MDAiLCJmX3RpdGxlX2ZvbnRfZmFtaWx5IjoidGtfMSIsInNob3dfY2F0IjoiZXlKc1lXNWtjMk5oY0dVaU9pSnViMjVsSWl3aWNHOXlkSEpoYVhRaU9pSnViMjVsSWl3aWNHaHZibVVpT2lKdWIyNWxJaXdpWVd4c0lqb2libTl1WlNKOSIsIm1jMV9lbCI6IjEwIiwibW9kdWxlc19nYXAiOiIyMCIsIm1vZHVsZXNfY2F0ZWdvcnkiOiIiLCJtb2R1bGVzX2NhdGVnb3J5X3BhZGRpbmciOiI2cHggOHB4IiwiYXJ0X2V4Y2VycHQiOiIwIiwicGFnX2JvcmRlcl93aWR0aCI6IjAiLCJwcmV2X3RkaWNvbiI6InRkLWljb24tbGluZWUiLCJmX2FqYXhfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9tb3JlX2ZvbnRfZmFtaWx5IjoidGtfMSIsImZfY2F0X2ZvbnRfZmFtaWx5IjoidGtfMSIsImZfbWV0YV9mb250X2ZhbWlseSI6IjcxMiIsImZfbWV0YV9mb250X3dlaWdodCI6IjQwMCIsImZfbWV0YV9mb250X3NpemUiOiIxNCIsImZfY2F0X2ZvbnRfc2l6ZSI6IjE0IiwiZmVfYnJpZ2h0bmVzc19oIjoiMC43IiwiZmVfY29udHJhc3RfaCI6IjAuNyIsImNvbG9yX292ZXJsYXkiOiJleUowZVhCbElqb2laM0poWkdsbGJuUWlMQ0pqYjJ4dmNqRWlPaUp5WjJKaEtEQXNNVEkyTERJek55d3dMakkyS1NJc0ltTnZiRzl5TWlJNkluSm5ZbUVvTXpnc01UZzVMREl6TXl3d0xqSTVLU0lzSW0xcGVHVmtRMjlzYjNKeklqcGJYU3dpWkdWbmNtVmxJam9pT1RBaUxDSmpjM01pT2lKaVlXTnJaM0p2ZFc1a09pQXRkMlZpYTJsMExXeHBibVZoY2kxbmNtRmthV1Z1ZENnNU1HUmxaeXh5WjJKaEtETTRMREU0T1N3eU16TXNNQzR5T1Nrc2NtZGlZU2d3TERFeU5pd3lNemNzTUM0eU5pa3BPMkpoWTJ0bmNtOTFibVE2SUd4cGJtVmhjaTFuY21Ga2FXVnVkQ2c1TUdSbFp5eHlaMkpoS0RNNExERTRPU3d5TXpNc01DNHlPU2tzY21kaVlTZ3dMREV5Tml3eU16Y3NNQzR5TmlrcE95SXNJbU56YzFCaGNtRnRjeUk2SWprd1pHVm5MSEpuWW1Fb016Z3NNVGc1TERJek15d3dMakk1S1N4eVoySmhLREFzTVRJMkxESXpOeXd3TGpJMktTSjkiLCJ0aXRsZV90eHQiOiIjMTUxOTQ4IiwidGl0bGVfdHh0X2hvdmVyIjoiIzE1MTk0OCIsImFsbF91bmRlcmxpbmVfaGVpZ2h0IjoiMiIsImFsbF91bmRlcmxpbmVfY29sb3IiOiIjMjM4ZmVlIiwiY2F0X2JnIjoiIzIzOGZlZSIsImNhdF9iZ19ob3ZlciI6IiNmMmYyZjIiLCJjYXRfdHh0X2hvdmVyIjoiIzIzOGZlZSIsImNhdF90eHQiOiIjZmZmZmZmIiwiY2F0X2JvcmRlciI6IiNmZmZmZmYiLCJjYXRfYm9yZGVyX2hvdmVyIjoiI2ZmZmZmZiIsImF1dGhvcl90eHQiOiIjMjM4ZmVlIiwiYXV0aG9yX3R4dF9ob3ZlciI6IiNiMzYxZTAiLCJkYXRlX3R4dCI6IiNhNWE1YTUiLCJwYWdfdGV4dCI6IiNhNWE1YTUiLCJwYWdfaF90ZXh0IjoiI2ZmZmZmZiIsInBhZ19iZyI6IiNmZmZmZmYiLCJwYWdfaF9iZyI6IiMyMzhmZWUiLCJwYWdfaF9ib3JkZXIiOiIjZjJmMmYyIiwicGFnX2JvcmRlciI6IiNkYmRiZGIiLCJoZWFkZXJfdGV4dF9jb2xvciI6IiMxNTE5NDgiLCJoaWRlX2ltYWdlIjoieWVzIiwicGFnX3NwYWNlIjoiMCIsImZfaGVhZGVyX2ZvbnRfc2l6ZSI6IjMwIiwibGltaXQiOiI0IiwibWMxX3RsIjoiMjAiLCJhcnRfYnRuIjoiMTVweCAwIDAgMCIsImFydF90aXRsZSI6IjAgMCA1cHggMCIsIm1vZHVsZXNfYm9yZGVyX3NpemUiOiIwIDAgMnB4IDAiLCJtX3BhZGRpbmciOiIwIDAgMTBweCAwIiwiYnRuX2JnIjoiIzIzOGZlZSIsImJ0bl9iZ19ob3ZlciI6IiNmZmZmZmYiLCJidG5fdHh0X2hvdmVyIjoiI2E1YTVhNSIsImJ0bl9ib3JkZXJfaG92ZXIiOiIjZGJkYmRiIiwiYnRuX3R4dCI6IiNmZmZmZmYiLCJidG5fYm9yZGVyIjoiI2ZmZmZmZiIsImZfYnRuX2ZvbnRfc2l6ZSI6IjEyIiwiZl9idG5fZm9udF93ZWlnaHQiOiI3MDAiLCJmX2J0bl9mb250X2ZhbWlseSI6InRrXzEiLCJidG5fYm9yZGVyX3dpZHRoIjoiMiIsIm1vZHVsZXNfb25fcm93IjoiZXlKaGJHd2lPaUkxTUNVaUxDSndhRzl1WlNJNklqRXdNQ1VpZlE9PSIsImN1c3RvbV90aXRsZSI6Ik1vcmUgYnkgQXV0aG9yIiwiYmxvY2tfdHlwZSI6InRkX2ZsZXhfYmxvY2tfMSIsInNlcGFyYXRvciI6IiIsImN1c3RvbV91cmwiOiIiLCJ0aXRsZV90YWciOiIiLCJtYzFfdGl0bGVfdGFnIjoiIiwicG9zdF9pZHMiOiItMTQ1MjQiLCJ0YXhvbm9taWVzIjoiIiwiY2F0ZWdvcnlfaWRzIjoiIiwiaW5fYWxsX3Rlcm1zIjoiIiwidGFnX3NsdWciOiIiLCJhdXRvcnNfaWQiOiIiLCJpbnN0YWxsZWRfcG9zdF90eXBlcyI6IiIsImluY2x1ZGVfY2ZfcG9zdHMiOiIiLCJleGNsdWRlX2NmX3Bvc3RzIjoiIiwicG9wdWxhcl9ieV9kYXRlIjoiIiwibGlua2VkX3Bvc3RzIjoiIiwiZmF2b3VyaXRlX29ubHkiOiIiLCJvZmZzZXQiOiIiLCJvcGVuX2luX25ld193aW5kb3ciOiIiLCJzaG93X21vZGlmaWVkX2RhdGUiOiIiLCJ0aW1lX2FnbyI6IiIsInRpbWVfYWdvX2FkZF90eHQiOiJhZ28iLCJ0aW1lX2Fnb190eHRfcG9zIjoiIiwicmV2aWV3X3NvdXJjZSI6IiIsImVsX2NsYXNzIjoiIiwidGRfcXVlcnlfY2FjaGUiOiIiLCJ0ZF9xdWVyeV9jYWNoZV9leHBpcmF0aW9uIjoiIiwidGRfYWpheF9maWx0ZXJfdHlwZSI6IiIsInRkX2FqYXhfZmlsdGVyX2lkcyI6IiIsInRkX2ZpbHRlcl9kZWZhdWx0X3R4dCI6IkFsbCIsInRkX2FqYXhfcHJlbG9hZGluZyI6IiIsImNvbnRhaW5lcl93aWR0aCI6IiIsIm1vZHVsZXNfYm9yZGVyX3N0eWxlIjoiIiwibW9kdWxlc19ib3JkZXJfY29sb3IiOiIjZWFlYWVhIiwibW9kdWxlc19ib3JkZXJfcmFkaXVzIjoiIiwibW9kdWxlc19kaXZpZGVyIjoiIiwibW9kdWxlc19kaXZpZGVyX2NvbG9yIjoiI2VhZWFlYSIsImhfZWZmZWN0IjoiIiwiaW1hZ2Vfc2l6ZSI6IiIsImltYWdlX2FsaWdubWVudCI6IjUwIiwiaW1hZ2VfcmFkaXVzIjoiIiwic2hvd19mYXZvdXJpdGVzIjoiIiwiZmF2X3NpemUiOiIyIiwiZmF2X3NwYWNlIjoiIiwiZmF2X2ljb19jb2xvciI6IiIsImZhdl9pY29fY29sb3JfaCI6IiIsImZhdl9iZyI6IiIsImZhdl9iZ19oIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfaGVhZGVyIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfdGl0bGUiOiJTaGFkb3ciLCJmYXZfc2hhZG93X3NoYWRvd19zaXplIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfb2Zmc2V0X2hvcml6b250YWwiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19vZmZzZXRfdmVydGljYWwiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19zcHJlYWQiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19jb2xvciI6IiIsInZpZGVvX2ljb24iOiIiLCJ2aWRlb19wb3B1cCI6InllcyIsInZpZGVvX3JlYyI6IiIsInNwb3RfaGVhZGVyIjoiIiwidmlkZW9fcmVjX3RpdGxlIjoiIiwidmlkZW9fcmVjX2NvbG9yIjoiIiwidmlkZW9fcmVjX2Rpc2FibGUiOiIiLCJhdXRvcGxheV92aWQiOiJ5ZXMiLCJzaG93X3ZpZF90IjoiYmxvY2siLCJ2aWRfdF9tYXJnaW4iOiIiLCJ2aWRfdF9wYWRkaW5nIjoiIiwidmlkZW9fdGl0bGVfY29sb3IiOiIiLCJ2aWRlb190aXRsZV9jb2xvcl9oIjoiIiwidmlkZW9fYmciOiIiLCJ2aWRlb19vdmVybGF5IjoiIiwidmlkX3RfY29sb3IiOiIiLCJ2aWRfdF9iZ19jb2xvciI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfaGVhZGVyIjoiIiwiZl92aWRfdGl0bGVfZm9udF90aXRsZSI6IlZpZGVvIHBvcC11cCBhcnRpY2xlIHRpdGxlIiwiZl92aWRfdGl0bGVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfZmFtaWx5IjoiIiwiZl92aWRfdGl0bGVfZm9udF9zaXplIjoiIiwiZl92aWRfdGl0bGVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfc3R5bGUiOiIiLCJmX3ZpZF90aXRsZV9mb250X3dlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGl0bGVfZm9udF9zcGFjaW5nIjoiIiwiZl92aWRfdGl0bGVfIjoiIiwiZl92aWRfdGltZV9mb250X3RpdGxlIjoiVmlkZW8gZHVyYXRpb24gdGV4dCIsImZfdmlkX3RpbWVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpbWVfZm9udF9mYW1pbHkiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfc2l6ZSI6IiIsImZfdmlkX3RpbWVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpbWVfZm9udF9zdHlsZSI6IiIsImZfdmlkX3RpbWVfZm9udF93ZWlnaHQiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGltZV9mb250X3NwYWNpbmciOiIiLCJmX3ZpZF90aW1lXyI6IiIsIm1ldGFfaW5mb19hbGlnbiI6IiIsIm1ldGFfaW5mb19ob3JpeiI6ImxheW91dC1kZWZhdWx0IiwibWV0YV93aWR0aCI6IiIsIm1ldGFfbWFyZ2luIjoiIiwibWV0YV9zcGFjZSI6IiIsIm1ldGFfaW5mb19ib3JkZXJfc2l6ZSI6IiIsIm1ldGFfaW5mb19ib3JkZXJfc3R5bGUiOiIiLCJtZXRhX2luZm9fYm9yZGVyX2NvbG9yIjoiI2VhZWFlYSIsIm1ldGFfaW5mb19ib3JkZXJfcmFkaXVzIjoiIiwibW9kdWxlc19jYXRlZ29yeV9tYXJnaW4iOiIiLCJtb2R1bGVzX2NhdF9ib3JkZXIiOiIiLCJtb2R1bGVzX2NhdGVnb3J5X3JhZGl1cyI6IjAiLCJtb2R1bGVzX2V4dHJhX2NhdCI6IiIsImF1dGhvcl9waG90byI6IiIsImF1dGhvcl9waG90b19zaXplIjoiIiwiYXV0aG9yX3Bob3RvX3NwYWNlIjoiIiwiYXV0aG9yX3Bob3RvX3JhZGl1cyI6IiIsInNob3dfcmV2aWV3IjoiaW5saW5lLWJsb2NrIiwicmV2aWV3X3NwYWNlIjoiIiwicmV2aWV3X3NpemUiOiIyLjUiLCJyZXZpZXdfZGlzdGFuY2UiOiIiLCJleGNlcnB0X2NvbCI6IjEiLCJleGNlcnB0X2dhcCI6IiIsImV4Y2VycHRfbWlkZGxlIjoiIiwiZXhjZXJwdF9pbmxpbmUiOiIiLCJzaG93X2F1ZGlvIjoiYmxvY2siLCJoaWRlX2F1ZGlvIjoiIiwiYXJ0X2F1ZGlvIjoiIiwiYXJ0X2F1ZGlvX3NpemUiOiIxLjUiLCJidG5fdGl0bGUiOiIiLCJidG5fbWFyZ2luIjoiIiwiYnRuX3BhZGRpbmciOiIiLCJidG5fcmFkaXVzIjoiIiwicGFnX3BhZGRpbmciOiIiLCJwYWdfYm9yZGVyX3JhZGl1cyI6IiIsIm5leHRfdGRpY29uIjoiIiwicGFnX2ljb25zX3NpemUiOiIiLCJmX2hlYWRlcl9mb250X2hlYWRlciI6IiIsImZfaGVhZGVyX2ZvbnRfdGl0bGUiOiJCbG9jayBoZWFkZXIiLCJmX2hlYWRlcl9mb250X3NldHRpbmdzIjoiIiwiZl9oZWFkZXJfZm9udF9saW5lX2hlaWdodCI6IiIsImZfaGVhZGVyX2ZvbnRfc3R5bGUiOiIiLCJmX2hlYWRlcl9mb250X3NwYWNpbmciOiIiLCJmX2hlYWRlcl8iOiIiLCJmX2FqYXhfZm9udF90aXRsZSI6IkFqYXggY2F0ZWdvcmllcyIsImZfYWpheF9mb250X3NldHRpbmdzIjoiIiwiZl9hamF4X2ZvbnRfc2l6ZSI6IiIsImZfYWpheF9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9hamF4X2ZvbnRfc3R5bGUiOiIiLCJmX2FqYXhfZm9udF93ZWlnaHQiOiIiLCJmX2FqYXhfZm9udF90cmFuc2Zvcm0iOiIiLCJmX2FqYXhfZm9udF9zcGFjaW5nIjoiIiwiZl9hamF4XyI6IiIsImZfbW9yZV9mb250X3RpdGxlIjoiTG9hZCBtb3JlIGJ1dHRvbiIsImZfbW9yZV9mb250X3NldHRpbmdzIjoiIiwiZl9tb3JlX2ZvbnRfc2l6ZSI6IiIsImZfbW9yZV9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9tb3JlX2ZvbnRfc3R5bGUiOiIiLCJmX21vcmVfZm9udF93ZWlnaHQiOiIiLCJmX21vcmVfZm9udF90cmFuc2Zvcm0iOiIiLCJmX21vcmVfZm9udF9zcGFjaW5nIjoiIiwiZl9tb3JlXyI6IiIsImZfdGl0bGVfZm9udF9oZWFkZXIiOiIiLCJmX3RpdGxlX2ZvbnRfdGl0bGUiOiJBcnRpY2xlIHRpdGxlIiwiZl90aXRsZV9mb250X3NldHRpbmdzIjoiIiwiZl90aXRsZV9mb250X3N0eWxlIjoiIiwiZl90aXRsZV9mb250X3RyYW5zZm9ybSI6IiIsImZfdGl0bGVfZm9udF9zcGFjaW5nIjoiIiwiZl90aXRsZV8iOiIiLCJmX2NhdF9mb250X3RpdGxlIjoiQXJ0aWNsZSBjYXRlZ29yeSB0YWciLCJmX2NhdF9mb250X3NldHRpbmdzIjoiIiwiZl9jYXRfZm9udF9saW5lX2hlaWdodCI6IiIsImZfY2F0X2ZvbnRfc3R5bGUiOiIiLCJmX2NhdF9mb250X3dlaWdodCI6IiIsImZfY2F0X2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9jYXRfZm9udF9zcGFjaW5nIjoiIiwiZl9jYXRfIjoiIiwiZl9tZXRhX2ZvbnRfdGl0bGUiOiJBcnRpY2xlIG1ldGEgaW5mbyIsImZfbWV0YV9mb250X3NldHRpbmdzIjoiIiwiZl9tZXRhX2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX21ldGFfZm9udF9zdHlsZSI6IiIsImZfbWV0YV9mb250X3RyYW5zZm9ybSI6IiIsImZfbWV0YV9mb250X3NwYWNpbmciOiIiLCJmX21ldGFfIjoiIiwiZl9leF9mb250X3RpdGxlIjoiQXJ0aWNsZSBleGNlcnB0IiwiZl9leF9mb250X3NldHRpbmdzIjoiIiwiZl9leF9mb250X2ZhbWlseSI6IiIsImZfZXhfZm9udF9zaXplIjoiIiwiZl9leF9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9leF9mb250X3N0eWxlIjoiIiwiZl9leF9mb250X3dlaWdodCI6IiIsImZfZXhfZm9udF90cmFuc2Zvcm0iOiIiLCJmX2V4X2ZvbnRfc3BhY2luZyI6IiIsImZfZXhfIjoiIiwiZl9idG5fZm9udF90aXRsZSI6IkFydGljbGUgcmVhZCBtb3JlIGJ1dHRvbiIsImZfYnRuX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2J0bl9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9idG5fZm9udF9zdHlsZSI6IiIsImZfYnRuX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9idG5fZm9udF9zcGFjaW5nIjoiIiwiZl9idG5fIjoiIiwibWl4X2NvbG9yIjoiIiwibWl4X3R5cGUiOiIiLCJmZV9icmlnaHRuZXNzIjoiMSIsImZlX2NvbnRyYXN0IjoiMSIsImZlX3NhdHVyYXRlIjoiMSIsIm1peF9jb2xvcl9oIjoiIiwibWl4X3R5cGVfaCI6IiIsImZlX3NhdHVyYXRlX2giOiIxIiwibV9iZyI6IiIsInNoYWRvd19zaGFkb3dfaGVhZGVyIjoiIiwic2hhZG93X3NoYWRvd190aXRsZSI6Ik1vZHVsZSBTaGFkb3ciLCJzaGFkb3dfc2hhZG93X3NpemUiOiIiLCJzaGFkb3dfc2hhZG93X29mZnNldF9ob3Jpem9udGFsIjoiIiwic2hhZG93X3NoYWRvd19vZmZzZXRfdmVydGljYWwiOiIiLCJzaGFkb3dfc2hhZG93X3NwcmVhZCI6IiIsInNoYWRvd19zaGFkb3dfY29sb3IiOiIiLCJjYXRfc3R5bGUiOiIiLCJtZXRhX2JnIjoiIiwiZXhfdHh0IjoiIiwiY29tX2JnIjoiIiwiY29tX3R4dCI6IiIsInJldl90eHQiOiIiLCJhdWRpb19idG5fY29sb3IiOiIiLCJhdWRpb190aW1lX2NvbG9yIjoiIiwiYXVkaW9fYmFyX2NvbG9yIjoiIiwiYXVkaW9fYmFyX2N1cnJfY29sb3IiOiIiLCJzaGFkb3dfbV9zaGFkb3dfaGVhZGVyIjoiIiwic2hhZG93X21fc2hhZG93X3RpdGxlIjoiTWV0YSBpbmZvIHNoYWRvdyIsInNoYWRvd19tX3NoYWRvd19zaXplIjoiIiwic2hhZG93X21fc2hhZG93X29mZnNldF9ob3Jpem9udGFsIjoiIiwic2hhZG93X21fc2hhZG93X29mZnNldF92ZXJ0aWNhbCI6IiIsInNoYWRvd19tX3NoYWRvd19zcHJlYWQiOiIiLCJzaGFkb3dfbV9zaGFkb3dfY29sb3IiOiIiLCJhamF4X3BhZ2luYXRpb25fbmV4dF9wcmV2X3N3aXBlIjoiIiwiYWpheF9wYWdpbmF0aW9uX2luZmluaXRlX3N0b3AiOiIiLCJjc3MiOiIiLCJ0ZGNfY3NzIjoiIiwidGRfY29sdW1uX251bWJlciI6MSwiaGVhZGVyX2NvbG9yIjoiIiwiY29sb3JfcHJlc2V0IjoiIiwiYm9yZGVyX3RvcCI6IiIsImNsYXNzIjoidGRpXzY4IiwidGRjX2Nzc19jbGFzcyI6InRkaV82OCIsInRkY19jc3NfY2xhc3Nfc3R5bGUiOiJ0ZGlfNjhfcmFuZF9zdHlsZSIsImxpdmVfZmlsdGVyIjoiY3VyX3Bvc3Rfc2FtZV9hdXRob3IiLCJsaXZlX2ZpbHRlcl9jdXJfcG9zdF9hdXRob3IiOiI1NyJ9JzsKYmxvY2tfdGRpXzY4LnRkX2NvbHVtbl9udW1iZXIgPSAiMSI7CmJsb2NrX3RkaV82OC5ibG9ja190eXBlID0gInRkX2ZsZXhfYmxvY2tfMSI7CmJsb2NrX3RkaV82OC5wb3N0X2NvdW50ID0gIjQiOwpibG9ja190ZGlfNjguZm91bmRfcG9zdHMgPSAiNCI7CmJsb2NrX3RkaV82OC5oZWFkZXJfY29sb3IgPSAiIjsKYmxvY2tfdGRpXzY4LmFqYXhfcGFnaW5hdGlvbl9pbmZpbml0ZV9zdG9wID0gIiI7CmJsb2NrX3RkaV82OC5tYXhfbnVtX3BhZ2VzID0gIjEiOwp0ZEJsb2Nrc0FycmF5LnB1c2goYmxvY2tfdGRpXzY4KTsK" data-type="lazy"></script><div class="td-block-title-wrap"><h4 class="td-block-title"><span class="td-pulldown-size">More by Author</span></h4></div><div id=tdi_68 class="td_block_inner td-mc1-wrap"> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-"> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/iot/coding-analog-sensors-on-the-raspberry-pi3/" rel="bookmark" title="Coding Analog Sensors on the Raspberry Pi3">Coding Analog Sensors on the Raspberry Pi3</a></h3> <div class="td-editor-date"> <a href="https://www.codeguru.com/iot/" class="td-post-category" >IoT</a> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/">Pravin Kumar Sinha</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2017-09-25T07:15:00+00:00" >September 25, 2017</time></span> </span> </div> <div class="td-read-more"> <a href="https://www.codeguru.com/iot/coding-analog-sensors-on-the-raspberry-pi3/" title="Read more" >Read more</a> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-"> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/iot/coding-sensors-on-the-rpi3/" rel="bookmark" title="Coding Sensors on the rPi3">Coding Sensors on the rPi3</a></h3> <div class="td-editor-date"> <a href="https://www.codeguru.com/iot/" class="td-post-category" >IoT</a> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/">Pravin Kumar Sinha</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2017-09-20T07:15:00+00:00" >September 20, 2017</time></span> </span> </div> <div class="td-read-more"> <a href="https://www.codeguru.com/iot/coding-sensors-on-the-rpi3/" title="Read more" >Read more</a> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-"> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/iot/using-the-qt-2d-display-on-a-raspberry-pi3/" rel="bookmark" title="Using the Qt 2D Display on a Raspberry Pi3">Using the Qt 2D Display on a Raspberry Pi3</a></h3> <div class="td-editor-date"> <a href="https://www.codeguru.com/iot/" class="td-post-category" >IoT</a> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/">Pravin Kumar Sinha</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2017-09-19T07:15:00+00:00" >September 19, 2017</time></span> </span> </div> <div class="td-read-more"> <a href="https://www.codeguru.com/iot/using-the-qt-2d-display-on-a-raspberry-pi3/" title="Read more" >Read more</a> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-"> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/iot/raspberry-pi-3-hardware-and-system-software-reference/" rel="bookmark" title="Raspberry Pi 3 Hardware and System Software Reference">Raspberry Pi 3 Hardware and System Software Reference</a></h3> <div class="td-editor-date"> <a href="https://www.codeguru.com/iot/" class="td-post-category" >IoT</a> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/pravin-kumar-sinha/">Pravin Kumar Sinha</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2017-09-18T07:15:00+00:00" >September 18, 2017</time></span> </span> </div> <div class="td-read-more"> <a href="https://www.codeguru.com/iot/raspberry-pi-3-hardware-and-system-software-reference/" title="Read more" >Read more</a> </div> </div> </div> </div> </div></div></div></div></div></div><div class="td_block_wrap tdb_single_next_prev tdi_69 td-pb-border-top td_block_template_2" data-td-block-uid="tdi_69" > <style>.tdi_69{position:relative}@media (min-width:768px) and (max-width:1018px){.tdi_69{margin-bottom:40px!important}}@media (max-width:767px){.tdi_69{margin-bottom:40px!important}}</style> <style>.tdb_single_next_prev{*zoom:1}.tdb_single_next_prev:before,.tdb_single_next_prev:after{display:table;content:'';line-height:0}.tdb_single_next_prev:after{clear:both}.tdb-next-post{font-family:var(--td_default_google_font_2,'Roboto',sans-serif);width:48%;float:left;transform:translateZ(0);-webkit-transform:translateZ(0);min-height:1px;line-height:1}.tdb-next-post span{display:block;font-size:12px;color:#747474;margin-bottom:7px}.tdb-next-post a{font-size:15px;color:#222;line-height:21px;-webkit-transition:color 0.2s ease;transition:color 0.2s ease}.tdb-next-post a:hover{color:var(--td_theme_color,#4db2ec)}.tdb-post-next{margin-left:2%;text-align:right}.tdb-post-prev{margin-right:2%}.tdb-post-next .td-image-container{display:inline-block}.tdi_69 .td-module-container{display:flex;flex-direction:column}.tdi_69 .tdb-post-next .td-module-container{align-items:flex-end}.tdi_69 .td-image-container{display:block;order:0}.ie10 .tdi_69 .next-prev-title,.ie11 .tdi_69 .next-prev-title{flex:auto}.tdi_69 .tdb-next-post{padding:20px}.tdi_69 .tdb-next-post a{color:#ffffff;font-family:brother-xl!important;font-size:18px!important;line-height:1.2!important;font-weight:700!important}.tdi_69 .tdb-next-post:hover a{color:#080a19;box-shadow:inset 0 -2px 0 0 #ffffff}.tdi_69 .tdb-next-post span{color:#ffffff;font-family:Rubik!important;font-size:14px!important;font-weight:400!important}.tdi_69 .td-module-title a{box-shadow:inset 0 0 0 0 #ffffff}@media (min-width:768px){.tdi_69 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}@media (min-width:1019px) and (max-width:1140px){.tdi_69 .td-module-title a{box-shadow:inset 0 0 0 0 #ffffff}.tdi_69 .tdb-next-post:hover a{box-shadow:inset 0 -2px 0 0 #ffffff}@media (min-width:768px){.tdi_69 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (min-width:768px) and (max-width:1018px){.tdi_69 .td-module-title a{box-shadow:inset 0 0 0 0 #ffffff}.tdi_69 .tdb-next-post:hover a{box-shadow:inset 0 -2px 0 0 #ffffff}.tdi_69 .tdb-next-post a{font-size:14px!important}@media (min-width:768px){.tdi_69 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (max-width:767px){.tdi_69 .td-module-title a{box-shadow:inset 0 0 0 0 #ffffff}.tdi_69 .tdb-next-post:hover a{box-shadow:inset 0 -2px 0 0 #ffffff}.tdi_69 .tdb-next-post a{font-size:12px!important}@media (min-width:768px){.tdi_69 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}</style> <div class="tdi_69_rand_style td-element-style"><style> .tdi_69_rand_style::after { content:'' !important; width:100% !important; height:100% !important; position:absolute !important; top:0 !important; left:0 !important; z-index:0 !important; display:block !important; background: linear-gradient(90deg,#238fee, #2fc8c0) !important; } </style></div><div class="tdb-block-inner td-fix-index"><div class="tdb-next-post tdb-next-post-bg tdb-post-prev"><span>Previous article</span><div class="td-module-container"><div class="next-prev-title"><a href="https://www.codeguru.com/cplusplus/the-value-of-specification-first-development-using-swagger/">The Value of Specification First Development Using Swagger</a></div></div></div><div class="tdb-next-post tdb-next-post-bg tdb-post-next"><span>Next article</span><div class="td-module-container"><div class="next-prev-title"><a href="https://www.codeguru.com/visual-basic/using-the-methodinvoker-delegate-in-visual-basic/">Using the MethodInvoker Delegate in Visual Basic</a></div></div></div></div></div><div class="td_block_wrap tdb_single_related tdi_70 td_with_ajax_pagination td-pb-border-top td_block_template_3 tdb-single-related-posts" data-td-block-uid="tdi_70" > <style>.td-block-title-wrap .td-wrapper-pulldown-filter{font-family:var(--td_default_google_font_2,'Roboto',sans-serif);position:absolute;bottom:0;right:0;top:0;margin:auto 0;z-index:2;background-color:#fff;font-size:13px;line-height:1;color:#777;text-align:right}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option{cursor:pointer;white-space:nowrap;position:relative;line-height:29px}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option i{font-size:9px;color:#777;margin-left:20px;margin-right:10px}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option i:before{content:'\e83d'}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option span{padding-left:20px;margin-right:-14px}@media (max-width:360px){.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option span{display:none}}.td-block-title-wrap .td-pulldown-filter-display-option:hover,.td-block-title-wrap .td-pulldown-filter-display-option:hover i{color:#4db2ec}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option:hover ul{display:block}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-list{list-style:none;position:absolute;right:0;top:100%;padding:18px 0;background-color:rgb(255,255,255);background-color:rgba(255,255,255,0.95);z-index:999;border-width:1px;border-color:#ededed;border-style:solid;display:none;margin:0}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-item{list-style:none;margin:0}.td-block-title-wrap .td-pulldown-filter-item .td-cur-simple-item{color:#4db2ec}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-more{padding-bottom:10px}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-more:before{content:'';width:70px;height:100%;position:absolute;margin-top:2px;top:0;right:0;z-index:1;opacity:0}.td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-link{color:#777;white-space:nowrap;display:block;line-height:26px;padding-left:36px;padding-right:27px}.td-block-title-wrap .td-pulldown-filter-link:hover{color:#4db2ec}@media (min-width:768px) and (max-width:1018px){.td-pb-span4 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-display-option span{display:none}.td-pb-span4 .td-block-title-wrap .td-wrapper-pulldown-filter .td-pulldown-filter-link{padding-left:24px;padding-right:20px!important}}.td-pulldown-syle-3{top:0}.td-pulldown-syle-3 .td-subcat-dropdown ul{padding:15px 0;margin-top:-1px;border-width:1px}.td-pulldown-syle-3 .td-subcat-dropdown a{padding-left:40px;padding-right:31px}.td-pulldown-syle-3 .td-subcat-dropdown:hover .td-subcat-more{background-color:transparent!important}.td-pulldown-syle-3 .td-subcat-dropdown:hover span,.td-pulldown-syle-3 .td-subcat-dropdown:hover i{color:#4db2ec}.td-pulldown-syle-3 .td-subcat-dropdown .td-subcat-more{margin-left:9px;margin-bottom:8px}.td-pulldown-syle-3 .td-subcat-list .td-subcat-item{margin-left:24px}.td_block_template_3 .td-block-title{font-size:16px;font-weight:400;margin-top:0;margin-bottom:26px;line-height:31px;text-align:left}.td_block_template_3 .td-block-title>*{background-color:var(--td_header_color,#000);color:var(--td_text_header_color,#fff);padding:0 10px}.td_block_template_3 .td-related-title a{margin-right:10px}@media (max-width:767px){.td_block_template_3 .td-related-title a{margin-right:0;font-size:14px}}.td_block_template_3 .td-related-title .td-cur-simple-item{background-color:var(--td_theme_color,#4db2ec)}@-moz-document url-prefix(){.td_block_template_3 .td-block-title>*{padding-bottom:2px}}.td-theme-wrap .tdi_70 .td-pulldown-filter-link:hover,.td-theme-wrap .tdi_70 .td-subcat-item a:hover,.td-theme-wrap .tdi_70 .td-subcat-item .td-cur-simple-item,.td-theme-wrap .tdi_70 .td-subcat-dropdown:hover .td-subcat-more span,.td-theme-wrap .tdi_70 .td-subcat-dropdown:hover .td-subcat-more i{color:rgba(219,219,219,0)}.td-theme-wrap .tdi_70 .td-block-title>*{background-color:rgba(219,219,219,0)}.td-theme-wrap .tdi_70 .td-block-title>*{color:#151948}.td-theme-wrap .tdi_70 .td_module_wrap:hover .entry-title a,.td-theme-wrap .tdi_70 .td_quote_on_blocks,.td-theme-wrap .tdi_70 .td-opacity-cat .td-post-category:hover,.td-theme-wrap .tdi_70 .td-opacity-read .td-read-more a:hover,.td-theme-wrap .tdi_70 .td-opacity-author .td-post-author-name a:hover,.td-theme-wrap .tdi_70 .td-instagram-user a{color:rgba(219,219,219,0)}.td-theme-wrap .tdi_70 .td-next-prev-wrap a:hover,.td-theme-wrap .tdi_70 .td-load-more-wrap a:hover{background-color:rgba(219,219,219,0);border-color:rgba(219,219,219,0)}.td-theme-wrap .tdi_70 .td-read-more a,.td-theme-wrap .tdi_70 .td-weather-information:before,.td-theme-wrap .tdi_70 .td-weather-week:before,.td-theme-wrap .tdi_70 .td-exchange-header:before,.td-theme-wrap .td-footer-wrapper .tdi_70 .td-post-category,.td-theme-wrap .tdi_70 .td-post-category:hover{background-color:rgba(219,219,219,0)}@media (max-width:767px){.tdi_70{margin-bottom:40px!important}}</style> <style>.tdb-single-related-posts{display:inline-block;width:100%;padding-bottom:0;overflow:visible}.tdb-single-related-posts .tdb-block-inner:after,.tdb-single-related-posts .tdb-block-inner .td_module_wrap:after{content:'';display:table;clear:both}.tdb-single-related-posts .td-module-container{display:flex;flex-direction:column;position:relative}.tdb-single-related-posts .td-module-container:before{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px}.tdb-single-related-posts .td-image-wrap{display:block;position:relative;padding-bottom:70%}.tdb-single-related-posts .td-image-container{position:relative;flex:0 0 100%;width:100%;height:100%}.tdb-single-related-posts .td-module-thumb{margin-bottom:0}.tdb-single-related-posts .td-module-meta-info{padding:7px 0 0 0;margin-bottom:0;z-index:1;border:0 solid #eaeaea}.tdb-single-related-posts .tdb-author-photo{display:inline-block}.tdb-single-related-posts .tdb-author-photo,.tdb-single-related-posts .tdb-author-photo img{vertical-align:middle}.tdb-single-related-posts .td-post-author-name,.tdb-single-related-posts .td-post-date,.tdb-single-related-posts .td-module-comments{vertical-align:text-top}.tdb-single-related-posts .entry-review-stars{margin-left:6px;vertical-align:text-bottom}.tdb-single-related-posts .td-author-photo{display:inline-block;vertical-align:middle}.tdb-single-related-posts .td-thumb-css{width:100%;height:100%;position:absolute;background-size:cover;background-position:center center}.tdb-single-related-posts .td-category-pos-image .td-post-category,.tdb-single-related-posts .td-post-vid-time{position:absolute;z-index:2;bottom:0}.tdb-single-related-posts .td-category-pos-image .td-post-category{left:0}.tdb-single-related-posts .td-post-vid-time{right:0;background-color:#000;padding:3px 6px 4px;font-family:var(--td_default_google_font_1,'Open Sans','Open Sans Regular',sans-serif);font-size:10px;font-weight:600;line-height:1;color:#fff}.tdb-single-related-posts .td-module-title{font-family:var(--td_default_google_font_2,'Roboto',sans-serif);font-weight:500;font-size:13px;line-height:20px;margin:0}.tdb-single-related-posts .td-excerpt{margin:20px 0 0;line-height:21px}.tdb-single-related-posts .td-read-more,.tdb-single-related-posts .td-next-prev-wrap{margin:20px 0 0}.tdb-single-related-posts div.tdb-block-inner:after{content:''!important;padding:0;border:none}.tdb-single-related-posts .td-next-prev-wrap a{width:auto;height:auto;min-width:25px;min-height:25px}.single-tdb_templates .tdb-single-related-posts .td-next-prev-wrap a:active{pointer-events:none}.tdb-dummy-data{position:absolute;top:50%;left:50%;transform:translate(-50%);padding:8px 40px 9px;background:rgba(0,0,0,0.35);color:#fff;z-index:100;opacity:0;-webkit-transition:opacity 0.2s;transition:opacity 0.2s}.tdc-element:hover .tdb-dummy-data{opacity:1}.tdi_70 .td-image-wrap{padding-bottom:60%}.tdi_70 .entry-thumb{background-position:center 50%}.tdi_70 .td-module-container{flex-direction:column;border-color:#eaeaea;flex-grow:1}.tdi_70 .td-image-container{display:block;order:0;flex:0 0 0}.tdi_70 .td-module-meta-info{padding:12px 0 0 0;border-color:#eaeaea}.tdi_70 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee;color:#151948}.tdi_70 .td-module-container:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_70 .td_module_wrap{width:33.33333333%;float:left;padding-left:20px;padding-right:20px;padding-bottom:5px;margin-bottom:5px;display:flex}.tdi_70 .tdb-block-inner{margin-left:-20px;margin-right:-20px}.tdi_70 .td-module-container:before{bottom:-5px;border-color:#eaeaea}.tdi_70 .td-post-vid-time{display:block}.tdi_70 .td-post-category{padding:6px 8px;background-color:#238fee;color:#ffffff;font-family:brother-xl!important;font-size:14px!important;font-weight:700!important}.tdi_70 .td-author-photo .avatar{width:20px;height:20px;margin-right:6px;border-radius:50%}.tdi_70 .td-excerpt{display:none;column-count:1;column-gap:48px;font-family:Rubik!important}.tdi_70 .td-audio-player{opacity:1;visibility:visible;height:auto;font-size:13px}.tdi_70 .td-read-more{display:none}.tdi_70 .td-module-comments{display:none}.tdi_70 .td_module_wrap:nth-child(3n+1){clear:both}.tdi_70 .td_module_wrap:nth-last-child(-n+3){margin-bottom:0;padding-bottom:0}.tdi_70 .td_module_wrap:nth-last-child(-n+3) .td-module-container:before{display:none}.tdi_70 .td-module-thumb a:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26));background:linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26))}.tdi_70 .td-post-category:hover{background-color:#f2f2f2!important;color:#238fee}.tdi_70 .td_module_wrap:hover .td-module-title a{color:#151948!important}.tdi_70 .td-post-author-name a{color:#238fee}.tdi_70 .td-post-author-name:hover a{color:#b361e0}.tdi_70 .td-post-date,.tdi_70 .td-post-author-name span{color:#a5a5a5}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap a{color:#a5a5a5;background-color:#ffffff;border-color:#ffffff;border-color:#dbdbdb;padding:6px 6px 4px 7px;border-width:2px;font-size:24px}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg,.tdi_70.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg *{fill:#a5a5a5}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap a:hover{color:#ffffff;background-color:#238fee;border-color:#238fee;border-color:#f2f2f2}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg,.tdi_70.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg *{fill:#ffffff}.tdi_70 .entry-title{margin:0 0 3px 0;font-family:brother-xl!important;font-size:17px!important;line-height:1.3!important;font-weight:700!important}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap{margin-top:35px}.tdi_70.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg{width:24px;height:calc(24px + 1px)}.tdi_70 .block-title a,.tdi_70 .block-title span,.tdi_70 .td-block-title a,.tdi_70 .td-block-title span{font-family:brother-xl!important;font-size:30px!important;font-weight:700!important}.tdi_70 .td-editor-date,.tdi_70 .td-editor-date .entry-date,.tdi_70 .td-post-author-name a,.tdi_70 .td-module-comments a{font-family:Rubik!important;font-size:14px!important;font-weight:400!important}.tdi_70 .td-post-author-name{font-weight:400}.tdi_70 .td_block_inner{display:flex;flex-wrap:wrap}html:not([class*='ie']) .tdi_70 .td-module-container:hover .entry-thumb:before{opacity:0}@media (max-width:767px){.tdb-single-related-posts .td-module-title{font-size:17px;line-height:23px}}@media (min-width:768px){.tdi_70 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}@media (min-width:1019px) and (max-width:1140px){.tdi_70 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_70 .td-module-container:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_70 .td_module_wrap{padding-bottom:5px;margin-bottom:5px;clear:none!important;padding-bottom:5px!important;margin-bottom:5px!important}.tdi_70 .td-module-container:before{bottom:-5px}.tdi_70 .td_module_wrap:nth-child(3n+1){clear:both!important}.tdi_70 .td_module_wrap:nth-last-child(-n+3){margin-bottom:0!important;padding-bottom:0!important}.tdi_70 .td_module_wrap .td-module-container:before{display:block!important}.tdi_70 .td_module_wrap:nth-last-child(-n+3) .td-module-container:before{display:none!important}.tdi_70 .entry-title{font-size:20px!important}@media (min-width:768px){.tdi_70 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (min-width:768px) and (max-width:1018px){.tdi_70 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_70 .td-module-container:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_70 .td_module_wrap{padding-bottom:5px;margin-bottom:5px;clear:none!important;padding-bottom:5px!important;margin-bottom:5px!important}.tdi_70 .td-module-container:before{bottom:-5px}.tdi_70 .td_module_wrap:nth-child(3n+1){clear:both!important}.tdi_70 .td_module_wrap:nth-last-child(-n+3){margin-bottom:0!important;padding-bottom:0!important}.tdi_70 .td_module_wrap .td-module-container:before{display:block!important}.tdi_70 .td_module_wrap:nth-last-child(-n+3) .td-module-container:before{display:none!important}.tdi_70 .entry-title{font-size:14px!important}@media (min-width:768px){.tdi_70 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (max-width:767px){.tdi_70 .td-image-container{flex:0 0 30%;width:30%;display:block;order:0}.tdi_70 .td-module-container{flex-direction:row}.tdi_70 .td-module-meta-info{padding:0px 5px 5px 15px}.tdi_70 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_70 .td-module-container:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_70 .td_module_wrap{width:100%;float:left;padding-bottom:5px;margin-bottom:5px;padding-bottom:5px!important;margin-bottom:5px!important}.tdi_70 .td-module-container:before{bottom:-5px}.tdi_70 .td-post-category{display:none}.tdi_70 .td_module_wrap:nth-last-child(1){margin-bottom:0!important;padding-bottom:0!important}.tdi_70 .td_module_wrap .td-module-container:before{display:block!important}.tdi_70 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none!important}.tdi_70 .entry-title{font-size:15px!important}@media (min-width:768px){.tdi_70 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}</style><script data-src="data:text/javascript;base64,dmFyIGJsb2NrX3RkaV83MCA9IG5ldyB0ZEJsb2NrKCk7CmJsb2NrX3RkaV83MC5pZCA9ICJ0ZGlfNzAiOwpibG9ja190ZGlfNzAuYXR0cyA9ICd7Im1vZHVsZXNfb25fcm93IjoiZXlKaGJHd2lPaUl6TXk0ek16TXpNek16TXlVaUxDSndhRzl1WlNJNklqRXdNQ1VpZlE9PSIsIm1vZHVsZXNfY2F0ZWdvcnkiOiJpbWFnZSIsInNob3dfYXV0aG9yIjoiIiwic2hvd19kYXRlIjoiIiwic2hvd19jb20iOiJub25lIiwic2hvd19leGNlcnB0Ijoibm9uZSIsInNob3dfYnRuIjoibm9uZSIsImFqYXhfcGFnaW5hdGlvbiI6Im5leHRfcHJldiIsInJlbGF0ZWRfYXJ0aWNsZXNfcG9zdHNfbGltaXQiOiIzIiwiaW1hZ2Vfd2lkdGgiOiJleUp3YUc5dVpTSTZJak13SW4wPSIsImltYWdlX2Zsb2F0ZWQiOiJleUp3YUc5dVpTSTZJbVpzYjJGMFgyeGxablFpZlE9PSIsIm1ldGFfcGFkZGluZyI6ImV5SndhRzl1WlNJNklqQndlQ0ExY0hnZ05YQjRJREUxY0hnaUxDSmhiR3dpT2lJeE1uQjRJREFnTUNBd0luMD0iLCJibG9ja190ZW1wbGF0ZV9pZCI6InRkX2Jsb2NrX3RlbXBsYXRlXzMiLCJmX3RpdGxlX2ZvbnRfc2l6ZSI6ImV5SmhiR3dpT2lJeE55SXNJbkJvYjI1bElqb2lNVFVpTENKc1lXNWtjMk5oY0dVaU9pSXlNQ0lzSW5CdmNuUnlZV2wwSWpvaU1UUWlmUT09IiwiZl90aXRsZV9mb250X2xpbmVfaGVpZ2h0IjoiMS4zIiwibW9kdWxlc19nYXAiOiIiLCJhbGxfbW9kdWxlc19zcGFjZSI6IjEwIiwiZl90aXRsZV9mb250X3dlaWdodCI6IjcwMCIsInRkY19jc3MiOiJleUp3YUc5dVpTSTZleUp0WVhKbmFXNHRZbTkwZEc5dElqb2lOREFpTENKa2FYTndiR0Y1SWpvaUluMHNJbkJvYjI1bFgyMWhlRjkzYVdSMGFDSTZOelkzZlE9PSIsImZfdGl0bGVfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9oZWFkZXJfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9oZWFkZXJfZm9udF93ZWlnaHQiOiI3MDAiLCJzaG93X2NhdCI6ImV5SndhRzl1WlNJNkltNXZibVVpZlE9PSIsImN1c3RvbV90aXRsZSI6Ik5ld3MgJmFtcDsgVHJlbmRzIiwiaGVhZGVyX3RleHRfY29sb3IiOiIjMTUxOTQ4IiwibWMxX2VsIjoiMTUiLCJuZXh0cHJldiI6InllcyIsImltYWdlX2hlaWdodCI6IjYwJSIsInBhZ19zcGFjZSI6IjM1IiwicGFnX3BhZGRpbmciOiI2cHggNnB4IDRweCA3cHgiLCJwYWdfYm9yZGVyX3dpZHRoIjoiMiIsInBhZ19pY29uc19zaXplIjoiMjQiLCJwcmV2X3RkaWNvbiI6InRkLWljb24tbGluZWUiLCJuZXh0X3RkaWNvbiI6InRkLWljb24tcGx1c3MiLCJmX2hlYWRlcl9mb250X3NpemUiOiIzMCIsImhlYWRlcl9jb2xvciI6InJnYmEoMjE5LDIxOSwyMTksMCkiLCJtb2R1bGVzX2NhdGVnb3J5X3BhZGRpbmciOiI2cHggOHB4IiwiZl9jYXRfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9tZXRhX2ZvbnRfZmFtaWx5IjoiNzEyIiwiZl9leF9mb250X2ZhbWlseSI6IjcxMiIsImZfY2F0X2ZvbnRfc2l6ZSI6IjE0IiwiZl9tZXRhX2ZvbnRfc2l6ZSI6IjE0IiwiZl9tZXRhX2ZvbnRfd2VpZ2h0IjoiNDAwIiwiZl9jYXRfZm9udF93ZWlnaHQiOiI3MDAiLCJ0aXRsZV90eHQiOiIjMTUxOTQ4IiwidGl0bGVfdHh0X2hvdmVyIjoiIzE1MTk0OCIsImFsbF91bmRlcmxpbmVfaGVpZ2h0IjoiMiIsImFsbF91bmRlcmxpbmVfY29sb3IiOiIjMjM4ZmVlIiwiY2F0X2JnIjoiIzIzOGZlZSIsImNhdF9iZ19ob3ZlciI6IiNmMmYyZjIiLCJjYXRfdHh0IjoiI2ZmZmZmZiIsImNhdF90eHRfaG92ZXIiOiIjMjM4ZmVlIiwiYXV0aG9yX3R4dCI6IiMyMzhmZWUiLCJhdXRob3JfdHh0X2hvdmVyIjoiI2IzNjFlMCIsImRhdGVfdHh0IjoiI2E1YTVhNSIsImFydF90aXRsZSI6IjAgMCAzcHggMCIsImNvbG9yX292ZXJsYXkiOiJleUowZVhCbElqb2laM0poWkdsbGJuUWlMQ0pqYjJ4dmNqRWlPaUp5WjJKaEtEQXNNVEkyTERJek55d3dMakkyS1NJc0ltTnZiRzl5TWlJNkluSm5ZbUVvTXpnc01UZzVMREl6TXl3d0xqSTVLU0lzSW0xcGVHVmtRMjlzYjNKeklqcGJYU3dpWkdWbmNtVmxJam9pT1RBaUxDSmpjM01pT2lKaVlXTnJaM0p2ZFc1a09pQXRkMlZpYTJsMExXeHBibVZoY2kxbmNtRmthV1Z1ZENnNU1HUmxaeXh5WjJKaEtETTRMREU0T1N3eU16TXNNQzR5T1Nrc2NtZGlZU2d3TERFeU5pd3lNemNzTUM0eU5pa3BPMkpoWTJ0bmNtOTFibVE2SUd4cGJtVmhjaTFuY21Ga2FXVnVkQ2c1TUdSbFp5eHlaMkpoS0RNNExERTRPU3d5TXpNc01DNHlPU2tzY21kaVlTZ3dMREV5Tml3eU16Y3NNQzR5TmlrcE95SXNJbU56YzFCaGNtRnRjeUk2SWprd1pHVm5MSEpuWW1Fb016Z3NNVGc1TERJek15d3dMakk1S1N4eVoySmhLREFzTVRJMkxESXpOeXd3TGpJMktTSjkiLCJuZXh0cHJldl9pY29uIjoiI2E1YTVhNSIsIm5leHRwcmV2X2ljb25faCI6IiNmZmZmZmYiLCJuZXh0cHJldl9iZyI6IiNmZmZmZmYiLCJuZXh0cHJldl9iZ19oIjoiIzIzOGZlZSIsIm5leHRwcmV2X2JvcmRlciI6IiNkYmRiZGIiLCJuZXh0cHJldl9ib3JkZXJfaCI6IiNmMmYyZjIiLCJsaW1pdCI6IjMiLCJvZmZzZXQiOiIiLCJsaXZlX2ZpbHRlciI6ImN1cl9wb3N0X3NhbWVfY2F0ZWdvcmllcyIsInRkX2FqYXhfZmlsdGVyX3R5cGUiOiJ0ZF9jdXN0b21fcmVsYXRlZCIsImxpdmVfZmlsdGVyX2N1cl9wb3N0X2lkIjoxNDUyNCwic2FtcGxlX3Bvc3RzX2RhdGEiOmZhbHNlLCJibG9ja190eXBlIjoidGRiX3NpbmdsZV9yZWxhdGVkIiwic2VwYXJhdG9yIjoiIiwidGl0bGVfdGFnIjoiIiwibWMxX3RsIjoiIiwibWMxX3RpdGxlX3RhZyI6IiIsInJlbGF0ZWRfYXJ0aWNsZXNfdHlwZSI6IiIsInJlbGF0ZWRfYXJ0aWNsZXNfcG9zdHNfb2Zmc2V0IjoiIiwiY29udGFpbmVyX3dpZHRoIjoiIiwibV9wYWRkaW5nIjoiIiwibW9kdWxlc19ib3JkZXJfc2l6ZSI6IiIsIm1vZHVsZXNfYm9yZGVyX3N0eWxlIjoiIiwibW9kdWxlc19ib3JkZXJfY29sb3IiOiIjZWFlYWVhIiwibW9kdWxlc19kaXZpZGVyIjoiIiwiZGl2aWRlcl9vbiI6IiIsIm1vZHVsZXNfZGl2aWRlcl9jb2xvciI6IiNlYWVhZWEiLCJzaGFkb3dfc2hhZG93X2hlYWRlciI6IiIsInNoYWRvd19zaGFkb3dfdGl0bGUiOiJTaGFkb3ciLCJzaGFkb3dfc2hhZG93X3NpemUiOiIiLCJzaGFkb3dfc2hhZG93X29mZnNldF9ob3Jpem9udGFsIjoiIiwic2hhZG93X3NoYWRvd19vZmZzZXRfdmVydGljYWwiOiIiLCJzaGFkb3dfc2hhZG93X3NwcmVhZCI6IiIsInNoYWRvd19zaGFkb3dfY29sb3IiOiIiLCJoX2VmZmVjdCI6IiIsImltYWdlX3NpemUiOiIiLCJpbWFnZV9hbGlnbm1lbnQiOiI1MCIsImltYWdlX3JhZGl1cyI6IiIsImhpZGVfaW1hZ2UiOiIiLCJ2aWRlb19pY29uIjoiIiwidmlkZW9fcG9wdXAiOiJ5ZXMiLCJ2aWRlb19yZWMiOiIiLCJzcG90X2hlYWRlciI6IiIsInZpZGVvX3JlY190aXRsZSI6Ii0gQWR2ZXJ0aXNlbWVudCAtIiwidmlkZW9fcmVjX2NvbG9yIjoiIiwidmlkZW9fcmVjX2Rpc2FibGUiOiIiLCJzaG93X3ZpZF90IjoiYmxvY2siLCJ2aWRfdF9tYXJnaW4iOiIiLCJ2aWRfdF9wYWRkaW5nIjoiIiwidmlkZW9fdGl0bGVfY29sb3IiOiIiLCJ2aWRlb190aXRsZV9jb2xvcl9oIjoiIiwidmlkZW9fYmciOiIiLCJ2aWRlb19vdmVybGF5IjoiIiwidmlkX3RfY29sb3IiOiIiLCJ2aWRfdF9iZ19jb2xvciI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfaGVhZGVyIjoiIiwiZl92aWRfdGl0bGVfZm9udF90aXRsZSI6IlZpZGVvIHBvcC11cCBhcnRpY2xlIHRpdGxlIiwiZl92aWRfdGl0bGVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfZmFtaWx5IjoiIiwiZl92aWRfdGl0bGVfZm9udF9zaXplIjoiIiwiZl92aWRfdGl0bGVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfc3R5bGUiOiIiLCJmX3ZpZF90aXRsZV9mb250X3dlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGl0bGVfZm9udF9zcGFjaW5nIjoiIiwiZl92aWRfdGl0bGVfIjoiIiwiZl92aWRfdGltZV9mb250X3RpdGxlIjoiVmlkZW8gZHVyYXRpb24gdGV4dCIsImZfdmlkX3RpbWVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpbWVfZm9udF9mYW1pbHkiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfc2l6ZSI6IiIsImZfdmlkX3RpbWVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpbWVfZm9udF9zdHlsZSI6IiIsImZfdmlkX3RpbWVfZm9udF93ZWlnaHQiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGltZV9mb250X3NwYWNpbmciOiIiLCJmX3ZpZF90aW1lXyI6IiIsIm1ldGFfaW5mb19hbGlnbiI6IiIsIm1ldGFfaW5mb19ob3JpeiI6ImNvbnRlbnQtaG9yaXotbGVmdCIsIm1ldGFfd2lkdGgiOiIiLCJtZXRhX21hcmdpbiI6IiIsImFydF9leGNlcnB0IjoiIiwiZXhjZXJwdF9jb2wiOiIxIiwiZXhjZXJwdF9nYXAiOiIiLCJhcnRfYXVkaW8iOiIiLCJhcnRfYXVkaW9fc2l6ZSI6IjEuNSIsImFydF9idG4iOiIiLCJtZXRhX2luZm9fYm9yZGVyX3NpemUiOiIiLCJtZXRhX2luZm9fYm9yZGVyX3N0eWxlIjoiIiwibWV0YV9pbmZvX2JvcmRlcl9jb2xvciI6IiNlYWVhZWEiLCJtb2R1bGVzX2NhdGVnb3J5X3NwYWNpbmciOiIiLCJtb2R1bGVzX2NhdF9ib3JkZXIiOiIiLCJtb2R1bGVzX2NhdGVnb3J5X3JhZGl1cyI6IjAiLCJhdXRob3JfcGhvdG8iOiIiLCJhdXRob3JfcGhvdG9fc2l6ZSI6IiIsImF1dGhvcl9waG90b19zcGFjZSI6IiIsImF1dGhvcl9waG90b19yYWRpdXMiOiIiLCJzaG93X21vZGlmaWVkX2RhdGUiOiIiLCJ0aW1lX2FnbyI6IiIsInRpbWVfYWdvX2FkZF90eHQiOiJhZ28iLCJ0aW1lX2Fnb190eHRfcG9zIjoiIiwiZXhjZXJwdF9taWRkbGUiOiIiLCJleGNlcnB0X2lubGluZSI6IiIsInNob3dfYXVkaW8iOiJibG9jayIsImhpZGVfYXVkaW8iOiIiLCJtZXRhX3NwYWNlIjoiIiwiYnRuX3RpdGxlIjoiIiwiYnRuX21hcmdpbiI6IiIsImJ0bl9wYWRkaW5nIjoiIiwiYnRuX2JvcmRlcl93aWR0aCI6IiIsImJ0bl9yYWRpdXMiOiIiLCJwYWdfYm9yZGVyX3JhZGl1cyI6IiIsImZfaGVhZGVyX2ZvbnRfaGVhZGVyIjoiIiwiZl9oZWFkZXJfZm9udF90aXRsZSI6IkJsb2NrIGhlYWRlciIsImZfaGVhZGVyX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2hlYWRlcl9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9oZWFkZXJfZm9udF9zdHlsZSI6IiIsImZfaGVhZGVyX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9oZWFkZXJfZm9udF9zcGFjaW5nIjoiIiwiZl9oZWFkZXJfIjoiIiwiZl9hamF4X2ZvbnRfdGl0bGUiOiJBamF4IGNhdGVnb3JpZXMiLCJmX2FqYXhfZm9udF9zZXR0aW5ncyI6IiIsImZfYWpheF9mb250X2ZhbWlseSI6IiIsImZfYWpheF9mb250X3NpemUiOiIiLCJmX2FqYXhfZm9udF9saW5lX2hlaWdodCI6IiIsImZfYWpheF9mb250X3N0eWxlIjoiIiwiZl9hamF4X2ZvbnRfd2VpZ2h0IjoiIiwiZl9hamF4X2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9hamF4X2ZvbnRfc3BhY2luZyI6IiIsImZfYWpheF8iOiIiLCJmX21vcmVfZm9udF90aXRsZSI6IkxvYWQgbW9yZSBidXR0b24iLCJmX21vcmVfZm9udF9zZXR0aW5ncyI6IiIsImZfbW9yZV9mb250X2ZhbWlseSI6IiIsImZfbW9yZV9mb250X3NpemUiOiIiLCJmX21vcmVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfbW9yZV9mb250X3N0eWxlIjoiIiwiZl9tb3JlX2ZvbnRfd2VpZ2h0IjoiIiwiZl9tb3JlX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9tb3JlX2ZvbnRfc3BhY2luZyI6IiIsImZfbW9yZV8iOiIiLCJmX3RpdGxlX2ZvbnRfaGVhZGVyIjoiIiwiZl90aXRsZV9mb250X3RpdGxlIjoiQXJ0aWNsZSB0aXRsZSIsImZfdGl0bGVfZm9udF9zZXR0aW5ncyI6IiIsImZfdGl0bGVfZm9udF9zdHlsZSI6IiIsImZfdGl0bGVfZm9udF90cmFuc2Zvcm0iOiIiLCJmX3RpdGxlX2ZvbnRfc3BhY2luZyI6IiIsImZfdGl0bGVfIjoiIiwiZl9jYXRfZm9udF90aXRsZSI6IkFydGljbGUgY2F0ZWdvcnkgdGFnIiwiZl9jYXRfZm9udF9zZXR0aW5ncyI6IiIsImZfY2F0X2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX2NhdF9mb250X3N0eWxlIjoiIiwiZl9jYXRfZm9udF90cmFuc2Zvcm0iOiIiLCJmX2NhdF9mb250X3NwYWNpbmciOiIiLCJmX2NhdF8iOiIiLCJmX21ldGFfZm9udF90aXRsZSI6IkFydGljbGUgbWV0YSBpbmZvIiwiZl9tZXRhX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX21ldGFfZm9udF9saW5lX2hlaWdodCI6IiIsImZfbWV0YV9mb250X3N0eWxlIjoiIiwiZl9tZXRhX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9tZXRhX2ZvbnRfc3BhY2luZyI6IiIsImZfbWV0YV8iOiIiLCJmX2V4X2ZvbnRfdGl0bGUiOiJBcnRpY2xlIGV4Y2VycHQiLCJmX2V4X2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2V4X2ZvbnRfc2l6ZSI6IiIsImZfZXhfZm9udF9saW5lX2hlaWdodCI6IiIsImZfZXhfZm9udF9zdHlsZSI6IiIsImZfZXhfZm9udF93ZWlnaHQiOiIiLCJmX2V4X2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9leF9mb250X3NwYWNpbmciOiIiLCJmX2V4XyI6IiIsImZfYnRuX2ZvbnRfdGl0bGUiOiJBcnRpY2xlIHJlYWQgbW9yZSBidXR0b24iLCJmX2J0bl9mb250X3NldHRpbmdzIjoiIiwiZl9idG5fZm9udF9mYW1pbHkiOiIiLCJmX2J0bl9mb250X3NpemUiOiIiLCJmX2J0bl9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9idG5fZm9udF9zdHlsZSI6IiIsImZfYnRuX2ZvbnRfd2VpZ2h0IjoiIiwiZl9idG5fZm9udF90cmFuc2Zvcm0iOiIiLCJmX2J0bl9mb250X3NwYWNpbmciOiIiLCJmX2J0bl8iOiIiLCJtaXhfY29sb3IiOiIiLCJtaXhfdHlwZSI6IiIsImZlX2JyaWdodG5lc3MiOiIxIiwiZmVfY29udHJhc3QiOiIxIiwiZmVfc2F0dXJhdGUiOiIxIiwibWl4X2NvbG9yX2giOiIiLCJtaXhfdHlwZV9oIjoiIiwiZmVfYnJpZ2h0bmVzc19oIjoiMSIsImZlX2NvbnRyYXN0X2giOiIxIiwiZmVfc2F0dXJhdGVfaCI6IjEiLCJtX2JnIjoiIiwiY2F0X2JvcmRlciI6IiIsImNhdF9ib3JkZXJfaG92ZXIiOiIiLCJtZXRhX2JnIjoiIiwiZXhfdHh0IjoiIiwiY29tX2JnIjoiIiwiY29tX3R4dCI6IiIsInNoYWRvd19tX3NoYWRvd19oZWFkZXIiOiIiLCJzaGFkb3dfbV9zaGFkb3dfdGl0bGUiOiJNZXRhIGluZm8gc2hhZG93Iiwic2hhZG93X21fc2hhZG93X3NpemUiOiIiLCJzaGFkb3dfbV9zaGFkb3dfb2Zmc2V0X2hvcml6b250YWwiOiIiLCJzaGFkb3dfbV9zaGFkb3dfb2Zmc2V0X3ZlcnRpY2FsIjoiIiwic2hhZG93X21fc2hhZG93X3NwcmVhZCI6IiIsInNoYWRvd19tX3NoYWRvd19jb2xvciI6IiIsImF1ZGlvX2J0bl9jb2xvciI6IiIsImF1ZGlvX3RpbWVfY29sb3IiOiIiLCJhdWRpb19iYXJfY29sb3IiOiIiLCJhdWRpb19iYXJfY3Vycl9jb2xvciI6IiIsImJ0bl9iZyI6IiIsImJ0bl9iZ19ob3ZlciI6IiIsImJ0bl90eHQiOiIiLCJidG5fdHh0X2hvdmVyIjoiIiwiYnRuX2JvcmRlciI6IiIsImJ0bl9ib3JkZXJfaG92ZXIiOiIiLCJlbF9jbGFzcyI6IiIsImxpdmVfZmlsdGVyX2N1cl9wb3N0X2F1dGhvciI6IjU3IiwidGRfY29sdW1uX251bWJlciI6MiwiYWpheF9wYWdpbmF0aW9uX2luZmluaXRlX3N0b3AiOiIiLCJ0ZF9hamF4X3ByZWxvYWRpbmciOiIiLCJ0ZF9maWx0ZXJfZGVmYXVsdF90eHQiOiIiLCJ0ZF9hamF4X2ZpbHRlcl9pZHMiOiIiLCJjb2xvcl9wcmVzZXQiOiIiLCJhamF4X3BhZ2luYXRpb25fbmV4dF9wcmV2X3N3aXBlIjoiIiwiYm9yZGVyX3RvcCI6IiIsImNzcyI6IiIsImNsYXNzIjoidGRpXzcwIiwidGRjX2Nzc19jbGFzcyI6InRkaV83MCIsInRkY19jc3NfY2xhc3Nfc3R5bGUiOiJ0ZGlfNzBfcmFuZF9zdHlsZSJ9JzsKYmxvY2tfdGRpXzcwLnRkX2NvbHVtbl9udW1iZXIgPSAiMiI7CmJsb2NrX3RkaV83MC5ibG9ja190eXBlID0gInRkYl9zaW5nbGVfcmVsYXRlZCI7CmJsb2NrX3RkaV83MC5wb3N0X2NvdW50ID0gIjMiOwpibG9ja190ZGlfNzAuZm91bmRfcG9zdHMgPSAiMjQ3IjsKYmxvY2tfdGRpXzcwLmhlYWRlcl9jb2xvciA9ICJyZ2JhKDIxOSwyMTksMjE5LDApIjsKYmxvY2tfdGRpXzcwLmFqYXhfcGFnaW5hdGlvbl9pbmZpbml0ZV9zdG9wID0gIiI7CmJsb2NrX3RkaV83MC5tYXhfbnVtX3BhZ2VzID0gIjgzIjsKdGRCbG9ja3NBcnJheS5wdXNoKGJsb2NrX3RkaV83MCk7Cg==" data-type="lazy"></script><div class="td-block-title-wrap"><h4 class="td-block-title"><span>News & Trends</span></h4></div><div id=tdi_70 class="td_block_inner tdb-block-inner td-fix-index"> <div class="tdb_module_related td_module_wrap td-animation-stack"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/mandelbrot-using-c-amp/" rel="bookmark" class="td-image-wrap " title="Mandelbrot Using C++ AMP" ><span data-bg="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/images/no-thumb/td_696x0.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/mandelbrot-using-c-amp/" rel="bookmark" title="Mandelbrot Using C++ AMP">Mandelbrot Using C++ AMP</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2012-01-27T17:57:52+00:00" >January 27, 2012</time></span> </span> </div> </div> </div> </div> <div class="tdb_module_related td_module_wrap td-animation-stack"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/simple-c-mp3-player-class/" rel="bookmark" class="td-image-wrap " title="Simple C++ MP3 Player Class" ><span data-bg="https://assets.codeguru.com/uploads/2021/07/cppmp3player.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/simple-c-mp3-player-class/" rel="bookmark" title="Simple C++ MP3 Player Class">Simple C++ MP3 Player Class</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2011-08-22T15:53:33+00:00" >August 22, 2011</time></span> </span> </div> </div> </div> </div> <div class="tdb_module_related td_module_wrap td-animation-stack"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/library-for-raw-video-processing/" rel="bookmark" class="td-image-wrap " title="Library for Raw Video Processing" ><span data-bg="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/images/no-thumb/td_696x0.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/library-for-raw-video-processing/" rel="bookmark" title="Library for Raw Video Processing">Library for Raw Video Processing</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2011-06-14T18:32:41+00:00" >June 14, 2011</time></span> </span> </div> </div> </div> </div> </div><div class="td-next-prev-wrap"><a href="#" class="td-ajax-prev-page ajax-page-disabled" aria-label="prev-page" id="prev-page-tdi_70" data-td_block_id="tdi_70"><i class="td-next-prev-icon td-icon-linee"></i></a><a href="#" class="td-ajax-next-page" aria-label="next-page" id="next-page-tdi_70" data-td_block_id="tdi_70"><i class="td-next-prev-icon td-icon-pluss"></i></a></div></div></div></div><div class="vc_column tdi_72 wpb_column vc_column_container tdc-column td-pb-span4 td-is-sticky"> <style scoped>.tdi_72{vertical-align:baseline}.tdi_72>.wpb_wrapper,.tdi_72>.wpb_wrapper>.tdc-elements{display:block}.tdi_72>.wpb_wrapper>.tdc-elements{width:100%}.tdi_72>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_72>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" data-sticky-enabled-on="W3RydWUsdHJ1ZSx0cnVlLHRydWVd" data-sticky-offset="20" data-sticky-is-width-auto="W2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXQ=="><div class="wpb_wrapper td_block_wrap td_block_wrap tdb_single_current_post tdi_74 td-pb-border-top td_block_template_2"><div class="td-fix-index"><div class="fit-campaign-container"> <div style=" --ta-campaign-plugin-primary: #238fee; --ta-campaign-plugin-button-text: #fff; --ta-campaign-plugin-button-hover-background: #DBDBDB; --ta-campaign-plugin-button-hover-text: #fff; --ta-campaign-plugin-button-toggle-background: #238fee; --ta-campaign-plugin-button-toggle-text: #DBDBDB; " data-ajax-url="https://www.codeguru.com/wp/wp-admin/admin-ajax.php"> <div id="ta-campaign-widget-67425b183d383" class="ta-campaign-widget ta-campaign-widget--sidebar" data-campaign-fields='{"properties":{"campaign_type":"sidebar","campaign_category":false,"sailthru_list":["developer-insider"],"appearance":{"colors":{"primary_color":"#238fee","button":{"button_text_color":"#fff","hover":{"button_hover_background_color":"#DBDBDB","button_hover_text_color":"#fff"},"toggle":{"button_toggle_background_color":"#238fee","button_toggle_text_color":"#DBDBDB"}}},"custom_scss":""},"behavior":{"opt_in_enabled":true},"language":{"tagline":"Get the Free Newsletter!","subtagline":"","content":"Subscribe to Developer Insider for top news, trends & analysis","email_placeholder":"Work Email Address","opt_in":"By signing up to receive our newsletter, you agree to our <a href=\"https:\/\/technologyadvice.com\/terms-conditions\/\">Terms of Use<\/a> and <a href=\"https:\/\/technologyadvice.com\/privacy-policy\/\">Privacy Policy<\/a>.","subscribe_button":"Subscribe"}},"identifier":"67425b183d383","campaign_id":"19717","campaign_type":"sidebar","popup_type":null,"newsletters":["developer-insider"],"behavior":{"opt_in_enabled":true},"appearance":{"colors":{"primary":"#238fee","button":{"text":"#fff","hover":{"background":"#DBDBDB","text":"#fff"},"toggle":{"background":"#238fee","text":"#DBDBDB"}}},"custom_css":""},"language":{"tagline":"Get the Free Newsletter!","subtagline":"","content":"Subscribe to Developer Insider for top news, trends & analysis","email_placeholder":"Work Email Address","opt_in":"By signing up to receive our newsletter, you agree to our <a href=\"https:\/\/technologyadvice.com\/terms-conditions\/\">Terms of Use<\/a> and <a href=\"https:\/\/technologyadvice.com\/privacy-policy\/\">Privacy Policy<\/a>.","subscribe_button":"Subscribe"}}'> <div class="ta-campaign-widget__wrapper"> <div class="ta-campaign-widget__header mb-6"> <h3 class="ta-campaign-widget__tagline"> Get the Free Newsletter! </h3> <p class="ta-campaign-widget__content mt-6"> Subscribe to Developer Insider for top news, trends & analysis </p> </div> <form class="ta-campaign-widget__form"> <div class="ta-campaign-widget__input mb-4" data-field="email"> <label class="sr-only" for="email-67425b183d383"> Email Address </label> <input class="ta-campaign-widget__input__text" placeholder="Work Email Address" id="email-67425b183d383" name="email" type="email"> </div> <div class="ta-campaign-widget__checkbox mb-4" data-field="opt_in"> <div class="flex items-start"> <input id="opt-in-67425b183d383" class="ta-campaign-widget__checkbox__input mr-2" name="opt-in" type="checkbox"/> <label class="ta-campaign-widget__checkbox__label" for="opt-in-67425b183d383"> By signing up to receive our newsletter, you agree to our <a href="https://technologyadvice.com/terms-conditions/">Terms of Use</a> and <a href="https://technologyadvice.com/privacy-policy/">Privacy Policy</a>. </label> </div> </div> <button class="ta-campaign-widget__button" type="submit" > Subscribe </button> </form> </div> </div> </div> <style> </style></div></div></div><div class="td_block_wrap td_flex_block_1 tdi_75 td-pb-border-top native-rr td_block_template_2 td_flex_block" data-td-block-uid="tdi_75" > <style> .td-theme-wrap .tdi_75 .td-block-title > *, .td-theme-wrap .tdi_75 .td-pulldown-filter-link:hover, .td-theme-wrap .tdi_75 .td-subcat-item a:hover, .td-theme-wrap .tdi_75 .td-subcat-item .td-cur-simple-item, .td-theme-wrap .tdi_75 .td-subcat-dropdown:hover .td-subcat-more span, .td-theme-wrap .tdi_75 .td-subcat-dropdown:hover .td-subcat-more i { color: #151948; } .td-theme-wrap .tdi_75 .td-subcat-dropdown ul:after { background-color: #151948; } .td-theme-wrap .tdi_75 .td_module_wrap:hover .entry-title a, .td-theme-wrap .tdi_75 .td_quote_on_blocks, .td-theme-wrap .tdi_75 .td-opacity-cat .td-post-category:hover, .td-theme-wrap .tdi_75 .td-opacity-read .td-read-more a:hover, .td-theme-wrap .tdi_75 .td-opacity-author .td-post-author-name a:hover, .td-theme-wrap .tdi_75 .td-instagram-user a { color: #151948; } .td-theme-wrap .tdi_75 .td-next-prev-wrap a:hover, .td-theme-wrap .tdi_75 .td-load-more-wrap a:hover { background-color: #151948; border-color: #151948; } .td-theme-wrap .tdi_75 .td-read-more a, .td-theme-wrap .tdi_75 .td-weather-information:before, .td-theme-wrap .tdi_75 .td-weather-week:before, .td-theme-wrap .tdi_75 .td-exchange-header:before, .td-theme-wrap .td-footer-wrapper .tdi_75 .td-post-category, .td-theme-wrap .tdi_75 .td-post-category:hover { background-color: #151948; } </style> <style>.tdi_75 .td-image-wrap{padding-bottom:60%}.tdi_75 .entry-thumb{background-position:center 50%}.tdi_75 .td-image-container{flex:0 0 30%;width:30%;display:block;order:0}.ie10 .tdi_75 .td-image-container,.ie11 .tdi_75 .td-image-container{flex:0 0 auto}.tdi_75 .td-module-container{flex-direction:row;padding:10px 0;border-color:#eaeaea!important}.ie10 .tdi_75 .td-module-meta-info,.ie11 .tdi_75 .td-module-meta-info{flex:1}body .tdi_75 .td-favorite{font-size:36px;box-shadow:1px 1px 4px 0px rgba(0,0,0,0.2)}.tdi_75 .td-module-meta-info{padding:0 0 0 15px;border-color:#eaeaea}.tdi_75 .td_module_wrap{width:100%;float:left;padding-left:0px;padding-right:0px;padding-bottom:9px;margin-bottom:9px}.rtl .tdi_75 .td_module_wrap{float:right}.tdi_75 .td_block_inner{margin-left:-0px;margin-right:-0px}.tdi_75 .td-module-container:before{bottom:-9px;border-color:#eaeaea}.tdi_75 .td-post-vid-time{display:block}.tdi_75 .td-post-category{padding:6px 8px;background-color:#238fee;color:#ffffff;border-color:#ffffff;font-family:brother-xl!important;font-size:14px!important}.tdi_75 .td-author-photo .avatar{width:20px;height:20px;margin-right:6px;border-radius:50%}.tdi_75 .td-excerpt{display:none;margin:0px;column-count:1;column-gap:48px}.tdi_75 .td-audio-player{opacity:1;visibility:visible;height:auto;font-size:13px}.tdi_75 .td-read-more{display:none}.tdi_75 .td-author-date{display:inline}.tdi_75 .entry-review-stars{display:inline-block}.tdi_75 .td-icon-star,.tdi_75 .td-icon-star-empty,.tdi_75 .td-icon-star-half{font-size:15px}.tdi_75 .td-module-comments{display:none}.tdi_75 .td_module_wrap:nth-last-child(1){margin-bottom:0;padding-bottom:0}.tdi_75 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none}.tdi_75 .td-module-thumb a:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:-webkit-linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26));background:linear-gradient(90deg,rgba(38,189,233,0.29),rgba(0,126,237,0.26))}.tdi_75 .td-post-category:hover{background-color:#f2f2f2!important;color:#238fee;border-color:#ffffff}.tdi_75 .td-module-title a{color:#151948;box-shadow:inset 0 0 0 0 #238fee}.tdi_75 .td_module_wrap:hover .td-module-title a{color:#151948!important;box-shadow:inset 0 -2px 0 0 #238fee}.tdi_75 .td-post-author-name a{color:#238fee}.tdi_75 .td-post-author-name:hover a{color:#b361e0}.tdi_75 .td-post-date,.tdi_75 .td-post-author-name span{color:#a5a5a5}.tdi_75.td_with_ajax_pagination .td-next-prev-wrap a,.tdi_75 .td-load-more-wrap a{color:#a5a5a5;background-color:#ffffff;border-color:#dbdbdb;padding:5px 6px;border-width:2px}.tdi_75 .td-load-more-wrap a .td-load-more-icon-svg svg,.tdi_75 .td-load-more-wrap a .td-load-more-icon-svg svg *,.tdi_75.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg,.tdi_75.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg *{fill:#a5a5a5}.tdi_75.td_with_ajax_pagination .td-next-prev-wrap a:hover,.tdi_75 .td-load-more-wrap a:hover{color:#ffffff;background-color:#238fee!important;border-color:#238fee!important;border-color:#f2f2f2!important}.tdi_75 .td-load-more-wrap a:hover .td-load-more-icon-svg svg,.tdi_75 .td-load-more-wrap a:hover .td-load-more-icon-svg svg *,.tdi_75.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg,.tdi_75.td_with_ajax_pagination .td-next-prev-wrap a:hover .td-next-prev-icon-svg svg *{fill:#ffffff}.tdi_75.td_with_ajax_pagination .td-next-prev-wrap,.tdi_75 .td-load-more-wrap{margin-top:35px}.tdi_75 .page-nav .pages{padding-right:0}.tdi_75.td_with_ajax_pagination .td-next-prev-wrap a,.tdi_75 .td-load-more-wrap a i{font-size:24px}.tdi_75 .td-load-more-wrap a .td-load-more-icon-svg svg,.tdi_75.td_with_ajax_pagination .td-next-prev-wrap .td-next-prev-icon-svg svg{width:24px;height:calc(24px + 1px)}.tdi_75 .td-block-title a,.tdi_75 .td-block-title span{font-family:brother-xl!important;font-size:30px!important;font-weight:700!important;text-transform:capitalize!important}.tdi_75 .td-subcat-list a,.tdi_75 .td-subcat-dropdown span,.tdi_75 .td-subcat-dropdown a{font-family:brother-xl!important}.tdi_75 .entry-title{font-family:brother-xl!important;font-size:17px!important;line-height:1.2!important;font-weight:700!important}.tdi_75 .td-editor-date,.tdi_75 .td-editor-date .td-post-author-name a,.tdi_75 .td-editor-date .entry-date,.tdi_75 .td-module-comments a{font-family:Rubik!important;font-size:14px!important;font-weight:400!important}.tdi_75 .td-load-more-wrap a{font-family:brother-xl!important}html:not([class*='ie']) .tdi_75 .td-module-container:hover .entry-thumb:before{opacity:0}html:not([class*='ie']) .tdi_75 .entry-thumb{filter:brightness(1) contrast(1) saturate(1);transition:all 1s ease;-webkit-transition:all 1s ease}@media (min-width:768px){.tdi_75 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}@media (min-width:1141px){html:not([class*='ie']) .tdi_75 .td-module-container:hover .entry-thumb{filter:brightness(0.7) contrast(0.7) saturate(1)}}@media (min-width:1019px) and (max-width:1140px){.tdi_75 .td_module_wrap{padding-bottom:9px;margin-bottom:9px;padding-bottom:9px!important;margin-bottom:9px!important}.tdi_75 .td-module-container:before{bottom:-9px}.tdi_75 .td-post-category:not(.td-post-extra-category){display:none}.tdi_75 .td_module_wrap:nth-last-child(1){margin-bottom:0!important;padding-bottom:0!important}.tdi_75 .td_module_wrap .td-module-container:before{display:block!important}.tdi_75 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none!important}.tdi_75 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_75 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_75 .entry-title{font-size:14px!important}@media (min-width:768px){.tdi_75 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (min-width:768px) and (max-width:1018px){.tdi_75 .td-image-wrap{padding-bottom:90%}.tdi_75 .td-module-meta-info{padding:0 0 0 10px}.tdi_75 .td_module_wrap{padding-bottom:8px;margin-bottom:8px;padding-bottom:8px!important;margin-bottom:8px!important}.tdi_75 .td-module-container:before{bottom:-8px}.tdi_75 .td-post-category:not(.td-post-extra-category){display:none}.tdi_75 .td_module_wrap:nth-last-child(1){margin-bottom:0!important;padding-bottom:0!important}.tdi_75 .td_module_wrap .td-module-container:before{display:block!important}.tdi_75 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none!important}.tdi_75 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_75 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_75 .entry-title{font-size:12px!important}@media (min-width:768px){.tdi_75 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}@media (max-width:767px){.tdi_75 .td-module-meta-info{padding:0px 5px 5px 15px}.tdi_75 .td_module_wrap{padding-bottom:9px;margin-bottom:9px;padding-bottom:9px!important;margin-bottom:9px!important}.tdi_75 .td-module-container:before{bottom:-9px}.tdi_75 .td-post-category:not(.td-post-extra-category){display:none}.tdi_75 .td_module_wrap:nth-last-child(1){margin-bottom:0!important;padding-bottom:0!important}.tdi_75 .td_module_wrap .td-module-container:before{display:block!important}.tdi_75 .td_module_wrap:nth-last-child(1) .td-module-container:before{display:none!important}.tdi_75 .td-module-title a{box-shadow:inset 0 0 0 0 #238fee}.tdi_75 .td_module_wrap:hover .td-module-title a{box-shadow:inset 0 -2px 0 0 #238fee}.tdi_75 .entry-title{font-size:15px!important}@media (min-width:768px){.tdi_75 .td-module-title a{transition:all 0.2s ease;-webkit-transition:all 0.2s ease}}}</style><script data-src="data:text/javascript;base64,dmFyIGJsb2NrX3RkaV83NSA9IG5ldyB0ZEJsb2NrKCk7CmJsb2NrX3RkaV83NS5pZCA9ICJ0ZGlfNzUiOwpibG9ja190ZGlfNzUuYXR0cyA9ICd7ImN1c3RvbV90aXRsZSI6Ik11c3QgUmVhZCIsImZfaGVhZGVyX2ZvbnRfdHJhbnNmb3JtIjoiY2FwaXRhbGl6ZSIsImFqYXhfcGFnaW5hdGlvbiI6IiIsImNhdGVnb3J5X2lkIjoiX3JlbGF0ZWRfY2F0Iiwic29ydCI6IiIsImFsbF9tb2R1bGVzX3NwYWNlIjoiZXlKd2IzSjBjbUZwZENJNklqRTJJaXdpWVd4c0lqb2lNVGdpZlE9PSIsImltYWdlX2Zsb2F0ZWQiOiJmbG9hdF9sZWZ0IiwiaW1hZ2Vfd2lkdGgiOiIzMCIsImltYWdlX2hlaWdodCI6ImV5SmhiR3dpT2lJMk1DVWlMQ0p3YjNKMGNtRnBkQ0k2SWprd0luMD0iLCJtZXRhX3BhZGRpbmciOiJleUp3YjNKMGNtRnBkQ0k2SWpBZ01DQXdJREV3Y0hnaUxDSndhRzl1WlNJNklqQndlQ0ExY0hnZ05YQjRJREUxY0hnaUxDSmhiR3dpT2lJd0lEQWdNQ0F4TlhCNEluMD0iLCJzaG93X2V4Y2VycHQiOiJub25lIiwic2hvd19idG4iOiJub25lIiwic2hvd19jb20iOiJub25lIiwic2hvd19kYXRlIjoiIiwic2hvd19hdXRob3IiOiIiLCJibG9ja190ZW1wbGF0ZV9pZCI6InRkX2Jsb2NrX3RlbXBsYXRlXzIiLCJmX3RpdGxlX2ZvbnRfc2l6ZSI6ImV5SndiM0owY21GcGRDSTZJakV5SWl3aWJHRnVaSE5qWVhCbElqb2lNVFFpTENKd2FHOXVaU0k2SWpFMUlpd2lZV3hzSWpvaU1UY2lmUT09IiwiZl90aXRsZV9mb250X2xpbmVfaGVpZ2h0IjoiMS4yIiwiZl90aXRsZV9mb250X3dlaWdodCI6IjcwMCIsImZfaGVhZGVyX2ZvbnRfZmFtaWx5IjoidGtfMSIsImZfaGVhZGVyX2ZvbnRfd2VpZ2h0IjoiNzAwIiwiZl90aXRsZV9mb250X2ZhbWlseSI6InRrXzEiLCJzaG93X2NhdCI6ImV5SnNZVzVrYzJOaGNHVWlPaUp1YjI1bElpd2ljRzl5ZEhKaGFYUWlPaUp1YjI1bElpd2ljR2h2Ym1VaU9pSnViMjVsSW4wPSIsIm1jMV90bCI6IjExIiwibWMxX2VsIjoiMTAiLCJtb2R1bGVzX2dhcCI6IjAiLCJtX3BhZGRpbmciOiIxMHB4IDAiLCJtb2R1bGVzX2NhdGVnb3J5IjoiaW1hZ2UiLCJtb2R1bGVzX2NhdGVnb3J5X3BhZGRpbmciOiI2cHggOHB4IiwiYXJ0X2V4Y2VycHQiOiIwIiwicGFnX3NwYWNlIjoiMzUiLCJwYWdfcGFkZGluZyI6IjVweCA2cHgiLCJwYWdfYm9yZGVyX3dpZHRoIjoiMiIsInBhZ19pY29uc19zaXplIjoiMjQiLCJwcmV2X3RkaWNvbiI6InRkLWljb24tbGluZWUiLCJuZXh0X3RkaWNvbiI6InRkLWljb24tcGx1c3MiLCJmX2FqYXhfZm9udF9mYW1pbHkiOiJ0a18xIiwiZl9tb3JlX2ZvbnRfZmFtaWx5IjoidGtfMSIsImZfY2F0X2ZvbnRfZmFtaWx5IjoidGtfMSIsImZfbWV0YV9mb250X2ZhbWlseSI6IjcxMiIsImZfbWV0YV9mb250X3dlaWdodCI6IjQwMCIsImZfbWV0YV9mb250X3NpemUiOiIxNCIsImZfY2F0X2ZvbnRfc2l6ZSI6IjE0IiwiZmVfYnJpZ2h0bmVzc19oIjoiMC43IiwiZmVfY29udHJhc3RfaCI6IjAuNyIsImNvbG9yX292ZXJsYXkiOiJleUowZVhCbElqb2laM0poWkdsbGJuUWlMQ0pqYjJ4dmNqRWlPaUp5WjJKaEtEQXNNVEkyTERJek55d3dMakkyS1NJc0ltTnZiRzl5TWlJNkluSm5ZbUVvTXpnc01UZzVMREl6TXl3d0xqSTVLU0lzSW0xcGVHVmtRMjlzYjNKeklqcGJYU3dpWkdWbmNtVmxJam9pT1RBaUxDSmpjM01pT2lKaVlXTnJaM0p2ZFc1a09pQXRkMlZpYTJsMExXeHBibVZoY2kxbmNtRmthV1Z1ZENnNU1HUmxaeXh5WjJKaEtETTRMREU0T1N3eU16TXNNQzR5T1Nrc2NtZGlZU2d3TERFeU5pd3lNemNzTUM0eU5pa3BPMkpoWTJ0bmNtOTFibVE2SUd4cGJtVmhjaTFuY21Ga2FXVnVkQ2c1TUdSbFp5eHlaMkpoS0RNNExERTRPU3d5TXpNc01DNHlPU2tzY21kaVlTZ3dMREV5Tml3eU16Y3NNQzR5TmlrcE95SXNJbU56YzFCaGNtRnRjeUk2SWprd1pHVm5MSEpuWW1Fb016Z3NNVGc1TERJek15d3dMakk1S1N4eVoySmhLREFzTVRJMkxESXpOeXd3TGpJMktTSjkiLCJ0aXRsZV90eHQiOiIjMTUxOTQ4IiwidGl0bGVfdHh0X2hvdmVyIjoiIzE1MTk0OCIsImFsbF91bmRlcmxpbmVfaGVpZ2h0IjoiMiIsImFsbF91bmRlcmxpbmVfY29sb3IiOiIjMjM4ZmVlIiwiY2F0X2JnIjoiIzIzOGZlZSIsImNhdF9iZ19ob3ZlciI6IiNmMmYyZjIiLCJjYXRfdHh0X2hvdmVyIjoiIzIzOGZlZSIsImNhdF90eHQiOiIjZmZmZmZmIiwiY2F0X2JvcmRlciI6IiNmZmZmZmYiLCJjYXRfYm9yZGVyX2hvdmVyIjoiI2ZmZmZmZiIsImF1dGhvcl90eHQiOiIjMjM4ZmVlIiwiYXV0aG9yX3R4dF9ob3ZlciI6IiNiMzYxZTAiLCJkYXRlX3R4dCI6IiNhNWE1YTUiLCJwYWdfdGV4dCI6IiNhNWE1YTUiLCJwYWdfaF90ZXh0IjoiI2ZmZmZmZiIsInBhZ19iZyI6IiNmZmZmZmYiLCJwYWdfaF9iZyI6IiMyMzhmZWUiLCJwYWdfaF9ib3JkZXIiOiIjZjJmMmYyIiwicGFnX2JvcmRlciI6IiNkYmRiZGIiLCJoZWFkZXJfdGV4dF9jb2xvciI6IiMxNTE5NDgiLCJmX2hlYWRlcl9mb250X3NpemUiOiIzMCIsImxpbWl0IjoiNCIsImVsX2NsYXNzIjoibmF0aXZlLXJyIiwiYmxvY2tfdHlwZSI6InRkX2ZsZXhfYmxvY2tfMSIsInNlcGFyYXRvciI6IiIsImN1c3RvbV91cmwiOiIiLCJ0aXRsZV90YWciOiIiLCJtYzFfdGl0bGVfdGFnIjoiIiwicG9zdF9pZHMiOiItMTQ1MjQiLCJ0YXhvbm9taWVzIjoiIiwiY2F0ZWdvcnlfaWRzIjoiIiwiaW5fYWxsX3Rlcm1zIjoiIiwidGFnX3NsdWciOiIiLCJhdXRvcnNfaWQiOiIiLCJpbnN0YWxsZWRfcG9zdF90eXBlcyI6IiIsImluY2x1ZGVfY2ZfcG9zdHMiOiIiLCJleGNsdWRlX2NmX3Bvc3RzIjoiIiwicG9wdWxhcl9ieV9kYXRlIjoiIiwibGlua2VkX3Bvc3RzIjoiIiwiZmF2b3VyaXRlX29ubHkiOiIiLCJvZmZzZXQiOiIiLCJvcGVuX2luX25ld193aW5kb3ciOiIiLCJzaG93X21vZGlmaWVkX2RhdGUiOiIiLCJ0aW1lX2FnbyI6IiIsInRpbWVfYWdvX2FkZF90eHQiOiJhZ28iLCJ0aW1lX2Fnb190eHRfcG9zIjoiIiwicmV2aWV3X3NvdXJjZSI6IiIsInRkX3F1ZXJ5X2NhY2hlIjoiIiwidGRfcXVlcnlfY2FjaGVfZXhwaXJhdGlvbiI6IiIsInRkX2FqYXhfZmlsdGVyX3R5cGUiOiIiLCJ0ZF9hamF4X2ZpbHRlcl9pZHMiOiIiLCJ0ZF9maWx0ZXJfZGVmYXVsdF90eHQiOiJBbGwiLCJ0ZF9hamF4X3ByZWxvYWRpbmciOiIiLCJjb250YWluZXJfd2lkdGgiOiIiLCJtb2R1bGVzX29uX3JvdyI6IjEwMCUiLCJtb2R1bGVzX2JvcmRlcl9zaXplIjoiIiwibW9kdWxlc19ib3JkZXJfc3R5bGUiOiIiLCJtb2R1bGVzX2JvcmRlcl9jb2xvciI6IiNlYWVhZWEiLCJtb2R1bGVzX2JvcmRlcl9yYWRpdXMiOiIiLCJtb2R1bGVzX2RpdmlkZXIiOiIiLCJtb2R1bGVzX2RpdmlkZXJfY29sb3IiOiIjZWFlYWVhIiwiaF9lZmZlY3QiOiIiLCJpbWFnZV9zaXplIjoiIiwiaW1hZ2VfYWxpZ25tZW50IjoiNTAiLCJpbWFnZV9yYWRpdXMiOiIiLCJoaWRlX2ltYWdlIjoiIiwic2hvd19mYXZvdXJpdGVzIjoiIiwiZmF2X3NpemUiOiIyIiwiZmF2X3NwYWNlIjoiIiwiZmF2X2ljb19jb2xvciI6IiIsImZhdl9pY29fY29sb3JfaCI6IiIsImZhdl9iZyI6IiIsImZhdl9iZ19oIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfaGVhZGVyIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfdGl0bGUiOiJTaGFkb3ciLCJmYXZfc2hhZG93X3NoYWRvd19zaXplIjoiIiwiZmF2X3NoYWRvd19zaGFkb3dfb2Zmc2V0X2hvcml6b250YWwiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19vZmZzZXRfdmVydGljYWwiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19zcHJlYWQiOiIiLCJmYXZfc2hhZG93X3NoYWRvd19jb2xvciI6IiIsInZpZGVvX2ljb24iOiIiLCJ2aWRlb19wb3B1cCI6InllcyIsInZpZGVvX3JlYyI6IiIsInNwb3RfaGVhZGVyIjoiIiwidmlkZW9fcmVjX3RpdGxlIjoiIiwidmlkZW9fcmVjX2NvbG9yIjoiIiwidmlkZW9fcmVjX2Rpc2FibGUiOiIiLCJhdXRvcGxheV92aWQiOiJ5ZXMiLCJzaG93X3ZpZF90IjoiYmxvY2siLCJ2aWRfdF9tYXJnaW4iOiIiLCJ2aWRfdF9wYWRkaW5nIjoiIiwidmlkZW9fdGl0bGVfY29sb3IiOiIiLCJ2aWRlb190aXRsZV9jb2xvcl9oIjoiIiwidmlkZW9fYmciOiIiLCJ2aWRlb19vdmVybGF5IjoiIiwidmlkX3RfY29sb3IiOiIiLCJ2aWRfdF9iZ19jb2xvciI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfaGVhZGVyIjoiIiwiZl92aWRfdGl0bGVfZm9udF90aXRsZSI6IlZpZGVvIHBvcC11cCBhcnRpY2xlIHRpdGxlIiwiZl92aWRfdGl0bGVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfZmFtaWx5IjoiIiwiZl92aWRfdGl0bGVfZm9udF9zaXplIjoiIiwiZl92aWRfdGl0bGVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfc3R5bGUiOiIiLCJmX3ZpZF90aXRsZV9mb250X3dlaWdodCI6IiIsImZfdmlkX3RpdGxlX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGl0bGVfZm9udF9zcGFjaW5nIjoiIiwiZl92aWRfdGl0bGVfIjoiIiwiZl92aWRfdGltZV9mb250X3RpdGxlIjoiVmlkZW8gZHVyYXRpb24gdGV4dCIsImZfdmlkX3RpbWVfZm9udF9zZXR0aW5ncyI6IiIsImZfdmlkX3RpbWVfZm9udF9mYW1pbHkiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfc2l6ZSI6IiIsImZfdmlkX3RpbWVfZm9udF9saW5lX2hlaWdodCI6IiIsImZfdmlkX3RpbWVfZm9udF9zdHlsZSI6IiIsImZfdmlkX3RpbWVfZm9udF93ZWlnaHQiOiIiLCJmX3ZpZF90aW1lX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl92aWRfdGltZV9mb250X3NwYWNpbmciOiIiLCJmX3ZpZF90aW1lXyI6IiIsIm1ldGFfaW5mb19hbGlnbiI6IiIsIm1ldGFfaW5mb19ob3JpeiI6ImxheW91dC1kZWZhdWx0IiwibWV0YV93aWR0aCI6IiIsIm1ldGFfbWFyZ2luIjoiIiwibWV0YV9zcGFjZSI6IiIsImFydF90aXRsZSI6IiIsImFydF9idG4iOiIiLCJtZXRhX2luZm9fYm9yZGVyX3NpemUiOiIiLCJtZXRhX2luZm9fYm9yZGVyX3N0eWxlIjoiIiwibWV0YV9pbmZvX2JvcmRlcl9jb2xvciI6IiNlYWVhZWEiLCJtZXRhX2luZm9fYm9yZGVyX3JhZGl1cyI6IiIsIm1vZHVsZXNfY2F0ZWdvcnlfbWFyZ2luIjoiIiwibW9kdWxlc19jYXRfYm9yZGVyIjoiIiwibW9kdWxlc19jYXRlZ29yeV9yYWRpdXMiOiIwIiwibW9kdWxlc19leHRyYV9jYXQiOiIiLCJhdXRob3JfcGhvdG8iOiIiLCJhdXRob3JfcGhvdG9fc2l6ZSI6IiIsImF1dGhvcl9waG90b19zcGFjZSI6IiIsImF1dGhvcl9waG90b19yYWRpdXMiOiIiLCJzaG93X3JldmlldyI6ImlubGluZS1ibG9jayIsInJldmlld19zcGFjZSI6IiIsInJldmlld19zaXplIjoiMi41IiwicmV2aWV3X2Rpc3RhbmNlIjoiIiwiZXhjZXJwdF9jb2wiOiIxIiwiZXhjZXJwdF9nYXAiOiIiLCJleGNlcnB0X21pZGRsZSI6IiIsImV4Y2VycHRfaW5saW5lIjoiIiwic2hvd19hdWRpbyI6ImJsb2NrIiwiaGlkZV9hdWRpbyI6IiIsImFydF9hdWRpbyI6IiIsImFydF9hdWRpb19zaXplIjoiMS41IiwiYnRuX3RpdGxlIjoiIiwiYnRuX21hcmdpbiI6IiIsImJ0bl9wYWRkaW5nIjoiIiwiYnRuX2JvcmRlcl93aWR0aCI6IiIsImJ0bl9yYWRpdXMiOiIiLCJwYWdfYm9yZGVyX3JhZGl1cyI6IiIsImZfaGVhZGVyX2ZvbnRfaGVhZGVyIjoiIiwiZl9oZWFkZXJfZm9udF90aXRsZSI6IkJsb2NrIGhlYWRlciIsImZfaGVhZGVyX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2hlYWRlcl9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9oZWFkZXJfZm9udF9zdHlsZSI6IiIsImZfaGVhZGVyX2ZvbnRfc3BhY2luZyI6IiIsImZfaGVhZGVyXyI6IiIsImZfYWpheF9mb250X3RpdGxlIjoiQWpheCBjYXRlZ29yaWVzIiwiZl9hamF4X2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2FqYXhfZm9udF9zaXplIjoiIiwiZl9hamF4X2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX2FqYXhfZm9udF9zdHlsZSI6IiIsImZfYWpheF9mb250X3dlaWdodCI6IiIsImZfYWpheF9mb250X3RyYW5zZm9ybSI6IiIsImZfYWpheF9mb250X3NwYWNpbmciOiIiLCJmX2FqYXhfIjoiIiwiZl9tb3JlX2ZvbnRfdGl0bGUiOiJMb2FkIG1vcmUgYnV0dG9uIiwiZl9tb3JlX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX21vcmVfZm9udF9zaXplIjoiIiwiZl9tb3JlX2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX21vcmVfZm9udF9zdHlsZSI6IiIsImZfbW9yZV9mb250X3dlaWdodCI6IiIsImZfbW9yZV9mb250X3RyYW5zZm9ybSI6IiIsImZfbW9yZV9mb250X3NwYWNpbmciOiIiLCJmX21vcmVfIjoiIiwiZl90aXRsZV9mb250X2hlYWRlciI6IiIsImZfdGl0bGVfZm9udF90aXRsZSI6IkFydGljbGUgdGl0bGUiLCJmX3RpdGxlX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX3RpdGxlX2ZvbnRfc3R5bGUiOiIiLCJmX3RpdGxlX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl90aXRsZV9mb250X3NwYWNpbmciOiIiLCJmX3RpdGxlXyI6IiIsImZfY2F0X2ZvbnRfdGl0bGUiOiJBcnRpY2xlIGNhdGVnb3J5IHRhZyIsImZfY2F0X2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2NhdF9mb250X2xpbmVfaGVpZ2h0IjoiIiwiZl9jYXRfZm9udF9zdHlsZSI6IiIsImZfY2F0X2ZvbnRfd2VpZ2h0IjoiIiwiZl9jYXRfZm9udF90cmFuc2Zvcm0iOiIiLCJmX2NhdF9mb250X3NwYWNpbmciOiIiLCJmX2NhdF8iOiIiLCJmX21ldGFfZm9udF90aXRsZSI6IkFydGljbGUgbWV0YSBpbmZvIiwiZl9tZXRhX2ZvbnRfc2V0dGluZ3MiOiIiLCJmX21ldGFfZm9udF9saW5lX2hlaWdodCI6IiIsImZfbWV0YV9mb250X3N0eWxlIjoiIiwiZl9tZXRhX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9tZXRhX2ZvbnRfc3BhY2luZyI6IiIsImZfbWV0YV8iOiIiLCJmX2V4X2ZvbnRfdGl0bGUiOiJBcnRpY2xlIGV4Y2VycHQiLCJmX2V4X2ZvbnRfc2V0dGluZ3MiOiIiLCJmX2V4X2ZvbnRfZmFtaWx5IjoiIiwiZl9leF9mb250X3NpemUiOiIiLCJmX2V4X2ZvbnRfbGluZV9oZWlnaHQiOiIiLCJmX2V4X2ZvbnRfc3R5bGUiOiIiLCJmX2V4X2ZvbnRfd2VpZ2h0IjoiIiwiZl9leF9mb250X3RyYW5zZm9ybSI6IiIsImZfZXhfZm9udF9zcGFjaW5nIjoiIiwiZl9leF8iOiIiLCJmX2J0bl9mb250X3RpdGxlIjoiQXJ0aWNsZSByZWFkIG1vcmUgYnV0dG9uIiwiZl9idG5fZm9udF9zZXR0aW5ncyI6IiIsImZfYnRuX2ZvbnRfZmFtaWx5IjoiIiwiZl9idG5fZm9udF9zaXplIjoiIiwiZl9idG5fZm9udF9saW5lX2hlaWdodCI6IiIsImZfYnRuX2ZvbnRfc3R5bGUiOiIiLCJmX2J0bl9mb250X3dlaWdodCI6IiIsImZfYnRuX2ZvbnRfdHJhbnNmb3JtIjoiIiwiZl9idG5fZm9udF9zcGFjaW5nIjoiIiwiZl9idG5fIjoiIiwibWl4X2NvbG9yIjoiIiwibWl4X3R5cGUiOiIiLCJmZV9icmlnaHRuZXNzIjoiMSIsImZlX2NvbnRyYXN0IjoiMSIsImZlX3NhdHVyYXRlIjoiMSIsIm1peF9jb2xvcl9oIjoiIiwibWl4X3R5cGVfaCI6IiIsImZlX3NhdHVyYXRlX2giOiIxIiwibV9iZyI6IiIsInNoYWRvd19zaGFkb3dfaGVhZGVyIjoiIiwic2hhZG93X3NoYWRvd190aXRsZSI6Ik1vZHVsZSBTaGFkb3ciLCJzaGFkb3dfc2hhZG93X3NpemUiOiIiLCJzaGFkb3dfc2hhZG93X29mZnNldF9ob3Jpem9udGFsIjoiIiwic2hhZG93X3NoYWRvd19vZmZzZXRfdmVydGljYWwiOiIiLCJzaGFkb3dfc2hhZG93X3NwcmVhZCI6IiIsInNoYWRvd19zaGFkb3dfY29sb3IiOiIiLCJjYXRfc3R5bGUiOiIiLCJtZXRhX2JnIjoiIiwiZXhfdHh0IjoiIiwiY29tX2JnIjoiIiwiY29tX3R4dCI6IiIsInJldl90eHQiOiIiLCJhdWRpb19idG5fY29sb3IiOiIiLCJhdWRpb190aW1lX2NvbG9yIjoiIiwiYXVkaW9fYmFyX2NvbG9yIjoiIiwiYXVkaW9fYmFyX2N1cnJfY29sb3IiOiIiLCJzaGFkb3dfbV9zaGFkb3dfaGVhZGVyIjoiIiwic2hhZG93X21fc2hhZG93X3RpdGxlIjoiTWV0YSBpbmZvIHNoYWRvdyIsInNoYWRvd19tX3NoYWRvd19zaXplIjoiIiwic2hhZG93X21fc2hhZG93X29mZnNldF9ob3Jpem9udGFsIjoiIiwic2hhZG93X21fc2hhZG93X29mZnNldF92ZXJ0aWNhbCI6IiIsInNoYWRvd19tX3NoYWRvd19zcHJlYWQiOiIiLCJzaGFkb3dfbV9zaGFkb3dfY29sb3IiOiIiLCJidG5fYmciOiIiLCJidG5fYmdfaG92ZXIiOiIiLCJidG5fdHh0IjoiIiwiYnRuX3R4dF9ob3ZlciI6IiIsImJ0bl9ib3JkZXIiOiIiLCJidG5fYm9yZGVyX2hvdmVyIjoiIiwiYWpheF9wYWdpbmF0aW9uX25leHRfcHJldl9zd2lwZSI6IiIsImFqYXhfcGFnaW5hdGlvbl9pbmZpbml0ZV9zdG9wIjoiIiwiY3NzIjoiIiwidGRjX2NzcyI6IiIsInRkX2NvbHVtbl9udW1iZXIiOjEsImhlYWRlcl9jb2xvciI6IiIsImNvbG9yX3ByZXNldCI6IiIsImJvcmRlcl90b3AiOiIiLCJjbGFzcyI6InRkaV83NSIsInRkY19jc3NfY2xhc3MiOiJ0ZGlfNzUiLCJ0ZGNfY3NzX2NsYXNzX3N0eWxlIjoidGRpXzc1X3JhbmRfc3R5bGUiLCJsaXZlX2ZpbHRlciI6ImN1cl9wb3N0X3NhbWVfY2F0ZWdvcmllcyIsImxpdmVfZmlsdGVyX2N1cl9wb3N0X2lkIjoxNDUyNCwibGl2ZV9maWx0ZXJfY3VyX3Bvc3RfcGFyZW50X2lkIjowfSc7CmJsb2NrX3RkaV83NS50ZF9jb2x1bW5fbnVtYmVyID0gIjEiOwpibG9ja190ZGlfNzUuYmxvY2tfdHlwZSA9ICJ0ZF9mbGV4X2Jsb2NrXzEiOwpibG9ja190ZGlfNzUucG9zdF9jb3VudCA9ICI0IjsKYmxvY2tfdGRpXzc1LmZvdW5kX3Bvc3RzID0gIjI0NyI7CmJsb2NrX3RkaV83NS5oZWFkZXJfY29sb3IgPSAiIjsKYmxvY2tfdGRpXzc1LmFqYXhfcGFnaW5hdGlvbl9pbmZpbml0ZV9zdG9wID0gIiI7CmJsb2NrX3RkaV83NS5tYXhfbnVtX3BhZ2VzID0gIjYyIjsKdGRCbG9ja3NBcnJheS5wdXNoKGJsb2NrX3RkaV83NSk7Cg==" data-type="lazy"></script><div class="td-block-title-wrap"><h4 class="td-block-title"><span class="td-pulldown-size">Must Read</span></h4></div><div id=tdi_75 class="td_block_inner td-mc1-wrap"> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/mandelbrot-using-c-amp/" rel="bookmark" class="td-image-wrap " title="Mandelbrot Using C++ AMP" ><span data-bg="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/images/no-thumb/td_696x0.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/mandelbrot-using-c-amp/" rel="bookmark" title="Mandelbrot Using C++ AMP">Mandelbrot Using C++ AMP</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2012-01-27T17:57:52+00:00" >January 27, 2012</time></span> </span> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/simple-c-mp3-player-class/" rel="bookmark" class="td-image-wrap " title="Simple C++ MP3 Player Class" ><span data-bg="https://assets.codeguru.com/uploads/2021/07/cppmp3player.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/simple-c-mp3-player-class/" rel="bookmark" title="Simple C++ MP3 Player Class">Simple C++ MP3 Player Class</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2011-08-22T15:53:33+00:00" >August 22, 2011</time></span> </span> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/library-for-raw-video-processing/" rel="bookmark" class="td-image-wrap " title="Library for Raw Video Processing" ><span data-bg="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/assets/images/no-thumb/td_696x0.png" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/library-for-raw-video-processing/" rel="bookmark" title="Library for Raw Video Processing">Library for Raw Video Processing</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2011-06-14T18:32:41+00:00" >June 14, 2011</time></span> </span> </div> </div> </div> </div> <div class="td_module_flex td_module_flex_1 td_module_wrap td-animation-stack td-cpt-post"> <div class="td-module-container td-category-pos-image"> <div class="td-image-container"> <a href="https://www.codeguru.com/multimedia/" class="td-post-category" >Multimedia</a> <div class="td-module-thumb"><a href="https://www.codeguru.com/multimedia/how-to-add-dmo-in-directshow-filter-graph/" rel="bookmark" class="td-image-wrap " title="How to add DMO in DirectShow filter graph" ><span data-bg="https://assets.codeguru.com/uploads/2021/07/DMOAudEffects.jpg" class="entry-thumb td-thumb-css rocket-lazyload" style="" ></span></a></div> </div> <div class="td-module-meta-info"> <h3 class="entry-title td-module-title"><a href="https://www.codeguru.com/multimedia/how-to-add-dmo-in-directshow-filter-graph/" rel="bookmark" title="How to add DMO in DirectShow filter graph">How to add DMO in DirectShow filter graph</a></h3> <div class="td-editor-date"> <span class="td-author-date"> <span class="td-post-author-name"><a href="https://www.codeguru.com/author/codeguru-staff/">CodeGuru Staff</a> <span>-</span> </span> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2010-12-11T00:38:58+00:00" >December 11, 2010</time></span> </span> </div> </div> </div> </div> </div></div><div class="td-block td-a-rec td-a-rec-id-custom-spot tdi_76 td_block_template_2"> <style>.tdi_76.td-a-rec{text-align:center}.tdi_76.td-a-rec:not(.td-a-rec-no-translate){transform:translateZ(0)}.tdi_76 .td-element-style{z-index:-1}.tdi_76.td-a-rec-img{text-align:left}.tdi_76.td-a-rec-img img{margin:0 auto 0 0}@media (max-width:767px){.tdi_76.td-a-rec-img{text-align:center}}</style><div class="wp-ads-sticky-rail" id="wp-ads-1659198350"><!-- Start: GAM Ad Slot Render | Codeguru Sticky Rail --> <div id="sticky-rail" style="max-width: 300px; min-width: 160px; width: auto; text-align:center; min-height: 250px; max-height: 600px; height: auto; background-color: #ffffff; border:0px solid #efefef;"> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("sticky-rail"); }); </script> </div> <!-- End: GAM Ad Slot Render | Codeguru Sticky Rail --></div></div><div class="wpb_wrapper td_block_empty_space td_block_wrap vc_empty_space tdi_78 " style="height: 42px"></div></div></div></div></div></div></div> <span class="td-page-meta" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="Pravin Kumar Sinha"><meta itemprop="url" content="https://www.codeguru.com/author/pravin-kumar-sinha/"></span><meta itemprop="datePublished" content="2016-05-18T07:15:00+00:00"><meta itemprop="dateModified" content="2021-08-09T21:42:06+00:00"><meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/"/><span class="td-page-meta" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span class="td-page-meta" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://www.codeguru.com/multimedia/drawing-3d-opengl-graphics-on-google-maps/"></span><meta itemprop="name" content="CodeGuru"></span><meta itemprop="headline" content="Drawing 3D OpenGL Graphics on Google Maps"><span class="td-page-meta" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://assets.codeguru.com/uploads/2021/07/Cplusplus2.jpg"><meta itemprop="width" content="478"><meta itemprop="height" content="359"></span> </article> </div> </div> </div> <!-- #tdb-autoload-article --> <div class="td-footer-template-wrap" style="position: relative"> <div class="td-footer-wrap "> <div id="tdi_79" class="tdc-zone"><div class="tdc_zone tdi_80 wpb_row td-pb-row tdc-element-style" > <style scoped>.tdi_80{min-height:0}.tdi_80>.td-element-style:after{content:''!important;width:100%!important;height:100%!important;position:absolute!important;top:0!important;left:0!important;z-index:0!important;display:block!important;background-color:#080a19!important}</style> <div class="tdi_79_rand_style td-element-style" ></div><div id="tdi_81" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_82 _ntv_footer wpb_row td-pb-row" > <style scoped>.tdi_82,.tdi_82 .tdc-columns{min-height:0}.tdi_82,.tdi_82 .tdc-columns{display:block}.tdi_82 .tdc-columns{width:100%}.tdi_82:before,.tdi_82:after{display:table}@media (min-width:768px){.tdi_82{margin-left:-15px;margin-right:-15px}.tdi_82 .tdc-row-video-background-error,.tdi_82>.vc_column,.tdi_82>.tdc-columns>.vc_column{padding-left:15px;padding-right:15px}}@media (min-width:1019px) and (max-width:1140px){@media (min-width:768px){.tdi_82{margin-left:-10px;margin-right:-10px}.tdi_82 .tdc-row-video-background-error,.tdi_82>.vc_column,.tdi_82>.tdc-columns>.vc_column{padding-left:10px;padding-right:10px}}}@media (min-width:768px) and (max-width:1018px){@media (min-width:768px){.tdi_82{margin-left:-10px;margin-right:-10px}.tdi_82 .tdc-row-video-background-error,.tdi_82>.vc_column,.tdi_82>.tdc-columns>.vc_column{padding-left:10px;padding-right:10px}}}.tdi_82{padding-top:60px!important}.tdi_82 .td_block_wrap{text-align:left}@media (min-width:768px) and (max-width:1018px){.tdi_82{padding-top:30px!important;padding-bottom:10px!important}}@media (max-width:767px){.tdi_82{padding-top:60px!important}}</style><div class="vc_column tdi_84 wpb_column vc_column_container tdc-column td-pb-span6"> <style scoped>.tdi_84{vertical-align:baseline}.tdi_84>.wpb_wrapper,.tdi_84>.wpb_wrapper>.tdc-elements{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start}.tdi_84>.wpb_wrapper>.tdc-elements{width:100%}.tdi_84>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_84>.wpb_wrapper{width:100%;height:100%}@media (max-width:767px){.tdi_84{justify-content:center!important;text-align:center!important}}</style><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_logo tdi_85 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_85" > <style>.tdi_85{margin-top:10px!important;margin-bottom:10px!important}@media (max-width:767px){.tdi_85{margin-left:50px!important;display:inline-block!important}}</style> <style>.tdi_85 .tdb-logo-a,.tdi_85 h1{flex-direction:row;align-items:center;justify-content:flex-start}.tdi_85 .tdb-logo-svg-wrap{display:block}.tdi_85 .tdb-logo-svg-wrap+.tdb-logo-img-wrap{display:none}.tdi_85 .tdb-logo-img{max-width:47%}.tdi_85 .tdb-logo-img-wrap{display:block}.tdi_85 .tdb-logo-text-tagline{margin-top:2px;margin-left:0;display:block;font-family:brother-xl!important;}.tdi_85 .tdb-logo-text-title{display:block;color:#ffffff;font-family:brother-xl!important;font-size:34px!important;font-weight:500!important;text-transform:uppercase!important;}.tdi_85 .tdb-logo-text-wrap{flex-direction:column;align-items:center}.tdi_85 .tdb-logo-icon{top:0px;display:block}@media (min-width:1019px) and (max-width:1140px){.tdi_85 .tdb-logo-text-title{font-size:32px!important;}}@media (min-width:768px) and (max-width:1018px){.tdi_85 .tdb-logo-text-title{font-size:22px!important;}}@media (max-width:767px){.tdi_85 .tdb-logo-img{max-width:80%}}</style><div class="tdb-block-inner td-fix-index"><a class="tdb-logo-a" href="https://www.codeguru.com/"><span class="tdb-logo-img-wrap"><img class="tdb-logo-img td-retina-data" data-retina="https://assets.codeguru.com/uploads/2021/08/CG_MobileLogo_White.png" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%202267%20352'%3E%3C/svg%3E" alt="Logo" title="" width="2267" height="352" data-lazy-src="https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy-white-2.png" /><noscript><img class="tdb-logo-img td-retina-data" data-retina="https://assets.codeguru.com/uploads/2021/08/CG_MobileLogo_White.png" src="https://assets.codeguru.com/uploads/2021/08/CG_RetinaLogo-copy-white-2.png" alt="Logo" title="" width="2267" height="352" /></noscript></span></a></div></div> <!-- ./block --><div class="tdm_block td_block_wrap tdm_block_inline_text tdi_86 tdm-inline-block td-pb-border-top td_block_template_2" data-td-block-uid="tdi_86" > <style>.tdi_86{width:90%!important}@media (max-width:767px){.tdi_86{width:100%!important;justify-content:center!important;text-align:center!important}}</style> <style>.tdm_block.tdm_block_inline_text{margin-bottom:0;vertical-align:top}.tdm_block.tdm_block_inline_text .tdm-descr{margin-bottom:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.tdc-row-content-vert-center .tdm-inline-text-yes{vertical-align:middle}.tdc-row-content-vert-bottom .tdm-inline-text-yes{vertical-align:bottom}.tdi_86{text-align:left!important}.tdi_86 .tdm-descr{color:#ffffff;font-family:Rubik!important;font-size:16px!important;line-height:1.4!important}@media (min-width:768px) and (max-width:1018px){.tdi_86 .tdm-descr{font-size:12px!important}}@media (max-width:767px){.tdi_86{text-align:center!important;margin-right:auto;margin-left:auto}}</style><p class="tdm-descr">CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.</p></div><div class="tdm_block td_block_wrap tdm_block_socials tdi_87 tdm-inline-block tdm-content-horiz-left td-pb-border-top td_block_template_2" data-td-block-uid="tdi_87" > <style>.tdi_87{margin-top:10px!important;margin-bottom:20px!important;width:100%!important}@media (max-width:767px){.tdi_87{margin-right:auto!important;margin-left:auto!important;width:auto!important}}</style> <style>.tdi_88 .tdm-social-item i{font-size:20px;vertical-align:middle;line-height:36px}.tdi_88 .tdm-social-item i.td-icon-linkedin,.tdi_88 .tdm-social-item i.td-icon-pinterest,.tdi_88 .tdm-social-item i.td-icon-blogger,.tdi_88 .tdm-social-item i.td-icon-vimeo{font-size:16px}.tdi_88 .tdm-social-item{width:36px;height:36px;margin:5px 10px 5px 0}.tdi_88 .tdm-social-item-wrap:last-child .tdm-social-item{margin-right:0!important}.tdi_88 .tdm-social-item i,.tds-team-member2 .tdi_88.tds-social1 .tdm-social-item i{color:#ffffff}.tdi_88 .tdm-social-item-wrap:hover i,.tds-team-member2 .tdi_88.tds-social1 .tdm-social-item:hover i{color:#b361e0}.tdi_88 .tdm-social-text{display:none;margin-left:2px;margin-right:18px}@media (min-width:768px) and (max-width:1018px){.tdi_88 .tdm-social-item i{font-size:12px;vertical-align:middle;line-height:21.6px}.tdi_88 .tdm-social-item i.td-icon-linkedin,.tdi_88 .tdm-social-item i.td-icon-pinterest,.tdi_88 .tdm-social-item i.td-icon-blogger,.tdi_88 .tdm-social-item i.td-icon-vimeo{font-size:9.6px}.tdi_88 .tdm-social-item{width:21.6px;height:21.6px}}</style><div class="tdm-social-wrapper tds-social1 tdi_88"><div class="tdm-social-item-wrap"><a href="https://www.facebook.com/CodeGuru-108048391032729" title="Facebook" class="tdm-social-item"><i class="td-icon-font td-icon-facebook"></i><span style="display: none">Facebook</span></a></div><div class="tdm-social-item-wrap"><a href="https://www.linkedin.com/company/codegurutoday/?viewAsMember=true" title="Linkedin" class="tdm-social-item"><i class="td-icon-font td-icon-linkedin"></i><span style="display: none">Linkedin</span></a></div><div class="tdm-social-item-wrap"><a href="https://twitter.com/CodeGuruToday" title="Twitter" class="tdm-social-item"><i class="td-icon-font td-icon-twitter"></i><span style="display: none">Twitter</span></a></div></div></div></div></div><div class="vc_column tdi_90 wpb_column vc_column_container tdc-column td-pb-span6"> <style scoped>.tdi_90{vertical-align:baseline}.tdi_90>.wpb_wrapper,.tdi_90>.wpb_wrapper>.tdc-elements{display:block}.tdi_90>.wpb_wrapper>.tdc-elements{width:100%}.tdi_90>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_90>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="vc_row_inner tdi_92 vc_row vc_inner wpb_row td-pb-row" > <style scoped>.tdi_92{position:relative!important;top:0;transform:none;-webkit-transform:none}.tdi_92,.tdi_92 .tdc-inner-columns{display:block}.tdi_92 .tdc-inner-columns{width:100%}</style><div class="vc_column_inner tdi_94 wpb_column vc_column_container tdc-inner-column td-pb-span8"> <style scoped>.tdi_94{vertical-align:baseline}.tdi_94 .vc_column-inner>.wpb_wrapper,.tdi_94 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_94 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}@media (max-width:767px){div.tdi_94{width:100%!important}}@media (max-width:767px){.tdi_94{margin-bottom:0px!important;padding-bottom:0px!important}}</style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="td_block_wrap td_block_title tdi_95 td-pb-border-top td_block_template_2 td-fix-index" data-td-block-uid="tdi_95" > <style>.td-theme-wrap .tdi_95 .td-block-title>*,.td-theme-wrap .tdi_95 .td-pulldown-filter-link:hover,.td-theme-wrap .tdi_95 .td-subcat-item a:hover,.td-theme-wrap .tdi_95 .td-subcat-item .td-cur-simple-item,.td-theme-wrap .tdi_95 .td-subcat-dropdown:hover .td-subcat-more span,.td-theme-wrap .tdi_95 .td-subcat-dropdown:hover .td-subcat-more i{color:#238fee}.td-theme-wrap .tdi_95 .td-subcat-dropdown ul:after{background-color:#238fee}.td-theme-wrap .tdi_95 .td_module_wrap:hover .entry-title a,.td-theme-wrap .tdi_95 .td_quote_on_blocks,.td-theme-wrap .tdi_95 .td-opacity-cat .td-post-category:hover,.td-theme-wrap .tdi_95 .td-opacity-read .td-read-more a:hover,.td-theme-wrap .tdi_95 .td-opacity-author .td-post-author-name a:hover,.td-theme-wrap .tdi_95 .td-instagram-user a{color:#238fee}.td-theme-wrap .tdi_95 .td-next-prev-wrap a:hover,.td-theme-wrap .tdi_95 .td-load-more-wrap a:hover{background-color:#238fee;border-color:#238fee}.td-theme-wrap .tdi_95 .td-read-more a,.td-theme-wrap .tdi_95 .td-weather-information:before,.td-theme-wrap .tdi_95 .td-weather-week:before,.td-theme-wrap .tdi_95 .td-exchange-header:before,.td-theme-wrap .td-footer-wrapper .tdi_95 .td-post-category,.td-theme-wrap .tdi_95 .td-post-category:hover{background-color:#238fee}.tdi_95{margin-bottom:-5px!important}@media (min-width:768px) and (max-width:1018px){.tdi_95{margin-bottom:-15px!important}}@media (max-width:767px){.tdi_95{width:100%!important;display:inline-block!important}}</style> <style>body .tdi_95 .td-block-title a,body .tdi_95 .td-block-title span{font-family:brother-xl!important;font-size:24px!important;font-weight:700!important;letter-spacing:1px!important}@media (min-width:1019px) and (max-width:1140px){body .tdi_95 .td-block-title a,body .tdi_95 .td-block-title span{font-size:19px!important}}@media (min-width:768px) and (max-width:1018px){body .tdi_95 .td-block-title a,body .tdi_95 .td-block-title span{font-size:18px!important}}@media (max-width:767px){body .tdi_95 .td-block-title{text-align:center}body .tdi_95.td_block_template_4 .td-block-title>*:before,body .tdi_95.td_block_template_17 .td-block-title:after,body .tdi_95.td_block_template_13 .td-block-subtitle,body .tdi_95.td_block_template_9 .td-block-title:after{right:0;left:0}body .tdi_95.td_block_template_5 .td-block-title>*{border-width:0 0 0 4px}body .tdi_95.td_block_template_8 .td-block-title>*{padding-left:20px;padding-right:20px}body .tdi_95.td_block_template_12 .td-block-title{justify-content:center}}</style><div class="td-block-title-wrap"><h4 class="td-block-title"><span class="td-pulldown-size">Advertisers</span></h4></div></div><div class="tdm_block td_block_wrap tdm_block_inline_text tdi_96 tdm-inline-block td-pb-border-top td_block_template_2" data-td-block-uid="tdi_96" > <style>.tdi_96{margin-bottom:30px!important;width:90%!important}@media (max-width:767px){.tdi_96{width:100%!important;justify-content:center!important;text-align:center!important}}@media (min-width:1019px) and (max-width:1140px){.tdi_96{width:100%!important}}@media (min-width:768px) and (max-width:1018px){.tdi_96{width:100%!important}}</style> <style>.tdi_96{text-align:left!important}.tdi_96 .tdm-descr{color:#ffffff;font-family:Rubik!important;font-size:16px!important;line-height:1.4!important}@media (min-width:768px) and (max-width:1018px){.tdi_96 .tdm-descr{font-size:12px!important}}@media (max-width:767px){.tdi_96{text-align:center!important;margin-right:auto;margin-left:auto}}</style><p class="tdm-descr">Advertise with TechnologyAdvice on CodeGuru and our other developer-focused platforms.</p></div><div class="tdm_block td_block_wrap tdm_block_button tdi_97 tdm-block-button-inline tdm-content-horiz-center td-pb-border-top td_block_template_2" data-td-block-uid="tdi_97" > <style>.tdi_97{border-color:#238fee!important;border-style:solid!important;border-width:0!important}@media (max-width:767px){.tdi_97{width:100%!important}}</style> <style>.tdm_block.tdm_block_button{margin-bottom:0}.tdm_block.tdm_block_button .tds-button{line-height:0}.tdm_block.tdm_block_button.tdm-block-button-inline{display:inline-block}.tdm_block.tdm_block_button.tdm-block-button-full,.tdm_block.tdm_block_button.tdm-block-button-full .tdm-btn{display:block}.tdi_97 .tdm-btn{height:auto;padding:10px}@media (max-width:767px){.tdi_97 .tdm-btn{height:auto;padding:15px 30px}}</style> <style>body .tdi_98{background-color:#238fee}body .tdi_98:before{background-color:#767676}.tdi_98 .tdm-btn-text,.tdi_98 i{color:#ffffff}.tdi_98 svg{fill:#ffffff}.tdi_98 svg *{fill:inherit}.tdi_98{padding:10px;height:auto;line-height:1;font-weight:500!important}.tdi_98 .tdm-btn-icon:last-child{margin-left:10px}.tdi_98,.tdi_98:before{border-radius:15px}@media (max-width:767px){.tdi_98{padding:15px 30px;height:auto;line-height:1}.tdi_98,.tdi_98:before{border-radius:25px}}</style><div class="tds-button td-fix-index"><a href="https://solutions.technologyadvice.com/advertise-on-codeguru/?utm_source=codeguru&utm_medium=portfolio_footer&utm_campaign=advertise_button" title="Advertise with Us" class="tds-button1 tdm-btn tdm-btn-lg tdi_98 " ><span class="tdm-btn-text">Advertise with Us</span><i class="tdm-btn-icon tdc-font-fa tdc-font-fa-angle-right"></i></a></div></div></div></div></div><div class="vc_column_inner tdi_100 wpb_column vc_column_container tdc-inner-column td-pb-span4"> <style scoped>.tdi_100{vertical-align:baseline}.tdi_100 .vc_column-inner>.wpb_wrapper,.tdi_100 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_100 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}@media (max-width:767px){.tdi_100{display:none!important}}</style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="td_block_wrap td_block_title tdi_101 td-pb-border-top td_block_template_2 td-fix-index" data-td-block-uid="tdi_101" > <style>.td-theme-wrap .tdi_101 .td-block-title>*,.td-theme-wrap .tdi_101 .td-pulldown-filter-link:hover,.td-theme-wrap .tdi_101 .td-subcat-item a:hover,.td-theme-wrap .tdi_101 .td-subcat-item .td-cur-simple-item,.td-theme-wrap .tdi_101 .td-subcat-dropdown:hover .td-subcat-more span,.td-theme-wrap .tdi_101 .td-subcat-dropdown:hover .td-subcat-more i{color:#238fee}.td-theme-wrap .tdi_101 .td-subcat-dropdown ul:after{background-color:#238fee}.td-theme-wrap .tdi_101 .td_module_wrap:hover .entry-title a,.td-theme-wrap .tdi_101 .td_quote_on_blocks,.td-theme-wrap .tdi_101 .td-opacity-cat .td-post-category:hover,.td-theme-wrap .tdi_101 .td-opacity-read .td-read-more a:hover,.td-theme-wrap .tdi_101 .td-opacity-author .td-post-author-name a:hover,.td-theme-wrap .tdi_101 .td-instagram-user a{color:#238fee}.td-theme-wrap .tdi_101 .td-next-prev-wrap a:hover,.td-theme-wrap .tdi_101 .td-load-more-wrap a:hover{background-color:#238fee;border-color:#238fee}.td-theme-wrap .tdi_101 .td-read-more a,.td-theme-wrap .tdi_101 .td-weather-information:before,.td-theme-wrap .tdi_101 .td-weather-week:before,.td-theme-wrap .tdi_101 .td-exchange-header:before,.td-theme-wrap .td-footer-wrapper .tdi_101 .td-post-category,.td-theme-wrap .tdi_101 .td-post-category:hover{background-color:#238fee}.tdi_101{margin-bottom:-5px!important}@media (min-width:768px) and (max-width:1018px){.tdi_101{margin-bottom:-15px!important}}@media (max-width:767px){.tdi_101{display:inline-block!important}}</style> <style>body .tdi_101 .td-block-title a,body .tdi_101 .td-block-title span{font-family:brother-xl!important;font-size:24px!important;font-weight:700!important;letter-spacing:1px!important}@media (min-width:1019px) and (max-width:1140px){body .tdi_101 .td-block-title a,body .tdi_101 .td-block-title span{font-size:19px!important}}@media (min-width:768px) and (max-width:1018px){body .tdi_101 .td-block-title a,body .tdi_101 .td-block-title span{font-size:18px!important}}</style><div class="td-block-title-wrap"><h4 class="td-block-title"><span class="td-pulldown-size">Menu</span></h4></div></div><div class="td_block_wrap td_block_list_menu tdi_102 td-blm-display-vertical td-pb-border-top td_block_template_2 widget" data-td-block-uid="tdi_102" > <style>@media (max-width:767px){.tdi_102{justify-content:center!important;text-align:center!important}}</style> <style>.td_block_list_menu ul{flex-wrap:wrap;margin-left:12px}.td_block_list_menu ul li{margin-left:0}.td_block_list_menu ul li a{display:flex;margin-left:0}.td_block_list_menu .td-blm-menu-item-txt{display:flex;align-items:center;flex-grow:1}.td_block_list_menu .sub-menu{padding-left:22px}.td_block_list_menu .sub-menu li{font-size:13px}.td_block_list_menu li.current-menu-item>a,.td_block_list_menu li.current-menu-ancestor>a,.td_block_list_menu li.current-category-ancestor>a,.td_block_list_menu li.current-page-ancestor>a{color:var(--td_theme_color,#4db2ec)}.td_block_list_menu .td-blm-sub-icon{display:flex;align-items:center;justify-content:center;margin-left:.6em;padding:0 .6em;transition:transform .2s ease-in-out}.td_block_list_menu .td-blm-sub-icon svg{display:block;width:1em;height:auto}.td_block_list_menu .td-blm-sub-icon svg,.td_block_list_menu .td-blm-sub-icon svg *{fill:currentColor}.td_block_list_menu.td-blm-display-accordion .menu-item-has-children ul{display:none}.td_block_list_menu.td-blm-display-accordion .menu-item-has-children-open>a>.td-blm-sub-icon{transform:rotate(180deg)}.td_block_list_menu.td-blm-display-horizontal ul{display:flex}body .tdi_102 ul{text-align:left;justify-content:flex-start;margin:0px}body .tdi_102 ul li a{justify-content:flex-start}body .tdi_102 .td-blm-menu-item-txt{flex-grow:1}body .tdi_102 a,body .tdi_102 .td-blm-sub-icon{color:#ffffff}body .tdi_102 li.current-menu-item>a,body .tdi_102 li.current-menu-ancestor>a,body .tdi_102 li.current-category-ancestor>a,body .tdi_102 li.current-page-ancestor>a,body .tdi_102 a:hover,body .tdi_102 li.current-menu-item>a>.td-blm-sub-icon,body .tdi_102 li.current-menu-ancestor>a>.td-blm-sub-icon,body .tdi_102 li.current-category-ancestor>a>.td-blm-sub-icon,body .tdi_102 li.current-page-ancestor>a>.td-blm-sub-icon,body .tdi_102 a:hover>.td-blm-sub-icon{color:#238fee}body .tdi_102 .td-block-title a,body .tdi_102 .td-block-title span{font-family:brother-xl!important;font-size:14px!important;font-weight:500!important}body .tdi_102 li{font-family:brother-xl!important;font-size:14px!important;line-height:24px!important;font-weight:700!important;letter-spacing:1px!important}@media (min-width:768px) and (max-width:1018px){body .tdi_102 li{line-height:20px!important}}</style><div class="td-block-title-wrap"></div><div id=tdi_102 class="td_block_inner td-fix-index"><div class="menu-footer-menu-container"><ul id="menu-footer-menu-1" class="menu"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-107"><a href="https://www.codeguru.com/privacy-policy/"><span class="td-blm-menu-item-txt">Privacy Policy</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-108"><a href="https://technologyadvice.com/terms-conditions/"><span class="td-blm-menu-item-txt">Terms</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-109"><a href="https://technologyadvice.com/about-us/"><span class="td-blm-menu-item-txt">About</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-110"><a href="https://technologyadvice.com/contact-us/"><span class="td-blm-menu-item-txt">Contact</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-111"><a href="https://solutions.technologyadvice.com/advertise-on-codeguru/?utm_source=codeguru&utm_medium=portfolio_footer&utm_campaign=advertise_contact-us"><span class="td-blm-menu-item-txt">Advertise</span></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-112"><a href="https://technologyadvice.com/privacy-policy/ccpa-opt-out-form/"><span class="td-blm-menu-item-txt">California – Do Not Sell My Information</span></a></li> </ul></div></div></div></div></div></div></div></div></div></div></div><div id="tdi_103" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_104 wpb_row td-pb-row" > <style scoped>.tdi_104,.tdi_104 .tdc-columns{min-height:0}.tdi_104,.tdi_104 .tdc-columns{display:block}.tdi_104 .tdc-columns{width:100%}.tdi_104:before,.tdi_104:after{display:table}</style><div class="vc_column tdi_106 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped>.tdi_106{vertical-align:baseline}.tdi_106>.wpb_wrapper,.tdi_106>.wpb_wrapper>.tdc-elements{display:block}.tdi_106>.wpb_wrapper>.tdc-elements{width:100%}.tdi_106>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_106>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_separator td_block_wrap vc_separator tdi_108 td_separator_solid td_separator_center"><span style="border-color:#EBEBEB;border-width:1px;width:100%;"></span> <style scoped>.td_block_separator{width:100%;align-items:center;margin-bottom:38px;padding-bottom:10px}.td_block_separator span{position:relative;display:block;margin:0 auto;width:100%;height:1px;border-top:1px solid #EBEBEB}.td_separator_align_left span{margin-left:0}.td_separator_align_right span{margin-right:0}.td_separator_dashed span{border-top-style:dashed}.td_separator_dotted span{border-top-style:dotted}.td_separator_double span{height:3px;border-bottom:1px solid #EBEBEB}.td_separator_shadow>span{position:relative;height:20px;overflow:hidden;border:0;color:#EBEBEB}.td_separator_shadow>span>span{position:absolute;top:-30px;left:0;right:0;margin:0 auto;height:13px;width:98%;border-radius:100%}html :where([style*='border-width']){border-style:none}.tdi_108{margin-top:15px!important}@media (max-width:767px){.tdi_108{margin-top:50px!important}}</style></div><div class="tdm_block td_block_wrap tdm_block_column_title tdi_109 tdm-content-horiz-center td-pb-border-top td_block_template_2" data-td-block-uid="tdi_109" > <style>.tdm_block_column_title{margin-bottom:0;display:inline-block;width:100%}</style><div class="td-block-row"><div class="td-block-span12 tdm-col"> <style>body .tdi_110 .tdm-title{color:#ffffff}body .tdi_110:hover .tdm-title,body .tds_icon_box5_wrap:hover .tdi_110 .tdm-title{color:#ffffff;-webkit-text-fill-color:unset;background:transparent;transition:none}.tdi_110:hover .tdm-title{cursor:default}.tdi_110 .tdm-title{font-family:brother-xl!important;font-weight:700!important}</style><div class="tds-title tds-title1 td-fix-index tdi_110 "><h3 class="tdm-title tdm-title-md">Our Brands</h3></div></div></div></div></div></div></div></div><div id="tdi_111" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_112 wpb_row td-pb-row tdc-row-content-vert-center" > <style scoped>.tdi_112,.tdi_112 .tdc-columns{min-height:0}.tdi_112,.tdi_112 .tdc-columns{display:block}.tdi_112 .tdc-columns{width:100%}.tdi_112:before,.tdi_112:after{display:table}@media (min-width:768px){.tdi_112{margin-left:-2px;margin-right:-2px}.tdi_112 .tdc-row-video-background-error,.tdi_112>.vc_column,.tdi_112>.tdc-columns>.vc_column{padding-left:2px;padding-right:2px}}@media (min-width:767px){.tdi_112.tdc-row-content-vert-center,.tdi_112.tdc-row-content-vert-center .tdc-columns{display:flex;align-items:center;flex:1}.tdi_112.tdc-row-content-vert-bottom,.tdi_112.tdc-row-content-vert-bottom .tdc-columns{display:flex;align-items:flex-end;flex:1}.tdi_112.tdc-row-content-vert-center .td_block_wrap{vertical-align:middle}.tdi_112.tdc-row-content-vert-bottom .td_block_wrap{vertical-align:bottom}}</style><div class="vc_column tdi_114 wpb_column vc_column_container tdc-column td-pb-span3"> <style scoped>.tdi_114{vertical-align:baseline}.tdi_114>.wpb_wrapper,.tdi_114>.wpb_wrapper>.tdc-elements{display:block}.tdi_114>.wpb_wrapper>.tdc-elements{width:100%}.tdi_114>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_114>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_115 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_115"><a data-bg="https://assets.codeguru.com/uploads/2021/01/TAwhitefooter.png" class="td_single_image_bg rocket-lazyload" style="" href="https://technologyadvice.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_115{margin-right:auto!important;margin-left:auto!important}}</style> <style>.td_block_single_image.td-image-video-modal{cursor:pointer}.td_block_single_image.td-no-img-custom-url .td_single_image_bg{pointer-events:none;cursor:default}.vc_single_image a{position:relative}.td-single-image-style-rounded .td_single_image_bg,.td-single-image-style-rounded .td_single_image_bg:before,.td-single-image-style-rounded .td_single_image_bg:after{border-radius:4px}.td-single-image-style-border,.td-single-image-style-round-border,.td-single-image-style-circle-border,.td-single-image-style-outline,.td-single-image-style-bordered-shadow,.td-single-image-style-round-outline,.td-single-image-style-round-border-shadow,.td-single-image-style-circle-outline,.td-single-image-style-circle-border-shadow{margin-bottom:22px;background-color:#EBEBEB}.td-single-image-style-border,.td-single-image-style-round-border,.td-single-image-style-circle-border{padding:6px}.td-single-image-style-outline,.td-single-image-style-bordered-shadow,.td-single-image-style-round-outline,.td-single-image-style-round-border-shadow,.td-single-image-style-circle-outline,.td-single-image-style-circle-border-shadow{padding:1px}.td-single-image-style-outline .td_single_image_bg:before,.td-single-image-style-bordered-shadow .td_single_image_bg:before,.td-single-image-style-round-outline .td_single_image_bg:before,.td-single-image-style-round-border-shadow .td_single_image_bg:before,.td-single-image-style-circle-outline .td_single_image_bg:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:before,.td-single-image-style-outline a:after,.td-single-image-style-bordered-shadow .td_single_image_bg:after,.td-single-image-style-round-outline .td_single_image_bg:after,.td-single-image-style-round-border-shadow .td_single_image_bg:after,.td-single-image-style-circle-outline .td_single_image_bg:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%}.td-single-image-style-outline .td_single_image_bg:after,.td-single-image-style-bordered-shadow .td_single_image_bg:after,.td-single-image-style-round-outline .td_single_image_bg:after,.td-single-image-style-round-border-shadow .td_single_image_bg:after,.td-single-image-style-circle-outline .td_single_image_bg:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:after{color:#fff;-webkit-box-shadow:inset 0px 0px 0px 6px;box-shadow:inset 0px 0px 0px 6px}.td-single-image-style-outline .td_single_image_bg:before,.td-single-image-style-bordered-shadow .td_single_image_bg:before,.td-single-image-style-round-outline .td_single_image_bg:before,.td-single-image-style-round-border-shadow .td_single_image_bg:before,.td-single-image-style-circle-outline .td_single_image_bg:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:before{color:#EBEBEB;-webkit-box-shadow:inset 0px 0px 0px 7px;box-shadow:inset 0px 0px 0px 7px}.td-single-image-style-shadow .td_single_image_bg,.td-single-image-style-bordered-shadow .td_single_image_bg,.td-single-image-style-round-shadow .td_single_image_bg,.td-single-image-style-round-border-shadow .td_single_image_bg,.td-single-image-style-circle-shadow .td_single_image_bg,.td-single-image-style-circle-border-shadow .td_single_image_bg{-webkit-box-shadow:0 0 6px rgba(0,0,0,0.1);box-shadow:0 0 6px rgba(0,0,0,0.1)}.td-single-image-style-3d-shadow{position:relative}.td-single-image-style-3d-shadow:before,.td-single-image-style-3d-shadow:after{content:'';position:absolute;bottom:0;height:30%;-webkit-box-shadow:0 15px 10px rgba(0,0,0,0.6);box-shadow:0 15px 10px rgba(0,0,0,0.6);z-index:0}.td-single-image-style-3d-shadow:before{left:5px;right:50%;-webkit-transform:skewY(-6deg);transform:skewY(-6deg);-webkit-transform-origin:0 0;transform-origin:0 0}.td-single-image-style-3d-shadow:after{left:50%;right:5px;-webkit-transform:skewY(6deg);transform:skewY(6deg);-webkit-transform-origin:100% 0;transform-origin:100% 0}.td-single-image-style-3d-shadow .td_single_image_bg{z-index:1}.td-single-image-style-round,.td-single-image-style-round-border,.td-single-image-style-round-outline,.td-single-image-style-round-shadow,.td-single-image-style-round-border-shadow,.td-single-image-style-circle,.td-single-image-style-circle-border,.td-single-image-style-circle-outline,.td-single-image-style-circle-shadow,.td-single-image-style-circle-border-shadow{border-radius:50%}.td-single-image-style-round .td_single_image_bg,.td-single-image-style-round-border .td_single_image_bg,.td-single-image-style-round-outline .td_single_image_bg,.td-single-image-style-round-shadow .td_single_image_bg,.td-single-image-style-round-border-shadow .td_single_image_bg,.td-single-image-style-circle .td_single_image_bg,.td-single-image-style-circle-border .td_single_image_bg,.td-single-image-style-circle-outline .td_single_image_bg,.td-single-image-style-circle-shadow .td_single_image_bg,.td-single-image-style-circle-border-shadow .td_single_image_bg,.td-single-image-style-round .td_single_image_bg:before,.td-single-image-style-round-border .td_single_image_bg:before,.td-single-image-style-round-outline .td_single_image_bg:before,.td-single-image-style-round-shadow .td_single_image_bg:before,.td-single-image-style-round-border-shadow .td_single_image_bg:before,.td-single-image-style-circle .td_single_image_bg:before,.td-single-image-style-circle-border .td_single_image_bg:before,.td-single-image-style-circle-outline .td_single_image_bg:before,.td-single-image-style-circle-shadow .td_single_image_bg:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:before,.td-single-image-style-round .td_single_image_bg:after,.td-single-image-style-round-border .td_single_image_bg:after,.td-single-image-style-round-outline .td_single_image_bg:after,.td-single-image-style-round-shadow .td_single_image_bg:after,.td-single-image-style-round-border-shadow .td_single_image_bg:after,.td-single-image-style-circle .td_single_image_bg:after,.td-single-image-style-circle-border .td_single_image_bg:after,.td-single-image-style-circle-outline .td_single_image_bg:after,.td-single-image-style-circle-shadow .td_single_image_bg:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:after{border-radius:50%}.td-single-image-style-round-outline .td_single_image_bg:before,.td-single-image-style-round-border-shadow .td_single_image_bg:before,.td-single-image-style-circle-outline .td_single_image_bg:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:before,.td-single-image-style-round-outline .td_single_image_bg:before:before,.td-single-image-style-round-border-shadow .td_single_image_bg:before:before,.td-single-image-style-circle-outline .td_single_image_bg:before:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:before:before,.td-single-image-style-round-outline .td_single_image_bg:after:before,.td-single-image-style-round-border-shadow .td_single_image_bg:after:before,.td-single-image-style-circle-outline .td_single_image_bg:after:before,.td-single-image-style-circle-border-shadow .td_single_image_bg:after:before,.td-single-image-style-round-outline .td_single_image_bg:after,.td-single-image-style-round-border-shadow .td_single_image_bg:after,.td-single-image-style-circle-outline .td_single_image_bg:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:after,.td-single-image-style-round-outline .td_single_image_bg:before:after,.td-single-image-style-round-border-shadow .td_single_image_bg:before:after,.td-single-image-style-circle-outline .td_single_image_bg:before:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:before:after,.td-single-image-style-round-outline .td_single_image_bg:after:after,.td-single-image-style-round-border-shadow .td_single_image_bg:after:after,.td-single-image-style-circle-outline .td_single_image_bg:after:after,.td-single-image-style-circle-border-shadow .td_single_image_bg:after:after{border-radius:50%}.td-single-image-style-circle .td_single_image_bg,.td-single-image-style-circle-border .td_single_image_bg,.td-single-image-style-circle-outline .td_single_image_bg,.td-single-image-style-circle-shadow .td_single_image_bg,.td-single-image-style-circle-border-shadow .td_single_image_bg{height:0;padding-bottom:100%}.vc_single_image .td_single_image_bg{width:100%;display:block;background-size:cover}.tdi_115 .td_single_image_bg{height:40px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_115{width:100%}body .tdi_115 .td_single_image_bg{background-size:contain}.tdi_115:hover .td_single_image_bg:before{opacity:0}@media (max-width:767px){.td-stretch-content .td_block_single_image{margin-right:-20px;margin-left:-20px}}@media (max-width:767px){.td-single-image-style-border,.td-single-image-style-round-border,.td-single-image-style-circle-border,.td-single-image-style-outline,.td-single-image-style-bordered-shadow,.td-single-image-style-round-outline,.td-single-image-style-round-border-shadow,.td-single-image-style-circle-outline,.td-single-image-style-circle-border-shadow{margin-bottom:32px}}</style></div><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_116 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_116"><a data-bg="https://assets.codeguru.com/uploads/2021/01/eweekfooter.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.eweek.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_116{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_116 .td_single_image_bg{height:40px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_116{width:100%}body .tdi_116 .td_single_image_bg{background-size:contain}.tdi_116:hover .td_single_image_bg:before{opacity:0}</style></div></div></div><div class="vc_column tdi_118 wpb_column vc_column_container tdc-column td-pb-span3"> <style scoped>.tdi_118{vertical-align:baseline}.tdi_118>.wpb_wrapper,.tdi_118>.wpb_wrapper>.tdc-elements{display:block}.tdi_118>.wpb_wrapper>.tdc-elements{width:100%}.tdi_118>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_118>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_119 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_119"><a data-bg="https://assets.codeguru.com/uploads/2021/01/datamationwhitefooter.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.datamation.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_119{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_119 .td_single_image_bg{height:40px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_119{width:100%}body .tdi_119 .td_single_image_bg{background-size:contain}.tdi_119:hover .td_single_image_bg:before{opacity:0}</style></div><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_120 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_120"><a data-bg="https://assets.codeguru.com/uploads/2021/01/PMcomwhitefooter-09.png" class="td_single_image_bg rocket-lazyload" style="" href="https://project-management.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_120{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_120 .td_single_image_bg{height:45px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_120{width:100%}body .tdi_120 .td_single_image_bg{background-size:contain}.tdi_120:hover .td_single_image_bg:before{opacity:0}</style></div></div></div><div class="vc_column tdi_122 wpb_column vc_column_container tdc-column td-pb-span3"> <style scoped>.tdi_122{vertical-align:baseline}.tdi_122>.wpb_wrapper,.tdi_122>.wpb_wrapper>.tdc-elements{display:block}.tdi_122>.wpb_wrapper>.tdc-elements{width:100%}.tdi_122>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_122>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_123 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_123"><a data-bg="https://assets.codeguru.com/uploads/2021/01/webowhitefooter.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.webopedia.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_123{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_123 .td_single_image_bg{height:35px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_123{width:100%}body .tdi_123 .td_single_image_bg{background-size:contain}.tdi_123:hover .td_single_image_bg:before{opacity:0}</style></div><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_124 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_124"><a data-bg="https://assets.codeguru.com/uploads/2021/01/esecuritywhitefooter.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.esecurityplanet.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_124{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_124 .td_single_image_bg{height:45px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_124{width:100%}body .tdi_124 .td_single_image_bg{background-size:contain}.tdi_124:hover .td_single_image_bg:before{opacity:0}</style></div></div></div><div class="vc_column tdi_126 wpb_column vc_column_container tdc-column td-pb-span3"> <style scoped>.tdi_126{vertical-align:baseline}.tdi_126>.wpb_wrapper,.tdi_126>.wpb_wrapper>.tdc-elements{display:block}.tdi_126>.wpb_wrapper>.tdc-elements{width:100%}.tdi_126>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_126>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_127 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_127"><a data-bg="https://assets.codeguru.com/uploads/2021/01/serverwatchwhitefooter-10.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.serverwatch.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_127{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_127 .td_single_image_bg{height:50px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_127{width:100%}body .tdi_127 .td_single_image_bg{background-size:contain}.tdi_127:hover .td_single_image_bg:before{opacity:0}</style></div><div class="wpb_wrapper td_block_single_image td_block_wrap td_block_wrap vc_single_image tdi_128 td-single-image- td-pb-border-top td_block_template_2 " data-td-block-uid="tdi_128"><a data-bg="https://assets.codeguru.com/uploads/2021/01/ITBEwhitefooter-copy.png" class="td_single_image_bg rocket-lazyload" style="" href="https://www.itbusinessedge.com/" target="_blank" ></a> <style>@media (max-width:767px){.tdi_128{margin-right:auto!important;margin-left:auto!important}}</style> <style>.tdi_128 .td_single_image_bg{height:45px;padding-bottom:0;background-repeat:no-repeat;background-position:center top}body .tdi_128{width:100%}body .tdi_128 .td_single_image_bg{background-size:contain}.tdi_128:hover .td_single_image_bg:before{opacity:0}</style></div></div></div></div></div><div id="tdi_129" class="tdc-row stretch_row_1400 td-stretch-content"><div class="vc_row tdi_130 wpb_row td-pb-row" > <style scoped>.tdi_130,.tdi_130 .tdc-columns{min-height:0}.tdi_130,.tdi_130 .tdc-columns{display:block}.tdi_130 .tdc-columns{width:100%}.tdi_130:before,.tdi_130:after{display:table}</style><div class="vc_column tdi_132 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped>.tdi_132{vertical-align:baseline}.tdi_132>.wpb_wrapper,.tdi_132>.wpb_wrapper>.tdc-elements{display:block}.tdi_132>.wpb_wrapper>.tdc-elements{width:100%}.tdi_132>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_132>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ><div class="wpb_wrapper td_block_separator td_block_wrap vc_separator tdi_134 td_separator_solid td_separator_center"><span style="border-color:#EBEBEB;border-width:1px;width:100%;"></span> <style scoped>.tdi_134{margin-top:15px!important}</style></div><div class="vc_row_inner tdi_136 vc_row vc_inner wpb_row td-pb-row" > <style scoped>.tdi_136{position:relative!important;top:0;transform:none;-webkit-transform:none}.tdi_136,.tdi_136 .tdc-inner-columns{display:block}.tdi_136 .tdc-inner-columns{width:100%}</style><div class="vc_column_inner tdi_138 wpb_column vc_column_container tdc-inner-column td-pb-span12"> <style scoped>.tdi_138{vertical-align:baseline}.tdi_138 .vc_column-inner>.wpb_wrapper,.tdi_138 .vc_column-inner>.wpb_wrapper .tdc-elements{display:block}.tdi_138 .vc_column-inner>.wpb_wrapper .tdc-elements{width:100%}</style><div class="vc_column-inner"><div class="wpb_wrapper" ><div class="td_block_wrap tdb_header_menu tdi_139 tds_menu_active1 tds_menu_sub_active1 td-pb-border-top td_block_template_2 tdb-header-align" data-td-block-uid="tdi_139" style=" z-index: 999;"> <style>.tdi_139 .td_block_inner{text-align:center}.tdi_139 .tdb-menu>li .tdb-menu-sep,.tdi_139 .tdb-menu-items-dropdown .tdb-menu-sep{top:-1px}.tdi_139 .tdb-menu>li>a .tdb-sub-menu-icon,.tdi_139 .td-subcat-more .tdb-menu-more-subicon{top:-1px}.tdi_139 .td-subcat-more .tdb-menu-more-icon{top:0px}.tdi_139 .tdb-menu>li>a,.tdi_139 .td-subcat-more{color:#ffffff}.tdi_139 .tdb-menu>li>a .tdb-sub-menu-icon-svg svg,.tdi_139 .tdb-menu>li>a .tdb-sub-menu-icon-svg svg *,.tdi_139 .td-subcat-more .tdb-menu-more-subicon-svg svg,.tdi_139 .td-subcat-more .tdb-menu-more-subicon-svg svg *,.tdi_139 .td-subcat-more .tdb-menu-more-icon-svg,.tdi_139 .td-subcat-more .tdb-menu-more-icon-svg *{fill:#ffffff}.tdi_139 .tdb-menu>li>a,.tdi_139 .td-subcat-more,.tdi_139 .td-subcat-more>.tdb-menu-item-text{font-family:Montserrat!important;font-size:14px!important;font-weight:600!important}.tdi_139 .tdb-normal-menu ul .tdb-menu-item>a .tdb-sub-menu-icon,.tdi_139 .td-pulldown-filter-list .tdb-menu-item>a .tdb-sub-menu-icon{right:0;margin-top:1px}.tdi_139 .tdb-menu .tdb-normal-menu ul,.tdi_139 .td-pulldown-filter-list,.tdi_139 .td-pulldown-filter-list .sub-menu{box-shadow:1px 1px 4px 0px rgba(0,0,0,0.15)}.tdi_139 .tdb-menu .tdb-mega-menu .sub-menu>li{box-shadow:0px 2px 6px 0px rgba(0,0,0,0.1)}@media (max-width:767px){.tdi_139 .tdb-menu>li>a,.tdi_139 .td-subcat-more,.tdi_139 .td-subcat-more>.tdb-menu-item-text{font-size:10px!important}}</style> <style>.tdi_139 .tdb-menu>li>a:after,.tdi_139 .tdb-menu-items-dropdown .td-subcat-more:after{background-color:#238fee;bottom:0px}</style><div id=tdi_139 class="td_block_inner td-fix-index"><div class="tdb-main-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-down tdb-main-sub-menu-icon"></i></div><div class="tdb-sub-icon-fake"><i class="tdb-sub-menu-icon td-icon-right-arrow"></i></div><ul id="menu-footer-menu-2" class="tdb-block-menu tdb-menu tdb-menu-items-visible"><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy tdb-cur-menu-item menu-item-first tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-107"><a href="https://www.codeguru.com/privacy-policy/"><div class="tdb-menu-item-text">Privacy Policy</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-108"><a href="https://technologyadvice.com/terms-conditions/"><div class="tdb-menu-item-text">Terms</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-109"><a href="https://technologyadvice.com/about-us/"><div class="tdb-menu-item-text">About</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-110"><a href="https://technologyadvice.com/contact-us/"><div class="tdb-menu-item-text">Contact</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-111"><a href="https://solutions.technologyadvice.com/advertise-on-codeguru/?utm_source=codeguru&utm_medium=portfolio_footer&utm_campaign=advertise_contact-us"><div class="tdb-menu-item-text">Advertise</div></a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom tdb-menu-item-button tdb-menu-item tdb-normal-menu menu-item-112"><a href="https://technologyadvice.com/privacy-policy/ccpa-opt-out-form/"><div class="tdb-menu-item-text">California – Do Not Sell My Information</div></a></li> </ul></div></div></div></div></div></div><div class="tdm_block td_block_wrap tdm_block_column_content tdi_142 tdm-content-horiz-center td-pb-border-top td_block_template_2" data-td-block-uid="tdi_142" > <style>.tdi_142{margin-top:20px!important}</style> <style>.tdm_block_column_content .tdm-image-holder{position:relative;display:block;height:0;margin-bottom:24px;padding-bottom:70%}.tdm_block_column_content .tdm-image-holder:hover .tdm-hover-img{opacity:1}.tdm_block_column_content .tdm-image-holder>div{position:absolute;top:0;left:0;width:100%;height:100%;background-repeat:no-repeat;background-position:center center;background-size:cover}.tdm_block_column_content .tdm-hover-img{opacity:0;-webkit-transition:all 0.4s ease-in-out;transition:all 0.4s ease-in-out}.tdm_block_column_content:hover .tdm-col-content-title-url .tdm-title{color:var(--td_theme_color,#4db2ec)}.tdm_block_column_content .tdm-title-xxsm,.tdm_block_column_content .tdm-title-xsm{margin-bottom:20px}.tdm_block_column_content .tdm-title-md{margin-bottom:14px}.tdm_block_column_content .tdm-title-bg{margin-bottom:16px}.tdm_block_column_content .tdm-descr{margin-bottom:0}.tdm_block_column_content .tds-button{margin-top:25px}.tdi_142 .tdm-descr{color:#ffffff;font-size:11px!important;line-height:1.2!important}@media (max-width:767px){.tdm_block_column_content .tdm-image-holder{margin-bottom:14px}}</style><div class="tdm-col-content-info"><a href="#" target="_blank" class="tdm-col-content-title-url"></a><p class="tdm-descr td-fix-index">Property of TechnologyAdvice.<br> © 2023 TechnologyAdvice. All Rights Reserved<br><br> Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.</p></div></div><div class="wpb_wrapper td_block_empty_space td_block_wrap vc_empty_space tdi_144 " style="height: 80px"></div><div class="wpb_wrapper td_block_wrap vc_raw_html tdi_146 choice-footer-msg"> <style scoped>.tdi_146{margin-top:0px!important;margin-bottom:10px!important;padding-top:0px!important;border-style:solid!important;border-color:#888888!important;border-width:0px 0px 0px 0px!important}</style><div class="td-fix-index"><div id="choice-footer-msg" style="color:#ffffff;"> </div></div></div></div></div></div></div><div id="tdi_147" class="tdc-row"><div class="vc_row tdi_148 wpb_row td-pb-row" > <style scoped>.tdi_148,.tdi_148 .tdc-columns{min-height:0}.tdi_148,.tdi_148 .tdc-columns{display:block}.tdi_148 .tdc-columns{width:100%}.tdi_148:before,.tdi_148:after{display:table}</style><div class="vc_column tdi_150 wpb_column vc_column_container tdc-column td-pb-span12"> <style scoped>.tdi_150{vertical-align:baseline}.tdi_150>.wpb_wrapper,.tdi_150>.wpb_wrapper>.tdc-elements{display:block}.tdi_150>.wpb_wrapper>.tdc-elements{width:100%}.tdi_150>.wpb_wrapper>.vc_row_inner{width:auto}.tdi_150>.wpb_wrapper{width:auto;height:auto}</style><div class="wpb_wrapper" ></div></div></div></div></div></div> </div> </div> </div><!--close td-outer-wrap--> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NR3XXWX8" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Start: GAM Ad Slot Render | CodeGuru Native Right Rail Ads --> <div id="native-rr-article" style="height: 0; width: 0;"> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("native-rr-article"); }); (function() { var rightRailReplacedPost = document.querySelector('.native-rr .td_block_inner .td_module_flex:nth-child(3) .td-module-container'); var rightRailContent = document.getElementById('native-rr-article'); rightRailReplacedPost.parentNode.replaceChild(rightRailContent, rightRailReplacedPost); rightRailContent.style.height = 'auto'; rightRailContent.style.width = '100%'; })(); </script> </div> <!-- End: GAM Ad Slot Render | CodeGuru Native Right Rail Ads --><!-- Start: GAM Ad Slot Render | CodeGuru Native BOAP Ads --> <div id="native-boap" style="width: 0; height: 0;"> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("native-boap"); }); (function() { var boapAfterContent = document.querySelector(".native-boap-before"); var boapContent = document.getElementById('native-boap'); boapAfterContent.appendChild(boapContent); boapContent.style.height = 'auto'; boapContent.style.width = '100%'; })(); </script> </div> <!-- End: GAM Ad Slot Render | CodeGuru Native BOAP Ads --> <!-- Theme: Newspaper by tagDiv.com 2024 Version: 12.6.8 (rara) Deploy mode: deploy uid: 67425b1850a2a --> <!-- Custom css from theme panel --> <style type="text/css" media="screen">.td-aj-search-results>.td_module_wrap>.td-module-container>.td-image-container{display:none!important}</style> <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='ta-campaign-plugin' href='https://www.codeguru.com/wp-content/plugins/ta-campaign-plugin/assets/css/dist/styles.css?ver=2.1.14' type='text/css' media='all' /> <noscript><link rel='stylesheet' id='ta-campaign-plugin' href='https://www.codeguru.com/wp-content/plugins/ta-campaign-plugin/assets/css/dist/styles.css?ver=2.1.14' type='text/css' media='all'></noscript><script data-src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgaW50ZW50Y2xpY2tzX2FqYXggPSB7InVybCI6Imh0dHBzOlwvXC93d3cuY29kZWd1cnUuY29tXC93cFwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIn07Ci8qIF1dPiAqLwo=" data-type="lazy" type="text/javascript" id="icp_js-js-extra"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/ta-intentclicks/includes/js/scripts.js?ver=1.20.2" data-type="lazy" type="text/javascript" id="icp_js-js"></script> <script type="text/javascript" src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tagdiv_theme.min.js?ver=12.6.8" id="td-site-min-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdPostImages.js?ver=12.6.8" data-type="lazy" type="text/javascript" id="tdPostImages-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdSocialSharing.js?ver=12.6.8" data-type="lazy" type="text/javascript" id="tdSocialSharing-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdModalPostImages.js?ver=12.6.8" data-type="lazy" type="text/javascript" id="tdModalPostImages-js"></script> <script data-src="https://www.codeguru.com/wp/wp-includes/js/comment-reply.min.js?ver=6.6.2" data-type="lazy" type="text/javascript" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/td-cloud-library/assets/js/js_files_for_front.min.js?ver=b33652f2535d2f3812f59e306e26300d" data-type="lazy" type="text/javascript" id="tdb_js_files_for_front-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/ta-campaign-plugin/assets/js/dist/ouibounce.js?ver=2.1.14" data-type="lazy" type="text/javascript" id="ta-campaign-ouibounce-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/ta-campaign-plugin/assets/js/dist/ta-campaign-public.js?ver=2.1.14" data-type="lazy" type="text/javascript" id="ta-campaign-script-js"></script> <script type="text/javascript" id="ta-delay-scripts">(function(){try{window.setTimeout(function(){function t(){n||(n=!0,e(),o.forEach(function(e){window.removeEventListener(e,t,{once:!0,passive:!0})}))}function e(){document.querySelectorAll("script[data-type='lazy']").forEach(function(t){t.setAttribute("src",t.getAttribute("data-src"))})}var o=["mouseover","keydown","touchmove","touchstart","scroll"];o.forEach(function(e){window.addEventListener(e,t,{once:!0,passive:!0})});var n=!1},1e3)}catch(t){}})();</script> <div class="wp-ads-sticky-footer" id="wp-ads-1060895979"><div id="bottom-footer-fixed-slot"> <script data-src="data:text/javascript;base64,DQogICAgZnVuY3Rpb24gY2xvc2VTdGlja3lGb290ZXIoKSB7DQogICAgICB2YXIgc3RpY2t5Qm90dG9tQ2xvc2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdld2Vlay1jbG9zZS1idXR0b24nKTsNCiAgICAgIHN0aWNreUJvdHRvbUNsb3NlWzBdLnBhcmVudE5vZGUucmVtb3ZlKCk7DQogICAgfQ0KICA=" data-type="lazy"></script> <span class="eweek-close-button" onclick="closeStickyFooter()" title="close" style="width: 15px; height: 15px; background: #fff; position: relative; line-height: 15px; text-align: center; cursor: pointer; z-index: 10000;right:-15px;float: right; margin-left: -15px;">脳</span> <!-- Start: GAM Ad Slot Render | Codeguru Sticky Bottom --> <div id="sticky-bottom" style="max-width: 1020px; min-width: 300px; width: auto; text-align:center; min-height: 50px; max-height: 90px; height: auto; background-color: #ffffff; border:1px solid #efefef;"> <script nowprocket> window.googletag = window.googletag || { cmd: [] }; window.googletag.cmd.push(function() { googletag.display("sticky-bottom"); }); </script> </div> <!-- End: GAM Ad Slot Render | Codeguru Sticky Bottom --> </div></div><script data-src="data:text/javascript;base64,d2luZG93LmFkdmFkc19hZG1pbl9iYXJfaXRlbXMgPSBbeyJ0aXRsZSI6IkRhdGFsYXllciAmYW1wOyBHQU0gQ29yZSIsInR5cGUiOiJhZCJ9LHsidGl0bGUiOiJCZWZvcmUgQ2xvc2luZyBIZWFkIFRhZyIsInR5cGUiOiJwbGFjZW1lbnQifSx7InRpdGxlIjoiQ29kZWd1cnUgfCBNdWx0aW1lZGlhIENhdGVnb3J5IFx1MjAxMyBBZCBTbG90IERlZmluaXRpb25zIiwidHlwZSI6ImFkIn0seyJ0aXRsZSI6Ik11bHRpbWVkaWEgQ2F0ZWdvcnkgfCBBZCBTbG90IERlZmluaXRpb25zIFBsYWNlbWVudCIsInR5cGUiOiJwbGFjZW1lbnQifSx7InRpdGxlIjoiQ29kZWd1cnUgfCBUZXN0IER5bmFtaWMgU2xvdCBcdTIwMTMgQWQgU2xvdCBEZWZpbml0aW9ucyIsInR5cGUiOiJhZCJ9LHsidGl0bGUiOiJDb2RlZ3VydSB8IElubGluZSBUb3AgUmVuZGVyIiwidHlwZSI6ImFkIn0seyJ0aXRsZSI6IklubGluZSBUb3AiLCJ0eXBlIjoicGxhY2VtZW50In0seyJ0aXRsZSI6IkNvZGVndXJ1IHwgU3RpY2t5IFJhaWwgUmVuZGVyIiwidHlwZSI6ImFkIn0seyJ0aXRsZSI6IlN0aWNreSBSYWlsIiwidHlwZSI6InBsYWNlbWVudCJ9LHsidGl0bGUiOiJDb2RlR3VydSB8IE5hdGl2ZSBSUiAtIFJlbmRlciIsInR5cGUiOiJhZCJ9LHsidGl0bGUiOiJDb2RlR3VydSB8IE5hdGl2ZSBCT0FQIC0gUmVuZGVyIiwidHlwZSI6ImFkIn0seyJ0aXRsZSI6IkNvZGVndXJ1IHwgU3RpY2t5IEJvdHRvbSBSZW5kZXIiLCJ0eXBlIjoiYWQifSx7InRpdGxlIjoiU3RpY2t5IEZvb3RlciIsInR5cGUiOiJwbGFjZW1lbnQifV07" data-type="lazy"></script><script data-src="data:text/javascript;base64,IWZ1bmN0aW9uKCl7d2luZG93LmFkdmFuY2VkX2Fkc19yZWFkeV9xdWV1ZT13aW5kb3cuYWR2YW5jZWRfYWRzX3JlYWR5X3F1ZXVlfHxbXSxhZHZhbmNlZF9hZHNfcmVhZHlfcXVldWUucHVzaD13aW5kb3cuYWR2YW5jZWRfYWRzX3JlYWR5O2Zvcih2YXIgZD0wLGE9YWR2YW5jZWRfYWRzX3JlYWR5X3F1ZXVlLmxlbmd0aDtkPGE7ZCsrKWFkdmFuY2VkX2Fkc19yZWFkeShhZHZhbmNlZF9hZHNfcmVhZHlfcXVldWVbZF0pfSgpOw==" data-type="lazy"></script><!-- typekit fonts --><link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" href="https://use.typekit.net/qur0lux.css"> <script data-src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdToTop.js?ver=12.6.8" data-type="lazy" type="text/javascript" id="tdToTop-js"></script> <script type="text/javascript" src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdAjaxSearch.js?ver=12.6.8" id="tdDatei18n-js"></script> <script type="text/javascript" src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdStickyRow.js?ver=12.6.8" id="tdStickyRow-js"></script> <script type="text/javascript" src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdSmartSidebar.js?ver=12.6.8" id="tdSmartSidebar-js"></script> <script type="text/javascript" src="https://www.codeguru.com/wp-content/plugins/td-cloud-library/assets/js/tdbMenu.js?ver=b33652f2535d2f3812f59e306e26300d" id="tdbMenu-js"></script> <script data-src="https://www.codeguru.com/wp-content/plugins/td-composer/legacy/Newspaper/js/tdLoadingBox.js?ver=12.6.8" data-type="lazy" type="text/javascript" id="tdLoadingBox-js"></script> <!-- JS generated by theme --> <script type="text/javascript" id="td-generated-footer-js"> /* global jQuery:{} */ jQuery().ready( function () { tdAjaxSearch._is_mob_live_search_active = false; }); /* global jQuery:{} */ jQuery(document).ready( function () { var tdbMenuItem = new tdbMenu.item(); tdbMenuItem.blockUid = 'tdi_21'; tdbMenuItem.jqueryObj = jQuery('.tdi_21'); tdbMenuItem.blockAtts = '{"main_sub_tdicon":"td-icon-down","sub_tdicon":"td-icon-right-arrow","mm_align_horiz":"content-horiz-center","modules_on_row_regular":"20%","modules_on_row_cats":"25%","image_size":"td_324x400","modules_category":"image","show_excerpt":"none","show_com":"none","show_date":"none","show_author":"none","mm_sub_align_horiz":"content-horiz-right","mm_elem_align_horiz":"content-horiz-right","inline":"yes","mm_align_screen":"yes","f_elem_font_size":"eyJwb3J0cmFpdCI6IjExIiwiYWxsIjoiMTMifQ==","elem_padd":"eyJwb3J0cmFpdCI6IjAgOXB4In0=","menu_id":"30626","text_color":"#ffffff","tds_menu_active":"tds_menu_active3","f_elem_font_line_height":"eyJwb3J0cmFpdCI6IjQ4cHgifQ==","sub_align_horiz":"content-horiz-left","tdc_css":"eyJhbGwiOnsiZGlzcGxheSI6IiJ9fQ==","align_horiz":"content-horiz-left","all_underline_color":"","float_right":"yes","tds_menu_active1-line_color":"eyJ0eXBlIjoiZ3JhZGllbnQiLCJjb2xvcjEiOiIjMjM4ZmVlIiwiY29sb3IyIjoiIzI2YmRlOSIsIm1peGVkQ29sb3JzIjpbXSwiZGVncmVlIjoiMTIwIiwiY3NzIjoiYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoMTIwZGVnLCMyNmJkZTksIzIzOGZlZSk7YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywjMjZiZGU5LCMyMzhmZWUpOyIsImNzc1BhcmFtcyI6IjEyMGRlZywjMjZiZGU5LCMyMzhmZWUifQ==","f_elem_font_family":"tk_1","f_elem_font_transform":"capitalize","tds_menu_sub_active":"tds_menu_sub_active1","tds_menu_active3-bg_color":"#238fee","tds_menu_active3-text_color_h":"#ffffff","f_sub_elem_font_family":"tk_1","f_sub_elem_font_size":"15","f_sub_elem_font_transform":"capitalize","f_sub_elem_font_weight":"700","f_sub_elem_font_spacing":"0","tds_menu_sub_active1-sub_text_color_h":"#ffffff","sub_text_color":"#151948","tds_menu_sub_active1-sub_elem_bg_color_h":"#b361e0","sub_bg_color":"#ffffff","width":"100%","block_type":"tdb_header_menu","show_subcat":"","show_mega":"","show_mega_cats":"","mob_load":"","separator":"","more":"","elem_space":"","main_sub_icon_size":"","main_sub_icon_space":"","main_sub_icon_align":"-1","sep_tdicon":"","sep_icon_size":"","sep_icon_space":"","sep_icon_align":"-1","more_txt":"","more_tdicon":"","more_icon_size":"","more_icon_align":"0","sub_width":"","sub_first_left":"","sub_rest_top":"","sub_padd":"","sub_elem_inline":"","sub_elem_space":"","sub_elem_padd":"","sub_elem_radius":"0","sub_icon_size":"","sub_icon_space":"","sub_icon_pos":"","sub_icon_align":"1","mm_width":"","mm_content_width":"","mm_height":"","mm_padd":"","mm_radius":"","mm_offset":"","mm_posts_limit":"5","mm_subcats_posts_limit":"4","mm_child_cats":"","open_in_new_window":"","mm_ajax_preloading":"","mm_hide_all_item":"","mm_sub_width":"","mm_sub_padd":"","mm_sub_border":"","mm_sub_inline":"","mm_elem_order":"name","mm_elem_space":"","mm_elem_padd":"","mm_elem_border":"","mm_elem_border_a":"","mm_elem_border_rad":"","mc1_tl":"","mc1_title_tag":"","mc1_el":"","modules_gap":"","m_padding":"","all_modules_space":"36","modules_border_size":"","modules_border_style":"","modules_border_color":"#eaeaea","modules_divider":"","modules_divider_color":"#eaeaea","h_effect":"","image_alignment":"50","image_height":"","image_width":"","image_floated":"no_float","image_radius":"","hide_image":"","video_icon":"","show_vid_t":"block","vid_t_margin":"","vid_t_padding":"","vid_t_color":"","vid_t_bg_color":"","f_vid_time_font_header":"","f_vid_time_font_title":"Video duration text","f_vid_time_font_settings":"","f_vid_time_font_family":"","f_vid_time_font_size":"","f_vid_time_font_line_height":"","f_vid_time_font_style":"","f_vid_time_font_weight":"","f_vid_time_font_transform":"","f_vid_time_font_spacing":"","f_vid_time_":"","show_audio":"block","hide_audio":"","art_audio":"","art_audio_size":"1","meta_info_align":"","meta_info_horiz":"content-horiz-left","meta_width":"","meta_margin":"","meta_padding":"","art_title":"","meta_info_border_size":"","meta_info_border_style":"","meta_info_border_color":"#eaeaea","modules_category_margin":"","modules_category_padding":"","modules_cat_border":"","modules_category_radius":"0","show_cat":"inline-block","modules_extra_cat":"","author_photo":"","author_photo_size":"","author_photo_space":"","author_photo_radius":"","show_modified_date":"","time_ago":"","time_ago_add_txt":"ago","time_ago_txt_pos":"","art_excerpt":"","excerpt_col":"1","excerpt_gap":"","excerpt_middle":"","show_review":"inline-block","review_space":"","review_size":"2.5","review_distance":"","show_pagination":"","pag_space":"","pag_padding":"","pag_border_width":"","pag_border_radius":"","prev_tdicon":"","next_tdicon":"","pag_icons_size":"","main_sub_color":"","sep_color":"","more_icon_color":"","hover_opacity":"","f_elem_font_header":"","f_elem_font_title":"Elements text","f_elem_font_settings":"","f_elem_font_style":"","f_elem_font_weight":"","f_elem_font_spacing":"","f_elem_":"","sub_border_size":"","sub_border_color":"","sub_border_radius":"","sub_elem_bg_color":"","sub_color":"","sub_shadow_shadow_header":"","sub_shadow_shadow_title":"Shadow","sub_shadow_shadow_size":"","sub_shadow_shadow_offset_horizontal":"","sub_shadow_shadow_offset_vertical":"","sub_shadow_shadow_spread":"","sub_shadow_shadow_color":"","f_sub_elem_font_header":"","f_sub_elem_font_title":"Elements text","f_sub_elem_font_settings":"","f_sub_elem_font_line_height":"","f_sub_elem_font_style":"","f_sub_elem_":"","mm_bg":"","mm_content_bg":"","mm_border_size":"","mm_border_color":"","mm_shadow_shadow_header":"","mm_shadow_shadow_title":"Shadow","mm_shadow_shadow_size":"","mm_shadow_shadow_offset_horizontal":"","mm_shadow_shadow_offset_vertical":"","mm_shadow_shadow_spread":"","mm_shadow_shadow_color":"","mm_subcats_bg":"","mm_subcats_border_color":"","mm_elem_color":"","mm_elem_color_a":"","mm_elem_bg":"","mm_elem_bg_a":"","mm_elem_border_color":"","mm_elem_border_color_a":"","mm_elem_shadow_shadow_header":"","mm_elem_shadow_shadow_title":"Elements shadow","mm_elem_shadow_shadow_size":"","mm_elem_shadow_shadow_offset_horizontal":"","mm_elem_shadow_shadow_offset_vertical":"","mm_elem_shadow_shadow_spread":"","mm_elem_shadow_shadow_color":"","f_mm_sub_font_header":"","f_mm_sub_font_title":"Sub categories elements","f_mm_sub_font_settings":"","f_mm_sub_font_family":"","f_mm_sub_font_size":"","f_mm_sub_font_line_height":"","f_mm_sub_font_style":"","f_mm_sub_font_weight":"","f_mm_sub_font_transform":"","f_mm_sub_font_spacing":"","f_mm_sub_":"","m_bg":"","color_overlay":"","shadow_shadow_header":"","shadow_shadow_title":"Module Shadow","shadow_shadow_size":"","shadow_shadow_offset_horizontal":"","shadow_shadow_offset_vertical":"","shadow_shadow_spread":"","shadow_shadow_color":"","title_txt":"","title_txt_hover":"","all_underline_height":"","cat_bg":"","cat_bg_hover":"","cat_txt":"","cat_txt_hover":"","cat_border":"","cat_border_hover":"","meta_bg":"","author_txt":"","author_txt_hover":"","date_txt":"","ex_txt":"","com_bg":"","com_txt":"","rev_txt":"","shadow_m_shadow_header":"","shadow_m_shadow_title":"Meta info shadow","shadow_m_shadow_size":"","shadow_m_shadow_offset_horizontal":"","shadow_m_shadow_offset_vertical":"","shadow_m_shadow_spread":"","shadow_m_shadow_color":"","audio_btn_color":"","audio_time_color":"","audio_bar_color":"","audio_bar_curr_color":"","pag_text":"","pag_h_text":"","pag_bg":"","pag_h_bg":"","pag_border":"","pag_h_border":"","f_title_font_header":"","f_title_font_title":"Article title","f_title_font_settings":"","f_title_font_family":"","f_title_font_size":"","f_title_font_line_height":"","f_title_font_style":"","f_title_font_weight":"","f_title_font_transform":"","f_title_font_spacing":"","f_title_":"","f_cat_font_title":"Article category tag","f_cat_font_settings":"","f_cat_font_family":"","f_cat_font_size":"","f_cat_font_line_height":"","f_cat_font_style":"","f_cat_font_weight":"","f_cat_font_transform":"","f_cat_font_spacing":"","f_cat_":"","f_meta_font_title":"Article meta info","f_meta_font_settings":"","f_meta_font_family":"","f_meta_font_size":"","f_meta_font_line_height":"","f_meta_font_style":"","f_meta_font_weight":"","f_meta_font_transform":"","f_meta_font_spacing":"","f_meta_":"","f_ex_font_title":"Article excerpt","f_ex_font_settings":"","f_ex_font_family":"","f_ex_font_size":"","f_ex_font_line_height":"","f_ex_font_style":"","f_ex_font_weight":"","f_ex_font_transform":"","f_ex_font_spacing":"","f_ex_":"","mix_color":"","mix_type":"","fe_brightness":"1","fe_contrast":"1","fe_saturate":"1","mix_color_h":"","mix_type_h":"","fe_brightness_h":"1","fe_contrast_h":"1","fe_saturate_h":"1","el_class":"","block_template_id":"","td_column_number":3,"header_color":"","ajax_pagination_infinite_stop":"","offset":"","limit":"5","td_ajax_preloading":"","td_ajax_filter_type":"","td_filter_default_txt":"","td_ajax_filter_ids":"","color_preset":"","ajax_pagination":"","ajax_pagination_next_prev_swipe":"","border_top":"","css":"","class":"tdi_21","tdc_css_class":"tdi_21","tdc_css_class_style":"tdi_21_rand_style","context":""}'; tdbMenuItem.isMegaMenuFull = true; tdbMenuItem.megaMenuLoadType = ''; tdbMenu.addItem(tdbMenuItem); }); /* global jQuery:{} */ jQuery(document).ready( function () { var tdbMenuItem = new tdbMenu.item(); tdbMenuItem.blockUid = 'tdi_139'; tdbMenuItem.jqueryObj = jQuery('.tdi_139'); tdbMenuItem.blockAtts = '{"main_sub_tdicon":"td-icon-down","sub_tdicon":"td-icon-right-arrow","mm_align_horiz":"content-horiz-center","modules_on_row_regular":"20%","modules_on_row_cats":"25%","image_size":"td_324x400","modules_category":"image","show_excerpt":"none","show_com":"none","show_date":"none","show_author":"none","mm_sub_align_horiz":"content-horiz-right","mm_elem_align_horiz":"content-horiz-right","menu_id":"526","text_color":"#ffffff","align_horiz":"content-horiz-center","f_elem_font_size":"eyJwaG9uZSI6IjEwIiwiYWxsIjoiMTQifQ==","tds_menu_active1-line_color":"#238fee","f_elem_font_family":"394","all_underline_color":"#238fee","all_underline_height":"3","f_elem_font_weight":"600","block_type":"tdb_header_menu","show_subcat":"","show_mega":"","show_mega_cats":"","mob_load":"","separator":"","width":"","inline":"","more":"","float_right":"","elem_space":"","elem_padd":"","main_sub_icon_size":"","main_sub_icon_space":"","main_sub_icon_align":"-1","sep_tdicon":"","sep_icon_size":"","sep_icon_space":"","sep_icon_align":"-1","more_txt":"","more_tdicon":"","more_icon_size":"","more_icon_align":"0","sub_width":"","sub_first_left":"","sub_rest_top":"","sub_padd":"","sub_align_horiz":"content-horiz-left","sub_elem_inline":"","sub_elem_space":"","sub_elem_padd":"","sub_elem_radius":"0","sub_icon_size":"","sub_icon_space":"","sub_icon_pos":"","sub_icon_align":"1","mm_width":"","mm_content_width":"","mm_height":"","mm_padd":"","mm_radius":"","mm_offset":"","mm_align_screen":"","mm_posts_limit":"5","mm_subcats_posts_limit":"4","mm_child_cats":"","open_in_new_window":"","mm_ajax_preloading":"","mm_hide_all_item":"","mm_sub_width":"","mm_sub_padd":"","mm_sub_border":"","mm_sub_inline":"","mm_elem_order":"name","mm_elem_space":"","mm_elem_padd":"","mm_elem_border":"","mm_elem_border_a":"","mm_elem_border_rad":"","mc1_tl":"","mc1_title_tag":"","mc1_el":"","modules_gap":"","m_padding":"","all_modules_space":"36","modules_border_size":"","modules_border_style":"","modules_border_color":"#eaeaea","modules_divider":"","modules_divider_color":"#eaeaea","h_effect":"","image_alignment":"50","image_height":"","image_width":"","image_floated":"no_float","image_radius":"","hide_image":"","video_icon":"","show_vid_t":"block","vid_t_margin":"","vid_t_padding":"","vid_t_color":"","vid_t_bg_color":"","f_vid_time_font_header":"","f_vid_time_font_title":"Video duration text","f_vid_time_font_settings":"","f_vid_time_font_family":"","f_vid_time_font_size":"","f_vid_time_font_line_height":"","f_vid_time_font_style":"","f_vid_time_font_weight":"","f_vid_time_font_transform":"","f_vid_time_font_spacing":"","f_vid_time_":"","show_audio":"block","hide_audio":"","art_audio":"","art_audio_size":"1","meta_info_align":"","meta_info_horiz":"content-horiz-left","meta_width":"","meta_margin":"","meta_padding":"","art_title":"","meta_info_border_size":"","meta_info_border_style":"","meta_info_border_color":"#eaeaea","modules_category_margin":"","modules_category_padding":"","modules_cat_border":"","modules_category_radius":"0","show_cat":"inline-block","modules_extra_cat":"","author_photo":"","author_photo_size":"","author_photo_space":"","author_photo_radius":"","show_modified_date":"","time_ago":"","time_ago_add_txt":"ago","time_ago_txt_pos":"","art_excerpt":"","excerpt_col":"1","excerpt_gap":"","excerpt_middle":"","show_review":"inline-block","review_space":"","review_size":"2.5","review_distance":"","show_pagination":"","pag_space":"","pag_padding":"","pag_border_width":"","pag_border_radius":"","prev_tdicon":"","next_tdicon":"","pag_icons_size":"","main_sub_color":"","sep_color":"","more_icon_color":"","tds_menu_active":"tds_menu_active1","hover_opacity":"","f_elem_font_header":"","f_elem_font_title":"Elements text","f_elem_font_settings":"","f_elem_font_line_height":"","f_elem_font_style":"","f_elem_font_transform":"","f_elem_font_spacing":"","f_elem_":"","sub_bg_color":"","sub_border_size":"","sub_border_color":"","sub_border_radius":"","sub_text_color":"","sub_elem_bg_color":"","sub_color":"","sub_shadow_shadow_header":"","sub_shadow_shadow_title":"Shadow","sub_shadow_shadow_size":"","sub_shadow_shadow_offset_horizontal":"","sub_shadow_shadow_offset_vertical":"","sub_shadow_shadow_spread":"","sub_shadow_shadow_color":"","tds_menu_sub_active":"tds_menu_sub_active1","f_sub_elem_font_header":"","f_sub_elem_font_title":"Elements text","f_sub_elem_font_settings":"","f_sub_elem_font_family":"","f_sub_elem_font_size":"","f_sub_elem_font_line_height":"","f_sub_elem_font_style":"","f_sub_elem_font_weight":"","f_sub_elem_font_transform":"","f_sub_elem_font_spacing":"","f_sub_elem_":"","mm_bg":"","mm_content_bg":"","mm_border_size":"","mm_border_color":"","mm_shadow_shadow_header":"","mm_shadow_shadow_title":"Shadow","mm_shadow_shadow_size":"","mm_shadow_shadow_offset_horizontal":"","mm_shadow_shadow_offset_vertical":"","mm_shadow_shadow_spread":"","mm_shadow_shadow_color":"","mm_subcats_bg":"","mm_subcats_border_color":"","mm_elem_color":"","mm_elem_color_a":"","mm_elem_bg":"","mm_elem_bg_a":"","mm_elem_border_color":"","mm_elem_border_color_a":"","mm_elem_shadow_shadow_header":"","mm_elem_shadow_shadow_title":"Elements shadow","mm_elem_shadow_shadow_size":"","mm_elem_shadow_shadow_offset_horizontal":"","mm_elem_shadow_shadow_offset_vertical":"","mm_elem_shadow_shadow_spread":"","mm_elem_shadow_shadow_color":"","f_mm_sub_font_header":"","f_mm_sub_font_title":"Sub categories elements","f_mm_sub_font_settings":"","f_mm_sub_font_family":"","f_mm_sub_font_size":"","f_mm_sub_font_line_height":"","f_mm_sub_font_style":"","f_mm_sub_font_weight":"","f_mm_sub_font_transform":"","f_mm_sub_font_spacing":"","f_mm_sub_":"","m_bg":"","color_overlay":"","shadow_shadow_header":"","shadow_shadow_title":"Module Shadow","shadow_shadow_size":"","shadow_shadow_offset_horizontal":"","shadow_shadow_offset_vertical":"","shadow_shadow_spread":"","shadow_shadow_color":"","title_txt":"","title_txt_hover":"","cat_bg":"","cat_bg_hover":"","cat_txt":"","cat_txt_hover":"","cat_border":"","cat_border_hover":"","meta_bg":"","author_txt":"","author_txt_hover":"","date_txt":"","ex_txt":"","com_bg":"","com_txt":"","rev_txt":"","shadow_m_shadow_header":"","shadow_m_shadow_title":"Meta info shadow","shadow_m_shadow_size":"","shadow_m_shadow_offset_horizontal":"","shadow_m_shadow_offset_vertical":"","shadow_m_shadow_spread":"","shadow_m_shadow_color":"","audio_btn_color":"","audio_time_color":"","audio_bar_color":"","audio_bar_curr_color":"","pag_text":"","pag_h_text":"","pag_bg":"","pag_h_bg":"","pag_border":"","pag_h_border":"","f_title_font_header":"","f_title_font_title":"Article title","f_title_font_settings":"","f_title_font_family":"","f_title_font_size":"","f_title_font_line_height":"","f_title_font_style":"","f_title_font_weight":"","f_title_font_transform":"","f_title_font_spacing":"","f_title_":"","f_cat_font_title":"Article category tag","f_cat_font_settings":"","f_cat_font_family":"","f_cat_font_size":"","f_cat_font_line_height":"","f_cat_font_style":"","f_cat_font_weight":"","f_cat_font_transform":"","f_cat_font_spacing":"","f_cat_":"","f_meta_font_title":"Article meta info","f_meta_font_settings":"","f_meta_font_family":"","f_meta_font_size":"","f_meta_font_line_height":"","f_meta_font_style":"","f_meta_font_weight":"","f_meta_font_transform":"","f_meta_font_spacing":"","f_meta_":"","f_ex_font_title":"Article excerpt","f_ex_font_settings":"","f_ex_font_family":"","f_ex_font_size":"","f_ex_font_line_height":"","f_ex_font_style":"","f_ex_font_weight":"","f_ex_font_transform":"","f_ex_font_spacing":"","f_ex_":"","mix_color":"","mix_type":"","fe_brightness":"1","fe_contrast":"1","fe_saturate":"1","mix_color_h":"","mix_type_h":"","fe_brightness_h":"1","fe_contrast_h":"1","fe_saturate_h":"1","el_class":"","tdc_css":"","block_template_id":"","td_column_number":3,"header_color":"","ajax_pagination_infinite_stop":"","offset":"","limit":"5","td_ajax_preloading":"","td_ajax_filter_type":"","td_filter_default_txt":"","td_ajax_filter_ids":"","color_preset":"","ajax_pagination":"","ajax_pagination_next_prev_swipe":"","border_top":"","css":"","class":"tdi_139","tdc_css_class":"tdi_139","tdc_css_class_style":"tdi_139_rand_style","context":""}'; tdbMenuItem.isMegaMenuParentPos = true; tdbMenuItem.megaMenuLoadType = ''; tdbMenu.addItem(tdbMenuItem); }); </script> <script data-src="data:text/javascript;base64,dmFyIHRkX3Jlc19jb250ZXh0X3JlZ2lzdGVyZWRfYXR0cz1bInN0eWxlX2dlbmVyYWxfbW9iaWxlX21lbnUiLCJzdHlsZV9nZW5lcmFsX2hlYWRlcl9hbGlnbiIsInN0eWxlX2dlbmVyYWxfaGVhZGVyX2xvZ28iLCJzdHlsZV9nZW5lcmFsX21vYmlsZV9zZWFyY2giLCJzdHlsZV9nZW5lcmFsX2lzX3N0aWNreSIsInN0eWxlX2dlbmVyYWxfaGVhZGVyX21lbnUiLCJzdHlsZV9nZW5lcmFsX21lbnVfYWN0aXZlMyIsInN0eWxlX2dlbmVyYWxfc29jaWFscyIsInN0eWxlX2dlbmVyYWxfc29jaWFsMyIsInN0eWxlX2dlbmVyYWxfc2VhcmNoX2Zvcm0iLCJzdHlsZV9nZW5lcmFsX2JyZWFkY3J1bWJzIiwic3R5bGVfZ2VuZXJhbF9zaW5nbGVfdGl0bGUiLCJzdHlsZV9nZW5lcmFsX3RpdGxlX3NpbmdsZSIsInN0eWxlX2JnX3NwYWNlIiwic3R5bGVfZ2VuZXJhbF9wb3N0X21ldGEiLCJzdHlsZV9nZW5lcmFsX3NpbmdsZV9hdXRob3IiLCJzdHlsZV9nZW5lcmFsX3NpbmdsZV9kYXRlIiwic3R5bGVfZ2VuZXJhbF9zaW5nbGVfcG9zdF9zaGFyZSIsInN0eWxlX2dlbmVyYWxfc2luZ2xlX2NvbnRlbnQiLCJzdHlsZV9nZW5lcmFsX2F1dGhvcl9ib3giLCJzdHlsZV9nZW5lcmFsX3JlbGF0ZWRfcG9zdCIsInN0eWxlX2dlbmVyYWxfaW5saW5lX3RleHQiLCJzdHlsZV9nZW5lcmFsX2J1dHRvbiIsInN0eWxlX2dlbmVyYWxfbGlzdF9tZW51Iiwic3R5bGVfc3BlY2lmaWNfbGlzdF9tZW51X3ZlcnRpY2FsIiwic3R5bGVfc3BlY2lmaWNfbGlzdF9tZW51X2FjY29yZGlvbiIsInN0eWxlX3NwZWNpZmljX2xpc3RfbWVudV9ob3Jpem9udGFsIiwic3R5bGVfZ2VuZXJhbF9zZXBhcmF0b3IiLCJzdHlsZV9nZW5lcmFsX2NvbHVtbl90aXRsZSIsInN0eWxlX2dlbmVyYWxfc2luZ2xlX2ltYWdlIiwic3R5bGVfZ2VuZXJhbF9jb2x1bW5fY29udGVudCJdOw==" data-type="lazy"></script> <script>window.lazyLoadOptions = [{ elements_selector: "img[data-lazy-src],.rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, callback_loaded: function(element) { if ( element.tagName === "IFRAME" && element.dataset.rocketLazyload == "fitvidscompatible" ) { if (element.classList.contains("lazyloaded") ) { if (typeof window.jQuery != "undefined") { if (jQuery.fn.fitVids) { jQuery(element).parent().fitVids(); } } } } }},{ elements_selector: ".rocket-lazyload", data_src: "lazy-src", data_srcset: "lazy-srcset", data_sizes: "lazy-sizes", class_loading: "lazyloading", class_loaded: "lazyloaded", threshold: 300, }]; window.addEventListener('LazyLoad::Initialized', function (e) { var lazyLoadInstance = e.detail.instance; if (window.MutationObserver) { var observer = new MutationObserver(function(mutations) { var image_count = 0; var iframe_count = 0; var rocketlazy_count = 0; mutations.forEach(function(mutation) { for (var i = 0; i < mutation.addedNodes.length; i++) { if (typeof mutation.addedNodes[i].getElementsByTagName !== 'function') { continue; } if (typeof mutation.addedNodes[i].getElementsByClassName !== 'function') { continue; } images = mutation.addedNodes[i].getElementsByTagName('img'); is_image = mutation.addedNodes[i].tagName == "IMG"; iframes = mutation.addedNodes[i].getElementsByTagName('iframe'); is_iframe = mutation.addedNodes[i].tagName == "IFRAME"; rocket_lazy = mutation.addedNodes[i].getElementsByClassName('rocket-lazyload'); image_count += images.length; iframe_count += iframes.length; rocketlazy_count += rocket_lazy.length; if(is_image){ image_count += 1; } if(is_iframe){ iframe_count += 1; } } } ); if(image_count > 0 || iframe_count > 0 || rocketlazy_count > 0){ lazyLoadInstance.update(); } } ); var b = document.getElementsByTagName("body")[0]; var config = { childList: true, subtree: true }; observer.observe(b, config); } }, false);</script><script data-no-minify="1" async src="https://www.codeguru.com/wp-content/plugins/rocket-lazy-load/assets/js/16.1/lazyload.min.js"></script> </body> </html>