New check
71Caution
BUS

this is bussin — looks legit

Final verdict: Valid

This site looks like the real deal. You are probably good to go, but never share passwords you did not mean to.

URLOct 25, 2026 • 03:15
Share this verdict
8
good
3
warning
0
bad

Scan coverage

https://hackclub.enterprise.slack.com/ • 10/25/2026, 3:15:47 AM • HTTP 200

✓ Static HTML: completed✓ Security Headers: completed✓ Redirect Inspection: completed✓ Tracker Detection: completed✓ Privacy Policy: completed✓ Terms of Service: completed○ Browser Behavior: unavailable
Risk vectors & defense depthConfidence: 96% · Zero-trust baseline
Transport & TLS93%
Guarded
Content & Scripts100%
Clean
Telemetry Surface90%
Moderate
Legal Governance100%
Transparent

Key security observations

TransportTLS encryption strictly enforced with long-duration HSTS
Forms & InputNo credential or password input fields detected on page
Telemetry2 third-party trackers or analytics services detected
GovernancePrivacy documentation does not disclose the trackers found on the page
GuidanceThis site looks like the real deal. You are probably good to go, but never share passwords you did not mean to.

Actions that would improve score

Deploy Content-Security-Policy with strict script-src and frame-ancestors+7 pts
Update Privacy Policy to explicitly disclose third-party analytics partners+8 pts

How the score was calculated

Baseline50
Good findings (8)+46
Warnings & issues (3)-25
Final score71/100 · BUS
goodSecurity· HTTP Response
+6 pts → 56

HTTPS Transport Enabled

Traffic between your browser and this server is encrypted over TLS.

