1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8022],{4964:(e,i,s)=>{"use strict";s.d(i,{R:()=>d});var t=s(48447),n=s(1258),r=s.n(n),a=s(21462);let l={img:e=>(0,a.createElement)("object"==typeof e.src?r():"img",e)},d=e=>({...l,...(0,t.R)(e)})},14310:(e,i,s)=>{"use strict";s.r(i),s.d(i,{default:()=>u,useTOC:()=>p});var t=s(23798),n=s(60686),r=s(35999),a=s(4964),l=s(90514),d=s(1258),o=s.n(d);let h={src:"/_next/static/media/merge-events-01.7e4a7c29.png",height:2424,width:2714,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAABlBMVEUeHiAUFBW7BWTrAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAG0lEQVR4nGNgYGBgZGRgYGTAxmDELQViMDICAALfABg+5DHpAAAAAElFTkSuQmCC",blurWidth:8,blurHeight:7};var c=s(86534);function p(e){return[{value:"Intro",id:"intro",depth:2},{value:"Demonstration",id:"demonstration",depth:2},{value:"Behavior",id:"behavior",depth:2},{value:"Merging events",id:"merging-events",depth:3},{value:"Upgrades",id:"upgrades",depth:2},{value:"Hard Upgrade",id:"hard-upgrade",depth:3},{value:"In-place Upgrade (without backfill)",id:"in-place-upgrade-without-backfill",depth:3},{value:"In-place Upgrade (with backfill)",id:"in-place-upgrade-with-backfill",depth:3},{value:"Reset",id:"reset",depth:3},{value:"Public API Access",id:"public-api-access",depth:2},{value:"Considerations",id:"considerations",depth:2},{value:"Complex Types",id:"complex-types",depth:3}]}let u=(0,n.e)(function(e){let{toc:i=p(e)}=e,s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...(0,a.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{children:"No Code Indexing"}),"\n",(0,t.jsx)(s.h2,{id:i[0].id,children:i[0].value}),"\n",(0,t.jsx)(s.p,{children:"Most novel products on Aptos require custom indexing. Unfortunately, custom indexing is hard for two key reasons:"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Devs must write code to describe their indexing logic."}),"\n",(0,t.jsx)(s.li,{children:"Devs must manage infrastructure to run an indexer."}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"The Geomi No Code Indexing platform solves both of these problems by eliminating the need to write code or run infrastructure yourself."}),"\n",(0,t.jsx)(s.p,{children:"Learn how to use No Code Indexing in 116 seconds with this video:"}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)("iframe",{width:"672",height:"378",src:"https://www.youtube.com/embed/KrrnFc1C2WY?si=3uXcSMkdgBN3XGPU",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,t.jsx)(s.h2,{id:i[1].id,children:i[1].value}),"\n",(0,t.jsx)(s.p,{children:"Learn how to use Geomi No Code Indexing with this end-to-end demo, using the Petra Web Hong Bao experience as an example:"}),"\n",(0,t.jsx)("br",{}),"\n",(0,t.jsx)("iframe",{width:"672",height:"378",src:"https://www.youtube.com/embed/J2yyRpbyZP4?si=Q3jJzzdME_rOm6wj",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,t.jsx)(s.p,{children:"Resources referred to in the demo:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://aptosconnect.app/dashboard/main-account/apps/?widget=hongbao",children:"Petra Web Hong Bao"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/aptos-labs/hong-bao/tree/main/move",children:"Hong Bao Move code"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://hasura.io/docs/2.0/getting-started/how-it-works/index/",children:"Getting started with Hasura v2"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://the-guild.dev/graphql/codegen/plugins/typescript/typescript",children:"GraphQL Typescript codegen package"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.a,{href:"https://github.com/aptos-labs/aptos-ts-sdk/blob/main/src/types/codegen.yaml",children:"GraphQL codegen example"})}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:i[2].id,children:i[2].value}),"\n",(0,t.jsx)(s.h3,{id:i[3].id,children:i[3].value}
1),"\n",(0,t.jsx)(s.p,{children:"To write multiple events into the same row a primary key must be specified. We merge on the specified PK:"}),"\n",(0,t.jsx)(o(),{src:h,alt:"Merge events"}),"\n",(0,t.jsxs)(s.p,{children:["In this example, we upsert based on the ",(0,t.jsx)(s.code,{children:"gift_address"})," field in the events. The flow will be something like this:"]}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"CreateGiftEvent"})," is indexed. There is no row in the ",(0,t.jsx)(s.code,{children:"gifts"})," table for this particular ",(0,t.jsx)(s.code,{children:"gift_address"})," yet, so we create a new row. For example, the value for ",(0,t.jsx)(s.code,{children:"remaining_amount"})," is set based on ",(0,t.jsx)(s.code,{children:"amount"}),"."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.code,{children:"ClaimEnvelopeEvent"})," is indexed. There is already a row in the ",(0,t.jsx)(s.code,{children:"gifts"})," table for this ",(0,t.jsx)(s.code,{children:"gift_address"}),", so we update the existing row based on the values in that event rather than creating a new row. For example, ",(0,t.jsx)(s.code,{children:"remaining_amount"})," in the row is updated based on ",(0,t.jsx)(s.code,{children:"$remaining_amount.value"})," in the event."]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"It is possible to configure a composite primary key (multiple fields comprise the primary key)."}),"\n",(0,t.jsx)(s.h2,{id:i[4].id,children:i[4].value}),"\n",(0,t.jsx)(s.p,{children:"There are 4 types of upgrades. When you edit a processor, we will determine which kind of upgrade is required based on the edits you made to the processor config. You can choose to ignore this and choose a different upgrade type, but be careful, you might break your processor."}),"\n",(0,t.jsx)(s.h3,{id:i[5].id,children:i[5].value}),"\n",(0,t.jsx)(s.p,{children:"When you make a breaking change to the config, such as changing the type of a field, we will do a hard upgrade. We also consider a hard upgrade required if you change the starting version."}),"\n",(0,t.jsx)(s.p,{children:"Essentially âhard upgradingâ is just creating an entirely new processor with the new config. We do not modify or delete the old processor as part of this upgrade process. This upgrade t
1ype is recommended for production dapps that are already live so you can gracefully migrate."}),"\n",(0,t.jsx)(s.p,{children:"Once you have fully upgraded your dapp to use the new processor, you should delete the old processor."}),"\n",(0,t.jsx)(s.h3,{id:i[6].id,children:i[6].value}),"\n",(0,t.jsx)(s.p,{children:"Certain config changes can be made without requiring a backfill. For example, if you remove a column from a table, we just delete that column and weâre done. Additive changes on the other hand, such as adding a new column or defining a new mapping, require a backfill to populated existing rows."}),"\n",(0,t.jsx)(s.p,{children:"All we do in this place is update the config for the processor and restart it."}),"\n",(0,t.jsx)(s.p,{children:"Warning: After this change, your Hasura metadata (their word for a config) might refer to a DB field that no longer exists, and therefore your metadata will be considered âinconsistentâ. You can fix these issues in the console."}),"\n",(0,t.jsx)(s.h3,{id:i[7].id,children:i[7].value}),"\n",(0,t.jsx)(s.p,{children:"This is the same as the above, but we will also run a backfill to populate any new fields. This is required for changes like adding a new column to a table or defining a new mapping. This option is also recommended if you need to update the processorâs starting version to an earlier point and backfill data from there."}),"\n",(0,t.jsx)(s.h3,{id:i[8].id,children:i[8].value}),"\n",(0,t.jsx)(s.p,{children:"Stop the processor, wipe the database, and restart with the new configuration. This operates in-place, it does not create a new processor. This is only recommended for processors still in active development as there will be downtime while the infra restarts and reindexes data."}),"\n",(0,t.jsx)(s.h2,{id:i[9].id,children:i[9].value}),"\n",(0,t.jsx)(l.P,{children:"This feature is in beta, please report any issues you encounter."}),"\n",(0,t.jsx)(s.p,{children:"When you enable public API access for your processor, anyone can query your processorâs API using their own API key. It has the following properties:"}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Billing:"})," The caller gets billed for API usage, not you."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Access:"})," Anyone with any valid API key can query this endpoint. The key does not have to be for a processor, a regular API key works too."]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"Read-only:"})," This endpoint is read-only, callers cannot write data or change your Hasura metadata."]}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"The public URL follows the pattern:"}),"\n",(0,t.jsx)(s.pre,{tabIndex:"0","data-language":"plaintext","data-word-wrap":"","data-copy":"",children:(0,t.jsx)(s.code,{children:(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{children:"https://api.{network}.aptoslabs.com/nocode/v1/public/{instance_id}/v1/graphql"})})})}),"\n",(0,t.jsx)(s.p,{children:"To enable or disable public API access:"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:"Navigate to the page for your processor."}),"\n",(0,t.jsx)(s.li,{children:"Click the three dots menu in the top right."}),"\n",(0,t.jsx)(s.li,{children:"Select âEnable Public APIâ or âDisable Public APIâ."}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:i[10].id,children:i[10].value}),"\n",(0,t.jsx)(s.h3,{id:i[11].id,children:i[11].value}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:["We support ",(0,t.jsx)(s.code,{children:"Vec<T>"}),". At the moment ",(0,t.jsx)(s.code,{children:"T"})," must be a primitive type (u8 â u256, address, String). It will become ",(0,t.jsx)(s.code,{children:"ARRAY"})," in the DB."]}),"\n",(0,t.jsx)(s.li,{children:"We support fields with generics, but donât support indexing events that themselves have a generic type:"}),"\n"]}),"\n",(0,t.jsx)(s.pre,{icon:c.I,tabIndex:"0","data-language":"rust","data-word-wrap":"","data-copy":"",children:(0,t.jsxs)(s.code,{children:[(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// This is supported."})}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"#[event]"})}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"struct"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" MyEvent"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" has drop, store {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" field1"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:":"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" MyStruct"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"<"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"u64"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:">,"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,t.jsx)(s.span,{children:" "}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"struct"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" MyStruct"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"<"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"T"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"> has drop,store {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" my_value"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:":"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" T"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:","})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" other_value"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:":"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" u16"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:","})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,t.jsx)(s.span,{children:" "}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// This is not supported."})}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"#[event]"})}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"struct"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" MyEvent"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"<"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"T"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"> has drop, store {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" field1"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:":"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" T"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})})]})},"/docs/no-code-indexing",{filePath:"src/pages/docs/no-code-indexing.mdx",pageMap:r.O,frontMatter:{},title:"No Code Indexing"},"undefined"==typeof RemoteContent?p:RemoteContent.useTOC)},35999:(e,i,s)=>{"use strict";s.d(i,{O:()=>t});let t=[{data:{docs:{type:"page",title:"Documentation"}}},{name:"docs",route:"/docs",children:[{data:{introduction:{title:"Introduction"},start:{title:"Getting Started"},"api-keys":{title:"API Keys"},"api-reference":{title:"API Reference"}
1,"no-code-indexing":{title:"No-Code Indexing"},"gas-stations":{title:"Gas Stations"},"aptos-mcp":{title:"Aptos MCP"},admin:{title:"Admin"},faq:{title:"FAQ"},identity:{title:"Identity",href:"https://aptos.dev/en/build/guides/aptos-keyless"}}},{name:"admin",route:"/docs/admin",children:[{data:{billing:{title:"Billing"},"resource-management":{title:"Resource Management"}}},{name:"billing",route:"/docs/admin/billing",frontMatter:{sidebarTitle:"Billing"}},{name:"resource-management",route:"/docs/admin/resource-management",frontMatter:{title:"Resource Management"}}]},{name:"api-keys",route:"/docs/api-keys",children:[{data:{"frontend-keys":{title:"Frontend Keys"}}},{name:"frontend-keys",route:"/docs/api-keys/frontend-keys",frontMatter:{sidebarTitle:"Frontend Keys"}}]},{name:"api-keys",route:"/docs/api-keys",frontMatter:{sidebarTitle:"API Keys"}},{name:"api-reference",route:"/docs/api-reference",frontMatter:{title:"API Reference"}},{name:"aptos-mcp",route:"/docs/aptos-mcp",frontMatter:{title:"Aptos MCP"}},{name:"faq",route:"/docs/faq",frontMatter:{sidebarTitle:"Faq"}},{name:"gas-stations",route:"/docs/gas-stations",children:[{data:{shelby:{title:"Shelby"}}},{name:"shelby",route:"/docs/gas-stations/shelby",frontMatter:{sidebarTitle:"Shelby"}}]},{name:"gas-stations",route:"/docs/gas-stations",frontMatter:{sidebarTitle:"Gas Stations"}},{name:"introduction",route:"/docs/introduction",frontMatter:{sidebarTitle:"Introduction"}},{name:"no-code-indexing",route:"/docs/no-code-indexing",frontMatter:{sidebarTitle:"No Code Indexing"}},{name:"start",route:"/docs/start",children:[{data:{}}]},{name:"start",route:"/docs/start",frontMatter:{sidebarTitle:"Start"}}]}]},60686:(e,i,s)=>{"use strict";s.d(i,{e:()=>o});var t=s(23798),n=s(56694),r=s(29855);let a=(0,s(21462).createContext)({}),l=a.Provider;a.displayName="SSG";var d=s(4964);function o(e,i,s,t){let r=globalThis[n.VZ];return r.route=i,r.pageMap=s.pageMap,r.context[i]={Content:e,pageOpts:s,useTOC:t},h}function h({__nextra_pageMap:e=[],__nextra_dynamic_opts:i,...s}){let a=globalThis[n.VZ],{Layout:d,themeConfig:o}=a,{route:h,locale:p}=(0,r.r)(),u=a.context[h];if(!u)throw Error(`No content found for the "${h}" route. Please report it as a bug.`);let{pageOpts:g,useTOC:x,Content:k}=u;if(h.startsWith("/["))g.pageMap=e;else for(let{route:i,children:s}of e){let e=i.split("/").slice(p?2:1);(function e(i,[s,...t]){for(let n of i)if("children"in n&&s===n.name)return t.length?e(n.children,t):n})(g.pageMap,e).children=s}if(i){let{title:e,frontMatter:s}=i;g={...g,title:e,frontMatter:s}}return(0,t.jsx)(d,{themeConfig:o,pageOpts:g,pageProps:s,children:(0,t.jsx)(l,{value:s,children:(0,t.jsx)(c,{useTOC:x,children:(0,t.jsx)(k,{...s})})})})}function c({children:e,useTOC:i}){let{wrapper:s}=(0,d.R)();return(0,t.jsx)(p,{useTOC:i,wrapper:s,children:e})}function p({children:e,useTOC:i,wrapper:s,...n}){let r=i(n);return s?(0,t.jsx)(s,{toc:r,children:e}):e}},69039:(e,i,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/docs/no-code-indexing",function(){return s(14310)}])},90514:(e,i,s)=>{"use strict";s.d(i,{P:()=>d});var t=s(23798),n=s(71623),r=s(86534);let a={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,t.jsx)(r.KS,{className:"_mt-1"}),warning:"â ï¸"},l={default:(0,n.A)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.A)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.A)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.A)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function d({children:e,type:i="default",emoji:s=a[i]}){return(0,t.jsxs)("div",{className:(0,n.A)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",l[i]),children:[(0,t.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:s}),(0,t.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=69039)),_N_E=e.O()}]);
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.