From 6b37ca352d6c28a56cc850c44b29e2969cfa8e71 Mon Sep 17 00:00:00 2001 From: andreasohlund Date: Sat, 23 Jul 2011 06:53:44 +0200 Subject: [PATCH] Adding nuget scripts from joseph Squashed commit of the following: commit 6f8e2eb57dca93fc8d61c0496d8c3cb7eddff004 Author: Joseph Thomas Date: Fri Jul 15 23:34:36 2011 +0530 puting back the removed file commit eeddb43fae49df9a9c53ef9726579572c0710719 Author: Joseph Thomas Date: Tue Jul 12 00:41:05 2011 +0530 added delete package fuctionality commit fddd3a6745523f2cd285676afd5dba1ee3261ef1 Author: Joseph Thomas Date: Sat Jul 2 10:34:16 2011 +0530 removing libs for tools from source repository made necessary chnges packing script for the same ie fixing the issue #83 in suggested way added parameter to add source target while invoking packit commit 001b3b409ba180945edab3e179a479a2d20ff2de Author: Joseph Thomas Date: Fri Jul 1 00:43:58 2011 +0530 Fixing Issues #83 and some refactoring done according to http://lostechies.com/joshuaflanagan/2011/06/23/tips-for-building-nuget-packages/ commit 7b15647d06ef09abb50f7d04936c70362453425a Author: Joseph Thomas Date: Mon Jun 27 00:18:01 2011 +0530 fixing issue #73 commit ccb633be78e12a8af5484f23b5eca4740381c9eb Author: Joseph Thomas Date: Sun Jun 26 18:16:21 2011 +0530 Moving Nuget and package utlities to root commit c3a7e8e07edfc693db3670a8451d6e6836803ed3 Author: Joseph Thomas Date: Tue Jun 21 21:19:46 2011 +0530 fixed #66, adding new nuGet.exe to tools commit 2cfd8dbcaba8c772b590386131670c6f7d362cf5 Author: jpattom Date: Sat Jun 11 16:24:01 2011 +0530 reverted the script to copy files to build\lib\net35\ commit ed4f3c272e15852c3b823465c54e43fb7303f76d Author: jpattom Date: Sat Jun 11 16:18:32 2011 +0530 removing build-net4.0.bat commit cff485c483f9be29235ca87048f68b942501cfb2 Author: jpattom Date: Sat Jun 11 16:09:16 2011 +0530 Adding psake to tools and Creating package in psake way.. First Draft need refactoring commit 8c127809c2d8d179c10402b398681ab269416ff4 Author: jpattom Date: Fri Jun 10 00:31:50 2011 +0530 Cleaned Both packages NServiceBus and NServiceBus.Host commit 15db21f266ca6d1d5d280534fe0ef7b33503d0ab Author: jpattom Date: Sun Jun 5 00:31:17 2011 +0530 Fix for issue #52 NServiceBus package will get added with all the binaries Tested for All and passing only specific libs to add. The Fix will be applicable only if builds are created using build-net3.5.bat and build-net4.0.bat commit d619a1469fe197cad7e9b317dec4700e010f02a9 Author: jpattom Date: Sat Jun 4 00:36:29 2011 +0530 Code Changed as the Nuget.exe is taken from tools. commit a65efa52f52ebb7b3cc0db4834ddc43ec39134a9 Author: jpattom Date: Sat Jun 4 00:32:27 2011 +0530 Adding Nuget exe to tools Fixing issue #50 Add nuget.exe to the tools directory commit f16367c80c6d012c6b67a137a4ba319db9b0d516 Author: jpattom Date: Sat Jun 4 00:27:07 2011 +0530 Fixed Some issues in packing NServiceBus.Host commit f5c9886af80b04132fb8cfadfeb37a0d77e96b4f Author: jpattom Date: Sun May 29 01:32:00 2011 +0530 changed writing xml to XmlWriter with proper XmlWriterSettings commit 158322b2c3a4d62b8090ec7767138f1d9c874820 Author: jpattom Date: Sat May 28 22:25:17 2011 +0530 Made the checking of Nuget and .netframework proper commit 720df041dc8495eaa27dcf0169bafab6ac86e2bb Author: jpattom Date: Sat May 28 15:48:25 2011 +0530 Adding Files for Creating The NServiceBus packages -RuNOnce required only once to make the Pakaging Machine's Powershell to Use latest .net framework Other Folders and files are for the Pakage NServiceBus.Host commit 9c68c2e85fdb7ef2b1ed453c40d56c6c1344e0bb Author: jpattom Date: Sat May 28 15:21:22 2011 +0530 Fixed the issues on fie=rst draft, ready for the package NServiceBus.Host --Pending: PAcking of Library and Executables to pack commit d4fb4c7cdc2ef81bc6a01b5da1e48f032a80bb8c Author: jpattom Date: Tue May 24 21:41:31 2011 +0530 No change oly line is changed commit 91fa1ff91ffce987317ab8c721ed5777f887383d Author: jpattom Date: Tue May 24 01:48:36 2011 +0530 Adding the first version of the powershell script to create Packages --- NuGet/RunOnce.ps1.txt | 4 + NuGet/packit.psm1 | 276 +++++ NuGet/powershell_ise.exe.config | 6 + build.ps1 | 3 + default.ps1 | 49 + packages/nuget/PackagingUtils/packit.ps1 | 3 - packages/nuget/PackagingUtils/packit.psm1 | 92 -- tools/Nuget/NuGet.exe | Bin 0 -> 414208 bytes tools/psake/psake.ps1 | 5 + tools/psake/psake.psm1 | 1208 +++++++++++++++++++++ 10 files changed, 1551 insertions(+), 95 deletions(-) create mode 100644 NuGet/RunOnce.ps1.txt create mode 100644 NuGet/packit.psm1 create mode 100644 NuGet/powershell_ise.exe.config create mode 100644 build.ps1 create mode 100644 default.ps1 delete mode 100644 packages/nuget/PackagingUtils/packit.ps1 delete mode 100644 packages/nuget/PackagingUtils/packit.psm1 create mode 100644 tools/Nuget/NuGet.exe create mode 100644 tools/psake/psake.ps1 create mode 100644 tools/psake/psake.psm1 diff --git a/NuGet/RunOnce.ps1.txt b/NuGet/RunOnce.ps1.txt new file mode 100644 index 00000000000..7798005f73b --- /dev/null +++ b/NuGet/RunOnce.ps1.txt @@ -0,0 +1,4 @@ +reg add hklm\software\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1 +reg add hklm\software\wow6432node\microsoft\.netframework /v OnlyUseLatestCLR /t REG_DWORD /d 1 +Copy-Item .\powershell_ise.exe.config $PSHOME +Rename-Item ./RunOnce.ps1 NeverRunMeAgain.txt \ No newline at end of file diff --git a/NuGet/packit.psm1 b/NuGet/packit.psm1 new file mode 100644 index 00000000000..0474bcc736a --- /dev/null +++ b/NuGet/packit.psm1 @@ -0,0 +1,276 @@ +#region Public Module Variables +$script:packit = @{} +$script:packit.push_to_nuget = $false # Set the variable to true to push the package to NuGet galary. + +$script:packit.default_package = "NServiceBus" +$script:packit.package_owners = "Udi Dahan, Andreas Ohlund, Matt Burton, Jonathan Oliver et al" +$script:packit.package_authors = "Udi Dahan, Andreas Ohlund, Matt Burton, Jonathan Oliver et al" +$script:packit.package_description = "The most popular open-source service bus for .net" +$script:packit.package_language = "en-US" +$script:packit.package_licenseUrl = "http://nservicebus.com/license.aspx" +$script:packit.package_projectUrl = "http://nservicebus.com/" +$script:packit.package_requireLicenseAcceptance = $true; +$script:packit.package_tags = "nservicebus servicebus msmq cqrs publish subscribe" +$script:packit.package_version = "2.5" +$script:packit.package_iconUrl = "http://a2.twimg.com/profile_images/1203939022/nServiceBus_Twitter_Logo_reasonably_small.png" +$script:packit.binaries_Location = ".\binaries" +$script:packit.framework_Isolated_Binaries_Loc = ".\build\lib" +$script:packit.targeted_Frameworks = "net35","net40" +$script:packit.versionAssemblyName = $script:packit.binaries_Location + "\NServiceBus.dll" +$script:packit.packageOutPutDir = ".\packages" +$script:packit.PackagingArtefactsRoot = ".\NuGet\PackagingArtefacts" +$script:packit.nugetCommand = ".\tools\Nuget\NuGet.exe" +$script:packit.nugetKey = ".\tools\Nuget\NuGetKey.txt" + +Export-ModuleMember -Variable "packit" +#endregion + +$VesionPlaceHolder = "" + +function DeletePackage($packageId , $ver ) +{ + $keyfile = resolve-path $script:packit.nugetKey + $nugetExcec = resolve-path $script:packit.nugetCommand + + if(-not (test-path $keyfile)) + { + throw "Could not find the NuGet access key at $keyfile." + } + + $key = get-content $keyfile + $key = $key.Trim() + + write-host "Package to Delete:" + Write-Host $packageId + $ver + &$nugetExcec delete $packageId $ver $key + write-host "" +} + +Export-ModuleMember -Function "DeletePackage" + +function PushPackage($packageName) +{ + $keyfile = resolve-path $script:packit.nugetKey + $packagespath = resolve-path $script:packit.packageOutPutDir + $nugetExcec = resolve-path $script:packit.nugetCommand + if(-not (test-path $keyfile)) + { + throw "Could not find the NuGet access key at $keyfile." + } + pushd $packagespath + + # get our secret key. + $key = get-content $keyfile + $key = $key.Trim() + + # Find all the packages and display them for confirmation + $packages = dir $packageName + write-host "Packages to upload:" + $packages | % { write-host $_.Name } + + $packages | % { + $package = $_.Name + write-host "Uploading $package" + #&$nugetExcec push -source "http://packages.nuget.org/v1/" $package $key + write-host "" + } + popd +} + +Export-ModuleMember -Function "PushPackage" + +function Invoke-Packit +{ + +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + + param( + [Parameter(Position=0,Mandatory=0)] + [string]$packageName = $script:packit.default_package, + [Parameter(Position=1,Mandatory=0)] + [string]$packageVersion = "", + [Parameter(Position=2,Mandatory=0)] + [System.Collections.Hashtable]$dependencies = @{}, + [Parameter(Position=3, Mandatory=0)] + [System.Collections.ArrayList]$assemblyNames, + [Parameter(Position=4, Mandatory=0)] + [System.Collections.Hashtable]$files = @{}, + [Parameter(Position=5, Mandatory=0)] + [bool]$createWithSymbol = $false + ) + + begin + { + + } + process + { + + [string]$version = $packageVersion + if($version -eq "") + { + try + { + $versionAssemblyLocation = Resolve-Path -Path $script:packit.versionAssemblyName + [System.Reflection.Assembly]$versionAssembly = [System.Reflection.Assembly]::Loadfile($versionAssemblyLocation) + if($versionAssembly -ne $null) + { + $assmName = $versionAssembly.GetName(); + if($assmName -ne $null){ + $version = $assmName.version + } + } + } + catch + { + "Unable to Find the Version from assembly due to the Error:- `n $_" + $version = $script:packit.package_version + } + } + + if((Test-Path -Path $script:packit.packageOutPutDir) -ne $true) + { + mkdir $script:packit.packageOutPutDir + } + + $packageDir = $script:packit.PackagingArtefactsRoot + "\" + $packageName + if((Test-Path -Path $script:packit.PackagingArtefactsRoot) -ne $true) + { + mkdir $script:packit.PackagingArtefactsRoot + } + + if((Test-Path -Path $packageDir) -ne $true) + { + mkdir $packageDir + } + + + $packagePath = $packageDir + "\" + $packageName + &$script:packit.nugetCommand spec $packagePath -Force + $nuGetSpecFile = $packagePath + ".nuspec" + [xml] $nuGetSpecContent= Get-Content $nuGetSpecFile + $nuGetSpecContent.package.metadata.Id = $packageName + $nuGetSpecContent.package.metadata.version = $version + $nuGetSpecContent.package.metadata.authors = $script:packit.package_authors + $nuGetSpecContent.package.metadata.owners = $script:packit.package_owners + $nuGetSpecContent.package.metadata.licenseUrl = $script:packit.package_licenseUrl + $nuGetSpecContent.package.metadata.projectUrl = $script:packit.package_projectUrl + $nuGetSpecContent.package.metadata.requireLicenseAcceptance = "true" + $nuGetSpecContent.package.metadata.description = $script:packit.package_description + $nuGetSpecContent.package.metadata.tags = $script:packit.package_tags + $nuGetSpecContent.package.metadata.iconUrl = $script:packit.package_iconUrl; + $dependencyInnerXml = "" + if($dependencies.Count -gt 0) + { + $dependencies | Foreach-Object { + $p = $_ + @($p.GetEnumerator()) | Where-Object { + ($_.Value | Out-String) + } | Foreach-Object { + $dependencyPackage = $_.Key + $dependencyPackageVersion = $_.Value + if($dependencyPackageVersion -eq $VesionPlaceHolder) + { + $dependencyPackageVersion = $version + } + $dependencyInnerXml = "{0}" -f + $dependencyInnerXml,$dependencyPackage,$dependencyPackageVersion + } + } + $nuGetSpecContent.package.metadata.dependencies.set_InnerXML($dependencyInnerXml) + } + else + { + $nuGetSpecContent.package.metadata.RemoveChild($nuGetSpecContent.package.metadata.dependencies) + } + $filesNode = $nuGetSpecContent.CreateElement("files") + $fileElement = "" + if($assemblyNames.Count -gt 0) + { + $libPath = "lib" + foreach ($assemblyName in $assemblyNames) + { + if($assemblyName -ne "") + { + foreach($framework in $script:packit.targeted_Frameworks) + { + $source = $script:packit.framework_Isolated_Binaries_Loc + "\" + $framework + "\" + $assemblyName + $source = Resolve-Path $source + $destination = $libPath + "\" + $framework +"\" + $directoryName = [system.io.Path]::GetDirectoryName($assemblyName) + if($directoryName -ne "") + { + $destination += $directoryName + "\" + } + $fileElement = "{0}" -f + $fileElement, $source, $destination + } + } + } + } + + if($files.Count -gt 0) + { + $files.Keys | Foreach-Object { + $srcResolved = Resolve-Path $_ + $target = $files[$_] + foreach($src in $srcResolved) + { + $fileElement = "{0}" -f + $fileElement, $src, $target + } + } + } + +# $packageContentPath = ".\Content" + $packageName +# if(Test-Path $packageContentPath) +# { +# $contentPath = $packageDir + "\Content" +# mkdir $contentPath +# $packageContentPath += "\*.*" +# copy $packageContentPath $contentPath +# } +# $packageToolsPath = ".\Tools" + $packageName +# if(Test-Path $packageToolsPath) +# { +# $toolsPath = $packageDir + "\tools" +# mkdir $toolsPath +# $packageToolsPath += "\*.*" +# copy $packageToolsPath $toolsPath +# } + + + + if($fileElement -ne "") + { + $filesNode.set_InnerXML($fileElement) + $nuGetSpecContent.package.AppendChild($filesNode) + } + $writerSettings = new-object System.Xml.XmlWriterSettings + $writerSettings.OmitXmlDeclaration = $true + $writerSettings.NewLineOnAttributes = $true + $writerSettings.Indent = $true + $nuGetSpecFilePath = Resolve-Path -Path $nuGetSpecFile + $writer = [System.Xml.XmlWriter]::Create($nuGetSpecFilePath, $writerSettings) + + $nuGetSpecContent.WriteTo($writer) + $writer.Flush() + $writer.Close() + + + if($createWithSymbol){&$script:packit.nugetCommand pack $nuGetSpecFile -OutputDirectory $script:packit.packageOutPutDir -Verbose -Symbols} + else{&$script:packit.nugetCommand pack $nuGetSpecFile -OutputDirectory $script:packit.packageOutPutDir -Verbose} + + if($script:packit.push_to_nuget){ PushPackage($packName) } + } + end + { + + } +} + +Export-ModuleMember -Function "Invoke-Packit" \ No newline at end of file diff --git a/NuGet/powershell_ise.exe.config b/NuGet/powershell_ise.exe.config new file mode 100644 index 00000000000..ba9173bb462 --- /dev/null +++ b/NuGet/powershell_ise.exe.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 00000000000..52f8d201c60 --- /dev/null +++ b/build.ps1 @@ -0,0 +1,3 @@ +Import-Module .\tools\psake\psake.psm1 +Invoke-Psake +Remove-Module psake \ No newline at end of file diff --git a/default.ps1 b/default.ps1 new file mode 100644 index 00000000000..65842206ddc --- /dev/null +++ b/default.ps1 @@ -0,0 +1,49 @@ +task default -depends CreatePackage + +task CreatePackage -depends BuildOnNet35, BuildOnNet40 { + import-module ./NuGet\packit.psm1 + Write-Output "Loding the moduele for packing.............." + $packit.push_to_nuget = $false + + #region Packing NserviceBusWithSymb + $packit.package_description = "The most popular open-source service bus for .net" + invoke-packit "NserviceBusWithSymb" "" @{log4net="1.2.10"} "NServiceBus.dll", "NServiceBus.Core.dll","NServiceBus.pdb","NServiceBus.Core.pdb" @{".\src\core\NServiceBus\*.cs"="src\core\NServiceBus";".\src\core\NServiceBus\Properties\*cs"="src\core\NServiceBus\Properties"} $true + #endregion + + #region Packing NserviceBus + $packit.package_description = "The most popular open-source service bus for .net" + invoke-packit "NServiceBus" "" @{log4net="1.2.10"} "NServiceBus.dll", "NServiceBus.Core.dll","NServiceBus.pdb","NServiceBus.Core.pdb" @{".\src\core\NServiceBus\*.cs"="src\core\NServiceBus";".\src\core\NServiceBus\Properties\*cs"="src\core\NServiceBus\Properties"} + #endregion + + #region Packing NServiceBus.Host + $packit.package_description = "The hosting template for the nservicebus, The most popular open-source service bus for .net" + invoke-packit "NServiceBus.Host" "" @{NServiceBus=""} "NServiceBus.Host.exe" + #endregion + + #region Packing NServiceBus.Testing + $packit.package_description = "The testing for the nservicebus, The most popular open-source service bus for .net" + invoke-packit "NServiceBus.Testing" "" @{NServiceBus=""} "NServiceBus.Testing.dll" + #endregion + + #region Packing NServiceBus.Tools + $packit.package_description = "The tools for configure the nservicebus, The most popular open-source service bus for .net" + invoke-packit "NServiceBus.Tools" "" @{} "" @{".\tools\msmqutils\*.*"="tools\msmqutils";".\tools\RunMeFirst.bat"="tools";".\tools\install.ps1"="tools"} + #endregion + + #region Packing NServiceBus.Autofac2 + $packit.package_description = "The Autofac Container for the nservicebus, The most popular open-source service bus for .net" + invoke-packit "NServiceBus.Autofac2" "" @{Autofac="2.3.2.632"} "containers\autofac\NServiceBus.ObjectBuilder.Autofac.dll" + #endregion + + remove-module packit + } + +task BuildOnNet35 { + .\tools\nant\nant.exe -D:targetframework=net-3.5 + XCopy binaries\* build\lib\net35\ /S /Y + } + +task BuildOnNet40 { + .\tools\nant\nant.exe -D:targetframework=net-4.0 + XCopy binaries\* build\lib\net40\ /S /Y + } \ No newline at end of file diff --git a/packages/nuget/PackagingUtils/packit.ps1 b/packages/nuget/PackagingUtils/packit.ps1 deleted file mode 100644 index c0075f638b6..00000000000 --- a/packages/nuget/PackagingUtils/packit.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -import-module .\packit.psm1 -invoke-packit "NserviceBus.Host" -remove-module packit \ No newline at end of file diff --git a/packages/nuget/PackagingUtils/packit.psm1 b/packages/nuget/PackagingUtils/packit.psm1 deleted file mode 100644 index 2f51c083f99..00000000000 --- a/packages/nuget/PackagingUtils/packit.psm1 +++ /dev/null @@ -1,92 +0,0 @@ -#-- Public Module Variables -- -$script:packit = @{} -$script:packit.push_to_nuget = $false # Set the variable to true to push the package to NuGet galary. -$script:packit.default_package = "NServiceBus" -$script:packit.package_owners = "Udi Dahan, Andreas Ohlund, Matt Burton, Jonathan Oliver et al" -$script:packit.package_authors = "Udi Dahan, Andreas Ohlund, Matt Burton, Jonathan Oliver et al" -$script:packit.package_description = "The hosting template for the nservicebusThe most popular open-source service bus for .net" -$script:packit.package_language = "en-US" -$script:packit.package_licenseUrl = "http://nservicebus.com/license.aspx" -$script:packit.package_projectUrl = "http://nservicebus.com/" -$script:packit.package_requireLicenseAcceptance = $true; -$script:packit.package_tags = "nservicebus servicebus msmq cqrs publish subscribe" -$script:packit.package_version = "2.5" -$script:packit.build_Location = "..\..\..\Build" -$script:packit.versionAssembly = $script:packit.build_Location + "\nservicebus\NServiceBus.dll" - -Export-ModuleMember -Variable "packit" - -function GetVersionFromVersionAssembly() -{ - $versionAssemblyLocation = Resolve-Path -Path $script:packit.versionAssembly - $Myasm = [System.Reflection.Assembly]::Loadfile($versionAssemblyLocation) - return $Myasm.Version; -} - -function Invoke-Packit -{ - -[CmdletBinding( - SupportsShouldProcess=$False, - SupportsTransactions=$False, - ConfirmImpact="None", - DefaultParameterSetName="")] - - param( - [Parameter(Position=0,Mandatory=0)] - [string]$packageName = $script:packit.default_package, - [Parameter(Position=1,Mandatory=0)] - [string]$packageVersion = "", - [Parameter(Position=2,Mandatory=0)] - [System.Collections.Hashtable]$dependencies, - [Parameter(Position=3, Mandatory=0)] - [System.Collections.Hashtable]$assemplyNames = @{} - ) - - begin - { - - } - process - { - $version = $packageVersion; - if($version -eq "") - { - try - { - $version = GetVersionFromVersionAssembly - } - catch - { - "Unable to Find the Version from assembly due to the Error:- `n $_" - $version = $script:packit.package_version - } - - $packageDir = "..\" + $packageName - del $packageDir - mkdir $packageDir - $packagePath = $packageDir + "\" + $packageName - NuGet spec $packagePath - <# - Logic to Edit the .nuspec according to the parameter - - #> - - <# - Logic Copy the assemblies to lib - Logic to Copy the Content - Logic to copy the tools - - #> - - } - } - end - { - - } - -} - -Export-ModuleMember -Function "Invoke-Packit" - diff --git a/tools/Nuget/NuGet.exe b/tools/Nuget/NuGet.exe new file mode 100644 index 0000000000000000000000000000000000000000..de65e22cbb428d222d9044ac9181f0b49666111c GIT binary patch literal 414208 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