The final page URL is served over HTTPS (https://hackclub.enterprise.slack.com/).

Why it matters: Encryption prevents network eavesdroppers from intercepting your data or tampering with page content in transit.

Fix: Note that while HTTPS encrypts traffic, it does not verify whether the site's content or business is trustworthy.

goodSecurity· Static HTML
+6 pts → 62

No Credential Fields Detected

No password input fields were detected in the page HTML.

No <input type="password"> tags found in static HTML.

Why it matters: The page does not appear to solicit user account passwords.

Fix: None required.

warningSecurity· Static HTML
-12 pts → 50

Automatic Meta-Refresh Redirect

The page initiates an automatic redirect via an HTML meta tag.

Detected <meta http-equiv="refresh" content="0; URL=/?nojsmode=1">.

Why it matters: Meta-refresh tags are frequently used in phishing landing pages to rapidly bounce users to credential harvest pages.

Fix: Ensure the redirect destination is legitimate and expected.

warningSecurity· HTTP Header
-7 pts → 43

No Content Security Policy

No Content-Security-Policy header was sent by the server.

Content-Security-Policy header absent.

Why it matters: A CSP provides defense-in-depth against code injection and unauthorized framing.

Fix: Deploy a Content-Security-Policy header.

goodReputation & Domain· Domain Inspection
+6 pts → 49

Normal Domain Pattern

The domain uses a standard top-level domain and natural length.

Host 'hackclub.enterprise.slack.com' exhibits standard naming structure.

Why it matters: Domain structure conforms to typical human-selected naming conventions.

Fix: None required.

goodContent· Static HTML Content
+6 pts → 55

No Scam Keywords Detected

We did not find aggressive pressure tactics or typical prize scam language.

Zero tracked high-pressure scam keyword phrases matched.

Why it matters: The text does not show obvious automated scam indicators.

Fix: None required.

goodSecurity· HTTP Header
+6 pts → 61

Strict Transport Security (HSTS)

The site instructs browsers to only connect over HTTPS in the future.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload.

Why it matters: HSTS protects users against SSL-stripping and man-in-the-middle downgrade attacks.

Fix: Maintain HSTS configuration with includeSubDomains and preload.

goodSecurity· HTTP Header
+6 pts → 67

Clickjacking Protection Configured

The site controls whether it can be embedded inside iframes on other domains.

Framing restricted via X-Frame-Options: SAMEORIGIN.

Why it matters: Prevents clickjacking attacks where a malicious site disguises the page inside an invisible frame.

Fix: Framing defense properly active.

goodPolicies & Terms· Policy Analysis
+5 pts → 72

Privacy Policy Available

The site links to a readable Privacy Policy.

Fetched https://hackclub.enterprise.slack.com/privacy-policy (HTTP 200, 65605 bytes). Standard policy text retrieved.

Why it matters: Available policies allow visitors to understand data collection, terms of use, and legal rights.

Fix: Review the policy if you plan to share sensitive or personal information.

warningPolicies & Terms· Cross-Reference Analysis
-6 pts → 66

Observed Tracking Not Clearly Disclosed in Policy

External tracking scripts were observed, but the analyzed privacy policy does not explicitly mention cookies or advertising analytics.

Observed trackers (a.slack-edge.com, cdn.cookielaw.org) without explicit cookie/advertising disclosures in analyzed text.

Why it matters: Privacy regulations require sites to clearly disclose third-party tracking and analytics.

Fix: Check if cookie disclosures are located in a separate dedicated Cookie Policy.

goodPolicies & Terms· Policy Analysis
+5 pts → 71

Terms of Service Available

The site links to a readable Terms of Service.

Fetched https://hackclub.enterprise.slack.com/terms-of-service (HTTP 200, 65860 bytes). Standard policy text retrieved.

Why it matters: Available policies allow visitors to understand data collection, terms of use, and legal rights.

Fix: Review the policy if you plan to share sensitive or personal information.

Technical appendix

Security response headers

strict-transport-security: max-age=31536000; includeSubDomains; preload
x-frame-options: SAMEORIGIN
referrer-policy: no-referrer
server: cloudflare
terms & privacy check

The site links to a readable Privacy Policy.

Privacy Policy Available

The site links to a readable Privacy Policy.

Observed Tracking Not Clearly Disclosed in Policy

External tracking scripts were observed, but the analyzed privacy policy does not explicitly mention cookies or advertising analytics.

Terms of Service Available

The site links to a readable Terms of Service.

Source code
<!DOCTYPE html><html lang="en-US" class="" data-primer data-cdn="https://a.slack-edge.com/"><head><script>

(function () {
	
	var data;

	const MAX_CDN_FALLBACK = 2;
	let isReloading = false;

	function scanPageAssets() {
		var css = document.getElementsByTagName('link');
		var script = document.getElementsByTagName('script');
		var i;
		var j;

		
		var cdn_domain = 'slack-edge.com';

		
		var domains = location.hostname && location.hostname.split('.');

		const isDev =
			(domains && domains.length && domains[0] && domains[0].match(/dev[0-9]+/i)) ||
			(domains[1] && domains[1].match(/dev[0-9]+/i));

		
		if (isDev) {
			cdn_domain = location.hostname;
		}

		for (i = 0, j = css.length; i < j; i += 1) {
			if (
				css[i].rel === 'stylesheet' &&
				css[i].href &&
				(!cdn_domain || css[i].href.includes(cdn_domain))
			)
				count(css[i]);
		}

		for (i = 0, j = script.length; i < j; i += 1) {
			if (script[i].src && (!cdn_domain || script[i].src.includes(cdn_domain)))
				count(script[i]);
		}

		
		check();
	}

	function reset() {
		data = {
			node_count: 0,
			known_nodes: [],
			processed_nodes: [],
			processed_count: 0,
			loaded: [],
			failed: [],
		};
	}

	function isRelevantNode(node) {
		if (!node) return;
		
		if (!node.onload || !node.onerror) return false;
		
		if (node.href && node.rel && node.rel === 'stylesheet') return true;
		
		if (node.src && node.nodeName.toLowerCase() === 'script') return true;
		
		return false;
	}

	function getURL(node) {
		if (!node) return;
		
		return node.href || node.src;
	}

	function process(node) {
		var src = getURL(node);
		if (!src) return;
		
		if (data.processed_nodes[src]) return;
		data.processed_nodes[src] = true;
		return true;
	}

	function ok(node, args) {
		if (!process(node)) return;
		data.processed_count += 1;
		data.loaded.push({
			node: node,
			args: args,
		});
		check();
	}

	function failed(node, args) {
		if (!process(node)) return;
		data.processed_count += 1;
		data.failed.push({
			node: node,
			args: args,
		});
		
		(
			(window.TS && TS.console && TS.console.error && TS.console.error) ||
			window.console.error ||
			function () {}
		)('CDN asset failed to load: ' + getURL(node));
		check();
	}

	function count(node) {
		if (!node) return;
		if (!isRelevantNode(node)) return;
		var url = getURL(node);
		if (!url) return;
		if (data.known_nodes[url]) return;
		data.known_nodes[url] = true;
		data.node_count += 1;
	}

	function check() {
		if (!data.processed_count) return;
		var missing = false;
		var missing_nodes = [];
		var all_count = 0;
		for (var item in data.known_nodes) {
			if (!data.known_nodes.hasOwnProperty(item)) continue;
			all_count += 1;
			if (!data.processed_nodes[item]) {
				missing_nodes.push(item);
				missing = true;
			}
		}

		
		if (!all_count) return;

		
		if (missing) return;

		
		if (!data.failed.length) {
			if (window.console) console.log(data.loaded.length + ' CDN assets loaded OK');
			reset();
			return;
		}

		
		var i;
		var j = data.failed.length;
		var failed = [];
		var failed_css = 0;
		var failed_js = 0;
		var node_name;

		for (i = 0; i < j; i += 1) {
			failed.push(getURL(data.failed[i].node));
			node_name = data.failed[i].node.nodeName.toLowerCase();
			if (node_name === 'link') failed_css += 1;
			if (node_name === 'script') failed_js += 1;
		}

		if (window.console && console.error) {
			console.error(data.failed.length + ' CDN assets failed to load: ' + failed.join(', '));
		}

		if (window.TSBeacon) {
			if (failed_css) window.TSBeacon('cdn_load_tracking_failed_css', failed_css);
			if (failed_js) window.TSBeacon('cdn_load_tracking_failed_js', failed_js);
		}

		if (isReloading) {
			if (window.console) {
				console.warn(
					'[RELOAD] Detected more issues loading assets, but we are already preparing to reload so no need to do anything',
				);
			}
			return;
		}

		const params = new URLSearchParams(location.search);
		let cdnFallbackCount = parseInt(params.get('cdn_fallback'), 10) || 0;
		cdnFallbackCount += 1;

		if (cdnFallbackCount > MAX_CDN_FALLBACK) {
			if (window.console) {
				console.warn("[RELOAD] Hit maximum reload attempts, won't try reloading anymore");
			}
			return;
		}

		isReloading = true;
		params.set('cdn_fallback', cdnFallbackCount.toString());

		
		const newSearch = params.toString();
		if (window.console) console.warn(`[RELOAD] Reloading client with URL: ${newSearch}`);

		
		let timeout;
		const reload = () => {
			console.warn(`[RELOAD] Reloading client with URL: ${newSearch}`);
			window.clearTimeout(timeout);
			window.location.search = newSearch;
		};
		timeout = window.setTimeout(reload.bind(this), 5000);

		const preReloadPromises = [];

		
		
		
		
		if (window.desktop?.stats?.clearCache) {
			preReloadPromises.push(
				new Promise((resolve) => {
					try {
						console.warn('[RELOAD] Attempting to clear desktop cache');
						window.desktop.stats.clearCache().then(() => {
							console.warn('[RELOAD] Successfully cleared desktop cache');
							resolve();
						});
					} catch (e) {
						console.warn(
							`[RELOAD] Error clearing desktop cache: ${!!e && typeof e === 'object' && 'message' in e ? e.message : 'Unknown error'}`,
						);
						resolve();
					}
				}),
			);
		}

		Promise.all(preReloadPromises).then(reload);
	}

	reset();

	window._cdn = {
		check: check,
		count: count,
		data: data,
		ok: ok,
		failed: failed,
		scanPageAssets: scanPageAssets,
	};
})();
</script><link href="https://a.slack-edge.com/bv1-13-br/legacy-style-browser-support.fdaf603340143074.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link href="https://a.slack-edge.com/bv1-13-br/marketing-style-footer.a65a5fd394927179.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link href="https://a.slack-edge.com/bv1-13-br/marketing-style-onetrust-banner.a766f6366824ca39.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link href="https://a.slack-edge.com/bv1-13-br/legacy-style-libs-lato-2-compressed.f97f6fd36fc9636d.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link href="https://a.slack-edge.com/bv1-13-br/marketing-style-generic-typography-avantgarde.c934e77ecdecd549.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link href="https://a.slack-edge.com/bv1-13-br/marketing-style-generic-typography-sfsans.c0d85c66f6c49bc2.min.css" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null" crossorigin="anonymous" rel="stylesheet" type="text/css"><link rel="canonical" href="https://slack.com">

<link rel="alternate" hreflang="en-us" href="https://slack.com">

<link rel="alternate" hreflang="en-au" href="https://slack.com/intl/en-au">

<link rel="alternate" hreflang="en-gb" href="https://slack.com/intl/en-gb">

<link rel="alternate" hreflang="en-in" href="https://slack.com/intl/en-in">

<link rel="alternate" hreflang="fr-ca" href="https://slack.com/intl/fr-ca">

<link rel="alternate" hreflang="fr-fr" href="https://slack.com/intl/fr-fr">

<link rel="alternate" hreflang="de-de" href="https://slack.com/intl/de-de">

<link rel="alternate" hreflang="es-es" href="https://slack.com/intl/es-es">

<link rel="alternate" hreflang="es" href="https://slack.com/intl/es-la">

<link rel="alternate" hreflang="ja-jp" href="https://slack.com/intl/ja-jp">

<link rel="alternate" hreflang="pt-br" href="https://slack.com/intl/pt-br">

<link rel="alternate" hreflang="ko-kr" href="https://slack.com/intl/ko-kr">

<link rel="alternate" hreflang="it-it" href="https://slack.com/intl/it-it">

<link rel="alternate" hreflang="zh-cn" href="https://slack.com/intl/zh-cn">

<link rel="alternate" hreflang="zh-tw" href="https://slack.com/intl/zh-tw">

<link rel="alternate" hreflang="x-default" href="https://slack.com">

<script>window.ts_endpoint_url = "https:\/\/slack.com\/beacon\/timing";(function(e) {
	var n=Date.now?Date.now():+new Date,r=e.performance||{},t=[],a={},i=function(e,n){for(var r=0,a=t.length,i=[];a>r;r++)t[r][e]==n&&i.push(t[r]);return i},o=function(e,n){for(var r,a=t.length;a--;)r=t[a],r.entryType!=e||void 0!==n&&r.name!=n||t.splice(a,1)};r.now||(r.now=r.webkitNow||r.mozNow||r.msNow||function(){return(Date.now?Date.now():+new Date)-n}),r.mark||(r.mark=r.webkitMark||function(e){var n={name:e,entryType:"mark",startTime:r.now(),duration:0};t.push(n),a[e]=n}),r.measure||(r.measure=r.webkitMeasure||function(e,n,r){n=a[n].startTime,r=a[r].startTime,t.push({name:e,entryType:"measure",startTime:n,duration:r-n})}),r.getEntriesByType||(r.getEntriesByType=r.webkitGetEntriesByType||function(e){return i("entryType",e)}),r.getEntriesByName||(r.getEntriesByName=r.webkitGetEntriesByName||function(e){return i("name",e)}),r.clearMarks||(r.clearMarks=r.webkitClearMarks||function(e){o("mark",e)}),r.clearMeasures||(r.clearMeasures=r.webkitClearMeasures||function(e){o("measure",e)}),e.performance=r,"function"==typeof define&&(define.amd||define.ajs)&&define("performance",[],function(){return r}) // eslint-disable-line
})(window);</script><script>

(function () {
	
	window.TSMark = function (mark_label) {
		if (!window.performance || !window.performance.mark) return;
		performance.mark(mark_label);
	};
	window.TSMark('start_load');

	
	window.TSMeasureAndBeacon = function (measure_label, start_mark_label) {
		if (!window.performance || !window.performance.mark || !window.performance.measure) {
			return;
		}

		performance.mark(start_mark_label + '_end');

		try {
			performance.measure(measure_label, start_mark_label, start_mark_label + '_end');
			window.TSBeacon(measure_label, performance.getEntriesByName(measure_label)[0].duration);
		} catch (e) {
			
		}
	};

	
	if ('sendBeacon' in navigator) {
		window.TSBeacon = function (label, value) {
			var endpoint_url = window.ts_endpoint_url || 'https://slack.com/beacon/timing';
			navigator.sendBeacon(
				endpoint_url + '?data=' + encodeURIComponent(label + ':' + value),
				'',
			);
		};
	} else {
		window.TSBeacon = function (label, value) {
			var endpoint_url = window.ts_endpoint_url || 'https://slack.com/beacon/timing';
			new Image().src = endpoint_url + '?data=' + encodeURIComponent(label + ':' + value);
		};
	}
})();
</script><script>window.TSMark('step_load');</script><script>
(function () {
	function throttle(callback, intervalMs) {
		var wait = false;

		return function () {
			if (!wait) {
				callback.apply(null, arguments);
				wait = true;
				setTimeout(function () {
					wait = false;
				}, intervalMs);
			}
		};
	}

	var MAX_LOGGABLE_URL_LENGTH = 256;

	
	function describeLoggableUrl(url) {
		if (typeof url !== 'string' || !url) return 'unknown';

		if (url.slice(0, 5).toLowerCase() === 'data:') {
			
			var mediaType = /^data:([^;,]*?)[;,]/i.exec(url);
			return `data:${(mediaType && mediaType[1]) || 'unknown'} (${url.length} chars, redacted)`;
		}

		if (url.length > MAX_LOGGABLE_URL_LENGTH) {
			return `${url.slice(0, MAX_LOGGABLE_URL_LENGTH)} (${url.length} chars, truncated)`;
		}

		return url;
	}

	function getGenericLogger() {
		return {
			warn: (msg) => {
				
				if (window.console && console.warn) return console.warn(msg);
			},
			error: (msg) => {
				if (!msg) return;

				if (window.TSBeacon) return window.TSBeacon(msg, 1);

				
				if (window.console && console.warn) return console.warn(msg);
			},
		};
	}

	function globalErrorHandler(evt) {
		if (!evt) return;

		
		var details = '';

		var node = evt.srcElement || evt.target;

		var genericLogger = getGenericLogger();

		
		
		
		
		if (node && node.nodeName) {
			var nodeSrc = '';
			if (node.nodeName === 'SCRIPT') {
				nodeSrc = node.src || 'unknown';
				var errorType = evt.type || 'error';

				
				details = `[${errorType}] from script at ${nodeSrc} (failed to load?)`;
			} else if (node.nodeName === 'IMG') {
				
				nodeSrc = node.src || node.currentSrc;

				genericLogger.warn(`<img> fired error with url = ${describeLoggableUrl(nodeSrc)}`);
				return;
			}
		}

		
		if (evt.error && evt.error.stack) {
			details += ` ${evt.error.stack}`;
		}

		if (evt.filename) {
			
			var fileName = evt.filename;
			var lineNo = evt.lineno;
			var colNo = evt.colno;

			details += ` from ${fileName}`;

			
			if (lineNo) {
				details += ` @ line ${lineNo}, col ${colNo}`;
			}
		}

		var msg;

		
		if (evt.error && evt.error.stack) {
			
			msg = details;
		} else {
			
			msg = `${evt.message || ''} ${details}`;
		}

		
		if (msg && msg.replace) msg = msg.replace(/\s+/g, ' ').trim();

		if (!msg || !msg.length) {
			if (node) {
				var nodeName = node.nodeName || 'unknown';

				
				
				
				if (nodeName === 'VIDEO') {
					return;
				}

				msg = `error event from node of ${nodeName}, no message provided?`;
			} else {
				msg = 'error event fired, no relevant message or node found';
			}
		}

		var logPrefix = 'ERROR caught in js/inline/register_global_error_handler';

		msg = `${logPrefix} - ${msg}`;

		genericLogger.error(msg);
	}

	
	
	
	var capture = true;

	
	var throttledHandler = throttle(globalErrorHandler, 10000);

	window.addEventListener('error', throttledHandler, capture);
})();
</script><script type="text/javascript" crossorigin="anonymous" src="https://a.slack-edge.com/bv1-13-br/manifest.d0f50b9ed2130042.primer.min.js" onload="window._cdn ? _cdn.ok(this, arguments) : null" onerror="window._cdn ? _cdn.failed(this, arguments) : null"></script><noscript><meta http-equiv="refresh" content="0; URL=/?nojsmode=1"></noscript><script type="text/javascript">var safe_hosts = ["app.optimizely.com","tinyspeck.dev.slack.com","houston-dev.tinyspeck.com","houston.tinyspeck.com"];

if (self !== top && safe_hosts.indexOf(top.location.host) === -1) {
	window.document.write(
		'\u003Cstyle>body * {display:none !important;}\u003C/style>\u003Ca href="#" onclick=' +
			'"top.location.href=window.location.href" style="display:block !important;padding:10px">Go to Slack.com\u003C/a>'
	);
}

(function() {
	var timer;
	if (self !== top && safe_hosts.indexOf(top.location.host) === -1) {
		timer = window.setInterval(function() {
			if (window) {
				try {
					var pageEl = document.getElementById('page');
					var clientEl = document.getElementById('client-ui');
					var sectionEls = document.querySelectorAll('nav, header, section');

					pageEl.parentNode.removeChild(pageEl);
					clientEl.parentNode.removeChild(clientEl);
					for (var i = 0; i < sectionEls.length; i++) {
						sectionEls[i].parentNode.removeChild(sectionEls[i]);
					}
					window.TS = null;
					window.TD = null;
					window.clearInterval(timer);
				} catch (e) {}
			}
		}, 200);
	}
})();</script><script>window.GA = window.GA || {};
window.GA.boot_data = window.GA.boot_data || {};
GA.boot_data.xhp = true;
GA.boot_data.version_uid = "0e5e029ffc23762241a81ca7298ca509d0f488f1";
GA.boot_data.environment = "prod";
GA.boot_data.abs_root_url = "https:\/\/slack.com\/";
GA.boot_data.document_referrer = "";

GA.boot_data.anonymous_visitor = false;
GA.boot_data.beacon_timing_url = "https:\/\/slack.com\/beacon\/timing";
GA.boot_data.referral_code = "";
GA.boot_data.auth_cookie_domain = ".slack.com";

GA.boot_data.geo = {"ip":"172.68.174.42","country":"US","is_in_european_union":false,"region":"OR","city":"Portland","zip":"97207","lat":45.5248,"lon":-122.6789,"metro":820,"country_label":"United States","region_label":"Oregon","country3":"USA","continent":"NA","isp":"Cloudflare","asn":13335};
GA.boot_data.geocode = "en-us";
GA.boot_data.intl_prefix = "";
GA.boot_data.request_uri = "\/";
GA.boot_data.canonical_web_url = "https:\/\/slack.com\/";
GA.boot_data.i18n_locale = "en-US";
GA.boot_data.geo_root_url = "https:\/\/slack.com\/";

GA.boot_data.is_usa = true;
GA.boot_data.is_spain = false;
GA.boot_data.is_germany = false;
GA.boot_data.is_france = false;
GA.boot_data.is_japan = false;
GA.boot_data.is_europe = false;

GA.boot_data.is_latam = false;
GA.boot_data.is_brazil = false;
GA.boot_data.is_india = false;
GA.boot_data.is_uk = false;

GA.boot_data.is_english = true;
GA.boot_data.is_spanish = false;
GA.boot_data.is_german = false;
GA.boot_data.is_french = false;
GA.boot_data.is_japanese = false;
GA.boot_data.is_portuguese = false;

GA.boot_data.job_board_token = "slack";
GA.boot_data.zd_locale = "en-us";
</script><meta name="facebook-domain-verification" content="chiwsajpoybn2cnqyj9w8mvrey56m0"><script type="text/javascript">
window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}

