1"use strict";(self.webpackChunkinnovation_labs=self.webpackChunkinnovation_labs||[]).push([[875],{68925:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"agentverse/deploy-agent-on-agentverse-via-render","title":"Deploy Agent on Agentverse via Render","description":"Render is a cloud platform for deploying Python-based services and agents. This guide walks you through creating, testing, and deploying an ASI-LLM-AGENT on Render and integrating it with Agentverse.","source":"@site/versioned_docs/version-1.0.5/agentverse/deploy-agent-on-agentverse-via-render.md","sourceDirName":"agentverse","slug":"/agentverse/deploy-agent-on-agentverse-via-render","permalink":"/resources/docs/agentverse/deploy-agent-on-agentverse-via-render","draft":false,"unlisted":false,"tags":[],"version":"1.0.5","frontMatter":{"id":"deploy-agent-on-agentverse-via-render","title":"Deploy Agent on Agentverse via Render"},"sidebar":"tutorialSidebar","previous":{"title":"Agentverse Application Architecture","permalink":"/resources/docs/agentverse/agentverse-based-application"},"next":{"title":"Agentverse Skills","permalink":"/resources/docs/agentverse/agentverse-skills"}}');var r=s(74848),i=s(28453);const o={id:"deploy-agent-on-agentverse-via-render",title:"Deploy Agent on Agentverse via Render"},a="Deploy Agent on Agentverse via Render",l={},d=[{value:"Project Structure",id:"project-structure",level:2},{value:"File Descriptions",id:"file-descriptions",level:3},{value:"requirements.txt",id:"requirementstxt",level:2},{value:".env",id:"env",level:2},{value:"app.py (Agent Example)",id:"apppy-agent-example",level:2},{value:"Local Development & Testing",id:"local-development--testing",level:2},{value:"Deploying on Render",id:"deploying-on-render",level:2},{value:"1. Sign Up for Render",id:"1-sign-up-for-render",level:3},{value:"2. Prepare Your Repository",id:"2-prepare-your-repository",level:3},{value:"3. Create a Background Worker Service",id:"3-create-a-background-worker-service",level:3},{value:"4. Link Your Repository",id:"4-link-your-repository",level:3},{value:"5. Configure and Deploy",id:"5-configure-and-deploy",level:3},{value:"6. Monitor the Deployment",id:"6-monitor-the-deployment",level:3},{value:"README.md Tag Example for Agentverse",id:"readmemd-tag-example-for-agentverse",level:2},{value:"Troubleshooting",id:"troubleshooting",level:2},{value:"Next Steps",id:"next-steps",level:2}];function c(e){const n={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.header,{children:(0,r.jsx)(n.h1,{id:"deploy-agent-on-agentverse-via-render",children:"Deploy Agent on Agentverse via Render"})}),"\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.a,{href:"https://render.com/",children:"Render"})," is a cloud platform for deploying Python-based services and agents. This guide walks you through creating, testing, and deploying an ",(0,r.jsx)(n.strong,{children:"ASI-LLM-AGENT"})," on Render and integrating it with Agentverse."]}),"\n",(0,r.jsx)(n.h2,{id:"project-structure",children:"Project Structure"}),"\n",(0,r.jsx)(n.p,{children:"Ensure your project directory is structured as follows:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"asi-agent/\n\u251c\u2500\u2500 app.py\n\u251c\u2500\u2500 requirements.txt\n\u251c\u2500\u2500 .env # not committed to source control\n\u2514\u2500\u2500 README.md # optional\n"})}),"\n",(0,r.jsx)(n.h3,{id:"file-descriptions",children:"File Descriptions"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"app.py"}),": Contains the uAgents chat agent code (mailbox-enabled, no HTTP server required)."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"requirements.txt"}),": Python dependencies."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:".env"}),": Environment variables (e.g., ",(0,r.jsx)(n.code,{children:"ASI_API_KEY"}),")."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"README.md"}),": Optional docs for your repo."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"requirementstxt",children:"requirements.txt"}),"\n",(0,r.jsx)(n.p,{children:"Minimal dependencies to run the agent and ASI client."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-text",children:"uagents==0.25.5\nuagents-core==0.4.9\nopenai\npython-dotenv\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"env",children:".env"}),"\n",(0,r.jsxs)(n.p,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," file with your ASI API key, agent seed phrase, and Agentverse API key."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"ASI_API_KEY=sk-...\nAGENT_SEED_PHRASE=av-deploy-example\nILABS_AGENTVERSE_API_KEY=your-agentverse-api-key\n"})}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["\ud83d\udca1 ",(0,r.jsx)(n.strong,{children:"Need help getting your API keys?"})]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Get your ASI API key: ",(0,r.jsxs)(n.a,{href:"/resources/docs/asione/asi-one-quickstart",children:["ASI",":One"," Quickstart"]})]}),"\n",(0,r.jsxs)(n.li,{children:["Get your Agentverse API key: ",(0,r.jsx)(n.a,{href:"/resources/docs/agentverse/agentverse-api-key",children:"Agentverse API Key"})]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["Do not commit ",(0,r.jsx)(n.code,{children:".env"})," to version control."]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"apppy-agent-example",children:"app.py (Agent E
1xample)"}),"\n",(0,r.jsx)(n.p,{children:"Use the following example that integrates uAgents chat protocol with ASI's OpenAI-compatible API and Agentverse mailbox."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-python",children:'from datetime import datetime\nfrom uuid import uuid4\nimport os\nfrom dotenv import load_dotenv\nfrom openai import OpenAI\nfrom uagents import Context, Protocol, Agent\nfrom uagents_core.contrib.protocols.chat import (\n ChatAcknowledgement,\n ChatMessage,\n EndSessionContent,\n TextContent,\n chat_protocol_spec,\n)\nfrom uagents_core.utils.registration import (\n register_chat_agent,\n RegistrationRequestCredentials,\n)\n\nload_dotenv()\n\n# Constants\nAGENT_NAME = "asi1-agent"\nSEED_PHRASE = os.getenv("AGENT_SEED_PHRASE", "av-deploy-example")\nAGENTVERSE_KEY = os.getenv("ILABS_AGENTVERSE_API_KEY")\nclient = OpenAI(\n base_url=\'https://api.asi1.ai/v1\',\n api_key=os.getenv("ASI_API_KEY"), \n)\n\nagent = Agent(\n name=AGENT_NAME,\
1n seed=SEED_PHRASE,\n port=8001,\n mailbox=True,\n)\n\nprotocol = Protocol(spec=chat_protocol_spec)\n\[email protected]_message(ChatMessage)\nasync def handle_message(ctx: Context, sender: str, msg: ChatMessage):\n await ctx.send(\n sender,\n ChatAcknowledgement(timestamp=datetime.now(), acknowledged_msg_id=msg.msg_id),\n )\n text = ""\n for item in msg.content:\n if isinstance(item, TextContent):\n text += item.text\n\n response = "Sorry, I wasn\u2019t able to process that."\n try:\n r = client.chat.completions.create(\n model="asi1",\n messages=[\n {"role": "system", "content": "You are a helpful AI assistant. Answer user queries clearly and politely."},\n {"role": "user", "content": text},\n ],\n max_tokens=2048,\n )\n response = str(r.choices[0].message.content)\n except:\n ctx.logger.exception("Error querying model")\n\n await ctx.send(sender, ChatMessage(\n timestamp=datetime.utcnow(),\n msg_id=uuid4(),\n content=[\n TextContent(type="text", text=response),\n EndSessionContent(type="end-session"),\n ]\n ))\n\[email protected]_message(ChatAcknowledgement)\nasync def handle_ack(ctx: Context, sender: str, msg: ChatAcknowledgement):\n pass\n\nagent.include(protocol, publish_manifest=True)\n\nREADME = """# ASI1 Agent\n\n\n\n\nAn AI assistant powered by ASI1 that can help answer questions and process queries using advanced AI capabilities.\n\n## Features\n\n- **AI-powered responses**: Uses ASI API for intelligent conversation\n- **Chat protocol support**: Compatible with uAgents chat protocol\n- **Session management**: Handles multi-turn conversations\n\n## Usage\n\nSend messages to the agent via ASI1 or direct chat protocol to interact with the AI assistant.\n"""\n\[email protected]_event("startup")\nasync def startup_handler(ctx: Context):\n """Initialize agent and register with Agentverse on startup."""\n ctx.logger.info(f"\ud83d\ude80 Agent starting: {ctx.agent.name} at {ctx.agent.address}")\n \n # Register with Agentverse\n if AGENTVERSE_KEY and SEED_PHRASE:\n try:\n register_chat_agent(\n AGENT_NAME,\n agent._endpoints[0].url,\n active=True,\n credentials=RegistrationRequestCredentials(\n agentverse_api_key=AGENTVERSE_KEY,\n agent_seed_phrase=SEED_PHRASE,\n ),\n readme=README,\n description="An AI assistant powered by ASI1 that can help answer questions and process queries using advanced AI capabilities."\n )\n ctx.logger.info("\u2705 Registered with Agentverse")\n except Exception as e:\n ctx.logger.error(f"Failed to register with Agentverse: {e}")\n else:\n ctx.logger.warning("\u26a0\ufe0f AGENTVERSE_KEY or SEED_PHRASE not set, skipping Agentverse registration")\n\nif __name__ == "__main__":\n agent.run()\n'})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"local-development--testing",children:"Local Development & Testing"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Create and activate a virtual environment."}),"\n",(0,r.jsxs)(n.li,{children:["Install dependencies: ",(0,r.jsx)(n.code,{children:"pip install -r requirements.txt"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Create a ",(0,r.jsx)(n.code,{children:".env"})," with ",(0,r.jsx)(n.code,{children:"ASI_API_KEY"}),", ",(0,r.jsx)(n.code,{children:"AGENT_SEED_PHRASE"}),", and ",(0,r.jsx)(n.code,{children:"ILABS_AGENTVERSE_API_KEY"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Run the agent: ",(0,r.jsx)(n.code,{children:"python app.py"}),"."]}),"\n",(0,r.jsx)(n.li,{children:"In the logs, open the Agent Inspector link to connect your agent to Agentverse via mailbox."}),"\n",(0,r.jsx)(n.li,{children:"From Agentverse, find the agent under Local Agents and chat using the chat interface."}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"deploying-on-render",children:"Deploying on Render"}),"\n",(0,r.jsx)(n.h3,{id:"1-sign-up-for-render",children:"1. Sign Up for Render"}),"\n",(0,r.jsxs)(n.p,{children:["Create a free account at ",(0,r.jsx)(n.a,{href:"https://render.com/",children:"render.com"}),"."]}),"\n",(0,r.jsx)(n.h3,{id:"2-prepare-your-repository",children:"2. Prepare Your Repository"}),"\n",(0,r.jsx)(n.p,{children:"Ensure your repository contains:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"app.py"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"requirements.txt"})}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:".env.example"})," (optional; do not commit actual secrets)"]}
1),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"README.md"})," (optional)"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Push your project to a GitHub, GitLab, or Bitbucket repository."}),"\n",(0,r.jsx)(n.h3,{id:"3-create-a-background-worker-service",children:"3. Create a Background Worker Service"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Log in to the ",(0,r.jsx)(n.a,{href:"https://dashboard.render.com/",children:"Render Dashboard"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"+ New"})," and select ",(0,r.jsx)(n.strong,{children:"Background Worker"})," (no HTTP server required for this agent)."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:"https://render.com/docs-assets/7dc4f6883d3ea0c4791a40442153805bb0f8c8f3edf647cf599e601e016117cb/new-dropdown.webp",alt:"Render dashboard new service"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"4-link-your-repository",children:"4. Link Your Repository"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Connect your GitHub/GitLab/Bitbucket account."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:"https://render.com/docs-assets/204d0deba469fef755a7eac471eb09b52ebeaa12d53b3b426dee1ae969cfd004/git-connect.webp",alt:"Link your repo"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"After you connect, the form shows a list of all the repos you have access to:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:"https://render.com/docs-assets/f189d38f12392bf8abc0bf5521960467f0a8213b652c746d9e612539eb9d175a/repo-list.webp",alt:"Render dashboard new service"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Select the `` repository and click ",(0,r.jsx)(n.strong,{children:"Connect"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"5-configure-and-deploy",children:"5. Configure and Deploy"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Environment"}),": Python"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build Command"}),": ",(0,r.jsx)(n.code,{children:"pip install -r requirements.txt"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Start Command"}),": ",(0,r.jsx)(n.code,{children:"python app.py"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Environment Variables"}),": Add the following environment variables:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ASI_API_KEY"}),": Your ASI API key"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"AGENT_SEED_PHRASE"}),': Your agent seed phrase (defaults to "av-deploy-example" if not set)']}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"ILABS_AGENTVERSE_API_KEY"}),": Your Agentverse API key"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Click ",(0,r.jsx)(n.strong,{children:"Create Background Worker"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Choose the free plan"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Render free plan",src:s(24710).A+"",width:"3256",height:"1134"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"6-monitor-the-deployment",children:"6. Monitor the Deployment"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Render displays a log explorer to track the build and deployment process."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{src:"https://render.com/docs-assets/6aa330511f718bd38326c7f6c0fd8697807e4c3ae18257449d156ae353ca1a09/first-deploy-logs.webp",alt:"Render deploy logs"})}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"Render will install dependencies and start the agent. The logs will show the Agent Inspector link for mailbox connection."}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"readmemd-tag-example-for-agentverse",children:"README.md Tag Example for Agentverse"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-markdown",children:"# ASI1 Agent\n\n\n\n\nAn AI assistant powered by ASI1 that can help answer questions and process queries using advanced AI capabilities.\n\n## Features\n\n- **AI-powered responses**: Uses ASI API for intelligent conversation\n- **Chat protocol support**: Compatible with uAgents chat protocol\n- **Session management**: Handles multi-turn conversations\n\n## Usage\n\nSen
1d messages to the agent via ASI1 or direct chat protocol to interact with the AI assistant.\n"})}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Dependency Errors"}),": Ensure ",(0,r.jsx)(n.code,{children:"requirements.txt"})," includes ",(0,r.jsx)(n.code,{children:"uagents==0.25.5"}),", ",(0,r.jsx)(n.code,{children:"uagents-core==0.4.9"}),", ",(0,r.jsx)(n.code,{children:"openai"}),", and ",(0,r.jsx)(n.code,{children:"python-dotenv"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Missing API Key"}),": Verify ",(0,r.jsx)(n.code,{children:"ASI_API_KEY"})," is set in Render environment variables or ",(0,r.jsx)(n.code,{children:".env"})," locally."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"Mailbox Not Connecting"}),": Use the Agent Inspector link from logs and ensure your network/firewall allows outbound traffic."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.strong,{children:"No Responses"}),": Check Render logs for exceptions from the ASI API call and confirm the ",(0,r.jsx)(n.code,{children:"asi1"})," model is accessible with your key."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsx)(n.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Add guardrails, memory, and richer tool-use to your agent."}),"\n",(0,r.jsx)(n.li,{children:"Instrument logging/metrics for observability."}),"\n",(0,r.jsxs)(n.li,{children:["Use ",(0,r.jsx)(n.code,{children:"publish_manifest=True"})," to make your agent discoverable and update its profile on Agentverse accordingly."]}),"\n"]}),"\n",(0,r.jsx)(n.hr,{}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["\ud83d\udca1 ",(0,r.jsx)(n.strong,{children:"Full Example Repository"}),":\nCheck out this ",(0,r.jsx)(n.a,{href:"https://github.com/fetchai/innovation-lab-examples/tree/main/deploy-agent-on-av/example",children:"complete deployment example on GitHub"})," for a ready-to-use setup including Render + Agentverse integration."]}),"\n"]}),"\n",(0,r.jsxs)(n.blockquote,{children:["\n",(0,r.jsxs)(n.p,{children:["\ud83d\udca1 ",(0,r.jsx)(n.strong,{children:"Alternative Platforms"}),":\nYou can also deploy your agent on other platforms like ",(0,r.jsx)(n.a,{href:"https://railway.com/",children:"Railway"}),", ",(0,r.jsx)(n.a,{href:"https://cloud.google.com/",children:"Google Cloud Platform (GCP)"}),", or ",(0,r.jsx)(n.a,{href:"https://aws.amazon.com/",children:"Amazon Web Services (AWS)"}),". The deployment process is similar - just ensure your agent runs as a background worker/service with the required environment variables configured."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"\ud83d\udcda Useful Docs:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://uagents.fetch.ai/docs",children:"Uagents Docs"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.asi1.ai/documentation/getting-started/quickstart",children:"ASI1 Docs"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://render.com/docs",children:"Render Documentation"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.agentverse.ai/",children:"Agentverse Documentation"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},24710:(e,n,s)=>{s.d(n,{A:()=>t});const t=s.p+"assets/images/render-0c611145f80f2418c521b96e8d210ebc.png"},28453:(e,n,s)=>{s.d(n,{R:()=>o,x:()=>a});var t=s(96540);const r={},i=t.createContext(r);function o(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]);
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.