1<!doctype html> 2<html lang="en" class="dark" style="background: #080808"> 3 <head> 4 <!-- Google Tag Manager --> 5
5<script type="c0267d153bc81746b0c75e65-text/javascript">(function(w,d,s,l,i){var p=w.location.pathname.replace(/\/+$/,'')||'/'; 6 var q=new URLSearchParams(w.location.search);var callback=p==='/login/magic'||p==='/login/redirect'; 7 var mcp=q.has('login_challenge')||q.has('login_complete_url');var pending=false;try{pending=!!w.sessionStorage.getItem('alfa_mcp_oauth_login_handoff');}catch(e){pending=false;} 8 if(callback||mcp||pending)return;w[l]=w[l]||[];w[l].push({'gtm.start': 9 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 10 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 11 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 12 })(window,document,'script','dataLayer','GTM-TD3DNPV');</script>
12 13 <!-- End Google Tag Manager --> 14 <meta charset="UTF-8" /> 15 <!-- `interactive-widget=resizes-content` (RTL-506): Android Chrome's default, `resizes-visual`, 16 leaves the layout viewport at its full height when the keyboard opens, so a full-height 17 shell keeps its size while the visible area shrinks and everything anchored to the bottom 18 ends up behind the keyboard. Resizing the content viewport instead makes the layout shrink 19 with the keyboard, which is what every full-height screen here already assumes. 20 iOS Safari ignores this key entirely â `useKeyboardViewport` is what covers it there. 21 22 `viewport-fit=cover` (RTL-safari-chrome): without it iOS lays the page out INSIDE the safe 23 area, so the page stopped short of the screen and the strip beyond it â behind the home 24 indicator and under the bottom toolbar â was painted by Safari rather than by the app. That 25 is a light band no page colour could reach, and the same inset showed as a gap between the 26 bottom nav and Safari's chrome. It also turns every `env(safe-area-inset-*)` in the app 27 from 0 into a real value at once; the bottom edge was already written for that, as 28 `max(env(safe-area-inset-bottom), 0.75rem)` and `calc(env(...) + 16px)`, which is why they 29 carry fallbacks. --> 30 <meta 31 name="viewport" 32 content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content, viewport-fit=cover" 33 /> 34 <meta name="theme-color" content="#080808" /> 35 <!-- The retail art's CDN, reached unauthenticated on the first screen â the handshake is what 36 made the hero land late rather than the bytes. --> 37 <link rel="preconnect" href="https://images.pexels.com" /> 38 39 40 <style type="text/css">@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:300;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:300;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:300;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:300;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:400;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin-ext/wght/normal.woff2);
40unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:500;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:600;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/vietnamese/wght/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/cyrillic-ext/wght/normal.woff2);unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;font-display:swap;}@font-face {font-family:'Hanken Grotesk';font-style:normal;font-weight:700;src:url(/cf-fonts/v/hanken-grotesk/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style> 41 <title>Alfa</title> 42 <link rel="icon" type="image/svg+xml" href="/favicon.svg" /> 43 <!-- Hydrate data-color-mode + data-theme before CSS loads to prevent FOUC --> 44
44<script type="c0267d153bc81746b0c75e65-text/javascript"> 45 try { 46 if (window.location.pathname.indexOf("/equity/") === 0 && window.location.search.indexOf("alertId=") !== -1) { 47 var equityUrl = new URL(window.location.href); 48 equityUrl.searchParams.delete("alertId"); 49 window.history.replaceState(window.history.state, "", equityUrl.pathname + equityUrl.search + equityUrl.hash); 50 } 51 if ( 52 window.location.pathname.replace(/\/$/, "") === "/email/unsubscribe" && 53 window.location.search.indexOf("token=") !== -1 54 ) { 55 var unsubscribeUrl = new URL(window.location.href); 56 window.__RETAIL_EMAIL_UNSUBSCRIBE_TOKEN__ = (unsubscribeUrl.searchParams.get("token") || "").trim(); 57 unsubscribeUrl.searchParams.delete("token"); 58 window.history.replaceState( 59 window.history.state, 60 "", 61 unsubscribeUrl.pathname + unsubscribeUrl.search + unsubscribeUrl.hash, 62 ); 63 } 64 // Auth routes never show a loading skeleton â see the `[data-auth-route]` rule in 65 // index.css. Set here, before the bundle parses, because the flash this
65suppresses happens 66 // during boot, ahead of any React code that could set it. 67 if (/^\/(login|signup)(\/|$)/.test(window.location.pathname)) { 68 document.documentElement.setAttribute("data-auth-route", ""); 69 } 70 var s = JSON.parse(localStorage.getItem("boosted-settings-store") || "{}").state || {}; 71 var cm = s.colorMode || "dark"; 72 if (cm === "system") cm = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; 73 document.documentElement.setAttribute("data-color-mode", cm); 74 var t = s.activeTheme || "alfa"; 75 document.documentElement.setAttribute("data-theme", t === "alfa" ? "" : t); 76 } catch (e) { 77 document.documentElement.setAttribute("data-color-mode", "dark"); 78 } 79 </script>
79 80
80<script type="c0267d153bc81746b0c75e65-module" crossorigin src="/assets/DbgN9fdg.js"></script>
80 81 <link rel="modulepreload" crossorigin href="/assets/BrrVqsAE.js"> 82 <link rel="modulepreload" crossorigin href="/assets/C24N-clC.js"> 83 <link rel="modulepreload" crossorigin href="/assets/DS3sXihf.js"> 84 <link rel="modulepreload" crossorigin href="/assets/FEFE15x4.js"> 85 <link rel="modulepreload" crossorigin href="/assets/DDskA0xn.js"> 86 <link rel="modulepreload" crossorigin href="/assets/QWtB8lLc.js"> 87 <link rel="modulepreload" crossorigin href="/assets/Dk355brz.js"> 88 <link rel="modulepreload" crossorigin href="/assets/BStQyUtf.js"> 89 <link rel="modulepreload" crossorigin href="/assets/CfIvmbeB.js"> 90 <link rel="modulepreload" crossorigin href="/assets/lmdFKtAz.js"> 91 <link rel="modulepreload" crossorigin href="/assets/D7StZjum.js"> 92 <link rel="modulepreload" crossorigin href="/assets/CD-KhAqE.js"> 93 <link rel="modulepreload" crossorigin href="/assets/C3PV-LN5.js"> 94 <link rel="modulepreload" crossorigin href="/assets/C_zqfQQA.js"> 95 <link rel="modulepreload" crossorigin href="/assets/Dhh4oLOP.js"> 96 <link rel="modulepreload" crossorigin href="/assets/BTnryCeH.js"> 97 <link rel="modulepreload" crossorigin href="/assets/CW4roYO5.js"> 98 <link rel="modulepreload" crossorigin href="/assets/Cnn8yzvy.js"> 99 <link rel="modulepreload" crossorigin href="/assets/Cb_eICxp.js"> 100 <link rel="modulepreload" crossorigin href="/assets/BkpSDYFp.js"> 101 <link rel="modulepreload" crossorigin href="/assets/CGp6eBfd.js"> 102 <link rel="modulepreload" crossorigin href="/assets/BKUR2Bcm.js"> 103 <link rel="modulepreload" crossorigin href="/assets/C7IhdmEG.js"> 104 <link rel="modulepreload" crossorigin href="/assets/c8SucXsm.js"> 105 <link rel="modulepreload" crossorigin href="/assets/DPnomYLE.js"> 106 <link rel="modulepreload" crossorigin href="/assets/_8752D03.js"> 107 <link rel="stylesheet" crossorigin href="/assets/CbKiBKlM.css"> 108 </head> 109 <body><a href="https://app.boosted.ai/cdn-cgi/content?id=XE3XlZKQQf_shly9hWPzIWPjzMA7sKRWq5rRZLx_e_M-1791058485.6928623-1.2.1.1-micJAOvQRaxxnX2F6Ct12TVx6ExhWNTuGXd3iDDrHMXsuEJBHQa8BeNNmLgdXosW" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a> 110 <!-- Google Tag Manager (noscript) --> 111 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TD3DNPV" 112 height="0" width="0" hidden></iframe></noscript> 113 <!-- End Google Tag Manager (noscript) --> 114 <div id="root"></div> 115 <!-- Runtime config injected per deployment (sets window.BOOSTED_RUNTIME_CONFIG) --> 116
116<script src="/runtime-config.js" onerror="void 0" type="c0267d153bc81746b0c75e65-text/javascript"></script>
vendor: 145 bytes, lines 116-117
116 117 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="c0267d153bc81746b0c75e65-|49" defer></script>
117<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"4c4230bd69d543d897812fbe2c278516","spa":2}' crossorigin="anonymous"></script>
117 118</body> 119</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.