R5=ntbftiZ~bRLdWzOn3xG-+!+^Qf|$6 z`O`YepOtTvF=A1PqZ=n%a+txCRYkl0f>r11)m^z^mQs+eq* zYcmj6KLl`XNl|~U+|sl6NLsZ$oFl}@P(qv$YLk2_{dJWVY79|(BkF?{S3IesekBk8 zsov(pfPXHOck9ew+aWPLx1(%&c53BaACiH-4eMyN`L?{CU zU#nEA1O^n~Pc}T*Pe_0JcuaC*Z5`oibpv1gTGGv%QDeJ?ciGSn;;Z2Ou3gn#gEfqI z6B7fO-rj;PHY*^Re$()dff}zZ(f%&#Ap1=<_y=iDibW9z6qSBTFa-dNfsHD#yHXth z91AFR${?6h@KFmss^HBO?NbN(`uS>pV}p9o{DwYOeqtXhKN(aHn&0pU)CGMZ>q(D3 zOavjQh1r8wa(GKk2JK4IBfXX{Ta~X_Ul{EweFip#l+e20a<%Tak0$|W7l@-nE8q8o zC%38B8U$poS=w6!RqM$xGVAHRW5x!GY#TC61Sp+5(xXQ0NI-CXri9T*+}kyYlJS!H;Du^@eTfRW=VCm*@N zFmk-ctI)EBWS#1NvbxFouP3^XTFbmXUK0~M*~hPCAzB%oBv2t6R8;5!XMIXsy+SSP z$-5*;11JjA`WdT}_8<1g=P=s5K3)RzdXF0Y7$(UD=sab7#k#n9Wm|^+=P@gdwV_AE zTiv}&tu;?pH)eg6UBj)~=4?Hv`Uw-qY9AP?I6+K^j37WTCJtaW48Q}`ft!T0=EP8Q zmYN2M!z3oe2w){+EgLm`u|I>Rnwt$PnhG~xwfG+g=-&l#!_B{<|5gsIcftZ+!^l>~ zl`oT#;j30*F{25E1vkI;^W~~F@we+~=m40T^$bz2x5!_g)U zoX_n@tis6}?ZM$ezIN?`*@eKtfs8-;zkNE#LZ#wt<3L!Hr&5HgK5`7~2169vMOF0l zpR5B-paj~cs$cm_!DYj5SU3?0skuIeTJIQSK6mhG zINa*rlsRkZS$G<^8HNJ(xV(_I^7lq`)h%KgCeu(i15p)i6yIbKGb{U>22b;_gY~oB z+bX>C=?}2_UuNcdC=#W-C)>JBC@NC7**6&XhbQ-BL)$8hXcE!4eOqNcPeiu%(mbk% zEUkUuwz|u+hNoUt!@xkcj^TY1c_V47fJS*V zJS|A_5kBh!CNezhsC?6e-pZRs;H|TpHCktVI0$=yn9YJ856(~EmhiM$1fp6YL+x%6PauR_zi6~WL z3H+s7pxGn=Lrx<4T|Z2TjYgXfDX#e*s-aTBB0g%3+mFV2CnKc(7~SdRKJz6Fx9;!z zNNq!xl*GrxTghZIJtsfPdayKMsM@E$t!K9!6ulcc%TFbAJg)%JP#cf&qWdg?R%POt z;#>VLAxixzKU;;8+@;mrw+X>V6@y-uPMxY|)^QwOR`q7cTI`}`pk*YuLYog3u|_b! zt@y1FQhc`2Oe{557``D5+%h1rRx=V)^JGpy&67qv&2Oj&rfZFgg2jMxIt8{t^U0g| z!Q_)%MZILAs{GSf(*-ZlCVKKOD=wwVFf&?C7oWob*&t zLjIrTP)=TX4(nL{B`VSMM0(yDv|<9)CV}p_GsVJnrocZ1esCo-tYD4KThb+grRIRu zNZ~yLuKAwHisoVL5*utRTw%@u)cq3bd7<^#Kbwb9W%Khh6qr zcK7A!H#@$|skaDj)lrT%4R94bYnrI}Jc`u_cbu-*1}!Z528zCI+cV=h3{P2#e}N%} z>}dW4j>DWN_es=%961pOlB!-$!e50ZmFK^}3Duh{ELlF>`ilD6Jh7_^%?ho=p}4;0 zSUhplHb=H{eoOGssPWZT2n2Rhm3$ec09flgn*)fg@1VU^`#%0tn^HTbR0J?AVZ#`6 z{6P$SM)gvHyhkV!qxXV=0Un^u27pN|zUy*jNb0E{a#w9&n}HJtS-_MoAsnBg#?@_# zhpa2c5Jiml_AMizij59VPs|WX_KQF%_GUk-YM0Ckxbu~QAKxTK4QvwtJdRCHz5pVD zs990XD?hV5iBDC9$PZxA&uS5ZD@JUJ{d%*y#YGPV=)t=~`Iljl7^__=u)x&$-w?6HT`HF-l`0MWFG`vSX01M_Hgqa>uT$;Sg3WFsb*8lka*OoNL~7LzO~>iTsX>8F#uT;iGvL{I*^WZ#>IggojtY zE*TK)qwiYO>b^}GvTb!AEsDyFGOKrVSh%7rD_F&-T$fW|5e=4ctW**1PHe}`GL>Du zk=d30XFdNr2juUJ5MEPE=DAz%P*Wey3C&bZ*tGh0S%GiMhEvIJf-WbP)mf{We3C|morxPfPK1xr zD{L_JiXSYu$`&L3zp#Eb|3V+FEB0YO5a>yx43Rap(Nbb378 zmylrVZR)WWHSK1k{ipTz%^B3w&dGEOTkP3gH`ml+y66F&-WH@@>(#cjTZQ}fNMa0b zWS<1Xx$P2-`ND@d2)W~ZL1fscgN3|Nkze=y%+PoG<^*e~LTn0S4HNd60%Z9Mr{jSD_|jF98X4hi>AZ?W2d z1#D~VUI})&s*-2PDow$zsUO>!nE;*r2bd7q{e45~3REo^e0giw5Lt?Z~2W6uv}$Q4MGC*BmiR;AczQ`#$k-`%GVK0l8ox0 z{i4~c+4>mV#(0xgbmDnJNZKX@DUe$WpuGvbB;PnYnn$DYX0;eP^P#hPKN^&t*Qg9K zoqd0W8PUaH;8#?7Y`ghh0!Z_{TeI~=Dh*p(ql8VkC!Z zn9+35La5Ko{9QLE@K|%CN|W#tszA8g$7=gJA-T}&fk`z!##;YsR7@IU6_x>qZ6KW{ zLKOIeLl1isNPA6^@-O=69ml8&RsmZ2Fb+@8SM8IMRm|29K_5*{7T>;(0p3*8Ky@7< z#NO+}t^2K#)z=3G0)ORwIC_UM#!-rRr)2%ckoTdq`bZQRN>OGLe)}eg4HQBX-|UaK zn3RcM62r|Old?mQx84p2u=PC_T6SeJA&b}`Ftkw9d>db1a2|#%*i|g z=2{r`s#vqYkb?I`R())zx=r<2cjF2vqlcQv6>W?*fcGOhoX_^j=S$D_xf=P}MtKl1 zncPKTW5AaSF#Yf$!KR<#)+iwb`ESs$BBzQgV7Xhw37BrpevK^6iNfWa97OMC>-al> z4|DyX1*m$EYM4t7D(j$Xw^q%92fyZSz$uB5zVey@(lmE9o?U(6?iv6X;o&{&qI{ZO z!F%?z@|vS|cZzz_dvLc5N^5yhXx*tIcTd2LU2o5eAPs-%=;1GIYD zoT_bUWR@RT)x-?)0|TBBBgxFM<;rDNY|_B2Aij1>!qYST*J;0j+<_uF|A291#AtC_ zwlgEE;&{!x7FjhR!SXoCBum~T8_B!^v@zQ7$#m-#LuBg}*-$tFD(h=_1N5hYGIe#% z!d-5}Yq~?TtssStx^8ol$|J3AWwKQyRtNFVhNT6V#HL+Xd#}>U@Dg?&>p&2yRzu9_ zlQpgtg(~<*)W0Dvg^3K#)$jSw_xHV;v z8s47K$?Xh;xp^#`c`li}iayMRDF={wb)(zQdEuPT3b5kd_EdMRX-yBdUiGgWJa>`< zXmiF4ju|X;Wh=X|ZmwzO<=fQ)P?Z7m%xW#&xly6bF1ohU?|+~@vW6w}(71bKV&hGB z!Mp`pVZeVetY~nA=GJjz!PRN7!Qzl%{=3y}46zAoLjY^#bQv1MLQ^43WydJpS$WMm zZxRsCw&#<>n<|2>i~+P%h zhk*>C_zr(-7SXN&X(Z;k#oKJp;q|`5kLnFXI}iYjGL}^EC8r0V?1w^JV4Q}~2%$je z4SI<1_KYu#qWI<2zXEasbLTh{M~7x2Us^NGiW#-8F1`4VOtiCN#~ie3>$tnu$%(n^ zHeUsDYbM$>tO#vF9s!bKaHyN8QdkZqkM+L;(nBr|_18R1w{Gk6JPcV;>cXju=p=)16pbS)pt~CL&DxJ_bd}8R@E7e=@ z@r(~$`;yh86-d=Ld}32ZTc3f|hR5ZhktEvQw|(6p9N}SYPf!D}&+g$JRK6Q}Wr1j& zyB^3TZ*HGjbn)Mm$w)CA5tK|F2ZeS6v*~TFC%~S-jX@0o}tZe=P@PWoYFe zG;0A=iLL5xy8LH~A71$zOTPBye42OdHSzVz8~mk|)&4#Cu2#N3yz-slm2X-655%}b zD?g+mcFQO{WI+H|lkWbJ8L{%;HmI8`|Fj_komKob-3G)4r&8P2hr#hu-=4geK8kzj zxz;URTCDuDwd4T&i-q@DLD~5bYR}RL+ToRdGoP<}Y(S6HPydcKLUK|8A?ABw72A*? zgy8JF%{tKB(E(#{Zx&QGpdsD03!e>awwL8=QzrKgUHgiRYPkq-eD4oyta4=&v74NG zyoHCY1;n|AJWQ|lWP8vE*>21jQ=S-nxDI{ww*q>B8E$3QyE3d3zK2#HCIhNF)Jk=9 ztFu-Yl&&a@iiEA^X8@j`XNRu6p1}O9h1C(b1rwOfPu>@x-^Y?O92XmCgT9Zo_<{8q zn|6fK=7fUy%z+Pf5KHox^Pn&jLuyo3HjI>Ca%THeoSYfA)zY@-J3 z2PRxuj*uwRwkTLoDiQGB*vJn9^}|i-T=Rzne>BLL5&macdKTEdE6#(Af=vI)7yd(# z3mjitPld)6&36rZtY$z3*xb#Z4LAQyqsJGuLb>9Hs3nZsgg&9oDs63H7<@G4?4npd zaz7h^93z%WSyC$eOS<8b(hJ+H{gH=m8A@Cb3_354Y+J2#vcW zr$YwROG5`Gs9Ci&w$&C1Et2hya=TN-NwO(Vkc&{Lc-z2wn1L5cq${Yyc%b!X!gx!Y zZYo39f^@(3H@<$?`fKXa5-23$a1OWr22j5u7-Tk=7YUL}KsPp(5vVY&-y3l-R+ zd2|0JWL4`8@%Lbnws)hb44GzXsP%m?5918%0w@Uh+Oi))!wEY(PD53OF!Rd#LN_I0kDjhy=t^6LbSh}Y!hclcD$+VZt!lR`|%ni>h1 z;#b*EghgXpU*d_mF|HB$bLHD!IIkq9#!)72!=qG2M9S9Thd||6S`@d!NJq_x>+q&R)-Ft@Ye5 z``MQ>>SXg(2rhdiwjF{?LzC8NG5R!U-4U#?A7UzC7{Qr6(w0IUF< zLSohcd?^AqSomcJJere-7qxiDgV$Gi_mRT;o;q2NA|>8l@vX0{Nj$uQ&3IH^Dx(AK ze$LR4oXorgwmFzsj$DUi z<@n2U);y^qH?mZ`NcsbBX>qr3+w#p3Eh0~C$ro*i6|0u*I-U#MgDLjJ`(HOFyt&0W zn@1XNZjq*}J9fB3tD{is9%y7PmWg2JkFKxYHYrsaPv*!u%@>|oN#cQfs!|v)dM|#R%z1-+mLnUahxASfy)Q%$z6Fk2_u$u z-V4a&n$AAgsNa&AAx$Almz>F+VdDnSQrji zft@tdVZN%s)IM4#`$xDTIeV_mKJGTB+V}*bn&Tx6J_KT$qkwoFnPC(k+Vdd^PEIre zc-t7qj8k$f4Y0Gk77Qi6o5_gxX2o%YxD-VP5NS&kj@P1VYD)|}1xf)(g6JNO#c$sr z4Ro?4esrWEJWt|~e({Qf{5*A&m^rkbv%p)AeB2?4q|31vA2Wx`@rajLMk#7iOLT+8 ztFeT$am0nX99v3}+lsZBSO<8q@iY>-1V_nnjCfT0wmrg=QQXt$=?RR7n@%T4uI1ejU^5?=>ESY$Ii7asm z9l$XqkQm=EB`OxLgU7_W4ekE`LlcU*4{15E}<=#;dq8#`Q6- zbhpUwN9=MzET?_|y8^B_)+~wgRm0eL^avUdU8zUDBu6XYu2z?uV)=!f@hE|mlDk~) zws8>|Fhg;VNR)iH2+wA!nd@X67X!krV{ziu6ApYkX&lIluq^2l20s9YD3q&qEGmg* zs&;&AH0p;C-bX;qalRW@m-~V5kv%1sH{1$c(8}D?fmluw^@xwf7sZjl4zBoxu{Ak1 zDw44rv)iVJ)~y+f%0W9GnuORI8kXj4m~v5Ufa79ha8KhaUYsRf>&Lz~7I6bt#n!?% zIK&4w%m(zn_2SlL@}x}$gP~zcQfw4j5_?s2X)4xa^n2!@MqD4{ftOsu?HCRrI}|Ap z%kTT0X_%6V?#c|=G{Z;h-U+RTTSX`zI+E`uAv@fO4B(CyS}wCY8Wl&pme1`tzF}-! zV)Ml2=Zpy%P~sEIO^GxD7&Sb>0<~kKutmZ@+rm5wak4}AK=9-UBxX%a94}?#?!xmd z#NyK6%cz{RmxlJNU(lLcuktsfhU zCO(iDJdEr5#LWKKbM(jG5#SERgRBxe3b2+YCg6Kb=u9*w?sv#^&~+-fMQZyiF6ePF zpO}S-yqwd{Sk4_H<2!4`g}Ooq4VGvO9KNzgv3obiu;Gihv3ehb`_)!dh7$YWDjbf9 zHcz!lQ`F^lLR?<;#E%8{CPP>)?PKD2(qyg1?)d`lVSB%cuc#f27(0eA8n?y9Vpog1 z2)xM2i#2Fg+)BWF<>>3+FCktN`p2`*D>#ep*8# zC2AdSYs5~O_Kee<4Ve?A@yRWVyP0TvzN0t>=S_{*UeG^X8jk%NobrzLvk3l zXW@Xg>1<6IN<43@Q#NrQ19*P&(sdTL%pBW8xPXT-BdD~BQ^MU8EX>->GW8gE7RF#= zzzip7YI37z$4f^_2V^Ipu_b}cmXp9!U_~Z@2^FJNW^`#4oR!iP?>@l|s$Xud?T`TOOHQC;+z#8h~3;0urNX zWOD?2H%zI8v4wFf4c9P5)`lI3<^M`~cC^66mqg?i4_-F5b~|kWJHivVsT3)~?|*V? zzzZ8Hhp}S?#(xr8fz#~}i$^ZJk;7ZckD_YcyUbEa*4k?B5eHsPY{+wyYBtA0iS^a$ zGPYsOtP{WouQba*-H$*GJE3u{Y^TatOi3;(D{7(5vRfklVvMjeJdmL)r)Jju^aLO2bWIwl4~E$evQU(}I%{gHv#{jWbc+AD$#pCds&+#N!qX za<_kOk(3attK*;aG8?0aw_@n}Qc}1(0cQy;wj3AdJDl`botYq;V4M+I&;5OpCqY(2 zK6&U_G!vT*Nzj*E80-rqfkCoPahEl>#cqxek8r%rn8Imgrn5u?;EPy%>XHpQZ{Hn! zF^k7*dpY8d|KPd4>@Gw|;$8Td)l9;Dyu~)79M@KQzQz3+OykTxysp*3tuJg#_!n>H za!2wa)P;AVXzs3jF9$cVWTtlUR@&_D2-QK;XZOP6zpU%+9a3x#qOn8ArYtrJ)xhQm z{h4)BVipp)6Iiw!S=A*^=3(CSnB=v-``14%ZxS18b420@Y}j)+V#X#pu9tneT+Bm>FR^jf zgHU!B4Uu>h7YL(I*2c`Gm-AHOrpdQcO)kPf_=Q)-8CxwBHcFF7>405v_Hcf0+}m4o zbX=c=Q{gKQrm*1Rqcie#wHw7{%^p(^YeqybqflJ4B<>Yl4NXQ;eU0BM_Sp-^-854F8^hO;Z!fTK?kGBWEsLe7Ia<^J&$R_uQ1^&t=TIQ zgZ;H;yrIorsq;jIU2}NfD#czW$MupnSk4^SQ+Fs zS?@(hue}k!Q|%Uf5r$jE_AUUfy|~i$`6Qcd&xj|w7fl5Z-GgOsl@e9(`of!{Gj`?1 z2*908p0zvpn02d!cgb-#AA`N6gk3Sk61X{Z#$$vXseKDB;InbA{;vg6cWy-ViTAn+ z8goC2Dk}-n_e$Cb8(UfB_}00XX;&%3U@6ZbIUd3N4D?$-_G@uGf&N56RtrVUDx_>u9@C$ zNzR%LQ<`zFWFJF8xgMyS|0*7neY>U+_MzA}W|Usc?Z!*@|9+ITXJ3l-GW(=$k=b^W zBX7&;en(C|xFEZXFBQ4{XWL%^oR{PmWxyqy1bJ7Peah~nObixJe&)_yd|Ix|v9jO^ zUN|MW=1$D6mi;Z>B;)61HXIcZ4n%}`5A69QM1+$f!u2D+NqRfjO2=CW?( z5r)Zw@1^mgw2k+b8Ow2F1=pf{r$}yP=@N=dSlpk*xO5t_0h8n*9w+?eW8CZt19uF* zmxF|{5(j%rL1g*0!+~{tg9JakKJY7c*k@r!yU5|h1G4PQ4(NqQMtS&@haFnP*$@;y z0Rr&rtyp-x!6#UI)^|`9w1|VZE%~ViZmaRNEK1COvj%@OhZk@Tz`(CW;bb--ikaVt z!rKryVu89_pS>d5qn`I9c*n|sX31YJ!?lu}m~6VZ|HlC~9Tiiez8Az!_N^f7XfU(X zOWuj$TPL?l!io5kN2myRvt|yPJl$bA!}`d}2^@zXpR#_7NWR+Q!tgrAsnt*buyN|pffuD8$_cFNIBZs(y*1he(%x=6a7~-rt|gjz zy7lH4e=om%t!XoF<@;+N;QwgW!T)o4=hGXmh`R*vhq;E5@t08$ya9*K_`HYrYwoT= zba8;_L+HoH5cPn34U+xlJ4Er2&G1=>&!^z4qlo4qTpMxOhd&qKgXdNB5I&FNb1Rey zkVG3+TMwcby6Q!ucTaNY0~~GW6F>9?LPy0)zYx{JCx$M;(dw@BL+O5~GeS0%ZmO$6 z0}vXHPYjLotrHNMCAtz{x6}`9&`@pKg3xY!YS0NB|H7v>HTsXIYlaZ(VyHDjoNo=f z-q&?jT@3X^=uUiM=m8vUJtiS!>oEf%Tjl~^x6}{4JsTb^-HA3 z{ZI&@#rP!B>wf56gg(V5hJM76Yne#@L5TB6q*|xE7#I7YOEnZjZ4lxzPw;D$NH?hU zV(O029r&OJah!tB1X_e6|NQL7s6i{Cvpu~YA=_4OYp4-zM`$-bjp&dc`q2-a&`=Eh zfsl<`Z;CDb*UHzmL&%Q5ZW>CaUI=mAWE$v)hG{5<9z|#-J~1>OM;rGkKeW;ht@T5j5URij z<5YFYbPyq%$B%xf+7AVOx7H?fAwpN<(}eotI0m0&nvJ8aTPZ@e1c7p*rJxvE4$2Z@pMTDHN>X{rQ_I5LJ#?&SsIF=LWFpXH=^ee;t?A|FC%1AUXPGnH+E>K741Rj z5I!;VJC5wv3TwO7T}=rHHNq!`ZosjNg!QJ$t+*D#MiCzb+7rlZ5paU zA0T8$@c}>dvxZ{mH-zl^=lto7(?o>q*lmi?75KzZXFqhCAL@q?mo%BiA~Xe`7+Q!U zkH1E=3L$QxHnbk0ZDQSpqm6M8Av;P=s;(XVfl#e#qIPsSjy80Y9~$O|ru(4+KlH30 z+Te#i(oiyejS%-t4XQ-Q*6lZhxGZ=D?yS|l?S$9ty3ko`V}!W<8c_>`>?(D&hGOVO z^-HEc2o1z1nI`$6RWEzGY+qO6ho00>3_Xhw=N3b&G?YxQA!O&^+Zu|YPY~jEPNquV z`m1k^{>w|H20}cVlBqsIJdZk1#YaTVK^>?)jy80g9~!BlCH|TnLk~m8qpl52Ludg$ zZD<9KGoLdY{ z@vUS=AjB){rBvvLR%s}PHY3ET zB-0l-9>)jcz%?>*YEUvlHs#9@;`EZK4MIFlFQwZNvTOE32+hH#3B76#$66bjq`Eeg`0QbV<=146t%txW?plt^O`;=S3$GzlTzH(gAx9QAfk zv!SyoFZM&L5#qLgnKmQDKUdTH2=PcvrY{lVHKH9IXFsfH$#e!GyAH*~*z}U|r8Mh@ z{RTojVmnYvgzOBsPD3$tt6F2IKSH)FLp0<@4M&K7V(1aoB~u1M+;8ou6d~?~cCJ17DNBmWYp^q=->1MhRIrX76PI~vz9_=8KhD(Rt`G=wjsXJ8wu8s52H zDL&(TpF~O%pJ~2N5?x0@#Lb2#AD=Wzq8lXE64f-O2GkSjCeTa1Pbv))pUu8cJ1P*( z2fn5~m5SyIU(h~}uT>4eg7EjFR1oO@%snO2FW%J=C-8%6WCujxw_qN(|n7wbMc zE}9E{%~(1^{C9_%LDLbRG7}oRxaT~HG#o%ia4Y3ADI-mOKWXsBwK;NsT zy~(E0C~5*#`>|%z<5G*7Uwe7YCF5|tu87dM7*h#!y=wZH9Eua4e$d#u=VB$}dX4lo zc~nbcJrtp-Cq9#)nT<~x6;e~tJnL(UskOsx_>Lc|jM__HpZl66)Xm`*JFXhSIJi|b ze?@2piKg~9wuJ06M9R}xHEGb?C7O1=<|!I3n%=(VX&Nn>A-?7rdO$P}`kL3MRPxGD z4bkhgSjwF1`@Bw1ORVd$E3hs020bG_#lFubdP!PirLWmc>qPTbgyvO=^+|;0HPL(* zp?O_2zxkSf(k3Zk;E>lE<+MdK^&>Q&i>7&m=6fk~N7bZJIsGUp^JuZPc!y3(tO0(k z3i?%IJ>bWxpx?x2w(ql@s>Nri@3WoALVT|CefC513}N@A z8lo@h8rn93H zYwY%YexiJLIm%NR;Zr0j|Eiik<|kSpnz(Ph{yIg^i{>Ay>0^GSRibI9n&IY8+A5lE zeyqP}muT+sHGk8mqM=K?lpXV>l=%_$L5rJXQs$X{tT=Pr<+Y_SLUU4LE%js7F#i$F zD-oJg(mq@LST)RVlKU>zlsfU|jA*|0eQKM(Mf01lsbgwIJ%bjj`JF8@?gN=R*j*&h zC91*M3V->ReXjR?l1&TI^o-D4C9#J2v64+|-1keMDXJOkTx{A)tb9LKis>kt7a}yB zB-Y!0tQ2!|6t~Z3&{X1+MvYB((VU9V+$y=(JYs7x+@zYGqWK3jHda$}w`i{MHCLIb zl1>j_)5gq|@{Cjs(RHREifb`WHHV$+Oo_yr28}_hq|uG$S<%do&^#yUJf|9h&-0S| zn-M-QMsdnJd`$=Qip2WDkJZtEUZ`HlIs6({Pu`*7RnxPc(ykpRVSxXzo=_l5@MM7R~Ja zUaY=`qIpD3R-aO5fTZQ%Z;YOZzeGWc3DQvSh@H5?kw{dd(6jWvT1D}kaay)utALnKyxU-O_D70u)D zG5>5e(>y6Ym-#+3&9kCu?Q7jiCV|YYuP|aB9E%UHw-d9Z;y=^8*to^=btCgc$)*7msHcoBsy2ea(}(2nlwsw zI*MkWuSs?8jO86#m9J^#%#w5hKX^60#wm^ETJZib71}hq&RHtyr1?JAJBLJbtFO7q zIVmX*h|p9?%J=!2o1HTfYl^Sw>ii|Kaw9ZR0WRT^2o1g^!8MK0#E8#UU(?M=4sf4- zs2ZH1o%#W8jekY>G!Af!9q~22om5HZH(ztRbGc}$eN7*ywWJgKqt`xtoU28X>}!TN z-SM5I1iBm={z=0QaFwqR~HKUx-qIuBQ+~+(fnxL;4<2)*wg}&wi=LylQ z@ipU|8KQaD*F5ZGiROT>8SmtX=7g_#%qb8}^iN)yCpx8~Y2a%fcb14I&DTtJo)Jwq zUo+KtQ8ah^n(59O(M<3)Go9B(ljCbLoXw(H?rSogw*y>~jlL$^c~5+*ea&pu)cx5j z^IYdc@oC{}a-2`GK}?{Vd`+ISFOUUIe_xaD{OdfQ`K-a%n4msMroj11G*kUpMb2S~ zRqShuo$tkGrLS4&oDiRPea#~07xDSR*F5P|iO;vbW~p=fyjaVeKLQTQ^Q-Ukv{Nk_ zbIhyzvyL0bJ`H@$^G=O8uKN|fW~Ea{G#z}+DyME7w?@3ax0 zkA2Mt&W)n^&e!a6I*R5uU-PkZlW6K5_gd_LbE{~=E&rv{Q#6g*}kTiyHhmbvC-T8P-?o^ z_v!0?EI#4f?{Gg8pEbTuKX;F4w)&bo-7h589$z!a{g-Hd@HIo+FGUmX)4ScTL{shi z40pc~%>^gCULNTlj>Be)nyBVlXO#P$_=HP%ziO`XV~uf-ice=~hT)TjtJCkL%+q|I zhujn56P~$`xW9`g&-WSc{vn#Dea)k8wP;@VHIKP}i6%UAr?{~-&Rw;px^bcj*L|8> zQ#9d`Fx{;sn(+LZ;a(t`oqk?3-2~Bm?Q8Pgi$wDuUo+orD4H1DUFM%ODsV3mO?_Xp z#BDB`@JLwdwh&EA-{)z!rD!_(nrGZrqUq;ro^@M`W~{GSd!(RnCPR4Sz4)^V75TRC*qMW2e`lHy|IHo=OKHr-LgYv#0mP z|G8+>ZvZ(D>0Jp~1lb*O5#$KSrI0fr$3iZIT#j_sK(gNkNUqmDl_$lH{U`R;&q03; zj@>)6?iIWI4)J6T7Pl z=r4ria$N(t9I~Iv2h=`C*tWwiw8t{=7m(PCiNv4DrbFPmaaOj2`~m5Vgp_oV-%9XQ zGoYx$yQ)S<*0c#<(A+z;1- zIsZFUp4(jaQmgvcHwaU9sqN_y?ng>u7aNPjjwrb zJ2w%oLtP=ceR=$G`*J;4dhI<9c5dfl$oex3{Zrzd-;RAVzJQ*`&qHAZ{#d}sm5{hvOg4fTK@=Qmhn9U2SS0s2DKKc{k& z%J)@%C9)0uTP6OtBBYZ_4I#Uuzgh~To(`VOp}rl!Yf%3?A%`OWdm%^6NTUgm<0PYs ztuJZHJyecSnWNGh7v8vkO7(C27e6okEo%Ql<$qM-59dlfFN5T9=9Qzb>K{;RZ^ zZqwU=_}#&KX7tN=MD%TFF61G^D}dY#xg7GS=KpWa|EzNSOgrAJ@rE4KufxAGqLwv4RNAOTE`;CFTb!JS=WXO@z2WDhI-Z67vMo45h z-37v7zn8#w!jIn>WVuo0R*`r+KqdF%oyg}q@Fg>CI}Qc^3EqhDSvS$PpIwhr=_2q5 zE$0JT--$E(X0(ESB>ZoLoQZnf3YiBv0J0GBe#pg;6Cn9KW7D(k{XF7lLC^E40CE%j zRzSXka#%k@uSq=HJ|7}qp3i$BdA&Re`4#NHLq^xd-;@TA&cc&r$P~!#ke5P# z7bK6j2O!^_fp-NUThFrV*R`|yW~=~@oNn8p8}#eIeP>y|3+Y782cAd!VIPik|Agf7 zbH03@vgzaRr6*y2Bc013pMdNOxe$`exfc0N0du@O$el=kA>^l!Pm3Pw2_(1cmymmr z5C7i?|APHzNN(TQdPLtqe*q->HGup9sdx zp$g?ADr+WlI)*M&*;VCzB5i(sGSX-+cnIVYk=}exrB~ID*Mngw2bX68B%hb&YI&C+ zUIqMKMEyR8+=zO4@|0H;W9<%Ocb(1?5c!&_04D`+%F?d_2<^Rk1h2!)2r4{5oNUtsAB*@M|JMMY~`(`{T<>{O8 zhR8Jf0FvkVXOR6h-eCCi{&FNF?|&XA?`&l_*{Jc{-8Vmx7hKC+(NFOl_R z=6bUHZ}m(;I$YoODu+Q9gQu!o2+7wW8z2`!|FQD_OZ#xX+&(OiAs)-P26nu)fMmWI zaxd1Up^!^ZU!H%L-P993UX#<-;55BylxMG48m_Tk%zuRo9< z@9*3!TkmwNdtC2$Fwd*{kle3Lvcl!-k8<+(djRq^^v5(v-d_|zwt}DC$AtG?-Z)tT z`)3#*+}_t9UA_+Ni2cLc(6i+8b~otxyge3@&)ZWWzlWXoi5E0tzf`&o@^Y+eJt27? zB#)!>%k>WQufWf{-uznq>^{-0^9x9xC%-`Qdet!7&XXRHJWr-V z@;u3fx5{B6 z(`X{(Ytz$c9^`D4YYAipc#X<(l?O!H`foygct5=rlG~Fd*Z*Tku74#YkN-a)x!+^v zq|zzG{}k(F^gr-y6MQiw^X1AnD0fpHtUT*Hdztb}YA;v*SovSdCzSs@kLx$J`CkUf z`FsAIm2Xq~y~>l7=P5sX)rtth`3~pTaTpKIE|J$@CfIMRStrE6C<^V(16ar|NZ~y>HM4>GL|>agHHx9Xus| zcsKS^d%lks8AGX%x51z9quqh@t^hBeZuLVDKOM~LD4##?fqf9T9QM&FAB2?qV(J%p zUf_6BRbQa;mH*<$`;TEr_cO73GMV;)MeoLQLnk#~_T%fQ^Zic2UV?o7R2h32U!TTMeU+^sm%@IX%C3;yPJLBA0Qu>x7|Kvt zr1ELVozTAoIUI5W~G{~nUh1E#r6kNamc{Og1BP@aE4t^-@W zt@r;_A1~hJ@P7yXZ6QB|ycKdkWPeC5?`TL)ZzAMjNN&%QkY0Q*-yrPIp}fVAadTtn zImp_O>{lPs)+2`2LqB`Q`TFqnL^I|x6saCK;DRWUrW3g`d;Oq zD(knf?Qkh1kG~rsJHx*_B#%GaUfz8IBlit@B455=&>ylV{J7okV1MvfNN;_(AL)4G zgUcUgTmJtxF4->&>5PXgf}8}o0+Pq$T223L$i3hXAg98<7jh=#A;>J0<0xbZlCH4j z@y3DI|6HD8_(!(qBKV)*o+*eQn-N1zR9*@B6yl|;>;%c})Dtod`hk$oLf!>=80*Sd z$QN<*f!C?kki0&>3CZj8NS#L?M)-5Nc7wh0PDOm~m-F>rJ?6l^7yk1hzlJP>J+osMk;U zju)8MgY)&t(En50|9@J)Z9m6Q3jDZzFNGWlc@1QR#^ZiJzyH1SW=Da1sG)j55*c}?Ld`RprO;$cBc9*i1sWqn`Mfu7p;41JU<+k9{p=esJ+yz_>Uaj0m z>=^yZL&Y9LTb0LvPlRG=hw>C~6?l(wuGj-~Q29l%2j~ao3bDu0N#z4#kE3eke~Y~a zMd9j)+v|cfP9NXbS8fe9IW?)i@=f3va8t{42lzxNp2jPWP%c+~R5^gF7o=Yw7i<)t z6HlEYI1yXh49nVIbtt54`>PI>DBJ!>q@~KXKN4xBvh9z$v`*RfM_uBpFs`4iPZCuq z+xjHYZp&JqdX$2z9|LxJ=frsWu;e=0sM@R4<;0JRg zbFs%?O*A>DDIJpZD~*lcjDAqI@taW;b}^VQ#>T&t_AA@?mr)c}MX&xdbD9(HcDQ^g zNIw&7f40}U5**5r$WU#s)fqf5g8P6=!yJ7NcxFxuYJN`oEvUV4Wt@%Qg1RW%_${c9 z^$*;K_{(yxph3!yfu949Ql1H3mD7^ODbEML0-mhA47@()O3F}v37iVfSKa{LoYRU* zl-~w#0WTM>jI;H^IXf<&9#$nNBNj12@m@f=8U3UNEp5oCb~;o)h>+;&-Ja<)0*eS8A;M zEBJ=oTPR(bt|ht&+{rT41b5HvMq@CJaQ-zHfo}t^6h`}iXXe~W0i?t2eLMI>=vFF> z;C{Kc(lO-`un)=YK@%a_f4Xo_+JqaN%z47SXk}Z=PlHF~_NGnBYrv1?-bN+Yv%QGk z1!v^;p_Rfx`W!qv7vGgt`%&L z-kf_UrQc}%OTq8t4x#bN&w&@`-bDw6i)amaXYNosqWnI1ckbPEO8GnCd#GCZZ}7g{ zVU*B;(=Vc=>zIdAQ{|T6gSjIp-E#f*;O}xr(sW_Few+x6q-^DzVXp!gD%<&dFD()d z2JC#kmsVK2%-_8^qiDUbH-AUd@{U}dIf2`d-igp?TB$rt(jQIhmB)iO=iEo-%2UBx zz&nJ!^zNsU&XS(wH#6scT54I=zZ0SRX@#;a|NXR1*_M9{Z4&m%KZYu-UCTd~_6U3V zJwRJ;w&myb^+f0a+M#UIe}MKVXG{4Xq=U*uQvL_&2W6Z8I65ipLWad-UU~M9;f)8Y%iiOz!|wuP%q`f;LM!KG*tN{_-yVJ8m0U< zI4W-{l_=N7Jg<>AjaDjOCOn;X2z%$R8MIru6YQIFX3&1+Uf?a@Bg%usK9i0qj}iM! zI<0KaPqXmHL!^Fsewsz`!gB()KQbsu?RGq8P-APC{y3Nuq=}YkGSW}Z%c7>eZF|}C zPZkXo_Qp#VO}vfma{~7Kn?=)=?fEy0Ldw}l??fn@3YCk%Rp6z{w*Iqeg|e;xY+9#m z&);)sljo1|SrwW?70SzyUgNyEv`hIV@aCMkv`2XZcnkQD@;hP=(GSWWiakW9l&!rS)dp^sfrovu(<>cwg>v zYOFk1_!&yKtn2%;)Oaw*pA+Eo-sYTVsk!nr@D^~ovR&VvqxQ;neS40&E8F?9g8B%1 z>(>ezYVEpyJx}9=z5acHPFjD;MSfMG7ii27E>Dokz>9NVq(#clgYV5-Nr9o({wnx^ zyq9T^ux-DCIcq4}a=^~-wUlrDb$+jv1cK z>pLf4=l6Pw7xvok4JsE7Qas{Uh2Ee=!)*IB0*}wzK*yBr_}fUMhO@nhE{8oMcOzv8 z2dN|YiM&nJbOhUjbQ^eaZaIxo9wxknRw~aBev6VuTK{}-X5QO0NH|N<3*~L4{`ayy ziW;xtO7rm_dZoC^FAs*XD78E&Gw+Ir!VJyNEP>4-VFQryj`?gxQIRl zZ_4|K4k`Z#emn1DI;m{h^ZxG>3f#}}%kaOU;jEdroAQN=bo_r#i-f)X{pYkIg7@X^ zp-sZu={m&!I`0b#jN$aW`MQr1go~&<>__wVQCs0M;_-Pr?*N6Ahrxa(?<*=-ei)pQ z`!yZ2@wGhPaN_vcUMmRu=}?#p!POD`H2AN)L*mW;tHeLdo5kPf=$+uG{KKBVa8>Br zb9i6gcRqgt|Cu>Q&*3QklDPbAk7j#SsPY`%m-oHT2PD5A&*7@jPv`Kyyq|qOBIzAJ zhxg_E+vi_kkIO&l^BHjM{9n%Dr2Hy6E$vwuXWQ>LYB`o&D&uVX{YL4^w!MC*G0L{R zey8!uwtY|2WXs03-)YK-;HuCW3Ptd~yg#T!*|uLbEsfx){AyYe!BwHNv^s+K<^4sQ zlx_Qw*%86GpJ?_+@V-39982J^u^M#0ahmU1%yS(y!&&zc(+%v>$KnPYYjS7Adb0ZerR#%Jv{_23LognL)}Qfk)(D zYRZ+r1V4~}xjC(T0z4tVg$X^z@xArt3d4l?8vQ5iGjpym%f)W%R~5R#lnVy~_>){T zJ-?-?P>u&T$ZctM3s;)@;HuD-W{+|!@ZkJbru_s?ztY?QzAd-4>80EY9G8E!>0>!= zDELI^8Z%1m^7x9C`{|mVdqJGEwr6 zv-dmNnN5}r@5dJBwln3*w*EJmUBW@)^VL)NH<)9>S+ZZ4nbY2!5-twBg!EVBw>Rx4 zar(u9x4vOR?fev@-F4}%9YCfmH$>Ar+i5#8$VmQlk!sKyOq}~XDaVfeqQ;A^83ow z%14!xo*?`b2mVrSseHjrHvcZlsmeo@+bd60zDqe@`3dC}%B9NX%G;FpC?8Qird+eL z%|B|gE#FnjDav;!rz=0I+)KGkd6e?Y%F~tKR4!58r@UJEN979T3veCI{drKih4Lxo zF3Ry!YPYAUJl;06m76N( zE4No(rQBcnBjs_*KPqP{JH533l^ZCpS8lJoOL>U$5#>jftCd5_Ng1}htCd?Sf1%t( zxk`Dca$;{=o{7q7%K6HC-;39$70NS|%axZY?@`{Sd`!7gIVwo_DGt=eeI-sWMY*+d zy7KMHy_6>?k5ZniJY9K-a*6T=<<-hxDOV`}p?pxeG44xoc}@wJ(T(8E;G|40Zy5~~ z?r2JsM}xQJ-(*%q@ca3lO?;O1=jRa_xm`>r;Uanh{`+#fn*PeU!nc?)mi2nEn^`Ap z_m3avcQadsx9k1x?xw=BTu&d!?{4-8m(jCG?+Ccg$_-T;%JJP3RtI7N9G;;+vcXqqb9=dA-xYvHoMX!xhj zyVJB)o(gUT?qvO`06a5ikZBsS^?efDV%{J#Jcqf6o(6xHJJ@Uzo+Cklxyu< z!ENRZF(ty@^~zmlskLi=-DS#!z5VQ6rb`~j_x7`QnO@3vKYN$yue=ZGzmY%Gj8m>w z&Q`vtueC2#Zl}Cn`7Y&M%CnV^C_krMt^9#ea>-Enlb6U8JZiT(ayisPalNw6HS?LE%aSH4aB$C;+e_W8?0rlqodf8rt2 z*0T2R!={tk?fvzKO?PE`fBj+8UwMF({}D4(dAQ{Fh#6y9(;IKb3s=V3@{Ko>)!&wH zyvbI!<$KiRE8FrtY8GjHJ6;|$%hhhj_hV+YGLN4Vp$TTa@`F;I31+J@kEau%iDtj@ z6JnoejwthZIuV*=jwxq~eUdq?%;W1s=y8KT!p!X-C=&bQCSIAx=ZVl0CP{g@*q<=>TXH6wbhX>@ImNVByPcm?On0^0@jBJ?QTt9wf2tX(b~}EjnNe!r zEB0w-yxQ$}o^B?q{adk5H`&TOo@dXSVe*xKhP?p1NSVj~lk;Yp<;vBtuK=$WJ{*_S zpVy~ZW{2{1;KAS{%0rZK>cY?AIDXE>_7vq8z{_%HnW4%%m6t023?2*rgUWRW@O(u4 z1)N@`=?q>A?j&49J;CMkGEBa(H(!FLMD4?1e}7)k>`|Tv-aRkV91{-e_{}n>gv$c& zzN?q}g^bj6&%cRy{mx86m60{?I3g?T^t=)AeU{af(8d3YgHezr&d46d4& z=ku>%XZ}2&%|O0iR$$^Kzp}su;K2MslXOo0g{G6Rt#57EGlVOREl-gdSHc-q8e5)X zGqKdNEl-KbSGMI@XaZ$y$Nf{}cW>TeGjyT#x8+-Ex-YV9%eTy|6b=&KPpdcoX|qGP zjM5N4W&Uz=TDb$b-Tddw#Kj!Hn0kPF%wJ(jBKWTP&zo}LA{qjF>bw_C)RXM*wfBoA zLAZ<_hW(-WFPh=XPk@8-UpC{Fv%z!buQt<_7lRkgf5k*C;q=PrW$-ieUp32xi)ah@ z<@s-zb;=)tU!A|fY_+WWr;TQp#y<8!n(+n3bqJM)c z=a-u?%724T%-`bmcdZNVPZFFqH1 z<@?+A4D$e~PnaJO{@VA?7yicQ7ljY`{GRY(pAQRv>oX1J_WI7}hQdcYj=m9Gqu}T{ zoLKO^&wXLPvEZk3xM{(0pU1$SSa9+jZctF=^DNlA6#V9M9=K=0?>;XB4*-vo@od+h z;RUBnD1z@VIAh9%D~*l+r)l~W&yPxDgDSMf4Z=g@R}&U%Ac@<`{>)dH>oByrv-5 zDG|G^58gj_Rz&c|f`AkMH2Zt|xf)KAa4=x^b2XgC!j*A0y_!yQwcm*J-z})==QjX6 zcwW5E{NBOoP?)El$9dq73*w!0o4=f|J_8T894LeRn}Q3RF`D1A;G^J)YJUZMJSV}K zuJ$e9V+9FLNbS48RRwjNLbZPfJ_F|3^7EoUz*Ly%EERjUo-gY<<-!$lHSXg5cU@%`2e^{;l&QeM*QgifG;m>;0zM`Y>FC+=ZS?W z&LZI=stdlMu%WX_xhc3yVIya&a7Dn@{}QJ{*_QtjXNR(Fk4v0gmdTdq66c7r&A+j8 zO4*h#)j2IZhps|?FXuIJLeFt|z5UHU9479cUaZG65E9G8Ec&rO8e`g}EbaQ^i^w*xOLyus(2!Os`A_qm_& zjm~nZzqg<5;H(t3``Oin9h`N-m2tK`Iyjq@ZF_WZDwJ(|baZxEHnu%FI=hu^d)(yg zkKmHR&dwoa+a6tS3~;{x~a_q`@KEtTto8^NBgd>ObYxUFTA4sHSN6TxkZ zCOWH?@3|W9mlREMny=yfD&_kzJ&GQ8(uIT63Gw?DJ>d*ez7sqIyjyt$_`#ydPSPtJ zKS-S4w4y1_F6BqSbBd-pQES;=L{q`@il#g1%AEhwqM1(j2wqu~;S3cH(j54|R+Q9q*obj)-9p6Wj{nR4opm31xLi#BS7CY_Nvpq=ngPSdQ(#a4m zqDkPZ7A$r0mGi-E7ChxFRp$3DZ(gv>S)sfFe8+;Poz=oY+5jHDV7Zg<2B%*{JHQVw zc*aQ)_U7ZWPE+AI^d;<*7Ch^uTf5HB70ys=*Ztq~&cq0=3O(->M)3T?7o3$5JY&I1 zry_#qE_lgly@AW)Juh10bP~=E*z4gnPIuv8z+Mlpar&#>UeCVb3|0OS<-hH05-y^F;D0aJ>TDIZ?xKQre&XRF$oFDQP`>GUSYuOM6A?M|Nvu3YfGGhDcc zLhyehf2T9qvR<$4bXKUn6!xAc?S7Ff~p#^X+Bw`CoFJDokk z-ue6k=a8_SkBy2yaN^6kymR#a_(x8Xa4=x+KY!#jRy*H+zH#2iPII-}=PMsO>1uxt z<-NT46Q{lMX7E+u?!w!3zq{KhQMUWtPn})Lc7Ob-(`gHeqw7Ug=u>BC1h*;v%-Jd& z)bYN@*`aL5`yOYH^`}pee~03|&S~W%;O^k2Z%O)eQh1-!U%48*B=3MTSvW|{eTu(y z>c7qYMHD@P=&s_gooeAAT>!2(|FDy?mF+>|^v4u`>y#*`z&@e)s5538+l#0f;$K1!!2h%2V@}{5&d*!# zk2?v%Wi$o$jNIeSMCAhTm&O0~(yL|P=RE1NeV_9epO?b_yW;=&yjHl%+4T1H~I2ia2 zjQ4k)e6{}qJ{|hQDN%d$NPge*4`;cxOZqV-e>zbWoWGqfwM))AO@+Pv4!I#=Z@)us zp|$INhuo#gcE3aJ3gKYjBIMVggxqy%xBDOCuD7iFALH(d;I>7M+x$H)kKOOwROGsC zBe+LVl-pg{+s{P1>x8}QvsibBux;-qC9!U`#<%;oIJf?GPT#9foZDE~i;w?`L4LN^ zYL4;`o)_kH@aCK__W^H-VDA4`B{lr`-2bggYWh45{_RTQeV!>?%j0O?pWRYY+vj4~ z?y@vMpbd8&bCAtLH9Kw&hE9 zS1Q}`UFdF7w)L;??ohV%ukY@+Ed6;)$wlrlWm~?B-S+QugH{?_pAGj)$i1LCMdy z--{(p-IEdgYRRQ;>m9cIHvh}rQOY*|7H+n(&F>1gJc4@^wRBG@+wxuMw%=*fv-!7j zdkF{WE7YfNQ7d=6@)7Wsl2&epus1%hatqbY`E4(`%KbsumjCmT)-HX(=~vM2i2qH= z)$VZR*n9EUmP`15(Bz-((f0cv=|0zky?gPsJ~shZg|74YTH&^Cp`>T?Yfy5%yZW5` z+PUpN@5zxkR^^}JKcTpfyYf>_AG|oXuX{|mh-!?&_y0=oa8IiJQgGMO zes26{>|aD}!2L`6yGg>{`{o1O6k*$5_m&QD$5__)MFzU#g@Xb6zQ{m#y4v~umlL5o z-9qILz*XR-%C{iD6QM!w3XMM)Tm@dI_Hkk#>~2!~9I+2}E7ZPR>_gmLYF{h%A?|*) zza{p&+|$Y*iTy4&>T|B|oWMb`4|U^(gMs5>AL`au`(I+e+ik4&#L-;7yWN&*zZ85T zbdQ^^_I6^w$L(b8bQ}1A(qV4(9?s93f5Y7Pz074a820h7kNd*%Fz}Sp;qG){Jf9ef z{Y2>q_lR&2jfZ`1=}0$zANzazy-{v^WxL-S?dA&?(KPtaD;@1F6}J7?ruaVhq-Dy7 zy`*%E+xP&dH;0xBk9Fx^%tf>j{B-F9ZfoWD!0k&PbjJ&O&sWE}g=+r>_7_SYa@&4s z<5z(0ps#HCf{1^8*<^Q|@_g_uWmDXh5!}CQ zn!8(hDeU)^&2Tw3+P{{4Uuve$cK;q`JHEqg=R=q`AiYP*X1e<&{mM8my+gv@e46PV zQ@c%nmU~L=_WEF!OJ8$&@O>c}uNiJYI2f?=DZ@=tyUjo7rl{S{$DrF>?Y2CbZfoH= z^a;vW70Pt?2p7>F@RYJFx9vBaUorg*o?SNEohWR_*UX%`uKh}$cRe)MEfISeorZrw z*<5#pa@75J{#_PwPb=2~uPV#++B5n>@SA1%J~snzFDr0|AL9HgjkOoM>y)j%%snZL z|Cb#8`^%nm=`j0S{IJU9@FlN4weAL=2(9+{L2y+BPXP~}x5l>z z!IMhDj6dZ-O&7l6+l#?1BKRqA+QPNIeGT}!2;KtToU_iie-7Rf=4k#tSBHhKdiLla zVeb;be}a21e9f)?j_bdj?Df-YZsQ}&UVFao$G7${^Y=#kEL`u~FA{#k<614jcP`xE za~JT9^TON@yg4V#_nl{-r1s`g9(#Q<0_n9Cw)=-i7jAUN2z&j#*)6dw-&38oaI?Eo zxQt4X-t2{My1OE{bm80X@}peeGFk!qzT66TtMVJ*GkNd1RLOQP{q1g&a2dTX{@dMj z<-Nl1yV=T>!aLj@%D)QlbWaO!H?}=LaNB;*=~o)to*%k{lx=(Na`P?6+4lU%EfEgl zWhVZ9;zw@VA2@!6sRLfQ@MCwlaFJf`?soH)Q(<4f@Kd+(kL+JWt-x}w^YvIZ` zJAV$iZI$i(IpB5?-X3S?&%fMW%69(z%N?ZtcK&?n4p+AG=Sz2-vYkKwi@UdhtE$Q# zzxO$JpR*5!3Jp_Q{17L^q9bfVB8(~0U?d#|S)y|brKRed!cNG)g0{jMWx#Cw1>|YYa^{pKF#Ma=A&5{rRvfhxAW_{sqrrS25|afB(Z(PI~zs@HNZ- z;i@D3Lg*h&p3hy|NWWLb|J>E0Sg*gjUHpj3uk#PkU$Lg!6{tAfIR+dJjNcN(@pki z0>yf~IOa<6(SNz-n9J?MC)S*BH6zpSZGGozQJn7J?`?hOY9qZlPtG^ryY`X(WZ+)l zPSWG^8b7$YNsss6e{dZqJ)VCv&W_6Z)92re2NItN{=Q#f@TtU?DmHlr@lA?dd^_>I ziaGBmeq6D|BfmobMT%{nO#G~3!Rv^3D|UFdV!U2fegNma>iVkdF*5%oKE{Vn%OAz_ z6n6#S^JXXW5@LMb>}R~17@s!_;oFGud9$DM7Giv!>=fQcjL(yu$~%bhd9*S75HUWF zHkS7hV||{+`-$;<^)&AE$^3T(;PYLl^B~3P&Oe~M-Pxz}P}1Y`W1&2Z^gk$lD4$Gv zydQA}k0d?bk2r%zlOFFsjpMV3@&3~|o~SsJ$>-sE-M`=&K3ueHJTFoFsv-3!XP?R2 ze0W6m*_?f?t{;=<3+LqjisviNP#lpziH97M`V987`{a55IXp#iIy+PGxx89&CX>(4 z^}54(n-3Q)JCFDI@X6U1@G;*=f3F(S{=DpqxLYyC|1|qIyuyb^WM9H}`q+nMU&`5W z8NbCiU!@<#=PHKZ|4{r}o=hjf z{~q^r%~m0BT>f<4t?Vl*7L6vOagBuJ?^(=^LEnXerq;A zK>9Og%KE;GA0j=z4{#UnBbM(2JduAl?^m4e$oB!VfSvEKzUBJ>Pvj@^AjRp~`v9fDZHl`B@O_v2`99L`hxS>M ze?RY}_=kX-@*m*cq-ROc%Ylz8J{W+{`!C?^dwD$$2H^Al3%El(2JCy>3wS6oKL5Xf zhY{oR{|k7y;x0q|e#3I$AEdu@776hegA1I-lZ_@mDi1@M#4ZJWX*f+Xj4L!IQjO@k+K6II_Uak8o+fl6?q#ZNV}g zYa#am-%zleGaK_G=F9YQ`FO=E*;wGcOP}JC73==Kl1C#u=YamEf|Wdm_!8ha;911- z`X&_Q@dRRdedhruA*<*6Q`vVfmpsjvZJ7!_YwDkzO}&1^G2h+b3gpbcfm&P z4njT?`2B)SJTMsfeBiEvN~O7~c2W@2<_AcR^FcH3COysvFYrFn z<9q<$><*Fj*%g4#f4|5b#hFeS)aSyy7kLQrGr)1nU*e&}txEqApGf?%(r@RH#9skV zD%{Se5VHs1c?IAY;!(hp3SZ{2#N(9yWuBn8D*&HA{~Mo6`tw2G@BSN4COtlX{t8ba z{S?surtlT+COtl{-okT8e}jtO!i!0d^WP3$PI{dGcJMmV?Rje%Wj)(H}xZmKR#7V%tz!Qm6fSWw6d@^wk@C(3Eil1=GRs1)3G_m|0s9yJ*d^&M6 z@a2VX@ma(>fv*BiByIi75B zc#Gn$0PN3gd>^rV|L@M_ZM+-V!2aFF*{Q1i(t5OwhbY$T(Ka5cIGue3`D^mD@o>dY zD89L{ji-^`ULc>}-otZ9FFC$&4-Xk5{pYe@0M99Wn`bD-=d0oi|IS-Te*x%|3fp-* z@$JBi3*X_L#LIv)3*Xh_mDL3N(NlW|c&FlhL%8dy_XfB_=|334T~BrJZsi}xvtIXp z-tWVsR(!vp zqwjj^Fh8z1-RXh+e!t>#9&wsXKixU$LCM{G0r5GCzu?ux*DC&!A0ob6aSsnW9pk4f zKEe}-Hz+>Ji-})S{1xA)80%wgVK0vjRpobZKl}}kSDfzPe)t z>2W`OoTrc;_v0sc2I+A>euC#HhTj*5^lJ+L$;*k40dEDaqxkao%Pz_OmT#l@fxyod ze#=`(kNfd{zE9i#TK@icKkp>Q_qV>|M~FAUe)0Pi-}8QAeE;hQ?wldZ+ZBNCe=#eB z7~kJAtntM7{+4Nl6XW||E-R84-~ZxPwBlC{`F>Zg+p-dUxM-PeW%%&P*^brd!y~d! zve-Cv{pdVkq*b9XEOOd zS+DzNR=E$a$O*Ap$X@Dyn|+Ek`AixARYP)E_E>AK;&k>qLDm^VT84v_&30TMZdOMi0=RnE4svLCC&uCuqe{nM_dbh zZP8`capHG@V~Z}g*d&=hc)tyJPEnK`u@NbRw6OpAGp#=CdT^%Q>+|f zygzW2RjnBN_rkoZt!5v7py(Q_PqBV}H`;Q}QT65Ed=_n`AhT1G8GE=W+G-^J6>w_N zb=FSB`gz@{)&a%%Jj4s0sn!w2Ei4l3GmEBKQ`AowrZf3|b9T}7R-(+W9H#?NG{ zfqB+V))Zu?1o*f+)|!s2#`{!Htd*!(*LSQ{LX7o&v(-V2^?i#q=6vbDD`3lP`8?vS zR;*&ZUY=#m_2Js0Syn$XtB3Tr75&kgIvLCNGVrTKw_CG_W&K94xx-3QoXhb3#GTdx zV!S^w+e#+;55WG-qPs1~4E*=1brkrWqB#Tn18_&tpR5eDSLN+2nrjs+#{I;YoOxC? zvD`287bRKEiuL*Wd@J!nnO}Hb815gqisxG;#3L5M_b!Sbuyzuk3hXLgV093ODgB?V zZpHff;D@X}#hK29pg(2VL)OHLr2kBI1#oosL)I+f-vNJ`oor z7P}bZKd9nAVnq@EMe!nQ5%J>*a{s#6%29mKcmnkAWi7Vqh%10U&0cJ6BW_jvsI{HA z7kF0AU#xD$ne6n3;j5m-Dc0l&nSMH(2t2Mh)k;>Z+e4aFtT>ll1p4!e)2wphYk{vS zPPeLk?BRI=Yo`yVE`P%6SB(8@MNWp5^lOu?t5~t#pSi7a#qfQEo8)-yw(3YP z_h-Ld?y2bf4 zYo(AL_d8En8KlSk&Qn$n>2bfa(#j`2?sryN<)p{`PM%dwdfe~iS=&f2_dEA4UuA74 zz1;8IT)fI^B|Yv3R$KfMtZ&>8thNFbXFBrtKoW{qTVqg9`-3&sbYk59udxyor?Wpo z`@FAsjkS~b0pNweiILdemjI`F)>soSlMLe(@Ka0ISSiFCfR_~KTWyNug0w3O3yxuBT+!cWL6H2UV#p#ax z-P2xoiM0*&wBIVVb}H88FSXhfqyLS?rPi3=%JjPE_ir~?;}sta_&xZm$=+Z^lOFT8 z!HQL^{cW(eDMo)a#T%>xKKy*~Ml1db=|6+sr`l{KDu&++{!L3SwOE*IJDfKMl&)TD-+-QQTr= z1HTK*uax<1Vfa3Hoi%HU?SLp z7~ju+&YF0w)OQ*9{`K=#qGEXe6Xri_ZL?LPIG1_B|H*4#u;Q$R^~hloclg7x3p7ORhV9PnLhcUbIq=>G!Xt`)CZ4)K-1 z(K)YKL5lJE{(0?AE82&jSo@}xjO@$-dw0&?trX(L!0Etl#Vri$x7}(d#`=243YjX? zNB`Z~?^+Rx_51OAtw>^gKYp(jr8vXE_OjQCR-Eo&d)aGECteQeuUWg#nnk<;xDq%~ zaSOxi^PZJVTyUHGJ%IPE?TX?31h^ivayqQ((+2a`y!Jz@PqA*#A6xy3b$kBUa;}&5 zI)9&7L5g+$KCwa->-OAfO(e$m{X4C2vX|}ijkTRt1o5+w|963>D9&{7`$C^uQ%R5C z7y8tSCH<>l-{k4C;)y>1egSx{;tU6Wzu_}$0maAPZ}`kgQLNklA*+oT>*uf)bb~Bk z3;iC!=T;ao)@QdBfovRs^gdqug;h)(vKZdCT-#$!jluZXAC6j!6zl%*mDT-wsmJ~> zE2q~Ayb(DP;zwuqS@DWc+VLQ`hdT@XDcKN=vVaF=g z>t)kUP`sK=0Q*zcnRXhnJdZnP9k;g;UjX{BBHP|cd?j#njBkiD@Wc*zA81Nt0jk2SOmn$A^XDEjI zUBF4}g6spNuL4eAce0%ni}AMuuU_{vd-Bc5dx1;Wonl83cLLY18)L^19|hjEZmbrS)diBI|qyg$4CbbBuG7~pB^L+u5`X9M4|{tSB&@kPLUmyWYDh_3+tI{z1T z7BbE6-3^^dF%vxA850)Bk`uk0{l`95jx`g83m zK3uf^JUhXMH?E&-r}*&J^%vWTx1xU;|CRNZ*m=Ycg8#p-zuaynP6hsS{cr8ISy-P^ z-@E=wo5f*#$>U0{wiggfe;1ToYo`%sgFdQcs?Gn1_8Wm?OJeLP#PWURPuJgQFCdoV z!yP5l?HnJTS2EL%xDDe!4e=M3+-%1y&Sl#b-)bilw*xOPiL=XnIDOq8?Vxzf{~^$q zm)vH@6MqL>TXMS%KS2uZ5AJuSKz)=X*s-_!p1;ht6M$v=3Q2IaFZekB`bk03?4sj9i;gY#_K5-53v66f3oy0Gx`19;G;yo(w)p{_MwKJy1H|4j~?|__a|$V`-`#IUDWMK!00lx}8Rx2b@@% zVYm2jQfa20a2MK_fj+6!WAF6gl+rA_pIH7rMoMY69dkF@%ipi~I{ztqf#O`&2=TK@ zSK9f+F9EMEU1c92ZUrtWU1NtQ%J}enJaF66LOY7M3%Ihh$c`aC4*Xncu|11;L@La; zrR(gu#G$~4OV`^A6yy8T{iP-LBE^}``Jgv9l-OCs(ZHjD^A*2J?;n-g-KeMYpAB}O zVm*FuuqV#J{L1r=Gd66nCo9(P`;^&{iuLc=mf2~<^8JCTtTNk8EZ-m40-QtqN6639 zS><*G@uS4siRJ!H>h}>Bk^TtrHe%;b>UubPiN_NkBaS3KWeNJ5PJ9mWT;l79(}?dQ z&L@77xQ=)&@lN6whz}6ILwub0YvQ1LFu!M{VSXkOM-opVjw7B$d_VC5V!5A{^@BfI zyVCKJzJ&D6#M_8liQ9-jCq6{X($OEAi}@Q%Jcjt!#FL5dCZ0;1N}NDkM!bml72+J? zL&O!tfsbSQ+leEH_YvPge1v!@v2(A%U_5o|iN_PaP8>_wV&bX9Ylstw>xdT-e?Xk0c(s}j zez~FCj!u&4t!8rkkJ_-wPI&-%R3uwk>klXwE~{0+5szv7kb65z)-)Y}smNc&tS zzmKzO!&WI6;J&5^x3;2Z%f3qFMtLgWLUa{ke4}kvK zf)=})_=w_H?c)@mJqf>`w_&F}>(5v}KLg&oVV9jxd^Ye$8{V*6iGKt9Vs5M5K|BNa zhpe~kjE7WyXnojbA5x6_jZ{yYecXq;HniDJvb66q@H~BwJ%$+1)8DqIE7tQxyB)81 zHJc6TeX*h4hMzE2*Y|$luQ$A7cM_)pyUO0R!xp064LqW3uN~pT!DajGXyRPZpI-L9 z9ZS3(IBjW%ov3&vs{r1+^h0}*Vl2|a@e8)v_{*?QP-RQ&D=XTmV6~pgY+y(6??^C;zSiax=m)tHp`VpBweg1XGj#a#p zy$9)ET6V~8QJl-ZQ2e@7lKIu`F*^a7eh=liJy)^*J(S~iGU@xF ze3Mq5uv17M=$5~Ca>8~i*7fsGd#B=+EEM$DmHpG+M|>Xejb;6Irw_-LeP;rKEp zCN7rwU&*BXoH8zweK@Ji5*a@HV3{rQ6zlRjqK@>JK>WpJj_4!45;(0aKsb*||Erzf z13y_dLWB`N0K6PH5}7RpUJ0B?ydJo)>?AQgMa5?gz&$GhMJw@(z@=p)Mc`wo-wj+* zHcDiqB7Xv0Ult@rk2R~9U)(@@_J{BqgJqK|mANAk}^TDsJ)WM={wmW7C&iebN> z3BPw%_H)tvIO;D4{fA{^#N;O=!}lJ6KPx*;q!7#RL>w&(6>j3iz{kqY5N*V(fJc;% z6Z?qkfzK-cg*Zg~Ch*ne6T}hX!@x7k&lD^}rAOo4St8@Fl2{)OUS ziqK5dUjm#|K1ob}68Q?n=ZbhAUQ~XbSm0Lv;al(0ezMq3EProcb@@di(S!O}(3h3} zTJ#go25u^k6g!uq|M|eLlwT&sFGKrO;J3@8#3JGqimwn^#PYisZeC`nfO-af2K&G`1t(kOwmb9?>C6Z9AE!8i44Ws|4pJ8neuSj_i~v|96N8;!5TJ4iTkT`@ch!6Qln-#BpNuf2W9E(v@6#B=ZbD* zr&sx(C;EuZEa`uq=%@JTf1XGz@by1WY$Hbh_X%Do_1gb^A{1Hu-qcv{d=W+*to+Xx z;fi(r&lh>bSU>Z{A!77@zlbRE^?$#JL8j}wK*SPb{Vx#linad*qJP1EV?N^ z`d=(!*ZcZkEGmf6|D&Q$vG)I{2rQBI@VvNcKPe)FI92&i5uu88{ilcwV$6Sv*hh^1 z9}{7v${&pnkBKN`CrjmjiHIg%rTi}uF^aYSC8CiS{Vx&D1}qQyPZP0>E?+9;)S4Z^5luIN@X9A3f$w)6XD3lcHmUdM-YEX97*BDU|5FrWefLBB z1Rwshca>P6SbvXYwaE9;r+V^52{Jnu{H1vFMPQZ8Pp0!*;2w9O2qBII?gbuCET0$7 z@D_=Q#PWGz4{!uBUC&|><;T&;>^|@pkX0;Z4biU^38a4v^aV@TiUr6{h04!5v52@% zoy5ILUnY(qQ+nm%IO#F}<$`U-`p5j2i$G$`zgL71WB$Ej zJh6Pfs>i)iOw@XKpP&~w0-4g=B%=H{8X3Ng0ndkeH;Gw8^c5n3^kbF2LZl7RR|+@j z!$H5=TPZ4t<@e8uy;UNqT9zl5T?6_u?`F}gSdR}iqJ{K#fWE<7BU*{&cd?qhwW6K) zap3LVEuus5K_d_NHE*4Ws8Rigey_StL=j{EsuRt%N*`e4Ft!KmTac-L)rnSO>|b@F zjqI_1)rozIb^odp$9*`}Q!m&Sb-h>;_}}ZT7omy|8h-%}%54x?#Mu8EL>@8buR%oA zWB#54`?1~z5rs_oYY@@In7;<$CVR|ZgUDB`^VcA@DNbkKfWK7FR+_tLs90a0=fqSWPW3!5rX#aoJO%UZ#^*)C5Ph?lOZo`V?_bs|N`~lP5EZ1K z0{Zhez95>1=wB2qq>ll8eBp~?AMu@vUlK9T`d;7dA{Lqb8T6Z%Z5N5e9>p(+fT<2)<4EcS<1sq{1B{P;t8RH1Gw$V^FWIZ_%<>#bmO79rQi! zog$L#_W}0;N0T0(r`;uDNRQ9c?h>;U=rwbDL=bK8!_f*w@7;l?J+;Qg6`4H=`m~LEMBpofeln2YSZ2=-MQ-xUiKr#m}=w*se-{%znU&t8#1{1NaAz&Xe?-tQCn$ZC8a=iMi^ z`{{R*z8m7-5BejD4;udj4$9pprtVPJhx*4pF`XF8w@vO+I*@g9U?P^#LfPDrs)#rYZMU3^iU$l`u z*5`h)PqD7g{o=Udbe0SLQavAuF|VugQu#g--$4pBHvG6g3M+>{8Kh{i8deo8Jj*6hmajyuN@X)t+G7&_wWvjaK$+Pp19pE~YEi>355G#dy6_J>4SFkCTwuJjl;S+1(=FPhUcMH|bmb^zEeI2>KLnx9A(9 z|5Egmz8Um!`Cp2_H+`?qmm&mNy$>e!VSf5>(!UMy1G2spQHl>5UBFjv>JfRw*k5`? zF){X+9^t$t(>oXtoe$qvTiPRnkg31)h%v<2UwT9+*<*j{5n+mTf9Vm?il1PQC&>PC zM8p%9fdAIwBO;Mlet%}#rXwPUcoXO&@{fuR;zr;(IbVtKyJh~KQ16G`vZ+tRC{Bmp zs)6@eHXRc=iuLt7F6#Vv8!~$b>>u28T(lGS06)Izga~T$t?z$|F~}^S0CtU={wX4c z=)V-z2&@ru*gB*;&y=R1+&qnDh4%q{_a?WXTU{t*55qJ;D}fd1)C-;2f} z`X59y>Hi4&=1o6{)**VsX(xR&T<_>?!#OlWZ#qX5>-sUBgukou(0ph*bBVEjOsAvW zw|-2g6PfDAbh?SLeoSZbJHGW}I+2QX{g}=y#p&!3RX;9gk&iyr<8soF*g;PO{?Ljzo#8_V8%-ZK$ zUg0DlQ+b6mml(?{oNBVi_8^=_#k#!0X;+-izJ~mydK~A7k6!X|WG27U8&csof$#a2 zC%_3ohTn#f@dKR6e)>q#UrPEIKYc9eZv=f@et?sqSnpQ?oDO2Fj{v8W80#azX@4K< z1NSRnk4*Ie_QY5p0nWq^&>rgp@~c?aM}RY3aXR~x%I^qg0oof2flsd(;j|NDenvPQ zTCdJWM>umk(Em2DKkkP3$dsQE&LU#W&j=@l>@hzhoGisUKO>xKA5Qh0w{yj~YojC95;*6&k~a;E#}Q$3@dS;*|9B6vQgVziSq zL?7fNlm0Bw2V?~~8AJ5JP8R7e1ASb6uv6@(FDLzU&`+rdcAANkfTvfS?6eWPf$ymJ znbSEWeu&de`f|`GRfIUs{=xF4dVcN%A+vhWKUDE^XZ#TTsm?^wzXJNlDo%AGiQffY zS~13n9b!M$i6{MG&=*vUb&`hYPjiwysFYOS>r^h zcd^@4IA<8oVA{|9%FqAy`b(ekKZDJq^d2FZI*fFmhxVv9Sti-(e4G-FdR?AXetzDk zd=?A|HyN^vZJ_WietsK?wcp{Sj^}?JpP~5v;r{$nc3R&`{!p6i1I6$Y;!1M%73u$} zq{&>hST9=Yc8K3>G?;FG{&GCU)6ze`{_Nk*{Pq7^#_MV_dA);zThemK{a*HCnf_+QoIOW&Z;;gS_Y!|XvR_G)>>>Z>$@a!s z;1($@;Q3crTr4Wyq*d@IR0 ze&HD3WJxOAMc0E5)W5tQvK$L3{&4lI!~N6M;adJ@dXwq$=y~x8D$fea-%xfj91nha zoc_=9Ww3u8e=y%GDZhnEx@cbI1LYc;e}fI>!SY-~AHSp6#XkCpaI`bY&c(hY`>#o|I@yj)mVdsKE+!NkOy~1w#HW+g`F)$(->)eC zua%TOPfJ~Y!%5wbaGhtc`IHZBzwjqm+YKilq4;{; zqItOMH=LjUuZ3q&xmJ_(lB`n_TcvNid_{$u>aWP=S2*W|*EBI$igZp%T_>6z>q#$CpaF7|vsyeM9MZ*Fb&#&*6jnl`#}Qlw=j<6Q#+XA%0Zt2L|V9J@1}L@&4QG5ZCP{3nTyj z`wks`iPD?w>S65s!?7H$0ehX!%__c&%^t=N>iK~Fzg1qHzAn#j<<#N+`PA|K!?nHM zr~P~NU<|C2lBph0nk<7@ucP$!*K(!Oo77$nHk4hgnBwbjU4MEU)&1cavO@{&nONIv zxtG$z^`MLWV;DPakM*JF4})R7`Ad`O@ycJX!?pC+>w3`P+D=QoZq@ps(quUQ59Uwj zTle?gpD3TU$NAJ`fodHwxF6TyMgxu?dfxr_q{(nz^7l8$|8J-7P`QTYL+9_O^RMgY zzguqx8#zpU>-KmG={282d>+Y2B?sq`YZP;K{V@7C(vMO5LW`lj%@WBT!woi^JWItJ z)TgR==79ZD^0VA8{J+g>C>@=jq5Z|b-x_S_c=zLew3hto{c@G!!EwnyzP=v1-=Z{` zE`JmGd)`m#@VykS#|7;l=O3M4gLRM{N|PNX#(grZps61ZW!He6Ztq(9*ON{c=K(l( zr1Js{chNbX&d=cdj&_6g{^NvBXX-g}JQ<9q?Y^OM==}d|D~>xlo|gJNMYF#@eI15| zyV!X0r_1dx^|-0?qt7)pYx|*oe_Rj#dR*U`48sTO?_Y--?0?b+1sUujDn~TQ>qy?^ zC-pwiU#5~B?hj4&S7Keh;bb=0$^BU&*>4~@PMxoqOtXLd24x55I%KaI`>ShUoY3)x z8)tO5|M=p+uGM~iO6vUReezDqpZ33-xP#;0d~%gLWUH~BsBO-hG?<314?t?Iu$7ULEc31b-no8 zhtfV!UuT{FpQ<;VzFyZ4=U<06P`im63_0dl2fuE{xt=Hp}|Ga_wFuhNMb9KtEe}DF8JpVTt zp6|P8-Ngsi5&n98?vMT28nDyzx|VwXr`w5^-IOn#fB$?B4L1kQOLh1WsyEGA>iQW@ z{=0Vm@pXOcbKPTe*X>ES2hF%1b`7kL|L1T{?exd{f&W(i{QcYJd|An=UTen z_4$uxeV&2qF?}5d<-eN_o(uV}YhBF$JWH>?b^1EqP#!!V8)|PbJ+BTYwY{!~pE{4y zcEg=tO;YV|@Ep(o9MJ!|==oN+Bb0;VwdP1_*F)JgFwX07U)v4kK|BBS|4*|%uNf|X zS5Y~!9Ol4%ZGD}z)OsABUF>>_hkBEq_i(XWDEw}cb4lv;{0f?(zLUJ)pwGShuY-R*WmEckT{%>5&^g#(yV3Qi???Er z%kqc#)B8Y!RZzH&ug?iFez4ZBmX6@f!`lsj5|LOJd zpC|D-t^f1$q%H@R&wqaM=l^`Z)b;G2o}TA)JtOIc|9+DW z|99s#oo|$b_qlYxA5Q9c@2d7^GTqPhe((UbOO&vlC)RqDgUp7g%=PvrZ%76UwWx0R9kkT7^-e58;k87YjL-hu`lH%#-0(AXcN8$RMX1ILn@TpY3 zTPYr{&rO!7*fntfNc;bH*ZIEXl=IR8@{bbcG2%y+G+8>a|2|A#PycXagAEt1+l9Z> z{lY)|U-RJoG8tb!FSeZWtJ_flaV*WldOk%SJnzPR%OLCP@PAtB=TO#DzIFL^xRzS) zFSTChTeJW3aQZ%uUibU!^}ZSHtbzT4_B))^`5h`vR<6q98hC#0S;eq^qi|_&!t;51 z{K~D@C0c5~U1ZloelXm{(67Pte5&VJ-5!=uJJ9SewY`6RVE#GX&$0&Y-w$Vp^*4C` zOYb*yz3Fmjsn-QsujSBk54QKA@doQxUsrsNz@m9$aQ&hE{*=`IQT{kx|9t6s*Y=u+ z+6}H>w0~XSTKZoP&3gTU>xaSeXg^vGo!|7lXsG8VWed~yzjQwJ`dr5!Dou8)Uwa&? zH`ouP*ZX8G@i{V+jd&L4EiF$`Y_bcLbPYUbj`M=aena+po`@pWQiuD?h4g$5`qj^= zngjEMzJI94*`YjmAL)Mzm;F+gd#HXe9rWuOsNbP>|JuKNE*JaDaQ=R*zk=#zXgY)O z@!ZzMMycn12g83VpSpc$znCui6VVv%b#$QtSPtZkJkWz3#92{_0SMc2DUJ z4IjJ@f$@H9H*}w)_y2?OP!H#FL+<}-JJ-N-DLUQ%*`JH)bIhT3!-thMI$WoN z*UePJ5J{;1#eSw@V~WP1G4^PQHuedzmac@$5F_&p&8;l&~M7eCU0H_WPm=hx#MEKG%7jSl@R_gZcLl*Y}ro_;~Vz?HR9= zyne%l4}Ja{&Y9?WT7RkYt0g|i0NravX*!s7xqb@m*dMCvKua3pWD4m{qtY5i|PB0+HNPs z!}un{`-m>4?;{Squjpd>eK;Lor>pb#@i6)DzrXFzUR6$$RZw|1lhpT*wbbe2JUqD0 z#OpPJH_unRajr{3we2&IsyZyqoeTQFomtvFEuE&0?{ouNIaQ&^r_4xLspC28r z_kG&lXp(+^><8P0$xc@K!SbF#_7nZWFQ)L{`i1Ls^}0rWzsu1rh*H~7Ac|2d8Jr==b@7t*?4hySNipHt~^Wi!=_9(NzHr_hjF0`*VEX>UUh?P9`g%P>`SwrGf8Xe@ z*U!=DdeG}Eov-1fevS^$q40f5`F@ptZ$eA|^t8WxzxJftBcavtIXJM9+)icr|#A zqvtRGbTsSo;QrTS`aLVH*ZIP zsn2b(-wZyNh2xXK^!%jl!2y<8{8v&IymW7+Au|#$n$kSP}5z5kxGgzm228#e$ z$HuW_`0F&s0gnSdmsPOI>d!DQ1dd=k;b(gL*i|s-+z2**fWH}RiZPSjY|dnVhQCMQ zFBSgc;O}<$n{CFj7~>We3x7eztzbI~{{2UgcR>2HA^k*%n+S0eA#NhXO@z3K5H}Ix z&HmXLbdDn6(>^vQFbK@RtG~%}4>? zY3xOw!Hye$Wk=vI1OC#CCt1I-l!d|1y@#9GtQ&qwc8d8Ft7cC@Iajgktkob_GsjrN zW|?c?-)rFC1uVfVWJg#L_$UG&>p-ppS;88uQb@m)jW;%c{RXh#0QP0zvkdB}9Hf_J z!Jm}O*vLYS3b3sNSq1e_1@%zN>Wr-{#e5d(;aRAMXQ3XRg>pX&_3$jz!?RHSCaC8o zsQ>rD&j;*G_5p-_z(z?4e;(EWy2EUPaTvl6vx@>i0(;o!;OBD)`Ll{W- z^RSDJGvRNxd9g7{O8E0Yjb1MzAS}Z8DgY#~hXu1=z^{NbRHU=>K<-@{!2Wun{MDS< zB*RFiv&%srkQK(R18HtdXV-&ueC@N{-N$d@W2l>Ls1I5r3P4UqSN{21f|Ait;x zVe(hc#(Cr5OYDrDpzslu_p(QUtFi(I;x7k2qcWZ4f&4Yd0+3f$PGTh>4Nowu2RW@W zn7snBp<)u-eKTV-z-~A2ERgSjybGkv=e$Y}dvreh8f9ex`w)0>WsKq+kpBSQvm}-s z1zA)XPvP+to~Xh%LAoD<|N6>k_U7%dBglQ3EnF^tJusBXUx^&+-No?h=I^Qe2YNCF z%5fb0j;Kr_&Qem=uUL!a7!9(iau+)TtrD4eH-0LAywURyAM{9R>a0<)?XmA+jy z$&lCQ!?Fp+jExxFLTPeXN%o*bgQc+rfT0=&?ObFj|3A zJq51BWZ9mKD#YE|h;o(cSVRg59a7nB=I z@uH18A$-3#+PDv7us6zhJVBNx+DHceyeeMVe^ZsH?8ku~^O0y^`P&ElF9Cbk<|Oi; zLH?7e{!*x3LJVvlS(MKS#*+}Q$32$nztSiGp0xRdvHMT(H3X3Rp#9HV6<}_F@Wrcw zO}Uf2bhBZ~>(S%x7)bvHXg61Ho?zr%0oQwTCxus2e#$97mm1GN{DP&I8n1!uabIfe z2N{rs<7GRHKmPze4%h2zkZ(YL4lI%5WFyskBbC3>kmJ*&&6UO}pg*xJjM{&?aR%_+ zo70VpK;FA~f{EkI1QUO~IgVWh;SX$Xrt-H8T(7Gk+`YMj^4m%I#r9FSx!b`0)k^kJ zbp87V?5>0Occz3eY_HSI7~s;)Gt65+R&AbU&I7p>1rHj)h!I$4YpsqI*vUF@xG`C zHRX7%b}lFFE-_T^s8#@Z`V~%GoJl z1mekgFdNFTANaBrd6bW0k_Afkx*LgindwoC)l}~?b3oREtR!wCUJvpa2;T*=ndFIO z$S(u$hVW08qLg~cQZJ>{cR@a$f%=p4=}zD;f!_jYmcqPH{j###yX>HO3h)OM{~*ZI zfS=B4GS33}S@mJ_)Zaos$~vm@y)f^vc?pDnQGG&js^^6HJK$dT2{RUCU$x=Fbwz+n zwx@4_v0v;m?*Y9m??RA9jp2F{WWPJWl><@$7lS;hW|z4MWDxKckg1*tE;;X(mg z3=ha`Z#$K*faL+Nt?4l3xRF!YVg3Ws-?OAs<)aepzXiXr&M=C>uAyeOu?^(5n%V4i zkWa2!tkQXK9Ik!Emq^+vC0q^jz=Lb90#x;^uj#yDcIcte)>S( zU5kEu-Jvd=w`Lfyb%6RYzTq0zXw7$F75ZSx_6H{OqWRA{k3E*h~kzvf3nKTp!le zCM!<$B)a4{7nGYqBMmP3mXYbVz~T;4R2-)w_u$B>l?BUCmE~qXKzU&P9~W_GK(bc4|?5sic>vdCSIpv zj_ogy`uDwj669~>mOPIAEl-s**jufn+<)Bw*Ck|&VaR@a+Loing2yu?IShZx*22+$Y~&#fqV#LNlLi&wP5U7khAY#?7rM^>mCR%0R0r;8M)XF zu3r&u;n#Y@ty~CyF}I21*Lo|t{A%twx&0jLDcsT$zot9Q%!2$Go)`<;MT{ly%q>fe zu_i#fY|4zW(%^bI8)KDzN5x`u71-ajWwBWZa`u*RD---TK)zKP1N-C7JA#DIdw?C)xVNQ}XL1DU^?3whq$2 zZ%Z(%1^LjHU8?;&wxz&)5%>wn*CtgDdCLCGyh@JwLwP;rw>WnX-vjn9IoSz%lO{o%3|E#$YK z!rMu9l8jU9zS1q-#38o49=mfwmE2L0MeRC_IF5Bgy0u&4)P7{gmKF=g(+6X_$PY9Oq7``Tf%^ z#VS15TWsUkPpgTmZTwnkv5j9rt+w%Nr5-iE9@~5`e2GV%m&`CGf&6?+lX(fqqgy6e zvfjSg5@sz6f$@7un6(Dvo+S|$jxUo`ep5Xi_6HFD&XUP4*^jQv>##e4-(S*UkG%_i zRTvoi<7C%L;F)>4|4mW$1$o^z_QQ?=`8mX2mfB%szntR2_R5892k=!j>-3+)IJ_j! z5+FYUIU3|$DIrR~YGWSt>lrG43-e}J*FbrG*fPVK2d_*u8VZl z1E=K0t9UyqW>_V_cjg7Ng%Izex?~kzpO-AK{*r~Px9^rDi>skLb5fGU+hCuQccHaJ zrQdmVmy&LPQ z1)d-6;opFtkDwk(p**X-O&r_D9xhkv2(bcn^kB`N7v1H>Db z+aa=mPfKej`+D<52#>347x?v!PO%GkthZg@*E(9o9$<50uJx{pKh2cu-aG4Zt&f1` z)df1TeeI~&!>@;Y9EE(~c!B%Xg>@|g$B{k!7SR8Y*GlQO3fX=is|$0mU$hJST1dCR zalvDK3I3mieBoC@!W>)|rW;qlyxRlox8tDSQ#-*7+63$6H4&7L3vGFRl~srPL>QkO zna;7wcuFUp{NQ-8t2T<_C6Y`g8BOv8I}`lxT^ge}*c(G%8O|WRVO{|Gyt)7j&o2T@ zxn5dZH(RaeQ*x?R`a!wPlzyXg#X`A$X;fds^w!l|e}nwaTa`urib64C3Bc=|ZafM+y1qmCGdE5!p8`Gw zShkZ?&&xFag#;i^Q1eo++kc%J8i4cBkHhi2DKr4j74|59J1TZr8z7z2>)*4gK%P~9 z(31UTQvFf7E(P#q0yuxFj|jm1T0{Wu*9usR3Xi7nXbO)BknQlA`Y0tUYj&x0;Jj9y z|J+!gsPey~B8g-iYX?8E^@bTY2lgZN!S;UO>;kgT ze>yR%#&A!)$NUcTPu1tC`q=MH4#4)49Dwz3)D#tRJk6r(Q63=Mdr)pMUEi#LpMicI z(=JJ@+scwx-Ek3G$pZ_qt94yDjy&4`pz^FbVkS`YgIm)g&jW`7zZq z!xaJg=K2|~sUTmepXRz7fEjfEiJs&AzIxS`IUJ1Q@wc$eCbg8tq5OYL-!AJ$(* z;f=JuY@~c&Wv>8zlP6xS%V1wm_13KFajX~fdAL4A&Eu(_D3UFd&uMl6#Q&;(n!OI> z_w_UEMv%Sk8TOG2P;MulaxwBdH=*3E!neCP)Jy*AR;tf-%GWfz1N6LMn!OOt&4L?d z+lBW*{pWY6bk8p9Q1;^*I?2A1`qNmde?9`+Js%<8^xXespyC}Bd_*SjJ5TZv_>~>K zzX>J#d|n9YeV-q$`0TRK5v##|UuNhC{OXRj-|mv0r#P=6o$5c`mi;Zz<57H?CzrxK_A&5tal=uARWf!(!wEyS@9P?ZO$+$<4FP5_ z$Xgo-o(cR)2*0PnW56A1b&q}%^H;n?Q%oj2pkVWPQrOMjLri>iKm(G zL;M#T!cLOyaz{l6rPECk?>oHJ&_~S4E|6rJbqS>N_=Y%k$x_(gHbklLR8Kth*Qk?Z zy9)MJn)3eOskNPy&(0C}_4$6{{t@`K`1TQay@Jh8AYVKyTKTi9qRCIFT0g)!G|8*1 zZm_%Gd#Ux0d!c=Rj-C?;akR4Ex2RUCgY)^DDWoJay|X zRi6{KPBTLwd=l^kkQZzXW|KiSdD7K5_G<{2_X)4u3i~DqKfA6p0Iy?!%1^I5=_EOC zRMsRb3Fi@1Pst=xPQv>z#l#sWVR|<) z7{}LJw@$Nfg!l_bQv2V%b{55#^E9@x7~u6x4+;V}(Z_eYRjG|6OT|8P~KvVXiPDiH6>L}?6e>(fH{?NI61RqaZqdRi&G zJrLL5?SXjx`zYU?l<#iJM>pjoj%^Qy^Q5}Pro8X}`qqBRKOc$p7sup%ly|p=46s~Z z9@!d395E0s*O4bRri{e)nKDw2&-Rw6k$8U~WhAaYqRBp{(r>h&&Sq12O+|$fD6+ckL5B3I*dcSP!N4 zjdYzS&r|zGo&oYcHy?%d7D6(NWHI>*CypQ)MH2mA-Pl5Q?Ihz^8>E}oSU&P}$lq9R z^~f^SF2d+K8pal%=EbG6fafTTL;Z2@6^9+!2b*+?6FpE^-!E7o>c|YQ2kk2+wgRg$Wda7uK zkn4n(8;=_De%I^ux%Q*bu5MTpr|Kbf`D~H;q%7BLJ{QKnzFJ)Oyw=z;>d6UEKWQDK zXdgXlE7*nQc8uBqa@@dvzGD=QBORk~zUdf+=L;R9@Eqnrkp%g86UryoVSAxGDZpt< zJ!ZC&i^Y|0SO+)aa~Va;45I|XyBc>{l^}Z>4_jM6!nwR9+w*bvg{IVh1OA=|`F&$Q z)dR-oPa8%}1h$_R(93ot>u)54OZl^>hG|yA{lEWsayT3RRkmv5D~St?xJld-K@2?)>f@c|L^Hl{)yk4Kr=iWP+%p^0DnZO*q)l96%KZ?F-=GY&6)6B6wcU|%Adcc(dQGlJrCvi3)ObSxN%2!%lQCFeD0fi^qHLRlkM7E zEbpq1O69y#_Bq)tnmgV<#dKU7b+ob?1Mw{@c5C!?=r!+PnR;`5)*ug2oSYoA{3&f4o~9 zjUVrp^N+^IyRD(|@ookGX#4_s`7QW|&wsPqA$t7HZrA_O=sz0&(9J}T|IjVtAB}f)Uqa(u-8cQC@txiG)A-KrC;rj+ z_VV}J2D&@8&%Mc;j`ntUd=BRlea~YJm&Etmb{#cpdSiS15$q2?Ug7KR*lrKw!N~D_ zQl0>74~>+kXV3($!}kdGjFyVsjAO0y-${{6?S|93<<5fY(uP=*Ng~AsX z#j9q(pJ4nsjJvtvh`iq7Rhg*QFT0~$jQKxsbf0Q9+-6UzDj4%oyfT%}N4ME?OI{wS zDu2}P?b+?__&l}G-Ekg1UgcPBomJ=Y`DWqD-l|+Y&YBH7>Ab4?;4PX@T#umhRQR5! ze0}wq`?#Lsb@0qxT<;5A{>)um?;8g@uJ=83cih!p>ESrv_R#$coX;v=sq}E1Pk-hv zj(=X=^UQrW)#pp%d*YuSoiDwO=ke*$hwhHM+$%jC=jW6jj@Q{k_cQ2!_ycGAL-%0J zN6hkv?n$s^K?@JDz7m$V@NlfJof^k_+Np7@r=1$d-R@`8_W){+wx{VKOE&w~%r^mb~>;VX-ZG&?X~pB>$)Ig30O?Ym*TJ~WQyw^QS|YyD15;uf(SlT-!h zfAwg8x;{E{^G=Q9by%c1gnH?|oti5czi|0Lk8j}>F#aS3^FLmjxLPci@iboxSC031 zgyZ1vR)l&u&g1%eI9|WwJ;YyL#ViQ*aGcK_@8P)1=QR2Gq+&TY_u)U6S2hyU!S!wrb#HqA(R4-r7uxZ>JpP5_w}mTr%iibVIM1=q!|^$NpNHdo z+fK6d!9EYi_Gh1m)Ax0H3p69p@EOT^;8E+RODy z5660}^l+@lN*agnC3!eLPgi<~zfkSGu+qcvxw_Ir{N+8qujJwQd|l}w{_{l&`aAA^ z9l^xw?8!%!9s}rec&WTxD?LUcUxI#7@FrNS?|0z@ zviCJ{JdfQ?eBTo5^N9Spyi|63`hM&mMYlX0p93z-%juSfC1mpO2n-I6gNiTR1*v9BFoh9&dLuv3`s8bI0e;mBr+;l{WHkD{AEWMcFsx zdcEuovhT?LmHceQ6FKK}o$c1q0y%e~9N#yRb2m9}LvA?gNmj4yL0-6Wfb3zijbzuA zL1bJ%k?Rq%W63`rO_KB3WY?AR(Q0uvXvXi&yQ}C+Y4kDk$+opNY0Dp+$Ot5 z_C>k<23hfGy`0)9c2Gdm8x!>YlZ>?&ws_rcw`)jj?T7h5Z0?$xO&`-qPM_wfkO&gX+aaSQkh zF9sj-v*2U?ypuZ{B)x*MK~h`9MN)gjha^w5UY0s}xwCJjWYq6S8Q?uBQ%phf@zOG1 zML1|sOb1_Aya9$P62NdpDmYCs+e>1z74LP@vK5LfFU*f35A~lE7Q~&EABvvJQ;3%+ ztHJfkUr?E)8qitGGF5}Y9F-5aKxOERXQ6rx{6v)qK32^KpQ$#3OtTFfuel1ouDK0{ zYW@VnHQrsCvT2$zV7N8}Z0|A?)VXAXon3we4K6`lo3fEE@!%Mjgsu|X(s&Q%+1TV~ z%*o~^nO(K)ohI{9_k3k*XZ)vuS1x0IV%tvZqGdDM#&&UMTiPdgb!P?bGtlRD$Aw*W z41b}ZH+RK}8hB|}Y>-)F{VKADem%LJ{%x|C{wTSZ{sh@uZzcQaYsrE7tK@O|M%~18 zLi8TwD18(;P9INB(dU!r>Nk+{^!vIQ=<$zrGm=ZY1;UH|kiEJWkh^!clKXVGk@ejx;MMve-R+bIcdsXhb#H(->8EwapJQYC zvE4a&W_KMqrMoA2R(CJ>CY#sYKzUFPBY9#E6FH2IX`asNPgwf=ekAgZ?>kVK9gV5ati1ModZ3oesf?C%D)TL$!q57+Xxkk*FX|MwJ($5&|0_%D5 zU{9*=8|+2(LxX!z{nNolsy`kaNcHD~gQzYIiKY6;AxV@64KY)`Vn{xD&5)H;-#ElV z`4>Y9$k&DxQT^5sE9D)A+Q^-T)=<6MP&?(RL+i=2hc>`o`mCXMs6B5e{)ig$e|9J* ze>T(w*7M6lb(HIdd6K&fGmv`@Gm`raGm!@lGn0o6TM6sA|1b;X3x^d^zIa#-xqMhX z)iuMvflKtR!|zbtZ8&!kk3VU+3#{j%!#yeAIJ^htTZbDdzdk&ce0z8tT%rGZxS8_r zhg--$4KE=7I^0VBW4Mj{bhw?&eCo+6AJ#}bULzk)ZswySx9~BL+xVEsulgjxwR$ff zGv&Q~R#HB|$3ppVA3Jd0lj2J$Ii6S>;gMn30TPrm5e0DI}L`f}{B z75X|~1?;7_`{Gaq`M17C@{hi;^L zC;BmWG5ruf9XZ_3K%VYrB){Qjf-mV4{1(H9^{IXqs+ao}kSqNP;Rbz;pOx|pem3$Y zKRfxlUp@J@Ujuws|F!JLvYYyg`fvK~`FD|xBEjl9a=4qwu*^RK6Tvp;Vk9&ek!j{Kg#fn4Zs zB!A>@BJcN)CI8#sOg`qHPcHShkZt}2e~vQ-3jJ69 zp5$-*4e%xX9e*R`Kl{g$fAf!nz4VX$^C^GsznF30XE9r0_w>v0~+AH z`gY_({WLO;Ujleb@whVs6tI^*CBT#NSpf#}yZ{q9H^59@6tEcf(k}_HP`)ytkn*(w zR?0U8G{ANGcLG=|G2Q+K9eI$!Kpt)|k^>AT@<>B0ImlopPc&G_A%+6DP9JWtQeI%N zlRq#tz+U>j2G&|EpHB=NR_Ko!6yy^IPjb1zi(F|il4}fshSE1v%bm zCnp&j$mvG>QxMG0T%&@VW7Lt~Gby1~Lx}B&!2W$<{jQ#3sI?6ka@+5a2st2|A9c7@rc$ATRa#SF> zVpI^dpBZI>FX=-@$5K6fbR2p5=p<@?WAtLm?~Ptb`Ge7gl)pKqg8Z*B4dmrxctmjEVg5m^kvmG4aCQN5+^bFCMd)d~%G1TrsAA zd}d4``TUp)@)u+3$=Aj-kZ+CoM%cT44AY7E`ECp+-yNeM|1w5L{(X!m`Oh&1@?T?2 zWMxns*(E4m*t=^62K+|Iit*~5G7*aE7*J+_d%V{8%Z;cXdPLHYi%HI)CG+|IjXYy;H?kGn&4 zpK-jCn9tGU6y)*aTwpKn$>et45#zk5etBFExSjV6vX^)0_&}=1jt`>#GsnkKK6`w; zuy@w@B)FY-9@)$LkMS$1pJGBG^=mevi1HTXI(_E}HI#29*Xci;V5fdWNABtMuONPaXqmi%mT9GM5_lhwhC$&G^x z$jyTb$*%<4$Zdlw$Q^?l$en`~UB%<}2v))+`o6(llzRsUl7|MzlKq0?$RmRD$)kf8 zlg9@akS7NhlBWjS$Wg%+WK*!Bo0$HLU{7*#uopQa*htO{4kXVHjwLS)jw3G)&L^)3 zUQAvSTu9y+TtVI%To2djcLq05-Xz4cyLcS;5b+m|IQ|du>>=Df#7OoGi6wUp$tU*; zDIoU`v5^Obc=i{z zseG7l?$lUVp}#vdpZv?z0`l)uZR9_vdJd=YQ;lS0Sb>koUBYbSreXDDk1*~l>aD{( z$sNLsacwB`mh4>mM|N6 zdssbrR~R>l@w>xxu$R6l%s@U6W~BPzuvqf(uzYe^n4Nqoj2p$c>M&38xiBO7VpuHs zYFIwGF06oT53`ZK4XY>r7{*74@%O_#$q&OU~Q?t>jwA~?BGgpS-S!a!~j zVIsGQFq2=6u#mkX3WCJA?h!U}p9s%!BG*S4$wMMcWZ#HbvN6I;9u<*K9v5LDzaCLQ zo)TdtM@HDlF%k9T_y{&$OgAZl!-3xE5jx7VBRnZz5MiKvX@rsTRS_o2H$}u!{!TPq|y9h4QwM1(bJ;v{K$Z(nfioNIT_&BkL*miDVPS zl37NKeYcB8_BIWGp!;(oF4hBJ(NFj1v&k+GEDh%{6Fb!0x} z-$z;~|0S}3^4}w^l)s3yQLc!xQ|=m7Pq|wZE+OOb+eUFX(7R)lj`HqNo|N~AGEhD^ z%1F6Sl!@|@QL&TC=-a zpF2ID@@3Nt$g8K@$m^%qlebJaOcC4v?bA(goqpGJGv#fg^I?U)W3+|x&d~*w_lUNU z`$n^=Vw`uhjyyElK=z9^kw-+E$)lrLnCLe?T1TE7Z6HsLHo*#gRJ56FimneA`HW~D zA)FlTNzRClohI_k=zQ}0=mPS>Xd8KPv}L+zUlDC3uZd>S;_)^{>&RQ9#eZP&((jBm z!3uprw3+-tG>Z}W-e?{9lV}6^XtarZB3fq>?d8!1a%HrMToY|3Ux>DlFGX9)*Q3p` zqW|q^3;FA47ANxWqhrZGMdy=$jW)-N`XA92^3!N5nZ?-2su=SO(cUP=LT(mQKyDFZ zCAW#Okzb9mlf7ctOwqr4jE>wV#+)c}eT;=XB*vO1a^Dy`*%)Ka5bJqVjA@qe^%yIR z)_l6x-=%qN8DXfXpkzL~q zWVbjIxn-Q0+%C>KPxRBp*~wkvSeD3p#_7oY;;h*s9~fsR4~sL+7rB3&Ay+ss&O{y) zXC_aGvyg-1tmLpbJ9%21B~SE^jkA(x#@XRIeM%gAQ`9fS>ByJj4CL!^Ci3mLkqgo8 z{dL@K^7nD3MWX*tac1(baTf9)aaQuvII~%_vv>SzNwAW$ z6YSG6-5KR-dYOL$p=fxJ4wU=jKH1QU5nf|(S0@3 z$PW{&>82qJjJ@(M0A+X0kfT zLT;R7B{xs9lV3?C0CVMAY$U~E?WWOZcG0{FE z$v_^RWFn7GGLt7KS;*LJPEJf^=S2UsR2_Lvs_Ao)XQ!IU3sNoQ z{8aNrQD2s7A+JuglGmr&$y-v{WzoJpRY%^HY9;SZwUdid*%i@#AXP^`oN6E+Pc@Ot zQqAO3sTOi|s+D{$)lR;c%C3s>S5tN5x>N(%o@ye0n`$Qim}(*4Pc>W<{U4^9$WKzu z* zo@OBjq*=)$)9mD+G)tXmpO|JPhorIFA`ef~k*B8_$Zw>X$O&l{a%!5DJUh)!&Pron zig9^q7PwAtPBVWc@@HulGEcXX)#-L}<8)>h?akA5sNlxpTUm+#}sm zFZ%aQx01cn?c|~9>}yf?OSh0mq+7|O)9vK(>8wGtPfj


2|9QRx=4Dcwq*k!~j^ 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 SpAg>e^Rt@uFO!X}!2bc;WnA?D literal 0 HcmV?d00001 diff --git a/tools/psake/psake.ps1 b/tools/psake/psake.ps1 new file mode 100644 index 00000000000..912bdb6bc3f --- /dev/null +++ b/tools/psake/psake.ps1 @@ -0,0 +1,5 @@ +# Helper script for those who want to run +# psake without importing the module. +import-module .\psake.psm1 +invoke-psake @args +remove-module psake \ No newline at end of file diff --git a/tools/psake/psake.psm1 b/tools/psake/psake.psm1 new file mode 100644 index 00000000000..cbeda45dc57 --- /dev/null +++ b/tools/psake/psake.psm1 @@ -0,0 +1,1208 @@ +# psake +# Copyright (c) 2010 James Kovacs +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +#Requires -Version 2.0 + +#-- Private Module Variables (Listed here for quick reference) +[system.collections.stack]$script:context + +#-- Public Module Variables -- The psake hashtable variable is initialized in the invoke-psake function +$script:psake = @{} +$script:psake.use_exit_on_error = $false # determines if psake uses the "exit()" function when an exception occurs +$script:psake.log_error = $false # determines if the exception details are written to a file +$script:psake.build_success = $false # indicates that the current build was successful +$script:psake.version = "4.00" # contains the current version of psake +$script:psake.build_script_file = $null # contains a System.IO.FileInfo for the current build file +$script:psake.framework_version = "" # contains the framework version # for the current build +$script:psake.default_build_file_name = 'default.ps1' + +Export-ModuleMember -Variable "psake" + +#-- Private Module Functions +function ExecuteTask +{ + param([string]$taskName) + + Assert (![string]::IsNullOrEmpty($taskName)) "Task name should not be null or empty string" + + $taskKey = $taskName.ToLower() + + Assert ($script:context.Peek().tasks.Contains($taskKey)) "task [$taskName] does not exist" + + if ($script:context.Peek().executedTasks.Contains($taskKey)) + { + return + } + + Assert (!$script:context.Peek().callStack.Contains($taskKey)) "Error: Circular reference found for task, $taskName" + + $script:context.Peek().callStack.Push($taskKey) + + $task = $script:context.Peek().tasks.$taskKey + + $taskName = $task.Name + + $precondition_is_valid = if ($task.Precondition -ne $null) {& $task.Precondition} else {$true} + + if (!$precondition_is_valid) + { + "Precondition was false not executing $name" + } + else + { + if ($taskKey -ne 'default') + { + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + + if ( ($task.PreAction -ne $null) -or ($task.PostAction -ne $null) ) + { + Assert ($task.Action -ne $null) "Error: Action parameter must be specified when using PreAction or PostAction parameters" + } + + if ($task.Action -ne $null) + { + try + { + foreach($childTask in $task.DependsOn) + { + ExecuteTask $childTask + } + + $script:context.Peek().currentTaskName = $taskName + + if ($script:context.Peek().taskSetupScriptBlock -ne $null) + { + & $script:context.Peek().taskSetupScriptBlock + } + + if ($task.PreAction -ne $null) + { + & $task.PreAction + } + + $script:context.Peek().formatTaskNameString -f $taskName + & $task.Action + + if ($task.PostAction -ne $null) + { + & $task.PostAction + } + + if ($script:context.Peek().taskTearDownScriptBlock -ne $null) + { + & $script:context.Peek().taskTearDownScriptBlock + } + } + catch + { + if ($task.ContinueOnError) + { + "-"*70 + "Error in Task [$taskName] $_" + "-"*70 + } + else + { + throw $_ + } + } + } # if ($task.Action -ne $null) + else + { + #no Action was specified but we still execute all the dependencies + foreach($childTask in $task.DependsOn) + { + ExecuteTask $childTask + } + } + $stopwatch.stop() + $task.Duration = $stopwatch.Elapsed + } # if ($name.ToLower() -ne 'default') + else + { + foreach($childTask in $task.DependsOn) + { + ExecuteTask $childTask + } + } + + if ($task.Postcondition -ne $null) + { + Assert (& $task.Postcondition) "Error: Postcondition failed for $taskName" + } + } + + $poppedTaskKey = $script:context.Peek().callStack.Pop() + + Assert ($poppedTaskKey -eq $taskKey) "Error: CallStack was corrupt. Expected $taskKey, but got $poppedTaskKey." + + $script:context.Peek().executedTasks.Push($taskKey) +} + +function Configure-BuildEnvironment +{ + if ($framework.Length -ne 3 -and $framework.Length -ne 6) { + throw "Error: Invalid .NET Framework version, $framework, specified" + } + $versionPart = $framework.Substring(0,3) + $bitnessPart = $framework.Substring(3) + $versions = $null + switch ($versionPart) + { + '1.0' { $versions = @('v1.0.3705') } + '1.1' { $versions = @('v1.1.4322') } + '2.0' { $versions = @('v2.0.50727') } + '3.0' { $versions = @('v2.0.50727') } + '3.5' { $versions = @('v3.5','v2.0.50727') } + '4.0' { $versions = @('v4.0.30319') } + default { throw "Error: Unknown .NET Framework version, $versionPart, specified in $framework" } + } + + $bitness = 'Framework' + if($versionPart -ne '1.0' -and $versionPart -ne '1.1') { + switch ($bitnessPart) + { + 'x86' { $bitness = 'Framework' } + 'x64' { $bitness = 'Framework64' } + $null { + $ptrSize = [System.IntPtr]::Size + switch ($ptrSize) + { + 4 { $bitness = 'Framework' } + 8 { $bitness = 'Framework64' } + default { throw "Error: Unknown pointer size ($ptrSize) returned from System.IntPtr." } + } + } + default { throw "Error: Unknown .NET Framework bitness, $bitnessPart, specified in $framework" } + } + } + $frameworkDirs = $versions | foreach { "$env:windir\Microsoft.NET\$bitness\$_\" } + + $frameworkDirs | foreach { Assert (test-path $_) "Error: No .NET Framework installation directory found at $_" } + + $env:path = [string]::Join(';', $frameworkDirs) + ";$env:path" + #if any error occurs in a PS function then "stop" processing immediately + # this does not effect any external programs that return a non-zero exit code + $global:ErrorActionPreference = "Stop" +} + +function Cleanup-Environment +{ + $env:path = $script:context.Peek().originalEnvPath + Set-Location $script:context.Peek().originalDirectory + $global:ErrorActionPreference = $script:context.Peek().originalErrorActionPreference +} + +#borrowed from Jeffrey Snover http://blogs.msdn.com/powershell/archive/2006/12/07/resolve-error.aspx +function Resolve-Error($ErrorRecord=$Error[0]) +{ + "ErrorRecord" + $ErrorRecord | Format-List * -Force | Out-String -Stream | ? {$_} + "" + "ErrorRecord.InvocationInfo" + $ErrorRecord.InvocationInfo | Format-List * | Out-String -Stream | ? {$_} + "" + "Exception" + $Exception = $ErrorRecord.Exception + for ($i = 0; $Exception; $i++, ($Exception = $Exception.InnerException)) + { + "$i" * 70 + $Exception | Format-List * -Force | Out-String -Stream | ? {$_} + "" + } +} + +function Write-Documentation +{ + $list = New-Object System.Collections.ArrayList + foreach($key in $script:context.Peek().tasks.Keys) + { + if($key -eq "default") + { + continue + } + $task = $script:context.Peek().tasks.$key + $content = "" | Select-Object Name, Description + $content.Name = $task.Name + $content.Description = $task.Description + $index = $list.Add($content) + } + + $list | Sort 'Name' | Format-Table -Auto +} + +function Write-TaskTimeSummary +{ + "-"*70 + "Build Time Report" + "-"*70 + $list = @() + while ($script:context.Peek().executedTasks.Count -gt 0) + { + $taskKey = $script:context.Peek().executedTasks.Pop() + $task = $script:context.Peek().tasks.$taskKey + if($taskKey -eq "default") + { + continue + } + $list += "" | Select-Object @{Name="Name";Expression={$task.Name}}, @{Name="Duration";Expression={$task.Duration}} + } + [Array]::Reverse($list) + $list += "" | Select-Object @{Name="Name";Expression={"Total:"}}, @{Name="Duration";Expression={$stopwatch.Elapsed}} + $list | Format-Table -Auto | Out-String -Stream | ? {$_} # using "Out-String -Stream" to filter out the blank line that Format-Table prepends +} + +#-- Public Module Functions +function Exec +{ +<# +.SYNOPSIS +Helper function for executing command-line programs. + +.DESCRIPTION +This is a helper function that runs a scriptblock and checks the PS variable $lastexitcode to see if an error occcured. +If an error is detected then an exception is thrown. This function allows you to run command-line programs without +having to explicitly check fthe $lastexitcode variable. + +.PARAMETER cmd +The scriptblock to execute. This scriptblock will typically contain the command-line invocation. +Required + +.PARAMETER errorMessage +The error message used for the exception that is thrown. +Optional + +.EXAMPLE +exec { svn info $repository_trunk } "Error executing SVN. Please verify SVN command-line client is installed" + +This example calls the svn command-line client. + +.LINK +Assert +Invoke-psake +Task +Properties +Include +FormatTaskName +TaskSetup +TaskTearDown +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + + param( + [Parameter(Position=0,Mandatory=1)][scriptblock]$cmd, + [Parameter(Position=1,Mandatory=0)][string]$errorMessage = "Error executing command: " + $cmd + ) + & $cmd + if ($lastexitcode -ne 0) + { + throw $errorMessage + } +} + +function Assert +{ +<# +.SYNOPSIS +Helper function for "Design by Contract" assertion checking. + +.DESCRIPTION +This is a helper function that makes the code less noisy by eliminating many of the "if" statements +that are normally required to verify assumptions in the code. + +.PARAMETER conditionToCheck +The boolean condition to evaluate +Required + +.PARAMETER failureMessage +The error message used for the exception if the conditionToCheck parameter is false +Required + +.EXAMPLE +Assert $false "This always throws an exception" + +This example always throws an exception + +.EXAMPLE +Assert ( ($i % 2) -eq 0 ) "%i is not an even number" + +This exmaple may throw an exception if $i is not an even number + +.LINK +Invoke-psake +Task +Properties +Include +FormatTaskName +TaskSetup +TaskTearDown + +.NOTES +It might be necessary to wrap the condition with paranthesis to force PS to evaluate the condition +so that a boolean value is calculated and passed into the 'conditionToCheck' parameter. + +Example: + Assert 1 -eq 2 "1 doesn't equal 2" + +PS will pass 1 into the condtionToCheck variable and PS will look for a parameter called "eq" and +throw an exception with the following message "A parameter cannot be found that matches parameter name 'eq'" + +The solution is to wrap the condition in () so that PS will evaluate it first. + + Assert (1 -eq 2) "1 doesn't equal 2" +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + + param( + [Parameter(Position=0,Mandatory=1)]$conditionToCheck, + [Parameter(Position=1,Mandatory=1)]$failureMessage + ) + if (!$conditionToCheck) { throw $failureMessage } +} + +function Task +{ +<# +.SYNOPSIS +Defines a build task to be executed by psake + +.DESCRIPTION +This function creates a 'task' object that will be used by the psake engine to execute a build task. +Note: There must be at least one task called 'default' in the build script + +.PARAMETER Name +The name of the task +Required + +.PARAMETER Action +A scriptblock containing the statements to execute +Optional + +.PARAMETER PreAction +A scriptblock to be executed before the 'Action' scriptblock. +Note: This parameter is ignored if the 'Action' scriptblock is not defined. +Optional + +.PARAMETER PostAction +A scriptblock to be executed after the 'Action' scriptblock. +Note: This parameter is ignored if the 'Action' scriptblock is not defined. +Optional + +.PARAMETER Precondition +A scriptblock that is executed to determine if the task is executed or skipped. +This scriptblock should return $true or $false +Optional + +.PARAMETER Postcondition +A scriptblock that is executed to determine if the task completed its job correctly. +An exception is thrown if the scriptblock returns $false. +Optional + +.PARAMETER ContinueOnError +If this switch parameter is set then the task will not cause the build to fail when an exception is thrown + +.PARAMETER Depends +An array of tasks that this task depends on. They will be executed before the current task is executed. + +.PARAMETER Description +A description of the task. + +.EXAMPLE +A sample build script is shown below: + +task default -depends Test + +task Test -depends Compile, Clean { + "This is a test" +} + +task Compile -depends Clean { + "Compile" +} + +task Clean { + "Clean" +} + +The 'default' task is required and should not contain an 'Action' parameter. +It uses the 'depends' parameter to specify that 'Test' is a dependency + +The 'Test' task uses the 'depends' parameter to specify that 'Compile' and 'Clean' are dependencies +The 'Compile' task depends on the 'Clean' task. + +Note: +The 'Action' parameter is defaulted to the script block following the 'Clean' task. + +The equivalent 'Test' task is shown below: + +task Test -depends Compile, Clean -Action { + $testMessage +} + +The output for the above sample build script is shown below: +Executing task, Clean... +Clean +Executing task, Compile... +Compile +Executing task, Test... +This is a test + +Build Succeeded! + +---------------------------------------------------------------------- +Build Time Report +---------------------------------------------------------------------- +Name Duration +---- -------- +Clean 00:00:00.0065614 +Compile 00:00:00.0133268 +Test 00:00:00.0225964 +Total: 00:00:00.0782496 + +.LINK +Invoke-psake +Properties +Include +FormatTaskName +TaskSetup +TaskTearDown +Assert +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [string]$name = $null, + [Parameter(Position=1,Mandatory=0)] + [scriptblock]$action = $null, + [Parameter(Position=2,Mandatory=0)] + [scriptblock]$preaction = $null, + [Parameter(Position=3,Mandatory=0)] + [scriptblock]$postaction = $null, + [Parameter(Position=4,Mandatory=0)] + [scriptblock]$precondition = $null, + [Parameter(Position=5,Mandatory=0)] + [scriptblock]$postcondition = $null, + [Parameter(Position=6,Mandatory=0)] + [switch]$continueOnError = $false, + [Parameter(Position=7,Mandatory=0)] + [string[]]$depends = @(), + [Parameter(Position=8,Mandatory=0)] + [string]$description = $null + ) + + if ($name.ToLower() -eq 'default') + { + Assert ($action -eq $null) "Error: 'default' task cannot specify an action" + } + + $newTask = @{ + Name = $name + DependsOn = $depends + PreAction = $preaction + Action = $action + PostAction = $postaction + Precondition = $precondition + Postcondition = $postcondition + ContinueOnError = $continueOnError + Description = $description + Duration = 0 + } + + $taskKey = $name.ToLower() + + Assert (!$script:context.Peek().tasks.ContainsKey($taskKey)) "Error: Task, $name, has already been defined." + + $script:context.Peek().tasks.$taskKey = $newTask +} + +function Properties +{ +<# +.SYNOPSIS +Define a scriptblock that contains assignments to variables that will be available to all tasks in the build script + +.DESCRIPTION +A build script may declare a "Properies" function which allows you to define +variables that will be available to all the "Task" functions in the build script. + +.PARAMETER properties +The script block containing all the variable assignment statements +Required + +.EXAMPLE +A sample build script is shown below: + +Properties { + $build_dir = "c:\build" + $connection_string = "datasource=localhost;initial catalog=northwind;integrated security=sspi" +} + +Task default -depends Test + +Task Test -depends Compile, Clean { +} + +Task Compile -depends Clean { +} + +Task Clean { +} + +.LINK +Invoke-psake +Task +Include +FormatTaskName +TaskSetup +TaskTearDown +Assert + +.NOTES +You can have more than 1 "Properties" function defined in the script +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [scriptblock]$properties + ) + $script:context.Peek().properties += $properties +} + +function Include +{ +<# +.SYNOPSIS +Include the functions or code of another powershell script file into the current build script's scope + +.DESCRIPTION +A build script may declare an "includes" function which allows you to define +a file containing powershell code to be included and added to the scope of +the currently running build script. + +.PARAMETER fileNamePathToInclude +A string containing the path and name of the powershell file to include +Required + +.EXAMPLE +A sample build script is shown below: + +Include ".\build_utils.ps1" + +Task default -depends Test + +Task Test -depends Compile, Clean { +} + +Task Compile -depends Clean { +} + +Task Clean { +} + + +.LINK +Invoke-psake +Task +Properties +FormatTaskName +TaskSetup +TaskTearDown +Assert + +.NOTES +You can have more than 1 "Include" function defined in the script +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [string]$fileNamePathToInclude + ) + Assert (test-path $fileNamePathToInclude) "Error: Unable to include $fileNamePathToInclude. File not found." + $script:context.Peek().includes.Enqueue((Resolve-Path $fileNamePathToInclude)); +} + +function FormatTaskName +{ +<# +.SYNOPSIS +Allows you to define a format mask that will be used when psake displays +the task name + +.DESCRIPTION +Allows you to define a format mask that will be used when psake displays +the task name. The default is "Executing task, {0}..." + +.PARAMETER format +A string containing the format mask to use, it should contain a placeholder ({0}) +that will be used to substitute the task name. +Required + +.EXAMPLE +A sample build script is shown below: + +FormatTaskName "[Task: {0}]" + +Task default -depends Test + +Task Test -depends Compile, Clean { +} + +Task Compile -depends Clean { +} + +Task Clean { +} + +You should get the following output: +------------------------------------ + +[Task: Clean] +[Task: Compile] +[Task: Test] + +Build Succeeded + +---------------------------------------------------------------------- +Build Time Report +---------------------------------------------------------------------- +Name Duration +---- -------- +Clean 00:00:00.0043477 +Compile 00:00:00.0102130 +Test 00:00:00.0182858 +Total: 00:00:00.0698071 + +.LINK +Invoke-psake +Include +Task +Properties +TaskSetup +TaskTearDown +Assert +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [string]$format + ) + $script:context.Peek().formatTaskNameString = $format +} + +function TaskSetup +{ +<# +.SYNOPSIS +Adds a scriptblock that will be executed before each task + +.DESCRIPTION +This function will accept a scriptblock that will be executed before each +task in the build script. + +.PARAMETER include +A scriptblock to execute +Required + +.EXAMPLE +A sample build script is shown below: + +Task default -depends Test + +Task Test -depends Compile, Clean { +} + +Task Compile -depends Clean { +} + +Task Clean { +} + +TaskSetup { + "Running 'TaskSetup' for task $script:context.Peek().currentTaskName" +} + +You should get the following output: +------------------------------------ + +Running 'TaskSetup' for task Clean +Executing task, Clean... +Running 'TaskSetup' for task Compile +Executing task, Compile... +Running 'TaskSetup' for task Test +Executing task, Test... + +Build Succeeded + +---------------------------------------------------------------------- +Build Time Report +---------------------------------------------------------------------- +Name Duration +---- -------- +Clean 00:00:00.0054018 +Compile 00:00:00.0123085 +Test 00:00:00.0236915 +Total: 00:00:00.0739437 + +.LINK +Invoke-psake +Include +Task +Properties +FormatTaskName +TaskTearDown +Assert +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [scriptblock]$setup + ) + $script:context.Peek().taskSetupScriptBlock = $setup +} + +function TaskTearDown +{ +<# +.SYNOPSIS +Adds a scriptblock that will be executed after each task + +.DESCRIPTION +This function will accept a scriptblock that will be executed after each +task in the build script. + +.PARAMETER include +A scriptblock to execute +Required + +.EXAMPLE +A sample build script is shown below: + +Task default -depends Test + +Task Test -depends Compile, Clean { +} + +Task Compile -depends Clean { +} + +Task Clean { +} + +TaskTearDown { + "Running 'TaskTearDown' for task $script:context.Peek().currentTaskName" +} + +You should get the following output: +------------------------------------ + +Executing task, Clean... +Running 'TaskTearDown' for task Clean +Executing task, Compile... +Running 'TaskTearDown' for task Compile +Executing task, Test... +Running 'TaskTearDown' for task Test + +Build Succeeded + +---------------------------------------------------------------------- +Build Time Report +---------------------------------------------------------------------- +Name Duration +---- -------- +Clean 00:00:00.0064555 +Compile 00:00:00.0218902 +Test 00:00:00.0309151 +Total: 00:00:00.0858301 + +.LINK +Invoke-psake +Include +Task +Properties +FormatTaskName +TaskSetup +Assert +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + param( + [Parameter(Position=0,Mandatory=1)] + [scriptblock]$teardown) + $script:context.Peek().taskTearDownScriptBlock = $teardown +} + +function Invoke-psake +{ +<# +.SYNOPSIS +Runs a psake build script. + +.DESCRIPTION +This function runs a psake build script + +.PARAMETER BuildFile +The psake build script to execute (default: default.ps1). + +.PARAMETER TaskList +A comma-separated list of task names to execute + +.PARAMETER Framework +The version of the .NET framework you want to build. You can append x86 or x64 to force a specific framework. If not specified, x86 or x64 will be detected based on the bitness of the PowerShell process. +Possible values: '1.0', '1.1', '2.0', '2.0x86', '2.0x64', '3.0', '3.0x86', '3.0x64', '3.5', '3.5x86', '3.5x64', '4.0', '4.0x86', '4.0x64' +Default = '3.5' + +.PARAMETER Docs +Prints a list of tasks and their descriptions + +.PARAMETER Parameters +A hashtable containing parameters to be passed into the current build script. These parameters will be processed before the 'Properties' function of the script is processed. This means you can access parameters from within the 'Properties' function! + +.PARAMETER Properties +A hashtable containing properties to be passed into the current build script. These properties will override matching properties that are found in the 'Properties' function of the script. + +.EXAMPLE +Invoke-psake + +Runs the 'default' task in the 'default.ps1' build script in the current directory + +.EXAMPLE +Invoke-psake '.\build.ps1' + +Runs the 'default' task in the '.build.ps1' build script + +.EXAMPLE +Invoke-psake '.\build.ps1' Tests,Package + +Runs the 'Tests' and 'Package' tasks in the '.build.ps1' build script + +.EXAMPLE +Invoke-psake Tests + +If you have your Tasks in the .\default.ps1. This example will run the 'Tests' tasks in the 'default.ps1' build script. + +.EXAMPLE +Invoke-psake 'Tests, Package' + +If you have your Tasks in the .\default.ps1. This example will run the 'Tests' and 'Package' tasks in the 'default.ps1' build script. +NOTE: the quotes around the list of tasks to execute. + +.EXAMPLE +Invoke-psake '.\build.ps1' -docs + +Prints a report of all the tasks and their descriptions and exits + +.EXAMPLE +Invoke-psake .\parameters.ps1 -parameters @{"p1"="v1";"p2"="v2"} + +Runs the build script called 'parameters.ps1' and passes in parameters 'p1' and 'p2' with values 'v1' and 'v2' + +.EXAMPLE +Invoke-psake .\properties.ps1 -properties @{"x"="1";"y"="2"} + +Runs the build script called 'properties.ps1' and passes in parameters 'x' and 'y' with values '1' and '2' + +.OUTPUTS + If there is an exception and '$psake.use_exit_on_error' -eq $true + then runs exit(1) to set the DOS lastexitcode variable + otherwise set the '$psake.build_success variable' to $true or $false depending + on whether an exception was thrown + +.NOTES +When the psake module is loaded a variabled called $psake is created it is a hashtable +containing some variables that can be used to configure psake: + +$psake.use_exit_on_error = $false # determines if psake uses the "exit()" function when an exception occurs +$psake.log_error = $false # determines if the exception details are written to a file +$psake.build_success = $false # indicates that the current build was successful +$psake.version = "4.00" # contains the current version of psake +$psake.build_script_file = $null # contains a System.IO.FileInfo for the current build file +$psake.framework_version = "" # contains the framework version # for the current build + +$psake.use_exit_on_error and $psake.log_error are boolean variables that can be set before you call Invoke-Psake. + +You should see the following when you display the contents of the $psake variable right after importing psake + +PS projects:\psake> Import-Module .\psake.psm1 +PS projects:\psake> $psake + +Name Value +---- ----- +version 4.00 +build_script_file +use_exit_on_error False +build_success False +log_error False +framework_version + +After a build is executed the following $psake values are updated (build_script_file, build_success, and framework_version) + +PS projects:\psake> Invoke-psake .\examples\default.ps1 +Executing task: Clean +Executed Clean! +Executing task: Compile +Executed Compile! +Executing task: Test +Executed Test! + +Build Succeeded! + +---------------------------------------------------------------------- +Build Time Report +---------------------------------------------------------------------- +Name Duration +---- -------- +Clean 00:00:00.0798486 +Compile 00:00:00.0869948 +Test 00:00:00.0958225 +Total: 00:00:00.2712414 + +PS projects:\psake> $psake + +Name Value +---- ----- +version 4.00 +build_script_file C:\Users\Jorge\Documents\Projects\psake\examples\default.ps1 +use_exit_on_error False +build_success True +log_error False +framework_version 3.5 + +.LINK +Task +Include +Properties +FormatTaskName +TaskSetup +TaskTearDown +Assert +#> +[CmdletBinding( + SupportsShouldProcess=$False, + SupportsTransactions=$False, + ConfirmImpact="None", + DefaultParameterSetName="")] + + param( + [Parameter(Position=0,Mandatory=0)] + [string]$buildFile = $script:psake.default_build_file_name, + [Parameter(Position=1,Mandatory=0)] + [string[]]$taskList = @(), + [Parameter(Position=2,Mandatory=0)] + [string]$framework = '3.5', + [Parameter(Position=3,Mandatory=0)] + [switch]$docs = $false, + [Parameter(Position=4,Mandatory=0)] + [System.Collections.Hashtable]$parameters = @{}, + [Parameter(Position=5, Mandatory=0)] + [System.Collections.Hashtable]$properties = @{} + ) + + Begin + { + $script:psake.build_success = $false + $script:psake.framework_version = $framework + + if ($script:context -eq $null) + { + $script:context = New-Object System.Collections.Stack + } + + $script:context.push(@{ + "formatTaskNameString" = "Executing task: {0}"; + "taskSetupScriptBlock" = $null; + "taskTearDownScriptBlock" = $null; + "executedTasks" = New-Object System.Collections.Stack; + "callStack" = New-Object System.Collections.Stack; + "originalEnvPath" = $env:path; + "originalDirectory" = Get-Location; + "originalErrorActionPreference" = $global:ErrorActionPreference; + "tasks" = @{}; + "properties" = @(); + "includes" = New-Object System.Collections.Queue; + }) + } + + Process + { + try + { + $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() + + <# + If the default.ps1 file exists and the given "buildfile" isn't found assume that the given + $buildFile is actually the target Tasks to execute in the default.ps1 script. + #> + if((Test-Path $script:psake.default_build_file_name ) -and !(test-path $buildFile)) { + $list = New-Object System.Collections.ArrayList + foreach($t in $buildFile.Split(',')) { + $t1 = $t.Trim() + if($t1 -ne $null -or $t1 -ne "") { + $list.Add($t1) + } + } + $taskList = $list.ToArray() + $buildFile = $script:psake.default_build_file_name + } + + # Execute the build file to set up the tasks and defaults + Assert (test-path $buildFile) "Error: Could not find the build file, $buildFile." + + $script:psake.build_script_file = dir $buildFile + set-location $script:psake.build_script_file.Directory + . $script:psake.build_script_file.FullName + + if ($docs) + { + Write-Documentation + Cleanup-Environment + return + } + + Configure-BuildEnvironment + + # N.B. The initial dot (.) indicates that variables initialized/modified + # in the propertyBlock are available in the parent scope. + while ($script:context.Peek().includes.Count -gt 0) + { + $includeBlock = $script:context.Peek().includes.Dequeue() + . $includeBlock + } + + foreach($key in $parameters.keys) + { + if (test-path "variable:\$key") + { + set-item -path "variable:\$key" -value $parameters.$key | out-null + } + else + { + new-item -path "variable:\$key" -value $parameters.$key | out-null + } + } + + foreach($propertyBlock in $script:context.Peek().properties) + { + . $propertyBlock + } + + foreach($key in $properties.keys) + { + if (test-path "variable:\$key") + { + set-item -path "variable:\$key" -value $properties.$key | out-null + } + } + + # Execute the list of tasks or the default task + if($taskList.Length -ne 0) + { + foreach($task in $taskList) + { + ExecuteTask $task + } + } + elseif ($script:context.Peek().tasks.default -ne $null) + { + ExecuteTask default + } + else + { + throw 'Error: default task required' + } + + $stopwatch.Stop() + + "`nBuild Succeeded!`n" + + Write-TaskTimeSummary + + $script:psake.build_success = $true + } + catch + { + #Append detailed exception and script variables to error log file + if ($script:psake.log_error) + { + $errorLogFile = "psake-error-log-{0}.log" -f ([DateTime]::Now.ToString("yyyyMMdd")) + "-" * 70 >> $errorLogFile + "{0}: An Error Occurred. See Error Details Below: " -f [DateTime]::Now >>$errorLogFile + "-" * 70 >> $errorLogFile + Resolve-Error $_ >> $errorLogFile + "-" * 70 >> $errorLogFile + "Script Variables" >> $errorLogFile + "-" * 70 >> $errorLogFile + Get-Variable -scope script >> $errorLogFile + } + + $buildFileName = Split-Path $buildFile -leaf + if (test-path $buildFile) { $buildFileName = $script:psake.build_script_file.Name } + Write-Host -foregroundcolor Red ($buildFileName + ":" + $_) + + if ($script:psake.use_exit_on_error) + { + exit(1) + } + else + { + $script:psake.build_success = $false + } + } + } #Process + + End + { + # Clear out any global variables + Cleanup-Environment + [void]$script:context.Pop() + } +} + +Export-ModuleMember -Function "Invoke-psake","Task","Properties","Include","FormatTaskName","TaskSetup","TaskTearDown","Assert","Exec" \ No newline at end of file