function loadGTM() {
	window.dataLayer.push({
		'gtm.start': Date.now(),
		'event': 'gtm.js',
		'AnalyticsActiveGroups': window.OnetrustActiveGroups || ',1',
		'policy_ga_only': true,
	});
	var firstScript = document.getElementsByTagName('script')[0];
	var thisScript = document.createElement('script');
	thisScript.async = true;
	thisScript.src = '//www.googletagmanager.com/gtm.js?id=GTM-KH2LPK';
	firstScript.parentNode.insertBefore(thisScript, firstScript);
}


</script><script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(e) {
	var gtmDataLayer = window.dataLayer || [];
	var gtmTags = document.querySelectorAll('*[data-gtm-click]');
	var gtmClickHandler = function(c) {
		var gtm_events = this.getAttribute('data-gtm-click');
		if (!gtm_events) return;
		var gtm_events_arr = gtm_events.split(",");
		for(var e=0; e < gtm_events_arr.length; e++) {
			var ev = gtm_events_arr[e].trim();
			gtmDataLayer.push({ 'event': ev });
		}
	};
	for(var g=0; g < gtmTags.length; g++){
		var elem = gtmTags[g];
		elem.addEventListener('click', gtmClickHandler);
	}
});
</script><script type="text/javascript">
(function(e,c,b,f,d,g,a){e.SlackBeaconObject=d;
e[d]=e[d]||function(){(e[d].q=e[d].q||[]).push([1*new Date(),arguments])};
e[d].l=1*new Date();g=c.createElement(b);a=c.getElementsByTagName(b)[0];
g.async=1;g.src=f;a.parentNode.insertBefore(g,a)
})(window,document,"script","https:\/\/a.slack-edge.com\/bv1-13-br\/slack_beacon.1de5853dee52ce81.min.js","sb");
window.sb('set', 'token', '3307f436963e02d4f9eb85ce5159744c');
window.sb('track', 'pageview');
</script><script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" data-domain-script="3bcd90cf-1e32-46d7-adbd-634f66b65b7d"></script><script>window.OneTrustLoaded = true;</script><script>
window.dataLayer = window.dataLayer || [];

