1import"../chunks/DsnmJJEf.js";import"../chunks/CK3AoaC7.js";import{p as We,e as Ke,g as o,t as Xe,a as xe,c as e,R as d,b as et,s as r,f as Pe,r as t,at as s}from"../chunks/CYGRAPIB.js";import{s as a}from"../chunks/D9UuDnCi.js";import{i as tt}from"../chunks/BA65WU6K.js";import"../chunks/BEZvtooX.js";import{B as rt,b as st}from"../chunks/CpWhE398.js";import{b as at}from"../chunks/Bq6mx6dM.js";import{l as it,a as ot,s as dt,b as lt,c as nt,d as ct,e as mt,f as pt,g as vt,h as ut,i as bt,j as ft,k as ht,m as gt,n as xt,o as yt,p as _t}from"../chunks/BxOudblY.js";import{S as wt}from"../chunks/D0T9t0sD.js";import{P as Pt}from"../chunks/CtgGnEb9.js";import{L as St}from"../chunks/DbOubVS_.js";import{S as ye}from"../chunks/DblsQZga.js";import{T as l}from"../chunks/Btryp2Fo.js";import{C as k}from"../chunks/BKx4uG-s.js";import{Z as _e}from"../chunks/eU5hsoAE.js";import{C as kt}from"../chunks/CtsNkuR8.js";import{S as we}from"../chunks/Dpe20BOx.js";import{T as Ct}from"../chunks/Dqm9ER7N.js";const Tt=!0,Qt=Object.freeze(Object.defineProperty({__proto__:null,prerender:Tt},Symbol.toStringTag,{value:"Module"}));var At=Pe(`<div class="container mx-auto px-6 py-16"><div class="max-w-4xl mx-auto"><!> <div class="bg-[hsl(var(--a11y-info)/0.1)] border border-[hsl(var(--a11y-info)/0.3)] rounded-lg p-6 mb-8"><div class="grid md:grid-cols-3 gap-6"><div class="text-center"><!> <div class="text-3xl font-bold text-foreground">99.9%</div> <div class="text-sm text-muted-foreground"> </div></div> <div class="text-center"><!> <div class="text-3xl font-bold text-foreground"><4h</div> <div class="text-sm text-muted-foreground"> </div></div> <div class="text-center"><!> <div class="text-3xl font-bold text-foreground"><200ms</div> <div class="text-sm text-muted-foreground"> </div></div></div></div> <div class="space-y-8"><div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-2">1.1 Uptime Commitment</h3> <p class="text-sm">Yanok commits to maintaining an Uptime Percentage of at least 99.9% during each 2 calendar month (the "Service Commitment").</p></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-3">Uptime Calculation</h3> <div class="space-y-2 text-sm"><p><strong>Uptime Percentage</strong> = (Total Minutes in Month - Downtime Minutes) / Total 3 Minutes in Month à 100</p> <p class="text-xs text-muted-foreground/70 mt-2">Example: For a 30-day month (43,200 minutes), 99.9% uptime allows for 4 approximately 43 minutes of downtime.</p></div></div> <div><h3 class="font-semibold text-foreground mb-2">1.2 Downtime Definition</h3> <p class="text-sm">"Downtime" means the Service is unavailable and returns error responses for valid 5 API requests. Downtime is measured in one-minute intervals.</p></div> <div class="bg-[hsl(var(--a11y-warning)/0.1)] border border-[hsl(var(--a11y-warning)/0.3)] p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">1.3 Excluded Downtime</h3> <p class="text-sm mb-2">The following do not count as Downtime:</p> <ul class="text-sm space-y-1"><li>⢠Scheduled maintenance (with 48-hour advance notice)</li> <li>⢠Emergency maintenance (with best-effort advance notice)</li> <li>⢠Issues caused by Customer's infrastructure or applications</li> <li>⢠Force majeure events beyond Yanok's reasonable control</li> <li>⢠Problems caused by Customer's breach of Terms of Service</li> <li>⢠DDoS attacks or security incidents targeting Customer</li> <li>⢠Third-party integration failures outside Yanok's control</li></ul></div> <div><h3 class="font-semibold text-foreground mb-2">1.4 Monitoring & Verification</h3> <p class="text-sm">Yanok continuously monitors Service availability using both internal and third-party 6 monitoring tools. Uptime data is calculated from Yanok's monitoring systems. Support 7 and service updates available at: <a href="https://www.yanok.ai/support" class="text-primary hover:text-primary/80">www.yanok.ai/support</a></p></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-3">2.1 API Response Times</h3> <div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-border"><th class="text-left p-3 text-foreground">Metric</th><th class="text-left p-3 text-foreground">Target</th><th class="text-left p-3 text-foreground">Measured At</th></tr></thead><tbody><tr class="border-b border-border"><td class="p-3">API Response Time (P50)</td><td class="p-3 text-primary">< 100ms</td><td class="p-3">50th percentile</td></tr><tr class="border-b border-border"><td class="p-3">API Response Time (P95)</td><td class="p-3 text-primary">< 200ms</td><td class="p-3">95th percentile</td></tr><tr class="border-b border-border"><td class="p-3">API Response Time (P99)</td><td class="p-3 text-primary">< 500ms</td><td class="p-3">99th percentile</td></tr><tr class="border-b border-border"><td class="p-3">Workflow Execution Start</td><td class="p-3 text-primary">< 2 seconds</td><td class="p-3">From trigger to first action</td></tr><tr class="border-b border-border"><td class="p-3">Data Synchronization Delay</td><td class="p-3 text-primary">< 60 seconds</td><td class="p-3">Real-time integrations</td></tr></tbody></table></div></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">2.2 Throughput Guarantees</h3> <div class="grid md:grid-cols-2 gap-4 text-sm"><div><p class="font-medium text-primary">Standard Tier</p> <ul class="mt-1 space-y-1"><li>⢠1,000 API calls/minute</li> <li>⢠100 concurrent workflows</li> <li>⢠10,000 tasks/day</li></ul></div> <div><p class="font-medium text-primary">Enterprise Tier</p> <ul class="mt-1 space-y-1"><li>⢠10,000 API calls/minute</li> <li>⢠1,000 concurrent workflows</li> <li>⢠Unlimited tasks/day</li></ul></div></div></div> <div><h3 class="font-semibold text-foreground mb-2">2.3 Error Rates</h3> <p class="text-sm">Target error rate for all API requests: < 0.1% (excluding errors caused by 8 invalid requests or Customer configuration issues)</p></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div class="grid md:grid-cols-2 gap-6"><div class="bg-muted/30 p-4 rounded"><h3 class="font-semibold text-foreground mb-2 flex items-center gap-2"><!> Recovery Time Objective (RTO)</h3> <p class="text-2xl font-bold text-primary mb-1">< 4 hours</p> <p class="text-sm">Maximum time to restore service after an incident</p></div> <div class="bg-muted/30 p-4 rounded"><h3 class="font-semibold text-foreground mb-2 flex items-center gap-2"><!> Recovery Point Objective (RPO)</h3> <p class="text-2xl font-bold text-primary mb-1">< 1 hour</p> <p class="text-sm">Maximum acceptable data loss window</p></div></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">Backup & Disaster Recovery</h3> <ul class="text-sm space-y-1"><li>⢠Automated backups every 15 minutes</li> <li>⢠30-day backup retention</li> <li>⢠Geographic backup distribution across 3+ regions</li> <li>
8⢠Hot standby infrastructure for critical services</li> <li>⢠Quarterly disaster recovery testing</li></ul></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-3">4.1 Incident Classification</h3> <div class="space-y-3"><div class="bg-destructive/10 border border-destructive/30 p-3 rounded"><p class="font-semibold text-destructive">P1 - Critical</p> <p class="text-sm">Service completely unavailable or major functionality broken affecting all users</p> <p class="text-xs mt-1">Response: Immediate | Updates: Every 30 minutes</p></div> <div class="bg-[hsl(var(--yanok-orange)/0.1)] border border-[hsl(var(--yanok-orange)/0.3)] p-3 rounded"><p class="font-semibold text-[hsl(var(--yanok-orange))]">P2 - High</p> <p class="text-sm">Significant degradation or feature unavailable affecting multiple users</p> <p class="text-xs mt-1">Response: < 1 hour | Updates: Every 2 hours</p></div> <div class="bg-[hsl(var(--a11y-warning)/0.1)] border border-[hsl(var(--a11y-warning)/0.3)] p-3 rounded"><p class="font-semibold text-[hsl(var(--a11y-warning))]">P3 - Medium</p> <p class="text-sm">Minor functionality impacted or intermittent issues</p> <p class="text-xs mt-1">Response: < 4 hours | Updates: Daily</p></div> <div class="bg-[hsl(var(--a11y-info)/0.1)] border border-[hsl(var(--a11y-info)/0.3)] p-3 rounded"><p class="font-semibold text-[hsl(var(--a11y-info))]">P4 - Low</p> <p class="text-sm">Cosmetic issues or minor bugs with workarounds</p> <p class="text-xs mt-1">Response: < 24 hours | Updates: As needed</p></div></div></div> <div><h3 class="font-semibold text-foreground mb-2">4.2 Communication Channels</h3> <ul class="text-sm space-y-1"><li>⢠Support portal: <a href="https://www.yanok.ai/support" class="text-primary hover:text-primary/80">www.yanok.ai/support</a></li> <li>⢠Email notifications to registered contacts</li> <li>⢠In-app notifications for active sessions</li> <li>⢠Direct enterprise customer notifications for P1/P2 incidents</li></ul></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">4.3 Post-Incident Review</h3> <p class="text-sm">For all P1 and P2 incidents, Yanok will conduct a post-incident review within 5 9 business days and provide:</p> <ul class="text-sm space-y-1 mt-2"><li>⢠Root cause analysis</li> <li>⢠Timeline of events</li> <li>⢠Impact assessment</li> <li>⢠Remediation actions taken</li> <li>⢠Preventive measures implemented</li></ul></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-3">5.1 Support Tiers</h3> <div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-border"><th class="text-left p-3 text-foreground">Priority</th><th class="text-left p-3 text-foreground">Standard Plan</th><th class="text-left p-3 text-foreground">Enterprise Plan</th><th class="text-left p-3 text-foreground">Channels</th></tr></thead><tbody><tr class="border-b border-border"><td class="p-3 font-medium text-destructive">P1 - Critical</td><td class="p-3">1 hour</td><td class="p-3 text-primary">15 minutes</td><td class="p-3">Phone, Email, Chat</td></tr><tr class="border-b border-border"><td class="p-3 font-medium text-[hsl(var(--yanok-orange))]">P2 - High</td><td class="p-3">4 hours</td><td class="p-3 text-primary">1 hour</td><td class="p-3">Email, Chat</td></tr><tr class="border-b border-border"><td class="p-3 font-medium text-[hsl(var(--a11y-warning))]">P3 - Medium</td><td class="p-3">1 business day</td><td class="p-3 text-primary">4 hours</td><td class="p-3">Email, Portal</td></tr><tr class="border-b border-border"><td class="p-3 font-medium text-[hsl(var(--a11y-info))]">P4 - Low</td><td class="p-3">2 business days</td><td class="p-3 text-primary">1 business day</td><td class="p-3">Email, Portal</td></tr></tbody></table></div></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">5.2 Support Availability</h3> <div class="grid md:grid-cols-2 gap-4 text-sm"><div><p class="font-medium text-primary">Standard Plan</p> <ul class="mt-1 space-y-1"><li>⢠24/7 for P1 incidents</li> <li>⢠Business hours (9am-6pm SGT) for P2-P4</li> <li>⢠Email & portal support</li></ul></div> <div><p class="font-medium text-primary">Enterprise Plan</p> <ul class="mt-1 space-y-1"><li>⢠24/7/365 for all priorities</li> <li>⢠Dedicated account manager</li> <li>⢠Phone, email, chat & portal</li></ul></div></div></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-2">6.1 Scheduled Maintenance</h3> <p class="text-sm">Yanok performs scheduled maintenance during the following window: <strong>Saturdays 2:00 AM - 6:00 AM SGT</strong></p></div> <div class="bg-[hsl(var(--a11y-info)/0.1)] border border-[hsl(var(--a11y-info)/0.3)] p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">Advance Notice</h3> <ul class="text-sm space-y-1"><li>⢠Standard maintenance: 48 hours advance notice</li> <li>⢠Major updates: 7 days advance notice</li> <li>⢠Emergency maintenance: Best-effort advance notice</li></ul></div> <div><h3 class="font-semibold text-foreground mb-2">6.2 Maintenance Impact</h3> <p class="text-sm">During scheduled maintenance, the Service may be temporarily unavailable or 10 experience reduced performance. Yanok strives to minimize impact through rolling 11 updates and blue-green deployments.</p></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-3">7.1 Credit Calculation</h3> <p class="text-sm mb-3">If Yanok fails to meet the Service Commitment, eligible customers may claim service 12 credits based on the following schedule:</p> <div class="overflow-x-auto"><table class="w-full text-sm"><thead><tr class="border-b border-border"><th class="text-left p-3 text-foreground">Monthly Uptime Percentage</th><th class="text-left p-3 text-foreground">Service Credit</th></tr></thead><tbody><tr class="border-b border-border"><td class="p-3">99.0% - 99.9%</td><td class="p-3 text-primary">10% of monthly fee</td></tr><tr class="border-b border-border"><td class="p-3">95.0% - 99.0%</td><td class="p-3 text-primary">25% of monthly fee</td></tr><tr class="border-b border-border"><td class="p-3">< 95.0%</td><td class="p-3 text-primary">50% of monthly fee</td></tr></tbody></table></div></div> <div class="bg-muted/30 p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">7.2 Credit Request Process</h3> <ol class="text-sm space-y-1 list-decimal list-inside"><li>Submit credit request within 30 days of incident</li> <li>Provide account details and incident dates/times</li> <li>Include evidence of Service unavailability (optional)</li> <li>Credits issued within 1 billing cycle after approval</li></ol>
12 <p class="text-xs text-muted-foreground/70 mt-3">Submit requests to: <a href="mailto:[email protected]" class="text-primary hover:text-primary/80">[email protected]</a></p></div> <div class="bg-[hsl(var(--a11y-warning)/0.1)] border border-[hsl(var(--a11y-warning)/0.3)] p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">7.3 Credit Limitations</h3> <ul class="text-sm space-y-1"><li>⢠Maximum credit per month: 50% of monthly subscription fee</li> <li>⢠Credits applied to future invoices only (no cash refunds)</li> <li>⢠Credits must be claimed within 30 days of incident</li> <li>⢠Credits are Customer's sole remedy for SLA breaches</li></ul></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-2">8.1 SLA Exclusions</h3> <p class="text-sm mb-2">This SLA does not apply to:</p> <ul class="list-disc list-inside text-sm space-y-1 ml-4"><li>Free trial or beta/preview features</li> <li>Services provided free of charge</li> <li>
12Issues caused by Customer's applications, infrastructure, or data</li> <li>Third-party integration failures outside Yanok's control</li> <li>Customer's violation of Terms of Service</li></ul></div> <div><h3 class="font-semibold text-foreground mb-2">8.2 Sole Remedy</h3> <p class="text-sm">Service credits are Customer's sole and exclusive remedy for any Service 13 availability or performance issues. Yanok's total liability for all claims related 14 to the SLA shall not exceed the amount paid by Customer in the 12 months preceding 15 the claim.</p></div></div></div> <div class="bg-card border border-border rounded-lg overflow-hidden"><div class="p-6 border-b border-border"><h2 class="flex items-center gap-3 text-foreground font-semibold text-lg"><!> </h2></div> <div class="p-6 text-muted-foreground space-y-4"><div><h3 class="font-semibold text-foreground mb-2">9.1 Status & Support Portal</h3> <p class="text-sm">Service status updates and historical uptime information are available via: <a href="https://www.yanok.ai/support" class="text-primary hover:text-primary/80">www.yanok.ai/support</a></p></div> <div><h3 class="font-semibold text-foreground mb-2">9.2 Performance Dashboard</h3> <p class="text-sm">Enterprise customers have access to:</p> <ul class="list-disc list-inside text-sm space-y-1 ml-4 mt-2"><li>Real-time performance metrics</li> <li>Historical availability reports</li> <li>Custom alerting and notifications</li> <li>API usage statistics</li> <li>Monthly SLA compliance reports</li></ul></div> <div class="bg-[hsl(var(--a11y-info)/0.1)] border border-[hsl(var(--a11y-info)/0.3)] p-4 rounded-lg"><h3 class="font-semibold text-foreground mb-2">Contact for SLA Inquiries</h3> <p class="text-sm">Email: <a href="mailto:[email protected]" class="text-primary hover:text-primary/80 underline">[email protected]</a><br/>Support: <a href="mailto:[email protected]" class="text-primary hover:text-primary/80 underline">[email protected]</a></p></div></div></div></div></div></div>`),Mt=Pe("<!> <!> <!>",1);function Vt(Se,ke){We(ke,!1),tt();var C=Mt(),T=Ke(C);{let i=d(()=>dt()),M=d(()=>lt());wt(T,{get title(){return o(i)},get description(){return o(M)},ogImage:"https://www.yanok.ai/images/og/legal.png",keywords:"service level agreement, sla, uptime guarantee, service credits",canonicalPath:"/legal/sla"})}var A=r(T,2);{let i=d(()=>[{name:st(),url:"https://www.yanok.ai/"},{name:at(),url:"https://www.yanok.ai/legal"},{name:nt(),url:"https://www.yanok.ai/legal/sla"}]);rt(A,{get items(){return o(i)}})}var Ce=r(A,2);Pt(Ce,{children:(i,M)=>{var n=At(),R=e(n),E=e(R);{let P=d(()=>it()),S=d(()=>ot());St(E,{get icon(){return ye},get title(){return o(P)},get subtitle(){return o(S)},lastUpdated:"January 15, 2026"})}var c=r(E,2),I=e(c),m=e(I),$=e(m);l($,{class:"w-8 h-8 mx-auto mb-2 text-primary"});var D=r($,4),Te=e(D,!0);t(D),t(m);var p=r(m,2),U=e(p);k(U,{class:"w-8 h-8 mx-auto mb-2 text-primary"});var L=r(U,4),Ae=e(L,!0);t(L),t(p);var Y=r(p,2),j=e(Y);_e(j,{class:"w-8 h-8 mx-auto mb-2 text-primary"});var q=r(j,4),Me=e(q,!0);t(q),t(Y),t(I),t(c);var O=r(c,2),v=e(O),H=e(v),B=e(H),F=e(B);ye(F,{class:"w-5 h-5 text-primary"});var Re=r(F);t(B),t(H),s(2),t(v);var u=r(v,2),G=e(u),z=e(G),Z=e(z);kt(Z,{class:"w-5 h-5 text-primary"});var Ee=r(Z);t(z),t(G),s(2),t(u);var b=r(u,2),f=e(b),J=e(f),N=e(J);k(N,{class:"w-5 h-5 text-primary"});var Ie=r(N);t(J),t(f);var Q=r(f,2),V=e(Q),h=e(V),W=e(h),$e=e(W);k($e,{class:"w-4 h-4 text-primary"}),s(),t(W),s(4),t(h);var K=r(h,2),X=e(K),De=e(X);we(De,{class:"w-4 h-4 text-primary"}),s(),t(X),s(4),t(K),t(V),s(2),t(Q),t(b);var g=r(b,2),ee=e(g),te=e(ee),re=e(te);Ct(re,{class:"w-5 h-5 text-[hsl(var(--a11y-warning))]"});var Ue=r(re);t(te),t(ee),s(2),t(g);var x=r(g,2),se=e(x),ae=e(se),ie=e(ae);l(ie,{class:"w-5 h-5 text-primary"});var Le=r(ie);t(ae),t(se),s(2),t(x);var y=r(x,2),oe=e(y),de=e(oe),le=e(de);_e(le,{class:"w-5 h-5 text-primary"});var Ye=r(le);t(de),t(oe),s(2),t(y);var _=r(y,2),ne=e(_),ce=e(ne),me=e(ce);l(me,{class:"w-5 h-5 text-primary"});var je=r(me);t(ce),t(ne),s(2),t(_);var w=r(_,2),pe=e(w),ve=e(pe),ue=e(ve);we(ue,{class:"w-5 h-5 text-primary"});var qe=r(ue);t(ve),t(pe),s(2),t(w);var be=r(w,2),fe=e(be),he=e(fe),ge=e(he);l(ge,{class:"w-5 h-5 text-primary"});var Oe=r(ge);t(he),t(fe),s(2),t(be),t(O),t(R),t(n),Xe((P,S,He,Be,Fe,Ge,ze,Ze,Je,Ne,Qe,Ve)=>{a(Te,P),a(Ae,S),a(Me,He),a(Re,` ${Be??""}`),a(Ee,` ${Fe??""}`),a(Ie,` ${Ge??""}`),a(Ue,` ${ze??""}`),a(Le,` ${Ze??""}`),a(Ye,` ${Je??""}`),a(je,` ${Ne??""}`),a(qe,` ${Qe??""}`),a(Oe,` ${Ve??""}`)},[()=>ct(),()=>mt(),()=>pt(),()=>vt(),()=>ut(),()=>bt(),()=>ft(),()=>ht(),()=>gt(),()=>xt(),()=>yt(),()=>_t()]),xe(i,n)},$$slots:{default:!0}}),xe(Se,C),et()}export{Vt as component,Qt as universal};
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.