PageSourceSearch

https://internetcomputer.org/_next/static/chunks/b072b116dfa1494b.js

js internetcomputer.org collected 2026-10-02 04:55:04 UTC 77,210 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82654,e=>{e.v({appCard:"home-module__ATshoG__appCard",appCopy:"home-module__ATshoG__appCopy",appImage:"home-module__ATshoG__appImage",appMeta:"home-module__ATshoG__appMeta",appSlide:"home-module__ATshoG__appSlide",appStatus:"home-module__ATshoG__appStatus",arrowButton:"home-module__ATshoG__arrowButton",arrows:"home-module__ATshoG__arrows",closing:"home-module__ATshoG__closing",document:"home-module__ATshoG__document",documentCaption:"home-module__ATshoG__documentCaption",documentPreview:"home-module__ATshoG__documentPreview",documents:"home-module__ATshoG__documents",documentsBand:"home-module__ATshoG__documentsBand",documentsStacked:"home-module__ATshoG__documentsStacked",home:"home-module__ATshoG__home",institution:"home-module__ATshoG__institution",institutionCopy:"home-module__ATshoG__institutionCopy",institutionImage:"home-module__ATshoG__institutionImage",institutionLead:"home-module__ATshoG__institutionLead",institutionList:"home-module__ATshoG__institutionList",institutions:"home-module__ATshoG__institutions",leadImage:"home-module__ATshoG__leadImage",leadStory:"home-module__ATshoG__leadStory",pillars:"home-module__ATshoG__pillars",press:"home-module__ATshoG__press",pressGrid:"home-module__ATshoG__pressGrid",railControls:"home-module__ATshoG__railControls",research:"home-module__ATshoG__research",researchBand:"home-module__ATshoG__researchBand",rotationButton:"home-module__ATshoG__rotationButton",selfGrid:"home-module__ATshoG__selfGrid",selfHead:"home-module__ATshoG__selfHead",selfPillars:"home-module__ATshoG__selfPillars",selfWriting:"home-module__ATshoG__selfWriting",showcase:"home-module__ATshoG__showcase",showcaseHeading:"home-module__ATshoG__showcaseHeading",source:"home-module__ATshoG__source",story:"home-module__ATshoG__story",storyList:"home-module__ATshoG__storyList",textLink:"home-module__ATshoG__textLink",track:"home-module__ATshoG__track",video:"home-module__ATshoG__video",videoPlayer:"home-module__ATshoG__videoPlayer",viewport:"home-module__ATshoG__viewport"})},2200,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(93856);let i={direction:"forward",speed:2,startDelay:1e3,active:!0,breakpoints:{},playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,rootNode:null};function o(e={}){let t,a,r,n,s,l=0,c=!1,d=!1;function h(){if(r||c)return;a.emit("autoScroll:play");let e=a.internalEngine(),{ownerWindow:i}=e;l=i.setTimeout(()=>{e.scrollBody=function(e){let{location:r,previousLocation:i,offsetLocation:o,target:n,scrollTarget:s,index:l,indexPrevious:c,limit:{reachedMin:d,reachedMax:h,constrain:p},options:{loop:m}}=e,x="forward"===t.direction?-1:1,f=()=>v,y=0,g=0,_=r.get(),b=0,w=!1,v={direction:()=>g,duration:()=>-1,velocity:()=>y,settled:()=>w,seek:function(){i.set(r),y=x*t.speed,_+=y,r.add(y),n.set(r),g=Math.sign(_-b),b=_;let e=s.byDistance(0,!1).index;l.get()!==e&&(c.set(l.get()),l.set(e),a.emit("select"));let f="forward"===t.direction?d(o.get()):h(o.get());if(!m&&f){w=!0;let e=p(r.get());r.set(e),n.set(r),u()}return v},useBaseFriction:f,useBaseDuration:f,useFriction:f,useDuration:f};return v}(e),e.animation.start()},n),c=!0}function u(){if(r||!c)return;a.emit("autoScroll:stop");let e=a.internalEngine(),{ownerWindow:t}=e;e.scrollBody=s,t.clearTimeout(l),l=0,c=!1}function p(){d||u()}function m(){d||g()}function x(){d=!0,u()}function f(){d=!1,h()}function y(){a.off("settle",y),h()}function g(){a.on("settle",y)}return{name:"autoScroll",options:e,init:function(l,c){var d,y;let g;a=l;let{mergeOptions:_,optionsAtMedia:b}=c,w=_(i,o.globalOptions);if(t=b(_(w,e)),a.scrollSnapList().length<=1)return;n=t.startDelay,r=!1,s=a.internalEngine().scrollBody;let{eventStore:v}=a.internalEngine(),j=!!a.internalEngine().options.watchDrag,k=(d=a,y=t.rootNode,g=d.rootNode(),y&&y(g)||g);j&&a.on("pointerDown",p),j&&!t.stopOnInteraction&&a.on("pointerUp",m),t.stopOnMouseEnter&&v.add(k,"mouseenter",x),t.stopOnMouseEnter&&!t.stopOnInteraction&&v.add(k,"mouseleave",f),t.stopOnFocusIn&&a.on("slideFocusStart",u),t.stopOnFocusIn&&!t.stopOn
1Interaction&&v.add(a.containerNode(),"focusout",h),t.playOnInit&&h()},destroy:function(){a.off("pointerDown",p).off("pointerUp",m).off("slideFocusStart",u).off("settle",y),u(),r=!0,c=!1},play:function(e){void 0!==e&&(n=e),h()},stop:function(){c&&u()},reset:function(){c&&(u(),g())},isPlaying:function(){return c}}}o.globalOptions=void 0;var n=e.i(81392),s=e.i(53661);let l=e.i(96561).default;function c({src:e,alt:a="",sizes:r="100vw",...i}){return e?(0,t.jsx)("img",{src:e,alt:a,...l[e],sizes:r,loading:"lazy",decoding:"async",...i}):null}var d=e.i(82654);function h({mediaItems:e}){let i=(0,n.useReducedMotion)(),[l,h]=(0,a.useState)(!1),p=(0,a.useRef)(null),m=(0,a.useRef)(null),[x,f]=(0,a.useState)(null),[y,g]=(0,a.useState)(!1),[_,b]=(0,a.useState)(!1),[w,v]=(0,a.useState)(!1),[j,k]=(0,a.useState)(!0),N=l&&(x??!i),T=(0,a.useMemo)(()=>o({speed:.65,startDelay:1200,playOnInit:!1,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnFocusIn:!1}),[]),[A,S]=(0,r.default)({align:"center",containScroll:"trimSnaps",loop:!0},[T]),[M,C]=(0,a.useState)(0),[E,I]=(0,a.useState)(1),[R,D]=(0,a.useState)(!1),[P,z]=(0,a.useState)(!1),O=(0,a.useCallback)(()=>{S&&(C(S.selectedScrollSnap()),I(S.scrollSnapList().length),D(S.canScrollPrev()),z(S.canScrollNext()))},[S]);(0,a.useEffect)(()=>{if(S)return O(),S.on("select",O).on("reInit",O),()=>{S.off("select",O).off("reInit",O)}},[S,O]),(0,a.useEffect)(()=>{h(!0);let e=p.current?.querySelector("#featured-app-carousel");if(!e)return;let t=new IntersectionObserver(([e])=>v(e.isIntersecting),{threshold:.5});t.observe(e);let a=()=>k(!document.hidden);return a(),document.addEventListener("visibilitychange",a),()=>{t.disconnect(),document.removeEventListener("visibilitychange",a)}},[]),(0,a.useEffect)(()=>{if(!S)return;let e=()=>{N&&w&&j&&!y&&!_?T.play():T.stop()};return e(),S.on("reInit",e),()=>{S.off("reInit",e),T.stop()}},[S,T,N,w,j,y,_]),(0,a.useEffect)(()=>{if(!S)return;let e=()=>f(!1);return S.on("pointerDown",e),()=>{S.off("pointerDown",e)}},[S]);let G=()=>{T.stop(),f(!1)};return e.length?(0,t.jsxs)("section",{ref:p,onPointerEnter:e=>{"mouse"===e.pointerType&&g(!0)},onPointerLeave:()=>g(!1),onFocusCapture:e=>b(e.target!==m.current),onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||b(!1)},className:d.default.showcase,"aria-label":"Featured apps","aria-roledescription":"carousel",children:[(0,t.jsx)("div",{ref:A,className:d.default.viewport,id:"featured-app-carousel",tabIndex:0,"aria-label":"Browse featured apps with the left and right arrow keys",onKeyDown:e=>{e.target===e.currentTarget&&S&&(("ArrowLeft"===e.key||"ArrowRight"===e.key)&&(e.preventDefault(),G(),"ArrowLeft"===e.key?S.scrollPrev(!!i):S.scrollNext(!!i)),("Home"===e.key||"End"===e.key)&&(e.preventDefault(),G(),S.scrollTo("Home"===e.key?0:E-1,!!i)))},children:(0,t.jsx)("div",{className:d.default.track,children:e.map((a,r)=>(0,t.jsx)("article",{className:d.default.appSlide,"aria-roledescription":"slide","aria-label":r+1+" of "+e.length+": "+(a.id||a.title),children:(0,t.jsxs)(u,{href:a.linkHref,className:d.default.appCard,children:[(0,t.jsxs)("div",{className:d.default.appMeta,children:[(0,t.jsx)("span",{children:a.category}),a.status&&(0,t.jsx)("span",{className:d.default.appStatus,children:a.status})]}),(0,t.jsx)("div",{className:d.default.appImage,"data-fit":a.imageFit,children:(0,t.jsx)(c,{src:a.imageSrc,alt:a.imageAlt||"",sizes:"(max-width: 409px) 88vw, (max-width: 1058px) 360px, (max-width: 1647px) 34vw, 560px",draggable:!1})}),(0,t.jsxs)("div",{className:d.default.appCopy,children:[(0,t.jsx)("h3",{children:a.title}),(0,t.jsx)("p",{children:a.body}),a.linkHref&&a.linkText&&(0,t.jsxs)("span",{className:d.default.textLink,children:[a.linkText,(0,t.jsx)("span",{"aria-hidden":"true",children:a.linkHref.startsWith("http")?"↗":"→"})]})]})]})},a.id||a.title))})}),(0,t.jsxs)("div",{className:"page-container "+d.default.railControls,children:[(0,t.jsxs)("span",{className:"sr-only","aria-live":!N||y||_?"polite":"off","aria-atomic":"true",children:["Scroll position ",M+1," of ",E,", ",e.length," ","apps in total."]}),(0,t.jsxs)("div",{className:d.default.arrows,children:[(0,t.jsxs)("button",{ref:m,type:"button",className:d.default.rotationButton,"aria-label":N?"Pause automatic scrolling":"Start automatic scrolling","aria-controls":"featured-app-carousel",onClick:()=>{let e=!N;f(e),g(!1),e&&T.play(0)},children:[(0,t.jsx)("span",{"aria-hidden":"true",children:N?"Ⅱ":"▷"}),N?"Pause":"Play"]}),(0,t.jsx)(s.default,{controlType:"control",direction:"left",text:"Previous app",ariaLabel:"Previous app",disabled:!R,onClick:()=>{G(),S?.scrollPrev(!!i)},className:d.default.arrowButton}),(0,t.jsx)(s.default,{controlType:"control",direction:"right",text:"Next app",ariaLabel:"Next app",disabled:!P,onClick:()=>{G(),S?.scrollNext(!!i)},className:d.default.arrowButton})]})]})]}):null}function u({href:e,className:a,children:r}){if(!e)return(0,t.jsx)("div",{className:a,children:r});let i=e.startsWith("http");return(0,t.jsx)("a",{href:e,className:a,target:i?"_blank":void 0,rel:i?"noopener noreferrer":void 0,children:r})}e.s(["default",()=>h],2200)},96704,e=>{e.v({caption:"howAppsRun-module__yHwwca__caption","caption-in":"howAppsRun-module__yHwwca__caption-in",captionText:"howAppsRun-module__yHwwca__captionText",chapter:"howAppsRun-module__yHwwca__chapter",chapterIndex:"howAppsRun-module__yHwwca__chapterIndex",chapterNumber:"howAppsRun-module__yHwwca__chapterNumber",chapters:"howAppsRun-module__yHwwca__chapters",figure:"howAppsRun-module__yHwwca__figure",header:"howAppsRun-module__yHwwca__header",note:"howAppsRun-module__yHwwca__note",play:"howAppsRun-module__yHwwca__play",playIcon:"howAppsRun-module__yHwwca__playIcon",replay:"howAppsRun-module__yHwwca__replay",section:"howAppsRun-module__yHwwca__section",stage:"howAppsRun-module__yHwwca__stage",time:"howAppsRun-module__yHwwca__time",timeline:"howAppsRun-module__yHwwca__timeline",transport:"howAppsRun-module__yHwwca__transport"})},80601,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(64684),i=e.i(88155),o=e.i(37524);let n=e=>Math.max(0,Math.min(1,e)),s={gentle:e=>{let t=n(e);return t*t*t*(t*(6*t-15)+10)},reveal:e=>{let t=n(e);return t**3*(35-105*t+126*t**2-70*t**3+15*t**4)},gather:e=>{let t=n(e);return t**4*(15-24*t+10*t**2)},settle:e=>1-(1-n(e))**3,launch:e=>n(e)**2.4},l=(e,t,a,r="gentle")=>s[r]((e-t)/(a-t)),c=[{at:0,scene:0},{at:1,scene:6},{at:1.55,scene:8.2},{at:2.5,scene:14},{at:3.55,scene:16.6},{at:5.5,scene:22},{at:7.7,scene:26.4},{at:10.2,scene:31},{at:11.9,scene:34},{at:13.6,scene:36.7},{at:14.95,scene:38.65},{at:15.45,scene:39.55},{at:17,scene:41.5},{at:17.7,scene:43},{at:18.4,scene:44.6},{at:21.15,scene:51.5},{at:22.9,scene:55},{at:23.7,scene:56.5}
1,{at:28,scene:62},{at:29.7,scene:68}],d=c.slice(1).map((e,t)=>(e.scene-c[t].scene)/(e.at-c[t].at)),h=c.map((e,t)=>0===t?d[0]:t===c.length-1?d[t-1]:2/(1/d[t-1]+1/d[t]));function u(e){let t=Math.max(0,Math.min(29.7,e)),a=Math.max(0,c.findIndex((e,a)=>a<c.length-1&&t<=c[a+1].at)),r=c[a],i=c[a+1],o=i.at-r.at,n=(t-r.at)/o;return(2*n**3-3*n**2+1)*r.scene+(n**3-2*n**2+n)*o*h[a]+(-2*n**3+3*n**2)*i.scene+(n**3-n**2)*o*h[a+1]}function p(e){if(e<=0)return 0;if(e>=68)return 29.7;let t=0,a=29.7;for(let r=0;r<40;r++){let r=(t+a)/2;u(r)<e?t=r:a=r}return a}function m(e,t=0){let a=t%5*.06;return l(e,14+a,17.56+a,"gentle")}function x(e){return{progress:l(e,5.55,6.45),heroExit:l(e,5.55,5.82)}}let f={start:6.5,interval:.66,fade:.28},y=[{label:"The network",title:"Compute capacity, from independent providers",description:"Specialized hardware, and hyperscaler compute capacity, all over the world.",access:"A slowly rotating globe shows the continents and independent node lights distributed around the world.",start:0,still:3},{label:"Your canister",title:"Canisters are the building blocks of apps",description:"A canister can be a complete app, or a component of a larger app.",access:"The globe recedes as a large glass canister comes forward. Labels identify its code and persistent data. The same node lights remain behind it.",start:6,still:11},{label:"The subnet",title:"Network nodes work together in subnets",description:"Each canister is assigned to a subnet. The subnet nodes work together to ensure the security and resilience of all the canisters they host.",access:"The globe's node lights move along curved paths into three subnet layouts. The dots settle first, connections appear between them, then machines fade in around the same dots. Each dot becomes its machine’s indicator light. Light continues tracing the connections, showing the subnet working together. The canister stays in focus above the central 13-node subnet.",start:14,still:21},{label:"Replication",title:"Subnets replicate canister computations and data",description:"These 13 nodes are run by different providers. Each holds the same code and data, and runs the same computations, so your app can keep running if nodes fail.",access:"Thirteen complete small canister copies separate from the enlarged canister as it disappears. They travel outward together along shallow arcs and slow into place on their node machines, without bouncing. Each copy contains the same code and data; the app is replicated, not divided into pieces. Every machine is now visible, with no extra canister in the center. Small A, B, C, and D tags beside the nodes identify their independent providers after the copies land. The machines stay fixed and neutral while matching provider tags gain contrast together, from A to B to C to D. A label in the open center of the subnet names each independent provider. Fine annotation lines link that name to its matching node tags; these show provider membership, not data traffic. The name and its lines fade together between providers, then clear as every provider tag gains equal emphasis. Every status light stays active, and the canister copies remain teal. Light continues along the subnet connections. Users have one app, running on thirteen nodes. The tags fade before the separate attack example.",start:22,still:29.8},{label:"An attack",title:"Even compromised nodes cannot rewrite or corrupt data",description:"Here a malicious node changes its own copy of a purchase order. But the other nodes only execute correctly agreed updates, so they never accept the forged result.",access:"A manager authorizes purchase order PO-2048 for $48,500. The authorized update has passed consensus. One node turns red and is labeled Malicious node. Its local record changes to $485,000, while the central card keeps the authorized $48,500 amount. The twelve healthy nodes execute the authorized update; their checkmarks appear together to indicate matching results, not votes or consensus signatures. The subnet certifies the correct result, then the user's client verifies its certificate. The central card shows Record verified, while the altered local copy is marked Fails verification. The card represents the user's view, not a central coordinator. The forged record remains local and cannot obtain a valid network certificate. An unverified query alone does not provide this protection.",start:31,still:40},{label:"An outage",title:"Subnets keep running when nodes go offline",description:"Here three nodes lose power at once, but the other ten keep processing updates, so the apps it hosts remain available.",access:"The attack example ends and the red node returns to its normal appearance. A separate outage example begins with all thirteen nodes healthy. The front, left, and right nodes lose power simultaneously: their hardware turns grey, their indicator lights go out, and their activity and connections stop. All three remain visible with Power off labels. Two successive data highlights and checkmarks appear on the ten active canister copies, showing them continuing to execute the same updates locally. The powered-off copies stay inactive. Returning machines then synchronize before rejoining.",start:43,still:50},{label:"Connected services",title:"You can seamlessly compose canisters and services",description:"Subnets are transparent to canister code, and every canister can call into every other canister on the network, permissions allowing. This means they can be easily combined to compose and integrate apps and services.",access:"The camera pulls back to your app and the wider network. Recovered nodes have synchronized. Two canisters on other subnets are labeled Service 1 and Service 2. Requests and replies travel between your app and those services, with ICP handling the routing between subnets. These are illustrative services with interfaces an app can call. The same node lights return to the opening globe for a continuous loop.",start:55,still:60}],g=y.map(e=>({...e,start:p(e.start),still:p(e.still)})),_=2*Math.PI,b=[7,9,4].map(e=>({index:e,at:44.6})),w=["A","B","C","D"],v=e=>Math.max(0,Math.min(1,e)),j=(e,t,a)=>e+(t-e)*a,k=(e,t,a)=>{if(a<=0)return e;if(a>=1)return t;let r=parseInt(e.slice(1),16),i=parseInt(t.slice(1),16);return`rgb(${[16,8,0].map(e=>Math.round(j(r>>e&255,i>>e&255,a))).join(", ")})`},N=s.gentle,T=(e,t,a,r,i)=>l(e,t,a)*(1-l(e,r,i)),A=[{at:0,camera:{x:0,y:0,zoom:1},hero:{x:0,y:0,size:24}},{at:5,camera:{x:0,y:0,zoom:1},hero:{x:0,y:0,size:24}},{at:5.4,camera:{x:0,y:0,zoom:1},hero:{x:0,y:3,size:22}},{at:8.1,heroEase:"reveal",cameraEase:"reveal",camera:{x:0,y:-12,zoom:1},hero:{x:0,y:-5,size:88}},{at:14,camera:{x:0,y:-12,zoom:1},hero:{x:0,y:-5,size:88}},{at:16.6,cameraEase:"reveal",heroEase:"reveal",camera:{x:0,y:0,zoom:1},hero:{x:0,y:-70,size:60}},{at:23,camera:{x:0,y:0,zoom:1},hero:{x:0,y:-70,size:60}},{at:26.2,cameraEase:"reveal",heroEase:"reveal",camera:{x:0,y:16,zoom:1.13},hero:{x:0,y:-74,size:52}},{at:31,camera:{x:0,y:16,zoom:1.13},hero:{x:0,y:-74,size:52}},{at:32.7,camera:{x:0,y:16,zoom:1.13},hero:{x:0,y:-74,size:52}},{at:34.25,cameraEase:"reveal",heroEase:"reveal",camera:{x:0,y:30,zoom:1.04},hero:{x:0,y:-112,size:48}},{at:41.5,camera:{x:0,y:30,zoom:1.04},hero:{x:0,y:-112,size:48}},{at:44.4,cameraEase:"reveal",heroEase:"reveal",camera:{x:0,y:60,zoom:1.28},hero:{x:0,y:-74,size:52}},{at:51.5,camera:{x:0,y:60,zoom:1.28},hero:{x:0,y:-74,size:52}},{at:56.5,cameraEase:"gentle",heroEase:"reveal",camera:{x:0,y:0,zoom:.94},hero:{x:0,y:-64,size:67}},{at:62,camera:{x:0,y:0,zoom:.94},hero:{x:0,y:-64,size:67}},{at:68,cameraEase:"reveal",heroEase:"reveal",camera:{x:0,y:0,zoom:1},hero:{x:0,y:0,size:24}}];function S(e){let t=Math.max(0,Math.min(68,u(e))),a=A.findIndex(e=>e.at>t),r=A[a<0?A.length-1:Math.max(0,a-1)],i=A[a<0?A.length-1:a],o=r===i?0:l(t,r.at,i.at,i.cameraEase),n=r===i?0:l(t,r.at,i.at,i.heroEase),s=l(t,62,68,"reveal"),c=l(p(t),5.55,5.72)*(1-l(t,62,64)),d=x(e);return{camera:{x:j(r.camera.x,i.camera.x,o),y:j(r.camera.y,i.camera.y,o),zoom:j(r.camera.zoom,i.camera.zoom,o)},hero:{x:j(r.hero.x,i.hero.x,n),y:j(r.hero.y,i.hero.y,n),size:j(r.hero.size,i.hero.size,n)},heroAlpha:T(t,4.6,5.6,62,65.5)*(1-d.heroExit*(1-l(t,54,57))),formation:m(t)*(1-s),hardware:T(t,18.25,20.7,62,65),connections:T(t,17.8,19.3,62,65),replicas:c,providers:l(e,6.45,6.65)*(1-l(t,29.9,31)),returning:s,attack:T(t,32.5,32.75,41.6,42.7),chapter:y.reduce((e,a,r)=>a.start<=t?r:e,0)}}var M=e.i(96704);let C=e=>`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,"0")}`;function E(){let e=(0,a.useRef)(null),c=(0,a.useRef)(null),d=(0,a.useRef)(null),h=(0,a.useRef)(),[p,y]=(0,a.useState)({chapter:0,playing:!1,active:!1,time:0}),A=g[p.chapter];return(0,a.useEffect)(()=>{let t=e.current,a=c.current;if(!t||!a)return;let r=function(e,t,a){let r,i=e.getContext("2d");if(!i)return;let c=matchMedia("(prefers-reduced-motion: reduce)"),d=(0,o.buildLattice)({only:"land",latStep:4,ringBase:108}),h=[{x:0,y:64,r:272,count:13},{x:-420,y:-64,r:112,count:7},{x:420,y:-96,r:122,count:10}],p=h.flatMap((e,t)=>Array.from({length:e.count},(a,r)=>{let i=-Math.PI/2+r*_/e.count;return{subnet:t,index:r,home:{x:e.x+Math.cos(i)*e.r,y:e.y+Math.sin(i)*e.r*.4}}})),y=p.map((e,t)=>({lat:Math.asin(1-2*(t+.5)/p.length),lon:t*Math.PI*(3-Math.sqrt(5))})),A=c.matches?g[0].still:0,M=!c.matches,C=!1,E=!1,I=0,R=0,D=0,P=0,z=1,O="sans-serif",G="monospace",L="",H={ink:"#1a1a1a",muted:"#686b65",teal:"#0b5e5c",bright:"#14938e",paper:"#f3f1ea",red:"#b03a2e"},F=1;function $(){return C&&!document.hidden&&!E&&M}function K(){let e={chapter:S(A).chapter,playing:M,active:$(),time:Math.floor(10*A)/10},r=JSON.stringify(e);r!==L&&(L=r,t.dataset.chapter=String(e.chapter),a(e))}function B(e,t,a=1,r=1,o=[]){a<.002||e.length<2||(i.save(),i.globalAlpha*=v(a),i.strokeStyle=t,i.lineWidth=r,i.setLineDash(o),i.beginPath(),e.forEach((e,t)=>
1t?i.lineTo(e.x,e.y):i.moveTo(e.x,e.y)),i.stroke(),i.restore())}function W(e,t,a,r=1){i.save(),i.globalAlpha*=v(r),i.beginPath(),e.forEach((e,t)=>t?i.lineTo(e.x,e.y):i.moveTo(e.x,e.y)),i.closePath(),i.fillStyle=t,i.fill(),i.strokeStyle=a,i.lineWidth=.8,i.stroke(),i.restore()}function Z(e,t,a,r,o=1,n=!1){i.save(),i.globalAlpha*=v(o),i.beginPath(),i.ellipse(e.x,e.y,t,a,0,0,_),i.fillStyle=r,i.strokeStyle=r,i.lineWidth=.9,n?i.fill():i.stroke(),i.restore()}function U(e,t,a=12,r=H.muted,o=1,n="center",s=!1,l=!1){if(i.save(),i.globalAlpha*=v(o),i.font=`${s?500:450} ${a}px ${s?G:O}`,i.textAlign=n,l){let r=i.measureText(e).width,o="right"===n?t.x-r:"center"===n?t.x-r/2:t.x;i.fillStyle=H.paper,i.fillRect(o-5,t.y-a-3,r+10,a+8)}i.fillStyle=r,i.fillText(e,t.x,t.y),i.restore()}function J(e,t,a=H.teal,r=1){let o=1/Math.max(.7,F);i.save(),i.translate(t.x,t.y),i.scale(o,o),i.globalAlpha*=v(r),i.font=`500 11px ${O}`;let n=i.measureText(e).width+24;i.fillStyle=H.paper,i.beginPath(),i.roundRect(-n/2,-15,n,26,13),i.fill(),U(e,{x:0,y:2},11,a),i.restore()}function q(e,t,a,r){let o=i.createLinearGradient(e.x,e.y,t.x,t.y);return o.addColorStop(0,a),o.addColorStop(1,r),o}function Y(e,t,a,r=0,o=0,n=0,s=0){if(a<.002)return;let l={x:e.x,y:e.y-.94*t},c={x:e.x+t,y:e.y-.48*t},d={x:e.x,y:e.y},h={x:e.x-t,y:e.y-.48*t},u={x:e.x-t,y:e.y+.73*t},p={x:e.x,y:e.y+1.2*t},m={x:e.x+t,y:e.y+.73*t},x=r>.5?"#b66c63":k("#729f9e","#82847e",o),f=r>.5?"#d8877b":k("#a3c7c3","#969792",o),y=r>.5?"#f2c4b9":k("#d5e6e0","#acada7",o);W([h,d,p,u],q(h,p,k("#e7eeed","#b6b7b1",o),f),x,a),W([d,c,m,p],q(c,p,k("#f7fcfa","#c4c5be",o),y),x,a),W([l,c,d,h],q(l,d,k("#ffffff","#c2c3bd",o),k("#dfede7","#a5a6a0",o)),x,a),n>.001&&W([d,c,m,p],H.bright,H.teal,a*n*.38),s>.001&&W([d,c,m,p],H.red,H.red,a*s*.6);let g=k("#ffffff","#d9dad3",o);if(B([h,l,c],g,a,1.6),B([h,d,c],g,.9*a,1.2),B([d,p],g,a,1.4),B([u,p,m],r>.5?H.red:H.bright,a*(1-o),Math.max(1,.025*t)),t>9){i.save(),i.globalAlpha*=a*(1-o),i.translate(e.x,e.y),i.transform(1,.46,0,1,0,0),U("‹ ›",{x:-(.5*t),y:.49*t},.37*t,r>.5?H.red:H.teal,.8,"center",!0),i.restore();for(let r=0;r<3;r++)B([{x:e.x+.22*t,y:e.y+t*(.25+.2*r)},{x:e.x+.74*t,y:e.y+t*(.01+.2*r)}],x,a,Math.max(.8,.02*t))}}function V(e,t,a,r,o,n){let s={x:(e.x+t.x)/2,y:Math.min(e.y,t.y)-a};i.save(),i.globalAlpha*=v(o),i.beginPath(),i.moveTo(e.x,e.y),i.quadraticCurveTo(s.x,s.y,t.x,t.y),i.strokeStyle=r,i.lineWidth=.9,i.stroke(),i.restore();let l=a=>({x:(1-a)**2*e.x+2*(1-a)*a*s.x+a*a*t.x,y:(1-a)**2*e.y+2*(1-a)*a*s.y+a*a*t.y});if(void 0!==n&&n>=0&&n<=1){let e=l(n);Z(e,7,7,r,.16*o,!0),Z(e,2.7,2.7,r,v(2*o),!0)}return l}function Q(e){let t=b.find(t=>t.index===e);if(!t)return 0;let a=u(A);return l(a,t.at,t.at+.24,"settle")*(1-l(a,54+.06*e,54.34+.06*e,"settle"))}function X(){let e,t,a,c;if(!D||!P||E)return;let g=S(A),M=u(A),C=(e=l(M,33.5,34.8),c=1===(a=1===(t=l(M,35.1,36.35))?l(M,36.7,38.65):0),{phase:M<33.5?"authorized":M<35.1?"tampering":M<36.7?"execution":c?"verified":"certification",tamper:e,execution:t,certificate:a,verified:c,verifiedReveal:c?l(M,38.65,39.55):0,amount:48500,replicas:Array.from({length:13},(a,r)=>({amount:6===r&&e>=.5?485e3:48500,matches:6===r?0:t}))}),I=T(M,32,33.4,41.2,43),R=w.map((e,t)=>(function(e,t){let{start:a,interval:r,fade:i}=f,o=a+t*r,n=l(e,o,o+i)*(1-l(e,o+r,o+r+i));return(n+(1-n)*l(e,9.08,9.5))*(1-l(e,9.75,10.2))})(A,t)),G=D<600,L=G?h.map((e,t)=>0===t?e:{...e,x:1===t?-230:230,y:-180,r:72}):h,$=Math.min(D/(G?660:1130),P/475),K=G?1+(g.camera.zoom-1)*.52:g.camera.zoom;F=$*(G?j(K,Math.min(K,1.08),T(M,43,44.4,54,56)):K);let X={x:D/2,y:.49*P};i.setTransform(z,0,0,z,0,0),i.clearRect(0,0,D,P),i.lineCap="round",i.lineJoin="round",i.save(),i.translate(X.x,X.y),i.scale(F,F),i.translate(-g.camera.x,-g.camera.y);let ee=l(M,5.3,8.5,"reveal")*(1-g.returning),et={cx:0,cy:j(-4,-36,ee),r:j(181,210,ee),rotation:M<62?-.6+.045*M:-.6,cosTilt:.9872272833756269,sinTilt:.15931820661424598},ea=(1-l(M,14,17.4))*j(1,.26,ee)+g.returning;if(ea>.002){for(let e of(Z({x:0,y:208},135,12,H.teal,.04*ea,!0),Z({x:et.cx,y:et.cy},et.r,et.r,H.teal,.2*ea),d)){let t=(0,o.project)({...e,geo:et});t.z>0&&Z(t,1.1,1.1,H.teal,ea*(.14+.43*t.z),!0)}for(let e=0;e<7;e++){let t;for(let a=0;a<=90;a++){let r=a/90*_,i=e<3?(0,o.project)({lat:(e-1)*Math.PI/4,lon:r,geo:et}):(0,o.project)({lat:r,lon:(e-3)*Math.PI/4,geo:et});t&&B([t,i],H.teal,ea*(i.z>0?.13:.035),.7),t=i}}}let er=j(.45,.13,l(M,22,28))+.4*l(M,54,58),ei=T(M,14,15.7,62,66);for(let e=0;e<h.length;e++){let t=L[e],a=ei*(0===e?1:er);
1if(a<.002)continue;let r=Array.from({length:6},(e,a)=>({x:t.x+Math.cos(a*_/6)*(t.r+36),y:t.y+Math.sin(a*_/6)*(t.r+36)*.48}));W(r.map(e=>({x:e.x,y:e.y+9})),"#dfe6df","#c0cfc8",.5*a),W(r,"#edf0e7","#b7ccc0",.74*a),Z(t,.78*t.r,.29*t.r,H.teal,.08*a),G&&0!==e||U(0===e?"YOUR SUBNET · 13 NODES":`SUBNET ${1===e?"B":"C"}`,{x:t.x,y:t.y+.51*t.r+27},11,H.muted,a*(1-l(M,26,28)),"center",!0)}let eo=p.map((e,t)=>{let a=(0,o.project)({...y[t],geo:et}),r=L[e.subnet],i=-Math.PI/2+e.index*_/r.count,n=G&&0!==e.subnet?{x:r.x+Math.cos(i)*r.r,y:r.y+Math.sin(i)*r.r*.4}:e.home,s=m(M,t)*(1-g.returning),l=Math.sin(s*Math.PI),c=j(a.y,n.y,s)-l*(24+t%3*10),d=j(a.x,n.x,s)+Math.sin(2.4*t)*l*48,h=0===e.subnet?20:12;return{x:d,y:c,groundY:c,depth:j(.28+(a.z+1)*.36,1,s),light:{x:d-.88*h*s,y:c-.66*h*s}}}),en=eo.slice(0,13);p.forEach((e,t)=>{let a=(0===e.subnet?0:1===e.subnet?13:20)+(e.index+1)%h[e.subnet].count,r=(a,r,o)=>{let s=0===e.subnet,c=s?Q(e.index):0,d=s?Q(p[a].index):0,h=s&&6===e.index?g.attack:0,u=s&&6===p[a].index?g.attack:0,m=g.connections*r*(s?1:er);B([eo[t].light,eo[a].light],H.teal,.24*m*(1-Math.max(c,d))*(1-.75*Math.max(h,u))),function(e,t,a,r){if(r<.002)return;let o=(A/2.6+a)%1*1.5,n=o-.5,s=v(n),l=v(o);if(l-s<.001)return;let c=a=>({x:j(e.x,t.x,a),y:j(e.y,t.y,a)}),d=c(n),h=c(o),u=i.createLinearGradient(d.x,d.y,h.x,h.y);u.addColorStop(0,`${H.bright}00`),u.addColorStop(.55,H.bright),u.addColorStop(1,`${H.bright}00`),B([c(s),c(l)],u,r,1.7)}(eo[t].light,eo[a].light,o,.8*m*function(e,t=0,a=0){return l(e,2.75,3.4)*(1-l(e,28,28.85))*(1-.5*(l(e,5.55,6.1)*(1-l(e,9.45,10.2))))*(1-.62*(l(e,10.2,11.1)*(1-l(e,17,17.7))))*(1-.45*l(e,22.9,24))*(1-n(t))*(1-n(a))}(A,Math.max(c,h),Math.max(d,u)))};r(a,1,.19*t),0===e.subnet&&e.index%2==0&&r((e.index+4)%13,.38,.19*t+.4)});let es={x:g.hero.x,y:g.hero.y},el=e=>({x:en[e].x,y:en[e].y-44}),ec=x(A).progress<1,ed={x:es.x,y:es.y+.13*g.hero.size},eh=en.map((e,t)=>{var a;let r,i;return a=0===t||e.groundY>L[0].y+.35*L[0].r,r=1/F,i=e.x>0?-1:1,{x:a?e.x:e.x+i*(30+12*r),y:a?e.y+12*r:e.y-9}}),eu=function(e){let{start:t,interval:a,fade:r}=f,i=Math.max(0,Math.min(3,Math.floor((e-t-r/2)/a))),o=0===i?t:t+i*a+r/2,s=3===i?9.22:t+(i+1)*a+r/2;return{index:i,opacity:n(l(e,o,o+.12)*(1-l(e,s-.12,s)))}}(A),ep={point:{x:L[0].x,y:L[0].y+10},text:`Independent provider ${w[eu.index]}`,size:G?12:13,alpha:g.providers*eu.opacity},em=p.map((e,t)=>({...e,id:t,p:eo[t]})).sort((e,t)=>e.p.groundY-t.p.groundY),ex=j(1,.32,ee*(1-l(M,13.8,15))),ef=T(M,13.8,15,18.25,20.7);if(em.forEach(({p:e,subnet:t})=>{let a=(1-g.hardware)*e.depth*(0===t?1:j(1,er,g.hardware))*ex,r=j(3.3,4.8,ef);Z(e.light,2.2*r,2.2*r,H.bright,a*j(.08,.16,ef),!0),Z(e.light,r,r,H.teal,a,!0)}),ep.alpha>.001){i.save(),i.font=`450 ${ep.size}px ${O}`;let e=(i.measureText(ep.text).width/2+9)/F,t=(e,t,a,r)=>{let i=t.x-e.x,o=t.y-e.y,n=1/Math.max(Math.abs(i)/a,Math.abs(o)/r);return{x:e.x+i*n,y:e.y+o*n}};eh.forEach((a,r)=>{if(r%w.length!==eu.index)return;let i=en[r],o=Math.abs(i.x-es.x)<g.hero.size&&i.y>es.y-.94*g.hero.size&&i.y<es.y+1.2*g.hero.size?1-g.heroAlpha:1;B([t(ep.point,a,e,12/F),t(a,ep.point,11/F,11/F)],H.teal,ep.alpha*o*.5,.85/F)}),i.restore()}let ey=e=>{let{p:t,subnet:a,index:r}=e,o=0===a,s=t.depth*(o?1:j(1,er,g.formation)),c=o&&6===r?g.attack:0,d=o?Q(r):0;if(!function(e,t,a,r,i){if(a<.002)return;let o=e.x,n=e.y,s={x:o,y:n-.7*t},l={x:o-1.5*t,y:n-1.33*t},c={x:o+1.5*t,y:n-1.33*t},d={x:o,y:n-1.96*t};Z({x:o,y:n+3},1.8*t,.49*t,"#49665e",.08*a,!0);let h=(e,t,a=e)=>r>0?k(e,t,r):i>0?k(e,a,i):e,u=h("#9baeb0","#858781","#b17f75");W([l,s,{x:o,y:n},{x:l.x,y:l.y+.7*t}],h("#b5c4c5","#90918e","#caa398"),u,a),W([s,c,{x:c.x,y:c.y+.7*t},{x:o,y:n}],h("#d7e0df","#a5a6a2","#e4bfb1"),u,a),W([d,c,s,l],q(d,s,h("#ffffff","#b6b7b2"),h("#eaf0ec","#a0a19c")),u,a),B([l,s,c],k("#ffffff","#cbccc6",r),.8*a,.8);for(let e=0;e<3;e++)B([{x:o+.55*t,y:n-t*(.43+.14*e)},{x:o+1.12*t,y:n-t*(.66+.14*e)}],u,a,.8);Z({x:o-.88*t,y:n-.66*t},1.6,1.6,"#5e615b",a,!0),Z({x:o-.88*t,y:n-.66*t},1.6,1.6,H.bright,a*(1-r),!0),i>0&&Z({x:o-.88*t,y:n-.66*t},1.6,1.6,H.red,a*i,!0)}(t,o?20:12,g.hardware*s,d,c),o){let e=r%w.length;!function(e,t,a,r){if(r<.002)return;let o=1/F,n=v(a),s=i.globalAlpha*v(r);i.save(),i.translate(e.x,e.y),i.scale(o,o),i.globalAlpha=s,i.beginPath(),i.roundRect(-9,-9,18,18,3),i.fillStyle=H.paper,i.fill(),i.fillStyle=H.teal,i.globalAlpha*=n,i.fill(),i.globalAlpha=s,i.strokeStyle=H.teal,i.lineWidth=.7,i.globalAlpha*=j(.2,.8,n),i.stroke(),i.globalAlpha=s,U(t,{x:0,y:4}
1,11,k(H.teal,H.paper,n),1,"center",!0),i.restore()}(eh[r],w[e],R[e],g.providers*g.hardware*s*(1-Math.max(d,c)));let t=el(r),a=function(e,t=0){return Math.max(l(e,45.5,46,"settle")*(1-l(e,47.3,48)),l(e,48.6,49.1,"settle")*(1-l(e,50.7,51.5)))*(1-n(t))}(M,d);if(ec||Y(t,14,g.replicas*s,0,d,a,6===r?C.tamper*g.attack:0),a>.001){let e=1/Math.max(.6,F),r={x:t.x+(t.x>0?-19:19)*e,y:t.y-10*e};Z(r,5.5*e,5.5*e,H.teal,a,!0),B([{x:r.x-2.5*e,y:r.y},{x:r.x-.5*e,y:r.y+2*e},{x:r.x+2.7*e,y:r.y-2*e}],H.paper,a,1.2*e)}let o=T(M,52+.09*r,52.5+.09*r,54.3+.09*r,55+.09*r);b.some(e=>e.index===r)&&o>.01&&V({x:es.x,y:es.y+35},t,16,H.bright,o*g.heroAlpha*.35,.8*M%1)}else Y({x:t.x,y:t.y-33},8,g.replicas*l(A,6.45,6.8)*s*.5)},eg=T(M,57,58,61.5,63),e_=L.slice(1).map(e=>({x:e.x,y:e.y-52}));eg>.001&&e_.forEach((e,t)=>{let a=e.x<es.x?-1:1,r=((M-57.5-.6*t)/1.8%2+2)%2;V({x:es.x+a*g.hero.size,y:es.y+.125*g.hero.size},{x:e.x-25*a,y:e.y+3.125},48,H.teal,.3*eg,r<1?s.gentle(r):1-s.gentle(r-1))}),em.filter(e=>e.p.groundY<es.y+32).forEach(ey);let eb=T(M,4.6,5.6,31,33.5)+T(M,54,57,62,64);Z({x:es.x,y:es.y+1.7*g.hero.size},1.35*g.hero.size,.24*g.hero.size,H.teal,.07*g.heroAlpha*(1-I),!0);let ew=T(M,4.7,5.25,5.4,6.3);ew>.001&&Z({x:es.x,y:es.y+1.2*g.hero.size},28+10*ew,10,H.bright,.3*ew),Y(es,g.hero.size,g.heroAlpha*j(.25,1,v(eb))*(1-I)),em.filter(e=>e.p.groundY>=es.y+32).forEach(ey),ec&&g.replicas>.001&&en.map((e,t)=>(function(e,t,a){let{progress:r}=x(e),i=a.x-t.x,o=a.y-t.y,n=Math.hypot(i,o),s=n>0?Math.min(12,.2*n)/n:0,l={x:t.x+i*s,y:t.y+o*s},c=Math.sin(Math.PI*r)**2*Math.min(24,.08*n);return{x:l.x+(a.x-l.x)*r,y:l.y+(a.y-l.y)*r-c,size:14+6*(1-r)}})(A,ed,el(t))).sort((e,t)=>e.y-t.y).forEach(e=>Y(e,e.size,g.replicas)),ep.alpha>.001&&(i.save(),i.translate(ep.point.x,ep.point.y),i.scale(1/F,1/F),U(ep.text,{x:0,y:4},ep.size,H.teal,ep.alpha,"center",!1,!0),i.restore());let ev=T(M,7.6,8.2,14,15);if(ev>.001){let e=g.hero.size,t=G?132:178;B([{x:-(.65*e),y:es.y+.18*e},{x:-t+22,y:es.y-8},{x:-t,y:es.y-8}],H.teal,.45*ev),B([{x:.72*e,y:es.y+.38*e},{x:t-22,y:es.y+10},{x:t,y:es.y+10}],H.teal,.45*ev),U("CODE",{x:-t-8,y:es.y-6},G?17:12,H.teal,ev,"right",!0,!0),U("DATA",{x:t+8,y:es.y+13},G?17:12,H.teal,ev,"left",!0,!0)}let ej=T(M,6.2,7.4,20.8,22)+T(M,54,57,62,64);if(ej>.01&&J(M>=55?"Your app":"Your canister",{x:es.x,y:es.y-g.hero.size-27},H.teal,g.heroAlpha*ej),g.attack>.001&&Z({x:en[6].x,y:en[6].y-13},43,20,H.red,.38*I),I>.001){let e=1/Math.max(.6,F);en.forEach((t,a)=>{if(6===a)return;let r=I*C.replicas[a].matches,i={x:t.x,y:t.y+11*e};Z(i,6*e,6*e,H.teal,r,!0),Z(i,6*e,6*e,H.teal,r),B([{x:i.x-2.6*e,y:i.y},{x:i.x-.6*e,y:i.y+2*e},{x:i.x+3*e,y:i.y-2.3*e}],H.paper,r,1.3*e)});let t={x:0,y:G?20:45},a=C.verified,r=C.verifiedReveal;i.save(),i.globalAlpha=I,i.translate(t.x,t.y),i.scale(1/Math.max(.75,F),1/Math.max(.75,F)),Z({x:0,y:63},87,8,H.teal,.06,!0),i.fillStyle=q({x:0,y:-51},{x:0,y:57},"#ffffff","#e8efea"),i.strokeStyle="#8ca8a1",i.lineWidth=1,i.beginPath(),i.roundRect(-94,-51,188,108,5),i.fill(),i.stroke(),U("PURCHASE ORDER",{x:-77,y:-31},9,H.muted,1,"left",!0),U("PO-2048",{x:-77,y:-8},14,H.ink,1,"left"),U(`$${C.amount.toLocaleString("en-US")}`,{x:77,y:-8},14,H.ink,1,"right"),U("Warehouse equipment",{x:-77,y:12},12,H.ink,.55+.45*r,"left"),B([{x:-77,y:25},{x:77,y:25}],H.teal,.16),B([{x:-77,y:25},{x:-77+154*C.certificate,y:25}],H.teal,.65*l(M,36.7,37.1),1.5),U(a?"Record verified":"certification"===C.phase?"Verifying certificate…":"Authorized by manager",{x:a?-59:-77,y:44},11,H.teal,1,"left"),a&&B([{x:-77,y:39},{x:-73,y:43},{x:-66,y:35}],H.teal,r,1.6),i.restore()}for(let e of b){let t=en[e.index],a=Q(e.index),r=T(M,52+.09*e.index,52.5+.09*e.index,54.3+.09*e.index,55+.09*e.index),i={x:t.x,y:t.y+27};a>.01&&r<=.5&&J("Power off",i,H.ink,a),r>.5&&J("Syncing",i,H.teal,r)}eg>.001&&e_.forEach((e,t)=>{Y(e,25,.8*eg),J(`Service ${t+1}`,{x:e.x,y:e.y-42},H.teal,eg)}),i.restore();let ek=i.createLinearGradient(0,0,0,62);ek.addColorStop(0,H.paper),ek.addColorStop(1,`${H.paper}00`),i.fillStyle=ek,i.fillRect(0,0,D,62);let eN=i.createLinearGradient(0,P-45,0,P);
1if(eN.addColorStop(0,`${H.paper}00`),eN.addColorStop(1,H.paper),i.fillStyle=eN,i.fillRect(0,P-45,D,45),g.attack>.001){let e={x:X.x+(en[6].x-g.camera.x)*F,y:X.y+(en[6].y-g.camera.y)*F},t=G?146:164,a={x:Math.max(t/2+8,Math.min(D-t/2-8,e.x)),y:Math.min(P-76,e.y+46)};B([e,{x:a.x,y:a.y-32}],H.red,.4*g.attack),i.save(),i.translate(a.x,a.y),i.globalAlpha=g.attack,i.fillStyle="#faf0e9",i.strokeStyle="#c89489",i.lineWidth=.8,i.beginPath(),i.roundRect(-t/2,-32,t,64,5),i.fill(),i.stroke(),U("Malicious node",{x:0,y:-17},10,H.red),U("$48,500",{x:0,y:4},17,H.red,1-C.tamper),U("$485,000",{x:0,y:4},17,H.red,C.tamper),U(C.verified?"Fails verification":C.tamper>0?"Altered local copy":"Local copy",{x:0,y:21},10,H.red),i.restore()}let eT=G?25:33;U(M<6?"INDEPENDENT NODES · WORLDWIDE":M<14?"A CANISTER SMART CONTRACT":M<22?"NODES FORM SUBNETS":M<31?"ONE APP · RUNNING ON 13 NODES":M<43?"authorized"===C.phase?"A MANAGER AUTHORIZES $48,500":"tampering"===C.phase?"ONE NODE ALTERS ITS LOCAL COPY":"execution"===C.phase?"HEALTHY NODES RUN THE AUTHORIZED UPDATE":"certification"===C.phase?"VERIFYING THE NETWORK CERTIFICATE":"YOUR RECORD IS VERIFIED":M<52?"NODES GO OFFLINE · APP KEEPS RUNNING":M<55?"RETURNING NODES CATCH UP":"SERVICES CONNECT ACROSS SUBNETS",{x:D/2,y:eT},G?9:10,H.muted,.8,"center",!0,!0),I>.001&&U("authorized"===C.phase?"The authorized amount stays in view":"tampering"===C.phase?"The altered amount exists on one node only":"execution"===C.phase?"Same code · same authorized result":"certification"===C.phase?"Your app checks the proof from the subnet":"$48,500 · verified against the network certificate",{x:D/2,y:eT+21},G?10:12,H.teal,I,"center",!1,!0);let eA=T(M,27,29,62,64);if(eA>.001){let e=b.filter(e=>Q(e.index)>.5).length,t=M<31?"Different providers · same code and data":M<43?C.verified?"Your verified record keeps the correct amount":"certification"===C.phase?"An altered result cannot pass verification":"One machine cannot rewrite the shared record":M<55?`${13-e} nodes online \xb7 updates continue`:"ICP routes requests and replies across subnets";i.font=`450 ${G?11:12}px ${O}`,Z({x:D/2-i.measureText(t).width/2-12,y:P-26},3,3,H.bright,eA,!0),U(t,{x:D/2,y:P-22},G?11:12,H.teal,eA)}r&&(i.save(),i.globalAlpha=1-N(r.elapsed/.65),i.drawImage(r.image,0,0,D,P),i.restore())}function ee(){I&&cancelAnimationFrame(I),I=0,R=0}function et(){$()?I||(I=requestAnimationFrame(ea)):ee(),K()}function ea(e){if(I=0,!$())return;let t=R?Math.min(.08,Math.max(0,(e-R)/1e3)):0;R=e,r?(r.elapsed+=t,r.elapsed>=.65&&(r=void 0)):M&&(A=(A+t)%29.7),X(),et()}function er(e){r=void 0,A=Math.max(0,Math.min(29.7-.01,e)),M=!1,X(),et()}function ei(){let a=e.getBoundingClientRect();D=a.width,P=a.height,z=Math.min(devicePixelRatio||1,1.5),e.width=Math.round(D*z),e.height=Math.round(P*z);let r=getComputedStyle(t),i=(e,t)=>r.getPropertyValue(`--editorial-${e}`).trim()||t;H={ink:i("ink",H.ink),muted:i("ink-muted",H.muted),teal:i("teal",H.teal),bright:i("teal-bright",H.bright),paper:i("paper-sunk",H.paper),red:i("mark",H.red)};let o=t.querySelector("[data-story-font]");o&&(O=getComputedStyle(o).fontFamily);let n=t.querySelector("[data-story-meta]");n&&(G=getComputedStyle(n).fontFamily),X()}function eo(){c.matches&&er(g[S(A).chapter].still)}
1let en=new ResizeObserver(ei),es=new IntersectionObserver(([e])=>{C=e.isIntersecting&&e.intersectionRatio>=.25,et()},{threshold:[0,.25]});return en.observe(e),es.observe(e),document.addEventListener("visibilitychange",et),c.addEventListener("change",eo),document.fonts.ready.then(()=>{E||ei()}),ei(),K(),{choose:function(t){let a=g[t];if(a)if(c.matches)er(a.still);else{let t=document.createElement("canvas");t.width=e.width,t.height=e.height,t.getContext("2d")?.drawImage(e,0,0),r={image:t,elapsed:0},A=a.start,M=!0,R=0,et()}},seek:er,toggle:function(){M=!M,R=0,et()},destroy(){E=!0,ee(),en.disconnect(),es.disconnect(),document.removeEventListener("visibilitychange",et),c.removeEventListener("change",eo)}}}(a,t,y);return h.current=r,()=>{r?.destroy(),h.current=void 0}},[]),(0,a.useEffect)(()=>{let e=d.current,t=e?.querySelector('[aria-pressed="true"]');e&&t&&!(e.scrollWidth<=e.clientWidth)&&e.scrollTo({left:t.offsetLeft-e.offsetLeft-(e.clientWidth-t.offsetWidth)/2,behavior:matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth"})},[p.chapter]),(0,t.jsx)("section",{id:"how-apps-run",ref:e,className:M.default.section+" py-xl scroll-mt-24","aria-labelledby":"how-apps-run-title",children:(0,t.jsxs)("div",{className:"page-container",children:[(0,t.jsxs)("header",{className:M.default.header,children:[(0,t.jsx)("div",{className:"pt-4 mb-4",children:(0,t.jsx)("span",{className:"editorial-section-mark text-l leading-none text-editorial-teal","aria-hidden":"true",children:"§ 04"})}),(0,t.jsx)("h2",{id:"how-apps-run-title",className:"font-editorial-display text-editorial-ink text-l md:text-xl leading-[1.05]",children:"How ICP runs apps."})]}),(0,t.jsxs)("figure",{className:M.default.figure,children:[(0,t.jsx)("div",{className:M.default.stage,children:(0,t.jsx)("canvas",{id:"icp-network-illustration",ref:c,className:"block w-full h-full !border-0 !bg-transparent",role:"img","aria-label":A.access,children:"Your app’s code and data run together in a canister, copied across its subnet. A malicious node alters its local purchase-order amount, but the healthy nodes execute the authorized update. Your app verifies the network certificate for the correct result. The forged record fails verification. A separate example shows the app running through three node outages. Your app can also call services on other ICP subnets; ICP routes their requests and replies."})}),(0,t.jsxs)("figcaption",{children:[(0,t.jsxs)("div",{className:M.default.caption,"aria-live":"polite","aria-atomic":"true",children:[(0,t.jsxs)("span",{className:M.default.chapterNumber,"aria-hidden":"true",children:[String(p.chapter+1).padStart(2,"0"),(0,t.jsx)("span",{children:" / 07"})]}),(0,t.jsxs)("div",{className:M.default.captionText,children:[(0,t.jsx)("h3",{className:"font-editorial-display",children:A.title}),(0,t.jsx)("p",{className:"font-inter","data-story-font":!0,children:A.description})]},p.chapter)]}),(0,t.jsxs)("div",{className:M.default.transport,children:[(0,t.jsx)("button",{type:"button",className:M.default.play,"aria-label":p.playing?"Pause app story":"Play app story","aria-controls":"icp-network-illustration",onClick:()=>h.current?.toggle(),children:(0,t.jsx)("span",{className:M.default.playIcon,"aria-hidden":"true",children:(0,t.jsx)(r.AnimatePresence,{initial:!1,mode:"popLayout",children:(0,t.jsx)(i.motion.span,{initial:{scale:.25,opacity:0,filter:"blur(4px)"},animate:{scale:1,opacity:1,filter:"blur(0px)"},exit:{scale:.25,opacity:0,filter:"blur(4px)"},transition:{type:"spring",duration:.3,bounce:0},children:(0,t.jsx)("svg",{viewBox:"0 0 20 20",width:"16",height:"16",fill:"currentColor",children:p.playing?(0,t.jsx)("path",{d:"M5 4h3v12H5zm7 0h3v12h-3z"}):(0,t.jsx)("path",{d:"M6 3.5 16 10 6 16.5z"})})},p.playing?"pause":"play")})})}),(0,t.jsxs)("div",{className:M.default.timeline,children:[(0,t.jsx)("label",{className:"sr-only",htmlFor:"app-story-position",children:"App story position"}),(0,t.jsx)("input",{id:"app-story-position",type:"range",min:"0",max:29.7-.01,step:"0.1",value:p.time,"aria-valuetext":`${C(p.time)} of ${C(29.7)}: ${A.label}`,onChange:e=>h.current?.seek(Number(e.target.value)),style:{"--story-progress":`${p.time/29.7*100}%`}})]}),(0,t.jsxs)("span",{className:M.default.time,"aria-hidden":"true",children:[C(p.time)," ",(0,t.jsxs)("span",{children:["/ ",C(29.7)]})]}),(0,t.jsx)("button",{type:"button",className:M.default.replay,"aria-label":"Replay app story",onClick:()=>h.current?.choose(0),children:(0,t.jsx)("svg",{viewBox:"0 0 20 20",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M4.1 6.8a6 6 0 1 1-.1 6M4 3v4.5h4.5"})})})]}),(0,t.jsx)("nav",{ref:d,className:M.default.chapters,"aria-label":"App story chapters",children:g.map((e,a)=>(0,t.jsxs)("button",{type:"button",className:M.default.chapter,"aria-pressed":p.chapter===a,"aria-controls":"icp-network-illustration",onClick:()=>h.current?.choose(a),children:[(0,t.jsx)("span",{className:M.default.chapterIndex,"aria-hidden":"true",children:String(a+1).padStart(2,"0")}),(0,t.jsx)("span",{children:e.label})]},e.label))}),(0,t.jsxs)("p",{className:M.default.note,children:["This 13-node example tolerates up to four faulty nodes. Progress needs timely communication. Record integrity requires certificate verification; an unverified query is not enough."," ",(0,t.jsxs)("a",{href:"https://docs.internetcomputer.org/concepts/certified-data/",target:"_blank",rel:"noreferrer",children:["How verification works ",(0,t.jsx)("span",{"aria-hidden":"true",children:"↗"})]})]})]})]}),(0,t.jsx)("span",{className:"sr-only editorial-meta","data-story-meta":!0,"aria-hidden":"true"})]})})}e.s(["default",()=>E],80601)},26749,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(64458),i=e.i(37544),o=e.i(73754),n=e.i(41293),s=e.i(31378);let l=a.useLayoutEffect,c=(0,o.atom)(null);function d(e){for(let[t,a]of[[1e12,"T"],[1e9,"B"],[1e6,"M"],[1e3,"K"]])if(e>=t){let r=e/t;return(r>=100?Math.round(r):r.toFixed(r>=10?1:2))+a}return String(Math.floor(e))}
1function h({label:e,fetchMetric:r,format:i,labelCompact:o,formatCompact:d,fetchInterval:h=6e4,ariaLabel:u,description:p}){let[m,x]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=window.matchMedia("(max-width: 639px)");x(e.matches);let t=e=>x(e.matches);return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]);let f=(0,n.useStore)(c),y=!!p&&f?.id===e,g=y&&!!f?.sticky,_=(0,a.useRef)(null),b=(0,a.useRef)(null),[w,v]=(0,a.useState)(0);l(()=>{if(!y||!_.current)return;let e=_.current.getBoundingClientRect(),t=e.left+e.width/2,a=Math.min(360,window.innerWidth-32)/2,r=t+a-(window.innerWidth-16);v(Math.round(Math.max(0,16+a-t)-Math.max(0,r)))},[y]);let j=()=>{b.current&&(clearTimeout(b.current),b.current=null)},k=()=>{if(!p)return;let t=c.get();c.set({id:e,sticky:!(t?.id===e&&t.sticky)})};(0,a.useEffect)(()=>{if(!g)return;let e=e=>{_.current?.contains(e.target)||c.set(null)},t=e=>{"Escape"===e.key&&c.set(null)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[g,e]),(0,a.useEffect)(()=>j,[]);let N=p?`pill-tip-${e.replace(/[^a-z0-9]+/gi,"-").toLowerCase()}`:void 0;return(0,t.jsxs)("div",{ref:_,className:"inline-block relative",onMouseEnter:()=>{if(!p)return;j();let t=c.get();t?.id!==e&&c.set({id:e,sticky:!1})},onMouseLeave:()=>{p&&(j(),b.current=setTimeout(()=>{let t=c.get();t?.id!==e||t.sticky||c.set(null)},150))},children:[(0,t.jsxs)("div",{className:"relative inline-flex cursor-default items-center gap-[10px] rounded-full border border-editorial-paper/15 bg-editorial-paper/[0.05] px-3.5 py-1.5 transition-colors duration-150 before:absolute before:inset-x-0 before:-inset-y-[7px] before:content-[''] hover:bg-editorial-paper/[0.09]","aria-label":u||e,"aria-describedby":N,"aria-expanded":p?y:void 0,tabIndex:p?0:void 0,onClick:k,onKeyDown:e=>{p&&("Enter"===e.key||" "===e.key)&&(e.preventDefault(),k())},onFocus:t=>{p&&t.target.matches(":focus-visible")&&c.set({id:e,sticky:!0})},onBlur:t=>{let a=t.relatedTarget;if(a&&!_.current?.contains(a)){let t=c.get();t?.id===e&&c.set(null)}},children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-[7px] editorial-eyebrow !leading-none !text-editorial-paper/60",children:[(0,t.jsx)("span",{"aria-hidden":!0,className:"block w-[5px] h-[5px] rounded-full bg-editorial-cyber pill-pulse-cyber"}),m&&o?o:e]}),(0,t.jsx)("span",{className:"font-normal text-[12.5px] leading-none text-editorial-paper/80",style:{fontFamily:"var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, monospace",fontVariantNumeric:"tabular-nums"},children:(0,t.jsx)(s.Metric,{fetchMetric:r,fetchInterval:h,format:m&&d?d:i,animated:!1})})]}),p&&(0,t.jsx)("div",{id:N,role:"tooltip",style:{marginLeft:w},className:["absolute top-full left-1/2 -translate-x-1/2 mt-2 z-50 w-[360px] max-w-[calc(100vw-32px)] transition duration-150 ease-out",y?"opacity-100 translate-y-0 pointer-events-auto":"opacity-0 -translate-y-1 pointer-events-none"].join(" "),children:(0,t.jsxs)("div",{className:"bg-editorial-cover border border-editorial-paper/15 border-t-2 border-t-editorial-paper/70 shadow-[0_18px_40px_-12px_rgba(0,0,0,0.6)] px-5 py-4",children:[(0,t.jsx)("span",{className:"editorial-eyebrow !text-editorial-paper",children:e}),(0,t.jsx)("div",{className:"font-editorial-body mt-2 text-[13px] leading-[1.55] text-editorial-paper/70 [&>p]:mt-2 [&>p:first-child]:mt-0",children:p})]})})]})}let u=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"This is the rate at which cycles are being burned by the network."}),(0,t.jsx)("p",{children:"Cycles are the digital fuel that powers computation on the network, and they disappear when consumed. When a user buys using a credit card, the payment provider purchases ICP tokens behind the scenes, converts them into cycles, and then charges up the user's hosted software or cloud engines."}),(0,t.jsx)("p",{children:"1 trillion cycles is worth 1 XDR (known as a Special Drawing Right/SDR), a currency defined by the IMF. 1 XDR is worth about $1.44 USD."}),(0,t.jsxs)("a",{href:"https://dashboard.internetcomputer.org/",target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 text-editorial-paper hover:underline",children:["dashboard.internetcomputer.org",(0,t.jsx)("span",{"aria-hidden":!0,
1className:"text-[11px]",children:"↗"})]})]}),p=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"Canisters are tamperproof units of serverless software hosted by the Internet Computer network."}),(0,t.jsx)("p",{children:"Most canisters are standalone applications, but they can also serve as individual units of software within larger systems. They are capable of serving web-based user experiences, and storing and processing large amounts of data. Each canister is a combination of Wasm bytecode that defines its logic, and dedicated persistent memory pages that hold its internal state. Canisters communicate through function calls."}),(0,t.jsx)("p",{children:'Canisters are “software actors” that run asynchronously, allowing scalable high-performance applications to be created on the Internet Computer. Data lives "orthogonally" in memory within abstract logic they define, fueling the modeling power of AI, and delivering a new paradigm where “The Program is The Database.”'}),(0,t.jsxs)("a",{href:"https://dashboard.internetcomputer.org/canisters",target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 text-editorial-paper hover:underline",children:["dashboard.internetcomputer.org",(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[11px]",children:"↗"})]})]}),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"The Network Nervous System (NNS) is the Internet Computer’s open and decentralized governance and orchestration system, and runs as part of the network."}),(0,t.jsx)("p",{children:"Anyone can participate, by handing ICP tokens to the NNS, and receiving voting neurons in return, through which new ICP tokens can be earned, by first increasing the maturity of the neurons involved in voting, and then by eventually using them to mint new ICP."}),(0,t.jsx)("p",{children:"The NNS is one of the largest DAOs in existence, and the only DAO that runs as part of a network protocol to automate orchestration. Its purpose is to play the role of a decentralized and autonomous ICANN for the Internet Computer ecosystem."}),(0,t.jsxs)("a",{href:"https://dashboard.internetcomputer.org/governance",target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-1 text-editorial-paper hover:underline",children:["dashboard.internetcomputer.org",(0,t.jsx)("span",{"aria-hidden":!0,className:"text-[11px]",children:"↗"})]})]}),x=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"The network market cap is the number of ICP tokens multiplied by their price."}),(0,t.jsx)("p",{children:"Network users convert ICP tokens into cycles that are burned and disappear (deflation), and they are generated by the network to remunerate node providers operating nodes, and by some participants in network governance (inflation)."}),(0,t.jsx)("p",{children:"ICP tokens exist within the network, and enable it to create a self-sustaining network economy without central points of failure."})]});var f=e.i(93281);let y=a.useLayoutEffect;function g({title:e,substrap:o,notes:n,banners:s,ctas:l,backgroundVideo:c,showExplore:g=!0,dark:w=!1,className:v}){let[j,k]=(0,a.useState)(0);y(()=>{k(0x7fffffff&Date.now())},[]);let[N,T]=(0,a.useState)(null),[A,S]=(0,a.useState)("hold"),[M,C]=(0,a.useState)(!1),[E,I]=(0,a.useState)(!1),[R,D]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=()=>D(!0);return"complete"===document.readyState?e():window.addEventListener("load",e,{once:!0}),()=>window.removeEventListener("load",e)},[]),(0,a.useEffect)(()=>{let e=window.matchMedia("(prefers-reduced-motion: reduce)"),t=window.matchMedia("(min-width: 768px)"),a=()=>{C(!t.matches),S(e.matches?"still":R?"video":"hold")};return a(),e.addEventListener("change",a),t.addEventListener("change",a),()=>{e.removeEventListener("change",a),t.removeEventListener("change",a)}},[R]),(0,a.useEffect)(()=>I(!1),[M]);let P=(0,a.useCallback)(e=>{e&&e.play()?.catch(e=>{e?.name==="NotAllowedError"&&S("still")})},[]),z=M&&c?.mobile?c.mobile:c;return(0,a.useEffect)(()=>{let e;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let t=!0,a=()=>{e=setTimeout(()=>{t&&(T({id:Date.now(),bottom:14+26*Math.random(),duration:.9+.5*Math.random()}),a())},4e3+9e3*Math.random())};return a(),()=>{t=!1,clearTimeout(e)}},[]),(0,t.jsxs)("section",{className:(0,r.default)("relative overflow-hidden",w?"editorial-cover bg-editorial-cover text-editorial-paper":"bg-editorial-paper text-editorial-ink",v),children:[c&&(0,t.jsxs)("div",{className:"absolute inset-0 z-0 pointer-events-none","aria-hidden":!0,
1children:[c.poster&&(0,t.jsxs)("picture",{children:[c.mobile?.poster&&(0,t.jsx)("source",{media:"(max-width: 767px)",srcSet:c.mobile.poster}),(0,t.jsx)("img",{src:c.poster,alt:"",fetchPriority:"high",className:"editorial-cover-media"})]}),"video"===A&&z&&(0,t.jsxs)("video",{ref:P,className:(0,r.default)("editorial-cover-media transition-opacity duration-700",E?"opacity-100":"opacity-0"),autoPlay:!0,muted:!0,loop:!0,playsInline:!0,poster:z.poster,preload:"auto",onCanPlay:()=>I(!0),children:[z.webm&&(0,t.jsx)("source",{src:z.webm,type:"video/webm"}),(0,t.jsx)("source",{src:z.mp4,type:"video/mp4"})]},M?"narrow":"wide"),(0,t.jsx)("div",{className:"absolute inset-0 editorial-cover-scrim"})]}),!c&&(0,t.jsx)("div",{className:"editorial-grid-paper absolute inset-0 pointer-events-none opacity-80 z-0"}),(0,t.jsxs)("div",{className:"absolute inset-0 pointer-events-none overflow-hidden z-[1]","aria-hidden":!0,children:[(0,t.jsx)("svg",{width:"0",height:"0",className:"absolute",children:(0,t.jsxs)("defs",{children:[(0,t.jsxs)("linearGradient",{id:"cloud-volume",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,t.jsx)("stop",{offset:"0",stopColor:"#faf9f5",stopOpacity:"0.14"}),(0,t.jsx)("stop",{offset:"0.55",stopColor:"#faf9f5",stopOpacity:"0.05"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#faf9f5",stopOpacity:"0.012"})]}),(0,t.jsxs)("radialGradient",{id:"cloud-glow",cx:"0.35",cy:"0.28",r:"0.75",children:[(0,t.jsx)("stop",{offset:"0",stopColor:"#faf9f5",stopOpacity:"0.1"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#faf9f5",stopOpacity:"0"})]})]})}),!c&&0!==j&&(0,t.jsx)("div",{className:"editorial-sky-enter absolute inset-0",children:(()=>{let e=e=>{let t=Math.imul(e+1+j,0x9e3779b1)>>>0;return(t=((t=Math.imul(t=(t^t>>>13)>>>0,40503)>>>0)^t>>>9)>>>0)/0x100000000},a=e=>e<3?6:5,r=[0,2,4,1,3],i=[500,540,580,620,660],o=[63,89,118,147],n=[],s=[],l=e(9973);for(let c=0;c<9;c++){let d=`${8+9.75*c}%`,h=Math.floor(c/2);if(c%2==0){let a=i[h%i.length];for(let i=0;i<3;i++){let o=-((l+(r[h]+5*i+.05+.9*e(131*c+17*i+7))/15)*a),s=5+4*e(31*c+7*i+2),u=.55+.75*e(173*c+29*i+11),p=Math.round(29*(.6+.6*e(211*c+37*i+13)));n.push((0,t.jsx)("div",{className:"sparkle-drift",style:{top:d,animationDuration:`${a.toFixed(1)}s`,animationDelay:`${o.toFixed(1)}s`,"--star-brightness":u.toFixed(3)},children:(0,t.jsxs)("svg",{width:p,height:p,viewBox:"0 0 498.17 495.89",style:{animationDuration:`${s.toFixed(1)}s`},children:[(0,t.jsx)("path",{d:"M390.78,283.39c-114.02-29.04-149.24-64.27-178.29-178.29-3.25-12.76-21.39-12.76-24.64,0-29.04,114.02-64.27,149.24-178.29,178.29-12.76,3.25-12.76,21.39,0,24.64,114.02,29.04,149.24,64.27,178.29,178.29,3.25,12.76,21.39,12.76,24.64,0,29.04-114.02,64.27-149.24,178.29-178.29,12.76-3.25,12.76-21.39,0-24.64Z"}),(0,t.jsx)("path",{d:"M493.44,92.92c-56.4-14.37-73.83-31.79-88.19-88.19-1.61-6.31-10.58-6.31-12.19,0-14.37,56.4-31.79,73.83-88.19,88.19-6.31,1.61-6.31,10.58,0,12.19,56.4,14.37,73.83,31.79,88.19,88.19,1.61,6.31,10.58,6.31,12.19,0,14.37-56.4,31.79-73.83,88.19-88.19,6.31-1.61,6.31-10.58,0-12.19Z"})]})},`star-${c}-${i}`))}}else{let r=o[h%o.length],i=e(31*c+3),n=a(h);for(let a=0;a<n;a++){let o=-((i+(a+.05+.9*e(149*c+23*a+5))/n)*r),l=Math.round(176*(.55+.75*e(223*c+41*a+17)));s.push((0,t.jsx)("div",{className:"cloud-drift",style:{top:d,animationDuration:`${r.toFixed(1)}s`,animationDelay:`${o.toFixed(1)}s`},children:(0,t.jsx)("svg",{width:l,height:Math.round(.6*l),viewBox:"0 0 2549 1540",children:(0,t.jsxs)("g",{transform:"translate(-3125 -1705)",children:[(0,t.jsx)("path",{className:"cloud-blocker",fillRule:"evenodd",d:"M4376.8 1709C4066.34 1709 3801.69 1917.45 3700.16 2209.88 3673.08 2204.91 3645.16 2202.15 3616.78 2202.15 3346.71 2202.15 3128 2434.78 3128 2721.68 3128 3008.58 3346.71 3241 3616.78 3241 3621.84 3241 3627.02 3240.79 3632.09 3240.57L4368.44 3240.79C4371.14 3240.86 4373.97 3241 4376.8 3241 4379.51 3241 4382.1 3240.86 4384.92 3240.79L5264.61 3241C5489.56 3241 5672 3047.23 5672 2808.07 5672 2568.91 5489.56 2374.92 5264.61 2374.92 5204.07 2374.92 5146.59 2389.11 5095.01 2414.22 5065.8 2019.58 4755.57 1709 4376.8 1709Z"}),(0,t.jsx)("path",{fill:"url(#cloud-volume)",fillOpacity:1,fillRule:"evenodd",d:"M4376.8 1709C4066.34 1709 3801.69 1917.45 3700.16 2209.88 3673.08 2204.91 3645.16 2202.15 3616.78 2202.15 3346.71 2202.15 3128 2434.78 3128 2721.68 3128 3008.58 3346.71 3241 3616.78 3241 3621.84 3241 3627.02 3240.79 3632.09 3240.57L4368.44 3240.79C4371.14 3240.86 4373.97 3241 4376.8 3241 4379.51 3241 4382.1 3240.86 4384.92 3240.79L5264.61 3241C5489.56 3241 5672 3047.23 5672 2808.07 5672 2568.91 5489.56 2374.92 5264.61 2374.92 5204.07 2374.92 5146.59 2389.11 5095.01 2414.22 5065.8 2019.58 4755.57 1709 4376.8 1709Z"}),(0,t.jsx)("path",{fill:"url(#cloud-glow)",fillOpacity:1,stroke:"none",fillRule:"evenodd",d:"M4376.8 1709C4066.34 1709 3801.69 1917.45 3700.16 2209.88 3673.08 2204.91 3645.16 2202.15 3616.78 2202.15 3346.71 2202.15 3128 2434.78 3128 2721.68 3128 3008.58 3346.71 3241 3616.78 3241 3621.84 3241 3627.02 3240.79 3632.09 3240.57L4368.44 3240.79C4371.14 3240.86 4373.97 3241 4376.8 3241 4379.51 3241 4382.1 3240.86 4384.92 3240.79L5264.61 3241C5489.56 3241 5672 3047.23 5672 2808.07 5672 2568.91 5489.56 2374.92 5264.61 2374.92 5204.07 2374.92 5146.59 2389.11 5095.01 2414.22 5065.8 2019.58 4755.57 1709 4376.8 1709Z"})]})})},`cloud-${c}-${a}`))}}}return(0,t.jsxs)(t.Fragment,{children:[n,s]})})()}),w&&!c&&N&&(0,t.jsx)("span",{className:"editorial-streak",style:{bottom:`${N.bottom.toFixed(0)}px`,animationDuration:`${N.duration.toFixed(2)}s`},onAnimationEnd:()=>T(null)},N.id)]}),n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(b,{items:n.left,side:"left",dark:w}),(0,t.jsx)(b,{items:n.right,side:"right",dark:w})]}),(0,t.jsxs)("div",{className:"relative z-[2] page-container flex flex-col min-h-[520px] md:min-
1h-[clamp(560px,calc(100dvh-200px),820px)] pt-7 md:pt-4 pb-10 md:pb-12",children:[w&&(0,t.jsxs)("div",{className:"flex flex-wrap justify-center items-center gap-2 pb-6 md:pb-8",children:[(0,t.jsx)(h,{label:"Cycles / s",labelCompact:"Cycles/s",fetchMetric:()=>(0,f.getMetric)("cycle-burn-rate"),format:e=>Math.floor(e).toLocaleString("en-US"),formatCompact:d,fetchInterval:5e3,ariaLabel:"Cycles burned per second",description:u}),(0,t.jsx)(h,{label:"Canisters",fetchMetric:f.getTotalCanisters,format:e=>Math.floor(e).toLocaleString("en-US"),formatCompact:d,fetchInterval:6e4,ariaLabel:"Total canisters",description:p}),(0,t.jsx)(h,{label:"NNS TVL",fetchMetric:f.getNnsTvlUsd,format:e=>"$"+Math.floor(e).toLocaleString("en-US"),formatCompact:e=>"$"+d(e),fetchInterval:6e4,ariaLabel:"NNS total value locked",description:m}),(0,t.jsx)(h,{label:"Network market cap",labelCompact:"Mkt cap",fetchMetric:()=>(0,f.getLedgerMetric)("fdv_usd"),format:e=>"$"+Math.floor(e).toLocaleString("en-US"),formatCompact:e=>"$"+d(e),fetchInterval:6e4,ariaLabel:"Network market capitalization",description:x})]}),(0,t.jsxs)("div",{className:"relative flex-1 flex flex-col justify-center pt-8 md:pt-14 xl:pt-20 pb-4",children:[(0,t.jsxs)("div",{className:"relative mx-auto w-full max-w-[820px] text-center",children:[(0,t.jsx)("h1",{className:(0,r.default)("font-editorial-display text-[clamp(42px,7.4vw,76px)] !leading-[0.98] tracking-[-0.02em]",w?"text-editorial-paper":"text-editorial-ink"),children:e}),o&&(0,t.jsx)("p",{className:(0,r.default)("mt-5 md:mt-6 mx-auto max-w-[56ch] !text-balance font-editorial-display text-[clamp(20px,2.2vw,27px)] !leading-[1.38]",w?"text-editorial-paper/75":"text-editorial-ink-muted"),children:o}),l&&l.length>0&&(0,t.jsx)("div",{className:"mt-9 md:mt-11 grid grid-cols-1 gap-4 sm:grid-cols-2 md:gap-5",children:l.map((e,a)=>(0,t.jsxs)("a",{href:e.href,...e.external?{target:"_blank",rel:"noopener noreferrer"}:{},className:(0,r.default)("group flex items-center gap-4 px-5 py-5 text-left md:gap-5 md:px-6 md:py-6","transition-[background-color,border-color,transform] duration-200","motion-safe:active:scale-[0.96]",w?"border border-editorial-paper/15 bg-editorial-paper/[0.05] hover:border-editorial-paper/35 hover:bg-editorial-paper/[0.08]":"border border-editorial-rule bg-editorial-paper-raised hover:border-editorial-rule-strong"),children:[e.mark,(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:(0,r.default)("block text-balance font-editorial-display text-[21px] !leading-[1.1] md:text-[25px]",w?"text-editorial-paper":"text-editorial-ink"),children:e.action}),(0,t.jsxs)("span",{className:(0,r.default)("editorial-eyebrow mt-2 inline-flex items-center gap-1.5 !text-[15px] !normal-case !tracking-[0.01em]",w&&"!text-editorial-paper/80"),children:[e.destination,(0,t.jsx)("span",{"aria-hidden":!0,className:"transition-transform duration-200 group-hover:translate-x-[3px]",children:"→"})]})]})]},a))})]}),n&&(0,t.jsx)("ul",{className:"xl:hidden mt-12 md:mt-16 grid grid-cols-2 gap-x-6 gap-y-6 sm:gap-x-10 max-w-[640px] mx-auto w-full",children:[...n.left,...n.right].map((e,a)=>(0,t.jsx)("li",{children:(0,t.jsx)(_,{note:e,align:"left",dark:w})},a))})]}),g&&s&&(0,t.jsxs)("div",{className:"mt-8 md:mt-10",children:[(0,t.jsx)("div",{className:"hidden md:flex justify-end pb-2",children:(0,t.jsx)("span",{className:(0,r.default)("editorial-meta",w&&"!text-editorial-paper/45"),children:"The Program is The Database"})}),(0,t.jsx)("div",{"aria-hidden":!0,className:(0,r.default)("border-b",w?"border-editorial-paper/[0.07]":"border-editorial-rule")}),(0,t.jsx)("div",{className:"pt-2",children:(0,t.jsx)("span",{className:(0,r.default)("editorial-eyebrow",w&&"!text-editorial-paper/60"),children:"Explore:"})}),(0,t.jsx)("div",{className:"mt-5 grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-5",children:s.map((e,a)=>(0,t.jsx)(i.default,{...e,variant:w?"cover":"paper"},a))})]})]})]})}function _({note:e,align:a,dark:i,boxed:o=!1}){return(0,t.jsxs)("div",{className:(0,r.default)("editorial-note",o&&"flex h-[98px] flex-col","right"===a?"text-right":"text-left"),children:[(0,t.jsx)("span",{"aria-hidden":!0,
1className:(0,r.default)("editorial-note-tick","right"===a&&"ml-auto",i?"text-editorial-paper/40":"text-editorial-ink-subtle")}),(0,t.jsx)("span",{className:(0,r.default)("editorial-eyebrow mt-3 block",i?"!text-editorial-paper":"text-editorial-rust"),children:e.label}),e.sub&&(0,t.jsx)("span",{className:(0,r.default)("editorial-eyebrow mt-1 block",i?"!text-editorial-paper/45":"text-editorial-ink-subtle opacity-80"),children:e.sub}),(0,t.jsx)("span",{"aria-hidden":!0,className:(0,r.default)("block border-b border-dashed",o?"mt-auto":"mt-3",i?"border-editorial-paper/20":"border-editorial-rule-strong")})]})}function b({items:e,side:a,dark:i}){return 0===e.length?null:(0,t.jsx)("ul",{className:(0,r.default)("hidden xl:flex absolute inset-y-0 flex-col justify-between py-6 2xl:py-8 w-[184px] 2xl:w-[220px] z-[2]","right"===a?"right-6 2xl:right-10":"left-6 2xl:left-10"),children:e.map((e,r)=>(0,t.jsx)("li",{children:(0,t.jsx)(_,{note:e,align:a,dark:i,boxed:!0})},r))})}e.s(["EditorialHero",()=>g,"default",0,g],26749)},69848,e=>{e.v({access:"aiwareDiagram-module__KIiZOG__access",app:"aiwareDiagram-module__KIiZOG__app",appFooter:"aiwareDiagram-module__KIiZOG__appFooter",appHeading:"aiwareDiagram-module__KIiZOG__appHeading",callerBar:"aiwareDiagram-module__KIiZOG__callerBar",callerIcon:"aiwareDiagram-module__KIiZOG__callerIcon",callerName:"aiwareDiagram-module__KIiZOG__callerName",callerStatus:"aiwareDiagram-module__KIiZOG__callerStatus",callers:"aiwareDiagram-module__KIiZOG__callers",caption:"aiwareDiagram-module__KIiZOG__caption",connection:"aiwareDiagram-module__KIiZOG__connection",diagram:"aiwareDiagram-module__KIiZOG__diagram",hiddenGroup:"aiwareDiagram-module__KIiZOG__hiddenGroup",interfaces:"aiwareDiagram-module__KIiZOG__interfaces",internals:"aiwareDiagram-module__KIiZOG__internals",memory:"aiwareDiagram-module__KIiZOG__memory",memoryGlyph:"aiwareDiagram-module__KIiZOG__memoryGlyph",memoryGroup:"aiwareDiagram-module__KIiZOG__memoryGroup",partialGroup:"aiwareDiagram-module__KIiZOG__partialGroup",permissions:"aiwareDiagram-module__KIiZOG__permissions",ruleMark:"aiwareDiagram-module__KIiZOG__ruleMark",selectorHint:"aiwareDiagram-module__KIiZOG__selectorHint",smallLabel:"aiwareDiagram-module__KIiZOG__smallLabel"})},34211,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(64458),i=e.i(3351),o=e.i(69848);let n={ceo:{label:"CEO chat",icon:"speechBubble",connection:"M76 0V10Q76 18 84 18H232Q240 18 240 26V43",memory:["HR","CRM","Accounts"],hidden:null,hrAccess:"all",summary:"CEO chat can query HR, CRM, and Accounts. All memory groups in this example are accessible."},operations:{label:"Operations agent",icon:"git-branch",connection:"M240 0V43",memory:["HR","CRM","Accounts"],hidden:"Accounts",hrAccess:"all",summary:"The operations agent can query HR and CRM. Accounts is invisible to this caller."},finance:{label:"Finance agent",icon:"pages-line",connection:"M404 0V10Q404 18 396 18H248Q240 18 240 26V43",memory:["HR","CRM","Accounts"],hidden:null,hrAccess:"salary",summary:"The finance agent can query only salary fields in HR, plus CRM and Accounts. Other HR fields are invisible and omitted from its OQL results."}};function s(){let[e,s]=(0,a.useState)("ceo"),l=n[e];return(0,t.jsxs)("figure",{className:o.default.diagram,"aria-labelledby":"aiware-diagram-caption",children:[(0,t.jsxs)("div",{className:o.default.callerBar,children:[(0,t.jsx)("p",{id:"aiware-selector-hint",className:o.default.selectorHint,children:"Select an agent to see what it can access."}),(0,t.jsx)("div",{className:o.default.callers,role:"group","aria-label":"Select an agent","aria-describedby":"aiware-selector-hint",children:Object.keys(n).map(a=>(0,t.jsxs)("button",{type:"button","aria-label":n[a].label,"aria-pressed":e===a,"aria-controls":"aiware-example-access",onClick:()=>s(a),children:[(0,t.jsx)("span",{className:o.default.callerIcon,"aria-hidden":"true",children:(0,t.jsx)(i.default,{name:n[a].icon,size:24})}),(0,t.jsx)("span",{className:o.default.callerName,children:n[a].label}),(0,t.jsx)("span",{className:o.default.callerStatus,"aria-hidden":"true",children:e===a?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.default,{name:"checkmark",size:14})," Selected"]}):(0,t.jsxs)(t.Fragment,{children:["Select ",(0,t.jsx)("span",{children:"→"})]})})]},a))}),(0,t.jsxs)("svg",{className:o.default.connection,viewBox:"0 0 480 44",preserveAspectRatio:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{d:l.connection}),(0,t.jsx)("path",{d:"M236 37L240 43L244 37"})]})]}),(0,t.jsxs)("div",{className:o.default.app,children:[(0,t.jsx)("div",{className:o.default.appHeading,children:(0,t.jsx)("strong",{children:"Your AIware apps and services"})}),(0,t.jsxs)("div",{className:o.default.internals,children:[(0,t.jsxs)("div",{className:o.default.interfaces,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"OQL API"}),(0,t.jsx)("span",{children:"Agents analyze in-memory data graphs"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"App functions"}),(0,t.jsx)("span",{children:"Agents perform complex tasks hands-free"})]})]}),(0,t.jsxs)("div",{className:o.default.permissions,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("strong",{children:"Permissions are part of the program."}),(0,t.jsx)("span",{children:"Structures, records, and fields. Scoped to the agent or the user behind it."})]}),(0,t.jsx)("span",{className:o.default.ruleMark,"aria-hidden":"true",children:"{ }"})]}),(0,t.jsxs)("div",{id:"aiware-example-access",className:o.default.access,children:[(0,t.jsx)("p",{className:o.default.smallLabel,children:"What this caller can access"}),(0,t.jsx)("div",{className:o.default.memory,children:l.memory.map((e,a)=>{let i=e===l.hidden;return(0,t.jsxs)("div",{className:(0,r.default)(o.default.memoryGroup,i&&o.default.hiddenGroup,"HR"===e&&"salary"===l.hrAcce
1ss&&o.default.partialGroup),children:[(0,t.jsxs)("span",{className:o.default.memoryGlyph,"aria-hidden":"true",children:[(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{})]}),(0,t.jsx)("strong",{children:e}),(0,t.jsx)("span",{children:i?"Invisible to this caller":"HR"===e&&"salary"===l.hrAccess?"Salary fields only":"Queryable via OQL"})]},a)})}),(0,t.jsx)("p",{className:"sr-only","aria-live":"polite","aria-atomic":"true",children:l.summary})]})]}),(0,t.jsx)("div",{className:o.default.appFooter,children:(0,t.jsx)("p",{children:"Each app’s permission rules can only change by rebuilding that app."})})]}),(0,t.jsx)("figcaption",{id:"aiware-diagram-caption",className:o.default.caption,children:"Through Object Query Language (OQL), agents query the data each app permits them to see, and use callable functions to act. Each app enforces its own permissions."})]})}e.s(["default",()=>s])},39016,e=>{e.v({caret:"typedText-module__ljatnW__caret",caretDone:"typedText-module__ljatnW__caretDone",rest:"typedText-module__ljatnW__rest",root:"typedText-module__ljatnW__root","typed-caret-blink":"typedText-module__ljatnW__typed-caret-blink"})},51475,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(64458),i=e.i(39016);function o({text:e}){let o=(0,a.useRef)(null),[n,s]=(0,a.useState)(e.length),[l,c]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=o.current;if(!e||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let t=new IntersectionObserver(([e])=>{e.isIntersecting&&(t.disconnect(),s(0),c(!0))},{threshold:.7});return t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{if(!l)return;let t=performance.now(),a=0,r=i=>{let o=Math.max(0,Math.min(e.length,Math.floor((i-t-350)/50)+1));s(o),o<e.length?a=requestAnimationFrame(r):c(!1)};return a=requestAnimationFrame(r),()=>cancelAnimationFrame(a)},[l,e]);let d=!l&&n>=e.length;return(0,t.jsxs)("span",{ref:o,className:i.default.root,children:[(0,t.jsx)("span",{className:"sr-only",children:e}),(0,t.jsxs)("span",{"aria-hidden":"true",children:[e.slice(0,n),(0,t.jsx)("span",{className:(0,r.default)(i.default.caret,d&&i.default.caretDone)}),(0,t.jsx)("span",{className:i.default.rest,children:e.slice(n)})]})]})}e.s(["default",()=>o])},7278,e=>{e.v({close:"networkProtocolDiagram-module__JKHeka__close",comparison:"networkProtocolDiagram-module__JKHeka__comparison",connections:"networkProtocolDiagram-module__JKHeka__connections",content:"networkProtocolDiagram-module__JKHeka__content",description:"networkProtocolDiagram-module__JKHeka__description",dialog:"networkProtocolDiagram-module__JKHeka__dialog",eyebrow:"networkProtocolDiagram-module__JKHeka__eyebrow",function:"networkProtocolDiagram-module__JKHeka__function",hardware:"networkProtocolDiagram-module__JKHeka__hardware",header:"networkProtocolDiagram-module__JKHeka__header",layerLabel:"networkProtocolDiagram-module__JKHeka__layerLabel",mobileClose:"networkProtocolDiagram-module__JKHeka__mobileClose",network:"networkProtocolDiagram-module__JKHeka__network",protocol:"networkProtocolDiagram-module__JKHeka__protocol",stack:"networkProtocolDiagram-module__JKHeka__stack",takeaway:"networkProtocolDiagram-module__JKHeka__takeaway",trigger:"networkProtocolDiagram-module__JKHeka__trigger",triggerLabel:"networkProtocolDiagram-module__JKHeka__triggerLabel",triggerThumb:"networkProtocolDiagram-module__JKHeka__triggerThumb",utility:"networkProtocolDiagram-module__JKHeka__utility"})},82689,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(7278);let i=[{name:"Internet",function:"Connects software",examples:"Transmits web pages, messages, and app data.",protocol:"IP",protocolName:"Internet Protocol",hardware:"Network hardware",hardwareDetail:"Fiber, cellular, Wi-Fi…"},{name:"Internet Computer",function:"Hosts software",examples:"Runs websites, games, SaaS, and AIware.",protocol:"ICP",protocolName:"Internet Computer Protocol",hardware:"Compute hardware",hardwareDetail:"Independently operated compute nodes"}];function o(){let e=(0,a.useRef)(null),o=(0,a.useRef)(null),[n,s]=(0,a.useState)(!1),l=(0,a.useId)(),c=(0,a.useId)();return(0,a.useEffect)(()=>
1{if(!n)return;let t=e.current;if(!t)return;let a=document.body.style.overflow;return document.body.style.overflow="hidden",t.showModal(),()=>{t.close(),document.body.style.overflow=a,o.current?.focus({preventScroll:!0})}},[n]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{ref:o,type:"button",className:r.default.trigger,"aria-haspopup":"dialog",onClick:()=>s(!0),children:[(0,t.jsx)("span",{className:r.default.triggerThumb,"aria-hidden":"true",children:(0,t.jsx)("img",{src:"/home/network-protocol-figure.jpg",alt:"",width:700,height:452,loading:"lazy"})}),(0,t.jsxs)("span",{className:r.default.triggerLabel,children:["See how it’s built",(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.6","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M9 4H4v5m11-5h5v5M4 15v5h5m11-5v5h-5"})})]})]}),(0,t.jsx)("dialog",{ref:e,className:r.default.dialog,"aria-labelledby":l,"aria-describedby":c,onCancel:e=>{e.preventDefault(),s(!1)},onClick:e=>{e.target===e.currentTarget&&s(!1)},children:(0,t.jsxs)("div",{className:r.default.content,children:[(0,t.jsxs)("header",{className:r.default.header,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:r.default.eyebrow,children:"The Internet Computer, explained"}),(0,t.jsx)("h2",{id:l,children:"Cloud, built the internet way."})]}),(0,t.jsx)("button",{type:"button",className:r.default.close,"aria-label":"Close network diagram",onClick:()=>s(!1),autoFocus:!0,children:(0,t.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5","aria-hidden":"true",children:(0,t.jsx)("path",{d:"m6 6 12 12M6 18 18 6"})})})]}),(0,t.jsx)("p",{id:c,className:r.default.description,children:"Shared protocols turn independently operated hardware into public infrastructure. The internet connects software. The Internet Computer hosts it, too."}),(0,t.jsx)("div",{className:r.default.comparison,children:i.map(e=>(0,t.jsxs)("section",{className:r.default.network,"data-network":e.protocol,"aria-label":e.name,children:[(0,t.jsxs)("header",{className:r.default.function,children:[(0,t.jsx)("h3",{children:e.function}),(0,t.jsx)("p",{children:e.examples})]}),(0,t.jsxs)("div",{className:r.default.stack,children:[(0,t.jsx)("svg",{className:r.default.connections,viewBox:"0 0 400 240",preserveAspectRatio:"none","aria-hidden":"true",children:(0,t.jsx)("path",{d:"M4 2h392L230 120l166 118H4l166-118Z"})}),(0,t.jsxs)("div",{className:r.default.utility,children:[(0,t.jsx)("span",{className:r.default.layerLabel,children:"Public utility"}),(0,t.jsx)("strong",{children:e.name})]}),(0,t.jsxs)("div",{className:r.default.protocol,children:[(0,t.jsx)("span",{className:r.default.layerLabel,children:"Network protocol"}),(0,t.jsx)("strong",{children:e.protocol}),(0,t.jsx)("span",{children:e.protocolName})]}),(0,t.jsxs)("div",{className:r.default.hardware,children:[(0,t.jsx)("span",{className:r.default.layerLabel,children:"Hardware"}),(0,t.jsx)("strong",{children:e.hardware}),(0,t.jsx)("span",{children:e.hardwareDetail})]})]})]},e.protocol))}),(0,t.jsx)("p",{className:r.default.takeaway,children:"The same internet idea. Extended from connecting software to hosting it."}),(0,t.jsx)("button",{type:"button",className:r.default.mobileClose,onClick:()=>s(!1),children:"Close diagram"})]})})]})}e.s(["default",()=>o])},30723,e=>{"use strict";var t=e.i(81588),a=e.i(96933),r=e.i(64458);function i({title:e,markdownHref:i,jsonHref:o,agentPrompt:n,className:s}){let[l,c]=(0,a.useState)(null);async function d(){try{let e=await fetch(i),t=await e.text();await navigator.clipboard.writeText(t),c("md"),setTimeout(()=>c(null),1600)}catch{window.open(i,"_blank","noopener,noreferrer")}}async function h(){n&&(await navigator.clipboard.writeText(n),c("prompt"),setTimeout(()=>c(null),1600))}return(0,t.jsx)("div",{className:(0,r.default)("page-container",s),children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 border-t border-b border-editorial-rule py-4 md:flex-row md:items-center md:justify-between",children:[(0,t.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,t.jsx)("span",{"aria-hidden":!0,
1className:"editorial-section-mark text-[14px] leading-none",children:"§"}),(0,t.jsx)("span",{className:"editorial-eyebrow",children:"For agents"}),(0,t.jsxs)("span",{className:"editorial-meta hidden md:inline",children:["Machine-readable copies of “",e,"”"]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:d,className:"editorial-eyebrow border border-editorial-rule px-3 py-1.5 hover:border-editorial-rule-strong transition-colors duration-200",children:"md"===l?"Copied":"Copy Markdown"}),(0,t.jsx)("a",{href:i,className:"editorial-eyebrow border border-editorial-rule px-3 py-1.5 hover:border-editorial-rule-strong transition-colors duration-200",children:".md ↓"}),(0,t.jsx)("a",{href:o,className:"editorial-eyebrow border border-editorial-rule px-3 py-1.5 hover:border-editorial-rule-strong transition-colors duration-200",children:".json ↓"}),n&&(0,t.jsx)("button",{type:"button",onClick:h,className:"editorial-eyebrow border border-editorial-rule px-3 py-1.5 hover:border-editorial-rule-strong transition-colors duration-200 text-editorial-teal",children:"prompt"===l?"Copied":"Copy agent prompt"})]})]})})}e.s(["PageExportBar",()=>i,"default",0,i])}]);

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.