From f9a806c0f134cf4c76a429bf48b078bc6f62f5a6 Mon Sep 17 00:00:00 2001 From: yixiangihsiang Date: Wed, 28 Oct 2026 20:42:46 +0800 Subject: [PATCH] docs: integrate UI review cases and address review feedback --- .agents/skills/dsh-client-ui-ux/SKILL.md | 4 +- .agents/skills/dsh-ui-alignment/SKILL.md | 10 +++-- .agents/skills/dsh-ui-icons/SKILL.md | 30 +++++++------- .agents/skills/dsh-ui-spacing/SKILL.md | 2 + .../ui-design-review/alignment-after.jpg | Bin 4901 -> 0 bytes .../ui-design-review/alignment-before.jpg | Bin 4915 -> 0 bytes .../component-choice-after.jpg | Bin 57463 -> 0 bytes .../component-choice-before.jpg | Bin 54049 -> 0 bytes .../assets/ui-design-review/density-after.jpg | Bin 32497 -> 0 bytes .../ui-design-review/density-before.jpg | Bin 46536 -> 0 bytes .../ui-design-review/grouping-after.jpg | Bin 18699 -> 0 bytes .../ui-design-review/grouping-before.jpg | Bin 17901 -> 0 bytes .../ui-design-review/hierarchy-after.jpg | Bin 16563 -> 0 bytes .../ui-design-review/hierarchy-before.jpg | Bin 15294 -> 0 bytes .../ui-design-review/icon-optics-after.jpg | Bin 25148 -> 0 bytes .../ui-design-review/icon-optics-before.jpg | Bin 25602 -> 0 bytes docs/assets/ui-design-review/states-after.jpg | Bin 1101 -> 0 bytes .../assets/ui-design-review/states-before.jpg | Bin 1215 -> 0 bytes docs/cookbook/reviewing-ui-design.i18n.yaml | 20 +++++----- docs/cookbook/reviewing-ui-design.md | 10 ++++- docs/cookbook/reviewing-ui-design.zh.md | 10 ++++- docs/ui-design-review-cases.i18n.yaml | 37 +++++++++++------- docs/ui-design-review-cases.md | 36 +++++++++++++---- docs/ui-design-review-cases.zh.md | 32 ++++++++++++--- .../client/ui-primitives/README.i18n.yaml | 4 +- packages/client/ui-primitives/README.md | 2 +- packages/client/ui-primitives/README.zh.md | 2 +- 27 files changed, 135 insertions(+), 64 deletions(-) delete mode 100644 docs/assets/ui-design-review/alignment-after.jpg delete mode 100644 docs/assets/ui-design-review/alignment-before.jpg delete mode 100644 docs/assets/ui-design-review/component-choice-after.jpg delete mode 100644 docs/assets/ui-design-review/component-choice-before.jpg delete mode 100644 docs/assets/ui-design-review/density-after.jpg delete mode 100644 docs/assets/ui-design-review/density-before.jpg delete mode 100644 docs/assets/ui-design-review/grouping-after.jpg delete mode 100644 docs/assets/ui-design-review/grouping-before.jpg delete mode 100644 docs/assets/ui-design-review/hierarchy-after.jpg delete mode 100644 docs/assets/ui-design-review/hierarchy-before.jpg delete mode 100644 docs/assets/ui-design-review/icon-optics-after.jpg delete mode 100644 docs/assets/ui-design-review/icon-optics-before.jpg delete mode 100644 docs/assets/ui-design-review/states-after.jpg delete mode 100644 docs/assets/ui-design-review/states-before.jpg diff --git a/.agents/skills/dsh-client-ui-ux/SKILL.md b/.agents/skills/dsh-client-ui-ux/SKILL.md index 6ab8f1e5cb..de9f359f89 100644 --- a/.agents/skills/dsh-client-ui-ux/SKILL.md +++ b/.agents/skills/dsh-client-ui-ux/SKILL.md @@ -56,7 +56,7 @@ Read alignment and spacing before layout changes; otherwise select the applicabl ## Reuse before adding -Extend existing components, containers and interactions when the capability fits. Register right-sidebar content in the existing sidebar. Follow [icon reuse](../dsh-ui-icons/SKILL.md#reuse-existing-icons-first). Before restructuring, read [client instructions](../../../packages/client/AGENTS.md) and [client defensive patterns](../../../docs/defensive-patterns/client-components.md) for component/state ownership and layering. +Extend existing components, containers and interactions when the capability fits. Register right-sidebar content through a slot in the existing sidebar; do not create a separate sidebar. Follow [icon reuse](../dsh-ui-icons/SKILL.md#reuse-existing-icons-first). Before restructuring, read [client instructions](../../../packages/client/AGENTS.md) and [client defensive patterns](../../../docs/defensive-patterns/client-components.md) for component/state ownership and layering. ## Visual foundation @@ -64,7 +64,7 @@ Extend existing components, containers and interactions when the capability fits - Verify colors in light and dark themes; keep ink/background pairs readable, especially dimmed text. - Feature CSS you add or change uses **font weight ≤500**; emphasize with size or ink. ui-theme markdown typography tokens are the exception. - Use theme typography roles, then the page's scale, then a comparable page's size/spacing ratios. Do not invent a size for a single element. Peers share sizes; keep the scale small (13px is the established row/detail size). -- Apply alignment and icon rules to icon/text relationships. +- Apply [alignment](../dsh-ui-alignment/SKILL.md) and the [same-foreground rule](../dsh-ui-icons/SKILL.md#placement-and-use) to icon/text relationships, including value chevrons and search prompts. ## Component geometry diff --git a/.agents/skills/dsh-ui-alignment/SKILL.md b/.agents/skills/dsh-ui-alignment/SKILL.md index 25b1522462..fc5e0efd4a 100644 --- a/.agents/skills/dsh-ui-alignment/SKILL.md +++ b/.agents/skills/dsh-ui-alignment/SKILL.md @@ -7,7 +7,7 @@ description: Design or review DSH shared text columns, icon/label placement, tre Apply within the [UI development loop](../dsh-client-ui-ux/SKILL.md#required-review-loop). Align comparable peers, including slots for optional icons and actions. -### Layout structure first, visual calibration second +## Layout structure first, visual calibration second Distinguish click target, painted button, complete icon box and drawn contour. Intentional icon whitespace belongs to the layout box; do not remove it merely because painted pixels miss a guide. Enlarging a target must not move that box. Check containers, slots, columns, gaps and unintended overrides before optical corrections. Neither matching CSS boxes nor aligning every painted contour alone establishes balance. @@ -15,9 +15,9 @@ A glyph inconsistent across uses belongs to its icon owner. A composition-specif Inline SVG `vertical-align: middle` follows font baseline/x-height, not visible text center. Check font, size, line height and icon box across CJK, Latin, monospace and wrapping. Do not make multiline links unwrappable just to center an icon. -### Choose both the object and the axis +## Choose both the object and the axis -Name the aligned object and reference container. Equal padding need not align text starts; equal SVG dimensions need not align visible centers. +Name the aligned object and reference container. Equal padding need not align text starts; equal SVG dimensions need not align visible centers. For a close control beside footer actions, explicitly choose the control edge or complete icon-box edge; do not switch between them while measuring. | Alignment | Use it for | Judge the actual relationship | Common mistake | |---|---|---|---| @@ -30,6 +30,8 @@ Name the aligned object and reference container. Equal padding need not align te For Chinese/English navigation, identify leading icon centers, text starts and trailing controls by role. Headings, avatars and expandable search may differ. Continue axes only where the composition establishes them, including shared plugin reading edges even when hover paint extends beyond them, and conversation/right-sidebar header heights and baselines. +For a trigger and its menu, or search field and result rows, compare the complete text inset: outer padding, borders, leading slot and gap. Different icon sizes can retain one text start. For adjacent statistics, check font family, size, weight and line height together before moving the icon. + Center a button within its own bounds, a welcome group within the main pane, and an empty state within the content remaining below headings/filters. A fixed top margin is not centering. When a short window cannot fit the group, preserve scroll access with a compact top-aligned layout instead of clipping. -Normalize peer control sizes and slots before any necessary small optical offsets; verify comparable uses. Preserve usable hit targets and do not hide inconsistent parent layout with transforms. Check [spacing](../dsh-ui-spacing/SKILL.md) without moving the chosen axes; consult [cases](../../../docs/ui-design-review-cases.md#alignment) for uncertain judgments. +Normalize peer control sizes and slots before any necessary small optical offsets; verify comparable uses. Preserve usable, non-overlapping hit targets and do not hide inconsistent parent layout with transforms. Transparent hit padding can exceed the painted icon slot; check neighboring target edges after tightening a cluster. Check [spacing](../dsh-ui-spacing/SKILL.md) without moving the chosen axes; consult [cases](../../../docs/ui-design-review-cases.md#alignment) for uncertain judgments. diff --git a/.agents/skills/dsh-ui-icons/SKILL.md b/.agents/skills/dsh-ui-icons/SKILL.md index b94a075407..f42277a62d 100644 --- a/.agents/skills/dsh-ui-icons/SKILL.md +++ b/.agents/skills/dsh-ui-icons/SKILL.md @@ -13,7 +13,7 @@ Search the library and comparable UI for the intended meaning and supported vari Draw only when existing artwork cannot express the meaning or the user requests a distinct design. Before drawing, explain the closest alternatives and the unmet meaning or requested design difference. New glyphs require designer approval before landing; requested drafts can be prepared locally. Do not redraw a shared glyph to fix one consumer. -The [primitives catalog](../../../packages/client/ui-primitives/README.md#component-catalog) and icon source own available variants and stroke values; [official artwork](../dsh-official-plugin-artwork/SKILL.md) owns package artwork. +The [primitives icon contract](../../../packages/client/ui-primitives/README.md#controls-and-icons) and icon source own available variants, stroke scaling and menu sizes; [official artwork](../dsh-official-plugin-artwork/SKILL.md) owns package artwork. ## System style @@ -22,6 +22,18 @@ The [primitives catalog](../../../packages/client/ui-primitives/README.md#compon - Default to monochrome outlines inheriting `currentColor`, without gradients, shadows, textures or 3D effects. Preserve intentional fills, status dots, selected marks and knockouts. File, site, plugin and brand artwork retain their own palettes and roles. - Balance structure and whitespace without requiring symmetry; avoid accidental tilt or a top-heavy silhouette. Preserve meaningful direction. Use gaps, overlap, nesting and broken obscured lines to clarify complex meanings; avoid accidental tangencies, dark knots and disappearing gaps at actual size. Add contour detail only when it improves recognition; do not force every subject into a closed outline. +## Optical size and clarity before implementation + +Use the owning control's supported size and weight. [Shared menu sizes and stroke scaling](../../../packages/client/ui-primitives/README.md#controls-and-icons) belong to primitives; [permission triggers](../../../packages/client/ui-permission-presets/README.md) and [settings navigation](../../../packages/client/ui-settings-general/README.md) belong to their feature packages. A reviewed proposal for a larger or heavier trigger is not a statement that every existing consumer already uses it. Compare at the owning control's size, weight, colors and label, using an outlined circle and rectangular control as references. Open silhouettes may need more extent than dense fills; supporting chevrons, handles and dots keep their roles. Do not normalize by ink area or fill every view box. + +A shared view-box change affects every consumer at its own CSS size. Inspect both compact menus and larger icon-only controls; a clearer small chevron can become oversized in a floating button. Adjust a consumer’s supported icon size when needed while retaining its button base and hit target. + +For softness, check CSS dimensions and ancestor transforms, view box and drawing bounds, stroke versus filled contour, device-pixel placement, then color/opacity. Non-16 view boxes are valid; compare identical artwork before attributing sharpness to inline SVG versus sprites. + +Use the [implemented stroke behavior](../../../packages/client/ui-primitives/README.md#controls-and-icons): source stroke widths scale with the SVG viewport, and filled outlines scale as geometry. Do not add non-scaling strokes or convert filled contours during an ordinary placement or reuse fix. A change to that rendering contract belongs to a separately scoped library change with consumer validation; retain intentional silhouettes and knockouts. + +Check straight-stroke edges at actual DPR after all scaling: center and width jointly determine coverage. Integer source coordinates alone do not guarantee crisp edges. Round positioned overlays in device pixels only when layout places otherwise crisp artwork between pixels; preserve anchoring and viewport containment. Keep antialiasing on curves/diagonals; do not globally round paths or use `crispEdges` to hide placement errors. Partial coverage is legitimate for 1.3px strokes. + ## Draw a new icon Establish meaning, placement, actual sizes, peers and states; ask only when missing information changes the design. Produce editable SVG; shared line icons need Regular and Medium variants sharing construction; intentional fill-only variants may share geometry. Tune silhouette, gaps, center and weight at intended size using component/theme conventions, not consumer-specific stroke or scale overrides. @@ -38,22 +50,12 @@ Apply the same system style and verification criteria as new artwork. Inspect SV Distinguish click target, visible button base, icon slot and painted glyph. Equal targets or SVG dimensions do not imply equal optical size; compare silhouette, stroke, whitespace and center beside the label. Fix containers and unintended CSS overrides first. Correct shared artwork only when the imbalance follows it across uses. -An icon and label for one action normally share foreground and state changes. Search icons and placeholders form one prompt; typed text and independent clear actions may differ. Verify opacity, stroke and background in both themes. Status, warning and brand roles may use different colors. Compare native file icons and folder outlines deliberately; do not normalize logos, status dots or decorative illustrations to toolbar icons. +An icon and its associated text for one action, value or input prompt must share foreground color, effective opacity and state changes. This includes submenu value chevrons and search placeholders; inherit the shared role instead of assigning an independent icon token. Typed text and independent clear actions may differ; status, warning and brand roles retain semantic colors. Check computed color and ancestor opacity in both themes. Apply the rule to changed consumers; updating it does not certify untouched UI. Compare native file icons and folder outlines deliberately; do not normalize logos, status dots or decorative illustrations to toolbar icons. -Use the shared Tooltip for unclear icon-only actions and HoverCard for informational content requiring hover or selection. [Responsive UI](../dsh-responsive-ui/SKILL.md) owns mobile tooltips and label collapse. Every right-sidebar tab needs a meaningful icon. Preserve accessible labels and focus; [alignment](../dsh-ui-alignment/SKILL.md) owns positioning and [spacing](../dsh-ui-spacing/SKILL.md) owns gaps. - -## Optical size and clarity before implementation - -Ordinary menus use 14px Regular icons with 1px strokes; compact menus retain 12px. Permission triggers and settings-navigation peers use 16px slots; permission-menu rows retain 14px. Compare at the owning control's size, weight, colors and label, using an outlined circle and rectangular control as references. Open silhouettes may need more extent than dense fills; supporting chevrons, handles and dots keep their roles. Do not normalize by ink area or fill every view box. - -For softness, check CSS dimensions and ancestor transforms, view box and drawing bounds, stroke versus filled contour, device-pixel placement, then color/opacity. Non-16 view boxes are valid; compare identical artwork before attributing sharpness to inline SVG versus sprites. - -Regular strokes stay **1 CSS px**, Medium **1.3 CSS px** across sizes. Use non-scaling strokes, including inline composites. Filled outlines ignore stroke width: convert line contours to real strokes when consistent weight requires it; retain intentional silhouettes and knockouts. - -Check straight-stroke edges at actual DPR after all scaling: center and width jointly determine coverage. Integer source coordinates alone do not guarantee crisp edges. Round positioned overlays in device pixels only when layout places otherwise crisp artwork between pixels; preserve anchoring and viewport containment. Keep antialiasing on curves/diagonals; do not globally round paths or use `crispEdges` to hide placement errors. Partial coverage is legitimate for 1.3px strokes. +Use the shared Tooltip for unclear icon-only actions and HoverCard for informational content requiring hover or selection; prefer these primitives over ad-hoc `title` attributes. [Responsive UI](../dsh-responsive-ui/SKILL.md) owns mobile tooltips and label collapse. Every right-sidebar tab needs a meaningful icon. Preserve accessible labels and focus; [alignment](../dsh-ui-alignment/SKILL.md) owns positioning and [spacing](../dsh-ui-spacing/SKILL.md) owns gaps. ## Verification and handoff For ordinary icon reuse or placement changes, inspect the affected control at its actual size and relevant states; no fixed size/DPR matrix or separate raster report is required. For new or changed artwork, strokes or rendering, compare affected sizes and weights with peers; check DPR 1 and 2 when stroke scaling or pixel placement can change, and both themes when color or optical weight is affected. Keep before/after captures when needed for the change or requested deliverable. Judge recognition, clipping, center, gaps and neighboring text at actual size; enlarged views diagnose pixels only. -After a set-wide change, trace affected families, consumers and weights, including unchanged artwork whose rendering can change. Use unchanged peers for comparison. An explicitly requested full-set review inventories and compares every glyph under matching conditions. Consolidate duplicate artwork only when necessary for the current fix; record unrelated duplicates separately instead of expanding the task. Consult [cases](../../../docs/ui-design-review-cases.md#icon-optics) for uncertain judgments. \ No newline at end of file +After a set-wide change, trace affected families, consumers and weights, including unchanged artwork whose rendering can change. Use unchanged peers for comparison. An explicitly requested full-set review inventories and compares every glyph under matching conditions. Consolidate duplicate artwork only when necessary for the current fix; record unrelated duplicates separately instead of expanding the task. Consult [cases](../../../docs/ui-design-review-cases.md#icon-optics) for uncertain judgments. diff --git a/.agents/skills/dsh-ui-spacing/SKILL.md b/.agents/skills/dsh-ui-spacing/SKILL.md index 1f3cea88c4..0c6bf57613 100644 --- a/.agents/skills/dsh-ui-spacing/SKILL.md +++ b/.agents/skills/dsh-ui-spacing/SKILL.md @@ -19,4 +19,6 @@ When wrapping, metadata, subgroups or independent actions increase complexity, i Judge actual whitespace at normal size, including padding, line-height, glyph whitespace and borders. CSS margin ratios alone do not establish grouping; explanatory labels need one unambiguous owner. For example, declared 16px/8px margins can still leave a heading closer to the preceding content once line-height and container padding are included; compare the rendered gaps rather than adopting that pair as a rule. +When matching two visible gaps, name both pairs of endpoints and include each container’s padding, border and text line box. Equal visible gaps may require unequal margins. A control’s painted edge and a text glyph’s edge are different endpoints; keep that choice stable through review. + Reuse page spacing and [style tokens](../../../docs/web-styling.md), preserve [alignment](../dsh-ui-alignment/SKILL.md) axes, and consult [cases](../../../docs/ui-design-review-cases.md#grouping) for uncertain judgments. This skill defines no numeric scale. diff --git a/docs/assets/ui-design-review/alignment-after.jpg b/docs/assets/ui-design-review/alignment-after.jpg deleted file mode 100644 index 9f80b99401a956eb1fcbeb411709ad7dc5bc9b85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4901 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 diff --git a/docs/assets/ui-design-review/alignment-before.jpg b/docs/assets/ui-design-review/alignment-before.jpg deleted file mode 100644 index fd01742e4537477d8cca6bcaf1de3823d366fc2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4915 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 diff --git a/docs/assets/ui-design-review/component-choice-after.jpg b/docs/assets/ui-design-review/component-choice-after.jpg deleted file mode 100644 index 25113fc08d93b542a3b0dbfb6e151e25fbd576fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57463 zcmeFZcT}58k|-|cfQ=(LIgq1?B6F{8z<>dhgs})VATU7^h@73dWD{jXx|l3LG6*C< z1RG2?V3ULpAQME+Q33&vJ9lPx&+hzwXWqUy@9ZDbI_InE`ns!I9jd#ls=vdb!=Hf5 z`Z{_#fMdr1fMZ8Lz##>24{-YAsne%Uo<4o*^qDiK&z`@0{`|Rf=dZI~x^S7}IwvQ` zb#``cJ|O{ap4+_a>^CHD+!huQ6BpwWkh&u!dPhi9O!N;X$IhHNbN=l4Yv<2j6Xj;- z7X9B2ho1pg&YpaDV(7%NTY%$Nj-9x2?C>jq?~iJpI`&6>{}zrPJF4!P6KBsIy?$^R zaQyhO<0np^Jbv!PQ8;!Ea1=Xv>dNV>H?PV5YLf8d%=KHQa?jXq%X=bT#%Gt^wf}OK zUC`{~ILE8idk&LA!o7V8Noz-(xQ@#BBmAwDBY5n@$>XPvUddcJc2vsoV@LdtpFZ)I z1jnu%mGVasCci%OymdSK)R*gQ_VGW)<>c=k4g)TnILdJ4#1()RU^n+aF#Layo~qAF z1!WXKoTj{dIR}guR6r{!VubSjwthIh;0qn)l$uev!1j|=I9XESKXq3hQHoC_i%hiz zKkxHYeIq4+*q;)B`7-eBtxpf!36&Ksa*n5S07RKsPpW0Nb-OS-U zrR(PD);r%7a}gmSbPh}qx-%-3vf$0^P+N{)3wouP;l`uiTZv8UYC~bJV7ZrVsJ`nS zG+UeLCak9sGJAekIyDO#1+=U&pCDQDj--Q@>WCi+;D(Dmr~?+)z*yGAFCPSUfR~@z z&vRXkQQmS^5BJ2lT)&opE>hB;g$$ zH;##lYX!Dua+TWMFQ)a)ki~j%%mOjRErAECAU2e5WEq^aOe&2@Ky=oaAQnbBI{UIu z`~P$LITsZThCJx0XZg~30QeXVw5mG!9D$VO9x_ z=MYDu38z$)i$p}Wnnm+#>L}zpa-)Aq{VTa?F>X`wqU)GUpUg*YL)pRNw)*;BUmY~N zQ1IGJSd7ZP`ko+xx$C|@;#oBHyp{*!`a%Da#HI6#kx7GVUeP?@(!m9v>C?`*aI(Ox znsP||LAYS!WUNrJMUtG$+o1}wA(!}Kpo>p8rRa_C;yM&Qhc~X4jw%|*2LCd+xi4_9 z4J-V?Xdc>DS<525G{Yjq`KVe+k37m(vm($_=queV;24%|WY}M!#r(YtwDW5ZMef+2g+m=SMc(IL8_lSNhdNsZppDh@DR{b zc0=J15Xtn6T0I23URR8c93WMTdp?K52FdX9{dQsMRO)I2=UUH|wRg}|?(L%ZcrK;M zyNNN1SkW)ub~9bLhOoiPZC#!>qNX89Ge{NPu4dE3L%_%(plE&k8NhK?k@HQ$zo<1Pe8urlFc1hZX(TGvIbv`hr@`1V{JK{7jfg$Z=*0Y z*JNi0yAbnnqXEgFahB&UrKJ{~+huXK&oO9e=Dl!yUB@O}FK(ZuECcAz6QKsOefQS$R zeh6?qc(EbA`y6ok&p=GTWci$t&VZfU(s zZ2LOV9jFYGOIFu13y|85Snt-_h3^~e2$;Xn{N<;$`>56<`m+L8lpn_&;{z(^ZL+I^ zeyPTWm3v>20oJ8r@aS(l+YWfA^LZV7#BDBtxmA=^cyHxE%|^v!(xb>rjGRvunUuWm z?gT0(qkTM7CmE-%flmHdQ&(_R<4;PO>I z)NWPTH3(I7HFxu18+YCa=HZxXP@I#YF*0|MnmNj4+ba+pR>-|LH?UQ_I++y#N_%OT zJY@qe2ZEvRkqS@o)@6}N4$`pFC46VG27Ts?i1~PMm)3bq?>B<2`rsUbq;{J}h_v)N z3BN{h01n?c%HKhJp;W4U!QXW*Q^8 zS(fFFl`s}krH%Z%Pnf=S*&Nd%viM4rH(4^=F}*jFTKpy$I0h0V3@v5+g{jG33OIpU zMP78{R8eKs$%{I_4$4lBPeS7=VoVr*+VIr6v9&h>Sp)rZZ-O3#tR3X3>@ZnU4*~G` zQx1DpTJ16$%MWsIcMx~r#gJbZ$b-tl^2Z}L1EUtR)vNSvjr3EH2c-Q=$V=a;k<3d` zYbRc>D+EWe0gEKc;BKKELo2xbE~Ts~@{v4S1zuSVg?`xGM#jf+;&TF{l9gnXyS&3@ zx^6Yf*07f)<~iGwZ9x|PTT~ur8ztop_rZOjUfp|AWpsw6ns}#Nd1*^IgJR?Nm@2)r z)aRQ>{_xp^5De`4u~~ZWQGaDr4$In_5HF`{kR^pI^aPiTu_U*c;an7nkwZ%|69T75 zMdPkk)tHf3s*H@ltu%P1j)FTQ(A;TzzXTnFqoAX+ucIC^em^!`WfoB(bqR}> z`xmM@1#8C_syH6BV0pqb5nbQ>dMh3p7GoZ@K1y;RL)nLMC4u!84G5JgfL>^~U0qoF zRfBEB{=&h7mx-;UN^2a%C>a1xA$(TmX$dxcMSFQuyJBA;86C=Iqb!#Zs0q~3M&Hs zNAeX=RRzJ*rGBSx2X#8aR^9z8))Z&er(o3Kk+Jcu;ZtXg>4G#oPe*1xWl1-+bA7?& zyN~AWcUi@gKf$k4Xx_tbCRriM=mMpmDa(e+h{_*Z#>9GSjjuinmW~4#B!~Hwy6fFs zlI$5zY?cJG?3%`&r^8K)f19+1Hh&@9GK=4OQvsboZfJJ2fM8k$%&Tq5LgO zsF!p!x=dCkMy2w0dh|M85Dq+$ptMx1lKo`Wp0v{?L>jVL6B z=&S01dDKcY^0ghav`?pKP5!3%>d)dB>{X8WYp;_& zCOtF%{iq4HlB24($njRz(qb5j7*@@&-=m~vM;kU0fB=5$w^Qnb_8P-4ZmUEg}1=@1vCZY{BQ zH0S=gu#zb|P)|rM$+vxZ_a)A?HtcmlXe^=`|ET+8Z6vtu`5HT>>$5l3HaBH|nwONpImx`Wd(F&d0 ztsnrmngUCsJT(T&EtWn}@$0+b0%0EFs9$NK-p=OicKd?5#oIhb#8`Ua+bi`84x&p> zGUDI56;tM6#v!|+crQLPRi93++tYsE@-uX<)L6-z8UcU()xDS&HGJtgCV`9}oL=&M zRnQU`{YmJ)oSNiAl4POLZ1qawsm-F+YD69h(oqBNzp%r)CY*+8al0hL9&kCMsLy6C zopICQRc0rq$Fc7afRHzJm4z7!*5H{JjbF_5kH2+Xm-BFr*$8lHthKruOqF$7NgW!b zEN@eY5F*8|eEzzD$eCNeDda&Ak#M4KZP+bwvTHokPU?LTZDxiH@7zJGbP?96>oVh_ z-Qtg2P29ZuMiuNc-3KjQ)){m%m(;>T`h+Kak<|ojwzQQ{_|$bs#C-L7{&l7e&q| z%vyR@ofGYZJukqG!icG+X)&KMw5uk1+U`iiJiUwnw#cRgv^rxDmGKhb^& zeoiBE!Dj>rFlm%#WtH^|TE@@rtVnburQ@x;+{Z?J4*_d0j?0>WwFQa0Z2!4-|GfAq z&J!J-IjotQ5A2);d2IIER$E#vr3Y8gG9~tVS<}qV(YRt`r^$wyTUlCm=^76jqRmZB z^n`v!zKq+yc|>>~ydUbZm2(5o%KQV#-q>O^4Mx8>A@CO@yoWS%>4_ZRLfBsrfj?M0 zZv)640&*ob!b>k@VY~Tr9RciDx=ZU4qr$!hN@BOe5c4LchI+zTuO-XN226a-@voRB ztCX&QV+$KvO9!-2=l!gaiiZi}(tp8%d-k-dVSp+|)^?cZhSuT%t?KyXbQpQR_1hr; zx0mvhCGKeNbKwSm{WZdxbvo%`64?iu-h-Ik*Ll$yw z<^S^<-XvM{b6J1xq=8$VaOZ3uXJKBsf#YM>urlOo!>Z$7%B2lEUtS9>G9*1)yL1x0 zP(KnN;eog*q&ht=gsby!-dYoT*@|NNi~Lr}n+}zDG~nH3<5F3o*^8EnN|wmLPxtD# zEA4JZlzJR+u)2ihmHA`Gr?az)O3mb2Q>qYFo;B5@VvQ!1zivod2~qnTp7w5d2i;NJ zmHt_fzY5auHd5Z1y%xPLmnWPj6xYG%H!a4BgvEB|v2*+Jt-W(*cO6O^{es9jjn0N# z?JteK?MO&jBb4pdXC%gj8`b&pnyeXE_SFm6yPdC-IAh+1RlWM9i~@{pc{Z6=Q$;8+MU%F`U&YQV~^tC}*JPyqF1}0^=R<{#Qjs!{@PE?x$ zsS(~_neY$f+DpIBa}K+;R2!V(3XXo(BgDZXYXJkPDD4U+g7MofV2 z#;(WsI#@|$`(nu(23s)JRx;3hIMJ0QWG5svvu;qW3geiBpHHL~ZJY+Otg%PvXxe6^ zHTQmpcf8qH7l{!s7jqGTzHc_jXbjUguIDWu)r{F!)9FBMdmWuuo#|P|e9XJ~fE(8n zOrxT}`FO}LoRNYwbDkB?hugaEfQxPi*MmNO{2g#gm|;)D1xan&EEbIyI@UhqS!Yuk zn}3~vF5EDJ`U_2e?z=-rT6T0Yz<1VN+Og+4=%lD_bPZzP&Imee5?u?TjTL`I#d5IR zGpUKTmTWV$gs8wwqNy1nX3SlNmQF6WBsIG?%xMwa&M~`_dCDW6@3P}alj@!$lrQOgX`zcD+g{-8u*sNjw^ab%2 zl$lqNnTSP@im1*VgEVI%(kT4bA5gzJE?UTp9> zPUl>#pBATN*R(Z&}%# zQ?Ycvfr>;>lI!0OeLMtA=zg^cGRnE%@V2nkr28|Yy-DP%AELumx@tqmL@!ihc-jrp zSM-t|v}PBncyO~fJB?S*h0AYU-?L8=17npEgO#F;E67lsb)BD0XY0hEB3WJj^Aq6g zNN4$~IObcGfqq*DI&ZyOz*5jRaeA&ir~vo8ktx*@DDZVuUUgsMReW|Va;ad~@nA$QI10y(ic za5*pTZSj2E<}%-vwr_oTNwl*AUid3${VN$Js8`0s+`tB2WFtRswP%-w+mloDO>z#c zaTYR%F6^qU$vY*sJdmN}qJXEsem4M4%3RhBms?-E!+*aZT;o@pxVT|SPI8#EqVE>P z&)ku+GTK@YL160AV~XZ@1!9U_IJp907O4$lyf$V=NsGkUnK9Y7QIPUPsvrFc`naHi~Go7RqLemG!35lSG>UByTGh#Z0Lpgja z3$+k_Vp#FIOx4DO$kjQNGwW#fK)A$)ciXh1#GOUFMoA9G+57@F&IWAgkp$~2>QTO= z*V0>+B_k2-Zy+zPKm84Z68Sh9&-rBX-FT(fl8`{Yyk51|^~_QB<~7^JQLlGZJRCB2 zYhvyum3!S;=#`UcX^t*TG7oUztIq6RYL0oW?o2dXcVphmyQid_&?~nxl{A@e zWj(_C#B>y_kmXWNajFhnCL%*MpV7h5n_3YyPCmOJZO(+227b_l$APW7`Sik+*_e#a zkF8mx&0bGI#Q%GFqT>~Pbvk6fv-#zXfQ`p{#d={i;INpE6=(7#v+d(g-))Dy-_m+k zm*uEoJaq0A4|)4u|NfuEr^099e@XQx@x_Omf2R7A_^+)07n|uKd0YEnE^PJW7tStV zM_+Vp>W!o2;Z2FYb&-m3L-O@$!s0t>`XPXR;``;Xo^t+zMIdf5ylC&(oqIu=ZGl;z z{v@9Ka&d9*=6q<=pTuh?|4j8K@$-CZ}uL zGkv}B1=Ay8_(QSja%CT5^u8NA5&kO9Dt9^MmO|jAAz-@6XyTTa!*RW zI|P{ff~02-0hiW=0Wn@PuTm%h1wX%Vde=1n>_sxeKA-pwI4Q6+&Xi$(bo?uPdbYzw zqlPf`hGI|E>W-%`qV67KZ;RSd(b>D2#DR-Z_4f(~QvZbXg(TbaA})e;wl!tI*bzF|1^F zX>O1lmyrfKRkdu{>OEh8B6}%!!d#%`VQk`Psn-grrjig-Z1_*cINw39qJgMk8p^=U+8`^iokA1B|PB>v-H>0N0KxH3)wz6oJ=*wdI zN@^BvDi4mf2NV%QmBekE(W4g^6RvrZxohB#jt%_#mdixOzj|pTO zi~PidsnHg(`r4jm&d|$r!q=Ti`)Ri!g;oQCkcwlemav)$WF)ymj)HWq(W^fM@P7;s z{s;T$NPe8!3pfOvKLkkr8*=Op;Bpute6?Xc;{9LYORmsffp77DJgW}@Uv4NK2v5j- zC-s@TfYff$h$$4Gp=Jk9BJLKN7IlhCPkRa20D7h=-LYHAdyZt0P})yYupg#|PNtF2 zj;)U{mqB6@?48IB%|igk%VKAKrH26?a5C;fKD=q}g$u737Bb^@xwU@BQHVK%ALjMF>~QaaSNJ&s(!1Cu#-{LpX<^MrJdjH zEM9&1L-RUQb-ZN%ww6iPcNn&EpnR!`5$+?;2p!lqj;|o~5dx{-7Jptsh01v3#nZDs zRE)}7bToH2<^XS*w+e5r-}WJDKDTs;ZP$H{F-Q6Zpy*NsGbYW}_cu02&>XX~`bAR{ zWa|-{SP@i0{7vSZ)V3ktDtl||5HIj+RiNgX_6cY8!qu&mL%^h&JIyq`Xjo>;#JWqz z?rsuQCv!|~8=EiXFmBB4&~rvaQyHzo$!?Whswq7Kj`A`6J$J+$HJ!48)d@L$DlUtT zeOXl?6Rj}hY^>Lvf`d7hOD9R|7j_E7-}9k6a0>pu#~{FKm(pdUik>}J_OF?S1Ps5u zv$)v)MkUB5%_PyzE0#is*S9?S2bIvrqDadb3g&C2sBW)AKr31!$O=k#taTs+t*%hB zlfa7vJuSW$mvL(YOuN6OUbT?^`AZ&ibR4K~74c zQNPbX=8o8=l~`_+JyvoC$BPw`tlj66Zo5+z5=>o$@Ov2}$G#{&frNe5urr9UHi*c& zkY30vxg+@&KkB}SSLl#6o5pTMsAw;4+kp1CunthdNbZ@dltv^Y+eCV?*c+~W{t ziLdV+hDd&Jr_c=R2Iq}^2m?3p%FbNRAPWr_6{Jo)XzFRt_|Oi4jDAGtoVAq7r*T#J zBBrAfUPY&o-LrI_hVsp+PDdnubba5{FV!pEhU2(3>r!5BWg(INOg(Z&lMKt@YSB|< zb;45`<}Uy84@#eA8=oj!bghAi(~+lAM^W9lwQq1abzcsiKPC|-^||8(;MIQZA>eIT z%JIKKzz4utElLyJj&Z;3ukdqpgUh9n_A6x?i8gb~`cir@;tSrUNM$?g4iZl8&YFV{ zdk;zu)S}5pQA+LmvcOx@Rn6daSK(|?sivOvm@a#XX%czV8l%v76}%mv2rb3Wl79f; z5F!_380x<(`y=k5M*JaQ%W^g0Hfw1+eJ6B6H)RPJtK7KE)AjXZx~rU;4;>0hAFXDT+A7L5GHeKPif}uu*jG(`3-qh6X7Xm@MPW{f8X<FH8sz7R`KH$vCwpyD zLw4QGtz8cRSD}qvZTTfo&7r%U5*RxbzUjVUwWZN-grNE;Sbk5F>i+I>a%u?Mc<=y7 z`RE#Y1tNSSenFU(6L%-L<$PF$2IPvHdl&(u=S&xWU~nJvuR!5^BnzQ^y9oTM zj-XeSQJt14)&xB)jYmwsr9+Fr4zWFRqeoV3C8Xi!s?2Ik)05UdP+EbVceS(Mvt)-w z3FtloR#D5}88S9Hx>zxxso2)5oTBQjKnFiedRpLE@;Yh6ni3}|RBL)9LZ}JOv9Gh| zhTqi{+nFo+kE3Vb`hpXY21!VlZ-k_z+>|wD%Dx)eVU0yQX)8pHR@Bw@X00?j-FnFf zp_&w6=j`x$B`7y71U&m1HxM3>_F}qtZ5N^;t0hZlN z1+Ra9mm^s?PKsOt0Uhx{ns#jLQ@tUbwPlTyXt^q+h(YY>Fh!riNde?;e;QH?XoEL6 za zBW@x!!v?#0ggSljR7)2j!G`lmzRSNjRkA7;oH6amUvx{6y5iI4R=Nbc@1UYzv9tcj zpa4XE|AYSO+wPd+2bJrt-5&kp{}4}~5&cp#1H?sx zQ%2H41$wgM_JxuU0p6kS_s1`o z|FP~)IR3;I8P+y;#ir7?tI;aU+*h_PB%*OBSR8Cuakghw5dk$ zRVWu*;`5q{UBfNF6jxXs>r*H$m7Dooi>$Z0+Zg#3l8ccG9W{|lt;yooq9v1nyGzDl zd365WvFgw>m%tf(YSOhBy($xkO>vZ7We>Sph=UM%Aly*&yo#>kNi^@sJ`rt-7YuD;lsh53+A%BgGM%xs-)~?syj+jbO8oHkJ`vc}AUs zQFF0jzeK@pJ}S^jD4nvx#&4VT)=PsnIy!9w@l?+#g#6Hc{Qa%0C)$dj?h`zz$fIH> zF??lI8d}r7NF>O9A14-0q>C>MD26uHX|@#yWN$91Zogxu`Plfb%-T-O`It1LXpDHG zbegAVWe43iQmcgM|0{GPAx@iAT}K&V85ObW=(dveaY59uRS(!Iuw*&vQ^$oC{h zvc+9#kU?nL5>rxvwtV9=lCBf1Sx&tm#36ZbS z*U|}8^rNI2shXqx-yH_$;~IPpvSdNoujGR30hqno(xKcSb%Wf_)`bf$k|GSN(c?ci z(SDK#G_)S!fsRyF*@Z;R&|Od$seU~wl17`Q8h(D4*J9=4`l#j04<8omLO)Tf80BuT z)hVe4X)8^l-_kV9oIKpeavj3&Uxes#A3V6|FQ4_)!Bv%=KfcH=cUnSLBALslWhE6q z)_Y|drPo>DVy!ANLK&j2NtTc3yVqk{<{ITPf=5OY+|blk=RObYqyKn);*WjL+pJjZ z#3A6_!@nUX+broz2Qu{ge}%t1j1J>H1RS~fp8U;VE(`d2_H*hxlCs;w!4i;@=|DSl z*izaG%AjjaJN>$HVV$J$3585Ai~d;t4r_dBj_x0Dr>_9Y<@=>kMQX!{hYCFE+rWElPpIx?*7qvR$o_FAGedKD z#+*0F)ss-Mi`sQKr*ESKUPf--8P588A^M_-K@aX4yQ0&?cAAX}3FxY~E{Y&@90K~J zX9%Dg_;_BUf>dC-I=F(Va+mTfJ}!ThWhzg3{fk&1{^(l6{O&TITt0ZfJ5W}UasG*~ zRORD^W(-3zqcm~uTYlcd+yp50>qLT`@e7>+^qLI{8mLA*?}d}AHljU*INlgQAjQk1 zYV>?U!SxfJ`jhIlC5zm!FQxZ{hd?71Wj-7CQbR?B_5=J@z#mB#y$m_!FabFgAG0Wy z()wuC(d1tdR=cgD7W^)Hm9@U)Ws-#9%Byih4v907cghhSaxN{t4a`)Rfjs!G+wc`E zD)s=g+_H;{ zw~)tBoX`GhrL3)wNV?U#o3eW~7 zCDGbD@OVpwpx!RzO*F{n>}O~eNH=GU!cAWP zSX*Hb=P=TX>A?0F_67lstaq+z-r@bI1>ERM+$#364Q6s`s`EtISB!O~4GZzX*dTKx zOCKtQr&iNBAC9SKDsoTmb7V-|=}o>kVa2&5Doiva_2H=4NQy&ecm-O5ge!NA=|Gj) zDOukUiqafd&g@L~jnM{<>{d=Zrak9ks7rn2j!Av;752?E`SGAKQN-FlhqYInXG0^6 z3@vx@TRuG=N>qOOlVb6R5w-NlpKQu-bGPaBX$e_ULK)ZjZ|UIpHM_kGHhp+}U6%;N zRTU_msA+Qu$fRsiL*KbYc#qVEux2G%abs+_lBRU0h4>wFl-o=DL7mU(!n<@7--vwS z#Kbe2&1*Zw`8>|X-@1pYE%_$4v8jrh(5V^x=*f$5Ao}a%f;Gim`0OwYoj+OW=VhZ+ zB-DA40CyfGY><^475L?G658GUit75$3r;7im7r$?muRE?AA4O5yixER7w#U8xgYz$ zBAQFZ{EDo$YRS7S$HcN8w_7EP>39>pA~8iA*?ZPzmfH`KJHPst%bP~ge`DG=Bf9jh z9%E(l&{<=6W%TH%K{z23-;%26G6WhZC`oh2qhRI5ZWdx4`tom7^3%xpqz2Z7h8&qK zj8JD|OP`2NnlwepD+&!Ii;Cv&?CWRlEsf9g_dDbo0iQjaSLRNaecntf#`Tq9P{Rg} zRH+E*(#5H~(jj1p>LF(> z(ZYr5&JNcx%HR!Lcf)(4K&92(V7RjOkvi%0_L?k?9w+MhBv!KQHb=N2z7r*HJPX>K zuMKcrC%0p;_N12;7wWi2E~KFw66O%ao}bDl#Sik+rS|PyI<~2)2Gxt(WFX{qfn%#l zTS|7`3~koP>rv@5Q1V*%lc&EIM~@Gh!i=Bew}bL27dwKjk1Ew=pftym;Q zwtQJz`oWS&gHA&cR(C?$0AE-*X^d*q#x%A;IRw+D5oGtYur`bmt5eozt6fbeX>UbE z<<82FMN`}9EB;kg7^03kmPp+14ACi71En|_YjF3ABT5?$3<*sQjyc~eRF_LjMd9QOAc3qso(g;iMVSm4??ETda4m z0uOVPq9u4G>%Rq*L~I)seW~ap8~Bbq(erWtIu{I7@fc*yE1Gt+%!+$?w<%e{AnlwE z%g0xv-G&D;ihYh?$oM?Fha>KJiZ<7ke(4%f4aSFryZ$HGae zyBroETcobWppdm&TS7{=9>RTm??FLrc1@5EnPZo5-T3(8a(B8r+9l~G*MN6HC-6sO z8|hrf)lrQs31g!7-qu5?G-DyqM%kKP33e7@qNI{6MH{cBTMr~82{Jw=1bO+)b{^d6 zTVEX5QXYs2zO(Mysz2;W^TH1i?VQ`$6Ag_^@);nC=D|zP+_icqSbUKUj8!9`%D=CD z(Hax3@Ju+9IUq?;Q&FP83n0WXupjKZ_bAJweW{!YXLN?dtxEgXDSINLq_6d|BWj`s_ZlrG zz~S5r7Lq}r-eTk&joC}dS$1v3DWF?G{B%-VDRpmyj#COav~^al=Y;H@c7DtH}#cXm}dR#k&gTdUfN{Ww%5jN-M)H5MofBZs{Km( z^(;A<-177<4=(S!uD)r|7~c7pP5Xb6=|2(ebY=P!2rnkMg+^$d zWD9E7Z}(ChAtoH?{(hqSYk$%t36@~{d=qf1Kf%+bVB+N&+pZd_1l$)tdMBe^_BE4{ z_32-h@BdK_0&Qf?2Rm??Q`5Rz*v6`Zpz0vDx2{s{1Tjs<9SQ3I2U1DeXv4Rwf6RJy znu^|fKXOK7r0(ot@J?Sjw(V_|fT&}FkxxS4E zg43q;WlbWZLG9l6?T)-X?6O zf&2*TZG=`6UoI)_$OyHu!~aHt>3d|BX5RR3yUv)Jm_|jX%xyw`xtv#*?zod=OJN*5 z&9z*ZVIEx;kvujFIDTn+^?>8RMDDNf&Pia>k=E@2gI_r^oH{LPWjn$r! zF%#UCBF8pZ_s*hXhTlo@1lPHPMHmey29;^ZX#1WcbzOW&??IksA$>z;Sqx7sj!EiP zvXq|tbvbK8IAHta(Iok)qxFy`aAx4@iH?y-S3Ih;rpn686LU4e2r4xkxi(9f4a`yv z8{p?%CMl?i*UwVLZP|fQ!-e{PDVTmDnfkFzo}wb?5bQG5C7iY?o*GMlk{cj{TI$fjdg(O2T6mkWu&BtL74 z(rzmDtr9pNV&8L`b2mjtQDu9vvZ(u8MIMmTVM5=Y)qFevii!aTS9Yg75nMxzkJ76e@I8)f7SC%kocmW zamI4LfDYwuxIa;XKQftMXW>&>lRll`wu9?UbE_!?Kb(Yk>6@h6&g<bnI;XRHp?jUS#*tsNwN>|rWmwA&LqsJ6FuJ@fib&i$ujQi=q(w&>y_jn zMoP5hbp~VR&}z#1SK?$Qr}bnCpgTe51@3RZ-<#am6Og<+b~TKxWI*K05d5_!=n7Wq zi;iqGb}9hF1N*tC&r^qw8<^-RYWuHqvMAPAOfO9Cm$P2Vbp-U%4>x+A& zUjzfTw|sjGDzTN(<}_Bww~sq|m9!sQ%+%T7fv-<8i~PRwt2H4nJB%C6wnUVQBQuat zDfE2n+aQs1I@0a>CP8A9>r}%RySm)Fi05yI21!2h*5Avk#dHk16vs@azL(M7uN0YZ z9vzBE;s$jqqve_&bQO?Mno*vFX#bjfM{hw)UXO7{iqWm9*Gc&^!#3yPFp1|CIehq| z?@RPmx(|P%tEM{4xB^{%Fe1x}8&nG^qK@`I)D~VbTttZNp49wNrBG1#(6zRYwE>P+ zKAsh}9u&*^GNyoE@}re@ zdc?W0j3-J~2N%Eb9A*UeUwiAhz}BF{K-w%-71(q)k@8YmZ%i1-d-wpFK5eLOn;hYV%-C!EZ>j)bwKe_rOT+c{j`Ced z#9LqWOd*MZ4|u)asaRa`UjTB%SBYU|!*ogU8N2^LE#(MPlup zfqT29HFB)Ge{Wd)UE1FcNq;>n9e)bAadglB(s&r{+P@*k<@R&KyaaXZD#Dk;Rv%ov z9jDkSM%eTP0_6=-b=UOjkBlPTR+FotMs{aux+4Crz-|?`FNc7FWX;EQduh|i<Lx^d*#Cv*v}iNvMqe*XADVY5#!LZ@xy=#@@x{JVIRBD_i@WRRaofZ>)y>u02PU zqPDmc=NNXf;wc(y2*{PUOjy>{ z2Ou6|U+vmjo|ty=YvK;<)*hs6>={D4f)^uQG>dd#YJPCynv$W{_+TRZj9ZQH%Q&4> zr=sYxnLyL5acXj>ACZ!J^hJr+egIGA%4?95YuUF<0-Iw_qD20h`6%8dUc!%D_c6g$ ztF7l~iDyxWs$k{&JfRz!zZw0&;ci~MqimjNenv)ui;AK!A!u{f`^IS^KQARVlQ?X# zPW?DpAPF;?F7=vTr#RzVzW&{z_MeITmQ#Ik;yK>^e7MD*!?U!Xgk|s{z^lJ(P*$p^ znem`zQoF&h7ilGW2&jbOSGsomwqz2>f`qy09l+h5R?D@pCgH!rHik9IP96=4*`ZZE5j+_R-&o%8LtOhXBiMx6US*La6)z!skM3)3D9e z47@ugX|kNskbl6hb_lqKdmSE<;dIMkA?yLep~j6TVtr%{A=cT7VY=OhC`mu>(CFgN zugkZ5-KeUl%&2x%Ux#+S0z`nd(-sT1u#VkyEKOdc#3$v%@R)I{`}B%_auH84J|?>n+W( z7Xx9qq~biXTBwt30wQT`s`}!^3?u09nx!=b?Xy%hqDhU}m}i$L42$;^$QHgG;q>MeP0Jzh9c-hOC&R0K*3Go499 zjCuiodjE1dBI*lQ<*c<>II_4CDD$BI$o%O@vpG|LA4Noo!8c2nW{C;0&D)l&^VQVL z-b-+x7R#n>Docv6;^TD?!TmOuZ=#pW63*>;4)i|{n*WdZC80!vjufEk(&Q=U+h8Ey z_GrM?`tsa#U<$`LIT39Vg1M5z6JVZ0rzxR=dtebFBSdBp{x}nGl4EIxDZ%{oS8(z( z;MapOfyN`xCgFcWPC|M;!s@Py33c&B>evK0_u5UdK#h%>``3sUIvC^i3z%-1E_tJY zP(F*Sx9fI!GR0Rdb>^Bu>A4fRNSi-4GV8$4-Yzug(fxL;xX3s2PwFC#HO?38RV(Jx z@L?78-FT}#>MJJF_{i+XWhhd9=8NB^sa@Lvn^Ur2{nCgi8k-=~uNngM&osSNsO8n{_oNkm!4M{i2w;qT;Dilm2vb zwg}_7>FA)uNMj78e#5C(vPSFD2Ch6i70OqcdfvY}eXx(boF_Q-5g%1rSD(AH9E40| zUPNXTO*=czt2!>Xr#nkSWsjUUb(^#c6ap zP2vV29cc?qq3=TaqTGS9Gg66GK zQ?2cIg@oc0FIcrtn0U{>z2Xt4wiKxHn5JB~X}cYY8udN8jSDV2hUPMf<6y=7eOqF zTsarcfbtiEVJ=00R^qv2 zeXIXQZ&G^Vf=GF!!TiW zF440JO@k^-2d{Uc7mAa6lJ6lC4BPcESJyPLK$Gdi4LLtRGN`n1_||`$V7|K{m7vqP zdqSzZWu#7Dg-g)}W^O;{n(P)Q6=sm=dIwx@vrDL-edBL2@DOqI;knI;N~+Xd55sOl z!EsSPU#MWU+0pH}Wx@$3S!>HsBjCk(;M0yO$Hr7;qxM3b1{M6l0P#S#)>BSmfR=or zx)v-!!*RQ%ik0G%1a<@AHOnCay7lXWcN!kd5hlDW`3D3?lUjzBYQo;x2>3;?wR&wu z&nvW(ALeoA#6+3PidDC_H2g32-a9I-^j{ZuT6#BjV`gHDJ@&4dWYnk;V=sVCR5UhJ z6njZGv5u7pma!mKj13f2Ce{F!u?G=}1sh`TEtl^)_x{dZ>zs4fS?Anyf4}uxmp|B> zmtEF=+3(B#JfG)zKI0rAINQxCsbmP;=jRuJ#KE;eQrY$jDHL>of2fH{R(g~fRAx=0 zh$Yx%*yZ7H__+G`YCtd8(*SLoHS*wnbiXJ>qFBa!2~KIexd*%^*uPSu~|C?xMiNTHYRHxThm!K*krUU5TvJ6BNf_ijh?6?{UYhIXM*x}l{y^9 z%MW{#L%^1o`kasMskeax8cHJ@&qJ)<9-Tc>Y%N`tQ6S>K@mRWcCKCZ)ode+)8iiLn zvblx;1f?^Lma?mMUGVCf^D>$w2hy7+&EEH5f{P>T&+_cxcQ`U!W zMN?A>H44wWmnZs-K$l~UV~g0CusY>x0+IyuhtoVls}<8wPh1^B98}l!;5u7DzFl~w z#{&SGO-i;D-rugAnk{p;6bIa9_K-TM!|i}%P1kmedX@i!O4%Mv{e)meOmURN;fcMW z;(MhZB&(KkBH!#^duze>bP(=96R^q3$do8ak0wj(x?H+sd3|;{ds$e+SW+ib9H3vp zOwZ%xj_!eHZM2m!N{ls=*o#drK)HCvMBErxB6oK=R6YLerZ{LyHpvjc_W=EW%ZEA2;s`+M+cz`Vq0PaKAEfMtgqaJ1>($ZqaX3eO+*bfeg$zSa30%1PN zscJ1=Qd85;mve@rbuUe#8YkfLNljdiLZ-v6q5XrTA~YXv`L-EtZ7@7%>gWDsJ*7+f zQqDNZ2!2406I_*p3u18OShrCAF&6vg&`R{lq-weOqhdg@eGf*A$TxtxOp{g*^T|JE zmmXL8x7>DVRS|xhRqnMkGBf8Rn0wqu4++eO3Wv#Q<*59JD5)0xzAvwcc zMM`3VUz`%}sMINZ+G@9%r}+;WnTBtv*Jh5W`%#(-TpT=1Zm1hy%x|f1H|RHfd5vT6 zfxHDE2QUQqW^z8-wA;MgrEY$MLsS-6{K4c=q!dg4$z~1+Igtp+0d;6kW$?}uj zIi{Sy#sM=fY(8A^QoB`Y7XDVdR6)pf zPC^T5%4q8|hluGvSd1-HE{R&a(XGGdZiJvC`20ATGN1}C<=I%V2gQ-v&5+h7`6pcRPffsFxcegSlaYYF&y~8?edWV)ikO`zH8l!84c~aq zx>Uw66IUk|;zP=p9BCJhDv9EE7U1dFw*K>*-LlFlYaYetuzQnyS^v^h=A6_1Kd>#2 z&;PXi{qdW)6egFF^!oo<`SEiPI^88o(wIos z)YohQ_?)=wVF3yv+T8ZRaO(JdNxEs6cze9a%w(RqgkE$WYr2G_I37Lml# zRScHMfPgCzB}I@v>@1bQ&}i@1RQC!b)qC(Q+$=(=Hw8Xo>|4w$b$LS z3>}2c)2h=~bqrEF9Nd0i*2+O9?~P_@H7sX-Whabj_Ts|1BJ*uYzJ~gyS*Fwb?R}V^FI-V3^K--4JmhMuN+Mh7J6-gP#-8IFoc^wxY z6&-`1ky-rxT5D+!5#F$0O<|{C7v=|H_tCBCt_(sepg(-{6*$xN%@df+yU{=7L<;j-bw_>S!(XCQT9+ZVw@t*Q%FQ*9>EyjP1d59sc z{op!i|6p`0kcCkJj;T z?)m<`^-*n+;FZOXfoEjZ`L}t}GnlP-d?+VTP&7AD{;$97-?6My$|}eh9kv3l(mLuB zUTSx3gSN&`P_^x%_H#i$-&TlcFfdQlOEXQ;Nihuc`#5(3z(^}~kX#kxZN|4RS$LLJ zy$g_?ta>e4QkjMFLu++m6mWF^BfL60{BpTn#`~OP`{D^296{wp>TS`=ABd8TKJ|pJ zvPN-x{)r;wr!}Mg6B^*~ZOReka#m35uuSYyP5W^{j-#80L#4TtP;fZTf$FI@u3`i9 zziYU?&4f=L8l=XstEcH@-rC{e2UmruZ1`@4Zja6vfBg?{>){u7&Uv^}?KGY`R#sE2**=HG zQVT!g66p}lQB^o)ddaiNjm45I8Y;f9ezzvgOh%&EV-IS+2`a~?!kqUmyZO+x#({#G zwuM3uy86yq!=M-RsVF$9Kz37BEmoBDjc0yY8#|H>>TU7k=?n~Bd^{96$D^)CerICr&m>O^HqdfA)es$ z%H$i?6EUTO^Ye6!_bzr;yrA9L_q7-T{mgN^+q;=j+C7S&E1IomLWwUDdiy`)U)C$U zb*a`}h~9_;)jsu;Dq+tpHfu*@Gc;o&Rju()vL;;A$2^vyc1sCXEK2^WHRD0>ih#r~ zSDXyEArbaS5YBdZ%rr6|f(APQIGK$}LI%?w!zF(*cA55)s zA2;ht5zP#ee^uAC<%gldEKaQ1_;>t~`SyjbymkOZ`=SG{RFJ}(+>xD9e+&>gpW$t= zc4gaTF+w=o^@fQ?HK1kLZ)kL|l652&v!M1TQ&CPk3E8=Z) zeR2!UGk=~XdD4OU%vesu-Wmt}Y;T6`$_0pyz(E)E+uA}c7{yT+50X6pK*2aD<*2K4h=!SbzK|=wW3J9INK{1CIds{h z%e7@HMld_DZs6A4R;I3^W{Ub$_Rf3`8pxzZ@E z;yUu${~*Ey9YWLNmJbp8aqCGqVfVvmDdxfPzdM;tUAbtIW0lW4O&1*h3%Ir5uxV7;?h2VIrV#xJ|;%gS80nIV%FBe0Go&4#{P` z*M=gef??(v10*ct%EMRd^@$CjGIqjBE{0~7h5p@_e=t^35j2@Kb&3*+vn?92NnfO> zf*@Vdrlr2l8v2J=0RNx0Aw<=W8`DNvX7rjs+;zYW)Y3(<<=Be>s?^_RSEW*gO`eQ| zw0doOhCb-5H_uYG`h*2lB;MJZvNzq*?xBDU&$`CF)4N{2JT#~hsMecwgmF>3LFw*{ z5KP0uDS+d0GF`@hpzaktW-p-Ua>wND&I#9>iwAt`*<}qCss?V$etjKQ39m>WX>!0A z@vH(A>rVNoW80hu z;j$IAo0UEDE9?TbX0%qADH?Ywb#=PtJdn$h#cEXly|YpRi)1yS zr9(*(1UMKn9#}1{J7Xz0+%D+g?)wq*WUetZ1TxK(X<{f$PW$N^Ns6HqQFq&R2l1{O zXEiPN1CWK~5QwkNTi9^m<_fi&vf_tK$i(*~B;CB3i9>+rT5emwqcvv;YDsz)TtBCH zXz~|Vkjhd;qdNuHB@)KyD>J)V47O&p;xu{<_{Uj)={Y23l|rgbl->o^En$y*ab!CY zWl{9Nk3~av1IC356muxRxR}{mF0D>hD${Zms}yF@5Kqh-(aq zl!aH2@u%)I#DkvCc|lp3<>k9D->L{i>_F+MwET?gn@E6(aNwA+;+aA{fl%A673X}* z!B)!*&y^|N0mwFI?(mkO`CmOl+bhwccl)(QOwt>5B|XxQSyFS~c%u9g2>*wM_IDSj ze0IiMv+i?3Mj~?wAw`x- zp9kLtQ_s;tVt_L1(T&TffW>t^S8XHnI)SoCqeMQv1Fv zXhGa$3uzs(nOLYN()E3H%hbtbl!#AwZ0}?6Rl9DiN}%n7<=KFd$=qUt;l8#O`i}Z! z>}Apuykb?W?!~L$FO|!w+=QvR-%1a%hnt5MjL?1KCjSnx9X7=fAo+l3<@)mCJ2&2h zov2TK)IZp&Xi{zpm7H_w98=hD-iEeCSDS6{v6*`rwMq|Yq8#h*zewXcazF^B z$(~uFy#hHG*U0DxQ!XyC{THCni+Ki~+|X_9hd+Nv^kItDHuT?mi$RpKtm}fC@2zC3 zV-stmz(ga@$(9pj=7CM@88Y_*ZZ@1Ky}W(Reb&<+lVz{3?lsML*l6}-9tqHGDzhLP z%+J;>pEWwG)VtqP1{9W#n(<50I%IcLTggXWT+RVG&U{TP0eGFQ3m<0If$bEA(4ITmflW3 zuXU}m!NC3Rrtkk-chdj1_UkeJsdFd^qtns2ixOv4l|UU`BbDtqYYwJvksx)1SE{S2 z5fG!UA{5{~NXtzH)sJd4)_5MuPWCXeo7UPK$|h}2&LIc*eGcCoIA-*}4&>B!WZz3j zNY%6~SJ*xE8k|{=>l)zf*F>H6`_&J)LWjdRyT^q5j84JGeDfm2T^er59NOmj`*4%$ z+rWkuvgfQ%?TAF-XQD>4J1N!pIJt9vZo1}j9^9hmNPlD2ZntLN zN<6Rr1(&>v6RxqHZkeopu$LIk>2VzEZyJ1@1&gVQ$hEF-meGcihU?Y1!cGTw9}-`a zXA+e?Do-E-{l}Q#Y_r}-kqWZTO7}%w3TBW{vHZ}qn&kZn(Y>E9^TDoqbWN%U+53DN?2G3GOgZy#Z5|; z=kCkBFZTVrXINFdV;5NdY^(~o-3;7P@5pZppE$^rvF3t`%D{sa!ij(=D7+7#W?Nda z(EBHTK4xu?qyirX!!j$e*D?v@Zkd3iuGB34+t)mzRj0uw(#9A$)2^C}yk`v61$VM7 zc=OT|Evx3T%sEyWQRTO;x_%nlE_j)PbZJfo-|HCotLCilXx%{^sweRE#9APuBaZLK z-Q`fb#FVn+3kg~GXx(i_6kJp_BFq>tQAxmGEEM^90;&SUroxB!UTmGIJe!8z5Z#FZ z&hK1WvMG8Bo=}&kpT;$i51x@K>t9!4&tnTJHIp4)gd7BY~Q=8pj+b$_Q%Z~EJN%rf?+htyF&09yiu_7zK zc806oCsX&|bUNqhC^)HEb=q%v>U-UJ?@(9WT02A3=Cpm|v0+ahrOZ4aR8|($VXrM@ zIK$LOewDi zXDr?P#)CS>EyLo!@z^DX;m@qLXpS15khd_rY$4FEoz5xMWoFit-nKAHR7cp5VY5QI z%Xz{2QSs%Iv!^AE20xEf4sTn=9|+O1;mNkk0LuU_i`iySN%QY1=zdMpTF(0%7Z^HbIO#@E!iJ~PX{J`xS-`%#ajivQ#333-VTT@OKJ_RR447*Ma?OsP z<%)YqUc7@ouYeX(7T$UbqB@X6&?S|QT}_sW9I6G zry)Zjy%Q=ya;|T)(rj`oQ_~Z{%!2uII$S9fX`*J@{7=l8D`pL*f$ zjlVSzzdGOMc&IhmdjhJN#wJ(HY@F?#bMtU_?`}4Re$fgJn8d}LgvNbdel8fS?F7R` z<{0U-+wUd3cHp?K7yb5hN89|_Kj_& zSGQQ*QhMUF>-EWgdNW7q7H)5TLOJ^z4`SxDo76cr>kYCgURLQwWlo1E;hIhbC2v>w zuVlItqez?X`wqJCFs(!zveSq95rq-SO%8Z02>waYu5IANys3;bzmcz?NzwWckrTd+ z(W{)j(tq<)z&M+Zs&ZZ$Ce>IZadeVz3>B8Suo6>cN9!Ww>ft^9r`1O(uAPl;%R0xH z)UxB_>fG7$-V`UqEP6*G10f-xvS!8L)1v?57m7g-><6>6Cb+%Z&|IOsMw($GvQ0?9AC~bTrr~ z9p2Q@Xg|s~KaE`&gH#y7HDt{MBPI&&r^uX;rXBS z7veEZ!&(fPyK;Q#>E^gPWj4swA}2mMhYu{gRf_Q1Om4{~kCnrMqx-wyDY)HK+gXxj z$&=-XNt4v~Xe*SCVyb^+soIxjPePmL5Ocj-B?Ek4!OyqcV2m+;Eb=LKJLLfcsQ67#`&9lj%*8FA;5@q zzqff+;{`>>r|JSuS{M=KV!ZD~-U+*g2@rXe*vAFYb@G47ii|A}&BKg)tcy%mC!w->~Q_`IX}L57nvvYWd3tiq9smV2FxZFz3gsqcz|9U~Z5whA^&-Q8@_*qViU&D1z1DxjD##OxD5SfyKR!XP&qCs*kk zm${EaG?&%-fpWzPBarh=J+0f`l2b^A-fpv}eC+L++24VQdO1KymaF{XO?NH&gnIvo z%@n}!v0Do-z2(WocD}}6qv{s|H=YsfCw76ZsS1e12@QPRafW`QfgI+nL(lM7K{?nz zy+HM?+QgFtw$}Dx_Np9)(Oej44-TG5HdtB7vh}T|+#r)zMlf1UWyZV}iUBo;Kv$H~ zmP)X)y8KG+r4^lOa(|_8Zc+=id{G#vDPaf=a7|wfaYSSu(tTqhHKb*4v3G}eUcuJmJVMhz_$;(vAp2F9; zRxYu20#1xBW8R0?2;A@L&bF}5hOCOXm3NuRG@vq=9@$3$ZG9{FWzaK_k#Ri&k!q|6 zvF@Td$vqXbQ^JRnu>tB|eMEg70z@P4?TEmEo64EK?O{~p$=(Dk8B{wLwF5hh@f7l(X*k0cx z8;K!+pDWl6x_+Uf{&L9h;g}OWw_PS=RG$g%-^$t`{yK6uB+x*yxRcP8=u;b1tMJ-g z>8!`X&0@Zp!#v0DN{(fxK~thb_4VpU?9Vd_?vnG%{0{r#8n|Tc^RS0i z;)(Q5SPu#X>BG@E<8FVRYcguq6vRu`FHN<4u=^Cya0kD(H1+5^6Tvp{Oj~{>CeX^1 zn`78(B~qS?%TC|jq+AbT#vmmKiqCoOP76p(+V~dv#~sWiJU=hlMpihi)6dloolBu_ z`QuZL){gd;AANVRykZqF(d0yy)Y|GYa8jHnsn0*=`2kAYf6h}g}F?6t7Ewf{Ps z_3zVtWbl(lM%1d4yXRM1y4ii#SEhG+4zE0lsXcve4xc}_8+hb?azU$UCm#Lcp0$Fh z6fxoX83E8tjMBrAd+R&8Ri!IUPO^qJ+QvOU5np=y&5s?Kv~mUoEmUU$t}I8sY;SjN z&AHVOG@qZ5#Rp>HDE{LOI;I9hzxJR8G%=MAyWN(@WSOXz%z3h zQ-;|`B(kb>@dkIe%E>H6p5|qUIv)X97so~)#x$2Oe$MxD| z+#Lrf>P3N2@(8$3*_vX&t(IiegVA+3Lt4aU2=+_Ho3tyDEAa`NzOCw$!^;Ktl|H?n z&i`e&3Gsbzt1Jz`2iA+Kth+*#!Cm!!5E$b&4oLlknSnh2p`UH%+ei9-$_c6v@EISa zaBOLnL~&l{FHkkSn|9DcVYO(0MK*6qG%m`YLP7Kxk-Zg=jZbZa`d4Y8ms8Jw;F?VS z*T2LSaYk_}Tp6Rodfokq{=-5)pS+LB>Bq`2Q_^Ir@sI^B9SromYBjy+$+q>mD*GiA zs%R%kKqxItfAyYx*fT_~(FAl3vxLk5ADlUiHe&3}mT0`LTHxl~W8)e_L$l!i$&Z{V z!`orTJ=7jD%yG}bJ=MNgVOPKJ>dO!X-;4GUIu*&b-MCEKk=&AF9m8)tIwI2uaeJM5 zc8V2Znr#eJY2WQKQ(p2wY)Kf!j&dD=C4Q$-+oV{`;vmFT5B*TbeI%lHHX7@j^l{dw z$P7bC&tHX^atzu;MB`rGQ(50>6C3>~7oO#{T(J^ORcm?2ttFw7hikzzR&Ucb-#2-?m;es6B^l?M`X)2)NnnMLfWWE-=6%l1gnHt}AqDwi!DqEuwv zPw+O=r+1NidOjCtNB`P8de7i4>!ApEq%8nYXogy8<0~8g;~+06>E6neTz%?n)HX0Y zzu@XD)ZwR~F);us?S1@vqeg&J#+&`+-giXFXjD%{-$=>P-rDA)6&*ZJ;Au4$;&ZSK zp=wI;jeAt|5i(~lA4EFbJsBXuw%+WUn@%UfFRDe>R4)K{iH)E0`kH#O;HUuN)(>-L zu#IKB8P^(jIACS7F36kwhTpEwRz)s}YjI`8fYBA2!_t8=VXFA(OXCfB($izjox-_+ z4Y^vZ2XqFA(%2@YcPK@N!BAWNjZ=MWrRkn4EG8H+n0}z5L}sP@HiMSKz8SVQt)5u` zxeQ<)%nCdYk9=n%a&LtS_oCV))ve|A&1r3JwR!IO$ViexsnD`3@D3pY=EBBLdf-m$ zdJ&V^iv@k7KCBd!SEzUaz0dgxDrSftjF%=b!uScL+)!faKu{-J-$^Ut8k}xXJEfYq z{>)n^RwDyF4zsIEX944UnQQwmAK$g6D8?>(8uc=yY;5L++OxNw3i> zzQqk*gTdW;^s=(my(qsuCJ6&3pxrioJL}$}z+pf*+(yKo-hfQ7&Zk0apqK!G3}F?H zvLEj0giLSa1kM>U5u?#9dNk^3Jj}%r9ORPUo9RkV<`VI13ik@rysohM+&$=a*IvsL zh&SdlqN%Z*y&yX>Njn1DYOxre(loZdaVroOlvwVUOX4*TxHWYOk^TE)MRHo@#Vglq zVSUDBXvw)lxCtokNxL%J)pgD9M2Pq-S2sB$zN-#%=eTmdVk%7U9c&;4<7wmhPTlLv#@Q*(Nt^CEYksXG4c{iX6Wpr&(YUQD-ljs10kPh7z;M zYR<+dX`M(7bt}BMO((V)053P|M5wt8xwfh@1)PUfY9Se^1<88h)U+>EpbB6B?$k?d zYz41T?!9(LTPSVBi!OUBiw=980a`Eg+e?m;Q76zbLD4nT=!+Fjs5oyI#m6I+ZM=ji z)0$B#4p^NzHc<1c5xy!W%Jg$yEyk)Vv!cLDV#R!!rcc=0!?EGXiw(0g)o<}*pmKq}S8|Mz^Wz#+r0J(%Lo}S(b$~cT3s%ltF_INFc)TU< z;W_(&KtU#39Tw9Xg`g`@xD4y)K3L(yvYGi=$hgM_CuthA0Ge28D4Iw=wNQJ=Yu(XX zcdzR+b_wu-DP}@|lN(A3Lg}T!1#gitL2Zu9ZPZ_$HZ#&v0ZOu=28#@Ct=5xCoArc6 z0`KrPVR1&j`75*1{IPw<5A(`c_C;Xk{Dc)-ETUv$HT!6PrEoa)(xu**hgYhqbnO}( z@kt1aW8DJVy`|dHho)RoW%yP8wIOVK!vtO?qbGm1kwpj7;?H+k4lb!m)VtvNC$wYZkPcswOTX zpb8Awk2)gV5pq7wdY=dd0N~sb(hH#6sR86wZwcbmz~{dWM08wgQAT=*LF1d?zzWJr zP*h_BM2PA+ZrPcnuukqAUWU8T6Z@(dUn*g;_1QiaS~NLGU33ez*vHa;io>7Ic(q-6 zvFqRiWEgU*#Crj2=9_PAl@u8;+H7)|NwWW|*rwQ$C|l+^m0O7>RhWO{>D=9-aVGms zE3D2%>-6Bv5|%31D%{xNQ8!wStCKYN_{5rfGnrQ`r>`qF3x#ic_+;6=w{>IJt@gJh z{#h(L-RH8w;hoSQ1T^`j)0dR-HP@W}F;p7pDcEN0sa*&&Rq&xX?JiJK2EDUN=<>&LQ63=MrbhGaJ|IHtOYT@Z zg{jVmHOs~552NY^gS4Y0R(Z{!H;sbIbhqlps zoASY0sYdM?Z|$pJ*u9q~%fI86MrSWE!wBBU_^YE?4(FDIgrS~XLDU6^|8=tCZcq4@ z_T92(SWgk)s(;IkWk*lS3N_^58N!PJxKJs}dgUTqDW;$I$AlfD17fZ^Uhr_6!5>HEZmS_xIuE zz0wL!ZgX8!(cgHQkJ4+diZurtqe%-yF6%OUNzJSRB2%4v$T|3a{~vXDBqfGd@083A z#g=g6;i20hab*kfjN8lRkU0&PN9VZq48EN#W-!oM&KI*`b?n+So~N)T z_eW%8?uND`-SQVor6e#b188Q^Rr-ym+%a%0=d!etMY4T#sa;-mZI}g_iaA6vPvkm# zpWjQH_LtS1ovi#EYUSY{uVGhb#4yDH^h7?`QYruYH z^}PSx`_I!1r8`MFiroucoiE=w_LD<_3b^^V$94389jVCq#U`N~H4nOpqJ@a;Y6YOV zOL{+|XqY=s_%3?f=hw+cB$v0up*ZLZe#sTraaKua{*vbOD08oyyI!T0uk10Ub5A`q z%G<6qZ(u3Im6*GGtVNnuCF|}Q;fWf&@QtkWie8lD zMTktWwqtG^p2TR*<#A*Gt#;T@)v8eexg`35qKbA>bnG_w{1boZFo!d0bG@(>Vb5}c zhvC!FBDMj!HrC!`zk=U(fd}Z?Tps6{rTwNHCnq%O{oksfG$URbSJ8<1lHth zP8m_^YeVH*EX($YqTEV~aOPR&&;nxDLCzm%R4+al4*a;KtX!KFPV*;LSR>@|sd7tP z6+Igt7vURs{u%xYOWwd@Ir)ORlk804tzAx%_9kTf zNOk)6{}%)EKljylKe7xvh71Ba&%e}5T|?}O{^RZY`>Enbtdj)IyRnM3TP{40d3eNv z+bUKoDiyFAbduM3QyEJLkruv^K!d|6%5|R~*hCqbnL>~M;JSYK5W`Houh2~L#(SHa z!{{-@U1n#g{*H%jbq|hzY|kt(Jv~al!0w>*?4Nq*jNf2SljSO$coTDdV4$G{dMF~w z96r7!?J*4!t;&4LH#N6={}B(*&D`0aTJk?{9DIm)RLd(qDRx`+s?61#_{?}Gh1IM7 zSV?^bPz83azV7_1jOY1(u2245dw;KbnCt%akTm(4 zs99L2e>V{RgVTumEf>3fO>>btST2TWPW3#FJJ7kVEgIc)uuWxz_~$i+=6VapC|a$9 z9ajGta`<$r?KS9dd(qC)eng7hL9IK!D0gGwaW(1*f>R(K;5n&{j5$(^IoksgL3Qa=JH)2-^n5C|q;_Mm zpC~=>9W%VPISOiv^p5Gh8Kru{~e*)Pm*+RdS&scwGAula=>?qddOx#y{Onmt| zbueI79VO>Y)(7T(hE$ zRTlB7F;iAWzVWE!UhdeOZoAntxZ0+Dqaw_dCb(Hzg$rIiZr(k;AH9}b*b&A+r%s_^WMc;0H_GTP#o}sp9UM8wL6JtZ!N4XeYUmwdT(-~8% zbIJK*sb2P=`p>G|O!PT_5c3Xgvm;CaXOK3n;HK}H!S(hPT7bO@@iId+9FR|;-X23kIR1xZ{4g93?$0RnZdja)fklcUMzeyRTbuNrDnT)|D`-!^QK1G)M(+Dw!6M`M2yG8vl453R_Q=*xO*>#I>`Fe&B%c^$_4;XR(lZHmI7bYzE)X@wL3pzFnw(27M`UCUbP%*Cz~? zxP+gce~sIq`yY!;tWEnxEq5o^k+U-Or-PGp0jWqi6e2d&>wq&JJiz-ps5U5AnO(0` zM|p|$-mFevL{7+g)zVT<_1tZ)hi&Y6X?gi+US&_@TVB_*cyN4I^K4%V3ifKDUHcmRCZ zy@eHh{qK;&TgO+k%GSqfou{g*{D@vc=AWF-lgo|vvCrYZdmCP8s?>b9UA3Ygo3OE; zXhIHmegi)}Z=o>j5l5FCja``j_%q`<&p$E9jJ9!x$Y*~DI|u|32i0YMpPjC(O5)92 z&`1kP;Af*xl}h*1cOGng&+&6Py6wJVhr`73c&(B{o8 zNiOSd;Y9{@=;LNXjyG;7Tjb?Stdf5^-JcZt`AA3mF#O9?;o2>A`e{q^=4f`XK4yJn zUo{y!)~Nmpm24NBD_W?7qKDwUF{HOAVVW5()2r8pL*&anW{4}TU0r5N7)n7bUBXZL zs-}XFf194Yf_k^r?HUH(k;C!bG`=xftmz#S@%zF`U7(~s-N%t!v+vOdMZExu50DbN ziG|m%af>{R$MI6%RQHkIDa8BI+O^UgX62)n=2Ipc`}Ni!O6ck_ddYEy{oB(knptVl zAuE*%kzLTr`euHYkhuaca7t5*hURu_##R*E>$k5>yWz-W<-B@q?onk;L!G_)%`s|( zM%U%%KUil2ip6Bc<+^$*R-lxWp->Mkos1-WP^uhrpf&88|DS`~e#sH*d`=hm#>wbk zXHA5NbqclixgL`US!O^-1M#RYfLD@^_72z9!Q$V?gU7~oS4;WYue?1{D_LUZ5cX)T zV?&AloYo>nplHuKbzjW-s%r13e^*~!qC9;52@&We&=MhPs{tZwwYJ#LHE>)DQhf6! zEncMw&WxXHOqfCUxzE3LFf=uATs_PfV z8msN>3AAbs=bj7BP$z;f>hnHw@Im$}jKCuva`^!x`7y-1yXux+<26nOn{okX^=8g3 z6BceRc>hr}33@hb{9&rf)k4DzTuqFi*3G46AGK}HzUGYXSX|*}S=zKRpO;ipQuMWU z&7Oe8Wf9L1E~(Tlh080V88$?z-bu&k?vmQYZtO(F7P~-UmDjsjaYt|zdIZlN2qgrt zyK-{EkM%o(2SRtV>5Uup24A*JP!XmT!}B%%ZJ04xQ-7jcI>S-4{)hS7H-;a(XHA%B z&gZ2alxzN0g^;CT0pPa0BV5WtN@!uZhmUZV8U!qzySdn^XNopbqtVLk6i7~zXQdll zjt8*qiSR#y`z);}n1|!f>OtN4@@f+SJ>(VlA4l^VBKQX?eXi5?cJ2w#$`(An$|_L_ zcn@zpJj2#YDLX4SuK?O|)AdnLD}2quh;8kY@4vBItZ$G(YF5XwQQ4BtYlvu-?!x1Pme3fGM?bv2bdE?B@n%rrdY){L5p zhhSXyGX5~v%L60CnL9u-PcYANXF-y>62<4LSu*%Os5ZfkE6vWGv##%SvTM)=*-vMlj=#jZ`mxST79CshxxT`i zfM&10({p$;ZaT8{th=)|RwP>=dZW(3$71i)^$#6;1ZKutC)D5!D%C|pOpgz4<2-RM zVg3HgMV_Ce#UR7QU>g~sfWd7P^tP&mS#5IJW>MAGxj97 zf(iqkF*U3Zxv1)KjET)b?&HTM?=8Z2sKTI{G_G|e%AfNi!GDT+K9G-pY0n!sXWXj6 z#>5O()QkhA{V+etNzf-`y27BlF_A0KzZ}Qc{@$urUf)o^W#QpA9N-O0zQFt0%6nW$ zZP!$N#}A=FC6@p3Hh;ELzz1A3(d+2G8x;oYw`RtjuB~|R2-Qh}dr&|~fwb{m)3oLupBK6Uf zEQ>y^FDwB?&)iT`87bVF#&da}NX<(=g2JU5;6t>wa;ZwSG2CS$kq#HookPIb^{a|O z4GK2GlRb&mq3W&~kmbfiA=sAwE~Blqo9C~u&ziqDi)maIuBsrE_uI7HG}_G_$|POF zo42fYO>@kJkBQ|o7e_X$>?fuaEFNKtsYM@##KrvTAdYfi0fH;YAEJMSc| zv@pOp5IhlhQ`-=8Lu>y!=C<{Ldb0c%hf!*lVho0GbxIUxndtlTHiS(g-}0mHNrS zuI4m5!WsBEx|&n!KWa)Q8w{7^pKw8T@=~r%;;o+SH5f#5=6)U?ATzwvTIJN*4 zbqen8{3+Q5q?x&){;o&vion94sAFh&3ZD%KbW}V*M6jjy7z(?Kj&p&s#3y*^`3+oF zZKH9opySktY_kXbuo$mOCx&wGoloA*H$Reo-C~IF=V7Q9TrD{wD{W}jk@WDEQb?cn zQ^<0dwy~>bdX1?G)QIMAnY0^l-243BnA!gG&EE+a5RHNjsehgSUUz_EI1&?Ub^7O{ z>r>oCp(S>RTdi&5`}_ZVn(Lfj_IeIq{A|(?&%C{?`zU7PwCMEgXeOb&A5uP`mx`I4TugW2sBx}MqIP(@Gsc*ba3cT zL6v$y`lN-6`|6{h$Cst;gT{ME_3~lv`lKP^4Ks7ENgq*#t{R7tQ|q8tuvh7UK>u1i z0-C$c8rLdUTkQ$euRXPT72|f;ctXDJ+8EbPnoG-YP~UIuBGg=6c;*bv%1V86%en>a zY4<_E6Mz9drA%MQKROAh{BP~O2T+>p-{$W*=a(MMNwK#i#@=G@dQK8GYQ$K;f@l(Z zLF^qpDaNR%$A(c<61!rFs36!9YwTTuh}f`T@7=Tf_I-EW-T%zKv-AGX?(EFIGtPqp za>Lv{e0lEgeO;f+*kA9L*N2PD7?pZemuT#sCd8amf@2IiGF1I=1D-9PjLIHB8rSWS zLw5CCX4l`AxlbCkWT?vYwuA?J;^ttugoi?>Jk_JweLS1k7Cq_+W6p+DU422B_U*v2MBbNRvv;pZI&Qr8 z$C+tl;Em~*!kY>Tx2g$Z4S-7{3Xfe_ckXIyW~*#J)Xm?_ z4p#QCPF?h~bk?u{n&mtxOI^J5fN)1xY^{d4Hqw6cL(!~2{q+Vb6HZW1SK=M;ljT<1 zU8;F*M{z0Hx5HiD;LsnOP5YTr`K_~Fl7|^%ZR_N8D>wp$ojtB-6PbzpB0oTa%?2Uo*o_6)oiGGy+?`;5^OFQxPB z)8i{7Goy}ErE(0;*^H;9B}GUvzLyt4WFyO!h%0zKVqpW1 zc(Hef9h6IkY_6Fp+>nhV6s8^_M^bH%SCNxl(zFoz>lVW3@&r<8ryXm}uE%an7FVsA zpZbf%aKjI^ybv&#$XPznczQ8G~Q|D6@+LV3Ei6BffQTeJm$^lU$o#wb7ZYKT&9P`mZ>E*B>{HK)H1y;=E+ z>A1d$+)mEic9Y$_=q(UT(mPI_nLHt-u!OR({2NP`li8&Bqs1fKq+kiZuZHikn;Rgv zu$jPabit0Y9F*&~<)NdpdE&Da4;0Q6Zk|5L>}Ms&PRH$)J6r!C13^VxC31rb)!~iG!r&=~zN@WTDJr}BuMS03 z-h1_8c?1-zuv9p(WXDiTg^XiHFA8pY=|z7FXHUyz^k`_@kEzq`__d&G&jU(v3-*FV z4=f%>;Mbhg^m~t>rN`&R`Tyd9_~)_m=z)*oPbFJSK#e+}IuRgqy`nQXgfjqp69l-* zhY36YtKb)V>-VMo0ry9@eF@Ndqoz3QT7e-7l`SEcZU;)&44J{5ZDd4js=V->5|}eK zH}AuiHJo~0ceAJ{5*50l$EG<9?%AWN7(^qiYZ^wRy|x)Yn;{wS>q#eLkv)R)ozS;Qh4i(J}FWOKkgln2j6 zDco`fpf#^!81MO@rKJ|48Y1(~LYr>o#(7kxaIkis9ktwnX=t zAUq%_puC7(WcJwq)RfZcXWyI{@PWZzXaBj(wWU*H(f1v_M`Cu{7a(n}+uk)&*%Chtt4aGYUfk4l(@WmI7e6!E7-pIXOY!bs4u)C5@RJmoJ_U(xHJ`iX@g^Z6}|KL!6Prz~*@X(hUvbulTnd-%#rOjN7J^*9#?dP1#sdHOzP&d+u z*_(Wp9TM>#_q?O+y|GVr&3RG4t0`k6MqB`Xk#=;I_lHtg?dqDwTcHw{SHASeRpqDc zNwL*A&!b(b;oXu9m}7$mLQjy(c`QQ9+H#4ER>-(&*7+T+DdZF@{$RymyJ+^9iG)8? zg6e;W0NWxJ1L8&G-sR>zV5Br2z}RJmbXBG&$XM8;e{K%c?cMt9hiYS~+uxkINpHEPMtet5) zJA9}^(R1RRGfJ0#?HH9_J=!);AL$Y8&&&!HNwr@TK8bq_y(BxL+5`DM>OJHC@&{Pc z3wCOpE{!+D?*%3n4lV674wew_>)R%9{73AkeRr(&93=wA3hl$5r^Wnk*mk6nD$K3O z^y{ZX{>;b!b}{)d4upK&#+{~@6&(c_12lxp8FGjjnk_^PL>8#ik9LBQ0|@!jrU1HS z(zVZMW8cDtAdl68#4D;Lx{C9QqC;By5s%WE-wyDQBD6rn)slV*NOp|4e!%4Zme%FJ zyM{{p4>0u~;By(5zLNu)IIuXj-pNbB-g5R`J$m5-*vs?NSTKY2aHsI1f+_uo5)y_# zKM9bI!@o|QT5qIn$@&793Ad2Lv2S*uI-3{zqnm|kUMnx`=gfH|o=5v`M0ox)dqTk^ zKONLe5UUj?uK&YUeS?!pvXuSx!R0j_)xTJN-#h9&{^_1bE*{<%h|Y@q^n9fOt#EqE z^1C(`&U@bW$1f(c(xMBh7(s0trrN~n5Lp6K1<3e%n*v*W$p*qAQ(Y0Ty7tXPHg_Jq z&$=1M0O{0yLFq*Gf=gaf<|zyKT(i`sR655=I-orJSB_4e)*1f5EQlz|D0NEu;Xj#?AJX)}wVW%XW-jQ*%b@%lIcQPh2h+aL`o-dd3abs$q51Kd@P7 z&fiI{V~VRqh3*HB1x1wmIh-66hiL@AipFQ__*Nvj#GRZvW1kdg$FsTyXd1?#QY~c_ zlWnU!I!kGo$*Hf{O#N%K?&=W**%5m289Zq+s@d_WF($E@@*up;70nd9*Kjx!7A$n0DeQVQDo{kh$QjuGYecZ&$ z8FO%!PiBa+iI>46*1BSS=L6(P%>+0I^?}3OaE6V$XRxZ~XpW?7B*am=C*|guU&I9+ zxYF4f5g(*QG1j6~MPHK2X0jHVuO9pPE@%1p*g4WAWNn;6gstQ$gP@9?5Ej48V3_4d&FZmJGypu%RVe|x)mES{ z9Scv6PZ0m6B#o9oHCa~3AcE|QuJcyOz0B9=6|wd$?e@sVS=Xc=yL9dOsno+NI!3QK zAeS3d(1~qZqXN+82sFp07vM7*m96`6CqzvZ3+#>- z*ON>0Nm*Ec+=_!j$NW_`r3w>MS~;h^0~=r4x}XA~DcI7@gFHr>&l{7FbN;z{a1H70 zy7cFKMrefYpKU{qo5iDUJ#PvbBUuhlB;DnpGJB$9d7oatA{iiUcYCcF&!a-HdZds4|2Lrc?=D*Z?~TW!(;?Npd;aTtAa?A|Jyhbwnn{e@x_h9+RDW|RM1&?A z_jJJ)v|_9E@$eNbcEFl$FI90S)YaEpe?)}h&Zgm4*`&A9A)_@Bce}D`1w`6M?9dRa z)Mcxz!De~$DltG8P^`kKi$8_7y-u^4(K6Dwvbmp_&o~XNeFpxrm|f)JHk_tpD#_`Z zmBz=A_ABl-mdRfEs-1AD@APF`NTv%vq!?1l_@S;Vs73B?e9S2_vFcZ-@rYHGbVX^m zqhlWc7V~t`zUAxzd~8!BY1>tJuw!k}sCUY{l{WxWbP;}b0&vV(^ZJAjgATGS-AG)U zWraz;kwc=|)IiP-BcA!2u>MYP9EwX2zJYnt&Ue7zv?xRV5sQ#kO?VcHdz8+(b zD(N)(-W^3i_FSt0c69a8g~b}n-o!#wa?VbW(L;BSI?B!CBxcw7aXf`diMq${{aV^a zu`c4TMy~SvL``BTE?j=H0&W2=gG30kHri zkDr084zt>Cv)gQCHMK-0-D|I6eYTfEG^r`sppJI#?LC9-wZV28tgUOr(c|m%62R15 z{^&Hl`*eTRc=add*7)1H6w?{_jp#HUuRLcqE%VU+z`UeunC@6N%H?qa3bIV7I72Tk ze+$3e&c|79cnY__&Ai~$kVKY5eC7rsvtH#ET&Zvp%O^gvi;Tm#JZJII7C8iB-1$6r z#`v@_ZhjSH3BM()y%ER7p>1sY)L zo@~vGaJcT){^)tC-A0)50^BxbDd5Yc0kYtw!{jp^laA6*Epv>)ky^LqWF9c_KE(#{ zf*EvEC0hcWPYk!!pTb@*{88~(lHfBfIf^sQa#j*QL^r+v8nj}Sqc?5f&75C3>ApnuSFa>wiWDa2u+ zf#qLQ$u2Zz{755{$!SkqCiE(-tx^_~sroQwV!_mfui|PQHy5%}LCaoKR4`c}aDE85 zI|3bhv_b(|iWf-ofSZ7G*pf3Jt|-=DCX=+QZ5CfNDxzxtAXs$_gT9^E_jc(@w- z6~K(qvzx?3Vglxv0Txn+Z{roqY&E;96fAZ=WeIVSME78L11SDL{o$Mo_Lb66b7Ilr zOmw*%r3M(O^Zo~0*jJwZ&&7=G3Ll~sH6@jJs{*H!{BUR4cCBHB{3H)2J+OsA814tUgKzN^$d3BxXtK7|+6u-qqTPj2380 zZq`~m0eUsxm31e5}Mdnc&u*3Us;Yu`hg?WDJT(Xre}{d$4(b z1~Z#;&qN1Auf5neGo>sWG?J%kBcn5Q8^nuU)h}u*$HWx_no+?u!V}|#S#v`b*jOK0 z>&Njuop-W2KYzC_W1@i_r5{yd^t`H$htc!p6_}doZyn@7PF<0v)%@ofE9+GJYiI zn_?Q991A{p;QZm=|7`s&j~-Ufb#}0VV^rfbo(}F*v<}KirCl*qxs*D)?}vief+0dw zT;HB*HB)g;ZQAd7yt^sL70z;~V9!6|g>U1a0-}KlrKJVi10o*HmG3|&UPL@`xoXO{ z>GF~~obCKl_h_((RXGdN*<`m?huPkg8uX+1%whawCUSz}%$X(Q{K(LSTK{kMkqvc}TWuK_7yc-y0p z!9vl@z<5$m_#Eje*rP#mq^5uVL=rs?@G-s&iGjai>;kKB9Iaz+l_ z!?`<19yXcZ`Z`Jp{cO*(jn|0anh{!SL_Mmj()-}D8jT-ho1HE2AEBExLz9(n zN28Dk98ExyBXdqHk+l9VZlc%~&*le7LP?)k72-XbRGi5JX#k}<8Nz_TkAWNsd%HcO zGiDOVNFs!g!i*w%KQnozFKInPFLokFYPvRQ6bPhr_PMP#*gCK>fh+pYE=i8cZF`Nv zM#_*yDbFBQ>DEt55tZ5S^3y7&J<`a-16t5D=s@0q8+9n~Vt~?=V&bq+S={ zTirVS72OsSB;cGvb3SQjo##VwoJ9(nb`+_|su+)!7u~)sps>0gBDbakQJyc@(=~27 zpT{d}nJA>k<|z8?nVzF@!v8svqQ6du-iUZ zxoYVFf~u*Qfgxs&b;K{yXaOos^k?+V$NrLe>VP}ce`d80VWl^W`bI#s$|_y@WDC~z z{5QZQK_V|y9kj>VK58{#B6I`$(*jbRpfXO}Vk6`oyy}iBUa^Tjd2C}8_@{5Su?x7= zy>v#jP;E6axD6!Ptfh;T)AaGew$QCczF$6V^SiCUopa9^_qUUKGf_ zz_Idm5y`lX`QxQC2RtNTrg(=ErxO3;_uqy2@m^see)59j=EI=}n zxJnC(M+C<9y>0tQj&#lj$NGFiNRZolJIC4|^E$U`r54*fE^&$+S73|JxCkl+WBhpE zRLLbYBz^dlcgZRE7g>1@23k6XFAh^EpDH{7bj+V5+z!m22s5gD-)riX%;uDaLQ5zF zlw~Rjqoe&-tgW^&^pfW(2n?`$O#EBT0aRQ&9*U)iw}%{O$tiZGH?eljTPIzWr(ZT? zAE&8kzM9XQ+^5sNn&JQS)xOkwltpBI>lw^-P-LucSE$ctq1{Baf%eX$`RNA2GL;c) zz0~9P1+Uv|I#)Kg%UWBrD{Beudg*G$e!lH%4{|8bu?GhXG5=rvDp*6lOb=vyKN^G7 z3_X+lR!jExtlaZEcDeJ3cHh{Gq)#2I=abg4wMhsJAn?>kN6W%KVBOaQv;)>o);`G*xvl@Z>hciHi%&6q)8r~$&$Ls z?ACwg)|X^E8qtRFqYWY!aBhc%uLc^M#82iCA2JUJM~bdsFRjpYR}Jtb`SzKuq34dsnEazvy5BEX}i}6)YcS0XNLb0$)Z~i zybBkejk%L*Q9nLyadVZF)%eU;RxR}7Eg^B}P(b<{{!C`>XBxsH4Egn*0FZ=%gC$sa z_8VJq?#IzkO%jkT4Y7jIF0e%f7Dykft=R@qa^ol%YVfRgY0Fs6NtJ8`S8#IboGr$; z>P)%g;lcv>k;JkmA!vEZbDC8}^exs;CdUhuXEw_5MBW|veC*dMRhZ}{Z8sI3(Vzv0 z3R!yU0O;NHq-N67Hr_1Y6!%0rZ=SI_XK~Ncg=e;K;V%|t3M>%H!U~wWiK93qX@Mmd zwrq3I&g=HF^$dD1rK*PrZp1C68n|Z(+J*1<=6udzeSELwN58TX5Y!_6$nY9;*aMzV zi>YNw=7pH-1ysCB3is@+g9)!d-T3G^{tCbkt+0^dZITOF?ONs{a9LF#vItJa#`_?v zrY4gMqUVM61R`uCq8_{ZQ}isqiiVlhR!d(;dlX2I99TD8+tp!EK+Fm>fo85W&%gBd zx;3iU`(yqwu%l{!93n=PH9elEKlr@E7q_L=l#bUQ+f%uFvAlRQLTj5i={C9ztFCG4 zT{00xJ7Fg@w@k^N#Nhh_&!&6JRidl?8$796;T`H7K~mg$V9!~)?0Dl;-%&v1cj|9d zdGt*s(!9RVZoZ2)4VP^>=Qk!}Lk*~~>X%l!G`17q0Y{8G$7iGCu1l5cvA<9UT3W{F zyGVwO*bb)>9B@5Oq-KV~SJp`VnUfj~i9CaT@8SEDBgvIDH5KaFZK^@QN)4eQEJ{?Wz50Cp(0wbdNmCIr!5xJOJibY|; zo%(dC=@FVs)566Zwo#8RX4i0p9jxwLRt~WPR+&Ktkk-b*N4#Htv6#)dQ3>v8C1T{Z zvLR*VXBN$1@nRX596{Qjclj(Gw)0~$n$?;$QCQj4lL5yJ+RQ>WI5 z#EW(d4E*z4E3>quEQfe8ijzX^1S9nX0K$jCdYbwwP}P1c!ET2%(YJ~56mX=2t;d?Q zTYs1|9vYl8{cm;c@BS?g4ap^->C^vs&A&(&WN0@tfmF{QT;9<6=WP+mO~&%*@b%rl z`&Iv!#=D7v-zTb^#psHar~CZV>MnbJh2>&%$w~%S=DG5PU~G0^U4<9ufO=3ggBv(j zki;zN8;{7#FQmkqE|44X5f@W1sw;CeGE$=|hqerf5f-jqS7PIsC1Dtm;;P>Wzjvuh z<9<+j@PJU?l`MR!FBXeqW#sm@0*_@YqFg6V z6|G&r1dCBop&l&S+E9Y3UpNI@&e|olg(je45~DCL8;u04xs(@X z_kr^r;%dcOOik(D=9Y0qVfxkpLSdIpc<9US`TgEuiLTfL-L%27iVr(}8cv)~vd*Kl zlQPL2()oDjvHVRy9+RCpVmG|1@)rx#0g%;XZM2tQ)tJsW&%vN7?d;Hldvj|%{X(|dMp>t&zj_H6VwdGWt_SG86SIl%FK}e=*#Van~#cKA;4~q z;*B{Qk;2qO+e>Yh?xF8%c2S?BQi@4p%Q(le9iM`Q@G+!FGYIY0wX1yop{ZoGcSB&4 zS(AP2+1(`{w{#5`Bl#XmkNTEZNO)JQlhuVd#Z^RWf|6s6B2c?OuS_@PRWL%-qe2=C z_Zk%d^jvPaTt33>R11{v@~f=ySK}1bJr_$gSj%@GkW6{#xW8r@FsI4SqNgXDS2N96 zNo=?jH6=|_Q=Vx1EGoA|gU`BU9dX^i2l`qpOE{t<$* zDR-iNupT?nNSE!3R8DA4D>wzsObA4X-gcX`Cd+szu4b!q`Bnv&E`m?(Y^ge5Kaahx z^cLiJv4v(EDP11ImeVC*owZPBt)Ww3S4idN$Uk^5|2I16KN+RWB=GAZ__kxaxJU<7 zc-p$=S=Qb8{moORB|D=-!J}D7g!<@MK1UiysCVKVQ-co_Et3DVvKF4>$XS!sY9<^6XXWVJ;B&b`=&px1N6Yjo zkQE|LoMqqm1v{_y-1|Id#4Al2vq3B7jlfZ`?JcIhYTh-R^P9DeOj&g`Rt)vd_T^Pu zGzdqKNfRaId7JBWHW{h{q?^wvQ0maek~^f^nV))O&lgTi7f$eRu9RLnIroaXvHOuoDmX zMVr;$qGwi0bM@-Wh!ipBdBYDXiO!o7gn^*r{>FRw9X^9{x~uxnA!IIefp3}B;cx|; zQb|{S{s=5Th}yWnx%G?dC9Q9B&koRO*IpKug;~fyq@%K`Y?sm%UyX(-Q@jW!&AC}d zXD;B;t-WX8Psgl2s`eLKyL2@~S!(iS6&}rwnuB3@zZS$A8w0s)-!KgzS5*sn?K!L18;CRFFFR+g&ZR1 z^d&h;%%$|NsmY{TM!Fui8$tIe{-oEgOnFBN#z)UtIyCABXedxg?bpg2t3Jbcl2yL~ zwib6msiic3D9{XL4ZVh(|tgIM&SJnzC8!ccPm-mkCL=;^1JTID13t%K8n(uoc zyo$`nT&sm1%@@f4E&2M49jv)Jy?l3HtL*aE+TRD0VOW)R;nvIKh2sU&(=*GxrSKK!1C6n2Dh1!_0 zKn$OiW!4r*Q4xcREcbrr;xQ%O0~5yE3q{=h4_Ci`=ZUAiV@)o*6)poi;fqjh8mbwc zu>(6jkTxlgPznE~{=*(3;qLT_7)C?5Uj9o(`U5CxBTINP|6~HrOI`OV+Ppn$2#utm z&OJ1k*4%Z0a>1vO!_8fPvF!Q*jsSMF1$k``uX9ojGb?>NFtW#?0xcXaJtK%{W~*f` z80&l+5K{3?4p&c4Blb^`I;J7$mc+W%}L`V<%Gw zYUWH=G1=A)4VPl#eHlURvPqO(mw{K?+vkEGSJAN3Bitl!;!m47H!gawse`g5r6)M>Og$mMeFE|MCY5Vq{r(ta9B@+JG5e$H`XTzTMo@#uT%g^y>`5BYe*P zcxq5wPV?a}S`=KmqrM@^yu{F9`PHNht;fXt-(?xC%hLs|{7}!fflj=u*AOSxO{5Rb zVGRroB{9$gSk=oG8{)80NA zdYo7Ir%>k^%~{c*3uw2)B3gx=QfiQ>9V*C|_EXF-6m)$!U3iHYf28nV@E zcG9(v0`(p;x$I^D$-aVmNFQ$d*BCQYhQ6{t2O*)eUgA& ztE(WR+v=E?PTg1W0b|{o!wF|SK_ihZLswjR7L=?xoE};72xGWTT zR=r#wKBTYvbGIv>!6$b@X47Y=q9G6r2hAFyBoUt-JrE(QsVVd~b2dt;c)!x6f#>5jR6Co1eQUBY*%%wG1dyAmtEdp)SwEnbpOEW* zwi=S#J#$`*)UUqZ_)5_zJL_Ju%Oy{d0X99_4gn&&}X5k_u2LICk*$P z@U|nhTc#fMNJtnFwJDvtkQw;8?6FPT7;Hq%qx8r+LZ??hXBp7rT$p?uX-Vk{aBD;- z(+d9h?cXUs|NkG#&(E9M|M}B@%~o;94lx@3`lrx@tazxkRhJQA{lfp=7yqBVeY5{D z1m>6`*roiGMJ^+BK|rR!jvbp0)k@bLQlS#yY4G5>eS3d`M}_8aWD>)>TVjryqv74n zfHzL%JMkY^ByT#48q8kTG7%m!O7*1p7vSv`9?G{$iC|-upsj&gUrh3>W&l3ED%H&x%1sxE?4u?jw*YYBN;JLs4HI68)h z83hMyg70``!M0$#mpJF#xYW(N+RDjx&dxy0t&bDA1w0tsl$Dz22s|v466o2$+I}?o zvNa^MLMAGZZL){eX_6qHY2qfXtNdxI2jxO!;8iQRUG0lh=R|Kj?jBYuy50rJNJsN! z5o?Gqj*56)oGQ{L=eoE`pv_imgfHO=ErT;j9p?SrBeFB)8n@~wTC$?T%RA->y8G&) z=j@~dR|G$9;TOpc8drb}d*?{mz~JubGeqo2^ECx+)9;^m05aiUD%^o;k6pWzr&gAq zG9grqzMVs#m`c+^2S*RJjH;GA)}U1itZ?OVE>FBd0z^n#16%qCdEDO&MDfP^E(1KeoZf)Xh0Dh|Nfnx9TB4>S zYyOfu9z@%^NxV6&#{$`xpBzUG=I@*dw~gT5Om)mm9+tap(x~0>4^Z#_?9Bf=@4s9T7Rdg_k+b>(kWBTO4RU{VDXi{W9z?mY09AFk^4u02yC=C%PvsGs9jd zU$`gClqnZ+jw!Mf|M%-D$3Hq3U$|BGRB9-f0(bY~tHXTPNRf0xmr{<@*xt46D$(rA zGZcqtsh8~R0$yk{@Y-qbz<(ebVv#l*$`|fE;ANUh2d*94qJ*Rt9Jngi>!3;C*w zn}|FvT|HyM1ETWD!96=IrC~-z=A1cIRZm=ZgErVk_YvU`0Kl!Ws}VKNV=QuF>nLW($zIm4I~Gu&&09mJK9Sv?!g|Uk6b)qBEsbNfshhOk9Wf-$*+i* z5-8C74Go@)QwmSe9AtcJ|Nh?M!A6=SHie!lg=eNxQZ85 z&qt2?mgwC;ITG@uM_@1(h2L71i7VZs5hkL5?v|<{$vMd)i#)LoL)kJ>S#Fu_)^p}Q zpX>L8v=T7DxG_hQ@s1BV<@L~wAWgtgVbg=WPapCu-Zsy5wbv=0BkMiMlNn$$kHeaQ z8}V@-P$ItGASh`l7$XQA&3g+Ha0=QtT<$i!_3l2&n9i+*-`x4-yY>`T8=AuS_@U8LWQ6HO)(@37XIJ>hBuWf4@Gc z#A=!N(0jeG!P9neCbL^ao-N{N+MYJq{m=u zJ<-l~DaY=XclUdR^uAVTw!7EBjB#CaU*uio>6faBF%N5=c{n+ykqwKW!GpBS_8GkX zR1aJ*_A|yb+gTZ%!Wnl#O|QodjBo16pP~+6$Pq6*UksxK&9F0wO+gPa4G!{QL%m1} zbsr@<=Dz_C&-nBE?5U=WKVhMRYkQy``%XAqxF#^tZVReJG|Jn$qx{^RCx~xufuUMg z)zWnB{*mbwLi;L71%#);3Uau0e%;*K+1V0}^1xp)AonC0(b8n*i|XNK6tC={^;hp# zuis$x5w=+eIQ`mzi<#3S7-bh`qM3r1)9V9&XZ`w@v3_zZERcW`DM=kRt~WQb$d zmsR9eYSsKvN-VYgf*eEO^5^HVK{`BRpU zLjC7mkuU#wc=6!!PBYg2N1hpac3Dt(_QHRQo%xf+P19+@ye$);7gz!kL0xdfn7x_6 zSnz-hdh*d@*yWJ}r0tF3xdGs)M7R;?Nkw0Eaum<(#?;N@5u?Z(Y}st@<~W5#QalK2 zlNQAb++6JXcBIXRwQxfo+-`%_X?wD7x+8jg{Dg_I%b|!s+~wYTWfbY(D)$p%)Lz8; z6eI~JJ!!I;%33!i2P6WeGvO*Um!ZJ(X&V9-w0sPB8`2AM;X{3OxNJ{DO%D# zmQOJdImY9ItNMdsMisq`UC%>bLsjcIA%WZPoNT4K&EGjB9X^GsEvqMa)|qR|H!+8GmuW^NF7u~`fEx4 zJfU=opu4z{$1B}?YnvvkEW`+&<5Xox=*JwM;l)DtQ0*JN4zHYP4oHv;I!(2|2E*J4 zv$k93S4OB%f{2Wh{&Fl;3%OEAzw;`8J~tH|M!|4YIFz{!js-NdztvLEZm^NTt=MHl zVoOS3JRuE^6jX$ySEKb}d|EW@ip%s1rx`jVJ=)liD|nB@Q{+Dhgti~-7@D|H#}2DY z^dux*^V1`L%VVERk2q`T6dGS|GQ-AhjDG&HU;xpe;Ci3&O1u*lZ=^{sETmdS&_I*` z`OqvE%*t_K#6@(;07v&OndJCj&h{Q3>H#%r;kYR~b6Ez$B>%4am#5ohPunPF-zV$G zZf!1>I54x_UO15?Esp3HDCS)gYgB0_Tgtibwpka}n*&!llM6}xwW{}X)Z3sdb7T-C#H@8pZuOmeSLqLu zIL!vSZyF18k=bh=9gtiZ6$Jrs)jqrCKGLz>L6T` zo5{>eki=4;$f-x&zUU7XtBBRItY^Va^Dk!V$W9!(9d*U^d_~+tVx5>UUF+WQPCOe) z>bk)F_U?|OXZ4$9Sq$9#!qNR^yynm{*dY%sj{LW8N5u=?XVdHBZ`^S^yRGmu(;86r^XYZAy=T z$gQo#Yc7&%$q0-srNX|o`uOB{x06w;7ean+IcF*vz&GZU-Y+4+H?9vWd63h^3^JO22l(M2)!fI zyJXV@h!WET2#`StOcNkFNaB&-IrrXk?mPe7wNBn!>yDPz_dDO&^O-#}d-jw)`)KUw z8{kJnJp($Ql$HU?0fi(KZ!5~)mXZa^{ta@1hll6<59hC)KYvYD zm|s}-|2Q0d23+~!^y5=wr%v1ioV;@4)RhxQ?EtaA**tUNZ+`zrICEPxBnV z{2fl5ymIRF)f;!N{bKs!%=MeTl6T{>vcIhJeVsX)09-tE;9{)c`hhaa0IffX-V@i_cq#-G$qbv>d*S(oP#8LVXxqlv6U6{xO2ds+6fZ_ zaMg{CoS62xP@WI$Amy}nSd49QXRl2SX4wFCzc|f({&n3v*j93Z8QJ%Sqdv%Xfouy{ z*k;CwSx3PIEIod6udtFeoC-9*l$Tdi&1Hz~zT0d0DmtJX)8T7FncYN4m%MiGY^w97 zB79ci-hM9@8VjPn?V|*u2WmUg$WwB@?&X)gAo89qVY;549F=g&x;1vrCpaVe^AW(c z@zp7T4_yhaq>}f=!SSe;G&}`6P4h_Gb+0GPt8?=h1chxoBu@ELA3a#~qfc;cjSx(t zU0;mGSoUrlN4Xn#y4GIaz1*~T*r3C6fmcHaJ3qD2RwrT!lX)EEJlCv<9v&Y^Q2K5Z z>RqBEyk5`o3lEz~9oaG@OzWWHaU5_D0t>&hh0%RsMe-@(=c1UQW8*RkO?d(!ov%oO z){ibP|B;?PZ&27#YZ1-)Mu>&)oQxEkcHZ6hZk1nb+m+;;6GR1p?>0Bx1KWLw{i=cZ?TrKFQKSz=NDLcG30S<#_zh*`Y{LFH?6jc;aH;e^W~ zZ=u24Gb1G1CC45Mm;=W#ci3_TrD<-c>9P3D>?+f4!o5xRR}$L_)D1p30(|=*jP5|y zckH3R?u&Nnx-Cy8s#UAvEys^Xz^ycNyh|&`fugNHDpc#}H<_>Z$dMXz9&&$_@b!;% z;_|M?8tq_|&_(xubKYbS$6Ao(OhSQRuE{~B69129P5zi+h1je-Tkhzo5+~CwR`TnV zrfP^9uG)9{*Y|BK11%Ifdho(c3=4(E+NSF1=0)kP$U85oI^sT0o0%}6WuWrz2;};z z8Hw;??c3Cm;s$h-;65{wl|9E9)V!?U+Mf_{&0?tl6LJK2m4qB27b+Syd!HA`+p}BL zt)=dp8OYRTzTEE;gXN(_o(Bj#(27=aj|rb@j?6ER`j8{o8Rd}<+D4We>l!un3{nu@ z5Na_>WJBxH-NbZrpjP;bhXTb#Otwv8G&``UK&ZP<>XNH&*zdhxwqA32w@MF^)5;UE z&X+~Y-0PGMa$ru{OAX%qefuT|OVzR^#WHQU$P6;XR(}{a(pk{)jSe#wtZ}rKQlJjI zXV+=ouwWbdR>GCySMB;PiQ0%+;}4D*FF&hp!(+BF+9@<%^MJe%zS0AQ=@nxc2!Obiyocb*bLV~*0qF+}m~NpwLqvIjaTvjB#zSnP3aI)| zHu!*(ssLQafyjDJ`5n|x{wVMr z%(MJ$83^>;+F-551ozT?%G_UScy6S3<Cm?1XOp1-NvI z9>2&~Kh$6rby{5?&fU0H92hv)xF9^8v)^4t6c5KiVQ7JF_WcY!8OxxrL%s<`iw9}l z-oqxfzDEEmdIR(gX$IIomE~I%%zZc$A=cwN1t-nhBVzfXU0>zucc+}HAbB92{QSCo z=>R6|{g(ysHeV(QG4{3lOV=Wwh+D>BJloMOgLprXA3Hj@e!s3ILA+z=}TWowF8zuWwm*VQba}0 z)q6kxGkOZ3hgwJLf)1|&Z{_iSV$1ge^+OB2xm;)2yXjZ-@n0`Egi*LAC z8l4Bt$aTZaOz{!scXkDT;c&fW9!vg<4a1YT73kN9(Z#=%4)>qYYJm3J8DFRZHg+8bmf^N0EHR%LU8)R$L`sx3J<)z zTyyAJOjUWBXjt_q+f#ZgLc7pm6+(IoZLUL+}L>-INj`-yVd(#mP!zrUuVN^ zbRldyzP{Ppi;ul1rc<)L5?^LDL2=)r1ILS$>-ci2iSLjCaG5vV&ht$O?eOO2@JLTW zh~U?%^{v9bWwsSm#04*R_qCbpz4@2NatX=*Ru9pPPH0&2N>Zq5@aWJevvg#@jT1(U zO`i<!YhS_hPvogi<}K+Ox`+LN zb^`gm1L&m95hVQ!fNAL{^pl}mmHV;|nuX*vC^hQ*^VyOFix-5ofT^;b`daE=jju{R zISg~GlS!2yoWgoa%PTpz6a*4Sku7lgo_)?>g}! z1sRCG-k`zy$Hp+5tk^7B(%`VQ+rS;xp(Q7-@ALm#b9K`7@Bap;2RNq0c%`IelloUDEl~hnM($mUUNBIsxzNn_sh=KznlpfLA^bTH{>* z>gd}@*cDiW1b>JoFy-bcM*u0#FB638{yLyGE`~I-u>!N3WA?NthSrj;(O+)Gv*XX+ zE&B{O3r=CU&X$l8M;vVxqL9MN*@S&V+sfp+^{CrE%g-EQ(y-VLR)B+jzi(ni0YUDL zolVW5qINzZ6{ImOSUKaQkfA4v{OY|g_Bok;kCsCdZS{reUP_l5uHqar zu~D+!Al+6&mC*E2o$)(-7m%83HtthxGObZ8N%M}erC-SWp{>_fzAyRHe*Q@*QR;XlW(^xX?EDOZP41#KSnB#I~lO$CmzlAQf z<$eU{nfPr)N7_-!PL$8LX7&O1fe#|VELtvsfASg1$$kgr-&I;JU_tRrprm)Q)GTeo zvg^FGnnajxpe7@018t;g4*A1UgFQS&xE|LW>09~Yz2*xiQ%LttU~b+m&PwDoA;0W* zEx87Q6b#$p+#g~Z`3C-u`DzGBZtQG!U)|Pfh!wU;)XJ1Uua+_rM;~(Pw{0 zt2i&tLN4)ca*jAH)jHLH>E21bttB9Iv1?nJ|4g`&uF5#ZJVWXJ3k*-el+>kebyCFJL4GLN|RzVBi`Eu1N@ES^HWhZ>j=H|8 zV5toVsz@sEX)+J>O+D7b=Cqaj6pWwCqQbQ5=;sVCr*WHV#9F@KAQ}5~d&#|Jcshsg zOxg0%+l%Ec?ZUnYna6vvzjQ;MV0x0n%-l(|Rs>i4@mu|;vkv}SAvTR3ozdl64p5px z?%|;|JgE-!E!MPKKZ2Mx=ko9yn%B-^M5L)AaM9gRTzFR{+PY$O@5L*)SQ^QJ>ZNI|bGaP4oOFy86xo(iv@#MyN4(KQ0w(8ijC`V$^LZ>%1z!zU9Mqb$`iF zon;NZ39fv7NW9`q^Q$QH_I|cANFALfcbO{SL?eG1Oib(n5ZAOG6(Hq@TK85aU5!kz~ z4KZ#zGi_b3awyJ~Bf;a_|@BYN}OH@bj8OIdK(uKYv-uDU68D0CBl1b7U% z5*aycW<>k)|X1~UDFXV{@+n~0cAi#6dl;+?1+blTzXLN1mW zX|YED_3LaTIv8Cfun`$)2)spjS15P{806#3aI3)*@M(!{O% z&P|Os2InYLR*aYiTGX65G(B)<5xAYy-?fBfj4KwXlJ0!p@vT$#6}W)-RR7 z*Ny-(yAtn@0NBH%Zx=A_M}Te)X%>A9SbviKcP8Jx%zbc!7oh&X$R~fChHmfxw3Lqx zw61e|Q(mmtnd|I%9^x-Xe*DkP_um*hp=XhEk`#}PQN;VFfwB|qvy z0N)+|RTN{=<;gZ0XiRyr&HJc$nJ^h5?}NA@r7=GvRS8dAT2@eQnq#7NW}6 zg=ltBs-GB@D1!2L^dwGG{amFS(@^1$MjO!=3e<>$V=b`t%?|@}6kv)2*;ZYle#(ZK zFe5wh=V7u({O(51^V!Ydu-obfO5Y1Qw=A{&A!@tp*P>Z>^Q7~nFcXKvW+ekIM2b-d zzi5!{_FETA#8|@AS47U);w-1Db7j$zj&+KiH2wK~e;g`9YyYn$Or#A_Z2j=sN9e{= zt$f{(zmhJ+QWX$I{kLn=b$4~uI!y?2+La~^AXE^^UsZB1+->=LFv9j8X`!^Ka%Hx- zjd3rl!C~{3l z-i(rv!Opzx;7>I5NpN6njJMb-on;rAfNus5mfTE=4;;T}(KIQ;%H_;Z6$@sF1-}jE zx2Sgq;_q<^=*z@Hi_fP|#v7XYy1SO${qv&kRYdWn!}|QNmsH~FWIMgr;0Z?nFxX{hyl7z^7wd(BKy4oR zHAKzc&WQN@5aG7|%-x(*VO{F`fA)xF0%r zZ5wjiRz=!nEUw)X8Dlft+_10FG{Q04Z-XF;`|i!wf7FBI+4bj;xbM> zJ{z6!2ma^N0KmzGYh2KrwSZve#u4BrCBW%_OdICN3Gz4iF!9t-`B#W^w+8U&FRp7# zgoP^Iys=^vpLI&&7G?c8{FE3qsabD)`3O*R1Q@w~1PDI@Ol59ixPb0cBHaBWKnr+L zg3Y@-z*#&3{EGf|@xvYBTIS&p_rnq3_}KB7dOC9};y+UJ{vT2Q8}|4y_VKaQ#W>G& z#2c@A;;6B!`*#9^=wam~ z+o7QSb_xt!Eagz7{I1NGg7Ys{jBZqp47^v5He-{jnWBv>{ z^WUft|2HVp?3k;7hq{_3#y3+>ise*iynPw*+p0{~pEo8n4Zi>OLtyM+sPMlh#75>C z{d(e2^>#pO8C{D4$T%5FH>o4|nHy9BYCc~Z?g$~(qFQv^gmAssJjVYb#52gG*R>l+; z*q5|#tLraehft>Z0R<0VY+;O=R}}i6F|)ey(xtu49>6)1#Kga_iGi)>3JVki>t=;z ziFQOgIUi};%wMbEV?kb(3y1A zM$eWLj|(Qtr@e|Yw6^S%S#otZ4&0yEu>d zkEJNSk1m<=p|q`X?4UB*=4L9+!k&xV$3C;u!fpP!hx3vzVzC-YxmEYn%2#?8v%?j~ zue>Q&^Aavc<>s(DT~%ea4VGKS2=Y^D{r;4P_KbCyX_r|N#91s{Pj_#uBJpY@#=`;6 zYgA+88#=LmW}xl(z{_-Co0sq6*sRezGO^MeBjn`gbNDrEEc@>Wgh3#9n5|T1M0rW2IN3kfo zw*bPK)=slcz8jg(+VWXH;TVGB(FGpxH#PoF^fp$__I=P>Tch-z0PX#hsUYLY(=u8% zHVV|+qY$S^hgi^YK}o&+ z7=h0D5fb@ofzyYG0UIZvK__8R73epA|NxS zYJJDbAxkgFXvo-5CogRHnO)rmCH!;9-7ln&^?ae&`lg)6xGbUNc~ej6(cSz(?rHIF z|7BPFGaqjr0XpCe^v*5aV@n0Gr~5=nfQh+vy9*`87-|$yRHx0chU@POay85D-u2rk ztW4GPth|jZDqt)#pA+Qh3j|cuolh*K{HGhX+oN;GRsp<3hwxc`FJyR!{9so(bh55q znOcPQ{O#cKWz5?tEjvHo1wR%ocF1%6z(QDG&rjWIvU-uQKhA4FHVb2=s`@QVX{(xw z>1r+uMjio<4LFJD$v8f){1HIzme?h9@p>@hy^ADv2)da9E&Kwt(^j#SU3&)UOiH5e z9;Pm|#>RHg8^I?wwY6VG^^`_OM~KK42U_ICIWF6hQ5H7H%oz9Y{1 z3S?{4Lt#MKopE~;1cnW_2m;tjDCy5cKpj*zKKXfWso~Vrhi4v5Mac*+J}A(1#^nev zFbb8vA8MDa?c;c~yV&aUz6$gPOglNTz3v>M!Ka5D(76&~r810rp6tPWT3sWyJdn|K zHdZWUJtr~Qd}AzWGejsH0+EI z)#)4nWBht*q%>2XF?4Y- zZ{}0;9IdNN%)&-%_S3b5EQjF6q8w$7ckhVZ*<0Yp2pbc5XV_1RF(~Y73#mz}C;Hp; zORT9is&$l^o@Aq?{0;A7CohuG4mI*-tD?g^Yw}Ug(EKk?MQ!hE1OE zHg-WUZje25!@Z=IJ&%R1LHO#X}jv>`z1=2JCp9PgS zq7&vCdfCyU>bB74fZ)YlSb>x}`C0OaGEcSLRww9Ar#U9#;ATKgvM0sK5USQwq~5Iu zRt@s=lJ7C1b(@wU(vf}kE@X+3&R2=pXh|*2YZkP})J^H?p)as;@-NP_D&h_Dm`$|Iv*Ux4 z50VY+eL26h7LC8lDCvn&1rkBN!?}dU%`8c>02o(Qcmy~FzwtXtNj|E#W>zD9!t6=J zviRJPT|geOWZgmIRY^$fy;6#V@KUVes@^-p!oGf>XCK&1$4Q!Aa7a+uanuOPSEI7_ zZAzz8+dA`?v-Uy}cZv|vP+ybwz<7ko^8QC|#Uie>{Lk&+e(eE%cEBD6Vq1|O2?rr8 zDYfy>cK;G*gRGnwkVPvOv6S&wC~H#3zCtmy|IQO!o=Vbi8r5j5)0~2f{@xK89JW?8 zh4tK)%buId6KZ7WbnRn2QjHf^y4FQa?m;BX&C?(ctOR}E-dCs@XhhZ)xd)EpgE_FF zFOm5C{Yj5xHGPe)5z%9-d3$NREz?lErpit;ndr7Vc<}qDsS!)stB#@Hy%gCQfsbe4 ze;xr~YEYo2s7=ezlU1{w$y#gwT`QJora5DSH9J>gJ}g2Ie*Jvd!*zL{waeDVgw2JLnz`<*`NhV2N>j$xXB!`CihLv(X?`Vjq+jj8{bn5> zt@+Hm$uqD{fQVe1`~e|m+dYJqI{%60$z1WeYiOFh?3S4aG(ZZ3nGC$n_RtCfb~#(6 z{q8L4(;yluS9`b7ZOo{pPkLDRV3h6g#aB!|P8>CfW2$0e6>D8eT=>)LTB$*2>?w)V zRmLK?paR)C%X+G=zJJ|!|625Kr1or~lpighmL!&S_h^&hr3T()$_E)sxY>B0;|7;_ zIZv0*Zeh>e|Bzun+G0{r!08Ggs;9S-BHwCP!?fP_tMvOs+1((D4Mp0aR?0w`_zdzK z_~8>eO8LGlO4&2ekkqonL7J>s1?XSv_ru|@F2)3pm`j*Z)WZ`S{;pqq0t25P&*r`i z^@o`*AeyHw#chXep}`xqcgue?R+X+{St%czc>?Z3F1(x%j>T`U)Czo~!g5#3)Lj+H z$35;Fw&Tl$`?vJf#WraKIYBcqKZN>mpd-ZiF|fDDMEs6Bb*W`5{!_>Hu5#RG|9-nb zMYF^Yv5D{7psF(lMang`Nl7&9CG2qXa9LM|R{hfR40#f%Hra6{hP8?rxDbXMZq6Nz zOIE#6=Fr;JBLJ9!m*MqUNV0mfyY zsyFNu=4XsH*Mp>Xc|I@9Y^nzxfKEwhG^i;Uy#RgbtDYW;&1Wz(Qlpp#uB&ef_(pfF zBBoF#5JL!Ac`w%1)E*PwWbtQ7sHv-85U&KG065v#^Qh6b*|t|8u=ypJJ4DZ~G97Jwk92jS7K=dj13CgUQ(ja9jo)8 zBUZ}oT8JfhR9&EIbdn5`OvOmcX86Q8=opIX`c0n=*GMLUI^43RcCu(b553eG)ON z7&95023oagfLhA`O0f)9MQ@iD7){2F#70uJ` ziL-f$$#LW7*XhCw8g8+N4h_oUt376+$3_VaYE9K233DXJYzV zgR+n(smTtEJvqV5T2jaee9A@(iFXY_r?Fkd26>K&nRn69TtXkHp+&du`os_=ap!(S zho6mZa7eSa1j*!XYH3IC7{2oIJyYK_#46SN4_ehK_8=!HBFJscm24NV`l5 zZKK5m)o|fvKmV|V4n6|>vdN)y&H*Hgjvpr@(z|!T1K)rBuNOK0_*WoM_ORs~xh9xJ zdmX8#!D5q_K8HrFg0?EA34=!fqgwz>;lEzwg@9q&iITEwJsY5$lRxK5O*ZcxUtat9 zRK_+9?!2{TrXzoWC%WNbOs0(I_~a|n{!PYY4xi0rYP4uG^4g(bDoTd+*ZkgN(P_zu z09N2vJ}rnL+3Eah#TVm($FTQ$Mm5ztnV5^0KV4R*fcf_!@pDx^tl(JT6?+Bo3LB-EE7?b;9Ifd{eZvc28HoEagp2akJIaO(9;I5G%Zhmi*5$_FcPA{!p`4x;;L^&AJUYNyzcXk2n$2m1Z51n17|W@}KN^soQE z>$)nb%Ck2zq^|9-akZR>_bR`2TKkYdigL}XGgx&)nm=_FB5cPwK+P8&k7X@=n+>7x zPF_9|wcoG4sWqP@^3z5>UB0Aje`^)Dn)y0@-;V1Iei8~jn8rJ5+f7e%!Y6h|xvdry z%@>X(uS?$^I?txXa<;f{zP28;0a>>2Q7wJQ#J&R8G90O*Aimfv=+FaMw7!*Kzs>5@ zqB%4gJ_d1b_sdRGbO7lU1C@!?9N=73!y(+;4 z`lRy0pr_0PrwNBm+G>>fm4yoge>tpN3AfpA3IPrXh`&LXSz0WwM7rse#dU2B(_)sX z-^aHu0*f1hU^bFUBVwJvU_0_2UyM(5o@}d}S(qnCaoPH~nk?9_;{*OXI>-+M^?P)L zgR_Gr9Ld*|rEUfN>$SDn#<->oO|~UWG1FpQ{+v%ZVitOZo}`U_YoR?_vTECc-wh~3 z>5klo8l~kIFZ*F}hxW<-nN8@x&|C2ainsp16zdcJF3@^t`Dj8^8~60f&jDbgnav&* zD|OSvA9gy&6!#7dkgzS~6>x;<_DD14hC(du{CP#09qRPD$rbV=PJK;}_+-Efi-M4y` z{@&>lFm!BG?+(Yp`7n1j;ThB2cz@8nO;4h%>eHu?MukT8Nqud7DgNY1-n!vN(+#^i9C+A_{G z1b<}p^*CVxEy6|Ec$TqdOAQ@ZnmhpD0Yg|=!1_I{?!<9iYA z2=?H8j};qSEOu@)#|ekC)bs4=St@^8VVXb);IW^kCD4k>g5lx$b}D)@`ubuu9piCn z7`}5OKQw`@F3CMF!`V}ab?K;q;fwty?ONx>9~}XBf%KterY|8+W)bouT0VZ)Z^C#r zx4JpG#borO&FRYG$`l%sPgBz&z?3>V=sM7V1ka$jDt>nMcWg#={pW|UZ{%f6N=u3B zK=xOfPkN-51-9Cb^jwDAiSP(( zt|QQ#Z+qcfV9ycCPW>MtAmQZj?A2n3solX79FfpMw(+V6QRkzZw#^SHp`dno;Hq&U zZ{)#F{6@=11$p$jR|BvfbDMh=KHmQQ<`qM4qq3MSF^^vEQ@!JXs*2apS z?wyk@@vJbP7AU5NW%{Lr_ihtM%AX;1?!guJPKJ=S_u{Vdg_RP{hi}6nz|f6yDEVyB zxNVZjve_HMdy{Z7{sJ?2iz1+N4?DAtz7q334H;|ov>9bV*BC4}=QxG=Y!tSIQYToP z&y$FQfrz#RCz2!M>$4aHwq|_xUUZGD@)pV*js`nW{#XiC@4r0B)xg^=%`*0$tw2Jl ztHv$2Caft#V{Hzw9##uH5ycC7m~*m-9!h&PX|bTzU`arybil-jIiZTdv6_;SGybE< zntAgB9dlB?+Cd`1^mr1elUc?8a4|{W&VB?}VaeBns8s&N*3+W9n<8?bt}fkd00M?= ztmO>E@BJS01}@L9dhMv%BCu5Tv62Qg!>cjKmch_4JICa@^nz_EwAIWIiNR0^k3xbhp{=P52i#8+ z=E-izxP+WrxMrQvKAAu7{?@x7H_$!MSpt&FSkA`d8@Fa_U~Y}ZvK%l>pm3j3;f=xQ zsS4OB4_uD+nCz#5ES%&Vc%U)A81xX$fDi5%^{}YBf*MLDQ2Vb#6vSX>Zwyp}E^GU^ zFbtQ&S70AGh_FU=%3PRLI%|o1T0uf?cH>2Sd$Q5@C(T^-JiEimp5Eh}l*snlv`{0N ztIesU_^nsPc*E#4r?5X>(-%8z3eKjQAP;PbCJJpEV_LP+fq^E98q3+yJu8iU42E8s z1N2@L4*X+nyzhP{3Wq!l_;XqvRsWf;zV_9!t&#hk%LNcYO<}N`+8mL<+8a0m8XSF_lBOX@q_Z= zI*D^$Bs$q?S6@Gd&SbcCC&tYxcAC;l$%ePaO&V?rjrr_5S-P?6)9Wu~VV*EsN*M$;+&`{+f2@S1&5gJyXhXBj z5x`W&F?pq-Kmw1^fm4^iE!j9<-&exS6n!Cm?k}%@Kvu-ZRSCd4T`FrwEepi3~N`*J!T+m?|Qsm(9x3(E0$&`X3v##TzV&U+BT#U=pO;2CtwwZWo zcxh77wR4_U$*HV=q)@Q!MsnXr3oNRf>~W5>iC!4vUu4%>qoQJ)jl!rrX2e3*0$yH~ zrwzP3GGf#CeKS0RX__%%I&n~&L%dX$Bk(0)THsF4`0o&{Ec>(=Plf}Txb24eT2Z%s zeD=1%zylo)Qd4|WnstkR#NX|e|K22b&#iG=co4Ue8JOL?pG3x@=o9SHCh*+~3w;(y1U)ISW$3Z%BEwx?z|Nd)nO&EYIE=_X>}^&mv0d)3`eG|a}I@)iA~iqDDb|7*qk z-}m-YLe`;s$d9-%7r`E|bM1S;CF$zX zuY6E9>nD+6-k}FX#Lwsdh2fLKCnI$|mowd5`R7T4uv@Rq{_V;f04S?x>YHF5wQC&g z^k6FAD{VdwdXt6nycR1v&N`QztPhDK%v_^L}X$4t)wWa$D@GS}ytW$?!i zDbIBM|NGkYKO>nL>#A_x6*h!q9z3}=aTtSdlstA8bKvkef&;;So%2L~k$^}vNqjf$ zAoYR=KYs-B=VI+Tem-Tkl=%*M>;gCq66ka8!Idm+qn_m{+XPX?nZpyzFe6gZ$C6o9 zL+fr+Qd<&+4yr89vd-^ln8;p^^3pIa(r-Kbz4n!Drq%j~dBh(1?l7pcwmGE72->u8 z&e&WiOnrysB~Nu{hWIDj`O_>lUVLHI@2jgglqSar6?por6a4EYhTPj&XZtT14!pC~ zh6|y>$WzxBxUs0K*s2kzr!>2*flH~yI>SFMDapV4#%c)fogkiwCR#ap69-~+rPib; z48m&v5_t+ z&+|SLYomY{o=~t)~Kx8Q`QIONsPSrB)Y8=l+ZO$_r!!N%~)k-Zrug1K(8*k`qnbZ&%zS=u zejkzU-Rd(S*X(w$>igVkj_}xA2mJkGr}BM+u^f=m5|xF#GGZ&$zWsPzsuy;Az3Y@? zX~Ea7%A`EmdSdD&qj63zT4;T_Ah_S}RB~&9ih4c7tH`0 zf!x1a#7JE7lGhtk>2&U&ax7Bj@rMsXv)+DSx9OjF>9hwas%W zVqn9MzAtMSJXF~v>L4R9WgAzi17rX7P@jaG7gI&B6X+I7#ih~ZkdlIDwLu0>49gY+ z?Nzs$9ae3?WtWf15(DA#gjknrVh>}t(RyFsmDMWw>sH4n4OSuJJf-;S>gE=c!{rt) zWZ5XtMYHTgZ_C?NQ=Ci@?smvsb(LwVO1XSw+ib<1iuLcWB{90ef2CQcm0vK0*scBQ zriM1sKX(0-XH9lKl5dii!(9luEM6xuOt+TL5^U{8lguKqLx#o!EEm+BF}8|0SUaT` zc1~fX(T!9KF@f+ks4XJFUV4ur|IxAfpTMJzt>@^(cu5fdv1$M2&wd&Bl6!9#rcq+? z#X`JuROO033 z{hlQ_Hs5z|XyN_ryrY0qhZK@qpi6!FP0wg=L&I%hXJ+GuVf&~|HB6l6$F3bl=0zZ* zv7juA%nA{pLBvD-ompS%d?iyxn8Uk}C;7MOy zJN=sBK>uQT)dtHWI*cKlpF22R$G#|FY53jmBOgkq*a2(&m9*_(gOuME>}d5;%s-qs zI6M@z!*q8IEQt!sbw0fi)0(8bJ>*w47#Sb!RskVScqtYLg()5?H@%~-E@fOU>gPv% ztVj?sgPM>)w(Q ze{)@w3y4Glnhg0je*_kJ+cr+`60`hLy1&g>FU~s+J!(<6;TRO=ogPGZ?inGByqUiV zg>R1_Y$9zRc9R7Jqy?F`vy){NxwV~~vk8*b&C5HtcGyBv5ozAm^XA4$--;YUOQgM2 zO>PtjmUZk!^D_$fSd(ur6`V?)Z4hySOLWgTSqbhMUWcEnZmAtaO`Be5=)W6#Q!8&g z@!?5BMO($(;f&;YHwrY}3v6M}(#jXz*eKb$$@0xQzpIfW1*~qtChsUil5jWTBK9En zuHCZ=vZr7kg~?^)c$Fqh-pn6%C|{TywhlE*PP*L60$Tl;HT8_(>lbtEx@7u{YP3>I zED}{{yjL-@mn08FBv{0+Pdd&X0UDk2_T28&XGoqDklzQ}1-ux)pbc*|)-w!E?qU3( zn4ibki@I$i!`ops0>X42JFtK0Dh?i3s%Bv2?9;!RuTLh%ze*-nCr@6^4w<7_s%Y2E z8N-a9_~967wZlO!4yFgXNKJnan+zpen*u&3 zKE$W?lIR$-*Ehbq;>SxGK@F<6a0x2hr@0yA_hs}`MQV_TcV?fn#?*y02g{r2KqCfo z-;(Ps;duzIQi20tmuzbX@1P{tn~tYGfu_2;gFW?#M@=#V&sH<D6;iTX_I!jU4)5a!E67X|&@X1T% zR{r`bg0UTYDHM5!OW-?E2E=74j)}vArDl)tengY^A6-e>;;-Y?y&e0bb|3ykq8*^^u~ckjHWfGO|X) zjkkxQTn}qjhTvU0$%-%QQxNE=yp4@l6*M6)v689$mVQ57t%yV5;HWui!|zqqb=yTl>dZ6B`}^r(gH$R?;#0e4y$wky z-O;^m?hdHZsNq3V4p5n`S~VdwHq=cNSN&y5-@8O&ifL`l1$r>1g!WcExc5|Ur;oDE zncGgjm5)xiZbLAVR8;!jLEcfJHKFDzH`ef)sTqMfmd0kiM#4hDw-W=$HE+O!92fXN z!L4_v6YOcRGq3WG7gSbiPkIZa3u4rY}I%4r3cAsZ@Tn`PnU!6L-#cpYTzM3NXR$L=%3Twf)TAY^reo4s~-+gPE9Ik|p z=+s6U<)xV*6M=H2(UUUpz&h%!A>+jm zJ9Lq!{$roL(IGGK>vueh?iXNyP@oJmcXlY5Hc!ixc05sbe4SHE0*UpX4;ok6CvUyg zo8zu6u*j*Qu!xegrJy#*q(t$*^}JV_CFuu-tS1o332(Y9%n$wt6aU(sU+B$3g3jeZ1FUM<|e z3^!pYkNDdgM_foun?!r$hEu{gKVoHR;M4tLun4A`scYFTxpRAt47l^-V*lOd0Av60 z>m`+W%HbRcRcZ>HiKHeZQKtvo)pRt11?%1Uebv*XT`07Bnu1t?9m3EZ5xL8mfa$8$T{4}zl7qVpp2!sWKI;($Fcm;|`W!OLKO*Tnhh ziHMy1dYmhLK;Vk0r`S~Oh`OFPiZf_}poSs)_E|4B;+qYKsB@Esb!G;o<=Ih-S-u;XxZHr z37@R#TC@|msT%r`FEkl)uX3cuF*P;y*f+-A+Nkqbe9plP*SANouo=;%?gS|hg<3yz zA5Qve3tnfsw0av$mhr^@rj;b9LunJTihihiKBxy%P?wYY|4Dw@Q4U-to-} zs+&k1vV&(zAk@Njl%&1vY{Vb2?wUm}cy6Yd8rKM}vWwKg7wqPLJ`vk7<5Qv5;JfEj zCH{W3d&DEh0lSM$MfRJlwPdip&VofEF50N6LHQY*20g~LRIlT|XD#hmaQ~t36RzM; zM{*baMEZvvFzxs(3bV`jf5?09sI>ESU)b51nM|rX&0Z!kYOKWGbx#s?)Tps{nZy<) zs9#%)HV%*60;>4i6S%46%vIyZ&osh+NB&=JbWQF_6x zoSD4XG0N%yS-(#v)Fi5l+lzAN+57P(I4I~*&DFq|8k6n%ll*1+^`16V{Md&B@-tyj z(^YF1OH0DBDw%oa8y{n^GsAXLq+B%2l7u$xDkBaN`S)Ssu?Ie_h@`-DZr$@%PI}>9 z+VL0JzxWoC%niJs|C8>;|2FKE{C=8v0rNZ0i(3GW-KqWWJZf!dZVD_Gjtj55x24Z} zG7s-sK26v?KF-Pmyzi#ptsr#Nwv~P7am1H{Rt6g8>wQJ?Wxn&Yd`ak>0`0mzzw~f8 zjzAax%*4OACC70%wf+6FAj2bb@ot-9U}~I7H)M?b%Cocqh{g+oO()A;VG)i6LJJ5e zIm&FUj{3$C%a{o<3Jr-KG#0l9*ETD@vt$SgsvjH-sa#d>8@ohsj(LYi-~gDgr6U80 z^tEza_->ZKb@DIwhda88)rab_WxzWGe*nCut_6=vTsRe{L)={Ah~$2UJ_ob3fb@3s zMx&7x$ZoNx0qEuzGkac>suf(ec$8;`Sj@;zbP_a^(=K(mur?54tGog7?5Zdg+G*?fJudwX>Us(beOR*wC3N>xEH4UK!%$1ewRLuwdVOOt64xAz@AzeI zvJ?Gru;fE0?d~SGZWCUv7Kyd6Zkm*$Pfz(N0S)mLlk>4V&C+3I?hLql~H_+b2(*E#^0g)o6Lu{GR%SL<1o8W_mdBV{yR3@m#|Ayg_-z6iNy1JYl zd@3beD4=^j@F}5yi-s*rf|iK&Sv2j{Qv^+ag{{@0_XP?B30s%7K{i%RMl{?!vO(;81)01pQs;zH9TxWGMvD6gM|DL zXu1sq9&(_|7LnBwkyCCWZ;49elUaZ)44$T!k)+|BK6Z|=kmQ$7p5Bpfb$_7wjoQAi6W9=3C+zp*}( zUorJ>vo3!38UA*vgv+lYLkn(M;VlP>4rL*#r4DX<^2WdebJFZy(q0hua$Dx2YVlP^EGqAXyMTp>^ zfyQ}{fkFn|(AppEJWmt1DC02w!G$^F z2b|-JYQw+vHCA#44Y+41`IV#bE||o4iBvCD%SHC{=CnhRBFjRi3go=$d%NK>W?-;k z{Vp@Dr!&z*&D^RfKq@1o>#lI){Q-K9>DDNRqGfNIYe zu8G+n%d8S+A9%rh3OpfCP%$pT3Dzj&2AS`G+>&iZ@%puigkLW*-u1{y15zT;(tH&43LjoafUkHmHqk=V9iCY>^ z?g@vJP4AXl$XW+lHv#(H^ON9uxgKxQ>79>F`@&2}KhILAv0D@{eqq9HPDbINZ8V4c zdN$dIFw=X#Bq*>VBAAr$E(Rw{@qoTYHG|64kL&8S6gYi%wy6(9RYhnOL6s>Fp|yj( z#J={ggZbb_M53g3ChZ)tC%`Mo*wSfz6%_5RQ@-P@&riZ{O%wLQMifC{+vKIsacyBDzIsl|LVzb0T z6sAURIEekn_=pRG&VJJLtJa~Y7hB}4?c+Jqu@t+sz2zA4Scpu!Lf7Hfx)EmG>_KZX zTqN&aAED3F?IP&vM%rRaiGdhFfyEB4rw!qU-(f!fMvD`cc=s^C%Dz-mO%SKBK9rgH zohLbU!|0;6Mo zB5Aq$$mk|$X}LXMESr_~Q;qc^7jloZ}`|wrp`~ z*&w3ZqVqFno8kfpJhHw!U((|RwDk=mr}DpgSe>0NDHwIww|Rh(DSkHhbnMPbepC0P~F6Su|T zs>K0$?zV_uN$uDH{G6B#?n_87Nc93NBcisd!~Cs}TdPiu43byY9^0uwu@3q6`m$Zc zSBvg+a9b3lfF)>R@M*l*T)p#CKUen|oYi_x`LE#FGeCP4#PCHbdyJ&INa_%uy1Nzt4hNUS=2HAzH z+7fQQ8g3G9*7K4oUd*76uv*lE>EMvz^9s4vA>i$ z$XZu$aj9YcrR`U#&kCqB8j=gvP-Yv|?PW4RJ-e|-%+$RB&d!O33gtl&i z1`qoGp**k4QoA=@Chirc^@n-VbH&YbzNW;Y1j+1u4!a`S6B{xTKh?w*}( z77#FbobyfSE(&7~iQs~a5*EC2ee!|Q=hZh)=o{3O{`!LAXDQc+PbQJp&F{+|(Nj`Z z9nAeitX!;=nvp&lq&VAI8O z#u~GnADV4y2?R{?iC|4#a(kJAH<+PzmN#$M?KO=qRBR+V#|L0>2dAUy^?PQ-s7GfU zzOJIsD)9p}%~Ml+`)naiz7lRfL5SLhrhAE8vI zWzkithij+Czn?MAQ*KiI&2z9>(QG**Ffak0?h<)gx%bbS>i_?Zt0w+#8mZN}w;z$K z=Y8XH#b~Xv%B>4IPQA=1-0t{e;C6W`@O1^Ep zsYqA$66+&?tj&u_FrMvS7eu|rVobV&T-EhBXbb*dtHYaBzA)wuGfXL%z=kUpS92H_ z#70jOfI-C9>s!Ss&c^Q-!`poJyhHDG)+S^qS$##jl_%Uf#5qY%FN@c;zd)r(4z0r7c;PPh*&R$kF6Ib~AoaGTDyt0#Llw;Zf<=TJ)f7QB*ekw1jhh;MIg z=S&QTv>>Ldk{^67^R;8PYeTGe7vy^Ke;9qi><;V9t1c(NbH|BT_B9PYcEV{J%9GV|OyroqloAF1k}!`O?A)9#S_> zUdkfKuK7PX)||BKWnQU}RY4?{Z^8J+vpc!f`OPh0$8@9iH#H0KOhSyfqD6$MO{lrn zvTBB(O5k^%myH_7I;415@Z^g*_8?Fi)rFol?_q>$4GKEOmqrFs;~m0+%mGs%U>N?) zS(6`Bxmlv}khH$QiNBMz>C!OU#m)43YSG!MZSYCp zjNb5xdDp%rZz|9Pnh;;0!r-^@_7_UD6+L~ER*zk+Ow!o5>-qgi;F3s1?p)1xo+%4- z&1nX4iM4evT(-QLS<$n#x1Jx|T%;LgQdD*FP`txE4I4|-a`kulhBH8)%WPszIi|nUwLQTHYcYJDAsQfey(6r4rXfo;88mrZ#KrjQWjb!oJ?A%LqC!JFu9&P=E*l zw6{r1RB3}G_|Lr0yU;8faiC}^y*Oi8Yd+by6$w;q8~RFOwOoV&l6$_kC(@E0M9JCI z*qZR!1ee!vf)p|%Sncg6Z=*vKe?&> zcJHt5!|~2$M`HYQJreq;gi6#W)0yD!JnbdR%kVJFg-!bLvD?dky){2cN{WYl2&vd7%H}e{&tx?2w|s`n}Kt1L$w7G*Ithny2wx^ag6hCGf&qM5%XCcs)bnS;4{q;jou|7UUOw3Q-) zI>^_|9k%p`b7mpE;Ig7~kV6yV%fAzRe#h_;cTLiio@! z*zY^fQD%o7Ggl)gqt~4gklVN}G)WecNkdzXr3A&>M@dR6U|7Ke2J>SR)0i&*tODgD zwwYp$JtYK7_DZW2d$U$!(JYCRc8%_f7&dn3V|Bes8icC4#75B|wKrb~)68=Tkue7Y znrmt@2fyiUHc+cGSW%2K5@mrbVuXdzpsdyhfHFT7VH(@o+Iot*K0VDJ88e^|PQ`WN zrh?>H2>C8vzWqemVt+f_z`ZFhjfpzDfN&WVa$$0^hF&(JH1saQRFw4$yjqZ#{Q58n z8TfZ-(fz}2^7JQDL?%k&2EGlMrk?CV%hV7geOY9(rpxUu!n{S(y6cBS0Tmc4Co~rh zXl@!)hW}I(V$h{%kgyUrD!`h|D5Kk@m^-n;xU}JPonl1tw5`-)el28#3Gs>>6%@aC zxN0#pQY9sOmSP$LHDt?}-E$A9Lw+K^qK8N(W5`7LMUZIif@F|?l-GYBx*cZ7;^q%SQB;}-fAdiRU z$1a!LrVg{=p|dA{4g~Xdxile?KS#JJ4Bb~))CPpJaz}?1x6fNcEjuND=EOLSUKSlj z{cHj3RQ$ZSI`7x_Ir%fTS!q}6x@oH{Wn9;xL@xlYvb%ATyzrY(>U(l%5#^WTTArrn zxBDV+llyMDC&w{Or~2JbSoOjZv`EmB3-H@gBTJ-SFh#cI7qb-W9N&3WYH(D@%3+zN zWc~6`F31G*ZM89+eJg62WGPuCm^6D@_~&Qhdacx$w#Urvwd^fsnpNaz4m2ee9~|j6 zDxgZE0ll9jY5g_SL46iw>zc!9k$UR(8<%H*>}wD>7*w8~qdlyAEp=?`nf8)oWgR(P zUzlTDvLaN|xTQah){(kwgC8riQZHv{-G6i#=`VK*hCN&5l$?F$4AzJ5bu0kAmA+}t z0>$6kWb!=(Z{)mA%iJT87zdpGR=&vh)Ul{+>3bx9-P(c}b^GOK%VHb+Mhi<*QLtm` z#>pk>Wd$S4mBGs;$t_{oV-1;ENg03g(4YMu*PZ{?hd&JJ%W&MeDrIqLZxnqha*0l2 zta*?6#-5dB=>=}-T!RhjBZ!|?@Xa=9fL7aVxRuUCamzEyVrRMF71#VnP&)=kx`UIr zLDcOokC2weRKUx2kTWceoHpqY-m}icbzs~y@=6y#-TR5R1F8(zs`*t~08=5LU8)e? zcK=!?t$LR=9nTD8{#seSHcQjQm-D#s@cbRM^lvH>p3i%h|A5pIF*@qyc6;ok+Q?0E z?spyq6e4SF5cnQ1cQxW$vS@>5X!jK>t1ZT^WGh^SdyaTb-#vOalavr@p@Y6s^%ZQq zg$L-s`-#vP@n7~_pLTyOcCC|pmA-%sE~;Bh$G;hZ7qUe4d|@tz#gln>Genv~#D_|s zW4Aq@hx3rhw1IBAN3Y5K>PT>C4;*;uB&m}QzZCAzZd4$`q;b=C^+cC%QmeM$eOFI7cCca;iTPjAeO`YCbiHGrwpKV6Oa#Z+vPZpf5r9o|tmGzjAWr*nhJu0^uzuO$J> zka(9x8qO_A{p@P1bz!<1LU(Sk zl#KLmT!*WlJU?)3TzmViw9Mv`CV8USK5ra}ePc0I(S*J5N%+?(e`ObUF>=bnAC2ge z5)I`hWeECfvg!8Mnu9b#+zgV>>`F{;jRu=33Hzq@Z&Zy0uPs5(j) zmE;#Uu%9}LxP%$5Xj0yrpW&MZ`t4Agft{x1^k?!JfuZ;PuK8++9zgxq5?;#O8X&ps!jX+-d@5%{qSX8D?BaY-;gxmGn16H>`a2TkTeXl14Rfieoe4 zA=CJ`UmG3lLc)&h+C`Z`NI$bCVA!E&zgUy%)0a?l?X{erGOPee#|Xi6U(`6+K07H|-ikOC5|7}kp;turH}*%; zLk)wQt015T%#1bM7@!UGoV=`)g)xZbz|{DiG)sh)3NZG3(q;A}-!SR=Ew|Jt*3+0p zgG;BvqcqSAq^d*q+oj{!SUFIe_Yck3EVe^Km z-9ckC+90%;%I&lsDiV}ILg!9^44)bk1%Ss{Qm$oB5UHs}=i@dyRNDSvT0-L|g8(0{ zs=JDK&Nxdm>wP()DwwF~SUzE7GZk-YW0mLv8chdr7W)yac&D!EY7chL-}7cnU<2Nn0D>kied0spbD>x+ z0l(u0*DEht~UEl`thh1!(Yl=_y0RY4jT?s`AMV?i! zqipeE5QG~wWbcgXe{22zU%z~2*QJb|i2k^yXq>qyDdXi0)G3+SqcFthGSh$$5}l^n zbfd-TO#!8~I2iBG8-r&Q``mN6xi{L<|C$*gKA^L;zL0}*D$X(Y#RT`K9^{{b*)Fb+fa6ETjz#vB_bGTW7q!;@NF zce-MLX{JRxp&xc)9y87s-ED#BdV>WuGcc1yp0>-fv;!*;Wta0ck7YN4Yt`!V@eVp9 zr;fUIn++_=V-6(L>xF3FdE^~pIY83iUWM}fAjm;09|3q-SAV>kZs5}o8(R7CtJvXj z+G$7Y=_3Bi)gPm%TV}`C{cKJ!SB?RtH{$x~fPx+Ti(h$0BeSRd<;ufhMvf#XN-_3; zEI#?tid{ULmKZuqJ$VQ>T@Kzdwt_~;sqjU|w!Fq)9-H;ycfGpl!p-5|MG5cRS&T8W z2S^MN!Z|54`m<#Lvt;XjyeJ^+Hmdp8W@J+`i8OWSLgwvUTxNV=t~EMjAnXR$%F~?7 zKvvc!2ZJUN)Lac3#k;d5>W2cSuQZ0%!?x0{#XE0|bZh4u&7l^T| z`=Pq{8x%lC#Z%O%hD9MFeyirZ3mK`nbdvn#GXi`&Co1wNdEzk4Hw@%L&b?$Tv#RCb z4X~L!i<@U`sSawGnx60SEKJ+4OpGS;(;jwo_s64?B1mQ=jzoa8a!9!=iYxK$=26vZ zOn^{R(l^mp{LQ-+`naOjK<^uYE~B@w+q7xlWU$c3>ZX9yg-;h-nrfN8KbMeJ%P?5~wvtDX1a7m9 z+ps%0FQYzUf)B$$%9khWA*1^jD`;#p?qRH1+DAGX+NwP>0#t|@IjqKF>8pkSVI#A` zlGqm=i@Q#IE(TpdPx#f*61noE+9YdVfPrEgIKcVnDW%9&Qf%^`qRwpg?G^x!?}r(~ z?v8Ty#WJVJo?2e9M$4V?Re}nx4>mMxYA}jjzp$1E?UoobiYWJCx|V4Zr&ZaIM&2RQ9T+U9Kv zX!iy9^0jNcg*EgS4>G><6cxO4N2fc#*5b`n%183TLzdUKl0T=pjF`ck#4SXdHj=S3 zRWV^)-4ao@V&dh?4_Nx*ql+tqxX=e6@`6v6Z_GP$Rm?scc+&arySr?TYVhMhu&$~BK`YwWDh*gIy@(j;rt!onv3i&7lk zV5b4E4qWo&n%y`}Y6?z-xFB-v)wBc!4s-%$AK0#Anl>BnH(NHy7-*Amqt4dOzH03B zbO{+lf=uJFdh44H^hpr~@r@n_k7bARObDaMqqxxp_*PEZ6_HVE(Qqg!uqu@e^1*9l zyl{BLxPq-v_R9!$Su63nutTX@1&pzdqba8)rs=kyX}3|%B+JRq1rLM#>nq5~dIHf& zEmdp*g4(Ty<8rDzc`h-=V#)`N`cbv%Y_7HpeppJ(Q9x0gx3M+@#1UKcL)`5K<|6YGP`#{!6 zUq0>B^OY1oY7GW>wRm@jty5XN(dZ;=V54Q!^Aq;R5mJuJXv}Pj#JTQh^VM0)_l}Nc z$Xbcrx3hocA@scGrHY1VNeCvhskCr`KC zEE$#sP5u$rnY!aD#GVEh^YjJ}=o#p}(@EYnK!H5CYl{NC!BV z3zLI$c92UD%ePvn;`{c1X5C_Yg6vkg;Eisj*F|?WLn#WOT!kvL$=v2SAH7b7!DZaw$368V^6Bnw|=j}*6P0hcq*W~=Mf5(Ei-@0C_AQcA{YqyDyW0ciLu)V5+8-aLq-YDz_`ypJswX1X*s3l+aPz(1ZPw)??Pj zYUI;ptbaWdSfe(Ezh+SP`>E0a&R@t~_*kSlx56y3Ii+}_10Uj)S~lsDTT$QLStKgG zfojEWIX}LCYcO|7w!5#P{N^uCA)%5pQpcGmSnLhgoMYlv%f7=7EBi1k`ZPZpl;=C$ zMm)G+YrljZ^Sl!}^8<;4)yg0) z4F>3-?1G`kH{Mj_+YA-}eev)oDv3jD?t=xGQdw9l;$byh? zVPvm8&$j*qW|T*&W|`^wr{K{v5F`ixs~2&2=x!BSt2FzJaif~^K+c{ZZpSxe zdBhz}f4fP5uuvHB)K`5TV~Duavu<@1(QXLbDDGMh4WjEVE&l4<{cC)sBwH^H4S_CS zg}w$3ph7YsCkg3>=xI=i4ayAybryIBW%C9XN9CdVM( z7uzAGT?e2wr~66h=BlQqvZRLf(d>BZyv&x?2xaLvKYJV8jI*~FEuWHiNkk@{=;fy$ z(u}NpQ%n-heqGR}xpZ`feC_L2EGncQn=8bG9v;d#{1j{ZEXmO^Fe#zIPt8yUP|Ki; zu~B5fSWK6X$M{TYh1+Vq)E>^rwKOJRWX#KyjZk@#H)8tFaQ;yclFZ+;OYc2)jW+{&vlb~p!gz% z#%=?oCIK!O2rUOkeG-^x&gM=RA1Z};Gh>M1_@QBOaoNUB%_5|4VD<2~H4{Ks$-!Ow zhkWp&yY7I6$4K+^$kdWHoD7%SYNW)#D-aAui#QEGiR6mJOxoR7-=n)Ja7KWqT%5e6 zd;f)R;a*D~3#PG%XMXz|cJ}m5nby^St$o^&*k)l)0GABS!}o2dt7apzq7656tIW*- zG=<{#U(9A;@(e~}ImMSmqK0Z^F<(m~^Xj~2#HdZ68Q350e;F4^7TI;btt^*$ugZBY zZ=X9NV6)EfZ*g*jImY$&Su?Kd+_GXX4$obN<|6`D5CMPkf7~Gud%8OE>E^(|4IlGs49Dv4O=wPDC!bt!b*hZe1p)nY0s|&LuTdV`id3eV zoqhyOszquHwrUV3Mw|w3Uwn?#F9u{a|d4)O87oKL=5^S7 zH6FuT>DFcwWoPx)3DxK|`SaC&eOT?)J8r*hsrE%WMEY4X%3AvrRQFp?E(Saxr;34+ zXXUGsCfIydel_O>-dS8hmbg>>QO&Mi4Xv4JPgk=(*wTlD!nz2K;}sR8@xsqE{7`2W zIH}_?jXBO#>!x;23f^C8uu!u0B{t}cP~rp31`|q`re`vj#uW7yjU|+I6HmPE*EIV- zN&~fBSJ3Njl~Jq5h;=dX3VQ$i=FvRUCremDL+Hl1?WkYMfVg=n z(Z8o*#Lp6k9t{{?^_SJ4O;_}WT6u!wLhWiy%_dj-iaj?viu;dLB>A?BabsukPY1e) zT;U{7qh#<7DFv-T6m?kjl-JOyQCjWVwCLFsE>ADo#$G>7b?1K>4d-_gHALzPvwb1) z6Mw)YgtqV2<1D~M;!4}u<`~}qxLbf47k4deHpJ1_>2Vq!TT761M&kR^olV{0zP`2N zgTj{>A&gP3C$s5Z!9^D@GqcS`)$cqh(@)19b6t|^^v)*0>;?z#HPOAaG#p15dgz0C zX8rY?V|B+pqqFA*nVC!h0Z4aO=W7oUuPA7kdWoEn^@00!AQu9Apdp`}yTH8D@p;3a zC8VXr zDxW$Q$n>cRggbA8Shs!H`T$`B7h00AUv&OiQu&nztHdI{!sfKdOq2~tPs>#Zr>`M# z;by)0PRI~sm?gnWJz1L^@C@$Dm9g$unj^T8lxJuYT z&~*jB6bTgV{oW0A{rRk9mb<;f!b#-#C)rxXGUJuKPpSyG!~U<|+Jv=%N;!sl$YG=F zZh_^54M-HoD&0pxy#+RM7uz9yEv0NM!5Ow|sE2OqJ$Ym5JEgau>Faq)?1) zx>wOU!rEFHEr$q!gRse7PfN(|e3^N13%2;TJa*O zg6VA71~g?v*wdXt!mw#Y!nOe@8*AS_UxRbpognkghuZba)0}8nPB-oppw`m{tk-^; zU}2B1-AM~Lm1^V4kq#Qo-cP}b%Lc~Dy`9y!wLZu`$Obk`mI3-s4Nn2$3GXs85Qa+0 zMz-l&wO|5R0RUJ*)*L)gSlHQIG!T`&N(^oitwtoI3sXU)U3LIv#W1L=d(lC_!Iu5O z&P{{X{nv%PbcM9^5%xh#7s#1RGQ_KC??wg`E+dlO%{-H@I<#`$O!QcgYpT$3h@F>+ z;!ZtQ$_a`q7T3=`*BQ?f>=D2%w6tf7+H-4(0c@OH5>%A@g6>rN>yw5Q#I*ZD|t@ykHQ zWF~_-uQ=3%x?#_iD{E1+*NxG+SsHeG8j+ZpH?q4w{OxX|qQ(VYm21L+4qRedQ;|$4 z5wZ!>p!r6S@i-9NBoI46m)9Q{6T0qKW7l<0XT($i!1^%!eqLdp6)krXg>kSGwnG{z zq0%$S(0D6L%N6%L$MCWF1*@cckm3(UjZ%lDMMWp6YyWU0vC-80v#4kBX&fSan1w$E za`I2jKK_JR;Q&uCrJ2W*`4&T=Scj z}HHrS;Jg{@mc@p&1mW>iP&i9&}TG$t~_6%*PI-O^kNB2)Vr4zkrY=6 z%4U!>YikSl;YboQXf~NvM$;ysnw9RZC9z$jW#FHy6@v+r_2=M;$HI}|4qVB0al)&0 zxHHCWcoC1~Ey8}HGDBdLv_5R>v8l+O6dVWuBEJoB&M)q;^|PWCPP}Wqz*_Lr^`0t^ z8H?@oR>Nm%YITR(G(7YE*^o^0D}8TN(Pf?%ijcCtFjF}f->ABVmQ&9Sl-#QfE>W#@ zIxm$usBvy62!+4TbZlf|_NoNcX>yS{+BO?|G^rx}*|pOYD{5%n05bPPI^fS!>uG+W zsuUSk^n{O(r;qO#QV3b3RX4H~9|@ws)bGap%$un%J*JC!S5Mm)H;3rHs`4g_J5TEYc5RZ5HV=-m6@T z`U5Ln7=9`x?knbG?LXf3b~)F4Xn7ubNCHa7+1ai2-qVI28P`M|Z8nf8mfL7_esNyJ z<{N%|Kvr-{XUFDE)`ytFpgbUIF);H+hIfzbW#}~H6Tcz8(o`wE*=uSlG7=egsNlP% z@3ANS>*%M{XzT2@OMbaHLl$}C@SgM0y33J9n*nc2Pw+$dtU&bB=@4FSSc$1?iQ@|g z$pIwJp)_LD^4fd+`Ac69J&LD49xpSCGf`<~aPy~Bi04>YjNs4^Y3Sl&ZP9T{`wmZ# z%0FXD{LeADk|qD*MsfwdfMM4B4a6xnP}7GC_3PaFaxDcugdW4^fY!hB(D`D18%NnI zig`I^l}CKDxRMA$u(6n{<9Hl+Y{s8uVd|*K@>`eqk*+mlqTbK~fPebr9Vn6%ZN0pe zY%sr>hOGtTv)%RWTk-kTTfw=PB5q;V3?7DW?k^u6EHqeyud|Q+MStjLilhK!mxYUx zR<$f_C}x|*r}$Hg*H32z$H_si*@+b$-DxfNZP3(+}r^Rg;@mrf19Oe$9Ky`udkdVD4%mk(cdtFy(eQg4@)l zNpYIX6fBxGdbjPu;^QR-PHAbUGJG=J>1r9o&Ni(lJF@~3^$M9=zeUZ>{qV!{xo~04 z!J;*Pi?H@y?(ho!wV=cq{nnNQcWVq_r?2?uBhB}U4R}Ksy%{!57QH?7YF@SZSUMH6 z_>AY0?Ch&<^j2m`N-tJ8X(JX;U94`h0y)#rD$UBpWsBM2T4 zt_^NNMTyMeBEcpIR!PShI$Fo8sXAlAe}&c_d}Qx< z8X^Y(0V{K0>h;S$CUcEb;r`cB78s~p0mprsJ$;MzODUI?ejCW6t1J@~Gkkbd;6Aik z>3(0)VY!2g2&t5VLXra98Ji^P5(NZP1@llWTp;X9nqZ}6LkZl>gKDn|&U{$;X^UU8 zV|3^Eb8~ap{OW1sZtc*uLP#|vNNK$mFhY2V_C2VQoL4KY(i48J4hul4*vyYr+WcwJ zX33x?FG_<<6_o=wA?Ee`%wurvA3a5156!46DS>`?1qph5XwvP>K;o6lUT&uK(2o?8JSgOl7 zIrE_9>9!#7$8a(IIQV@!R8Otn9&2x}?pB*vv}b=0>SqPFo9l+J-Y*S|5Pzc@xHtJz zei!ALe+676aU-3k7n2|4@|`Dr^BM~Dy2La6@eQ1*r3s+i5pB|4c8vaQtp%WKDV<}aE}3xP@3^mN+IupZ zbI8H}`r8-}k0GnUAp2>mNe|a6lAKO3a@paStv&y9H&?Q2SE~Y`$X8MKc_wIc%WV5Q z&-#idlU1pUmU0Ex6}_4JSdlQEHeSzBP51`RgPFv4PQfiPwPF*yG>ZG`)_YpGe3|D$ z^G0h|m+5NBRDN4s>X(k79 zDrz>p&Ay?&E`L%je_8Wlo>^+LTLhzu%xh8VbgxEDMyfI`Au`CfFlWjPCPsvvDWqD? zlKFe5cB)K(_J$DD;%L;9`6s00x)!~nWs@61V)lj%T1{pB?u{n&;D%EKDGinzsy)w~ zpc3}-XV!_@(uO^x&PCtE&D`MS88=u_T6Jl09ad`6Cw16y{9eCbjXdTrhihKw1v-= z-QPdOcDd6{uqzw3`|Fn9xhgFpOpID%xqIu&w7RkG(fP{Q^XnT69~lLSGn0H16&A|= zX7vHU+OnwQ>{%%@Z2ZCwG{QaL+U4ddblA*8x!0nXj(kl>ZAN=jmqYBaLEZ)jWBjEoT&Tgr6<+W3O}%_=}VOxXVci00oEHX~Gi5>gXN z2(+#-Z#C4!fLjgpgKZxly~=EYU#95}+E2Su?$q?SdtDf7fJCKu#J@p8EdX5CRo5^8 zm8>?nRs6L#5dwPc+y$}Tsy@6YhwsdP7Rou%4Ob_!bT|5=buEk$P6Bn5HP?cBubJ1K zL%PlNZfCRWkfBH{;^t+&o>IldR>KOV$0@7plm=+#A=g;+NrJHS*h*wHLJAEKYQr`wSuAD z39_&Kni>Ht*Mj+D$$Ej-0M-j460l|yn{ebMk9w9xcVAzWiM4Dx&fb8gAWQh!QVpq1 zP$$S%dsDMYnE#Jc1kN)L^Wns(BI+F}Qc7lt00vt->>PR3W?@z_;C7K8G~NGmUY|+d zmgzWM+AlLL4Z%!1=I3C|mzZsdHCmbuvemg)(3QdE{=VHkcW_~3#-b>Il*mcrjCRE?1H7UU23$1sVZ6BB;@^ZwQx?0EJvi3 z;)}_S+L_L*uglDt9qtJ3x%q$?{N^L6F3Y_T|Tc;S;LRn)0<0EenIG;?-|Y6E)^>DbF;tY~9l(_gvr)65xC72WFA+v6NgpWZVGqs6VhS`9w& zw~Lv20%H_QSWM7nYdcs&a;re7YPN-F2@a=X?7h8cdxz#jdXzO6e@s%=K~Iw&B|W=J ze{CO=#g0#Nrg#%iJI1REY=eZj$`ZhmV>P1$nb-XJA#0}QCoXU}zvGOOUuU}$E@aW$ zgL**^Zo=(iW{yG3TLI#MYP!6g`bEVbdgMlv0~T^qIkq{U?ak_a(StM5%?G2Q;mc5w zOyisVHb!DwokSECM3f3{3m&3HwWUxfHe3Oxzmyd3X2XuOD zwH%kUniVtiq?H8dkJ~v%5(&JPSK7-#3HfzV2lS)9)=h==uO6x2%D3)K=XcTk?7PQ= z?>_d3{A5Rwq7I0L=|zEG#4c$)B(5wxw*8dwPE6fNb211!Ts5iY<`>XpUgR1;&7{Ei zrj$i*5H$v%0tX@D7cvCtg`apCP=lE@Q#&k(QD3s)0zu~MtLw|X%;aCuKQ4GeYh*t* zqkreQf;U?N2JGag^taM9>9NSZX}TZ`AnBf#+{|C(%JpjMfcMM&%Jb_#@QlL^wJd)9 z^sn6VWT)1BIhC=m^okVEAjrsc!JbV5<2D|_*`K5Ha!~@H05`9qJu0{FxS3M&e0VqI z%y*vRS<4c(Ec^1cg`bTsd%+~Yx}XH|m;pJ$a)Tp0K)o0lhpKuKg6R}9LoVbe+-2Nd z|LOpkL4Bm81II*dFY&bi#ou)@CRif=df^k{J9cB{Agk97!+%-f{w$e0Wl>cbJjVY@ zI8N?5L>^`R`eTgRzdSm28Babf{m0&g|8%tfo)M=AdEwBW*=msc71CmFuYWzll$nub z|A$+ab}l3i^jbEGI>@Obzy3p8933%qP+J@s1weGsm7t%%_A~mzDwhveNis6H>0?hy zN-hBZ`mFC+3Ad*uV{FGp(Z|TFRChD9h%QSQglRJ`U&}KtJiaxHEaiZPs#8`j*RRb2 z&q}-!E-c$+$wk}{iEief+pG{%Z*M62 zr3=k1<*OT3o%Un#p8~^p0)=2VcfSz3UNa(|wS3q&tg}F=QO(D+<^AHTkk7meZs(KQ zCuepPnm8g+HPuB4F&W+VRx&c$h2#%dabC-A@=IQ*exU)3iv%O)KsVfp)1z9jQtTQ1 z>2LR$`&97)bkHsdbK_v<X`l9}s?SDU-)S5#b75 zS^>{0!m%IRcrM95|4$FF|L+(6Ym$yXzWVQ&eKK1=Na9+4_n#O(8#MXG%+&0`3F!!A zd88soT;}S|D=RM{lB~8!k(48W(||Ho8{c;xV|BLNbkvFFZ++{lY=u)FfdMopF(=}} z3L(5K+0Xa13^}K*rCE*|1quW*y_u3k$C;+r!$o0TG&#r7fIRzGQwUgY55neKFkw8W1!gb`;r_zwzuV6N1NKgX?=vtCQQHSF6!*VkQ)Y9 zj$8~>;+M+WyE4t1re|TUiH~O<6o?uDYa2$U4s{&Qyba0~Wt>eJq&Feo^)4uD{mw)z z-svoJTt>LO{H!`?o&F@<&t*KnzePo1hgK9}AzsSTR@Pi!X`k0jU?}uAgdETpXF@_P z?7Eeqo73KhxAXHoDxd2IBmeC0x9})l*=J2>N7cC78?QwA2p#gxuZ8JNHtaRGX4Qmn zF`*3D6^Nd+`z6%4m)6YKWb)Vz+mci{Nv*Gaie2YSwMYL)duJZhRNC)(x_#AFTWlBh z?X?lviHIy=?bZewkRXA85Fo8=%}xSgCuv&|*%boF-h%9#AP~ZmC_(}Wi>wjCA|wIX zNmvp{h?95jy;F6kW~%1inR};dYVyxXQssWa|C_IuvlOtUl`Z{$+1_fuQ6%ew9tk=KCWNoMHwmB;KA-dqD_^eTXeMNdnU0v zf=Csc&1vg0X_Wu|<+oI=^ETbFW?@zqK;9CP~whX`wsCQzS{9g7>{@`_~s>kcn~6mSY(Lik@rltV%&f*iB6 z`mS0EC-dyUl+0{Nc!Q0t<@G7*&~;`->q;kWS|;b3Om6IfM<1#3!feLgwcnX5SU?-( zwev@jTmPYRU9Qu}9H?4T<{{c2aRAG_8syUS7|Bp=-P`!JM5x8ut3|iY@(Agazit4` zR85S8l{qqD#~N?*o)kdskx?JSZGa4;`#*;37S&Fmcsd+ zv4Dh{t-iC1k}gX7DRw~sJONjH+HJpU+|?PKHGUz{J@2T+H04WOgG7$Y^z;?m9<3V* zT6PpyS`eUOXy=Ts7$R`u+Oa>%XV9{_Zt#R9OX-SI#3@rU2 zn*Od<`K0J%+d<1b!IZgON`0~>G|;NI(b_w|bZX5wR^xDEWm3_bevu@+^g`zrtoL9| zOPM7H$tclMRyM4QvvI^4fV2>y_K+ULSf;gYx6&cOQ)0{n*bkRY5cg#nv^ji1$;czE zMQ86F$bc$<1=>`y4$31Q`j-Qr#a(18Hv)^6n4a!ftd@ORh&2tWp9QxIl7fV}B>$ zd`v_otQs;zR>yW&X?<$lXJeTg7lKbzzf}Uc8@~?DW>qsF*+-^FYX`efkeY2Dm&LQE zQhf+$kKKz5^-#j&`=bfzkYVN-N*koU9k+G!u)GQ@K9(~zrZWdf>SytDkcYB*UjB~l zbXBN@kUmEGTXqIC%pS_B(rgLHTpdR5Q0dgfeqw=KiLf84sj7EemS47iJcs%zq#f9m ztJ<@~U{Mz>R`u7cHv$}CC9j1_oL$YMNI)^ebDcpWYD9Ut|FY;Vu4)Dv__<|v2D-U` zo!}7rneg^5X;ynQ=w7|E0W9k*Q-0yxLG1WEb}=X3>?ks$^gaiE#b7!cIUJxJS3~hO z3tlh;Q&;|~b9O*lDn6dbi!wNroEWu5l1+B%+Ze_C;ZO1Sq}(ojFf4oYulQoM-%oN57Qda=y5#zVIomRGL_mjGGmms$ z4!Wf~xl86U)zlh(Xq4C4mre}nU*;>(gIYJ{@lQtw;Xs^hq>MQiUm-81iz7)@W_j&T ztNe@=`);+H66@E}x^=ST4$@Mc>;>N!iiTR2AJk?yHRHdK)!Pv8l;d20JlJnD-q^;d z`f&DcaWv{_+dX3MQ(JgZi=fiK52p*r*PL2dSYVrU+^IltHG)l}_D8|}eKmL+X;-jA zs_w!W(mLUMtVvsbY%ozywmAwFsl``c9imjg`}(4@Fty2#@1>TY3J^g;n(IF2gnpz+ z5h>g&T4Mt=TNR^A=yj2-HDZ1jlSZ8_#ry2#j(_TXu>Um3nLe3~KA*=e><8zV{=!?7 z(Xh8tcC~9YtKBWTIv9GnvdlZ7&vQW|&n3+>ap@Yfod(S*zs?IU{VMV*ow9_ht$(-O z$8bk3)1hY0FVdRq)0(n^4WVPUk8&9?i9555rm{h}cB;}9ma=2fHVqEmzv6(ln97+N zkuP5B1YoZ>z%KF4rI^#_>X8Q)9f9^3SYW|yY-WgSOiUnqnVbGs93HLyC|D6A=Rhh4 z9_921F!!Ag zM;&_)Q2y*xRFwZAzoD=n=9XPjja6*Z4z*`#4K+pxU^pS8qJpopSVsqX{3tn_fGxQhraK;EH3*CyxBWft*!z`^Ulu{W_84u=!eAy9e$J^k(zSbvQ$hwS9am{G(8gC z;TJ&*uSM%u@%>HZySlj+cZ$}6p`v_YjQeGCar?ZpMM!w={DjiOd*CM1A@ZfveAnC} zfT4wc+G-acRhjX3u2C5nVnF!t`Ff?)zyLQl<9yucA))kUJaiOi{1g?86!#orFqQ_K z)nv;hi4dY)Coalbv$awEodlo?=NBsXbDpDLf0W}|H8sQ7@3ydq?04@eAPT z{ihJ;;jS9?)o`8F21jc8CJNKEs4S*ZQCP^}D|eeUZD);3d=8H^dF19>5D}EsT(iTm z98#nIt$2lJls-eVjaO(25>?Kkvo)S7pHoh-R0O$+={ptDrLRKmQ~YA9%{0Hk(_Obo zHB|R(V4ux+lak72tVz7xZE8}E8+Xu!eJ>%px!&m2=~k%#vWK8=^#3&M=9>U-J?FrB zV!-lomCdx^cVVg%`Mh)bUklXkn|t3pijuP3q+$i$Uqvz@EZn7>acc+VW zwM)ytiv>h-e)~rZ(0A?8v#0P;}st1=#q$~gK%;3f>G8My5!@3WD(@w zKN|UecFPl%+`c@R!q^YwHn-9zI`Gd_nQR}EAy6N5ym2`<2}|4elcm(m1ysIOxC>>u z?3&c>khjN7ismQ_oy1l`SYw>!=dg~H@|DD1TAK4!Cy=T81?A4Mu$oVw%1jqjP3NMt zBWbLg;nUJPhK83huBiltOdf2(BgvwSm0QGUNBuQWh?B4Aqr(*3?_*f^i#`%=Iy9+( z1|TX8%xO7g0)-YswPL$`va4)IDd(=Yk{`|`8gCgHrDLjVlJ0l^!l>G|59qc4`$chJ zw(Hd$M%6(1+|NhR_C&VcZ}dt1!4(AXhmNkQilR4Z0l3z!f_%<6|JV>v8dFw!SPjdd zEFn*sDSIQB0EVJk^LVPG<15|S@+-N|Y_@qG&=V#5iT2CzB4p&%NOj6@tScy^@uIk= zTDGm9R_-FdyG3`qMy1Hej3LIJrmpnd9rmvZb7Y3)-4Z4~h-KR_Lf#XkO%6B~2*;6$ zEvwD?D$VYI_wb2@v$)_p^~Et|mAGInBuxnve@?z5u#j&`elQnUcAh_;o2%I{r>Hn) z_C4FsCTqpM9|O5ka&@OE=)5= zqN+A6tAK26AJcqRHENc#-Aq^fES&X#kyzYGyTlqK-0X2-c|2M7K3lW3ig-pWf70V4hB8c6Na14|vVLJ~tQ%|#qU09__x@B#Xof(n!Z<6;$rjP!PQA8-4B zSeY<~p8gluPaKaM=S$1m&{Y+ZZkxLF^i>0lMBAW`EZp zWF(kVe|-LOm8n#y%N%rknmY%4SEmt+Q0_Nhoahcd%1=aW9`5Uvl!S!EzyCm_v($Ru zkt$`xs}88PH|{-=m^P34HJS7OY$N_39@xL+L4)5O7JBZXU_00T7OSvL;fa!XY(eiI z7dOxZz=l2U&OsMx3;*Puh=qbW29-huxDBY$a*7Ftd-S2xlvUwl}66NMabu~Z1J z?o=Cqs$64UC?cvUycKU_GA3ETBgKpa5;bp-4JWO|o%OWSg>a`0?6JW@AxW7!l4sMc zTdi5G`OWP6Vbn!Lyv+a;>AGe-sF4o`#rFVR~m9 z-C$pOt7yU`$+T$-dev&QwD~LDyhr<~E0UHS2z#ha&^jf?vIutz5`T+^yw`Cs2_gGg z6LS{)k5;315Hjs3kP!ZAb!3?_jPn<_yIdWe%nm4mY=wn3SDRV5&Q~lvEj@lQWZ0Zs zx2A>aeI>nGGcro0jjY%{7`~z&NMJtUF%|>mF&HHK_58HuWZt66{1RKR}H1v<{=ZPmn_=)$o6Jm;OiOH z-Gf=f6L}1vya!}h-$r=TEv#(IrP&^%`9!;r-~7>l_0U!6ApjPL6C;(zQi`m*Tf{zU|Gg)M8Rop=V~ z6sh2!kdBK+4pXs5^x+0!-;cigDj{l77NRM@$w>l;?XS}$kEz|HDdzm^<+EB#Z?ex&ujzL}kR zg0s_TQlIanp}hW=s%aHxgM)#{qaUsIqH-6@`iOZ} zDhH$$hakUIUi4_{5H~g$_F*1YQBNtgGs}FdJFTKGcE-DwCw;^{1U(fQJ47cIns=-A zhZ>(U)jyNc4#xKaO5ASB+A;m1PXsPO5`%oR=!3-9h3<-&)sR&Dhn;Jzc$$31~nk{ z*MG>B_^)@$eM=`1MWNM(DMrse?>2n+tgVrK#$Nw4W@&FludBVS%aZ0AGSF8L)HYA! z1P<(*UC16kHt%N{Kk=5WGg`UJ!*`&R_|oHcYk4U*Ekn59?D*h2E9OJ0G&_n#Yvmvi zo6X|8R6@yXr~OuDccZis(fPgn>5Nwk9}nF!Y{SIrC$rOX1L>;qV$Tcng(aXUZ6Td- zO;+A=F-_J)?`L0D1Wl%9VUTX5WH18rofUd!m`1;>NH3~RD@mFMgR{nLwg%M3@M1`( z5PO!(r?_J=`o6@4%pKg>_2VR4O=AC75sDHMeR}WX4YSk18NexpA7UEMja(jB9!*Pn zcwCTUB1|JTLtZ}?de{1YK>j3h5v7^2oPX_K=imNy!+6CC9yjbyp(NC7s$kuCv6(!f zN9{<;7_WXoJt(+Yo`5*UWd`mJPHtCg&uWyjrjJXHYj@Z`*^XJrD z3>tUoifAfU43J9=oGqU#|E{*YoJNpmT9o&DGUoahNG@7-*I#xtX*DN7q+o`} zP~O9pK(Czodf{xqsV=E5OZWJzy$qje3WHW;VBMOM=M`8`D3d;0=U&?yM8du1R2+}Q z6{imjc0}Xc(rli){4h`rx#M`dcM)d*2V?Iooi8x`M;x1-wPRO3b+LKdbq z3lx;|Xp?r*2K>sUabY2#|G-{ZYinULCduR|EZC4X&dYV$OKYRaCb6esDSe2z_yPpq zbU~QVFqiHzMw{wVy5v@ANi8v+t?c)?^SnQ_O(!i40(p~sFZ0i-v4EH?^gRtj9i6Pk ztaLpOke-E}H;$uxR_Tl?B;jorVB=vN?ZXb>TiV&2(3cLmuG7~`EY>rD*H`nm zE)}kruFPHkT=JxQI%`QAaihsy3W%WGE7+@RiaRbbR~8P=J?7^1>8ObQ`g3$SY>)9n zQuCK!Xnwlg;`n6tD#wNybJ!JIUmbh>H$zX;$%&Vy1a*{o#BeqeE4Cb|0-1I)49Za2?$UM|4gEFR&U6tzYVqpy(z_X>3xpQ$>q19FmIYF|YU*45FpYq9BN31 zUgn9Td1l5bvml69;PdliT>_=7-c0nVkYXL0Nx)=sO#IOm9z-t_Fqa znkGh77E*7qTAclPjB{SV^bvDUmnw8F?Y;IjgH07V(<3LfX6BF$pN2JcPcu2u0Wmr* zg?bSvjT_B4Nys0o5O)tH`NDdRtxzJencmXU#pA#Gts{OqVc6!ZY^8c`-$TmBnuScH z#l3o6#)$4zC$G8Cks#@?_fI(A`*hnF1-fR8um@D$hwNr#oI3un zcRVYXZQr|M0KXU{ID2#q8WKW}W-@nIz*|SWvoWZVkF$7FkZ)r@A~c_%JieKXNc3{_ zBwS3M$`J_S9yLJwK@E=*Ub^fvsZYxmf;Hy#U!D9L2HCdKhz*aVlc$EDDMJH|*&9UW z+g+`}{!|E<;g?Z!Y@oHg-i%0@_3D1z85=Q9Gpy9UD&0$3kh7!Z*E0KJM~$`nofJ`?(@E>=FRu3+eu?s3!Uaa>EP@RnC7it@j za=T=*`rrO|#hd&CM!g=t#qArgoLH?OGIx)?*a&E&UQ?LNO*PdlqpaP_qh zOL7kY61Jde__k3d8Grxfc=hxdp+DJ+d1__0n7XkJ^Es9B@vtO`Ql_w1Y#h|gd|^l* zwi-Cf4BLbp1zB4~WrEq9&A0mKs{_9wCA5$D#|ibBmpn|kPnef=xG z&=-{3pCXR9Dc2kA>8nS<;sI@7@P4F3V|@JOoR#cxIDU3bI1)Et9p+Hu+vhsnS(%tU z!Haw=T|R8`W&fV{R&Z_fS)~M37b&8_SX!Hdk$Xe6-Na@<2y}D4z(eod40rYDrR479 zI+8^EB{uLtI4Fu2FyAkd=%@>)6=bH`zKU41Q`cO_3-?;vs1uwY|M=Ivl>hBdKvJLC z6B9F*=soh_erU8meOh)l9IJACWr=SE5I#OlqJVe4ij3vcs4jl-`h8zTc%G}DZ^hBy zeHB^7W~~aW@pqnZAH8^-2YW`dlU~~2x7(k0;F+D;jr<`0YDN8iQ2^_7CX-vaG-!O+ za0f!+_^RkJCH5^LC(IiqNK0_z2-DLt86JA_#$reZ*NF#Wdq4eyV06}6&12pBr;B^k zdDxm~Q#?~p@#{AVw*OcH~hy2##0g=;2Yw}%`MHC>kTL)!o zw1|^6AiKyl@2mA=Hc~Ig&ur#COz(^o5_G@ZCOnIDXN8$n)Rb2Ce1;#mqpTaiO^iF^ zm_<30TdxB3I-xYdPvN1zza(64ue~~8JglEjulqo+V?tcoYpT6Go$!86o!!)o9QQ`@ zjwb@8WT~iL-pqot+vhKvseM{NE8ni1C^Z;wbvaMCIOE~bT{7M;cS~Ax;j%&hA}eCF zZ#U1Gje5PqQt1WbXCBlq%rH6wVr_wb-HoTz%LU31^j$5x%vyCFMV%aS4}E8cRni!K z6&TS#oXY=mwlJSc{V9CMuh6bH{X!Ts6cC)QhoFi2=WCc)d zG&1HkCKXDk6L)a!p+nhm^)Aj32{*^ubVF2SRcBZ9mQ}E}}Bj+X9#fi8KnWT&a z$^*QOyo;pX^3oB6K~x1+nRK^TuB`6cHeSzVjnwIIMavi8a0R7E_uV>l&VM zB8|Kyekl}~n_bKwPlZ|qJ)(WH8{h3Wk%J6sCapy0z9XrHN99O2eHFo5%GsKa6YM&y z{P^?ECEtI-U)_(i4_|TYibk}zkfWva7e~V<9&ml1y>e)>&}?bGGG9C|piDo;p1{OO zFrw$}l%F^1SHtv)@VS;d*Kggy{)kA<3ii-&$e7X$0GYZ>zWeuGegD?2{%LG2%)tC_ zffj@TA>pY|pm#E=xhSH&VQY$m-6|P(MUUorzzmH;q+aCSD)i5YD41IKNZO6J>)XK| z0kH!f^o7+PQ9GF3K*+8EF({JZMeB!IIP|qq^#e=!m4JDaUd*wAFqEY zXsyiX)a*PivMcXsW%ElGl_m96fXXN9f2R%UmxjgoY*4Pgr`yPAQkkwL;brugAOb~b zjk$v`IGS-P>~5`_GTkiF^=TQvM$Y|H0HrX`?w?I4jF7Nl+!tef`3lZ>hW&e~MCiv4 zeNAMKav*Ykt6?a>y~f(iof}}Gp2iIsdO%G=##NXYziuzSUD&lY+bPVY$~Lf@OiXAe z+Q*>eF>&!7?@l~nEt~;z=LWpIv@T2Y8w$yb1+@U7jUAa3K?6?9t>Tx*ps?L|J$x(I zzoRp8Ra6<1t@Dm<>_gNWzEs>ad%3=xS$#k-6!MwI-pSU=ygs6z)=yxr4=w5(7VFCk zZX(DTmAoi%&*CDTWVZtp$wV<%f3@kY<#^9*- zwG_V6yhTm&tB>Xw?wm*qL!ScrH}0n=oDp$}x3~qb60-WKDy%lINpAbtu9=v3QsZRhT0~qL zArnB3@ri7VL05M)*5Jh6FM6>YZA2x-*+3_%n1OR-UD3r9OhMK}q|%ife#rYzKgnVj zy$ow5a=OEe<(=lb*>xz7gAH;S`lM2*Z!WWak|JH`_Z(RREkw8B#uCo%D znqKnd=nK|Js)PMDI3vzKpYud# z>tq$T9HX{Tf|WVKO7jHe;+|#Cd;^!ll6cLF2=bVA;d_SP3#oN8yw4*|=g zRCYTddCut0Nbg#(QLTy6oUdFK>5ixqpr!#ynBheV9pbNqEv_8>UMRW=OXn+xG;&ij z`T`av_vNvN2Qg@hrTdSqTaVWU<=?K(M0*(OL2%XutWDRq@?Qj#2$(QF+2ZA`?S!I| zV-UBTD~C$uM*u=XHUx@eD8la6)cez5k#8gfYC>zf5V`rIj$LnV4gsgqs?@r1DrNHc zB3gHlVkDzhGeH+q`Bd^Wrz?OxTF8irkTSX6?%J?%ui;`sChUI8!5D9ym-iVt0v*yV zk32NF!9`A&)ZY1mPbM!$dlwbG_+|D-`gdRkzqP(?>?m+SB+DL(BI3)c8EYX61Ex-x zWQ*JXfN(*+iXeXZtt8Lv{8y2O7Ef(`>wv+~6QjLL+D#h$L&p}kR-RALJ?#*CJZX5c z`w$LIL-F-hDLxEPXK1LHqw5!Zzt1o@HPd!Y>t*E@zB*bXrYyl}_mgpvThQ#2ZX?x> z_Lan7L~%%_NEE(Owo#swudv@{{x(c3v@uhmf&Y#&pAw%jPe*<+YDk5Voe zeftvDOP0c2Dm_o1ZuiHHgzOi`-GL1vmG!gV?VMThdWgy5(BlSz$~Bw}dzenYrThqk|IK@irha(fXZ6j|vEv7`7E zUT86=>!La};x1hM=QZ1pvoH&BuF1kU#k9>;iM%*1A7@7Q;{0BZWCTcp@u|MhTkNbxs_&_J zf}hoz$E~p=$qo6sq2d1h&|Q`$G2KZMTyZ~LJi=Y25p92%oP!lcs_ZFhoyNRPrdQ>B zo1NJ^T=U5V@n`)U5|I&JM)1bc(aoc0LS>irwH-Cmy3%y|`w&CTdrV1);mR_=6}n%N zhMl`|QW*6-DfP0IE%5+q{%L}78-M7jtESgQgcoJkhqP8#$LhDzy$p4#f$5g1-QExD z29H!L;$J*bb=can<af@~me!$A~ zlcugPlrDR7J91po4QspTo|a`1qNMgpa%`=+1T;qoe_f{1x=+ibzD2!@dWeMGT>O5O zb#_*EJ)rhddDclUjo8$`_|fAjAtcN>BglpcBOO%@Cz(0WWrXisv?krnxe7}UJ5pzw!y zk@=)l9NJQllW@No(RR`40rU0|#%*jN91}@U?}_2?)`kU5gK@8Ks`d=K1-ZW|Hv6nu zxMg=xpGudI`*~G~kQa%j5CVtu`a8=)wL|Jh^yMdGOD}=s*sa#k1%f|DSgm;N2^78j zJVPnq{h|)~q&i)~F_4sMa#GEUt}w;Zw;3B7YyQb?zw-VHoIO~X()q3EEo*p=qqk#O zRS0w24+NbmyTWhnmYCC?1a@T~I?lgo4ynKyQ2&^vd)fxH&9z6vEXLVwFM=ldXwCkx zaOQ8Hea#_vDmyO!nR+nMWx${UE)Yxp?A9S6BpnefM!NtEOHMApXr+4boH{)Ly`We$ ziqRD>LK>-yj(pFWY9F^SZgNXnBNQO09({xhb6d7({oKV26pkHzaj0r=gs!6b!Mk)s1HZgO3Olq2vhC1 zby~MnDKPIwGfxz-Qtn;Y56ewJD0g^f4etcY;6CHbsZIw@jKKhF$I$>y{mKLA>O)77 zAO4Nc_5X#{S4TASYfaKAs7tDn>y%wU?Kf+H7Qz@QhG%oE@%&rU(tj-LyvjEY98=2( z>b>~XGv7YXMeHs%o);52Z&PR3yrq!87!|C1RyJ3&-_a8KYn<$z3?8tCrobxzJnLG87sR3xvk#L z=XB>JhtFD>2)UtB|C#6dA}T0@QE<)tp8^oRNu{jZU`4C#)ML8+R--&FqiBHUMxo)B zvXvWzBz4%aHFe$?Of#uP1rW8PIO247#QLx>zbN!EVi=tax4`4F<;rB15oaEFY$`Nx7TCfmnycH9-D5t8k=mxQO-=Z$}2CDI!@ zSU_c;Tbrr4bDPP@5!9BN=1Vj%%)Fv2n17-Vy9iUyusw83)GivDZSQEGUFDE@s;Lh* zvz=XNVq!pDbtQIV*lK`U!$fv#kFb1lSI8vLgt+}3+im{)?}v@gO1F|22J>cFOF&X~ zVlUe`z99h>6lsH%XbNfx2OIx&aoSP^!D5TjLY`I zIku`0^q_KV%je^G_K)DL_u2-W1OlpoM9pr+)pH zK+*pe>V6`JZ@vhO6O=}JKAg)+Uw;x13bp4oQid0HZ_buj_LxXWYrpZ!)ja!|X;40= z8U$1VEWV99UG`NZis#C{IU!5E90ny(5Gq*7HZfal@Rb_~FT6B}A zX@)jL_pkjSZ8%&r=d9e@;%RDVu6XsIF&-8QIv9LLkKk|VPJs&GeJ$k^=ILvQ&F(u$ zXAj-Xv@DdO=)S}i+8A3<*>K_Bq7MwBE36jz(pTQ~KXIT=f&a8Q{PGT&TWtr11Eprm z?-vG&W!77tgSh@R)(rBvCI|w^n^;s4B2Cd^BGef_S)jihd zs+pS|S?4Y&o7PRom_02*lIFo34vC1=A9HB@95OR(PF%ufEJev`49-k!$2q=w6uuwt zkdR%yc3~vA413@Y3mY${-;CA@cya$zCOJ*E$O-ygPc?qw{lRwIR4Jcq`c;JV#4)jY+%vTZM#Kcaa1pQDpR;3@~y}C$-M_Aj0KvM!-+4D0t zvl-_m@ADg#WToHisuRYXLEw9stKwb3_E}SclCW!%mw%~+*K_=>0)pZ) z4|vkf+N3+#%e&&=a|e%Dzjx5;xV)~LEsMnYf9>2}y=y6&4?GJR3?4#nU0 zxGOrqd&}49^OBc?8*5k2>2`q44c=cu3%H4?8 zHh5P??TNB#H=a5-r_vZ7H$%-*9w5dM%t*eU;rv2YU}IWQ#BGpn&&7de+iCgj0_M1f z60I9QxAEKb>bjP^z$e{IL914-6*OXR(*uWFo6c`q5d>47OxB5vZ2KI|5GBg>+3=cX z(~tA7X-8I?rLyMD84&v7NG54$pywT>!Ks=z=CcJ3;aPHJr7OAQ*tciH5 zgdR_*`n3i!#3+FHlvf9{jY4f;7msR$Jgq5D_@Q>x8wX5aTXq|#d@00Zgfhk-(pggP zR5VgozAP^lEol&}=VJZ>-k_#MQYD64YqRG|>$Ugd)P? zU-%giZ#kb<$m5S9jsTzE7sSU~Q=aO)L)HDY;X2Z{Ip$|VaIiY`Fj**hds9jdmY8BE zVf^WXybCAh-jl{Bt#W21aA5#zZsI-=yY!~K-$=bv?g7f^TSRgp7@i8}E%;W@tg3^m z%NMyjoC56ii=SgW?3rpGdR?#!NA1cXUhzH~DY5P~!rOs5$K&1ysInZ@;IJ!QOCz-L z&wjk)?O=FJKqmz{k9Ugl;@|l|8X4&=7HgPQQuYlt2gFy$Dw$xJngOIDo(^agH!k|R z*Cj9HEP2wIT!+obFn|JGW-;EbTQi%-MP?-nBdKV0N8h6ClPKLw*cU@iE^$kxujagv zyVtVDgupNy;K9?55nH5^+ZM?C2Vz?i-2!LRU6EfB(b~w?F%BCM+RTGwQ_|X-yQej4 zm<|QW&3)p$Yx9}HxV@3IM&&!#{?Gf%za0QRnARkMNm*MU^8>RRQ(caqh%R;hO2%2(X`CcX4;}A17e5A}57_jMqz@ zxo@eME8w8lStuwKckkpsz1`kYlh*kEv-3AZu4P(jUNd+8TjsrFn-~^{b4}#RW=6)j a4>PR&|65hi|BNo$|No8u+<)Nf^nU@9v3_L$ diff --git a/docs/assets/ui-design-review/density-after.jpg b/docs/assets/ui-design-review/density-after.jpg deleted file mode 100644 index d0241c4210f313c1d4905ebf068fa06e583c4141..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32497 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 M@L$0Jqpytr1-Z4J`2YX_ diff --git a/docs/assets/ui-design-review/density-before.jpg b/docs/assets/ui-design-review/density-before.jpg deleted file mode 100644 index b4bf541fcbf072470320e56fb271d6efeb1c179b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46536 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 NM=JhypB#BV`X586(D?uW diff --git a/docs/assets/ui-design-review/grouping-after.jpg b/docs/assets/ui-design-review/grouping-after.jpg deleted file mode 100644 index 7fe1f8ad51511e3737345cc61fa7d0276d1e21dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18699 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 diff --git a/docs/assets/ui-design-review/grouping-before.jpg b/docs/assets/ui-design-review/grouping-before.jpg deleted file mode 100644 index ea5cd8dd3179a9936f22b4e704c12eac804b58e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17901 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 ATmS$7 diff --git a/docs/assets/ui-design-review/icon-optics-after.jpg b/docs/assets/ui-design-review/icon-optics-after.jpg deleted file mode 100644 index 678cee8251ee31e1f984d212349bd55baeb29548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25148 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 diff --git a/docs/assets/ui-design-review/icon-optics-before.jpg b/docs/assets/ui-design-review/icon-optics-before.jpg deleted file mode 100644 index 767db03de97ba01b3d7d479f1be9c7aeab4ff7f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25602 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 diff --git a/docs/assets/ui-design-review/states-after.jpg b/docs/assets/ui-design-review/states-after.jpg deleted file mode 100644 index 453b65fd5d7b5db794140b9122a8427b2e5490f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1101 zcmex=^lOiET&UP@Y7ModgWM?qOlT~kX_QeM|USHnP6LsJ7}2qQZ?I~NC+Fc+7w zhLo6;2Fc+60R}-11_OpI%#2D5OoEKef{g!aF?O!!Ku( z>ZMbEZL^-{GV$28m><&=j7wP!<#<-9{NBJ{TC{9i&a{vZf84aL+ZkLxYHeI&#BEXd zLAhf`xJb~+R9;tSMa3nSpRALmxBO@5lG_|m7JQ6d(ih0)p60EUwDHXE4sYq_$y*wp zPp~`nK%v2Lhc$=8rbt1ilPNCTsuKltrn$hmN=i(}kDuEW<)!@Psotc(XW6$hi5(9M4t`6`qrS?X|sNAhIRHEokDWfvXy$l?4DIpNFW z#l~JI79Cr0SNV?Awf1M8H^djmM!D()yi&?7Hkvl&wVwI*Pni!~|1*?XPhT8YEF$$| zw$quXtE_hOp8YeYg0cQ?+t(LYUM5>je`av*-Iu+qKishut?Kw_Y}{)bDy{S<>Q}nu z;h93*zqCd6>$b6%FM4yk?eU9Mc03V#k52vKxc!8bxe&W;Qqxo8^c;myJ5AMlFK$HK zck=%m6d=ofmf_u|bNLMU(^qIonS~nmz21D-c>TmKWeMhq#Z#^@`+oMbUcWi|2>0_> zUff+=&u6^6^U+#?_srh6JD9I%UNN;zb}3C1Ed6{<_^-w)kCkLq~^Qb!YO8E4eGD&D$l`W-KtpE%V^TT$@K`-1jRiKgF$I z{8hB*YI!sidZCp8k6A#HSbSBIP9B z9N0Rqi0Qg|-qqz7eUx(KbQ~vlg>}AixwvhHh3VR>Zl@!j@!lw(|1u;`NvR7MnMw+J zmJ8477O*afXwu_|b&+_^Hc2?gZp~r27faJN_CB4VP_TEpopguH+;|`MZcPun_sTbO z7VQoe`S8a|OWn@l`DyD6vFZUO#n);nF;^^ diff --git a/docs/assets/ui-design-review/states-before.jpg b/docs/assets/ui-design-review/states-before.jpg deleted file mode 100644 index 9015fdddf07f778ee78e31ceb6560fb39b01c38f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1215 zcmex=^lOiET&UP@Y7ModgWM?qOlT~kX_QeM|USHnP6LsJ7}2qQZ?I~NC+Fc+7w zhLo6;2Fc+60R}-11_OpI%#2D5OoEKef{g!>2(Bb?kV~wq@rLw#G@G2N>A{-OXpJS#G~1x%i>Z`nwzN zZc*vmap?KX7`Al_mMKrx>a^Ekej2$ltYAjO+wT&qV}2Zt7kP8_!wG|j*C)!lIo((^ z!$&8ayT`*o*&N@?7E%fZSHka+6ywoLY?emmgJhfjP-yfb3bw9OuPL`2npLW&p zB6CJ*n+-wJpI`mc^uX})p$#j{s&}m2ahS*2KX*-`rGc{_^E`%=2S3iK_r9ueaqgmf z<`t*?o0X3~ESY&+CS%P4B_;lOch+BDaXVPownUdF^-!SXa`r>FDv#tyo);*6vp4Si zmC)0sx8`jtJNL?KBex0<&uJe+`v9vwE56LOE?D+itu0C=HD&Yk_lqY!y=WIHC-K(d zm|O|7r26ZxA>V>7n$FX1Ru@?-e5G@7u0cU|^se3+2d~I%_-OwzB*w*6#Knch#UZBH zc~;Z|ZjXa3DFVAXlxLevm=pc#jNyl_uzZPox0={}9u}X@V|Nd~%y@Rn68Y&9Kdf1_ zJ;?C(+lzsgpV;jp?=OBf;py?^3RXO<8wFjHc0?~+t21HeN58X@Ch2^#mVy_a=)^@9 zNSW=M(U-qe<&RB$*ClP2w43pUM-QzzD=)Dq?QP%tl`19YMBBC)E?mpFmYIREf$5c| Pqo9DGAR{tS|NkZcFzDga diff --git a/docs/cookbook/reviewing-ui-design.i18n.yaml b/docs/cookbook/reviewing-ui-design.i18n.yaml index a0c2df7b7b..e36a105c61 100644 --- a/docs/cookbook/reviewing-ui-design.i18n.yaml +++ b/docs/cookbook/reviewing-ui-design.i18n.yaml @@ -9,20 +9,20 @@ en: d42b121ca63177aa zh: 68b637fae3252c7b /cookbook-review-a-ui-design/summary: - en: bba82e6d46477c21 - zh: 1895633f986845a0 + en: 71c864587a5d4433 + zh: fb58eb9ae3f2ed94 /cookbook-review-a-ui-design/table-of-contents: en: 84af073b2a7eca95 zh: 750633fa3c458d5b /cookbook-review-a-ui-design/1-define-the-page-or-modal-in-scope: - en: bcbda8081f968a50 - zh: 21ab7a92e677d171 + en: c9ee94acd903d809 + zh: c8d07c75ba94531b /cookbook-review-a-ui-design/1-define-the-page-or-modal-in-scope/select-scope-by-visual-impact: en: ef9ad1428375f1d9 zh: 8f59cd04947c16dd /cookbook-review-a-ui-design/2-inspect-the-task-and-its-implementation: - en: 4f0c8520a764ea4d - zh: a0317a8ec85f95a2 + en: 86301e7487e9cd74 + zh: f13bc3da0b2ac2d3 /cookbook-review-a-ui-design/2-inspect-the-task-and-its-implementation/reconcile-the-baseline-across-the-whole-interface: en: 76d008d0bac44f1f zh: 2357d78f350b5540 @@ -33,8 +33,8 @@ en: 61b9e821e98b042a zh: 9b67719f013e7c3c /cookbook-review-a-ui-design/3-preserve-the-starting-point: - en: 1bb17af79c3cfa21 - zh: 95ed56dcde3647f7 + en: a0f8e8d720097515 + zh: 4ff54f0c03bfdb48 /cookbook-review-a-ui-design/4-change-the-smallest-responsible-component: en: 8bcdb909b6825a5e zh: e140ca3873b302b9 @@ -45,8 +45,8 @@ en: cea04ecd81785ca2 zh: b321ae244f050b1c /cookbook-review-a-ui-design/6-deliver-the-complete-evidence/comparison-delivery-and-cumulative-changes: - en: 8f8dd0e9144b614d - zh: c423c08c9706cdfa + en: c81cdec4ac3decca + zh: 9dcb16b292414fda /cookbook-review-a-ui-design/further-exploration: en: 98ac3512211d94ae zh: 055418a72f29a15b diff --git a/docs/cookbook/reviewing-ui-design.md b/docs/cookbook/reviewing-ui-design.md index 0a89bf3d46..9e2cd7f2f9 100644 --- a/docs/cookbook/reviewing-ui-design.md +++ b/docs/cookbook/reviewing-ui-design.md @@ -12,6 +12,8 @@ Use this cookbook for explicitly requested comprehensive reviews and for evidenc Check the complete icon box, including intentional internal whitespace, text columns and gaps before judging the drawn contour. Hit targets are not icon boxes; do not align each glyph’s painted pixels independently. See the [alignment principle](../ui-design-review-cases.md#alignment). +Check associated icons and text against the [same-foreground rule](../../.agents/skills/dsh-ui-icons/SKILL.md#placement-and-use), including submenu values with chevrons and search placeholders with magnifiers. Compare rendered color and opacity in both themes; preserve semantic exceptions. + ## Table of Contents - [1. Define the page or modal in scope](#proposition) @@ -28,7 +30,7 @@ Check the complete icon box, including intentional internal whitespace, text col Identify the user task and affected page or modal. Record scope when several regions, consumers or design choices need coordination; a straightforward local change needs no separate plan. For an explicitly requested comprehensive review, enumerate the requested pages/modals and relevant states. Do not present local inspection as a whole-page result. -Use the [judgment priorities](../ui-design-review-cases.md#judgment) across that scope: alignment and spatial grouping first, then density, hierarchy, states, component choice, icon optics and geometry. Express each finding as an observable relationship, such as content appearing closer to the next group than to its own label. Follow the user’s requested order and authorization; a full review can identify multiple related defects, and existing implementation authorization does not require renewed approval for routine adjustments. +Use the [judgment priorities](../ui-design-review-cases.md#judgment) across that scope: alignment and spatial grouping first, then density, hierarchy, states, component choice, icon optics and geometry. Express each finding as an observable relationship, such as content appearing closer to the next group than to its own label. Follow the user’s requested order and authorization; a full review can identify multiple related defects, and permission to implement routine adjustments does not replace the [required designer/product review](../../.agents/skills/dsh-client-ui-ux/SKILL.md#design-review-escalation). Read the [client UI skill](../../.agents/skills/dsh-client-ui-ux/SKILL.md) and the applicable architecture before editing. Use the [responsive skill](../../.agents/skills/dsh-responsive-ui/SKILL.md) for width and input changes, the [style reference](../web-styling.md) for tokens, and the [radius standard](../ui-radius.md) for corner geometry. This workflow adds review and evidence steps, not another set of visual tokens. @@ -56,6 +58,8 @@ Inspect the affected result at the normal application entry point. Reuse an inst For ordinary changes, a finding needs its location, visible problem, correction and verification. Add source ownership, alternatives and conditions that would invalidate the correction when they affect the decision. Prioritize visible or shared defects; differing source numbers alone do not justify standardization. +When diagnosing spacing, record layout boxes, margins, padding, line boxes and visible glyph edges separately. State whether a close control aligns by its button edge or icon box, and check trigger/menu text insets across their different icon sizes. An annotation of visible whitespace is not a measured CSS margin. + ### Reconcile the baseline across the whole interface Use the [applicable-standards map](../ui-design-review-cases.md#review-baseline) to gather the current radius, material, typography, component, feedback, responsive and artwork rules that apply to this task. Record named exceptions and the relevant existing variants. When a personal or external skill differs, use the repository owner; when implementation differs from the owner, preserve the discrepancy as a finding rather than silently choosing one. @@ -98,7 +102,7 @@ For complex findings, explain the compared objects, intended relationship, suppo Preserve a recoverable starting version and relevant captures when a comparison is requested or needed to assess a broader change or regression risk. Routine local changes do not require an extra source snapshot or before image. When retaining a baseline, include existing uncommitted work rather than assuming `HEAD` represents the visible application, and record the source identity and capture conditions. -When captures are needed, save the baseline images and their conditions in a local evidence directory. +When captures are needed, save images and their conditions in `.ui-review/` at the checkout root or another explicitly selected local directory. The repository ignores `.ui-review/` for generated evidence; review tools can remain installed outside the checkout. Use a scene map for comprehensive reviews or multi-state comparisons that need it; simple changes can be checked directly at the affected position. Include expanded rows, dialogs and relevant loading/disabled states when they affect the claim. A collapsed parent does not cover hidden controls. Use safe fixture data for destructive or unavailable states instead of changing a user's real task just for a screenshot. @@ -145,6 +149,8 @@ For a formal comparison report, use before on the left and after on the right. A Deduplicate cumulative summaries by location: pair the earliest reliable before image with the final implementation, retaining comparable conditions. Keep intermediate rounds only as historical evidence, not separate final results; reverted proposals are not current results. List another session's retained changes separately without claiming them. Disclose missing baselines or uncertain ownership. Record actual checks without adding repeated runs as extra coverage. +For an all-changes summary, trace each claim to the cumulative diff, current owner and retained evidence. Separate net changes from behavior already in the baseline; resolve later user revisions before naming final values. Label older captures as historical when they no longer show the current result, and distinguish source-confirmed behavior from a scene inspected again. Feed reusable decisions back to their rule owner and contrasting cases, not local pixel values or an unsupported whole-product pass. + ## Further Exploration diff --git a/docs/cookbook/reviewing-ui-design.zh.md b/docs/cookbook/reviewing-ui-design.zh.md index 87efa18470..feebd0b575 100644 --- a/docs/cookbook/reviewing-ui-design.zh.md +++ b/docs/cookbook/reviewing-ui-design.zh.md @@ -12,6 +12,8 @@ description: "把 DSH 页面或弹窗作为整体审查,按设计原则说明 对齐审查先核对图标完整空间(含有意保留的内部留白)、文字列和间距,再检查实际轮廓。热区不等于图标框;不逐个拉齐 glyph 的像素边缘。判断顺序见[对齐原则](../ui-design-review-cases.zh.md#alignment)。 +按[同前景色规则](../../.agents/skills/dsh-ui-icons/SKILL.md#placement-and-use)核对关联图标与文字,包括子菜单值与箭头、搜索占位文字与放大镜;检查明暗主题中的实际颜色和透明度,保留语义例外。 + ## 目录 - [1. 确定受审页面或弹窗](#proposition) @@ -28,7 +30,7 @@ description: "把 DSH 页面或弹窗作为整体审查,按设计原则说明 确定用户任务和受影响页面或弹窗。涉及多个区域、使用方或设计取舍时记录范围;明确的局部修改不需要单独写计划。用户明确要求完整审查时,列出指定页面/弹窗及相关状态。不能把局部检查表述成整页结论。 -在这个范围内应用[判断优先级](../ui-design-review-cases.zh.md#judgment):先检查对齐与空间分组,再审查密度、层级、状态、组件选型、图标光学和几何。每个发现写成可观察的关系,例如内容与隔壁组的距离反而小于与自身标签的距离。遵循用户指定的顺序和授权;完整审查可以发现多个相关问题,已有实施授权不需要为常规调整重复请求批准。 +在这个范围内应用[判断优先级](../ui-design-review-cases.zh.md#judgment):先检查对齐与空间分组,再审查密度、层级、状态、组件选型、图标光学和几何。每个发现写成可观察的关系,例如内容与隔壁组的距离反而小于与自身标签的距离。遵循用户指定的顺序和授权;完整审查可以发现多个相关问题,常规调整的实施授权不能替代[既有设计/产品审查要求](../../.agents/skills/dsh-client-ui-ux/SKILL.md#design-review-escalation)。 编辑前阅读[客户端 UI Skill](../../.agents/skills/dsh-client-ui-ux/SKILL.md)和适用架构。宽度与输入方式变更使用[响应式 Skill](../../.agents/skills/dsh-responsive-ui/SKILL.md),令牌规则查阅[样式参考](../web-styling.zh.md),圆角几何查阅[圆角标准](../ui-radius.zh.md)。本流程补充审查和证据步骤,不另建一套视觉令牌。 @@ -56,6 +58,8 @@ description: "把 DSH 页面或弹窗作为整体审查,按设计原则说明 普通改动说明问题位置、可见现象、修正和验证即可。源码归属、替代方案及改法不适用的条件影响判断时再补充。优先处理可见或共享缺陷;源码数值不同本身不能成为统一数值的理由。 +诊断间距时,分别记录布局框、margin、padding、文字行框和字形可见边缘。明确关闭控件按按钮边缘还是图标框对齐,并核对不同图标尺寸下入口与菜单的文本内缩。可见留白的标注不等于测得了 CSS margin。 + ### 在整个界面内核对适用规范 按[适用规范映射](../ui-design-review-cases.zh.md#review-baseline)收集本任务相关的当前圆角、材质、字体、组件、反馈、响应式和图案规则,记录明确例外与相关已有变体。个人或外部 skill 不同时,以仓库所有方为准;实现与所有方不同时,把差异保留为发现,不能默默任选一方。 @@ -98,7 +102,7 @@ description: "把 DSH 页面或弹窗作为整体审查,按设计原则说明 明确要求对照,或较大改动及回归风险需要对照时,保留可恢复的起始版本与相关截图。普通局部修改不要求额外源码快照或修改前截图。保留基线时需包含已有未提交改动,不能假定 `HEAD` 就是当前可见应用,并记录源码身份与截图条件。 -需要截图时,把基线图及其条件保存在本地证据目录。 +需要截图时,把图像及其条件保存在工作树根目录的 `.ui-review/`,或另行明确选择的本地目录。仓库忽略 `.ui-review/` 中的生成证据;审查工具仍可安装在工作树之外。 完整审查或需要追踪多个状态的对照使用场景映射;简单改动可直接检查受影响位置。展开行、弹窗及相关加载/禁用状态影响结论时应纳入,折叠父组件不能覆盖隐藏控件。破坏性或暂不可达状态使用安全 fixture 数据,不为截图而修改用户的真实任务。 @@ -145,6 +149,8 @@ description: "把 DSH 页面或弹窗作为整体审查,按设计原则说明 累计汇总按位置去重:在条件可比的前提下,将最早可靠的修改前截图与最终实现配对。中间轮次只保留为历史证据,不作为独立最终成果;撤销方案不计入现存成果。另一会话的保留改动单列,不归为本次成果。缺少起点或归属不确定时明确说明。记录实际检查,不将重复执行数量当作新增覆盖。 +汇总全部修改时,将每项结论追溯到累计 diff、当前实现所有方及保留证据。区分净改动与基线已有行为,先消解用户后续修订,再给出最终数值。旧截图不再代表当前结果时标为历史证据,并区分源码核验与重新打开场景检查。将可复用的判断回写规则所有方及正反案例,不把局部像素值或缺乏依据的全产品通过结论变成规范。 + ## 延伸阅读 diff --git a/docs/ui-design-review-cases.i18n.yaml b/docs/ui-design-review-cases.i18n.yaml index 3305e0f427..b992b73c97 100644 --- a/docs/ui-design-review-cases.i18n.yaml +++ b/docs/ui-design-review-cases.i18n.yaml @@ -12,11 +12,11 @@ en: 75120a3fd02294c9 zh: 498343d7b9b30e46 /ui-design-principles-and-review-cases/table-of-contents: - en: 683b785991a7952d - zh: e0a9f88db5cf9c45 + en: c5680dfc600a7495 + zh: c76ec05c69f1e93c /ui-design-principles-and-review-cases/what-a-review-must-judge: - en: e51c9f121c18c998 - zh: 93b35a247216be09 + en: eeff4a5f5e487908 + zh: 51eab38ccd10190b /ui-design-principles-and-review-cases/review-the-entire-page-or-modal-as-one-unit: en: 324c8d9a0ff36ebb zh: 3a4c64e15b59f98f @@ -36,8 +36,8 @@ en: f8b0f72251aa044f zh: a8b05ce5f3da4221 /ui-design-principles-and-review-cases/principle-examples: - en: 1ff7bb879b274363 - zh: 4659578bcdea82a3 + en: 7b8a8bdc5acc11d6 + zh: 96820c11d2e61787 /ui-design-principles-and-review-cases/1-alignment: en: 31d18363696173e9 zh: d2bbca62e7ea0120 @@ -51,14 +51,20 @@ en: 81d165cc1c5c1f7e zh: 4aef022e141ced64 /ui-design-principles-and-review-cases/1-alignment/example-a3-alignment-between-rows-and-compound-controls: - en: 0f387b953c8c3e34 - zh: 5362d3467a65ec59 + en: 9e7fae1a4e649ffd + zh: c3992d7dbedbb247 /ui-design-principles-and-review-cases/1-alignment/example-a4-centering-a-content-group-within-its-container: en: 478771b47daf2cba zh: 0eee64751cff6c94 /ui-design-principles-and-review-cases/1-alignment/example-a5-visible-size-and-center-of-peer-controls: - en: dbbb588cbae149f0 - zh: 1352a6eb01d8340f + en: 376359e2a1de44e9 + zh: 2a0b0e4472efefb7 +/ui-design-principles-and-review-cases/1-alignment/example-a6-text-starts-across-triggers-and-menus: + en: 1afbbce3f4908bf2 + zh: aaf54b32b90a2c82 +/ui-design-principles-and-review-cases/1-alignment/example-a7-choosing-the-close-control-edge: + en: c5e9a409c13637bc + zh: 37c915f187d6e9f7 /ui-design-principles-and-review-cases/2-spatial-grouping: en: f50b8851f4ee2ac3 zh: 63076543756c294e @@ -90,8 +96,8 @@ en: 56ecb557d54c1c2e zh: ede48f8451af4111 /ui-design-principles-and-review-cases/4-information-hierarchy/example-c1-color-emphasis-within-one-information-unit: - en: ae07e8886d00c5bb - zh: 1229ab4ae6394c0b + en: c17aea1873e9a1a6 + zh: dc7a8df8a60e582d /ui-design-principles-and-review-cases/5-control-states: en: d247699132b484a0 zh: b71e25d834ce2633 @@ -105,8 +111,11 @@ en: 21c39c7bbfd87382 zh: e30f9a6593b32265 /ui-design-principles-and-review-cases/7-icon-optics/example-o1-optical-alignment-of-different-icon-types: - en: 3301d847dac58dc9 - zh: 1eba9e56df9a39f2 + en: 3858a85bdf6ee111 + zh: 9c8242a594df069f +/ui-design-principles-and-review-cases/7-icon-optics/example-o2-shared-artwork-at-different-consumer-sizes: + en: 6f29eb80bfe3baf4 + zh: eb3161af01dd752e /ui-design-principles-and-review-cases/8-control-geometry-and-corner-relationships: en: 262cfa8e7dfb969f zh: 4987ad06db795885 diff --git a/docs/ui-design-review-cases.md b/docs/ui-design-review-cases.md index a3283ca03e..227edc9cee 100644 --- a/docs/ui-design-review-cases.md +++ b/docs/ui-design-review-cases.md @@ -13,9 +13,9 @@ Consult the relevant cases when a design relationship is unclear. Ordinary chang ## Table of Contents - [What a review must judge](#judgment) -- [Review the entire page or modal](#whole-interface-review) -- [Applicable DSH standards](#review-baseline) -- [How to use examples](#case-selection) +- [Review the entire page or modal as one unit](#whole-interface-review) +- [Combine the applicable standards first](#review-baseline) +- [Choose cases that expose a design decision](#case-selection) - [Principle examples](#case-index) - [1. Alignment](#alignment) - [2. Spatial grouping](#grouping) @@ -40,8 +40,6 @@ The page or modal provides the reference for composition; the [impact scope](coo The reference diagrams explain relationships; they are not implementation captures or accepted before-and-after results. The examples below explain particular principles and do not establish coverage of the page or modal under review. - - ## Review the entire page or modal as one unit @@ -119,6 +117,8 @@ Use these examples to understand a relationship that is unclear. Apply the same | [A3](#case-preview-toolbar) | Alignment between rows and compound controls | | [A4](#case-empty-center) | Centering a content group within its container | | [A5](#case-composer-controls) | Visible size and center of peer controls | +| [A6](#case-trigger-menu-text) | Text starts across triggers and menus | +| [A7](#case-close-control-edge) | Choosing the close-control edge | | [G1](#case-title-actions) | Separating content from its action group | | [G2](#case-team-sections) | Spacing between complex sections | | [G3](#case-plugin-groups) | Nested groups along the reading order | @@ -126,6 +126,7 @@ Use these examples to understand a relationship that is unclear. Apply the same | [C1](#case-search-color) | Color emphasis within one information unit | | [S1](#case-sidebar-state) | Persistent selection beside temporary hover | | [O1](#case-file-optics) | Optical alignment of different icon types | +| [O2](#case-chevron-consumers) | Shared artwork at different consumer sizes | | [R1](#case-model-radius) | Radii across container and control roles | | [R2](#case-checkbox-radius) | Small selection controls within a form | | [R3](#case-automation-radius) | Justified geometry differences between roles | @@ -176,7 +177,7 @@ The comparison below shows actual preset cards with unequal descriptions. On the **Scene and relationship.** Panel controls sit above file-display controls and an “Open in app” split button. The two rows belong to one preview header, while each row contains operations with different scopes. -**Failure and correction.** Each component may be internally centered while the assembled header has unrelated right insets, heights, and group gaps. Relate the upper icon boxes to the complete lower control, preserving internal icon whitespace rather than aligning extra hit padding or an individual glyph’s painted pixels. Align peer control centers; keep display controls together and separate the external-open action. Treat the split button as one unit. Do not force its arrow onto a column intended for an unrelated panel action. +**Failure and correction.** Each component may be internally centered while the assembled header has unrelated right insets, heights, and group gaps. Relate the upper icon boxes to the complete lower control, preserving internal icon whitespace rather than aligning extra hit padding or an individual glyph’s painted pixels. Align peer control centers; keep display controls together and separate the external-open action. Treat the split button as one unit. Reducing its outer width can equalize visible gaps while retaining the preceding icon columns; verify both segment targets and the frame’s contribution to layout. Do not force its arrow onto a column intended for an unrelated panel action. **Acceptance.** Inspect both rows with the path, tabs, and content edge visible. Repeat with a long path and a narrow pane. A row of standalone icons is not a substitute for the actual split control. @@ -198,6 +199,20 @@ The comparison below shows actual preset cards with unequal descriptions. On the **Acceptance.** Compare both bases and centers in empty, enabled, busy/stop, and narrow layouts. Review the toolbar alongside the composer outline, not as two isolated button screenshots. A reference product's unequal controls do not override an explicit DSH requirement for equal bases. + +### Example A6: Text starts across triggers and menus + +**Scene and relationship.** A permission trigger uses a larger, heavier icon than its menu rows, but their corresponding labels should start on one axis. A search prompt, result heading and option label can share a similar reading edge. + +**Correction and acceptance.** Sum each surface’s border, padding, leading slot and gap before adjusting it. Matching only icon sizes or outer card edges leaves different text starts. Check the assembled open menu, longer labels and narrow layouts; distinguish device-pixel rounding of portal coordinates from a whole inset mismatch. + + +### Example A7: Choosing the close-control edge + +**Scene and relationship.** A modal has a close glyph inside a larger button and a footer action at the content edge. An icon-box edge and a button edge imply different header insets. + +**Correction and acceptance.** Name the intended edge before changing the shared header. If the full button aligns with the footer action, retain the icon’s internal centering instead of pulling it to that edge. An explicitly icon-aligned composition remains a distinct variant. Check short and wrapping titles, description/body combinations and footer actions, and preserve the target size. + ## 2. Spatial grouping @@ -292,7 +307,7 @@ Typography participates in geometry: compare text starts, baselines and line box **Scene and relationship.** Compare the empty automation search with the expanded sidebar search. Both pair a magnifier with a prompt, but one makes the icon darker and the other makes the text darker. -**Correction and acceptance.** Give the empty-field prompt one foreground role, including the leading icon. Compare computed color, opacity, disabled styling, and the background together; two identical color tokens can still differ after an ancestor fades one child. Test empty, typed, focused, disabled, light, and dark variants. Typed query text and an independently actionable clear button need not use the placeholder's weaker role. +**Correction and acceptance.** Give the empty-field prompt one foreground role, including the leading icon. Compare computed color, opacity, disabled styling, and the background together; two identical color tokens can still differ after an ancestor fades one child. Test empty, typed, focused, disabled, light, and dark variants. Typed query text and an independently actionable clear button need not use the placeholder's weaker role. A submenu value and its trailing chevron also form one value: a muted model name with a darker chevron fails that relationship even when their geometry is correct. ## 5. Control states @@ -337,6 +352,13 @@ The [icon skill](../.agents/skills/dsh-ui-icons/SKILL.md) owns interface icon ro **Correction and acceptance.** Preserve the depth indent and common text start. Normalize the placement slots, then compare visible centers and perceived weight within them. Do not move the label to compensate for one glyph, or align all depths to one edge. Inspect at normal size and magnification, with selected backgrounds and long names; the magnified view diagnoses the drawing, while normal size determines whether the result balances. + +### Example O2: Shared artwork at different consumer sizes + +**Scene and relationship.** A chevron appears beside a menu label and inside a larger floating button. Enlarging its drawing within the same view box changes both appearances. + +**Correction and acceptance.** Compare the directional family, both weights and actual consumer sizes. Keep a modest supporting glyph beside text; reduce the floating control’s icon size if needed without shrinking its button. A large glyph sheet alone does not establish balance in either composition. + ## 8. Control geometry and corner relationships diff --git a/docs/ui-design-review-cases.zh.md b/docs/ui-design-review-cases.zh.md index 4167aca0a6..455c18b717 100644 --- a/docs/ui-design-review-cases.zh.md +++ b/docs/ui-design-review-cases.zh.md @@ -14,7 +14,7 @@ description: "DSH 设计判断参考:对齐、空间分组、信息层级、 - [审查究竟要判断什么](#judgment) - [以整页或整个弹窗作为审查单位](#whole-interface-review) -- [适用的 DSH 规范](#review-baseline) +- [先综合适用规范](#review-baseline) - [如何用例子理解原则](#case-selection) - [原则示例索引](#case-index) - [1. 对齐](#alignment) @@ -40,8 +40,6 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 本文原理图解释元素关系,不是实现截图或已验收的修改前后对照。下文例子用于讲清具体原则,不代表已覆盖当前要审查的页面或弹窗。 - - ## 以整页或整个弹窗作为审查单位 @@ -119,6 +117,8 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 | [A3](#case-preview-toolbar) | 多排控件与复合控件的对齐 | | [A4](#case-empty-center) | 内容组相对所属容器居中 | | [A5](#case-composer-controls) | 并列控件的可见尺寸与中心 | +| [A6](#case-trigger-menu-text) | 入口与菜单之间的文本起点 | +| [A7](#case-close-control-edge) | 明确关闭控件的对齐边缘 | | [G1](#case-title-actions) | 内容与操作组的分隔 | | [G2](#case-team-sections) | 复杂分区之间的间距 | | [G3](#case-plugin-groups) | 阅读顺序中的多层分组 | @@ -126,6 +126,7 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 | [C1](#case-search-color) | 同一信息单元的图文强调 | | [S1](#case-sidebar-state) | 持续选中与临时悬停共存 | | [O1](#case-file-optics) | 不同类型图标的光学对齐 | +| [O2](#case-chevron-consumers) | 共享图形在不同使用尺寸下的表现 | | [R1](#case-model-radius) | 不同层级容器与控件的圆角 | | [R2](#case-checkbox-radius) | 表单中小型选择控件的轮廓 | | [R3](#case-automation-radius) | 不同角色之间有依据的几何差异 | @@ -176,7 +177,7 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 **场景与关系。**面板控制位于上排,文件显示控制与“在应用中打开”分段按钮位于下排。两排属于同一个预览页头,每排又包含作用范围不同的操作。 -**错误与修正。**各组件内部可能已经居中,组装后仍出现无关的右边距、高度和分组间距。先按上排图标框与下排完整控件建立尾端关系,保留图标内部留白;不能直接对齐额外热区,也不能追齐单个 glyph 的像素边缘。再对齐并列控件中心,把显示控制收成一组,与外部打开操作分开。分段按钮按完整单元处理,不强迫其箭头与无关的面板操作共用列轴。 +**错误与修正。**各组件内部可能已经居中,组装后仍出现无关的右边距、高度和分组间距。先按上排图标框与下排完整控件建立尾端关系,保留图标内部留白;不能直接对齐额外热区,也不能追齐单个 glyph 的像素边缘。再对齐并列控件中心,把显示控制收成一组,与外部打开操作分开。分段按钮按完整单元处理。缩小其外部宽度可以在保留前方图标列轴的同时,使可见间距相等;应检查两个分段的点击区域,以及边框对布局尺寸的贡献。不强迫其箭头与无关的面板操作共用列轴。 **验收。**保留路径、标签页与内容边缘,一并观察两排;再检查长路径和窄面板。用一排独立图标代替实际分段控件,不能验证这个关系。 @@ -198,6 +199,20 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 **验收。**检查空输入、可发送、忙碌/停止和窄布局中的底板与中心。保留输入框外轮廓一起观察,不能只看两张独立按钮截图。参考产品里不同大小的操作控件,不能覆盖 DSH 已明确的等大底板要求。 + +### 示例 A6:入口与菜单之间的文本起点 + +**场景与关系。**权限入口使用比菜单行更大、更重的图标,但对应文字应从同一轴线开始。搜索提示、结果分组标题和选项文字也可能共享类似的阅读边缘。 + +**修正与验收。**先合计各表面的 border、padding、前导槽和 gap,再调整实现。只统一图标大小或卡片外缘,仍可能留下不同的文字起点。检查组装后的展开菜单、长标签和窄布局;区分浮层坐标按设备像素取整的微差与整段内缩错误。 + + +### 示例 A7:明确关闭控件的对齐边缘 + +**场景与关系。**弹窗的关闭图形位于较大的按钮内,底部操作靠内容边缘。图标框边缘与按钮边缘对应不同的标题栏内缩。 + +**修正与验收。**修改共享标题栏前先明确目标边缘。如果完整按钮与底部操作对齐,就保留图标在按钮内居中,不再把图标拉到该边缘。明确采用图标对齐的构图仍是独立变体。检查短标题、换行标题、说明/正文组合与底部操作,并保留点击区域大小。 + ## 2. 空间分组 @@ -292,7 +307,7 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 **场景与关系。**比较空的自动化搜索框与展开的侧栏搜索框。二者都是放大镜配合提示文字,但一处图标更深,另一处文字更深。 -**修正与验收。**为空输入提示指定一个前景色角色,包含前导图标。联合检查计算后的颜色、透明度、禁用样式与背景;祖先单独淡化某个子元素时,相同 token 仍可能产生不同结果。检查空值、输入文字、焦点、禁用及明暗主题。已输入的查询文字和具有独立操作的清除按钮,不必使用较弱的占位提示色。 +**修正与验收。**为空输入提示指定一个前景色角色,包含前导图标。联合检查计算后的颜色、透明度、禁用样式与背景;祖先单独淡化某个子元素时,相同 token 仍可能产生不同结果。检查空值、输入文字、焦点、禁用及明暗主题。已输入的查询文字和具有独立操作的清除按钮,不必使用较弱的占位提示色。子菜单的值与尾部 chevron 也构成同一个值;即使几何正确,弱化的模型名称配更深的箭头仍不符合该关系。 ## 5. 控件状态 @@ -337,6 +352,13 @@ DSH 的视觉审查优先关注对齐与空间分组。先识别任务和语义 **修正与验收。**保留层级缩进和共同文字起点,先统一放置槽,再比较槽内可见中心与视觉重量。不能移动文字去补偿单个 glyph,也不能把所有深度压到同一边缘。检查正常尺寸和放大图,包含选中底色与长文件名;放大图用于诊断绘制,正常尺寸决定结果是否平衡。 + +### 示例 O2:共享图形在不同使用尺寸下的表现 + +**场景与关系。**同一个 chevron 既出现在菜单文字旁,也出现在较大的悬浮按钮中。在同一 viewBox 内放大绘制范围,会同时改变两处表现。 + +**修正与验收。**对比各方向、两种字重及实际使用尺寸。文字旁保留适度的辅助图形;必要时缩小悬浮控件里的图标,但不缩小按钮。只看放大的图标总表,不能证明这两种构图都平衡。 + ## 8. 控件几何与圆角关系 diff --git a/packages/client/ui-primitives/README.i18n.yaml b/packages/client/ui-primitives/README.i18n.yaml index a9b6afd322..2ff914e59f 100644 --- a/packages/client/ui-primitives/README.i18n.yaml +++ b/packages/client/ui-primitives/README.i18n.yaml @@ -21,8 +21,8 @@ en: eeff2dabd2f7dcb1 zh: a5054d09940b40e8 /deepseek-ai-dsh-client-ui-primitives/use-this-package/controls-and-icons: - en: 8aa561d0c21f177f - zh: 8c1924a20f78f3ff + en: a5580871b06143b6 + zh: 152465da61068c5d /deepseek-ai-dsh-client-ui-primitives/use-this-package/rendering-agent-output: en: e2649937f077d4e0 zh: 6ad604cb5adfc16b diff --git a/packages/client/ui-primitives/README.md b/packages/client/ui-primitives/README.md index 896e5aac0d..a5609e81dd 100644 --- a/packages/client/ui-primitives/README.md +++ b/packages/client/ui-primitives/README.md @@ -96,7 +96,7 @@ Writing your own component in your own package is fine when the need is genuinel ### Controls and icons -The catalog above lists what each export is for; this section covers the behavior that props alone do not show. Product icon names omit artboard sizes and end in `Regular` for the supplied one-pixel artwork or `Medium` for the same geometry at a 1.3px stroke; the `size` prop controls rendered dimensions. Named components keep the chosen weight visible at import sites; the library owns stroke geometry instead of consumer CSS overrides. Each product icon renders an `` box with one `` of its `dsw-icon--` symbol, for example `dsw-icon-search-outline-regular`, and names that id in `data-icon`. `ICON_SYMBOLS` holds every symbol's default SVG document; ui-theme renders the document icon sprite from it, and an icon whose symbol is missing renders nothing. Artwork reached through `` inherits `currentColor` and CSS variables from the use site. Each product, reference, link, and permission glyph intentionally keeps both weight exports even when the current product uses only one, so callers can choose emphasis without adding another API later; fill-only pairs render identically. `IconWarningOutlineRegular`/`Medium` use a circle; `IconWarningTriangleOutlineRegular`/`Medium` use a rounded triangle. `FishLogo` and `BrandWordmark` fill brand slots. `FileTypeIcon` renders the traditional 28px spreadsheet, folder, HTML, image, Markdown, generic, PDF, PPT, video, and Word glyphs, and uses the imported square technology artwork for the established 48 code and configuration categories. The import replaces artwork only: archive-only categories do not extend `CodeFileType`. `classifyFileType` applies exact filename, prefix, suffix, optional project-context, and extension rules in that order; React names win over TypeScript/JavaScript, Angular suffixes win over their base extension, and a Dart file becomes Flutter only when the supplied project files contain a `pubspec.yaml` with `flutter:`. Markdown and SVG remain traditional Markdown and image files. Spreadsheet mappings include CSV, TSV, Excel workbooks and templates, OpenDocument spreadsheets, and Numbers; KEY maps to slides, while RTF/ODT/Pages map to documents. `fileExtension` exposes the same basename and final-dot parsing for adjacent metadata labels. Traditional glyphs use a solid category-colored sheet with a white mark and translucent white corner; the generic code glyph uses angle brackets and a slash at the supplied 1.35px stroke; the generic file uses a grey sheet and darker grey corner. Callers may override the sheet color through `--dsh-file-type-icon-color`. The full-color technology artwork is the deliberate exception and retains its embedded palette. All glyphs are decorative and carry no label. `LinkIconMedium` is the leading glyph for clickable artifact links — globe, folder, code, image, document, or plain paper, and for a `url` link the mark of a well-known site named by its `href` — the developer sites a transcript usually cites (GitHub, GitLab, npm, PyPI, Stack Overflow, MDN, Wikipedia, Hacker News, YouTube, X, Bilibili, Zhihu, Juejin, CSDN) and mainstream search, video, social, shopping, and reference sites (Google, Baidu, DuckDuckGo, TikTok, Netflix, Spotify, Facebook, Instagram, Reddit, Telegram, WhatsApp, WeChat, QQ, Weibo, Taobao, AliExpress, eBay, Quora, V2EX, Apple) — while `classifyLinkPath` folds the shared file types into that existing six-category vocabulary. `ConnectionIndicator` renders a warning-colored disconnected action whose permanent retry glyph marks the retry action beside the owner-supplied outage label, the shared ongoing loader in the same warning color as its label whose one-to-three dots advance every 500ms independently of retry timing, or a success-colored recovered status. Clicking either warning state requests an immediate reconnect; no hover interaction changes the copy. The pill fades in on appearance, fades out for 150ms before unmounting, and sizes to its current label. Its owner supplies visibility, the recovery hold, localized labels, and the immediate-reconnect callback; the primitive uses no native title tooltip. `useAnchoredMaxHeight` keeps bottom-anchored overlays within the visible viewport; an oversized panel keeps the near margin instead of sliding off that edge. A submenu-free portalled `Menu` caps its card height against the layout viewport, with its pinned footer outside the inner scrolling region. `HoverCard` adds 20px to the frame's published top clearance, or keeps 20px in native fullscreen, while preserving its own minimum margin in ordinary browsers; while an anchor is inside that top strip, the card is never pushed lower than the anchor's bottom edge plus its gap. `HoverCard` keeps its portaled preview reachable across the anchor gap and can expose a copy button through the `copyText` prop. Touch entry does not open its preview or intercept the anchor action. Mouse entry requires an available hover-capable pointer; keyboard focus remains independent of that capability. Its `preview` variant uses the anchor or `widthAnchorRef` element’s width minus 48px, centers the panel with 24px side insets, and places it above or below the row within the viewport. The panel keeps the frame’s top clearance except below an anchor inside the top strip, caps its height at 420px, and follows content and anchor resizing; Escape or pointer and keyboard activation of the anchor dismisses it. The whole preview fades in and out over 100ms; a closing preview stops receiving pointer input and unmounts after the fade. Re-entering the anchor during the fade restores it. Reduced-motion preferences suppress the transition. Copy labels are required only when copying is enabled. `HoverCard` and nested action tooltips display independently; use `Tooltip.portal` to layer the small bubble above the card. A visible nested `Tooltip` suppresses only its enclosing tooltip, not the hover card. `Toast` uses the owner's `holdMs` for both the fade delay and its hold-and-fade lifetime. Rerenders with unchanged `holdMs` do not restart that lifetime; completion uses the latest callback, and fully faded actions cannot receive input. A new component key restarts the banner. `rankByName` is the `/` menu's shared candidate ranker for the command and skill sources: the query must be a case-insensitive ordered subsequence of the name; prefix hits rank first, then alignment score, then source order. Portalled `Menu` lists use CSS Anchor Positioning to follow their trigger and constrain their dimensions to the layout viewport. Every placement candidate reserves 12px layout-viewport margins and uses the frame overlay inset as its minimum top edge; pointer-positioned contextual menus keep 12px at the top. When the preferred placement cannot fit, CSS tries a horizontal adjustment or the opposite side before using a window-bounded fallback. Browser zoom and panning move the menu with the page; it may extend beyond the visual viewport, including while the keyboard is open. Internal scrolling, dismissal, and focus restoration remain independent. `Menu.autoFocus` focuses its first enabled item, supports Arrow Up/Down and Home/End navigation, and focuses the first button in the anchor on Escape; it is opt-in for action menus. +The catalog above lists what each export is for; this section covers the behavior that props alone do not show. Product icon names omit artboard sizes and end in `Regular` or `Medium`. Line artwork uses stroke widths of 1 and 1.3 SVG user units respectively; the `size` prop controls rendered dimensions. Strokes scale with the viewport: a 1-unit stroke in a 16-unit view box renders at 0.875 CSS px at 14px and 0.75 CSS px at 12px, before further transforms. The renderer does not apply non-scaling strokes; filled contours scale as geometry and do not respond to stroke-width changes. Shared menus render icons at 14px, or 12px in compact lists, through `Menu.module.css`; these are rendered sizes, not fixed stroke widths. Named components keep the chosen weight visible at import sites; the library owns stroke geometry instead of consumer CSS overrides. Each product icon renders an `` box with one `` of its `dsw-icon--` symbol, for example `dsw-icon-search-outline-regular`, and names that id in `data-icon`. `ICON_SYMBOLS` holds every symbol's default SVG document; ui-theme renders the document icon sprite from it, and an icon whose symbol is missing renders nothing. Artwork reached through `` inherits `currentColor` and CSS variables from the use site. Each product, reference, link, and permission glyph intentionally keeps both weight exports even when the current product uses only one, so callers can choose emphasis without adding another API later; fill-only pairs render identically. `IconWarningOutlineRegular`/`Medium` use a circle; `IconWarningTriangleOutlineRegular`/`Medium` use a rounded triangle. `FishLogo` and `BrandWordmark` fill brand slots. `FileTypeIcon` renders the traditional 28px spreadsheet, folder, HTML, image, Markdown, generic, PDF, PPT, video, and Word glyphs, and uses the imported square technology artwork for the established 48 code and configuration categories. The import replaces artwork only: archive-only categories do not extend `CodeFileType`. `classifyFileType` applies exact filename, prefix, suffix, optional project-context, and extension rules in that order; React names win over TypeScript/JavaScript, Angular suffixes win over their base extension, and a Dart file becomes Flutter only when the supplied project files contain a `pubspec.yaml` with `flutter:`. Markdown and SVG remain traditional Markdown and image files. Spreadsheet mappings include CSV, TSV, Excel workbooks and templates, OpenDocument spreadsheets, and Numbers; KEY maps to slides, while RTF/ODT/Pages map to documents. `fileExtension` exposes the same basename and final-dot parsing for adjacent metadata labels. Traditional glyphs use a solid category-colored sheet with a white mark and translucent white corner; the generic code glyph uses angle brackets and a slash at the supplied 1.35px stroke; the generic file uses a grey sheet and darker grey corner. Callers may override the sheet color through `--dsh-file-type-icon-color`. The full-color technology artwork is the deliberate exception and retains its embedded palette. All glyphs are decorative and carry no label. `LinkIconMedium` is the leading glyph for clickable artifact links — globe, folder, code, image, document, or plain paper, and for a `url` link the mark of a well-known site named by its `href` — the developer sites a transcript usually cites (GitHub, GitLab, npm, PyPI, Stack Overflow, MDN, Wikipedia, Hacker News, YouTube, X, Bilibili, Zhihu, Juejin, CSDN) and mainstream search, video, social, shopping, and reference sites (Google, Baidu, DuckDuckGo, TikTok, Netflix, Spotify, Facebook, Instagram, Reddit, Telegram, WhatsApp, WeChat, QQ, Weibo, Taobao, AliExpress, eBay, Quora, V2EX, Apple) — while `classifyLinkPath` folds the shared file types into that existing six-category vocabulary. `ConnectionIndicator` renders a warning-colored disconnected action whose permanent retry glyph marks the retry action beside the owner-supplied outage label, the shared ongoing loader in the same warning color as its label whose one-to-three dots advance every 500ms independently of retry timing, or a success-colored recovered status. Clicking either warning state requests an immediate reconnect; no hover interaction changes the copy. The pill fades in on appearance, fades out for 150ms before unmounting, and sizes to its current label. Its owner supplies visibility, the recovery hold, localized labels, and the immediate-reconnect callback; the primitive uses no native title tooltip. `useAnchoredMaxHeight` keeps bottom-anchored overlays within the visible viewport; an oversized panel keeps the near margin instead of sliding off that edge. A submenu-free portalled `Menu` caps its card height against the layout viewport, with its pinned footer outside the inner scrolling region. `HoverCard` adds 20px to the frame's published top clearance, or keeps 20px in native fullscreen, while preserving its own minimum margin in ordinary browsers; while an anchor is inside that top strip, the card is never pushed lower than the anchor's bottom edge plus its gap. `HoverCard` keeps its portaled preview reachable across the anchor gap and can expose a copy button through the `copyText` prop. Touch entry does not open its preview or intercept the anchor action. Mouse entry requires an available hover-capable pointer; keyboard focus remains independent of that capability. Its `preview` variant uses the anchor or `widthAnchorRef` element’s width minus 48px, centers the panel with 24px side insets, and places it above or below the row within the viewport. The panel keeps the frame’s top clearance except below an anchor inside the top strip, caps its height at 420px, and follows content and anchor resizing; Escape or pointer and keyboard activation of the anchor dismisses it. The whole preview fades in and out over 100ms; a closing preview stops receiving pointer input and unmounts after the fade. Re-entering the anchor during the fade restores it. Reduced-motion preferences suppress the transition. Copy labels are required only when copying is enabled. `HoverCard` and nested action tooltips display independently; use `Tooltip.portal` to layer the small bubble above the card. A visible nested `Tooltip` suppresses only its enclosing tooltip, not the hover card. `Toast` uses the owner's `holdMs` for both the fade delay and its hold-and-fade lifetime. Rerenders with unchanged `holdMs` do not restart that lifetime; completion uses the latest callback, and fully faded actions cannot receive input. A new component key restarts the banner. `rankByName` is the `/` menu's shared candidate ranker for the command and skill sources: the query must be a case-insensitive ordered subsequence of the name; prefix hits rank first, then alignment score, then source order. Portalled `Menu` lists use CSS Anchor Positioning to follow their trigger and constrain their dimensions to the layout viewport. Every placement candidate reserves 12px layout-viewport margins and uses the frame overlay inset as its minimum top edge; pointer-positioned contextual menus keep 12px at the top. When the preferred placement cannot fit, CSS tries a horizontal adjustment or the opposite side before using a window-bounded fallback. Browser zoom and panning move the menu with the page; it may extend beyond the visual viewport, including while the keyboard is open. Internal scrolling, dismissal, and focus restoration remain independent. `Menu.autoFocus` focuses its first enabled item, supports Arrow Up/Down and Home/End navigation, and focuses the first button in the anchor on Escape; it is opt-in for action menus. `Tooltip` reads the anchor on hover or keyboard focus and fits its bubble from `ResizeObserver` border-box sizes. It stays hidden until its first fit, prefers the requested side, then tries the opposite and perpendicular sides, sliding along the anchor without covering it when a side fits. Horizontal placements keep a 10px gap; vertical placements use `gap` (8px by default). Width and height stay within a 12px viewport margin; text wraps, and content taller than the viewport scrolls when pinned. If no side fits, a stable viewport-bounded fallback can overlap the anchor. Viewport resize refreshes the anchor coordinates; label-size changes reuse them. Fitting does not synchronously measure the bubble or trigger a React render. Touch presses dismiss unpinned hints and do not trigger hover hints, including compatibility mouse events. Mouse entry opens hints only while `(any-hover: hover)` reports an available hover-capable input, excluding iOS mouse entry caused by a tapped icon changing. Keyboard focus and explicit click-to-open explanations remain available on touch-only devices. Opt-in `openOnClick` lets an informational button pin the bubble by click or tap and associates it with the anchor description. Another click or tap, Escape, Tab, or an outside pointerdown closes it. Ordinary action buttons execute their action directly without a touch tooltip. Opt-in `onlyWhenClipped` shows the bubble only when the anchor or an HTML element inside it overflows horizontally when the bubble is about to show, so a label that repeats ellipsis-cut text appears only while it adds information. diff --git a/packages/client/ui-primitives/README.zh.md b/packages/client/ui-primitives/README.zh.md index b1dcfc2e99..ebbad8cd83 100644 --- a/packages/client/ui-primitives/README.zh.md +++ b/packages/client/ui-primitives/README.zh.md @@ -96,7 +96,7 @@ kind: "package-library" ### 控件与图标 -上面的目录说明每个导出的用途;本节讲 props 本身看不出来的行为。产品图标名称不含画板尺寸,以 `Regular` 表示原始 1px 图形,以 `Medium` 表示同一几何的 1.3px 描边;`size` prop 控制渲染尺寸。具名组件让所选线重在导入处可见;描边几何由组件库拥有,而不是由消费方 CSS 覆盖。每个产品图标渲染一个 `` 框,其中包含一个引用对应 `dsw-icon--` symbol 的 ``,例如 `dsw-icon-search-outline-regular`,并在 `data-icon` 中写出该 id。`ICON_SYMBOLS` 保存每个 symbol 的默认 SVG 文档;ui-theme 据此渲染文档的图标 sprite,缺少对应 symbol 的图标不渲染任何内容。通过 `` 引用的图形会从使用处继承 `currentColor` 与 CSS 变量。每个产品、引用、链接与权限图形都会有意保留两种线重导出,即使当前产品只使用其中一种,也让调用方无需再次扩展 API 就能选择强调程度;仅填充的成对图形外观相同。`IconWarningOutlineRegular`/`Medium` 使用圆形;`IconWarningTriangleOutlineRegular`/`Medium` 使用圆角三角形。`FishLogo` 与 `BrandWordmark` 填充品牌 slot。`FileTypeIcon` 渲染传统的 28px spreadsheet、folder、HTML、image、Markdown、generic、PDF、PPT、video 与 Word 图形,并为现有 48 个代码和配置类别使用导入的方形技术图形。该导入只替换图形:资源包中额外的类别不会扩展 `CodeFileType`。`classifyFileType` 按完整文件名、前缀、后缀、可选项目上下文、扩展名的顺序匹配;React 文件名优先于 TypeScript/JavaScript,Angular 后缀优先于基础扩展名,只有传入的项目文件包含带 `flutter:` 的 `pubspec.yaml` 时 Dart 文件才使用 Flutter。Markdown 与 SVG 仍分别使用传统 Markdown 与图片图形。表格映射包括 CSV、TSV、Excel 工作簿与模板、OpenDocument 表格和 Numbers;KEY 映射为幻灯片,RTF/ODT/Pages 映射为文档。`fileExtension` 为相邻元数据 label 暴露同一套 basename 与最终点号解析。传统图形使用实色分类底板、白色标记和半透明白色折角;通用代码图形使用尖括号与斜线,保留原图 1.35px 描边;通用文件使用灰色底板与较深灰色折角。调用方可通过 `--dsh-file-type-icon-color` 覆盖底板颜色。全彩技术图形是明确例外,会保留其内嵌调色板。所有图形都是装饰性的,不自带 label。`LinkIconMedium` 是可点击产物链接的前置图形——地球、文件夹、代码、图片、文档或纸张,`url` 链接的 `href` 指向已知站点时则改用该站点自己的标记——转写内容常引用的开发者站点(GitHub、GitLab、npm、PyPI、Stack Overflow、MDN、Wikipedia、Hacker News、YouTube、X、Bilibili、知乎、掘金、CSDN),以及主流搜索、视频、社交、购物与参考资料站点(Google、百度、DuckDuckGo、TikTok、Netflix、Spotify、Facebook、Instagram、Reddit、Telegram、WhatsApp、微信、QQ、微博、淘宝、速卖通、eBay、Quora、V2EX、Apple)——`classifyLinkPath` 把共享文件类型折叠进原有六类词汇。`ConnectionIndicator` 可渲染警告色的断联操作(常驻重试图形指明重试动作,断联文案由持有方提供)、与文案使用相同警告色的共享 ongoing loading 加一至三个点以独立于 retry 时序的 500ms 节奏推进的连接中状态,或成功色的恢复状态。点击任一警告状态都会请求立即重连;没有任何悬停交互会改变文案。药丸出现时淡入、卸载前淡出 150ms,宽度随当前 label 自适应。它的持有方提供可见性、恢复驻留时间、本地化 label 与立即重连回调;该原语不使用原生 title tooltip。`useAnchoredMaxHeight` 将底部锚定浮层限制在可见视口内;过大的面板保留近端边距,不会滑出该边缘。无子菜单的 portal 模式 `Menu` 按布局视口限制卡片高度,固定页脚位于内部滚动区域之外。`HoverCard` 在框架发布的顶部占用量上增加 20px,原生全屏时保留 20px,普通浏览器中沿用自身的最小边距;锚点位于该顶部区域内时,卡片不会被推到低于锚点底边加自身间距的位置。`HoverCard` 通过指针离开宽限期让采用 portal 的预览在跨过锚点间隙时仍可触及,并可通过 `copyText` prop 提供复制按钮。触摸进入不会打开预览,也不会拦截锚点操作。鼠标进入要求存在可悬停的指针设备;键盘聚焦不依赖该能力。其 `preview` 变体使用 anchor 或 `widthAnchorRef` 元素的宽度减去 48px,左右各内缩 24px,并在视口内放置于行的上方或下方。浮层避开框架顶部保留区(位于顶部区域内的锚点下方时除外),高度最多 420px,会跟随内容及 anchor 尺寸变化;Escape 或通过鼠标和键盘激活锚点可将其关闭。整个浮层的淡入和淡出各持续 100ms;关闭中的浮层停止接收指针输入,淡出后卸载。在淡出期间移回锚点可恢复显示。减少动态效果偏好会禁用过渡动画。只有启用复制时才必须提供复制标签。`HoverCard` 与嵌套的操作提示独立显示;使用 `Tooltip.portal` 将小气泡置于卡片上层。可见的嵌套 `Tooltip` 只隐藏外层 tooltip,不隐藏悬停卡片。`Toast` 使用调用方的 `holdMs` 同时控制淡出延迟与停留加淡出的总时长。`holdMs` 未变时,父组件重渲染不会重启该生命周期;完成时调用最新回调,完全淡出的操作不能接收输入。新的组件 key 会重新开始横幅周期。`rankByName` 是 `/` 菜单命令源与 skill(技能)源共享的候选排序器:查询必须是名字的不区分大小写的有序子序列;前缀命中排最前,其次按对齐分数,再按来源顺序。 portal 模式的 `Menu` 通过 CSS Anchor Positioning 跟随触发元素,并按布局视口限制尺寸。每个候选位置都保留 12px 布局视口边距,并将框架浮层起点作为顶部下限;按指针定位的上下文菜单顶部保留 12px。首选位置放不下时,CSS 尝试横向调整或相反方向,最后使用窗口内的回退位置。浏览器缩放和平移时,菜单随页面移动,可以超出视觉视口,包括键盘打开时。内部滚动、菜单关闭和焦点恢复保持独立。`Menu.autoFocus` 聚焦首个启用项,支持上下方向键与 Home/End 导航,并在 Escape 时聚焦 anchor 内的第一个按钮;操作菜单可显式启用。 +上面的目录说明每个导出的用途;本节讲 props 本身看不出来的行为。产品图标名称不含画板尺寸,以 `Regular` 或 `Medium` 结尾。线条图形分别使用 1 和 1.3 SVG 用户单位的描边宽度;`size` prop 控制渲染尺寸。描边随视口缩放:16 单位 viewBox 中宽度为 1 的描边,在 14px 下为 0.875 CSS px,在 12px 下为 0.75 CSS px,尚未计入额外变换。渲染器不使用非缩放描边;填充轮廓随几何缩放,不受 stroke-width 变化影响。共享菜单通过 `Menu.module.css` 将图标渲染为 14px,紧凑列表为 12px;这些是渲染尺寸,不是固定描边宽度。具名组件让所选线重在导入处可见;描边几何由组件库拥有,而不是由消费方 CSS 覆盖。每个产品图标渲染一个 `` 框,其中包含一个引用对应 `dsw-icon--` symbol 的 ``,例如 `dsw-icon-search-outline-regular`,并在 `data-icon` 中写出该 id。`ICON_SYMBOLS` 保存每个 symbol 的默认 SVG 文档;ui-theme 据此渲染文档的图标 sprite,缺少对应 symbol 的图标不渲染任何内容。通过 `` 引用的图形会从使用处继承 `currentColor` 与 CSS 变量。每个产品、引用、链接与权限图形都会有意保留两种线重导出,即使当前产品只使用其中一种,也让调用方无需再次扩展 API 就能选择强调程度;仅填充的成对图形外观相同。`IconWarningOutlineRegular`/`Medium` 使用圆形;`IconWarningTriangleOutlineRegular`/`Medium` 使用圆角三角形。`FishLogo` 与 `BrandWordmark` 填充品牌 slot。`FileTypeIcon` 渲染传统的 28px spreadsheet、folder、HTML、image、Markdown、generic、PDF、PPT、video 与 Word 图形,并为现有 48 个代码和配置类别使用导入的方形技术图形。该导入只替换图形:资源包中额外的类别不会扩展 `CodeFileType`。`classifyFileType` 按完整文件名、前缀、后缀、可选项目上下文、扩展名的顺序匹配;React 文件名优先于 TypeScript/JavaScript,Angular 后缀优先于基础扩展名,只有传入的项目文件包含带 `flutter:` 的 `pubspec.yaml` 时 Dart 文件才使用 Flutter。Markdown 与 SVG 仍分别使用传统 Markdown 与图片图形。表格映射包括 CSV、TSV、Excel 工作簿与模板、OpenDocument 表格和 Numbers;KEY 映射为幻灯片,RTF/ODT/Pages 映射为文档。`fileExtension` 为相邻元数据 label 暴露同一套 basename 与最终点号解析。传统图形使用实色分类底板、白色标记和半透明白色折角;通用代码图形使用尖括号与斜线,保留原图 1.35px 描边;通用文件使用灰色底板与较深灰色折角。调用方可通过 `--dsh-file-type-icon-color` 覆盖底板颜色。全彩技术图形是明确例外,会保留其内嵌调色板。所有图形都是装饰性的,不自带 label。`LinkIconMedium` 是可点击产物链接的前置图形——地球、文件夹、代码、图片、文档或纸张,`url` 链接的 `href` 指向已知站点时则改用该站点自己的标记——转写内容常引用的开发者站点(GitHub、GitLab、npm、PyPI、Stack Overflow、MDN、Wikipedia、Hacker News、YouTube、X、Bilibili、知乎、掘金、CSDN),以及主流搜索、视频、社交、购物与参考资料站点(Google、百度、DuckDuckGo、TikTok、Netflix、Spotify、Facebook、Instagram、Reddit、Telegram、WhatsApp、微信、QQ、微博、淘宝、速卖通、eBay、Quora、V2EX、Apple)——`classifyLinkPath` 把共享文件类型折叠进原有六类词汇。`ConnectionIndicator` 可渲染警告色的断联操作(常驻重试图形指明重试动作,断联文案由持有方提供)、与文案使用相同警告色的共享 ongoing loading 加一至三个点以独立于 retry 时序的 500ms 节奏推进的连接中状态,或成功色的恢复状态。点击任一警告状态都会请求立即重连;没有任何悬停交互会改变文案。药丸出现时淡入、卸载前淡出 150ms,宽度随当前 label 自适应。它的持有方提供可见性、恢复驻留时间、本地化 label 与立即重连回调;该原语不使用原生 title tooltip。`useAnchoredMaxHeight` 将底部锚定浮层限制在可见视口内;过大的面板保留近端边距,不会滑出该边缘。无子菜单的 portal 模式 `Menu` 按布局视口限制卡片高度,固定页脚位于内部滚动区域之外。`HoverCard` 在框架发布的顶部占用量上增加 20px,原生全屏时保留 20px,普通浏览器中沿用自身的最小边距;锚点位于该顶部区域内时,卡片不会被推到低于锚点底边加自身间距的位置。`HoverCard` 通过指针离开宽限期让采用 portal 的预览在跨过锚点间隙时仍可触及,并可通过 `copyText` prop 提供复制按钮。触摸进入不会打开预览,也不会拦截锚点操作。鼠标进入要求存在可悬停的指针设备;键盘聚焦不依赖该能力。其 `preview` 变体使用 anchor 或 `widthAnchorRef` 元素的宽度减去 48px,左右各内缩 24px,并在视口内放置于行的上方或下方。浮层避开框架顶部保留区(位于顶部区域内的锚点下方时除外),高度最多 420px,会跟随内容及 anchor 尺寸变化;Escape 或通过鼠标和键盘激活锚点可将其关闭。整个浮层的淡入和淡出各持续 100ms;关闭中的浮层停止接收指针输入,淡出后卸载。在淡出期间移回锚点可恢复显示。减少动态效果偏好会禁用过渡动画。只有启用复制时才必须提供复制标签。`HoverCard` 与嵌套的操作提示独立显示;使用 `Tooltip.portal` 将小气泡置于卡片上层。可见的嵌套 `Tooltip` 只隐藏外层 tooltip,不隐藏悬停卡片。`Toast` 使用调用方的 `holdMs` 同时控制淡出延迟与停留加淡出的总时长。`holdMs` 未变时,父组件重渲染不会重启该生命周期;完成时调用最新回调,完全淡出的操作不能接收输入。新的组件 key 会重新开始横幅周期。`rankByName` 是 `/` 菜单命令源与 skill(技能)源共享的候选排序器:查询必须是名字的不区分大小写的有序子序列;前缀命中排最前,其次按对齐分数,再按来源顺序。 portal 模式的 `Menu` 通过 CSS Anchor Positioning 跟随触发元素,并按布局视口限制尺寸。每个候选位置都保留 12px 布局视口边距,并将框架浮层起点作为顶部下限;按指针定位的上下文菜单顶部保留 12px。首选位置放不下时,CSS 尝试横向调整或相反方向,最后使用窗口内的回退位置。浏览器缩放和平移时,菜单随页面移动,可以超出视觉视口,包括键盘打开时。内部滚动、菜单关闭和焦点恢复保持独立。`Menu.autoFocus` 聚焦首个启用项,支持上下方向键与 Home/End 导航,并在 Escape 时聚焦 anchor 内的第一个按钮;操作菜单可显式启用。 `Tooltip` 在悬停或键盘聚焦时读取锚点位置,再根据 `ResizeObserver` 提供的边框盒尺寸调整气泡。首次定位前保持隐藏,优先使用指定方向,再尝试相反方向和垂直于该方向的两侧;只要某一侧容得下,就沿锚点平移而不遮挡锚点。左右放置保留 10px 间距,上下放置使用 `gap`(默认 8px)。宽高限制在视口内并保留 12px 边距;文本自动换行,超出视口高度的内容在固定气泡后可滚动。若所有方向都放不下,则使用稳定的视口内回退位置,可能遮挡锚点。视口尺寸变化会重新读取锚点坐标,标签尺寸变化则复用坐标;定位不会同步测量气泡,也不会触发 React 渲染。 触摸按下会关闭未固定的提示,且不会触发悬停提示,包括触摸后的兼容鼠标事件。只有 `(any-hover: hover)` 表明存在可悬停的输入设备时,鼠标进入才会打开提示,从而排除 iOS 因已点击图标变化而生成的鼠标进入事件。仅有触摸输入的设备仍可使用键盘聚焦提示和显式点击打开的说明。信息按钮可显式启用 `openOnClick`,通过鼠标或触摸点击固定气泡供阅读,并将内容关联为锚点的无障碍描述;再次点击、Escape、Tab 或外部 pointerdown 会关闭。普通操作按钮在触摸点击时直接执行操作,不显示 Tooltip。可选的 `onlyWhenClipped` 只在气泡即将显示时锚点或其内部某个 HTML 元素横向溢出才显示气泡,因此重复被省略号截断文本的标签只在能补充信息时出现。