PageSourceSearch

https://orki.ai/docs/assets/js/52bc944f.1bed5d3c.js

js orki.ai collected 2026-10-05 16:11:57 UTC 19,365 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkorki_docs=globalThis.webpackChunkorki_docs||[]).push([[4194],{4998(e,n,s){s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>o,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"marketing/campaigns/creating","title":"Creating a Campaign","description":"The campaign wizard guides you through five steps: Campaign Setup, Audience, Templates, Schedule, and Review. You can navigate back and forth between steps at any time before launching. At the end you can either Save as Draft or Save & Launch.","source":"@site/docs/marketing/campaigns/creating.md","sourceDirName":"marketing/campaigns","slug":"/marketing/campaigns/creating","permalink":"/docs/marketing/campaigns/creating","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"tutorialSidebar","previous":{"title":"Campaigns Overview","permalink":"/docs/marketing/campaigns/overview"},"next":{"title":"Campaign Analytics","permalink":"/docs/marketing/campaigns/analytics"}}');var i=s(5656),r=s(6145);const l={sidebar_position:2},a="Creating a Campaign",d={},c=[{value:"Step 1: Campaign Setup",id:"step-1-campaign-setup",level:2},{value:"Retargeting",id:"retargeting",level:3},{value:"Step 2: Audience",id:"step-2-audience",level:2},{value:"Selecting Customers",id:"selecting-customers",level:3},{value:"Retargeting Filters",id:"retargeting-filters",level:3},{value:"Audience Count",id:"audience-count",level:3},{value:"Step 3: Templates",id:"step-3-templates",level:2},{value:"Selecting Templates",id:"selecting-templates",level:3},{value:"A/B Testing",id:"ab-testing",level:3},{value:"Variable Mapping",id:"variable-mapping",level:3},{value:"Step 4: Schedule",id:"step-4-schedule",level:2},{value:"Timezone",id:"timezone",level:3},{value:"Time Slots",id:"time-slots",level:3},{value:"Automatic Pacing",id:"automatic-pacing",level:3},{value:"Step 5: Review & Launch",id:"step-5-review--launch",level:2},{value:"Review Checklist",id:"review-checklist",level:3},{value:"Template Preview",id:"template-preview",level:3},{value:"Launching",id:"launching",level:3},{value:"Quick Reference",id:"quick-reference",level:2},{value:"Next Steps",id:"next-steps",level:2}];function h(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",hr:"hr",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.header,{children:(0,i.jsx)(n.h1,{id:"creating-a-campaign",children:"Creating a Campaign"})}),"\n",(0,i.jsxs)(n.p,{children:["The campaign wizard guides you through five steps: Campaign Setup, Audience, Templates, Schedule, and Review. You can navigate back and forth between steps at any time before launching. At the end you can either ",(0,i.jsx)(n.strong,{children:"Save as Draft"})," or ",(0,i.jsx)(n.strong,{children:"Save & Launch"}),"."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"step-1-campaign-setup",children:"Step 1: Campaign Setup"}),"\n",(0,i.jsx)(n.p,{children:"Configure the campaign's identity and reply handling."}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{style:{textAlign:"center"},children:"Required"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Campaign Name"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Yes"}),(0,i.jsx)(n.td,{children:'A descriptive name for internal reference (e.g., "Ramadan 2026 - Week 1")'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Agent"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"Yes"}),(0,i.jsx)(n.td,{children:"Which AI agent handles customer replies to this campaign"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Retargeting"})}),(0,i.jsx)(n.td,{style:{textAlign:"center"},children:"No"}),(0,i.jsx)(n.td,{children:"Toggle on to target non-responders from a previous campaign"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"retargeting",children:"Retargeting"}),"\n",(0,i.jsxs)(n.p,{children:["When retargeting is enabled, the audience step changes to let you select a ",(0,i.jsx)(n.strong,{children:"previous campaign"})," and a ",(0,i.jsx)(n.strong,{children:"filter type"}),". Instead of building a new audience, your campaign will target customers from the selected campaign who match the engagement filter."]}),"\n",(0,i.jsx)(n.p,{children:"This is useful for follow-up campaigns -- for example, re-sending to customers who didn't read your first message."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"step-2-audience",children:"Step 2: Audience"}),"\n",(0,i.jsxs)(n.p,{children:["Define who receives the campaign. The audience step shows a ",(0,i.jsx)(n.strong,{children:"customer grid"})," with explicit selection \u2014 you always see exactly who will receive the campaign."]}),"\n",(0,i.jsx)(n.h3,{id:"selecting-customers",children:"Selecting Customers"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Narrow the grid using ",(0,i.jsx)(n.strong,{children:"segments"})," and ",(0,i.jsx)(n.strong,{children:"advanced filters"})," (tags, custom attributes, language, platform, country, ...)"]}),"\n",(0,i.jsxs)(n.li,{children:["Use ",(0,i.jsx)(n.strong,{children:"select-all-matching"})," to select every customer matching the current filters"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.strong,{children:"Exclude individual customers"})," by unchecking them"]}),"\n",(0,i.jsxs)(n.li,{children:["An ",(0,i.jsx)(n.strong,{children:'"Include opted out"'})," toggle lets you include customers who opted out of marketing \u2014 a spam warning is shown when you enable it; use with care"]}),"\n"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Filter"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Example"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Segments"})}),(0,i.jsx)(n.td,{children:"Pre-saved customer segments"}),(0,i.jsx)(n.td,{children:'"VIP Customers", "New This Month"'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Tags"})}),(0,i.jsx)(n.td,{children:"Customer tags"}),(0,i.jsx)(n.td,{children:'"Premium", "Interested in Electronics"'})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Custom Attributes"})}),(0,i.jsx)(n.td,{children:"Any custom attribute on the customer profile"}),(0,i.jsx)(n.td,{children:"Membership tier, signup source"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Language"})}),(0,i.jsx)(n.td,{children:"Customer's preferred language"}),(0,i.jsx)(n.td,{children:"English, Arabic"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Platform"})}),(0,i.jsx)(n.td,{children:"Connected messaging platforms"}),(0,i.jsx)(n.td,{children:"WhatsApp, Instagram, Web"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Country"})}),(0,i.jsx)(n.td,{children:"Customer's country"}),(0,i.jsx)(n.td,{children:"Oman, UAE, Saudi Arabia"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"retargeting-filters",children:"Retargeting Filters"}),"\n",(0,i.jsx)(n.p,{children:"When retargeting is enabled (from Step 1), you select a previous campaign and one of these engagement filters:"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Filter"}),(0,i.jsx)(n.th,{children:"Targets Customers Who..."})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Not Read"})}),(0,i.jsx)(n.td,{children:"Received the message but did not read it"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Not Responded"})}),(0,i.jsx)(n.td,{children:"Read the message but did not reply"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Not Delivered"})}),(0,i.jsx)(n.td,{children:"Message was not delivered (e.g., phone off, number invalid)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Failed"})}),(0,i.jsx)(n.td,{children:"Message sending failed entirely"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"audience-count",children:"Audience Count"}),"\n",(0,i.jsx)(n.p,{children:"The wizard displays the number of selected customers. Review this number to make sure your targeting is correct before proceeding."}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"step-3-templates",children:"Step 3: Templates"}),"\n",(0,i.jsx)(n.p,{children:"Select the templates to send and configure variable mappings."}),"\n",(0,i.jsx)(n.h3,{id:"selecting-templates",children:"Selecting Templates"}),"\n",(0,i.jsxs)(n.p,{children:["Choose one or more ",(0,i.jsx)(n.strong,{children:"approved"})," WhatsApp templates. Only templates with an APPROVED status appear in the list."]}),"\n",(0,i.jsx)(n.h3,{id:"ab-testing",children:"A/B Testing"}),"\n",(0,i.jsxs)(n.p,{children:["You can select up to ",(0,i.jsx)(n.strong,{children:"4 templates"}),"; the campaign then sets up an A/B test:"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Each customer is assigned to one template"}),"\n",(0,i.jsxs)(n.li,{children:["Optionally set a per-template ",(0,i.jsx)(n.strong,{children:"Language Filter"})," (None / Arabic / English) \u2014 customers are assigned to the template matching their language"]}),"\n",(0,i.jsxs)(n.li,{children:["Click ",(0,i.jsx)(n.strong,{children:"Preview Distribution"})," to see how customers are assigned per template, how many matched a language filter, how many are unmatched, and any overlaps"]}),"\n",(0,i.jsx)(n.li,{children:"After the campaign completes, analytics show which template performed better"}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"variable-mapping",children:"Variable Mapping"}),"\n",(0,i.jsxs)(n.p,{children:["For each selected template, map its variables (",(0,i.jsx)(n.code,{children:"{{customer_name}}"}),", ",(0,i.jsx)(n.code,{children:"{{discount}}"}),", etc.) to actual values. The mapping options are the same as broadcasts:"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Mapping Type"}),(0,i.jsx)(n.th,{children:"Description"}),(0,i.jsx)(n.th,{children:"Example"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Fixed Value"})}),(0,i.jsx)(n.td,{children:"Same value for all recipients"}),(0,i.jsxs)(n.td,{children:[(0,i.jsx)(n.code,{children:"30% off"}),", ",(0,i.jsx)(n.code,{children:"March 31"})]})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Attribute-
1Based"})}),(0,i.jsx)(n.td,{children:"Pulls from customer data"}),(0,i.jsx)(n.td,{children:"Customer Name, Email, Custom Attribute"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Conditional"})}),(0,i.jsx)(n.td,{children:"Value changes based on a condition"}),(0,i.jsxs)(n.td,{children:["If Language = Arabic then ",(0,i.jsx)(n.code,{children:"\u0645\u0631\u062d\u0628\u0627"}),", else ",(0,i.jsx)(n.code,{children:"Hello"})]})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["See ",(0,i.jsx)(n.a,{href:"../sending#variable-mapping",children:"Sending Broadcasts > Variable Mapping"})," for detailed examples of each mapping type."]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"step-4-schedule",children:"Step 4: Schedule"}),"\n",(0,i.jsx)(n.p,{children:"Configure when messages are sent."}),"\n",(0,i.jsx)(n.h3,{id:"timezone",children:"Timezone"}),"\n",(0,i.jsx)(n.p,{children:"Select the timezone for your time slots. All start/end times are interpreted in this timezone."}),"\n",(0,i.jsx)(n.h3,{id:"time-slots",children:"Time Slots"}),"\n",(0,i.jsx)(n.p,{children:"Define one or more time windows during which messages can be sent."}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Field"}),(0,i.jsx)(n.th,{children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Start Date & Time"})}),(0,i.jsx)(n.td,{children:"When this time slot begins"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"End Date & Time"})}),(0,i.jsx)(n.td,{children:"When this time slot ends"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Days of Week"})}),(0,i.jsx)(n.td,{children:"Which days this slot is active (e.g., Sunday-Thursday)"})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Multiple time slots"})," let you control delivery precisely. For example:"]}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Slot"}),(0,i.jsx)(n.th,{children:"Start"}),(0,i.jsx)(n.th,{children:"End"}),(0,i.jsx)(n.th,{children:"Days"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Slot 1"}),(0,i.jsx)(n.td,{children:"9:00 AM"}),(0,i.jsx)(n.td,{children:"12:00 PM"}),(0,i.jsx)(n.td,{children:"Sun - Thu"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:"Slot 2"}),(0,i.jsx)(n.td,{children:"10:00 AM"}),(0,i.jsx)(n.td,{children:"2:00 PM"}),(0,i.jsx)(n.td,{children:"Fri - Sat"})]})]})]}),"\n",(0,i.jsxs)(n.p,{children:["Messages are only sent during active time slots. If a time slot ends before all messages are sent, sending ",(0,i.jsx)(n.strong,{children:"pauses"})," and resumes when the next time slot begins."]}),"\n",(0,i.jsx)(n.h3,{id:"automatic-pacing",children:"Automatic Pacing"}),"\n",(0,i.jsxs)(n.p,{children:["There is no rate limit to configure \u2014 Orki ",(0,i.jsx)(n.strong,{children:"automatically paces"})," the campaign, spreading messages evenly across the time window. The review step shows the estimated send rate, and the wizard hints at the ",(0,i.jsx)(n.strong,{children:"minimum window size"})," needed for your audience."]}),"\n",(0,i.jsx)(n.p,{children:"This keeps replies manageable for your AI agents and team, and stays within WhatsApp API limits."}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsx)(n.p,{children:"Schedule campaigns during your customers' business hours for better engagement. Messages sent at 3 AM get lower read rates than messages sent at 10 AM. Use the timezone setting to match your audience's local time."})}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"step-5-review--launch",children:"Step 5: Review & Launch"}),"\n",(0,i.jsx)(n.p,{children:"The final step shows a summary of your entire campaign configuration."}),"\n",(0,i.jsx)(n.h3,{id:"review-checklist",children:"Review Checklist"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Section"}),(0,i.jsx)(n.th,{children:"What to Check"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Campaign Setup"})}),(0,i.jsx)(n.td,{children:"Campaign name and assigned agent"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Audience"})}),(0,i.jsx)(n.td,{children:"Selected customers and audience count"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Templates"})}),(0,i.jsx)(n.td,{children:"Selected templates with variable mappings previewed"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"Schedule"})}),(0,i.jsx)(n.td,{children:"Time slots, days of week, timezone, estimated send rate"})]})]})]}),"\n",(0,i.jsx)(n.h3,{id:"template-preview",children:"Template Preview"}),"\n",(0,i.jsx)(n.p,{children:"Each template is shown with its variable mappings applied, so you can see what the actual message will look like for a sample recipient."}),"\n",(0,i.jsx)(n.h3,{id:"launching",children:"Launching"}),"\n",(0,i.jsxs)(n.p,{children:["Click ",(0,i.jsx)(n.strong,{children:"Save & Launch"})," to schedule the campaign \u2014 it moves to ",(0,i.jsx)(n.strong,{children:"Scheduled"})," state and begins sending when the first time slot arrives. Or click ",(0,i.jsx)(n.strong,{children:"Save as Draft"})," to keep editing later."]}),"\n",(0,i.jsx)(n.admonition,{type:"warning",children:(0,i.jsx)(n.p,{children:"Once launched, you cannot edit the campaign. Double-check your audience count, template mappings, and schedule before clicking Launch. If you need to make changes after launch, stop the campaign and create a new one."})}),"\n",(0,i.jsx)(n.hr,{}
1),"\n",(0,i.jsx)(n.h2,{id:"quick-reference",children:"Quick Reference"}),"\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{children:"Step"}),(0,i.jsx)(n.th,{children:"Key Actions"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"1. Campaign Setup"})}),(0,i.jsx)(n.td,{children:"Name the campaign, select AI agent, toggle retargeting"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"2. Audience"})}),(0,i.jsx)(n.td,{children:"Select customers in the grid (filters, select-all-matching, exclusions)"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"3. Templates"})}),(0,i.jsx)(n.td,{children:"Select up to 4 templates, set language filters, preview distribution, map variables"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"4. Schedule"})}),(0,i.jsx)(n.td,{children:"Set timezone, define time slots and days \u2014 pacing is automatic"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{children:(0,i.jsx)(n.strong,{children:"5. Review"})}),(0,i.jsx)(n.td,{children:"Verify everything, preview templates, Save as Draft or Save & Launch"})]})]})]}),"\n",(0,i.jsx)(n.hr,{}),"\n",(0,i.jsx)(n.h2,{id:"next-steps",children:"Next Steps"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./analytics",children:"Campaign Analytics"})," -- Track performance after launch"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"./overview",children:"Campaigns Overview"})," -- Campaign lifecycle and states"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.a,{href:"../templates",children:"WhatsApp Templates"})," -- Create templates for your campaigns"]}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},6145(e,n,s){s.d(n,{R:()=>l,x:()=>a});var t=s(7140);const i={},r=t.createContext(i);function l(e){const n=t.useContext(r);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(i):e.components||i:l(e.components),t.createElement(r.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.