function afterConsentScripts() {
	window.TD.analytics.doPush();

	const bottomBannerEl = document.querySelector('.c-announcement-banner-bottom');
	if (bottomBannerEl !== null) {
		bottomBannerEl.classList.remove('c-announcement-banner-bottom-invisible');
	}
}



function toNumberSet(value) {
    let arr;
    arr = value.split(',');

    let set = {};
    for (let i = 1; i < arr.length; i++) {
      let n = parseInt(String(arr[i]).trim(), 10);
      if (!isNaN(n)) set[n] = true;
    }
    return set;
  }

  function grantedIfBoth(policySet, activeSet, id) {
    return !!(policySet[id] && activeSet[id]);
  }

  function updateGoogleConsentFromOneTrust(pagePolicy) {
		let policySet = toNumberSet(pagePolicy);
		let activeSet = toNumberSet(window.OptanonActiveGroups || window.OnetrustActiveGroups || ',1');
		let functionalGranted  = grantedIfBoth(policySet, activeSet, 3); // category 3
		let adsGranted         = grantedIfBoth(policySet, activeSet, 4); // category 4

		gtag('consent', "default", {"ad_storage":"denied","ad_user_data":"denied","ad_personalization":"denied","perso
the breakdown

HTTPS Transport Enabled

security
Traffic between your browser and this server is encrypted over TLS.

No Credential Fields Detected

security
No password input fields were detected in the page HTML.

Automatic Meta-Refresh Redirect

security
The page initiates an automatic redirect via an HTML meta tag.

No Content Security Policy

security
No Content-Security-Policy header was sent by the server.

Normal Domain Pattern

reputation
The domain uses a standard top-level domain and natural length.

No Scam Keywords Detected

content
We did not find aggressive pressure tactics or typical prize scam language.

Strict Transport Security (HSTS)

security
The site instructs browsers to only connect over HTTPS in the future.

Clickjacking Protection Configured

security
The site controls whether it can be embedded inside iframes on other domains.

Privacy Policy Available

policy
The site links to a readable Privacy Policy.

Observed Tracking Not Clearly Disclosed in Policy

policy
External tracking scripts were observed, but the analyzed privacy policy does not explicitly mention cookies or advertising analytics.

Terms of Service Available

policy
The site links to a readable Terms of Service.