From ec0487d08ae36db7e2d3ce3cd593b53e060ebdae Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 7 Dec 2021 11:58:37 +0100 Subject: [PATCH 1/8] Update `font-leading-loose-01` description field --- guidelines/principles/typography/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guidelines/principles/typography/README.md b/guidelines/principles/typography/README.md index e50befe8..005f4465 100644 --- a/guidelines/principles/typography/README.md +++ b/guidelines/principles/typography/README.md @@ -79,7 +79,7 @@ We use a ratio of 1:1.5 as a standard `line-height` value. A body font of 16px ( | `font-leading-compact-02` | _Set line height as 1.25em_ | `line-height` | 1.25 | | `font-leading-compact-01` | _Set line height as 1.365em_ | `line-height` | 1.365 | | `font-leading-normal` | _Set line height as 1.5em_ | `line-height` | 1.5 | -| `font-leading-loose-01` | _Set line height as 1.75em_ | `line-height` | 1.715 | +| `font-leading-loose-01` | _Set line height as 1.715em_ | `line-height` | 1.715 | | `font-leading-loose-02` | _Set line height as 2em_ | `line-height` | 2 | From 81e11859c3243ebef33b9724891606b7c6890499 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 7 Dec 2021 12:01:14 +0100 Subject: [PATCH 2/8] Remove headings from `principles/typography` documentation --- guidelines/principles/typography/README.md | 158 --------------------- 1 file changed, 158 deletions(-) diff --git a/guidelines/principles/typography/README.md b/guidelines/principles/typography/README.md index 005f4465..940f5573 100644 --- a/guidelines/principles/typography/README.md +++ b/guidelines/principles/typography/README.md @@ -99,165 +99,7 @@ We use a ratio of 1:1.5 as a standard `line-height` value. A body font of 16px ( | `font-underline` | _Underline the text_ | `text-decoration` | underline | | `font-line-through` | _Put a strikethrough the text_ | `text-decoration` | line-through | -## Type styles -## Headings - -**`headings-h1`** - -``` -headings-h1: { - font-family: font-sans; - font-weight: font-light; - font-size: font-scale-08; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-tight-01; - line-height: font-leading-compact-01; -} -``` - -**`headings-h2`** - -``` -headings-h2: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-07; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-compact-01; -} -``` - -**`headings-h3`** - -``` -headings-h3: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-06; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -**`headings-h4`** - -``` -headings-h4: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-05; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -**`headings-h5`** - -``` -headings-h5: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-04; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -## Body - -**`body-01`** - -``` -body-01: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-03; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` -**`body-02`** - -``` -body-02: { - font-family: font-sans; - font-weight: font-semibold; - font-size: font-scale-03; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` -**`body-03`** - -``` -body-03: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-02; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -**`body-04`** - -``` -body-04: { - font-family: font-sans; - font-weight: font-semibold; - font-size: font-scale-02; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -## Additional styles - -**`caption`** - -``` -caption: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-01; - font-style: font-italic; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} -``` - -**`overline`** - -``` -overline: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-02; - font-style: font-normal; - text-transform: uppercase; - letter-spacing: font-tracking-wide-02; - line-height: font-leading-normal; -} -``` ____________________________________________________________ [Edit this page on Github](https://github.com/dxc-technology/halstack-style-guide/blob/master/guidelines/principles/typography/README.md) From 3945533263ae90370888090364f35a6d088ca4f7 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 7 Dec 2021 12:22:41 +0100 Subject: [PATCH 3/8] Update core token naming --- guidelines/principles/typography/README.md | 212 ++++++++++++++++----- 1 file changed, 161 insertions(+), 51 deletions(-) diff --git a/guidelines/principles/typography/README.md b/guidelines/principles/typography/README.md index 940f5573..d7d60a52 100644 --- a/guidelines/principles/typography/README.md +++ b/guidelines/principles/typography/README.md @@ -16,90 +16,200 @@ Make sure you include all the different typographic variants in order to enhance For our sans-serif `font-family`, we use the humanist typeface Open Sans, designed by Steve Matteson and licensed under the [Apache License, Version 2.0.](https://www.apache.org/licenses/LICENSE-2.0.html) -| Token | Description | Property | Value | -| :--- | :--- | :--- | :--- | -| `font-family-sans` | _Default font family sans-serif_ | `font-family` | 'Open Sans', sans-serif; | +| Token | Description | Property | Value | +| :--- | :--- | :--- | :--- | +| `font-family-sans` | _Default font family sans-serif_ | `font-family` | 'Open Sans', sans-serif; | ## Weight In order to add contrast between typographic elements in the UI, Halstack uses four different and well balanced `font-weight` values. -| Token | Description | Property | Value | -| :--- | :--- | :--- | :--- | -| `font-light` | _Set font weight as light (300)_ | `font-weight` | 300 | -| `font-regular` | _Set font weight as regular (400)_ | `font-weight` | 400 | -| `font-semibold` | _Set font weight as semibold (600)_ | `font-weight` | 600 | -| `font-bold` | _Set font weight as bold (700)_ | `font-weight` | 700 | +| Token | Description | Property | Value | +| :--- | :--- | :--- | :--- | +| `font-weight-light` | _Set font weight as light (300)_ | `font-weight` | 300 | +| `font-weight-regular` | _Set font weight as regular (400)_ | `font-weight` | 400 | +| `font-weight-semibold` | _Set font weight as semibold (600)_ | `font-weight` | 600 | +| `font-weight-bold` | _Set font weight as bold (700)_ | `font-weight` | 700 | ## Scale As we approached the foundational elements with simplification and standardization in mind, the typographic scale is one of the most important elements to create hierarchy. Our type scale provides eight relative values based on a root font size of 16px, making it scalable and accesible. -| Token | Description | Property | Value(rem) | -| :--- | :--- | :--- | :--- | -| `font-scale-01` | _Set the font size as 12px_ | `font-size` | 0.75 | -| `font-scale-02` | _Set the font size as 14px_ | `font-size` | 0.875 | -| `font-scale-03` | _Set the font size as 16px_ | `font-size` | 1 | -| `font-scale-04` | _Set the font size as 20px_ | `font-size` | 1.25 | -| `font-scale-05` | _Set the font size as 24px_ | `font-size` | 1.5 | -| `font-scale-06` | _Set the font size as 32px_ | `font-size` | 2 | -| `font-scale-07` | _Set the font size as 48px_ | `font-size` | 3 | -| `font-scale-08` | _Set the font size as 60px_ | `font-size` | 3.75 | +| Token | Description | Property | Value(rem) | +| :--- | :--- | :--- | :--- | +| `font-scale-01` | _Set the font size as 12px_ | `font-size` | 0.75 | +| `font-scale-02` | _Set the font size as 14px_ | `font-size` | 0.875 | +| `font-scale-03` | _Set the font size as 16px_ | `font-size` | 1 | +| `font-scale-04` | _Set the font size as 20px_ | `font-size` | 1.25 | +| `font-scale-05` | _Set the font size as 24px_ | `font-size` | 1.5 | +| `font-scale-06` | _Set the font size as 32px_ | `font-size` | 2 | +| `font-scale-07` | _Set the font size as 48px_ | `font-size` | 3 | +| `font-scale-08` | _Set the font size as 60px_ | `font-size` | 3.75 | ## Formatting ### Style -| Token | Description | Property | Value | -| :--- | :--- | :--- | :--- | -| `font-italic` | _Set font style as italic_ | `font-style` | italic | -| `font-normal` | _Set font style as normal_ | `font-style` | normal | +| Token | Description | Property | Value | +| :--- | :--- | :--- | :--- | +| `font-style-italic` | _Set font style as italic_ | `font-style` | italic | +| `font-style-normal` | _Set font style as normal_ | `font-style` | normal | + ### Letter spacing We calibrate our `letter-spacing` at large scales to provide a better legibility and readability of our text. -| Token | Description | Property | Value(em) | -| :--- | :--- | :--- | :--- | -| `font-tracking-tight-02` | _Set letter spacing as -0.025em_ | `letter-spacing` | -0.025 | -| `font-tracking-tight-01` | _Set letter spacing as -0.0125em_ | `letter-spacing` | -0.0125 | -| `font-tracking-normal` | _Set letter spacing as 0em_ | `letter-spacing` | 0 | -| `font-tracking-wide-01` | _Set letter spacing as 0.025em_ | `letter-spacing` | 0.025 | -| `font-tracking-wide-02` | _Set letter spacing as 0.05em_ | `letter-spacing` | 0.05 | -| `font-tracking-wide-03` | _Set letter spacing as 0.1em_ | `letter-spacing` | 0.1 | +| Token | Description | Property | Value(em) | +| :--- | :--- | :--- | :--- | +| `font-tracking-tight-02` | _Set letter spacing as -0.025em_ | `letter-spacing` | -0.025 | +| `font-tracking-tight-01` | _Set letter spacing as -0.0125em_ | `letter-spacing` | -0.0125 | +| `font-tracking-normal` | _Set letter spacing as 0em_ | `letter-spacing` | 0 | +| `font-tracking-wide-01` | _Set letter spacing as 0.025em_ | `letter-spacing` | 0.025 | +| `font-tracking-wide-02` | _Set letter spacing as 0.05em_ | `letter-spacing` | 0.05 | +| `font-tracking-wide-03` | _Set letter spacing as 0.1em_ | `letter-spacing` | 0.1 | ### Leading We use a ratio of 1:1.5 as a standard `line-height` value. A body font of 16px (1rem) returns a value of 24px (1.5rem), which is the main reference measurement for the vertical organization. -| Token | Description | Property | Value(em) | -| :--- | :--- | :--- | :--- | -| `font-leading-compact-03` | _Set line height as 1em_ | `line-height` | 1 | -| `font-leading-compact-02` | _Set line height as 1.25em_ | `line-height` | 1.25 | -| `font-leading-compact-01` | _Set line height as 1.365em_ | `line-height` | 1.365 | -| `font-leading-normal` | _Set line height as 1.5em_ | `line-height` | 1.5 | -| `font-leading-loose-01` | _Set line height as 1.715em_ | `line-height` | 1.715 | -| `font-leading-loose-02` | _Set line height as 2em_ | `line-height` | 2 | +| Token | Description | Property | Value(em) | +| :--- | :--- | :--- | :--- | +| `font-leading-compact-03` | _Set line height as 1em_ | `line-height` | 1 | +| `font-leading-compact-02` | _Set line height as 1.25em_ | `line-height` | 1.25 | +| `font-leading-compact-01` | _Set line height as 1.365em_ | `line-height` | 1.365 | +| `font-leading-normal` | _Set line height as 1.5em_ | `line-height` | 1.5 | +| `font-leading-loose-01` | _Set line height as 1.715em_ | `line-height` | 1.715 | +| `font-leading-loose-02` | _Set line height as 2em_ | `line-height` | 2 | ### Capitalization -| Token | Description | Property | Value | -| :--- | :--- | :--- | :--- | -| `font-initial` | _Preserve default value_ | `text-transform` | initial | -| `font-lowercase` | _Transform text to lowercase_ | `text-transform` | lowercase | -| `font-uppercase` | _Transform text to uppercase_ | `text-transform` | uppercase | +| Token | Description | Property | Value | +| :--- | :--- | :--- | :--- | +| `font-transform-initial` | _Preserve default value_ | `text-transform` | initial | +| `font-transform-lowercase` | _Transform text to lowercase_ | `text-transform` | lowercase | +| `font-transformuppercase` | _Transform text to uppercase_ | `text-transform` | uppercase | ### Text decoration -| Token | Description | Property | Value | -| :--- | :--- | :--- | :--- | -| `font-no-line` | _Unset all present decorations_ | `text-decoration` | none | -| `font-underline` | _Underline the text_ | `text-decoration` | underline | -| `font-line-through` | _Put a strikethrough the text_ | `text-decoration` | line-through | - - +| Token | Description | Property | Value | +| :--- | :--- | :--- | :--- | +| `font-decoration-no-line` | _Unset all present decorations_ | `text-decoration` | none | +| `font-decoration-underline` | _Underline the text_ | `text-decoration` | underline | +| `font-decoration-line-through` | _Put a strikethrough the text_ | `text-decoration` | line-through | + + +## Hasltack type set + +### Headings + +Styles for the headings can be found in the [component documentation](https://github.com/dxc-technology/halstack-style-guide/blob/master/guidelines/components/heading/README.md). When using native `

...

` html tags or a different component to represent application headings, use the styles defined. + +### Body + +####`body-01` + +``` +body-01: { + font-family: font-sans; + font-weight: font-regular; + font-size: font-scale-03; + font-style: font-normal; + text-transform: initial; + letter-spacing: font-tracking-normal; + line-height: font-leading-normal; +} + +``` + +| Property | Core token | Value | +| :------------------- | :--------------------------- | :----------- | +| font-family | `font-family-sans` | | +| font-weight | `font-weight-regular` | | +| font-size | `font-scale-03` | | +| font-style | `font-style-normal` | | +| text-transform | `font-transform-initial` | | +| letter-spacing | `font-tracking-normal` | | +| line-height | `font-leading-normal` | | + +**`body-02`** + +``` +body-02: { + font-family: font-sans; + font-weight: font-semibold; + font-size: font-scale-03; + font-style: font-normal; + text-transform: initial; + letter-spacing: font-tracking-normal; + line-height: font-leading-normal; +} + +``` + +**`body-03`** + +``` +body-03: { + font-family: font-sans; + font-weight: font-regular; + font-size: font-scale-02; + font-style: font-normal; + text-transform: initial; + letter-spacing: font-tracking-normal; + line-height: font-leading-normal; +} + +``` + +**`body-04`** + +``` +body-04: { + font-family: font-sans; + font-weight: font-semibold; + font-size: font-scale-02; + font-style: font-normal; + text-transform: initial; + letter-spacing: font-tracking-normal; + line-height: font-leading-normal; +} + +``` + +### Additional styles + +**`caption`** + +``` +caption: { + font-family: font-sans; + font-weight: font-regular; + font-size: font-scale-01; + font-style: font-italic; + text-transform: initial; + letter-spacing: font-tracking-normal; + line-height: font-leading-normal; +} + +``` + +**`overline`** + +``` +overline: { + font-family: font-sans; + font-weight: font-regular; + font-size: font-scale-02; + font-style: font-normal; + text-transform: uppercase; + letter-spacing: font-tracking-wide-02; + line-height: font-leading-normal; +} + +``` ____________________________________________________________ [Edit this page on Github](https://github.com/dxc-technology/halstack-style-guide/blob/master/guidelines/principles/typography/README.md) From ce54e0876083179b9ae2cbb0ccb99f58618ccbd3 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 7 Dec 2021 12:49:04 +0100 Subject: [PATCH 4/8] Update body styles --- guidelines/principles/typography/README.md | 120 +++++++++------------ 1 file changed, 51 insertions(+), 69 deletions(-) diff --git a/guidelines/principles/typography/README.md b/guidelines/principles/typography/README.md index d7d60a52..10212377 100644 --- a/guidelines/principles/typography/README.md +++ b/guidelines/principles/typography/README.md @@ -18,7 +18,7 @@ For our sans-serif `font-family`, we use the humanist typeface Open Sans, design | Token | Description | Property | Value | | :--- | :--- | :--- | :--- | -| `font-family-sans` | _Default font family sans-serif_ | `font-family` | 'Open Sans', sans-serif; | +| `font-family-sans` | _Default font family sans-serif_ | `font-family` | 'Open Sans', sans-serif | ## Weight @@ -109,75 +109,57 @@ Styles for the headings can be found in the [component documentation](https://gi ### Body -####`body-01` +#### body-01 + +| Property | Core token | Value | +| :-------------------- | :--------------------------- | :----------------------- | +| `font-family` | `font-family-sans` | 'Open Sans', sans-serif | +| `font-weight` | `font-weight-regular` | 400 | +| `font-size` | `font-scale-03` | 1rem / 16px | +| `font-style` | `font-style-normal` | normal | +| `text-transform` | `font-transform-initial` | initial | +| `letter-spacing` | `font-tracking-normal` | 0 | +| `line-height` | `font-leading-normal` | 1.5em | + + +#### body-02 + +| Property | Core token | Value | +| :-------------------- | :--------------------------- | :----------------------- | +| `font-family` | `font-family-sans` | 'Open Sans', sans-serif | +| `font-weight` | `font-weight-semibold` | 600 | +| `font-size` | `font-scale-03` | 1rem / 16px | +| `font-style` | `font-style-normal` | normal | +| `text-transform` | `font-transform-initial` | initial | +| `letter-spacing` | `font-tracking-normal` | 0 | +| `line-height` | `font-leading-normal` | 1.5em | + + +#### body-03 + +| Property | Core token | Value | +| :-------------------- | :--------------------------- | :----------------------- | +| `font-family` | `font-family-sans` | 'Open Sans', sans-serif | +| `font-weight` | `font-weight-regular` | 400 | +| `font-size` | `font-scale-02` | 0.875rem / 14px | +| `font-style` | `font-style-normal` | normal | +| `text-transform` | `font-transform-initial` | initial | +| `letter-spacing` | `font-tracking-normal` | 0 | +| `line-height` | `font-leading-normal` | 1.5em | + + +#### body-04 + +| Property | Core token | Value | +| :-------------------- | :--------------------------- | :----------------------- | +| `font-family` | `font-family-sans` | 'Open Sans', sans-serif | +| `font-weight` | `font-weight-semibold` | 600 | +| `font-size` | `font-scale-02` | 0.875rem / 14px | +| `font-style` | `font-style-normal` | normal | +| `text-transform` | `font-transform-initial` | initial | +| `letter-spacing` | `font-tracking-normal` | 0 | +| `line-height` | `font-leading-normal` | 1.5em | -``` -body-01: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-03; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} - -``` - -| Property | Core token | Value | -| :------------------- | :--------------------------- | :----------- | -| font-family | `font-family-sans` | | -| font-weight | `font-weight-regular` | | -| font-size | `font-scale-03` | | -| font-style | `font-style-normal` | | -| text-transform | `font-transform-initial` | | -| letter-spacing | `font-tracking-normal` | | -| line-height | `font-leading-normal` | | - -**`body-02`** - -``` -body-02: { - font-family: font-sans; - font-weight: font-semibold; - font-size: font-scale-03; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} - -``` - -**`body-03`** - -``` -body-03: { - font-family: font-sans; - font-weight: font-regular; - font-size: font-scale-02; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} - -``` - -**`body-04`** - -``` -body-04: { - font-family: font-sans; - font-weight: font-semibold; - font-size: font-scale-02; - font-style: font-normal; - text-transform: initial; - letter-spacing: font-tracking-normal; - line-height: font-leading-normal; -} - -``` ### Additional styles From af33cded97e092b5e448122f810da56130fef040 Mon Sep 17 00:00:00 2001 From: Alex Bueno <44420072+aweell@users.noreply.github.com> Date: Tue, 7 Dec 2021 13:04:10 +0100 Subject: [PATCH 5/8] Add body type set image --- guidelines/principles/typography/README.md | 4 ++++ .../typography/images/type_set_body.png | Bin 0 -> 29755 bytes 2 files changed, 4 insertions(+) create mode 100644 guidelines/principles/typography/images/type_set_body.png diff --git a/guidelines/principles/typography/README.md b/guidelines/principles/typography/README.md index 10212377..d8bb0b16 100644 --- a/guidelines/principles/typography/README.md +++ b/guidelines/principles/typography/README.md @@ -109,6 +109,10 @@ Styles for the headings can be found in the [component documentation](https://gi ### Body +![Type set for body styles](images/type_set_body.png) + +_Type set for body styles_ + #### body-01 | Property | Core token | Value | diff --git a/guidelines/principles/typography/images/type_set_body.png b/guidelines/principles/typography/images/type_set_body.png new file mode 100644 index 0000000000000000000000000000000000000000..6865a11f2122433c07ac77fbf8b243261712d359 GIT binary patch literal 29755 zcmeF3XH-*Nx9^h>ARs05-g{B$M0!Vh73npAN>C8#0-*>fU63N72m%(Qgd#{U(wm?_ zl#UbysY;P{cl3GQb9LOWcib_~xqd(f$=+FO&9c^>zxmI7V?%9nQf5*R2t=-PS;G_r zB4`DHz{W5l;4fYm8McA{pgw9k<}l#jT^KSJ1mXngXsDV8*stdhr1AFCmn|~-pgz@l zeroIne!SUd$NyeC%(~cgappnjrNF8e*oGIu!VN8!9^(Ud__$jpQ<~12{58mTjy7A) zXi(J2XeciynB=kw%6{OLcha)SvgqW||d|9T}P0u8A%BCDbl z`p+Bxxg)8g=fAi8&r3g{U_!4vMmG-Azwb`l`th%^fJwfSKuG75#0Qj~{y9o8i6FY> zKll810;@Do+SU-~%#h3fHJ{&aG6s1N{5{nX0hl2As8j4H`R`ZqLE}XK-t*t}$v1)< zgZA$`?Q!w_y#nA;^8YN~KVwqK;An05KESS@A>ab;YzA1;3E zD?nHw^Y_O={{MpicUy4&nEJ4@Qv>_9vA>)vjc26Xq2)GlkU19+HmT81KsTxLOZ5JA zoL}Bn1jK?~p(#i9b&QAQZ_bO~(6S3VH5o?F>M70rfG)|GQ^ZjY&{A?g8Hjtns zGfuv}o^4N3KAjxk`?xU$+(d~?`n|E|#6@}DKQ8&s23T2!#Y3WbHuT7INjI0p=_zl} z=M-%UWR&M$1|}i`6K=KU+ppvzLwiB{U0Ot$`W3G(K`50D9P2(m)N5yQ$Gn@m7c{qS zq8e8ro!^vqx7YV~+A-c;OeOQ%tj2uwMeM6*?BA#TXYaWrUgB>& z{ki7UxZQQGn>`ryT9oSmn0iOUW;081j^9VD-EJK}$(@oWzm=No!1eN$Q@Qnu4vP7$ z4oXTIeKA$Zj2+wG3#g(8EPzc!r7r{5QGfB(rpihodMig8@o>G1O;V`3`Dov5g}q6a z`K1g8is1E1?Ss#$MjzRiey){sOkf?tPJWOd{X9L|jOi7~Q)oO`h;!-_DnSJ(5ZeaK z-+Sa_@-_T)Q#J0wn`@;YoLjbMJ1`RFaXbHMY>D63y0EjOS*QJJe@YmwuoUVQp9-hT z>XVqnFw-@|;BP}7vg*qnl*(kOhH}>fmb2X3?~EBt3=}C`{T*H-)PNn*9Z}PoJrO^a zWje=!N z=Lr6?@Q4zy@qUw}uN0_(ZV8oOsB1snY$y)ai#{yQzDbH)mir{=TBOk6&=Q)XShE;F z=oNTJ??OFtAS(CnPA>uGeOXrSj*-P(AQs*5U!wH@JX6r}k z)kl{M^%3(?^DSp5<&a4-uME!~nqS!~KN#<`F&-J^)_Nc#iC*6M9RHawJHBK0Z?&BG zP2Sxd>;Rl(`nd<-2-oMa{TJdKu1hUvx)7Zz4~TVidKhB|-wd9+P{-N$^Xp6B@|R`~ z?7@oQ#$lzSD3)7|;_FTOGxPN;x#xTa#I-G5A6;peTPvk$3A-dcKDSXlX6XG&)T1K9 zA@tA-aC*OZJCj@XflH49C~&Id8#n8h(kt(rywm0&@8$@*tKj*Gu}TTb?zntqJ0Auyp^KDuIuvLT%Paw{00 zXkaFy>u=V|=2NuU@AGw64J!rPM#{gXHS4_Xli4o!$^n`9@PiHD7X%CPHFkbDKCJr% zFUkYQO#zITnyp7eC$(PZZMV}4H-MWN+D@E|>Ro)>O3cy)EOVd};E83Qw9DQGUbXes zB)eGzq8ol2FvifuH!G;;t^gb|PYc*PK9I_a=0mQS|*Jp)Y z;!Yt4z(o!{iNXXwdjr3_KfYdkf3IRdqQ7$y7{}X8lkT#rgw_Qhhq2ecV+Yb_z|6Ue zjqolu|0xx^u5p`Nc72JXs+&#w_N?wGvTP>>AQ)@6^3IM0($_O`8WMh*N-<#dcrtC` znOJ9o)?Qs3o+Q}K+D9Z*1}-MZ64lZAb#D@*FyhugSQ8)Its0a$SD2&}WIL993$+k1 z=@j$!Q1@P&!tMY~p8rPu%4r_;HOsBws3RItG?R~@P2zB4GvI6;iu+SE-#8zo?y|

~)vF$_5OyR71Q^g=baVHLS}$H^BC&oKj8@{^DSj^+mkq;I&=RXbu#)J>|x}z&)HTd^S`Ix;60%cftq$g}8Nfo0+4Q2Q0#;rYk zzel>O$BxSWRGP5$c{}Xb$&u^d!xa;+w)D}XoE%8=cW6DJcjq2MrT0HG!+4?oH)7c! z)G)GK7Ao=4%RKiIWM>fR=)B;KdXs0$z;N%e7*Qz%9n8lR&b`?kl3!%azVYHY^Il3T zsGW_9^b?Jdf_N^0!{qGk{`2=d?(RNcaR(3Iqpc=l_nxwJb z?%^`2kj$Or33H4M@mdF#XV&{dtz4gAVW)T=u+J32)b7yq=y+%b=CS&|H!-QEK8Wle zlHauT@sY}X)JpDy_C|9=901o*zASrl1F@PP$sL^7E7NuFlExXyftNBWu~O@92lW%p zRsqG}6gI9^GaeY)&g=X-(e}`C7*zVt-Bu0J2I{af<$^V;KQy)`L)ujg01NDK2%hLj1qaKpvYko zTXFlz^P3sdexJ@KUcowaB?f9a`Zgaf$H}x$Eu4wGsvZS-ygV!6IsNAZX&eI_xCRFb z(?MN<+`$n(;eu^}yz;6Yy-QWWn@zH0;+^pAD&B~mp@r7@c{ z5E@9mYcP1HMra2&mKQOJ5R`&?-yS_wPLxlSYbVhzwl@Q1$kqix0#XfR?t|~I|5O{l z{gAKiQqg>X#9pb0ft4!upwxiZSXE1K7EX%vs8sLd{8o||`T%zov+70&oKo7-I?eY^ zt-u38t3?_1a&9tIwKdE`mqg)#xSCSLPAn&OKng09D4EqL~hKl)m_jieq&(<)qp9yx!giGu~aSnIN-JoKdFo~SrGPp>i&s?rVBuuE2 zVIgH-pP6_@6UuE$|FD$H7G}X24;!ku#IR?)>@oICf36pSf1i&jZR zthBjRR^8<}8g2+5kd}!***S{X*Jc)ZK?^V2n)5fPt;Df~^Feg3Hy*ME&tZ7chasAp zG|GD6gozDnWeo+Z#bHpj9z!#eHhB^07hC}`nJ4G(hWwLo1a*KDIkmYFo5e+fcr%S? zl9lw!h(s`sLIYw*KtY(rtV`Idkem=a7fxKzF({6pNkfHhzhy81@t}YNe?;MaPoFGN zHqoV)>ch%QQ}}=sYaliphaxo;r6`8f`KFs1fp{w5#a05eC8^uXlnD>7VNGz`yutTI zR2UtN4z($kaVm?F5yw} z4X}MI5<3`4sT9!dN%h(#UR;Yz)Ro1xA7`Ze!o{w=pZw~Bc_qh|LLG9 zvhMRfft3q0?k>b3)*wnOfs@9{HgkpL0~_*2Rxl3xrMgU!WbU{QS+4F1xr1AZR0BNEZCr1mOb=R0BzN+gX1G7MhhxZTyS+cR(_Ph<>$?6 zxf#719ho$y*)h-4ALG*f)41=<(xdCm%c68^VY!$?U%#{`^CL(?8donQk*OKz^$h1% z5=RM7#1bx=T&!%8Btf5H?M57SgH;cAt(nWY$C584S*aVW#VAYN3e~lAu{VbpSTNWO z#67(OSkU_o?ma0uV-QY9)%8UiO!&9>%@))MQB3z}ZSEv`=6&G8^VPF0;bYMiY@x^D|Gm zITv(O%D;b)FKqZYfO_5e=7>Kc*;SwpT`_ph5h~yl+iK`Xe!=5`lU{3tPwy19*qma@ ztu#S1wziM6C>=y&Z-oF@zxdLlm6fU8YDg<#J0JsexszFx(R31KzHb^+<13nu7bh+`RVFxiVA zi(hPeBZ~>ZXfiu9iHA=bdT>&yAx*J{X^^@f(eH6~`MVHCC+&K1z7kg!k1(r!?P9@C zg4&(pL!^#S@D&1F^j5)Ly6)_BI|BVnN=0e027SD{=SdvLLq~}j)&YlC)+i{tE@NjiQojV`5 zo{yir;YRoGi4RTyCx6}tArhklU#wqU2AT2a+D#19H}b&mq;)QLOWDbjIL@fUX5K%5 zdMO1DR5scmGW@M;x!y1mcSZWssL9Os44HN1IyC5m9Mi4b?mrTawexH3b|YyuCTu-! zU+$^hIc+!W$zPG}>zgSbuUkGcHv%z)#Q6Jdq<_;p%{|=aJu*~@z;4n)c}7&0jAan* zw(gh6vvBK^-XX%ArjC(V|MBh;SHi<18ZvHmeMh?D=SAL^Aqc`WSU$E{=@a}5G`**D z%+jx8Q|{;6Xg8R9C+n73lk738c%;bO$h3}>glA195&^Tt-+LTYQ^${_1&UfutlZF>|VH&gC-<1nCEhZ zG*;y>eHMD|)7wD)MYFY+uT4p$y1l-=_gby|vHo#z-Oct3Vwox;Og>0y$XDzLmJxUiSIkBlZA#3PQW9Hj|b8vQPmr!zEDUJ6KSm*MEfC)SKTw#$%A6~>~W z*e@tLUFt4q)2e_Bgc!oedMovJdA0fh5M5VzZSLd*K@gADDseChxolQ0efW8#OwWt? zsbs1}_p}6)pv#@??#ZRZ6jWI+dC@|Tx>O613DdG;SDTO=#7{b`wOKt9T{_NV8c_5` z;3;l`9@}Ezs4_8^oW-kmpV2vly;g+DM$-bqN6iinzA9>MM zV>(&fX96DjeiYsjj9mTZdLT1v{gLQ+ws0m^uk{q)kU+3LJ&iV_Qxrnv2I3^vu5Zt3 ztk>E#iZf945^O42{osah!Hbo;iVU7^5=haFc=U~F?F#`&IYV;}kimqQ2h&LPG_nh*7>a?%w zmlLGx;>S6JlktW#ccqCNeYogKD7MdYS&fe%q~LbUp@jt~@nRu{m=J2*6i;iVPVk@K#_QI%6K)HVdGB`ZfeuQqN z1KapT$1s4YnKy-(Irc82qv~~*OqBGdf6A6${Z%>)pD_dq>TW!?z>><{SC4gxQP&Fe z=!>oZ!@1GE_e(j{5hlzDyFKoRJ84F#)A<@S0?BN$W;_K+E~&F8m*R*_RB!@WTz%tS z@l|V$w5_jXpSlrx-R7ohLFC0#Ss7w3#EHlclNYMsQk_l2Mz@oDe4tFaBE)U@2_s1g2a$<`u-ViTzM+7Wc6 z9Lr1(5i53Teo2*_0ppj&wlDQ_z>i{`x}pbUBVyKSbwNCq&+Sz~Z7lByHl>=O?C?&g z3)~sTK7K}R*;~$JFsuPW@3UHkb+WVMiStitj1SdwOt@TdyoE~`tD|3Ph59kxViqM4 zEZ(f#hzIfa#2yq^XM@NW&3+lO5J;uN4T^+r74D%%jv_EeiQ1YM1U=2%Y1b?G#B|Yw z!Q~T{XL{&!RQ(OnyYLZcG3=r1egp%>#^vY|Fv zKFn;9W=8itu3}smxpJ{<3@p>-CCay4Io3ivDK@#fibYu0#Cu6EcM7UL;;r6UNy*~P zf0yM?)J`9aEZJ~lR->?KP2b_JubL=|Aj6;2n};9`c5#x{Wt z5=}oF%xXJktN9uVz@kjY+1j&uxo@sKV@yUt#G+UCYEjkz#;f;YB^1P}X?v zwYxtEnb@IXMGvQ^y^w+-)mM^$!34QjyzEYUlbyb zu#|j6m4`e85u)t1wqbgti@Meot|9)GL?eAal{B`-@-M`&AOH8TDVa$~XAv z^!1y*&7a+3e0!XQg)hL>pJyXs*kQ^2BT%Vc?9y0Aqh88@HK1#mILimpPX^P^`9~A2 zby@ZIK6bD9#M93h~y|q7zwU%GM%&z#( zPx05g#I}HPBQg8Y8-KSLbH7Gj9@{0YF8?Sht!sxju~*!jXa7Jd;o<5kUgB(uid8@=3>+9~=rtUz`TA{XV?^gZ}b2sQ}Q}B))(DkNW@<(E%o+bZK3w z`j0_#hBs>i%emh*C6N9nJsc4Lo(7ISR~(J}Rfhk`4iKAJ7N0!JKgohUtiO-q)o3kywA^~syveRwo&mU`7 zH&l{@fn~lqDn{FC0Qr9Bj}^_A0xWagoOEv4II#B5%fTe(S!kv?;iTM<40LHFnc}~_ z0DrzMd=xNMkx5|wpMU;!HKeYu(EU&M1kCo&XR-_aX+jmq6#x;I?X2Sb{}>`rIT8eN zhAs0W;=kFp$|JzxUMd9b+5PEPXs9m0?=rNO!vAtaUSn6lr+-iB&+-0Gp9aB7E562i z{A0plJ}>N)3Bk6yU`Nb^OctATjJ(Gc%~%k3bxZ0m!@S}H{ObI0y4|;7?q8;m1CrXO5ysG?Z?Cr&lay+fw7>qa z?Cjm$d*@$IVduBMplJ*dTnZ=O$L4{GH@QoKw8fX*k0-6bLS32yW-y;_bCX0g!ScrQ zqV~rgWw`Ux%Re)0Z|h`w*5cZw#`MR|?{5|S0B|7N>!Su9#UlXEuyrxHvl?jr_S=#3 zKnzVs)T}Y^{mB3U6eA*9H6Y=;ZR`8t3ZAAtfVjS@87Bn_j;fy)6##D4fd^QI3frBg z5hwQ;>|=*t&jhXAJ3HNPDayO`;ks^uTlxUO_yZ}n>yKk=y~oBRxbrytxDZ+QCmAwf35-Cu3VSH35!Q+!$7@_ao_ zFB#f@{2D1$TyDANh4@(l zL=KN0ujcfcwdE=uZ*@4$-(#T214tfdR}FkO1R(Vz`QNaB2ZWOXTiI)z;|J>263lJg z$(s$|9&emyTF$=tM#wEi?vq!d(D24Y`Ro~{Z`f+~)2c^OA1r@p@8xTD<(Ys*!aj$V z!{ux+d*yT$VlYv=3UUCHyhwmzvQ^dewYXh?M{vC4cf)vhZ2?PJtC_d1;Q?C*%8~Ou zJW1vtcdy6bn+cwQbiab+nGyb&LvIQ^5b$f)+g5!8$Ph*Lt>(bGqm2f6-{)h7^5@ev zb{=T~DA{f9tbvlYe^M9qqX(au@+?(9(JXa~`LQ+!-Xa-n;LNU4B0Z9Un zqvG74uU-I>h#>_00G$nth^aCyv$EjsW8a!d5KHQZ8<-AXWx!o6srv)U0RR#1TVFa{ z=n2r|Utn>6CioVkYnqAN1+zD)EQ)e(4mwxXAh$Ih9mT4eU2hfDX0zV`+;12x&gih%XX?geYdah+QL`eob4 z)4C2)ky5w?z$aC-auzQ(A1qjgp7vjCi6Wp>5Ss!p*E|52<6ScW7G^bxOf^_Iw2fJ# z)+iX3${Z`fbE1z*_yRrYRE((b#Ef@0+b_UwsC4-GU{jkTM2bxD`-r#QcPedGs%SR9 z$ulNW2>AQGU~f^rk%2rZ|6We^J0q&$i@Z2VM2XwgttUGqfQvD2| z_|X8_7S)&g@^l_Z6-;x-z7uw`jo(N0<^fBTHK?qdTIkdQ^8FXfj}FwWzSmy%#U! zlYE0}l7UdDKFnl`OzHb!qWnheo&*57H2LGtRtuBZ8^~R9g=QJgL8>PC^blB2U=b*w zg_gA@)x6=s-WP^@H)&_wzbCn}9S?3&TNhsH6`z!E0S?)K0`ioZCU}caFh3Vd{~wOVh7q8I#%++ z*wbxq_gb2k%F4Mk{0nxA^Xz| zlJC+a7BM`l*V1k+U;yIU&6X&ktX-NCuBk8r7i(C@>ZzCuaOsRdx6z9&>)3uRt{q^T ziUKHheus{c2fALV;1uAyaqYz6cJCj0<S7S*#p}S$AcuZ8J@1$8uS~K zo>Zts8*o}O1$R9duB4k$gasUM4pB^I4k@<)zQb+jk)vhtbLW*V^l-E;|p2 zzF93W`OGgL%~Pv!DF{n9KFZ^D9f)#w%vk&-XBw)3CYU|v$2jYE2Rjsa3bhyYCy0Z{KrWJS7*^&m2MLEK5}MxM;(EpB_UJ@ei-jjQ~%~5{UF0w{q7c zrdNH8wNBI7VH%>$x~jBDN$yS~YQ=zbPk9`JzWBBo@!gQ=^&TU?u!E3qWg`N68~!^7?` z-P=h2E36)vp9P{~wOX|jm#Sk$CCuVIMWA9#Nj34EZ$%0CjwU%@}cIwrmqFTXl75TecI`(Dr( zCi7GV;I&$9kz#6yckp+|^M_`B{y;Yf>Dl3Mm@^#mE-rJ3h#&iY>#(v-FV`KNA5cNOOhJm&h%~f;93~&PB;=OURJm8KybCUbrfD$^MVPslUy_f za9aYLYvSS*U%Dl?+ltd|pa-mbpRfJ#;x*(~|7qWe%%bI-o(4*rd28t5HFN0-7Wr^i zsPi7v!KFtu#x2|F5CNrVh8T2i~3y-i;oy;yBJlYT4Bh&vrl zqGvN&9hte}LU{FyXfo7#mMzWx<&r1p}^G!xswx1rdw(0YW{YU^2 zwhR0qpI6^Y9`H61p>F-+4wb13W#++p$L4-1$x|YtzsA}>98liMDS~*gF+mEBM=Tfx zT}`f8p6&=12q9#w6jqXsl530wEMl322p*nhYoWRrEmD)10RYSoX5R(6$RA#v;^T*6Gcy`o-yUtVe~e0!9N8hWk5 zKtnPM7j*u4AM zx{ph0Hrj$Q`+m)I2^VE3l_P}A6*=9guuwS?W+x-5&=R=uoE_-(x|UDcwwW(Fpy*BH zj(gv<$Ezj-)uLlt9vUMpC6YO;54BBuai;quyd|#U71p6?{95U;?XL%qAO`${M}oT| zSf7M{h?kuB+2_Mp_7&y1L04dZ5$ zoy?1DnzW`5_1zf5GnjFvSQDT=uW!<~VDEgkPGJyu z<#D_SclviRS<&C_%~S=Y@Q zDFjbU9UXCv**#q+l_sw_zl;q9ykvkFy>5Y zt@M@gbM=kv6&yXMb>moxdo{W1($19{f~K5wr;JSaN2*Or+665WlXW6i4OT zpT<}sjnlEjyjZI;?dP0DBT}rA5(%hI^$wid2?K@EyDmAaPSUv@qKQ&a@p1B~?|KwU z(a^gvoh}~s;`2I>QbkEAh<{A2*Oj!|%M+`E^!!RPXZ|9Nz=&h_q^}ID^%(=4e%=k4 zX+2L5(Bn?cAG8nt_QC08Y({B*IUic6+l?S+T@riBv>k1%cCF$$C5t2%bEX+Gc=;&(G2Ly614XB9G%ojWEiXO9gufKjfHY_amqn zj+c80IVs2>LS2D4MiivI_GT@5nZ|xw8KZ+y$7B|izv)@Lf^X~sI<)+CvpKmIda9Fi zib&DEpL@3l_65KB#UJohs4mCVJf5_(u%)`}bb<(H&|UZbOww7gk!}!w!xdf6@rWet z^@3=XIEyoZyTbi9#}k}I18}DKY9^cJSskP)iK^B4aIPpy-0*tY1OU;%`PFOEYplI6 zZegqb>|u*ku8zGx3teriPkmE7pW;=tZN2SpyrOTdP|xJ1rK={AbSW+n&k)}Yoxqz*051^q%Q>vDj=jt1ycQ#PH{y~X%IjC|5R5Pi~mu_WJN98+% zvgh5QDF=$6LKGbl9ih;c?jz`8M}XOU+wO-O$Zu3z$Q=@9lSv4kBnvoKWTJwq7d{p8k`GL zCHg++!2>m32PDj#FT6&bH0RK!pVs|<6c0FuvRznP#T{m%L8>M1`yM<#4tW2O@bO|# zV+V^pa)abHCnK(vq&b$pu5!$qy5YKu6jW&weK!l066@iH`Qq*l73&v;yCOfBX~CV+ zItBK+tnHveA@0-CRyq==HNpgzg$5OgpmWZN+X6kQem;f+Rar)fOCNDW+Uap{1uxmrEg=W4;yNAb$MeSemO^L-)$zhU{aQSZj#+-G8P^vLoR62Npp=9C?)f-I~XUFxwYN_Ate_^ao))0g*4KaoL>u1$u#83g{kQ~juckp%ulcsA$ znvB_tEW5ZXQG_K)M-w)SpI{}BI;tldM+%-l)0*RI-{pAqdAm`O_0|uQ&aEG&^-S30 z*{s=5(z2*j-b^z6W+9Wy5G?YTGGU{Gb@BMSU1>rhM`j+6U)BVU)BNhu*yT=NUku9+ zfiQ;|$=EPd%`>hC*Cq{c=`}0Z6J-!Ll18UKlNKuMjnH`)#{3EB%vAG>`w9UX5`mit*W$k z{@+02GJdadI|rQOUN-1mlFH6DzJR;Z{aiA{6yzUmam1Pp)qR!l@?%NK-cu&Xb#hrN zm2uO3a}VCe;1?V-C2P~oOiXUiO6*b@d*mr7@I)YZ{uzEz06z?HjVuECPc#Z~woQ1h2^+4c(P1$tbiu!be z-(}`xe93))-b-ohagWTJ_1LtNqMJycRQ5(J!>SZmm$~;8+x6&2MD2_wIs|MfkPz#L zp`upAJq)P~WIAG)e4&oEs}ovuyXq0~B28ug4$o2lRpCk*3`jzcVbb!Px1rVRe?JJ% z1tfzV7b&oI@dO0+dSPdVfxK>gD;^RLKJ ztO5@}=?{tamqb(qMf4n&MvA9VljkLx*VC-4kM4A&D*ho*1C(IrfQ`roRwaMo9(>uz z$TR-K3wOs35smWp*H<)}690e&BcgyIs-TJvzZdDh)Q`ddL$JN?giZa6T=4$?EB>FY z)zoLPAOF{3=O6CD`9GZu{x{*YieYnrI*UH^I?}8*L3EuPl*-3&pwOR`Ztw4Chl=HjhVjIUsj1L@`XjM{ zNytQj+#RmjJQRZOShwd19dqH107NpKGEY4-{&;VAvl<>2@fhHC@%l%%rW*$S(Hx-x z{ZDKnM_>M%1%D?dJG{;tQoW&2B7F2nUjk$6DJ=Q-7|x5>=6V}q*HL>zuj zUF>rHHaY`vPO%}xVw6*GMqc5+y#Ucn#Wyo909u~9mxlnq_*AjRdIT`m7yu);%vXN9 z17ex9^BI($2ZU4Gq04!!lO$TGZG=-l0JTX!R zh*ZWwjW){fO1ThvjgqUKDBSG*>5uZTdjMosidWd_nFn-Jr1%#8vAvNO=LW>PS)IDs z{KXlfW9dBs&8I&RbUdw*c*D z1pxD60N`2UIbmwqJ5U0Q})T=mq5d&Md#A{jYIi z6V$D#`Vu+;D>?oErp%JV@M6t!u9xKaS=Rx$qCj2wmu4_Y{Sbi8_W%%qAd{JN^j`T2 za4=cYbU@EmyR}0)_w)VX%*ywiVE`@!;aRC1gagXh6I(kPxEW9WUVbmtNQor=8$e)j zD}-C-W(IUafa0oRF5+A*>8);Gm>N*0cgO2kJq~Mv*9e(nB!>_@`jUfE+f+8^Ep0-Y z$`T_XbuT|F{Qh=^pUl6GEdlbRjuNDJY*&YuiLELESk{F;AcoB^HtX{E9{1hrfa1v} z6R1OWbg|qj1-egaEi9exRcy7Nivd)T&lh!jam@hfYR3Z;fW0PEOghKC#a`?4G;8?! z;$=H9IeI+m6$2E2UFf$OGzR9Ag+QH-69u5j`R#5FN~m?B+}CHBPc)^($^c2J=Ufnj z!(H$0LnFl><^vitfU|A8<0Uw(yLh3&=^23bNaZ&heeg=wg`rub&vQrM*`U4~pp;A( z>OVge`#z#hIij4%$BEu5d79ZG6f@&L8&WuU0;sK=063bEw|z{hu%%K51an8cTW(|8wcQp!VYfwz@a#lWOm6@dbz=@abHv0F? z_)zRGV*sC*+cJ!hlz|F-jJw#(_$|t1o}k>!NU^2@!s~GkIxK@jrUu-a5fI3^V_J8z z_lX#Qmg!df9~XD}FLFGy#QA;lbZJd2H~9qU7MYEJ=M_}j)gg7;$W z^u^ks-U^9|dy|Zrj{4TpF+dH{r5$q!tl%Q+GJxT4HBZVeyM&gU;kC`BK%)Y_apHb$ zDzi_fOA-*8XITv}`{g;jh#D`CtY{-*i2@qf^LYr4fn@g9yDOSWedFA%F8P`#QC?*J+qAxX98oI^`M`cekbNxXqkVf2|JGJO+Z8Fv?h z@PbR)Zp}e5ufRw^@8X{0JC3jbG=aBh`5Ej3obE(XWy1)%(r;hK*ke`%as#;W9V1R7 zKqpK-0j$ExEsKxz86JEq0Ip^tXwu&QSWROWK=|;}quH~rwc@?GNXlq(*{O;`VeocS z|Aht(@pi47lWV#nuV~rAHtyR|Gxm}?YS7Evo5p9TGlFOr?~zo+u`t%Voiu8&1`Yt} z7vx(3I_d(kCAsh9CUFS7e7L|%dApOQaHPGygmn+k;(*=*&-FDR#%cSpB+Hx+;T1MF z>s|5f2hL$xKC!`3p8$0+lgu=rFB*Y2;Is&#YhfhZoX8&Nm~sTP=4YfA*JZRZUO4P> zb||}82}HyhB~4ia5Qg`FtyL*h2G}%W0BR~p`u;t9Y$~aKXnV5#q22|iVRd8fYMA4z z`sK&lj2d#o-`me!?DW=KX{C)G2pQ7Uz~}#M8C%NmKI@z76c(_T=AzCl4p;@Ab1Z>@!uI+`g6d;>i3%d;KC+41h;v2$n{AWW~cWnY$BUIuy)=qHXY z0`Qn1{~qP;{b86Nr!&?5K#e(M(3WcpB9F?+9|ttORQ)SVVe5(BKruz!v8PHfw7;cL z@%J~(ya1$aK!Yn@*p@$uhhs~{h*jiMFJ147o*que9z+Fw>g6+F-(slZKwwzavm_`^ zfYe0==nvD&?bNDA;iicA!0uoGpx&o2?}Kx-db4|5T(>0<$PAue<+8r<=$bGdO)7%# z0&tB`!nJy{`RKw;m3u0kLiXNo=?Ygl)wR{D#o6O2BM_gw`lyU>(r;tuH0iB)-R=Q( z<6h>|73H)05qz@`L0vfQr(Dht4}|3Cz4dElq&pRG5>Q8K_R@OA&&ld?iK?Pc15-j{ zjq!W>V!fAoBUd}T`#boE&m(3|4I$P&1P~vDLys_C@y|A~5{hK$Ev1u|c%zPaM_%!EX0vm0o@kZ%MwVuI37D~BZL@1W!aI?H-+?oxQ$pDqC2s!27QqPa?+Jr{D*s9U_ z{iGQr`D+`zsR)j@)G6vhJV1tdty9q)E0d65*s(ImKEZIFMa}4#XjuDUC$3FMOSI^= zF{>>$EKpTVCPP9AGx%O`OdZPGP11G(=#t;Yb66F9My+iBW7+t+f%I;`R8wZP5A4L0 zjzy&bwnuE$g3@c~Dt08wOW}KJUh@)?i4tm~ha#J~1gSp3gi$hAglSFYEm5>j9x+>8 z>lDed(9Q4t?9_tqU+5N33*d&sC!cSxLj&MsusfY>+;J{25GS^d9jA$6<3f8~2J=K| z-Wa&p=YI=m6l!l9I5($tGS7|V>n$+5G06Igj&}6{$nDfkR*RdbCj<*&2kW3kToVEv z;LyuJN0~6h_Is+&bCo#-iTO!8lf@u&zGNzcg#Au3$pQE`v?y;udfq!&wYUhzT?R?|!zW{}Ld?zQ9D{Mw4T1aZT=&Dq_i4!H z>MPvqsH>j@am~V^M%9b1aK}AozJlZpSmx=S||TG zXE$a2DpbDC1$F7@XOo!}M=u&_k!cf`5WiF9@li3)BLf@KTP>y?c6=$M759v|2Wm~x zv`kHCV=DM8c|Rj9OU>LwPN!quWnva(A#iCsmbtGiZoJex9#YrX_JOAL&@R6U!WffL zIS@yU-9w_W81(cc&-4Asi2pM!4R?b_u zQ77^R8^~OeP81M10QR-FoJQ}W9bty+9G{F51}@ePuyR*j9*MmaInARFZ%sq+^uUAe zYNc0Q6Zl#Nn+rP8@rk+Zmzf$~5>)u?5moEf69vWlI8?9Hga)WXS|oP|!f2xFV9Hb2 zGsV~QP-cI@?jFMB+r_qs^&g{w-@$G7>U7E5bhr3JeCe+c!Njo`m_rvtwLdr(YY+9V zt!!h@T2Y9zmVB8Gy7_^%@0{aI1JV+QO1^z_nRS;(1WmO+3Ek62b4qJmbRAHTGr{Pj78{Cr<>QEw2)aLGA(N;4P^ev9LbT z%7$tmSygI@WE~I<>PdXAbiwl!D!zVeUNlKv#fG%Vi?KkMF6!L820ufk4*i>F-lEQr zN?mR!(BMQc$JRw9u{Kcp1tDoDNp^_I1wAy8cbtmANC&f}hAQVx5x3*s5M-n6U+Kx{!`yr_!GRhv7D+W_R5gZjkI|hl>%!{c>$qF zx0@BAnSC4)+Kt+#JROE!@w+6P;>DAQlk?8D0Y3k<*ib)1;By_hBarI~V|k1Y1(+Bl zU>b*17$m_YJla%K!sogfBb309&eaon#p|wD53sM0w5u}TteY=b%o>JA#Ke3ab0P8G0M?F>Vy~rfp#ptaTE$$%vfRV2uY0y|n zCs2q&oN0{L4|XGYTRSZ!fm`nZ+DS5x8?1jxy4xw(oIF_(>3OO45dc;5Ng-&o{=0o* zA5oe6G)b);l_iaj*E!a%c#tq*?@wM*dx#Rut}z*nV^p^tfuEH6>bnjd$9qW1TApDf z(t$RNgrAXhyo~6}QB)pjRF@T8c;3a-x#{;VbYztZfnldNwLn!<;f{>MMnoA8y&ycL zF~v?sI*nA8t+kUeoZqN(ej21_3^Te!cwZ+_)V(|Auj*oiEX9RqRvI!H<;IYIgeR?= zsRW9-XyqsVXavM+*%9I!jq=xBpru?Y!`(MNYA8t z>8W-%vbB;uG4OgQdSPO@S=8b3(#BKu91g@0XnPf$#<;aJgoQVWVXr(4Wm=?|*-Fv%&{b4+_!-VQG{K-)9#oxH*jWD|R zlymMGwTijeg>|%^mdx1|_3zQ5)XpR}Pv$ch1yi>T8opxFSy?z+BiOvjh5}PS%go3G zl4N5;gRlycPV-Zb!lO=4I8y;ppHU|uvLx-VvBfiLSQ@$sbs2_?HTw^TbgJ%I)J|_ zp>E-E>;dqV3gMzqMx2erJ7o8vY#TLmIH5$=-Dt&%(g^CEg06$M+{H?9nI-Oul=C41 zk@{!5Ohyr6jV%>+iQ31`6Hv!KQpfQdE@6{OGI|#E&+aH?gEt0P`#y2WXy%b@Z84p^ zb)(9k7Bk_m$Fy)!=?5hPq; zg+QcqTd7(bc^o?qMlLRwxsEK&j{U>fKJWmw^eXX}d}uS--sO4BQcGmoaPKl#P@G@V z+yB+xc?LDHK6*HW2%%|^E=UPos-XpyDn+{VA|fS#2r39l*U%%q7pbBG3MgHg^h56| z1QZP*0um7fK?LQ#>(M)Z&&>UL=gytOCvjNV-R!=*`}@7mv+G@bqSNA3#fgIm>&yTK z>a^XInO^xE6Ag>$hqZ6yKuO^4iJPafA??Xu!j+D*JBn#8JjMn0v8G+NO__iGZL?}| zA)&LSUhCL%$-twl2}2J)?MVdM`5vA0xOM5a@_Plxni7x3>XGDU)ZQm)n)j~z@t{(B zA0IFGm8wcXNJhUgiu*<=5w6#^zWR*e$))pAzCtSw?g!p~m}!;q770B1p4Q`pdmyg8 zkL=QVqs(Hzq>+!e-z3x~&MWl%*7w2sDt&x`k$kVZH1h<~`PUr&f~P+x=Jd`DlFGiA z-Fufprq8M`B-@MahVWZy2|WFrXIHv`@O

LmIv?Bx9q47oTIXv}K&c_*#l(TYr4K zyS=c2Ru;Wg9B_BcQeUp~wuh9pZ>a4QjEV)3ddF1$@~;$Z)8gkzVLf4QA~eYqcRd4V zifZ$?|8gd7&?rkE=eymxGARspz6#x4uH2yp5n&ev_ZF(+raSQZrrwDb$%XMU@Atd; z)*CtBr^{DAFihE{cT_O4W(7^KBmnTiOZy7u<8M#GRj3iEPI4X+SjYp4uSlugG@fVc z9DxHel|o5h>UOSezxft5S8y?%6LW{OCR??+AaPX|Q81}ur@`L$2WCO