1import{i as ee,l as te,r as o,j as e,L as m,ax as se,a6 as E,A as ae,d as G,e as B,a5 as le,X as re,s as _}from"./index-C86sjUM7.js";import{P as ne}from"./package-DsHAm-h5.js";import{D as z}from"./download-BjVXJSVp.js";import{T as oe}from"./terminal-DYk-WSdK.js";import{S as ie}from"./shield-CqlVQTLX.js";const ue=()=>{const{getValidToken:x}=ee(),{refreshCreditBalance:Y}=te(),[s,k]=o.useState(null),[h,q]=o.useState(!0),[i,j]=o.useState(""),[u,w]=o.useState(!1),[b,N]=o.useState(null),[y,c]=o.useState(null),[M,p]=o.useState(!1),[C,S]=o.useState(null),[J,V]=o.useState({amd:null,arm:null}),[W,K]=o.useState(!0),[A,X]=o.useState(null),[v,L]=o.useState(null),I=o.useCallback(async()=>{const t=x();if(t)try{const a=await fetch("https://api.bluelanternsecurity.io/account",{method:"GET",headers:{Authorization:`${t}`,"Content-Type":"application/json"}});if(a.ok){const l=await a.json();let r=[];l.body&&typeof l.body=="string"?r=JSON.parse(l.body).result||[]:l.result&&(r=l.result),r&&r.length>0&&k(r[0].credits)}}catch(a){console.error("Failed to load account balance",a)}finally{q(!1)}},[x]),D=o.useCallback(async()=>{const t=x();if(!t)return;const a=async l=>{const r=await fetch(`https://api.bluelanternsecurity.io/on-premises-agent/${l}`,{method:"GET",headers:{Authorization:`${t}`,"Content-Type":"application/json"}});if(!r.ok)throw new Error(`${l} fetch failed`);const d=await r.json();let n=d;d.body&&typeof d.body=="string"&&(n=JSON.parse(d.body));const f=n.result?.url||n.result||n.url||n;if(typeof f=="string"&&f.startsWith("http"))return f;throw new Error(`${l} URL invalid`)};try{const[l,r]=await Promise.all([a("amd"),a("arm")]);V({amd:l,arm:r})}catch(l){console.error("Failed to fetch agent download URLs",l),X("Unable to load download links. Try reloading the page.")}finally{K(!1)}},[x]);o.useEffect(()=>{I(),D()},[I,D]);const H=t=>{const a=J[t];a&&(L(t),window.location.href=a,setTimeout(()=>L(null),3e3))},R=()=>{const t=parseInt(i);if(!(!t||t<1)){if(s!==null&&t>s){c(`Insufficient credits. You have ${s.toLocaleString()} credits available.`),N(null);return}p(!0)}},Q=async()=>{p(!1);const t=parseInt(i);w(!0),c(null),N(null);const a=x();if(!a){c("Authentication expired. Please log in again."),w(!1);return}try{const l=await fetch("https://api.bluelanternsecurity.io/on-premises-license",{method:"POST",headers:{Authorization:`${a}`,"Content-Type":"application/json"},body:JSON.stringify({requested_credits:t})}),r=await l.json();let d=r;if(r.body&&typeof r.body=="string"&&(d=JSON.parse(r.body)),l.ok&&d.result&&d.result.grant_id){const n=d.result,f=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),U=window.URL.createObjectURL(f),g=document.createElement("a");g.href=U,g.download=`bl-credits-${n.grant_id}.json`,document.body.appendChild(g),g.click(),document.body.removeChild(g),window.URL.revokeObjectURL(U),N({grantId:n.grant_id,creditsIssued:n.credits_issued}),s!==null&&k(Z=>Z-n.credits_issued),Y(),j("")}else{const n=d.message||"Failed to generate license. Please try again.";n.toLowerCase().includes("greater than")||n.toLowerCase().includes("insufficient")?c(`Insufficient credits. You have ${s!==null?s.toLocaleString():"unknown"} credits available.`):c(n)}}catch(l){console.error("Failed to generate license",l),c("Network error. Please check your connection and try again.")}finally{w(!1)}},F=(t,a)=>{navigator.clipboard.writeText(t),S(a),setTimeout(()=>S(null),2e3)},T=[1e3,2500,5e3,1e4],$=b?`bl-credits-${b.grantId}.json`:"",O="bluelantern credit-reload enable --amount 250 --api-key",P=b?`cp ${$} /path/to/your/data-dir/grants/ 2bluelantern init`:"";return e.jsxs("div",{className:"min-h-screen bg-slate-950 text-white pt-24 pb-12 px-6",children:[e.jsxs("div",{className:"max-w-2xl mx-auto",children:[e.jsxs(m,{to:"/on-prem-toolkit",className:"inline-flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition-colors mb-6 group",children:[e.jsx(se,{className:"w-4 h-4 group-hover:-translate-x-0.5 transition-transform"}),"Back to Local Scanner"]}),e.jsx("h1",{className:"text-2xl font-bold text-white mb-1",children:"Agent & License Management"}),e.jsx("p",{className:"text-slate-400 text-sm mb-8",children:"Download the on-prem agent, then choose whether credits should auto-reload or be applied with a manual grant file."}),e.jsxs("div",{className:"relative overflow-hidden bg-slate-900/70 backdrop-blur-sm border border-slate-800 rounded-2xl p-6 mb-6 group hover:border-emerald-500/30 transition-all",children:[e.jsx("div",{className:"absolute top-0 right-0 -mr-4 -mt-4 w-36 h-36 bg-emerald-500/5 rounded-full blur-2xl pointer-events-none group-hover:bg-emerald-500/10 transition-all"}),e.jsxs("div",{className:"relative z-10",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("div",{className:"p-2.5 rounded-xl bg-emerald-500/10 border border-emerald-500/20 flex-shrink-0",children:e.jsx(ne,{className:"w-5 h-5 text-emerald-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-white",children:"Download Agent"}),e.jsx("p",{className:"text-sm text-slate-400 mt-0.5",children:"Get the on-premises toolkit container image. Choose your architecture below."})]})]}),W?e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 rounded-xl bg-slate-800/50 border border-slate-700/50 w-fit",children:[e.jsx("div",{className:"w-4 h-4 border-2 border-slate-600 border-t-slate-300 rounded-full animate-spin"}),e.jsx("span",{className:"text-sm text-slate-500",children:"Loading..."})]}):A?e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 rounded-xl bg-red-500/10 border border-red-500/20 text-red-400 text-sm w-fit",children:[e.jsx(E,{className:"w-4 h-4"}),A]}):e.jsx("div",{className:"flex gap-3 justify-center",children:[{arch:"amd",label:"AMD64",sub:"Intel / AMD · most cloud VMs"},{arch:"arm",label:"ARM64",sub:"Apple Silicon · AWS Graviton"}].map(({arch:t,label:a,sub:l})=>e.jsxs("button",{onClick:()=>H(t),disabled:v!==null,className:"flex items-center gap-3 px-4 py-3 rounded-xl border border-emerald-500/30 bg-emerald-500/10 hover:bg-emerald-400/20 hover:border-emerald-400/60 disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer transition-all text-left group/btn",children:[v===t?e.jsx("div",{className:"w-4 h-4 border-2 border-emerald-400/30 border-t-emerald-400 rounded-full animate-spin flex-shrink-0"}):e.jsx(z,{className:"w-4 h-4 text-emerald-400 group-hover/btn:text-emerald-300 flex-shrink-0 group-hover/btn:translate-y-0.5 transition-all"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold text-white",children:v===t?"Downloading...":a}),e.jsx("div",{className:"text-xs text-slate-400 mt-0.5",children:l})]})]},t))})]})]}),e.jsxs("div",{className:"relative overflow-hidden bg-slate-900/70 backdrop-blur-sm border border-slate-800 rounded-2xl p-6 mb-6 hover:border-blue-500/30 transition-all",children:[e.jsx("div",{className:"absolute top-0 right-0 -mr-4 -mt-4 w-36 h-36 bg-blue-500/5 rounded-full blur-2xl pointer-events-none"}),e.jsxs("div",{className:"relative z-10",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[e.jsx("div",{className:"p-2.5 rounded-xl bg-blue-500/10 border border-blue-500/20 flex-shrink-0",children:e.jsx(oe,{className:"w-5 h-5 text-blue-400"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-lg font-semibold text-white",children:"Install the Agent"}),e.jsx("p",{className:"text-sm text-slate-400 mt-0.5",children:"A few quick steps to get the scanner running before you add credits."})]})]}),e.jsx("ol",{className:"space-y-3 mb-4",children:[{title:"Make sure Docker is running",body:e.jsx(e.Fragment,{children:"The toolkit runs as a container, so you need Docker Desktop or the Docker engine installed and running on the target machine."})},{title:"Run the installer from the download directory",body:e.jsxs(e.Fragment,{children:["Unzip the bundle, then run the installer from the same folder as the ",e.jsx("code",{className:"text-slate-300",children:"bluelantern-scanner*.tar"})," file. On macOS/Linux: ",e.jsx("code",{className:"text-slate-300",children:"./macos_installer.sh"}),". On Windows, use the included PowerShell installer."]})},{title:"Follow the prompts",body:e.jsxs(e.Fragment,{children:["Pick a data directory and web UI port, and optionally create the ",e.jsx("code",{className:"text-slate-300",children:"bluelantern"})," shell command. You can skip the license step for now and add credits below."]})},{title:"Verify the install",body:e.jsxs(e.Fragment,{children:["Run ",e.jsx("code",{className:"text-slate-300",children:"bluelantern status"})," to confirm the scanner is up. Add credits below before running your first scan."]})}].map((t,a)=>e.jsxs("li",{className:"flex gap-3",children:[e.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full bg-blue-500/10 border border-blue-500/20 text-blue-300 text-xs font-semibold flex items-center justify-center mt-0.5",children:a+1}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-white",children:t.title}),e.jsx("p",{className:"text-sm text-slate-400 mt-0.5 leading-relaxed",children:t.body})]})]},a))}),e.jsxs(m,{to:"/documentation/on-prem-install-usage/introduction",className:"inline-flex items-center gap-1.5 text-sm font-medium text-blue-400 hover:text-blue-300 transition-colors",children:["Read the full install guide",e.jsx(ae,{className:"w-4 h-4"})]})]})]}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white",children:"Add Credits to Your Scanner"}),e.jsx("p",{className:"mt-1 text-sm text-slate-400",children:"Choose between automatic credit reload from your cloud balance or a manually generated grant file for a specific scanner instance."})]}),e.jsxs("div",{className:"relative overflow-hidden bg-slate-900/70 backdrop-blur-sm border border-slate-800 rounded-2xl p-6 mb-6 hover:border-cyan-500/30 transition-all",children:[e.jsx("div",{className:"absolute top-0 right-0 -mr-4 -mt-4 w-36 h-36 bg-cyan-500/5 rounded-full blur-2xl pointer-events-none"}),e.jsxs("div",{className:"relative z-10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-widest px-2 py-0.5 rounded bg-cyan-500/10 border border-cyan-500/20 text-cyan-400",children:"Option A"}),e.jsx("h2",{className:"text-lg font-semibold text-white",children:"Automatic Credit Reload"})]}),e.jsx("p",{className:"text-sm text-slate-400 mb-4",children:"Recommended if you want the scanner to replenish itself from your cloud balance instead of relying on manually generated grant files."}),e.jsxs("p",{className:"text-sm text-slate-400 mb-4",children:["Requires an ",e.jsx(m,{to:"/request-api-key",className:"text-cyan-400 hover:text-cyan-300 transition-colors",children:"API key"})," and available cloud credits from ",e.jsx(m,{to:"/purchase-credits",className:"text-cyan-400 hover:text-cyan-300 transition-colors",children:"Purchase Credits"}),"."]}),e.jsxs("div",{className:"relative group/cmd",children:[e.jsxs("pre",{className:"bg-slate-950/80 border border-slate-700/50 rounded-xl p-3 pr-10 text-sm text-cyan-300 font-mono overflow-x-auto whitespace-pre-wrap",children:[e.jsx("span",{className:"text-slate-500 select-none",children:"$ "}),O]}),e.jsx("button",{onClick:()=>F(O,"a"),className:"absolute top-2.5 right-2.5 p-1 rounded-lg bg-slate-800/80 hover:bg-slate-700 text-slate-400 hover:text-white transition-all opacity-0 group-hover/cmd:opacity-100",children:C==="a"?e.jsx(G,{className:"w-3.5 h-3.5 text-emerald-400"}):e.jsx(B,{className:"w-3.5 h-3.5"})})]}),e.jsxs("p",{className:"mt-2 text-xs text-slate-500",children:["Replace ",e.jsx("code",{className:"text-slate-400",children:"250"})," with your preferred refill amount. You can review or change it later with ",e.jsx("code",{className:"text-slate-400",children:"bluelantern credit-reload status"}),"."]})]})]}),e.jsxs("div",{className:"relative overflow-hidden bg-slate-900/60 backdrop-blur-sm border border-slate-800 rounded-2xl p-6 mb-6 hover:border-slate-700 transition-colors",children:[e.jsx("div",{className:"absolute -bottom-6 -right-6 w-40 h-40 bg-blue-500/5 rounded-full blur-2xl pointer-events-none"}),e.jsxs("div",{className:"relative z-10",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-widest px-2 py-0.5 rounded bg-vi
2olet-500/10 border border-violet-500/20 text-violet-400",children:"Option B"}),e.jsx("span",{className:"text-sm font-semibold text-white",children:"Manual Grant File"})]}),e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx("h2",{className:"text-lg font-semibold text-white flex items-center gap-2",children:"Generate License File"}),!h&&s!==null&&e.jsx(m,{to:"/account",className:"flex items-center gap-1.5 text-sm text-slate-400 hover:text-white transition-colors",children:e.jsxs("span",{className:s<50?"text-red-400 font-semibold":"",children:[s.toLocaleString()," credits"]})})]}),e.jsx("p",{className:"text-sm text-slate-400 mb-5",children:"Use this when you want to allocate a fixed number of credits to a specific scanner instance. The signed file downloads immediately after generation, and the exact apply command appears below once it is ready."}),y&&e.jsxs("div",{className:"mb-4 p-3 rounded-xl bg-red-500/10 border border-red-500/20 flex items-start gap-3",children:[e.jsx(E,{className:"w-4 h-4 text-red-400 mt-0.5 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-red-300 text-sm",children:y}),y.includes("Insufficient")&&e.jsx(m,{to:"/purchase-credits",className:"text-xs text-red-400 hover:text-red-300 underline underline-offset-2 mt-1 inline-block",children:"Purchase more credits â"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2 mb-4",children:[T.filter(t=>s===null||t<=s).map(t=>e.jsx("button",{onClick:()=>{j(t.toString()),c(null)},disabled:u||h,className:`px-3.5 py-1.5 text-sm rounded-lg border transition-all font-medium 3 ${parseInt(i)===t?"bg-cyan-500/20 border-cyan-500/40 text-cyan-300 shadow-sm shadow-cyan-500/10":"bg-slate-800/50 border-slate-700/50 text-slate-400 hover:border-slate-600 hover:text-slate-300"} 4 disabled:opacity-40 disabled:cursor-not-allowed`,children:t.toLocaleString()},t)),s!==null&&!T.includes(s)&&s>0&&e.jsxs("button",{onClick:()=>{j(s.toString()),c(null)},disabled:u||h,className:`px-3.5 py-1.5 text-sm rounded-lg border transition-all font-medium 5 ${parseInt(i)===s?"bg-cyan-500/20 border-cyan-500/40 text-cyan-300 shadow-sm shadow-cyan-500/10":"bg-slate-800/50 border-slate-700/50 text-slate-400 hover:border-slate-600 hover:text-slate-300"} 6 disabled:opacity-40 disabled:cursor-not-allowed`,children:["All (",s.toLocaleString(),")"]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("input",{id:"credits-input",type:"number",min:"1",max:s||void 0,value:i,onChange:t=>{j(t.target.value),c(null)},onKeyDown:t=>t.key==="Enter"&&R(),placeholder:"Number of credits",disabled:u||h,className:"w-full bg-slate-950/80 border border-slate-700 hover:border-slate-600 focus:border-cyan-500 focus:ring-2 focus:ring-cyan-500/20 rounded-xl px-4 py-3 text-white placeholder-slate-600 outline-none transition-all text-base font-mono disabled:opacity-50 disabled:cursor-not-allowed [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"}),s!==null&&i&&parseInt(i)>0&&e.jsxs("p",{className:"text-xs text-slate-500 mt-2 flex items-center gap-1.5",children:[e.jsx("span",{className:"text-slate-600",children:"â"}),"Remaining:"," ",e.jsxs("span",{className:`font-semibold ${s-parseInt(i)<0?"text-red-400":"text-slate-300"}`,children:[(s-parseInt(i)).toLocaleString()," credits"]})]})]}),e.jsx("div",{className:"sm:self-start",children:e.jsx("button",{onClick:R,disabled:u||!i||parseInt(i)<1||h,className:"w-full sm:w-auto px-6 py-3 bg-cyan-600 hover:bg-cyan-500 disabled:bg-slate-700 disabled:cursor-not-allowed text-white font-bold rounded-xl transition-all shadow-lg shadow-cyan-500/25 hover:shadow-cyan-500/40 disabled:shadow-none flex items-center justify-center gap-2 text-sm hover:scale-[1.02] active:scale-[0.98]",children:u?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}),"Generating..."]}):e.jsxs(e.Fragment,{children:[e.jsx(z,{className:"w-4 h-4"}),"Generate"]})})})]})]})]}),b&&e.jsxs("div",{className:"mb-6 space-y-4 animate-[fadeIn_0.3s_ease-out]",children:[e.jsxs("div",{className:"p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/20 flex items-start gap-3",children:[e.jsx(le,{className:"w-5 h-5 text-emerald-400 mt-0.5 flex-shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-emerald-200 font-semibold",children:"License file generated!"}),e.jsxs("p",{className:"text-emerald-400/80 text-sm mt-1",children:[b.creditsIssued.toLocaleStr
6ing()," credits allocated. File"," ",e.jsx("code",{className:"bg-emerald-500/10 px-1.5 py-0.5 rounded text-emerald-300 text-xs",children:$})," ","downloaded."]})]})]}),e.jsxs("div",{className:"bg-slate-900/60 backdrop-blur-sm border border-slate-800 rounded-2xl overflow-hidden",children:[e.jsx("div",{className:"px-5 py-3 border-b border-slate-800/80 bg-slate-900/50",children:e.jsxs("h3",{className:"text-white font-semibold text-sm flex items-center gap-2",children:[e.jsx(ie,{className:"w-4 h-4 text-cyan-400"}),"Apply This Grant File"]})}),e.jsxs("div",{className:"p-5 space-y-4",children:[e.jsx("p",{className:"text-sm text-slate-400",children:"Use the downloaded file on the scanner instance that should receive these credits."}),e.jsxs("div",{className:"relative group/cmd",children:[e.jsxs("pre",{className:"bg-slate-950/80 border border-slate-700/50 rounded-xl p-3 pr-10 text-sm text-violet-300 font-mono overflow-x-auto whitespace-pre-wrap",children:[e.jsx("span",{className:"text-slate-500 select-none",children:"$ "}),P]}),e.jsx("button",{onClick:()=>F(P,"b"),className:"absolute top-2.5 right-2.5 p-1 rounded-lg bg-slate-800/80 hover:bg-slate-700 text-slate-400 hover:text-white transition-all opacity-0 group-hover/cmd:opacity-100",children:C==="b"?e.jsx(G,{className:"w-3.5 h-3.5 text-emerald-400"}):e.jsx(B,{className:"w-3.5 h-3.5"})})]}),e.jsxs("p",{className:"text-xs text-slate-500",children:["Replace ",e.jsx("code",{className:"text-slate-400",children:"/path/to/your/data-dir/"})," with that scanner's actual persistent data directory before running it. For a default macOS/Linux install, this is usually ",e.jsx("code",{className:"text-slate-400",children:"~/.bluelantern/data/"}),"."]}),e.jsxs("p",{className:"text-xs text-slate-500",children:["You can also start ",e.jsx("code",{className:"text-slate-400",children:"bluelantern ui"})," and drag this file into the Dashboard import area."]})]})]})]}),e.jsxs("div",{className:"mt-10 text-center text-sm text-slate-500 space-y-1.5",children:[e.jsxs("p",{children:["Need more credits?"," ",e.jsx(m,{to:"/purchase-credits",className:"text-blue-400 hover:text-blue-300 hover:underline underline-offset-2 transition-colors",children:"Purchase credits"})]}),e.jsxs("p",{children:[e.jsx("a",{href:"mailto:[email protected]",className:"text-blue-400 hover:text-blue-300 hover:underline underline-offset-2 transition-colors",children:"Contact us"})," ","for deployment help."]})]})]}),M&&e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[e.jsx("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm",onClick:()=>p(!1)}),e.jsxs("div",{className:"relative bg-slate-900 border border-slate-700 rounded-2xl shadow-2xl max-w-md w-full p-6 animate-[fadeIn_0.2s_ease-out]",children:[e.jsx("button",{onClick:()=>p(!1),className:"absolute top-4 right-4 text-slate-400 hover:text-white transition-colors",children:e.jsx(re,{className:"w-5 h-5"})}),e.jsxs("div",{className:"flex items-start gap-4 mb-5",children:[e.jsx("div",{className:"p-2.5 rounded-xl bg-amber-500/10 border border-amber-500/20",children:e.jsx(_,{className:"w-6 h-6 text-amber-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-white mb-1",children:"Confirm Credit Allocation"}),e.jsxs("p",{className:"text-sm text-slate-400 leading-relaxed",children:["You are about to allocate ",e.jsx("span",{className:"text-white font-semibold",children:parseInt(i).toLocaleString()})," credits to an on-premises license file."]})]})]}),e.jsx("div",{className:"p-3 rounded-xl bg-amber-500/5 border border-amber-500/15 mb-6",children:e.jsxs("p",{className:"text-sm text-amber-300 flex items-start gap-2",children:[e.jsx(_,{className:"w-4 h-4 mt-0.5 flex-shrink-0"}),e.jsxs("span",{children:["Once credits are allocated to a license file, they ",e.jsx("strong",{children:"cannot be returned"})," to your account."]})]})}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx("button",{onClick:()=>p(!1),className:"flex-1 px-4 py-2.5 bg-slate-800 hover:bg-slate-700 border border-slate-700 text-slate-300 font-medium rounded-xl transition-colors text-sm",children:"Cancel"}),e.jsx("button",{onClick:Q,className:"flex-1 px-4 py-2.5 bg-cyan-600 hover:bg-cyan-500 text-white font-bold rounded-xl transition-all shadow-lg shadow-cyan-500/25 text-sm",children:"Yes, Allocate Credits"})]})]})]})]})};export{ue as default};
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.