From f83f654c4a2641e8295623e8e5bd8191323469bb Mon Sep 17 00:00:00 2001 From: dfinke Date: Mon, 11 Apr 2022 16:58:55 -0400 Subject: [PATCH] Update how Import-Excel reads sheets, and remain backward compatible --- Public/Import-Excel.ps1 | 173 +++++++++--------- .../ImportExcelReadSheets.tests.ps1 | 47 +++++ __tests__/ImportExcelTests/yearlySales.xlsx | Bin 0 -> 54899 bytes 3 files changed, 135 insertions(+), 85 deletions(-) create mode 100644 __tests__/ImportExcelTests/ImportExcelReadSheets.tests.ps1 create mode 100644 __tests__/ImportExcelTests/yearlySales.xlsx diff --git a/Public/Import-Excel.ps1 b/Public/Import-Excel.ps1 index adadc82..630b907 100644 --- a/Public/Import-Excel.ps1 +++ b/Public/Import-Excel.ps1 @@ -15,7 +15,7 @@ [Alias('Sheet')] [Parameter(Position = 1)] [ValidateNotNullOrEmpty()] - [String]$WorksheetName, + [String[]]$WorksheetName, [Parameter(ParameterSetName = 'PathB' , Mandatory)] [Parameter(ParameterSetName = 'PackageB', Mandatory)] [String[]]$HeaderName , @@ -64,7 +64,7 @@ try { if ($ImportColumns) { - $end = $Worksheet.Dimension.End.Column + $end = $sheet.Dimension.End.Column # Check $ImportColumns if ($ImportColumns[0] -le 0) { throw "The first entry in ImportColumns must be equal or greater 1" ; return } # Check $StartColumn and $EndColumn @@ -95,7 +95,7 @@ foreach ($C in $Columns) { #allow "False" or "0" to be column headings - $Worksheet.Cells[$StartRow, $C] | Where-Object { -not [string]::IsNullOrEmpty($_.Value) } | Select-Object @{N = 'Column'; E = { $C } }, Value + $sheet.Cells[$StartRow, $C] | Where-Object { -not [string]::IsNullOrEmpty($_.Value) } | Select-Object @{N = 'Column'; E = { $C } }, Value } } } @@ -125,103 +125,106 @@ } try { #Select worksheet - if (-not $WorksheetName) { $Worksheet = $ExcelPackage.Workbook.Worksheets[1] } + if ($WorksheetName -eq '*') { $Worksheet = $ExcelPackage.Workbook.Worksheets } + elseif (-not $WorksheetName) { $Worksheet = $ExcelPackage.Workbook.Worksheets[1] } elseif (-not ($Worksheet = $ExcelPackage.Workbook.Worksheets[$WorksheetName])) { throw "Worksheet '$WorksheetName' not found, the workbook only contains the worksheets '$($ExcelPackage.Workbook.Worksheets)'. If you only wish to select the first worksheet, please remove the '-WorksheetName' parameter." ; return } - #region Get rows and columns - #If we are doing dataonly it is quicker to work out which rows to ignore before processing the cells. - if (-not $EndRow ) { $EndRow = $Worksheet.Dimension.End.Row } - if (-not $EndColumn) { $EndColumn = $Worksheet.Dimension.End.Column } - $endAddress = [OfficeOpenXml.ExcelAddress]::TranslateFromR1C1("R[$EndRow]C[$EndColumn]", 0, 0) - if ($DataOnly) { - #If we are using headers startrow will be the header-row so examine data from startRow + 1, - if ($NoHeader) { $range = "A" + ($StartRow ) + ":" + $endAddress } - else { $range = "A" + ($StartRow + 1 ) + ":" + $endAddress } - #We're going to look at every cell and build 2 hash tables holding rows & columns which contain data. - #Want to Avoid 'select unique' operations & large Sorts, becuse time time taken increases with square - #of number of items (PS uses heapsort at large size). Instead keep a list of what we have seen, - #using Hash tables: "we've seen it" is all we need, no need to worry about "seen it before" / "Seen it many times". - $colHash = @{ } - $rowHash = @{ } - foreach ($cell in $Worksheet.Cells[$range]) { - if ($null -ne $cell.Value ) { $colHash[$cell.Start.Column] = 1; $rowHash[$cell.Start.row] = 1 } - } - $rows = ( $StartRow..$EndRow ).Where( { $rowHash[$_] }) - $columns = ($StartColumn..$EndColumn).Where( { $colHash[$_] }) - } - else { - $Columns = $StartColumn .. $EndColumn ; if ($StartColumn -gt $EndColumn) { Write-Warning -Message "Selecting columns $StartColumn to $EndColumn might give odd results." } - if ($NoHeader) { $rows = $StartRow..$EndRow ; if ($StartRow -gt $EndRow) { Write-Warning -Message "Selecting rows $StartRow to $EndRow might give odd results." } } - elseif ($HeaderName) { $rows = $StartRow..$EndRow } - else { - $rows = (1 + $StartRow)..$EndRow - if ($StartRow -eq 1 -and $EndRow -eq 1) { - $rows = 0 + foreach ($sheet in $Worksheet) { + #region Get rows and columns + #If we are doing dataonly it is quicker to work out which rows to ignore before processing the cells. + if (-not $EndRow ) { $EndRow = $sheet.Dimension.End.Row } + if (-not $EndColumn) { $EndColumn = $sheet.Dimension.End.Column } + $endAddress = [OfficeOpenXml.ExcelAddress]::TranslateFromR1C1("R[$EndRow]C[$EndColumn]", 0, 0) + if ($DataOnly) { + #If we are using headers startrow will be the header-row so examine data from startRow + 1, + if ($NoHeader) { $range = "A" + ($StartRow ) + ":" + $endAddress } + else { $range = "A" + ($StartRow + 1 ) + ":" + $endAddress } + #We're going to look at every cell and build 2 hash tables holding rows & columns which contain data. + #Want to Avoid 'select unique' operations & large Sorts, becuse time time taken increases with square + #of number of items (PS uses heapsort at large size). Instead keep a list of what we have seen, + #using Hash tables: "we've seen it" is all we need, no need to worry about "seen it before" / "Seen it many times". + $colHash = @{ } + $rowHash = @{ } + foreach ($cell in $sheet.Cells[$range]) { + if ($null -ne $cell.Value ) { $colHash[$cell.Start.Column] = 1; $rowHash[$cell.Start.row] = 1 } } + $rows = ( $StartRow..$EndRow ).Where( { $rowHash[$_] }) + $columns = ($StartColumn..$EndColumn).Where( { $colHash[$_] }) } + else { + $Columns = $StartColumn .. $EndColumn ; if ($StartColumn -gt $EndColumn) { Write-Warning -Message "Selecting columns $StartColumn to $EndColumn might give odd results." } + if ($NoHeader) { $rows = $StartRow..$EndRow ; if ($StartRow -gt $EndRow) { Write-Warning -Message "Selecting rows $StartRow to $EndRow might give odd results." } } + elseif ($HeaderName) { $rows = $StartRow..$EndRow } + else { + $rows = (1 + $StartRow)..$EndRow + if ($StartRow -eq 1 -and $EndRow -eq 1) { + $rows = 0 + } + } - # ; if ($StartRow -ge $EndRow) { Write-Warning -Message "Selecting $StartRow as the header with data in $(1+$StartRow) to $EndRow might give odd results." } } - } - #endregion - #region Create property names - if ((-not $Columns) -or (-not ($PropertyNames = Get-PropertyNames -Columns $Columns -StartRow $StartRow))) { - throw "No column headers found on top row '$StartRow'. If column headers in the worksheet are not a requirement then please use the '-NoHeader' or '-HeaderName' parameter."; return - } - if ($Duplicates = $PropertyNames | Group-Object Value | Where-Object Count -GE 2) { - throw "Duplicate column headers found on row '$StartRow' in columns '$($Duplicates.Group.Column)'. Column headers must be unique, if this is not a requirement please use the '-NoHeader' or '-HeaderName' parameter."; return - } - #endregion - if (-not $rows) { - Write-Warning "Worksheet '$WorksheetName' in workbook '$Path' contains no data in the rows after top row '$StartRow'" - } - else { - #region Create one object per row - if ($AsText -or $AsDate) { - <#join items in AsText together with ~~~ . Escape any regex special characters... + # ; if ($StartRow -ge $EndRow) { Write-Warning -Message "Selecting $StartRow as the header with data in $(1+$StartRow) to $EndRow might give odd results." } } + } + #endregion + #region Create property names + if ((-not $Columns) -or (-not ($PropertyNames = Get-PropertyNames -Columns $Columns -StartRow $StartRow))) { + throw "No column headers found on top row '$StartRow'. If column headers in the worksheet are not a requirement then please use the '-NoHeader' or '-HeaderName' parameter."; return + } + if ($Duplicates = $PropertyNames | Group-Object Value | Where-Object Count -GE 2) { + throw "Duplicate column headers found on row '$StartRow' in columns '$($Duplicates.Group.Column)'. Column headers must be unique, if this is not a requirement please use the '-NoHeader' or '-HeaderName' parameter."; return + } + #endregion + if (-not $rows) { + Write-Warning "Worksheet '$WorksheetName' in workbook '$Path' contains no data in the rows after top row '$StartRow'" + } + else { + #region Create one object per row + if ($AsText -or $AsDate) { + <#join items in AsText together with ~~~ . Escape any regex special characters... # which turns "*" into "\*" make it ".*". Convert ~~~ to $|^ and top and tail with ^%; So if we get "Week", "[Time]" and "*date*" ; make the expression ^week$|^\[Time\]$|^.*Date.*$ $make a regex for this which is case insensitive (option 1) and compiled (option 8) #> - $TextColExpression = '' - if ($AsText) { - $TextColExpression += '(?^' + [regex]::Escape($AsText -join '~~~').replace('\*', '.*').replace('~~~', '$|^') + '$)' - } - if ($AsText -and $AsDate) { - $TextColExpression += "|" - } - if ($AsDate) { - $TextColExpression += '(?^' + [regex]::Escape($AsDate -join '~~~').replace('\*', '.*').replace('~~~', '$|^') + '$)' - } - $TextColRegEx = New-Object -TypeName regex -ArgumentList $TextColExpression , 9 - } - else { $TextColRegEx = $null } - foreach ($R in $rows) { - #Disabled write-verbose for speed - # Write-Verbose "Import row '$R'" - $NewRow = [Ordered]@{ } - if ($TextColRegEx) { - foreach ($P in $PropertyNames) { - $MatchTest = $TextColRegEx.Match($P.value) - if ($MatchTest.groups.name -eq "astext") { - $NewRow[$P.Value] = $Worksheet.Cells[$R, $P.Column].Text - } - elseif ($MatchTest.groups.name -eq "asdate" -and $Worksheet.Cells[$R, $P.Column].Value -is [System.ValueType]) { - $NewRow[$P.Value] = [datetime]::FromOADate(($Worksheet.Cells[$R, $P.Column].Value)) - } - else { $NewRow[$P.Value] = $Worksheet.Cells[$R, $P.Column].Value } + $TextColExpression = '' + if ($AsText) { + $TextColExpression += '(?^' + [regex]::Escape($AsText -join '~~~').replace('\*', '.*').replace('~~~', '$|^') + '$)' } - } - else { - foreach ($P in $PropertyNames) { - $NewRow[$P.Value] = $Worksheet.Cells[$R, $P.Column].Value - # Write-Verbose "Import cell '$($Worksheet.Cells[$R, $P.Column].Address)' with property name '$($p.Value)' and value '$($Worksheet.Cells[$R, $P.Column].Value)'." + if ($AsText -and $AsDate) { + $TextColExpression += "|" } + if ($AsDate) { + $TextColExpression += '(?^' + [regex]::Escape($AsDate -join '~~~').replace('\*', '.*').replace('~~~', '$|^') + '$)' + } + $TextColRegEx = New-Object -TypeName regex -ArgumentList $TextColExpression , 9 } - [PSCustomObject]$NewRow + else { $TextColRegEx = $null } + foreach ($R in $rows) { + #Disabled write-verbose for speed + # Write-Verbose "Import row '$R'" + $NewRow = [Ordered]@{ } + if ($TextColRegEx) { + foreach ($P in $PropertyNames) { + $MatchTest = $TextColRegEx.Match($P.value) + if ($MatchTest.groups.name -eq "astext") { + $NewRow[$P.Value] = $sheet.Cells[$R, $P.Column].Text + } + elseif ($MatchTest.groups.name -eq "asdate" -and $sheet.Cells[$R, $P.Column].Value -is [System.ValueType]) { + $NewRow[$P.Value] = [datetime]::FromOADate(($sheet.Cells[$R, $P.Column].Value)) + } + else { $NewRow[$P.Value] = $sheet.Cells[$R, $P.Column].Value } + } + } + else { + foreach ($P in $PropertyNames) { + $NewRow[$P.Value] = $sheet.Cells[$R, $P.Column].Value + # Write-Verbose "Import cell '$($Worksheet.Cells[$R, $P.Column].Address)' with property name '$($p.Value)' and value '$($Worksheet.Cells[$R, $P.Column].Value)'." + } + } + [PSCustomObject]$NewRow + } + #endregion } - #endregion } } catch { throw "Failed importing the Excel workbook '$Path' with worksheet '$WorksheetName': $_"; return } diff --git a/__tests__/ImportExcelTests/ImportExcelReadSheets.tests.ps1 b/__tests__/ImportExcelTests/ImportExcelReadSheets.tests.ps1 new file mode 100644 index 0000000..c8b2185 --- /dev/null +++ b/__tests__/ImportExcelTests/ImportExcelReadSheets.tests.ps1 @@ -0,0 +1,47 @@ +Import-Module $PSScriptRoot\..\..\ImportExcel.psd1 -Force + +Describe 'Different ways to import sheets' -Tag ImportExcelReadSheets { + BeforeAll { + $xlFilename = "$PSScriptRoot\yearlySales.xlsx" + } + + Context 'Test reading sheets' { + It 'Should read one sheet' { + $actual = Import-Excel $xlFilename + + $actual.Count | Should -Be 100 + $actual[0].Month | Should -BeExactly "April" + } + + It 'Should read two sheets' { + $actual = Import-Excel $xlFilename march, june + + $actual.Count | Should -Be 200 + $actual[0].Month | Should -BeExactly "March" + $actual[100].Month | Should -BeExactly "June" + } + + It 'Should read all the sheets' { + $actual = Import-Excel $xlFilename * + + $actual.Count | Should -Be 1200 + + $actual[0].Month | Should -BeExactly "April" + $actual[100].Month | Should -BeExactly "August" + $actual[200].Month | Should -BeExactly "December" + $actual[300].Month | Should -BeExactly "February" + $actual[400].Month | Should -BeExactly "January" + $actual[500].Month | Should -BeExactly "July" + $actual[600].Month | Should -BeExactly "June" + $actual[700].Month | Should -BeExactly "March" + $actual[800].Month | Should -BeExactly "May" + $actual[900].Month | Should -BeExactly "November" + $actual[1000].Month | Should -BeExactly "October" + $actual[1100].Month | Should -BeExactly "September" + } + + It 'Should throw if it cannot find the sheet' { + { Import-Excel $xlFilename april, june, notthere } | Should -Throw + } + } +} \ No newline at end of file diff --git a/__tests__/ImportExcelTests/yearlySales.xlsx b/__tests__/ImportExcelTests/yearlySales.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d30993a1d57932fef39a8e6be132d9e49914247c GIT binary patch literal 54899 zcmaI82{_c<8#kU^%39X!6j@S|im|V$jIt|HXpmC&u?wNGCJC9zQj>j+vhPc>hY-q| z-Pm{kbEcl(`#jfsz5naEuBUHv&pF?7?)`J$_oQ=`jQsc^YVhAqe2CslwO&_sl0%2s z4<9;o?9ib@w^ZyOIaxh&GSfppwsJH*0jivEnjym>CUc94FA4IMG{lM%-;RtxOrgomu%7H z3U`iHO~0sH%^wSNqR4oS&rD|cQ;FTou756dZdvUf1N_$6{#B z$P!*oygZB&_eL7=$t=TUR1RllH_I}A5$X3CjXAP?S8hIVqB6nGUK*l zwj)X0B&kF6ktQ+L$idr+4OY^ED)O^aQAf8v-K!;QDrV~vcHG8odHtdaa879*J)(1! ziu&Ko*7=VZUJuM-vH|;rfGCcDKg}Gh>>MS|!2gG}SJOQ`dzA90p|N|cAC<*Xf6TdG zwo4?F29zYdRtYrri{bYWZg$%nJKgzrCPU;pgZwgm`CI&w^i!!GkpCEHS)dkEwfXp_ zDcP5q?3+Hi{z`)r({?q*tD`5#SI?Ckn^Ic4)Djt`k|52sW!xa;UYn?wBGt5k_Wrrw z?VHuiAzpQ{#s~SWg=UX)ibp4 zn*YAcf3F$eks^E@T+y8D&>?zoO*cCUS9^yC_w4N-KursKaaFtaEQ4YW6B?Pge>Emm zSx-|Xo;jIh@^s?&Vh{b zu!>+P=`RxL_jf0c9TpG_CHobXcEme$^Gef2(%NI>$ebz~287y@m@h8w*U4m5a7DTD znB*fuN+Zc`@#{;7N~yK+@Z?akqR+vH@%(cz#6 zYpKQ;6~&$7Yv)*@B>v6s|4L$2#MqA)Na8B>p+g*hB=JY*{w)up{+0K(*aD$YbeJ&~ zxZs&ie#;S!d5~QgtvNZU5E{bgmFaKjgZMpb;xS47NCbULOz=GxYeP;H8 z)U#;Iug_~T1uPtBbX6NNPk%in`Tp%${;>tkJxr1{-wRA`K)UIt$F8mss z?UpE|_es$9DYv&Y;gh`YhZjUwkz*-8?$FdwPFxXl8c(Hx9||^U5cu zuTo*ZWyJmt?hG#f$l*$ll3fL9p^F*xhGz2f`=9r>y`47*F2#*fi1JDIJ)51?N}&zc zh$U_0Le9SD_Cb#8#nQn&g^2>I_?z52Z+5z3(FY~75`#nA`)2Ka-Ssz=4sLhwuzp2j zC!dJDo4u*vJR+{yPBE=>7UzsM-d;4js8A`^H~XqUYH~sn|032@#NuG+>95b`n|ZUZ zreb59FS6?MRvhsDiyULQBo*?B*I^P!+4ZFRj%5}H5XjR3M$9bR9V5s?7Za6R~sgd1~ z=l!zHu`(&aC&{78kQbcqPc0(GA8e%BuSCvFt6EFa`8FqSgI#q__-U}3)TQ9JH9y)G zdG9gOHU>`?STe#LF7t}Wv<`eW5pWUd3SbbS<8$M2VW`#@OLDmOLE(JmE;k2~@`J`k5-qtWZ4L&I)Q_QX>#c-WUHF|&7CI4BlS}LQG)MfAWXEO`g};G1Hg3Csj|f z9JdlnQ+XfwT+1Xg{OF0*@7{$<>c&dyM$X)#Zs%)g&Io3fSQyB7>1rI&cb?bYE5M11 zm=*ISry_p6XX0blS!i>7Bw~}4-aC{QbZRR);l8CvP-y=0*95Hq{iW@h@1?ZD$fo9^}u8M0TR(cxMw) zvwHlsB0pz`=4dlM3I@ETr88xe|3C;z;mCxgomMK!q=5OyuocIet!$Ka=#!u*Vneli~*Y{T?6t?BtG1E^nYotQO_0@Jyd6 z$o^9G{zrZK&&rg)4_(UoG3ACHt-WB|8ivQ~!;UV(o%Ged1sf7?xa7&lz6={$E$ZJX zu(nnNXZe7z3Sv@Y)>-#<(WwuU)3-p1I->{Den(1NNIKRq3On?0Gs(!lLcprBSK zKn{z@LM66B+UEG{yEOfF0{j_2EgM6f;hQgHf9q&W;X2v?)efl6E=|Gbbkx_~-P^QJ z<`16#ITv&d!weUr+H;czWn?WaZv)#yw`sF78IYjb!wZN;x1PCel3AeA;7y~fdIjA^ zcT!8_=Ul(BB|e-bEq%^-;-isOP-r9#o5wmhFW{}ZCb|LWgq}u1m;N2h1#qO>%>A(o zkFL=}q7nK5QJZ4qGRjyo<|3o+0u7vFmwox0mhJ31;?hO)+ut3T*E1JPGILebH7Nq* zJZgYpeITvDVlI9dt-)sGqV)Uj1#(Glldv(Y&mAV-G#6zbk_dSOiTq|shv#lXFA$J; zM$pw<@q0l*oi>-aUQb^^{DZs-I`*vsTFc`xQ?okBA4n^(i6>oVti7f_%xu3MH5tF9 z5uX>$th)L@1DmBA;zTqSoApWFRN$dYvm6 z{hl?Y9_PXmI(Bvg5>p<8DKxH*wdz44GkW@{^!qxuWh_@QJ|uT}pt{{~KtJgx%G z=R2g*00G=19-B+c@*e)kVNp~_qKwIh@QUl{3o<5VL7{C1Q4%jpMucg_04H_OSO3_h zmkydMD^ErJKCoMQXt$o!l%ZZrKpG|=((~wNvQwZC>;Rvu|0)d+uod7dZ0G#H%vu9S zBXf%aF5uE~DxzWA`N<~h3_PC&kKP>(;47kJ&+^Xs3jupiC9RQnI|5$1P2+iCJ$YHi z#3Cs4hu_Pn#cJpVmalL6=JQC38$fRnQ(k2wWYEti!1FZnh5NeNRgXOc(LEflkcKS5ddG_RVKS_NS@pP`oU6 z`|D{i1GAPfT#{da3#r#78iAEWzXh}F`pv}h59Qju{a{DZwmV=`rnqeIQ04{MLO8CTfk-9ToP7E0aC@XQkKQm5Kuxp?T=adFSh+fluXX(R=5m z2dITWIHFCzJFj62bwfDYjz_Mmyssy^sKSW!oah*rCgBXtUv*?RY1%X5KjuQ%M|bcxS!~y=aD$U z_PI(MY%SW}KdoE?i3MMw8R++Gd|$o?Sjd0$C8HkP_brX^&TsJoU7*GK>x{2DvH;iK@O(X?Kj7PfD2v(HF*BmbP;FVynRG9cgvS< z7ZKpdh{_Z`)WhxJ^_`Ek@3F)`$iBvqje-%rRkEVyUl9kX(;QzJ#AbbNOM)t>dt zg~-077A=W(FBy%npH)J_Gkia{H?tc)d4kLM)LtlB z|6Dd;mHTM$4tOivx6aF@j<_!%);+9GRF=#pos{>O3}0->rvYyl{{#Y>!G(=D%l>%T zKym}cArx|mFl1yz;*67X1{};xUpO!B&|+avdX@Oj(y`LKT+#)3kE;uMT~GCgyiVOJ zTA<_G5HaZK#Bujk2tJS=Wn-qasM!3mEV;l*fa4ynd; zsTETmHCiU?S9!T=Yr3jguDtj5a2mgJAG0XE!itYYgZ1tjA?_jF&9`#rUp@(xABPa`H;lN0Y>N{bl?7|C25ezT4O zzN-yqj} z!jlB#ti(pd0pfEx+Sk?H!DFj&tg>?C_QM=kpD!rWcwOwXH$jpwt%`^6_8Wt1^Oaaq z{1g>Mt#0*Wqug<;JMYt8Rv>GCR2oHMX}T)RFV8v}K8xK*z)80_S5Ams|2*p;@_AM_ z?iuTm2K-aPr@dGBR;?j>nZY~`t?7olP48|kV<@_HtDSy$PvKi9JMK>@?8oyo*6p;+ zPYm`YtZhWM)*8Ad()(okA45h`hCsr~dw>(TqF?2n?U$Gm-!4cXZ zm%=D58S8hX_4^ZYahA^CuwoD#-owk0=olu#5&8vt!!PU_A@IH>r&3s;9;c?xT|T%) zy`L&Gt!6iO7x@WxQr7t9$?wB}E_FGwP+41A#)!DQ?qu(bw-{!G6PHfiDRB0UjTTiFp>&aZ^AD!df>wkBLa#-P^viMDjQ z_1T%ynMf|X`)s!rHP2}2St`j{4WwFYurPDyeQaKsh^CV@$)yW8;VBd1sM3UW1Cghk z>WCIOizT_iVyKvyO=tT0kblJc;jX8V9W-oii>EKeP-poDY+wT|u3!w-mbkx488hMm z?UUPLGm#d)(VXHO5V_IQoa=om-p zX*KzuQ{_Ux3k8yxbyoM|Qfk%qsWlceQa8-A3^dR1rsk4jhdq+DPm+qhohhH1G3rXz ze^^fCbKRhiFSU@gX4s=aTb9X$1hvRz(-;l{+Ps{bUH&i~Um)|@jbU9^5k?~t^didM znk#A1Yi)x&RNB}tDDnr*&8UuLL9AAQf#R4)`&eG8(t{8D3cg*ZM3))zj~Oq1(43T& zi^4N`m}#=dEqk6?evAq}DQ?m;PNg#-rdxaV@}qWD5hfFCvu?;&da7&QOV_xsniSGa zb}HEvTtHKw&T6_{A{$2sP8K!2iaM3Uik`EsP6u!39Jty=5ip*wrbgOw3@v=ah$M>V z1=%ch1W$S+J#S&ZJ0dW%QCHm@&5ZqkBET!lc^^t??H%J2tn8$*-u-EVh@sB( zZJ;04lYLcat{=gpXkD=8MtvB5hHX#@!9F7i<9Y7L!F`vY@^O>IQ~DML-(h)|Ld<(f z468+MP&FFVe8O16dROOy_aR)X!5Ckv0v#ELf*S`CGBb?lKFXTw&srz2HYn2FrfQU` zeKbwgoVW+LY-MN;3r-PL@X?K?9~bm8YNW}7h5n>up|!^H)vbkzq(CllBmL21t%bKj zf+F7p=?Uf{Lhww+RSc1vtJg+t4%ad=;nM4b;%$nV==t6;M{bT^LBuq5&}e!tzX$SA z%P{dwj&m_)J!Zsq%$R-bOxWSC4UjJdfFDow#pR>k-oi9SzGKea95)8s$nvchY9IZx zjugk0RSz<-I^PB%02o}@+wxHew5jYp2@`YLq@V{<&MMvFS zuE6cnRP_s%EL#G*XOR(*Pr2=lh$?t0DBFVK2Cl2XstrE-x3L&cX7fc+0bO0t+VHK{ zRkud7Ku+|Gp8su^$AaX$%t*$9lf!`0*ew!Fd&Or`~RJa53ji zMoX7`LpPe{CYnpTzb_MwtTqB$3p`zKHOfHgzK}Yl0+w}Ge*hh8F6 z^x@hU$j$9pn-3aBXiDVC8WHoQlwvVpD!J)35rqZ~!;6ZVKAe=C-m9F@@l^fNuveme zRcNgr#8VA+t|jARHz5h+kqZoBlA|S~QIMel7c$WQMZD0Wc~i~54>f!Z@v2b%vDwKA z-_`;9(WlDmG)VTXj&dP_4!;V} zdh09zHgMh~m6p8~6clNFn)$GJ`!8rLoE2^@Hc&UUJV_E0v+8s;+iHF5SfL!ODFiFr zW{E@-A`xhTcHLj1IV3U>?P2uD?>W1Z+{)WVG5=mk+;;XSqtwp==r@`}*w8d#J8bby zj@JD2$xm>qjsXp^=>!T-msdjTo97AN1ac9WAf}H&zV)oA%d{>4Nrp&(wJ}5y8F>^-|aMZI&DldC03?JF!_Jvv;+Ws@(;4ygMGu#FBdNzT97je+@Z84BA zH(MkjfVnmMCy{bgwo7TNLI=&E;MdUxtkF`!in(L6IW7b!Z-y=5n7DZ! z3q8@CjIj0H;n3KGP^XCgp$-{TB0F(%t%UsXGHbV@>J2mv@+7FWE=A*)j6gMj*_$-Z zbdHujVD+*KNe~VZ6vV`31RnCw=Z5QSritvTW*E-x(FIsqQXKVOK1%d2KZV+V=A}|( zaO{$clz!jgf)2h4iLKHNsiL9Y9X||Iz?=(l?S(oo)6uC0g~EdEuC#2sbL@zh zO&!Txhs7Iz=B2=QU!$~Nbm2`^5j9^bKrIyt_%WZ|>_6uQSxu=>I}_73yr9!Gtf8WQ z7fnZucS{9RfLqD>T;7xq7BXvfHJ<@HK|#F)&L#*~;MyajJUS&pIDakA)nN2AFnksT z4;JJ}$s*#zAJ2v|dOB>3fjNow?i>h}P2a)8?Xo=QfQEMcG1Tkrh0F#O&4u@TDTRm# zd`eUv^U`L2TrhM{{z0|=mt3Jg-ey3{m+km&`ZfSLze*uMQ@Y?y`2?&b8bm`owgJik zyrLC22>;%ja^56riy(M6ZIfB9=51peyTirA2cq76Y?pdQ^yXn^if?4mBua{7r-5RJ z;Zs1E2s7ghgD*}e90_(rfe^A>^31nh0$UHw)M$4!>pk%EkSeZR3^bR^7_0zGnUa8B z)_1$X{EVZrW4yQrgyE|Q%a^b41ej-WRQ|PL+g;_1jx2Cw5CpvmQdq6b*Ec~7z&)r3 z;R9^z_2Qc?0^}ngj@HB2lms6VLL0$LZ3#!vz)Y#9tw2=6posgjRJvh^Q5NhwY6p(1 z1)MvuFE^=Iz|dGV#(>;sf0`nt4jx{>Dm(N%FI#N(`lV|w4dOuVn|>hqs+rQ-Sox^S zEf{LycR5}(uXk}tv3GXKFR-vb6D#1bO^mqRUFWj2jSuHE8P+^>+H3x3;PHeV8sYRC zc2Tj4&cib3?7Z)7^mmLr%1g>j9?EC-4faeDtQvPVE?4dm+sXfilK%yncSi1D^Z>|Y z`hSDW^Z$U%p(5sIW@;%9K?&KHH!d$RWbV>JcC=clLDsD1v6eo8<|o5h82OuKNiQ<* z+)h03Z~ts8=(4)vyGeeNNBH(q<-vYChUcJc-)*&Va&p~vXL{m^410KlG;Y{lB3piM zeR;EGD5&yGqe6u{!P#SFXMW3oX_0d3%1<6T}QsnPxMR;j@kF{e|)4c zV%H|Yjr_GeR(!K>$`BWBR{rTzNzVS`b&ZP&^b!$1S_)-XRb=F4yw*m~?MGy^_6?RR z@W`!Bm<`S^()(-;*0+rPI_Dwst2mE$8#SWIvuPNY28}S|# z4R}%uQ625x{4=wNKG1uPT^%CbN>dzWHbUNHpSk33jZ0n9S)GsaJ(!voaI$ zlFXO()@gk>x$N5(+rahvz2!>Kn=@W(K?=K02Ya8rIB#yGjIZw>>=SI=o@_VPCLu%4 zUr(J1>5FH>2@PBGDLzWQ)gJaz*pyB+X9X6a7neZESF1`(1Z*R!P8u(L7zMtsh zxI(#_U>~)cwSs0pI*CgP2q_B;-ZI!-K4=_j#kTbXeEHbj?_Z=v^-S9kN;`THNrdjohy==g>2GAh;ai?m%z zUT|T%E~|cw({kZBDn9B7IpYx<2VSMaM-KC|bd4(}@4N8!aHY~v#U)IzTh4J^5g<*I ziF_Ln2)+j%K2&mPuF!QIrHZRTMdn3H@kidLVtSby$$O8ll}>QRo~kR~zpzT_SykNq zIq@sUYOJ5IRfhne{M@Q=?tE9N^jeX>^$?%QuebfYPeVW3l=lXoHQ`d%sgZmdY*i>T z7Q8*^_ww2OC^F6>qo{z$@?l z^d0S?g)ZCsSVjGU#0nkF1_Q;mXw(!W?jq1nwdH2IY@cJRj0+N*bb!YclS9XAs{xGo zEgCiRE#*ws*%Oq#t0{p4@!-(Eqd4HXF zK=>ro{v$0oG|RUXUw`5j)o%~meXM4iS`n|H;XTD)(NjzC#bN-PAmwH{IT9Kp007i> z<+bcN&cFSsyW35M9sQHNW7G7##jS7JvHAs@jG@wlm+1q>Wl}?{mJwKZ<;I9+cH?jJ zXR^v0f4?m>#-=>bR5ut`D%la_dj9SK#9GObjF4Sw^;?-ux|-gz3=CVH z$Iv1mQt&I>kLV@gSCEe4skX*2qp3sWbwGgNN1_B+?JpO8mpa-BJ!h02gEg5>(gYYI#67L03Qw2cQlqrIfv@&?GaDLWH!l57?#seTh zj~n%A08b-8)MWhp00g5|DdJKoZ}L9?2)u1f135NrX9+`<6Si7c*3_tVRHLK+9zaj` z=t)9&Fp z+U0?;DO<>!3{puvKLlt1gUvXz8Wj8kV}d~BD!>!Z41fxn6FKj6_X0#-(I7`P#sr1d zIIuRT8Z@ZBYH)jCK^M9CLr~toO*=n;8sI%%LVvWI$US=k02}Rs+>Z!QP3{xeom}!k zruf;0LQvj=2`MBX0KSQKQ12z7!zI+B07Q{N1gv72A8*cGMkIz+(OmL$;lvJ1*VxkG z0L++OVz>#C!**<~E~6j(QWiGpk*m#xpmy_uXlKC5EZh6aCpS5u`EfE}u z5NJ>YixM?7L?gV<2&`aMSK1SV#yW0*`4>#!?)`2oRwCL~kmKT4e%t(SV-` z0f|HT)knG6;&<-8KSekOmNG@~ksXoT_B#dk3-(MsZB8h?wkVkjuNsC^w9e>pJ8En~ z5`hDW<1@hgF(H&G;$wGUkCgWS>#)pGE3Wj9o6Tm|$r#lpt{|B6=&yo_iLxFkoz(X9 zE4!*p61k*INcJR1V+80K2T0I%!MnfD+2IikFOqU?h^0@ub|U0r{MHn<|LXQr#ERL*g8mA5@KjH6OtAbAnK6ebA~CcI*n~4TVChi#+xY7CxA~YvuA7=g{xn3)#2m$yL`qrN zvZ~Iq_Tg#<`|i;*rA@=eB!NMpUCYOTlh5+4X$QDHqNFgsrhTVKcIs|=ZLI=}AvB%i zvCwoLgCYhndG~MiJ%ZkpiKcTvS0v+}f%Rg*4}cis?ZQ(3N1~{u{`xjIUdu%S0~iUY z>uv@!Ds}Bdc^h0GMRoMoYrF9Z0wwh$Dyb1r(sIBtprrQ+=Z(t}mvx#`5_i@`(BemUm>k z43P2l(_JK@6+L2EfECmSfOTCTV`VVuuRRX*>krH!);I}3&2vh@(ZJTrvj%^oA~*1i z!01`+uhTl0UIhV_RK3(B3OG2L;N8&>qD@DcA)@fmS4WvuSsQ|K@=X&G;%5cG;G@jm zGy+$|YOu1Y7AW14!ag`02Fa3~3Oqrtt}8jzE^E;S0hP>Vm&P8+0b#HW2)1idSPoeBHA@U6o~~e1-%Fal zca#rQ-#IGXIe=3Dp*sgAUKq24`ka{pbT06*QBq@k`)@n?*(G6;aWeU zsZ^1a13Eez#PLpuReS!4t7iJB6>|{K-MJ{myw}8tIZS;H;5Jn6|7{KHx;@ZM0DxcV z9x(=k!u7E}uU}c+2;{a>-i0M8ET~xgbtIMU$gw0%9uU%*#fI0Hk1ER$m$49~HEL+D zPYdq+V9^=*matCV&YLRX`MiwK>@}e~o`{T!mH%w-CG-0ua%a(tG`hGIcSCC=nUv3M zEm~+rPkp3Qc5t;rQfBqMlhCWRnPzA`80Qq7(2dk^Z^Ze;PMb^d5Q!qaT{7?WHYzh!o= z;Ntlgn^C_##eC`ONtZ@^4yNkceSUb#YP-ZuYxh^S_7Suya+O1#C1oS?GYeyDv8CNS0GKXR{CIRGhg-g;70>ey zJSpHR+@Cm?XYB8F<9a@yPJQY@a>1%33KoJAh257k*U=UF;kAm5BXu zd!Mj$VBcrB!Q<*9f>OET5T|=O?S08Yk;lQ>g15&?dt=q~mXhD95ib{uQAxyMW?-BWd@Oovet2o}v-Y zB8wPXuJF{Jb!q{HnzUb0YK@H zx9sP={T@@oqR*z)#{6dwwi~5N4#hitBWAP`Z9WGT(-x!3$Huzr9$Zhwhg^(rLLT$! zRYk|UWrR%Ii~>-KB!bdoQ?k+?iZ=AZ(;7Uj8l@fABt5*dqB?!OR|IZ)OW|5%PN?eC zcnS?G*LjNW16W$i+Vbc)yXv>ay2xejo6o|If<~s`dFne4RC%rb0fpdUZO~6|J(9-G zQhq=1KKToE@|#co!cFjS1K>$wBU7C6#r^Te-NB0Spv_sM{4^N$Ge3;brIrNg-A(CH z?D}fGzQ@7Oa?=?sUQq&vP)-ku>@Be4gIla{cV(V9xl?fcJSl{+bBbL|&EbOIF@aJ% z%37$&mc_S2+$mP=)+FkaDW=xyY)W;KCY=Ak&Py66RtNnH7x=OcHP3A-pI`sB4_?$Y z12&NaZCjSE?OnyEE*_x`N$BxIFTX})AEAybsDBVl{l4)U?ih34TVabU^XJP6s-~`Y zxil|sKF+^+n9q;m(V1LzdY0d%RZqDNXA-uas9kq8zHq>;q&dIwi&WX+MKVBPoJ8Om z7=eAJ3lT@1##voa4OZy&S$X8x@%#q#!UBcZ%}dmz9|2Gb^(0rjZqN+dJvZgu4IsFz zYH1wpl&SgJ_n~sm*3RnJwyI$J;yI-r-=nhx36IvPDQ$B!3# zZ4_(PNiHZ4@=~?TI@tbWqF39_jjt2x=(m$V^8z-q;2^F8*(>p(s1yW|zeGXM(qzJc zt|O!};mW36ARn)I@`n`1A{f9ygOLAZZc-k(;gOr)1m(GA9%YZ|bc9cR-nLE@*p6ej`5fhaQGJnV%I3;ULj5tU(6xD4YH(%s| z&^c#~fMS$_Jvk3QYCbszfg=__V$MaqI~Vow+`{N<0V(;5VePzy^>_G`HBZ?BeM3Y9 z@q-x1jl-OWlKeqjYy5<{!>vgeL~I)km`kG_%t4R$voY*IuE$d;yK_=X$$N0ns~rb` z*wOi4#1~Y`G_Z-+?IxTIG6Gy;nj2&#aV4mg3*Mt)4}_5(bPvMXF`%1`X>SGn#W_n5 z=WR_uTk#+9&b8L*4i42P1DN)Q>hLTm^b8wJ1B@izg=VsQ-6Q;b_su01gmQ=9rRX!= z2z?JumPj{0&>$YYf|%Fr?V}W|xTH(aNoh~N>`9W4ILAyMa2$Xg%wJ$r;U;SPfe5K6 z>_9UQ2wMCd$O#2OhV_IEY?AdM2`C9&?+FP#~XT@5;GREGBn(FzahLyQ;1alTM$7u=`w--jtw(PCwpvVhopaXDa70qkUwQJatg&Nya zW=b}w2g}fnMCD+cR2VPYbb@}M_kJodNJQlD7Q%^)>AP%8n=@!4pCfXHoe(exAS#}A zw83f_uuwC(zou%I2$6&1Sy&h``UBA5Oik|Q%(X`7jjxZ2{^`jspD=_@;IB%r82~;G zp_DIRa7w6&iX+sA#hZRRCPAONZ27^re(}7V$)CMJNh=CvP4TJ+`X(0QoCpS&Xax^# z5WNYgd0>#kYt*P}6b0423UsePMGoFq45B|UFaUs~>Tx1)gi|Ez@5i7qy(gUC%=|G* z!`Dd#N*f@L59SU6Dw+5Ws5>muv3t6}LXaFC8L`txyf4aL8VhxuL&3k}3~binL7NWr z+YfZ@sX&_e)@dOXJizb(c6 zd=-@5%zCU_Aaz|a091&;YT#=da+>{}0~&K$#|)VVB%5T)laK+%ds2}Z z=v|ug^ZvjTLCv%=2i_T8s^=CL2A>=h@F!)~imYZ-F9@NAGPZ&}Cdohg2 zl``D)7q)Zh?rf7Iqd8%>c>fDCD2aIybQQ;8TR19+zrAd4dT9+gQ)m^rVXCO*Eqs&u z4#`A6;#Fs?B86u~p!>HEU(bK1yF-4#w|nrugz(9N+s8@m76#v1n>`m_mj6&~j8f5m zIj~hd_&@<*E9qi@M0Z-}YegeB?9qRb=)dvif05{g)hp3w0TMm-|3;!0{^^naZxHvb z-y=AP8)0eO|1Mv%H}n#dG0Ww2zLWnO#C;71ao4~gZgZL2Pgy&u_QDfYJ_mca*veh> z%GUUxJ3ykJy_^Sd&Um5OLHdN2*+FEEcIB|oZj0x3%WUk(#X*II?B3a(Xw%*Gh5GfL z>7Kp4Sk|d2SDx(Ni>$7w1c}+fp+5OXMHg8&N-G~JB-+b+m+j|zmu@Ys-S_hF!Iosd zvG2o4EV$xJN=x<~T(?t9QhSGD=eI|f3Aa9N?WTNdtzVm;o{f#|E1jVq*=u&$BlJw? z>|r*%`f%7cmEK!y2aRjnJ44mrXSeQKefL)yYXJ=1nkn@73Sj8a*z`e>+~?aqWt-bu z`-=&Si+z2#>;>1?%VXzwq;ZSf2WSV!y+ezuAw38>w0N0PwSo2<#%~bEt}n>-MW6$pH|wCL9I!(Z9coN z!7%P1W(U(JQJk}t|=+UrK zT`P6Bt{-hbR%vt36YGW#*+mdaPkmXb^SFL(r*12}m0M?kOlv!Ajj~GXJVq%sWcac7 zj=&3_H}}{uTf;v7Op`lqRE#Upn|lXQjS}Ig=Chv2`BV3$=GbW;M{beiNOdPTR{8ho!ak5eo{;j zEG{5}$1_=vWVzIIjY72P_2PV(I(gTq;!`FTcv3LzyC==NX4=z4#}ItQR`dPIFGf1Z zIO)?O_we>#j0|?JJs`ywB^1)7p0MlNr@5n~X``fWy~ZuRy`O-U95^s>xzrE5Yv5eR)6g?+pbDu5MsL)65g;0e#}@)J!+=unvkQWl z+P?tOn1{~Db0%>%vgA>XjFAQvjtdqzv%%=3xa&E&{CI9-ZP&i;h>lIY3jo>DLF57^ zlZXSGupNP;r2qGO17Kzq4a?l8K<^3PnNSE&tDd;LU;Ds-D0OqA4M-1?(@a9EmaK)2*XoF`~rw#VLUJ!fw_!7%w?j%#2krdul9&2P5)_b zNv)P{P;%XoBjr#KoYG1qa+#jDFl8>(Pt73%2Ihsy*S=sp*&2)|!<{2|s;o8sgt#ak zQ1|8sb6ETeZu~@I6eNNI_=^j=5Q&T@1#gliYFb}z0h!$~gSAbPKhw6e^so^D0zNyK zZQ^-;F&_ZdB-`CX%Cazn+E+hHoOeFn83lM+-3fr_;f()LYd~HEhM|clhNrBD$Y=N6 zL+Y|75kZmK1Tb3-4+ZAWm;H;=o(()&V9VlHc-na%oQlaLvePsLLXrN991L4t@6|BS zi2fmWi5G#@U<91sP% z0Ft>A@^>|nA?_zYvE@{jf7XI|q49bNl`3TQ&;s{&Lluw}&SxY6<4TJKpS9gpebVbImp~n^{;!A<6C>jA!HCya2FvWBt7p{gK?tTEemKqEE1sy{S9jN zcN1yEK12*p`TP=;u=5sUs`Rbcpvb+K5c8!0D;snIyU2(xe{+h~zp%ylQW~P10fVY> zjlU>o_jeq4ZCOrQyeH*5@!s*%mJg3ex;sXrK<5Rt5q^w}$03}*fn&-0cd-Bz^x{M{ zDL+mQoz2nHL|X`y7`{nV8?Fk@frW1pEt1y^3bo8n!rrSca1RPs zVJS@%P@SLXQ$i47rol66UKOAZCzG|;$zXNnPq&>&%)gWi zu9POTt4e3DKv2{?1^RdeNst{bAm0!C*k1UaXvJE)O~agNCCWKp4wE^FZTzI2^#_!~cg4A{J;>!#)vo_0h#CzzcN2 zIp6lS_4D)rP6NP$08f29>M~TZH!(#2@@MyU1guRGt0S<2$N~QK5TcHR;r;;hF6gSG zA<}_E#_*R0(8j5*0&ov8sfFmW-Ia}BFG#`w&%_}nJq6}Ck5SKyMf^HyjQ|Y86B!07 zEdO{la%C{Q41S%`t^(R=f883c>?2@^+JkIv0CtI01Ed5kXq|$ZLKM|&N`yDgrZXA( zk48`dgvQo?ogaq(Mis`-4AZL0E&VrCXfNE=4+FNyngNQr9Q2G<#A2NRgxO&8lIC=i z-J>$4@OK1vo`Iqg_%#4fZF53FF^S5VJDz3p%OSfeIxnC&+@h3d1IxxrMCUCTS*s@C6#Ut`P5n zO#_JYP+;T&BJRJ`Fd`NBYyL_Q58)8mI4g*OU@7yKTB5Woh#!IuTEP9s5#4pPS-!?B zb&Og17m1m|&jrAlCl-^6RJs9I50*}_+F#~=UTC8qWA@F)5v32>rza`(ya{?ltN0>; z{h|^jot3_fk$Jd~`9($3Nz{B91DrK*ZP&aB*TB-dTxFYAV!)X|4Cyu)A3`p);7A8; zL3Y{FZ$NgzdwCyU%c_|6ZBiRsK!4f`Ngwc&O9$I#!H({g4}^2MwC6-tj@eP!Kb=vW zc~~H-H9g45OaA>wvC<88FSNn9mri1FJLL|O-4xYgPPvKM?d;-3>4crNb;3~NPM>V$ zJ`eoG?!U3+e^KXak{$8$|Np2{`u|3qoy4DiMjZbKbxIOZr`7*Z=kI@h{&@wW&bbCo zU)rDWA9|X_?SI;GSl;=AIvxL_P9#K~W+QLBOAmHqw^s4RIhFQBl|!akeH%ihoAW~% z^9kJxA!Kyixbx7_s}yX z4i%<8pFhFw=gju(&~$`tl!>cZ@&Cuyd&g7#zyITfqUEGPDKmu%B@OEw*))#GjHqNK z%AN;NNZF;bl9iE>omC+uPF7Y%M#wn!9^dQnq}TiP`rU4y-yiSW`@DL1uE)3@*ZsQg z_vvxr(@>!;)oOp9x-RqP@g3~N_8qk#I^8dp5<*zQz^ja*>cejNsx|kNZXzQ*zSVQs?Z#HQ>**7|l zlAkyz_GHGtVz;z9J5;rp)E+sZdG?!BgmMi+o!N_1BM5b-{u^~p2ny6+RqVtWkLn&j zA+~ql%%^RWm=#af8(11;OtKMvm!BM8>0ap`85;S$SUK}6DgPCw09DCzJSd-^ejg<~ zJ8e?QE-uYeyy_O0GSF}*H3fGPl#9JNb~wsYo9dH3A6o-+ zpZ-zJVgcET4O8r^WJ3= zDBa2W4^})64k@IfQj7iE=jYTTFLs5UkYiI4^qwgr8w=y*A10zhDw+d`X0- z?vXWnd)Iq~f@@MUT{H|28y(XmIyW&6%j-=G_#H#md%+ebX;NIg*JC(+g$3E~uB)Z2 z@xa9mw2Z;_9IsiuI9^RH=C74?Yx++VGWfTgs_j(SUEz8`e>vA#RBr!dvG!#xwhEC|}g%|^syoWto36>D_c zuMW5c6NO}y{KMp*GQB)(_hwdJX4YR>p}Rv#%AV~?uZ(DufSCTb!r6xK$DseHa3nb1 z8lrQiBo)u7T5*_&yy0-~;DDrv z@Kd|d?rt)%CB`Q02+#}pP_Vi$%IhuUq>O}*62XaM(N?65XX({)=)LLCYx2QSSRCq< zfCTL;h8y~JpBvEw!)?)xe17oJp{JDQdlN7}O% z6~kFhAf+7U<@_HMhQK`@g8w>aUD$N_NE^aghWB%N=(8%zlDH|F;6=GJj>wbvIt!h? zzd?R@DGro+Gz^j-NF40r?%->eI`AS!vNx>&w*Qym^s#muR!Qj_D7R~+4@@@snhFsE z&5PD^zrNdqkoNZN8g^ZRv0*ZQL?zX%U$VJ>raIG@X{Klk&DaqD|txH|J*l_J7ZFpHd<3TI=hkm0c z8#u2>wONA8uxt>K{N_&&44hl5;NqJsi0NdB4TuONn5$=i+y~O&G0b0rK^<$k z)_NHO5ddCVBE}@-`)^>XP2`wn( zH5T>GAG?uUtF%VytA+*y7g?3jQ1k#Z8gb!KY^oa}o+ug6de^*PLp)BxQ|$jS66)FjED}Y^#-lbD4Z}e3NN*vkEI3XCwxN9sy{q8+I5HfC$}6(wmb(S6hDq zK&>Ul6QI{U=!v265+>lgqj?EhTTqB%1cUCXfsZ1;Hww`bU!x@c76cP}IfO=4j1WN@ zaZgd$V+}*Xe23iccv%pPpcMLXO&RME3^a@Px%oFLqXaFiQN*Jk2V%3?=R|s42}rLQf=#jXK;0EXvmarg>_mJO1>}x>^x~rI+`G^sFG!Ucro_q*n zA-~iMqqs)bzJm=^)*Qt70{fr332y_n_Wv^F`G7spNC8ot8=zKTdB$Jp3Ji6kJM9qN zQwVDk*)xM6e+QJxvVV9ll`zO?N~23r@;4ACjb%gEviH3@kb*}L4=%;B%2&XYgM1y# zDPr69qnG;e>CoZxMutNOuLP7Uejq=4BBmiYp|3Do8we@*tKyJ?f95#B!Q}~yjfmjk zNtM=sj}}1HufL?G+5^$l7D#1*0Tv>m1Y3m|1l}_3CdcUfz&Zf7w77uxnEDh8+;?%m zc$OBJJ?}GTUVd3K^k2aAWWYzY7}Ei|gsBT<@h~8XMPmS{At7PqyPIHnBFdx~K*s13 z83fS{|G7Lxz@DO2J?_+CBclHiX@KY)nVu|^|ILQ{FPgQ$KS4{Fnc(;rh<`FfkQO@Y zUsMNBe4_CKt!AXoUxMolq!9;hfOW9EPk&8LV@aD2v80iPo%`nhH(woNJ?3S%vlV3b z5Q^*N9Ur~beTeMsC&ts^th~g)N>KMhNE-UN&KvAS3oI_iMxKbdZ5+%Gp_A(i&V$m2Gl-})q$i9~6MxjmQ z2$byxrh`J#R=Cts~c`Z#`>>Xrx@u(0`?PXGJtxn_Ty2Q0l#q+l|?v15;My@=gV(9yet z$w0Fp>^dYsvglmebHW~3-QK8*ZK*CIPOCv$cL#f&nf&X@ho$H`HulYnJrBq^r&J-C z6!l}==WBuMNY^DLmV(U8ASPW2Mc*6ylubv6UcY^E)2Co(;*gFhLmq)(=Q7f`&}~t; zoYwL)HOG&F?geD!p7 zWs#6dTIu;cSxE`aUmO}48LIzfYVGhoZ#lQHplEq|da%ip=<#3r`0lx()* z4pTF>ntBseGUZI90IQAXhhj*0x-1kz!gDz!zq+iiKIh)#ykkPB&rn*`1e1Sy!#qC&ztsZ3xd6g$!%M*--m|av=^j~m9&?PT9dh5eJnE>wu(F`-3Dt;p9hqR|1pHaGdZ<&^<@t_MTm$7BMzv*nNxA#( z<)?#-d;kiEAya6OTjc5WFc`=2EJGh7#NNgw4EUHj-T^}HqfQfP_Pu`zx$pzXu0o?6 zPd8LLncu0dkVn`PDLlp7LB#pAW^nWJ411$^%vS$zZcVQO0sz5YMF`dxB`X{ED||P{ z)n$4LZRDCv$@uY2FJ;7><0i)?1W`Evs{(r${Xv1J5H;82m;4`3!pwH2|3@P_kV9+S zBBiwMK{*{q%w5^>r?IXhE={P0It?E~s9eCPbXGt(Q#X6WBIk0?u@Xz$hC$WHs{ zJhC4N42;jAL=OX7;Mq)HrSYh|xeXR3p&C;1W}55}nr6c&kFt1uC|wiPD`h$HOX+66 z@yoA9r;WwmRvb-oeTIv8F2!(r@6JgkRBGg#laUGDHR;GpKDr8F0JrfV1J&C^8Ysy>Lf#t6adpu&DPD9N+Y zn+WAmphKYcjyyQzw;Q?Oxkpgxl^f{a6oAkPz97j`su|#(epg`17=m#Q}1596Qvk#0aUAK&sCLe}cQ^woOL$@W$WI0t))07B_QRBvQC{>& zQVD`Nn455CsCtByl#h=;xv!3dpVB|RyrE_NQk{JE-zK&D z-t5&lC$;|uc)(cqyVUMU7y10l63IL7q{`i)8$A6N`yqaEp{meYFK!pPHq3(aXt)5J zXOx?oF?%H_IrOl!q+KYhU5Bsrc#$j6hpVVLM3Xi#=$!b2fXU(Ljfk5pwKg-rVfHBm zZyIB|g7=TnSz$&(j~p4_WR=}~jg_vljRPD`1msb99j%V9Hi+-03AJGOP(>a^$QnQy z2_8;!FDv$_zKdlT5B$#0PX<0&v~+_AVFlb#GHBK#v`u zUe|$Q1!c^uMKS6iytVJd#>XE&*siDBAuC$OWIm3y3KhB5`p!fEb-4wygqVt|8GgJ( zr9LV`j!bNNVw1@U+^*f!oJf_0Wv9^(L}#sF0>JwiN?))BK=xqW+tDomIAb%r`_iRe zIVG%lO6tDBQ2qWQELK-+4N{F?H znt1UXLs|3pATAp?o){IEpG=R>+zOZ$(xT1O5bHrji1fu+|G7WaOh zB@s5so7WJi0A3$Ziv3bSXD{dFbe9w8xk(U|7;J`M#58iUu^(#KjcMDyyVhMs1JLxY z;FJSK7a>9+6JoWz^-T*jZuHSmuO@~k%JDVs)G2}z2~(D z22VgFD1!7dgU}a4_+_cr8w0EXk$)%qdSlC3X@r!4WEH#weMp3DXAt z5leR>Gy8=IEJvg}IF1y;SUt5846sTuJVYr~&4WZFmN7lL1qw((%);#0{ucGRb`8Na z5%}!1F!aqxl)lB(1{vWz{WZ<;*phoy%A)qc6EhvmYE^@Y``_dO#cGS9n8&a;A~(SGFsVHw3)h|wv}AZX zOuanNj$r%J@NFMh?V(RG6Hp3~IJ9e3-rfdVG>R@D4KylHxQlQWo@{6cGqbJ=Vral< zj`A9yW`R&I1V3$|JOFCF1FgGHLY~wRTM!8q*EgopLSRNN1(PLxA_LpiMIlO|WPg zL=Fzp{bZ)vdIGfm~857IZhV=a`E}bL+1JJgh=t3iPY-f zv*pE0BY&oE&IcFzk1fWRtU5c|WUW}uPfsqVhMKeeI9sgKNzh}CxITG*(tdV|lF=3_ zXXlgARz-+hSseNOXJujf=0Ht(W>|=2)1}+;&NV(6e!8}^p=~ZCoRyD{JJn#GL@U$4 z#C%x4F>AT`k|oJc(j~6Op#|nssB{RTGm{7UE{Yl=1@Y-$lK*n?g<&YUtVV zp9r)0IkEI!*{_YTp(-J`&tI9pYW}ufkEPpqX3u4^K&YfZ{@ltf67y~fKSiLkpw+A> z{4QJZg3{zTjv&5t)rLqtc*AsB?bdkO!WtT)KZ352G?3c(&Cc1SR0vmPFKU5D<*7Q#=)JJO&sx`qK?y!vd97 z*8LQSJ~zj__q;kKlU?}CK%d=s4ZNNpyqg6i`IRGPz97f{bthxYeVj3k{BPRax+hN% zG>xWKxKPou86Nf}gnY&*r_8AJ)GOBj-h#R(+ktQ!T?vl>sO)uHNSJ!d!rk+)X8jFZ z^*dKj--7>fJTds2L#?Ji1Q)-(rsl0pb-2g;7@g)t41=Bl3`#!tRpaX7#i2i!P{wZG zS^2kxW6A7XX%gQysr7$)zzJJ3Rnny1c_4^17C{OpMMI;=RSJ?*TQS|_XHoKJ#CrMj zi^VG;Yk03mX(`GbF=4r*p78h{EMGD~zb7k0mYySk2E`@6CU_MV!T!TyFRc9wMce5!L5C5EB7enI+odxp?uT~N=~BTVgbfhy_E>~@r1 z6Nm8bb>8C-qyzJnW?gcFbeV{TENyHSm)cIq1V2uW&G#A9lJ3|ASZ=7IcbYE%1>`v+ zKN?{Uiub;q^O%DI(kbM|V0oh5`|hGG;N=Wfd&VPdfusATABQSEeFm|f@ zP|h1V!u}r^uxbDD!ve!`EB5(kP%Cxz<>uokbE@csJ9Fom?IvL5`OkGA*8&i1r(+Tp z)P6R{YL$)3-i`w@9Gi64QdeS$1l7ITh`?E*h3x8>6 zv3yWA3$0@<9T1xCWk&uI1lrTSF8^!ty zztV~o0bMCdHWVno5kei89oY3xvvPj@iel=?RLq?aQ^yhzl=DUz;gb@mMoy0-ie7_! z(24SH?cI7Df&9uXjyXlBZZc}M``fD8>!_r4;pQfe_G3V(?O2CYosK|_wXrNWIz8_+ zP#_#j;(wo#MK0*V`PW{;=(mf$^7~uPI&e*l`O?X>rX^MyDz%#SdqGCp4t!OVZ5&SD z0U1SUEUm*C`3c_dkR&PiAh6tF!IuCfQ&733IDLg*=I&agSybIP~?bs7}Y00k{Z*+K{(8G}YBGbP%r z07bi`0lXl|ua^lV(H%wC*>fPAOS5D}*`QKGs7LEn#I~6WFA5XIYI66b#$U8)EuWxV z3s>l+#U=RO5tnYUd8EBfT!2T5<~ z39i-jsP-#a62K(+7Xp*#mby&eMj<}yXPn&oYZGbTqMg!|9;z#Cq9KjZz*i@_e#CW1 zitRDZfFhl)U+HZ=P;;CF;V{UpHoV_Q zi{}tVIg)&IjQYi}o*@{~fW15CKJ7+LP`0$o)CbE77US68yN8dUnf9@hmfRWT^?B>u zV%Kn76v`PD;bJHjZn)&ns5a;dJ!q2Qj||UZd5&r44MBW1DbyVHXSWY5b`6T|O}AwE zN_UJB^sd2r5>Djn-1fp0{)x^zP+1m#k1`K`aL7k+;^pEY7h2obD3kV)NvY)~yc&3< zZURtH70l#L&<20TR$$k*3e)s@7P`U0gH&5}#U6rPfD$}Ra@bb^-xl(qgY+I?q5hZ6 z^vT$YEgw$-&+O1Iv@Vg){Z=)!H$sf48;j7Tpr8c{@bK(ap9+9dyT+cKYh?qh;Pr_l z038llE9-l-%qLoJq7|0DH*d>RN2XU5ca1n_qwbqaTRx}=IXbZ^IJ;RBipYM3%uY9; zJSbiYKlnga4W^@a+qt{x^{fc>zHl19h~bV(CUe3Lln_%b^8eaqkAtMv$3CBaz@9aw zu2oEAK()WcqY|t9*t4RYi5~vpa}v_#+c1L40jW(_ftRp@4_UOtCA!O^U->erL@|-w zGptj-`qgM*WM9NjXBjC#I&r;;Xh61Dd`P2G826W;K4R1_4!oKZYt7QKh;0s53+)U? zfs*fQ(?QKq7@~u5-!XU^z!u(z<)%?C9*cQEnd!Cqal$*GRylo#vE73&eyTlkV=c8N zVi-pS3tVi6#HwG14dMY0bv+7voe`advaJ<-hua+$WzCN6&r6E2y;ce9BblD?;F~Y3 z53USQbNr1FqRP*x!&pc(FQ4gNmXdGh=o*VgL=BL{kfvs!ud5xOt9e4q6BTL;To&@L zU3~7ai%9!Eb3npksIISyn{#b#QiX=2wMiLg225*-Er4@Nz2~qlV}XLe;k~5Xjh>+M zg=$>L+>{VI*67b7P|@qy*)NC+@UQeUL_pExEhWCrKxA?6zo@pCRJGAN(w8e@G}q}t z8L_b&^dgn8NhIGn51tEBkfTaX6O0&n0m>N9Vaj|Aonon8q!91rTQ_CgCt53^J7Jpi zV7n=JCgsGAn`_h4(+*l6!}cTnKA9fQ=4s>eY2r80`!jl-%hdskDvTz#Za)-LSiLWy=z&C-z0#qV@mg8k27WdeX z1ugc*2eB?&%?)!uYgMp$rL4%Nuz|yFB`AJULpE~5-kl4~CQpHjOO@>&FTvMn79T4% zL#6D>H^KEbc991|rZ{&k2NUA$J#A&5-0!3|g{TjWELQ&}6*@Z%jIZR?n6J>Hl<2?V z=YN4|=FY0`VgO93{%>F^yar6G(V?rdx^U>K{6$-Gq+(!|KX&G7U8oajk-wj_5x?Jxk$P0jwb+?h7HbBidQG$C>Bal*mAl<^UoAYXP7OM&tyj9 za{M%~XU)xPitiFuZ;PxBjto(TJUh>xO=_GmWh(A0aImu^Wweu=t?l#Xtuj93w`wOB zgW8g?SU}3nZyjA(7;Ec;qgdM3j$#>An{BJg)Yu+^OA=6TYmYl~Hb?htKOs@Zf!|W7tUg-fpb@#hZ)=FTj1Cd$cO$+DKe*DahidA z=#QaJw$+KIp|kx^b~M(5Aa-}f9B0^+L{{%CGF>fNS-Ee$*j8=hnc(739X}mXUGG93 zHDmh~9@(z5JU_Kc$!Tf}ZIAp~#!1Y3k`OEubEBhhv_7ZW#(9?9|8c$#>JVvz0Q5zb zSar|2?K&a#4TT!)1g45bs!17jMkxpT{J#0yv1Ycp6}L2xE3$rlQ&sZf`tk1srU7Ex z=-ATxD6_M=!y2(SG^Ti;-8dP-wCxFb)0g^eQSoBat%buA<>gD6M3A6fFLYi`TOrMi z&DHBvm&3uUi&xJOMeEEun}=7X{c?PoLR`d(ri9ZQq;10>6>1e`m+I{lHYc;Y?;IpS z0i3EMTi2POQ`tkOxoby!}Xsta~duRUL(Z^)VPvX4+*Xs;b((*$G4f5IqhQ8 zJNCP9Wns0#kL~&kHkTNiQ>VT<%I?3ek1vWf5Sg4WboaU)%p$8Lx$l$O@#rPNzrszs zfQ@MlPfh^-yL#|%>%>}X=czxxWPY~`oUVWR2-Kd@9e=^-GDoyUz&FqN0HhzC@!xD0 zz>(H)@g!v=90ZzOP#)<0A$Um4uRa#<*1IQ|XP?O0)#~p99>#Z3fsz1R^8pKapaWc6n?f z<*_|&Tx$yhtH;#2?YZ{-mBQ$@;uJ9gw&z6Ib|wD^dyX6?1&Y{(cvL1b-q!c63Q|%u ziuyOz&@ZraMdMLLIH*7L84la*ha(I@2NYgN{WOdH`OaPD@gV&87LNA0eA|cu%yI4% z-Pu~R6$0kxw(~gkqwp=1i=hAwHTznoG9st8X+pBYPE6k_r5>0zH#@%3eyym5~l*kNRte_>*=D32sbKC8lu)376 z7sf-ircXU87;~1~d4bNGfFLU%kzV<=zd}RAioh<*w1oUDT!C$)2q-a&X>ofw0TPxl zzB_W*W7w4$QV5gavg<?d9aNh1ZVJXI|(j*SH?{IR4^;&0rF|4x_9dPq+ z&swjCYtsZZtp0@Q_#i)wIZ~l#v7+&2E z$Z6R#yCgrDV~`LhGj#xxuJaW=zYdJkJcWw?r|9lxyMtG33^Xm^YqbIlv2%)G(SSit zVAlO;n87kBQSq2pdg{Ry$M|&0IMRlo+@ZT%X}Sx#m>p}AzvLt zp-9EF&ed|-7@Z~c>aa&I7u(nz6z@P;4L?+{1BIn}w$a^1vG(>XC?5k+3#{5j8OmuO ziXhX@)|;>#6yaOT(6^#_cOR8nLF%(j9@!Pu!k|cll?aqL9&o6kX8%8Js2s{SsPBR* zc>%D7lQV2p0Xq~#!?eRe>1YVS_)1j_=v+d{r@T~N_KC%dJ{Vh4rieD04+xz4#XB*g zFXG~MjTipK<*aL3&QWlGD8L@X-WW9kKAxU~Mihh*UeguhWO@%04*)UsT_VEtjdQF{ z+34g0VJHC83DZSpn2R0q4z^d2+h={R>FAuPIVvZ4P}WS_nxg&m=LhCI+r~osX_}{$ zq%X5w8HJ7OwNjukEzg_s8xYp$?_MXp;_z+AAw`9Rfxf;sfEuzng=e9X3Sx0WBm@FB z$l^Vv{H*{}h;>Mes(2A?)JUJ%;zuhqoBJ_WRjg>1A4z%7wyUE9nH=**SQ}bKuLTDj zz`ogH$oV5wi20#_MQT{#D5$UR>URb@qukSatmNOyX~*?^$^R70f63SzgKg4KR(lsU zCbh<-Wwhp!*lmvxT-h|ZY`HjJ9{8A76S!N_4 zjl+qP309Tp_3XG|{q?92ZPjoeh*K?!Xw%lTSdb&ZD{bwhoHYza^OEHqU@$$91x)RMn2;~%WNTmgV2a*PeqHaQ zPs9AUvhT!P?I|owx0&D&vPNDsZFT~nLCHA{n$BcE+qp1nU1)17p zLT*!s=j6WuB0shg=^3BVgtH)G3$C={L*VG=KqYDV(u%skXj}FOz42R!CT^1n%vRx@ z)Vl}{z>1#Q!v;L@yqHHwI{g=!#yA2mNRIr=SPD`8qb+X(cGS+!Ji0_9D5~|)(?3Or zS!u3P1t=G3MpExd3DKCgL3M76zD*{Gf*tpuY~6Z6Z*Fr|3~z5GxP9|QMY}yY(BvJv zT1sMpLqS-C#hh3WRlM<6yi|Mj^0{YMQhXw*>c1<&luFQ)|Uf|*#ni6f#s74CnovBAv)`1aC9XLkiiWy*@5m0 z!e8`ZLAHo#fG{`J%V)6_>|BRfQNRg4TN1UNVnERqmgJqdGomdUaUjp;Oe)Q{|P_hCm0s2I>+c2#KmTnih1Z4xD z7+^0Am?@1K=F><;uZl9w@2Me5k#ZFKH!C+_>c6bqp*2?S8S91(ey{X;&^aw22Q65%m?<~O zDAegJ7N+ns_8TTG5{HJ`7CSq_T-uyhs;pM(+nPF?LOXK+f{vQ96?Yc376=!&j1(1p zDELYGpxLf-SKx=P`s||1VnN4Gosk)rpG!7*D@*e;^?#NZ>T~iNmq!Kp82c^0os@kgO%=UvAv~#qLEn>OFV0ylKp4^_~*ZxM7kngm( z0B5wcHO`LIHW}hN*AVE+7=}R0F$7A#np52}{b#Zf*@ssKKggk;artWO=aV(S&b{<<1M)?e8cn^Lx$}iyf6G zZW_$htCeT4c>_LZPOjrj8$foQp`L4d+FwEkG@xiH*u?8@4%S8q3B7%6cfz@O(P)eAo6{ynVM62R|=O z%H1`RWTyAu?5ZEps=THX9b-T5Dc%7L-5oXKaeFT*_DLjcIDBesm*D2WBQ(n6(2AYV z0%FcLTa3jdm^TL6w`-bUx33$x^5Dks_~sG~#h$A2&@)0DmuTg8O9%=SURaZ_R=U%$ z*c?Ud-LQlhxc8)6-S*&%+TgR0ir!0{xhxQ*LHS~GncuHCh|u94-T^oNg6$ttQbFY~pG5mY9!F3l5oPz_jcsGCsK3=B zO~}r`CJ<=xH`OP|(3iO;*hVBuDI8FLHcfx=Cw-BJe>Vb}%%YhCQTy)Aq@45Y-cr}0 zdWRy>CYm&YT(|oaZOeE@5aP|6P5GAXo`Mq79c~|O)w(!h`sZCg+oqIA`CNwRylv2_ zJjjBkI5^RAnse9ek`&3KI@+1XPvo=sy|o!~q=qTGJ@BegME0rhy$*DP6NVB4LC2;V zZgMl-*56|F>!6QP-51rTc(>YX%i78nbzAA2EgnW_fp&i&hl6a(+N%?*fgaIgt^dD1`tiyOi%LJ_QFDb}lrC#`E(S_aw?j zO8f{q?XVTjo`@!<)T;PgOmVH{CJ#hGp#o-Ss_2~5whMHF>HAJB^fHTQ(LrPUrxNQ2 zwecoXTb|%GqdonL_%}bn=gATeZ9!L-4@5<;U+JR(SN3k*=WOv5z3<0?AVYZHwQu3R zGqtm>a_`z*E4=Y~QO{2xa6vfX2!lJ&oJ%F!=_rdk zd{?`1!12U_{?iCaI8toDQGFmm#%PmA(X0onVrypN_gVHS1^!nXA3ncz(xUx|%dd-i z4xF7~knmp8e6!5tF-iA?habtS?zg4r)EjvpN;!;E5dDj=i2NOqy(f zWUff3qX@jLmTJG__xX-LVh@kMbFH3DsaEmH!jvt)(a5wq;og|#hwQ9lDs!!wO{r1w z=>lRAh3~tR!s6q)Ka=~>ZGrdnR;X*TW!j!uA?4VPxh0PJbNA1~V;kqUi*#NKkM{?@ z-TZK?SQZ3Mstw8Ociw!3@~&D+zF$qEKLfo|E|o~6csMpTll!fTazuz67mn#owq)6x zKujf+-0^G-%|a_au@?@{eSUpo9gsrRuRC2(%H6<$4@{CcwG4@PWV zyKm-y?%TnCM1X_K{Mi-RdwC*6z6a1Dd3L#%$L6)2@$QL+Lz6oLr|m0v_|d4{+vI_F zltd${I&do2AzKp4gX(PG=WGM>j7I(Az$8rlPXm^x7q-hrzN?jz=eKidx+VwjQEynL#>6W|DxE*M!E!X}uKsz6H?D+RKbs6~9)##Ls(eY2ZCZ50y z%}uPu=}ozx1`}Zq%f%f{ZMGfs`ZZqLCJ6zaSiU#P-A1nN>^QtX6))ez~m55-fUJVhz*x`A;yq`es*T zjq*frd=R&ojI}fh*PD!Ob=r7^ExB3+&KYfXx_>u9OP|}zwK~M`4AJp?*#Fw4%Cs`+dH9Kn$(BaDms8W$V+%2TezqHo9W#({Ynkkw&8p3f zKR7a*=Hb6&aS7b~qvBZ_a!^XuA#SScEqd-V5=|`IyE-ZP`PW6^ziIrM!kI`z|`1_tSt}%PYaO@*NP$EEc`}aR3pM zqLD!`nL4y@*=XIM%Bc@T$$-@ukTY~C77iheOGr$x|BJ=azccRsr@>mB{FVMI<7l`*CaYQm>9VHD;0FjiJ$FN@+X1$se(&Twogs z!Xjw>{JqjcKLEvDU>0A|+87=gR(1Dv^ra!Aa{Har3fW<^cUd7Y+i8V=Kjfs}W^da$ zzuStGC_->cAgaL@VL0zfCZ>>8e7?Pd9~~1g<7Nj_@lYj+_@kd!-{`z_&L3NAm{b`n zt~D^Jw9xKj4T{sqZ@k^XMHL#=){pfJO%e97_QiE3g zz*5*jE$-$e?YpGSp^?eZRoC|bG}R784o%v8O9r-coguhalYji?;QF#@e_0=_k>(H? zaG1=k*A@v`?@vY}(8AOAjm^UzV-nB;n_kQMrU$P~Uf=WxXt#u^JegrzwgWApsL1mJ zhR0x{yPssA%0N4KE|nw!HrKT!vRM-|+G?9PqI0!l(O#;w(30Q18BCzB*^y0(gsS!! z&YYmfKZ#$9qptS)DhFIsw4V(Y8H`g_9b_v~yY6s}SN9Ju_3Sf?ELO*<8s&}YsZl=; zM!#Z8V`;x`ve7~yhd(yBLvO3($Liv;J<~in6_?@|J2suW8vT>sZ}h2S#)l8r(dnQ0 zaQY{Gm1n5@I;#9PcKk1@bmRJPmIY8{$NvwiJoy(@9>`nMdd8S-*de6-KK_x-I;!OQ zs{Hiu2l>_rmnzQ4U|qVycj*2UQWut2KQVN&kHSkzc`9Wrq9Q|O0xmyYgy)O2%}3R6 z=EU-hUsL+?_p&||InFK3OtsDY7ML6qpzxEDe-xXWg;b4H@~@=XXOJ8n@*%HjNh-?w zpwppiR->jHg3B+?*L+72$jM*TcERhm|NN=LM@UX7Y8PP3?!U2bV%}lC&m#YTiKXML zwdF!ab$!hD`bNiJ~P#XWtmaopWO}Ewm;&n{<%oh1*b#bBB!QOIyq-usOi7oQEZKQdQ z=*9Z_J1J_qXNap}dBu(%whk69^X2u$E=cZ6)6Wwj@%^utUo{*?h7-Z0=rO zp_6U;_2qM#gq4vLVAvLq799(X_s$GG5Zb=FykeGnZgpj@uD?{0`wPf9MHsFh!4F6~ zy_`$B924U0Cvvjz;!@o1`P-#ikJ7>FH~7EmZ~p!)8`7t=Em>&HMUte$co3y{JY~Hh8J%h zZV}-+;w68v_G8Sk4=?IiRX8tp`&^TduQ>v(fqz>ovDP^8IPVkQ0Zbyn(!Ju-bQgmj zD%jF^Z+R5(B2Mb!uZv65-0k0EgJ**Uuk0H7Bk8&4@E?ZY_cHK+!(Q@=EiW#9c;k~W zd~)w+NVOkl=OPQk6CVG4LK*gi-{NsEPk8@+Nbh~fiFo=!o#~Ya^bGTK3<}2hn5*PB zF*N0M(N|}Kk6zhDC}rGvlxjD;MdRlf(T1-yCGr=ir=KaDwc>p$mGRZ>+!nfRij^7k zp)or2j7LoZl6el@fTL7YaEc2B^v4f!Iqr)wkW}RR-OOeG^oW4bl>+u?yQho-I(7Yx zF-~0Jtcks`DvIaQ6($6$!?bz>W%idH+vmd=JY|1coUJmc?>kYQb%)WtbiV4#lzlNiEM;hMP z31>Qo9ltL3VzIfwnX8{QHeW^YG0ho;>v2UYKHYsg=V}G*cm^j;=m~*Ne#+e(u}uP= zU;N_AQR9jET4j6GC`br=RAqU0BX4yT$5gcOlu%%I-@S$LhYfeGJ@mz=7)&1;oa4!2 zRd&d;^;$N1CH^$#p72kSP%o>T#Q5g5TW?`ndOEemrB=$vCq*S!|Up66&|f8*4}C*gCec$SUWG z9iV*rXzkJF`FqCgiI{wjXYkJtpEwn&t~#1r$vkMnc04Qo(4TG-6E^vZzFEtSyyE%r zj~BDz8Oy4oWUsK?9M2>+L!JN<3z2aNxwE-YfB}w}XA~xIjU%~4ba#DgbCx;*O<6(8j<7)$GotIKF9CUle zN?J#|dU*GiJh8`{VjHrm>9dG&tx`T(g+^RuRcI7?OiUu>D}vAmq3+X1gBw(PV}@6Y zyXRy`HJkQXB0i$w;Us-V`H{-1BAbpI=)G^h5VxATe>#KM+hf53#Trtl=`)CNEh;{r z(LHp0sSi6}M~}4+G{EtS7alZ;{5v5l*C*uPhc-gzRia)@f=*FMS4%zg4UgSd;qQFI zUI}%l(6#y@x-8}$~KRa(5tcU|u7azg`&lY^){!h1ONNa>MJcLW>3 z1v890Xaa&^l87Yq^QlE|4>5&|_~5YX&0P0inn3Jl{>_umrwcDf5nD3FEaTqw#Y090f9v2QQlZP;a-wpUxd~k z0neYrAA5yiAy|(MYFJDtIE($bFGCLte}-G1#fG@Qtm-{>sSP0@h*&p@S)_JiT)T>o z7KO!zpc&FDfmsdj7^grRBJb(qgARn34%iZ#BE3H|8U=$txGb%VS19xhj?kqqjJ#Ng zE&SP_*jcpxrbwK;kue=oibam4oZeNLjz+cFV2>(uIX&s$E^@3MnSB}T6lj6tJ)NJX z(DgO$r;3kuAx|`Zh_EjS>yUhMZ*Nd0Oz1_DUa&Bggax1v@HM zma&F%@vDp`$XtSt?$^7NdZ-tF7PV@A6^}(7VTc;XEh?O|ZLrs_bUt#JtPGzV^0zVE zmp+gD{3lu}L5mj^BVvC_DGKPqzoED4?(<(Xtwal-~cm4pj&Vm9@gdql72S4t%ODU{&T&*76CT#y4hQiwMsAoG< zJ$zG*z}L6eu4>xg&;(g)hVCp*gWYZHli96P_x1;Q*kX8?E5n6ST-qwli5waE`#9G;h)D zd=j3zhaX<93cGEKGY7Xo-6-$j5f~u>^uo(_R?W`o*{F4>>v~9UuT1-J-Ti8DG%c6; zVOk#Iz5b{j8KsOx$;;Pc+NBhG*6-Ue1wYbwbAt;E+ zc-CKea$6`(YD=c0Nk9QlwAs6Li`BAx5#3ouu|~i&umJ6oU`}Tnm~;faGRI+; zphq&hLU?Dtzfp5!R`?~Dk{3@6r+1qXf&$2Oux%K@(mc}$pUdajN`Bs2&tQEYRt?P88Q$(VJQAeueG5pDePCS3hoYS?h-)j^)YdXd~v@%g!A zJ7NAj%u>b{_D9S_gtms-W)VIQ_Z!Tdf>yIt$_YpG!LY}|Vm2ULGr%2QF5e)Ok=omn z;jq)SWH?=6ED>2!hkfuLaM+9h+H?$bE6WY%FMBClkZuI^Vw;^O_qlIH%<6p-*yf># z$5)+|^slQ2bJ{3`I?LjP^XYG_*ejP}D>boY6 zcG8_!T)tNd27djkb@{S91M#VGGtWE7qn_DV(E{a3KTOugGCOAlat@GY4zn^qQAX|Z|ID$mGm;V zIt%{8V~>JF&y5ln2|G6A(_|2&Qt?GwH`kL>E#{oJSsU!nD)>Co#h^y*ZQn>M~s#!Z0S$rNc#d@m5w#$2+!;nn#mm z!=}^svWgJKw3)eUJDFoVQ=jic8LFnVwKba9X8RFLJ54)k%xv>h&3{jhG>-gPv2ZL} z`QXsJ+FtEo>5|vB+W&jf$=TAORO?x}+4lXtg^RwU3;9N@TOlT6yoh(BHD$ zeyE_OWw|esxVl2JEzECUEv9_;-H_)oc-!_3!X1w`Dn}NDus>0$TUe{B_IN=_pjUCg_k`-ym2B7 zx<^R0-cy3(R}c=>wdO3o=v3!zA^&aGl-~98My2nOD{n482%z6|e_&QfPHBN*|7SlU zfpP!bCIhe3GC40VfiI~pG7&3+;k0h!yGdW3371jF)3q~N@C_>M8tEuGSjnpu_SOfg zx>oWshrKoSQxUnRSgMeD?T^0}@r0a(A|v-7&U5FbEfhC%o3!=_v7UQcs&LRDLF#-# zT7jo3_cjU%V+KUfQc$=TRz@i+_@+|-%PJ^p%TR3;A2!FXsj@G{1kXddla_^N_(7wV3 zj@ni6Cjl>xY}@_K{{=he$xEA$n6#E$#l1LsW7nPA2~sA)pAJ?gXoYp1m`HXnk-t1W zo#Fd<=EM%4xR7mBsx&-*_J#%FQHuUcGruN@5X^t1|lLe0Ur-O$7{Uuwa)+e z>Mc&ce4<`MQnBbuJ$qS|mG!GPj4w)lcpCAgsW>?sea8DAt`ZpBr3^bm3vGQ%x^Hh^ z+RUdqo8-2>#!_eYYtKD(l@sOl=>K0^R{<8)*0pI65EM{aq{NXFX{D4-6@{U@n-Qc# zq>*NZM(J*(LzHrWk?xWhQevnf^gqMB-~V~<=b7i>d6+%x-D|J)uC>lNd!Kz?GpTsw zgKPps4}54!@!i7P$@>=wpPxwIdz3q(-1_7@;qdp$XuQ?k6J}k`EviJO6gW8>DloxA z31mc;&ZLqF$Oef<`c@>|+H?yLEM)50V2@rUpBTd_3RL? z1I2WjTtE@~!HvwkyGCTaOhx!xR0#5Z6!5I5p188Yy3g|vB;hcsG8#*cwpPo=Lt<;_NB3gPg+b-12k!n1lVcz2_|o_y1;*=XQY@bT7XFQM<- z>F!Bc{vJo)0|9tAdH+7HPHQvQn*@T@Z|6of5*S;iFqP~_q`iXHE$D|d9tL#VTEWuS^L1jSgLaBlyc#Y3VUj; z>T@Yg#%1&CIR~dMU|&9NrZWWtGB`PO#dMaZ!U7$@Wq3MD@%-y2E5MC9mt8}d!vCX| zwr>nfHX#nGPK)1H19WZhi2=%VIU*xKY3W!= zvyD9qmjKw6^yDBLbUGoA0}1u5k@>wb=K$c(g;n^at+JT72Lb;YsUEO~`6gtM172c2 z9i;NX3`a&%4H%A$q!0#m|E=L;C0qbZKsGb4V4N>xP5!daooDu0nF=M@R6a_*<9uHW z&R(bvc1z&Un2(eeLDw+jy>q$_4qbX0Om`;;UYSl#`wl(=c*03kKvFv;+O?@ZWtC%S z<8FDx-P|$Q6I6U5FrqeG>p$ds#`qjE-wkF-{C45hvZmC z$2=$L`+&|a1Z4MJtbYE*uJSxItF>=j3OVR7Ts@wOPveq%-_8dcZ3!_1>1R?bjtA&d zh!1dm5C{nt!#z;8yS6aKn&sK^MeN15a#x-x?d_i%lwL&CMy0x~VJ_u{$v$p>w~3OB zTZ$gqW6nj$hb%?sEtxX)!WU1nYhi#N+f$aJmq)TsYwf#B(SZ9@x-X5rClB8P@-Y~4 z9?RgD5Je7Z>0pSGOo@v2VdDcZ#tbf5{r|w3qzf_Ug9(@6#O7DyF!iZ%7Ktm+i!d9_ zP5{)tAs0XL07nI$&svy|C&KkBX1#gUbegC94mvrw@)g2_q7fM|%VP0YC}t|6ssUTBV^}l!pA?{*ijmw}1BtPXX=6f>81+b@+cz!> z`AjUsave-QEZT{Jpw3HNUq2^jbOB2M=d74yo3&DLZl?_Zf46~V_7+t)b7dvq08X;g zkx&_g!;R4%{LpbwTxROBW!y%|%_Oz;ZXIBRsd0cMc|(>hl>z1)uWPFAlPLOXBI@2G z=oux%wughz6Y^Nuk)A!H9azB_FRf5lZE%%`-)0x?u!{L^t|T!Q+sqJW$khv^0RxP* zD^yE1W=Q=hM8WqyI}j5g1)^+i;MZH2aJz#J$`OMXvnUll7-B|u{_UqW@ZV;pj>ACT z&GiQ)lH$lUMvfK4;&6^0?;jp3*a5YXq3!(=Jc30DWI)!Rd5!`BY6-L@rI2eJ0ND|xENIZ7R(W2i z{ZmF$KL?<^c*ZC*Ivxas(?V9Hr%W+BAPg^7#59i#+cD~1lKO9YaA4w;8eDxI#?__( z2ks->QUrnx<3>+{iqHH1Z7ylVG&gc(0m<4La0NiXpJspSEE&5(Z4HF6WNYqa>nk?= zK4WyeF?!-7yckdmYKT#bmoH>R9aDdL0S?61#$OV8RXt}E6UNp69Wzz>F`RvZy38)r z;NkPI8c$3HxJcRgcHTR3X$%3sDgjL1Viae|{HwL4<56^PU1t2wH}9`^ji8sMDGyC) z-FoT_)LPqC08ayD9bQEovZ_Aj1K8qh6{jD?8Ft7fp80%87sMLyQsdzAJmT;c?te0U z;up_2pokpO$zgKO0dNXojLGCkYm>`DkSJq#(Z!#0@DMB_)0UETnFH3eHZvG8Ia8)B z4y^wC0FEJ9w#RCq|Y0MBOP@hJrd;nTu8bc*81rum2!8FEs zJrqz_d`XgtyliKxPSOeo@tKdZ1%4W zg?_)n{O7gjn)Hi+ZU!u@A}1^?s=rpvLadBk%*`}jxmY_`LNJ$|_WILt;5z5?8^In? zVQ1{XMnZ7SdqoN!yQTZfDcBY=nmzi#O*PrxK6D2WHuPih_^a4kp&3;xlZ2LJ3Y#|HVI~^Uaeq`tI>%<87YBIy1?etLC zP+VNRt)pDxksDu4ru}t1tnQd0;mbd%?%1CJ z^c4Tt%2A@HDP+8SYzY}+*(@}0bUKO*dHoAD*?Q5*+PpdoAp4=t6>nvjiJM0G`P8*} zqR#uZfQLrUmkcvAm?UW>6OagX-prpa@3|2Nx=i!%&v0OeZ0xp=8NW_}HJYdRXs5ih z{dL0guhYOJ>n72&4LEYX)u(PbzZ(|qhuUWPb%AK}Lm!au%$ZgjNL=h4`+YF{b+SHt z1|tu-I-BxVE-^%F-q?DqDPNXS(ZeBq%0S{*#G{s=#7B}6&8M?<2bH$geObJjzowVG zrrK`YFRwwuk!=?TC%b+%-&+P|a)F(0em%)BxR~^%m_ns!#Ijthpz7HXivpcY+dJhy zH}{79hBaYkrbI0wtFyuQDL;9*VLt*S#$Rxgo_g4dnx!E zRTb-u`=j5JGxJk&Y6h0h!Zkb+b(wy^b}0INZf5JJ5umgKTb1Fr3f-pk_4~*AmYZFX zpusgS*jsI#rQ?o*Dv@`rv*QO+bAs?0c2du%$>W*Cjwd7FBB5J;%Bgc8Vk-5D&uW|6 zA-YhhO;b}#?c@w(BTir1*ayWKXRRui?WiyU;?CKY1DcbjJRL+(V7_WE_wcEet+QJc zf9Z0ZX})vH=*`$$CmvQ86yogN_vWmwa5)EK3`taYDEB>-s# zk4eXm(^ZS{TEyJY?WqAl1-if!VO=TQJYh>+j~1>4<8wOm?uRdbPYUtu3F~~6@L?H zIZGIvAb#jy`~^JIb4 z_IzQ7(dxPm5VLT)ened58s?*VM`^Pzw&qc^;XD%IC&;!XjZju+Han8fnQPQEHo@kw zpPCrp_KcHR8lky%7Q~!F{ho5bt*150(TF%;NA}I42p#nsw?@ z_qUbd$$dr_c-({1)<){&29^y}ve3b>^ z6cPBECTON=Gcj;fW^_`M@U>N&GbN0QAneNqUI>-F*nC=r*n))e+$?||)PvnQ;X1;% z{Bo%xP_5L5qnt}I>~z6=aGQnP4_Bre#wyJDZ>2gT(PEX@<@e+L>Suiv)LeG{EGTi@)%{# zm9VtjEF)IO-B5fM3)s-o!m20@7iogb7YfK%ir67Nm7GmT`# zc-8x|!rY8I+YySJrYZxr1Ox=r~Fr_uz;Vclq3U_rrg16=+ionugM-EFlfaqJ4aQQNj;8Dp-S%N9a?%O;pu#Wx+D?9 zcA8gW#qZ{meNVYEeJvPXHkFXf72I4XDA7r=1f@k2Jmsh0MwZiQ)fXhQuJZ(VoQBf0 zJ(w%zR5|ZHH}8uJu(I;`iZ^6A)A}UMza)|pFLjiqxJ8I<{>WL$G5#~)_R6G>Yvhen5mENbVUSErXVm@B_;_22kce-}YZPk; zhDM-G$tSKdQ5p;Gp zgx--#VaTlJ<#rJ8tB#>#NOj(qTU)3X2+ku?dyKB}Q0-_YNTu*JN+aE!v@tc9=eTyU zfPBJD-7v8z^;XC@o$^bo_QHu!`xD#mI3jiodjS{1B~}qjIoi`$Drs#tYW@LcT9w*% zU(ZRti6*I!b@N{fuk_2s`vRNv%Qs`w>0);6g7Um%PoH+<(JNi|;ix0Ih08Qwg3D3= zEIKlR%a(xL+)tiIwy$w5Jmqwvk7Ufwb5XG2fNh}horS%9l>}66Q_=L%qtlH+p&e!T zRSPw@wMw!~2ACTkZ8G{!E2!wo(ohYK2(DH`P1If3J^kn=u8;An;LP50VQzf3rQpob zn56W>%I52{_oBxsCu0tKohte}Rs(F%u8*4u*7T@VrIVWoI`o%({q zk=Ju@Wr|dhvwLw;Gu{0G@`9hjg>O51>#F;}DaxAkSriBHh%qO=!N(09 zdG@3W*I)8D#8ND94By^lta!876{{>*(RX`6)%qdzeD`{m39TbX$;|ifykj&+UAu(0 zZ+;4xWz-#&k02EeC*>08r@YS_=HwytW(e_#QKVJO;3>FkqOp;`57cOK-;FiL_KPkL z(;-&iu9ER{oit{rlStZyBK(hp?R9o~a%Al?4fLPear`G}e;i_Sxmj-zt$h3Xg}-m$ z%2uc`7oT10+m@>v4_Sw6ugA9Vzjnjk%!LZUwT8W}rotbx=iN+h4ZVe(ur9b|`NG^Y zrG|G)ynI@YZ<3Vr&8MG<>*4l!IvsUl5)&x%ZNI^X4F@clX zRZ{hK?K)!NV*eqS5bYg1e=veUD@35KW49Oi)_=`*d^YK0vu{K~l_5s}3CMAZ*e3?B9yF{s~j86abTSsb~Xx&e=bkT~m2 z@!X*pS~$^oVM`6IWbg7;qBzjUmXdVlD2=LFpsnGZ_w!YsAYOg-RPfzkT;h%N*1}ay z7fbp=&Re5#t=259SObuC_S@`^d1fS}Bb-mX899&obBBraT)&#YoQ*1B4)curr7x^o zcp4PE2B{VUK=DMR=T%+0wI#~b+jAk#6<^w(V+%gtzw)imELPc50@fW-!=YH;RDFjN$Wl*jKtbCqb#vZ@js!o&v50grr%y&Rl5@AWdkO=a&t$E)mZDj0DKD zaC2kw`cakrG~qDGL>*$&z6|k5TI-*~LIo~Mdd94EBH%ZK@0%DKtSYH<%9YoT{k^+n zjCEs_)lfO1?p2IYzy(mM20cvr3Si*zZd+Jfr%%CHt@aQh|03BQ>@ z%VG+rbJ+|nfk{!s>2=Z~vsBKsEFr=8t ztR8oib2`!P5D-^38U%cEajVVCa@6P*e{j5r({BrZx zs|PmsPg2h38fvFH%ZI00TzYd<+4_4ZJjB8nMM5AFNibAlEY*`p*a-oL5+A2SC=Ur+ ztS(+wP$X&l9wFM?a8+_@MprxK)my)}N&~jH=#038WpKg$J!rC3g08O=>NKUg-$jhB z#CRGg$rNL0In9xhJbhm8dgHBKIA7k`PZTcFOkdX0EF=2$7{CoIm@4nS7e2UgcW4rK zjU2gQaNUj&)@koiJRmxZsz^#Ew2`A~m+^3n#gcwyl@|O9A9}TW{i8t|YA?I#3UcEq zb_{O_`@YP`+D!1(v{=uwG|1!QXFS`X4dyhs<-ho3H%zo$5YTtKDdKN{z+Qf&snPS)46xXQUuHtr&XsY3_jcg+>uL*zs~%?h@@M{ z-MX=+P&gWChPO!-*C)*6kh}pI>sblJA9>y|lXkrE&^h&~q${kG-#zi8i_u)!#>4yw zo`yrJGSNJi8f~LCGNERNf$h;Pf2N;h#yDGjXBh!P#G9U1&+nQ4G(bP+X)CE#$L4&G z<`A)tC}D;1+P{VId(wU+Ku~@$@6CPZ(e>V^(xLtnJ;a>L5Kk@<4eoxGxiWOrMh8~4 z*qT8q_<~>udYa+hk+O_x)HK7TuiPKPv^j5%1U1+Zyp$`j6z43X)m;*ybt9`gB&8gQ zP`_tVt&{9sP;xxvw(LHtG-vE|YmfiYtJSs6>$5_z@iQW4kA!6-omw!!;yIYxCNkF}u%{nxt|1ImV*d1i z`dJKJj6)YUjec766+5XTx5aDK$XnD)4F1XMiLTR3%fngln|3hwArLJDKW*KcpxYns z+KUE}>-in3Xpv*L9A~nh3Rl=qWzT1wveQpY)rWU2OrEtY-j`9N zFz7ZPxF?KI-0sd@xGnwW{+x~Lyl1>y%>A3ktqz%>irojR1`nOfiMG5-;i%znxq(+U z%NAUv91mKM(6G*${HXByVr;eI*ult7mt^3 zHBjw#R=hezXBeg1g>Y~ACmY~(P>px0t2RB+EKjdZ z*aJg+>E2}TNs&|hcoV7IH}zk{9fj--!@nxH_V92m+tM|r1*OsK;Ri-2-jrQsH!O+K ziR9YlWRTjzxo3gpy~^U8nOD1`9L>Pjs>kyhbaHpmU2wMJ>x}Z48jYqzgwA8ah9!gU z8?{~2+Q9_yuK_`$6gjFqtA~xBZq_U4*=^Fn?)c|;4$KZhuE{J54dhQM6Ebr&9VTtD zJj%Z^@^aF_G%P;?8Zm>^N$&YcU!-D3Gau?)CV&0rRo`nx>4N>AS(!2;@Jaffii)1ftCFC=4wSAJt$j-rinw-9T^HnRD1~=FsMlq!(%#K_Y0g?#amz&+ zPHiD0+4c%6OkbrLmh0UtDU5I0GIO^YNfh9r{9{tie0)}F(w%$rHhttA7#G3MnAy1< z#*gD9y2;2K=_6_oRc=2k!Y-n)@HMSt^iI}|P5;V_KnlCBkTkLzW0bmtvrW64>F^lc z3EzQA6-%O93zYdg8C{w3jF#!}AyJ-A!BEHsVNAqXYDWh0oZ-Sd%1iI|tkNB~!GeDM zfvePbv{$i)8+dopK1K~R_RT!^_dt8Swvw_gnO-F-Z00~dV4yai?aH$- zTfEgut{@2`&v&L?q+a5Zo%y*qr)>56THhaMaDDgV#q<^1|EJR zaem&P;4QsDw+}2HtX2D-Vg=(@ad3jE7E>0Yqy3t0wPmuGxHOdWzba*SVR$&@NKwYI zlF&70_lsU4+;6E-?diDy6Y`p{)a|jI5$P(P?$UsrO}-xwk3^v_$3BsNAPr)6*=cZV zTKo90{prLU*I8&sJ?C_T%sbSx9WnO(T4_k6z}H+JmndcZsE0?yQs3(R^h#H?8`LOk zWYu9y7jffG!3)_xvhREo;}Si@%HzQ%@?M7fzJri6msj7**om08Ru-!FyZMtSsjEed z^5g;O4_c}Euk8tT zsxFyaSqABDO+xsQ%z9Y0hYsOVgh~0J7#%S%X+pOcQupTWXxW- z)f9!5=ufYVz5j6i&Zi|<$pn8!TOCC9UVgvX9LeV{2Ic7$7y6f*gSETXR>jB)!C|ZR z@C@xEtXB{1!WUIK2<*rt!D{ZHeCeEF);?6>GPdsv?F?FJvc{DvcY~g)G`XxdKJ0Vz zkh(4CbkJ03*#IA51@JyaB?c8@>;zr1fOJ;Upy{%a$CG+{_t%>U9hkQ&LVOy69K&+m z0&pv)3kMD^Ug)qpH9DEizf8_!6E%ulNy}*+GC>b(OpAf%Dpo-gva12xUQ0@x72q^a z(JqiDPp9#To2L$4-Do;At4f5yx8Y!rcUzH6bC_rQP5bJei}HuGxt^}lNg@-d@UUU; zQUPh2oQtw*!*fyp%*};xxl*JzxmN4Y2j^5rACLt9_pTLz(~n~(U^T^FCFD^BO?DuG zepG5kQ)W^I&cJPu;gAkx%$PD=SYFQ$uCsKZ4CT(|WsQx6X$fq|)Le6PQ~umd!^o&> zLM|3(@^+WzP>8`4$aK5!KC`mpW(Yng@j?-6V?YF|PDmwkXuH$i6LxGXr@!r@yeRsW@O`^mmi)o$QdHIC ztFWcbeAgdGNUqg`N#5-U9Eb48PafL^M)51q&`CSv(?i0u6YtU5mnO9y1e5yp)o}%4PS*^irkTs4KM@3XdkMWPfuc}L zGgq|kaJ}DL_iCvAj?u^J(KjAldt}F4)TPs{CtnJ^Sj+;kRb>#!6P_-pN}( z(r&**OkNwy%}-Ay0n3ZkB?Kz!m603hbHKtsTfdHEa0=;=5S~^~m68m@oowJ=Nz-}n zs_Tl4=WMMP?dh^Ee_%7pJ3cHE;mlXDyZ({bkQ4GlL~3YB%KP+{Flyynhp63WOB(hf zAqm_n#$@JQ?GJ^>GQU=`-WWpl?PT2VqKdu^twm)sILBcF&-Zl51g;Q?^{nttj;Oi!`6!f@Uo zQRVWhfc3k@ie`oQbi+bIxiq2mM*OkQlnha08bl=UWF=)Fg|sFkfNO!&;;XBi|L6qz zCobOo?N|h?>0QFxUo7u3n&Nr5MTi?kdHo35 znH?ClvXfL;3UWQG5|}n(tQ}>mM!A|6TYrt+{&qb+rn15HP!Efr=g?ez!54NDOfE!? z3u62nD=a#H6=Vu&ZNE#4=fC5cblT$YjUVf)H=xJLYZOG|WSZpJF!v0>Gz!{kGg@ljjwC#15;tkv zjSyB>N6eo~Viw{4KHd3L85@TinDit9K4&RmFA`+OUdv$vOK`7XVNn88q5nK|pEx?a zGIw}o_`<`<9HNhz7yUOt($r=|86d?0fROw{It2K}(8b&i!pnpC`)|RNZ`pTMfu9)R zVqua0L(l;S3(MV(7qgL(iKC;db?+|}fV(J?^ z&fZlltQQ_wSTz5@F~a|UCH}FS(x0?ZBmMEw9ni*<5DN&BUYWzcxQqqhH4K)z5#_<3h7tLuXi5e^ zq5B^cMgBjc2>b~}@IW!14?v;(ACzIKKcWc!3FY_q(Eigdit2wv5&9F#@9z})CrXF@ zA5kvfVEb?D{=Nb9KT#gp{SoEzZAAY@`F#_wf1->6min9Tzf*#-@{Ql53X2Y-l z9$I04MEPs`uYbe*zApctFr~0R!(2Y^{co7xmstE0=6c?rVg5+p-xCyOJ;r~JcQuzV a|Fb&dsWLtR=2sNJryCCo3p$AT@BaWQ9!4Di literal 0 HcmV?d00001