1"use strict";(globalThis.webpackChunkrunme_dev=globalThis.webpackChunkrunme_dev||[]).push([[8043],{55267(e,n,i){i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>t,toc:()=>l});const t=JSON.parse('{"id":"usage/devcontainers","title":"Runme in a Devcontainer","description":"Creating your development container","source":"@site/docs/usage/devcontainers.md","sourceDirName":"usage","slug":"/usage/devcontainers","permalink":"/usage/devcontainers","draft":false,"unlisted":false,"editUrl":"https://github.com/runmedev/docs.runme.dev/edit/main/docs/usage/devcontainers.md","tags":[],"version":"current","frontMatter":{"runme":{"id":"01HX525D9FNAVSGJXVF0W0FGW4","version":"v3"}},"sidebar":"tutorialSidebar","previous":{"title":"Browser launcher extension","permalink":"/usage/browser-launcher-extension"},"next":{"title":"Embedded Github Action UI","permalink":"/usage/embedded-github-action"}}');var o=i(74848),s=i(28453);const r={runme:{id:"01HX525D9FNAVSGJXVF0W0FGW4",version:"v3"}},a="Runme in a Devcontainer",d={},l=[{value:"Creating your development container",id:"creating-your-development-container",level:2},{value:"Setting up Runme in VSCode",id:"setting-up-runme-in-vscode",level:2},{value:"Running development tasks using Runme within your container",id:"running-development-tasks-using-runme-within-your-container",level:2},{value:"Other Features",id:"other-features",level:2},{value:"Conclusion",id:"conclusion",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.header,{children:[(0,o.jsx)(n.h1,{id:"runme-in-a-devcontainer",children:"Runme in a Devcontainer"}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://runme.dev/api/runme?repository=https%3A%2F%2Fgithub.com%2Frunmedev%2Fdocs.runme.dev.git&fileToOpen=docs/usage/devcontainers.md",title:"Open with runme",children:(0,o.jsx)(n.img,{src:"https://badgen.net/badge/Open%20with/Runme/5B3ADF?icon=https://runme.dev/img/logo.svg",alt:"Runme badge",title:"Open with runme"})})})]}),"\n",(0,o.jsx)(n.h2,{id:"creating-your-development-container",children:"Creating your development container"}),"\n",(0,o.jsxs)(n.p,{children:["A development container, also known as a ",(0,o.jsx)(n.code,{children:"Devcontainer"}),", is a dockerized container that allows you to run your software in a fully configured development environment. This significantly speeds up application deployment and scalability."]}),"\n",(0,o.jsx)(n.p,{children:"Dev containers are highly preferred as they enable developers to run programs without configuring anything and with zero setup required."}),"\n",(0,o.jsx)(n.p,{children:"For this guide, we will be using an already existing Python app. Feel free to clone this repository. To create a dev container, you need to:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",metastring:'{"id":"01HZM4W2BHHGKFQJXNTQ5619DD"}',children:"git clone https://github.com/stateful/blog-examples.git\ncd blog-examples\ncd devcontainer-guide\n\n"})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Install Visual Studio Code"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["If you haven\u2019t installed this yet you should ",(0,o.jsx)(n.a,{href:"https://code.visualstudio.com/",children:"install it now"}),"."]}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["Install the Dev Containers extension ( formerly called ",(0,o.jsx)(n.em,{children:"Remote- Container extension"}),")"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["In your VS Code, navigate to the extension view by clicking on the ",(0,o.jsx)(n.strong,{children:"Extensions Icon"})," in the Activity bar on the side of the window. Search for ",(0,o.jsx)(n.strong,{children:"Dev Containers"}),"\xa0 and install the extension."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"dev container installation",src:i(71244).A+"",width:"1770",height:"292"})}),"\n",(0,o.jsxs)(n.ol,{start:"3",children:["\n",(0,o.jsx)(n.li,{children:"In your VS Code project, create a Dev Container Configuration"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["On the bottom left of your Code editot, click the ",(0,o.jsx)(n.strong,{children:"Remote container"})," icon."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"remote icon",src:i(43028).A+"",width:"512",height:"34"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["When prompted on the new view that gets displayed, click on ",(0,o.jsx)(n.strong,{children:"Reo
1pen in Container"}),"."]}),"\n",(0,o.jsx)(n.li,{children:"A new view will open to enable you to add dev container configuration files."}),"\n",(0,o.jsx)(n.li,{children:"In this view, search for your specified programming language and also add additional features you wish to install."}),"\n",(0,o.jsxs)(n.li,{children:["Click ",(0,o.jsx)(n.strong,{children:"OK"})," to proceed."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"Your system will first add the Dev container configuration files and start the Dev container configuration."}),"\n",(0,o.jsxs)(n.p,{children:["Once these steps are complete, your ",(0,o.jsx)(n.code,{children:".devcontainer"}),", ",(0,o.jsx)(n.code,{children:"devcontainer.json"}),", and ",(0,o.jsx)(n.code,{children:".github"})," directories will be created, as displayed in the image below."]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"runme-calculator",src:i(21316).A+"",width:"2000",height:"1438"})}),"\n",(0,o.jsxs)(n.ol,{start:"4",children:["\n",(0,o.jsx)(n.li,{children:"Run Your App:"}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Run your app in the terminal depending on your script's programming language. This guide uses a Python app named ",(0,o.jsx)(n.code,{children:"calculator.py"})," so we will run the following command"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-bash",metastring:'{"id":"01HPF5MXD3HBWB5T32AAF6S9JF"}',children:"\npython calculator.py\n\n"})}),"\n",(0,o.jsx)(n.p,{children:"This will execute your Python app within the dev container."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"python app",src:i(56747).A+"",width:"2000",height:"724"})}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.strong,{children:"Note:"})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"Ensure Docker is open and running on your system before you create a Dev container."}),"\n",(0,o.jsxs)(n.li,{children:["You do not need to create a separate dockerfile for this as the base image and settings needed for your development environment are specified in the dev container configuration (",(0,o.jsx)(n.code,{children:"devcontainer.json"}),"). This eliminates the need for explicit Dockerfile maintenance and makes it simple to share and replicate the development environment across several machines."]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"setting-up-runme-in-vscode",children:"Setting up Runme in VSCode"}),"\n",(0,o.jsxs)(n.p,{children:["Installing Runme in your VS Code is one of the various ways you can utilize the awesome features of Runme. To set up Runme on VS Code, follow our ",(0,o.jsx)(n.a,{href:"/installation/vscode",children:"installation guide."})]}),"\n",(0,o.jsx)(n.h2,{id:"running-development-tasks-using-runme-within-your-container",children:"Running development tasks using Runme within your container"}),"\n",(0,o.jsx)(n.p,{children:"Runme works perfectly\xa0 to automate processes and conduct development operations within the container . To run your code with Runme in your dev container, follow the steps below:"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Create and open your ",(0,o.jsx)(n.strong,{children:"README.md"})," file in your VS Code."]}),"\n",(0,o.jsxs)(n.li,{children:["Click on the ",(0,o.jsx)(n.strong,{children:"+Code"})," icon and type in your code script."]}),"\n",(0,o.jsxs)(n.li,{children:["Click on the ",(0,o.jsx)(n.strong,{children:"Remote Container"})," icon on the bottom left of your VS Code."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"remote icon",src:i(43028).A+"",width:"512",height:"34"})}),"\n",(0,o.jsx)(n.p,{children:"Now a new view opens that prompts you to select and open a remote window."}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Click on ",(0,o.jsx)(n.strong,{children:"Dev container"})," or ",(0,o.jsx)(n.strong,{children:"Add dev container configuration files"})]}),"\n",(0,o.jsx)(n.li,{children:"Choose a dev container configuration based on your programming language. This guide uses a Python app, so the Python dev container will be used."}),"\n",(0,o.jsx)(n.li,{children:"Now choose the version you want and add any other features you want to install."}),"\n",(0,o.jsxs)(n.li,{children:["Now click ",(0,o.jsx)(n.strong,{children:"OK"}),". Your container configuration gets added, and the container starts."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:"You will notice that your README.md file switches over to a normal Markdown setting."}),"\n",(0,o.jsx)(n.p,{children:"You must take it back to a Runme setting to enable you to run your code with Runme in a Dev container. To do this,"}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Go to the extensions page and search for Runme."}),"\n",(0,o.jsxs)(n.li,{children:["Click on the Runme extension and click on the ",(0,o.jsx)(n.strong,{children:"Install in Dev container"})]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"install dev c
1ontainer",src:i(6755).A+"",width:"1464",height:"300"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:"Once it is installed, go back to your README.md file, and you will see your code in Runme format."}),"\n",(0,o.jsxs)(n.li,{children:["Click on ",(0,o.jsx)(n.strong,{children:"Select Cell Language Mode"})," and configure it to the programming language of your script."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"set shebang",src:i(18704).A+"",width:"1504",height:"604"})}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Now click the ",(0,o.jsx)(n.strong,{children:"Run"})," icon and view your output on the Runme terminal."]}),"\n"]}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"ouput",src:i(5236).A+"",width:"2000",height:"532"})}),"\n",(0,o.jsx)(n.h2,{id:"other-features",children:"Other Features"}),"\n",(0,o.jsx)(n.p,{children:"Some other actions that can be performed in your Dev container include cloning repository, configuring container features, exploring a volume, etc. The image below shows you a non-exhaustive list of some of these actions."}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.img,{alt:"output dev container",src:i(69386).A+"",width:"1226",height:"662"})}),"\n",(0,o.jsx)(n.h2,{id:"conclusion",children:"Conclusion"}),"\n",(0,o.jsx)(n.p,{children:"In this guide, we demonstrated how to create a dev container, set up Runme on VS Code, run development tasks using Runme within your container."}),"\n",(0,o.jsx)(n.p,{children:"The development process is made more effective by the ability to automate processes and conduct development operations within the container using Runme."}),"\n",(0,o.jsx)(n.p,{children:"By following the steps outlined in the guide, developers can greatly improve their workflow and concentrate more on creating scalable and effective software."})]})}function u(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},69386(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/devcontainer-output-e0fcf483ef8a354d0cea52fdc0d98d05.png"},21316(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/explorer-7e54d5dfa11f6696a3d370ead0a5f8cd.png"},6755(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/runme-dev-container-desktop-390d9aebef8053589d1768cd66b75f27.png"},71244(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/runme-dev-container-54892f12516a06bf10c86459004f0f75.png"},18704(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/runme-python-terminal-d2109cbd80cedb5d67bd8c7984a1286f.png"},5236(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/runme-terminal-devcontainer-e987a1ad451c20ad0ecca2d5acbc595e.png"},56747(e,n,i){i.d(n,{A:()=>t});const t=i.p+"assets/images/terminal-runme-e3030ca3aeb632c27880994384f23447.png"},43028(e,n,i){i.d(n,{A:()=>t});const t="data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAMCAggICAgICAgICAcICAgIBwgICQgICAcICAgIBggICAgICQgICAgICAcICAoICAgICQkJCAgLDQoIDggICggBAwQEBgUGCQYGBggICAgNCAgICAgICAgICAgICAgICAgICAgOCAgICAgICAgICAgICAgICAgICQgICAgICAgICP/AABEIACICAAMBEQACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAAAQIGCAMFBwT/xABDEAABAwEFBgQDBAYIBwAAAAACAAEDBAUREhVTExQhkpPRBlFSsQcxQSIzYdMYJTKh0vAkVHOBkbLBwggWIzRCVZX/xAAcAQEAAQUBAQAAAAAAAAAAAAAAAQIDBQYHBAj/xAA/EQEAAQMBAwYICwkBAAAAAAAAAQIDEQQFITEGBxJBYZIiMlRxkZOh0RMUFhcjM1FSgbGzJkNiY3JzgsHhNf/aAAwDAQACEQMRAD8A05b/AIeqzWpeab8lYS3tKu5Gbemu1U9lLq97kJXRXNFzXWaOj1XLsRUfo9VurS8035KfHq/Jb3q5WvkVHl2m9bSfo9VurTc035KqjXVeTXvVVHyKjy7S+tpP0eq3Vpeab8lROuq8mveqqR8iY8u0vraXw258EqqnhkmOSnIYxxOIPLidr2bhiiFr+PmyinaPhxRVbromeEV0zTnzZ4vPrORdyzpq9RRqLdyKOPwdUVRE4ziccJYLuR+l1nMxMbnN8Yjtcz0ZYGa5/wBsn/xEG/0dQhQaeRmdmYmvbCVz3YhxMeEmv4jiESwvwxAJXXizsFNxP0ugbifpdA3E/S6BuJ+l0DcT9LoG4n6XQNxP0ugbifpdA3E/S6BuJ+l0DcT9LoG4n6XQNxP0ugbifpdA3E/S6BuJ+l0DcT9LoG4n6XQNxP0ugbifpdA3E/S6BuJ+l0DcT9LoG4n6XQNxP0ugbifpdA3E/S6BuJ+l0DcT9LoG4n6XQNxP0ugbifpdA3E/S6C8FGTEP2X+be6D7ZInvfh9fwQV2L+XsgbF/L2QNi/l7IGxfy9kDYv5eyBsX8vZA2L+XsgbF/L2QNi/l7IGxfy9kDYv5eyBsX8vZA2L+XsgbF/L2QNi/l7IGxfy9kDYv5eyBsX8vZA2L+XsgbF/L2QNi/l7INqa0+K7PyJs26tm2pqopmZjfM0xMz52g86urv07f1EU3bkRE7oiuqMehwM/8/u91vNVmxTG+mmJ6o6MOR06zVVxuvXd38dfvd5B4adqUqqWTYxleNILi5SVkouzG0Y3i7QRM7PJUF9gSwxi0hG7R+Cq/bm/Fq3ZprmPHxERFEY3ZnG+Z6qePGZxEb/dRc1PwXTqv3IifF8OrM+30z29cuixLJxp7WfFpn/GN3Y8E67VZj6e536ve6L4hP8Aq6t/sS/2L555xLdNO1tDFMRETTcziIj95D635pr1y7yX2rNyuqqYu0Ymqqapj6KPty1opKQpDCMBc5JDGOMBa8jkMmAAFvqRk7CzfV3ZYCODCTxlnFX4CoKeTd6y1njqxLBUR0dAVdDTHe47M6gquk20gELhI1NBKISMYCUrh9qUOi8Z+CpKKUAI45oZ4hqKOqhdygq6aRyEZo3IRMbiEo5IjEZIpBIXb9ly
1DvPCPwKtavpCraSkeWnbaNH/ANWEJal4fv2pYTMZajYXPtMAvxYhHGQkLBgQFezO3Fna9v7+KDO/DnwnkqKGWsaYAmunKgoiDFPagUQjJaJwFiZh3SM8bAwGU7x1ADs9i7uGCsV/y4s/y+vD5oM9sf4E2tUUT2hDRkdJszlB2kiaaeGJ8Ms8FM57eWGJ2fFIEdzs14424oMBF7+LfJ+Lfi3n/PzQSgzL4Y/CuotWSoCAhDd4RMjNnISlmkGCmh4O2HanjI5nxDDDDKbidwgYW8K/CioqZogkfc6aWKapGtnA93OlpyZp6iByeNqgIgd5yYJGfdxOVsVwjIGO1/hyeOqOiKMnqwqSo3iD7ZFUDLu2zC5mxucjYRdmbFez3NfwDJPiD8GLSsoYjrqdoo5SeMTCWGcBnFsR00hQmbR1MY/aKIvoxOLmwlhDCUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQbd2i/2v5/Bdr5FTjZdrs3fg55zrx+0Go87vfh+dTvDDTiEmKM2qAnu3UqW7FNvjk7CFMwtiOR3F43ZiAhMY3baNp/BRazcmY3+BVT4/T6op7eqOzjuy5Xos9Pdjo9ed0duZ6o+32ZnEOy8V+JaM9vTAM01PA7tZNQT3TwxuW0Knlc2EpqPGcpQtIwyxO7EzDtpwWO0mlv0zReqmKaqt92I4VTwirdwqmMZxunr4RL26i9anpW4iaqad1Ez1RjOO2mJzjO+I4MIxLZsxM5YPG+PP7HS+Pn/V1b/ZE3+RfO/OJ/62h/pufqQ+vuaOP2X2r/dp/Sh4t8HfEkNHa1n1U74YIaoHlO5naITYoWmdn+kDyNO/zuaK+57lr8cGInjL0Tw7bsdjRjZlplI9p7ad6CpaFpsheaMoAtGhKQMdoDXy4KnBSk4RiLTx/wBK4EQw34i0509BY1BOzjWU42hU1ERX7SljtCankp4Jb2xBK408lSUUl0sbVA4xF3dkHs3w6sY6pvB1o0ssMFBYYTDbMxTQg1nlTVhVtWc0ZGJfrOB3ISFieQZr3/ENe7H8PSWnaW7Ujfbrq2bYX33RRySSTlIbFceGCBikJnuLDGTXX8EHsr2nXxx2hJRWZWRtRSWRDYG1o6kZo6aiqKg5DwNC0shWhjOasYMOLbkJuTOzIPLfi54NakqQkjgmpqOviatooZ4zikpwkJxnpCEwF2KjqBkhFmZ2eDdzxE0oug2A+H9mOdZ4Zt0ZYBsey7AjprRmeaEXpJ6OmraeppTiImPaVEtQDsLC+PG7/wDizuGoNENwAz8HYRZ28rmZv8UHNeg9L+BHj+oo6mSnp4ttJaO708Uf2eNVHNipXPEJX057SanqWHDI1LUTGBgUYOg2Q8dBDT0eLcp56SxYnpWGQ6UhqbMnp4LHrpabYVM0hEUUTGM9ZG0kFJVTMzXQgMQa4/CX4gj/AMyUNqV5hGJ2kVVVycWjhKo2t58XdxiikmbiRPgjG8ifCToMy8d+FqiybCtCktF43q7Qt6OehZpYZTlipoz3i0mGIywRVLGMWN+JFKLYWZ8SDwC9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0C9AvQL0G3+6ySGbHG0bN91IxYxlHCL/bFmxxyMWJuDGBCzPeLuyzXJnlvptBpKdPqKK8x10xn/ra+XvNftHbG1Lur01dmKav485/1G/PXINnSixMxXMTYTZndmMb2LCTfIhxCxXPe17M/wA2ZbtVzgbKrnNXTnHCJo4T9vn7XNY5mduxwqsd/GY7XFlJ/h+9VfOHsuN3Sud1bnmX27O76DvmUn+H7+yfOHsv71zuqfmW27Ebpsbv5jpvH9ATWdWM7i18TviJ8IjxBryd+DN5uuV8qNtWNsbQ017S9KYtU101ZjHhTXmPY7lyR5K6rkxyd2hZ1tduK71VNyiKKul4MW4pnP4w1nGhHXpn/DbA96rxuczmWWWH8R7TpYWp6e1yhpxvYYhqhwxs/B2icmIoW/CEo2Z+LXPe6YQxaSlvciKpgIiIiMinEiMifERETu5ERO7u5O7k7u7u7u6YHCdkg74nmpXLzeWN38/fimB9NNE4OxBVQgbcWMKhgMXdrr2MXYme7hezs93DzTA+9rdqv/aSf/Qm/NTA+OtM5XZ5a2OV2a5nmqnlcW+dzPIROzX8bmdmvTA+R7MC+/bUt/B79rHfe3yf+76P9L3uuvTAtuA69N1gTAbgOvTdYEwPos8ihMZIquGKUL3CSOoEDB3FwdxIXZxdxIhvZ77idMDis6naFyeKop43OM4jcJgHHFKLxyRlddfHIDuJA/Amd72TApl469N1gTArFZQD+zNStf8AO6WNr/5vTAtuA69N1gTAnLx16brAmA3Adem6wJgMvHXpusCYDcB16brAmAy8dem6wJgNwHXpusCYDcB16brAmA3Adem6wJgNwHXpusCYDLx16brAmA3Adem6wJgMvHXpusCYDcB16brAmAy8dem6wJgRuA69N1gTAnLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgMvHXpusCYDLx16brAmAy8dem6wJgY7F4nqf6xP1ZP4l5KLVHS8Sn0Q2ejWX+j9fc79XvVLxPU/1ifqyfxK98FR9yn0Qs/HNRn6+536ve4n8UVN//AHE/Vk/iVubVH3KfRC1Ot1Gfr7nrKve5B8U1Vz/0mfqyfxJFqj7lPohX8cv4n6e536verF4gqDAhOeYxd2vEpDIX4/Vnd2dR0Kaa6cUxHmiIUUam9c092K7tdUY4VV1T+brPospXwhhZ4R+H5KNaEnrPmLurClbMZNQ+Yu6qDMZNQ+Yu6gMxk1D5i7oGYyah8xd0EPaMmofMXdBIWlJqHzF3QcuYyah8xd0DMZNQ+Yu6Cp2jJqHzF3QVC0ZNQ+Yu6CZLRk1D5i7oKhaMmofMXdBaS0ZNQ+Yu6CuYyah8xd0FytGS77w+Yu6CmYyah8xd0FxtGS77w+Yu6CmYyah8xd0FgtGTUPmLugq9oyah8xd0EjaMmofMXdAO0ZNQ+Yu6CMxk1D5i7oLnaMmofMXdBTMZNQ+Yu6C72jJd94fMXdBTMZNQ+Yu6C4WjJqHzF3QMyk1D5i7oGZSah8xd0EZlJqHzF3QTmUmofMXdSIzGTUPmLuoE5lJqHzF3UiMxk1D5i7qBOZSah8xd1IjMpNQ+Yu6gTmUmofMXdAzKTUPmLugjMpNQ+Yu6Ccyk1D5i7oIzKTUPmLugnMpNQ+Yu6kRmMmofMXdQJzKTUPmLupDMpNQ+Yu6BmUmofMXdAzKTUPmLugZlJqHzF3QMyk1D5i7oGZSah8xd0DMpNQ+Yu6BmUmofMXdAzKTUPmLugZlJqHzF3UBmUmofMXdSGZSah8xd0H//2Q=="},28453(e,n,i){i.d(n,{R:()=>r,x:()=>a});var t=i(96540);const o={},s=t.createContext(o);function r(e){const n=t.useContext(s);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(o):e.components||o:r(e.components),t.createElement(s.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.