From 1ca94a5422c9ade885f3a9ce33042ca08fd9990c Mon Sep 17 00:00:00 2001 From: Ross Johnson <159597299+rosco54@users.noreply.github.com> Date: Fri, 16 Feb 2024 23:11:46 +1100 Subject: [PATCH] Implement feature request #4237: see new sample: area/multi-axis-with-seriesname-arrays.xml - also use this facility to simplify the specification of series inclusion in stacked charts, especially when combined with other series. See stacked-column-with-line.xml and c.f. stacked-column-with-line-new.xml The new facility should be backward compatible with the existing style (both described below to the best of my knowledge), via code that converts the old data structure to the new one. The current style of mapping multiple series to a y axis is to include one yaxis config per series but set each yaxis seriesName to the same series name and then set show: false on all axes that are not required. While not the purpose of #4237, it offers a more intuitive alternative that explicitly configures yaxis elements with the series that will be referenced to them (seriesName: []). This only requires including the yaxis elements that will be seen on the chart. Old way: yax: ser 0: 0 1: 1 2: 1 3: 1 4: 1 Axes 0..4 are all scaled and all will be rendered unless the axes are show: false. If the chart is stacked, it's assumed that series 1..4 are the contributing series. New way: yax: ser 0: [0] 1: [1,2,3,4] If the chart is stacked (a global chart setting), it must be assumed that any axis with multiple series is stacked, presumably as separate sets (not yet implemented). Fix stacked chart y axis scaling: min and max were computed as the sum of the series min and max, not the min and max od the summed datapoints in each series. Note: it is left to the creativity of the user to visually disambiguate which plot is associated with which Y axis. Additional checks for undefined elements in CoreUtils.extendArrayProps(). Remove the duplicate outlier in boxplot-scatter.xml. --- .../multi-axis-with-seriesname-arrays.html | 227 ++++++++++++ samples/react/boxPlot/boxplot-scatter.html | 4 - .../column/stacked-column-with-line-new.html | 338 ++++++++++++++++++ .../column/stacked-column-with-line.html | 8 +- .../multi-axis-with-seriesname-arrays.xml | 140 ++++++++ samples/source/boxPlot/boxplot-scatter.xml | 4 - .../column/stacked-column-with-line-new.xml | 246 +++++++++++++ .../column/stacked-column-with-line.xml | 4 +- .../multi-axis-with-seriesname-arrays.html | 194 ++++++++++ .../vanilla-js/boxPlot/boxplot-scatter.html | 4 - .../column/stacked-column-with-line-new.html | 305 ++++++++++++++++ .../column/stacked-column-with-line.html | 4 +- .../multi-axis-with-seriesname-arrays.html | 213 +++++++++++ samples/vue/boxPlot/boxplot-scatter.html | 4 - .../column/stacked-column-with-line-new.html | 324 +++++++++++++++++ .../vue/column/stacked-column-with-line.html | 8 +- src/modules/CoreUtils.js | 8 +- src/modules/Range.js | 4 - src/modules/Scales.js | 321 +++++++++-------- src/modules/settings/Globals.js | 1 - src/modules/tooltip/AxesTooltip.js | 10 - tests/e2e/snapshots/area/area-datetime.png | Bin 44428 -> 36260 bytes .../e2e/snapshots/area/area-github-style.png | Bin 30850 -> 24231 bytes tests/e2e/snapshots/area/area-spline.png | Bin 27991 -> 24768 bytes .../snapshots/area/area-with-missing-data.png | Bin 31232 -> 23244 bytes .../e2e/snapshots/area/area-with-negative.png | Bin 22728 -> 19796 bytes tests/e2e/snapshots/area/basic-area.png | Bin 31015 -> 20901 bytes .../multi-axis-with-seriesname-arrays.png | Bin 0 -> 52487 bytes tests/e2e/snapshots/area/stacked-area.png | Bin 59027 -> 54858 bytes .../area/timeseries-with-irregular-data.png | Bin 47324 -> 38629 bytes .../bar/bar-with-custom-data-labels.png | Bin 50611 -> 38327 bytes tests/e2e/snapshots/bar/bar-with-images.png | Bin 136301 -> 132515 bytes tests/e2e/snapshots/bar/bar-with-markers.png | Bin 17962 -> 12473 bytes tests/e2e/snapshots/bar/bar-with-negative.png | Bin 30331 -> 21573 bytes tests/e2e/snapshots/bar/basic-bar.png | Bin 17791 -> 11604 bytes tests/e2e/snapshots/bar/grouped-bar.png | Bin 18194 -> 12879 bytes .../e2e/snapshots/bar/grouped-stacked-bar.png | Bin 29465 -> 19669 bytes tests/e2e/snapshots/bar/patterned-bar.png | Bin 39384 -> 32553 bytes tests/e2e/snapshots/bar/reversed-bar.png | Bin 23784 -> 17780 bytes tests/e2e/snapshots/bar/stacked-bar-100.png | Bin 40980 -> 27184 bytes tests/e2e/snapshots/bar/stacked-bar.png | Bin 35640 -> 23070 bytes tests/e2e/snapshots/boxPlot/basic.png | Bin 28288 -> 23517 bytes .../e2e/snapshots/boxPlot/boxplot-scatter.png | Bin 29538 -> 23072 bytes .../snapshots/boxPlot/horizontal-boxplot.png | Bin 28457 -> 21744 bytes tests/e2e/snapshots/bubble/3d-bubble.png | Bin 81909 -> 74894 bytes tests/e2e/snapshots/bubble/simple-bubble.png | Bin 57213 -> 51142 bytes tests/e2e/snapshots/candlestick/basic.png | Bin 46639 -> 38369 bytes .../snapshots/candlestick/candlestick-bar.png | Bin 28522 -> 19444 bytes .../candlestick/candlestick-category.png | Bin 56848 -> 45269 bytes .../candlestick/candlestick-line.png | Bin 49892 -> 40981 bytes tests/e2e/snapshots/column/basic-column.png | Bin 19790 -> 13754 bytes .../column/column-with-data-labels.png | Bin 23740 -> 15310 bytes .../column/column-with-group-label.png | Bin 21137 -> 14105 bytes .../snapshots/column/column-with-markers.png | Bin 15652 -> 11557 bytes .../snapshots/column/column-with-negative.png | Bin 17025 -> 12573 bytes .../column-with-rotated-data-labels.png | Bin 38988 -> 20942 bytes .../column/column-with-rotated-labels.png | Bin 33776 -> 26785 bytes tests/e2e/snapshots/column/data-color.png | Bin 16577 -> 12728 bytes .../snapshots/column/distributed-columns.png | Bin 0 -> 12334 bytes tests/e2e/snapshots/column/dumbbell-chart.png | Bin 0 -> 14366 bytes .../snapshots/column/dynamic-loaded-chart.png | Bin 0 -> 15938 bytes .../column/grouped-stacked-column.png | Bin 0 -> 23964 bytes tests/e2e/snapshots/column/range-column.png | Bin 12983 -> 9754 bytes .../snapshots/column/stacked-column-100.png | Bin 33846 -> 22272 bytes .../column/stacked-column-with-line-new.png | Bin 0 -> 32974 bytes .../column/stacked-column-with-line.png | Bin 39348 -> 32998 bytes tests/e2e/snapshots/column/stacked-column.png | Bin 29853 -> 20202 bytes tests/e2e/snapshots/funnel/funnel.png | Bin 29348 -> 26276 bytes tests/e2e/snapshots/funnel/pyramid.png | Bin 25267 -> 22935 bytes tests/e2e/snapshots/heatmap/basic.png | Bin 26738 -> 19093 bytes tests/e2e/snapshots/heatmap/color-range.png | Bin 22693 -> 16238 bytes tests/e2e/snapshots/heatmap/image-fill.png | Bin 226176 -> 219858 bytes .../heatmap/multiple-color-scales-flipped.png | Bin 23404 -> 16979 bytes .../e2e/snapshots/heatmap/multiple-color.png | Bin 27548 -> 19813 bytes tests/e2e/snapshots/heatmap/rounded.png | Bin 113113 -> 86575 bytes tests/e2e/snapshots/line/basic-line.png | Bin 20627 -> 15791 bytes tests/e2e/snapshots/line/brush-charts.png | Bin 87305 -> 79248 bytes tests/e2e/snapshots/line/dashed-line.png | Bin 41242 -> 34845 bytes tests/e2e/snapshots/line/gradient-line.png | Bin 36933 -> 31387 bytes .../snapshots/line/line-with-annotations.png | Bin 38581 -> 28578 bytes .../snapshots/line/line-with-data-labels.png | Bin 39649 -> 31129 bytes tests/e2e/snapshots/line/line-with-image.png | Bin 42626 -> 36508 bytes .../snapshots/line/line-with-missing-data.png | Bin 28365 -> 22868 bytes tests/e2e/snapshots/line/logarithmic-line.png | Bin 26229 -> 21164 bytes tests/e2e/snapshots/line/realtime.png | Bin 27426 -> 22610 bytes tests/e2e/snapshots/line/stepline.png | Bin 13285 -> 10262 bytes tests/e2e/snapshots/line/syncing-charts.png | Bin 97093 -> 86063 bytes .../snapshots/line/zoomable-timeseries.png | Bin 33923 -> 28237 bytes .../snapshots/misc/annotations-example.png | Bin 37526 -> 29939 bytes tests/e2e/snapshots/misc/axios.png | Bin 19277 -> 16249 bytes tests/e2e/snapshots/misc/custom-legend.png | Bin 33753 -> 27396 bytes tests/e2e/snapshots/misc/jquery.png | Bin 19277 -> 16249 bytes tests/e2e/snapshots/misc/minMaxPoints.png | Bin 26957 -> 23567 bytes ...ange-annotations-inverted-axis-example.png | Bin 23443 -> 16210 bytes .../e2e/snapshots/mixed/duplicate-labels.png | Bin 18890 -> 16941 bytes tests/e2e/snapshots/mixed/line-area.png | Bin 46420 -> 40330 bytes .../e2e/snapshots/mixed/line-column-area.png | Bin 42242 -> 36705 bytes tests/e2e/snapshots/mixed/line-column.png | Bin 43111 -> 33481 bytes tests/e2e/snapshots/mixed/line-scatter.png | Bin 22882 -> 19601 bytes tests/e2e/snapshots/mixed/multiple-yaxes.png | Bin 50095 -> 34831 bytes tests/e2e/snapshots/pie/donut-update.png | Bin 22637 -> 18815 bytes .../e2e/snapshots/pie/donut-with-pattern.png | Bin 43084 -> 38419 bytes tests/e2e/snapshots/pie/gradient-donut.png | Bin 30711 -> 24799 bytes tests/e2e/snapshots/pie/monochrome-pie.png | Bin 33186 -> 30999 bytes tests/e2e/snapshots/pie/pie-with-image.png | Bin 79306 -> 76652 bytes tests/e2e/snapshots/pie/semi-donut.png | Bin 18167 -> 15582 bytes tests/e2e/snapshots/pie/simple-donut.png | Bin 22622 -> 20010 bytes tests/e2e/snapshots/pie/simple-pie.png | Bin 21633 -> 19218 bytes .../snapshots/polarArea/basic-polar-area.png | Bin 33639 -> 29201 bytes .../polarArea/polar-area-monochrome.png | Bin 11359 -> 9890 bytes tests/e2e/snapshots/radar/basic-radar.png | Bin 23673 -> 20543 bytes .../snapshots/radar/radar-multiple-series.png | Bin 37672 -> 34766 bytes .../radar/radar-with-polygon-fill.png | Bin 38868 -> 34199 bytes .../radialBar/circle-chart-multiple.png | Bin 30282 -> 29485 bytes .../radialBar/circle-chart-with-image.png | Bin 31936 -> 31645 bytes .../e2e/snapshots/radialBar/circle-chart.png | Bin 12962 -> 12069 bytes .../radialBar/circle-custom-angle.png | Bin 32599 -> 29362 bytes .../snapshots/radialBar/circle-gradient.png | Bin 28161 -> 27277 bytes .../snapshots/radialBar/semi-circle-chart.png | Bin 15971 -> 15691 bytes .../e2e/snapshots/radialBar/stroked-gauge.png | Bin 23089 -> 21801 bytes .../snapshots/rangeArea/basic-range-area.png | Bin 27999 -> 20858 bytes .../rangeArea/range-area-line-combo.png | Bin 42620 -> 36164 bytes tests/e2e/snapshots/scatter/scatter-basic.png | Bin 36083 -> 32059 bytes .../snapshots/scatter/scatter-datetime.png | Bin 45309 -> 40906 bytes .../e2e/snapshots/scatter/scatter-images.png | Bin 79185 -> 75842 bytes tests/e2e/snapshots/sparklines/sparklines.png | Bin 53587 -> 40066 bytes tests/e2e/snapshots/timelines/advanced.png | Bin 19101 -> 13668 bytes .../snapshots/timelines/brush-rangebars.png | Bin 22298 -> 17054 bytes .../timelines/controlling-colors.png | Bin 18926 -> 12426 bytes .../timelines/dumbbell-chart-horizontal.png | Bin 26648 -> 18736 bytes .../timelines/multi-series-group-rows.png | Bin 35184 -> 21254 bytes .../e2e/snapshots/timelines/multi-series.png | Bin 20599 -> 15934 bytes tests/e2e/snapshots/timelines/simple.png | Bin 13364 -> 9456 bytes tests/e2e/snapshots/treemap/basic.png | Bin 17957 -> 12165 bytes tests/e2e/snapshots/treemap/color-scale.png | Bin 19988 -> 13705 bytes tests/e2e/snapshots/treemap/distributed.png | Bin 23895 -> 14929 bytes .../snapshots/treemap/multi-dimensional.png | Bin 13678 -> 9498 bytes tests/unit/multiple-scales.spec.js | 260 ++++++++++++++ 138 files changed, 2428 insertions(+), 203 deletions(-) create mode 100644 samples/react/area/multi-axis-with-seriesname-arrays.html create mode 100644 samples/react/column/stacked-column-with-line-new.html create mode 100644 samples/source/area/multi-axis-with-seriesname-arrays.xml create mode 100644 samples/source/column/stacked-column-with-line-new.xml create mode 100644 samples/vanilla-js/area/multi-axis-with-seriesname-arrays.html create mode 100644 samples/vanilla-js/column/stacked-column-with-line-new.html create mode 100644 samples/vue/area/multi-axis-with-seriesname-arrays.html create mode 100644 samples/vue/column/stacked-column-with-line-new.html create mode 100644 tests/e2e/snapshots/area/multi-axis-with-seriesname-arrays.png create mode 100644 tests/e2e/snapshots/column/distributed-columns.png create mode 100644 tests/e2e/snapshots/column/dumbbell-chart.png create mode 100644 tests/e2e/snapshots/column/dynamic-loaded-chart.png create mode 100644 tests/e2e/snapshots/column/grouped-stacked-column.png create mode 100644 tests/e2e/snapshots/column/stacked-column-with-line-new.png diff --git a/samples/react/area/multi-axis-with-seriesname-arrays.html b/samples/react/area/multi-axis-with-seriesname-arrays.html new file mode 100644 index 000000000..9ead62ad0 --- /dev/null +++ b/samples/react/area/multi-axis-with-seriesname-arrays.html @@ -0,0 +1,227 @@ + + +
+ + + +t&KNpf1;XIqe z^ku1+SH}I+V6E^O1geyf^1IakGIh&yV#jHiSr-kWez(q(uX$9w)_6k7v3P?c0KIlS zDn80e5xZgmJovhrcO5ak+XztjpeKSdQ%eRE>dB=O`yCfYAeZ+MgFtG|hiA*`gVUE+ zZ42w`Qv#?6(2HvW%H)%28$fzhFH#QzB0bh`A-lxO9Gr@qt z10u@c^?QP9Qnpz3?**zvr&C(zC9R;UTEz=DfRJZoq=OD=a&(Om5T-YIL(WF#LYkZ3 zKmd}2;?dsC6R9^2+&<&T_wGLWmW)TM&zfMjeQw9tV2=jT+fAG>o9uz@uR%Dmba3Xb z*F13^2BbKBBuF?f>?cFm-2BT^-<2@vfcDM}04z8N01uap8yUHNbN)dj=`fATf*I?$ z878LZZ| rLDIgf6loRguwD9q>E(=WCBHyHKiwtohmXH7bn)e%p9O{)&Ui8X7 zBko|Bf4O4#8^4CQb1@pE&wA=hZl~0Q;mm|A=a~~k9-!LM8PpGhGDhFX2yv`P7ss3w zq;Et-gwGiPepb5c7_qV@x~=OvPpQ39M7-6p`}AitJlm7a5i`Q5hw9GW=n&T@)mt}P z)uy>hM*>XP7}aZW$o1Z@Nif&-Qt)`=sy|w1c+AGv*iAA_PmcHjY&ukS-J2fy+_vUC zAKl~c?OH%AXET9WH^cN^dSmNfkalK?0a1yG;X3c7RPQ#~@D_dL#?sQ#Qtff^!3g_n zU|?I=K;*-wo$?F=YmR3!GVODBJqUbg{9qso2=q-ic-+I@?wE+su$YCbiudOkMTN z=lQmT_8e|L<<{)?5AHZteg<3HT-eeklNnZhvsyheTEgUFs#+P5e3i1_9^~72cm>c3 zUu;+Ixa|9m{A7tQ*1s|QsoVGvR;;F+G=%xzO-<_O6tsXazve+jii(f#V15PQWg94e zkm0hhu}0g4N?vrk+_jgvL 880B%lK zPsFk0ZmIH}_IY35O<7by3V~i8&A9EVZ`r{wR3L{kGBe}6Hw1U*pxdNu0s7v_W18*P zUZZ={E2Ntgp8Y9VUW#iSV(?X|WjpqLWDB6I4ZKosRP{-)Y2=P={ed{ZiP&wSh_gT1 z4Qmj7rwZ3 M7Y^fgNE$eQ7=P#Dr9 zTHQ9;A9S> inu3KJ_IkUfQZkYT2aZ?n@Y}T=D@1R><@#(8uoz1Tq-Kwi{kj6|@ zsu)9~TF1l~Q?|U|azQ~D^G!#6PAAn03k*1kk%bfw4+3zWH%EnR$+>pAurt(5X+JNE zsglFn&+0fVw(<6XD$)zeTvf;Y#lrQFF4@G({Zb2gG!{c*tC<@p=ze0^c?S$aWb2yM z<0HA Oq^xA{6PS9X+;qSqw7>m1L-8$<6u?(jR**r5R2+%IKRJiWoN&JZtYvee-~ zXyV|Rpv-<=uWANnYFzKWzdJEK)u5-_I9*=Dh#7gyzbZ>ccHNvH! 01u9qu! zwh6}hCi@-b$B#$}WgmR~qB6N15Fs1%@P%P7MU0)B=twKgOp;G?ZBNl@LAhY5_|-qN z#ii!5jYv{xdKSRM$caSJ!pdWe_Tng83{gIkX0dkzezt}+;5_;*?pX}!fT8okcLS=V zYc%L)0@l7K0s5d%xQBI-nWKRT)BfQMeKN)3Cv4Zs^1^6XNseHG4^tyXWs4oi=svF@ zCk@nY8+879xTi+iuTE57dLAT8^v;rr@8#H?-ERJpwlO^V5YqL<_rN0AS5Nqn)Om!V zqz!|1S){%-e$dhnpYkV3A?SlhP}*TK2MLWCf&yx;%dhNEw|3&an+>tl+HdzX;BBD6 z`Rm{=`j>_|pBmG~`Nw`>+lYTBs?{DprV)mAuk2FbhH<*t+f>vVjSN8QBWQg5q81w9 za_oDf8R5nfg JqgKMIEV`13$+O^Wzowf^ z#fYQN;t@8hGW7kS>=BhsYC8UUNyhJFJ9r5%ViYhNqu1c=F*1Ev<_$lV$9XLLlqPi0 zwTEvY`b3^2Xachyn%P|sjoz|(ejG+?d4!qfHnM{FEUxBBrk3B(2AL;9aP_ViYi8xA zg>^25OQZnBI=PdzFk^y-@2^pcPxvp^>{J7H-rRE%zYaZ?d4?+H-#}X~)M?0d<$e9& zYkYiAb8|CYER*XAmgFaQH3AF;9PIWt1!1P`#JI%}cel)|T~4&*+|_~Hb(stJV;I z`fmGIF~p F;0ZFzIzM_L$X{e16nxCS_%o)la2Z8qosi13*Z zoZBG0^3Qxdjc}rOMkBU9H~rw@ic+aChVfr!whU-xI}kL1YWPN>*M__+KXY&rK^Fho z60z+2wK$pD7o-g*OK8)Kv9sWQsN*q2Be1{J o6vLUNek&mRgKF zZwUD+KW)f#i9XE4N^+!kwaLX`a2DninRd*Ab3ASqH>T!Fu|Fe)AW%bPu<#V&cKd dOjHfI68Yh-fa zgP8(I84mSmqTqxhIq)wPeR4FY(BaD)Fv|rVXv25?;CBbL cOl0BFco*Y_x<9zNB1EwPc40JAP5rLv;eHzAN+zSSg8uI9m(Y zfOoanPdP)at6Hq9mTGo*`)5mWMq9|oYx2-QQ`NMiJ9%NxS8*Y!j^hk<%ftXp9z;?8 zohk=8IH-8|8v^nVKxGc7;@M(9Ve9>3pjO}Sl=z+NiqLa|C809ZrJ0nxX}+SjR7Kc{ zkS%2OWTfqbvisZA`7%D7KW~wClPTxD {^)mP`*Xh&VSnQ*27C*KxUtCsm*%0u^Z7{*A!g$sqA0+lP#>l}Gs~RrGTZh0m5~ ztA)fLEo^hP<&}~#nr_5CbfiG01w?NXm0q?gbQR%WK@Y_qOq824Z^jk<21NKczlvfP z8k_BnC~ZZaAHXZG|FWa9Vrr*!s#RdgKS{u|?Z{an(n~TZkgn#becK>s@fPVv+9)o< zcWdW51JC=oX5XP2{eWPowAC?6AT+v`!70658Cm~Tn(y1mN~84KD(c!@ABF9OG?er0 zp{=Dp>%Ot*h=Xh6gA$zu-`F}+)Y7qq-T1cO8w8EkJuT{hGs?OD0mS*2^Qb^DXr}2H z89#%-3hUeRX|?>~rXiy6xr?A0mkGoXJELwR86?vBU3;(n?G|>D(;~ACu_kY0II|y7 zBB7Clp%4=r+WB%Y##++@`DBb~RRd_V mWD<5`r}6sS$IIzw>r!UK~L%?n;4B0 z+xh(H7H*GM^Pa#81*&<+G3&OqhEVpF%7P|Ztm&f1hQ<5VV|mq|i_$)^&Q>2Da$$42 zC(!WaXstaqX@~SV+WWeoHhrxcMwNC!r?TrthPbS|5ZX+5iIe=hfw~s1D?iS+Bn}dA zW$*g0!#1$H|2V;?J9{@Oid-~$t^~!|t-NHJK+R{08m%dWQ-e%%%0Q1p@uQ8ZSr%&X z)C%A8&9i<_qQBYWC)`Qt`-Tz=a)r!e?Q3?@%6+fyg#yXB$#icxksykFHGE~|t$Wkp za>ma9{^+VK$j$%#%NhHZ0f+S6m|360>hkgvT3XZm05K5HktmNn J5?3C^FGKb~M!J4%U3T%E=w zMUmUqSweI%N{&Kj4QAU04LA%pqv?|=KaC33ViT4T6aKt<#Q$Hj0A<8-R$hZ;vx q z5Q_2#6`xDMYS5RJwAwjrq_kekhmw@o!aZ&(GwM3kiBsK&x} zd(1ej+6IX3&AkQ~rdHH+%d@$;8EO3|O{fLlF_8d9oiQ^cH_V8o&(tG`>7k1`@Pu+$ z4H^B5iU j4Udi|eZgWP&$^Y}&gUFKWkO}1aYhMhGl*%}A zQ&G!J+q4oUmoIsBx^DTP{UCjU3axb==m@v^$+7qeLou6NNk=)E%KV b z?J}3#`5`u5o|lT5&)=hy-)rMZPd~JM*m9S} w&dEjoEUv!@#x?vkd@QZtL3%0PTWY_?>MEbRt zp2YM*JM3^3Lz$_EpWx#1cYr28P{es&zP;`=nO0)h2GkA-+Mw?x$}d;oDuQcj)?^TO z=?I>n_Lsj^>Q0#9M8wpI5|k6mt@N}D+J1 vH?B7pn9o@sO&%P z;P9>x?(U?fYDjkOYar-l+Dg-XE{a{+ok5mM&~`+YMEl i-9l1unC`}rxtCB6AXOR@BSC=-v44 oud9Vf_?l}> zIKa4+qM<656d 2tQiB{+;Wh#`Prrh8pT!5H1d4UpkSskPNd<@c)o zOQ<@$_PjhM?wb>p+^3 i38|SmjiSx!FjaI!2Yo-;5jEGWG-OcDog(}xh z_xD)}wHhhX8cZ(>;$wDx$8_n6nBC#?{HJnjqf+&5N~-E=bFZ~-PXpW=ok}YeV;by6 zdsM BkMEuU&=eg4lOL(hxXqEC?~+@;f8~MG&@jiHI4ftQ?bVJ@ zYnpw@ilm{DgF7K8s@9Dl9ip*mYY4PC$Um| 0!TXC8#B(L6#HWs zTnH7(6h)(_muFxGVh)zkX7y6Tp~iEfuBWzcUnmWTrMvJ`moRO2(ZA{=s?J!3jyKX@ z-p|WzJT+fM=L}ABqQJK3io@b^*AOy44b$n!M;ePi{gYf{e4mLuT(Js|cuLsChrQ3m zn9{HffpQH{Q0L(*!yJ6E>(`RO|D>!;o8nnCNt}zM#{C!vs3aZgrMO0=Llj#7dSf$5 zZs{TOh16dtiDD;~evQfxpO$&AYy&Lf`I7ZGLKvQgb4Ly9pG*gE1Ii2J?~ Pqkxfdv`BcB;| {Q`;sH;v7xL}ZCC&vq`yTRU+rJNqQX18htkhaO~<&_l~`IbDO z{m{!{y+TR?mwWIGT<#TK&C`=~ZQv(0e}w02FfQ}Z)~5s}QgzX-j`Fv+5TEQSOaE5O z)2ZA4OFtFpEiVNYEf+~+nBy!ECSAYGaDvK+fdSLjPP)_*IQ_G-bl|NOXz}L1>j$5MZwHa?}xw2|0jT< zvMB=8@4W%th_-ylYRJ95uS<)n73qrRx7*PC0=RcLn5os(sDFEc+Oew-b8D;a-T+Jc z<`5`#Zal%TAxtO!DGEd|k|^N->;-Av%ZG=DhsR98&*bhn@C5G+Yv(TWbUo69&FP#< z*#%z$1sFJOD0AG)=B73FYIr0mbG``-&x?U4Y0z@nF0ZbR3hc*x_htR2oxQv!qP<4b z)>41BzDkJvf4AHYY*L8-0EPT(R1{u30uYl1*GcEj{bxn{x0j^hy>7)%iYXo6ScFOo zA3TSN&Ww)LCBvg|5Wu^8ha}fv?&swS1Dph0ru)tR0XYEH1^~i+wAOR9^#uQ|loYz6 zqJ!M*L)-zbD2XNY+s#Z2pDr6ubB?dyo1u|UKlYg5b#--}FrmQWwnTjPgFzqKU7D$N zFN&8-g0(gW9rCS3a^+c7Rh3#(FE0q4C2gt`^gYtSI>cyH^*d=8?-TjPP~ZA2{U|>$ zoEeFPPSXd Hr*BJ{s6*47)|@!#||RrAJ-Ba3r<>(I<$Q zN(AU09}G!h;%+rjIB}PJS&S%gJ}NEqKkKLpT}ef7S@_AP>3W4fKXc?;)$tv=;QuG& zZ$>Y^FsuQC7Be@qQ^aEP%qFB? RwTBMai~{-NtZLa&W WI7b5j39qxXH)I!!ssZM_UNh*rLJxm88;5 zNxNqF)ARYWikQWGN-c58L<65rX8iRIc?QbDR?G}lOtSpH
;l7|! f$!YQe6?m?vYYD5r_>oDIA=I2X?O)#&+Y)wu#V@8xBq^7&dhX{ypTGgP= zU0JsNn_bro1Sy!O*h4_@y2=~aYSWE>;2}VB8n9n{3Yi~2SW D!4-)td z!b Wt%AuaKTQJm++=TL`{?eX{tlG&c8krX4A@1p@rcK(9AIKLM7p$JMySH!8SJMxb z#J|Q-skrJiQ4FQazxkGW5dj7e3beIhW| gOl)4bQHB{cZ{}Grhyb`oX}hwD z>f$_afF5f?*4_JV${2=W4n*(`hK^@5&Io}wHvO&ou1IUY*=f(&BqAOhK?e wNXMe(BTmZU?q+39BKgy$9VBAEAV}T)++bD@|*mxZdh!re|dSi1jREj!vFI) z!Bt#9++`B+7Fp5g-{=cI^_vX7VviM_3|X2qk^LRba>s>@ot=>;SSvN)k|o|&x|Cnv z>n;lib+bj6b)U2SC)2}q7T`b2i~o9t?qh%7 uG77I51p5 zXXg{Q$FUeuljcPRyzy9rq>^n?_~epWqpj7qh$6+$6F&}6$gvp4KS3rJTAP6CUIV{o zl;SJs*}z;OaYiIi$*K+FOMtqM0rL9by&*TfQa?X+8%-mut&N9V`uiXih3fUgf$>c7 z$A{ii(Q2umu<6J18L&>MUyF#8JPZkinG${KN$aGCP0VaaEOLa i{~0JU +-3hD{3iOs zbMQxNPqXSuIPL=;nCB#RkWk5nnTh)DJ3oV*+DZ@3Zkur8>7oA55v&t1eXJNH@pjh0 zOfM^FJwf}NTKD)T1A(oXdn~m@{u5YmZZJeJzqk>Oj}0#6w_27HHC@_+sP92Y+&OjJ)Qh!Ci{GCoJlY zC#fw>B-Hp8VHH7vVt7B%WF1Se{eq|)TWVi$qQSiX_?kh_K6Py~;4plM0--P}u;;|i z7CUoucxGo!X*!;^ZYay=|4!DA@Ts+D9}NaJn|KZ8w}_>tFC)u ~nlO!1eSv%PT0aUv_x0OHSzka)|k~g#qFGqfpru$YBn$~MSDaY{%d*095)!%*z zp4$2a;_VI&Q~Alo-uw8DKxf&ye#5xkgm?z+k`Ij1RO$OUJ*o&UyoR-9vDPoLwOot} zEAx%>O=tC+Bh$ltjYAPFG92vG`Nu6w=<`^7nB^izM`Sot3*-dKWbJrt+u3p3J#z)r zLFtKjnM|u?R)S>RC9u9P*c1>c5@ B8!Mbq*}He z13k#wlkof?js117aofxH@Z)Wf>0hiEsm(<5@Dg~mU6y_Dz~;zll0lnrPt2m#>SOS* zN>8!Fd)ZRCge{zFN+tupcMM)i#(xcyBiuZCh F?Aj9d;d59!n4?G_^dK#GC01ey zXd*8^Q&8RiTDj(KfI9+MbjD_-Q{7CN)qfi+(}r4Q 1B!_E!*x0JBy*f^GBI)03f-$nrHejLk)(`=ipgHM8D#~# zc=%G9*%JSZl`;qFnF1-9_C*~VgPhOa9x4&jB+<@)D1vosUUf5H04SnX-++;oFQ8jT z1I~(ixWli>5hNjWv98V^Er7Gfl9cK86I*pwGB&DE$~o`|lPD?H6lr3#G*#+>IlJJ` z@=RZ%f^>OX$)KKvo*urqq gyNo zT| &bLz9HSQSv(aTgocA&8%XAe5HembGU+`nc*r+iQ;vM`S}N`1)Q{RpPG iWB=_ zvabH_7Ya~^TzB0;-P5S3v5Db^$W=asbawu5zokGeY3Tg(2enYQN#GLUlWmRS1MB@! z$6nu7rOYU3dmJJrPrZ$_3A%jj%I6_sv-jSeAsY(|`dSSnE@T{3RJs;xWxHNPg*xP; z*+L4(e>CYIIhgS}oBn`Q5#*(Wn=Zp^3kW~B+4xv_WDTAvA$;*}`Rs~Ab l zS^aGPlBM}f{Fn2c2)=d`4=>z~siJ)Bi$# ;_2FJqq5veVS_jD#c+n0NZ`oh% zaUaCJ=dn)Mv}}1sK8X$(``A?Z!M325{qjmzQxgM%>uu%jIZOIerw03N--qT6BYrMF zhA)5Bl%?LcFuR9wb^i7I|5GcZge8U0(cLX#Vq$WRf;9iTKXA4E`IOM=+M40u(~Zi4 zb|k3#VlE@c6RVGvIlrb6UwbVc%?RR(wgXu28m%HaC}zb7a}46t+IJ1Oys#Y1lw@U+ zbV#Cj0QZM^+H^JWkJO2vZZE^beWEJF+YWY;m6lQ?V`Kfn%tVE*2VoqsgQorNT5R?r z_$K~w=TFdMm{b;aPh)(+ozN)G$;SpBq5O>XnzUe;7Nu}zg=cTK))QXQS>(YnpcTt= zHK{l7%dy0?!V4V7$IwP9l~jz2kZlni+#n%0Q3QxAsenf@(j9*nY0qHHFm-oE-QM1Q z{EfykGKsP(vu}fwydIt5%I6Z|(^O4Uj^WDr8kL#!5m;2`Tt+7q!jzg~_tV~ZCP`&k z% GEGxGV;g6Un1M#^U-iH`a(htsNb7OYB z=)qLWZmJ_Nr~9VAVMo!;zA%sdVK<^^c+foX8=Db~sIj3@kTK8)IOQ=ue6ZX7bj3Be zS2pE6ub`MAne?2#e=wVmD_#rlGcfEK;)Ka)1K5}!@NL(3aXd8(rn(vMfgkzvgktV8 z`7V6uhCmEe|2l+l<$5KeTZhq{;&q6O2*`I(i5OjsKbIjZXl;QJi=Iw+38K#y$m9_X zkA{R(4P^-z5^ZMgN(pveRwOr3C6y@aL}NUfvO9Quhlcv1u-~&f&80Y}#gC{qi{XH9 z3Ka}Qe2k}5evQKepJKMhh$KJ~Y4YA>QJQm7`uS|euGhfPwRN}(iF|T)17>47!Mo>j z>hFsFh?mugAM>K&@MPMJbI{1wv6JXVkAwkoc6lM@Va2om3yD@hZR5f846{KEeaTcU zzoBEAwWG_ Zu%Ae`I50tu=}q9MD``MI=3( >p?NBlsIW4^cRR z`CFQvSy`SdtJ{%z!wEqJM)q5s+oYzsW!;wIpNKAYL45Y{KT|e}-o`u*_;9;z#2RaF zE$Q!}`;Hly5a6D8GWTILorYi#ox$7>1P7rFE^31z_`8#&H8H`o)wig#KWO?r)d~@g zXo=gWDa5Rf8Y%U5;AjtrLgA)dE>7Rxof*^rWTMdIj)u*MxkKseWTFE-`bahCp=v*n zDQuh+k&Sj =-;GA^cB_zE#@F4=s7Eq+PA&X~Efv_rGyEN;E89`TNlFRLD>hOKCC~o1(mU z_^L&?V`tpwjMvE+anP9wdS+K@pjhPc7(-DbBq|C0ZSMnCX*->uF^b(!*e6GB0E@EQ zrv!!teJHMKILQ=j4CxKF+gtslQQJKAi2tNge||F9p0Ab4_jtBTWJJ_ccaDze>nqA} zr^(oSG+$;pkp0v)IVfT7vMz#royeEIr6Cqp%m@eMnldt~!FN9UzuczrHd>i&(GESe zG9M-K9Pl(swA+ngx;na~$~wD6@aWXS*d3Vr5pn9B1eP#h z?ck|HJcShzxG5sieZfYf-#07pv9c() zYi|t4tq81BECSWt10{(&8{BJnX)hEp(h(}yumVb>hBGm9*6Mg!QljCm{}>#TVtk>S z{b}6t(UXWsCc^tiOUJbMR4Vnk1d&C1NfW2-)w;Sp=h6XrWzWp^kJe{4AKBI+m5te6 zcKoA9g&n4W)#1$M(y}5Tpvh!1a_K%aF=(~zJw&f8!Bl)f@G~hZ4pr#);7dL8_^Xx2 z{4KFbB !d#!+dx!u^F;49ySX+caPy2ZEL*=+)wTe{fYnZ665 z>qGc*m1s!K-N&u)l&+6B2G3V-ZiZnDNm=&Tt8gjD)Mf4gu-NIh#?Njnj2mC`^vU!h zf{nmVKA0`b)F3&-AQ>k5uUP;!8(@-pz1Euh>Mg$k=HY&K^R-^7V}_oP@imS6d@`;7 zWfjunx4AffkzfncpxmcgnD6_rN0~An*B-NU5$1Q~6l%m>3}eFX9;r^TItyWXHl0e| z6Kh1G*3s7l1jt4+Tytu&`1{l$>1u0eu1;@WKt~mg$D9?WB&BP-l^We@%4p3d$rZ?m zcdnR_Vl+6J=$6u+PtQciT9u=&7-2QGpCxhMHcT(2;pwDqyhNy=f9!B>qZDcW=*ZRi z!w+|-S3$8MN476x8QwJr&sL0QTHHd1ti*Pm{qEZKn&j8LbBKj$x2c{VBK7bS&+IVH zsD135H~aA8k;M=K1hra*>k2*dDTd3&doisV>^@8ZkZNR2^Zdwj`B{@4V^yEtJjtj? za8N={rP0`IFq1CDgk)k0d%fHLfi80JrpuXg7-P!J96VSskXvA%oN#q6RqC^{0{_mV z@yu=P`Oh%XZNmKA*|Wxc{Q1)yLqQY_`2H>Xh19GZA>dFDCb&iUfw}f~mbXd>0Rtjm z%-*)Cw0-zZgJs>AIk6E>q^0p9%Q9hos#o#CFDa3r#^!x7N5sPSM6`+WuM9SkO*5VO zS&^|(i>boy$Zb`ub@Wh&n8vLve?JN~ve>#63_mEh1l!CW`M(e5M*8ylzq<<|ke$ zk^cfoU0LJ nFofjW=qhV+=7YCWs`S>RmUKJ(fp+k^e(?sZ*7 zrtgc7p|##d@G9nYQ!kKs )e;)2a4XJ>4@E(`DjQ7KkhsdJN-P+ ;N660@e!%(KiqG4zIS1xfVLm?&ahu&Fnz|I5S8CBr~Bh==4jx` z%H*6NlUB3F8`i=}bqiNVsnSfmUUz|`MFB%cAW6}CY1C~>`kGFmwnZ0}777JQ@_x%T z*g(A66Zk}0H7+vZluZ;+QIQh)GS>I;QK*W}N#)^czX?%rKrglk9NMFkBdtjK`J=qq zy+ns!grAt}k( zqe+v<+`<02p-DcjDbaAhE*D4H_$YM5`%$<&UDb;|q_;J{y0R_nI-O$i$I3nS7C)DQ zp*)<7IM&x+!0M|_f8ZX`!ZTPK?LRYx^o@}iuO)U64?Zk7$}80vGOG|sGh!Th*}J=z zB#2Ab7b94;eY4VR%qWfeADVS{=!q2b&NVko2!jWA~V;hN*)Wm$0h_rnm9z~Nr2n=E8 z?e1ZUSPJ!{#8l;g#*c9`s6_Lho#7jPEv%ooYglTg$)`aCvM&Y(`u=fj&!MBAAKVy2 z19*PLTGt2;q7DY 2BJd!;hrPI)9tkh z?MA&%E^0r^U$d`tgi95@Lt3#l;>Hv6W=?N-+Z)|Pm{Ea?0}MltBnI^5cFhQs>!GnQ zSlV<`8FqWCRX^Q(82qiO!~q31ivWAF2+SgMfQO3c*}ehu5H|V;Nfg*g!cM1yj-)^k zt!xfQas+l1lqqOYXP+;15dS)R^?fQE{>9waw)jw0%@n goyj1*VB(%1eYrztVm3T#e zI1yjmEo0`))TD56QyBNFMihA`G)G#(H97`lB=HKHgIYal9^B~yrO|+TpC#}I(K$J6 z)tCKi_!0>2ugApwA%RqHYkXuhvcAH 3OC#Uf z=*6cXd$6y693noi9~&I}*cw9gJ{NnB^usUC+?43FyMsZOw3}d=`}vGA+AXe0H`r9h z&EKgE#2nQJh)>) AG%lu3N~bo2enJ28)>`=)hxjNVl> zBvDr7A6M(oO_1hyKFk*d^_So5IV6G2SRAw0NA4EAF5_@Xuc^^_-t;u`JP9VEr~Nw0 z%W*?bgeQ_s!_K+ =q~z+E|GcS4!|H!*1xfjb~-;`m}qoZ~3Vs`HuX**d?hZ=KfGA5vH{IGh2BE92wiY7HbmpDBH%|7joU zWURE-(_TxfBV!#=qVV{9|CYd?&9d)YI4uKTy1-i^r0pN*PF(UdBE$}abZ NGdNT&v4=6+#yO$SD zdf%pp>=*?-cuY)A-dHdL*kAjELS0EGkoefki*WUh+@eVQqV3hV-tV9YW=pPO<*YR# zPU{EIyT R6&LPkJRL>;Rj)CV6R?t%mdfR%yf0bYzJ*u$El~8_1kJo=+ zg{3}vJE(Je^_VoZ15+%#`v@4%KWYRuHc)? 1hw+|7k3%yptj4Nn zFUSxN#-7)&rb&HDy*E_r-pUtl!Y|?q9R>u7e}JGL*I~5ay`37JWBRdC41RPk9@5uU zTph9)K63+BF(x05{C7(v@}?JkN_06k{%)W>Nd(E-DYNU!evwvvPyG$S;b?s*3$nl^ z)hYU>QvCzN+CIqcN6$`6x0(1pyc&{-YZIEf{KO!1O+A$6;tN_rh79)?DVi%6%+Xq5 z5@I-=jo5Y8sgYfrD+t}?YHSQz)oOCmzn1??nKSzlw+R;l-E~<_X+l5~48=qsw;2-u z0~M}F-7_^Vk`Fv0b%!wN$~vFFx*4s|{SW1_<1F`7yOfsZ(Fu#D#6`=A7ShN-(YW2e zPziF+ng$Z7Bg4F$A3;}7)@T%9_!RA?hr&-c9;I|7Y6fWchg$L97_pBVj5yXx-)$z@ zRNYvy6!6q`c~7}2knhk(d42tLdKhs)j;J|0dJg(Yj)#y?0(m)Y>ziAQ&f(KL6UZkD z(%5EBGzk2nX!c29EkPqg7t>x(Vqfgiw#M@2$qR&qceE7E BQB7)M57fxZP$(I;;xT&E$7+ zvm6+s9L5))+d(^Mpp==$M$&we-o&?rlmRrS^XtUV-Zz5IKHAITfnXm5Kn+-J4{f^| zic8*;FMx{8c-2$u9Z#rV6FW#ooS4VWMo;n$2W1%Tcn;Dos3w}tUf+!gQ7pbgNZVn5 zOO}Gaew4Yy2iw6w@e4WG2hBn(ra8_0_K7~jJT@>%PZ;mIPyO}OZ@gp49JLD`y|P~* zMY=;22{E**>npUj63DQjN!8gFc)D_~g~?*@ADZ@*sA`9MytDj HKRn9(@dReX z`W8k}(^sh=^EW`42ojrXjedpuh^mbc;$YM%bFq}bTD7DRyc&YKzG+vG2qXQc^dclk zG!(H>z3!&0_+^=Og0m+V#z?8{u$vLj5UiKic6MUTS30v ONJ$AY zU24OP7hYuO8uhR#q1=zZRsL#Io#r~gPNRExzLFzDbwOk}CK!4Y_>`Nvj?R^uGU+`L zp`-MAW@7hLzcC))IMPovrq{2eK1r38H*Hpqhi?;6v^bmcb<_=S*zOTx?vA^ON|JZM z(9*n6b02NwBJDe()=wJ6x$&763be-^cK4%62_0Tt8Z9VzPZ?3omfKIuOS1!SJaX }GdUNWlU;;(;w{_@q5)GXB6UR@2lPTtJ%UBchLB#91xloGe}-F!ctjroNq3Gg%s z?6zG7ugN>z3B=&W8K)AzQL(4xPLM7qM(tnG!*-UQpr-%5Aja!A8kjTvr&ZKQY#&%3 zsEA#8+tl2s@6?&Fq9t9ayOL+9U#VCcy-mu(tKXon#IW~Z1f@$QCiJ-MTb*-?lZt1n zh(*~MR)#PQ_T5hpXl2damgDE0%~>&|15vU-Jr(!MYLBn*Hk^x5=-X6|vIGb-s>)s5 zE^3?!kd0#M@gf~abX=Oz{ fmv zduFXC$~&?sZsANJ2VJ`fS}cWuJH(>Pk<;{;Y-$%)1Dz~2y&s#cc|~(_MXleFdydwi zCll%C;)3i->^>@_aIM~FYWlUY>)Kn?m1YcZU#jH}gl`swPZ3Hs?lv$2m&eDZ8%eK* z2YvFf#F$xQbMT&4xh~Jv1>&bS8FS!&D_H*Br4%hLy^>Er5Peec*WcX?G6_~vXweO) z5=ztyC{DLOs$ZR4H)WgZ<>)+tz6sX|FlscBS|i-Nyr`ayMW+$$gBEdUy(fw|k#vA{ zG3ktCIEml*c%3~%|G7+Ti*}cCVYZ06&nJ&13)1TK=B7nU$RO{y&Zs({x#vy+CDO%5 zm+G%T^_kui;ATfOV^z7_08UYo1Sd)S1dvc}9ZB+I%@(Cv3q(rex!$_o+^y>y` zv^hV8f6B|)=@)?&ekhbq@`ykS6jqF)$lT#>vKoX>r{U& UXMrGfL5*|$}H?HTWPg}i}F@InJ`_jplXrp9k1_ghbS%bK8Kg6ET{ z4M(Sn<$mS P1^UVhs@FqGw4;asCoc#SZ)m}@e zBK&5srZp%z;T2P1(>$#ZLb~wd@WX-mkrDn5hhOL!rwbEmVss3|Q>1VpNzq+fFe`_> zo!Uhq#kS8tVy`s~-|XzpdvC81nDe!ws=MUxE%+K1UvL8l$+{gG^ijvnx)sR1NNDDj zoJezvX<&b{Os#gl_;S&T7qs7y?~f98RWav$!Rx2Y-`ljoZ72C7_Po(mkD1&0 -9PSfe*pMHyrd#^%bf0jL!KQ-BBwSmpa5>{-uQn%mUw0+F@ zrM#t2!}|eG=IJceq*sR1yGAj$!~t`MgC(Vg1$Q3R6=q7OW!0qNEpwqIvcl>=*z{Q( z4{s>Sd`G?i8GVrO$02bn+vM;<$xmTA-i-&%>kL&XWhYHoG$#KHGL%hT{BF?NJxQGv zMB|@T)RJ4bA%WiG#E;M|RM#f!45DQypNOXYIr_)TE;Ms2n0;9hq^h5%Uas-Yn%V1V zGPalF;K}T@PD}TU9It!>L%^-W2`|?;?-7#C9mV0T-x1RMh?jq%ef5_&LAXnHXTtR= z3iE@O1>`i0OY0<-adjE_mZq!G++EUo->Tx{sJcEN1$HZ&?bbRWX; z@wGp!?4ZWC+~dA7`j|oQiLLIY>pd&Xe5$MzU2Q6> jGP~il z*}a2*i4>k^yle4ODeh#+O^{UE6Z3eCpfhANxF|Jbmi0jKfVDz6YCG{)7zST1vS^q3 zj|l(4LRm-byCA2z*96vvzrch572=V#;ox0L< 0`k_2Ij%&p+(Jm%cMK$Tnv?s#3e{QJDm1T zq||6PTK!TI>fF_^CDRbOn}5=y#1!j0?e+y~=zy2eD^kn|!_}pFhEOE {Z$Z)bs6?_ z(S&sMM}dkXHWrf$v+6%j1UU6=YRJb7c%8f01lT==^h^sk^msi750hel)fC^j1|#=! z @NQoaTXedO>$lxHY*(B #C7%6UKhPjB5HxmY=aN0XH5cv_ootM zxt|Mq4v-H{YgIq)QMfypQcl<}wK64|p1iFRHu^rc2X<6=;a8?8q@K{ME<6@NRFG3M zww|eY-uS5oR!o=OM1zzRxtrp8!Dk>jEj-h3fm+m({fnti(~h>s`=YgryLpT+#kWL| zV4K{RC8OC9gVwzRbSkEUYi}UI-J$;62TNf?b#~^{eoTzT1KvTHk|eJ0?Wb}-m-pDx z<^Hr~bD|;Pt8 eeLh z{@b)FTC{|kuAm_)A!PiYTZ&k&uwhdeXRsc*mqJPLKy#o7NAow4VPU+{p;-nrQDUDE zl|&rB71ve8wA$1|0*7FE|FRkaU<0t8))Wch?tgO&b{Cy*5))XYrmJZ42IKiI#>CKv zo6LAV7Mhp-GRA$&pDWZYsyFM%GS+$Kb`hPV-k$iHO RJQg*yXU<}q*ofnkD&*6eo@02T{Y(tYOJywndPTm_(+oP z?(rSJxgHX0R2cNkOQG;&O!DkknfZ~ih1 RK}hA-W+@I1qJ6WeI@mtY$z9 z %-9MhAZ>(gH(41hFTdl)Hn<11BQ^;6^;4L>+{q&^{)`D(}E_&?iT3s1@`Yx-7 z88$Cf_VK*H3z5Ssz99Pi` $C<@m43$9S1bsBppBg+k3dQX9E%j{ZD18`+G<)Z>Q$XIJ?C z#FG|gWu)kY+SpL#Z5j?jA - z4!!#q0!MIY_NVA4)!!2jV)C3Ho)L|2Z5>2sk`tSPcCF@ThAC!_FY!*Acxoo*ZP{J6 zenHuNG#P+mC3kJBe;DLnbAG3b5bQC|L3C)iu;2ojX|;LHn2~NaT(4Uec+at6ZdCvb zT-s0Vi1Ip*`#MNV+S2$O0&qu`xOju4;o5}nr8tVnxVMU7OWi`;rX7AMnX0Cc1)7M# z PJow_N!vv{5H9~QyXML zX|L75vv88~AOHXb*r&4~ncV;30{n{@@?b+}N&k!lZ)%h)l+u-=*x9syU{$wrF*M41 zJXC;pnAz*stfIKlzxkK`EUQQ9qp;sAFx8NO3okwG@_k?Iom3=yd<%%!=br;nT2Uu$ zux<0B4NZ#ouAhV?W{HC1*mg?GDen+
QKyOI{@ oN~dJQ(!1Ym;3 s;63RbpN1k zF#PXWDEeCYQ4uRT3moJGTaQbHCqv EGc3|Dt9EIE>3Ap6(p4u;U^NW-n@Ti zG9zl%bax|hM$Sz!olSvv+kpgaP9Vk}p|!=J`?JU!CHcla-1U)LqUfN#ch(SUtJr&( zsgK4?ZfhnE5w01No*@|jDqDN@N@Hm^yPq?BNIIO)gibqh{B7njgl;r%npl3s?x;Ej zK6gfL1qz*9&k{p9gv;q5;+IVaxJF63{nb7NE+Usx$BsAZpg(#~OQ7ew?Co>y3sG06 z9~eR^bHk;${7VM4+$_%TE73MMD0#8J(jz{Ev3d_iCHG?|tIY75z7Ba3<+_IZswm*` z4f&nCnS3}F5b=iunpLD#`~a5}(~y#rcyob~LHuA_=R`&zo}mmApkRr}Dg>M}7g#OX zP&u;!gk3Ee#aB8M0jOL}}UN zbt=sXDa9CShfpAWafAIIkXX7ED$T7f^Ld$H9yvSxxb9=27Rgwhmwogmn`4`gkk4nw zAwiz_J-(j0e`GVyiWdDsAiv)6%7( Q9o=V)8Sor+e}}F1)(L|`aqQ|LfhX;l4qC64wsxJ8}dORH<5oC=mrM8u1xo` zIeV!;fB~U{BnlovLR1~jgOM8)_+iBlaa$yP^cVN1iq6Q_>f4j+WyTD6k?onoE7RNd z(FyRmIbDqlkpyi#@eC)OP)4fkNa*T`%ae1Tf9Lx&c-I@xj}_BKlq(-_GX4P6!nOaa zyz8M5J2ow2_|RaN9kW!Wy)^ymZ6PZ+)$e9FDTaeol&j*sYq!$@Ca;7A>6P!Wm#ywG zh@~|&`c{|W1PIzBZy87uK!*B#po;E1ngp(4$iqaOly01Xd}7{uWu*O(l+~~MuH`{M z?kd*H)?MisBiP?Ar;z-#^H(n$ uE=aC^l#2s9Px?K&~!PgT#e%`Q0GtBFOK)J}hs z%ZcK@MHE5hg_dQb!3LnII_25+CLxy>IR_hHICW6xVl95Iz-)4b?Tn|XJ;QjZ8=h%w zQ==vq#XgXdpy^xN7EmZ#(>0B0WGc1|z?+QS8Jc4?d#MDgUcON;vt3>` z!c zE`xeV=X-sJnsLfq$;+GuQ`xKlpAHb5&QdJ}35fJJJQM_B$q_Rp(V*~OMtW)_<+SmZ z{qoe07AJ>8q5gClu xhm$Yo_a~~;y!HbBvJGz{QAV3k2F)S{FZYs0> u$FvN;|I>s?S|+vXNDH zwbVz}XsXG$jhiQt&~2_pudf(dj ;Azn3Qf)Pj9KpkIgV31G#*?2F=4Nlxv9l7W9Js#} z)7gG@06b(!UYl6_B4$gyN(=7l2Ty%ml9J?tpyb7Y0I3+i5T %vo*5Zr|`*A%gG@oopD=X7i`}9gTs@m_+vC zSu#t}qci&^zXxWK$8C=EWN}C9S*~pFM7QBy+gJAbyA=CYyH(Iu@z0)1Zuv6WT71yT z(GVP6n5k83shI66cwA5X*t!?@gsR4nHL8%$Ug;g9im;c$Wmj`snMi1ssi1?-G~9qx zG4e6uq2v9(1LFEdxfR(OD&h9&hU(tA=Eb1*%iDMTWKCF}P H+UK$ReY(jx#(+3Y^tJN#bp7^T2jY8s6s@-w zfAwF6T+;__CqLR;K(D)K7mgaPMJUdb9tCc no^!N zQ!m?gpc0FjqzrJ)c{q>@qr>YYrkE -$umZan6ql!yxIWy=!l_6lrd5!TVXK&3s=6 za1it9EQMiJgBrt!fd{g-Ty^n6o(QzZO&Afoo}JCMwE{vUm--%zC=R@PWkJPa`gsPy z1smB{<-e=8H}7uH)~Ncf-c?WItadxSjm62l>P9bl J%gN;J+pl(cHQgGfJyfp&+yGW|{MeQvX87cihxpUD`sTRbd!$V=cst zk2<7P)*X67ONeF<;d^J3)w6H3e8XhFRQnQdcu38lhCJfM4LebSwT*+6rY5at`y(*` zZocHZU@}fuq!>Ue6f!BZIT#SGYgTFs2;(Kg9bDv#s|^fHKKQX*%GR7W`ln91KQu}w z)l5g7Y_lDNW)u)6N346WUL^V02;R>RcshL2ybItmR%JJglFB^Tg0Da-Cjuy6=skZt z!QNwaVu$tzWadG%o;OA8W+M&1n6i;r{41)sscBY=2>4=>5|GkC$~!i-uyK6*;DA_Z z+zvL_{bbd<%Vh-vp~w@Cp@}1afuNwCnmm4y@?^OatO7Wi4dYvURK^NKNrGi7rTlBr z8+md4w7Z+x%V3Oo^1rWGhj^ VhmzEHy=;1S-#EH#~+#Xv~tTEG*i|p z4DZZvEj%4YVAGh~4pUsMX$IvjpGm}gSl V=qE2r<>Ed(MWLU6M_xIWp#3m;VxibNZa(^o!Jl+2gh&091S|>JRqv{QZ>`uqTNcfX zs=3mq)c1vRbV4Z-I=je8X!|%hVMYpC1sbDVsKUBWaxW0SrzY37j_gq2qQ( dJg1EDzmom7sBxw~+d5NkZJI<%iN?;b)Ziz6D<=aAqXXIIKjbHODn>G} zm5NGN%8 ZJe&(tKO@eXENo)s!&B*k?6vU#_7k@aJQo zOTdi%W$S`aNLOA*ZQlH>8`&7n(do2>wCwu0mhYH{-6>J4ol$LPX^y6U(5c5lJJ}0k z(x3%F;rRTPiRqZmeDkr_kck1fP$V>}oIK9Z(HDwtvWOVug1_f=j=(G@9(u4E{eL9k zLu4C@c4%-r7bXPbsehBhU3hzCVc=d@Z#2!XA20IzO 3gt4A;Kh|IdZVlpYi>z4ln6vkPD zg6L$;&*+g6cD=uf=s_tHFW4X$4<$Ceud^jH(r5K?hQOCv&a-4}SFVy8HqHn0+3V 5D~epH`6@!Dx97hawCr>DAUcvAb?l( zPL3EZx^p$G;p(fiA<>%Lf7G<0>YRr6vmaYvs56<$T!z!!dPDUF2WRGSeuVIA!?S=N zhp$*@ ps_aKjK6=5LmNGHF@Gqb(!ue(}J{`3?+p2M* zMf4q2xM 4vrq#;afYWG53 RV@-z*N2D<5~Qb|{-kpUz588%1hJe^p9=4%`7_#~ z2r;etYIqrY&KGj~J!u&J#}U{5yKS=pe>XS1cgV>ey~oB}`N42kjvwch=s8)X^|5W3 zdlH0 V#Nc&RIv$?Z`xB%TVtrTEDsh 3(2Q_2Q-i39r^veoN zkBfTs#*z(`(+?YivaSflj=zGi^G5YUYdF12z;Bg*prU@+b@|Hzl v&A2?_bG`4Z(%@r@;We))Fn5sU|^}@)$EDtH!rGM zZE@ZVlPK`cy5342xd?@f)RczfNi8FWKmyOuqJ)FeXtmB9O^ sqPZ_NBZ<_jc~3 zz`@Av#F@;-b*hl4k{#Urf*;XciR+i6>Pg4)RlJkF*|@0wbci$a7Gj#oxWpF#_XxU` z!in7ix@bZ8a&KK#8#x1)G>ed>Sg{+5l<8YUJbYvGR<2gcCM!Z$PFw^&rBc*!$->N( zaWcw%nv@~SMKJ2(`aT<}^=uZaBm40fcVHVQT#OQEwk^ w;nxl=B5#lc5 bH1scySiNTo%op7@B49n zlrFk+?Xjr#O!+$hu`Ef&pA^!me@g>dF;;l-C}NXh1V8-aqdztKky8ym$S8h!=N*eE zwDg552>DZ~L`D8PCA8mPdPy-HZQ`I<)Ux_fUBoE6olS{=^Fl71?aAW{GMAFMnfy$X zV_gS##(Dkmlh{Y~knCvqw@tSQKTJ TP`ks~~vx6jnv#rWq81boOhaF53NQk!khj4VWB)QYUvUsGuz zjM~Y1EbuxcrhB(#TJ5y&^G=>dL>L3!^>B`1-@2l&-m$_OY^#trGWhE3zqa0(e2H7E z9{`GGJnmA|t)k08zsosyvh%QY+0*C~)YYXJ&G8bhf(+~4{$w3rNBrmUT4 6}pN)zCpxG#Z)gr#bEP)*&3)F(L z^3?%FIKAa-2y@%OS<$k13BL}axX-9wq{+4Ga^{gX4nv!=4VK|yAGV+bJhrUvmFZM~ zg&ZY`B5WDKC75mcn>8g!84EQen`Cbw`x~xdO{4eQ$em_*T9i6uTKi^`{)KM J?MlV%DT$PSN#iHmcS);V97NB*^rKqyxl?$R-7^9P zM!KP$XvFN33M=7IP zlPCI ?EuGrYhvx{l->1q@VT}MiPsdXY3y}MO3GRdX~i~cH!e^0h4K@F5S zA#@g_@ow(I?)x8*DCYD&tGX^rj%!EaB@VF4VhAZLy9{qAbmz~V+|FC!iL@16c}@Dr zMgQNb!>!4UAo)NDgCQ}TiRSa1>;YxfQ@ql@Qw#8660L0m`$9o|s0AQdQPWPwOdX5P znBoOJ-=^F9Kl4F4^;`}QSH_t02|FfGEC~;szq@Pl6@Ezc7Z7Hes>vPrhSr(Ajv)ar z6qk{r<=xoDju!d)T&{(LsP-;`U^(H9yL;`LmnZ= vsw; ;< zzZ>uFX>YhEM;OK3JuZEBSt&_WC9c_Ob@lE?&9xk*OZ+{*1pMnLpnoIxoYaJJW<<(w zv$GSP+*VlwQ;%u-bqtnOC1YwH^1fo{nUc{qyD#X)Li@jbl$Taeh+VsCCt#N4PF`@m z-cmXk_gb#A`+8Pg&G|f)YdrO78|LSi7cdZCU)Ixs)B&NrFSY(M*SU8xtzUaW%25gL zFNnj$4C)g6r+WTXFK5z j;O&Xz7t7`emObJQ((t5LD&rCF=jX4Y$xCFmV&51t znieiy9&mbJPtd%aYZdxh^%nTJ84gxK{PnM94>{ T_(`t;O2(UF~r }vLPd19 zOy5Q>z{}*@ffVn5y9ez}=~&9Ri*YA=-2c!fN+BQ9OQ7|wV|@AVwUF77KU&}!o^J;s zTJ-&2qubJRJ^{V<*s{pc9`r1*Ff8;~o_wqV;6T=!lA4o%Q=*&?QhtNQMShn(Tvs<& z^Jz9VqgXTO=Qq=^oxj&iNrl}BA vJ)A(*Eq!Y{bZ3_Q9w*Z15{+bkdd#eToU zQtC$*_YD05_4z6-U+RAUP;kAs75tx!w_pR~t(RAW!`{SqN5d_$ZfB|PWC`2V$a?$I zzP$koDP_-kt<}iLvd&JjYO_}|QFEB(-|keG+70yz2U2}d2(Vb)_K2OUG3h%H<)Tl$ z9FamPyHR_zr+bIbwny(|E6)j}cvrT_g0@4E-q%0O#x`S?SFh)3zDZ`6#tNqjvY(Cf zBS;2;!VGm2Va)pd&DrB~+@AZ*9l85G_P|h*NY*fAO1MHOrH1#n&^2xB{5QbdGS}iN z$7A%N=n;zwG1Yp_ze4I3TC%YTb?E}j9vdcc-?j;ap$u=4Idp}SG0gj637o3(`2I|q zM5aE}AcrD3k<)@(ngTMGJk-Y&_eRMF{;}MRuqaFLzCqa59$tcf3lLl*P98a_Qvh23 zvU|v9z!uIC^G1jOUIGhzx}@|A?Y1Lw&JzD1aC*H44-FeBb|1*L^?dp(P;G#hQd|Y+ zNv~9%t5sJ~OU8kiL}E1(oEY7i@33t6JLoy1+rjb-r74fV0cVCt-V~I|Jjz08sgm=Z zr2uz{P#2Z%`NH8-0e&va4;FI7Dxgxt4Z?ZsFGbFwlt@(0+RFa{Ho-+$_@0LqBDvpA z`@19P6 <~GlETO2w?LW`J%<{*tY9)jd{N|O^bHq3B zff6YciJDwT9^9uEiLDEp5=Zg*KE~GpXNC*UcMk`3st?>5&rkN{m>!hyu%xz=C>E>B z@&5}zd)D5dR$vi>T8rwGPITk?y7T`1ZInHKw&(z0dq&YN8i*9q=+(YTGl-8vgBl1j z?56K?F%{BCX}pe`jAsGw26UV}^KSfW$)0&EMRn*~i5LKl5!Z9W`7Jv?2F?Jqp4p3^ z(0e>yr@3E-PZEf~$;j>lYN|O+MCUO62^YNGffpZMc^; D5a*foI2p#j 4C&p>6kvp#hv8_R a-_c7wm;t5 z`Cm+G8D_=-9im)V1+V@l q)QZgh+TMN5A;@G1`}xn`Mq9ltIAmyrh7B#-5&GBBS=wsdN_wKkfy1CzUSV zn3Mn6A3j1M&$5o1RSqxcQiO6znBmVWFU?k}nPHPUU6-pPgLopY{$-sL6h_$ XA0*(o z*c{Q-)%B%e8!g>+p*?^EG)nP&NKJjn!TZA>^w=5%Tll=}!6zRP`FTNsPdM#=O*8mz z4g0?io?&ROU#lJup 5?vKgFY_i|nD~#C?d)OsddYx4TV55vj#bhfp zUu)B~sDsm$tTSStClM+1Sb$plSzo~ClXxi2f4;!yBmX}SZgYhnLm=p^^3oC-;GF;W z3I91L!K7VZTi>Oj8yVRz@^u|dBrq8o(`8qCkAPR$y)gFb?hjxYz8L^~!X6D>K;_6f z5K>WPOf8A`Bm&XU`~6QXC4HtR%x52jnI>a^>I0v6zYQ+tF92XJ!>3~W(NwALtiW-- z0m#==mR*ZJcHs7*6Y9P^a@{Fo-K(P})Ujp?XP@yO=*TA)S>QxGk#|<3U5kEqKS&n> z7Tc0)6Wr)8cE^TVbcM$EeB3>}m=Z(A?>-9&3Ok~9?>ABhTrRB)wV2lS)0vPr`YG Dz%#$o{KsrW*Gow;6 kIO^mZKPhj#2O18gh<@{L~3)$RMtg316TK7Xbu^ 1P0A?E4((AiCeveqF*n*dSn}fGW!48=jBTG-ryAloPRey!= zfs@deCdyWy)CV7wyNHIy@m$EtcaQggtcmjL%0Lx01DLR1LqoVcM`2MI&rD1~l^=s^ z#G3&2y#FmVx1;_cHAOg3IA{sb8^1RHP pZk|>hW%rD>c{u%eQ zC&2UtQ8uuLF;Dv1$w|O?JElt|fbd@}hmZSc6%o8H*7nVzV!4}@g+;e9d!-KxOAm<3 zvMQTE;*y-2gAQRQL<1OXc)Q&+Hv?Q$<&gk-ctK2XC3; gMTY3dn)m$k0$P z2)I(~>|`ylL{V4WPGz%xQ@9%g&gT7g_JKV!i24ekWa~-DJg)jJUK7g?YKf7HewBbP zxXcT49H7Lnj9kYL)`Ye7LfCULrLJC?7J__N%QlC{XW~VT#2|wDy}vHsC8;cl1PuXX zFR-c a>u{^48pA3P%jv>8=n;?@O$sD2fgL*7aU(=m<(Zp#*UHZH6p`%1?7)N ze>R4_^cA{n&w}15#8R(5Gzv2^(9598j;@_&)nL^9tf-|6&Z%^T;<7Az>0(WU(m;MQ zv-W4z rRP$6YT^hf1pd 1wGX*FI!esSY-|3g;GtHC-R&( kO`aomgdlLY0CX+%XJP{m*vha82cF z=Nb=3EW8o0$Dk3VZ(#0JUNVT*fJ^TI+I@CwSkYN0z+!dsY_mXUk(Erg<2{eb4+y@; z4&MNQS#G$bf9xtTCO5*J`50GaSfi>eo4`3jS0nLRr@xvCK UVE~rm{WuV2&magUwl^W9|J{eP=(CF_!JU}{}9}Q2?1P48o?2pTmP5_ ziw~?JpA?3ZKV-+hI8%abSZGMbJs#Nz@cXgF^- Y%?EzrA_5)M!40Leb z^#YE4JC60H3rp)05X?_BFM-L9V{#Di1CDyZj58n+|Lc{Ak&5HQ#oss^zEWRRZIniy z8SYmDp&^hFZf4hFh#Ta%*6sat*+BnxUaG;q;ymdH`M_t1dEiHZ*I;6`vYB-Zw;qe+ z2PHpdl3L)fYdjTS&rut#C}lN<82UPZsRw1<>r6jAw^Yz?Hd*F9zud-vc%?4-47*HZ ziS4Y^u@yvQ9HLa(RYyQ!tU{-Njeka9Kq>ychJGXHlX&}{(j^n<(W(RHyAP>q2JZ#- zQrTGg>8!4DK?RPuC2g*~p_sQIMriaa@bc3RC|Ex;UW6JGohz z{OkZGpXop(>e;??q_dMt7Q#xsy@S9RjXGIxcwSE!TyW42fYrvKX z^nm5<`<_<$-7F}ly9^8s4Q(8Xh>7~B7bd*4jjy$rlH}K;*E;x23jAg3uS*mxKVnxd z^YYg6I$NpWMdfBnF%|b#umFD@X@5s6x?;l;A#uu0ZLnD5HjspgBnjfbGs|z|YbY%8 z2%27-)evn%08kmdTQyuK>Sv$`rvXuJ{KtS@lX0jZ2drClJrF_6a{CSbQ;THFc<8 pmf+Kj#=nJ)3Gfz5ODu%X1Sn*Hf{<+z0;tfKm=93^!2zKO7|| zUTInt+1bcp8FLD<&z9@jCH@_~Kuw;8 n-@=>71=j{1$flw0YWA8uZBil)+QK$kNq+GTLVa! zO`V3H1?P%He+JLdC!vPtq+cf7PeL&hf6<4*W!U_=##& J`H;@^2voH* z5Iqs1AprlnmDDt!SZA-L-dM>)nr=6JY`EHe59g`J??l_a5NCA#c>&re_%b7s4%_fE zK$JiVcYUI=Gx7D(enDdRL>_qr8Lg5n%FP0VO^LvbYLJdjeA911*uoUNzWqCQ-uW^y z_eJNe4}Be%7l>s5)4y#eV0*Vs2ClfJWuDh#Pa|kM%vl`7+`78+p(9%(??JS#1|%v~ z?;jon9wTX}WcvCyi3XEoTL%vO%jRscAW`m&?wFN`I1|3PdR^(Ap2N!S5}*DrIE=`l zl%Zq*k@&By!w_&|pA!*EBuOq%SN=~@LdhKh|33$D{{M223bOJHZH*xQR}S@Z<34B^ X< i^lmadRA4*fp>6SpVm literal 44428 zcmb@t1yq!6yEcqcA|Q{Tgp`ufFmx-Dl7f_^Qqnneij>5Nl(Yy4NOzaO&>)>d!vI5f z^I!Np@Ba3`_Ph7L*SG#z3zV6;@B7N*JkH}ht`HR^8T`AC?xLZg;mgTNs-mIYjzvSe zm2d|Oyi-1oz5)KZ<)|tnfmYB*v4)2B7)?&{`D@pt4TPI#6tv;^T9ddY!zrM|srdH? zT;^yg6;cgM-H8VeC`sVYVd)W7VHDf;6vMMgCK1PX1dd(dj<1{isUH3%iEUCUWh#lm zB>a@kgef$W-YK0)aqpbgNiHfjBSTJSMwx2NUthBT)pcw!$dc;Wkobh3e=H;zygH;H z=owjAK{XUK;58VyyuADt5BfwByfVC044H1;y_MFadh^C@3BSynYcM|EmcI{PICn5( zZ$2md>n^Jl_?+(X1FcWsbJ=H4iynZ_BYppWzrinx_1k4-U0p9<%F7o|ZKkomER9!S z0Bs14h&Xc16E&FKTi)5QePXK|eAhX$=0}rH!>uTWYFk@^LT$Cl^Yikw9|f9{OR7U# z=-q>Zs)U4uobd`bcTrbYw_oWYE2P%lJUyfGBJ@sp9~9sBSIovjl8E74{I${E9oDH9 z%hBkgD{t%U9Mr@6)x%}yKkaG}Gb`e)zkdCC)VouLM4hia{he!#6@zx*;9ysXTshiF z;LWUWG$6NFcbAf6=iL &TdJzt+@TbgG!I@KJnUIHqnOd2X@52 ^ik&d7H#*=g8;?f|I0^@FXi4j)cjj+cmlo_jTcj?4cUg 6fgtl&@sAu{8L`se2TFpb4o{ln!GJPS7w~wKn~UqFVn0I-Qc_HS+f@_ z{I6fX-Z`4GEw!B$Tj@<~pRRVq!Nmm)`IMdg6zm1g#NKk0X(@{lITe-C>(>wTYMo8G zqM3TWa`{Vz5(k`o@~kxJChkiXZnyP0*O~Fy7PaEj$quEXap+VtTnlQvSmwZ^7Mn&H zMKLHYgmN^X>5k0N%0$pHFfe>=t9>dHK{4NWeco7oJmXQl_9M~t@^Fmnk)AD#U9X1I zVM(^6qy+8cV!uD0^R2|wP*mlt*WzPGd)} F7Su5NW?Bduc qcAs-8_=%I$dS|;Nipa zY70Bx)awhRq_i}|X;sCh@zPn}b609`Xo!mxuUxxGc&o}Ez=AZ4igIC4pCTwOFQWy= z+U<_Af3t71;m#>n`annH6{>L%tbo9KlwF{UonYNpU!9@+UrmQP%r)I|aB!#sI}A|) znuuW4t@`}w(_J(Mg|E-RBC?E2=o1aMCb=IOYSz))3;ppY *(=@3+6QzhVdR|@*z?q(A0ajNhq8<=h zySlonLh>9$zsaZI&;K#{eMh*=to=?ycXM+~V~0ywT0Pr4^7KNe&b1C%pR-No!jKh5 zd;f|TwnSLL!91F^{aOG}M KF$G=H1U_JSQ-5SDXJD z;M$A-#NgPtxVW(^?!N;y#lHgeq;vnBn+UD(V_lbbuGNaq2n`SGMRw=|o ~SgbFOgHpLoF6_S4(qk OB
MUy-0XVM%ZF{4!#24)4; zK6CBFhRLYRWpc5@&|l1auG5%O+7MP|{D;d8mdqFw2i`OW_qI qh%$6 z-=0-`g`{YsyU=Z~naMl3pWL8d(@3fSy@^e&+OX0;=&b5Pha4H!88q;rTOV!;%lJA! z?t6u!O2MT3GW*%q#778Z2sZnLhlRq+%098}+&?|Ns4z01GP72nhByQ(pU*-Z?ri(i z#J;l(8QakO)~{)xl$NVV4~8B0SYX_{t8 bnOn b8GquWacs!73Q#p3UMj)V{uZ2_Gj@MJ(D(shMJOq1eq} zz5e7E;E~MQ4}~zb#8mev sRATsXKErZhl^MQaTN(8iN$;FDRQ*_4gcDO< zk~H%E{J~54Cz(3PNo(OF aONmjRWWp0MM_QVuS)oxY?i>HYijd0khrOp7vA zqNBsx`w}UxhM)S$l>eSp)^?=_qgT2^KL&Nk<+E|n%ptX_o1Wpj%bvU|(}wTdY gQZ=Pjc6 z;`Z =aYXq||xC z5mP-Jih*-*x{kV!?kE%gHO9nj@1<~j$ZuM>?+BK*jGp?E`M_tdVL8+9egf1MUdg`n zG)eI;v(lrLf+XrA8?dum3*cr;XD4+H6?*kr2`su`3tx iCc~EQh;#i<+jCP<0<4Xk1880UyLHs>S-RLpZ6gfw%xB zV}U(?Rv2|N5rM*!YRm5akB;3PPs-(sgqBWTklo}x=CS7t5zAm_6uY)fPNvzoAIm!D z!VBWr;GF@brZatGpT&`u*)n+H5o+=A?+s6H$!y|@8X!z;AdX~Y_xlQ|lYU(Ubf0V! zh##Aer>nTH$M7e3 EUkge{Y(y~*O{74`>v@bVkUhb*2U7Wo>dmhzn7Y@E{-if%aVd`V7+e(3o z4dzTeR{xXE_43i}GXoqkU5hg)bqzp%4W0R6innrlF~C`sbdZyrm!sI<3Ra<7Vzre8 zMdt^ifQ{+6_Tc8r+xj*JJfk^`zwxT8tNRWP4!()RgLqeF&^Ai=DKE3!KQ_y0-|M2q zFsWZtBatOLNw`b$2dtN&KRUM91WAy@#AfT1T9(0n&{)GSoo=hA`zfE^v(~F{s^V EB;WQdL~nAHYN* zM82ECE+w9AFMsx_bGiM(z{01Pv+vm@Vmz_yRJ}(n_$&Br%U7QHduUdC!Ain7bO*mB*-f5wYi%JaQ^!{N7EeNm&>o}+wGH))DmONaK|IGfQ(Vu; zA}FA#*Ml~d`wK~$MN^v!$&h#{0P~?EmT0aX%@TY*l>uum%Jlr(j|=;+9e)?ff%`70 z5`Sqb`TqSwoW5I(4m>;;5gSwQ$5L4JL5^r^ZpGe+Owdzc%4N$=c wsw9mFv<>s= {f6ca<{_|rS z#QG+YB4CZn%LT8tjEszK1%LW<``e(#1kKoE5a?-AKFqk8buxAfdY;@NxN=~Sl4={b z;?s9uRzK5qqYr`&E6Trqt*cOo#eMs5E2g gGCC_oY$Y_lHOD$vMOete~1hv^Uf%um%Nv)q^QU{PfS-9dA@F;$# zZWQuE+!iomJxh{q#m9^Fx8ck=3F$0>EMD?asr#V?76FxluC8u&D3Cv%6R;93EL!?R zgon1h3&~K+!dO^%M>gCj?xIi~`l-|`-WmDe>==dJl%#pxWCZIm-Uv7Pdbz MCH{z%`461Ox>UQO)c{O#*T`%x^te2IwZ; zx4-uwmU>?rNCv|utSlg#Z(hB6E@#e!sBwl)>FeqBg5@r!w7#WT0SFG=gIIRGuIyLo z(`Tf?W$Iva<#YV4L{u {JhjJE6c z`_ST~>B{~DJD!$_QnSueZvu67BxgeZDKsxqmR(-{-M-6gc6eqP%b%^A@V47U=j1$# zI8R*acBD5YIq|&VPHzyYm}k|8m*$$oH_WS5SxQPOiMhz|GRN&S{^v{D^GYYf{U4MT zMojsWpLDO`ry4h?wZND)B&YRp@q6D}p68VXdeOzv8kT^3$+2vDQ>Ncg2|7uohYy*+ zRioXB7r4yNZ=@>O4yUbQIWl?km^{7?raYZ~j@?axKN0a3kEw*F5EN(M+`xo2v%HHb z&r(Ows61I)yTOEG ejs?b$PYhh%r#i4`rv|2f)3B1s1eYYp4SB!C zGk;}#Mi9;j>5_EINwys$DF(NHol?$yetqNk!9G7^3_(kyEeqxt~T@VvUGijdVp>ou8Xm z8i6rBlKwM{Xn5pPWKq?-_wHS5smV&kdu-eN88xAW88=4m;)lm~udPOyNAvq>o;*q6 zN|%Og1d^j^9WGmF6za)XS>Z*2 7qYO z%=A1WS$C$Egqx}=6~Ndx{WySSHCK&{F6Ulhkk~Ce0Zh{rB};R zSP{SC0XM&6L&YCkNy2J8wk0ZZ(A0nWz7wLKdTplfdR1*`kOH3mUEdq^M&Sp%ROnjB zl7Bg~OY771ij_kV%~ w9eYO^Y~hPqZZNBME`JAUgD84>6h_M(sg#1L}#k zJ?TD;-mUOf2JaMn{eOrd?fy=4j-Xd8^Pr156&t7qvSawhm~VZkfr2TM#bh%tNd= z06|$Zf|z!g5td_xS^g6}zC8*N6l`-R_G3G^N?B0=2`PH|U4$# GCJJw@1-ouL{IwhTakgN~os7VyDD}o64R;MJ?(x<^&fl&yWn=4G=u4Z-@ zHr0VpTX6=H;_#%~k P>-(|ASg5j2 zb&WE$>X#@zR9hPmx>QwFZ_g2b *p_SblHi{^)y|sCFLD87i*)GR>2;mLTm~Z_&o&OA+bxNdMEID$6c94eu*{4X^5i zYyNF$M5@5^qcH=p^2yLP#>+#Ow&XI7H#& S6b#qXBQ4yxB*DlibCV;?Y{ zqrw$Z1pMezS RS9G4Gl%s9ZUXF(i`pb~wfv&b;`JD$0p!7GqWZ?-u%yz(r69ZjpZV4m5}T;B zfSH!}=k8qD{Qgn!?q)UM3^PLBB88iX?#-xej5)KGK!|(mou7TlM$1T_#VZ4m9w5e@ z9umREj_#!HuT#5jM8=2J+vAm{dIe(p2olK~(}{W<8K0Hqpov_qri*Z)%&+#wD(?^w zAba^&&UG0=+dj0t!?|et6f9e7%=3tg^i#c9h1ZbzmPZNp_4YC~8D9Z+ Ps^&Z?A80STV>xPBCr2oM&r7+lW9`B&xLH-drME4=lR;{@0g!h1A+~sp z^oIKENANRs`7;VZ3ZQvP|9hWu`__!VCYe?wvem*d-;Cjxrb|2mo>(@i+dj6THVZ@$ zZ8gPkvC6jv=leotdIBWzad9#o-wQvUxE3}Wy+ihqP>fH%D|W?*K{G9lAC5N0i~-Sx zQ1c+vbo@lJFBVi8o*fD@3OANITz>77d?O;>3PN7O7lT3B7y5?t`dK T0%7+ L~v`U6IvO_UU7Lj)yl{ z7KU##TEu?p5Yp=2h8P}qc9= V?s`{o{A4Yx4wQCiYKpvq`aw^Riol^ z0Hj_ErXL}F+$;#_vk+!(YVZ=1 3gVKB{=xuMqDZ zP?-l0L}?dIHD`pu+wH94OHSfW_u)8Bp$-s+k*2eK$6%LAfof4iYsx$982ki-)_`Wc zIC8{F@F#*G|HDzn!m=S+tQktPg3Tv3<<(~LGMRshe>gvx6R*|ty0j|t0?8U5O(|m* z=9^qT?@I0Bfw;UL%Kt01&$&ostoenP$T4@40bJko@snRoYcCna
{2XJ@?Kq_mKkrI&P;>7K5aU1Yn?{k&`@(-!w%ZF zMrHDC@ZK7iD@L>pa)+j|bwt6i?+`xOJVdMTdH8<61JCnh7m#mU7#C{=f3lp>?c#kW zB)ID3ri>ZGmhHWgp9VM0z$ts^wq^4EXKBwK`qr$5NY|>ByBy3 uaAzD*6mA@G E#>Wn zE^+Sw?s!vkl3s+ey{ #+hY*6pXX$5>i|UQ%YM``GPSg`xjRvJWJdJeT$FH+Sh*38;rqOh zjDAA)9TD)1NN?#+fbs*FqH&pV%lhzAyx02oy&_W^E1y#cXBCG<;7WY)q>^_?ZqVVh z^*#3nHN^X)!YilHQ~HAE)8wdT{Z#H}*JpGm-d+gdGm 5yz|yQWXTD29XxusV^urJbp9Us1^*!Z7 z{*v9VQTdF?HvMkJ7x;S@Tt&Hl J?W& zK!C{UK`9=UNN}@1)^5*!so)!xIp;it4YEzJ(6DkUUdRM;Lybvt$Iy0;J_J}@+29Us zr@XY8c@79W($F9QBn$?Vj_^SX|Etj4wZ 9^ zfwI_<@-(OMonwW>E*G831t%fxvJ)>;F%f^zN3MMm?(rgfqaqH#v0FJdt2IyZScL@x zp!+J=5?ArKX2W2imWqsZ{;J>F*PD%A@z80;4PPFAO|TUvK&!-PBd-SkK~{$qhc7&w z(LQHC^Nij8EoWZsxubKX0EgC9AmCq0^^SK5rd>G5`L2@Vu6H<`I1|Y}$9H~46|?}g zYS^)HUb8VJ0AXXc^UcquotT2 F2q+fqrQ7!_)`J_dZg8b{9F{t%lT5z)4qbzmBCb|jDo5!35K{=ZTclrNw z`oIu{lRMHCJTH!JID2)uL@m@h;&nDmrKbN!aIzRPGWyQM!jfKBH(l=S{dp49zR{Si zW5i-W#eTt#XXcJ3u&~f8B=F$a@g7 cKCXyt GP(fq$oPE>83GEB^pILnLt0;Qp>td(YAsx)VBhxLgc-SJKQ3Z zV;w2)(0AvR28}L#;NP%g4NPnw15qxJfV^wx?TcGlr8bmU>5=5^VWy)*Fmx5SBi3Av zLVH|RkK?X6gw*y(0ZD3w12k0(aQ)iR&`>!Ag^Y~W!}SpYi9}Tm4R}1acV7t*791k^ zY^G&F)iWey*HL0cqagb!o*i|72P(voLfqSaV&Z~uR&0!X-T3GCx*l~(@qLHm_O5Q- zYsNq*n$WO~&)T*+MSeDJR34vZ(+1o7l+PBl`RSBNP-JfZhLgC9S8*SttNU9n&Q?uN zdG9Nn<)+O}ELGZGr% Z?fONJKi1q~ zdw2W_drqIIYHHFiIy%}kbx8ek+DWJPfV98I@FUKdQ)t!P@JCI-$LErI@hI#V#Sns^ z+*+A4=+>E#w2Re2RYX&`w{r?k`M1jAI_QP#jbj4jGfSf(Q9xMhTfI+9>M|6rMZ-2N zWDluSZivc$ipw8Ph5tw9I~EiKnK0M+gqiD39Cx)*mmUyS N5yZY?Qm$a6bHdRsZ(2?|$ m$OXrI#fE8h$HHi|4Rm8_F6RC7d zFIu{An*X^In!l$Q@ypVgTkvcl=&bnbTTg=HXAX8QMjg4;=z0$e{#F&)%lTsM=Rq}U z4GK@hH5V9GY2gbc+YJnj_(mf<2aQb%6EJ#4Q#Rj;wN?F#m#AM bf70+v!bglzp ztUeD$IIc$Cy1*{Ccf^m;M~)X%f*AVRs|)M#wZs~NA|D=>r25xBy6h`(bF}^*f@p){ zKUr+ii&waIbeYi`dsu*)taJWh?e|9nd@`ud9Xo-!HPM!f2r3g1?@izK|K*V=XXg3^ zb$w!|dBh<$9Wvy$+x?AQsWN4mh&$|-pskMnMOxU68XBz2OxC@o`N+*B&VSn7nxiyA zC_ZM{a4Y+Vqpn~;fftHA-lEme*Fbj&a$0O)k}$5mv|bi9aPpXUA>a?U{L8$%{+HvQ zYW%{lx2l1Wvj( fIPM=oaDLi6i#o}7PCDA`G{a!;&x9$|J$Pe`BBu901 zM{oF=Tzwb?OQmC89Xn^zkYQbSQjBv2!mNPu%lp$?$5ti|WobvAgsctNd;d^K>+103 zPa?;21q}Z2YO8eY(+^+YrW@{lC!O#XKEhB~`g^!&(y%$D#?bMc=@|KH#0mA|@5!EA z7l;iHSBqD>14J!EAW>Ja3pIL)8iq*9gp-~2(3Ef^1}rT^Na~~aL9)E{ZqPrYl1nCU zu(DaeRh4V@{tLzOlFN%Qg)Yv|_x;<;f_Y!y@_MF(nf8p+HfQqPD7jAtW2dyv-l+!q zeY~>`lS+6iS>kuUv*4S<7*mkWRCivw5^QF!lTxQ*C_-1n91lJxy8Jg_8C!e(RpvH{Vqm6}nbaL$>FfoBkz7#v*UoX-<`PJEBOgcRR zuF|eW#AUvHECjNabQxEPDj(!9VRoAfP(neuKvt($i*Ms06`AjQnkT>1y&6!SNr)nT z*Iu!~8m7PbcZJZtQp?O_CnY}V1=Ux$nnV={j8UZ{DKL{(tQElwlK{G+i~k}WYgN3% z1T`s#DUKWu7b>?C5}PT2Sj|E5u?{C4_oea3;TbqCXojT|Cv)kri3TIaxZ|z1FzhWx z8VLhy5cCf%z=UkGd-ElA+ym-`pSwDW(6a&i;JK|)wF&C@!hFjU%YZ+)r@_n3`3M&X zo>2*3BxWrObM)>ltvF0tK!r#Dw-vpAQMjyd6GNv@RwBLwDle>G0IrL@zwfr{cYXu- z&b7&vGj4H!H13wBy{NXCdxqw`Ir9Qqo}5K>9rGWQ(Y7yDUQ3JgAI1pr-cV$Hb0G$5 zK(MRJv-{*k-FZmw7TkVul8tU65aYBxI<@%Bv>w?C@xB`P`pEiDhofxwU3Wvl!#*Z7 ztML<;(E Z?tb7Q`Le 0;bT@-JV4H7yw1r4 zzKNsdjup_-3&ub3FWeXSQCIh23sEyt&<>YW)6kH1bE~!#9p&Zr0!~D siTDXuCydRPHF~5Y(Mt`0)Jr%|7T}y=9VD*8x0pN4-_B$(9af~gxt*L zX;R!5H1%Pd2o`@Al6uWreb31*Kng#9N!obB!Oj4v`4_@5fjfu(zkfu>#yYI@#D`Y1 zf|7ls^>kHagV#AB(NG0LGdt7Tona|IVEK)XOUC^@!A7Oy?p&s(uW|p|e(1HQj}I0Q z^_@;Qfs&4_EKO~H&*Q*({g;bkJjOGSb3{;z_x(l{x(J)L7wFNsDAUxNDc`(zMeR*T zFBtNWMLfM (aL`$VA^^pb1V@avSeJomS_rR^s>ndnuJ?jCy$yCe}q%nzF*-;}r^=WHX*d4gDq% zQoOGUKhX5jz_i#-T9C`958N77Y?SpC+V;(5GkIQpUf~@gjfbTkP>K1s80zl+JGJWM zz??NQviFhYO(pxwATShcu2<9pxqOjP=}Xcu0%>*Q6+bcSW5DLH{fWzJyY+T%l*%uJ zwNdm|=M!cq4I?(<(6OJEr4tGkFZbFW$b(wk z`$-Ep 5R95lYc3$0p}|rjdi(ZRlDvygV{62 zwo@c3jDn5(^Wg4 3mOAVv%(z^TYPuww{l!p)cKDWOi*lpYtYIAXdb(Je9&obSdt85FC~ z(Gq*%*wkJ Kx9_6!)%*Ch!~VU!vkP(T z^T8WEZV-%)hl7RrSm^eLl;VG1i~}W{Tbuy=&{k*i6J?C%(5u}xW=ezjk^S_ntYIEM z6qkW!LMDF1K+NWy%0K&6=Gyx*I6TB;6y(VP$W+{;