cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.67.208.19:443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=45,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e1dd5fec6f-YYZ alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 2606:4700:3036::ac43:d013:8443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=10,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e10f50187f-EWR alt-svc: h3=":8443"; ma=86400 error code: 1016
Open service 104.21.45.26:8443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=8,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e10cd4ac25-YYZ alt-svc: h3=":8443"; ma=86400 error code: 1016
Open service 172.67.208.19:8443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e0af579bb3-FRA alt-svc: h3=":8443"; ma=86400 error code: 1016
Open service 2606:4700:3035::6815:2d1a:8443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=30,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e0c9b04380-EWR alt-svc: h3=":8443"; ma=86400 error code: 1016
Open service 104.21.45.26:443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=27,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e0aa8b227d-EWR alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 2606:4700:3035::6815:2d1a:443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=5,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e0c8da051b-YYZ alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 2606:4700:3036::ac43:d013:80 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e07ca73618-FRA alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 104.21.45.26:80 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e09df3d27c-FRA alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 172.67.208.19:80 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e05d18132e-LHR alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 2606:4700:3035::6815:2d1a:80 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e05db81c89-AMS alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 2606:4700:3036::ac43:d013:443 · subdomain.whitelabelstacks.com
2026-01-21 19:40
HTTP/1.1 530 <none> Date: Wed, 21 Jan 2026 19:40:40 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 16 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1948e03806dc4a-FRA alt-svc: h3=":443"; ma=86400 error code: 1016
Open service 104.21.45.26:8443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 522 <none> Date: Wed, 21 Jan 2026 17:16:01 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19648,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c187481dd318815-EWR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3036::ac43:d013:8443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 522 <none> Date: Wed, 21 Jan 2026 17:16:01 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c187481c811fea0-AMS alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3035::6815:2d1a:443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 200 OK
Date: Wed, 21 Jan 2026 17:15:41 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
vary: accept-encoding
Set-Cookie: connect.sid=s%3AxzyA09PeuALj4jUo7wHk7WdChPa0fJve.37vjy8sg%2BaFtr%2BztNntBNZ%2BzG5uoQ9t%2BVLTBeB1BVTE; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Zfo5vMGImN36MszWSBU5QPM0BwvuJT4bmmb3Q8HLX8yUC5sjnmbMb4w%2BYxYg7EaQvx1zrcl2PgfOHezV9b%2BBlKivgCq3Toai0R4lQTapQKzLqPKvbMEx4S0Pna1syycs"}]}
cf-cache-status: DYNAMIC
CF-RAY: 9c18747d2e8c039a-FRA
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 172.67.208.19:8443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 522 <none> Date: Wed, 21 Jan 2026 17:16:01 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1874819a4d330e-LHR alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3035::6815:2d1a:8443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 522 <none> Date: Wed, 21 Jan 2026 17:16:01 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9c1874816cd9224e-AMS alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.45.26:80 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Jan 2026 17:15:41 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cSz96oRJmL3saUT7GhJie5MzzT%2F%2BHLX7naoTff8c%2FI9Tv4uutML%2FKJfWn60g0bTmFgF%2Fy0Zui268ci%2Bt3aN%2FVZfg28Oq%2BLFqd3J4ZqeC6pKqlaOf"}]}
CF-RAY: 9c18747cfeb79f60-AMS
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:80 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Jan 2026 17:15:41 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=17,cfOrigin;dur=488
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pps6L%2BIhDlBJKlnSw58%2BB6SbF9n6gQ5Q0pCBtUUWL%2BkB9XL%2Bd3NCybYoanEuowF%2FCEfl3Nu1pkpp8IERY62wHnuSi0UM4alJES8wkyNijDSQ47G3qk77So6weKXGdCfO"}]}
CF-RAY: 9c18747e6e1197a7-SIN
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 200 OK
Date: Wed, 21 Jan 2026 17:15:41 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=240
Set-Cookie: connect.sid=s%3AdPZB53ftePp6yQyxOI2Nr_mkKawpa6W7.XiM61xiAj2ZWc4%2BE9tx0mK0OZL24tDFR3EpjWaPXuXY; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Un9%2FfiKl2OixyAP%2BmXq%2FmegGE%2Bwkc0TRXk27jrrKaFUt19y7AwRaAWjrvYXBIug7bPPBWTjbUMLS%2Bb6bJx2N%2Ft6SCm7KxvTzUmrYwJLTwbWPant4ZAQP99OOJUqElixm"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9c18747be82f236e-SJC
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 2606:4700:3035::6815:2d1a:80 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Jan 2026 17:15:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=12,cfOrigin;dur=156
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=s3n6N4Lo3%2B1%2BlH99OXAFogoChihQylF7IbkoKleQJtZkAJPBMp%2Bytw6X1AdiOuvsxYecbSNKS%2F%2BFu2%2B1QowBT2Hj7cwz4JZMj%2FKBI%2BBnwbOq4jo3mKT%2Bk8kb6yZAi1rJ"}]}
CF-RAY: 9c18747b9edcc236-SJC
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.45.26:443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 200 OK
Date: Wed, 21 Jan 2026 17:15:40 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=13,cfOrigin;dur=213
Set-Cookie: connect.sid=s%3A7laQ6BEmMjNWB_qvaCMn01efjKRXPR9h.J4QQ9lyn7q28o3s5Ep0QXbc1X1nJVjrS6RQjHxTPpdo; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kMzKfU1%2Bpr4BZ2miIY9866xE1VTXVp%2FpiUM%2BqoovMyOVaB%2BDPZymdDEBW9YieVNAMrZhX78CCFzS%2FUdiOHQdnc%2Fb8I8%2BrP%2FtGBbvA24lv5Ys%2F489"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9c18747bcdb83d57-SJC
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 172.67.208.19:443 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 200 OK
Date: Wed, 21 Jan 2026 17:15:42 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=18,cfOrigin;dur=751
Set-Cookie: connect.sid=s%3AZ7I-SWosQgZP_sVLeoTFZiI1vxJSy5DF.pJtINVDCj2VY2caQSXLRBEhfmtVaTx2g0oqY0mHmIfc; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JYhkt9Ws18EL1Hrm9OYLkgdwe5lhaf2BDcQJD0xi1ph9%2BaJokyolmIv1icnjVhf8C%2FvsLY62grQGwU%2FiAXeEtigJgMKrhf%2BP%2B1bwUgkGz7BTyu1b"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9c18747f5dc53e20-SIN
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 172.67.208.19:80 · whitelabelstacks.com
2026-01-21 17:15
HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Jan 2026 17:15:40 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=19,cfOrigin;dur=15
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bmRxVtc83je7cnvNeLZ%2Bm4TMQt8gQMX4oYMf3T80lEsAwuBXDPViskkx1ygIYdOwHt%2FU5yPmvrIP8mYe1jhUJj%2F6pHLEkM3a1vNsCDTKV2XSa%2BMG"}]}
CF-RAY: 9c18747a89e3151b-EWR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:8443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19873,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc1be9138820-SIN alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.45.26:8443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:32 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19265,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc19cd27581c-SJC alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3035::6815:2d1a:80 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:13 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://www.whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=31,cfOrigin;dur=475
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=q9KeHcqRbeKtH4BGUQv1UYpBLNe8jFETmo4m645jfV7tCDCrRUwmxCDv8FNZIk0zIjdgqjnnzMAz9mDjsBEd%2Bzz3XfyUz3QKpr9yFLlX2dB6WN0p000%2FMYbUeOEcLfIyM5zj%2BQ%3D%3D"}]}
CF-RAY: 9bb4cc167a37fd67-SIN
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.208.19:8443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:32 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc195bb2d2ba-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.45.26:80 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://www.whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0WnNoBvaNQrno1jz6amoBpMqZkgyLrJUDplxvbERFU9DyPUNABpnCNgN2K8TYcrnCzKz%2BST8C01D8xQKaCgep4HFpo7%2BnBdudjA6Kbg4EWTi8p%2FjiMuUSA%3D%3D"}]}
CF-RAY: 9bb4cc145b7654eb-FRA
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:13 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
vary: accept-encoding
Set-Cookie: connect.sid=s%3AFNTalzib7SQzSUo9v_AmvjxvWJ5vxkX6.tAMhVkLpMELtxiG20iJRrIRIWd3Om%2B9yr5%2B2XUm3%2FGo; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fVHq%2F60AsCI4%2BwZld%2FU0cLHVOosPaCBAMOIbWvNZTdKY7Ap5Fg87S3fYYm%2BJ3Yja9KfRt9cmkvecjWBw6qqWXqioOxm6bB3BreV1MWPRvvBEjNsevp4InVvC0dqcFMPkAzogAA%3D%3D"}]}
cf-cache-status: DYNAMIC
CF-RAY: 9bb4cc14cdc9d3c1-FRA
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 172.67.208.19:8443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:32 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc193f09989c-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 172.67.208.19:80 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://www.whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=okGsVw1hQ5IQT6vn%2FAeqlxqYpdhKgEr%2BbUnZAQRlRp0Dq1YbcMEdibndfOr%2BgmiPTSpST%2FSlqeEO9%2BasL1AWKAmua%2BXOBuV%2FMRiMYNWv19ZuhG75rxrKAw%3D%3D"}]}
CF-RAY: 9bb4cc14287fccb5-LHR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:80 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://www.whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ragPaH2oHz1tISQVYKuBN65WL3Jgq6Vc%2BPfI9yPsOu%2B%2FwZhdEJxpXKbcvFAyzxMX7kKIsbcThjcPdmv%2B3ebJshSUQQzjiuIFmvrxdK8eBJTkPRpxF9lSYxtJ9YiOEIoVGcDoAA%3D%3D"}]}
CF-RAY: 9bb4cc140ae1cb3f-FRA
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 2606:4700:3036::ac43:d013:443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=30
Set-Cookie: connect.sid=s%3AKGjgHD_xzDIvtMr5UO41Vrf4Sz-ONH7c.Cv868j3lQrQAKAWBnYcqKjGueCiAQg0HwiByqNIH9jo; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=RGwqrmvmlLt8IugnauneVNTLmAar%2FqMZHc4CPNlowG0O8qke7NNlDh%2BscpdYp3g2EoyYs2wuodyAK5eq0B8Qp5elEIbWSeufqAxhcn7wkZVoNiQExxu%2FxvguA1kn4lUF"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9bb4cc13386aaded-EWR
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 2606:4700:3036::ac43:d013:8443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc190fb72bdc-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3036::ac43:d013:80 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fo827NycOUwhOon%2FYuaQDPF4C%2BAELuXsiXUfsTUYbKXV%2F%2FP2QRBHIOIUaRlmzcLj1Mawc9dyukAJn6VYbZsBCQG%2BogO8PIqUT4XmRmxNjB5Qew66r8mTG7cpRDtxQeaa"}]}
CF-RAY: 9bb4cc13f9e8974b-FRA
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 172.67.208.19:80 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=21,cfOrigin;dur=49
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=4Y4%2F1CKuIrxOaPRPqFxhtiwVpfPBTtqSXn2wJRGWtJFHyjg0KeIPf64SwmSV6pwapNG7WR%2B5uZL993h9oNE0pVlzEOXfPpIJYMuqmt6pRKSyug4C"}]}
CF-RAY: 9bb4cc1318d93a08-YYZ
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3035::6815:2d1a:443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=245
Set-Cookie: connect.sid=s%3AfcuTCcRfMR2VH9umBYaE_jW4iI-bsDPB.JTZtBWi3qLjDnIK6CqfPBshkxHEcQXf3lM1oPO31YGw; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9cIfuI%2FtvSn5ESoYIHyaqPIYvJ1xm7BcZ9MDlv3bTki0VYWRhuMYlPqjxnpzEZESdP94TI8zJDSsEBLp1vmupZVZXCTq3vA7GhOZ31QnuOs4OOv5OlUlrfVf8DAndWr%2B1EoyOg%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9bb4cc143d7dd009-SJC
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 104.21.45.26:443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
vary: accept-encoding
Set-Cookie: connect.sid=s%3A6GKg3SPrs9JCXcyIrtM3NE6d3hlWSbrz.BBkxEjiBPZPHQedkeImYLLSADrFbqipqrhg9eg%2Bpty8; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=MMW8za52QIa6U%2B7HhpAS7sBkYOof1pYjwW9ubWJGA4NoODs%2BigPxZw45Q2%2FDlSkHlsR1XdAu86I7LEFTFMN3MDWdJIsF17p1gNJuM74UtD5dEKC7"}]}
cf-cache-status: DYNAMIC
CF-RAY: 9bb4cc146bb4db0f-FRA
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 104.21.45.26:443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=11
Set-Cookie: connect.sid=s%3AFNnG_I6ZErGRLFZ6OK4wPzhWfCiFHJSf.oxWvnajzWKCpJXoqMPeY%2BSK%2BVjVPwCQR9j%2FKNgJ0sWE; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=5RtMo04WxG5s1M%2F7DGP9lswOX9XsFItLAQD8eFkFN5Ak%2FGayoQ2Fx1huXglQ0thm0D6Z3jqSlNsD8URnboC3WMLmquqN3Ndge%2F7HLAKZ1QJoQoLJ6eOrzQ%3D%3D"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9bb4cc130b81430d-EWR
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 2606:4700:3035::6815:2d1a:443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=64
Set-Cookie: connect.sid=s%3AwuDRadUBTh3EfLLbJ6C_h8VSq0hxs0I2.pgQd9gdG1ssc%2BkaaxtQKyHAMMm%2FZMQhVNcCkc2D%2Fnfs; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LBtk5ney0vk4ROJLviOy7n%2F8Hh9zqxMyy5m4aLno%2FpdRdFCIwe3FZu7cg7bNR88ks2OqBMExVAnT%2FtbCz4y4TnRAjsZiqAnFiQinRsp%2BUUjTBcSgrx9KAIF8aup%2FM5pk"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9bb4cc133f2cac3a-YYZ
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 2606:4700:3035::6815:2d1a:80 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZyifpzR%2BaDWTOK%2ByM7w90ic36qTm12QJGy%2BsWIixTIgXZZYFqMcPWvs5kO9pwiwzz6g5NEyWNJRzdfMs0fHQql5VfkhsFjFRbKWhAMgguawZXe9eaBdbJK9uODP83qEW"}]}
CF-RAY: 9bb4cc13be00e85e-FRA
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
</body>
</html>
Open service 172.67.208.19:443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
vary: accept-encoding
Set-Cookie: connect.sid=s%3Aca_gzVX9jQczNXBIsgirjw50U1Wt9WFV.fuKbhjFvDylRMGkmkQt0aoEda3hPn55NWAXXBrFXMS4; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=hfyuPcNEoOmz1RA6JboCdWZd1J5P4AMcAJLXCfKd%2BGDOb4Sp9iN1k36sMh93JKZfxeiArm0QB1pYlECvK8YNMixhOOO7tmIoVvMhLEhCtkDL%2FALu0UQi0Q%3D%3D"}]}
cf-cache-status: DYNAMIC
CF-RAY: 9bb4cc144f983eca-LHR
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 104.21.45.26:8443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:33 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc18ab3818e2-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 104.21.45.26:80 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 301 Moved Permanently
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Location: https://whitelabelstacks.com/
cf-cache-status: DYNAMIC
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=24,cfOrigin;dur=15
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=f4TSElgMCDSEleDq2z62tUJX0klXwAS%2BF0URSCw1mAkr3XOFN9NwHUKVEsucxSK9%2B1kdGgEtWJlEi%2FW2MhXNEwkU%2F9R0T9UWOqTqPXLkcE3IFmGy"}]}
CF-RAY: 9bb4cc129dc60f70-EWR
alt-svc: h3=":443"; ma=86400
Page title: 301 Moved Permanently
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.24.0 (Ubuntu)</center>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"84cd6f567eb54d379a7a536489fe0241","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.208.19:443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 200 OK
Date: Fri, 09 Jan 2026 14:59:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Server: cloudflare
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
X-Powered-By: Express
Cache-Control: public, max-age=0
Last-Modified: Mon, 10 Nov 2025 15:09:19 GMT
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=6,cfOrigin;dur=68
Set-Cookie: connect.sid=s%3AKO_m32DiwfqXSfME293jygC6F-RXIcS4.ZkDTKU%2BNmK2pko1MHerzKVqoZqHiH7ZAeMYRkVXqMSg; Domain=.whitelabelstacks.com; Path=/; HttpOnly; SameSite=Lax
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=nNTMFKhTazWTmlLG8mttRL5p%2BSvu6EHMTsFcuIT3VUtZt5KVT7GtpraWD%2BXyoUPVL0hB9k9ic7by1zE6LJH0kvY3yN0NqRlVuSOWLd1jYxBU3voM"}]}
cf-cache-status: DYNAMIC
vary: accept-encoding
CF-RAY: 9bb4cc12dc4964a6-YYZ
alt-svc: h3=":443"; ma=86400
Page title: WhiteLabelStacks
<!doctype html>
<html lang="en" data-bs-theme="auto">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>WhiteLabelStacks</title>
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="/styles/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/styles/bootstrap-icons/font/bootstrap-icons.min.css">
<link rel="stylesheet" href="/styles/edtechbooks.css?v=1.6">
<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/">
</head>
<body>
<div id="book-nav" class="d-print-none bg-dark text-light shadow z-2 flex-column" style="display: none;">
<div id="book-nav-header" class="d-flex flex-row p-0 align-items-center shadow">
<a
class="btn flex-grow-1 text-start px-3 text-truncate text-light rounded-0 bi-book-fill icon-text-link">Cover</a>
<button class="btn ms-auto bi-caret-up text-light rounded-0 fs-5" data-bs-title="Collapse All"
data-bs-placement="bottom" data-action="CollapseBookNavLinks"></button>
<button class="btn bi-caret-down text-light rounded-0 fs-5" data-bs-title="Expand All"
data-bs-placement="bottom" data-action="ExpandBookNavLinks"></button>
<button class="btn bi-x-lg text-light rounded-0 fs-5 text-end" data-action="ToggleBookNav"></button>
</div>
<div id="book-nav-links" class="flex-grow-1 border-0 m-0 px-2 overflow-y-auto pb-4">
</div>
</div>
<div id="mobile-links" class="bg-dark text-light py-1 d-print-none" style="display: none;">
<div class="row py-0">
<a class="col btn text-light bi-book fs-3" id="book-cover-link" style="display: none;"></a>
<button class="col btn text-light d-none d-md-block bi-list fs-3" data-action="ToggleBookNav"></button>
<a class="col btn text-light bi-chevron-left fs-3" id="previous-chapter-link"></a>
<a class="col btn text-light bi-chevron-right fs-3" id="next-chapter-link"></a>
</div>
</div>
<div class="container-fluid px-0">
<div id="main-window" class="col d-flex flex-column vh-100 z-0">
<div id="scroll-progress-bar" class="bg-dark d-print-none d-none">
<div class="progress-bar d-block bg-rainbow"></div>
</div>
<nav id="main-nav" class="bg-dark shadow z-1 py-0 d-print-none">
<div id="main-nav-wrapper" class="container d-flex flex-row align-items-center">
<div id="main-nav-left" id="headerNav" class="d-flex flex-row">
<a class="btn btn-dark bi-logo-etb-simple fs-3 py-0" href="/"></a>
</div>
<div id="main-nav-right" class="d-flex flex-row ps-3 ms-auto align-items-center">
<div class="dropdown d-lg-none">
<button class="btn bi-list text-light" type="button" data-bs-toggle="dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"></button>
<div id="mobile-menu" class="dropdown-menu dropdown-menu-end vw-100">
</div>
</div>
<button
class="btn bg-rainbow-sm text-white ms-auto d-none d-md-flex flex-row align-items-center py-1 pe-1 flex-grow-1 me-2 rounded-0 pe-3"
data-target-template="modal-search" id="searchButton" data-action="ToggleModal">
<i class="bi-search me-3"></i>
<span class="me-5 my-auto" data-i18n>Search</span>
<!--
<span id="searchShortcut"
class="rounded px-2 ms-auto d-flex flex-row align-items-center py-1 bi-command">K</span>
-->
</button>
<button class="d-md-
Open service 2606:4700:3035::6815:2d1a:8443 · www.whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:32 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc188e90dc92-FRA alt-svc: h3=":8443"; ma=86400 error code: 522
Open service 2606:4700:3035::6815:2d1a:8443 · whitelabelstacks.com
2026-01-09 14:59
HTTP/1.1 522 <none> Date: Fri, 09 Jan 2026 14:59:32 GMT Content-Type: text/plain; charset=UTF-8 Content-Length: 15 Connection: close Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 01 Jan 1970 00:00:01 GMT Referrer-Policy: same-origin Server-Timing: cfEdge;dur=19478,cfOrigin;dur=0 X-Frame-Options: SAMEORIGIN Server: cloudflare CF-RAY: 9bb4cc187a27f288-YYZ alt-svc: h3=":8443"; ma=86400 error code: 522