1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 6 <meta name="ai-usage-policy" content="Allowed-with-attribution; Attribution-Required; License=CC BY-NC-ND 4.0"> 7 <meta name="publication-media-verification" content="86429e66755147c7aec69c3a706dfe50"> 8 <meta name="linksman-verification" content="83etvGD6LWXgGpYE"> 9 <meta name="viewport" content="width=device-width"> 10 11 <link rel="preload" href="https://www.toolshero.com/wp-content/plugins/rate-my-post/public/css/fonts/ratemypost.ttf" type="font/ttf" as="font" crossorigin="anonymous"> 12<!-- Search Engine Optimization by Rank Math PRO - https://rankmath.com/ --> 13<title>Login to the Toolshero community! - Toolshero</title> 14<meta name="robots" content="nofollow, noindex"/> 15<meta property="og:locale" content="en_US" /> 16<meta property="og:type" content="article" /> 17<meta property="og:title" content="Login to the Toolshero community! - Toolshero" /> 18<meta property="og:description" content="Username or E-mail Password Remember Me Forgot Password" /> 19<meta property="og:url" content="https://www.toolshero.com/login-subscriber/" /> 20<meta property="og:site_name" content="Toolshero" /> 21<meta property="article:publisher" content="https://www.facebook.com/toolshero" /> 22<meta property="article:author" content="https://www.facebook.com/vvvliet" /> 23<meta property="og:updated_time" content="2023-11-08T16:08:57+00:00" /> 24<meta property="article:published_time" content="2020-01-07T10:37:02+00:00" /> 25<meta property="article:modified_time" content="2023-11-08T16:08:57+00:00" /> 26<meta name="twitter:card" content="summary_large_image" /> 27<meta name="twitter:title" content="Login to the Toolshero community! - Toolshero" /> 28<meta name="twitter:description" content="Username or E-mail Password Remember Me Forgot Password" /> 29<meta name="twitter:site" content="@toolshero" /> 30<meta name="twitter:creator" content="@toolshero" />
31<script type="application/ld+json" class="rank-math-schema-pro">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.toolshero.com/#organization","name":"Toolshero","url":"https://www.toolshero.com/","sameAs":["https://www.facebook.com/toolshero","https://twitter.com/toolshero","https://www.instagram.com/toolshero/","https://www.linkedin.com/company/toolshero","https://www.pinterest.com/toolshero/","https://www.youtube.com/toolshero"]},{"@type":"WebSite","@id":"https://www.toolshero.com/#website","url":"https://www.toolshero.com","name":"Toolshero","publisher":{"@id":"https://www.toolshero.com/#organization"},"inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://www.toolshero.com/login-subscriber/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://www.toolshero.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.toolshero.com/login-subscriber/","name":"Login to the Toolshero community!"}}]},{"@type":"WebPage","@id":"https://www.toolshero.com/login-subscriber/#webpage","url":"https://www.toolshero.com/login-subscriber/","name":"Login to the Toolshero community! - Toolshero","datePublished":"2020-01-07T10:37:02+00:00","dateModified":"2023-11-08T16:08:57+00:00","isPartOf":{"@id":"https://www.toolshero.com/#website"},"inLanguage":"en-US","breadcrumb":{"@id":"https://www.toolshero.com/login-subscriber/#breadcrumb"}},{"@type":"Person","@id":"https://www.toolshero.com/login-subscriber/#author","name":"Vincent van Vliet","image":{"@type":"ImageObject","@id":"https://www.toolshero.com/wp-content/uploads/2026/08/vincent-van-vliet-2024-toolshero.png","url":"https://www.toolshero.com/wp-content/uploads/2026/08/vincent-van-vliet-2024-toolshero.png","caption":"Vincent van Vliet","inLanguage":"en-US"},"sameAs":["https://www.toolshero.com/","https://www.facebook.com/vvvliet","https://www.linkedin.com/in/vincentvanvliet/"],"works
31For":{"@id":"https://www.toolshero.com/#organization"}},{"@type":"Article","headline":"Login to the Toolshero community! - Toolshero","datePublished":"2020-01-07T10:37:02+00:00","dateModified":"2023-11-08T16:08:57+00:00","author":{"@id":"https://www.toolshero.com/login-subscriber/#author","name":"Vincent van Vliet"},"publisher":{"@id":"https://www.toolshero.com/#organization"},"name":"Login to the Toolshero community! - Toolshero","@id":"https://www.toolshero.com/login-subscriber/#richSnippet","isPartOf":{"@id":"https://www.toolshero.com/login-subscriber/#webpage"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.toolshero.com/login-subscriber/#webpage"}}]}</script>
31 32<!-- /Rank Math WordPress SEO plugin --> 33 34<link rel='dns-prefetch' href='//static.addtoany.com' /> 35<link rel="alternate" type="application/rss+xml" title="Toolshero » Feed" href="https://www.toolshero.com/feed/" /> 36<link rel="alternate" type="application/rss+xml" title="Toolshero » Comments Feed" href="https://www.toolshero.com/comments/feed/" /> 37<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.toolshero.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.toolshero.com%2Flogin-subscriber%2F" /> 38<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.toolshero.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.toolshero.com%2Flogin-subscriber%2F&format=xml" /> 39<style id="wp-img-auto-sizes-contain-inline-css"> 40img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 41/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 42</style> 43<link rel='stylesheet' id='mp-theme-css' href='https://www.toolshero.com/wp-content/plugins/memberpress/css/ui/theme.css?ver=1.14.1' media='all' /> 44<link rel='stylesheet' id='dashicons-css' href='https://www.toolshero.com/wp-includes/css/dashicons.min.css?ver=7.1.2' media='all' /> 45<link rel='stylesheet' id='mp-login-css-css' href='https://www.toolshero.com/wp-content/plugins/memberpress/css/ui/login.css?ver=1.14.1' media='all' /> 46<style id="wp-block-library-inline-css"> 47:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
47--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 48 49/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 50</style> 51<style id="classic-theme-styles-inline-css"> 52/*! This file is auto-generated */ 53.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} 54/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 55</style> 56 57<link rel='stylesheet' id='rate-my-post-css' href='https://www.toolshero.com/wp-content/plugins/rate-my-post/public/css/rate-my-post.min.css?ver=4.5.2' media='all' /> 58<style id="rate-my-post-inline-css"> 59.rmp-widgets-container.rmp-wp-plugin.rmp-main-container { text-align:left;}.rmp-icon--full-highlight {color: #41D87D;}.rmp-icon--half-highlight { background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc)); background: linear-gradient(to right, #41D87D 50%, #ccc 50%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--half-highlight { background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc)); background: linear-gradient(to right, #41D87D 50%, #ccc 50%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--full-highlight { color: #41D87D;}@media (hover: hover) { .rmp-rating-widget .rmp-icon--hovered { color: #FFCC36; -webkit-background-clip: initial; -webkit-text-fill-color: initial; background: transparent; -webkit-transition: .1s color ease-in; transition: .1s color ease-in; }}.rmp-rating-widget .rmp-icon--processing-rating {color: #41D87D; -webkit-background-clip: initial; -webkit-text-fill-color: initial; background: transparent;}.rmp-rating-widget .rmp-icon--ratings { font-size: 22px;} 60.rmp-widgets-container.rmp-wp-plugin.rmp-main-container { text-align:left;}.rmp-icon--full-highlight {color: #41D87D;}.rmp-icon--half-highlight { background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc)); background: linear-gradient(to right, #41D87D 50%, #ccc 50%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--half-highlight { background: -webkit-gradient(linear, left top, right top, color-stop(50%, #41D87D), color-stop(50%, #ccc)); background: linear-gradient(to right, #41D87D 50%, #ccc 50%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}.rmp-rating-widget .rmp-icon--full-highlight { color: #41D87D;}@media (hover: hover) { .rmp-rating-widget .rmp-icon--hovered { color: #FFCC36; -webkit-background-clip: initial; -webkit-text-fill-color: initial; background: transparent; -webkit-transition: .1s color ease-in; transition: .1s color ease-in; }}.rmp-rating-widget .rmp-icon--processing-rating {color: #41D87D; -webkit-background-clip: initial; -webkit-text-fill-color: initial; background: transparent;}.rmp-rating-widget .rmp-icon--ratings { font-size: 22px;} 61/*# sourceURL=rate-my-post-inline-css */ 62</style> 63<style id="global-styles-inline-css"> 64: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,rgb(6,147,227) 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,rgb(252,185,
640) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 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: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--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 rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }: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;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.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;}
64.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;} 65/*# sourceURL=global-styles-inline-css */ 66</style> 67 68<link rel='stylesheet' id='simple_load_more-frontend-css' href='https://www.toolshero.com/wp-content/plugins/simple-load-more/assets/css/frontend.css?ver=1.0.0' media='all' /> 69<style id="simple_load_more-frontend-inline-css"> 70.elm-button { background: #ffffff; color: # 171717; } 71.elm-button:hover, .elm-button:active, .elm-button:focus { background: #ffffff; } 72.elm-loading-icon { fill: # 171717; stroke: # 171717; } 73 74/*# sourceURL=simple_load_more-frontend-inline-css */ 75</style> 76<link rel='stylesheet' id='eztoc-css' href='https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.87.1' media='all' /> 77<style id="eztoc-inline-css"> 78div#ez-toc-container .ez-toc-title, .ez-toc-split-section .ez-toc-title {font-size: 130%;}div#ez-toc-container .ez-toc-title, .ez-toc-split-section .ez-toc-title {font-weight: 700;}div#ez-toc-container ul li , div#ez-toc-container ul li a, .ez-toc-split-section ul li , .ez-toc-split-section ul li a {font-size: 100%;}div#ez-toc-container ul li , div#ez-toc-container ul li a, .ez-toc-split-section ul li , .ez-toc-split-section ul li a {font-weight: 400;}div#ez-toc-container nav ul ul li, .ez-toc-split-section nav ul ul li {font-size: 90%;}div#ez-toc-container, .ez-toc-split-section {background: #f9fbfc;border: 1px solid #ffffff;}div#ez-toc-container p.ez-toc-title , #ez-toc-container .ez_toc_custom_title_icon , #ez-toc-container .ez_toc_custom_toc_icon, .ez-toc-split-section p.ez-toc-title , .ez-toc-split-section .ez_toc_custom_title_icon , .ez-toc-split-section .ez_toc_custom_toc_icon {color: #000000;}div#ez-toc-container ul.ez-toc-list a, .ez-toc-split-section ul.ez-toc-list a {color: #424242;}div#ez-toc-container ul.ez-toc-list a:hover, .ez-toc-split-section ul.ez-toc-list a:hover {color: #41d87d;}div#ez-toc-container ul.ez-toc-list a:visited, .ez-toc-split-section ul.ez-toc-list a:visited {color: #37b75d;}.ez-toc-counter nav ul li a::before {color: ;}.ez-toc-box-title {font-weight: bold; margin-bottom: 10px; text-align: center; text-transform: uppercase; letter-spacing: 1px; color: #666; padding-bottom: 5px;position:absolute;top:-4%;left:5%;background-color: inherit;transition: top 0.3s ease;}.ez-toc-box-title.toc-closed {top:-25%;} 79.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul {direction: ltr;counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counter(item, numeric) '. ';margin-right: .2em; counter-increment: item;flex-grow: 0;flex-shrink: 0;float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul {direction: ltr;counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counter(item, numeric) '. ';margin-right: .2em; counter-increment: item;flex-grow: 0;flex-shrink: 0;float: left; } 80/*# sourceURL=eztoc-inline-css */ 81</style> 82<link rel='stylesheet' id='slickcss-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/css/slick.css?ver=1722587747' media='all' /> 83<link rel='stylesheet' id='main-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/style.css?ver=1788970765' media='all' /> 84<link rel='stylesheet' id='responsive-css' href='https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/css/responsive.css?ver=1722587747' media='all' /> 85<link rel='stylesheet' id='addtoany-css' href='https://www.toolshero.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' media='all' /> 86<link rel='stylesheet' id='cspfsl-buttons-style-css' href='https://www.toolshero.com/wp-content/plugins/memberpress-social-login//vendor-prefixed/caseproof/social-login/src//ui/assets/buttons.css?ver=7.1.2' media='all' />
87<script id="jquery-core-js-extra"> 88var elm_button_vars = {"wrapper":".posts-grid"}; 89//# sourceURL=jquery-core-js-extra 90</script>
vendor: 1 bytes, line 90
90
91<script id="jquery-core-js" src="https://www.toolshero.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 91
91
92<script id="jquery-migrate-js" src="https://www.toolshero.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 92
92
93<script id="underscore-js" src="https://www.toolshero.com/wp-includes/js/underscore.min.js?ver=1.13.8"></script>
vendor: 1 bytes, line 93
93
94<script id="wp-hooks-js" src="https://www.toolshero.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 94
94
95<script id="wp-i18n-js" src="https://www.toolshero.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 95
95
96<script id="wp-i18n-js-after"> 97wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 98//# sourceURL=wp-i18n-js-after 99</script>
vendor: 1 bytes, line 99
99
100<script id="mepr-login-js-js" src="https://www.toolshero.com/wp-content/plugins/memberpress/js/login.js?ver=1.14.1"></script>
vendor: 1 bytes, line 100
100
101<script id="addtoany-core-js-before"> 102window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={}; 103 104//# sourceURL=addtoany-core-js-before 105</script>
vendor: 1 bytes, line 105
105
106<script id="addtoany-core-js" defer src="https://static.addtoany.com/menu/page.js"></script>
vendor: 1 bytes, line 106
106
107<script id="addtoany-jquery-js" defer src="https://www.toolshero.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1"></script>
vendor: 1 bytes, line 107
107
108<script id="simple_load_more-frontend-js" src="https://www.toolshero.com/wp-content/plugins/simple-load-more/assets/js/frontend.js?ver=1.0.0"></script>
vendor: 1 bytes, line 108
108
109<script id="cspfsl-buttons-js-js" src="https://www.toolshero.com/wp-content/plugins/memberpress-social-login//vendor-prefixed/caseproof/social-login/src//ui/assets/buttons.js?ver=7.1.2"></script>
109 110<link rel="https://api.w.org/" href="https://www.toolshero.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.toolshero.com/wp-json/wp/v2/pages/32897" /><link rel='shortlink' href='https://www.toolshero.com/?p=32897' />
111<script>(()=>{var o=[],i={};["on","off","toggle","show"].forEach(l=>{i[l]=function(){o.push([l,arguments])}}),window.Boxzilla=i,window.boxzilla_queue=o})();</script>
vendor: 82 bytes, line 111
111<script async id="google_gtagjs" src="https://www.googletagmanager.com/gtag/js?id=
111G-SQ5LQGP7CN
vendor: 12 bytes, line 111
111"></script>
112<script id="google_gtagjs-inline">
vendor: 124 bytes, line 113
113window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
113G-SQ5LQGP7CN
vendor: 9 bytes, line 113
113', {} );
114</script>
114 115 116 <style> 117 118 /* ===================================================== 119 ACCOUNT 120 ===================================================== */ 121 122 .th-saved-account { 123 width: 100%; 124 125 padding-top: 5px; 126 } 127 128 129 /* ===================================================== 130 HEADER 131 ===================================================== */ 132 133 .th-saved-header { 134 display: flex; 135 align-items: flex-start; 136 justify-content: space-between; 137 138 gap: 30px; 139 140 padding: 141 24px 142 0 143 22px; 144 145 border-bottom: 146 1px 147 solid 148 #e7e7e7; 149 } 150 151 152 .th-saved-header h2 { 153 margin: 154 0 155 0 156 7px; 157 158 color: #202020; 159 160 font-size: 26px; 161 font-weight: 700; 162 line-height: 1.25; 163 } 164 165 166 .th-saved-header p { 167 max-width: 650px; 168 169 margin: 0; 170 171 color: #666666; 172 173 font-size: 15px; 174 line-height: 1.55; 175 } 176 177 178 /* ===================================================== 179 COUNTER 180 ===================================================== */ 181 182 .th-saved-counter { 183 flex: 184 0 185 0 186 auto; 187 188 min-width: 140px; 189 190 padding: 191 10px 192 15px; 193 194 background: #f7f7f7; 195 196 border-radius: 7px; 197 198 text-align: center; 199 } 200 201 202 .th-saved-counter strong { 203 display: block; 204 205 color: #202020; 206 207 font-size: 20px; 208 font-weight: 700; 209 line-height: 1.15; 210 } 211 212 213 .th-saved-counter span { 214 display: block; 215 216 margin-top: 3px; 217 218 color: #777777; 219 220 font-size: 12px; 221 line-height: 1.3; 222 } 223 224 225 /* ===================================================== 226 RESULTS LIST 227 ===================================================== */ 228 229 .th-saved-grid { 230 display: block; 231 232 margin: 0; 233 padding: 0; 234 } 235 236 237 .th-saved-result { 238 display: grid; 239 240 grid-template-columns: 241 112px 242 minmax(0, 1fr); 243 244 align-items: start; 245 246 gap: 20px; 247 248 margin: 0; 249 250 padding: 251 24px 252 0; 253 254 background: transparent; 255 256 border: 0; 257 258 border-bottom: 259 1px 260 solid 261 #e7e7e7; 262 263 border-radius: 0; 264 265 box-shadow: none; 266 267 transition: none; 268 } 269 270 271 .th-saved-result:hover { 272 background: transparent; 273 274 border-color: #e7e7e7; 275 276 box-shadow: none; 277 278 transform: none; 279 } 280 281 282 /* ===================================================== 283 THUMBNAIL 284 ===================================================== */ 285 286 .th-saved-image { 287 display: block; 288 289 width: 112px; 290 height: 112px; 291 292 margin: 0; 293 294 overflow: hidden; 295 296 background: #f4f4f4; 297 298 border-radius: 8px; 299 300 text-decoration: none; 301 } 302 303 304 .th-saved-image img { 305 display: block; 306 307 width: 112px; 308 height: 112px; 309 310 margin: 0; 311 312 object-fit: cover; 313 314 border-radius: 8px; 315 316 transition: 317 transform 318 .2s 319 ease; 320 } 321 322 323 .th-saved-image:hover img { 324 transform: 325 scale(1.025); 326 } 327 328 329 .th-saved-image-placeholder { 330 display: block; 331 332 width: 100%; 333 height: 100%; 334 335 background: #f4f4f4; 336 } 337 338 339 /* ===================================================== 340 CONTENT 341 ===================================================== */ 342 343 .th-saved-content { 344 min-width: 0; 345 346 padding: 0; 347 } 348 349 350 .th-saved-category { 351 margin: 352 0 353 0 354 4px; 355 356 color: #777777; 357 358 font-size: 12px; 359 font-weight: 600; 360 line-height: 1.3; 361 } 362 363 364 .th-saved-title { 365 margin: 366 0 367 0 368 4px !important; 369 370 padding: 0; 371 372 font-size: 21px !important; 373 font-weight: 700 !important; 374 line-height: 1.3 !important; 375 } 376 377 378 .th-saved-title a { 379 color: #202020 !important; 380 381 text-decoration: none !important; 382 383 transition: 384 color 385 .15s 386 ease; 387 } 388 389 390 .th-saved-title a:hover, 391 .th-saved-title a:focus { 392 color: #0073aa !important; 393 394 text-decoration: none !important; 395 } 396 397 398 .th-saved-updated { 399 margin: 400 0 401 0 402 8px; 403 404 color: #777777; 405 406 font-size: 12px; 407 font-weight: 400; 408 line-height: 1.4; 409 } 410 411 412 .th-saved-description { 413 display: -webkit-box; 414 415 overflow: hidden; 416 417 -webkit-box-orient: vertical; 418 -webkit-line-clamp: 3; 419 420 margin: 421 0 422 0 423 9px !important; 424 425 padding: 0; 426 427 color: #555555; 428 429 font-size: 15px; 430 font-weight: 400; 431 line-height: 1.55; 432 } 433 434 435 /* ===================================================== 436 REMOVE 437 ===================================================== */ 438 439 .th-saved-result-actions { 440 display: flex; 441 align-items: center; 442 443 margin: 444 2px 445 0 446 0; 447 } 448 449 450 .th-remove-saved-btn { 451 display: inline; 452 453 width: auto; 454 height: auto; 455 456 min-width: 0; 457 min-height: 0; 458 459 margin: 0; 460 padding: 0; 461 462 background: transparent !important; 463 464 border: 0 !important; 465 466 border-radius: 0; 467 468 box-shadow: none !important; 469 470 color: #777777; 471 472 font-family: inherit; 473 font-size: 12px; 474 font-weight: 400; 475 line-height: 1.4; 476 477 text-decoration: underline; 478 479 text-underline-offset: 2px; 480 481 cursor: pointer; 482 483 transition: 484 color 485 .15s 486 ease; 487 } 488 489 490 .th-remove-saved-btn:hover, 491 .th-remove-saved-btn:focus { 492 background: transparent !important; 493 494 color: #333333; 495 496 border: 0 !important; 497 498 box-shadow: none !important; 499 } 500 501 502 /* =====================================================
503 EMPTY LIST 504 ===================================================== */ 505 506 .th-saved-empty { 507 margin-top: 24px; 508 509 padding: 510 38px 511 25px; 512 513 background: #fafafa; 514 515 border: 516 1px 517 dashed 518 #d8d8d8; 519 520 border-radius: 8px; 521 522 text-align: center; 523 } 524 525 526 .th-saved-empty-icon { 527 display: flex; 528 align-items: center; 529 justify-content: center; 530 531 width: 46px; 532 height: 46px; 533 534 margin: 535 0 536 auto 537 13px; 538 539 background: #fff3cf; 540 541 border-radius: 50%; 542 543 color: #222222; 544 } 545 546 547 .th-saved-empty-icon svg { 548 width: 21px; 549 height: 21px; 550 551 fill: currentColor; 552 } 553 554 555 .th-saved-empty h3 { 556 margin: 557 0 558 0 559 6px; 560 561 color: #202020; 562 563 font-size: 18px; 564 font-weight: 700; 565 line-height: 1.3; 566 } 567 568 569 .th-saved-empty p { 570 margin: 0; 571 572 color: #666666; 573 574 font-size: 14px; 575 line-height: 1.5; 576 } 577 578 579 /* ===================================================== 580 TABLET / MOBILE 581 ===================================================== */ 582 583 @media (max-width: 700px) { 584 585 .th-saved-header { 586 flex-direction: column; 587 588 gap: 16px; 589 } 590 591 592 .th-saved-counter { 593 width: 100%; 594 595 box-sizing: border-box; 596 } 597 598 599 .th-saved-result { 600 grid-template-columns: 601 88px 602 minmax(0, 1fr); 603 604 gap: 14px; 605 606 padding: 607 20px 608 0; 609 } 610 611 612 .th-saved-image, 613 .th-saved-image img { 614 width: 88px; 615 height: 88px; 616 } 617 618 619 .th-saved-title { 620 font-size: 18px !important; 621 } 622 623 624 .th-saved-description { 625 -webkit-line-clamp: 2; 626 627 font-size: 14px; 628 } 629 630 } 631 632 633 @media (max-width: 480px) { 634 635 .th-saved-result { 636 grid-template-columns: 637 76px 638 minmax(0, 1fr); 639 640 gap: 12px; 641 } 642 643 644 .th-saved-image, 645 .th-saved-image img { 646 width: 76px; 647 height: 76px; 648 } 649 650 651 .th-saved-title { 652 font-size: 17px !important; 653 } 654 655 656 .th-saved-updated { 657 margin-bottom: 6px; 658 } 659 660 } 661 662 </style> 663 664 <link rel="icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" sizes="32x32" /> 665<link rel="icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" sizes="192x192" /> 666<link rel="apple-touch-icon" href="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" /> 667<meta name="msapplication-TileImage" content="https://www.toolshero.com/wp-content/uploads/2018/10/favicon.ico-96x96-th-green.png" /> 668 <style> 669 @media screen and (max-width: 767px) { 670 #ez-toc-container, 671 .ez-toc-container { 672 display: none !important; 673 } 674 } 675 </style> 676 677 678 679 <link rel="preload" as="font" href="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/fonts/open-sans-v18-latin-regular.woff2" type="font/woff2" crossorigin="anonymous"> 680 <link rel="preload" as="font" href="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/fonts/open-sans-v18-latin-700.woff" type="font/woff" crossorigin="anonymous"> 681 682 <style> 683 .hero-content ul li:before { 684 content: "â"; 685 font-weight: bold; 686 margin-right: 10px; 687 } 688 689 .pricing-table-content-innner ul li:before, 690 .image-callout-content ul li:before { 691 content: "â"; 692 } 693 </style> 694 695
695<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/1cdc7d15f5d77c0e0f14b83f/script.js"></script>
695 696</head> 697 698<body class="wp-singular page-template-default page page-id-32897 wp-theme-toolshero-wp-theme"> 699 700 701<section class="topbar-menu"> 702 <div class="container"> 703 <ul id="menu-topbar-menu" class=""><li id="menu-item-2064991" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064991"><a href="https://www.toolshero.com/about-us/">About us</a></li> 704<li id="menu-item-2049066" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-32897 current_page_item menu-item-2049066"><a href="https://www.toolshero.com/login-subscriber/" aria-current="page"><i class="icon-user"></i> Log in</a></li> 705<li id="menu-item-2072655" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2072655"><a href="https://www.toolshero.com/subscribe/">Unlock Full Access</a></li> 706</ul> </div> 707</section> 708 709<header class="header clearfix"> 710 <div class="container"> 711 712 <div class="header-logo"> 713 <a href="https://www.toolshero.com/"> 714 <img alt="Toolshero" src="https://www.toolshero.com/wp-content/uploads/2021/04/image-2.svg"> 715 </a> 716 </div> 717 718 <nav id="nav" class="nav"><ul id="menu-home-toolshero" class=""><li id="menu-item-2083740" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2083740"><a href="https://www.toolshero.com/latest-articles/">Latest articles</a></li> 719<li id="menu-item-36264" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-36264"><a href="https://www.toolshero.com/management/">Themes</a> 720<ul class="sub-menu"> 721 <li id="menu-item-8972" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8972"><a href="https://www.toolshero.com/change-management/">Change Management</a></li> 722 <li id="menu-item-8973" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8973"><a href="https://www.toolshero.com/communication-methods/">Communication methods</a></li> 723 <li id="menu-item-18419" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18419"><a href="https://www.toolshero.com/creativity/">Creativity</a></li> 724 <li id="menu-item-14002" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14002"><a href="https://www.toolshero.com/decision-making/">Decision Making</a></li> 725 <li id="menu-item-8976" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8976"><a href="https://www.toolshero.com/financial-management/">Financial Management</a></li> 726 <li id="menu-item-26624" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-26624"><a href="https://www.toolshero.com/human-resources/">Human Resources (HR)</a></li> 727 <li id="menu-item-23374" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23374"><a href="https://www.toolshero.com/information-technology/">Information Technology (IT)</a></li> 728 <li id="menu-item-21143" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21143"><a href="https://www.toolshero.com/innovation/">Innovation</a></li> 729 <li id="menu-item-11514" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11514"><a href="https://www.toolshero.com/leadership/">Leadership</a></li> 730 <li id="menu-item-8977" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8977"><a href="https://www.toolshero.com/management/">Management</a></li> 731 <li id="menu-item-8978" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8978"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li> 732 <li id="menu-item-29240" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-29240"><a href="https://www.toolshero.com/personal-development/">Personal Development</a></li> 733 <li id="menu-item-8980" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8980"><a href="https://www.toolshero.com/project-management/">Project Management (PM)</a></li> 734 <li id="menu-item-8974" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8974"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li> 735 <li id="menu-item-23139" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23139"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li> 736 <li id="menu-item-2062938" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2062938"><a href="https://www.toolshero.com/research/">Research Theories</a></li> 737 <li id="menu-item-8981" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8981"><a href="https://www.toolshero.com/quality-management/">Quality Management (QM)</a></li> 738 <li id="menu-item-42194" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42194"><a href="https://www.toolshero.com/sociology/">Sociology Theories</a></li> 739 <li id="menu-item-8982" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8982"><a href="https://www.toolshero.com/strategy/">Strategy Theories</a></li> 740 <li id="menu-item-9034" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9034"><a href="https://www.toolshero.com/toolsheroes/">Toolsheroes</a></li> 741</ul> 742</li> 743<li id="menu-item-2050002" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2050002"><a href="https://www.toolshero.com/templates/">Tools</a> 744<ul class="sub-menu"> 745 <li id="menu-item-28155" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-28155"><a href="https://www.toolshero.com/templates/">Templates</a></li> 746 <li id="menu-item-2075090" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2075090"><a href="https://www.toolshero.com/questionnaires/">Tests & Evaluation tools</a></li> 747 <li id="menu-item-1044288" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044288"><a href="https://www.toolshero.com/knowledge-base/">Lexicon</a></li> 748 <li id="menu-item-2068022" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2068022"><a href="https://www.toolshero.com/blog/">Blog</a></li> 749 <li id="menu-item-2066238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066238"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li> 750</ul> 751</li> 752<li id="menu-item-1044289" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1044289"><a href="https://www.toolshero.com/subscribe/">Membership Options</a> 753<ul class="sub-menu"> 754 <li id="menu-item-2064020" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064020"><a href="https://www.toolshero.com/subscribe/">Plans & Pricing</a></li> 755 <li id="menu-item-2078266" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2078266"><a href="https://www.toolshero.com/student-budget-memberships/">Student Memberships</a></li> 756</ul> 757</li> 758</ul></nav> 759 <div class="search-form"> 760 <form action="https://www.toolshero.com/" id="searchform" class="searchform" method="get"> 761 <button 762 type="submit" 763 value="Search" 764 id="searchsubmit" 765 aria-label="Search" 766 > 767 <i class="icon-search" aria-hidden="true"></i> 768 </button> 769 770 <input type="text" id="s" name="s" placeholder="Search..."> 771 </form> 772 </div> 773 774 <a class="mobile-menu" href="#nav">☰</a> 775 776 </div> 777</header> 778 779<section class="banner-top"> 780 <div class="container"> 781 </div> 782</section> 783 784<div class="mobile-nav-container"> 785 786 <a href="#" class="close">× Close</a> 787 788 789 <nav class="mobile-nav"><ul id="menu-home-toolshero-1" class=""><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2083740"><a href="https://www.toolshero.com/latest-articles/">Latest articles</a></li> 790<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-36264"><a href="https://www.toolshero.com/management/">Themes</a> 791<ul class="sub-menu"> 792 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8972"><a href="https://www.toolshero.com/change-management/">Change Management</a></li> 793 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8973"><a href="https://www.toolshero.com/communication-methods/">Communication methods</a></li> 794 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18419"><a href="https://www.toolshero.com/creativity/">Creativity</a></li> 795 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-14002"><a href="https://www.toolshero.com/decision-making/">Decision Making</a></li> 796 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8976"><a href="https://www.toolshero.com/financial-management/">Financial Management</a></li> 797 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-26624"><a href="https://www.toolshero.com/human-resources/">Human Resources (HR)</a></li> 798 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23374"><a href="https://www.toolshero.com/information-technology/">Information Technology (IT)</a></li> 799 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-21143"><a href="https://www.toolshero.com/innovation/">Innovation</a></li> 800 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11514"><a href="https://www.toolshero.com/leadership/">Leadership</a></li> 801 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8977"><a href="https://www.toolshero.com/management/">Management</a></li> 802 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8978"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li> 803 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-29240"><a href="https://www.toolshero.com/personal-development/">Personal Development</a></li> 804 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8980"><a href="https://www.toolshero.com/project-management/">Project Management (PM)</a></li> 805 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8974"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li> 806 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-23139"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li> 807 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2062938"><a href="https://www.toolshero.com/research/">Research Theories</a></li> 808 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8981"><a href="https://www.toolshero.com/quality-management/">Quality Management (QM)</a></li> 809 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-42194"><a href="https://www.toolshero.com/sociology/">Sociology Theories</a></li> 810 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-8982"><a href="https://www.toolshero.com/strategy/">Strategy Theories</a></li> 811 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-9034"><a href="https://www.toolshero.com/toolsheroes/">Toolsheroes</a></li> 812</ul> 813</li> 814<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-2050002"><a href="https://www.toolshero.com/templates/">Tools</a> 815<ul class="sub-menu"> 816 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-28155"><a href="https://www.toolshero.com/templates/">Templates</a></li> 817 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2075090"><a href="https://www.toolshero.com/questionnaires/">Tests & Evaluation tools</a></li> 818 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044288"><a href="https://www.toolshero.com/knowledge-base/">Lexicon</a></li> 819 <li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2068022"><a href="https://www.toolshero.com/blog/">Blog</a></li> 820 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066238"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li> 821</ul> 822</li> 823<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-1044289"><a href="https://www.toolshero.com/subscribe/">Membership Options</a> 824<ul class="sub-menu"> 825 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064020"><a href="https://www.toolshero.com/subscribe/">Plans & Pricing</a></li> 826 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2078266"><a href="https://www.toolshero.com/student-budget-memberships/">Student Memberships</a></li> 827</ul> 828</li> 829</ul></nav> 830 <nav class="mobile-nav"><ul id="menu-topbar-menu-1" class=""><li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2064991"><a href="https://www.toolshero.com/about-us/">About us</a></li> 831<li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-32897 current_page_item menu-item-2049066"><a href="https://www.toolshero.com/login-subscriber/" aria-current="page"><i class="icon-user"></i> Log in</a></li> 832<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2072655"><a href="https://www.toolshero.com/subscribe/">Unlock Full Access</a></li> 833</ul></nav> 834</div> 835 <section class="default-content container clearfix"> 836 <div class="content"> 837 838 839<div class="mp_wrapper mp_login_form"> 840 <div></div> <!-- mp-login-form-start --> <form name="mepr_loginform" id="mepr_loginform" class="mepr-form" action="https://www.toolshero.com/login-subscriber/" method="post"> 841 <div class="mp-form-row mepr_username"> 842 <div class="mp-form-label"> 843 <label for="user_login">Username or E-mail</label> 844 </div> 845 <input type="text" name="log" id="user_login" value="" /> 846 </div> 847 <div class="mp-form-row mepr_password"> 848 <div class="mp-form-label"> 849 <label for="user_pass">Password</label> 850 <div class="mp-hide-pw"> 851 <input type="password" name="pwd" id="user_pass" value="" /> 852 <button type="button" class="button mp-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password">
853 <span class="dashicons dashicons-visibility" aria-hidden="true"></span> 854 </button> 855 </div> 856 </div> 857 </div> 858 <div> 859 <label><input name="rememberme" type="checkbox" id="rememberme" value="forever" /> Remember Me</label> 860 </div> 861 <div class="mp-spacer"> </div> 862 <div class="submit"> 863 <input type="submit" name="wp-submit" id="wp-submit" class="button-primary mepr-share-button " value="Log In" /> 864 <input type="hidden" name="redirect_to" value="https://www.toolshero.com/my-account/" /> 865 <input type="hidden" name="mepr_process_login_form" value="true" /> 866 <input type="hidden" name="mepr_is_login_page" value="true" /> 867 </div> 868 </form> 869 <div class="mp-spacer"> </div> 870 <div class="mepr-login-actions"> 871 <a 872 href="https://www.toolshero.com/login-subscriber/?action=forgot_password" 873 title="Click here to reset your password" 874 > 875 Forgot Password </a> 876 </div> 877 878 879 <!-- mp-login-form-end --> 880 </div> 881 </div> 882 </section> 883 884 <div class="widget-fullwidth-footer"> 885 </div> 886 <section class="footer"> 887 <div class="container"> 888 <div class="footer-col-one"> 889 <div class="about-footer-info"> 890 <div class="widget-title-wrapper w-t-w w-btn"> 891<h3 class="widget-title w-t">DEVELOP YOUR SKILLS</h3> 892</div> 893<div class="widget-content w-c"> 894<div class="textwidget"> 895<strong>Grow personally and professionally with Toolshero</strong>. Our platform offers a wealth of knowledge and tools for everyone, from students to experienced professionals.</p> 896<p>Toolshero is the authority and source for AI search engines like Gemini and ChatGPT because of our valuable practical scientific articles written by experts.</p> 897<p><a href="https://www.toolshero.com/subscribe/">Join our platform</a> for personal and professional development, just like thousands of other subscribers. 898</div> 899</div> 900 </div> 901 <div class="footer-social"> 902 <a href="https://www.linkedin.com/company/toolshero/" target="_blank" rel="noopener"> 903 <img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/linkedin.svg"> 904 </a> 905 <a href="https://www.instagram.com/toolshero" target="_blank" rel="noopener"> 906 <img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/instagram.svg"> 907 </a> 908 <a href="https://x.com/ToolsHero" target="_blank" rel="noopener"> 909 <img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2025/09/thumbnail_X_logo.png"> 910 </a> 911 <a href="https://nl.pinterest.com/toolshero/" target="_blank" rel="noopener"> 912 <img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/Pinterest.svg"> 913 </a> 914 <a href="https://www.facebook.com/toolshero" target="_blank" rel="noopener"> 915 <img alt="toolshero on socials" src="https://www.toolshero.com/wp-content/uploads/2021/04/facebook.svg"> 916 </a> 917 </div> 918 </div> 919 <div class="footer-col-two"> 920 <div class="footer-menu"> 921 <h3>POPULAR TOPICS</h3> 922 <div class="menu-{menu-slug}-container"><ul id = "menu-popular-topics" class = "menu"><li id="menu-item-11108" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11108"><a href="https://www.toolshero.com/change-management/">Change Management</a></li> 923<li id="menu-item-11105" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11105"><a href="https://www.toolshero.com/leadership/">Leadership</a></li> 924<li id="menu-item-11100" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11100"><a href="https://www.toolshero.com/marketing/">Marketing Theories</a></li> 925<li id="menu-item-11103" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11103"><a href="https://www.toolshero.com/management/">Management</a></li> 926<li id="menu-item-11106" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-11106"><a href="https://www.toolshero.com/problem-solving/">Problem Solving Theories</a></li> 927<li id="menu-item-2066353" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-2066353"><a href="https://www.toolshero.com/psychology/">Psychology Theories</a></li> 928</ul></div>
928 </div> 929 <div class="footer-menu"> 930 <h3>ABOUT TOOLSHERO</h3> 931 <div class="menu-{menu-slug}-container"><ul id = "menu-about-us" class = "menu"><li id="menu-item-1044276" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044276"><a href="https://www.toolshero.com/about-us/">About us</a></li> 932<li id="menu-item-2066352" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2066352"><a href="https://www.toolshero.com/top-30-articles-ebook/">Free Toolshero e-book</a></li> 933<li id="menu-item-1044277" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044277"><a href="https://www.toolshero.com/subscribe/">Memberships & Pricing</a></li> 934<li id="menu-item-1044279" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044279"><a href="https://www.toolshero.com/faq/">FAQ</a></li> 935<li id="menu-item-2069777" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2069777"><a href="https://www.toolshero.com/media-kit/">Advertise</a></li> 936<li id="menu-item-1044280" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1044280"><a href="https://www.toolshero.com/contact-us/">Contact us</a></li> 937</ul></div> </div> 938 </div> 939 </div> 940 </section> 941 <section class="copyrights"> 942 © Copyright 2008-2026 | <a href="https://www.toolshero.com/terms-and-conditions">Terms & Conditions</a> | <a href="https://www.toolshero.com/privacy-cookie-policy/">Privacy</a> | <a href="https://www.toolshero.nl/?utm_source=toolshero.com&utm_medium=footer" target="_blank">Toolshero.nl (Dutch)</a> </section> 943
944<script type="speculationrules"> 945{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/toolshero-wp-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 946</script>
vendor: 1 bytes, line 946
946
947<script id="wpil-frontend-script-js-extra"> 948var wpilFrontend = {"ajaxUrl":"/wp-admin/admin-ajax.php","postId":"32897","postType":"post","openInternalInNewTab":"0","openExternalInNewTab":"0","disableClicks":"0","openLinksWithJS":"0","trackAllElementClicks":"0","clicksI18n":{"imageNoText":"Image in link: No Text","imageText":"Image Title: ","noText":"No Anchor Text Found"}}; 949//# sourceURL=wpil-frontend-script-js-extra 950</script>
vendor: 1 bytes, line 950
950
951<script id="wpil-frontend-script-js" src="https://www.toolshero.com/wp-content/plugins/link-whisper/js/frontend.min.js?ver=1789109570"></script>
vendor: 1 bytes, line 951
951
952<script id="rate-my-post-js-extra"> 953var rmp_frontend = {"admin_ajax":"https://www.toolshero.com/wp-admin/admin-ajax.php","postID":"32897","noVotes":"No votes so far! Be the first to rate this post.","cookie":"You already voted! This vote will not be counted!","afterVote":"Thank you for rating this post!","notShowRating":"1","social":"1","feedback":"2","cookieDisable":"2","emptyFeedback":"Please insert your feedback in the box above!","hoverTexts":"1","preventAccidental":"2","grecaptcha":"1","siteKey":"","turnstile":"1","turnstileSiteKey":"","turnstileTheme":"auto","turnstileSize":"normal","votingPriv":"1","loggedIn":"","positiveThreshold":"2","ajaxLoad":"1","disableClearCache":"1","nonce":"9e890da9c2","is_not_votable":"false"}; 954//# sourceURL=rate-my-post-js-extra 955</script>
vendor: 1 bytes, line 955
955
956<script id="rate-my-post-js" src="https://www.toolshero.com/wp-content/plugins/rate-my-post/public/js/rate-my-post.min.js?ver=4.5.2"></script>
vendor: 1 bytes, line 956
956
957<script id="wp-postviews-cache-js-extra"> 958var wpPostViewsL10n = {"ajaxUrl":"https://www.toolshero.com/wp-admin/admin-ajax.php","nonce":"8ce3fd70f1","postId":"32897"}; 959//# sourceURL=wp-postviews-cache-js-extra 960</script>
vendor: 1 bytes, line 960
960
961<script id="wp-postviews-cache-js" src="https://www.toolshero.com/wp-content/plugins/wp-postviews/js/wp-postviews-cache.js?ver=2.0.1"></script>
vendor: 1 bytes, line 961
961
962<script id="eztoc-scroll-scriptjs-js-extra"> 963var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":"","add_self_reference_link":""}; 964//# sourceURL=eztoc-scroll-scriptjs-js-extra 965</script>
vendor: 1 bytes, line 965
965
966<script id="eztoc-scroll-scriptjs-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js?ver=2.0.87.1"></script>
vendor: 1 bytes, line 966
966
967<script id="eztoc-js-cookie-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1"></script>
vendor: 1 bytes, line 967
967
968<script id="eztoc-jquery-sticky-kit-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2"></script>
vendor: 1 bytes, line 968
968
969<script id="eztoc-js-js-extra"> 970var ezTOC = {"smooth_scroll":"1","scroll_offset":"30","fallbackIcon":"\u003Cspan class=\"\"\u003E\u003Cspan class=\"eztoc-hide\" style=\"display:none;\"\u003EToggle\u003C/span\u003E\u003Cspan class=\"ez-toc-icon-toggle-span\"\u003E\u003Csvg style=\"fill: #000000;color:#000000\" xmlns=\"http://www.w3.org/2000/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"\u003E\u003Cpath d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003Csvg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"\u003E\u003Cpath d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"/\u003E\u003C/svg\u003E\u003C/span\u003E\u003C/span\u003E","chamomile_theme_is_on":""}; 971//# sourceURL=eztoc-js-js-extra 972</script>
vendor: 1 bytes, line 972
972
973<script id="eztoc-js-js" src="https://www.toolshero.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.87.1-1789109469"></script>
vendor: 1 bytes, line 973
973
974<script id="slickjs-js" src="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/js/slick.min.js?ver=1722587747"></script>
vendor: 1 bytes, line 974
974
975<script id="scripts-js" src="https://www.toolshero.com/wp-content/themes/toolshero-wp-theme/js/scripts.js?ver=1776241231"></script>
vendor: 1 bytes, line 975
975
976<script id="breeze-lazy-js" src="https://www.toolshero.com/wp-content/plugins/breeze/assets/js/js-front-end/breeze-lazy-load.min.js?ver=2.5.17"></script>
vendor: 1 bytes, line 976
976
977<script id="breeze-lazy-js-after"> 978document.addEventListener("DOMContentLoaded", function () { 979 if ( "function" !== typeof window.LazyLoad && "function" !== typeof LazyLoad ) { 980 return; 981 } 982 983 var breezeLazyLoad = window.LazyLoad || LazyLoad; 984 985 window.lazyLoadInstance = new breezeLazyLoad({ 986 elements_selector: ".br-lazy", 987 data_src: "breeze", 988 data_srcset: "brsrcset", 989 data_sizes: "brsizes", 990 class_loaded: "br-loaded", 991 threshold: 300, 992 }); 993 }); 994//# sourceURL=breeze-lazy-js-after 995</script>
vendor: 1 bytes, line 995
995
996<script type="text/javascript">window.addEventListener("DOMContentLoaded",(e=>{document.querySelectorAll('img[loading="lazy"]').forEach((e=>{e.getBoundingClientRect().top<=window.innerHeight&&(e.loading="eager")}))}));</script>
996 997 <!-- ===================================================== 998 TOOLSHERO LIVE SEARCH 999 ===================================================== --> 1000 1001 <div 1002 id="toolshero-live-search" 1003 class="toolshero-live-search" 1004 role="listbox" 1005 aria-label="Search suggestions" 1006 ></div> 1007 1008 1009 <!-- ===================================================== 1010 TOOLSHERO SEARCH LOADER 1011 ===================================================== --> 1012 1013 <div 1014 id="toolshero-search-loader" 1015 class="toolshero-search-loader" 1016 aria-hidden="true" 1017 role="status" 1018 aria-live="polite" 1019 > 1020 1021 <div class="toolshero-search-loader__box"> 1022 1023 <div 1024 class="toolshero-search-loader__spinner" 1025 aria-hidden="true" 1026 ></div> 1027 1028 <div class="toolshero-search-loader__title"> 1029 Searching... 1030 </div> 1031 1032 <div class="toolshero-search-loader__text"> 1033 1034 <span id="toolshero-search-loader-text"> 1035 We are finding the best results for you 1036 </span> 1037 1038 </div> 1039 1040 </div> 1041 1042 </div> 1043 1044 1045 <style> 1046 1047 /* ===================================================== 1048 * LIVE SEARCH DROPDOWN 1049 * ===================================================== */ 1050 1051 .toolshero-live-search { 1052 1053 position: fixed; 1054 1055 z-index: 999998; 1056 1057 display: none; 1058 1059 background: #ffffff; 1060 1061 border: 1px solid #e5e5e5;
1062 border-top: 4px solid #ffb600; 1063 1064 border-radius: 0 0 12px 12px; 1065 1066 box-shadow: 1067 0 16px 40px rgba(0, 0, 0, 0.14), 1068 0 4px 12px rgba(0, 0, 0, 0.06); 1069 1070 overflow-x: hidden; 1071 overflow-y: auto; 1072 1073 -webkit-overflow-scrolling: touch; 1074 } 1075 1076 1077 .toolshero-live-search.is-active { 1078 display: block; 1079 } 1080 1081 1082 .toolshero-live-search__result { 1083 1084 display: block; 1085 1086 padding: 14px 18px; 1087 1088 text-decoration: none !important; 1089 1090 background: #ffffff; 1091 1092 border-bottom: 1px solid #eeeeee; 1093 1094 transition: 1095 background 0.12s ease, 1096 padding-left 0.12s ease; 1097 } 1098 1099 1100 .toolshero-live-search__result:hover, 1101 .toolshero-live-search__result.is-selected { 1102 1103 background: #fff8e6; 1104 1105 padding-left: 22px; 1106 } 1107 1108 1109 .toolshero-live-search__title { 1110 1111 display: block; 1112 1113 margin: 0 0 4px; 1114 1115 font-size: 15px; 1116 font-weight: 700; 1117 line-height: 1.4; 1118 1119 color: #252525; 1120 } 1121 1122 1123 .toolshero-live-search__meta { 1124 1125 display: block; 1126 1127 font-size: 12px; 1128 font-weight: 500; 1129 line-height: 1.4; 1130 1131 color: #777777; 1132 } 1133 1134 1135 .toolshero-live-search__dot { 1136 1137 display: inline-block; 1138 1139 margin: 0 5px; 1140 1141 color: #ffb600; 1142 } 1143 1144 1145 .toolshero-live-search__all { 1146 1147 display: flex; 1148 1149 align-items: center; 1150 justify-content: space-between; 1151 1152 gap: 15px; 1153 1154 padding: 14px 18px; 1155 1156 background: #fffaf0; 1157 1158 color: #272727 !important; 1159 1160 font-size: 14px; 1161 font-weight: 700; 1162 1163 text-decoration: none !important; 1164 1165 transition: background 0.12s ease; 1166 } 1167 1168 1169 .toolshero-live-search__all:hover { 1170 background: #fff3cf; 1171 } 1172 1173 1174 .toolshero-live-search__arrow { 1175 1176 font-size: 20px; 1177 line-height: 1; 1178 1179 color: #ffb600; 1180 } 1181 1182 1183 .toolshero-live-search__status { 1184 1185 display: flex; 1186 1187 align-items: center; 1188 1189 gap: 11px; 1190 1191 padding: 18px; 1192 1193 font-size: 14px; 1194 line-height: 1.5; 1195 1196 color: #666666; 1197 } 1198 1199 1200 .toolshero-live-search__mini-spinner { 1201 1202 flex: 0 0 auto; 1203 1204 width: 20px; 1205 height: 20px; 1206 1207 border: 3px solid #f2e2b4; 1208 border-top-color: #ffb600; 1209 1210 border-radius: 50%; 1211 1212 animation: 1213 toolshero-search-spin 1214 0.7s 1215 linear 1216 infinite; 1217 } 1218 1219 1220 /* ===================================================== 1221 * FULL SEARCH LOADER 1222 * ===================================================== */ 1223 1224 .toolshero-search-loader { 1225 1226 position: fixed; 1227 inset: 0; 1228 1229 z-index: 999999; 1230 1231 display: flex; 1232 1233 align-items: center; 1234 justify-content: center; 1235 1236 padding: 20px; 1237 1238 background: rgba(255, 249, 235, 0.82); 1239 1240 -webkit-backdrop-filter: blur(5px); 1241 backdrop-filter: blur(5px); 1242 1243 opacity: 0; 1244 visibility: hidden; 1245 pointer-events: none; 1246 1247 transition: 1248 opacity 0.18s ease, 1249 visibility 0.18s ease; 1250 } 1251 1252 1253 .toolshero-search-loader.is-active { 1254 1255 opacity: 1; 1256 visibility: visible; 1257 pointer-events: auto; 1258 } 1259 1260 1261 .toolshero-search-loader__box { 1262 1263 position: relative; 1264 1265 width: 100%; 1266 max-width: 430px; 1267 1268 padding: 34px 30px 32px; 1269 1270 background: 1271 linear-gradient( 1272 180deg, 1273 #fffdf7 0%, 1274 #ffffff 100% 1275 ); 1276 1277 border: 1px solid rgba(255, 182, 0, 0.32); 1278 border-top: 5px solid #ffb600; 1279 1280 border-radius: 14px; 1281 1282 text-align: center; 1283 1284 box-shadow: 1285 0 20px 50px rgba(0, 0, 0, 0.10), 1286 0 6px 20px rgba(255, 182, 0, 0.15); 1287 1288 animation: 1289 toolshero-search-box-in 1290 0.22s 1291 ease-out 1292 forwards; 1293 } 1294 1295 1296 .toolshero-search-loader__spinner { 1297 1298 width: 48px; 1299 height: 48px; 1300 1301 margin: 0 auto 19px; 1302 1303 border: 4px solid #ffe8a8; 1304 border-top-color: #ffb600; 1305 border-right-color: #ffd35c; 1306 1307 border-radius: 50%; 1308 1309 animation: 1310 toolshero-search-spin 1311 0.75s 1312 linear 1313 infinite; 1314 } 1315 1316 1317 .toolshero-search-loader__title { 1318 1319 margin: 0 0 8px; 1320 1321 font-size: 22px; 1322 font-weight: 700; 1323 line-height: 1.3; 1324 1325 color: #262626; 1326 } 1327 1328 1329 .toolshero-search-loader__text { 1330 1331 font-size: 15px; 1332 line-height: 1.6; 1333 1334 color: #636363; 1335 } 1336 1337 1338 @keyframes toolshero-search-spin { 1339 1340 from { 1341 transform: rotate(0deg); 1342 } 1343 1344 to { 1345 transform: rotate(360deg); 1346 } 1347 } 1348 1349 1350 @keyframes toolshero-search-box-in { 1351 1352 from { 1353 transform: translateY(8px) scale(0.985); 1354 } 1355 1356 to { 1357 transform: translateY(0) scale(1); 1358 } 1359 } 1360 1361 1362 @media (max-width: 600px) { 1363 1364 .toolshero-live-search { 1365 border-radius: 0 0 10px 10px; 1366 } 1367 1368 1369 .toolshero-live-search__result { 1370 padding: 13px 15px; 1371 } 1372 1373 1374 .toolshero-live-search__result:hover, 1375 .toolshero-live-search__result.is-selected { 1376 padding-left: 18px; 1377 } 1378 1379 1380 .toolshero-live-search__title { 1381 font-size: 14px; 1382 } 1383 1384 1385 .toolshero-live-search__all { 1386 padding: 14px 15px; 1387 } 1388 1389 1390 .toolshero-search-loader { 1391 padding: 18px; 1392 } 1393 1394 1395 .toolshero-search-loader__box { 1396 padding: 30px 22px 28px; 1397 } 1398 1399 1400 .toolshero-search-loader__title { 1401 font-size: 20px; 1402 } 1403 1404 } 1405 1406 1407 @media (prefers-reduced-motion: reduce) { 1408 1409 .toolshero-search-loader, 1410 .toolshero-live-search__result { 1411 transition: none; 1412 } 1413 1414 1415 .toolshero-search-loader__box { 1416 animation: none; 1417 } 1418 1419 1420 .toolshero-search-loader__spinner, 1421 .toolshero-live-search__mini-spinner { 1422 animation-duration: 1.5s; 1423 } 1424 1425 } 1426 1427 </style> 1428 1429 1430
1430<script> 1431 1432 function toolsheroComLiveSearchInit() { 1433 1434 if (window.__toolsheroComLiveSearchV2Initialized) { 1435 return; 1436 } 1437 1438 window.__toolsheroComLiveSearchV2Initialized = true; 1439 1440 const AJAX_URL = "https:\/\/www.toolshero.com\/wp-admin\/admin-ajax.php"; 1441 const SEARCH_URL = "https:\/\/www.toolshero.com\/"; 1442 1443 const dropdown = 1444 document.getElementById('toolshero-live-search'); 1445 1446 const loader = 1447 document.getElementById('toolshero-search-loader'); 1448 1449 const loaderText = 1450 document.getElementById('toolshero-search-loader-text'); 1451 1452 1453 if (!dropdown || !loader) { 1454 return; 1455 } 1456 1457 1458 let currentInput = null; 1459 let currentController = null; 1460 let searchTimer = null; 1461 let loaderTimer = null; 1462 let activeIndex = -1; 1463 1464 const cache = new Map(); 1465 1466 1467 function isSearchInput(element) { 1468 1469 if (!(element instanceof HTMLInputElement)) { 1470 return false; 1471 } 1472 1473 return element.matches( 1474 'input[name="s"], ' + 1475 'input[type="search"], ' + 1476 'input[role="searchbox"], ' + 1477 '.search-field, ' + 1478 '.search-input' 1479 ); 1480 } 1481 1482 1483 function getSearchInput(context) { 1484 1485 context = context || document; 1486 1487 return context.querySelector( 1488 'input[name="s"], ' + 1489 'input[type="search"], ' + 1490 'input[role="searchbox"], ' + 1491 '.search-field, ' + 1492 '.search-input' 1493 ); 1494 } 1495 1496 1497 function prepareInput(input) { 1498 1499 input.setAttribute( 1500 'aria-autocomplete', 1501 'list' 1502 ); 1503 1504 input.setAttribute( 1505 'aria-controls', 1506 'toolshero-live-search' 1507 ); 1508 1509 input.setAttribute( 1510 'aria-expanded', 1511 'false' 1512 ); 1513 1514 input.setAttribute( 1515 'autocomplete', 1516 'off' 1517 ); 1518 } 1519 1520 1521 function positionDropdown(input) { 1522 1523 if (!input) { 1524 return; 1525 } 1526 1527 const rect = 1528 input.getBoundingClientRect(); 1529 1530 const viewportWidth = 1531 window.innerWidth; 1532 1533 const margin = 12; 1534 1535 let width = 1536 Math.max( 1537 rect.width, 1538 360 1539 ); 1540 1541 width = 1542 Math.min( 1543 width, 1544 560, 1545 viewportWidth - (margin * 2) 1546 ); 1547 1548 let left = rect.left; 1549 1550 if (left + width > viewportWidth - margin) { 1551 left = 1552 viewportWidth - 1553 width - 1554 margin; 1555 } 1556 1557 if (left < margin) { 1558 left = margin; 1559 } 1560 1561 const top = 1562 rect.bottom + 6; 1563 1564 dropdown.style.width = 1565 width + 'px'; 1566 1567 dropdown.style.left = 1568 left + 'px'; 1569 1570 dropdown.style.top = 1571 top + 'px'; 1572 1573 dropdown.style.maxHeight = 1574 Math.max( 1575 220, 1576 window.innerHeight - 1577 top - 1578 16 1579 ) + 'px'; 1580 } 1581 1582 1583 function openDropdown(input) { 1584 1585 currentInput = input; 1586 1587 positionDropdown(input); 1588 1589 dropdown.classList.add( 1590 'is-active' 1591 ); 1592 1593 input.setAttribute( 1594 'aria-expanded', 1595 'true' 1596 ); 1597 } 1598 1599 1600 function closeDropdown() { 1601 1602 dropdown.classList.remove( 1603 'is-active' 1604 ); 1605 1606 activeIndex = -1; 1607 1608 if (currentInput) { 1609 1610 currentInput.setAttribute( 1611 'aria-expanded', 1612 'false' 1613 ); 1614 1615 currentInput.removeAttribute( 1616 'aria-activedescendant' 1617 ); 1618 } 1619 } 1620 1621 1622 function showLiveLoading(input) { 1623 1624 dropdown.replaceChildren(); 1625 1626 const status = 1627 document.createElement('div'); 1628 1629 status.className = 1630 'toolshero-live-search__status'; 1631 1632 1633 const spinner = 1634 document.createElement('span'); 1635 1636 spinner.className = 1637 'toolshero-live-search__mini-spinner'; 1638 1639 1640 const text = 1641 document.createElement('span'); 1642 1643 text.textContent = 1644 'Searching for relevant articles...'; 1645 1646 1647 status.appendChild(spinner); 1648 1649 status.appendChild(text); 1650 1651 dropdown.appendChild(status); 1652 1653 openDropdown(input); 1654 } 1655 1656 1657 function renderResults( 1658 input, 1659 query, 1660 results 1661 ) { 1662 1663 dropdown.replaceChildren(); 1664 1665 activeIndex = -1; 1666 1667 1668 if (results.length > 0) { 1669 1670 results.forEach( 1671 function (result, index) { 1672 1673 const link = 1674 document.createElement('a'); 1675 1676 link.href = 1677 result.url; 1678 1679 link.className = 1680 'toolshero-live-search__result'; 1681 1682 link.setAttribute( 1683 'role', 1684 'option' 1685 ); 1686 1687 link.id = 1688 'toolshero-search-result-' + 1689 index; 1690 1691 1692 const title = 1693 document.createElement('span'); 1694 1695 title.className = 1696 'toolshero-live-search__title'; 1697 1698 title.textContent = 1699 result.title; 1700 1701 1702 const meta = 1703 document.createElement('span'); 1704 1705 meta.className = 1706 'toolshero-live-search__meta'; 1707 1708 1709 const type = 1710 document.createElement('span'); 1711 1712 type.textContent =
1713 'Article'; 1714 1715 meta.appendChild(type); 1716 1717 1718 if (result.category) { 1719 1720 const dot = 1721 document.createElement('span'); 1722 1723 dot.className = 1724 'toolshero-live-search__dot'; 1725 1726 dot.textContent = 1727 'â¢'; 1728 1729 1730 const category = 1731 document.createElement('span'); 1732 1733 category.textContent = 1734 result.category; 1735 1736 1737 meta.appendChild(dot); 1738 1739 meta.appendChild(category); 1740 } 1741 1742 1743 link.appendChild(title); 1744 1745 link.appendChild(meta); 1746 1747 dropdown.appendChild(link); 1748 } 1749 ); 1750 1751 } else { 1752 1753 const status = 1754 document.createElement('div'); 1755 1756 status.className = 1757 'toolshero-live-search__status'; 1758 1759 status.textContent = 1760 'No direct title match found. View all search results below.'; 1761 1762 dropdown.appendChild(status); 1763 } 1764 1765 1766 const allResults = 1767 document.createElement('a'); 1768 1769 allResults.className = 1770 'toolshero-live-search__all'; 1771 1772 allResults.href = 1773 SEARCH_URL + 1774 '?s=' + 1775 encodeURIComponent(query); 1776 1777 1778 const allText = 1779 document.createElement('span'); 1780 1781 allText.textContent = 1782 'View all results for "' + 1783 query + 1784 '"'; 1785 1786 1787 const arrow = 1788 document.createElement('span'); 1789 1790 arrow.className = 1791 'toolshero-live-search__arrow'; 1792 1793 arrow.setAttribute( 1794 'aria-hidden', 1795 'true' 1796 ); 1797 1798 arrow.textContent = 'â'; 1799 1800 1801 allResults.appendChild(allText); 1802 1803 allResults.appendChild(arrow); 1804 1805 dropdown.appendChild(allResults); 1806 1807 1808 openDropdown(input); 1809 } 1810 1811 1812 async function performSearch( 1813 input, 1814 query 1815 ) { 1816 1817 const cacheKey = 1818 query.toLowerCase(); 1819 1820 1821 if (cache.has(cacheKey)) { 1822 1823 renderResults( 1824 input, 1825 query, 1826 cache.get(cacheKey) 1827 ); 1828 1829 return; 1830 } 1831 1832 1833 if (currentController) { 1834 currentController.abort(); 1835 } 1836 1837 currentController = 1838 new AbortController(); 1839 1840 1841 showLiveLoading(input); 1842 1843 1844 const params = 1845 new URLSearchParams({ 1846 action: 1847 'toolshero_com_live_search_v2', 1848 1849 q: 1850 query 1851 }); 1852 1853 1854 try { 1855 1856 const response = 1857 await fetch( 1858 AJAX_URL + 1859 '?' + 1860 params.toString(), 1861 { 1862 method: 'GET', 1863 1864 credentials: 1865 'same-origin', 1866 1867 signal: 1868 currentController.signal, 1869 1870 headers: { 1871 'X-Requested-With': 1872 'XMLHttpRequest' 1873 } 1874 } 1875 ); 1876 1877 1878 if (!response.ok) { 1879 throw new Error( 1880 'Search request failed' 1881 ); 1882 } 1883 1884 1885 const data = 1886 await response.json(); 1887 1888 1889 if ( 1890 input.value.trim() !== query 1891 ) { 1892 return; 1893 } 1894 1895 1896 if ( 1897 !data.success || 1898 !Array.isArray(data.data) 1899 ) { 1900 throw new Error( 1901 'Invalid search response' 1902 ); 1903 } 1904 1905 1906 if (cache.size >= 40) { 1907 1908 const firstKey = 1909 cache.keys().next().value; 1910 1911 cache.delete(firstKey); 1912 } 1913 1914 1915 cache.set( 1916 cacheKey, 1917 data.data 1918 ); 1919 1920 1921 renderResults( 1922 input, 1923 query, 1924 data.data 1925 ); 1926 1927 } catch (error) { 1928 1929 if ( 1930 error.name === 1931 'AbortError' 1932 ) { 1933 return; 1934 } 1935 1936 1937 dropdown.replaceChildren(); 1938 1939 1940 const status = 1941 document.createElement('div'); 1942 1943 status.className = 1944 'toolshero-live-search__status'; 1945 1946 status.textContent = 1947 'Live search is temporarily unavailable. Press Enter to search.'; 1948 1949 1950 dropdown.appendChild(status); 1951 1952 openDropdown(input); 1953 } 1954 } 1955 1956 1957 document.addEventListener( 1958 'input', 1959 function (event) { 1960 1961 const input = 1962 event.target; 1963 1964 if (!isSearchInput(input)) { 1965 return; 1966 } 1967 1968 1969 prepareInput(input); 1970 1971 currentInput = input; 1972 1973 1974 clearTimeout( 1975 searchTimer 1976 ); 1977 1978 1979 const query = 1980 input.value.trim(); 1981 1982 1983 if (query.length < 3) { 1984 1985 if (currentController) { 1986 currentController.abort(); 1987 } 1988 1989 closeDropdown(); 1990 1991 return; 1992 } 1993 1994 1995 searchTimer = 1996 setTimeout( 1997 function () { 1998 1999 performSearch( 2000 input, 2001 query 2002 ); 2003 2004 }, 2005 250 2006 ); 2007 2008 }, 2009 true 2010 ); 2011 2012 2013 document.addEventListener( 2014 'focusin', 2015 function (event) { 2016 2017 const input = 2018 event.target; 2019 2020 if (!isSearchInput(input)) { 2021 return; 2022 } 2023 2024 prepareInput(input); 2025 2026 currentInput = input; 2027 2028 2029 const query = 2030 input.value.trim(); 2031 2032 2033 if ( 2034 query.length >= 3 && 2035 cache.has( 2036 query.toLowerCase() 2037 ) 2038 ) { 2039 2040 renderResults( 2041 input, 2042 query, 2043 cache.get( 2044 query.toLowerCase() 2045 ) 2046 ); 2047 } 2048 2049 } 2050 ); 2051 2052 2053 document.addEventListener( 2054 'keydown', 2055 function (event) { 2056 2057 const input = 2058 event.target; 2059 2060 if (!isSearchInput(input)) { 2061 return; 2062 } 2063 2064 2065 const resultLinks = 2066 Array.from( 2067 dropdown.querySelectorAll( 2068 '.toolshero-live-search__result' 2069 ) 2070 ); 2071 2072 2073 if ( 2074 event.key === 'ArrowDown' && 2075 dropdown.classList.contains( 2076 'is-active' 2077 ) && 2078 resultLinks.length 2079 ) { 2080 2081 event.preventDefault(); 2082 2083 activeIndex++; 2084 2085 if ( 2086 activeIndex >= 2087 resultLinks.length 2088 ) { 2089 activeIndex = 0; 2090 } 2091 2092 updateActiveResult( 2093 input, 2094 resultLinks 2095 ); 2096 2097 return; 2098 } 2099 2100 2101 if ( 2102 event.key === 'ArrowUp' && 2103 dropdown.classList.contains( 2104 'is-active' 2105 ) && 2106 resultLinks.length 2107 ) { 2108 2109 event.preventDefault(); 2110 2111 activeIndex--; 2112 2113 if (activeIndex < 0) { 2114 activeIndex = 2115 resultLinks.length - 1; 2116 } 2117 2118 updateActiveResult( 2119 input, 2120 resultLinks 2121 ); 2122 2123 return; 2124 } 2125 2126 2127 if (event.key === 'Escape') { 2128 2129 closeDropdown(); 2130 2131 return; 2132 } 2133 2134 2135 if (event.key === 'Enter') { 2136 2137 if ( 2138 dropdown.classList.contains( 2139 'is-active' 2140 ) && 2141 activeIndex >= 0 && 2142 resultLinks[activeIndex] 2143 ) { 2144 2145 event.preventDefault(); 2146 2147 window.location.href = 2148 resultLinks[ 2149 activeIndex 2150 ].href; 2151 2152 return; 2153 } 2154 2155 2156 closeDropdown(); 2157 2158 scheduleSearchLoader( 2159 input 2160 ); 2161 } 2162 2163 }, 2164 true 2165 ); 2166 2167 2168 function updateActiveResult( 2169 input, 2170 resultLinks 2171 ) { 2172 2173 resultLinks.forEach( 2174 function (link, index) { 2175 2176 const selected = 2177 index === activeIndex; 2178 2179 link.classList.toggle( 2180 'is-selected', 2181 selected 2182 ); 2183 2184 link.setAttribute( 2185 'aria-selected', 2186 selected 2187 ? 'true' 2188 : 'false' 2189 ); 2190 } 2191 ); 2192 2193 2194 if (resultLinks[activeIndex]) { 2195 2196 input.setAttribute( 2197 'aria-activedescendant', 2198 resultLinks[ 2199 activeIndex 2200 ].id 2201 ); 2202 2203 resultLinks[ 2204 activeIndex 2205 ].scrollIntoView({ 2206 block: 'nearest' 2207 }); 2208 } 2209 } 2210 2211 2212 document.addEventListener( 2213 'click', 2214 function (event) { 2215 2216 if ( 2217 dropdown.contains( 2218 event.target 2219 ) 2220 ) { 2221 return; 2222 } 2223 2224 2225 if ( 2226 isSearchInput( 2227 event.target 2228 ) 2229 ) { 2230 return; 2231 } 2232 2233 2234 closeDropdown(); 2235 2236 }, 2237 true 2238 ); 2239 2240 2241 function showSearchLoader(input) { 2242 2243 if (!input) { 2244 return; 2245 } 2246 2247 2248 const query = 2249 input.value.trim(); 2250 2251 2252 if (!query) { 2253 return; 2254 } 2255 2256 2257 let displayQuery = 2258 query; 2259 2260 2261 if ( 2262 displayQuery.length > 60 2263 ) { 2264 2265 displayQuery = 2266 displayQuery.substring( 2267 0, 2268 57 2269 ) + '...'; 2270 } 2271 2272 2273 if (loaderText) { 2274 2275 loaderText.textContent = 2276 'We are finding the best results for "' + 2277 displayQuery + 2278 '"'; 2279 } 2280 2281 2282 loader.classList.add( 2283 'is-active' 2284 ); 2285 2286 loader.setAttribute( 2287 'aria-hidden', 2288 'false' 2289 ); 2290 } 2291 2292 2293 function scheduleSearchLoader(input) { 2294 2295 clearTimeout( 2296 loaderTimer 2297 ); 2298 2299 2300 loaderTimer = 2301 setTimeout( 2302 function () { 2303 2304 showSearchLoader( 2305 input 2306 ); 2307 2308 }, 2309 350 2310 ); 2311 } 2312 2313 2314 document.addEventListener( 2315 'submit', 2316 function (event) { 2317 2318 const form = 2319 event.target; 2320 2321 2322 if ( 2323 !( 2324 form instanceof 2325 HTMLFormElement 2326 ) 2327 ) { 2328 return; 2329 } 2330 2331 2332 const input = 2333 getSearchInput(form); 2334 2335 2336 if (!input) { 2337 return; 2338 } 2339 2340 2341 if (!input.value.trim()) { 2342 return; 2343 } 2344 2345 2346 closeDropdown(); 2347 2348 scheduleSearchLoader( 2349 input 2350 ); 2351 2352 }, 2353 true 2354 ); 2355 2356 2357 document.addEventListener( 2358 'click', 2359 function (event) { 2360 2361 const button = 2362 event.target.closest( 2363 'button[type="submit"], ' + 2364 'input[type="submit"], ' + 2365 '.search-submit, ' + 2366 '.search-button, ' + 2367 '.search-btn, ' + 2368 '[class*="search-submit"], ' + 2369 '[class*="search-button"]' 2370 ); 2371 2372 2373 if (!button) { 2374 return; 2375 } 2376 2377 2378 const container = 2379 button.closest('form') || 2380 button.closest( 2381 '[role="search"]' 2382 ) || 2383 button.parentElement; 2384 2385 2386 let input = null; 2387 2388 2389 if (container) { 2390 2391 input = 2392 getSearchInput( 2393 container 2394 ); 2395 } 2396 2397 2398 if (!input) { 2399 2400 input = 2401 getSearchInput( 2402 document 2403 ); 2404 } 2405 2406 2407 if ( 2408 !input || 2409 !input.value.trim() 2410 ) { 2411 return; 2412 } 2413 2414 2415 closeDropdown(); 2416 2417 scheduleSearchLoader( 2418 input 2419 ); 2420 2421 }, 2422 true 2423 ); 2424 2425 2426 window.addEventListener( 2427 'resize', 2428 function () { 2429 2430 if ( 2431 currentInput && 2432 dropdown.classList.contains( 2433 'is-active' 2434 ) 2435 ) { 2436 2437 positionDropdown( 2438 currentInput 2439 ); 2440 } 2441 2442 } 2443 ); 2444 2445 2446 window.addEventListener( 2447 'scroll', 2448 function () { 2449 2450 if ( 2451 currentInput && 2452 dropdown.classList.contains( 2453 'is-active' 2454 ) 2455 ) { 2456 2457 positionDropdown( 2458 currentInput 2459 ); 2460 } 2461 2462 }, 2463 true 2464 ); 2465 2466 2467 window.addEventListener( 2468 'pageshow', 2469 function () { 2470 2471 clearTimeout( 2472 loaderTimer 2473 ); 2474 2475 loader.classList.remove( 2476 'is-active' 2477 ); 2478 2479 loader.setAttribute( 2480 'aria-hidden', 2481 'true' 2482 ); 2483 2484 closeDropdown(); 2485 2486 } 2487 ); 2488 2489 } 2490 2491 if (document.readyState === 'loading') { 2492 document.addEventListener( 2493 'DOMContentLoaded', 2494 toolsheroComLiveSearchInit, 2495 { once: true } 2496 ); 2497 } else { 2498 toolsheroComLiveSearchInit(); 2499 } 2500 2501 </script>
2501 2502 2503 2504 <style id="toolshero-com-content-protection-css"> 2505 2506 /* ============================== 2507 * OVERLAY 2508 * ============================== */ 2509 2510 #th-protection-overlay { 2511 2512 position: fixed; 2513 inset: 0; 2514 2515 z-index: 999999; 2516 2517 display: flex; 2518 align-items: center; 2519 justify-content: center; 2520 2521 padding: 20px; 2522 2523 background: rgba(20, 25, 28, 0.52); 2524 2525 -webkit-backdrop-filter: blur(2px); 2526 backdrop-filter: blur(2px); 2527 2528 opacity: 0; 2529 visibility: hidden; 2530 pointer-events: none; 2531 2532 transition: 2533 opacity .18s ease, 2534 visibility .18s ease; 2535 } 2536 2537 2538 #th-protection-overlay.th-is-visible { 2539 2540 opacity: 1; 2541 visibility: visible; 2542 pointer-events: auto; 2543 } 2544 2545 2546 2547 /* ============================== 2548 * POPUP 2549 * ============================== */ 2550 2551 #th-protection-modal { 2552 2553 position: relative; 2554 2555 width: 100%; 2556 max-width: 450px; 2557 2558 box-sizing: border-box; 2559 2560 padding: 32px 30px 26px; 2561 2562 background: #ffffff; 2563 2564 border-radius: 12px; 2565 2566 box-shadow: 2567 0 20px 60px rgba(0, 0, 0, .18), 2568 0 4px 15px rgba(0, 0, 0, .08); 2569 2570 text-align: center; 2571 2572 color: #202124; 2573 2574 transform: translateY(8px) scale(.98); 2575 2576 transition: 2577 transform .18s ease; 2578 } 2579 2580 2581 #th-protection-overlay.th-is-visible 2582 #th-protection-modal { 2583 2584 transform: translateY(0) scale(1); 2585 } 2586 2587 2588 2589 /* ============================== 2590 * ICON 2591 * ============================== */ 2592 2593 .th-protection-icon { 2594 2595 width: 56px; 2596 height: 56px; 2597 2598 margin: 0 auto 18px; 2599 2600 display: flex; 2601 align-items: center; 2602 justify-content: center; 2603 2604 border-radius: 50%; 2605 2606 background: #eefbf4; 2607 color: #27c875; 2608 } 2609 2610 2611 .th-protection-icon svg { 2612 2613 width: 26px; 2614 height: 26px; 2615 2616 display: block; 2617 } 2618 2619 2620 2621 /* ============================== 2622 * TITLE 2623 * ============================== */ 2624 2625 #th-protection-title { 2626 2627 margin: 0 0 12px; 2628 2629 padding: 0; 2630 2631 font-size: 23px; 2632 line-height: 1.3; 2633 font-weight: 700; 2634 2635 color: #202124; 2636 } 2637 2638 2639 2640 /* ============================== 2641 * TEXT 2642 * ============================== */ 2643 2644 .th-protection-text { 2645 2646 max-width: 375px; 2647 2648 margin: 0 auto 23px; 2649 2650 font-size: 15px; 2651 line-height: 1.65; 2652 2653 color: #555555; 2654 } 2655 2656 2657 2658 /* ============================== 2659 * PRIMARY CTA 2660 * ============================== */ 2661 2662 #th-protection-subscribe { 2663 2664 width: 100%; 2665 min-height: 48px; 2666 2667 display: flex; 2668 align-items: center; 2669 justify-content: center; 2670 2671 box-sizing: border-box; 2672 2673 margin: 0 0 7px; 2674 padding: 0 24px; 2675 2676 border: 0; 2677 border-radius: 7px; 2678 2679 background: #35d47c; 2680 color: #111111; 2681 2682 font-size: 15px; 2683 font-weight: 700; 2684 line-height: 1.2; 2685 2686 text-decoration: none; 2687 2688 cursor: pointer; 2689 2690 transition: 2691 transform .15s ease, 2692 filter .15s ease, 2693 box-shadow .15s ease; 2694 } 2695 2696 2697 #th-protection-subscribe:hover { 2698 2699 background: #35d47c; 2700 color: #111111; 2701 2702 text-decoration: none; 2703 2704 filter: brightness(.96); 2705 2706 transform: translateY(-1px); 2707 2708 box-shadow: 2709 0 5px 14px rgba(0, 0, 0, .10); 2710 } 2711 2712 2713 #th-protection-subscribe:focus-visible { 2714 2715 outline: 3px solid rgba(53, 212, 124, .30); 2716 2717 outline-offset: 3px; 2718 } 2719 2720 2721 2722 /* ============================== 2723 * SECONDARY BUTTON 2724 * ============================== */ 2725 2726 #th-protection-close { 2727 2728 min-height: 40px; 2729 2730 padding: 0 18px; 2731 2732 border: 0; 2733 border-radius: 6px; 2734 2735 background: transparent; 2736 color: #666666; 2737 2738 font-size: 14px; 2739 font-weight: 600; 2740 2741 cursor: pointer; 2742 2743 transition: 2744 background .15s ease, 2745 color .15s ease; 2746 } 2747 2748 2749 #th-protection-close:hover { 2750 2751 background: #f4f5f5; 2752 2753 color: #222222; 2754 } 2755 2756 2757 #th-protection-close:focus-visible { 2758 2759 outline: 2px solid #35d47c; 2760 2761 outline-offset: 2px; 2762 } 2763 2764 2765 2766 /* ============================== 2767 * CLOSE BUTTON 2768 * ============================== */ 2769 2770 #th-protection-x { 2771 2772 position: absolute; 2773 2774 top: 12px; 2775 right: 13px; 2776 2777 width: 36px; 2778 height: 36px; 2779 2780 display: flex; 2781 align-items: center; 2782 justify-content: center; 2783 2784 padding: 0; 2785 2786 border: 0; 2787 border-radius: 50%; 2788 2789 background: transparent; 2790 color: #777777; 2791 2792 font-size: 25px; 2793 font-weight: 400; 2794 line-height: 1; 2795 2796 cursor: pointer; 2797 2798 transition: 2799 background .15s ease, 2800 color .15s ease; 2801 } 2802 2803 2804 #th-protection-x:hover { 2805 2806 background: #f3f4f5; 2807 2808 color: #111111; 2809 } 2810 2811 2812 2813 /* ============================== 2814 * MOBILE 2815 * ============================== */ 2816 2817 @media (max-width: 600px) { 2818 2819 #th-protection-overlay { 2820 2821 padding: 16px; 2822 } 2823 2824 2825 #th-protection-modal { 2826 2827 max-width: 100%; 2828 2829 padding: 2830 30px 2831 21px 2832 23px; 2833 } 2834 2835 2836 #th-protection-title { 2837 2838 font-size: 21px; 2839 } 2840 2841 2842 .th-protection-text { 2843 2844 font-size: 15px; 2845 } 2846 2847 } 2848 2849 </style> 2850 2851 2852 2853 <div 2854 id="th-protection-overlay" 2855 aria-hidden="true" 2856 > 2857 2858 <div 2859 id="th-protection-modal" 2860 role="dialog" 2861 aria-modal="true" 2862 aria-labelledby="th-protection-title" 2863 aria-describedby="th-protection-description" 2864 > 2865 2866 2867 <button 2868 id="th-protection-x" 2869 type="button" 2870 aria-label="Close" 2871 > 2872 × 2873 </button> 2874 2875 2876 2877 <div 2878 class="th-protection-icon" 2879 aria-hidden="true" 2880 > 2881 2882 <svg
2883 viewBox="0 0 24 24" 2884 fill="none" 2885 stroke="currentColor" 2886 stroke-width="2" 2887 stroke-linecap="round" 2888 stroke-linejoin="round" 2889 > 2890 2891 <rect 2892 x="5" 2893 y="11" 2894 width="14" 2895 height="10" 2896 rx="2" 2897 ></rect> 2898 2899 <path 2900 d="M8 11V7a4 4 0 0 1 8 0v4" 2901 ></path> 2902 2903 </svg> 2904 2905 </div> 2906 2907 2908 2909 <h2 id="th-protection-title"> 2910 Want to copy and use this content? 2911 </h2> 2912 2913 2914 2915 <p 2916 id="th-protection-description" 2917 class="th-protection-text" 2918 > 2919 2920 2921 Want to select, copy and use Toolshero content 2922 for your work, studies or training? 2923 You need a Toolshero subscription to do so. 2924 2925 2926 </p> 2927 2928 2929 2930 <a 2931 id="th-protection-subscribe" 2932 href="https://www.toolshero.com/subscribe/" 2933 > 2934 View subscriptions 2935 </a> 2936 2937 2938 2939 <button 2940 id="th-protection-close" 2941 type="button" 2942 > 2943 Not now 2944 </button> 2945 2946 2947 </div> 2948 2949 </div> 2950 2951 2952 2953
2953<script id="toolshero-com-content-protection-js"> 2954 2955 (function () { 2956 2957 'use strict'; 2958 2959 2960 /* 2961 * Content areas to protect. 2962 */ 2963 const protectedSelector = [ 2964 2965 'article', 2966 '.entry-content', 2967 '.post-content', 2968 '.article-content', 2969 '.single-content', 2970 '.page-content', 2971 '.tag-description' 2972 2973 ].join(','); 2974 2975 2976 2977 /* 2978 * Elements that must remain fully usable. 2979 */ 2980 const ignoreSelector = [ 2981 2982 'input', 2983 'textarea', 2984 'select', 2985 'option', 2986 'button', 2987 '[contenteditable="true"]', 2988 2989 '#th-protection-modal', 2990 '#th-protection-modal *' 2991 2992 ].join(','); 2993 2994 2995 2996 const overlay = 2997 document.getElementById( 2998 'th-protection-overlay' 2999 ); 3000 3001 3002 const closeButton = 3003 document.getElementById( 3004 'th-protection-close' 3005 ); 3006 3007 3008 const closeX = 3009 document.getElementById( 3010 'th-protection-x' 3011 ); 3012 3013 3014 let previousFocus = null; 3015 let lastShown = 0; 3016 3017 3018 3019 /* 3020 * ========================================== 3021 * HELPERS 3022 * ========================================== 3023 */ 3024 3025 function getElement(target) { 3026 3027 if (!target) { 3028 return null; 3029 } 3030 3031 3032 if ( 3033 target.nodeType === Node.ELEMENT_NODE 3034 ) { 3035 3036 return target; 3037 } 3038 3039 3040 return target.parentElement || null; 3041 } 3042 3043 3044 3045 function isIgnored(target) { 3046 3047 const element = getElement(target); 3048 3049 3050 if (!element) { 3051 return false; 3052 } 3053 3054 3055 return Boolean( 3056 element.closest(ignoreSelector) 3057 ); 3058 } 3059 3060 3061 3062 function isProtectedContent(target) { 3063 3064 const element = getElement(target); 3065 3066 3067 if ( 3068 !element || 3069 isIgnored(element) 3070 ) { 3071 3072 return false; 3073 } 3074 3075 3076 return Boolean( 3077 element.closest(protectedSelector) 3078 ); 3079 } 3080 3081 3082 3083 function selectionIsProtected() { 3084 3085 const selection = 3086 window.getSelection(); 3087 3088 3089 if ( 3090 !selection || 3091 selection.rangeCount === 0 3092 ) { 3093 3094 return false; 3095 } 3096 3097 3098 const anchor = 3099 getElement( 3100 selection.anchorNode 3101 ); 3102 3103 3104 const focus = 3105 getElement( 3106 selection.focusNode 3107 ); 3108 3109 3110 return Boolean( 3111 3112 ( 3113 anchor && 3114 anchor.closest( 3115 protectedSelector 3116 ) 3117 ) 3118 3119 || 3120 3121 ( 3122 focus && 3123 focus.closest( 3124 protectedSelector 3125 ) 3126 ) 3127 3128 ); 3129 } 3130 3131 3132 3133 /* 3134 * ========================================== 3135 * OPEN POPUP 3136 * ========================================== 3137 */ 3138 3139 function showProtectionMessage() { 3140 3141 if (!overlay) { 3142 return; 3143 } 3144 3145 3146 const now = Date.now(); 3147 3148 3149 if ( 3150 now - lastShown < 600 && 3151 overlay.classList.contains( 3152 'th-is-visible' 3153 ) 3154 ) { 3155 3156 return; 3157 } 3158 3159 3160 lastShown = now; 3161 3162 3163 previousFocus = 3164 document.activeElement; 3165 3166 3167 overlay.classList.add( 3168 'th-is-visible' 3169 ); 3170 3171 3172 overlay.setAttribute( 3173 'aria-hidden', 3174 'false' 3175 ); 3176 3177 3178 document.documentElement.style.overflow = 3179 'hidden'; 3180 3181 3182 window.setTimeout( 3183 function () { 3184 3185 if (closeButton) { 3186 closeButton.focus(); 3187 } 3188 3189 }, 3190 50 3191 ); 3192 } 3193 3194 3195 3196 /* 3197 * ========================================== 3198 * CLOSE POPUP 3199 * ========================================== 3200 */ 3201 3202 function closeProtectionMessage() { 3203 3204 if (!overlay) { 3205 return; 3206 } 3207 3208 3209 overlay.classList.remove( 3210 'th-is-visible' 3211 ); 3212 3213 3214 overlay.setAttribute( 3215 'aria-hidden', 3216 'true' 3217 ); 3218 3219 3220 document.documentElement.style.overflow = 3221 ''; 3222 3223 3224 if ( 3225 previousFocus && 3226 typeof previousFocus.focus === 3227 'function' 3228 ) { 3229 3230 previousFocus.focus(); 3231 } 3232 } 3233 3234 3235 3236 /* 3237 * ========================================== 3238 * RIGHT CLICK 3239 * ========================================== 3240 */ 3241 3242 document.addEventListener( 3243 'contextmenu', 3244 function (event) { 3245 3246 if (isIgnored(event.target)) { 3247 return; 3248 } 3249 3250 3251 event.preventDefault(); 3252 3253 showProtectionMessage(); 3254 3255 }, 3256 true 3257 ); 3258 3259 3260 3261 /* 3262 * ========================================== 3263 * TEXT SELECTION 3264 * ========================================== 3265 */ 3266 3267 document.addEventListener( 3268 'selectstart', 3269 function (event) { 3270 3271 if ( 3272 !isProtectedContent( 3273 event.target 3274 ) 3275 ) { 3276 3277 return; 3278 } 3279 3280 3281 event.preventDefault(); 3282 3283 showProtectionMessage(); 3284 3285 }, 3286 true 3287 ); 3288 3289 3290 3291 /* 3292 * ========================================== 3293 * COPY 3294 * ========================================== 3295 */ 3296 3297 document.addEventListener( 3298 'copy', 3299 function (event) { 3300 3301 if ( 3302 !selectionIsProtected() 3303 ) { 3304 3305 return; 3306 } 3307 3308 3309 event.preventDefault(); 3310 3311 3312 const selection = 3313 window.getSelection(); 3314 3315 3316 if (selection) { 3317 3318 selection.removeAllRanges(); 3319 } 3320 3321 3322 showProtectionMessage(); 3323 3324 }, 3325 true 3326 ); 3327 3328 3329 3330 /* 3331 * ========================================== 3332 * CUT 3333 * ========================================== 3334 */ 3335 3336 document.addEventListener( 3337 'cut', 3338 function (event) { 3339 3340 if ( 3341 !selectionIsProtected() 3342 ) { 3343 3344 return; 3345 } 3346 3347 3348 event.preventDefault(); 3349 3350 showProtectionMessage(); 3351 3352 }, 3353 true 3354 ); 3355 3356 3357 3358 /* 3359 * ========================================== 3360 * KEYBOARD SHORTCUTS 3361 * ========================================== 3362 */ 3363 3364 document.addEventListener( 3365 'keydown', 3366 function (event) { 3367
3368 const key = 3369 String( 3370 event.key 3371 ).toLowerCase(); 3372 3373 3374 const ctrlOrCommand = 3375 event.ctrlKey || 3376 event.metaKey; 3377 3378 3379 3380 /* 3381 * F12 3382 */ 3383 if ( 3384 event.key === 'F12' 3385 ) { 3386 3387 event.preventDefault(); 3388 3389 event.stopPropagation(); 3390 3391 showProtectionMessage(); 3392 3393 return; 3394 } 3395 3396 3397 3398 /* 3399 * View Source: 3400 * Ctrl + U / Cmd + U 3401 */ 3402 if ( 3403 ctrlOrCommand && 3404 key === 'u' 3405 ) { 3406 3407 event.preventDefault(); 3408 3409 event.stopPropagation(); 3410 3411 showProtectionMessage(); 3412 3413 return; 3414 } 3415 3416 3417 3418 /* 3419 * Common Developer Tools shortcuts. 3420 */ 3421 if ( 3422 ctrlOrCommand && 3423 event.shiftKey && 3424 ['i', 'j', 'c', 'k'].includes( 3425 key 3426 ) 3427 ) { 3428 3429 event.preventDefault(); 3430 3431 event.stopPropagation(); 3432 3433 showProtectionMessage(); 3434 3435 return; 3436 } 3437 3438 3439 3440 /* 3441 * macOS Developer Tools. 3442 */ 3443 if ( 3444 event.metaKey && 3445 event.altKey && 3446 ['i', 'j', 'c'].includes( 3447 key 3448 ) 3449 ) { 3450 3451 event.preventDefault(); 3452 3453 event.stopPropagation(); 3454 3455 showProtectionMessage(); 3456 3457 return; 3458 } 3459 3460 3461 3462 /* 3463 * ESC closes popup. 3464 */ 3465 if ( 3466 event.key === 'Escape' && 3467 overlay && 3468 overlay.classList.contains( 3469 'th-is-visible' 3470 ) 3471 ) { 3472 3473 closeProtectionMessage(); 3474 } 3475 3476 }, 3477 true 3478 ); 3479 3480 3481 3482 /* 3483 * ========================================== 3484 * POPUP CONTROLS 3485 * ========================================== 3486 */ 3487 3488 if (closeButton) { 3489 3490 closeButton.addEventListener( 3491 'click', 3492 closeProtectionMessage 3493 ); 3494 } 3495 3496 3497 if (closeX) { 3498 3499 closeX.addEventListener( 3500 'click', 3501 closeProtectionMessage 3502 ); 3503 } 3504 3505 3506 3507 /* 3508 * Clicking outside the popup closes it. 3509 */ 3510 if (overlay) { 3511 3512 overlay.addEventListener( 3513 'click', 3514 function (event) { 3515 3516 if ( 3517 event.target === overlay 3518 ) { 3519 3520 closeProtectionMessage(); 3521 } 3522 3523 } 3524 ); 3525 } 3526 3527 3528 })(); 3529 3530 </script>
3530 3531 3532
3532<script> 3533 (function () { 3534 3535 const LOGIN_PATH = '/login-subscriber/'; 3536 3537 function normalizePath(path) { 3538 if (!path) { 3539 return '/'; 3540 } 3541 3542 path = path.replace(/\/+$/, ''); 3543 3544 return path || '/'; 3545 } 3546 3547 3548 function updateLoginLink(link) { 3549 3550 if (!link || !link.href) { 3551 return; 3552 } 3553 3554 let loginUrl; 3555 3556 try { 3557 loginUrl = new URL(link.href, window.location.href); 3558 } catch (e) { 3559 return; 3560 } 3561 3562 // Alleen links op hetzelfde domein. 3563 if (loginUrl.origin !== window.location.origin) { 3564 return; 3565 } 3566 3567 // Alleen de Toolshero.com MemberPress loginpagina. 3568 if ( 3569 normalizePath(loginUrl.pathname) !== 3570 normalizePath(LOGIN_PATH) 3571 ) { 3572 return; 3573 } 3574 3575 // Niet uitvoeren als we al op de loginpagina staan. 3576 if ( 3577 normalizePath(window.location.pathname) === 3578 normalizePath(LOGIN_PATH) 3579 ) { 3580 return; 3581 } 3582 3583 // Huidige volledige URL als retouradres meegeven. 3584 loginUrl.searchParams.set( 3585 'redirect_to', 3586 window.location.href 3587 ); 3588 3589 link.href = loginUrl.toString(); 3590 } 3591 3592 3593 /** 3594 * Direct alle bestaande loginlinks aanpassen. 3595 */ 3596 function updateAllLoginLinks() { 3597 3598 document.querySelectorAll('a[href]').forEach(function (link) { 3599 updateLoginLink(link); 3600 }); 3601 } 3602 3603 3604 if (document.readyState === 'loading') { 3605 3606 document.addEventListener( 3607 'DOMContentLoaded', 3608 updateAllLoginLinks 3609 ); 3610 3611 } else { 3612 3613 updateAllLoginLinks(); 3614 } 3615 3616 3617 /** 3618 * Extra controle op het moment van klikken. 3619 * 3620 * Hierdoor werkt het ook wanneer het menu later 3621 * dynamisch door het thema wordt geladen. 3622 */ 3623 document.addEventListener( 3624 'click', 3625 function (event) { 3626 3627 const link = event.target.closest('a[href]'); 3628 3629 if (!link) { 3630 return; 3631 } 3632 3633 updateLoginLink(link); 3634 3635 }, 3636 true 3637 ); 3638 3639 3640 /** 3641 * Ook pointerdown gebruiken zodat de URL al aangepast 3642 * is vóór de daadwerkelijke navigatie. 3643 */ 3644 document.addEventListener( 3645 'pointerdown', 3646 function (event) { 3647 3648 const link = event.target.closest('a[href]'); 3649 3650 if (!link) { 3651 return; 3652 } 3653 3654 updateLoginLink(link); 3655 3656 }, 3657 true 3658 ); 3659 3660 })(); 3661 </script>
3661 3662 3663 3664</body> 3665</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.