From d6c32178ee1314087516f32cd9de02b71189da8a Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 10:29:06 +0300 Subject: [PATCH 01/17] feat(docs): update badge xplat topic --- .../content/en/components/inputs/badge.mdx | 216 ++++++++++++++++-- docs/xplat/src/content/en/toc.json | 6 +- 2 files changed, 204 insertions(+), 18 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 333eea4044..b91d9566fc 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -11,21 +11,36 @@ import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBloc import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro'; -# {Platform} Badge Overview +# Badge Component The {ProductName} Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors. -## {Platform} Badge Example +## Live Demo - + - +## Anatomy -## Usage +The Badge presents a compact label or dot indicator that decorates another interface element. + +{/* TODO: Add an annotated Badge anatomy screenshot or GIF when the visual asset is available. */} + +The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. + +```text + +└── ::part(base) + └── default slot content + +``` + +## Getting Started + +Before you begin, follow the [{ProductName} Getting Started](../general-getting-started.mdx) topic for the basic project setup. -First, you need to install the {ProductName} by running the following command: +Install the {ProductName} package: ```cmd npm install {PackageWebComponents} @@ -40,8 +55,6 @@ import 'igniteui-webcomponents/themes/light/bootstrap.css'; defineComponents(IgcBadgeComponent); ``` -For a complete introduction to the {ProductName}, read the [**Getting Started**](../general-getting-started.mdx) topic. - @@ -79,6 +92,18 @@ You will also need to link an additional CSS file to apply the styling to the + + +Import the Badge component into your Angular application: + +```ts +import { IgxBadgeComponent } from 'igniteui-angular/badge'; +``` + +Add `IgxBadgeComponent` to the component `imports` collection, then use the `igx-badge` element in your template. + + + The simplest way to start using the is as follows: @@ -105,11 +130,33 @@ The simplest way to start using the is as fo -## Examples + + +```html + +``` + + + +## Usage + +Use the Badge to display a short status, category, count, or notification indicator alongside another component. ### Variants -The {ProductName} badge supports several pre-defined stylistic variants. You can change the variant by assigning one of the supported values - `primary`(default), `info`, `success`, `warning`, or `danger` to the attribute. + + +The Angular Badge supports several pre-defined stylistic types. Set the attribute to `success`, `info`, `warning`, or `error`. + +```html + +``` + + + + + +The {ProductName} Badge supports several pre-defined stylistic variants. Assign one of the supported values - `primary`, `info`, `success`, `warning`, or `danger` - to the attribute. @@ -135,6 +182,16 @@ The {ProductName} badge supports several pre-defined stylistic variants. You can + + + + +```html + +``` + + + Even if a custom background color is set for the badge using the `--background-color` CSS variable, the variant color always takes precedence and is applied to the badge. @@ -167,6 +224,14 @@ The badge component supports `rounded`(default) and `square` shapes. These value + + +```html + +``` + + + When the badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable. @@ -199,13 +264,21 @@ The badge can also have a subtle border around it when the + + +```html + +``` + + + The border color of the outlined badge can also be customized using the `--border-color` CSS variable. ### Dot -The {ProductName} badge component can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.). +The {ProductName} badge component can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.). @@ -231,11 +304,89 @@ The {ProductName} badge component can also render as a minimal dot indicator for + + +```html + +``` + + + +### Do/Don't + +**When to use:** Use a Badge to communicate a short status, category, count, or notification state alongside another component. Use `dot` when the indicator does not need visible text. + +**When not to use:** Do not use a Badge as the primary control for an action, as a replacement for a form validation message, or when the status cannot be understood from the badge content, surrounding context, or accessible labeling. + +## Properties + + + +The Angular Badge exposes the following properties. Use the API reference for the complete type definitions. + +| name | type | default | description | +| --- | --- | --- | --- | +| | boolean | `false` | Renders the Badge as a dot indicator without content. | +| | boolean | `false` | Displays an outline around the Badge. | +| | BadgeShape | `rounded` | Sets the Badge shape. | +| | BadgeType | `default` | Sets the Angular Badge stylistic type. | +| | string | — | Applies a custom CSS class. | + + + + + +The React Badge exposes the following properties. + +| name | type | default | description | +| --- | --- | --- | --- | +| | boolean | `false` | Renders the Badge as a dot indicator. | +| | boolean | `false` | Displays an outline around the Badge. | +| | BadgeShape | `rounded` | Sets the Badge shape. | +| | StyleVariant | `primary` | Sets the Badge stylistic variant. | + + + + + +The Web Components Badge exposes the following properties. + +| name | type | default | description | +| --- | --- | --- | --- | +| | boolean | `false` | Renders the Badge as a dot indicator. | +| | boolean | `false` | Displays an outline around the Badge. | +| | BadgeShape | `rounded` | Sets the Badge shape. | +| | StyleVariant | `primary` | Sets the Badge stylistic variant. | +| | CSSResult | — | Applies custom styles. | + + + + + +The Blazor Badge exposes the following properties. + +| name | type | default | description | +| --- | --- | --- | --- | +| | boolean | `false` | Renders the Badge as a dot indicator. | +| | boolean | `false` | Displays an outline around the Badge. | +| | BadgeShape | `rounded` | Sets the Badge shape. | +| | StyleVariant | `primary` | Sets the Badge stylistic variant. | + + + ## Styling -The component exposes a `base` CSS part that can be used to change all of its style properties. + + +Use the component's `base` CSS part and documented styling variables to customize its appearance. + +### Sass Theming + +Use the {ProductName} theme system to style the Badge consistently with the rest of your application. + +### CSS Variables ```css igc-badge::part(base) { @@ -244,10 +395,49 @@ igc-badge::part(base) { } ``` - +| variable | what it changes | +| --- | --- | +| `--background-color` | The badge background color. | +| `--border-radius` | The badge corner radius. | +| `--border-color` | The outlined badge border color. | + +### Styleable Parts + +| part | what it styles | +| --- | --- | +| `base` | The Badge root element. | + +## Accessibility + +### Keyboard Interaction + +The Badge is a visual status indicator and does not provide an interactive keyboard action. It is reached according to the focus behavior of the element it decorates. + +### Screen Readers / ARIA + +Provide meaningful visible content or an accessible label in the surrounding component when the Badge conveys information that is not otherwise available to assistive technology. Verify the resulting announcement for the specific surrounding control. + +### Accessibility Compliance + +Accessibility conformance for this component must be verified against the official product accessibility statement and the rendered usage context. + +## Troubleshooting + +### Why does my custom background color not change the Badge? + +The selected `variant` takes precedence over the `--background-color` CSS variable. To use a custom background color, avoid setting a variant that applies its own background color. + +### Why is my dot Badge not displaying content? + +The `dot` property renders the Badge as a minimal indicator and does not support content. Use a regular Badge when you need to display text or other inline content. ## API References + +## Dependencies + +The Badge requires a theme stylesheet to apply its visual styling. See the framework-specific setup in **Getting Started**. + ## Additional Resources - [{ProductName} **Forums**]({ForumsLink}) diff --git a/docs/xplat/src/content/en/toc.json b/docs/xplat/src/content/en/toc.json index 17c916bd26..e71caa8c4b 100644 --- a/docs/xplat/src/content/en/toc.json +++ b/docs/xplat/src/content/en/toc.json @@ -70,8 +70,7 @@ }, { "exclude": [ - "Blazor", - "Angular" + "Blazor" ], "name": "Getting Started", "href": "general-getting-started.mdx", @@ -2434,9 +2433,6 @@ "header": true }, { - "exclude": [ - "Angular" - ], "name": "Badge", "href": "inputs/badge.mdx" }, From e7e9d38d409bc3a0fca27010ea45288ab7e93a26 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 10:33:51 +0300 Subject: [PATCH 02/17] fix(docs): fix lint errors --- docs/xplat/src/content/en/components/inputs/badge.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index b91d9566fc..64bc97af5b 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -23,7 +23,7 @@ The {ProductName} Badge is a component used in conjunction with avatars, navigat The Badge presents a compact label or dot indicator that decorates another interface element. -{/* TODO: Add an annotated Badge anatomy screenshot or GIF when the visual asset is available. */} + The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. @@ -401,7 +401,7 @@ igc-badge::part(base) { | `--border-radius` | The badge corner radius. | | `--border-color` | The outlined badge border color. | -### Styleable Parts +### Style Parts | part | what it styles | | --- | --- | From 81ae011d37630df1732e51cad15d8cd2d6ef825d Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 10:39:47 +0300 Subject: [PATCH 03/17] fix(docs): fix build error --- docs/xplat/src/content/en/components/inputs/badge.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 64bc97af5b..d66e912c2d 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -23,7 +23,7 @@ The {ProductName} Badge is a component used in conjunction with avatars, navigat The Badge presents a compact label or dot indicator that decorates another interface element. - +{/*TODO: Add an annotated Badge anatomy screenshot or GIF when the visual asset is available.*/} The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. From ba754196f79744f68cc49b311dbcc15196705c2c Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 12:21:21 +0300 Subject: [PATCH 04/17] feat(docs): add badge image and update the anatomy text --- docs/xplat/src/assets/images/badge-anatomy.png | Bin 0 -> 8584 bytes .../src/content/en/components/inputs/badge.mdx | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 docs/xplat/src/assets/images/badge-anatomy.png diff --git a/docs/xplat/src/assets/images/badge-anatomy.png b/docs/xplat/src/assets/images/badge-anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..1949e0d1c273c51e216412cfd76f9d8523be22da GIT binary patch literal 8584 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 literal 0 HcmV?d00001 diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index d66e912c2d..cd1c75a555 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -10,6 +10,8 @@ llms: import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBlock.astro'; import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro'; +import { Image } from 'astro:assets'; +import badgeAnatomy from '@xplat-images/badge-anatomy.png'; # Badge Component @@ -23,7 +25,12 @@ The {ProductName} Badge is a component used in conjunction with avatars, navigat The Badge presents a compact label or dot indicator that decorates another interface element. -{/*TODO: Add an annotated Badge anatomy screenshot or GIF when the visual asset is available.*/} +Badge anatomy + +- **Dot indicator:** A small badge dot used to show a status or a new update. +- **Icon:** Represents the type of status or action. +- **Container:** The badge shape that holds and styles the icon or label. +- **Label:** Text or a number displayed inside the badge. The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. From 9de5925b77f11b0ab82800661713ca59b2813d54 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 12:45:24 +0300 Subject: [PATCH 05/17] feat(docs): add missing badge image in astro --- .../src/content/en/images/badge-anatomy.png | Bin 0 -> 8584 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/angular/src/content/en/images/badge-anatomy.png diff --git a/docs/angular/src/content/en/images/badge-anatomy.png b/docs/angular/src/content/en/images/badge-anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..1949e0d1c273c51e216412cfd76f9d8523be22da GIT binary patch literal 8584 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 literal 0 HcmV?d00001 From d00fe02426fa043965ca779d510358f540e26dc0 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 16:35:35 +0300 Subject: [PATCH 06/17] feat(docs): update anatomy and angular content for the badge topic --- .../en/images/badge-anatomy-schema.png | Bin 0 -> 58646 bytes .../src/content/en/images/badge-anatomy.png | Bin 8584 -> 0 bytes .../assets/images/badge-anatomy-schema.png | Bin 0 -> 58646 bytes .../xplat/src/assets/images/badge-anatomy.png | Bin 8584 -> 0 bytes .../content/en/components/inputs/badge.mdx | 237 ++++++++++++++++-- 5 files changed, 214 insertions(+), 23 deletions(-) create mode 100644 docs/angular/src/content/en/images/badge-anatomy-schema.png delete mode 100644 docs/angular/src/content/en/images/badge-anatomy.png create mode 100644 docs/xplat/src/assets/images/badge-anatomy-schema.png delete mode 100644 docs/xplat/src/assets/images/badge-anatomy.png diff --git a/docs/angular/src/content/en/images/badge-anatomy-schema.png b/docs/angular/src/content/en/images/badge-anatomy-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2329c093fcce548556348a29c31f0f42510fd2 GIT binary patch literal 58646 zcmeFadpy(o9|ykblv63)DYvdv?vXp|E@>1Yxr~J5mdjknbQFcC7GiAOkmNe|%O>~h zR_^!ZI-AQdGc((MlY`DV-{0@A-ygqAdpta{&*Oc4U7xSZN6&8PYVFu|Xd3_k*r9#( zl0E>iTNwcO3isg#cYUo3fOMP?iTmXb zyYry)06TLS>YFSRe7zvaDQqW7lr zEkmK28F$KcwFF&>59c@DgwLOE<#{4}+iP%V+5W>4fx@*rZ*P3O|FHV5o^MA6-aWpm z|2C)mI>Gy)aZGG`mY&`Lg|sw4iu`;r2jk(9Ly7R9%h&0J@BJ~zv}uwCUL*~5J;&H z3TkL7Y+sl)PPG$h3~<~6&#a@~r0X+|Id1&-a3Kdnh*SHwx|fgO#dJ~d{pzO3Lc39j-SF?_yi*s+N+{Ig0Kt=RNckY|78dct6fFqr zuuSWJd@MshzwXhQETtG38|U*;+FaB!<;ndg2gUv|iuJpx7 z8H@2OOTj-rWfSdFj_Me<1uGi9DuI?p(J^G*vb|;8_AsTRYr=CBnPW<`uuCsB{l_fs zmq2>=eRZTC?`jyndp zkt?NK_x}4V$|8$8VSGRh$Y8r$K3b(=fqIkDJbw9XVXvTL8n0H{k5BN1QruzUL zuKNRn!xo%E$M&Qh`P>U?iAtvP|9i%dPUa_Ufu{Yd>xh(V5G%I~inC){RMMC0f|^;a zCN3Sc%zw`S)L5jZhln#vd$hu7;!bd1v-|NQ!UPApeJ zIt&dH5Q?n{D8F0(S$3z%lvFQDRaPXU&Cnq2I)WsH+aCX)Q7&WBjT*6e;9Rmh#Gt-D z=N%5pH2Dw9lt1=;rYG%GNCbe53@vE#o{_sC%esSc#&no}??^)zF zivRn3=fcaj{`=XkW51XCH%$P)Y4=-D{-b!mmF%}g`E5S`Z7Y9k#c!?nzey`rK>O9* z%Kt%3cmL4+x7-B^Jo*oyJ$&WIAO9Zr^!IYVY4>lT_$?^Ewc@u{{ML$pQQ)_)`0ZzZ zgNlDC1>m<<{ML%!TJe9a6$=Ta%*c%5bUqEXiuhJ9?Mw&=cB$w7sc+lNvjX=^D_8a~ z-yA(^mVUheZW4d;jMa!-PJR8k%AMzB_E$o(xA)cOx>==v)3!mEmu-v!3xBgRl}gBx zJPtY{rTtc%81JV^9L_nFL&|{axXnVzBnC~x9#2Pk-N!Tc|2){?|CO=)Us2Ql3fG_g z4=}jrf24(v|BvwM>iCHV&4BLKh`n|~ z#WoXTH)B^925h>%7K~axeR>`)+FR<;i%#tbhfcqYdM=Zj+cDWNZasb6!joR4O>ri_ zfmT|XYR>Z{=fzKBNWxmeDk*BKiGSbbb_;%@73bkEfN#TXtV z1x>Us=%Vt|h*;G`R=m8P1G~1-K=E0^>flVZaiu)ecLH@iUlH`Jv>{r_%&Uc-EHv?{ zZVLM2@z5Qd2GhC;jZ-T=u{!gd==zk4m&TKt&gS=eYPGyqqo{nzO)Hh=y4I zz;KW$zHj8dIxq0>T4_P{xEX{6f*D$C-<%e`~sCz=6NMn^SwST zraj%`<-3l1tfpbhkQ>F9E2=*~W#>DVxfX(FG=_6%3?R_{Q#I)Qf*sbae~E-D_|Z(l zXPANoSBL-Dv2MY4WhB=cqN#x z!06}!+Kv*2%i%+_D({WZE*79tA)=J!5c&1MzEx-_yvo5=I%|jeFA$gG$i6g}O1g zbkr2SX_b!q_12F01JGAsY1Lw`6D@q8Q`}3s(51P&3iyC`b?7aHbpmdhUMiyHDiMnA zyIEoz3rB-VX$ZxRHCmsJUf+8|0arp!{X8VAxvR^ZS_3YC`mQee_U_iT%H2e=Ait#J zV%=;=+(w>Zq6F$eiC5Qb@aoWWm-npcNvGb*-sc*TYA)-G9sOmokmbc5a3yp*?^AE- zj3Rc@TJ1P6bltdTiaKK;--pWr?>uA<*8TGqq3gHM{3&DYdGkeOf#ivabVk3E*Y!1N zy!EgYXLX)s?QLupE1ZqY*tz;>BKHY!>E@7SIHK}X9m;>oz^dKHZvT)N z%jaR$&;TXCTW_FLa%&JsJ)bUZ+CM$hVw=aaI`{Mi)zx1!I}Q+7dLXM^&#d5r83}tW z*louK$THxPngVSPa-Dqnq!L)r!kdh$_~MS=7Sse$@`qhpo&5IhdXaS^aapU)XTp*X zRUDR^F(0aE;p-K)g|U}1fp>XN1nb^Cd?HwXOPHNehW-7%oWiv(gB!coWq7_>FB+(z z%DYF-dA96TPuR;>oAz%y#aZwoYz?ZTI~QADSljyOuUi*WOcd|G7u>X8>6996_#pQJ z=0aP-U;&m@YOBT)u>alqrL~rAA=8EHd3FYsaWB?w-8=kse`E;EZz^UWDk80lDXQ*s zMec4hDis5Dz3olZu&QuT49@SCPwi01aqc#g_niB**7#w0b=_EXZkIrrojt?7!KG|9 zx%+NkPq9vI|%*LXUUXWpvz{ z8eY8f%W*j#oS^4cyPmqfdIqBOPEuoXt--sTu~l`|@G=5>Cg zkdXOH9uX6jlkd;0t|PP#U;;JnI}yy#0T-#YvVUH8JcR8bvLRJNRxV$Br(#%|ocY}$ z!C&8UyhEJ6)>v=fO9Be|Ru`#Z#ZcQe@>wgFlIE2(K}WG}x!f$sNb? zFLN=dt{s>D3$cDZQ9^=w$m1i@aV|4jARF3UUfogm}}o+G%@3aPCEy!%TR9okz-*o!c z=Y3YYLS5lJ(Y*(fIQ@Q}evLOG5SKup^-=%exDe3kftJ8MF^mJ$+p=!b>TZjg7k5e| z;!+I=QM3kKWj`ja85x%946A16=i2K2O3?dvB1+G69HP+4f)e@|*h#*So(p=o~L% z0@V9)kC4xTmFYU=e!(Ud%A;eagdYWw!}(CE|0g!6bXtoTKcoNSZJcYbU;Y}*2v%R0 zzf##et6QU`2FZ@wg!a{3PiPL98?Gq+-#ac+L{%AyW#?x??2zq3t33SlXNp~W?l4o$ zvUwpmag|Mh-?}k{w#`|b$zzWyS%b-(%%!oq5U(|uwWX9M*n=OVFg#Y*vCIf}5{UAl zw4Oq2e70D&wI=uJS|`}8o$Dv|mnAmi({>yumv9(aqpP#eRqa|wIXt33CtGHL+z#_c zmnz+vBzL^?DhLJK;{9c*xfDGlZugA5WTChcN)PwYl)XA;9pIo_+ z!xpTNsvr>|c5 zT-7?9R6d8sX%vsdqcw{(GxaomMzuQd|G3Zlb*ID|=wbn3bT99{(eDH@6?-}!y}stU zzYqXe3tq8_mS(d*EE~K>0aXRs>c-Yuk@aix`wxh&;yXKF?j==1dU+1(j2$TwA1qvJ zI^^BHPJvBhulL${nE6#r7(Oyz^d0D}bYBbE1QgfVxTSL<%=RpYQH3%Q?yMUDFEzTy z?8kvtk7{{)T{y0mbzs~`zAxdz%a&LMym(=4ROc_Fu7=0|+}7$1(|15!;fq z=l}i7D3eV{<9og=8o{y4HXTagZhd}z(RIpS?K~xp8@pY!z>M6PT&oSu;Olj-xj0k0 zhF*iuu5&c#$Fk~aEaJU1Ja8tW=Ax&2#qmpHi&_-y_`3z1_TB_pE=N|nLpJm6yKb)zyCwdN3nZY|4UiN_3Gl*P>@#9e%% z%-|*nkp2rb4OMHD^ggzJ!u+!Da6U>Aa~@%2zRaPaY6XucM^3Z5VAD#3fMIsAvmf*y zNfMWJUpsx^C+)!8P=Ik`dqQhRhpjYc&<+^}oBszwDs%pbH0gLnp#*9V2}W;OrRvU5 z#`Xh>ebDjub<4SxC+AOIxvfd7lLs%f;Gv&=e%-Y!Ge5wZd61H7FFB$1^ zp&=*5K$YDgj`P-TUDcYv()Iq&8}IHYIi>qd%p_~6GbYF{u};n@EGHeEzSIm)qx>A_ z&wjb7sYz&baS~;QM$3)8I8Hu8qd{W5!UbD2-eqMuTrjYv&$J|Y#w!nXO8vFw$tHeD zeOQft^8yh_n~r6$ZKLq8RWiJIqp?}HdDSwmJ_Q^;vaSoO56}J1Lvl&+|IS3|dLXpQ zO~CI|^D-&^zmp69&0;P)|G!=C_|4+qEM7KR0KjiwyiA4vANt~3YY_$a{yRUngAfiP zeoLg?dYZ+)!!8KZ2TFN4t)-pKMm=3^hSUcG%cY7I`T{q4X?zEP#JXB*c||JcXv$;$ zjT+bCt-!}WbOV>kyYe}gefQfikC%)veS&=Um?-p~&5#baRKuKI6i|N_(^u-;T#Qf^ z6Lsy3j%0mJkrFR)@vXV3rAuB3KV+}2htRw?3!%~<4M^n>Qh@6IJi->hPK}P=ztDgCOCbrGt(1pL+Ia<_OZ^m+MWsqf^ zq-zf(Hnzk8&rn~3?ykHhRnqoL>{y7|-pqh%8or3^m??DBG*uNd_LfeNwxEz{BSRk+ z7KQOiQU;sK0_sPzQ$BkbYFgAVU8`-~T}PwsyprguxQPXaff*=<9xx9A%kU3|>(Z|@ z^b4Ke5FFtbBjr*sl|<3gR(;TnTJWoBh@y^$@WnqgYbdmXeeqe3#k{xwO#xoHnPd&k z`GuBaNT?^RmY|s5>g;Hr;+K_}mWNJF9c?R5{3pa8s*acvalP+v3$?cHc$`!{HIxjR zRCcY-GOdmfiQ;BZ%HHZ*-0xSpz9;6bPD68-<2*?FRk>?%IAR~T%MaR{tQ%!vvUD~< zmmlkFmL$yyIFPczvcqlUoc5nRLDn;#;fU9E53TZ&wz=mk+&360jPKEWOy!36>FSXe zg{u5(yrBN^O-6+hJ5@+REEV7^Oke}v1 zS5uWcR_>nSVc475kGb7ve9BvYPfXrrJ%GT}-IC+D%2{Z?;dM!@^;Ld555f%-u-Yg& zB3AgASc=EMcnu+0_Jcv`Ce?tZ&!2D2Faw*R(wp@f?F35Fmn&}Dox$pi=euXWKA3p3 z<=sjX&6d{1=aY7G^pchQb=l!t>{F4P*|N~;%~WJy+I+`i|aa_~ffuDC%{&_y|D_H-@1W;)i^w2m9|V z7u;n1rbu2Yh{t(z7n)RxDQsBhaM42d=5=DgXP+2%wO%oZ=A_;opmVBID zO)8%NRhgEe3xwpJeTNI5&-OUUF=?_@Uby>dX-URR)4!@d`OwA93(KhyY(Uk-*>d8~ zyHCih#Q1^dr33z4TyD>}<3ZF2+0l-g9ursI2q=3L7S`gbQdlBu&I{kiMo9&@9TWX< zBE|bU;RLw=kRT!QLZUKxb*9o zqJ{Dvd=H6^TpTG@6kP=C$I=yA9b;9Ke8&fNoHZ8@&*+NVnF8%il6HO&qW|r1V0Q_)lkE?A8;4)wXw@d3FfRsxvChh*b&88 zx@V<{&CI9z$V@!YthukPa>XdFrHWD9z)YOsdLrUrn&$a^Kgy~s8SxIzZ~pH5n6Kj| zSlJou+1cE6ui2^dx2CK#JDB>J3;eaLN|uzUp%crV$Ra)>teIh^xIZR!yV6DJ z4tTwdb?b4%0@MzA+PL$=OooM^7bn94l?mS7;e7zRBgPa2XlmXmFt09;ddjoOj%rnH(T zegoh~)1aG&k86=Pj5+IpkI2+65vDvgyFc03zBCCp-z(BN-CfY;r17ErQDX(?Tz!AKR^kr#1KN3_eE)YidQ zIP)F%%nQiruH@>wD(~Y>yz#G}r(}@Xy{?dPO_&+0noRy&E_kh~T^n_oTyWdGNH{7c zC3RcmW`MvYPi~I@o>(q(#Izux!Pa0V(-9+{n<8P%!iskJcJ|@D_($CZ-Z0e9RktP= z0lgeq8JaLC%Oy3ng;6dUu~+qDs%PWyB-+<+>?7CAZngyWF1N^V5sMyQMQ5&Yqs7@C z>`D$WlgDpc{4M{1=7x+ZN+3b_X1?N2GGr2#Q!BmT6yGQ+$Z7=D^5LasY~FX4|Juu{2Q2CQ5g>$Oyqfefd+lHwiuyZO4rB zY2n+n3s@xy6mX_8?_)Vy%2bsdXR7|x2R>5zHRBNj(ydRQKZgpo9!aRBr+_xUYD*Id4TGCWgO*)iv_c=e>&bpoBT86`J(_ z7)k3hSoE_95M36L!y9HQ@W~0(E=CjB73h&BJ4sW^(xNGFXM zRxr{r&tvCo;Wv1l6XA_CN|1ZeL9^2q{I)k#)Q!TQ+vvE$o1wU1M`^?&y}cZY85#+V z!{f1YzUELDjacNZC6SLy{RD5Q%UdacTG-621hEMv(wSKJ#2r1DC4Ob4Owp~@{2a1&|iXPvQLEDGdp)htG2~zS7=v(a81FPFzc?-4! zKdjT9FpH z&)x8Dxw)tXUpoD9xdrbWmfO*yL;U;@w^HAqIPo{&+~79!*Avj7n9Bit-BNiWH`2Rd zb?se5^Q?#2K54Ftx!ZV*fAIZ7vyW`JU;cH|IY;{LcjZ#P^SQ^QS=u!>W0A;P_`K$g zKGHD~)w+Y!C*y;Rx{*zQ<3~HxVAh$(`en58>RsUiXHRK@-)QsqQfK8{J)dkdj>prz zgoHPV&y?11MN+)bQSVfOC1Z2Dl~BKa&KZl$hmDf4$pnKv-R zSW|AW-iMmZ<7w|a(EG)E;@NJlYMee7?y+x^SRwRu%=q4Aao31-l$(AzNz!K3HK(;i zyL2jQ^6u4XcSJ07B?`Crx+QYa^EnH%PtsR(ui3y0JVa3FOFPQSB>aW4g(hqHt*zC# z!eSN&ajB83aMZ-A;fRfS!Y|>2DyPCn%?A8pysxWl+f-q~`-YHvugmI@zuR)7uGBJS zT`}E$=T~|~e*iR=kxsG8mNx=qaR%mteJm^K+CA%2s*aQ5v)?>#}4fHFzZYc$qgz+Y~?tDC;vcb}F zU&Wm#3{#}M>-@f;d!<~3lnkB8im(R?UU7wIE2CtVT(w*^Ybb_;D$fWN!){$SkoYQ! zotw##Gr@@q^!ESVm)g1MZzvxq%8(( zqz2g@W`9c8fVSmd;ODFtAX> zC)K}%&t53vHZ$`a-J&vR_N?Wj0!k;6NKG_pL8poDw`ZJAE(BlvL`7 z#hixe87PNT6`B>Gw#kP71VP;1&DMR&hnF)ML(5(CD~4|@#EkqcenepDY^c>WExm!_9~M ze6JBd38~Z(xd(1`?{Vqq^GRMFZcB#j9iYoeU)o zx*)wF7kIJvhQe|4A3e9_SN&-+puX*eoLMh){OI|q4QG}k^%cr4{#{4T6h(sbG3`7k zI$>E;`?-zv+}eKN5zCrc5BnLVen}|+F|47*Rc;|>vgZN6rnS%Fa}3qHQ>qj) z*-X*!&YPV_z{*}D=dJ?+{rB0qtCZ~y5^_y?P4rMi$TY?)qtF8}lNoJN&@0f1=gz)^ zxpZ~H{2g<3y{cU%t|G)RY9aLcQoq*l<7@oKMt`djulQq{5qu38BJuv z=GmM3v$^j&v0>wRF2u&`V({x1q<5Wr7J4=O#*NIg8}DSE%gM70+doOr$=y8hp>vUp zJvUBu$@LG-)k`Z?|0^FjpW$@gU!!$<`G@x>H*XU7GymSJBXwqH3a_7WAB`{VxWl2D zGbie>y0=cSH;QKcdvX-;D;+D?+nXNN$HVnC}tw&xpxUyt}&9EC@IKDDek!}66x+H zpgP=F4at{o$ZmhA0MHAreSfk&w3h6iT)fAp-P3Ac1F2hqnNIJeFI8I4Qh?cujWOmo z`wpsz1hr;KvkhO{(8UfT_)_U-?}zFFyzhk#)hS>3Qam=c^8oW`MD3VKJ~!qQf#V~; zV>$O@@Ol|jlJzB%JM+Rztc#N=uFUCR;_So76H7zG8=BfK=mzX^L8 zZB@2A>jZDYFR05XJv*NRx9gsgZgPxnvW2wgK)|>4Yrc7Vk$CDl@}Koko#FyIOH%Ai z9DC;MND=baYXW!R1*m)15*(26S%lR@phXe%YyO9Q>JmbBu zYx-#Uv$2fn`j*9s2&*|;i$g8d=X^`V$I`X3p1JJ>i0EqI!!gHG@e%X)zH2Y3rGe}i zF!q=$V@Y|Av1BKq7dD&aqlpjeJ@DjxG6Y_(GH8xvo5mzd4bw786-!A>th~7^<3uFX zhn#4SUWfrwQRyp9-9JIvv_L6~*zdzIQcE2&dN|Q}jfMtt8e&fTFl(0%)hcR$ z{+Sl>HKj;KF{P)qucI-eW>;H|DKJ4}&PEaY1!PBcLilP1_BUp;<$4%5dVFtQQxpwI z?bvPv`0)(E?|zx2&1;OOjwOhqH05UsmIlS!F~dK;w~^WL&S$#1rqs^qar&N7dWmcB2+2 zo)7V{yR>9aQJsl7&uy438!?dMSaVGqxDU+7<8W#|~21!#ANzVGa%uztE*<*2`Y zrvC$Lek5QQ2{M`<3$@3cHq1OCD*1B=KAlV~jZ$*NoX)TGvFZ5yq)Q3i-_L?J8zZD$ z7Tun6YNRWu0TfqMH|U6`9?4;tmt{B^C?qZxB}?d zcG7$BLg$RfK=bz~qQ$L##t;}wMdP~-zU;f)b>MRQ74Wt1Ns`sg=#ty}67I>p-k)(~ z+YP{vflEeTz~k;;wnsYNbUTB{HR;Ri@^FeS9U5w}6GOi6f_cv8h!*+!QVr_er0VZ} zKHuf(vS-m>m?H2#{<`g^=^F4`ag((n3P`S;ey^$k3xM)TBwCth-Esz_3Rof!Z?)JIX3dhAVQ?iB)F)!EGjH zakkNykJR8{(8*U75|hd^kA+Z4v;4p;Pf{eb&l22zFU7GwucyMKK3nln{ho4KOaDHE{fJbw%5C7$?v)}w0bd=a^sp;LI*3)0QW{DI0E5##zU0c8XqvZ_d68>bGa>RW{e=g%hABu~QU^FI@c z?P<-C!bQ|2O0n;3m#BAta~kzgs+a@yO#Suj_b0n08+3QxgYe$lFn##t!Ia2MMKy?j z<1Kn&^r*?a11bd-xA1=HE8CZXux&wvsXL5|^^5OwLe}_&_^6nCfp-AnKLgXlkCoag z@;yz$KbJ-zFo6>suZoFqqWkMuGf16s>0*}}^8!3o`XFRHv}TFMoVueUy0DZrmq*a( zGzT)Vdze8ojq{k4G#6*GSZbJ9)Tv1NWfl{aEje<=v>z2PTx4z^=G}mR$u8S<`&4EW znDaagw!mY71^$a_Y$B6w*@FB&BWN+VG&hf0$nt124lq&WUz)&kW^G*jse;be%A!5U zvJ0CUKt<#BiVkQc_Iw|h4Rls^z1$55iEJC-bcBH=t`b)^x{kr zJ8+y-aGYpeShmzG&1(8ST-yhHt=-0JV_>Foe|S;Wl&pI|d~6)%KAM!xgbBZyQWj(^ zC1qd_myX!*CyJ9p`-0{ciB&dUzT*@Ta+oeINl(Pyi-X6fAvsdU(OUIlE_Nwu(YiJW zJL(X$lN>Of56nynYvfP&CMS~8fQvySvuXYgm@QRQ?I*P!RuBKgM1fj!;}jo?jXhk& zr2~iQ9A;4hYE%rI_XH4GqR?v_^Wp>Eei1#50PF62tmO1y@$0mS=Z`Uu=~=J7nZKT& zR#IszcDY?TI8N{xzC05@qiWltYFd(XyV@Zhi&1r0Jn{fg0FJhCLJ~Nxp#qDYb66ep4DX4_*XS?}xhk&;+1_fn;6ePok-Sn<$e zEm0Z6$8yCw+HPky5?#9Y*a*6Ch`{+wI;)2>r(-YS!x80>qEANsB*>4(lRv!yfbUl= zy)-!S{HCK@)kw@o_okW*&K&ZhSFg!r>5nCG7u7#HcbSN|*G|@bO{(h3u|B8LF178l zE!w1A5we&EE@sM17W;Wt2Vb4F`v!d z^CL7(o`7gDJ^EhzKe}!*>IA;hZcgcUn1i?ajP`0QlkIDrHC{TB*q~UHrN7Trq0g1r zRZlF|YfbL!_v*M)G?f?SLBE#ZjB!|eyYV%(`Z8E#-WZwnI$aqy{kA6T72K~VgGB-s z9ZQhH!ra}p^HD(ae2`aVZ|RYGrg^{UP>fBNSm*nl!iDG}R|4DI9`46-$N+U<1_ecD zG5-0z(E*FZ0F}}iCPvPB6LcB1oahji9d&VK)~3K)jEj^xYoh;1GuKkNd(k$3(befeoX`2Nul9hW+Ycm~gJJ}4dU0)?htKYYf~6UD7lR};U*-mfkJnuG zWu_uuDVC#p71e-eRHd^B#ZU`8xt0|0MneaXnT~%-D{oSsif@XWh;-5LW0X+R?H5VF zl4Jfqs;wi7UmVAbk~p(1{&MvxN4+vw^=RgJ7GIwc3J4s<7tt>?*_*@@ed@EX7j8Ah zX=%E$k|g9|Z@KP};Md8e4yzTP9;gSEL-Nx(JAUbW1KYyu1_OGkqQYuq6* zO(0L{VJaV|+KKNDeOU!@Ns+=2yfV_$ZP8shz;;SQe>=tCT(uFTfq!RsihzVIkOGB5vNFZR>#g`Ht&3 z_335$i;pD)iKO)o z$8o$3ikO!Y6w5KrDBa?43v<&3gd*|-^Ps{c^o{Cl_pY;Lc?Wzlk(;SKEL!bY9)8SM zv0>h62FfmbUegT8Pm9l+`mA$>VXRAZoH6$n4V zCigI_A;sVq2-UN!T?>+kG!R;FXNGP7XS6HP9`22|OV(3^I^Jn&=V=>iB*=Y%EWU^z zun(L})i#OF{q7SrvU~SronLotK@mt)rE@}Ev!UK2LIp7*W@QsyA1U%?^63V0?V!MI zm+=;qOn~CnKqsjPHEW;jr(a@Yj01)(ORYzQYKf73o`X3(#OGliikCHE!}DFZPJ(L+ zBFQhP6$`$WjM39~D>rf@WLYETvHM+osC-Eh(%9i66hC4HMy-^|2>^H3I|IEJzVILZ zsR@}XC;!Ii0-}scT5+=&&4n{0lbj4@HIe!#echst0m`DRO4>GE%e`S6k}$mYSd!hW zNo9n)hNx_6k1Eqx^bX@yPTf*th;jN;GziZ#aQ8Ng{eCYXFJHYuPh#rM7m9nDJ=5)r zOmEB;l8}2I*NkhrY88L5Kl*{lRG+(iuMdN#E-;P*^4`H~koGsvDS}07++Q~JMdfhr ztBMDY;xF}UT67RzdNz_x+Brh)@{5m7yqgi(mKWN?*C(fq__klKRH2ln1)DxX>G5iC zA~^wRqRmELl&m4ce~EkF?2}Chw{wG=M3)}=wg4G1q^S>DErky_>`jQ-iqSGNU|Fkz zy(@B5;NjmF$a(I)&N`bLRG1(8ni2Yn$IIr!^24Ogvmv^p{Q!`X-V7uEl?Wq)~v*nlz1lj-E9U z!lEBRW6L0nE6#Z^8rq(~Hf=HTnkZNaRso}bi?(`rkF!CxYhJH!878Dj^4ht(kL@iS zo6RZC^ou{5pkotWE^$a$P5r1^*!+yiX&5mnmzwO*A{pFffEI{w7`1!n9QWGB1Oe#u zd|#4kzvwaUq68_{tQCy$nW=v6g;Lurj!5Y}E`&&OgU~KnD52RJSNOl1AoHE(V&@Jf zi~>JgCh-D#8jfxs^p=m%8oC%s`+~D|Ku=KV@m%cM%X4owws9cDop8rMH#ya$C9lsF zrp7TZJ7trc*(Rih(N6-6J|}RBJh<3Oeb}GE#=?N5RAWK{ZgWjU+TTL^c1?eKy(T)7 zm}OK?SLW9WM7qF+0s`s8VJ8kYDGjac=gAw$sY|0V?BR=*kGj%NDm>eeW@2DRJ7tH| z^$`hjPfmzE6gZg}`A8u{B?TcZVGHsyX|Q#GcoHPl#3T3=O$)UX!8LK?hLKFU3DFE>a158PGO^E6IKA&NT7nF3*-yMnsXH zOe=+E%N9#<(vxNqc3j$E5*>Em`{)Y(c45B@DdmK4>hxA#=u+-j)5?6&BI{Sm5>pzU zy$6M@_TJ%@%AJIkDF;8du9n0N_qICmswdhi>YxhICc21LEk4C!yB7Nc8A@A*2G7=5 z8u2<*#eO0#ZQWt1X21A8{qmNa@lCDblmxuK*Y}6RmlUs=_S#A+ZLP6O2^YNtmfQ;r zTX+}0r^b~w_t#lKUW{T>Hrg8a#8%w-GQmDfDt zu7R+1GVr2Aj#8q!N7>32`+|{0JH03RXFtGX67sn(NOGkWwb+&8!bw}nwc^fdCj9(u zS~fyhP4jB}{+b90g37LVK2Zlnr}M3t5B4=*($QTWlf$Qy z(2{C4nZkjSVvEH`v4g(*EG|ob0aIq*HF43kqPcm);+_a8M|3peac91RxuRZ&5p}_2 z&boR0dvDB(L?-MCz>$wn{mQt+X~bo18?aBaxl@Y~o;V#HGpR8-&kfm|i!*?6xV+AM zQ2kq%=J=R+9sx-<=Erj`a|2JLGlenl*3K!MK(Pj z10d_C?Hov zb8O+E=1)Kgh%^D-i^hkY)Aw8yGT>EgvPJj-)Gd0t$qJ%7#>EW9?UIQV6ZQf6DbdI>INyEhTRL%iu_USGWMy|zR%TZNNH_P>*=K0lr8@1F9Fu*YxarPnzg=9} zV;9IrPY(K`cHIn!A{RBqNd>feR!yBQr6J~#dCr6c2U0R;?5b~h|BNuHZjMH|+HqW2 zYohcaex~Wh19r41%a0V=AmdZZ>}RA>beZ#nINVts__M$5r0?G$M(68jly95F-su-p z#Un+8>vq~Ld{8Cog%<@1VLA!R@|2*9e!azBKI{mspfOHWf@p_uMoW(4&n4{df?krw z=moU`dalH5a#F)TZspUXyULDJrOv#U(NMXVUUctuKf7M1IiFqL1ooJzH9D=7GA@>C z2QgAYe%}cMhtZ;AoP35##V+_sauu1eF>RS#~Le5Q58e!7?vD!v0)viTy zOIw&@Y2)#xkfCh#V%YsVgJ|U-1F#IVYPsPcpJsz_$&}ndh%>>F6$ML(^n&$N%PxLAoT~3v?G@K{Q7xT2J zaXQSmb_(cq`MrDf9DR>C+x)LIS7x->5J>GUEZy|ZA!eDp;{`cOMNzS^YcIzBu>WxA zBQ^tT(P6KeU^8^ICx^pQhkc8`AE$U0g0O|i1F7`IUbEMEm2NW{8#Db|A^vWcRKYSO z^~LH>-QWfN9zOZsH(L;BXN&bD&YHYVP=EOfo@V5HX37%+{p&<%>*wrnxi_Su3Go-4Y39j)+Trb=sfX!;TD$NT+R-{;y18m|MN zyVsrI7uAd3A7kN2_=&eW%a+Dj$+OAv zH`J0EY?~y*zM_+*L6l;5i0n1QwBwps4$iIwJ|CtwY(9{Z|xBT1vl= z9HXOxKAXp*#b;G1aMb|KNbJPsKq>O;q1?-2IpbAgK1Ml^KHJOD`EY5Jp5r_GdCYRc zNvYHuZ$Ew%g=Jy`j%b|1FwIGIZtP5znQ@s?`o&_;$v7z~$|tQ4H|0NVakAK#axyzl zGBxjHsL{cLrd6f^WINMxLVKti z9t4>HdO+^o00^%h0p_QOuyMNObk77_{<6I}xNsEM|E8bA!jI{IbZOq#bo1^OYAeHJ zO`Ed6z<}Q;Ia3eXtC?X8A-{XnyIi5)&Eqhsjy{@7?0Pu6D;+<6b;30_i`z~d>ITop zI8yA#=lcqyF*JUct{jG$66iq8$(Uz4bo71dtvSl`3t(0FiOugEw}Pqhb_BSxM0x-Y z9l0U{S68zf?FRD}1#a9Ztay)IFK#5!exqWpB)+?~GRHOi^$54lDBwu8`#;!w@3*G1 z?tK`?8JHPSW)uOHqNspM5v12~G$PUjM2rYgdJDaUs>29E1f)oWKtPb*B$1#=0Fe?P zLZp{aq=W#01PCpJ@;#J!KJ#4H`wzU=_2dWOgmBnr?X}ik`(F22J3dq1S`F3dJ@^uZ zXEk(SFPZi7>CpwjP{UT?rJs|^$Zn-0?t81)!?+}d#vSP`bvjWRXiFSX)H%ylXvKSS0rt0q^!lwoXbWOvAhMe^B#NAjlNC4K`?f?y#PN}pH;7vPuN#^yLOfsY->WT`` zv}1cHubr0f#~!M^6f<7owjFjU>^DjHb&Ol6h}+TNwRD}~;4#$1E{^pMGd*JwZnj|) zQV&OE?jiY6$EgyKxe1*C6s(cDHdp;URrWm1t0ju5=jzER`Lz3U6`^9>OU%jEQQU`;8b%mR`* zrQc;+A)W1%=S(AE=e<8!Ex$UI#oZriM5YlmB&uueYyl$zp{k6LB_jIB{xgt}x*I7- zx7Q)=;_-C$GjD>*uL)#0bQaexPGyKN^iMp;9lH_QtQp;X;Izc-AZ>BAW=f4* zBk6Vj(N?-6=NsVA;fEHI99^|9(RJ&Ji(>RGlR-f%pa3`AvxGit@AZ_T7kw5@Zypia z!(4DyVu-l9Pe6cl_pqB>{xRxm1U`R=kspA>St2?S21e->hh~Wny}f0Vk$>mE%#*|! z#JMMx%z3L1cExBeeVmCJpsc)C{^RI-t&^aRcK!0Dq>E=j@^V8Vy>TF4CNvR9~KZNP{%>{A`3vzwd^hIk=J* z+qv9`XACJG=CxoFXbZXem>!|Dc6^_9L2H;3t{Lv{_2)w4f+82i(poyEEG;=e%_Q0W zN9zrAMllhv41LFD+e>O{fmdF;emh#I7ukZU(Sh4t+@>(6@sxUZ%WEt>I~^+#IZ_{*TFlZa8w+Fz{vU-~}? zfFuCV1iz*d)e$(v4;~RPA2=3OKc$2aUjHJc!-;Ufx6aIteq8@77?V9`ZP_!mwcyM9 zo~&vx3nGbD-?P=sH5C9&A&SEd?kXnuYG#4F6VW++lqJ6 zZyd$=b1NZ>KFwy7d6tlMe1_=Z?j!lzC0za5INQpki>EuDncEEnso!MZ8n9MCiRvS7 z+b!RhRrv)G*Bd7|ToZehp@5SiT|Xl~r0W&DL%yku>1kkYW^(4PFmI>-4q2JI5+Blt zLCttb?^$j7Wchy4K>UBHdi(Ux$OmCdb8W*bZ>06Nt_IeY(7`~3lcl-6jw?2}->7zG zGomUNGe-?RHWb7*^|5(ybZ{)og+!Q+!r++aEqTj{7lI)}ouMA|(PLbcdje|jMY$9F zK!~HDg#4nCPE3jgL(j4Q{OfehZ@Wvm1ykGq9fb(3il5NBi3}i_F?IY3fSu7r5_&b6 zPA8&ZMHFRth?MvT{En9E%z7T%$}|~C0J17xgE%14IbO3tkj*4%z8(hfUY>8t&LfwT zRyGop@# zv7QHrT+Z&cyQ>UNA)>`l?R`8*yydf>Mgk9`4T*us?l{P9owa@QgQQ z1+7?V_^KM-$Sr1c)T#nMOEPRfb5gPo+UT9Mke)&0gr=Qjg=S>W`Bwie9ptcK>yoK$ z58rrO%fZQ5;TE6qg{j&LhEZ==qrz5Ha@!`6HH-B43w!FI`dmkTFHNNRSM8RH^^9Ab zV?V1rjFG2CmtA-aOQ{;T)Oc3@?;%&Da^7cnwp(%0tZamX0!q$tf? z5i}=S)Nn3wJmL<0Z0Rfrm#Ob~e~E>biP3C)AC$hrnOsYxZDl5QM^?|Gxmfd{TiEsPt7 zGREs#PjPnEPSyuAw-WSqRtk$QBRj6P8shpCg;nYSwTi6ATFP=4m?fuA((_U7gA#|{ zYsvgdh>`7DT2Y84kUo7hO)*EDv_EqZOdf@i!5Z3u1we%V(ET{-Q^@A@V^yaZMs-7o zHf}!rn29Rpfo!wWQ|NT^4```Ar!;9xyN0aOzQnh%qShjSjJI8u6V(MqOR0RaS^GYT z+rNwNrc)IJA5ykqyG4-ZOwiUpI)`rxpD7j7&;Qw@|F5vQqoZr74UrphwcCBG`*q8K zTtDsq5I>&VN0@#*{&F2z9`=b(t6rdkPlUGh7#yzA{?2OB>lQ6rOz}+It@%Jzw_7Gs zrsnhP9GeYeIZpoyP|WyYY{xLPZmBLp$A3Ulr!qJ>Z_9PYT9*(hl+_ML2WQCteX@M3 z4npB0QH_B0Zulnb76r>vPV$rFf#HWy0ocrmdQwNS^4 zndC~qj%0%4hfpW2v@Jk8+mZ@u=`Y7ut}Kq|X=BW*XQ^^(-W|__`Jo=K`m07)20b)h z?OD(FL;D@ZKA+z+wyhoF4x2>=s7p0lRe5t?$_*?#R6-~E#PmMrRS7*VqOh;}rB{9` zn`meUr|~^S%-dRbnsxOmb0miK;ibCLEiVn=9fctvj4svXm?c(h(Lc4>jpLo-0$~c19A2 zg5tz^aJQRHd5u*H`J$u-U(}5hk+3z=#YJhw0i!-^U3|hiL0zqOj_UdX7bOefC4gou zC65hOl=rJudt4O?;Q063dymvcJ@~3umH(lwfy;00#P8p@C=Ud`dd;PPI`n?@vs-%j zDeX0|J{DhR_23zwXfqS9WiyG6ikYK}X#k9_@=HP+GqBBm27VH@Q(Eikqn?CPc%-#z zuVKMFbByd!R9Dc#vZ=nHXcyWtQ}~me$?^Qjze{KR%3&*pmNRSHmMuE#Bg{>MeVdHR zI&k17bHhH{%b&bmLXj}8kOU(ncBTLq>+*`yYhC~UsXsMrme#YNN~&#my1MmVN08zhW!zs)h9r; zkpG4sT(JM${4(}?H z;XL{tPolYeyAK+n`4HBkZ&0)4{=(}dvDn)d+D$0}jZ->nEGBLV*s5pdh8?%^1wwp} zjotk7p6V|A7V_(U_%6R*p%RjL?U?&}<~lvREeiDnp30X-WsOZp*MLhC18H@gbWV~qX4}7zVPmFy4kS${VDyj4QmSWy>-+rKGZu5MUF6^4V=DFQi?8@qh zPk~gi!`-7ucd;t3=yZ1^TN%D3HmUe|6)T0032DcNy!g^84gVpI(T~wsh1(KT8JxT$ zj88YTb-ZY=F+Co*@6BV`lqy(en>kX@eim+sUdjIUXW=ijI4R|wXMN$s{1e7S;S1HH zGai@rB&aD}IFU63m^6E2LcIOt!K$v_ozB+9`c05&?ZV zby{tY-w&pMLK?3kd+G^=a%FKM;kW$Osu4#Smh7TjeEhAtJN!kwMJBuuP=%g`&@nuf z@W@_KRAqv3JOVt7Q*OU%H3<%OIY;^uQZQH|@Y%mdI!(#wcM}Bhm4~3HmD>l9&a~wR zd}P}k5Ywx!2M5eoD=vPl9{($%%K!RMN)HeS31!I+-li&KBGNUl=5W@8x!m*<4*6MT z5~{85r^aOK^<=rw9r{K1?nBM*&BN+n&%gsj7)xw%_U4b9Jz7rC;RRAuGudtL0vfZqM%El0f)j_p23aIL~#$@ z2@^B(2nS(O-TMp!i8fC~ckUdM6OC6YtlVn1)i>*{UZJ9`Px#N|4( zPJi$^b(F`D_m+$tvj743K`Raawp*c#%>}6jDL6mUiqloMrg|?ep_d!aK0FD)UnV(R z75dPVl${IDkf;bR%c4&9)fqYry8$txq0LZ1W-XEj-bp_u;c(gb_x~1=R)=F+jTR% zu&d}{9(R3BS-DZ4@4d1lGlEV*B(NrKoSW?@pIcHJu}x3w*}a8u@Tyo~x>%ndcvysZ zl-nxq<|n;?p}tZN|NCtQ+B#vO+I+1wo^D}7!-&80`l~83Z8OPLzH?tc?Q_fptG~}4 zj+SeMgtkCNm}{H+Zs2t0k9!ex;LE*m@^JZ1oUtV8-mZ31Y`&G$qNWZz%CC!56$>c> z)T54q= zmnvhEj1Rj7Bsjw#!P6h`+dOYhyxfY#X-0>fif=Mh68g|*?K{1CrHL3XA(~`G^#zg> z!fKCz4LH-@8k^Me@eDBvQBX6^}nbslC-V_39*ZQu#t&ga?+6v+%c6K=RH^^^gKXo(NO!+RnqOY@7UT)^T z-2jSa>u`u3%fVs$%J(0_@)&ey`lw1%l-~*Cn0~~r2qC-?YxP9-rm=BjP>WuPT(JVk zL{CWwEB{-~2f{t(&?ikmsEc-{a?JjL;Sm$&133+_wRIUHrD-^nw1o`?w*WeIYa*x+ z?{Pd=GATERpqM%;NC#9dNe|NJ3O18f=qu1R6M?Q zMy?#14I3yY83|;5xDva5#E0u8pusF^iygFU_>8g4T9@b*=f zW=c{V@g$*i6qC-b@t`Q{bGZd4kQ07kZ^%2QiTUJZ&n=z5GKeNoi>4KD1%p!4LcB#& zma9WSmgDm5C`8y&q-+x9`r3%YUC>*~`%9cPb#qKJt-pOykp{%@J1te))0vW}S5opj zz;2~$biX@l;JxkrSad5DXxk1Obo<(qTFCsm`75!Wq` z;_1VjXF{mB;ToyezrYX8{`eUyI1u6@v3wB;>X5x-)av~$B_f-YEJZ%83^J*N0DJ3U z2p(9<)3h@s+oHYiu25}r7@Hm29T+Awx%1SCFja(CgqrGb&jf4%ZH7@vv7buIcV6m ze8UmQ9T&GMJEU;N3JBA^2*Xswyqhu!AYUlE77 zGPc2{;7O=SJ6u0T(}M?i-uw2J=H}s34E9sYfnzv7SODH~`TDf?6h`;j>A90&C`Q(a>p zP93vARt_lcoDm!a7=2|dW+6{RL&P#Wq+{C>?$V8jZW+!=zP6u*h;PGFg z`LuU1;hVR_LLz-0=qxLWh261NdV@#+tZc4~kEh;2@w8IT;=5V{3H`P}!o7In1Y`B% zK&21OO~JY>U~W)}Qfb@g2BWnHb(Y5akx2TOTxzbn+6-3A57MXAzX8heVPHFM-dNp^;8jLy{y&?k&CGz6kF!W8g3YziPfEVQk=V1P!hBHCD(hS z9ucw>X>z|Wx~oBZ-!{>gkz=0UUg}N+eUpi*zkJ7NP)g@WMdtY&!A~;fhXS*Bs6L3V z9Wj7tO;F~3#J}r{T+VxNM--`rzscKKK%dc8YIRs*9}>@;sMa^XHP-+BRC0uWp@yv3 zQSqE8=)gR^zw7}-_Ri?!H5#ruxIJ@w3cuZzxjwv;10P)^)(i&MvAgyJ$rYbatGtih z99q0i%M78%Z^OoaVe^b~GBVlwKt{VB{8_#ffAm{Sp7RDp{x|DmMR}+1ZF#N-D!5Ak zD|5FD0+B+`Whj6j&K@zA&<|bI(~9Hh<~RTng;liJeX^__dKsDI;EaA0FPY;YWPd3~ zO83-CeP_h=freAnw%eCw+ZB#}K2Zr2wh4N?tNC!nTbjE7FRfp%9UN(x9B8G0Dy{J* zZ(APEhs`i39-*yHSal&@+}a@kHJMSUk&{9$Gk?immzIkO^He7p3%si|q+H-q?TJ9Y zmFt$KX#T3i%8vcv>yv;}FPr8INHlcGpgytd#1gyCx|hnzO&W0NnXerS6e3dnOaux~ zmkB2OBWnJZUiAvlTKY7-q*kZ=TW!^LWx)1VF-g%5jqR=4O-LAV9|xW=->g>IY_=40 zju_UEY|q-m2p4`U+h~;oigQ$kO+%L=$qXY+2VgIH#eGw7XE~hn=!bUatyfDMxy|q} za|$-U6#k^JG3#DHv_i7#k$}s^QkSAhS+UO+$Fg)z1ZW7Ajfx)QJe$7Gn`*(DUlKPq z570pJf!4~;IdrlJP7_$5APn^)&l%mEr`)LNF{w}4D#rIzUjQOBhC^@00aXOw}ByIB)N7~Wk?&AEJ zipGluTlybf_=9DOXIC~)$fj^6zIKawwEN)QXJrxedjV|WfUgdi&6v9CE5tmoe^*h+ zF*!Bn=h8mwh3Ay>nK@31F;65Wq|REoH|6M^AP$=NcZ!wkwpdnmaVFTR{>-@Qq_h** zXZcqCGqZM@57}Efo8KCvdDt|a?L4}5@O+i<{(&|NTmi#)Z|eEs@`KGge8De#rkJ_i zvjbGN?NX*LiuQm68EV^Q09{thD(z)PoCr30`z4uPZ#*#6vI3-Yx43+G<8{G$RWC81 zeAO<0H}!&B&`0rgMQACC%Ux_l-Fv*%SDvz%^+B|pZuFl?LN25}eWMs@rs%}>7oe^| zGrRkO#>Ja9PU;GIP*aHKaT5DCzkrKOo&r1_iu3lRRac>ej`A5uCVhwvosYZ0v$JaE zKAmLXqB>8Y&QgsQK+m zr@AXTk2EG7r-O&4VcYW(+B*K~goaZW+Jn~u*dd-s8tVvxPju5#aD)&J?5OJ(3r@vN zu?Ymiqxi^rAX4@x4%utyNHF7y@wUuHdH-;|xbgvQ>vckLTv=IJ+x8^DlUDKSjNja1 zvf<&IP0U)LYXtE6eBBfcS_8`^M zN+v-HLdTGVH#AuC>r%erd?`iO!CTi)aq$(B;ha6Yf`y)V_G_;O|3SPGen^(z934Bny z+MdZyqG_#NVd{UzRtnuit;H_Ko|nHmf=K+zlQ-o!!hq{fImT#HUC}G1N$ejfHps?{ zcMQkn;US@4pl=OZ4Y}6E?Id@4AT#=^roGB6PvJ{%yFb zEG~*CKMAUIQ>4CYG@!%L{WO5SC<%YiPs(*r6$Q9KddcbC^}9QVCLr5{ph0J}e&g#T3`Y=kWSe3Bq>I$zjFvcD{Q z(oR9NbaPuQY=sKbyvuKAJ$5wQXCJiF{Rgz;4IH#blx@6X)x-I8YF7t6)RMV+ zWw;T7j!&(5^)nRu(`B&1fBbSMTs@m#M-Lss4-um(0N-FikQO$svW|7h0T}j;o1}u!#Px8__ z9h=tD>5U=S7N#0({FS84Amc+H__H%J61U(4o~OEr<-iICIx!GrL}Q&XDNvI;Z^7!$Za@Ca#zd-bzVn>RQ`u z4PVb1W$saJ79JdA9#n6P-)Ju`cE#wh7c!ZK>C5NCcY?RSq>4O?LJPf8_xtp5*>Tvq z_QSA_8)1d3EdVpR99tTCYh{LCb&#M#gxt<_5;PZ6`mwX{i``IOWX(D)RCYGy@2ZW zrR|RjSZ8#(u*iS_doxx8A5!zZ$r32%l$Du(F<#-1R&-9mJra$LoDbA=zLn$E<>+hf zpZW+3WOD|D5${z+qvmDrv_t&c;C#E~-T{mLm()J(#+KonzR|_Hef!(DR-u377EuOU zJi;*b_O6vuf$f(CuZyQ!|2=4yGv>ToCwma^ni)M(osnqNK`Iw2DdCC~G4n-4U-S`I|ti*K56 zATGu2Ixc;Zew*jjm*YuT=@{%B_KGNwgNm1+9SZa{u|B>d9aABmV{3JSYLhTvwYs_` z37supJ9UCR1XZE?XxvwvA?XGT_sJl)ifPu`d>C-(JOk+tYh+N4@p9X12qsKaa5 zcwa}5scH#iK)=E!M(FN=jP~I8GN2AOXRILh2Q;G-fiy^wXnRMZ6%`FOQ>9eZas%DG zoPF55d}zf}Dt$GZ7o#RTxcWvH1~Q0o<@aWU(ExR{W_K%{129TQYcJLG9faKx2Ygw~ z_vd8%>@>V~)%Do+2+#KV7oYjV?eP-YTw5pzn@=oczH-!C>JZmwH5>Uk3Koj3c~pyX z1h^<()ibj8;ANj)`Ln`@`zvJ28g!CA^lnnAmd8q!?FXx{KDvWntl#^7|GwkOJgQ=? z=wiWB|3pLR=%D+6wA_3F08C;C1Wfc_Ngu7v>j7)@zdD@);x!VK4;w+GEl1G6DL}3M ziyz`vUZSG(-Z6si2dpjI+tOjf!+nBDyI`kc`XpE}AvgEKeF%oI^KB7#Tg77~#9BLW zAsDbv&+ZcQo-7gnfg!6wF9b2E#T!A^U$N7i>5WYr3+!%Ekc&|ssp4)3Fh5cMQ^j^IEE|lIrxZTcx7{0tq)RGSzR)(I) z>Dy8s7Id(PV-nVi#^!;802@Yzi=ig(WG0;>fV69zmI@v=ZZ`U6cfpXhOUjZ)dWlDWFU}oe)vZk6blBOX3Z)%inpZrdE01YwQgaH zr>Yac%-Z-fspI3oCm&sr0Zm|0fEigBTHmbDgQ15mjC27In$4(`$}?S`F%&C5oHd9L zd-GEF%AN{Zt}wY4gSU1z0o-=McypaE+}&Bh{a`D7{eZyIp1uB*6%fL?QtL^nt7l7k ztj{rgj|I0CL%b&N+a%-gWq?O)1>i%TaWUhGVbfL4=$fx~p)YV^DGZ)M%)QsZ4yI7< z4`);4Yx@pm!`7vKZS1tH{y@nm2jX@_&Ic?|2M9wC@DxT3lmHYROZTm^BicT!k-FK3 zO2W&H7wg9gM2K0-PTk8FB}t^VPE%gffGXldo;1n-suV?>JJ0wOia|13$~NR$xbOxM zpIgHBJp@(B(nqMV2_@%|G&14Gi|zt2WNBZ{2g5U^md?68-Qh5A)>|(Cd+=q^SW?Aw z1cSitWe%}skaDNU_j&4zN{fm_Vw(~=05>>9Wxcb0_>h4P>bJtZWGHCH5VQN=6>&pr z#Tar>ItJ!-CeUp!cCK0E)Y9`x@B8jq^&)4dJ%5`hw>_s@zS-$ma$#@%SQpoNSf{tT zNEQuj;Dc*UbZXV^LqhA>Tg&8X*3y2z2_8OxC+BlJ5#WP1)x*a0)LtB-nNbF8L>M69uA?6v)AUY<~8zTRs=nzITp;auA!hDg(UG8J&d zATXA?aZyx`ssDJxCJ8I&eYi#nx#e+4(CQ;?oo>yVMTSiWTUUiMf1(-hbL=$r+zBhq zSHxz*4k!kW-z0Td>=vCZ!JSp`Ub_pJIuF3j12`JFI}7FItaDC)$dN+X*8J(qRdfls zA7(%r{$#eYr_v2NXw_>pd4*`fnz*udvRLvy>-C8%Y+s=AI$agj*QNfe$&zzOTS?0- z)+juXc~LNAp+7g6&xq*gC$zNZJC?>0@DRep5ncbIXfTQjH4%WC9~~5W!#HAS6BsmP z1)ycX-YvpJ$6%PxnE2V(&C-v=gFwEs3q1Wac46V79Y#ukz64XU1WE#P{&usc2G-!b z#p4OuBZya}4j5TPA1>Y6(y}e*V+pF%kB#cw@nM?Du1|1etEa!aDHu6+nDOW`gICwf z@YWxE=?PZm8t_LlG`8>n68ET#2G(+yNb-W*5&!`07H_Q=k3{c<#tFi_&>?OkPz5s8 zJrwy=vP~m=r53VTwzF!92wyPP3Gy2J5w*(-+fDb5I_@|8*wg#>hyK~+{E6J+jfp-O2@0m~!UG}$w@*{n(XNZSvBqjlRU|IpRDYCSJ3!@w)jnbPfj7ye(vU7E{ zvMx_=b{O_9rR3ptJks1bGt$L)`!4%s@yxZ1v5=Y~5{+iW_(&&31&nBrX+<(c*`>I2 z89br1wJ7?LC;-&;Q+@f7H??&Sft7@STLQ^8*}n4>yn%IcJQaqr318{6S9E(JrM;6e zx>K)JyNX(~Uft`9p&pUlJ-N%8`OX(grmtSP40MhMdM@W2bQFf;LSgYY^ zXm9nZ)Q;r=OQvSl#$P-#Kb}@Be>2qPVrE%m*2+WC zT#1zr?Hg3L6p-GX6PeRaX>)l!B1vbA=B&3TqqXpSZ4whbSn1BBv)p-WDMSmDHi0wZ zcr<>5b23MR(Z(XkEQwP=9aEqYEwfZ0Jm)QXVs_tLL--hSF|a!scIt395TF<8)-(LU z*oY@XIxaTW>XG@jR+`4VCROzMDenA3swV{4LlBP*dLeYM#C=vf6NxiQXiTUl#*JD4 zMe0P0B_JPLgTwU-W|d?-XmbP%0skmo9F29yxw&_hkY=!)4Pc!WD#jvN+Ei@;yOR_ zB{9@maCo)nasM$M^CUrYL<`%QDq$X=HB#5?sOpnFH%ZpssK}^Yp@@B4zm{3+OpE2L zGVd5?OG)lTmIv28qiJ$lgSUIDYL~K1_x)4*g#*82`Po5EJ(>?x%TOw>X#tA@9i;2h z{H@)OAO2RMSvmR6c^2R)=eZUS%tlvg-Z26^PC{vEDHY?s)jAs;0yuy7Eoq=i#hoGr zN_BvC*9V$0afQH^ zUGua*`5rchv3k~BPNv6e$5T;GHCkV(U{DBUG;G_n;Jc<;F{gvH0o>QMnS?t=v&~Zj zC2|VRcnVOrDc5@+C~meSIauAwd;l*&QM(xaU0*krl5nIc99|oFt0`Zxv=3ml1P*!b z+WOlWCr^qSZGCmd&RNEsZH1{@c*0VHhoE`|%@fFNbBW_M6UHJVc<;uA=|x!(MOM|U z1JbIUbl##EO&X~AVD}9X*ElaFUJOt#XO~o4n{af)X?=1a*J6Ty;N=)Hw*s zAWvUEX~s+z=SfAw<+Q^FsDkAoZ9b?_@{!D)9^I|&1D?O$0p&nosU5P#6s)D!ZuL^d zHoJB^);yzWb6Pd_`Ek3we{_MUY~hu_Pm<@j3vFNEAfrH=H2^Aw=y;9a)JB%tO9E^B z4A2$p8q%){uz((Ctg;n}&R8AvJ$<7O764hRTof`1>s-z_w^G7z4~Q4cT%DGM^19{w zYrhpXrjVt`I=^;8M+9H{mP=YfI{21awQD-)jM=aT20A2JV4q~ zG&irTuPcD40N!%ZsoM^eFdoEvj|S4T=-@LUa``{tH9nKh{oU;$e@6O4@8k5o`xY25 ze?qArsbujFfS-1@v zOQK1iymaTTINa7Rv%?S{C^8Vg4d3xzDJ-8K-CSP_eRrhw9>_Xh>P++~x1qKW_U=MpBqrlq5RD+Q&3JG9&p6ovgmIi4O} zar#Npeh*E0+!eUxT08&8BW-pn**J{0w&O`IuLjyVh0bjlLteFKNh!f*l;qUcZ;Y~V zTkWgB!SV6#^1{N0yFsE>=V90|3*;20{nFsg?4RwFNf;qz>(W+i+A&Pe3CX4Gm*=Q8 z-``~b5t|ECrksKU18cNnmwGWB+&dN1*qQ=7`{mda))E0QiEBm6%Yn!gd~)l%FYg_`UY`63 zd7gR`ew6Rp(cY?g(VXBC=}aI9`L=v`?I>5ep;Z`YwN1ZyNn0J`{f%mC_3lM8K}wv6 zODCZ(-?ImJ}Lcs~dw)Oazp!FCvEnqB+);GA90`v;gy|KBy^V6vtt0%+w#U(+3E z$qZe#)d&aL^>{8iYKM2VpIMt9eT}-g7Xqq;3?DhBNgJ>jVO7;^z2V1)SF z(Ne-Qv}De+@sc(?C+*(a#j_Ra5V35OgZxX)Sn;Hwl)SDd8X0Bw#jafr${AA;0F^f1 zPhhRbuuCwb8>4;(YZ#6P^O{F7W@dv1Axu$?`^%w{p%r?T`Pl^<8%g41$_H(-rVy{K z6K=lOuUw8E^@;ZUqIr0zrmzy&WVwo%!w6cdtRKsgVYwr(_ayh6<*uNtr(_SklbRZ( zgop{Hb3gWZp_ztw)wY{Yzn4&gcvT70o>M59Q-BFvv>R~il_|b%S&{oZ!vL@rxptkV)*Sx?0tJ{ z-^&J=4G6}!`BVyjB{gPuzneu90G7ec`!o}~&T8X=$ojmO3Q69-4GbN_hs3QNsxZ{t zwt=~@`#1JU6yI&E27*1cQ|mh5wlZRz@m?+Uo%Xc6Y}C%_K1=XPUPN zL=f}@mXO~(wvMZ501zhcyQ}4wdM&6~Gb57AAPEy?fL$A*ox>Aqv<5M=yM$KP$ZeQh zez{-J`V^!4&th}p`GxWzwtig0MIfbvY_|ax69IY3kb}JCkfQwO^ug{)@X5w=!&dS) ztyIh*zKM&UjtyDzBPxRCmHbz+Mu7ZHwvBcg%2dhJKd$d3aGi>i~)z zN{743?B!KrmOp>&Bv|L$BYvR!Oo`%sD3{}qvhW$it1EY}CGSKdiq)qGqLxX%ca(KLe8uBF>V%rThC$pCS4Mj_q1Wwv z?P}fjrTF;TLHY{_s^1^7d85W1lk?)8m~1->2*;Mhxe=IdW$1lgjK4a`lvfIXGj#-CId*IF7A@dR`tf5C4JnX$l*R5_%Cw zv&!@`0*h9eT?X|0&@7OBlrq1RJ$J#lQ105LC1qwWUy(xOJA7Y{AoAvn-p*;f$GOHW zI8&ZGA71lE<99_a%R2G$w4{MEU}Z8*R*V9Rw#XdwtFiW0Xah1CWoBJePyVMs>KFc! zv7`?FT8cLi^N$xu)yydM;{$)#3bm3&z(m)4DPKkTQ}jt14)%zaj;8<`dxFUqGq?R` zQh%P@DY~fbZ=@RE61>h8z=_9nBeHI0f=xaE?Y>+V-vAlsy_fQdgMb#eI`dfmEy zdM*JS&I9v0ITp&P%~%>3)kOBYY;RUzh518I>8+)inwxhdACKr-yv*tA)$*{MghAX* z&FyQU=2NWl=oLDjmYnjX!LUS2poP3;`^+g33&AztOO&bMEvrcXK2ykrTfS7mT-dwK8-+C!k5Fky5=4{blI>;Wccy_j<%|i z1=2`BFkaRwRO;KOR0f=xliAKyS|80V<}kQGaL%wnEozL?w~S- z)7%FEMH>8(%d)%hl!)4?Hd}b&tK=zgKbBPhZ2d`6XXq@ANT!kNwcnDa>iHO zW_#1X=C;3eU}C2#sAAxTd8|Q-B&K=3=7ltQqfb7(3?@qiuv+aZj(tG*huj9&uka9S zo5aj*ZQDhm{fB=)aIk&@m#Q}eZV=^xB;!|D>RNsC7On&=cDtRT*=A}sS$N0XlI#FB zZzmR$(CvfnnDsRO3Rp~bk|roYZx~=Kd~M26X2SJs9^-0@1?#&i)MNAnfR?~>OuBMO ztGBka)g)BYHW@jjGo4|Sf-K?t`%D)1_w)`&OJy>)d7!9d<7J$8qIW_(*e(#_fBYv2 zC>UWS+E?g2SR&0MS?izB0r#%J#n~kD5T}-w+8rvOi0Z}DMkLzp>G4UQwTn`Gmqm{x zkhgrOssDI{u7lJD@MNBmrGkHd<;mo9zS6V@3DkG83aMx}!AfzE$p>JPp~H6dPkIa- z4SUOsZxF?~vur=&d5uRR%0Risrj&3X3%`A1}9PLTMhC*U80E4#Jd{oo^;W(>V@ zZZ)B*esiBjYogE1OSd`ZvXaPP6+fU_T-Wi=+7N3IdZUZW^I`ODWx1np@kCfMc3{R* zCG=KQQ7euP`;fj2@pXZzY0>?+sO(u3U{ zFtX1QK7&{N9*8-`jnRbsWpQ|pY2wPcX{j4CWtr*eVFfOU{dt#*w>ND52m;auQukra zG;S^ERKW_aN?~5kCle-rE>uWb_2k#x*Rsf>heYGF` zzsXbn6qco?KVL}SxIV4SK#rDivJ(lRU*p$)>pS$6NPDKXaW^$X^zPqiPnWs}JC%GN zkM7@tc0BX$zGS($`m+HCJXVnc#NdvoKjrs7fYk_>-+#dU>%FhaFAutg{Oi5P_5Ww` z|9Sg=AN)rY{}azYlHmHEQv4%||0%^klK7ue{6`Z1Q;PqH;(wmvA5r}OT`9irkVm$7 z0<1=Pgn?5vhA(z}{{81mLXjU2ohURREm|Lk@lxyS~ zyy>~}8}owJgNiPH6OF=QsdSNTsqHLrv+t*`)%rr zhm>Q!T*VjW|f1oC1D>uW+>Y|4TOkINyvB_XBEp;-INUgYha*cOT zV+(cIwzwE?R9dJV!sxyvLNnIj-0f-pefYpULH{<)?^4tViP7NoiVjM^oG_MM=vX}3 zKWe>d&7eg{vh%BgPi%k8vmMV&_n*!YOCRta$?Wsr9LO|M-9MO*>+W}>Am;#*$AZ&Pz5Mq!Vw+G;%pO}9GZGG2QLSBJO0TfHKS%-}4P92sob@3hXTQjV**jN&qU+0d$E6h+TLG$ zHgSP!++E7x>Fp`m+CHCO$?%Ya^A?>pAMmSJVgWe$bt~Du4|1J7{NurY-o1|dlIT&E z{@$f+BRV4^NQ|m@!KsR>x#y?!}-AiV1eU4srf0lIa zUl0CsC00a={q3ZMF{i-~l5Sn#l|+>CP$U_ALzfH`|0(u*TaUnwD9SeBcd)to)7syF;%p+ z&+U}41CH%~UbXIDa(bG*hH=a+egm74lye&%wHAoDxoxGRu$DGsiGr1h@BhX3ACLcQ z4r2z<=0}w<d$lbL%Igh} zpF3L%-@ozG69*^z?OjUUVP_Gmc4nSkx*oqNd-Gs2Re%4l;bPp(Z^V9V5o=}Iu@i<5 z{+;kYM~&{@=MNM10ETQn6hvGa{4OG+jYi6lH7$T+M|WSI=?ACC?OlN;c7>IR3+woh zWsHFM)h}=E9^$zBiaR(daql8a>cj5jHxIeyRRL;pWTSfkwqAu-M`QMW&Goe5zsC4} zdKE7jjTEllEUWS6R7vb3;anFa_6tGw{)V4mUwqnSZ;BRBA+?K(zZ|89KiEGao9or9 ze_6oYZ`K3D_kzeyQJ}fYp1GTw*^IyxclvCA6MTjYVdlmitjjz9`ESp0P zE8IVWnd|KD|5C85$1;{ZcUilN_~X`6Cb{PB)^ud-{<#!fT)+HVMnBO}oIWF7?wecV z8ZHM4e*EBA>%AxWwR2Y=N;wqLUxyM#sk>&kchnab*VWJe7Rz70dyjC~r6+CWgeBku z4&YJl#;_In(k}w9~{3ogi{J* zLtqSASoM^4iFi}r%jm(vq#Y(ELc~K9cB~PL2w2@rH8;<>j88+2emsC>zDp_1Lu=oa zv%l@n;qF(dvq$;1->bvDl0v#Cn_Ov)Ur%)fp=#Vl&`LF&@8>Jng{2(?M-Mx_u&O;j zHZupF|7UFfrO8rsv27DWyJpIhq>Z0gwtnhiO34Yh%#JzmkOf*zhDw~N;UhYeW>v&EEXuT?IZmH%g z(KzrVkGcM9;wQ#*mF>iF3495>_l72+m5xSn7ga))(c_XxEJ1F6sE@gL4{$Kx`soh~ zt&F@*$Xvggg2MME`c$>+(BxwxvSWR{X`MM#gUTeU`*<5S*lm6sVfH{&bncf}3$_KX zHbt-QE+nN;o;yXi;-(M$)HKh(_2R51XA}D*;ZS{4#&JI%+Oj%1%FrFp8F>&kI;is| zw*1tYl_OJ)v3>2#m9VV@FrcjGk8HEYbc<`>XUPig5B3}1jRWfjuCur{r=#0?5)NH+ zG=MKE*#>3owB-xb*bZGNSF2K)tqrmOroFO{gRt6s)*OQfm@5Jp3%jpr$^RPH+y>P( z^#!!sD0PTFmq7e~?OkV7Q`r`d7xhyWrdH>#8@5c*2!p&W$?6c3e zzrFW8H|JnG?FfC&72QFuMJ1%qGId=!xOA$vF|?%k>bNqm5%5zHU$&@q&dAfn+@^Zs z+KzXrT{F=oR0CoFAc9{LN%~vRrodpqI7;Fj#0+kc@R@xZFu;^I)jrcAPby*VI+ETo zXZ7YuiCx*sD{KgaL^jNU-E(hp{itvxoC0Dx%{jo&&Zho{E?*l-Ii68#U4xUnqHEKL z>=VO-wK3x2dM+eVJ2!m3?My3?IqP62!XfRsKLJ+e8#X}-TSSL_{%TK$`ZL>>LQ*($> z@2!i9Di~&|A6YF=hMP<(qUNxESdvoCo8l)CpUapTcaO~+p?VEMvP8$jWT{3t(njZr z%o{D#G?A3u?RR+xNFXkH{R#OC5F;ChOFcDaH)XV@t5q^BJesEzg6R)^2`Z%P=MDP$ zSP>dOZ9)q3&aOs?hOV3Le%mMH=x-`U`^~aHy{vtHgJyCPJAOgK;}Uk1KnVwfORxiA zl)-Q|S1ckBSlCBrm6_Ai+WNvi62nt(quQx41=8||MW84k6SEG4$V$TV{oIlBAoZa}B(@j^$&j9&?}8_UfP0v*#`jq zPMyGbutCj#xT&IoR*@e-spmH-b)gx%EZk@_h0V zyJ<7~%*e{9H#s*2iA(g;IdbKNbb|b%2gjD3P#E;5aWsyNv$dY#2_TAJrvQ`q126K= znE0$jz9Ovhs`02Kr8drqy%;6QHhPJ2LXfqgQ`eG%@_5I5R}+9w!1;k5=ZgzSuNH1| zv&qqU_Yb^)eD^vjrN7%rQ!VPxs;!fHy}8`4vCaH1e`os5(FKjB{(nh=%t+B3e+ihr zPH(R`K&Tu}^D5dn&AhGFR%Dh&jB8q7(zVfEG#ek@oF-K2+=Yn(qUtlIsL8A(=#YEF z;z1Z?i2h-KcCQz|{|jj5fTZFZZQlfqL@&_t59sBjdA4Qolo1jPr={;toAlouE6F+U z5Fzw*dDzmu^~VShMXILUDz5o&0PFYmWU)Bf3{Bfh^SeY0#=qyavYxZAE==htG44j% z1MH-aoC!Ud6ePMY7Q!UO!( zOgLM8Q+(r7S=Ft_8cP*>sSqa!!PAP&Ow@@0)A>Qec*|4Ux!u7IWBsdBvvFMHTABO0r~7YT$ksLS5!kq&+&CxTUCC=KWW&0kxxiM>wc{tD zyD-7_ZGbm))e;^hlOJThHG ze+~_HeXN{mViG+FY~rgz6qASrdmf1l!}+c@x*v{d!i&np3X}r#b5766%E{u0l;NE% z{SbP#!+{+B%2JP1>d47$!1v_#`A)^?`atpQy@xO-aZxnykgk_zdGJ&-Naw!w0(K{(XxUo`<<%w=ON22#|i=u4K^o_)48Z%Gl)y;eup<}ET@XST=)LUaD~A5 z;E1kI>_C1f}R23+3 ziHSbUkBh*sKA^Wl-M1AD83N(zQ#|B+8*n)AjBehO`GG&|Np z_gwA_b7g^#SQ>QA2Q2+M95br?(Rf&&A_exY^S=gB1)%&Ktjsu76RKH&UJl*c>f|>K zWGo>dMPDhM=(J3vrMIrUyAAmAUtm~8EKXpmf-R$7Z7Tc+a*B595s-^R{Fly??9YHq$f?-r$+I)-P}q2NeVSJ@Bij zu7|lw-d)7H#C`Q1{JGJ8|K2{Z$q-|hsX={&*zoW1bpT+4j|09AK#t(!fUg5S4pzJ) z-xm0M00M!Jga0!f^kBOxv+22cs?ohnhW=AoL&u)qA3XGm{Mo8B4zFc?OYf>ckFb|O zIkGz5+_XA#i{$CkQJc4(5|dVH)@L%Taoa>3iAHCawtQ$}_S5KWr0-@70Has%#C3&W z5QuC45PctoCo8;iT4JyV9Z=PMk+7^Dy0`TovWV{vz@Ab-<^F&tkI+57czo@J@Uh1? z4L-5(X&J%y8hoGoKZ{t5a*R32f&ufrx1rT@C`1ANxoMlUml#PB75nL8s=Lgl0-+U_ zwGygUzOD6DF9w(n#c;oW1Y!I!gFKa#+Sp4CY)0mnPs4A|lnUTqM@NG#i&z~M~m1?S~ zuJ@nMM#~LT?Gt?jtJ0*J&_Npbk&dslo4Px8fHIC{1%4^kBq)2ML@U}fuXJiGaOb+y zHZ|?EtIggd)BnbP#_oE<%R6?=V2eQPr`1S9J$1`Jdt&7&}Qi^tG9%0x2K6(hAwaL(ELiVqJjdaAk?t$kfNrgWT@m#5zq0b-d)7 zh`g&15sHj=yQy5k-XP2#75rsSOuw-g^b6#*vejN!yd7_jJ`a5~)b<}ctdsU2R(4k2 zWRq!)IgO4Pdr)t={xo~!SA$w89PE!HxrC>jR~FQll=Dq+X*D4wcrIytRT783KSIqr zcB7~e_2J=*3$8u1rkI4rBo6gunS8{4S*bM%c~?Dg(*A0#Dc+90*2M0yv{_SsJ>U>o zuQL512g5i=HC%t_7Fk@}&acKd5q;QShKW8D;X>p3BzgFH+u9!{-qzd@Z#12joEAU< PTR*3xuZ=%__13=u4eH+l literal 0 HcmV?d00001 diff --git a/docs/angular/src/content/en/images/badge-anatomy.png b/docs/angular/src/content/en/images/badge-anatomy.png deleted file mode 100644 index 1949e0d1c273c51e216412cfd76f9d8523be22da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8584 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 diff --git a/docs/xplat/src/assets/images/badge-anatomy-schema.png b/docs/xplat/src/assets/images/badge-anatomy-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2329c093fcce548556348a29c31f0f42510fd2 GIT binary patch literal 58646 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 PTR*3xuZ=%__13=u4eH+l literal 0 HcmV?d00001 diff --git a/docs/xplat/src/assets/images/badge-anatomy.png b/docs/xplat/src/assets/images/badge-anatomy.png deleted file mode 100644 index 1949e0d1c273c51e216412cfd76f9d8523be22da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8584 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 diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index cd1c75a555..cbc0089ad8 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -11,7 +11,7 @@ import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBloc import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro'; import { Image } from 'astro:assets'; -import badgeAnatomy from '@xplat-images/badge-anatomy.png'; +import badgeAnatomy from '@xplat-images/badge-anatomy-schema.png'; # Badge Component @@ -19,18 +19,28 @@ The {ProductName} Badge is a component used in conjunction with avatars, navigat ## Live Demo + + + + + + + + + + ## Anatomy The Badge presents a compact label or dot indicator that decorates another interface element. Badge anatomy -- **Dot indicator:** A small badge dot used to show a status or a new update. -- **Icon:** Represents the type of status or action. -- **Container:** The badge shape that holds and styles the icon or label. -- **Label:** Text or a number displayed inside the badge. +**1. Dot indicator:** A small badge dot used to show a status or a new update.
+**2. Icon:** Represents the type of status or action.
+**3. Container:** The badge shape that holds and styles the icon or label.
+**4. Label:** Text or a number displayed inside the badge. The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. @@ -149,20 +159,119 @@ The simplest way to start using the is as fo Use the Badge to display a short status, category, count, or notification indicator alongside another component. -### Variants - -The Angular Badge supports several pre-defined stylistic types. Set the attribute to `success`, `info`, `warning`, or `error`. +Let's see how the demo sample is done. It's a simple success badge on an avatar. To build that, import the `IgxAvatarModule` together with the `IgxBadgeModule`: + +```typescript +import { IgxBadgeModule } from 'igniteui-angular/badge'; +import { IgxAvatarModule } from 'igniteui-angular/avatar'; +``` + +Add both modules to the component `imports` collection, or import the standalone components. Then add the components to your template: + +```html +
+ + +
+``` + +Use a relatively positioned wrapper to place the Badge over the avatar: + +```scss +.wrapper { + position: relative; + margin-top: 15px; +} + +igx-badge { + position: absolute; + bottom: 0; + left: 28px; +} +``` + +### Variants + +The Angular Badge supports the `default`, `info`, `success`, `warning`, and `error` types. Set the attribute to select a type. ```html ``` + + +### Shape + +The Badge shape can be set to `rounded` (the default) or `square` with the attribute. + +```html + +``` + +### Size + +Control the Badge size with the `--size` CSS variable. For text badges smaller than `16px`, also adjust the font size and line height: + +```scss +igx-badge { + --size: 12px; + + font-size: calc(var(--size) / 2); + line-height: normal; +} +``` + +### Value and Icon + +Use the `[value]` input to display text or a numeric count inside the Badge: + +```html + +``` + +Use the `[icon]` input to display an icon inside the Badge: + +```html + +``` + +When both `[icon]` and `[value]` are set, the Badge displays both simultaneously: + +```html + +``` + +You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding: + +```html + + bluetooth + Bluetooth + +``` + +### Icon + +In addition to Material Icons, the Angular Badge supports Material Icons Extended and other custom icon sets. Register the custom icon with `IgxIconService`, then specify its name and icon set: + +```ts +this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons'); +``` + +```html + +``` + + +
+### Variants + The {ProductName} Badge supports several pre-defined stylistic variants. Assign one of the supported values - `primary`, `info`, `success`, `warning`, or `danger` - to the attribute. @@ -191,18 +300,16 @@ The {ProductName} Badge supports several pre-defined stylistic variants. Assign - - -```html - -``` - - + Even if a custom background color is set for the badge using the `--background-color` CSS variable, the variant color always takes precedence and is applied to the badge. + + + + ### Shape The badge component supports `rounded`(default) and `square` shapes. These values can be assigned to the attribute. @@ -231,18 +338,16 @@ The badge component supports `rounded`(default) and `square` shapes. These value - - -```html - -``` - + + When the badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable. + + ### Outlined The badge can also have a subtle border around it when the attribute is set. @@ -279,10 +384,20 @@ The badge can also have a subtle border around it when the + + + + + + + + The border color of the outlined badge can also be customized using the `--border-color` CSS variable. + + ### Dot The {ProductName} badge component can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.). @@ -319,8 +434,51 @@ The {ProductName} badge component can also render as a minimal dot indicator for + + + + + + + + + + + + +### Badge in List + +Use a Badge with an Avatar and List to show the current state of contacts in a list. Import the `IgxListModule`, `IgxAvatarModule`, and `IgxBadgeModule`, then bind the Badge `icon` and `type` inputs to the contact state. + +```html + + +
+ + + {{ member.name }} +
+
+
+``` + +```typescript +public members: Member[] = [ + new Member('Terrance Orta', 'online'), + new Member('Donna Price', 'online'), + new Member('Lisa Landers', 'away'), + new Member('Dorothy H. Spencer', 'offline'), +]; +``` + +Configure each member's Badge type and icon according to the current state, then position the Badge within its parent container. + + + +
+ ### Do/Don't **When to use:** Use a Badge to communicate a short status, category, count, or notification state alongside another component. Use `dot` when the indicator does not need visible text. @@ -385,8 +543,6 @@ The Blazor Badge exposes the following properties. ## Styling - - Use the component's `base` CSS part and documented styling variables to customize its appearance. ### Sass Theming @@ -414,6 +570,41 @@ igc-badge::part(base) { | --- | --- | | `base` | The Badge root element. | + + + + +### Styling with Tailwind + +You can style the Badge using custom Tailwind utility classes. Make sure to [set up Tailwind](/themes/misc/tailwind-classes) first. + +Along with the Tailwind import in your global stylesheet, include the utility file: + +```scss +@import "tailwindcss"; +@use 'igniteui-theming/tailwind/utilities/material.css'; +``` + +Use `light-badge` and `dark-badge` for the light and dark theme variants. You can override the generated CSS variables with arbitrary properties: + +```html + + +``` + +The exclamation mark (`!`) ensures that the utility class takes precedence over the component's default theme. + + + + + + + + + + + ## Accessibility ### Keyboard Interaction From 8c4e5bab8e1a3c3c6700dccfcb03b41c3f2345d8 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 18:45:35 +0300 Subject: [PATCH 07/17] feat(docs): update badge topic --- .../src/content/en/components/badge.mdx | 12 +++---- .../content/en/components/inputs/badge.mdx | 32 +++++++------------ 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/docs/angular/src/content/en/components/badge.mdx b/docs/angular/src/content/en/components/badge.mdx index ab21c48d81..d454723cf1 100644 --- a/docs/angular/src/content/en/components/badge.mdx +++ b/docs/angular/src/content/en/components/badge.mdx @@ -19,7 +19,7 @@ Angular Badge is a component used in conjunction with avatars, navigation menus, ## Angular Badge Example - +
@@ -209,7 +209,7 @@ The `igx-badge` component can also have a subtle border around it when its ``` - + The color of the border can also be customized with the `$border-color` property from the . @@ -221,7 +221,7 @@ The `igx-badge` component can also render as a minimal dot indicator for notific ``` - + ### Badge in List @@ -346,7 +346,7 @@ Position the badge in its parent container: If the sample is configured properly, a list of members should be displayed and every member has an avatar and a badge, showing its current state. - + ## Styling @@ -387,7 +387,7 @@ To include the new theme we use the `tokens` mixin: ### Demo - + ### Styling with Tailwind @@ -423,7 +423,7 @@ The exclamation mark(`!`) is required to ensure the utility class takes preceden At the end your badges should look like this: - +
diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index cbc0089ad8..490eb98d9a 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -21,7 +21,7 @@ The {ProductName} Badge is a component used in conjunction with avatars, navigat - + @@ -200,7 +200,7 @@ The Angular Badge supports the `default`, `info`, `success`, `warning`, and `err ``` - + ### Shape @@ -210,6 +210,8 @@ The Badge shape can be set to `rounded` (the default) or `square` with the ``` + + ### Size Control the Badge size with the `--size` CSS variable. For text badges smaller than `16px`, also adjust the font size and line height: @@ -272,7 +274,7 @@ this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx ### Variants -The {ProductName} Badge supports several pre-defined stylistic variants. Assign one of the supported values - `primary`, `info`, `success`, `warning`, or `danger` - to the attribute. +The {ProductName} Badge supports several pre-defined stylistic variants. Assign one of the supported values — `primary`, `info`, `success`, `warning`, or `danger` — to the attribute. @@ -298,21 +300,11 @@ The {ProductName} Badge supports several pre-defined stylistic variants. Assign - - - - - - -Even if a custom background color is set for the badge using the `--background-color` CSS variable, the variant color always takes precedence and is applied to the badge. - - - - + ### Shape -The badge component supports `rounded`(default) and `square` shapes. These values can be assigned to the attribute. +The badge component supports `rounded` (default) and `square` shapes. These values can be assigned to the attribute. @@ -386,7 +378,7 @@ The badge can also have a subtle border around it when the - + @@ -436,7 +428,7 @@ The {ProductName} badge component can also render as a minimal dot indicator for - + @@ -475,7 +467,7 @@ public members: Member[] = [ Configure each member's Badge type and icon according to the current state, then position the Badge within its parent container. - + @@ -572,7 +564,7 @@ igc-badge::part(base) { - + ### Styling with Tailwind @@ -595,7 +587,7 @@ Use `light-badge` and `dark-badge` for the light and dark theme variants. You ca The exclamation mark (`!`) ensures that the utility class takes precedence over the component's default theme. - + From b9f176b2b458ff41296985bb613bcf5c5db92982 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 20 Jul 2026 19:49:54 +0300 Subject: [PATCH 08/17] feat(docs): update the badge topic --- docs/xplat/src/content/en/components/inputs/badge.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 490eb98d9a..965e9d9e6e 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -37,10 +37,10 @@ The Badge presents a compact label or dot indicator that decorates another inter Badge anatomy -**1. Dot indicator:** A small badge dot used to show a status or a new update.
-**2. Icon:** Represents the type of status or action.
-**3. Container:** The badge shape that holds and styles the icon or label.
-**4. Label:** Text or a number displayed inside the badge. +1. Dot indicator: A small badge dot used to show a status or a new update.
+2. Icon: Represents the type of status or action.
+3. Container: The badge shape that holds and styles the icon or label.
+4. Label: Text or a number displayed inside the badge.
The component renders its content inside the `base` CSS part. Use the component's default slot for text or other inline content; when `dot` is enabled, the badge renders as an indicator without content. From 3921b1e207447c946a98452272a38632dfc15d78 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Tue, 21 Jul 2026 17:20:51 +0300 Subject: [PATCH 09/17] feat(docs): update the badge topics content --- .../src/content/en/components/badge.mdx | 449 ------------------ .../assets/images/badge-anatomy-schema.png | Bin 58646 -> 0 bytes .../images/badge}/badge-anatomy-schema.png | Bin .../images/badge/badge-do-n\320\276t.png" | Bin 0 -> 4555 bytes .../src/assets/images/badge/badge-do.png | Bin 0 -> 21505 bytes .../content/en/components/inputs/badge.mdx | 432 +++++++++++++---- 6 files changed, 327 insertions(+), 554 deletions(-) delete mode 100644 docs/angular/src/content/en/components/badge.mdx delete mode 100644 docs/xplat/src/assets/images/badge-anatomy-schema.png rename docs/{angular/src/content/en/images => xplat/src/assets/images/badge}/badge-anatomy-schema.png (100%) create mode 100644 "docs/xplat/src/assets/images/badge/badge-do-n\320\276t.png" create mode 100644 docs/xplat/src/assets/images/badge/badge-do.png diff --git a/docs/angular/src/content/en/components/badge.mdx b/docs/angular/src/content/en/components/badge.mdx deleted file mode 100644 index d454723cf1..0000000000 --- a/docs/angular/src/content/en/components/badge.mdx +++ /dev/null @@ -1,449 +0,0 @@ ---- -title: Angular Badge Component – Ignite UI for Angular | Infragistics | MIT license -description: Display an active count or icon in a predefined style to decorate other components anywhere in an application with Ignite UI for Angular Badge control. -keywords: Angular Badge component, Angular Badge control, Ignite UI for Angular, Angular UI Components -license: MIT -llms: - description: "Angular Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed." ---- - -import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro'; -import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; -import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro'; - -# Angular Badge Component Overview - -
-Angular Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed as icons with a predefined style to communicate information, success, warnings, or errors. -
- -## Angular Badge Example - - - -
- -## Getting Started with Ignite UI for Angular Badge - -To get started with the Ignite UI for Angular Badge component, first you need to install Ignite UI for Angular. In an existing Angular application, type the following command: - -```cmd -ng add igniteui-angular -``` - -For a complete introduction to the Ignite UI for Angular, read the [_getting started_](/general/getting-started) topic. - -The next step is to import the `IgxBadgeModule` in your **app.module.ts** file. - -```typescript -// app.module.ts - -... -import { IgxBadgeModule } from 'igniteui-angular/badge'; -// import { IgxBadgeModule } from '@infragistics/igniteui-angular'; for licensed package - -@NgModule({ - ... - imports: [..., IgxBadgeModule], - ... -}) -export class AppModule {} -``` - -Alternatively, as of `16.0.0` you can import the as a standalone dependency. - -```typescript -// home.component.ts - -... -import { IgxBadgeComponent } from 'igniteui-angular/badge'; -// import { IgxBadgeComponent } from '@infragistics/igniteui-angular'; for licensed package - -@Component({ - selector: 'app-home', - template: '', - styleUrls: ['home.component.scss'], - standalone: true, - imports: [IgxBadgeComponent] -}) -export class HomeComponent {} -``` - - -This component uses Material Icons. Add the following link to your `index.html`: `` - - -Now that you have the Ignite UI for Angular Badge module or component imported, you can start with a basic configuration of the `igx-badge` component. - -## Using the Angular Badge Component - -Let's see how the demo sample is done. It's a simple success badge on an avatar. To build that, we need to import the `IgxAvatarModule`, along with the `IgxBadgeModule`: - -```typescript -// app.module.ts -... -import { IgxBadgeModule } from 'igniteui-angular/badge'; -import { IgxAvatarModule } from 'igniteui-angular/avatar'; -// import { IgxBadgeModule, IgxAvatarModule } from '@infragistics/igniteui-angular'; for licensed package - -@NgModule({ - ... - imports: [..., IgxBadgeModule, IgxAvatarModule], - ... -}) - -export class AppModule {} -``` - -_Alternatively, as of `16.0.0` you can import the and as standalone dependencies._ - -Next, we will add those components to our template: - -```html -
- - -
-``` - -Using the wrapper, we will position the badge absolutely, covering a little bit of the avatar: - -```scss -.wrapper { - position: relative; - margin-top: 15px; -} - -igx-badge { - position: absolute; - bottom: 0; - left: 28px; -} -``` - -### Badge Shape - -We can change the badge shape through the attribute setting its value to `square`. By default, the shape of the badge is `rounded`. - -```html - -``` - -If everything's done right, you should see the demo sample shown above in your browser. - -### Badge Size - -The size of the badge can be controlled using the `--size` variable. It will make sure that the badge sizes proportionally in both directions. Keep in mind, however, that badges containing text values use the `caption` typography style for its font-size and line-height. For that reason, when setting the `--size` of a badge containing text to values below 16px, you will also need to modify its typography. - -Example: - -```scss -igx-badge { - --size: 12px; - - font-size: calc(var(--size) / 2); - line-height: normal; -} -``` - -### Badge Value and Icon - -Use the `[value]` input to display text or a numeric count inside the badge: - -```html - -``` - -Use the `[icon]` input to display an icon inside the badge: - -```html - -``` - -When both `[icon]` and `[value]` are set, the badge displays both simultaneously: - -```html - - -``` - -Or you can project content directly: - -```html - {{ model.value }} - - - - bluetooth - Bluetooth - -``` - -### Badge Icon - -In addition to material icons, the `igx-badge` component also supports usage of [Material Icons Extended](/material-icons-extended) and any other custom icon set. To add an icon from the material icons extended set inside your badge component, first you have to register it: - -```ts -export class BadgeIconComponent implements OnInit { - constructor (protected _iconService: IgxIconService) {} - - public ngOnInit() { - this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons'); - } -} -``` - -Then, just specify the icon name and family as follows: - -```html - -``` - - - -### Outlined Badge - -The `igx-badge` component can also have a subtle border around it when its attribute is set. - -```html - -``` - - - -The color of the border can also be customized with the `$border-color` property from the . - -### Dot Badge - -The `igx-badge` component can also render as a minimal dot indicator for notifications by enabling its property. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.). - -```html - -``` - - - -### Badge in List - -Let's extend the previous sample and create a list with contacts, similar to those in chat clients. In addition to the contact name, we want to display an avatar and the current state of the contact (online, offline or away). To achieve this, we're using the and components. For a container, is used. - -To continue, include all needed modules and import them in the **app.module.ts** file. - -```typescript -// app.module.ts - -... -import { IgxListModule } from 'igniteui-angular/list'; -import { IgxAvatarModule } from 'igniteui-angular/avatar'; -import { IgxBadgeModule } from 'igniteui-angular/badge'; -// import { IgxListModule, IgxAvatarModule, IgxBadgeModule } from '@infragistics/igniteui-angular'; for licensed package - -@NgModule({ - ... - imports: [..., IgxListModule, IgxAvatarModule, IgxBadgeModule], -}) -export class AppModule {} -``` - - -The has and inputs to configure the badge look. You can set the icon by providing its name from the official [material icons set](https://material.io/icons/). The badge type can be set to either `Default`, `Info`, `Success`, `Warning`, or `Error`. Each type applies a specific background color, which takes precedence over any custom background color. - - -In our sample, and are bound to model properties named _icon_ and _type_. - -Next, we're adding the contacts in our template: - -```html -{/* contacts.component.html */} - - - - Team Members (4) - - -
-
- - -
-
- {{ member.name }} -
-
-
-
-``` - -We're going to create our members in the typescript file like this: - -```typescript -// contacts.component.ts - -... -public members: Member[] = [ - new Member('Terrance Orta', 'online'), - new Member('Donna Price', 'online'), - new Member('Lisa Landers', 'away'), - new Member('Dorothy H. Spencer', 'offline'), -]; - -``` - -```typescript -... -class Member { - public name: string; - public status: string; - public type: string; - public icon: string; - - constructor(name: string, status: string) { - this.name = name; - this.status = status; - switch (status) { - case 'online': - this.type = 'success'; - this.icon = 'check'; - break; - case 'away': - this.type = 'warning'; - this.icon = 'schedule'; - break; - case 'offline': - this.type = 'error'; - this.icon = 'remove'; - break; - } - } -} -``` - -Position the badge in its parent container: - -```css -/* contacts.component.css */ - -.wrapper { - display: flex; - flex-direction: row; -} - -.contact-name { - font-weight: 600; -} - -.contact-container { - margin-left: 20px; -} - -.badge-style { - position: absolute; - bottom: 2.5px; - left: 40px; -} - -``` - -If the sample is configured properly, a list of members should be displayed and every member has an avatar and a badge, showing its current state. - - - -## Styling - -### Badge Theme Property Map - -Changing the `$background-color` property automatically updates the following dependent properties: - -| Primary Property | Dependent Property | Description | -| --- | --- | --- | -| **$background-color** | $icon-color | The color used for icons in the badge. | -| | $text-color | The color used for text in the badge. | - -To get started with styling the badges, we need to import the `index` file, where all the theme functions and component mixins live: - -```scss -@use "igniteui-angular/theming" as *; - -// IMPORTANT: Prior to Ignite UI for Angular version 13 use: -// @import '~igniteui-angular/lib/core/styles/themes/index'; -``` - -Following the simplest approach, we create a new theme that extends the and accepts some parameters that style the badge's items. When you set the `$background-color`, the `$icon-color` and `$text-color` are automatically assigned based on which offers better contrast—black or white. Note that the `$border-radius` property only takes effect when the badge's is set to `square`. - -```scss -$custom-badge-theme: badge-theme( - $background-color: #57a5cd, - $border-radius: 4px -); -``` - -To include the new theme we use the `tokens` mixin: - -```scss -:host { - @include tokens($custom-badge-theme); -} -``` - -### Demo - - - -### Styling with Tailwind - -You can style the `badge` using our custom Tailwind utility classes. Make sure to [set up Tailwind](/themes/misc/tailwind-classes) first. - -Along with the tailwind import in your global stylesheet, you can apply the desired theme utilities as follows: - -```scss -@import "tailwindcss"; -... -@use 'igniteui-theming/tailwind/utilities/material.css'; -``` - -The utility file includes both `light` and `dark` theme variants. - -- Use `light-*` classes for the light theme. -- Use `dark-*` classes for the dark theme. -- Append the component name after the prefix, e.g., `light-badge`, `dark-badge`. - -Once applied, these classes enable dynamic theme calculations. From there, you can override the generated CSS variables using `arbitrary properties`. After the colon, provide any valid CSS color format (HEX, CSS variable, RGB, etc.). - -You can find the full list of properties in the . The syntax is as follows: - -```html - - -``` - - -The exclamation mark(`!`) is required to ensure the utility class takes precedence. Tailwind applies styles in layers, and without marking these styles as important, they will get overridden by the component’s default theme. - - -At the end your badges should look like this: - - - -
- -## API References - -- -- -- -- -- -- -## Theming Dependencies - -- - -## Additional Resources - -
- -Our community is active and always welcoming to new ideas. - -- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular) -- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular) diff --git a/docs/xplat/src/assets/images/badge-anatomy-schema.png b/docs/xplat/src/assets/images/badge-anatomy-schema.png deleted file mode 100644 index 5e2329c093fcce548556348a29c31f0f42510fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58646 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 PTR*3xuZ=%__13=u4eH+l diff --git a/docs/angular/src/content/en/images/badge-anatomy-schema.png b/docs/xplat/src/assets/images/badge/badge-anatomy-schema.png similarity index 100% rename from docs/angular/src/content/en/images/badge-anatomy-schema.png rename to docs/xplat/src/assets/images/badge/badge-anatomy-schema.png diff --git "a/docs/xplat/src/assets/images/badge/badge-do-n\320\276t.png" "b/docs/xplat/src/assets/images/badge/badge-do-n\320\276t.png" new file mode 100644 index 0000000000000000000000000000000000000000..6b8bd521215f8de54cce1224426c7ded8a1f79b7 GIT binary patch literal 4555 zcmcIoS5OlQvqoy983j=~N)xF{2MG|mfO4dR2uO>x1EDEJ2vurSYQO-Y_s~0pUZf-x zgBU`+TfOHWVF@6F?hi3uDI*VorqQc^NJJlxsYSvpd^d%QO@GgDhzJ9|q> zI07^^HH9bsT3cJ|>gwWvb=-R2x_xwRl{?-v*+%2pP*G7qpn2wl{vj6K+tJa{-rkXS^W z7{b={^mJg|bVMPBC!nsZtZWya7up#6JlRCyi_SEy!o;B-xCkXwL8{T#9g2f*ztZB&=|k;sSavt zUOW~Wf;IT=1sW4DKGi9Fy&zr+4a1Iq=gnA6qygy*t@!7e4xi}MeA`2~%Fc-|?WJL> z2Sh>oqKf``maV6QLH@f4iql1LhP`$NsYN6dF#sXBtO=v!s6}#2Idvl2`T)+JfXWuvZ(K1CpRAixjJw>YdZ{icUV* zGLx^UU-JXYO~ba2XV;pVn3i@d`-HzieGZlN^$o-t<0hz><7V3`s?w-v8AD-$JxB%b zwra^!O9-W0XQ3ZtX!vl9Cd=ffg4ar_N~128b0+tissNkn(v1At`J>9I1|^tjKJAJ3 zTsV|*JG~{vnJ;MoUYkZrj@8T6a9#DENruxu_sCwjwHe!3<9oa8%L{^%bPWexLJvDZ z4x|KlGMiv62vracF^h67L5PH>v?4!pq|3h@MjttgAcC1q>buJAB0m!y5?q|`^C#GL zQ>w%VB&nfmJc~@ePHXGxF01#lp3%w6LsKHB?rA4yOG$zW`;{;-Go?tCGjBr9q|++C zG1w%$L$07ZHctF&4sn=#aFATXIE&&X7;aUs2b-%_w-Cy9??gN@vU)iF706!}r0dO? z(N6S~AbjFkf49?6Ibv^d#`hPB>E!hYvAVFJS)(_>QVNE>9czz8=CEY6L$*sIeT7Lf zuI;Ob^)+-*QnK=Hs@^iSI+~%}CVUr(cJvBPSy-kLuX#(;m7o6h_g@11JGG%Q4;y%s zO7GzHicKS^r~~b0tu>+>eKj)ih~N`rY6l_RC0V&}pw^Q+H14)}68X22PXR^%L$P7w zkcuS4PxeZmtBd6Jio%;5*$aS{DSnLwIk#9!Qam8=c|lbCJ2P%l&kuW5_j9?$D> zV{*6HcS8!I5-md4+p2u_a|?F4Qcz7fLtRY8i<{%S&Go4@MGF4JsS77lrHdz zi?qpj_2aeC+yP?$8_*jPG8I0rJ-g*v7kO(%PE>9MfKJ2hDKH6(os@CHm*|Fsas3U6 z)!Yv|@OsjAd#qB9edZXk!lr)Esf^pF?ol1An}b?g6R8)5me|%v3}} z8|&HS;b*#Q5-zW(m-4NXr+}dy;1w46+UF*5vzl(*AI4@qxYdPz%K*G+L_FEtJ<*if zr3_gar!$0oHO}alJYFE-7-m&G1Hny;i7TN~>0SafU{ixmw06Zn&okqsmEOpv1E62EX{43Tor+Z&0X@Kc|6^bVldF zhv)8q75l);R+?87xq)A-5L{aXq($wTdfs(QmWgefsAML34u>9%n zXPK|ad-GzhPI-t1Ve;6ADthJ{ugr*Q$oSgV`vSTA=84mW%%Q^+>b14c*Gj}C&5D<3 zMyU2~o76icF0Qlff`b9m1-C@B%%$az!7XC53c{kE8R|f{T(g$~;**eEz0`I9MY62X zD9Z+zpGCOr4Y51+PTpW0W`UfTuxgQ~oImw(ilXL_k@MAGkg294Q${xBET2x>f8&+cz-+ON85m#M#_uoW*0BX*vBS+yNkT)S0?eg-lPy zdJ`9gaM6#(1&C8(A|;IUP=tgSHWj@h{ZjDpYFeo&M2ixotq~^+(fhfQxB+G$)s~xf ziez(1g`yTHENYw-$RbuLK=+2qKu}LdGO#vn{y6?A2o8XkIU?3Fj%O?(I5xafenel+>Rt4}daQeJ zpZ)%%wBTtBs~%`&v)X|1%*m$F)%<+MZ@XcRLVjXJ%)`M!XFJE*lZw<5Xb_i86=feo;e(Y3vF7gyMmwgKFZ@Y#nGb?auXC+~{(LA{v%H}t9WK$j1%5L^c|D4X(QSn7aBq6EXB^R;LE~Yq6t2L__a?R{8j^OuLq!BWX zo^k%$s`8TW4r6Wk6pv{xlfrMUk4wsM5Df3fN5t!+i!@Tdx0BJhrQe zQ|N{NvRx~Zt-W=<>hK8u-MCMoNe7JjVA9y^VCgI>%hCKPzjC}hk;etTZQ)G2}Z4F7PE zPMJgcW!%-qiUz;8C6mkr??wEtPNzK?P(ac-w{gCkFjv*hs==v|U^dzKeLvRg{uVfc zgAh%MMy)BL%afvv#i6SWQlyDY zuP@M4_t^hP5g9w_C%qK~!z)>5@1XA}6Dp?{?nNVGv(c_&j#Mo6=gsdGW<7IiypCKd zs@xCTV}+mKSU31SsHa#jE5Aq>);nsdI6u1B-&pl7O5Pp(~h1oURY1A~#Jw-Vf@Dl?y@J9XuSkA&}#Bj9L#iVq{4*;Dt$7VV@UL!uPiFKNg^H`jW!XZI>O^XA_=AFrqL8L6ld$gv zlxA1e>m->q_jt{ORDuK0HyH0niR`_~$3GnsW9;@eC;#$!|Ippi!sNHd;TA+hah_NYQ+VP@&;GuZ37Ju)6EbBPtaGjsiK`>8nF4*VR{v z@dg$Qj%}Go(d||bC={I=;KiQe>dma1zd$Umn6lDeeLi9m$_nS55_0s_cMVSn7maw;m)e-0I;D|Bq;pYOzfpo4=A@b3+CijfNb5B~ofR#Qcg n|5GRU3gaC{_ix4jlL<0)wG#B(+YOxlCtXYJg=!htD)@f@x5Xz@ literal 0 HcmV?d00001 diff --git a/docs/xplat/src/assets/images/badge/badge-do.png b/docs/xplat/src/assets/images/badge/badge-do.png new file mode 100644 index 0000000000000000000000000000000000000000..b8374e9278b07edaba14db761f443baaa07885d7 GIT binary patch literal 21505 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 literal 0 HcmV?d00001 diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 965e9d9e6e..ff0d196884 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -11,11 +11,15 @@ import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBloc import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro'; import { Image } from 'astro:assets'; -import badgeAnatomy from '@xplat-images/badge-anatomy-schema.png'; +import badgeAnatomy from '@xplat-images/badge/badge-anatomy-schema.png'; +import badgeDo from '@xplat-images/badge/badge-do.png'; +import badgeDoNot from '@xplat-images/badge/badge-do-nоt.png'; # Badge Component -The {ProductName} Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors. +The {Platform} Badge component is provided by the platform-specific {ProductName} package and is used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors. + +**Last updated:** July 21, 2026 ## Live Demo @@ -55,15 +59,19 @@ The component renders its content inside the `base` CSS part. Use the component' Before you begin, follow the [{ProductName} Getting Started](../general-getting-started.mdx) topic for the basic project setup. +### Prerequisites and Version Compatibility + +Use a supported version of the {ProductName} package for your target framework. Keep the framework package, the Badge package, and the theme package on the same release version. The examples below identify the framework and package used by each code block so that the snippets remain self-contained when read without the surrounding page context. + -Install the {ProductName} package: +For Web Components using the **{PackageWebComponents}** package, install the package: ```cmd npm install {PackageWebComponents} ``` -You will then need to import the , its necessary CSS, and register its module, like so: +You will then need to import the , its theme CSS, and register the component, like so: ```ts import { defineComponents, IgcBadgeComponent } from "igniteui-webcomponents"; @@ -76,13 +84,13 @@ defineComponents(IgcBadgeComponent); -First, you need to the install the corresponding {ProductName} npm package by running the following command: +For React using the **igniteui-react** package, install the package: ```cmd npm install igniteui-react ``` -You will then need to import the and its necessary CSS like so: +You will then need to import the Badge wrapper and its theme CSS, like so: ```tsx import { IgrBadge } from 'igniteui-react'; @@ -93,7 +101,7 @@ import 'igniteui-webcomponents/themes/light/bootstrap.css'; -Before using the , you need to register it as follows: +For Blazor using the **IgniteUI.Blazor** package, register the Badge module as follows: ```csharp // in Program.cs file @@ -111,7 +119,13 @@ You will also need to link an additional CSS file to apply the styling to the
-Import the Badge component into your Angular application: +For Angular using the **igniteui-angular** package, install the package: + +```cmd +npm install igniteui-angular +``` + +Then import the Badge component: ```ts import { IgxBadgeComponent } from 'igniteui-angular/badge'; @@ -119,12 +133,18 @@ import { IgxBadgeComponent } from 'igniteui-angular/badge'; Add `IgxBadgeComponent` to the component `imports` collection, then use the `igx-badge` element in your template. - - The simplest way to start using the is as follows: +```html + +``` + + + +The simplest way to start using the is as follows: + ```html ``` @@ -147,14 +167,6 @@ The simplest way to start using the is as fo - - -```html - -``` - - - ## Usage Use the Badge to display a short status, category, count, or notification indicator alongside another component. @@ -192,25 +204,61 @@ igx-badge { } ``` -### Variants +### Type -The Angular Badge supports the `default`, `info`, `success`, `warning`, and `error` types. Set the attribute to select a type. +The Badge can carry different types of content such as a number or an icon. + +Use the `[value]` input to display text or a numeric count inside the Badge: ```html - + ``` - +Use the `[icon]` input to display an icon inside the Badge: -### Shape +```html + +``` -The Badge shape can be set to `rounded` (the default) or `square` with the attribute. +When both `[icon]` and `[value]` are set, the Badge displays both simultaneously: ```html - + ``` - +You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding: + +```html + + bluetooth + Bluetooth + +``` + +#### Icon +In addition to Material Icons, the Angular Badge supports Material Icons Extended and other custom icon sets. Register the custom icon with `IgxIconService`, then specify its name and icon set: + +```ts +this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons'); +``` + +```html + +``` + + + +#### Dot + +The Ignite UI for Angular Badge can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (for example, `primary`, `success`, or `info`). + +Set the attribute to render a minimal notification indicator without content: + +```html + +``` + + ### Size @@ -225,61 +273,114 @@ igx-badge { } ``` -### Value and Icon +### Shape -Use the `[value]` input to display text or a numeric count inside the Badge: +The Badge shape can be set to `rounded` (the default) or `square` with the attribute. ```html - + ``` -Use the `[icon]` input to display an icon inside the Badge: + + +When the Badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable. + +### Variants + +The Angular Badge supports the Primary, Info, Success, Warn, and Error types. Set the attribute to select a type. ```html - + ``` -When both `[icon]` and `[value]` are set, the Badge displays both simultaneously: + -```html - + + + + +The following example shows a success Badge displayed on an Avatar. Import the Badge and Avatar components from the platform-specific package, then place the Badge inside a relatively positioned wrapper. + + + +```tsx +import { IgrAvatar, IgrBadge } from 'igniteui-react'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; ``` -You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding: +Add the components to your JSX: -```html - - bluetooth - Bluetooth - +```tsx +
+ + +
``` -### Icon +
-In addition to Material Icons, the Angular Badge supports Material Icons Extended and other custom icon sets. Register the custom icon with `IgxIconService`, then specify its name and icon set: + ```ts -this._iconService.addSvgIconFromText(heartMonitor.name, heartMonitor.value, 'imx-icons'); +import { defineComponents, IgcAvatarComponent, IgcBadgeComponent } from 'igniteui-webcomponents'; +import 'igniteui-webcomponents/themes/light/bootstrap.css'; + +defineComponents(IgcAvatarComponent, IgcBadgeComponent); ``` +Add the components to your HTML: + ```html - +
+ + +
``` - +
+ + + +Register the Avatar and Badge modules in `Program.cs`: + +```csharp +builder.Services.AddIgniteUIBlazor(typeof(IgbAvatarModule), typeof(IgbBadgeModule)); +``` + +Add the components to your Razor markup: + +```razor +
+ + +
+``` + +
+ +Use a relatively positioned wrapper to place the Badge over the Avatar: + +```css +.wrapper { + position: relative; + margin-top: 15px; +} +```
-### Variants +### Type + +The {ProductName} Badge can carry different types of content, such as a number or an icon. -The {ProductName} Badge supports several pre-defined stylistic variants. Assign one of the supported values — `primary`, `info`, `success`, `warning`, or `danger` — to the attribute. +Use the property to display text or a numeric count inside the Badge: ```tsx - + ``` @@ -287,7 +388,7 @@ The {ProductName} Badge supports several pre-defined stylistic variants. Assign ```html - + ``` @@ -295,21 +396,43 @@ The {ProductName} Badge supports several pre-defined stylistic variants. Assign ```razor - + ``` - +Use the property to display an icon inside the Badge: -### Shape + -The badge component supports `rounded` (default) and `square` shapes. These values can be assigned to the attribute. +```tsx + +``` + + + + + +```html + +``` + + + + + +```razor + +``` + + + +When both the icon and value are set, the Badge displays both simultaneously: ```tsx - + ``` @@ -317,7 +440,7 @@ The badge component supports `rounded` (default) and `square` shapes. These valu ```html - + ``` @@ -325,29 +448,56 @@ The badge component supports `rounded` (default) and `square` shapes. These valu ```razor - + ``` +You can also project content directly. When projecting both an icon and text, wrap the text to keep the correct padding. + + + +```tsx + + + Bluetooth + +``` + - + - +```html + + + Bluetooth + +``` -When the badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable. + + + + +```razor + + + Bluetooth + +``` -### Outlined +#### Dot -The badge can also have a subtle border around it when the attribute is set. +The {ProductName} Badge can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (for example, `primary`, `success`, or `info`). + +Set the attribute to render a minimal notification indicator without content: ```tsx - + ``` @@ -355,7 +505,7 @@ The badge can also have a subtle border around it when the ```html - + ``` @@ -363,41 +513,70 @@ The badge can also have a subtle border around it when the ```razor - + ``` - + + +### Size + +Control the Badge size with the `--size` CSS variable. For text badges smaller than `16px`, also adjust the font size and line height: + +```css +igc-badge { + --size: 12px; + + font-size: calc(var(--size) / 2); + line-height: normal; +} +``` + +### Shape + +The badge component supports `rounded` (default) and `square` shapes. These values can be assigned to the attribute. + + + +```tsx + +``` + + + + ```html - + ``` - + - +```razor + +``` - + -The border color of the outlined badge can also be customized using the `--border-color` CSS variable. +When the badge has a `square` shape, it can be further customized by setting a custom border radius using the `--border-radius` CSS variable. -### Dot +### Variants -The {ProductName} badge component can also render as a minimal dot indicator for notifications by setting its attribute. Dot badges do not support content, but they can be outlined and can use any of the available dot types (e.g., primary, success, info, etc.). +The {ProductName} Badge supports several pre-defined stylistic variants (Primary, Info, Success, Warn, and Error). Assign one of the supported values — `primary`, `info`, `success`, `warning`, or `danger` — to the attribute. ```tsx - + ``` @@ -405,7 +584,7 @@ The {ProductName} badge component can also render as a minimal dot indicator for ```html - + ``` @@ -413,61 +592,62 @@ The {ProductName} badge component can also render as a minimal dot indicator for ```razor - + ``` - + -```html - + + +### Outlined + +The badge can also have a subtle border around it when the attribute is set. + + + +```tsx + ``` - + - +```html + +``` - + - +```razor + +``` -### Badge in List - -Use a Badge with an Avatar and List to show the current state of contacts in a list. Import the `IgxListModule`, `IgxAvatarModule`, and `IgxBadgeModule`, then bind the Badge `icon` and `type` inputs to the contact state. - ```html - - -
- - - {{ member.name }} -
-
-
+ ``` -```typescript -public members: Member[] = [ - new Member('Terrance Orta', 'online'), - new Member('Donna Price', 'online'), - new Member('Lisa Landers', 'away'), - new Member('Dorothy H. Spencer', 'offline'), -]; -``` +
-Configure each member's Badge type and icon according to the current state, then position the Badge within its parent container. + - + + + + + + + + +The border color of the outlined badge can also be customized using the `--border-color` CSS variable. @@ -477,6 +657,23 @@ Configure each member's Badge type and icon according to the current state, then **When not to use:** Do not use a Badge as the primary control for an action, as a replacement for a form validation message, or when the status cannot be understood from the badge content, surrounding context, or accessible labeling. +
+ + + + + + + + + + + + + +
DoDon't
Badge used with an Avatar and a text labelBadge examples used without a surrounding interface element
+
+ ## Properties @@ -621,6 +818,12 @@ The selected `variant` takes precedence over the `--background-color` CSS variab The `dot` property renders the Badge as a minimal indicator and does not support content. Use a regular Badge when you need to display text or other inline content. +## Known Limitations + +- A dot Badge is an indicator only and cannot display text or an icon. +- Badge styling and variant/type names differ between Angular and the other supported frameworks. Use the platform-specific examples and API links on this page rather than copying an attribute between frameworks. +- The Badge is a visual status indicator and does not provide keyboard interaction of its own. + ## API References @@ -632,3 +835,22 @@ The Badge requires a theme stylesheet to apply its visual styling. See the frame - [{ProductName} **Forums**]({ForumsLink}) - [{ProductName} **GitHub**]({GithubLink}) + +## Related Components + +- [Avatar](../layouts/avatar.mdx) — combine an Avatar with a Badge to show a status indicator. +- [List](../grids/list.mdx) — place Badges in list items to communicate item state. + +## FAQ + +### Can a Badge display both an icon and text? + +Yes. Use the platform-specific value and icon APIs shown in **Usage**. When projecting content directly, keep the icon and text in the component's default content area. + +### How do I display a notification dot without content? + +Set the platform-specific `dot` property or attribute. A dot Badge intentionally renders without text or other content. + +### Which package should I install for Badge? + +Use `igniteui-angular` for Angular, `igniteui-react` for React, `igniteui-webcomponents` for Web Components, and `IgniteUI.Blazor` for Blazor. Keep related Ignite UI packages on the same release version. From 5c0b4bb47048715352ac1ae45df70f14ee63fbf2 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Tue, 21 Jul 2026 18:02:11 +0300 Subject: [PATCH 10/17] fix(docs): fix broken links --- .../en/images/badge/badge-anatomy-schema.png | Bin 0 -> 58646 bytes .../en/images/badge/badge-do-n\320\276t.png" | Bin 0 -> 4555 bytes .../src/content/en/images/badge/badge-do.png | Bin 0 -> 21505 bytes .../src/content/en/components/inputs/badge.mdx | 1 - docs/xplat/src/content/en/toc.json | 3 --- 5 files changed, 4 deletions(-) create mode 100644 docs/angular/src/content/en/images/badge/badge-anatomy-schema.png create mode 100644 "docs/angular/src/content/en/images/badge/badge-do-n\320\276t.png" create mode 100644 docs/angular/src/content/en/images/badge/badge-do.png diff --git a/docs/angular/src/content/en/images/badge/badge-anatomy-schema.png b/docs/angular/src/content/en/images/badge/badge-anatomy-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..5e2329c093fcce548556348a29c31f0f42510fd2 GIT binary patch literal 58646 zcmeFadpy(o9|ykblv63)DYvdv?vXp|E@>1Yxr~J5mdjknbQFcC7GiAOkmNe|%O>~h zR_^!ZI-AQdGc((MlY`DV-{0@A-ygqAdpta{&*Oc4U7xSZN6&8PYVFu|Xd3_k*r9#( zl0E>iTNwcO3isg#cYUo3fOMP?iTmXb zyYry)06TLS>YFSRe7zvaDQqW7lr zEkmK28F$KcwFF&>59c@DgwLOE<#{4}+iP%V+5W>4fx@*rZ*P3O|FHV5o^MA6-aWpm z|2C)mI>Gy)aZGG`mY&`Lg|sw4iu`;r2jk(9Ly7R9%h&0J@BJ~zv}uwCUL*~5J;&H z3TkL7Y+sl)PPG$h3~<~6&#a@~r0X+|Id1&-a3Kdnh*SHwx|fgO#dJ~d{pzO3Lc39j-SF?_yi*s+N+{Ig0Kt=RNckY|78dct6fFqr zuuSWJd@MshzwXhQETtG38|U*;+FaB!<;ndg2gUv|iuJpx7 z8H@2OOTj-rWfSdFj_Me<1uGi9DuI?p(J^G*vb|;8_AsTRYr=CBnPW<`uuCsB{l_fs zmq2>=eRZTC?`jyndp zkt?NK_x}4V$|8$8VSGRh$Y8r$K3b(=fqIkDJbw9XVXvTL8n0H{k5BN1QruzUL zuKNRn!xo%E$M&Qh`P>U?iAtvP|9i%dPUa_Ufu{Yd>xh(V5G%I~inC){RMMC0f|^;a zCN3Sc%zw`S)L5jZhln#vd$hu7;!bd1v-|NQ!UPApeJ zIt&dH5Q?n{D8F0(S$3z%lvFQDRaPXU&Cnq2I)WsH+aCX)Q7&WBjT*6e;9Rmh#Gt-D z=N%5pH2Dw9lt1=;rYG%GNCbe53@vE#o{_sC%esSc#&no}??^)zF zivRn3=fcaj{`=XkW51XCH%$P)Y4=-D{-b!mmF%}g`E5S`Z7Y9k#c!?nzey`rK>O9* z%Kt%3cmL4+x7-B^Jo*oyJ$&WIAO9Zr^!IYVY4>lT_$?^Ewc@u{{ML$pQQ)_)`0ZzZ zgNlDC1>m<<{ML%!TJe9a6$=Ta%*c%5bUqEXiuhJ9?Mw&=cB$w7sc+lNvjX=^D_8a~ z-yA(^mVUheZW4d;jMa!-PJR8k%AMzB_E$o(xA)cOx>==v)3!mEmu-v!3xBgRl}gBx zJPtY{rTtc%81JV^9L_nFL&|{axXnVzBnC~x9#2Pk-N!Tc|2){?|CO=)Us2Ql3fG_g z4=}jrf24(v|BvwM>iCHV&4BLKh`n|~ z#WoXTH)B^925h>%7K~axeR>`)+FR<;i%#tbhfcqYdM=Zj+cDWNZasb6!joR4O>ri_ zfmT|XYR>Z{=fzKBNWxmeDk*BKiGSbbb_;%@73bkEfN#TXtV z1x>Us=%Vt|h*;G`R=m8P1G~1-K=E0^>flVZaiu)ecLH@iUlH`Jv>{r_%&Uc-EHv?{ zZVLM2@z5Qd2GhC;jZ-T=u{!gd==zk4m&TKt&gS=eYPGyqqo{nzO)Hh=y4I zz;KW$zHj8dIxq0>T4_P{xEX{6f*D$C-<%e`~sCz=6NMn^SwST zraj%`<-3l1tfpbhkQ>F9E2=*~W#>DVxfX(FG=_6%3?R_{Q#I)Qf*sbae~E-D_|Z(l zXPANoSBL-Dv2MY4WhB=cqN#x z!06}!+Kv*2%i%+_D({WZE*79tA)=J!5c&1MzEx-_yvo5=I%|jeFA$gG$i6g}O1g zbkr2SX_b!q_12F01JGAsY1Lw`6D@q8Q`}3s(51P&3iyC`b?7aHbpmdhUMiyHDiMnA zyIEoz3rB-VX$ZxRHCmsJUf+8|0arp!{X8VAxvR^ZS_3YC`mQee_U_iT%H2e=Ait#J zV%=;=+(w>Zq6F$eiC5Qb@aoWWm-npcNvGb*-sc*TYA)-G9sOmokmbc5a3yp*?^AE- zj3Rc@TJ1P6bltdTiaKK;--pWr?>uA<*8TGqq3gHM{3&DYdGkeOf#ivabVk3E*Y!1N zy!EgYXLX)s?QLupE1ZqY*tz;>BKHY!>E@7SIHK}X9m;>oz^dKHZvT)N z%jaR$&;TXCTW_FLa%&JsJ)bUZ+CM$hVw=aaI`{Mi)zx1!I}Q+7dLXM^&#d5r83}tW z*louK$THxPngVSPa-Dqnq!L)r!kdh$_~MS=7Sse$@`qhpo&5IhdXaS^aapU)XTp*X zRUDR^F(0aE;p-K)g|U}1fp>XN1nb^Cd?HwXOPHNehW-7%oWiv(gB!coWq7_>FB+(z z%DYF-dA96TPuR;>oAz%y#aZwoYz?ZTI~QADSljyOuUi*WOcd|G7u>X8>6996_#pQJ z=0aP-U;&m@YOBT)u>alqrL~rAA=8EHd3FYsaWB?w-8=kse`E;EZz^UWDk80lDXQ*s zMec4hDis5Dz3olZu&QuT49@SCPwi01aqc#g_niB**7#w0b=_EXZkIrrojt?7!KG|9 zx%+NkPq9vI|%*LXUUXWpvz{ z8eY8f%W*j#oS^4cyPmqfdIqBOPEuoXt--sTu~l`|@G=5>Cg zkdXOH9uX6jlkd;0t|PP#U;;JnI}yy#0T-#YvVUH8JcR8bvLRJNRxV$Br(#%|ocY}$ z!C&8UyhEJ6)>v=fO9Be|Ru`#Z#ZcQe@>wgFlIE2(K}WG}x!f$sNb? zFLN=dt{s>D3$cDZQ9^=w$m1i@aV|4jARF3UUfogm}}o+G%@3aPCEy!%TR9okz-*o!c z=Y3YYLS5lJ(Y*(fIQ@Q}evLOG5SKup^-=%exDe3kftJ8MF^mJ$+p=!b>TZjg7k5e| z;!+I=QM3kKWj`ja85x%946A16=i2K2O3?dvB1+G69HP+4f)e@|*h#*So(p=o~L% z0@V9)kC4xTmFYU=e!(Ud%A;eagdYWw!}(CE|0g!6bXtoTKcoNSZJcYbU;Y}*2v%R0 zzf##et6QU`2FZ@wg!a{3PiPL98?Gq+-#ac+L{%AyW#?x??2zq3t33SlXNp~W?l4o$ zvUwpmag|Mh-?}k{w#`|b$zzWyS%b-(%%!oq5U(|uwWX9M*n=OVFg#Y*vCIf}5{UAl zw4Oq2e70D&wI=uJS|`}8o$Dv|mnAmi({>yumv9(aqpP#eRqa|wIXt33CtGHL+z#_c zmnz+vBzL^?DhLJK;{9c*xfDGlZugA5WTChcN)PwYl)XA;9pIo_+ z!xpTNsvr>|c5 zT-7?9R6d8sX%vsdqcw{(GxaomMzuQd|G3Zlb*ID|=wbn3bT99{(eDH@6?-}!y}stU zzYqXe3tq8_mS(d*EE~K>0aXRs>c-Yuk@aix`wxh&;yXKF?j==1dU+1(j2$TwA1qvJ zI^^BHPJvBhulL${nE6#r7(Oyz^d0D}bYBbE1QgfVxTSL<%=RpYQH3%Q?yMUDFEzTy z?8kvtk7{{)T{y0mbzs~`zAxdz%a&LMym(=4ROc_Fu7=0|+}7$1(|15!;fq z=l}i7D3eV{<9og=8o{y4HXTagZhd}z(RIpS?K~xp8@pY!z>M6PT&oSu;Olj-xj0k0 zhF*iuu5&c#$Fk~aEaJU1Ja8tW=Ax&2#qmpHi&_-y_`3z1_TB_pE=N|nLpJm6yKb)zyCwdN3nZY|4UiN_3Gl*P>@#9e%% z%-|*nkp2rb4OMHD^ggzJ!u+!Da6U>Aa~@%2zRaPaY6XucM^3Z5VAD#3fMIsAvmf*y zNfMWJUpsx^C+)!8P=Ik`dqQhRhpjYc&<+^}oBszwDs%pbH0gLnp#*9V2}W;OrRvU5 z#`Xh>ebDjub<4SxC+AOIxvfd7lLs%f;Gv&=e%-Y!Ge5wZd61H7FFB$1^ zp&=*5K$YDgj`P-TUDcYv()Iq&8}IHYIi>qd%p_~6GbYF{u};n@EGHeEzSIm)qx>A_ z&wjb7sYz&baS~;QM$3)8I8Hu8qd{W5!UbD2-eqMuTrjYv&$J|Y#w!nXO8vFw$tHeD zeOQft^8yh_n~r6$ZKLq8RWiJIqp?}HdDSwmJ_Q^;vaSoO56}J1Lvl&+|IS3|dLXpQ zO~CI|^D-&^zmp69&0;P)|G!=C_|4+qEM7KR0KjiwyiA4vANt~3YY_$a{yRUngAfiP zeoLg?dYZ+)!!8KZ2TFN4t)-pKMm=3^hSUcG%cY7I`T{q4X?zEP#JXB*c||JcXv$;$ zjT+bCt-!}WbOV>kyYe}gefQfikC%)veS&=Um?-p~&5#baRKuKI6i|N_(^u-;T#Qf^ z6Lsy3j%0mJkrFR)@vXV3rAuB3KV+}2htRw?3!%~<4M^n>Qh@6IJi->hPK}P=ztDgCOCbrGt(1pL+Ia<_OZ^m+MWsqf^ zq-zf(Hnzk8&rn~3?ykHhRnqoL>{y7|-pqh%8or3^m??DBG*uNd_LfeNwxEz{BSRk+ z7KQOiQU;sK0_sPzQ$BkbYFgAVU8`-~T}PwsyprguxQPXaff*=<9xx9A%kU3|>(Z|@ z^b4Ke5FFtbBjr*sl|<3gR(;TnTJWoBh@y^$@WnqgYbdmXeeqe3#k{xwO#xoHnPd&k z`GuBaNT?^RmY|s5>g;Hr;+K_}mWNJF9c?R5{3pa8s*acvalP+v3$?cHc$`!{HIxjR zRCcY-GOdmfiQ;BZ%HHZ*-0xSpz9;6bPD68-<2*?FRk>?%IAR~T%MaR{tQ%!vvUD~< zmmlkFmL$yyIFPczvcqlUoc5nRLDn;#;fU9E53TZ&wz=mk+&360jPKEWOy!36>FSXe zg{u5(yrBN^O-6+hJ5@+REEV7^Oke}v1 zS5uWcR_>nSVc475kGb7ve9BvYPfXrrJ%GT}-IC+D%2{Z?;dM!@^;Ld555f%-u-Yg& zB3AgASc=EMcnu+0_Jcv`Ce?tZ&!2D2Faw*R(wp@f?F35Fmn&}Dox$pi=euXWKA3p3 z<=sjX&6d{1=aY7G^pchQb=l!t>{F4P*|N~;%~WJy+I+`i|aa_~ffuDC%{&_y|D_H-@1W;)i^w2m9|V z7u;n1rbu2Yh{t(z7n)RxDQsBhaM42d=5=DgXP+2%wO%oZ=A_;opmVBID zO)8%NRhgEe3xwpJeTNI5&-OUUF=?_@Uby>dX-URR)4!@d`OwA93(KhyY(Uk-*>d8~ zyHCih#Q1^dr33z4TyD>}<3ZF2+0l-g9ursI2q=3L7S`gbQdlBu&I{kiMo9&@9TWX< zBE|bU;RLw=kRT!QLZUKxb*9o zqJ{Dvd=H6^TpTG@6kP=C$I=yA9b;9Ke8&fNoHZ8@&*+NVnF8%il6HO&qW|r1V0Q_)lkE?A8;4)wXw@d3FfRsxvChh*b&88 zx@V<{&CI9z$V@!YthukPa>XdFrHWD9z)YOsdLrUrn&$a^Kgy~s8SxIzZ~pH5n6Kj| zSlJou+1cE6ui2^dx2CK#JDB>J3;eaLN|uzUp%crV$Ra)>teIh^xIZR!yV6DJ z4tTwdb?b4%0@MzA+PL$=OooM^7bn94l?mS7;e7zRBgPa2XlmXmFt09;ddjoOj%rnH(T zegoh~)1aG&k86=Pj5+IpkI2+65vDvgyFc03zBCCp-z(BN-CfY;r17ErQDX(?Tz!AKR^kr#1KN3_eE)YidQ zIP)F%%nQiruH@>wD(~Y>yz#G}r(}@Xy{?dPO_&+0noRy&E_kh~T^n_oTyWdGNH{7c zC3RcmW`MvYPi~I@o>(q(#Izux!Pa0V(-9+{n<8P%!iskJcJ|@D_($CZ-Z0e9RktP= z0lgeq8JaLC%Oy3ng;6dUu~+qDs%PWyB-+<+>?7CAZngyWF1N^V5sMyQMQ5&Yqs7@C z>`D$WlgDpc{4M{1=7x+ZN+3b_X1?N2GGr2#Q!BmT6yGQ+$Z7=D^5LasY~FX4|Juu{2Q2CQ5g>$Oyqfefd+lHwiuyZO4rB zY2n+n3s@xy6mX_8?_)Vy%2bsdXR7|x2R>5zHRBNj(ydRQKZgpo9!aRBr+_xUYD*Id4TGCWgO*)iv_c=e>&bpoBT86`J(_ z7)k3hSoE_95M36L!y9HQ@W~0(E=CjB73h&BJ4sW^(xNGFXM zRxr{r&tvCo;Wv1l6XA_CN|1ZeL9^2q{I)k#)Q!TQ+vvE$o1wU1M`^?&y}cZY85#+V z!{f1YzUELDjacNZC6SLy{RD5Q%UdacTG-621hEMv(wSKJ#2r1DC4Ob4Owp~@{2a1&|iXPvQLEDGdp)htG2~zS7=v(a81FPFzc?-4! zKdjT9FpH z&)x8Dxw)tXUpoD9xdrbWmfO*yL;U;@w^HAqIPo{&+~79!*Avj7n9Bit-BNiWH`2Rd zb?se5^Q?#2K54Ftx!ZV*fAIZ7vyW`JU;cH|IY;{LcjZ#P^SQ^QS=u!>W0A;P_`K$g zKGHD~)w+Y!C*y;Rx{*zQ<3~HxVAh$(`en58>RsUiXHRK@-)QsqQfK8{J)dkdj>prz zgoHPV&y?11MN+)bQSVfOC1Z2Dl~BKa&KZl$hmDf4$pnKv-R zSW|AW-iMmZ<7w|a(EG)E;@NJlYMee7?y+x^SRwRu%=q4Aao31-l$(AzNz!K3HK(;i zyL2jQ^6u4XcSJ07B?`Crx+QYa^EnH%PtsR(ui3y0JVa3FOFPQSB>aW4g(hqHt*zC# z!eSN&ajB83aMZ-A;fRfS!Y|>2DyPCn%?A8pysxWl+f-q~`-YHvugmI@zuR)7uGBJS zT`}E$=T~|~e*iR=kxsG8mNx=qaR%mteJm^K+CA%2s*aQ5v)?>#}4fHFzZYc$qgz+Y~?tDC;vcb}F zU&Wm#3{#}M>-@f;d!<~3lnkB8im(R?UU7wIE2CtVT(w*^Ybb_;D$fWN!){$SkoYQ! zotw##Gr@@q^!ESVm)g1MZzvxq%8(( zqz2g@W`9c8fVSmd;ODFtAX> zC)K}%&t53vHZ$`a-J&vR_N?Wj0!k;6NKG_pL8poDw`ZJAE(BlvL`7 z#hixe87PNT6`B>Gw#kP71VP;1&DMR&hnF)ML(5(CD~4|@#EkqcenepDY^c>WExm!_9~M ze6JBd38~Z(xd(1`?{Vqq^GRMFZcB#j9iYoeU)o zx*)wF7kIJvhQe|4A3e9_SN&-+puX*eoLMh){OI|q4QG}k^%cr4{#{4T6h(sbG3`7k zI$>E;`?-zv+}eKN5zCrc5BnLVen}|+F|47*Rc;|>vgZN6rnS%Fa}3qHQ>qj) z*-X*!&YPV_z{*}D=dJ?+{rB0qtCZ~y5^_y?P4rMi$TY?)qtF8}lNoJN&@0f1=gz)^ zxpZ~H{2g<3y{cU%t|G)RY9aLcQoq*l<7@oKMt`djulQq{5qu38BJuv z=GmM3v$^j&v0>wRF2u&`V({x1q<5Wr7J4=O#*NIg8}DSE%gM70+doOr$=y8hp>vUp zJvUBu$@LG-)k`Z?|0^FjpW$@gU!!$<`G@x>H*XU7GymSJBXwqH3a_7WAB`{VxWl2D zGbie>y0=cSH;QKcdvX-;D;+D?+nXNN$HVnC}tw&xpxUyt}&9EC@IKDDek!}66x+H zpgP=F4at{o$ZmhA0MHAreSfk&w3h6iT)fAp-P3Ac1F2hqnNIJeFI8I4Qh?cujWOmo z`wpsz1hr;KvkhO{(8UfT_)_U-?}zFFyzhk#)hS>3Qam=c^8oW`MD3VKJ~!qQf#V~; zV>$O@@Ol|jlJzB%JM+Rztc#N=uFUCR;_So76H7zG8=BfK=mzX^L8 zZB@2A>jZDYFR05XJv*NRx9gsgZgPxnvW2wgK)|>4Yrc7Vk$CDl@}Koko#FyIOH%Ai z9DC;MND=baYXW!R1*m)15*(26S%lR@phXe%YyO9Q>JmbBu zYx-#Uv$2fn`j*9s2&*|;i$g8d=X^`V$I`X3p1JJ>i0EqI!!gHG@e%X)zH2Y3rGe}i zF!q=$V@Y|Av1BKq7dD&aqlpjeJ@DjxG6Y_(GH8xvo5mzd4bw786-!A>th~7^<3uFX zhn#4SUWfrwQRyp9-9JIvv_L6~*zdzIQcE2&dN|Q}jfMtt8e&fTFl(0%)hcR$ z{+Sl>HKj;KF{P)qucI-eW>;H|DKJ4}&PEaY1!PBcLilP1_BUp;<$4%5dVFtQQxpwI z?bvPv`0)(E?|zx2&1;OOjwOhqH05UsmIlS!F~dK;w~^WL&S$#1rqs^qar&N7dWmcB2+2 zo)7V{yR>9aQJsl7&uy438!?dMSaVGqxDU+7<8W#|~21!#ANzVGa%uztE*<*2`Y zrvC$Lek5QQ2{M`<3$@3cHq1OCD*1B=KAlV~jZ$*NoX)TGvFZ5yq)Q3i-_L?J8zZD$ z7Tun6YNRWu0TfqMH|U6`9?4;tmt{B^C?qZxB}?d zcG7$BLg$RfK=bz~qQ$L##t;}wMdP~-zU;f)b>MRQ74Wt1Ns`sg=#ty}67I>p-k)(~ z+YP{vflEeTz~k;;wnsYNbUTB{HR;Ri@^FeS9U5w}6GOi6f_cv8h!*+!QVr_er0VZ} zKHuf(vS-m>m?H2#{<`g^=^F4`ag((n3P`S;ey^$k3xM)TBwCth-Esz_3Rof!Z?)JIX3dhAVQ?iB)F)!EGjH zakkNykJR8{(8*U75|hd^kA+Z4v;4p;Pf{eb&l22zFU7GwucyMKK3nln{ho4KOaDHE{fJbw%5C7$?v)}w0bd=a^sp;LI*3)0QW{DI0E5##zU0c8XqvZ_d68>bGa>RW{e=g%hABu~QU^FI@c z?P<-C!bQ|2O0n;3m#BAta~kzgs+a@yO#Suj_b0n08+3QxgYe$lFn##t!Ia2MMKy?j z<1Kn&^r*?a11bd-xA1=HE8CZXux&wvsXL5|^^5OwLe}_&_^6nCfp-AnKLgXlkCoag z@;yz$KbJ-zFo6>suZoFqqWkMuGf16s>0*}}^8!3o`XFRHv}TFMoVueUy0DZrmq*a( zGzT)Vdze8ojq{k4G#6*GSZbJ9)Tv1NWfl{aEje<=v>z2PTx4z^=G}mR$u8S<`&4EW znDaagw!mY71^$a_Y$B6w*@FB&BWN+VG&hf0$nt124lq&WUz)&kW^G*jse;be%A!5U zvJ0CUKt<#BiVkQc_Iw|h4Rls^z1$55iEJC-bcBH=t`b)^x{kr zJ8+y-aGYpeShmzG&1(8ST-yhHt=-0JV_>Foe|S;Wl&pI|d~6)%KAM!xgbBZyQWj(^ zC1qd_myX!*CyJ9p`-0{ciB&dUzT*@Ta+oeINl(Pyi-X6fAvsdU(OUIlE_Nwu(YiJW zJL(X$lN>Of56nynYvfP&CMS~8fQvySvuXYgm@QRQ?I*P!RuBKgM1fj!;}jo?jXhk& zr2~iQ9A;4hYE%rI_XH4GqR?v_^Wp>Eei1#50PF62tmO1y@$0mS=Z`Uu=~=J7nZKT& zR#IszcDY?TI8N{xzC05@qiWltYFd(XyV@Zhi&1r0Jn{fg0FJhCLJ~Nxp#qDYb66ep4DX4_*XS?}xhk&;+1_fn;6ePok-Sn<$e zEm0Z6$8yCw+HPky5?#9Y*a*6Ch`{+wI;)2>r(-YS!x80>qEANsB*>4(lRv!yfbUl= zy)-!S{HCK@)kw@o_okW*&K&ZhSFg!r>5nCG7u7#HcbSN|*G|@bO{(h3u|B8LF178l zE!w1A5we&EE@sM17W;Wt2Vb4F`v!d z^CL7(o`7gDJ^EhzKe}!*>IA;hZcgcUn1i?ajP`0QlkIDrHC{TB*q~UHrN7Trq0g1r zRZlF|YfbL!_v*M)G?f?SLBE#ZjB!|eyYV%(`Z8E#-WZwnI$aqy{kA6T72K~VgGB-s z9ZQhH!ra}p^HD(ae2`aVZ|RYGrg^{UP>fBNSm*nl!iDG}R|4DI9`46-$N+U<1_ecD zG5-0z(E*FZ0F}}iCPvPB6LcB1oahji9d&VK)~3K)jEj^xYoh;1GuKkNd(k$3(befeoX`2Nul9hW+Ycm~gJJ}4dU0)?htKYYf~6UD7lR};U*-mfkJnuG zWu_uuDVC#p71e-eRHd^B#ZU`8xt0|0MneaXnT~%-D{oSsif@XWh;-5LW0X+R?H5VF zl4Jfqs;wi7UmVAbk~p(1{&MvxN4+vw^=RgJ7GIwc3J4s<7tt>?*_*@@ed@EX7j8Ah zX=%E$k|g9|Z@KP};Md8e4yzTP9;gSEL-Nx(JAUbW1KYyu1_OGkqQYuq6* zO(0L{VJaV|+KKNDeOU!@Ns+=2yfV_$ZP8shz;;SQe>=tCT(uFTfq!RsihzVIkOGB5vNFZR>#g`Ht&3 z_335$i;pD)iKO)o z$8o$3ikO!Y6w5KrDBa?43v<&3gd*|-^Ps{c^o{Cl_pY;Lc?Wzlk(;SKEL!bY9)8SM zv0>h62FfmbUegT8Pm9l+`mA$>VXRAZoH6$n4V zCigI_A;sVq2-UN!T?>+kG!R;FXNGP7XS6HP9`22|OV(3^I^Jn&=V=>iB*=Y%EWU^z zun(L})i#OF{q7SrvU~SronLotK@mt)rE@}Ev!UK2LIp7*W@QsyA1U%?^63V0?V!MI zm+=;qOn~CnKqsjPHEW;jr(a@Yj01)(ORYzQYKf73o`X3(#OGliikCHE!}DFZPJ(L+ zBFQhP6$`$WjM39~D>rf@WLYETvHM+osC-Eh(%9i66hC4HMy-^|2>^H3I|IEJzVILZ zsR@}XC;!Ii0-}scT5+=&&4n{0lbj4@HIe!#echst0m`DRO4>GE%e`S6k}$mYSd!hW zNo9n)hNx_6k1Eqx^bX@yPTf*th;jN;GziZ#aQ8Ng{eCYXFJHYuPh#rM7m9nDJ=5)r zOmEB;l8}2I*NkhrY88L5Kl*{lRG+(iuMdN#E-;P*^4`H~koGsvDS}07++Q~JMdfhr ztBMDY;xF}UT67RzdNz_x+Brh)@{5m7yqgi(mKWN?*C(fq__klKRH2ln1)DxX>G5iC zA~^wRqRmELl&m4ce~EkF?2}Chw{wG=M3)}=wg4G1q^S>DErky_>`jQ-iqSGNU|Fkz zy(@B5;NjmF$a(I)&N`bLRG1(8ni2Yn$IIr!^24Ogvmv^p{Q!`X-V7uEl?Wq)~v*nlz1lj-E9U z!lEBRW6L0nE6#Z^8rq(~Hf=HTnkZNaRso}bi?(`rkF!CxYhJH!878Dj^4ht(kL@iS zo6RZC^ou{5pkotWE^$a$P5r1^*!+yiX&5mnmzwO*A{pFffEI{w7`1!n9QWGB1Oe#u zd|#4kzvwaUq68_{tQCy$nW=v6g;Lurj!5Y}E`&&OgU~KnD52RJSNOl1AoHE(V&@Jf zi~>JgCh-D#8jfxs^p=m%8oC%s`+~D|Ku=KV@m%cM%X4owws9cDop8rMH#ya$C9lsF zrp7TZJ7trc*(Rih(N6-6J|}RBJh<3Oeb}GE#=?N5RAWK{ZgWjU+TTL^c1?eKy(T)7 zm}OK?SLW9WM7qF+0s`s8VJ8kYDGjac=gAw$sY|0V?BR=*kGj%NDm>eeW@2DRJ7tH| z^$`hjPfmzE6gZg}`A8u{B?TcZVGHsyX|Q#GcoHPl#3T3=O$)UX!8LK?hLKFU3DFE>a158PGO^E6IKA&NT7nF3*-yMnsXH zOe=+E%N9#<(vxNqc3j$E5*>Em`{)Y(c45B@DdmK4>hxA#=u+-j)5?6&BI{Sm5>pzU zy$6M@_TJ%@%AJIkDF;8du9n0N_qICmswdhi>YxhICc21LEk4C!yB7Nc8A@A*2G7=5 z8u2<*#eO0#ZQWt1X21A8{qmNa@lCDblmxuK*Y}6RmlUs=_S#A+ZLP6O2^YNtmfQ;r zTX+}0r^b~w_t#lKUW{T>Hrg8a#8%w-GQmDfDt zu7R+1GVr2Aj#8q!N7>32`+|{0JH03RXFtGX67sn(NOGkWwb+&8!bw}nwc^fdCj9(u zS~fyhP4jB}{+b90g37LVK2Zlnr}M3t5B4=*($QTWlf$Qy z(2{C4nZkjSVvEH`v4g(*EG|ob0aIq*HF43kqPcm);+_a8M|3peac91RxuRZ&5p}_2 z&boR0dvDB(L?-MCz>$wn{mQt+X~bo18?aBaxl@Y~o;V#HGpR8-&kfm|i!*?6xV+AM zQ2kq%=J=R+9sx-<=Erj`a|2JLGlenl*3K!MK(Pj z10d_C?Hov zb8O+E=1)Kgh%^D-i^hkY)Aw8yGT>EgvPJj-)Gd0t$qJ%7#>EW9?UIQV6ZQf6DbdI>INyEhTRL%iu_USGWMy|zR%TZNNH_P>*=K0lr8@1F9Fu*YxarPnzg=9} zV;9IrPY(K`cHIn!A{RBqNd>feR!yBQr6J~#dCr6c2U0R;?5b~h|BNuHZjMH|+HqW2 zYohcaex~Wh19r41%a0V=AmdZZ>}RA>beZ#nINVts__M$5r0?G$M(68jly95F-su-p z#Un+8>vq~Ld{8Cog%<@1VLA!R@|2*9e!azBKI{mspfOHWf@p_uMoW(4&n4{df?krw z=moU`dalH5a#F)TZspUXyULDJrOv#U(NMXVUUctuKf7M1IiFqL1ooJzH9D=7GA@>C z2QgAYe%}cMhtZ;AoP35##V+_sauu1eF>RS#~Le5Q58e!7?vD!v0)viTy zOIw&@Y2)#xkfCh#V%YsVgJ|U-1F#IVYPsPcpJsz_$&}ndh%>>F6$ML(^n&$N%PxLAoT~3v?G@K{Q7xT2J zaXQSmb_(cq`MrDf9DR>C+x)LIS7x->5J>GUEZy|ZA!eDp;{`cOMNzS^YcIzBu>WxA zBQ^tT(P6KeU^8^ICx^pQhkc8`AE$U0g0O|i1F7`IUbEMEm2NW{8#Db|A^vWcRKYSO z^~LH>-QWfN9zOZsH(L;BXN&bD&YHYVP=EOfo@V5HX37%+{p&<%>*wrnxi_Su3Go-4Y39j)+Trb=sfX!;TD$NT+R-{;y18m|MN zyVsrI7uAd3A7kN2_=&eW%a+Dj$+OAv zH`J0EY?~y*zM_+*L6l;5i0n1QwBwps4$iIwJ|CtwY(9{Z|xBT1vl= z9HXOxKAXp*#b;G1aMb|KNbJPsKq>O;q1?-2IpbAgK1Ml^KHJOD`EY5Jp5r_GdCYRc zNvYHuZ$Ew%g=Jy`j%b|1FwIGIZtP5znQ@s?`o&_;$v7z~$|tQ4H|0NVakAK#axyzl zGBxjHsL{cLrd6f^WINMxLVKti z9t4>HdO+^o00^%h0p_QOuyMNObk77_{<6I}xNsEM|E8bA!jI{IbZOq#bo1^OYAeHJ zO`Ed6z<}Q;Ia3eXtC?X8A-{XnyIi5)&Eqhsjy{@7?0Pu6D;+<6b;30_i`z~d>ITop zI8yA#=lcqyF*JUct{jG$66iq8$(Uz4bo71dtvSl`3t(0FiOugEw}Pqhb_BSxM0x-Y z9l0U{S68zf?FRD}1#a9Ztay)IFK#5!exqWpB)+?~GRHOi^$54lDBwu8`#;!w@3*G1 z?tK`?8JHPSW)uOHqNspM5v12~G$PUjM2rYgdJDaUs>29E1f)oWKtPb*B$1#=0Fe?P zLZp{aq=W#01PCpJ@;#J!KJ#4H`wzU=_2dWOgmBnr?X}ik`(F22J3dq1S`F3dJ@^uZ zXEk(SFPZi7>CpwjP{UT?rJs|^$Zn-0?t81)!?+}d#vSP`bvjWRXiFSX)H%ylXvKSS0rt0q^!lwoXbWOvAhMe^B#NAjlNC4K`?f?y#PN}pH;7vPuN#^yLOfsY->WT`` zv}1cHubr0f#~!M^6f<7owjFjU>^DjHb&Ol6h}+TNwRD}~;4#$1E{^pMGd*JwZnj|) zQV&OE?jiY6$EgyKxe1*C6s(cDHdp;URrWm1t0ju5=jzER`Lz3U6`^9>OU%jEQQU`;8b%mR`* zrQc;+A)W1%=S(AE=e<8!Ex$UI#oZriM5YlmB&uueYyl$zp{k6LB_jIB{xgt}x*I7- zx7Q)=;_-C$GjD>*uL)#0bQaexPGyKN^iMp;9lH_QtQp;X;Izc-AZ>BAW=f4* zBk6Vj(N?-6=NsVA;fEHI99^|9(RJ&Ji(>RGlR-f%pa3`AvxGit@AZ_T7kw5@Zypia z!(4DyVu-l9Pe6cl_pqB>{xRxm1U`R=kspA>St2?S21e->hh~Wny}f0Vk$>mE%#*|! z#JMMx%z3L1cExBeeVmCJpsc)C{^RI-t&^aRcK!0Dq>E=j@^V8Vy>TF4CNvR9~KZNP{%>{A`3vzwd^hIk=J* z+qv9`XACJG=CxoFXbZXem>!|Dc6^_9L2H;3t{Lv{_2)w4f+82i(poyEEG;=e%_Q0W zN9zrAMllhv41LFD+e>O{fmdF;emh#I7ukZU(Sh4t+@>(6@sxUZ%WEt>I~^+#IZ_{*TFlZa8w+Fz{vU-~}? zfFuCV1iz*d)e$(v4;~RPA2=3OKc$2aUjHJc!-;Ufx6aIteq8@77?V9`ZP_!mwcyM9 zo~&vx3nGbD-?P=sH5C9&A&SEd?kXnuYG#4F6VW++lqJ6 zZyd$=b1NZ>KFwy7d6tlMe1_=Z?j!lzC0za5INQpki>EuDncEEnso!MZ8n9MCiRvS7 z+b!RhRrv)G*Bd7|ToZehp@5SiT|Xl~r0W&DL%yku>1kkYW^(4PFmI>-4q2JI5+Blt zLCttb?^$j7Wchy4K>UBHdi(Ux$OmCdb8W*bZ>06Nt_IeY(7`~3lcl-6jw?2}->7zG zGomUNGe-?RHWb7*^|5(ybZ{)og+!Q+!r++aEqTj{7lI)}ouMA|(PLbcdje|jMY$9F zK!~HDg#4nCPE3jgL(j4Q{OfehZ@Wvm1ykGq9fb(3il5NBi3}i_F?IY3fSu7r5_&b6 zPA8&ZMHFRth?MvT{En9E%z7T%$}|~C0J17xgE%14IbO3tkj*4%z8(hfUY>8t&LfwT zRyGop@# zv7QHrT+Z&cyQ>UNA)>`l?R`8*yydf>Mgk9`4T*us?l{P9owa@QgQQ z1+7?V_^KM-$Sr1c)T#nMOEPRfb5gPo+UT9Mke)&0gr=Qjg=S>W`Bwie9ptcK>yoK$ z58rrO%fZQ5;TE6qg{j&LhEZ==qrz5Ha@!`6HH-B43w!FI`dmkTFHNNRSM8RH^^9Ab zV?V1rjFG2CmtA-aOQ{;T)Oc3@?;%&Da^7cnwp(%0tZamX0!q$tf? z5i}=S)Nn3wJmL<0Z0Rfrm#Ob~e~E>biP3C)AC$hrnOsYxZDl5QM^?|Gxmfd{TiEsPt7 zGREs#PjPnEPSyuAw-WSqRtk$QBRj6P8shpCg;nYSwTi6ATFP=4m?fuA((_U7gA#|{ zYsvgdh>`7DT2Y84kUo7hO)*EDv_EqZOdf@i!5Z3u1we%V(ET{-Q^@A@V^yaZMs-7o zHf}!rn29Rpfo!wWQ|NT^4```Ar!;9xyN0aOzQnh%qShjSjJI8u6V(MqOR0RaS^GYT z+rNwNrc)IJA5ykqyG4-ZOwiUpI)`rxpD7j7&;Qw@|F5vQqoZr74UrphwcCBG`*q8K zTtDsq5I>&VN0@#*{&F2z9`=b(t6rdkPlUGh7#yzA{?2OB>lQ6rOz}+It@%Jzw_7Gs zrsnhP9GeYeIZpoyP|WyYY{xLPZmBLp$A3Ulr!qJ>Z_9PYT9*(hl+_ML2WQCteX@M3 z4npB0QH_B0Zulnb76r>vPV$rFf#HWy0ocrmdQwNS^4 zndC~qj%0%4hfpW2v@Jk8+mZ@u=`Y7ut}Kq|X=BW*XQ^^(-W|__`Jo=K`m07)20b)h z?OD(FL;D@ZKA+z+wyhoF4x2>=s7p0lRe5t?$_*?#R6-~E#PmMrRS7*VqOh;}rB{9` zn`meUr|~^S%-dRbnsxOmb0miK;ibCLEiVn=9fctvj4svXm?c(h(Lc4>jpLo-0$~c19A2 zg5tz^aJQRHd5u*H`J$u-U(}5hk+3z=#YJhw0i!-^U3|hiL0zqOj_UdX7bOefC4gou zC65hOl=rJudt4O?;Q063dymvcJ@~3umH(lwfy;00#P8p@C=Ud`dd;PPI`n?@vs-%j zDeX0|J{DhR_23zwXfqS9WiyG6ikYK}X#k9_@=HP+GqBBm27VH@Q(Eikqn?CPc%-#z zuVKMFbByd!R9Dc#vZ=nHXcyWtQ}~me$?^Qjze{KR%3&*pmNRSHmMuE#Bg{>MeVdHR zI&k17bHhH{%b&bmLXj}8kOU(ncBTLq>+*`yYhC~UsXsMrme#YNN~&#my1MmVN08zhW!zs)h9r; zkpG4sT(JM${4(}?H z;XL{tPolYeyAK+n`4HBkZ&0)4{=(}dvDn)d+D$0}jZ->nEGBLV*s5pdh8?%^1wwp} zjotk7p6V|A7V_(U_%6R*p%RjL?U?&}<~lvREeiDnp30X-WsOZp*MLhC18H@gbWV~qX4}7zVPmFy4kS${VDyj4QmSWy>-+rKGZu5MUF6^4V=DFQi?8@qh zPk~gi!`-7ucd;t3=yZ1^TN%D3HmUe|6)T0032DcNy!g^84gVpI(T~wsh1(KT8JxT$ zj88YTb-ZY=F+Co*@6BV`lqy(en>kX@eim+sUdjIUXW=ijI4R|wXMN$s{1e7S;S1HH zGai@rB&aD}IFU63m^6E2LcIOt!K$v_ozB+9`c05&?ZV zby{tY-w&pMLK?3kd+G^=a%FKM;kW$Osu4#Smh7TjeEhAtJN!kwMJBuuP=%g`&@nuf z@W@_KRAqv3JOVt7Q*OU%H3<%OIY;^uQZQH|@Y%mdI!(#wcM}Bhm4~3HmD>l9&a~wR zd}P}k5Ywx!2M5eoD=vPl9{($%%K!RMN)HeS31!I+-li&KBGNUl=5W@8x!m*<4*6MT z5~{85r^aOK^<=rw9r{K1?nBM*&BN+n&%gsj7)xw%_U4b9Jz7rC;RRAuGudtL0vfZqM%El0f)j_p23aIL~#$@ z2@^B(2nS(O-TMp!i8fC~ckUdM6OC6YtlVn1)i>*{UZJ9`Px#N|4( zPJi$^b(F`D_m+$tvj743K`Raawp*c#%>}6jDL6mUiqloMrg|?ep_d!aK0FD)UnV(R z75dPVl${IDkf;bR%c4&9)fqYry8$txq0LZ1W-XEj-bp_u;c(gb_x~1=R)=F+jTR% zu&d}{9(R3BS-DZ4@4d1lGlEV*B(NrKoSW?@pIcHJu}x3w*}a8u@Tyo~x>%ndcvysZ zl-nxq<|n;?p}tZN|NCtQ+B#vO+I+1wo^D}7!-&80`l~83Z8OPLzH?tc?Q_fptG~}4 zj+SeMgtkCNm}{H+Zs2t0k9!ex;LE*m@^JZ1oUtV8-mZ31Y`&G$qNWZz%CC!56$>c> z)T54q= zmnvhEj1Rj7Bsjw#!P6h`+dOYhyxfY#X-0>fif=Mh68g|*?K{1CrHL3XA(~`G^#zg> z!fKCz4LH-@8k^Me@eDBvQBX6^}nbslC-V_39*ZQu#t&ga?+6v+%c6K=RH^^^gKXo(NO!+RnqOY@7UT)^T z-2jSa>u`u3%fVs$%J(0_@)&ey`lw1%l-~*Cn0~~r2qC-?YxP9-rm=BjP>WuPT(JVk zL{CWwEB{-~2f{t(&?ikmsEc-{a?JjL;Sm$&133+_wRIUHrD-^nw1o`?w*WeIYa*x+ z?{Pd=GATERpqM%;NC#9dNe|NJ3O18f=qu1R6M?Q zMy?#14I3yY83|;5xDva5#E0u8pusF^iygFU_>8g4T9@b*=f zW=c{V@g$*i6qC-b@t`Q{bGZd4kQ07kZ^%2QiTUJZ&n=z5GKeNoi>4KD1%p!4LcB#& zma9WSmgDm5C`8y&q-+x9`r3%YUC>*~`%9cPb#qKJt-pOykp{%@J1te))0vW}S5opj zz;2~$biX@l;JxkrSad5DXxk1Obo<(qTFCsm`75!Wq` z;_1VjXF{mB;ToyezrYX8{`eUyI1u6@v3wB;>X5x-)av~$B_f-YEJZ%83^J*N0DJ3U z2p(9<)3h@s+oHYiu25}r7@Hm29T+Awx%1SCFja(CgqrGb&jf4%ZH7@vv7buIcV6m ze8UmQ9T&GMJEU;N3JBA^2*Xswyqhu!AYUlE77 zGPc2{;7O=SJ6u0T(}M?i-uw2J=H}s34E9sYfnzv7SODH~`TDf?6h`;j>A90&C`Q(a>p zP93vARt_lcoDm!a7=2|dW+6{RL&P#Wq+{C>?$V8jZW+!=zP6u*h;PGFg z`LuU1;hVR_LLz-0=qxLWh261NdV@#+tZc4~kEh;2@w8IT;=5V{3H`P}!o7In1Y`B% zK&21OO~JY>U~W)}Qfb@g2BWnHb(Y5akx2TOTxzbn+6-3A57MXAzX8heVPHFM-dNp^;8jLy{y&?k&CGz6kF!W8g3YziPfEVQk=V1P!hBHCD(hS z9ucw>X>z|Wx~oBZ-!{>gkz=0UUg}N+eUpi*zkJ7NP)g@WMdtY&!A~;fhXS*Bs6L3V z9Wj7tO;F~3#J}r{T+VxNM--`rzscKKK%dc8YIRs*9}>@;sMa^XHP-+BRC0uWp@yv3 zQSqE8=)gR^zw7}-_Ri?!H5#ruxIJ@w3cuZzxjwv;10P)^)(i&MvAgyJ$rYbatGtih z99q0i%M78%Z^OoaVe^b~GBVlwKt{VB{8_#ffAm{Sp7RDp{x|DmMR}+1ZF#N-D!5Ak zD|5FD0+B+`Whj6j&K@zA&<|bI(~9Hh<~RTng;liJeX^__dKsDI;EaA0FPY;YWPd3~ zO83-CeP_h=freAnw%eCw+ZB#}K2Zr2wh4N?tNC!nTbjE7FRfp%9UN(x9B8G0Dy{J* zZ(APEhs`i39-*yHSal&@+}a@kHJMSUk&{9$Gk?immzIkO^He7p3%si|q+H-q?TJ9Y zmFt$KX#T3i%8vcv>yv;}FPr8INHlcGpgytd#1gyCx|hnzO&W0NnXerS6e3dnOaux~ zmkB2OBWnJZUiAvlTKY7-q*kZ=TW!^LWx)1VF-g%5jqR=4O-LAV9|xW=->g>IY_=40 zju_UEY|q-m2p4`U+h~;oigQ$kO+%L=$qXY+2VgIH#eGw7XE~hn=!bUatyfDMxy|q} za|$-U6#k^JG3#DHv_i7#k$}s^QkSAhS+UO+$Fg)z1ZW7Ajfx)QJe$7Gn`*(DUlKPq z570pJf!4~;IdrlJP7_$5APn^)&l%mEr`)LNF{w}4D#rIzUjQOBhC^@00aXOw}ByIB)N7~Wk?&AEJ zipGluTlybf_=9DOXIC~)$fj^6zIKawwEN)QXJrxedjV|WfUgdi&6v9CE5tmoe^*h+ zF*!Bn=h8mwh3Ay>nK@31F;65Wq|REoH|6M^AP$=NcZ!wkwpdnmaVFTR{>-@Qq_h** zXZcqCGqZM@57}Efo8KCvdDt|a?L4}5@O+i<{(&|NTmi#)Z|eEs@`KGge8De#rkJ_i zvjbGN?NX*LiuQm68EV^Q09{thD(z)PoCr30`z4uPZ#*#6vI3-Yx43+G<8{G$RWC81 zeAO<0H}!&B&`0rgMQACC%Ux_l-Fv*%SDvz%^+B|pZuFl?LN25}eWMs@rs%}>7oe^| zGrRkO#>Ja9PU;GIP*aHKaT5DCzkrKOo&r1_iu3lRRac>ej`A5uCVhwvosYZ0v$JaE zKAmLXqB>8Y&QgsQK+m zr@AXTk2EG7r-O&4VcYW(+B*K~goaZW+Jn~u*dd-s8tVvxPju5#aD)&J?5OJ(3r@vN zu?Ymiqxi^rAX4@x4%utyNHF7y@wUuHdH-;|xbgvQ>vckLTv=IJ+x8^DlUDKSjNja1 zvf<&IP0U)LYXtE6eBBfcS_8`^M zN+v-HLdTGVH#AuC>r%erd?`iO!CTi)aq$(B;ha6Yf`y)V_G_;O|3SPGen^(z934Bny z+MdZyqG_#NVd{UzRtnuit;H_Ko|nHmf=K+zlQ-o!!hq{fImT#HUC}G1N$ejfHps?{ zcMQkn;US@4pl=OZ4Y}6E?Id@4AT#=^roGB6PvJ{%yFb zEG~*CKMAUIQ>4CYG@!%L{WO5SC<%YiPs(*r6$Q9KddcbC^}9QVCLr5{ph0J}e&g#T3`Y=kWSe3Bq>I$zjFvcD{Q z(oR9NbaPuQY=sKbyvuKAJ$5wQXCJiF{Rgz;4IH#blx@6X)x-I8YF7t6)RMV+ zWw;T7j!&(5^)nRu(`B&1fBbSMTs@m#M-Lss4-um(0N-FikQO$svW|7h0T}j;o1}u!#Px8__ z9h=tD>5U=S7N#0({FS84Amc+H__H%J61U(4o~OEr<-iICIx!GrL}Q&XDNvI;Z^7!$Za@Ca#zd-bzVn>RQ`u z4PVb1W$saJ79JdA9#n6P-)Ju`cE#wh7c!ZK>C5NCcY?RSq>4O?LJPf8_xtp5*>Tvq z_QSA_8)1d3EdVpR99tTCYh{LCb&#M#gxt<_5;PZ6`mwX{i``IOWX(D)RCYGy@2ZW zrR|RjSZ8#(u*iS_doxx8A5!zZ$r32%l$Du(F<#-1R&-9mJra$LoDbA=zLn$E<>+hf zpZW+3WOD|D5${z+qvmDrv_t&c;C#E~-T{mLm()J(#+KonzR|_Hef!(DR-u377EuOU zJi;*b_O6vuf$f(CuZyQ!|2=4yGv>ToCwma^ni)M(osnqNK`Iw2DdCC~G4n-4U-S`I|ti*K56 zATGu2Ixc;Zew*jjm*YuT=@{%B_KGNwgNm1+9SZa{u|B>d9aABmV{3JSYLhTvwYs_` z37supJ9UCR1XZE?XxvwvA?XGT_sJl)ifPu`d>C-(JOk+tYh+N4@p9X12qsKaa5 zcwa}5scH#iK)=E!M(FN=jP~I8GN2AOXRILh2Q;G-fiy^wXnRMZ6%`FOQ>9eZas%DG zoPF55d}zf}Dt$GZ7o#RTxcWvH1~Q0o<@aWU(ExR{W_K%{129TQYcJLG9faKx2Ygw~ z_vd8%>@>V~)%Do+2+#KV7oYjV?eP-YTw5pzn@=oczH-!C>JZmwH5>Uk3Koj3c~pyX z1h^<()ibj8;ANj)`Ln`@`zvJ28g!CA^lnnAmd8q!?FXx{KDvWntl#^7|GwkOJgQ=? z=wiWB|3pLR=%D+6wA_3F08C;C1Wfc_Ngu7v>j7)@zdD@);x!VK4;w+GEl1G6DL}3M ziyz`vUZSG(-Z6si2dpjI+tOjf!+nBDyI`kc`XpE}AvgEKeF%oI^KB7#Tg77~#9BLW zAsDbv&+ZcQo-7gnfg!6wF9b2E#T!A^U$N7i>5WYr3+!%Ekc&|ssp4)3Fh5cMQ^j^IEE|lIrxZTcx7{0tq)RGSzR)(I) z>Dy8s7Id(PV-nVi#^!;802@Yzi=ig(WG0;>fV69zmI@v=ZZ`U6cfpXhOUjZ)dWlDWFU}oe)vZk6blBOX3Z)%inpZrdE01YwQgaH zr>Yac%-Z-fspI3oCm&sr0Zm|0fEigBTHmbDgQ15mjC27In$4(`$}?S`F%&C5oHd9L zd-GEF%AN{Zt}wY4gSU1z0o-=McypaE+}&Bh{a`D7{eZyIp1uB*6%fL?QtL^nt7l7k ztj{rgj|I0CL%b&N+a%-gWq?O)1>i%TaWUhGVbfL4=$fx~p)YV^DGZ)M%)QsZ4yI7< z4`);4Yx@pm!`7vKZS1tH{y@nm2jX@_&Ic?|2M9wC@DxT3lmHYROZTm^BicT!k-FK3 zO2W&H7wg9gM2K0-PTk8FB}t^VPE%gffGXldo;1n-suV?>JJ0wOia|13$~NR$xbOxM zpIgHBJp@(B(nqMV2_@%|G&14Gi|zt2WNBZ{2g5U^md?68-Qh5A)>|(Cd+=q^SW?Aw z1cSitWe%}skaDNU_j&4zN{fm_Vw(~=05>>9Wxcb0_>h4P>bJtZWGHCH5VQN=6>&pr z#Tar>ItJ!-CeUp!cCK0E)Y9`x@B8jq^&)4dJ%5`hw>_s@zS-$ma$#@%SQpoNSf{tT zNEQuj;Dc*UbZXV^LqhA>Tg&8X*3y2z2_8OxC+BlJ5#WP1)x*a0)LtB-nNbF8L>M69uA?6v)AUY<~8zTRs=nzITp;auA!hDg(UG8J&d zATXA?aZyx`ssDJxCJ8I&eYi#nx#e+4(CQ;?oo>yVMTSiWTUUiMf1(-hbL=$r+zBhq zSHxz*4k!kW-z0Td>=vCZ!JSp`Ub_pJIuF3j12`JFI}7FItaDC)$dN+X*8J(qRdfls zA7(%r{$#eYr_v2NXw_>pd4*`fnz*udvRLvy>-C8%Y+s=AI$agj*QNfe$&zzOTS?0- z)+juXc~LNAp+7g6&xq*gC$zNZJC?>0@DRep5ncbIXfTQjH4%WC9~~5W!#HAS6BsmP z1)ycX-YvpJ$6%PxnE2V(&C-v=gFwEs3q1Wac46V79Y#ukz64XU1WE#P{&usc2G-!b z#p4OuBZya}4j5TPA1>Y6(y}e*V+pF%kB#cw@nM?Du1|1etEa!aDHu6+nDOW`gICwf z@YWxE=?PZm8t_LlG`8>n68ET#2G(+yNb-W*5&!`07H_Q=k3{c<#tFi_&>?OkPz5s8 zJrwy=vP~m=r53VTwzF!92wyPP3Gy2J5w*(-+fDb5I_@|8*wg#>hyK~+{E6J+jfp-O2@0m~!UG}$w@*{n(XNZSvBqjlRU|IpRDYCSJ3!@w)jnbPfj7ye(vU7E{ zvMx_=b{O_9rR3ptJks1bGt$L)`!4%s@yxZ1v5=Y~5{+iW_(&&31&nBrX+<(c*`>I2 z89br1wJ7?LC;-&;Q+@f7H??&Sft7@STLQ^8*}n4>yn%IcJQaqr318{6S9E(JrM;6e zx>K)JyNX(~Uft`9p&pUlJ-N%8`OX(grmtSP40MhMdM@W2bQFf;LSgYY^ zXm9nZ)Q;r=OQvSl#$P-#Kb}@Be>2qPVrE%m*2+WC zT#1zr?Hg3L6p-GX6PeRaX>)l!B1vbA=B&3TqqXpSZ4whbSn1BBv)p-WDMSmDHi0wZ zcr<>5b23MR(Z(XkEQwP=9aEqYEwfZ0Jm)QXVs_tLL--hSF|a!scIt395TF<8)-(LU z*oY@XIxaTW>XG@jR+`4VCROzMDenA3swV{4LlBP*dLeYM#C=vf6NxiQXiTUl#*JD4 zMe0P0B_JPLgTwU-W|d?-XmbP%0skmo9F29yxw&_hkY=!)4Pc!WD#jvN+Ei@;yOR_ zB{9@maCo)nasM$M^CUrYL<`%QDq$X=HB#5?sOpnFH%ZpssK}^Yp@@B4zm{3+OpE2L zGVd5?OG)lTmIv28qiJ$lgSUIDYL~K1_x)4*g#*82`Po5EJ(>?x%TOw>X#tA@9i;2h z{H@)OAO2RMSvmR6c^2R)=eZUS%tlvg-Z26^PC{vEDHY?s)jAs;0yuy7Eoq=i#hoGr zN_BvC*9V$0afQH^ zUGua*`5rchv3k~BPNv6e$5T;GHCkV(U{DBUG;G_n;Jc<;F{gvH0o>QMnS?t=v&~Zj zC2|VRcnVOrDc5@+C~meSIauAwd;l*&QM(xaU0*krl5nIc99|oFt0`Zxv=3ml1P*!b z+WOlWCr^qSZGCmd&RNEsZH1{@c*0VHhoE`|%@fFNbBW_M6UHJVc<;uA=|x!(MOM|U z1JbIUbl##EO&X~AVD}9X*ElaFUJOt#XO~o4n{af)X?=1a*J6Ty;N=)Hw*s zAWvUEX~s+z=SfAw<+Q^FsDkAoZ9b?_@{!D)9^I|&1D?O$0p&nosU5P#6s)D!ZuL^d zHoJB^);yzWb6Pd_`Ek3we{_MUY~hu_Pm<@j3vFNEAfrH=H2^Aw=y;9a)JB%tO9E^B z4A2$p8q%){uz((Ctg;n}&R8AvJ$<7O764hRTof`1>s-z_w^G7z4~Q4cT%DGM^19{w zYrhpXrjVt`I=^;8M+9H{mP=YfI{21awQD-)jM=aT20A2JV4q~ zG&irTuPcD40N!%ZsoM^eFdoEvj|S4T=-@LUa``{tH9nKh{oU;$e@6O4@8k5o`xY25 ze?qArsbujFfS-1@v zOQK1iymaTTINa7Rv%?S{C^8Vg4d3xzDJ-8K-CSP_eRrhw9>_Xh>P++~x1qKW_U=MpBqrlq5RD+Q&3JG9&p6ovgmIi4O} zar#Npeh*E0+!eUxT08&8BW-pn**J{0w&O`IuLjyVh0bjlLteFKNh!f*l;qUcZ;Y~V zTkWgB!SV6#^1{N0yFsE>=V90|3*;20{nFsg?4RwFNf;qz>(W+i+A&Pe3CX4Gm*=Q8 z-``~b5t|ECrksKU18cNnmwGWB+&dN1*qQ=7`{mda))E0QiEBm6%Yn!gd~)l%FYg_`UY`63 zd7gR`ew6Rp(cY?g(VXBC=}aI9`L=v`?I>5ep;Z`YwN1ZyNn0J`{f%mC_3lM8K}wv6 zODCZ(-?ImJ}Lcs~dw)Oazp!FCvEnqB+);GA90`v;gy|KBy^V6vtt0%+w#U(+3E z$qZe#)d&aL^>{8iYKM2VpIMt9eT}-g7Xqq;3?DhBNgJ>jVO7;^z2V1)SF z(Ne-Qv}De+@sc(?C+*(a#j_Ra5V35OgZxX)Sn;Hwl)SDd8X0Bw#jafr${AA;0F^f1 zPhhRbuuCwb8>4;(YZ#6P^O{F7W@dv1Axu$?`^%w{p%r?T`Pl^<8%g41$_H(-rVy{K z6K=lOuUw8E^@;ZUqIr0zrmzy&WVwo%!w6cdtRKsgVYwr(_ayh6<*uNtr(_SklbRZ( zgop{Hb3gWZp_ztw)wY{Yzn4&gcvT70o>M59Q-BFvv>R~il_|b%S&{oZ!vL@rxptkV)*Sx?0tJ{ z-^&J=4G6}!`BVyjB{gPuzneu90G7ec`!o}~&T8X=$ojmO3Q69-4GbN_hs3QNsxZ{t zwt=~@`#1JU6yI&E27*1cQ|mh5wlZRz@m?+Uo%Xc6Y}C%_K1=XPUPN zL=f}@mXO~(wvMZ501zhcyQ}4wdM&6~Gb57AAPEy?fL$A*ox>Aqv<5M=yM$KP$ZeQh zez{-J`V^!4&th}p`GxWzwtig0MIfbvY_|ax69IY3kb}JCkfQwO^ug{)@X5w=!&dS) ztyIh*zKM&UjtyDzBPxRCmHbz+Mu7ZHwvBcg%2dhJKd$d3aGi>i~)z zN{743?B!KrmOp>&Bv|L$BYvR!Oo`%sD3{}qvhW$it1EY}CGSKdiq)qGqLxX%ca(KLe8uBF>V%rThC$pCS4Mj_q1Wwv z?P}fjrTF;TLHY{_s^1^7d85W1lk?)8m~1->2*;Mhxe=IdW$1lgjK4a`lvfIXGj#-CId*IF7A@dR`tf5C4JnX$l*R5_%Cw zv&!@`0*h9eT?X|0&@7OBlrq1RJ$J#lQ105LC1qwWUy(xOJA7Y{AoAvn-p*;f$GOHW zI8&ZGA71lE<99_a%R2G$w4{MEU}Z8*R*V9Rw#XdwtFiW0Xah1CWoBJePyVMs>KFc! zv7`?FT8cLi^N$xu)yydM;{$)#3bm3&z(m)4DPKkTQ}jt14)%zaj;8<`dxFUqGq?R` zQh%P@DY~fbZ=@RE61>h8z=_9nBeHI0f=xaE?Y>+V-vAlsy_fQdgMb#eI`dfmEy zdM*JS&I9v0ITp&P%~%>3)kOBYY;RUzh518I>8+)inwxhdACKr-yv*tA)$*{MghAX* z&FyQU=2NWl=oLDjmYnjX!LUS2poP3;`^+g33&AztOO&bMEvrcXK2ykrTfS7mT-dwK8-+C!k5Fky5=4{blI>;Wccy_j<%|i z1=2`BFkaRwRO;KOR0f=xliAKyS|80V<}kQGaL%wnEozL?w~S- z)7%FEMH>8(%d)%hl!)4?Hd}b&tK=zgKbBPhZ2d`6XXq@ANT!kNwcnDa>iHO zW_#1X=C;3eU}C2#sAAxTd8|Q-B&K=3=7ltQqfb7(3?@qiuv+aZj(tG*huj9&uka9S zo5aj*ZQDhm{fB=)aIk&@m#Q}eZV=^xB;!|D>RNsC7On&=cDtRT*=A}sS$N0XlI#FB zZzmR$(CvfnnDsRO3Rp~bk|roYZx~=Kd~M26X2SJs9^-0@1?#&i)MNAnfR?~>OuBMO ztGBka)g)BYHW@jjGo4|Sf-K?t`%D)1_w)`&OJy>)d7!9d<7J$8qIW_(*e(#_fBYv2 zC>UWS+E?g2SR&0MS?izB0r#%J#n~kD5T}-w+8rvOi0Z}DMkLzp>G4UQwTn`Gmqm{x zkhgrOssDI{u7lJD@MNBmrGkHd<;mo9zS6V@3DkG83aMx}!AfzE$p>JPp~H6dPkIa- z4SUOsZxF?~vur=&d5uRR%0Risrj&3X3%`A1}9PLTMhC*U80E4#Jd{oo^;W(>V@ zZZ)B*esiBjYogE1OSd`ZvXaPP6+fU_T-Wi=+7N3IdZUZW^I`ODWx1np@kCfMc3{R* zCG=KQQ7euP`;fj2@pXZzY0>?+sO(u3U{ zFtX1QK7&{N9*8-`jnRbsWpQ|pY2wPcX{j4CWtr*eVFfOU{dt#*w>ND52m;auQukra zG;S^ERKW_aN?~5kCle-rE>uWb_2k#x*Rsf>heYGF` zzsXbn6qco?KVL}SxIV4SK#rDivJ(lRU*p$)>pS$6NPDKXaW^$X^zPqiPnWs}JC%GN zkM7@tc0BX$zGS($`m+HCJXVnc#NdvoKjrs7fYk_>-+#dU>%FhaFAutg{Oi5P_5Ww` z|9Sg=AN)rY{}azYlHmHEQv4%||0%^klK7ue{6`Z1Q;PqH;(wmvA5r}OT`9irkVm$7 z0<1=Pgn?5vhA(z}{{81mLXjU2ohURREm|Lk@lxyS~ zyy>~}8}owJgNiPH6OF=QsdSNTsqHLrv+t*`)%rr zhm>Q!T*VjW|f1oC1D>uW+>Y|4TOkINyvB_XBEp;-INUgYha*cOT zV+(cIwzwE?R9dJV!sxyvLNnIj-0f-pefYpULH{<)?^4tViP7NoiVjM^oG_MM=vX}3 zKWe>d&7eg{vh%BgPi%k8vmMV&_n*!YOCRta$?Wsr9LO|M-9MO*>+W}>Am;#*$AZ&Pz5Mq!Vw+G;%pO}9GZGG2QLSBJO0TfHKS%-}4P92sob@3hXTQjV**jN&qU+0d$E6h+TLG$ zHgSP!++E7x>Fp`m+CHCO$?%Ya^A?>pAMmSJVgWe$bt~Du4|1J7{NurY-o1|dlIT&E z{@$f+BRV4^NQ|m@!KsR>x#y?!}-AiV1eU4srf0lIa zUl0CsC00a={q3ZMF{i-~l5Sn#l|+>CP$U_ALzfH`|0(u*TaUnwD9SeBcd)to)7syF;%p+ z&+U}41CH%~UbXIDa(bG*hH=a+egm74lye&%wHAoDxoxGRu$DGsiGr1h@BhX3ACLcQ z4r2z<=0}w<d$lbL%Igh} zpF3L%-@ozG69*^z?OjUUVP_Gmc4nSkx*oqNd-Gs2Re%4l;bPp(Z^V9V5o=}Iu@i<5 z{+;kYM~&{@=MNM10ETQn6hvGa{4OG+jYi6lH7$T+M|WSI=?ACC?OlN;c7>IR3+woh zWsHFM)h}=E9^$zBiaR(daql8a>cj5jHxIeyRRL;pWTSfkwqAu-M`QMW&Goe5zsC4} zdKE7jjTEllEUWS6R7vb3;anFa_6tGw{)V4mUwqnSZ;BRBA+?K(zZ|89KiEGao9or9 ze_6oYZ`K3D_kzeyQJ}fYp1GTw*^IyxclvCA6MTjYVdlmitjjz9`ESp0P zE8IVWnd|KD|5C85$1;{ZcUilN_~X`6Cb{PB)^ud-{<#!fT)+HVMnBO}oIWF7?wecV z8ZHM4e*EBA>%AxWwR2Y=N;wqLUxyM#sk>&kchnab*VWJe7Rz70dyjC~r6+CWgeBku z4&YJl#;_In(k}w9~{3ogi{J* zLtqSASoM^4iFi}r%jm(vq#Y(ELc~K9cB~PL2w2@rH8;<>j88+2emsC>zDp_1Lu=oa zv%l@n;qF(dvq$;1->bvDl0v#Cn_Ov)Ur%)fp=#Vl&`LF&@8>Jng{2(?M-Mx_u&O;j zHZupF|7UFfrO8rsv27DWyJpIhq>Z0gwtnhiO34Yh%#JzmkOf*zhDw~N;UhYeW>v&EEXuT?IZmH%g z(KzrVkGcM9;wQ#*mF>iF3495>_l72+m5xSn7ga))(c_XxEJ1F6sE@gL4{$Kx`soh~ zt&F@*$Xvggg2MME`c$>+(BxwxvSWR{X`MM#gUTeU`*<5S*lm6sVfH{&bncf}3$_KX zHbt-QE+nN;o;yXi;-(M$)HKh(_2R51XA}D*;ZS{4#&JI%+Oj%1%FrFp8F>&kI;is| zw*1tYl_OJ)v3>2#m9VV@FrcjGk8HEYbc<`>XUPig5B3}1jRWfjuCur{r=#0?5)NH+ zG=MKE*#>3owB-xb*bZGNSF2K)tqrmOroFO{gRt6s)*OQfm@5Jp3%jpr$^RPH+y>P( z^#!!sD0PTFmq7e~?OkV7Q`r`d7xhyWrdH>#8@5c*2!p&W$?6c3e zzrFW8H|JnG?FfC&72QFuMJ1%qGId=!xOA$vF|?%k>bNqm5%5zHU$&@q&dAfn+@^Zs z+KzXrT{F=oR0CoFAc9{LN%~vRrodpqI7;Fj#0+kc@R@xZFu;^I)jrcAPby*VI+ETo zXZ7YuiCx*sD{KgaL^jNU-E(hp{itvxoC0Dx%{jo&&Zho{E?*l-Ii68#U4xUnqHEKL z>=VO-wK3x2dM+eVJ2!m3?My3?IqP62!XfRsKLJ+e8#X}-TSSL_{%TK$`ZL>>LQ*($> z@2!i9Di~&|A6YF=hMP<(qUNxESdvoCo8l)CpUapTcaO~+p?VEMvP8$jWT{3t(njZr z%o{D#G?A3u?RR+xNFXkH{R#OC5F;ChOFcDaH)XV@t5q^BJesEzg6R)^2`Z%P=MDP$ zSP>dOZ9)q3&aOs?hOV3Le%mMH=x-`U`^~aHy{vtHgJyCPJAOgK;}Uk1KnVwfORxiA zl)-Q|S1ckBSlCBrm6_Ai+WNvi62nt(quQx41=8||MW84k6SEG4$V$TV{oIlBAoZa}B(@j^$&j9&?}8_UfP0v*#`jq zPMyGbutCj#xT&IoR*@e-spmH-b)gx%EZk@_h0V zyJ<7~%*e{9H#s*2iA(g;IdbKNbb|b%2gjD3P#E;5aWsyNv$dY#2_TAJrvQ`q126K= znE0$jz9Ovhs`02Kr8drqy%;6QHhPJ2LXfqgQ`eG%@_5I5R}+9w!1;k5=ZgzSuNH1| zv&qqU_Yb^)eD^vjrN7%rQ!VPxs;!fHy}8`4vCaH1e`os5(FKjB{(nh=%t+B3e+ihr zPH(R`K&Tu}^D5dn&AhGFR%Dh&jB8q7(zVfEG#ek@oF-K2+=Yn(qUtlIsL8A(=#YEF z;z1Z?i2h-KcCQz|{|jj5fTZFZZQlfqL@&_t59sBjdA4Qolo1jPr={;toAlouE6F+U z5Fzw*dDzmu^~VShMXILUDz5o&0PFYmWU)Bf3{Bfh^SeY0#=qyavYxZAE==htG44j% z1MH-aoC!Ud6ePMY7Q!UO!( zOgLM8Q+(r7S=Ft_8cP*>sSqa!!PAP&Ow@@0)A>Qec*|4Ux!u7IWBsdBvvFMHTABO0r~7YT$ksLS5!kq&+&CxTUCC=KWW&0kxxiM>wc{tD zyD-7_ZGbm))e;^hlOJThHG ze+~_HeXN{mViG+FY~rgz6qASrdmf1l!}+c@x*v{d!i&np3X}r#b5766%E{u0l;NE% z{SbP#!+{+B%2JP1>d47$!1v_#`A)^?`atpQy@xO-aZxnykgk_zdGJ&-Naw!w0(K{(XxUo`<<%w=ON22#|i=u4K^o_)48Z%Gl)y;eup<}ET@XST=)LUaD~A5 z;E1kI>_C1f}R23+3 ziHSbUkBh*sKA^Wl-M1AD83N(zQ#|B+8*n)AjBehO`GG&|Np z_gwA_b7g^#SQ>QA2Q2+M95br?(Rf&&A_exY^S=gB1)%&Ktjsu76RKH&UJl*c>f|>K zWGo>dMPDhM=(J3vrMIrUyAAmAUtm~8EKXpmf-R$7Z7Tc+a*B595s-^R{Fly??9YHq$f?-r$+I)-P}q2NeVSJ@Bij zu7|lw-d)7H#C`Q1{JGJ8|K2{Z$q-|hsX={&*zoW1bpT+4j|09AK#t(!fUg5S4pzJ) z-xm0M00M!Jga0!f^kBOxv+22cs?ohnhW=AoL&u)qA3XGm{Mo8B4zFc?OYf>ckFb|O zIkGz5+_XA#i{$CkQJc4(5|dVH)@L%Taoa>3iAHCawtQ$}_S5KWr0-@70Has%#C3&W z5QuC45PctoCo8;iT4JyV9Z=PMk+7^Dy0`TovWV{vz@Ab-<^F&tkI+57czo@J@Uh1? z4L-5(X&J%y8hoGoKZ{t5a*R32f&ufrx1rT@C`1ANxoMlUml#PB75nL8s=Lgl0-+U_ zwGygUzOD6DF9w(n#c;oW1Y!I!gFKa#+Sp4CY)0mnPs4A|lnUTqM@NG#i&z~M~m1?S~ zuJ@nMM#~LT?Gt?jtJ0*J&_Npbk&dslo4Px8fHIC{1%4^kBq)2ML@U}fuXJiGaOb+y zHZ|?EtIggd)BnbP#_oE<%R6?=V2eQPr`1S9J$1`Jdt&7&}Qi^tG9%0x2K6(hAwaL(ELiVqJjdaAk?t$kfNrgWT@m#5zq0b-d)7 zh`g&15sHj=yQy5k-XP2#75rsSOuw-g^b6#*vejN!yd7_jJ`a5~)b<}ctdsU2R(4k2 zWRq!)IgO4Pdr)t={xo~!SA$w89PE!HxrC>jR~FQll=Dq+X*D4wcrIytRT783KSIqr zcB7~e_2J=*3$8u1rkI4rBo6gunS8{4S*bM%c~?Dg(*A0#Dc+90*2M0yv{_SsJ>U>o zuQL512g5i=HC%t_7Fk@}&acKd5q;QShKW8D;X>p3BzgFH+u9!{-qzd@Z#12joEAU< PTR*3xuZ=%__13=u4eH+l literal 0 HcmV?d00001 diff --git "a/docs/angular/src/content/en/images/badge/badge-do-n\320\276t.png" "b/docs/angular/src/content/en/images/badge/badge-do-n\320\276t.png" new file mode 100644 index 0000000000000000000000000000000000000000..6b8bd521215f8de54cce1224426c7ded8a1f79b7 GIT binary patch literal 4555 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 literal 0 HcmV?d00001 diff --git a/docs/angular/src/content/en/images/badge/badge-do.png b/docs/angular/src/content/en/images/badge/badge-do.png new file mode 100644 index 0000000000000000000000000000000000000000..b8374e9278b07edaba14db761f443baaa07885d7 GIT binary patch literal 21505 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 literal 0 HcmV?d00001 diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index ff0d196884..112b5ee39e 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -839,7 +839,6 @@ The Badge requires a theme stylesheet to apply its visual styling. See the frame ## Related Components - [Avatar](../layouts/avatar.mdx) — combine an Avatar with a Badge to show a status indicator. -- [List](../grids/list.mdx) — place Badges in list items to communicate item state. ## FAQ diff --git a/docs/xplat/src/content/en/toc.json b/docs/xplat/src/content/en/toc.json index e71caa8c4b..58d158d7b1 100644 --- a/docs/xplat/src/content/en/toc.json +++ b/docs/xplat/src/content/en/toc.json @@ -2222,9 +2222,6 @@ "href": "layouts/accordion.mdx" }, { - "exclude": [ - "Angular" - ], "name": "Avatar", "href": "layouts/avatar.mdx" }, From 475a6edc213f48e2e970b11da4457dff9a05481e Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Wed, 22 Jul 2026 14:00:04 +0300 Subject: [PATCH 11/17] feat(docs): update the badge topics --- .../content/en/components/inputs/badge.mdx | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 112b5ee39e..206af77862 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -1,7 +1,6 @@ --- -title: "{Platform} Badge | Infragistics" -description: Infragistics' {Platform} Badge component allows you to display content in a predefined style to decorate other components anywhere in an application. -keywords: "{Platform}, UI controls, web widgets, UI widgets, Web Components, {Platform} Badge Components, Infragistics" +title: "Badge | {ProductName}" +description: "The {ProductName} Badge displays a short status, category, count, or notification indicator alongside another component." license: MIT mentionedTypes: ["Badge"] llms: @@ -23,6 +22,8 @@ The {Platform} Badge component is provided by the platform-specific {ProductName ## Live Demo +The {Platform} Badge demo shows how the component can communicate a compact status or notification next to another interface element. + @@ -37,7 +38,7 @@ The {Platform} Badge component is provided by the platform-specific {ProductName ## Anatomy -The Badge presents a compact label or dot indicator that decorates another interface element. +The {Platform} Badge presents a compact label or dot indicator that decorates another interface element. Badge anatomy @@ -57,7 +58,7 @@ The component renders its content inside the `base` CSS part. Use the component' ## Getting Started -Before you begin, follow the [{ProductName} Getting Started](../general-getting-started.mdx) topic for the basic project setup. +To use the {Platform} Badge, follow the [{ProductName} Getting Started](../general-getting-started.mdx) topic for the basic project setup, then register the component for your target platform. ### Prerequisites and Version Compatibility @@ -169,7 +170,7 @@ The simplest way to start using the is as fo ## Usage -Use the Badge to display a short status, category, count, or notification indicator alongside another component. +Use the {Platform} Badge to display a short status, category, count, or notification indicator alongside another component. @@ -535,7 +536,7 @@ igc-badge { ### Shape -The badge component supports `rounded` (default) and `square` shapes. These values can be assigned to the attribute. +The Badge component supports `rounded` (default) and `square` shapes. These values can be assigned to the attribute. @@ -676,6 +677,8 @@ The border color of the outlined badge can also be customized using the `--borde ## Properties +The {Platform} Badge exposes platform-specific properties for controlling its content, appearance, and indicator behavior. + The Angular Badge exposes the following properties. Use the API reference for the complete type definitions. @@ -732,7 +735,7 @@ The Blazor Badge exposes the following properties. ## Styling -Use the component's `base` CSS part and documented styling variables to customize its appearance. +The {Platform} Badge uses the component's `base` CSS part and documented styling variables to customize its appearance. ### Sass Theming @@ -796,6 +799,8 @@ The exclamation mark (`!`) ensures that the utility class takes precedence over ## Accessibility +The {Platform} Badge communicates a visual status and must have meaningful text or surrounding accessible context when that status is important. + ### Keyboard Interaction The Badge is a visual status indicator and does not provide an interactive keyboard action. It is reached according to the focus behavior of the element it decorates. @@ -810,6 +815,8 @@ Accessibility conformance for this component must be verified against the offici ## Troubleshooting +The {Platform} Badge troubleshooting guidance follows a problem → cause → fix format for common styling and content issues. + ### Why does my custom background color not change the Badge? The selected `variant` takes precedence over the `--background-color` CSS variable. To use a custom background color, avoid setting a variant that applies its own background color. @@ -820,28 +827,38 @@ The `dot` property renders the Badge as a minimal indicator and does not support ## Known Limitations +The {Platform} Badge has the following platform-independent limitations. + - A dot Badge is an indicator only and cannot display text or an icon. - Badge styling and variant/type names differ between Angular and the other supported frameworks. Use the platform-specific examples and API links on this page rather than copying an attribute between frameworks. - The Badge is a visual status indicator and does not provide keyboard interaction of its own. ## API References + +The {Platform} Badge API reference lists the complete verified API surface for the target platform. ## Dependencies -The Badge requires a theme stylesheet to apply its visual styling. See the framework-specific setup in **Getting Started**. +The {Platform} Badge requires a theme stylesheet to apply its visual styling. See the framework-specific setup in **Getting Started**. ## Additional Resources +The following resources provide additional {Platform} Badge guidance and project support. + - [{ProductName} **Forums**]({ForumsLink}) - [{ProductName} **GitHub**]({GithubLink}) ## Related Components +The {Platform} Badge is commonly used with related components such as Avatar when a status indicator belongs to another visual element. + - [Avatar](../layouts/avatar.mdx) — combine an Avatar with a Badge to show a status indicator. ## FAQ +These frequently asked questions cover common {Platform} Badge content, indicator, and package choices. + ### Can a Badge display both an icon and text? Yes. Use the platform-specific value and icon APIs shown in **Usage**. When projecting content directly, keep the icon and text in the component's default content area. From 70ef557b2d1227d9fc723d9ab02284812b26f7a0 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Wed, 22 Jul 2026 14:04:26 +0300 Subject: [PATCH 12/17] fix(badge): remove empty spaces --- docs/xplat/src/content/en/components/inputs/badge.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 206af77862..d91c102d64 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -834,7 +834,7 @@ The {Platform} Badge has the following platform-independent limitations. - The Badge is a visual status indicator and does not provide keyboard interaction of its own. ## API References - + The {Platform} Badge API reference lists the complete verified API surface for the target platform. From 08a51be0c20b9948cccb8b07a4e1ae3c3e90dbff Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Wed, 22 Jul 2026 14:12:55 +0300 Subject: [PATCH 13/17] fix(docs): add small updates --- docs/xplat/src/content/en/components/inputs/badge.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index d91c102d64..955b11987e 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -1,5 +1,5 @@ --- -title: "Badge | {ProductName}" +title: "Badge" description: "The {ProductName} Badge displays a short status, category, count, or notification indicator alongside another component." license: MIT mentionedTypes: ["Badge"] @@ -18,7 +18,7 @@ import badgeDoNot from '@xplat-images/badge/badge-do-nоt.png'; The {Platform} Badge component is provided by the platform-specific {ProductName} package and is used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors. -**Last updated:** July 21, 2026 +**Last updated:** July 22, 2026 ## Live Demo From b9541051fc6b560046888c2d105819fab084cf08 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Fri, 24 Jul 2026 10:49:36 +0300 Subject: [PATCH 14/17] feat(docs): update badge topic --- docs/xplat/src/content/en/components/inputs/badge.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 955b11987e..3a2ad80435 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -1,10 +1,11 @@ --- title: "Badge" description: "The {ProductName} Badge displays a short status, category, count, or notification indicator alongside another component." +keywords: "{Platform} Badge, {ProductName}, badge indicator" license: MIT mentionedTypes: ["Badge"] llms: - description: "The {ProductName} Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed." + description: "The {ProductName} Badge component provides a visual indicator that you can use with avatars, navigation menus, and other components." --- import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBlock.astro'; import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; From 172521c78889ef47f4285d9ff0f8fbaf404657e3 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Fri, 24 Jul 2026 11:01:05 +0300 Subject: [PATCH 15/17] feat(docs): update badge description --- docs/xplat/src/content/en/components/inputs/badge.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 3a2ad80435..5a4e5d260b 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -1,11 +1,11 @@ --- title: "Badge" -description: "The {ProductName} Badge displays a short status, category, count, or notification indicator alongside another component." +description: "The {ProductName} Badge displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components." keywords: "{Platform} Badge, {ProductName}, badge indicator" license: MIT mentionedTypes: ["Badge"] llms: - description: "The {ProductName} Badge component provides a visual indicator that you can use with avatars, navigation menus, and other components." + description: "The {ProductName} Badge component displays a short status, category, count, or notification indicator alongside avatars, navigation menus, and other components." --- import PlatformBlock from 'igniteui-astro-components/components/mdx/PlatformBlock.astro'; import Sample from 'igniteui-astro-components/components/mdx/Sample.astro'; From 6c4233314be0ffd376e39cd71d5861f76d584349 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Fri, 24 Jul 2026 11:02:41 +0300 Subject: [PATCH 16/17] feat(docs): update last updated date --- docs/xplat/src/content/en/components/inputs/badge.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 5a4e5d260b..91964667f0 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -19,7 +19,7 @@ import badgeDoNot from '@xplat-images/badge/badge-do-nоt.png'; The {Platform} Badge component is provided by the platform-specific {ProductName} package and is used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed. Badges are usually designed with predefined styles to communicate information, success, warnings, or errors. -**Last updated:** July 22, 2026 +**Last updated:** July 24, 2026 ## Live Demo From bd8590c89b61fac76911d81154ccb615d051119b Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Fri, 24 Jul 2026 11:16:09 +0300 Subject: [PATCH 17/17] fix(docs): update whitespaces --- .../content/en/components/inputs/badge.mdx | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/xplat/src/content/en/components/inputs/badge.mdx b/docs/xplat/src/content/en/components/inputs/badge.mdx index 91964667f0..5f6fa35ad2 100644 --- a/docs/xplat/src/content/en/components/inputs/badge.mdx +++ b/docs/xplat/src/content/en/components/inputs/badge.mdx @@ -660,20 +660,20 @@ The border color of the outlined badge can also be customized using the `--borde **When not to use:** Do not use a Badge as the primary control for an action, as a replacement for a form validation message, or when the status cannot be understood from the badge content, surrounding context, or accessible labeling.
- - - - - - - - - - - - - -
DoDon't
Badge used with an Avatar and a text labelBadge examples used without a surrounding interface element
+ + + + + + + + + + + + + +
DoDon't
Badge used with an Avatar and a text labelBadge examples used without a surrounding interface element
## Properties