PSCBS/0000755000176200001440000000000014564202212011122 5ustar liggesusersPSCBS/NAMESPACE0000644000176200001440000003124614564060172012356 0ustar liggesusers# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # IMPORTS # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - importFrom("R.methodsS3", "setMethodS3") importFrom("R.methodsS3", "getMethodS3") importFrom("R.oo", "setConstructorS3") importFrom("R.utils", "use") ## Importing Object classes importFrom("R.oo", "Package") importFrom("R.utils", "Arguments") importFrom("R.utils", "GenericSummary") ## Importing functions importFrom("R.oo", "extend", "attachLocally", "startupMessage") importFrom("R.cache", "getCachePath", "loadCache", "saveCache") importFrom("R.utils", "cat", "capitalize", "copyDirectory", "createLink", "enter", "enterf", "exit", "filePath", "getAbsolutePath", "getRelativePath", "hpaste", "insert", "isDirectory", "isFile", "isPackageInstalled", "isZero", "less", "loadObject", "more", "popState", "popTemporaryFile", "printf", "pushState", "pushTemporaryFile", "resample", "saveObject", "stext", "subplots", "toCamelCase", "wrap") importFrom("matrixStats", "binMeans", "colCumsums", "colDiffs", "colMins", "colMaxs", "rowAlls", "rowAnys", "rowMins", "weightedMedian") importFrom("graphics", "abline", "arrows", "axis", "box", "lines", "mtext", "par", "plot", "points", "rect", "text") importFrom("grDevices", "col2rgb", "rgb") importFrom("stats", "approx", "cor", "cutree", "density", "end", "mad", "median", "na.omit", "quantile", "sd", "start", "weighted.mean") importFrom("utils", "capture.output", "file_test", "getFromNamespace", "head", "packageVersion", "str", "tail", "write.table", "packageDescription", "install.packages") importFrom("aroma.light", "callNaiveGenotypes", "findPeaksAndValleys", "normalizeTumorBoost") importFrom("DNAcopy", "segments.summary", "smooth.CNA", "CNA", "segment", "getbdry") importFrom("listenv", "listenv") importFrom("future", "%<-%", "%seed%", "%label%") importFrom("parallel", "nextRNGStream") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # EXPORTS # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Export all public methods, that is, those without a preceeding dot # in their names. exportPattern("^[^\\.]") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # S3 methods # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # AbstractCBS S3method("adjustPloidyScale", "AbstractCBS") S3method("all.equal", "AbstractCBS") S3method("as.data.frame", "AbstractCBS") S3method("clearCalls", "AbstractCBS") S3method("drawChangePoints", "AbstractCBS") S3method("drawKnownSegments", "AbstractCBS") S3method("dropChangePoint", "AbstractCBS") S3method("dropChangePoints", "AbstractCBS") S3method("dropRegion", "AbstractCBS") S3method("dropRegions", "AbstractCBS") S3method("extractChromosome", "AbstractCBS") S3method("extractChromosomes", "AbstractCBS") S3method("extractCNs", "AbstractCBS") S3method("extractRegion", "AbstractCBS") S3method("extractRegions", "AbstractCBS") S3method("extractSegment", "AbstractCBS") S3method("extractSegments", "AbstractCBS") S3method("getChangePoints", "AbstractCBS") S3method("getChromosomeOffsets", "AbstractCBS") S3method("getChromosomeRanges", "AbstractCBS") S3method("getChromosomes", "AbstractCBS") S3method("getLocusData", "AbstractCBS") S3method("getLocusSignalNames", "AbstractCBS") S3method("getMeanEstimators", "AbstractCBS") S3method("getSampleName", "AbstractCBS") S3method("getSegments", "AbstractCBS") S3method("getSegmentSizes", "AbstractCBS") S3method("getSegmentTrackPrefixes", "AbstractCBS") S3method("hclustCNs", "AbstractCBS") S3method("mergeThreeSegments", "AbstractCBS") S3method("mergeTwoSegments", "AbstractCBS") S3method("nbrOfChangePoints", "AbstractCBS") S3method("nbrOfChromosomes", "AbstractCBS") S3method("nbrOfLoci", "AbstractCBS") S3method("nbrOfSegments", "AbstractCBS") S3method("normalizeTotalCNs", "AbstractCBS") S3method("normalizeTotalCNs", "PSCBS") S3method("ploidy", "AbstractCBS") S3method("ploidy<-", "AbstractCBS") S3method("plotTracks", "AbstractCBS") S3method("print", "AbstractCBS") S3method("pruneByDP", "AbstractCBS") S3method("pruneByHClust", "AbstractCBS") S3method("renameChromosomes", "AbstractCBS") S3method("report", "AbstractCBS") S3method("resegment", "AbstractCBS") S3method("resetSegments", "AbstractCBS") S3method("sampleCNs", "AbstractCBS") S3method("sampleName", "AbstractCBS") S3method("sampleName<-", "AbstractCBS") S3method("seqOfSegmentsByDP", "AbstractCBS") S3method("setLocusData", "AbstractCBS") S3method("setMeanEstimators", "AbstractCBS") S3method("setPloidy", "AbstractCBS") S3method("setSampleName", "AbstractCBS") S3method("setSegments", "AbstractCBS") S3method("shiftTCN", "AbstractCBS") S3method("tileChromosomes", "AbstractCBS") S3method("updateMeans", "AbstractCBS") S3method("updateMeansTogether", "AbstractCBS") S3method("writeWIG", "AbstractCBS") # CBS S3method("all.equal", "CBS") S3method("as.character", "CBS") S3method("as.data.frame", "CBS") S3method("as.DNAcopy", "CBS") S3method("c", "CBS") S3method("callAmplifications", "CBS") S3method("callArms", "CBS") S3method("callGainsAndLosses", "CBS") S3method("callGLAO", "CBS") S3method("callOutliers", "CBS") S3method("drawCentromeres", "CBS") S3method("drawChromosomes", "CBS") S3method("drawLevels", "CBS") S3method("estimateDeltaCN", "CBS") S3method("estimateStandardDeviation", "CBS") S3method("extractCallsByLocus", "CBS") S3method("extractChromosomes", "CBS") S3method("extractCNs", "CBS") S3method("extractSegmentMeansByLocus", "CBS") S3method("extractSegments", "CBS") S3method("extractTotalCNs", "CBS") S3method("extractWIG", "CBS") S3method("extractWIG", "AbstractCBS") S3method("extractWIG", "PSCBS") S3method("getCallStatistics", "CBS") S3method("getCallStatisticsByArms", "CBS") S3method("getChangePoints", "CBS") S3method("getChromosomeRanges", "CBS") S3method("getFGA", "CBS") S3method("getFGG", "CBS") S3method("getFGL", "CBS") S3method("getFractionOfGenomeAltered", "CBS") S3method("getFractionOfGenomeGained", "CBS") S3method("getFractionOfGenomeLost", "CBS") S3method("getLocusData", "CBS") S3method("getLocusSignalNames", "CBS") S3method("getSegments", "CBS") S3method("getSegmentTrackPrefixes", "CBS") S3method("getSignalType", "CBS") S3method("getSmoothLocusData", "CBS") S3method("highlightArmCalls", "CBS") S3method("highlightCalls", "CBS") S3method("highlightLocusCalls", "CBS") S3method("isSegmentSplitter", "CBS") S3method("isWholeChromosomeGained", "CBS") S3method("isWholeChromosomeLost", "CBS") S3method("joinSegments", "CBS") S3method("mergeNonCalledSegments", "CBS") S3method("mergeTwoSegments", "CBS") S3method("nbrOfAmplifications", "CBS") S3method("nbrOfGains", "CBS") S3method("nbrOfLosses", "CBS") S3method("plot", "CBS") S3method("plotTracks", "CBS") S3method("plotTracksManyChromosomes", "CBS") S3method("pruneBySdUndo", "CBS") S3method("resegment", "CBS") S3method("segmentByCBS", "CBS") S3method("seqOfSegmentsByDP", "CBS") S3method("shiftTCN", "CBS") S3method("signalType", "CBS") S3method("signalType<-", "CBS") S3method("subset", "CBS") S3method("tileChromosomes", "CBS") S3method("updateBoundaries", "CBS") S3method("updateMeans", "CBS") S3method("updateMeansTogether", "CBS") S3method("writeLocusData", "CBS") S3method("writeSegments", "CBS") # CNA S3method("segmentByCBS", "CNA") # data.frame S3method("callSegmentationOutliers", "data.frame") S3method("encodeCalls", "data.frame") S3method("dropSegmentationOutliers", "data.frame") S3method("findLargeGaps", "data.frame") S3method("gapsToSegments", "data.frame") S3method("segmentByCBS", "data.frame") S3method("segmentByNonPairedPSCBS", "data.frame") S3method("segmentByPairedPSCBS", "data.frame") # default S3method("callAllelicBalance", "default") S3method("callSegmentationOutliers", "default") S3method("dropSegmentationOutliers", "default") S3method("exampleData", "default") S3method("findLargeGaps", "default") S3method("findNeutralCopyNumberState", "default") S3method("installDNAcopy", "default") S3method("segmentByCBS", "default") S3method("segmentByNonPairedPSCBS", "default") S3method("segmentByPairedPSCBS", "default") S3method("weightedQuantile", "default") # DNAcopy S3method("as.CBS", "DNAcopy") S3method("drawLevels", "DNAcopy") S3method("estimateStandardDeviation", "DNAcopy") S3method("extractSegmentMeansByLocus", "DNAcopy") S3method("getChromosomes", "DNAcopy") S3method("getSampleNames", "DNAcopy") S3method("nbrOfLoci", "DNAcopy") S3method("nbrOfSamples", "DNAcopy") S3method("nbrOfSegments", "DNAcopy") S3method("writeSegments", "DNAcopy") # matrix S3method("seqOfSegmentsByDP", "matrix") # NonPairedPSCBS S3method("callROH", "NonPairedPSCBS") S3method("getLocusData", "NonPairedPSCBS") S3method("resegment", "NonPairedPSCBS") S3method("updateMeans", "NonPairedPSCBS") # numeric S3method("testROH", "numeric") # PairedPSCBS S3method("adjustPloidyScale", "PairedPSCBS") S3method("applyByRegion", "PairedPSCBS") S3method("arrowsC1C2", "PairedPSCBS") S3method("arrowsDeltaC1C2", "PairedPSCBS") S3method("bootstrapCIs", "PairedPSCBS") S3method("bootstrapSegmentsAndChangepoints", "PairedPSCBS") S3method("bootstrapTCNandDHByRegion", "PairedPSCBS") S3method("calcStatsForCopyNeutralABs", "PairedPSCBS") S3method("callAB", "PairedPSCBS") S3method("callABandHighAI", "PairedPSCBS") S3method("callABandLowC1", "PairedPSCBS") S3method("callAllelicBalanceByDH", "PairedPSCBS") S3method("callCopyNeutral", "PairedPSCBS") S3method("callCopyNeutralByTCNofAB", "PairedPSCBS") S3method("callExtremeAllelicImbalanceByDH", "PairedPSCBS") S3method("callGainNeutralLoss", "PairedPSCBS") S3method("callGNL", "PairedPSCBS") S3method("callGNLByTCNofAB", "PairedPSCBS") S3method("callGNLByTCNofABv1", "PairedPSCBS") S3method("callLOH", "PairedPSCBS") S3method("callLowC1ByC1", "PairedPSCBS") S3method("callNTCN", "PairedPSCBS") S3method("callROH", "PairedPSCBS") S3method("callROHOneSegment", "PairedPSCBS") S3method("clearBootstrapSummaries", "PairedPSCBS") S3method("drawChangePointsC1C2", "PairedPSCBS") S3method("drawConfidenceBands", "PairedPSCBS") S3method("drawLevels", "PairedPSCBS") S3method("estimateDeltaAB", "PairedPSCBS") S3method("estimateDeltaABBySmallDH", "PairedPSCBS") S3method("estimateDeltaCN", "PairedPSCBS") S3method("estimateDeltaLOH", "PairedPSCBS") S3method("estimateDeltaLOHByMinC1ForNonAB", "PairedPSCBS") S3method("estimateHighDHQuantileAtAB", "PairedPSCBS") S3method("estimateKappa", "PairedPSCBS") S3method("estimateKappaByC1Density", "PairedPSCBS") S3method("estimateMeanForDH", "PairedPSCBS") S3method("estimateStdDevForHeterozygousBAF", "PairedPSCBS") S3method("extractC1C2", "PairedPSCBS") S3method("extractCallsByLocus", "PairedPSCBS") S3method("extractCNs", "PairedPSCBS") S3method("extractDeltaC1C2", "PairedPSCBS") S3method("extractDhSegment", "PairedPSCBS") S3method("extractLocusLevelC1C2", "PairedPSCBS") S3method("extractLocusLevelTCN", "PairedPSCBS") S3method("extractMinorMajorCNs", "PairedPSCBS") S3method("extractSegmentDataByLocus", "PairedPSCBS") S3method("extractSegments", "PairedPSCBS") S3method("extractTCNAndDHs", "PairedPSCBS") S3method("findBootstrapSummaries", "PairedPSCBS") S3method("getBootstrapLocusSets", "PairedPSCBS") S3method("getChromosomeOffsets", "PairedPSCBS") S3method("getChromosomeRanges", "PairedPSCBS") S3method("getLocusData", "PairedPSCBS") S3method("hasBootstrapSummaries", "PairedPSCBS") S3method("linesC1C2", "PairedPSCBS") S3method("linesDeltaC1C2", "PairedPSCBS") S3method("mergeTwoSegments", "PairedPSCBS") S3method("plot", "PairedPSCBS") S3method("plotC1C2", "PairedPSCBS") S3method("plotDeltaC1C2", "PairedPSCBS") S3method("plotTracks", "PairedPSCBS") S3method("plotTracks1", "PairedPSCBS") S3method("plotTracks2", "PairedPSCBS") S3method("plotTracksManyChromosomes", "PairedPSCBS") S3method("pointsC1C2", "PairedPSCBS") S3method("pointsDeltaC1C2", "PairedPSCBS") S3method("postsegmentTCN", "PairedPSCBS") S3method("resegment", "PairedPSCBS") S3method("segmentByNonPairedPSCBS", "PairedPSCBS") S3method("segmentByPairedPSCBS", "PairedPSCBS") S3method("seqOfSegmentsByDP", "PairedPSCBS") S3method("shiftTCN", "PairedPSCBS") S3method("tileChromosomes", "PairedPSCBS") S3method("unTumorBoost", "PairedPSCBS") S3method("updateMeans", "PairedPSCBS") S3method("updateMeansC1C2", "PairedPSCBS") S3method("updateMeansTogether", "PairedPSCBS") # PSCBS S3method("as.data.frame", "PSCBS") S3method("c", "PSCBS") S3method("drawChangePoints", "PSCBS") S3method("extractChromosomes", "PSCBS") S3method("getChangePoints", "PSCBS") S3method("getLocusData", "PSCBS") S3method("getLocusSignalNames", "PSCBS") S3method("getSegments", "PSCBS") S3method("getSegmentTrackPrefixes", "PSCBS") S3method("isLocallyPhased", "PSCBS") S3method("isSegmentSplitter", "PSCBS") S3method("writeSegments", "PSCBS") PSCBS/README.md0000644000176200001440000001335414564057243012423 0ustar liggesusers
CRAN check status R CMD check status Coverage Status
# PSCBS: Analysis of Parent-Specific DNA Copy Numbers The PSCBS package implements the parent-specific copy-number segmentation presented in Olshen et al. (2011). Package vignette ['Parent-specific copy-number segmentation using Paired PSCBS'](https://CRAN.R-project.org/package=PSCBS/vignettes/PairedPSCBS.pdf) provides a detailed introduction for running PSCBS segmentation. It's available as: ```r vignette("PairedPSCBS", package = "PSCBS") ``` Below is an excerpt of the example found in that vignette: ```r library(PSCBS) ## Get single-chromosome example data data <- exampleData("paired.chr01") str(data) # ’data.frame’: 73346 obs. of 6 variables: # $ chromosome: int 1 1 1 1 1 1 1 1 1 1 ... # $ x : int 1145994 2224111 2319424 2543484 2926730 2941694 3084986 3155127.. # $ CT : num 1.625 1.071 1.406 1.18 0.856 ... # $ betaT : num 0.757 0.771 0.834 0.778 0.229 ... # $ CN : num 2.36 2.13 2.59 1.93 1.71 ... # $ betaN : num 0.827 0.875 0.887 0.884 0.103 ... ## Drop total copy-number outliers data <- dropSegmentationOutliers(data) ## Identify chromosome arms from data gaps <- findLargeGaps(data, minLength = 1e+06) knownSegments <- gapsToSegments(gaps) ## Parent-specific copy-number segmentation fit <- segmentByPairedPSCBS(data, knownSegments = knownSegments) ## Get segments as a data.frame segments <- getSegments(fit, simplify = TRUE) segments # chromosome tcnId dhId start end tcnNbrOfLoci tcnMean # 1 1 1 1 554484 33414619 9413 1.381375 # 2 1 1 2 33414619 86993745 17433 1.378570 # 3 1 2 1 86993745 87005243 2 3.185100 # 4 1 3 1 87005243 119796080 10404 1.389763 # 5 1 3 2 119796080 119932126 72 1.470789 # 6 1 3 3 119932126 120992603 171 1.439620 # 7 1 4 1 120992604 141510002 0 NA # 8 1 5 1 141510003 185527989 13434 2.065400 # 9 1 6 1 185527989 199122066 4018 2.707400 # 10 1 7 1 199122066 206512702 2755 2.586100 # 11 1 8 1 206512702 206521352 14 3.871900 # 12 1 9 1 206521352 247165315 15581 2.637500 # tcnNbrOfSNPs tcnNbrOfHets dhNbrOfLoci dhMean c1Mean c2Mean # 1 2765 2765 2765 0.4868 0.3544608 1.0269140 # 2 4544 4544 4544 0.5185 0.3318907 1.0466792 # 3 0 0 0 NA NA NA # 4 2777 2777 2777 0.5203 0.3333347 1.0564285 # 5 8 8 8 0.0767 0.6789900 0.7917995 # 6 52 52 52 0.5123 0.3510514 1.0885688 # 7 0 0 NA NA NA NA # 8 3770 3770 3770 0.0943 0.9353164 1.1300836 # 9 1271 1271 1271 0.2563 1.0067467 1.7006533 # 10 784 784 784 0.2197 1.0089669 1.5771331 # 11 9 9 9 0.2769 1.3998854 2.4720146 # 12 4492 4492 4492 0.2290 1.0167563 1.6207438 ## Plot copy-number tracks plotTracks(fit) ``` ![](man/figures/ex-PSCBS-paired.chr01.png) ## Parallel processing The package supports segmentation of the chromosomes in parallel (asynchronously) via [futures](https://cran.r-project.org/package=future) by adding the following ```r future::plan("multisession") ``` to the beginning of the PSCBS script. Everything else will work the same. To reset to non-parallel processing, use `future::plan("sequential")`. To configure this automatically whenever the package is loaded, see future vignette '[A Future for R: Controlling Default Future Strategy](https://CRAN.R-project.org/package=future/vignettes/future-5-startup.html)'. ## References * Bengtsson H, Neuvial P, Speed TP. TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays, BMC Bioinformatics, 2010. DOI: [10.1186/1471-2105-11-245](https://doi.org/10.1186%2F1471-2105-11-245). PMID: [20462408](https://europepmc.org/article/MED/20462408), PMCID: [PMC2894037](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2894037/) * Olshen AB, Bengtsson H, Neuvial P, Spellman PT, Olshen RA, Seshan VA. Parent-specific copy number in paired tumor-normal studies using circular binary segmentation, Bioinformatics, 2011. DOI: [10.1093/bioinformatics/btr329](https://doi.org/10.1093%2Fbioinformatics%2Fbtr329). PMID: [21666266](https://europepmc.org/article/MED/21666266). PMCID: [PMC3137217](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3137217/) ## Installation R package PSCBS is available on [CRAN](https://cran.r-project.org/package=PSCBS) and can be installed in R as: ```r # install.packages("BiocManager") BiocManager::install(c("aroma.light", "DNAcopy")) install.packages("PSCBS") ``` ### Pre-release version To install the pre-release version that is available in Git branch `develop` on GitHub, use: ```r remotes::install_github("HenrikBengtsson/PSCBS", ref="develop") ``` This will install the package from source. PSCBS/man/0000755000176200001440000000000014564060172011704 5ustar liggesusersPSCBS/man/dropChangePoints.AbstractCBS.Rd0000644000176200001440000000276314564060313017541 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{dropChangePoints.AbstractCBS} \alias{dropChangePoints.AbstractCBS} \alias{AbstractCBS.dropChangePoints} \alias{dropChangePoints,AbstractCBS-method} \title{Drops zero or more change points} \description{ Drops zero or more change points, which is done by dropping one change point at the time using \code{\link[PSCBS:dropChangePoint.AbstractCBS]{*dropChangePoint}()} and recalculating the segment statistics at the end. \emph{NOTE: This method only works if there is only one chromosome.} } \usage{ \method{dropChangePoints}{AbstractCBS}(fit, idxs, update=TRUE, ...) } \arguments{ \item{idxs}{An \code{\link[base]{integer}} \code{\link[base]{vector}} specifying the change points to be dropped.} \item{update}{If \code{\link[base:logical]{TRUE}}, segment statistics are updated.} \item{...}{Other arguments passed to \code{\link[PSCBS:dropChangePoint.AbstractCBS]{*dropChangePoint}()} and \code{\link[PSCBS:updateMeans.AbstractCBS]{*updateMeans}()}.} } \value{ Returns an \code{\link{AbstractCBS}} of the same class with \code{length(idxs)} segments. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/segmentByNonPairedPSCBS.Rd0000644000176200001440000001566414564060314016535 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % segmentByNonPairedPSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{segmentByNonPairedPSCBS} \alias{segmentByNonPairedPSCBS.default} \alias{segmentByNonPairedPSCBS} \alias{segmentByNonPairedPSCBS.data.frame} \alias{segmentByNonPairedPSCBS.PairedPSCBS} \alias{segmentByNonPairedPSCBS} \title{Segment total copy numbers and allele B fractions using the Non-paired PSCBS method} \description{ Segment total copy numbers and allele B fractions using the Non-paired PSCBS method [1]. This method does not requires matched normals. This is a low-level segmentation method. It is intended to be applied to one tumor sample at the time. } \usage{ \method{segmentByNonPairedPSCBS}{default}(CT, betaT, ..., flavor=c("tcn", "tcn&dh", "tcn,dh", "sqrt(tcn),dh", "sqrt(tcn)&dh"), tauA=NA, tauB=1 - tauA, verbose=FALSE) } \arguments{ \item{CT}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J tumor total copy number (TCN) ratios in [0,+\code{\link[base:is.finite]{Inf}}) (due to noise, small negative values are also allowed). The TCN ratios are typically scaled such that copy-neutral diploid loci have a mean of two.} \item{betaT}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J tumor allele B fractions (BAFs) in [0,1] (due to noise, values may be slightly outside as well) or \code{\link[base]{NA}} for non-polymorphic loci.} \item{...}{Additional arguments passed to \code{\link{segmentByPairedPSCBS}}().} \item{flavor}{A \code{\link[base]{character}} specifying what type of segmentation and calling algorithm to be used.} \item{tauA, tauB}{Lower and upper thresholds (\code{tauA < tauB} for calling SNPs heterozygous based on the tumor allele B fractions (\code{betaT}). If \code{\link[base]{NA}}, then they are estimates from data. } \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the segmentation results as a \code{\link{NonPairedPSCBS}} object. } \details{ Internally \code{\link{segmentByPairedPSCBS}}() is used for segmentation. This segmentation method does \emph{not} support weights. } \section{Reproducibility}{ The "DNAcopy::segment" implementation of CBS uses approximation through random sampling for some estimates. Because of this, repeated calls using the same signals may result in slightly different results, unless the random seed is set/fixed. } \section{Whole-genome segmentation is preferred}{ Although it is possible to segment each chromosome independently using Paired PSCBS, we strongly recommend to segment whole-genome (TCN,BAF) data at once. The reason for this is that downstream CN-state calling methods, such as the AB and the LOH callers, performs much better on whole-genome data. In fact, they may fail to provide valid calls if done chromosome by chromosome. } \section{Missing and non-finite values}{ The total copy number signals as well as any optional positions must not contain missing values, i.e. \code{\link[base]{NA}}s or \code{\link[base:is.finite]{NaN}}s. If there are any, an informative error is thrown. Allele B fractions may contain missing values, because such are interpreted as representing non-polymorphic loci. None of the input signals may have infinite values, i.e. -\code{\link[base:is.finite]{Inf}} or +\code{\link[base:is.finite]{Inf}}. If so, an informative error is thrown. } \section{Non-Paired PSCBS with known genotypes}{ If allele B fractions for the matched normal (\code{betaN}) are not available, but genotypes (\code{muN}) are, then it is possible to run Paired PSCBS. See \code{\link{segmentByPairedPSCBS}}() for details. } \examples{ verbose <- R.utils::Arguments$getVerbose(-10*interactive(), timestamp=TRUE) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=20),] str(dataS) R.oo::attachLocally(dataS) # Non-Paired PSCBS segmentation fit <- segmentByNonPairedPSCBS(CT, betaT=betaT, chromosome=chromosome, x=x, seed=0xBEEF, verbose=verbose) print(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=100, verbose=verbose) print(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in DH for calling AB # (which be done by default by the caller, if skipped here) deltaAB <- estimateDeltaAB(fit, flavor="qq(DH)", verbose=verbose) print(deltaAB) fit <- callAB(fit, delta=deltaAB, verbose=verbose) print(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaAB == deltaAB) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in C1 for calling LOH # (which be done by default by the caller, if skipped here) deltaLOH <- estimateDeltaLOH(fit, flavor="minC1|nonAB", verbose=verbose) print(deltaLOH) fit <- callLOH(fit, delta=deltaLOH, verbose=verbose) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaLOH == deltaLOH) } \author{Henrik Bengtsson} \references{ [1] A.B. Olshen, H. Bengtsson, P. Neuvial, P.T. Spellman, R.A. Olshen, V.E. Seshan, \emph{Parent-specific copy number in paired tumor-normal studies using circular binary segmentation}, Bioinformatics, 2011 \cr [2] H. Bengtsson, P. Neuvial and T.P. Speed, \emph{TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays}, BMC Bioinformatics, 2010 \cr } \seealso{ To segment paired tumor-normal total copy numbers and allele B fractions, see \code{\link{segmentByPairedPSCBS}}(). To segment total copy numbers, or any other unimodal signals, see \code{\link{segmentByCBS}}(). } \keyword{IO} PSCBS/man/pruneByHClust.AbstractCBS.Rd0000644000176200001440000000303114564060312017025 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.HCLUST.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{pruneByHClust.AbstractCBS} \alias{pruneByHClust.AbstractCBS} \alias{AbstractCBS.pruneByHClust} \alias{pruneByHClust,AbstractCBS-method} \title{Prunes the CN profile by pruning and merging through hierarchical clustering} \description{ Prunes the CN profile by pruning and merging through hierarchical clustering. } \usage{ \method{pruneByHClust}{AbstractCBS}(fit, ..., size=NULL, distMethod="euclidean", hclustMethod="ward.D", merge=TRUE, update=TRUE, verbose=FALSE) } \arguments{ \item{...}{Arguments passed to \code{\link[stats]{cutree}}, particularly either of thresholds \code{h} or \code{k}.} \item{size, distMethod, hclustMethod}{Arguments (as well as some of \code{...}) passed to \code{\link[PSCBS:hclustCNs.AbstractCBS]{*hclustCNs}()}.} \item{merge}{If \code{\link[base:logical]{TRUE}}, consecutive segments that belong to the same PSCN cluster will be merged into one large segment.} \item{update}{If \code{\link[base:logical]{TRUE}}, segment means are updated afterwards, otherwise not.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a pruned object of the same class. } \examples{\dontrun{ fitP <- pruneByHClust(fit, h=0.25) }} \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} PSCBS/man/extractTCNAndDHs.PairedPSCBS.Rd0000644000176200001440000000170414564060314017232 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{extractTCNAndDHs.PairedPSCBS} \alias{extractTCNAndDHs.PairedPSCBS} \alias{PairedPSCBS.extractTCNAndDHs} \alias{extractTCNAndDHs,PairedPSCBS-method} \title{Extract TCN and DH mean levels per segment} \description{ Extract TCN and DH mean levels per segment. } \usage{ \method{extractTCNAndDHs}{PairedPSCBS}(fit, ...) } \arguments{ \item{...}{Arguments passed to \code{getSegments()}.} } \value{ Returns a \code{\link[base]{data.frame}}. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:extractMinorMajorCNs.PairedPSCBS]{*extractMinorMajorCNs}()}. For more information see \code{\link{PairedPSCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/callGainsAndLosses.CBS.Rd0000644000176200001440000000563714564060313016322 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.CALL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callGainsAndLosses.CBS} \alias{callGainsAndLosses.CBS} \alias{CBS.callGainsAndLosses} \alias{callGainsAndLosses,CBS-method} \title{Calls gains and losses} \description{ Calls gains and losses. } \usage{ \method{callGainsAndLosses}{CBS}(fit, adjust=1, method=c("ucsf-mad", "ucsf-dmad"), ..., verbose=FALSE) } \arguments{ \item{adjust}{A positive scale factor adjusting the sensitivity of the caller, where a value less (greater) than 1.0 makes the caller less (more) sensitive.} \item{method}{A \code{\link[base]{character}} string specifying the calling algorithm to use.} \item{...}{Additional/optional arguments used to override the default parameters used by the caller.} } \value{ Returns a \code{\link[PSCBS]{CBS}} object where \code{\link[base]{logical}} columns 'lossCall' and 'gainCall' have been appended to the segmentation table. } \section{The UCSF caller}{ If \code{method == "ucsf-mad"}, then segments are called using [1], i.e. a segment is called gained or lost if its segment level is at least two standard deviations away from the median segment level on Chr1-22, where standard deviation is estimated using MAD. Then same is done for \code{method == "ucsf-dmad"} with the difference that the standard deviation is estimated using a robust first order variance estimator. } \examples{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # CALLS # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call gains and losses by segments fitC <- callGainsAndLosses(fit) # Call amplifications by segments fitC <- callAmplifications(fitC) # Call outliers by loci fitC <- callOutliers(fitC) } \author{Henrik Bengtsson} \references{ [1] Fridlyand et al. \emph{Breast tumor copy number aberration phenotypes and genomic instability}, BMC Cancer, 2006. \cr } \seealso{ \code{\link[PSCBS:callAmplifications.CBS]{*callAmplifications}()}. \code{\link[PSCBS:callOutliers.CBS]{*callOutliers}()}. For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/PSCBS-package.Rd0000644000176200001440000000517014564060312014435 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % 999.package.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{PSCBS-package} \alias{PSCBS-package} \docType{package} \title{Package PSCBS} \description{ Segmentation of allele-specific DNA copy number data and detection of regions with abnormal copy number within each parental chromosome. Both tumor-normal paired and tumor-only analyses are supported.. This package should be considered to be in an alpha or beta phase. You should expect the API to be changing over time. } \section{Installation and updates}{ To install this package, use \code{install.packages("PSCBS")}. } \section{To get started}{ To get started, see: \enumerate{ \item Vignettes '\href{../doc/index.html}{Parent-specific copy-number segmentation using Paired PSCBS}' and '\href{../doc/index.html}{Total copy-number segmentation using CBS}'. \item \code{\link{segmentByCBS}}() - segments total copy-numbers, or any other unimodal genomic signals, using the CBS method [3,4]. \item \code{\link{segmentByPairedPSCBS}}() - segments allele-specific tumor signal from a tumor \emph{with} a matched normal using the Paired PSCBS method [1,2]. \item \code{\link{segmentByNonPairedPSCBS}}() - segments allele-specific tumor signal from a tumor \emph{without} a matched normal using the Non-Paired PSCBS method adopted from [1,2]. } } \section{How to cite}{ Please use [1] and [2] to cite when using Paired PSCBS, and [3] and [4] when using CBS. When using Non-Paired PSCBS, please cite [1] and [2] as well. } \author{Henrik Bengtsson} \section{License}{ GPL (>= 2). } \references{ [1] A.B. Olshen, H. Bengtsson, P. Neuvial, P.T. Spellman, R.A. Olshen, V.E. Seshan, \emph{Parent-specific copy number in paired tumor-normal studies using circular binary segmentation}, Bioinformatics, 2011 \cr [2] H. Bengtsson, P. Neuvial and T.P. Speed, \emph{TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays}, BMC Bioinformatics, 2010 \cr [3] A.B. Olshen, E.S. Venkatraman (aka Venkatraman E. Seshan), R. Lucito and M. Wigler, \emph{Circular binary segmentation for the analysis of array-based DNA copy number data}, Biostatistics, 2004 \cr [4] E.S. Venkatraman and A.B. Olshen, \emph{A faster circular binary segmentation algorithm for the analysis of array CGH data}, Bioinformatics, 2007 \cr } \keyword{package} PSCBS/man/extractMinorMajorCNs.PairedPSCBS.Rd0000644000176200001440000000207114564060314020243 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{extractMinorMajorCNs.PairedPSCBS} \alias{extractMinorMajorCNs.PairedPSCBS} \alias{PairedPSCBS.extractMinorMajorCNs} \alias{extractMinorMajorCNs,PairedPSCBS-method} \alias{PairedPSCBS.extractC1C2} \alias{extractC1C2.PairedPSCBS} \alias{extractC1C2,PairedPSCBS-method} \title{Extract minor and major copy-number mean levels per segment} \description{ Extract minor and major copy-number mean levels per segment. } \usage{ \method{extractMinorMajorCNs}{PairedPSCBS}(fit, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns a \code{\link[base]{data.frame}}. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:extractTCNAndDHs.PairedPSCBS]{*extractTCNAndDHs}()} For more information see \code{\link{PairedPSCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/estimateKappaByC1Density.PairedPSCBS.Rd0000644000176200001440000000636114564060314021004 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateKappa.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateKappaByC1Density.PairedPSCBS} \alias{estimateKappaByC1Density.PairedPSCBS} \alias{PairedPSCBS.estimateKappaByC1Density} \alias{estimateKappaByC1Density,PairedPSCBS-method} \title{Estimate global background in segmented copy numbers} \description{ Estimate global background in segmented copy numbers based on the location of peaks in a weighted density estimator of the minor copy number mean levels. The global background, here called \eqn{\kappa}, may have multiple origins where normal contamination is one, but not necessarily the only one. \emph{Assumptions:} This estimator assumes that there are segments with C1=0 and C1=1, i.e. some deletions and, typically, some normal segements. } \usage{ \method{estimateKappaByC1Density}{PairedPSCBS}(this, typeOfWeights=c("dhNbrOfLoci", "sqrt(dhNbrOfLoci)"), adjust=1, from=0, minDensity=0.2, ..., verbose=FALSE) } \arguments{ \item{typeOfWeights}{A \code{\link[base]{character}} string specifying how weights are calculated.} \item{adjust}{A \code{\link[base]{numeric}} scale factor specifying the size of the bandwidth parameter used by the density estimator.} \item{from}{A \code{\link[base]{numeric}} scalar specifying the lower bound for the support of the estimated density.} \item{minDensity}{A non-negative \code{\link[base]{numeric}} threshold specifying the minimum density a peak should have in order to consider it a peak.} \item{...}{Not used.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the background estimate as a \code{\link[base]{numeric}} scalar. } \section{Algorithm}{ \itemize{ \item Retrieve segment-level minor copy numbers and corresponding weights: \enumerate{ \item Grabs the segment-level C1 estimates. \item Calculate segment weights. The default (\code{typeOfWeights="dhNbrOfLoci"}) is to use weights proportional to the number of heterozygous SNPs. An alternative (\code{typeOfWeights="sqrt(dhNbrOfLoci)"}) is to use the square root of those counts. } \item Identify subset of regions with C1=0: \enumerate{ \item Estimates the weighted empirical density function (truncated at zero below). Tuning parameter 'adjust'. \item Find the first two peaks (with a density greater than tuning parameter 'minDensity'). \item Assumes that the two peaks corresponds to C1=0 and C1=1. \item Defines threshold Delta0.5 as the center location between these two peaks. } \item Estimate the global background signal: \enumerate{ \item For all segments with C1 < Delta0.5, calculate the weighted median of their C1:s. \item Let kappa be the above weighted median. This is the estimated background. } } } \author{Henrik Bengtsson} \seealso{ Instead of calling this method explicitly, it is recommended to use the \code{\link[PSCBS:estimateKappa.PairedPSCBS]{*estimateKappa}()} method. } \keyword{internal} \keyword{methods} PSCBS/man/getFractionOfGenomeLost.CBS.Rd0000644000176200001440000000320414564060313017324 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.CALL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getFractionOfGenomeLost.CBS} \alias{getFractionOfGenomeLost.CBS} \alias{CBS.getFractionOfGenomeLost} \alias{getFractionOfGenomeLost,CBS-method} \alias{CBS.getFractionOfGenomeGained} \alias{getFractionOfGenomeGained.CBS} \alias{getFractionOfGenomeGained,CBS-method} \alias{CBS.getFractionOfGenomeAltered} \alias{getFractionOfGenomeAltered.CBS} \alias{getFractionOfGenomeAltered,CBS-method} \alias{CBS.getFGL} \alias{getFGL.CBS} \alias{getFGL,CBS-method} \alias{CBS.getFGG} \alias{getFGG.CBS} \alias{getFGG,CBS-method} \alias{CBS.getFGA} \alias{getFGA.CBS} \alias{getFGA,CBS-method} \title{Calculates the fraction of the genome lost, gained, or aberrant either way} \description{ Calculates the fraction of the genome lost, gained, or aberrant either way (in sense of total copy numbers), using definitions closely related to those presented in [1]. } \usage{ \method{getFractionOfGenomeLost}{CBS}(fit, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns a \code{\link[base]{double}} in [0,1]. } \author{Henrik Bengtsson} \references{ [1] Fridlyand et al. \emph{Breast tumor copy number aberration phenotypes and genomic instability}, BMC Cancer, 2006. \cr } \seealso{ Internally, \code{\link[PSCBS:getCallStatistics.CBS]{*getCallStatistics}()} is used. For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/nbrOfSegments.AbstractCBS.Rd0000644000176200001440000000202414564060313017034 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{nbrOfSegments.AbstractCBS} \alias{nbrOfSegments.AbstractCBS} \alias{AbstractCBS.nbrOfSegments} \alias{nbrOfSegments,AbstractCBS-method} \title{Gets the number of segments} \description{ Gets the number of segments. } \usage{ \method{nbrOfSegments}{AbstractCBS}(this, splitters=FALSE, ...) } \arguments{ \item{splitters, ...}{Arguments passed to \code{\link[PSCBS:getSegments.AbstractCBS]{*getSegments}()}.} } \value{ Returns an \code{\link[base]{integer}}. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:nbrOfChangePoints.AbstractCBS]{*nbrOfChangePoints}()} \code{\link[PSCBS:nbrOfChromosomes.AbstractCBS]{*nbrOfChromosomes}()} For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/mergeTwoSegments.PairedPSCBS.Rd0000644000176200001440000000236614564060314017475 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{mergeTwoSegments.PairedPSCBS} \alias{mergeTwoSegments.PairedPSCBS} \alias{PairedPSCBS.mergeTwoSegments} \alias{mergeTwoSegments,PairedPSCBS-method} \title{Merge two neighboring segments} \description{ Merge two neighboring segments by recalculating segment statistics. } \usage{ \method{mergeTwoSegments}{PairedPSCBS}(this, left, update=TRUE, verbose=FALSE, ...) } \arguments{ \item{left}{An \code{\link[base]{integer}} specifying the segments (left, left+1) to be merged.} \item{update}{If \code{\link[base:logical]{TRUE}}, segment statistics are updated.} \item{verbose}{A \code{\link[base]{logical}} or a \code{\link[R.utils]{Verbose}} object.} \item{...}{Not used.} } \value{ Returns a \code{\link{PairedPSCBS}} with one less segment. } \author{Henrik Bengtsson} \seealso{ To drop regions (a connected set of segments) see \code{dropRegions()}. For more information see \code{\link{PairedPSCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/segmentByCBS.Rd0000644000176200001440000002176714564060314014473 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % segmentByCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{segmentByCBS} \alias{segmentByCBS.default} \alias{segmentByCBS} \alias{segmentByCBS.data.frame} \alias{segmentByCBS.CBS} \alias{segmentByCBS.CNA} \alias{segmentByCBS} \title{Segment genomic signals using the CBS method} \description{ Segment genomic signals using the CBS method of the \pkg{DNAcopy} package. This is a convenient low-level wrapper for the \code{DNAcopy::segment()} method. It is intended to be applied to a sample at the time. For more details on the Circular Binary Segmentation (CBS) method see [1,2]. } \usage{ \method{segmentByCBS}{default}(y, chromosome=0L, x=NULL, index=seq_along(y), w=NULL, undo=0, avg=c("mean", "median"), ..., joinSegments=TRUE, knownSegments=NULL, seed=NULL, verbose=FALSE) } \arguments{ \item{y}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genomic signals to be segmented.} \item{chromosome}{Optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of length J, specifying the chromosome of each loci. If a scalar, it is expanded to a vector of length J.} \item{x}{Optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genomic locations. If \code{\link[base]{NULL}}, index locations \code{1:J} are used.} \item{index}{An optional \code{\link[base]{integer}} \code{\link[base]{vector}} of length J specifying the genomewide indices of the loci.} \item{w}{Optional \code{\link[base]{numeric}} \code{\link[base]{vector}} in [0,1] of J weights.} \item{undo}{A non-negative \code{\link[base]{numeric}}. If greater than zero, then arguments \code{undo.splits="sdundo"} and \code{undo.SD=undo} are passed to \code{DNAcopy::segment()}. In the special case when \code{undo} is +\code{\link[base:is.finite]{Inf}}, the segmentation result will not contain any changepoints (in addition to what is specified by argument \code{knownSegments}).} \item{avg}{A \code{\link[base]{character}} string specifying how to calculating segment mean levels \emph{after} change points have been identified.} \item{...}{Additional arguments passed to the \code{DNAcopy::segment()} segmentation function.} \item{joinSegments}{If \code{\link[base:logical]{TRUE}}, there are no gaps between neighboring segments. If \code{\link[base:logical]{FALSE}}, the boundaries of a segment are defined by the support that the loci in the segments provides, i.e. there exist a locus at each end point of each segment. This also means that there is a gap between any neighboring segments, unless the change point is in the middle of multiple loci with the same position. The latter is what \code{DNAcopy::segment()} returns. } \item{knownSegments}{Optional \code{\link[base]{data.frame}} specifying \emph{non-overlapping} known segments. These segments must not share loci. See \code{\link{findLargeGaps}}() and \code{\link{gapsToSegments}}().} \item{seed}{An (optional) \code{\link[base]{integer}} specifying the random seed to be set before calling the segmentation method. The random seed is set to its original state when exiting. If \code{\link[base]{NULL}}, it is not set.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a \code{\link{CBS}} object. } \details{ Internally \code{\link[DNAcopy]{segment}} of \pkg{DNAcopy} is used to segment the signals. This segmentation method support weighted segmentation. } \section{Reproducibility}{ The \code{DNAcopy::segment()} implementation of CBS uses approximation through random sampling for some estimates. Because of this, repeated calls using the same signals may result in slightly different results, unless the random seed is set/fixed. } \section{Missing and non-finite values}{ Signals may contain missing values (\code{\link[base]{NA}} or \code{\link[base:is.finite]{NaN}}), but not infinite values (+/-\code{\link[base:is.finite]{Inf}}). Loci with missing-value signals are preserved and keep in the result. Likewise, genomic positions may contain missing values. However, if they do, such loci are silently excluded before performing the segmentation, and are not kept in the results. The mapping between the input locus-level data and ditto of the result can be inferred from the \code{index} column of the locus-level data of the result. None of the input data may have infinite values, i.e. -\code{\link[base:is.finite]{Inf}} or +\code{\link[base:is.finite]{Inf}}. If so, an informative error is thrown. } \examples{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x) print(fit) plotTracks(fit) xlab <- "Position (Mb)" ylim <- c(-3,3) xMb <- x/1e6 plot(xMb,y, pch=20, col="#aaaaaa", xlab=xlab, ylim=ylim) drawLevels(fit, col="red", lwd=2, xScale=1e-6) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # TESTS # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x, seed=0xBEEF) print(fit) ## id chromosome start end nbrOfLoci mean ## 1 y 0 55167.82 20774251 201 0.0164 ## 2 y 0 20774250.85 29320105 99 1.0474 ## 3 y 0 29320104.86 65874675 349 -0.0227 ## 4 y 0 65874675.06 81348129 151 -1.0813 ## 5 y 0 81348129.20 99910827 200 -0.0612 # Test #1: Reverse the ordering and segment fitR <- segmentByCBS(rev(y), x=rev(x), seed=0xBEEF) # Sanity check stopifnot(all.equal(getSegments(fitR), getSegments(fit))) # Sanity check stopifnot(all.equal(rev(getLocusData(fitR)$index), getLocusData(fit)$index)) # Test #2: Reverse, but preserve ordering of 'data' object fitRP <- segmentByCBS(rev(y), x=rev(x), preserveOrder=TRUE) stopifnot(all.equal(getSegments(fitRP), getSegments(fit))) # (Test #3: Change points inbetween data points at the same locus) x[650:654] <- x[649] fitC <- segmentByCBS(rev(y), x=rev(x), preserveOrder=TRUE, seed=0xBEEF) # Test #4: Allow for some missing values in signals y[450] <- NA fitD <- segmentByCBS(y, x=x, seed=0xBEEF) # Test #5: Allow for some missing genomic annotations x[495] <- NA fitE <- segmentByCBS(y, x=x, seed=0xBEEF) # Test #6: Undo all change points found fitF <- segmentByCBS(y, x=x, undo=Inf, seed=0xBEEF) print(fitF) stopifnot(nbrOfSegments(fitF) == 1L) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # MISC. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Emulate a centromere x[650:699] <- NA fit <- segmentByCBS(y, x=x, seed=0xBEEF) xMb <- x/1e6 plot(xMb,y, pch=20, col="#aaaaaa", xlab=xlab, ylim=ylim) drawLevels(fit, col="red", lwd=2, xScale=1e-6) fitC <- segmentByCBS(y, x=x, joinSegments=FALSE, seed=0xBEEF) drawLevels(fitC, col="blue", lwd=2, xScale=1e-6) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multiple chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Appending CBS results fit1 <- segmentByCBS(y, chromosome=1, x=x) fit2 <- segmentByCBS(y, chromosome=2, x=x) fit <- c(fit1, fit2) print(fit) plotTracks(fit, subset=NULL, lwd=2, Clim=c(-3,3)) # Segmenting multiple chromosomes at once chromosomeWG <- rep(1:2, each=J) xWG <- rep(x, times=2) yWG <- rep(y, times=2) fitWG <- segmentByCBS(yWG, chromosome=chromosomeWG, x=xWG) print(fitWG) plotTracks(fitWG, subset=NULL, lwd=2, Clim=c(-3,3)) # Assert same results fit$data[,"index"] <- getLocusData(fitWG)[,"index"] # Ignore 'index' stopifnot(all.equal(getLocusData(fitWG), getLocusData(fit))) stopifnot(all.equal(getSegments(fitWG), getSegments(fit))) } \author{Henrik Bengtsson} \references{ [1] A.B. Olshen, E.S. Venkatraman (aka Venkatraman E. Seshan), R. Lucito and M. Wigler, \emph{Circular binary segmentation for the analysis of array-based DNA copy number data}, Biostatistics, 2004 \cr [2] E.S. Venkatraman and A.B. Olshen, \emph{A faster circular binary segmentation algorithm for the analysis of array CGH data}, Bioinformatics, 2007 \cr } \seealso{ To segment allele-specific tumor copy-number signals from a tumor \emph{with} a matched normal, see \code{\link{segmentByPairedPSCBS}}(). For the same \emph{without} a matched normal, see \code{\link{segmentByNonPairedPSCBS}}(). It is also possible to prune change points after segmentation (with identical results) using \code{\link[PSCBS:pruneBySdUndo.CBS]{pruneBySdUndo}()}. } \keyword{IO} PSCBS/man/report.AbstractCBS.Rd0000644000176200001440000000314314564060313015576 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.REPORT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{report.AbstractCBS} \alias{report.AbstractCBS} \alias{AbstractCBS.report} \alias{report,AbstractCBS-method} \title{Generates a report of the segmentation results} \description{ Generates a report of the segmentation results. Currently reports can be generated for segmentation results of class \code{\link{CBS}} and \code{\link{PairedPSCBS}}. } \usage{ \method{report}{AbstractCBS}(fit, sampleName=getSampleName(fit), studyName, ..., rspTags=NULL, rootPath="reports/", .filename="*", skip=TRUE, envir=new.env(), verbose=FALSE) } \arguments{ \item{fit}{An \code{\link{AbstractCBS}} object.} \item{sampleName}{A \code{\link[base]{character}} string specifying the name of the sample segmented.} \item{studyName}{A \code{\link[base]{character}} string specifying the name of study/project.} \item{...}{Optional arguments passed to the RSP template.} \item{rspTags}{Optional \code{\link[base]{character}} \code{\link[base]{vector}} of tags for further specifying which RSP report to generate.} \item{rootPath}{The root directory where to write the report.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the pathname of the generated PDF. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/writeSegments.CBS.Rd0000644000176200001440000000307414564060313015442 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.IO.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{writeSegments.CBS} \alias{writeSegments.CBS} \alias{CBS.writeSegments} \alias{writeSegments,CBS-method} \alias{writeWIG} \alias{writeWIG.AbstractCBS} \title{Writes the table of segments to file} \description{ Writes the table of segments to file. } \usage{ \method{writeSegments}{CBS}(fit, name=getSampleName(fit), tags=NULL, ext="tsv", path=NULL, addHeader=TRUE, createdBy=NULL, sep="\t", nbrOfDecimals=4L, splitters=FALSE, overwrite=FALSE, skip=FALSE, ...) } \arguments{ \item{name, tags}{Name and optional tags part of the filename}. \item{path}{The directory where the file will be written.} \item{addHeader}{If \code{\link[base:logical]{TRUE}}, header comments are written.} \item{createdBy}{A header comment of whom created the file.} \item{splitters}{If \code{\link[base:logical]{TRUE}}, each chromosome is separated by a row of missing values.} \item{overwrite, skip}{If an output file already exists, these arguments specifies what should happen.} \item{...}{Additional arguments pass to \code{getSegments()}.} } \value{ Returns the pathname of the the file written. } \author{Henrik Bengtsson} \seealso{ Utilizes \code{\link[PSCBS:getSegments.CBS]{*getSegments}()}. For more information see \code{\link{CBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/callSegmentationOutliers.Rd0000644000176200001440000000471214564060314017215 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % callSegmentationOutliers.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callSegmentationOutliers} \alias{callSegmentationOutliers} \alias{callSegmentationOutliers.default} \alias{callSegmentationOutliers.data.frame} \alias{dropSegmentationOutliers} \alias{dropSegmentationOutliers.default} \alias{dropSegmentationOutliers.data.frame} \title{Calls/drops single-locus outliers along the genome} \description{ Calls/drops single-locus outliers along the genome that have a signal that differ significantly from the neighboring loci. } \usage{ \method{callSegmentationOutliers}{default}(y, chromosome=0, x=NULL, method="DNAcopy::smooth.CNA", ..., verbose=FALSE) \method{callSegmentationOutliers}{data.frame}(y, ...) \method{dropSegmentationOutliers}{default}(y, ...) \method{dropSegmentationOutliers}{data.frame}(y, ...) } \arguments{ \item{y}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genomic signals to be segmented.} \item{chromosome}{(Optional) An \code{\link[base]{integer}} scalar (or a \code{\link[base]{vector}} of length J contain a unique value). Only used for annotation purposes.} \item{x}{Optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genomic locations. If \code{\link[base]{NULL}}, index locations \code{1:J} are used.} \item{method}{A \code{\link[base]{character}} string specifying the method used for calling outliers.} \item{...}{Additional arguments passed to internal outlier detection method.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ \code{callSegmentationOutliers()} returns a \code{\link[base]{logical}} \code{\link[base]{vector}} of length J. \code{dropSegmentationOutliers()} returns an object of the same type as argument \code{y}, where the signals for which outliers were called have been set to \code{\link[base]{NA}}. } \section{Missing and non-finite values}{ Signals as well as genomic positions may contain missing values, i.e. \code{\link[base]{NA}}s or \code{\link[base:is.finite]{NaN}}s. By definition, these cannot be outliers. } \author{Henrik Bengtsson} \seealso{ Internally \code{\link[DNAcopy]{smooth.CNA}} is utilized to identify the outliers. } \keyword{methods} \keyword{IO} PSCBS/man/exampleData.Rd0000644000176200001440000000140014564060314014411 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % exampleData.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{exampleData} \alias{exampleData.default} \alias{exampleData} \title{Gets an example data set} \description{ Gets an example data set. } \usage{ \method{exampleData}{default}(name=c("paired.chr01"), ...) } \arguments{ \item{name}{A \code{\link[base]{character}} string specifying the name of the data set.} \item{...}{Not used.} } \value{ Returns \code{\link[base]{data.frame}}. } \author{Henrik Bengtsson} \keyword{IO} \keyword{data} \keyword{internal} PSCBS/man/callAB.PairedPSCBS.Rd0000644000176200001440000000520314564060314015305 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callAB.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callAB.PairedPSCBS} \alias{callAB.PairedPSCBS} \alias{PairedPSCBS.callAB} \alias{callAB,PairedPSCBS-method} \alias{PairedPSCBS.callAllelicBalance} \alias{callAllelicBalance.PairedPSCBS} \alias{callAllelicBalance,PairedPSCBS-method} \title{Calls segments that are in allelic balance} \description{ Calls segments that are in allelic balance, i.e. that have equal minor and major copy numbers. } \usage{ \method{callAB}{PairedPSCBS}(fit, flavor=c("DeltaAB*"), ..., minSize=1, xorCalls=TRUE, force=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of call to use.} \item{...}{Additional arguments passed to the caller.} \item{minSize}{An optional \code{\link[base]{integer}} specifying the minimum number of data points in order to call a segments. If fewer data points, then the call is set to \code{\link[base]{NA}} regardless.} \item{xorCalls}{If \code{\link[base:logical]{TRUE}}, a region already called LOH, will for consistency never be called AB, resulting in either an AB call set to \code{\link[base:logical]{FALSE}} or \code{\link[base]{NA}} (as explained below).} \item{force}{If \code{\link[base:logical]{FALSE}}, and allelic-balance calls already exits, then nothing is done, otherwise the calls are done.} } \value{ Returns a \code{\link{PairedPSCBS}} object with allelic-balance calls. } \section{AB and LOH consistency}{ Biologically, a segment can not be both in allelic balance (AB) and in loss-of-heterozygosity (LOH) at the same time. To avoid reporting such inconsistencies, the LOH caller will, if argument \code{xorCalls=TRUE}, never report a segment to be in LOH if it is already called to be in AB. However, regardless of of the AB call, a segment is still always tested for LOH, to check weather the LOH caller is consistent with the AB caller or not. Thus, in order to distinguish the case where the AB caller and LOH caller agree from when they disagree, we report either (AB,LOH)=(TRUE,FALSE) or (TRUE,NA). The former is reported when they are consistent, and the latter when they are not, or when the AB caller could not call it. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:callAllelicBalanceByDH.PairedPSCBS]{*callAllelicBalanceByDH}()}. } \keyword{internal} \keyword{methods} PSCBS/man/CBS.Rd0000644000176200001440000000540114564060313012577 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{CBS} \docType{class} \alias{CBS} \title{The CBS class} \description{ A CBS object holds results from the Circular Binary Segmentation (CBS) method for \emph{one} sample for one or more chromosomes. Package: PSCBS \cr \bold{Class CBS}\cr \code{list}\cr \code{~~|}\cr \code{~~+--}\code{\link[PSCBS]{AbstractCBS}}\cr \code{~~~~~~~|}\cr \code{~~~~~~~+--}\emph{\code{CBS}}\cr \bold{Directly known subclasses:}\cr \cr public abstract class \bold{CBS}\cr extends \emph{\link[PSCBS]{AbstractCBS}}\cr } \usage{ CBS(...) } \arguments{ \item{...}{Arguments passed to the constructor of \code{\link{AbstractCBS}}.} } \section{Fields and Methods}{ \bold{Methods:}\cr \tabular{rll}{ \tab \code{as} \tab -\cr \tab \code{c} \tab -\cr \tab \code{estimateStandardDeviation} \tab -\cr \tab \code{plotTracks} \tab -\cr \tab \code{pruneBySdUndo} \tab -\cr \tab \code{segmentByCBS} \tab -\cr \tab \code{seqOfSegmentsByDP} \tab -\cr \tab \code{writeSegments} \tab -\cr } \bold{Methods inherited from AbstractCBS}:\cr adjustPloidyScale, all.equal, as.data.frame, clearCalls, drawChangePoints, drawKnownSegments, dropChangePoint, dropChangePoints, dropRegion, dropRegions, extractCNs, extractChromosome, extractChromosomes, extractRegions, extractSegments, extractWIG, getChangePoints, getChromosomeOffsets, getChromosomeRanges, getChromosomes, getLocusData, getLocusSignalNames, getMeanEstimators, getSampleName, getSegmentSizes, getSegmentTrackPrefixes, getSegments, mergeThreeSegments, mergeTwoSegments, nbrOfChangePoints, nbrOfChromosomes, nbrOfLoci, nbrOfSegments, normalizeTotalCNs, ploidy, ploidy<-, plotTracks, print, pruneByDP, pruneByHClust, renameChromosomes, report, resegment, resetSegments, sampleCNs, sampleName, sampleName<-, seqOfSegmentsByDP, setLocusData, setMeanEstimators, setPloidy, setSampleName, setSegments, shiftTCN, tileChromosomes, updateMeans, writeWIG \bold{Methods inherited from list}:\cr Ops,nonStructure,vector-method, Ops,structure,vector-method, Ops,vector,nonStructure-method, Ops,vector,structure-method, all.equal, as.data.frame, attachLocally, callHooks, coerce,ANY,list-method, relist, type.convert, within } \section{Difference to DNAcopy object}{ A CBS object is similar to DNAcopy objects with the major difference that a CBS object holds only one sample, whereas a DNAcopy object can hold more than one sample. } \section{See also}{ The \code{\link{segmentByCBS}}() method returns an object of this class. } \author{Henrik Bengtsson} \keyword{classes} PSCBS/man/estimateStandardDeviation.CBS.Rd0000644000176200001440000000313014564060313017732 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateStandardDeviation.CBS} \alias{estimateStandardDeviation.CBS} \alias{CBS.estimateStandardDeviation} \alias{estimateStandardDeviation,CBS-method} \title{Estimates the whole-genome standard deviation of the signals} \description{ Estimates the whole-genome standard deviation of the signals. } \usage{ \method{estimateStandardDeviation}{CBS}(fit, chromosomes=NULL, method=c("diff", "res", "abs", "DNAcopy"), estimator=c("mad", "sd"), na.rm=TRUE, weights=NULL, ...) } \arguments{ \item{chromosomes}{An optional \code{\link[base]{vector}} specifying the subset of chromosomes used for the estimate. If \code{\link[base]{NULL}}, all chromosomes are used.} \item{method}{A \code{\link[base]{character}} string specifying the method used.} \item{estimator}{A \code{\link[base]{character}} string or a \code{\link[base]{function}} specifying the internal estimator.} \item{na.rm}{If \code{\link[base:logical]{TRUE}}, missing values are dropped, otherwise not.} \item{weights}{An optional \code{\link[base]{double}} \code{\link[base]{vector}} of \code{nbrOfLoci()} non-negative weights.} \item{...}{Not used.} } \value{ Returns a non-negative \code{\link[base]{numeric}} scale. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/normalizeTotalCNs.AbstractCBS.Rd0000644000176200001440000000205014564060313017667 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{normalizeTotalCNs.AbstractCBS} \alias{normalizeTotalCNs.AbstractCBS} \alias{AbstractCBS.normalizeTotalCNs} \alias{normalizeTotalCNs,AbstractCBS-method} \alias{normalizeTotalCNs} \alias{normalizeTotalCNs.PSCBS} \title{Normalizes copy numbers such that the whole-genome average total copy number is two} \description{ Normalizes copy numbers such that the whole-genome average total copy number is two. } \usage{ \method{normalizeTotalCNs}{AbstractCBS}(...) } \arguments{ \item{...}{Additional arguments passed to the normalization method.} } \value{ Returns a normalized AbstractCBS object of the same class as \code{fit}. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/getSegments.PSCBS.Rd0000644000176200001440000000211114564060314015322 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getSegments.PSCBS} \alias{getSegments.PSCBS} \alias{PSCBS.getSegments} \alias{getSegments,PSCBS-method} \title{Gets the segments} \description{ Gets the segments. } \usage{ \method{getSegments}{PSCBS}(fit, simplify=FALSE, splitters=TRUE, addGaps=FALSE, ...) } \arguments{ \item{simplify}{If \code{\link[base:logical]{TRUE}}, redundant and intermediate information is dropped.}# \item{splitters}{If \code{\link[base:logical]{TRUE}}, "splitters" between chromosomes are preserved, otherwise dropped.} \item{...}{Not used.} } \value{ Returns a SxK \code{\link[base]{data.frame}}, where S in the number of segments, and K is the number of segment-specific fields. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{PSCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/as.data.frame.AbstractCBS.Rd0000644000176200001440000000162714564060313016674 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{as.data.frame.AbstractCBS} \alias{as.data.frame.AbstractCBS} \alias{AbstractCBS.as.data.frame} \alias{as.data.frame,AbstractCBS-method} \title{Gets the table of segments} \description{ Gets the table of segments. } \usage{ \method{as.data.frame}{AbstractCBS}(x, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns a \code{\link[base]{data.frame}}, where each row corresponds to a unique segment. } \author{Henrik Bengtsson} \seealso{ Utilizes \code{\link[PSCBS:getSegments.AbstractCBS]{*getSegments}()}. For more information see \code{\link{AbstractCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/gapsToSegments.data.frame.Rd0000644000176200001440000000301514564060314017134 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % gapsToSegments.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{gapsToSegments.data.frame} \alias{gapsToSegments.data.frame} \alias{gapsToSegments} \title{Gets the genomic segments that are complementary to the gaps} \description{ Gets the genomic segments that are complementary to the gaps, with default chromosome boundaries being \code{-Inf} and \code{+Inf}. } \usage{ \method{gapsToSegments}{data.frame}(gaps, resolution=1L, minLength=0L, dropGaps=FALSE, ...) } \arguments{ \item{gaps}{A \code{\link[base]{data.frame}} with columns \code{chromosome}, \code{start}, and \code{stop}. Any overlapping gaps will throw an error.} \item{resolution}{A non-negative \code{\link[base]{numeric}} specifying the minimum length unit, which by default equals one nucleotide/base pair.} \item{minLength}{Minimum length of segments to be kept.} \item{dropGaps}{If \code{\link[base:logical]{TRUE}}, the gaps themselves are not part of the output.} \item{...}{Not used.} } \value{ Returns \code{\link[base]{data.frame}} of least one row with columns \code{chromosome} if that argument is given), \code{start}, \code{stop} and \code{length}. The segments are ordered along the genome. } \author{Henrik Bengtsson} \seealso{ \code{\link{findLargeGaps}}(). } \keyword{methods} \keyword{IO} PSCBS/man/weightedQuantile.Rd0000644000176200001440000000371514564060314015502 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % weightedQuantile.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{weightedQuantile} \alias{weightedQuantile.default} \alias{weightedQuantile} \title{Weighted Quantile Value} \usage{ \method{weightedQuantile}{default}(x, w, probs=c(0, 0.25, 0.5, 0.75, 1), na.rm=TRUE, method=c("wtd.quantile"), ...) } \description{ Computes a weighted quantile of a numeric vector. } \arguments{ \item{x}{a \code{\link[base]{numeric}} \code{\link[base]{vector}} containing the values whose weighted quantile is to be computed.} \item{w}{a numeric \code{\link[base]{vector}} of weights the same length as \code{x} giving the weights to use for each element of \code{x}. Negative weights are treated as zero weights. Default value is equal weight to all values.} \item{probs}{a \code{\link[base]{numeric}} \code{\link[base]{vector}} of quantiles in [0,1] to be retrieved.} \item{na.rm}{a \code{\link[base]{logical}} value indicating whether \code{\link[base]{NA}} values in \code{x} should be stripped before the computation proceeds, or not.} \item{method}{If \code{"wtd.quantile"}, then an internal copy of \code{Hmisc::wtd.quantile()} is used. No other methods are currently supported.} \item{...}{Additional arguments passed to the estimator.} } \value{ Returns the weighted quantile. } \author{Henrik Bengtsson} \seealso{ Internally the following functions may be used: \code{\link[stats]{quantile}} (if no weights are specified), or an internal copy of \code{Hmisc::wtd.quantile()}. For a weighted median estimator, \code{\link[matrixStats]{weightedMedian}} of the \pkg{matrixStats} package. } \keyword{univar} \keyword{robust} \keyword{internal} PSCBS/man/findNeutralCopyNumberState.Rd0000644000176200001440000000324114564060314017451 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % findNeutralCopyNumberState.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{findNeutralCopyNumberState} \alias{findNeutralCopyNumberState.default} \alias{findNeutralCopyNumberState} \title{Call segments to be copy neutral based on allelic imbalance calls and total copy number estimates} \description{ Call segments to be copy neutral based on allelic imbalance calls and total copy number estimates. } \usage{ \method{findNeutralCopyNumberState}{default}(C, isAI, weights=NULL, ..., minDensity=1e-10, flavor=c("firstPeak", "maxPeak"), verbose=FALSE) } \arguments{ \item{C}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of region-level total copy number estimates.} \item{isAI}{A \code{\link[base]{logical}} \code{\link[base]{vector}} of "allelic imbalance" calls.} \item{weights}{An optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of non-negative weights.} \item{...}{Further arguments to be passed to the density estimation function.} \item{minDensity}{A \code{\link[base]{numeric}} value, below which density peaks are discarded.} \item{flavor}{A \code{\link[base]{character}} string specifying how to identify the mode of the AB segments.} \item{verbose}{If \code{\link[base:logical]{TRUE}}, extra information is output.} } \value{ A \code{\link[base]{logical}} \code{\link[base]{vector}} of "neutral copy number state" calls. } \author{Pierre Neuvial, Henrik Bengtsson} \keyword{internal} PSCBS/man/resetSegments.AbstractCBS.Rd0000644000176200001440000000212314564060313017110 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{resetSegments.AbstractCBS} \alias{resetSegments.AbstractCBS} \alias{AbstractCBS.resetSegments} \alias{resetSegments,AbstractCBS-method} \title{Reset the segments} \description{ Reset the segments. More precisely, it removes columns in the segmentation result table that have been added by methods after the actual segmentation method, e.g. bootstrap estimated mean level quantiles and various calls. It leave the basic segmentation results untouched, i.e. the partitioning and the segment means. } \usage{ \method{resetSegments}{AbstractCBS}(fit, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns an object if the same class as the input result. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/callAllelicBalanceByDH.PairedPSCBS.Rd0000644000176200001440000000334414564060314020351 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callAB.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callAllelicBalanceByDH.PairedPSCBS} \alias{callAllelicBalanceByDH.PairedPSCBS} \alias{PairedPSCBS.callAllelicBalanceByDH} \alias{callAllelicBalanceByDH,PairedPSCBS-method} \title{Calls segments that are in allelic balance} \description{ Calls segments that are in allelic balance by thresholding on DH using a predetermined threshold. The variability of the DH mean levels is taken into account via a bootstrap estimator. } \usage{ \method{callAllelicBalanceByDH}{PairedPSCBS}(fit, delta=estimateDeltaAB(fit, flavor = "qq(DH)"), alpha=0.05, ..., verbose=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of call to use.} \item{delta}{(Tuning parameter) A non-negative \code{\link[base]{numeric}} threshold.} \item{alpha}{A \code{\link[base]{numeric}} in [0,1] specifying the upper and lower quantiles calculated by the bootstrap estimator.} \item{...}{Additional arguments passed to the bootstrap estimator \code{\link[PSCBS:bootstrapTCNandDHByRegion.PairedPSCBS]{*bootstrapTCNandDHByRegion}()}.} } \value{ Returns a \code{\link{PairedPSCBS}} object with allelic-balance calls. } \author{Henrik Bengtsson} \section{Algorithm}{ \itemize{ \item Foo \item Bar } } \seealso{ Instead of calling this method explicitly, it is recommended to use the \code{\link[PSCBS:callAllelicBalance.PairedPSCBS]{*callAllelicBalance}()} method. } \keyword{internal} \keyword{methods} PSCBS/man/nbrOfChromosomes.AbstractCBS.Rd0000644000176200001440000000170614564060313017553 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{nbrOfChromosomes.AbstractCBS} \alias{nbrOfChromosomes.AbstractCBS} \alias{AbstractCBS.nbrOfChromosomes} \alias{nbrOfChromosomes,AbstractCBS-method} \title{Gets the number of chromosomes} \description{ Gets the number of chromosomes. } \usage{ \method{nbrOfChromosomes}{AbstractCBS}(this, ...) } \arguments{ \item{...}{Arguments passed to \code{\link[PSCBS:getChromosomes.AbstractCBS]{*getChromosomes}()}.} } \value{ Returns an \code{\link[base]{integer}}. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:getChromosomes.AbstractCBS]{*getChromosomes}()}. For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/installDNAcopy.Rd0000644000176200001440000000217614564060314015063 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % installDNAcopy.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{installDNAcopy} \alias{installDNAcopy.default} \alias{installDNAcopy} \title{Install the DNAcopy package} \usage{ \method{installDNAcopy}{default}(..., force=FALSE) } \description{ Install the DNAcopy package, if missing. } \arguments{ \item{...}{Arguments passed to the install function.} \item{force}{If \code{\link[base:logical]{FALSE}} and the \pkg{DNAcopy} package is already installed, then it will not be re-install. If \code{\link[base:logical]{TRUE}}, it will be installed.} } \value{ Returns nothing. } \details{ This function is will download and call the \code{biocLite()} installation function from the Bioconductor Project website. This function will also make sure that \pkg{DNAcopy} is loaded so that it is reported by \code{\link[utils]{sessionInfo}}. } \author{Henrik Bengtsson} \keyword{internal} PSCBS/man/mergeNonCalledSegments.CBS.Rd0000644000176200001440000000165014564060313017165 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.CALL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{mergeNonCalledSegments.CBS} \alias{mergeNonCalledSegments.CBS} \alias{CBS.mergeNonCalledSegments} \alias{mergeNonCalledSegments,CBS-method} \title{Merge neighboring segments that are not called} \description{ Merge neighboring segments that are not called } \usage{ \method{mergeNonCalledSegments}{CBS}(fit, ..., verbose=FALSE) } \arguments{ \item{...}{Not used.} \item{verbose}{\code{\link[R.utils]{Verbose}}.} } \value{ Returns an object of the same class with the same of fewer number of segments. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/mergeThreeSegments.AbstractCBS.Rd0000644000176200001440000000240014564060313020053 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{mergeThreeSegments.AbstractCBS} \alias{mergeThreeSegments.AbstractCBS} \alias{AbstractCBS.mergeThreeSegments} \alias{mergeThreeSegments,AbstractCBS-method} \title{Merge a segment and its two flanking segments} \description{ Merge a segment and its two flanking segments into one segment, and recalculating the segment statistics. } \usage{ \method{mergeThreeSegments}{AbstractCBS}(fit, middle, ...) } \arguments{ \item{middle}{An \code{\link[base]{integer}} specifying the three segments (middle-1, middle, middle+1) to be merged.} \item{...}{Additional arguments passed to \code{\link[PSCBS:mergeTwoSegments.AbstractCBS]{*mergeTwoSegments}()}.} } \value{ Returns an \code{\link{AbstractCBS}} of the same class with two less segment. } \author{Henrik Bengtsson} \seealso{ Internally \code{\link[PSCBS:mergeTwoSegments.AbstractCBS]{*mergeTwoSegments}()} is used. For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/ploidy.AbstractCBS.Rd0000644000176200001440000000254214564060313015565 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{ploidy.AbstractCBS} \alias{ploidy.AbstractCBS} \alias{AbstractCBS.ploidy} \alias{ploidy,AbstractCBS-method} \alias{AbstractCBS.ploidy<-} \alias{ploidy<-.AbstractCBS} \alias{ploidy<-,AbstractCBS-method} \alias{AbstractCBS.setPloidy} \alias{setPloidy.AbstractCBS} \alias{setPloidy,AbstractCBS-method} \alias{AbstractCBS.adjustPloidyScale} \alias{adjustPloidyScale.AbstractCBS} \alias{adjustPloidyScale,AbstractCBS-method} \alias{adjustPloidyScale.PairedPSCBS} \alias{adjustPloidyScale} \alias{ploidy} \alias{ploidy<-} \alias{setPloidy} \title{Gets and sets ploidy} \description{ Gets and sets ploidy. } \usage{ \method{ploidy}{AbstractCBS}(fit, ...) \method{ploidy}{AbstractCBS}(fit) <- value } \arguments{ \item{fit}{An \code{\link{AbstractCBS}} object.} \item{value}{An \code{\link[base]{integer}} (in \eqn{1,2,\ldots}) specifying the genome ploidy .} \item{...}{Not used.} } \value{ Returns (invisibly) an updated object. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/hclustCNs.AbstractCBS.Rd0000644000176200001440000000235714564060312016176 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.HCLUST.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{hclustCNs.AbstractCBS} \alias{hclustCNs.AbstractCBS} \alias{AbstractCBS.hclustCNs} \alias{hclustCNs,AbstractCBS-method} \title{Performs a hierarchical clustering of the CN mean levels} \description{ Performs a hierarchical clustering of the CN mean levels. } \usage{ \method{hclustCNs}{AbstractCBS}(fit, size=NULL, distMethod="euclidean", hclustMethod="ward.D", ..., verbose=FALSE) } \arguments{ \item{size}{Argument passed to \code{\link[PSCBS:sampleCNs.AbstractCBS]{*sampleCNs}()}.} \item{distMethod, hclustMethod}{Argument \code{method} for \code{\link[stats]{dist}} and "stats::hclust", respectively.} \item{...}{Not used.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a \code{hclust} object as returned by \code{\link[stats]{hclust}}. } \author{Henrik Bengtsson} \seealso{ This method is utilized by \code{\link[PSCBS:pruneByHClust.AbstractCBS]{*pruneByHClust}()}. } \keyword{internal} \keyword{methods} PSCBS/man/updateMeansTogether.AbstractCBS.Rd0000644000176200001440000000206414564060312020233 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.HCLUST.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{updateMeansTogether.AbstractCBS} \alias{updateMeansTogether.AbstractCBS} \alias{AbstractCBS.updateMeansTogether} \alias{updateMeansTogether,AbstractCBS-method} \alias{updateMeansTogether.CBS} \alias{updateMeansTogether.PairedPSCBS} \title{Updates the CN mean levels jointly in sets of segments} \description{ Updates the CN mean levels jointly in sets of segments as if they were one large segment. The locus-level data is not updated/modified. } \usage{ \method{updateMeansTogether}{AbstractCBS}(...) } \arguments{ \item{...}{Not used.} } \value{ Returns an object of the same class. } \author{Henrik Bengtsson} \seealso{ This method is utilized by \code{\link[PSCBS:pruneByHClust.AbstractCBS]{*pruneByHClust}()}. } \keyword{internal} \keyword{methods} PSCBS/man/AbstractCBS.Rd0000644000176200001440000000422014564060313014261 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{AbstractCBS} \docType{class} \alias{AbstractCBS} \title{The AbstractCBS class} \description{ Package: PSCBS \cr \bold{Class AbstractCBS}\cr \code{list}\cr \code{~~|}\cr \code{~~+--}\emph{\code{AbstractCBS}}\cr \bold{Directly known subclasses:}\cr \emph{\link[PSCBS]{CBS}}, \emph{\link[PSCBS]{NonPairedPSCBS}}, \emph{\link[PSCBS]{PSCBS}}, \emph{\link[PSCBS]{PairedPSCBS}}\cr public abstract class \bold{AbstractCBS}\cr extends list\cr All CBS-style segmentation results extend this class, e.g. \code{\link{CBS}} and \code{\link{PairedPSCBS}}. } \usage{ AbstractCBS(fit=list(), sampleName=fit$sampleName, ...) } \arguments{ \item{fit}{A \code{\link[base]{list}} structure containing the segmentation results.} \item{sampleName}{A \code{\link[base]{character}} string.} \item{...}{Not used.} } \section{Fields and Methods}{ \bold{Methods:}\cr \tabular{rll}{ \tab \code{adjustPloidyScale} \tab -\cr \tab \code{extractCNs} \tab -\cr \tab \code{getChangePoints} \tab -\cr \tab \code{getChromosomes} \tab -\cr \tab \code{getLocusData} \tab -\cr \tab \code{getSegmentSizes} \tab -\cr \tab \code{getSegments} \tab -\cr \tab \code{mergeThreeSegments} \tab -\cr \tab \code{nbrOfChangePoints} \tab -\cr \tab \code{nbrOfChromosomes} \tab -\cr \tab \code{nbrOfLoci} \tab -\cr \tab \code{nbrOfSegments} \tab -\cr \tab \code{normalizeTotalCNs} \tab -\cr \tab \code{ploidy} \tab -\cr \tab \code{ploidy<-} \tab -\cr \tab \code{plotTracks} \tab -\cr \tab \code{sampleCNs} \tab -\cr \tab \code{writeWIG} \tab -\cr } \bold{Methods inherited from list}:\cr Ops,nonStructure,vector-method, Ops,structure,vector-method, Ops,vector,nonStructure-method, Ops,vector,structure-method, all.equal, as.data.frame, attachLocally, callHooks, coerce,ANY,list-method, relist, type.convert, within } \author{Henrik Bengtsson} \keyword{classes} \keyword{internal} PSCBS/man/getCallStatistics.CBS.Rd0000644000176200001440000000444114564060313016227 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.CALL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getCallStatistics.CBS} \alias{getCallStatistics.CBS} \alias{CBS.getCallStatistics} \alias{getCallStatistics,CBS-method} \title{Calculates various call statistics per chromosome} \description{ Calculates various call statistics per chromosome. } \usage{ \method{getCallStatistics}{CBS}(fit, regions=NULL, shrinkRegions=TRUE, ..., verbose=FALSE) } \arguments{ \item{regions}{An optional \code{\link[base]{data.frame}} with columns "chromosome", "start", and "end" specifying the regions of interest to calculate statistics for. If \code{\link[base]{NULL}}, all of the genome is used.} \item{shrinkRegions}{If \code{\link[base:logical]{TRUE}}, regions are shrunk to the support of the data.} \item{...}{Not used.} \item{verbose}{\code{\link[R.utils]{Verbose}}.} } \value{ Returns a CxK \code{\link[base]{data.frame}}, where C is the number of regions that meet the criteria setup by argument \code{regions} and (K-4)/2 is the number of call types. The first column is the chromosome index, the second and the third are the first and last position, and the fourth the length (=last-first+1) of the chromosome. The following columns contains call summaries per chromosome. For each chromosome and call type, the total length of such calls on that chromosome is reported together how large of a fraction of the chromosome such calls occupy. } \details{ The estimators implemented here are based solely on the segmentation results, which is very fast. In the original proposal by Fridlyand et al. [1], the authors estimates the parameters by converting segment-level calls back to locus-level calls and there do the calculations. The difference between the two approaches should be minor, particularly for large density arrays. } \author{Henrik Bengtsson} \references{ [1] Fridlyand et al. \emph{Breast tumor copy number aberration phenotypes and genomic instability}, BMC Cancer, 2006. \cr } \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/getBootstrapLocusSets.PairedPSCBS.Rd0000644000176200001440000000335214564060314020514 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.BOOT.sets.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getBootstrapLocusSets.PairedPSCBS} \alias{getBootstrapLocusSets.PairedPSCBS} \alias{PairedPSCBS.getBootstrapLocusSets} \alias{getBootstrapLocusSets,PairedPSCBS-method} \alias{getBootstrapLocusSets} \title{Generates original and bootstrapped segment-specific index sets} \description{ Generates original and bootstrapped segment-specific index sets, which can be used to calculate various bootstrap summaries, e.g. segment mean levels. } \usage{ \method{getBootstrapLocusSets}{PairedPSCBS}(fit, B=1000L, by=c("betaTN", "betaT"), seed=NULL, verbose=FALSE, .validate=FALSE, ...) } \arguments{ \item{B}{A non-negative \code{\link[base]{integer}} specifying the number of bootstrap samples.} \item{by}{Should \code{betaTN} or \code{betaT} be used?} \item{seed}{An (optional) \code{\link[base]{integer}} specifying the random seed to be set before sampling indices. The random seed is set to its original state when exiting. If \code{\link[base]{NULL}}, it is not set.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} \item{.validate}{If \code{\link[base:logical]{TRUE}}, additional sanity checks are performed to validate the correctness. This is only needed for troubleshooting if it is suspected there is a bug.} \item{...}{Not used.} } \value{ Returns a \code{\link[base]{list}}. } \author{Henrik Bengtsson} \seealso{ This is used internally by various bootstrap methods. } \keyword{internal} \keyword{methods} PSCBS/man/pruneBySdUndo.CBS.Rd0000644000176200001440000000525714564060313015350 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.PRUNE.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{pruneBySdUndo.CBS} \alias{pruneBySdUndo.CBS} \alias{CBS.pruneBySdUndo} \alias{pruneBySdUndo,CBS-method} \title{Prune the CBS profile by dropping change points that are too small} \description{ Prune the CBS profile by dropping change points that are too small, where "too small" means that the amplitude of the change points is less than a multiple of the overall standard deviation of the copy-number signals. } \usage{ \method{pruneBySdUndo}{CBS}(fit, rho=3, sigma="DNAcopy", ..., verbose=FALSE) } \arguments{ \item{fit}{A \code{\link{CBS}} object.} \item{rho}{A positive \code{\link[base]{double}} scalar specifying the number of standard deviations (\code{rho*sigma}) required in order to keep a change point. More change points are dropped the greater this value is.} \item{sigma}{The whole-genome standard deviation of the locus-level copy number signals. The default is to calculate it from the data and as done in the \pkg{DNAcopy} package.} \item{...}{(Optional) Additional arguments passed to the standard deviation estimator function.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a \code{\link{CBS}} object (of the same class as \code{fit}). } \details{ This method corresponds to using the \code{undo} argument when calling \code{\link{segmentByCBS}}(), which in turn corresponds to using the \code{undo.splits="sdundo"} and \code{undo.SD} of the underlying \code{\link[DNAcopy]{segment}} method. } \examples{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[1:100] <- mu[1:100] + 0.3 mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Post-segmentation pruning # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitP <- pruneBySdUndo(fit, rho=1) drawLevels(fitP, col="red") } \author{Henrik Bengtsson, Pierre Neuvial} \keyword{internal} \keyword{methods} PSCBS/man/nbrOfChangePoints.AbstractCBS.Rd0000644000176200001440000000207614564060313017640 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{nbrOfChangePoints.AbstractCBS} \alias{nbrOfChangePoints.AbstractCBS} \alias{AbstractCBS.nbrOfChangePoints} \alias{nbrOfChangePoints,AbstractCBS-method} \title{Gets the number of change points} \description{ Gets the number of change points, which is defined as the number of segments minus the number of chromosomes. } \usage{ \method{nbrOfChangePoints}{AbstractCBS}(fit, ignoreGaps=FALSE, dropEmptySegments=TRUE, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns an \code{\link[base]{integer}}. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:nbrOfSegments.AbstractCBS]{*nbrOfSegments}()} \code{\link[PSCBS:nbrOfChromosomes.AbstractCBS]{*nbrOfChromosomes}()} For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/callCopyNeutral.PairedPSCBS.Rd0000644000176200001440000000324614564060314017275 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callCopyNeutral.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callCopyNeutral.PairedPSCBS} \alias{callCopyNeutral.PairedPSCBS} \alias{PairedPSCBS.callCopyNeutral} \alias{callCopyNeutral,PairedPSCBS-method} \alias{PairedPSCBS.callNTCN} \alias{callNTCN.PairedPSCBS} \alias{callNTCN,PairedPSCBS-method} \title{Calls segments that have a neutral total copy number} \description{ Calls segments that have a neutral total copy number (NTCN), i.e. that have a TCN that corresponds to the ploidy of the genome. } \usage{ \method{callCopyNeutral}{PairedPSCBS}(fit, flavor=c("TCN|AB"), ..., minSize=1, force=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of call to use.} \item{...}{Additional arguments passed to the caller.} \item{minSize}{An optional \code{\link[base]{integer}} specifying the minimum number of data points in order to call a segments. If fewer data points, then the call is set to \code{\link[base]{NA}} regardless.} \item{force}{If \code{\link[base:logical]{FALSE}}, and copy-neutral calls already exits, then nothing is done, otherwise the calls are done.} } \value{ Returns a \code{\link{PairedPSCBS}} object with copy-neutral calls. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:callCopyNeutralByTCNofAB.PairedPSCBS]{*callCopyNeutralByTCNofAB}()}. } \keyword{internal} \keyword{methods} PSCBS/man/callCopyNeutralByTCNofAB.PairedPSCBS.Rd0000644000176200001440000000361114564060314020661 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callCopyNeutral.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callCopyNeutralByTCNofAB.PairedPSCBS} \alias{callCopyNeutralByTCNofAB.PairedPSCBS} \alias{PairedPSCBS.callCopyNeutralByTCNofAB} \alias{callCopyNeutralByTCNofAB,PairedPSCBS-method} \title{Calls regions that are copy neutral} \description{ Calls regions that are copy neutral from the total copy numbers (TCNs) of segments in allelic balance (AB). } \usage{ \method{callCopyNeutralByTCNofAB}{PairedPSCBS}(fit, delta=estimateDeltaCN(fit), alpha=0.05, ..., force=FALSE, verbose=FALSE) } \arguments{ \item{fit}{A PairedPSCBS fit object as returned by \code{\link[PSCBS]{segmentByPairedPSCBS}}.} \item{delta}{A non-negative \code{\link[base]{double}} specifying the width of the "acceptance" region. Defaults to half of the distance between two integer TCN states, i.e. 1/2. This argument should be shrunken as a function of the amount of the normal contamination and other background signals.} \item{alpha}{A \code{\link[base]{double}} in [0,0.5] specifying the significance level of the confidence intervals used.} \item{...}{Additional arguments passed to \code{\link[PSCBS:calcStatsForCopyNeutralABs.PairedPSCBS]{*calcStatsForCopyNeutralABs}()}.} \item{force}{If \code{\link[base:logical]{TRUE}}, an already called object is skipped, otherwise not.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a \code{\link{PairedPSCBS}} fit object where a column with the copy-neutral call. } \details{ ... } %% examples "../incl/callCopyNeutralByTCNofAB.PairedPSCBS.Rex" \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} PSCBS/man/c.CBS.Rd0000644000176200001440000000162114564060313013020 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{c.CBS} \alias{c.CBS} \alias{CBS.c} \alias{c,CBS-method} \alias{c.PSCBS} \title{Concatenates segmentation results} \description{ Concatenates segmentation results. } \usage{ \method{c}{CBS}(..., addSplit=TRUE) } \arguments{ \item{\dots}{One or more \code{\link{AbstractCBS}} objects to be combined.} \item{addSplit}{If \code{\link[base:logical]{TRUE}}, a "divider" is added between chromosomes.} } \value{ Returns an \code{\link{AbstractCBS}} object of the same class in \dots. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/as.data.frame.CBS.Rd0000644000176200001440000000153114564060313015202 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{as.data.frame.CBS} \alias{as.data.frame.CBS} \alias{CBS.as.data.frame} \alias{as.data.frame,CBS-method} \title{Gets the table of segments} \description{ Gets the table of segments. } \usage{ \method{as.data.frame}{CBS}(x, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns a \code{\link[base]{data.frame}}, where each row corresponds to a unique segment. } \author{Henrik Bengtsson} \seealso{ Utilizes \code{\link[PSCBS:getSegments.CBS]{*getSegments}()}. For more information see \code{\link{CBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/estimateKappa.PairedPSCBS.Rd0000644000176200001440000000241714564060314016763 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateKappa.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateKappa.PairedPSCBS} \alias{estimateKappa.PairedPSCBS} \alias{PairedPSCBS.estimateKappa} \alias{estimateKappa,PairedPSCBS-method} \title{Estimate global background in segmented copy numbers} \description{ Estimate global background in segmented copy numbers. The global background, here called \eqn{\kappa}, may have multiple origins where normal contamination is one, but not necessarily the only one. } \usage{ \method{estimateKappa}{PairedPSCBS}(this, flavor=c("density(C1)"), ...) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of estimator to use.} \item{...}{Additional arguments passed to the estimator.} } \value{ Returns the background estimate as a \code{\link[base]{numeric}} scalar. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:estimateKappaByC1Density.PairedPSCBS]{*estimateKappaByC1Density}()}. } \keyword{internal} \keyword{methods} PSCBS/man/findLargeGaps.Rd0000644000176200001440000000323314564060314014700 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % findLargeGaps.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{findLargeGaps} \alias{findLargeGaps.default} \alias{findLargeGaps} \alias{findLargeGaps.data.frame} \title{Identifies gaps of a genome where there exist no observations} \description{ Identifies gaps of a genome where there exist no observations. } \usage{ \method{findLargeGaps}{default}(chromosome=NULL, x, minLength, resolution=1L, ...) } \arguments{ \item{chromosome}{(Optional) An \code{\link[base]{integer}} \code{\link[base]{vector}} of length J of chromosome indices.} \item{x}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J of genomic locations.} \item{minLength}{A positive \code{\link[base]{numeric}} scalar specifying the minimum length of a gap.} \item{resolution}{A non-negative \code{\link[base]{numeric}} specifying the minimum length unit, which by default equals one nucleotide/base pair.} \item{...}{Not used.} } \value{ Returns \code{\link[base]{data.frame}} zero or more rows and with columns \code{chromosome} (if given), \code{start}, \code{stop}, and \code{length}. } \author{Henrik Bengtsson} \seealso{ Use \code{\link{gapsToSegments}}() to turn the set of identified gaps into the complementary set of segments such that they can be passed to \code{\link{segmentByCBS}}(), \code{\link{segmentByPairedPSCBS}}() and \code{\link{segmentByNonPairedPSCBS}}() via argument \code{knownSegments}. } \keyword{IO} PSCBS/man/estimateDeltaABBySmallDH.PairedPSCBS.Rd0000644000176200001440000000430014564060314020654 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateDeltaAB.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateDeltaABBySmallDH.PairedPSCBS} \alias{estimateDeltaABBySmallDH.PairedPSCBS} \alias{PairedPSCBS.estimateDeltaABBySmallDH} \alias{estimateDeltaABBySmallDH,PairedPSCBS-method} \title{Estimate a threshold for calling allelic balance from DH} \description{ Estimate a threshold for calling allelic balance from DH. } \usage{ \method{estimateDeltaABBySmallDH}{PairedPSCBS}(fit, q1=0.05, q2=0.9, ..., verbose=FALSE) } \arguments{ \item{q1}{A \code{\link[base]{numeric}} value specifying the weighted quantile of the segment-level DHs used to identify segments with small DH means.} \item{q2}{A \code{\link[base]{numeric}} value specifying the quantile of the locus-level DH signals for those segments with small DH mean levels.} \item{...}{Not used.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the threshold estimate as a \code{\link[base]{numeric}} scalar. } \section{Algorithm}{ \itemize{ \item Grabs the segment-level DH estimates. \item Calculate segment weights proportional to the number of heterozygous SNPs. \item Calculate \eqn{\Delta} as the 5\% quantile of the weighted DH means. \item Choose the segments with means less than \eqn{\Delta}. \item Calculate threshold \eqn{\Delta_{AB}} as the 90\% "symmetric" quantile of the observed locus-level DHs from the selected segments in Step 4. The q:th "symmetric" quantile is estimated by estimating the ((1-q), 50\%) quantiles, calculating their distance as "50\%-(1-q)" and add to the median (50\%), i.e. "median + (median-(1-q))" = "2*median-1 + q", which should equal q if the distribution is symmetric. } } \author{Henrik Bengtsson} \seealso{ Instead of calling this method explicitly, it is recommended to use the \code{\link[PSCBS:estimateDeltaAB.PairedPSCBS]{*estimateDeltaAB}()} method. } \keyword{internal} \keyword{methods} PSCBS/man/estimateDeltaLOHByMinC1ForNonAB.PairedPSCBS.Rd0000644000176200001440000000446014564060314021773 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateDeltaLOH.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateDeltaLOHByMinC1ForNonAB.PairedPSCBS} \alias{estimateDeltaLOHByMinC1ForNonAB.PairedPSCBS} \alias{PairedPSCBS.estimateDeltaLOHByMinC1ForNonAB} \alias{estimateDeltaLOHByMinC1ForNonAB,PairedPSCBS-method} \title{Estimate a threshold for calling LOH from DH} \description{ Estimate a threshold for calling LOH from DH based on the location of guessed C1=0 and C1=1 peaks. } \usage{ \method{estimateDeltaLOHByMinC1ForNonAB}{PairedPSCBS}(this, midpoint=1/2, maxC=3 * (ploidy(this)/2), ..., verbose=FALSE) } \arguments{ \item{midpoint}{A \code{\link[base]{numeric}} scalar in [0,1] specifying the relative position of the midpoint between the estimated locations of C1=0 and C1=1 mean parameters.} \item{maxC}{Maximum total copy number of a segment in order to be included in the initial set of segments.} \item{...}{Not used.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the estimated LOH threshold as a \code{\link[base]{numeric}} scalar or -\code{\link[base:is.finite]{Inf}}. In case it is not possible to estimate the LOH threshold, then -\code{\link[base:is.finite]{Inf}} is returned. } \details{ This method requires that calls for allelic balances already have been me made, cf. \code{\link[PSCBS:callAllelicBalance.PairedPSCBS]{*callAllelicBalance}()}. } \section{Algorithm}{ \itemize{ \item Grabs the segment-level C1 estimates. \item Calculate segment weights proportional to the number of heterozygous SNPs. \item Estimate the C1=1 location as the weighted median C1 for segments that have been called to be in allelic balance. \item Estimate the C1=0 location as the smallest C1 among segments that are not in allelic balance. \item Let the LOH threshold be the midpoint of the estimates C1=0 and C1=1 locations. } } \author{Henrik Bengtsson} \seealso{ Instead of calling this method explicitly, it is recommended to use the \code{\link[PSCBS:estimateDeltaLOH.PairedPSCBS]{*estimateDeltaLOH}()} method. } \keyword{internal} \keyword{methods} PSCBS/man/dropRegions.AbstractCBS.Rd0000644000176200001440000000410614564060313016556 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{dropRegions.AbstractCBS} \alias{dropRegions.AbstractCBS} \alias{AbstractCBS.dropRegions} \alias{dropRegions,AbstractCBS-method} \alias{AbstractCBS.dropRegion} \alias{dropRegion.AbstractCBS} \alias{dropRegion,AbstractCBS-method} \title{Drops chromosomal regions (a connected set of segments)} \description{ Drops chromosomal regions (a connected set of segments) each of a certain size (number of segments). \emph{None of the statistics are recalculated}. } \usage{ \method{dropRegions}{AbstractCBS}(this, regions, H=1, ..., asMissing=FALSE, verbose=FALSE) } \arguments{ \item{regions}{An \code{\link[base]{integer}} \code{\link[base]{vector}} of length R specifying the indices of the left most segment in each of the R regions to be dropped.} \item{H}{A non-negative \code{\link[base]{integer}} specifying the size of each region, i.e. the number of segments per region.} \item{...}{Additional arguments passed to \code{\link[PSCBS:extractRegions.AbstractCBS]{*extractRegions}()}.} \item{asMissing}{If \code{\link[base:logical]{TRUE}}, dropped segments are replaced by missing values, otherwise they are truly dropped.} \item{verbose}{A \code{\link[base]{logical}} or a \code{\link[R.utils]{Verbose}} object.} } \value{ Returns an \code{\link{AbstractCBS}} object of the same class with (at most) R*H segments dropped. If some regions overlap (share segments), then fewer than R*H segments are dropped. } \author{Henrik Bengtsson} \seealso{ Internally \code{\link[PSCBS:extractRegions.AbstractCBS]{*extractRegions}()} is used. See also \code{\link[PSCBS:dropChangePoint.AbstractCBS]{*dropChangePoint}()} and \code{\link[PSCBS:mergeTwoSegments.AbstractCBS]{*mergeTwoSegments}()}. For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/randomSeed.Rd0000644000176200001440000000257514564060314014263 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % randomSeed.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{randomSeed} \alias{randomSeed} \title{Sets and resets the .Random.seed in the global environment} \description{ Sets and resets the .Random.seed in the global environment. } \usage{ randomSeed(action=c("set", "advance", "reset", "get"), seed=NULL, kind=NULL, n=1L, backup=TRUE) } \arguments{ \item{action}{A \code{\link[base]{character}} string specifying the action.} \item{seed}{Random seed to be set; only for \code{action="set"}. If \code{length(seed) == 1}, then \code{set.seed(seed)} is used, otherwise \code{.Random.seed} is assigned the value.} \item{kind}{(optional) A \code{\link[base]{character}} string specifying type of random number generator to use, cf. \code{\link[base]{RNGkind}}().} \item{n}{Number of random seeds to generate by \code{action}.} \item{backup}{If \code{\link[base:logical]{TRUE}}, the previous (seed, kind) state is recorded such that it can be reset later.} } \value{ Returns a \code{.Random.seed}. If more than one is returned, the they are returned as a \code{\link[base]{list}}. } \author{Henrik Bengtsson} \keyword{internal} PSCBS/man/getChromosomes.AbstractCBS.Rd0000644000176200001440000000177014564060313017265 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getChromosomes.AbstractCBS} \alias{getChromosomes.AbstractCBS} \alias{AbstractCBS.getChromosomes} \alias{getChromosomes,AbstractCBS-method} \title{Gets the set of chromosomes} \description{ Gets the set of chromosomes in the segmentation result. } \usage{ \method{getChromosomes}{AbstractCBS}(this, ...) } \arguments{ \item{...}{Arguments passed to \code{\link[PSCBS:getSegments.AbstractCBS]{*getSegments}()}.} } \value{ Returns a unique and sorted \code{\link[base]{vector}} of chromosomes segmented. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:nbrOfChromosomes.AbstractCBS]{*nbrOfChromosomes}()}. For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/getSmoothLocusData.CBS.Rd0000644000176200001440000000210714564060313016347 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.SMOOTH.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getSmoothLocusData.CBS} \alias{getSmoothLocusData.CBS} \alias{CBS.getSmoothLocusData} \alias{getSmoothLocusData,CBS-method} \title{Gets smoothed locus-level data} \description{ Gets smoothed locus-level data. } \usage{ \method{getSmoothLocusData}{CBS}(fit, by, ...) } \arguments{ \item{fit}{An \code{\link{CBS}} object.} \item{by}{A \code{\link[base]{numeric}} scalar specifying the bin size.} \item{...}{Not used.} } \value{ Returns a \code{\link[base]{data.frame}} where the first three columns are 'chromosome', 'x' (position), and 'count' (number of loci average over for the given bin), and the remaining ones are the smoothed locus-level data. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/callLOH.PairedPSCBS.Rd0000644000176200001440000000507714564060314015456 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callLOH.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callLOH.PairedPSCBS} \alias{callLOH.PairedPSCBS} \alias{PairedPSCBS.callLOH} \alias{callLOH,PairedPSCBS-method} \title{Calls segments that are in LOH} \description{ Calls segments that are in LOH, i.e. that have "zero" minor copy number. } \usage{ \method{callLOH}{PairedPSCBS}(fit, flavor=c("SmallC1", "LargeDH"), ..., minSize=1, xorCalls=TRUE, force=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of call to use.} \item{...}{Additional arguments passed to the caller.} \item{minSize}{An optional \code{\link[base]{integer}} specifying the minimum number of data points in order to call a segments. If fewer data points, then the call is set to \code{\link[base]{NA}} regardless.} \item{xorCalls}{If \code{\link[base:logical]{TRUE}}, a region already called AB, will for consistency never be called LOH, resulting in either an LOH call set to \code{\link[base:logical]{FALSE}} or \code{\link[base]{NA}} (as explained below).} \item{force}{If \code{\link[base:logical]{FALSE}}, and allelic-balance calls already exits, then nothing is done, otherwise the calls are done.} } \value{ Returns a \code{\link{PairedPSCBS}} object with LOH calls. } \section{AB and LOH consistency}{ Biologically, a segment can not be both in allelic balance (AB) and in loss-of-heterozygosity (LOH) at the same time. To avoid reporting such inconsistencies, the LOH caller will, if argument \code{xorCalls=TRUE}, never report a segment to be in LOH if it is already called to be in AB. However, regardless of of the AB call, a segment is still always tested for LOH, to check weather the LOH caller is consistent with the AB caller or not. Thus, in order to distinguish the case where the AB caller and LOH caller agree from when they disagree, we report either (AB,LOH)=(TRUE,FALSE) or (TRUE,NA). The former is reported when they are consistent, and the latter when they are not, or when the LOH caller could not call it. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:callLowC1ByC1.PairedPSCBS]{*callLowC1ByC1}()}, \code{\link[PSCBS:callExtremeAllelicImbalanceByDH.PairedPSCBS]{*callExtremeAllelicImbalanceByDH}()}. } \keyword{internal} \keyword{methods} PSCBS/man/nbrOfLoci.AbstractCBS.Rd0000644000176200001440000000154714564060313016146 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{nbrOfLoci.AbstractCBS} \alias{nbrOfLoci.AbstractCBS} \alias{AbstractCBS.nbrOfLoci} \alias{nbrOfLoci,AbstractCBS-method} \title{Gets the number of loci} \description{ Gets the number of loci. } \usage{ \method{nbrOfLoci}{AbstractCBS}(fit, splitters=FALSE, ...) } \arguments{ \item{splitters, ...}{Arguments passed to \code{\link[PSCBS:getLocusData.AbstractCBS]{*getLocusData}()}.} } \value{ Returns an \code{\link[base]{integer}}. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/pruneByDP.AbstractCBS.Rd0000644000176200001440000000250214564060312016130 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.PRUNE.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{pruneByDP.AbstractCBS} \alias{pruneByDP.AbstractCBS} \alias{AbstractCBS.pruneByDP} \alias{pruneByDP,AbstractCBS-method} \title{Prunes the CN profile using dynamical programming} \description{ Prunes the CN profile using dynamical programming by specifying the target number of segments or alternative how of many change points to drop. } \usage{ \method{pruneByDP}{AbstractCBS}(fit, nbrOfSegments, ..., verbose=FALSE) } \arguments{ \item{nbrOfSegments}{An \code{\link[base]{integer}} specifying the number of segments after pruning. If negative, the it specifies the number of change points to drop.} \item{...}{Optional arguments passed to \code{\link[PSCBS:seqOfSegmentsByDP.AbstractCBS]{*seqOfSegmentsByDP}()}.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns a pruned object of the same class. } \examples{\dontrun{ # Drop two segments fitP <- pruneByDP(fit, nbrOfSegments=-2) }} \author{Henrik Bengtsson, Pierre Neuvial} \references{ [1] ... \cr } \keyword{internal} \keyword{methods} PSCBS/man/getSampleName.AbstractCBS.Rd0000644000176200001440000000174314564060313017011 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getSampleName.AbstractCBS} \alias{getSampleName.AbstractCBS} \alias{AbstractCBS.getSampleName} \alias{getSampleName,AbstractCBS-method} \alias{AbstractCBS.sampleName} \alias{sampleName.AbstractCBS} \alias{sampleName,AbstractCBS-method} \title{Gets the name of the sample segmented} \description{ Gets the name of the sample segmented. } \usage{ \method{getSampleName}{AbstractCBS}(fit, ...) } \arguments{ \item{...}{Not used.} } \value{ Returns a \code{\link[base]{character}} string. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:setSampleName.AbstractCBS]{*setSampleName}()}. For more information see \code{\link{AbstractCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/as.DNAcopy.CBS.Rd0000644000176200001440000000337714564060313014507 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % DNAcopy.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{as.DNAcopy.CBS} \alias{as.DNAcopy.CBS} \alias{CBS.as.DNAcopy} \alias{as.DNAcopy,CBS-method} \title{Coerces a CBS object to a DNAcopy object} \description{ Coerces a CBS object to a DNAcopy object. } \usage{ \method{as.DNAcopy}{CBS}(fit, ...) } \arguments{ \item{fit}{A \code{\link{CBS}} object."} \item{...}{Not used.} } \value{ Returns a \code{\link{DNAcopy}} object (of the \pkg{DNAcopy} package). } \examples{ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x) print(fit) plotTracks(fit) # Coerce an CBS object to a DNAcopy object fitD <- as.DNAcopy(fit) # Coerce an DNAcopy object to a CBS object fitC <- as.CBS(fitD) # Sanity check fitD2 <- as.DNAcopy(fit) stopifnot(all.equal(fitD2, fitD)) fitC2 <- as.CBS(fitD2) stopifnot(all.equal(fitC2, fitC)) } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:as.CBS.DNAcopy]{as.CBS()}}. For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/setSampleName.AbstractCBS.Rd0000644000176200001440000000173414564060313017025 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{setSampleName.AbstractCBS} \alias{setSampleName.AbstractCBS} \alias{AbstractCBS.setSampleName} \alias{setSampleName,AbstractCBS-method} \alias{AbstractCBS.sampleName<-} \alias{sampleName<-.AbstractCBS} \alias{sampleName<-,AbstractCBS-method} \title{Sets the name of the sample segmented} \description{ Sets the name of the sample segmented. } \usage{ \method{setSampleName}{AbstractCBS}(fit, name, ...) } \arguments{ \item{name}{A \code{\link[base]{character}} string.} \item{...}{Not used.} } \value{ Returns (invisibly) an updated object. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/figures/0000755000176200001440000000000014564051545013354 5ustar liggesusersPSCBS/man/figures/ex-PSCBS-paired.chr01.png0000644000176200001440000015456514564051545017544 0ustar liggesusersPNG  IHDRQI IDATx{eUuNtJ}p|RQcW~tۭC=Q[CPꇩHRD\ 4'xvY- !T$(c4z}`.m cyk9{(jc1_5sq$ @$ @$ @$ @$ @$ @$ @$ @$ @$ @$ @$ @$ @$(x+ۄG}t׮]|3暰طo5kr!_b=|ۛ|%7VZՄ}ă>x<묳j7nݺmN+$Оn ڤY~.痿|+Qw4Mo<>OFonkM?"<蠃g>_֮]+űe˖[?~_n4$Ь޲eg>G+9s=5k4UhV@|g}gݨZ H H H@f4u#2]4OpM)R{Q b}P;$ @$ FA8eU@#Lٿ]*@@Ngh +Ԋ=o(`VЦxKd($7@ӦݽbF2֬ ?++{__5M,Uvψ|4CfEm۶nڵT@F}i7j}ǎ_U{GyCen;qϞ=PnSҬcyᇷo938DžFC@oFЈ4 K___g>gqQGը; foS_cqr""bf9hY>S 4e*T YN4zh4]U4E;hgX@]hWPu3Z@̔j<^=T4 4Ŗ8 uY,h4H-\ꪎ[2}7 dSBhANnq](*6 <4d*/p$(@n%pRd'^݇Noh6F].n W~qr4# OBC@ ^ Uӷ&w-6%^ "d3U+a0UN7F-63*DZM~9Yg_k#Nlj޵ڍZSk5;RC@mP{=\/*u_\8@~{͌?\e[xE3{e-ZeCNDk$ gRK ` iHgh SѢţ;XUѠѐh8Z#$/ENZag=:]GzYK*hJ)S6 DžGkZ,m@4^L ӟ."IҡyEA }_++o/|B+)"BR/x*F6v@@djNjټʴoo) /;T 5tx-_.i"as#+JS9$3a *%l;]" S[0]zXsAl L%o85\r_aM+Z'bQy2 ֵA^0BPI1{<բͲhs+J,i l>~5לuY*[n-4 WTjkl_>ϋ]kPzx̍LZi”gL$6Cjv%te2< _BS\1:)(C;oo`#K@FaE$\}H iڨد  %+VZ=_za>0!_|a[^ E[*`vbȾPۉyBy+,f&y U2a\kpYK\wmh3| !6֍GG$H2h}_ '_ӟFc=a A{N:,WArqhj- ;r6)CjBMl; IˏKH & .C)&Z%D(esV IG3MFσs>/s9ooc_ ̨E5Pxky|f-|Dbu.tibT͐1z!߉]0I62N}i?oÕW1 e>Sc~q ׼56m'i:,Xv\!QUl?x ePmCe\'\QBqc|;o J!aga*6QMlK0f`ը+ >'1Jl^%r@yE{2"~wahR>s^ןs9{9tXbЏP ht-[u`@]C1,|Ճ2Ku㝇qfPiaDWq%FeQ@QfQ*|K/ٵм;K@#9쳋xw.rZ?qƫ%/yڵkH%i!퐽5bt tY9B//Ug*4#waɨ&C)SLZE;´9|Sd(H>Zʰ-$ƏA2/oiJ!>>rS_"$evgO~կ~] ox?yR[ohݾ_"#-t3&q(5ɔG:㑫b+j/M'w %?ly4H~^!qkwϳ<-6^jgt4%g<C}޲eڵk~G}_c8q0Dӭ[R{j~M0 ~~=A-x. OISmxJlꤧп{W?__p]tqf+@pib ԃ8jR[;+G:wu2Q;Z{#U6*wZX<-,<$"ȿ!H7%ĺYfhBpBk8\j:`=1jYigWM+{ '#IR8<.JI픚H94ڛ Pk`B R$4mZ>HT؁Dq.V$h!*{RuED6dX7.z空TZeM*ÝH?#?`G~Z,>'ean*P:<:(#D[E"_dVwRָFO&=e8?|nݺkPP^+b-ηTw{KCry!A3 ގ"X4“PX*"[EpY oiC My(5mLFhg4ΚjV:~E={e>;d7Ak"/lMvݢw6}_|-DSŚ5kvل~tƉ'#$ !D}3rs V3wF1{kM +2Fa-gѶ̲<*Zߍc kÆ zk$DӦ82b|Fްa~˯=Ю ao-K9IIЎ kU8b$'DE Nԓ0޽b߷$ !)?/,ֈ=Ht3???P5v yES>&[aDw#.⚋bv.s'=65O4qp-Fnl_ Os!GQ80ƵZ.QeBV'ĀII>Dk!%]O-9???wIi&s  "$Z%# E(T=r&JH.Uu4S3~U$,)92\84CrWӝZ<]gxK>^IyVO˞V?*߭칵Pん1aFűߎ0?60 ?k< V8OeGh_U*YvՐpF5iȶle>Eji,YN}!F^>D9g=xxI(깼J2EYM1 +~Wg'$X$u?*r]ήމ<A>_xoj!s!|;.i-}yW¨exgq|#i _YV_NN٩, sx%o4k_1‹./BĊ)~`"\CrG2"a-\4Z%.MdZƣ2FiZ+ȳ[="JFsAj%{2k?=[S> IDATDzQܪ erzvD_\h^BYmxŤZnЩ{w\2])[Z|;og?oo4bZ8ZYڅ$ 6i#BĐ]$S¶ Ox`9)UizQ\I_47w!$ q5aF~q^(@ '$p+Uqzm?BR$3tX9OJ.qEQ{%wqGarQqzo.ȝ?AX W2Y ie d X7,sGF|W<-ipqHCV\oJp_q}Y\\$e~S蔣 ? ZXFU,8(.gM.S?8ɴ\d޹_%fR'9eB1FH8V `FVd }&hY'`px#UȤM&tC!up2ŭH0t56ZY Qs[ ؏ MY*5W1k3h,dͨ,I*j )c$`X셈h E&# -a?LY}Gl޼+bƍW_}u=:/ib`FDQ(Sl|@3D ^hvt> ek7 !|9&-.~I fh9 tM-rxU`2qHh˽XFST0O]hD@0)⣚X[)@\KXDsNu{EK:VPf",dŗp oΔp qw+;!f#e kMLVm-ev6Y5vdfKDX̕Mi pK6|V , N0Z>I64N&3Yɭ0 Za{5Zm3%X,>{2BhK6 EKwSb\ jNx/ ͐nphmXMZ .yzg i,qV1t֖._ D/ R%o^|V؅aupGnT$M a<%ntDz8VZd K"I GH@8u,%apw;1X" 6!xGKSm2#DEԕ%j9$1ɋ$5*!͝1{ժh%'M]`X.QE>j'>G76{ N1*;2*γdi6:݊6R$fm eXÅ׹]x4Si/D %쐰ƎR?Jh$@hХO%iiamγ/D3L5ٸZ<cqT#Zh]h+O1Ndit"ߒJ=ymY|oo76y X N57T+fVkR'CO c)F] yOd|KR-ܲ0af(#$^2|`Dho=m{>32M٫%T>)ȘIߠv2ԵbxcHJƒV|OxvP]dllINI +YHuٹ>Oar .zdsI d9R4\ZlEDeV~[!*Wmq2d%FgZyщ#.˂ ֮ S=QQٜl{\%2zB^ToM( qTд6*:TrVϫUW}ͦ*O9Ǐ'6~N]~Z!JxKa*%*bݲ ׸a۹Yrx?NEʰ~jњΐ΋'c0[=≀3oeO:OXu >նzXe sQ~/d.ksT Vw?2^K(V5]aÆˬB|/+⿿s\RUp[]G"F jPn$Y1~X[-LahZ!5$š ڳM*`-$$)!Cp1C8.m+# ~Ԯ<+N޻f͚(~v눚"{ZFL5Gpʢ,65-V᚞'I*&F^'rW?/c;г(o=yp1Cxbo<Ͽ+VkM 莈HQr ZHb|/ckP4Z#5mmF]OvvIEmz_E[*zh]#;/q5u6o?#rkm<&i$0EG):=N*:4 m7 `>PNIQelBo+1P=F*g'U{]WZvfaI;_V*R[.{V˒ ͞51삵'ofXҎp#OzKMH n YOWf{ZU{|e?ҤW 0ݮ1d3VUL3ePrm-~CR[ KfD*'"П[彚\KR&-{t iYN8-ٲeƀg4!\w.j>b-&<awK;嶌n3"PinGM\{0#V(J4E tU;JG(4+rhO)b0v·m G4;ư4zSs!c'/F#"э't4W?z*i%qՇseЫW޲eK.25ӼʇF-_ӵ$|Qʤh?" m7HİIK4Z fyV_ FJ| ~4bIbv+NRVa[Yy>l[LyYQt7 .R*KPg?ihqajMkViG{KWŨz]7 %Exi*_d͸ix4%#(])WG¡Ûgokm1RW8v+H| x(N@b3 k2;d1Ẉ$w@7z_ x,K b.Uv) m^Ta]?eYsEUbG"aE.-jYE(FEN]_.} hFL"I|J| WlZyC-0Q5 <}CAی{ի|Ek׮hɅC [^!5ڕ~x?xESjfIG{[ @̒agNKF[#4 >yc}o;vEq54aoxc$'iTu}QcHՉr7R?a@[fzilu({jOlHW)wr_1Ve''cfAp5FALAtB_2tKUv Ѝ%dJ'B)߈ϯo/Z5iYBcȑ?B4|A?0@@W/LuqfڔJN;Ǐ=_yLuhE+Џ&М3.ըiVCӟ`p@@[@N«+U7kd ^ 롷Y TNk zd`4 3 4/:'gA2:kQ 0D #`#CeF~D'7<tAR7JJq@m@, Z90h @EfQ@ct8P @6m۶K/tnnn߾}˖-{}'6 zLP f?8(x fG=77wݻٲe֭[hHTY}UW]}գh<y䑗]v/s{֭k4$Ь~ӞQ, h]ǰM6?hO~~?s?ׄqC{˗/_?<裇vXQx'߿rʮ- >={,_|[ˋEQs1?ԧ>UшHtswh~/7nu %֭[}-q7~<k^ht!th|}{'>Q+$ @$p^u -qY}nׁ8C8O} ^-q!/3-z꣎:jnn@@Xb͚5GqDׁ?":x H H`V~ ǏM6]wuOySuh:mկ~E/z}ٵkׯo 'իJ7q4G?zs9>݄ݽ|OY-Ї^p ~o֮ rSN9@O5w='xbqq1 6ӧ1gzի?c=O_e)&w]tP'裏>+$ӟ^|#)~7xK'8:}Z {|x{{q}_j7 &|;˻%$:,6m::蠗Gy$}'8&,i> va}_y9>݄ݽlٲOY9>#xl٬4yfپ}#ݜvi[n '^2t3qLY7yictv͛?gE@P :@@4 @@4 @@4 @@4 @@4 @@\x?lO}S暰|ʕ]G ?ÇvAT__|_٢(qvYvG?&,3KoC= [ouÆ ]G`׾'\w]X٢m۶]zsss[lٻO<ѮrAs1MsEhժUM`44|(?sa IDATmf߁?x--ru5vFQ!w0M͞@-..}sss{޽{uW;]@40k4+ꪫz4#<.kF#hnY==yOUW]u92g'o'O׾hHntN/xxI'(>bD2 *#C@*?x~qիW./i2 @?pҬ~[޲swlݺQL%y`"_cwWx[u@kl/yjffիlҨ yWs=lt<Ь.~v.sSк>0;`4.{FgK]=`mP#XTgY8$@@l>k ?Nm`ʘdz =xj:9@@7&tt^Cv3GM73hYޒn#-#yQb,6Lѳ _C4f|elޒtƇԃfgCe Mt_[gGRKBޒ|:FzfZ2:_2u6ZIwBEdzZsc ҟ 4 Ft -De=?Wy;N~k*xESu\-h^m -j9"+'1.=[GެwT7v=gvw3p,+#Tew4/ˣУ=-/XLʉvD hFhu[VA> qJ~/rʆgw_[ YDdK!j 2Na?6*=pyG(YFscN}.Wo20+[:ۣezr]"J$E_{W l nqCkө*P,/5Oz9 ˦f-vD3ќx;o>SqߨeE65ꢵ7lذqoذa۶m*- h[ns._IEQc;12fQEL-ؑFnSkfg7i&2yyi58 N=Խ{N>߿ӦM*@5R%Vƿ){RoMģG$7D,1Z3mgQx4 QmX/M8SiՌh}Q^g=#})vM7رcqqOV\@xԃӈm)IyejuQEi k&G̸䅗R06k RTZ~Ec7ƃgT; F5-Cm޼mo{ۦM6oCED@gzuϮ*6zT#_sD冀ىeHؼ1e PHRqhjFW0k`LYr Mm=C#C7vT'Ns"N/z$VuĩhP~XT[{xk|lًN[(Gwp=f?t=txݒŒI;6BFT-[zF#l/ DG@$գǙ@%|y2^v5`NVt=T-&ps$UcdtI}ߊJh`1f=j6.vXƮµxvj򹰔U$G41V+H }A@Ck9Pĝ/ "5/16g$U'b%I8Ǭ ACGj="R+f2ԛ/G;fѱapxt6TD26~wɂ@m/Rug*Sї?.ѸHHH}JJڎ{GkA+&=-Jέ¾ @5A)nZk T@/+h4*??]E,0???Bk#r}46'&')1 #R 4R^ C-1LєGѾ#eB&%IN,&^}GO-`b0!vx N0+s ]!ˎPH3bhmdϊC:u+Ҩ>gfiHg?"4~,/I9L_jNJ#'#!S;?,g$h戣K,Û ߈v+jM^&Zw` 4gyw>5 oǣcNYlϨ0ԕ9D Zdp;ZڐL‘&H`uO%MIi-ԧԖY ZhzV@GoEnoqj)p-x-:V2$?I2m:1в#ᦴMN2ّ< oiСՆ(ĺcT0qibobyzE e('QX+rGQaJĻaӄ-2|Dku ʸo3nϪ^z蛀#FR}:jv6dGpD8gsAC9#퐌PE <0;E&kM0ZqxDHL]y,Z REXR+ { O}jvµ]}GdܔQ^f(cOud/f<bq= HqClvi!K6ZLTog^,O[DZen,9ѢY&yE2Щ؜F>h.tU"ۭkKnk/;&-gsRϸ%*hC:7h1Kf'fע5!?r琋])^@,n]]#BC|cHVZjln$C$)wM[쐪՘faL )ZБXJ=?)H-|t;͎;-ȨeѬҁ^yT9폺vp{y2{~g>s饗~+_y^v~#V郀 F^/zT}g]~/MRuZ: ?j}![*=_;bG i̋y+Qa'W GS2h6̨k;+xb6Asm[x<;x`<z*εm;ZW%b1ËGu2Ege& I&%}b'z7',(Be#ފ&[G0\İh=auhkd`(Tu͈gVj'9x~^tE]vٗ׾*}x:eҸjHhh稄Ң2H)y `˯gё|vuA.h] Zƪa? _ĝ=;솤}4bxCy@Il裏w}_o+QwF(=&/!]~}4e[Jth~~(L$~) p_<^~,66!R/^ -h #/ 0bihy$ [gDhNer=A2)c,55!d;,!4] ʘStBkL15Cg_R`NaӐ$!a.rWF˴|wJ='[vI z21Ic$W\硊xkGKFhv+$yy[]^U8S;M6EqDTy Dad1Ta?YĊy2W0\3i-q]S,UQWԣHtj*6ְ@Z!Fv1Bk;HwG|fR3nͶEO 1T^ˎn֕'u3Πs;V8wH&>@;)->RU%="I /A7{D(O=;Vɭ?Rب1 ?xlXPd2&R`u!"?-K =rKِ-&Qr[E$$0,?I`hYƭh5+Ojm<=h@ Cu}tyF&hei`Y=Vێ?ֈig$ߔ]>*c7MgqF#W8϶/^; ezX eFya$?o|N^ |//fȭoL؉5i4C/vAfd%';דC0;~UfU5j6 K@/,ci(qށ.!0:mRShYNS q&+mKV,T195]e<fp2hߵms!Z]V$5 IDATgI:ǭHnALM1ݿ8$tmWܾ;4  E3۪Szl^Rp2ncOi5[n6*Z_bX-k46=.đ˧nZz\D-DS,?@8@=hsAtpMf& h>>+N "4V  $iM!=ҧ은7DN>pSu;*3Ҋ*S0kL-a\l;O/*8B}?} h9!v%\*!M2ܛcQ~bq^A^][h1R1cGtٴdT. S؞~Ú*2\L d.fڊKSbY^ ph1!Jl&ץZǯdرmgrû~ڥU:4;F[d?0p2lh^ LϴS Ej8VڛZW^MbE4~aO!ש&JjN۪2yDKd څT0j`Ħ%S}9uw;1h׆8Dxng!ꈦ/F#,h╌Fo՛Ir-~h@O[cxˮUJÅ'Ţ~EFÓ#uFŌthBN$CFQ'g̈o-j"u7u\047[ @oڍWDλ*zn[HZ@@ wyGue]я~e/{G?h4~ՕV@,+OzMZb 5!c&Ȉj/fTg0v$DZ h&K~O5n9`3 W^#KuI+V^ܭ2$U oA@?[{3D@s4aa +t1da͘~wut=ciZ-5Z<..,1kXF 1 ;[{TDnjQŞ#v0t;BV Il!iQWHIOٛKs=uHC@پ};/|ႀC9!Fnc<% mNQѓt2iXExdd띨s2fӚشntDtdVT1nl h̯vNƆ5?{vyEzҦ`(hoyÆ 7n\~ m_"c}3޳=TZ`p2;OYNJA˼Ocrl8Ebhm4;2z]# O[,x@OkVymx {ZYm[SbE_偸:MM-pꩧݻwy6mV@,MU~y0~ wV!58k NCi ^~oDt"Ǭ],QXxyOf5yOk)S{xVo`(,0VIy¨+*yS޹qN),j%7LZb1#D'l2@GNʋvЪ}2)&8CNٕt4 w1j"ͦ=0 eah3Lrj&2,TsORlsA&dԦD$ũU4;լT0QScۘNUT̍*DǡBb]{FNd>-Ҋ;0/11*rQA[ص`ŠvIK#Z ZĻbg1~-Zzhߞ2v Fl 2+L2ۈ3v5#Â} c֐7hnmxef_"a>*\*RD/&89v>\ FL hi5Yk?.t=W8fGmc"#T#Úr<ם%3%oW^lOGΕǦ݄NfɛyR>xOuﵧrמR~zy7~p;]׽Ʌ]x]b}G\H0fat- (fFk ̃q:<杪]LJV=omnmmJkB+B Mu=)*Uj6يToKESIumGp4dt1YXXg{Gf~1Y~qAEG HlFޢvxfj1ɟ|!4pk0o)Q?~zQ&,x"L[%cuƤkIf[ԋ^!|T V}1uyw];^v'ˋGR kYr',^Bag$>cW"J ) ay|ii!eu; lnS=T F+zy]oX 6_ Kse*EHcxC5Dv-C d;J]1;O!DrE놷I'TŶmxC&&wb'tҤŏR Î(N6k_ڛn;n oxCtI<vzgmŤUR94j{gsSBϨ}v"qEJ=jSKW|&O5i[qr, !qZ~ %*.Ww=oݣ쪪|UUI TB$4M+<" (DizEQy6?nPЭ-" $bMh~J &H( qͪ9{gd9{5\gS'nٲ3q[B~]˲e˖ o6%H\$Iv;/l_nEW{J$;1k1iZR35/_} RgE{RrXreIާBb(;, PkZeGBRwO;SA^Xv%~@ӿ>@|g7}(YZ[<X,,1.>_sN7=qC)o"0o]=q$k 忮*ƹ}XL۹@g+_|+bǎj,>LCbwa)bBD-Q, LFSNoZ6ຘE`жJ bpm+F2 yurR^^uNjWܲCoqI-DǪ#Uqx ޘD9Ŏ @%Э0uk3gΜSN9L]`u} Jsj=Pz<qifduPnzvn~Z >_BK;K\\;W@JтrjMYj\n#68C5nf'S4?vuħGjoXZW>yUV'uIHTF>1m@E-W[mWۊYTd%!#kKSTIJH;!x\MMW ĿTBL7wIi"-ݫ Vl(* q *%΋ [-# }cCCC ,RGsrn385Y7٨e%SwOL&q5rԡ2?{TdW.Vb/˯Dʥ4A\W^7O xun\}vUD.:_us٥ (q]䅺 =_6nܸrOӡYr8v!fm'FFP2IRQmfC%^a_tZ;;xq):x_{ݚ S~rj{[ 0`] qds•vXW-2mOC[^OV)\5{ /o=eUZ`֭\s.Xkٺukh<2]WĻCzfmZeWQ>>(LPE-]iqvFR܂R&RkW.r4˾8qEg(K~W\?W\qgZ\TBoHy!GMZhh./=Fƕ/*y:, Nl4}P&^wq\?CO;1r5 !aU[B񛂊YM}*Vܦ%):`\vxT\%VN`!ym'%E_ r EO\e,6T*nVyl%B~'(ȄY7jQH+ؐ RT鎁+A1udTcuWzX{Sn$ -q*DiuuRq!ņi\Ebsar-z+:)j:)e郵4"ȠzMS`q+^F<6E3u$ BIf\eyn2:٩{$PD2z'ɢ֋r@?\'9r] '1yW,+Fyq0~[22ARRDL7_,]lMx-Rλɫλ&Iq/'+iyt_]DMqVgI3qֈm!Ps̵k3>&6FJR IDAT&piW EN|v.&:5wɳ^Y")^4y3MqLt^@*M-V[V-HC M==M%*tZ#'{& 갘r$VWJ}KY̺zٌHh<]"-kgo|')I..I&nsg!e*i#*y̋[uض7WT|o*zvUXq%gtt5;7J_ "z#t%,|L$ORfFv{O1}Xt"M,p !ѫ}QMD[WȋPS\sp-W%}^4w^/b,"bCs$^Enͳ\1*k7W(u'סCS'NH,jr F+.# ES[-l$;m]i\ \\4KzC1;)7hg5%yѢ?Y@h UMq˼ ;JO츌}UP++m)[YN elRf>b<%_ }IbZUM'ԇ^%~Vh<.2 BNW)qw'\c?$;a"zŗՌ;j:seK] ^wBB%Nq%ͥ4OyYzj>c%]CtՀbGTK+[j}~oߞ믿K/;v@T MSeYrؙF"%b'=$U^b㕒eOԌ)TfNuȼz{sI') ]ž]]'+< . [賘.i1WEZcˉF{UM~6#-t)dt囦(;zInnԫ5?ǝٴiӔ)Sn /P3 3g\fMf1.}VB M*.+Qi'2E<וK":&~ y@mv]vDck#{vdJkUEъ}n#D;"sk/<}EE *Zq[N:F:ɾFƽ8b7FFqɡ\ϼ%٩ ƢhLK{!eiD{<۷?>xm *6Q8!䵞DA7Hul7۸h՞m-x}"ƃ$0ҟu$ L؟re[Rg<dDIWTMeп=c8gI>%}$E}.բШw6K?iv> /3*% ߒ׺)~Q/Q)ut5O+5H<PZeeA/<)QhPXQkۦXД.6':0ȕ> e((3y)Q3|,^9g]hֹH8\+Z#>OP@BELhvBձse@n)j ^7ruC: DoEW~!E(Ŧ- WU3x3Fk+Nd(rCd/n$]fzGB QS?EԉZz9O ~ʖ)J eE:yk>yV| ؃rC^WІk"-ko 0glt\ӡ0IAIk,8aSܫ[bM6+AHP\1@7D3rيEp.Q { ^d/&[q` %{ }G#M*VnX2LT v( ؔ"ofIڿHy=Ѕ?QK%FsvBg"QZ $-6ތ#^)\bbݦlvW^-x\*ukUjHWH}ŖыTS4ضUw Pr ,d&F^+s󏂸/1F=7W䘮dpE#^bY]-52,  eV&7EZH<'~=h$^a?nMq8ą,q~C,D<*ZW-1)bcSbĂ8a  T>\]t\2Q;OZ)QOXLcBJr @$=:CPbl,OY\cE_/c>{s/x Z| LW[nuۛRO镑 ,M% P\+#`@qʘX94מDn&r$6 z!Fĩ@qlz;}Znk># !eR7=^>vuAH+]4;qsM%qTkʕV1HO3|e%\yϫtN)/v3ښXW.dFZĢd?D rod\˂qX:|".qWxBYH]|һ 1<:/RʊvfC@`g~Y$i/$O}?ǺߔmPI$FOJO/s8PGVb(Fx#aDZVÄgDxu5v3DѲ>GRvM{I)SCq>AdThyvSP೉#HT⁁T^IJrq W^}]y[t⪞^Lc'ijag'e=\MՑ.f _SžK!-O}$~Ceʕ7nܴiӃ>844iqIps+Yŏr|ʶ31; gG-Z!Xq#4(\=ǓcQ, ?=Ķ֢vk>[0gƊAS lA0؛R3#p$'=AL4Hz%edzE'I.>LNRpd:K£zڑkgxSPJ); ŋ?W]uշnȴ,H8 rOj˷g[[ݔ'z(^J.%}1IkNDG6I2}xި9Rے}FcTvMKHVaI3{ͯG\6H}cKW)HzH?l+'  [qk9ӌFqLf+<_y啱c>쳘㍍/R'x%jZkze\rIGG'Ӄ~o `7]]]+Voo|㍍ݭşY~}Zmmm*7-k֬ٱc1cE7do0͛zhտ/:(RLfyW_җ4jԨ?޼yvdoڵkg}69s-[fOSN9zӼXp͛k?olk?E@ ŊPp 4 D@@h" @ 4Uo(>oQo/@0a 'jL6hxGys\{{{@$vӟOI}SOnP@Ϝ9s͚5YX/cfaDbӦMSL.ԍg* 4O@ V;nwzg}/Țl~/RL2sH>V@oܸ{;v={vq4x;mmm`A}nH}{I'm۶ַs1- %G pEzl#'|'\{|&ӲP4>r]$ϓgM+f\hd  4C!@S0qt (J%u}0ng/vLOŲI*@@«~7Eg$k -zlWԫ] hhdH*\eab긺ND(:d5e}py<|E "ȬPu$qH N7`:=;  [6) )9NFNZ:2O"RyXhF-SґQNC<*u u 5MZJ4$a7K-H"]<`Z".`a N\ߟU)/6Dk,Zr|r)6p9 pBWMNvvņI& OOaC@uS~Ɔksx E`Ґ1lhnT[3MqDK -2*)Rt,W?I +˩12f)@w:$:Y޾}{ne .]şV{e_%NVF']O$o"rL5KVZ̚5kʕYƍ3w1KUDM)Z-P3ɦuUDzk7cnyC1cFfjK.9cor}o9 ^.]t-(ʵq6unI,{dZ׿g?u7xѢ;#O i$ZjIZb+#%f_)dibt[NsW_uU>rѨ= E+6BOL2ƐPIZ>Ƴ4)1"=f=f̘ꫯ (פB%U?UTj<$h{ܸ[ pX_eeA~!? GeCPvA*"@b = Eu S˾ !$Ou#Qmo4~<ί4;w~_ ?eM(@&抡C3\IEֻsCGM?zcsB=op}=y晫WȏhP>+QM).7KR:Nr#$ON(u[ca# >wdMҒ<HT.ڈ$_pkyyBu#1ktv ?M_~OO\o%G]\NF]i\M1 @{ osΩVʼy!#oTJQW|tvSx2Z!ÀCIFJtUM.bq Q{vFФ3gfL  H xj2"]y<1QrTb;җ.])ub HuxI&o'N$JaЄz,Uy8SVSbbپk$/DώxB*7~xZ5xԘ8)Nr-ێɣϮqwUL뮻_O@@eș}W>NˁP2X!~|OdԪHz" @D! M۔蕑 ƒDVOs'Ei!p)_)M@rĺ)ˋ~GDʾbH^ Fo)rȨqZjhI&M>ݾCeoߞ믿K/;vl4$&g- Ĩa]qM;I=jg!YQD]pH=+,&S&Ɉ\)3R^}]kt6m2emv%&a̙k֬Iݬ@Ϝ9d (qF46T.DkE f\>YHHR*20HB)[zq9\*<(Q`GpyYev$-Aicu$`Gyd~ʾz;OOx]Ŀ,OPQ ]oE-54.I!JXDU tW)E>9ȳ.ѣ\}.̫`XE핑H1kWF|Ds 4HHms\]]bG<5qPQj"CmrJGTvX9 4Kd' #ԾRơCg~V[q:/ HHuM+ 犔/d r38R-\嬮 Cb:xF7tJiF6aϫd1nwhh7J$q@(*l|7U Dh@r$H ut#)med(+̭EZ\⏤1ЖJt#Jp%L}*sֱ3jP#R2mp /}ן~g}͛17xcwwwGGGho}Μ9/>O;[n%yizƓ W(iaASc؞p$) =.#fd1+ -J?](qY\WT50sHvx]|7cE@<>/zk.^ _+V\R|͏<ȪUxEͱx뭷g|tC爊XH[Lfʨ((\TH+\Yj VBԊ{vq0nh7N!4P. 6始yp]4Y `|>4|x,RϾ0Hȥ"%wO򶾄~ۄI[hs YrEE.#bHjǡu=':sKNQMsAPSJzWs ?Z/l;1oSu(U/^zɒ%>]Ν;gΜ:u]lٲc9s^y=D Si*<7f"6Ǝ ǾET(Tz:l\(Qgđ;7B-I cԢHk|Gn(]tpiwۥ%N/k۶mGuԒ%K

a)m*R*k,ka,J &&c} f$X_IJЌ>ǒ/?^zٲe{1fʕ+3('iΦu/8YX@19[4sYڱdR(Ԉ&mr ,WI5#u3bFj@eٱsWKƉ17*+↋5g3dMmyiI'NƙQ9'&"o< *4 v`Ƶ+4+Oiz$l$gkS"dRF>B*qKs-.v!KZodޖo3{>>xq}<„ڿǏo]]Mnٹ~vů8]\Ûƚ$ٰbRmy/}'^ve֭{ꩧodV(8.O|Jژ ^\IWxѲ,(( 4%1u~ht1~RjvA$k٢0n]z{Ƙ3gwLjKuhjv݂SRk/viĠիWX1888k֬s9';Ə},,_^ziرiuȾNSU6SВ4v+I@46#&l"iHqIg$Zl*cjݕ+z29?#eqEo;SCm~ўzzzy晨d_zy?|˕+E7zzzHj Ö?})6m2emv9s5kR7ktn4nZC@k.I`ldy>Ҡ ľ1x¥nC(r]3RF+uS!Sϲ]1%xc^Wwx(ۻG~;HLigQI}/8((qmD<ْu,%zKwTWbE7vFbQFHݹb.+4^ W})h9hg7[~#U}:ؖ魉'nٲ%[5Oƫom6'O< %#@1Dum0njhVF|'m\ 'ٰs#S6Z \ѧ%'I:.M;OWf<6!m"p cƌHݡB >u@!zu#(B2\H@BKZ, : tƬKdOȣ!Ҭu2onk:44gO[%T\-Œ3Pυ"ư]* ^˃.y+Bvˁ^n*ʢ86FrLQʠJed4Kߧc- *#Z}M>.}kh1T+kk:>FNցlzRH҄< =˾zE?Om߾3lٲ'C84quwԞ=Cޱ㴨{qxPHa`O.#i<倿zV跒c ;N.,Fb%ǍhѢ];1ل>RBIw'$N y>Y\RMPB>fgj'L^iBxF =Y#Ja2O+,V$bO)TTA%vw5& u.ARAB3tP}}m֯_?yh;5QuL`b3#O,o:ZL.nSW~v+X‚q&nibP Q8.(=?QVh^blLT5ykGKV3RG,Rۛ">Uӂ螖 } Tj %o馅 cկ~ثl: {G|RъPr]np1P(r ZgQy=S>T{ \Y2e6JR:%-[vc&O|\2cꀭ*_v{]ѯՍHQB%k:zGigU. c_ˡBN r@6׈5Rj%v$zT!TGDE"źp'C"BoX]ۉclEz=ҔAS `ji ;XVO)RV)W{&{Mυ(.Vӌb {,Eޱ'xe]nݺzfOOOn冨Wƣyh-tm˖kեg-9l>TDɋ6l3,$RB]2Ҿ»RN빮v#(N}$Yڑk_RI99 * |um`5]"sKԫt ѾEf}AN]"EMU1Kz0[q,Ɗ<6Lʲ/tp+V5k9_@ZmiiO@?_و\*,6lڈإ+z7j.Rr=3*]2ls:~>uF\M+AoO]:xB+/w۸#QqyJǾKvc^+GN>r\Oۄcy3:Ĥ#'Y:iG;1vZul`͂}SWnog\[vZ61u$ }{L+;aXT Gr M\%h߿i9k֬YfE~s=ݷrQGu7c#;M!r6Ҿ.[,)=T\).TXGEf^>IS KpYƋ nn2l̐UaTBd}f`!*f˵YV֡Õ esWMܠ:CwՒus6&Ƙw>v޾{oq[O>'(?W}7ύ2nt \<1YTv5ׂ_Xda ޾YPEC^/wq?W^vŋ/ gZVT9I5 R-4cƽ1iČH"Wbs v$TNui .Ġ.6vSЕQQzSQ>R;qH5vXٌR%fH7jJZO3ŷ.kϻ H,N ;%/Q$}>T^l;yߍrXxnZ [5=Mq5\#)Wڊm/.o [XH|+K|H^BmgDx-xdpM=tbSCl%K,YO;wQm\tE]tQv!EO&LlV|NFH` FDE} ydX\ebRxĈD%;WmvcU.I9xv^I@X)_1uk3gΜ%KdZ\|T(Ys }eӉZe(X"O %1A9GȺ/KvFR/F>퍉WsEF\؍Z>v7)v|nۭii>We OFDbJnH/Nz ( {Wk#uvH^ociۈQ>Y\#7]BY |Mu[8Vio1ℸVrKǧjum2wnc̺uOn9fc̎v1k;ӧOrn]~ ڵk{{{kk֭[7xVw9#m^F'D[\@sSDb*]WybѲX)Ox^Ylt]PI#M* HrѵO#ZHW* nu_=+"'æ[ӧMSwe\1 nǭ?(Iq"0٪CcK`壃uTNI,8ۓ8ו/~Q U@b+)|*-Y>Ѥ:TCQwJ}JOqbش߆ZKxn -"EIF]*]o$ݳSc5~j0 ;{|91Ӟrb1 S͋/B@C({MCӤ4UՋKA(TmHNu)ShL^$ev՝4Ö2n+hH C$đ}3"I%gJԄ tnmm=\szԨy+500>曭A)Gr -V7Ha1|y fڜ!R$IAY>Mק$7ThۆKۉR *e'*F+Rz;W冿+iث o"QhŞY=6wIL M(Z_E;' פ1p-˙ {uuWАٶlVYlf/ Բ ׽/f۶ڭ]w;\CC\jelV/VrDʵV?txmnZI㏧yѤZU"XP26ZOrSF|X&Uy䨐GK7YBLe>ZPwrྷR,UP>T }<ʏ4mپehPHLDs s㊰객LK$\lذ76 ֭o˯[_nm-iZq[W[ZS+AKkOgD0,gwf|~Z<&T*y״= $4wV6\*}fŴc>e[ ^dWUŊJ=ڋ'_Bm+TbGi ^]AsKa("*+e-k%}cTF οCw|vulm?{b1ƘGn?yKԒ:u[kCq*p1f艉ϞXkۄnCOL{o{y1lV3c[;¾:i7~5]ص.j.r>{Oc9vk'O}:EۻvZ\wt)Y1|–$~i|u{ֿƜ5x[2Ɯn3RF(AhW.O$ %W.1*#ęPE0Iu6Fn}.J^W]핖0iH]~I,1x4czUe}=m˗x!bʾsquUD,J)zJ$%ǃДu۷Hp֨ ޽f̘6㍷Dŧܢ[I#(pڲj1cNg ڣj {Vcejnn 58m1ƘvU;j--z^ n !7V뮃1 e]Vvq(5]{ (bKh.IЋV` #N&U Q9`>ӖЫ(14x #%G?<v˳çܼ?{3X ~ɭ}4G=C.HR(y BDmRYy 11yjCQm)=IJx+7}H]tuJv)NS$YCn4c:SY,^z4l*Fz֋fnThZV*W1oK\F*]X/QfL#BI#M3vFD祝vo|׬1sf*juNj.~~kK⼿euw|0}PNrR/gm<)it]VI)H%03@4ɥp;w޽{޼yw.Xlj&N "j^=]gf|$7Oʨ}S:r5{W4̟?{Iaߚ?+:ƽ--oAm:5Ƭ]6Sc̺uȭ?uVeӟxI\w^}Q Uo2бY]#QƇN<?m^_0a9gZZzzzycLO_{?  Gr믿.j0L0ᕡ#8fMe n)[5'78?}݇vuxc&<7 #S}#['툛~~#uc?o uu*Ԣ~}Lh ȎÍw /W律2jѡťn/iƏ%&iS#|d/|GW8 Uhn+yD  _Rdh-\? z?{#z;Xo[e= v-G[VcUWU2Czh ‹nv2]]vDd OTo'=:s䑦#S I.#t$}}} ^WH`Ke'5K1+J;誫Dq5R`w$jC`")76w!g8Ƨ2V]>DrA]lOֳG#k7ݪf Ю8\58BĊ*v|"vOGD)B/ez\j.{JM9<я iU@〜)]@Ka\Z_r=R\ZAI +b>t;YĖZ2چ(/tMsaR)Cϋ\w'=Tx_xټ hp-u !%.ť;+۬&/%]=] X1SSa5u՛}ER$Rϭqo]*e:Q{_tP"~)S":Vvt=K$YPі'>i7bx OcK$uз}Zkx ?cC³3 : %€,TKiMFqܴ9a\VOOX]R_+]<- %:&특F-7<)+x>-SOrɟ>n*Ee J*I؁&b[Ȃ^}MF OF1隴OYRI$(@@d j@j%xZu?W:O.픑K # tyuփu*IdWX]CWO;v A GQv̚e6nL]>,Z/nݎsY*֮][FY3&Bs|д(_~lؐՌsA4s_lATU=cf6Vۉso7c  Em|Nj\qE g^ F3~|d1ge4>g2_C=@1iF}!#BsmA{#KuΔ eYDa s|6%Ќ:&vm@&D34(HxDP@Q@fD«D68M_"\|wݖ}~+_;wn%8M?ʕ+ڌ1j .۴iSv߾}@---+W6mZKK뇆xM6=c CqV@/^xɒ%JZp <ٳg[zrL] ?`y_ D G8bof1W^ye{{{Ax7;::kva {ꪷ# '0;vc'|28<<~)$4o&p/߾}{;:7hii>(O> &O\oG@NT*:ގ<شiӷv  Dtkk+~n*Z[[[[hz&Thco1nܸz{rb׮]cƌ7NLbpppppO6Fwwwp\/" @ 4hC ,;!oΝ| L>;ϞƍC7*Ac76l8*ʖ-[wc76vw5Y~k>}?:kժUvdҥKnj3|~oh^~.hpppʕvGϞ=ސ=i \ygy3z{{Ν{c70vw_|3<3mڴ.7HΆ n3 1), verbose=FALSE) } \arguments{ \item{x}{A result object returned by \code{\link{segmentByPairedPSCBS}}().} \item{tracks}{A \code{\link[base]{character}} \code{\link[base]{vector}} specifying what types of tracks to plot.} \item{scatter}{A \code{\link[base]{character}} \code{\link[base]{vector}} specifying which of the tracks should have scatter plot.} \item{calls}{A \code{\link[base]{character}} \code{\link[base]{vector}} of regular expression identifying call labels to be highlighted in the panels.} \item{pch}{The type of the scatter points, if any.} \item{col}{The color of the scatter points, if any.} \item{cex}{The size of the scatter points, if any.} \item{changepoints}{If \code{\link[base:logical]{TRUE}}, changepoints are drawn as vertical lines.} \item{grid}{If \code{\link[base:logical]{TRUE}}, horizontal lines are displayed.} \item{quantiles}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} in [0,1] specifying the quantiles of the confidence bands to be drawn, if any.} \item{xlim}{(Optional) The genomic range to plot.} \item{Clim}{The range of copy numbers.} \item{Blim}{The range of allele B fractions (BAFs) and decrease of heterozygosity (DHs).} \item{xScale}{The scale factor used for genomic positions.} \item{...}{Not used.} \item{add}{If \code{\link[base:logical]{TRUE}}, the panels plotted are added to the existing plot, otherwise a new plot is created.} \item{subplots}{If \code{\link[base:logical]{TRUE}}, then subplots are automatically setup.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns nothing. } \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} \keyword{IO} PSCBS/man/callAmplifications.CBS.Rd0000644000176200001440000000360214564060313016375 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.CALL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callAmplifications.CBS} \alias{callAmplifications.CBS} \alias{CBS.callAmplifications} \alias{callAmplifications,CBS-method} \title{Calls (focal) amplifications} \description{ Calls (focal) amplifications. } \usage{ \method{callAmplifications}{CBS}(fit, adjust=1, maxLength=2e+07, method=c("ucsf-exp"), ..., verbose=FALSE) } \arguments{ \item{adjust}{A positive scale factor adjusting the sensitivity of the caller, where a value less (greater) than 1.0 makes the caller less (more) sensitive.} \item{maxLength}{A \code{\link[base]{double}} scalar specifying the maximum length of a segment in order for it to be considered a focal amplification.} \item{method}{A \code{\link[base]{character}} string specifying the calling algorithm to use.} \item{...}{Additional/optional arguments used to override the default parameters used by the caller.} \item{verbose}{\code{\link[R.utils]{Verbose}}.} } \value{ Returns a \code{\link[PSCBS]{CBS}} object where \code{\link[base]{logical}} column 'amplificationCall' has been appended to the segmentation table. } \section{The UCSF caller}{ If \code{method == "ucsf-exp"}, then segments are called using [1], i.e. a segment is called an amplification if ... } \author{Henrik Bengtsson} \references{ [1] Fridlyand et al. \emph{Breast tumor copy number aberration phenotypes and genomic instability}, BMC Cancer, 2006. \cr } \seealso{ \code{\link[PSCBS:callGainsAndLosses.CBS]{*callGainsAndLosses}()}. \code{\link[PSCBS:callOutliers.CBS]{*callOutliers}()}. For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/as.CBS.DNAcopy.Rd0000644000176200001440000000174014564060313014477 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{as.CBS.DNAcopy} \alias{as.CBS.DNAcopy} \alias{DNAcopy.as.CBS} \alias{as.CBS,DNAcopy-method} \title{Coerces a DNAcopy object to a CBS object} \description{ Coerces a DNAcopy object to a CBS object. } \usage{ \method{as.CBS}{DNAcopy}(fit, sample=1L, ...) } \arguments{ \item{fit}{A \code{\link{DNAcopy}} object (of the \pkg{DNAcopy} package.)} \item{sample}{An index specifying which sample to extract, if more than one exists.} \item{...}{Not used.} } \value{ Returns a \code{\link{CBS}} object. } \author{Henrik Bengtsson} \seealso{ \code{\link[PSCBS:as.DNAcopy.CBS]{as.DNAcopy()}}. For more information see \code{\link{DNAcopy}}. } \keyword{internal} \keyword{methods} PSCBS/man/estimateDeltaAB.PairedPSCBS.Rd0000644000176200001440000000344614564060314017166 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateDeltaAB.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateDeltaAB.PairedPSCBS} \alias{estimateDeltaAB.PairedPSCBS} \alias{PairedPSCBS.estimateDeltaAB} \alias{estimateDeltaAB,PairedPSCBS-method} \title{Estimate a threshold for calling allelic balance from DH} \description{ Estimate a threshold for calling allelic balance from DH to be used by the \code{\link[PSCBS:callAB.PairedPSCBS]{*callAB}()} method. } \usage{ \method{estimateDeltaAB}{PairedPSCBS}(this, scale=NULL, flavor=c("qq(DH)", "q(DH)", "mad(hBAF)", "median(DH)"), ..., max=Inf, verbose=FALSE) } \arguments{ \item{scale}{An optional \code{\link[base]{numeric}} scale factor.} \item{flavor}{A \code{\link[base]{character}} string specifying which type of estimator to use.} \item{...}{Additional arguments passed to the estimator.} \item{max}{(Optional) The maximum estimate allowed. If greater than this value, the estimate will be truncated.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the threshold estimate as a \code{\link[base]{numeric}} scalar. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:estimateDeltaABBySmallDH.PairedPSCBS]{*estimateDeltaABBySmallDH}()}, \code{\link[PSCBS:estimateStdDevForHeterozygousBAF.PairedPSCBS]{*estimateStdDevForHeterozygousBAF}()}, \code{\link[PSCBS:estimateMeanForDH.PairedPSCBS]{*estimateMeanForDH}()}, and \code{\link[PSCBS:estimateHighDHQuantileAtAB.PairedPSCBS]{*estimateHighDHQuantileAtAB}()}. } \keyword{internal} \keyword{methods} PSCBS/man/callGNL.PairedPSCBS.Rd0000644000176200001440000000362614564060314015452 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callGNL.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{callGNL.PairedPSCBS} \alias{callGNL.PairedPSCBS} \alias{PairedPSCBS.callGNL} \alias{callGNL,PairedPSCBS-method} \alias{PairedPSCBS.callGainNeutralLoss} \alias{callGainNeutralLoss.PairedPSCBS} \alias{callGainNeutralLoss,PairedPSCBS-method} \alias{callGNLByTCNofAB} \alias{PairedPSCBS.callGNLByTCNofAB} \alias{callGNLByTCNofAB.PairedPSCBS} \alias{callGNLByTCNofAB,PairedPSCBS-method} \alias{callGNLByTCNofABv1} \alias{PairedPSCBS.callGNLByTCNofABv1} \alias{callGNLByTCNofABv1.PairedPSCBS} \alias{callGNLByTCNofABv1,PairedPSCBS-method} \title{Calls segments that are gained, copy neutral, or lost} \description{ Calls segments that are gained, copy neutral, or lost, where copy neutral means having a total copy number that corresponds to the ploidy of the genome. } \usage{ \method{callGNL}{PairedPSCBS}(fit, flavor=c("TCN|AB"), ..., minSize=1, force=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of call to use.} \item{...}{Additional arguments passed to the caller.} \item{minSize}{An optional \code{\link[base]{integer}} specifying the minimum number of data points in order to call a segments. If fewer data points, then the call is set to \code{\link[base]{NA}} regardless.} \item{force}{If \code{\link[base:logical]{FALSE}}, and copy-neutral calls already exits, then nothing is done, otherwise the calls are done.} } \value{ Returns a \code{\link{PairedPSCBS}} object with added calls. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{callGNLByTCNofAB()}. } \keyword{internal} \keyword{methods} PSCBS/man/joinSegments.CBS.Rd0000644000176200001440000000234114564060313015243 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.joinSegments.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{joinSegments.CBS} \alias{joinSegments.CBS} \alias{CBS.joinSegments} \alias{joinSegments,CBS-method} \title{Joins neighboring segments such that there is no gap in between them} \description{ Joins neighboring segments such that there is no gap in between them. For instance, consider two neighboring segments [x1,x2] and [x3,x4] with x1 < x2 < x3 < x4. After join the segments, they are [x1,x23] and [x23,x4] where x23 = (x2 + x3)/2. } \usage{ \method{joinSegments}{CBS}(fit, range=NULL, verbose=FALSE, ...) } \arguments{ \item{range}{(optional) A \code{\link[base]{numeric}} \code{\link[base]{vector}} of length two.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} \item{...}{Not used.} } \value{ Returns an updated \code{\link{CBS}} object. } \details{ This function assumes only chromosome exists. If more, an error will be thrown. } \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} \keyword{IO} PSCBS/man/getSegments.AbstractCBS.Rd0000644000176200001440000000173614564060313016556 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{getSegments.AbstractCBS} \alias{getSegments.AbstractCBS} \alias{AbstractCBS.getSegments} \alias{getSegments,AbstractCBS-method} \alias{AbstractCBS.setSegments} \alias{setSegments.AbstractCBS} \alias{setSegments,AbstractCBS-method} \alias{setSegments.AbstractCBS} \title{Gets the segments} \description{ Gets the segments. } \usage{ \method{getSegments}{AbstractCBS}(...) } \arguments{ \item{...}{Not used.} } \value{ Returns a SxK \code{\link[base]{data.frame}}, where S in the number of segments, and K is the number of segment-specific fields. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/estimateDeltaLOH.PairedPSCBS.Rd0000644000176200001440000000306514564060314017323 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.estimateDeltaLOH.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateDeltaLOH.PairedPSCBS} \alias{estimateDeltaLOH.PairedPSCBS} \alias{PairedPSCBS.estimateDeltaLOH} \alias{estimateDeltaLOH,PairedPSCBS-method} \title{Estimate a threshold for calling LOH from DH} \description{ Estimate a threshold for calling LOH from DH to be used by the \code{\link[PSCBS:callLOH.PairedPSCBS]{*callLOH}()} method. } \usage{ \method{estimateDeltaLOH}{PairedPSCBS}(this, flavor=c("minC1|nonAB"), ..., max=Inf, verbose=FALSE) } \arguments{ \item{flavor}{A \code{\link[base]{character}} string specifying which type of estimator to use.} \item{...}{Additional arguments passed to the estimator.} \item{max}{(Optional) The maximum estimate allowed. If greater than this value, the estimate will be truncated.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} } \value{ Returns the threshold estimate as a \code{\link[base]{numeric}} scalar or -\code{\link[base:is.finite]{Inf}}. In case it is not possible to estimate the LOH threshold, then -\code{\link[base:is.finite]{Inf}} is returned. } \author{Henrik Bengtsson} \seealso{ Internally, one of the following methods are used: \code{\link[PSCBS:estimateDeltaLOHByMinC1ForNonAB.PairedPSCBS]{*estimateDeltaLOHByMinC1ForNonAB}()}. } \keyword{internal} \keyword{methods} PSCBS/man/mergeTwoSegments.AbstractCBS.Rd0000644000176200001440000000247214564060313017566 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{mergeTwoSegments.AbstractCBS} \alias{mergeTwoSegments.AbstractCBS} \alias{AbstractCBS.mergeTwoSegments} \alias{mergeTwoSegments,AbstractCBS-method} \alias{AbstractCBS.dropChangePoint} \alias{dropChangePoint.AbstractCBS} \alias{dropChangePoint,AbstractCBS-method} \title{Merge two neighboring segments} \description{ Merge two neighboring segments into one segment, which is done by dropping their common change point and recalculating the segment statistics. } \usage{ \method{mergeTwoSegments}{AbstractCBS}(...) } \arguments{ \item{...}{Not used.} } \value{ Returns an \code{\link{AbstractCBS}} of the same class with one less segment. } \author{Henrik Bengtsson} \seealso{ To merge a segment and its two flanking segments, see \code{\link[PSCBS:mergeThreeSegments.AbstractCBS]{*mergeThreeSegments}()}. To drop regions (a connected set of segments) see \code{\link[PSCBS:dropRegions.AbstractCBS]{*dropRegions}()}. For more information see \code{\link{AbstractCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/Restructuring_AbstractCBS_objects.Rd0000644000176200001440000000530514564060313020737 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.RESTRUCT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{Restructuring AbstractCBS objects} \alias{Restructuring AbstractCBS objects} \title{Restructuring AbstractCBS objects} \alias{RestructPSCBS} \description{ This page describes available methods for restructuring an \code{\link{AbstractCBS}} object. \itemize{ \item \code{\link[PSCBS:extractChromosomes.AbstractCBS]{*extractChromosomes}()} / \code{\link[PSCBS:extractChromosome.AbstractCBS]{*extractChromosome}()} - Extracts an \code{\link{AbstractCBS}} with the specified chromosomes. \item \code{\link[PSCBS:extractSegments.AbstractCBS]{*extractSegments}()} / \code{\link[PSCBS:extractSegment.AbstractCBS]{*extractSegment}()} - Extracts an \code{\link{AbstractCBS}} with the specified segments. \item \code{\link[PSCBS:extractRegions.AbstractCBS]{*extractRegions}()} / \code{\link[PSCBS:extractRegion.AbstractCBS]{*extractRegion}()} - Extracts an \code{\link{AbstractCBS}} with the specified regions each of a certain size, where a region is defined as a connected set of segments. \item \code{\link[PSCBS:dropRegions.AbstractCBS]{*dropRegions}()} / \code{\link[PSCBS:dropRegion.AbstractCBS]{*dropRegion}()} - Drops specified regions and returns an \code{\link{AbstractCBS}} without them. \item \code{\link[PSCBS:dropChangePoint.AbstractCBS]{*dropChangePoint}()} / \code{\link[PSCBS:mergeTwoSegments.AbstractCBS]{*mergeTwoSegments}()} - Drops a change point by merging two neighboring segments and recalculates the statistics for the merged segment before returning an \code{\link{AbstractCBS}}. \item \code{\link[PSCBS:dropChangePoints.AbstractCBS]{*dropChangePoints}()} - Drops zero or more change points and recalculates the segment statistics before returning an \code{\link{AbstractCBS}}. \item \code{\link[PSCBS:mergeThreeSegments.AbstractCBS]{*mergeThreeSegments}()} - Merges a segment with its two flanking segments and recalculates the statistics for the merged segment before returning an \code{\link{AbstractCBS}}. } All of the above methods are implemented for \code{\link{CBS}} and \code{\link{PairedPSCBS}} objects. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{AbstractCBS}}. } \keyword{documentation} \keyword{internal} PSCBS/man/bootstrapTCNandDHByRegion.PairedPSCBS.Rd0000644000176200001440000000377314564060314021121 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.BOOT.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{bootstrapTCNandDHByRegion.PairedPSCBS} \alias{bootstrapTCNandDHByRegion.PairedPSCBS} \alias{PairedPSCBS.bootstrapTCNandDHByRegion} \alias{bootstrapTCNandDHByRegion,PairedPSCBS-method} \title{Estimate confidence intervals of TCN and DH segment levels} \description{ Estimate confidence intervals of TCN and DH segment levels using bootstrap. } \usage{ \method{bootstrapTCNandDHByRegion}{PairedPSCBS}(fit, B=1000L, boot=NULL, ..., probs=c(0.025, 0.05, 0.95, 0.975), statsFcn=NULL, what=c("segment", "changepoint"), force=FALSE, verbose=FALSE, .debug=FALSE) } \arguments{ \item{B}{A positive \code{\link[base]{integer}} specifying the number of bootstrap samples.} \item{boot}{Alternatively, to generating \code{B} bootstrap samples, this specifies a pre-generated set of bootstrap samples as returned by \code{bootstrapSegmentsAndChangepoints()}.} \item{...}{Additional arguments passed to \code{bootstrapSegmentsAndChangepoints()}.} \item{probs}{The default quantiles to be estimated.} \item{statsFcn}{A (optional) \code{\link[base]{function}} that estimates confidence intervals given locus-level data. If \code{\link[base]{NULL}}, the \code{\link[stats]{quantile}} function is used.} \item{what}{A \code{\link[base]{character}} \code{\link[base]{vector}} specifying what to bootstrap.} \item{force}{If \code{\link[base:logical]{TRUE}}, already existing estimates are ignored, otherwise not.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} \item{.debug}{(internal) If \code{\link[base:logical]{TRUE}}, additional sanity checks are performed internally.} } \value{ Returns a \code{\link{PairedPSCBS}} object. } \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} PSCBS/man/segmentByPairedPSCBS.Rd0000644000176200001440000002607714564060314016062 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % segmentByPairedPSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{segmentByPairedPSCBS} \alias{segmentByPairedPSCBS.default} \alias{segmentByPairedPSCBS} \alias{segmentByPairedPSCBS.data.frame} \alias{segmentByPairedPSCBS.PairedPSCBS} \alias{segmentByPairedPSCBS} \title{Segment total copy numbers and allele B fractions using the Paired PSCBS method} \description{ Segment total copy numbers and allele B fractions using the Paired PSCBS method [1]. This method requires matched normals. This is a low-level segmentation method. It is intended to be applied to one tumor-normal sample at the time. } \usage{ \method{segmentByPairedPSCBS}{default}(CT, thetaT=NULL, thetaN=NULL, betaT=NULL, betaN=NULL, muN=NULL, rho=NULL, chromosome=0, x=NULL, alphaTCN=0.009, alphaDH=0.001, undoTCN=0, undoDH=0, ..., avgTCN=c("mean", "median"), avgDH=c("mean", "median"), flavor=c("tcn&dh", "tcn,dh", "sqrt(tcn),dh", "sqrt(tcn)&dh", "tcn"), tbn=is.null(rho), joinSegments=TRUE, knownSegments=NULL, dropMissingCT=TRUE, seed=NULL, verbose=FALSE, preserveScale=FALSE) } \arguments{ \item{CT}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J tumor total copy number (TCN) ratios in [0,+\code{\link[base:is.finite]{Inf}}) (due to noise, small negative values are also allowed). The TCN ratios are typically scaled such that copy-neutral diploid loci have a mean of two.} \item{thetaT, thetaN}{(alternative) As an alternative to specifying tumor TCN \emph{ratios} relative to the match normal by argument \code{CT}, on may specify total tumor and normal signals seperately, in which case the TCN ratios \code{CT} are calculated as \eqn{CT = 2*thetaT/thetaN}.} \item{betaT}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J tumor allele B fractions (BAFs) in [0,1] (due to noise, values may be slightly outside as well) or \code{\link[base]{NA}} for non-polymorphic loci.} \item{betaN}{A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J matched normal BAFs in [0,1] (due to noise, values may be slightly outside as well) or \code{\link[base]{NA}} for non-polymorphic loci.} \item{muN}{An optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genotype calls in \{0,1/2,1\} for AA, AB, and BB, respectively, and \code{\link[base]{NA}} for non-polymorphic loci. If not given, they are estimated from the normal BAFs using \code{\link[aroma.light]{callNaiveGenotypes}} as described in [2].} \item{rho}{(alternative to \code{betaT} and \code{betaN}/\code{muN}) A \code{\link[base]{numeric}} \code{\link[base]{vector}} of J decrease-of-heterozygosity signals (DHs) in [0,1] (due to noise, values may be slightly larger than one as well). By definition, DH should be \code{\link[base]{NA}} for homozygous loci and for non-polymorphic loci.} \item{chromosome}{(Optional) An \code{\link[base]{integer}} scalar (or a \code{\link[base]{vector}} of length J), which can be used to specify which chromosome each locus belongs to in case multiple chromosomes are segments. This argument is also used for annotation purposes.} \item{x}{Optional \code{\link[base]{numeric}} \code{\link[base]{vector}} of J genomic locations. If \code{\link[base]{NULL}}, index locations \code{1:J} are used.} \item{alphaTCN, alphaDH}{The significance levels for segmenting total copy numbers (TCNs) and decrease-in-heterozygosity signals (DHs), respectively.} \item{undoTCN, undoDH}{Non-negative \code{\link[base]{numeric}}s. If greater than 0, then a cleanup of segmentions post segmentation is done. See argument \code{undo} of \code{\link{segmentByCBS}}() for more details.} \item{avgTCN, avgDH}{A \code{\link[base]{character}} string specifying how to calculating segment mean levels \emph{after} change points have been identified.} \item{...}{Additional arguments passed to \code{\link{segmentByCBS}}().} \item{flavor}{A \code{\link[base]{character}} specifying what type of segmentation and calling algorithm to be used.} \item{tbn}{If \code{\link[base:logical]{TRUE}}, \code{betaT} is normalized before segmentation using the TumorBoost method [2], otherwise not.} \item{joinSegments}{If \code{\link[base:logical]{TRUE}}, there are no gaps between neighboring segments. If \code{\link[base:logical]{FALSE}}, the boundaries of a segment are defined by the support that the loci in the segments provides, i.e. there exist a locus at each end point of each segment. This also means that there is a gap between any neighboring segments, unless the change point is in the middle of multiple loci with the same position. The latter is what \code{DNAcopy::segment()} returns. } \item{knownSegments}{Optional \code{\link[base]{data.frame}} specifying \emph{non-overlapping} known segments. These segments must not share loci. See \code{\link{findLargeGaps}}() and \code{\link{gapsToSegments}}().} \item{dropMissingCT}{If \code{\link[base:logical]{TRUE}}, loci for which 'CT' is missing are dropped, otherwise not.} \item{seed}{An (optional) \code{\link[base]{integer}} specifying the random seed to be set before calling the segmentation method. The random seed is set to its original state when exiting. If \code{\link[base]{NULL}}, it is not set.} \item{verbose}{See \code{\link[R.utils]{Verbose}}.} \item{preserveScale}{\emph{Defunct - gives an error is specified.}} } \value{ Returns the segmentation results as a \code{\link{PairedPSCBS}} object. } \details{ Internally \code{\link{segmentByCBS}}() is used for segmentation. The Paired PSCBS segmentation method does \emph{not} support weights. } \section{Reproducibility}{ The "DNAcopy::segment" implementation of CBS uses approximation through random sampling for some estimates. Because of this, repeated calls using the same signals may result in slightly different results, unless the random seed is set/fixed. } \section{Whole-genome segmentation is preferred}{ Although it is possible to segment each chromosome independently using Paired PSCBS, we strongly recommend to segment whole-genome (TCN,BAF) data at once. The reason for this is that downstream CN-state calling methods, such as the AB and the LOH callers, performs much better on whole-genome data. In fact, they may fail to provide valid calls if done chromosome by chromosome. } \section{Missing and non-finite values}{ The total copy number signals as well as any optional positions must not contain missing values, i.e. \code{\link[base]{NA}}s or \code{\link[base:is.finite]{NaN}}s. If there are any, an informative error is thrown. Allele B fractions may contain missing values, because such are interpreted as representing non-polymorphic loci. None of the input signals may have infinite values, i.e. -\code{\link[base:is.finite]{Inf}} or +\code{\link[base:is.finite]{Inf}}. If so, an informative error is thrown. } \section{Paired PSCBS with only genotypes}{ If allele B fractions for the matched normal (\code{betaN}) are not available, but genotypes (\code{muN}) are, then it is possible to run a version of Paired PSCBS where TumorBoost normalization of the tumor allele B fractions is skipped. In order for this to work, argument \code{tbn} must be set to \code{\link[base:logical]{FALSE}}. } \examples{ verbose <- R.utils::Arguments$getVerbose(-10*interactive(), timestamp=TRUE) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=10),] str(dataS) R.oo::attachLocally(dataS) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(CT, betaT=betaT, betaN=betaN, chromosome=chromosome, x=x, seed=0xBEEF, verbose=verbose) print(fit) # Plot results plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=100, verbose=verbose) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in DH for calling AB # (which be done by default by the caller, if skipped here) deltaAB <- estimateDeltaAB(fit, flavor="qq(DH)", verbose=verbose) print(deltaAB) ## [1] 0.1657131 fit <- callAB(fit, delta=deltaAB, verbose=verbose) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaAB == deltaAB) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in C1 for calling LOH # (which be done by default by the caller, if skipped here) deltaLOH <- estimateDeltaLOH(fit, flavor="minC1|nonAB", verbose=verbose) print(deltaLOH) ## [1] 0.625175 fit <- callLOH(fit, delta=deltaLOH, verbose=verbose) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaLOH == deltaLOH) } \author{Henrik Bengtsson} \references{ [1] A.B. Olshen, H. Bengtsson, P. Neuvial, P.T. Spellman, R.A. Olshen, V.E. Seshan, \emph{Parent-specific copy number in paired tumor-normal studies using circular binary segmentation}, Bioinformatics, 2011 \cr [2] H. Bengtsson, P. Neuvial and T.P. Speed, \emph{TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays}, BMC Bioinformatics, 2010 \cr } \seealso{ Internally, \code{\link[aroma.light]{callNaiveGenotypes}} is used to call naive genotypes, \code{\link[aroma.light]{normalizeTumorBoost}} is used for TumorBoost normalization, and \code{\link{segmentByCBS}}() is used to segment TCN and DH separately. To segment tumor total copy numbers and allele B fractions \emph{without} a matched normal, see \code{\link{segmentByNonPairedPSCBS}}(). To segment total copy-numbers, or any other unimodal signals, see \code{\link{segmentByCBS}}(). } \keyword{IO} PSCBS/man/updateMeans.AbstractCBS.Rd0000644000176200001440000000171114564060313016530 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % AbstractCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{updateMeans.AbstractCBS} \alias{updateMeans.AbstractCBS} \alias{AbstractCBS.updateMeans} \alias{updateMeans,AbstractCBS-method} \alias{updateMeans.CBS} \alias{updateMeans.NonPairedPSCBS} \alias{updateMeans.PairedPSCBS} \title{Updates the CN mean levels for each segment independently} \description{ Updates the CN mean levels for each segment independently as if they were one large segment. The locus-level data is not updated/modified. } \usage{ \method{updateMeans}{AbstractCBS}(...) } \arguments{ \item{...}{Arguments specific to the class.} } \value{ Returns an object of the same class. } \author{Henrik Bengtsson} \keyword{internal} \keyword{methods} PSCBS/man/NonPairedPSCBS.Rd0000644000176200001440000000523714564060313014651 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % NonPairedPSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{NonPairedPSCBS} \docType{class} \alias{NonPairedPSCBS} \title{The NonPairedPSCBS class} \description{ Package: PSCBS \cr \bold{Class NonPairedPSCBS}\cr \code{list}\cr \code{~~|}\cr \code{~~+--}\code{\link[PSCBS]{AbstractCBS}}\cr \code{~~~~~~~|}\cr \code{~~~~~~~+--}\code{\link[PSCBS]{PSCBS}}\cr \code{~~~~~~~~~~~~|}\cr \code{~~~~~~~~~~~~+--}\emph{\code{NonPairedPSCBS}}\cr \bold{Directly known subclasses:}\cr \cr public abstract class \bold{NonPairedPSCBS}\cr extends \emph{\link[PSCBS]{PSCBS}}\cr A NonPairedPSCBS is an object containing the results from the Non-paired PSCBS method. } \usage{NonPairedPSCBS(fit=list(), ...)} \arguments{ \item{fit}{A \code{\link[base]{list}} structure containing the Non-paired PSCBS results.} \item{...}{Not used.} } \section{Fields and Methods}{ \bold{Methods:}\cr \emph{No methods defined}. \bold{Methods inherited from PSCBS}:\cr as.data.frame, c, drawChangePoints, extractChromosomes, extractWIG, getLocusData, getLocusSignalNames, getSegmentTrackPrefixes, isLocallyPhased, isSegmentSplitter, normalizeTotalCNs, writeSegments \bold{Methods inherited from AbstractCBS}:\cr adjustPloidyScale, all.equal, as.data.frame, clearCalls, drawChangePoints, drawKnownSegments, dropChangePoint, dropChangePoints, dropRegion, dropRegions, extractCNs, extractChromosome, extractChromosomes, extractRegions, extractSegments, extractWIG, getChangePoints, getChromosomeOffsets, getChromosomeRanges, getChromosomes, getLocusData, getLocusSignalNames, getMeanEstimators, getSampleName, getSegmentSizes, getSegmentTrackPrefixes, getSegments, mergeThreeSegments, mergeTwoSegments, nbrOfChangePoints, nbrOfChromosomes, nbrOfLoci, nbrOfSegments, normalizeTotalCNs, ploidy, ploidy<-, plotTracks, print, pruneByDP, pruneByHClust, renameChromosomes, report, resegment, resetSegments, sampleCNs, sampleName, sampleName<-, seqOfSegmentsByDP, setLocusData, setMeanEstimators, setPloidy, setSampleName, setSegments, shiftTCN, tileChromosomes, updateMeans, writeWIG \bold{Methods inherited from list}:\cr Ops,nonStructure,vector-method, Ops,structure,vector-method, Ops,vector,nonStructure-method, Ops,vector,structure-method, all.equal, as.data.frame, attachLocally, callHooks, coerce,ANY,list-method, relist, type.convert, within } \author{Henrik Bengtsson} \seealso{ The \code{\link{segmentByNonPairedPSCBS}}() method returns an object of this class. } \keyword{classes} PSCBS/man/Non-documented_objects.Rd0000644000176200001440000002227614564060312016570 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % 999.NonDocumentedObjects.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{Non-documented objects} \alias{Non-documented objects} \title{Non-documented objects} % Other missing docs \alias{extractWIG} \alias{extractWIG.AbstractCBS} \alias{extractWIG.CBS} \alias{extractWIG.PSCBS} \alias{all.equal.AbstractCBS} \alias{all.equal.CBS} \alias{applyByRegion} \alias{applyByRegion.PairedPSCBS} \alias{arrowsC1C2} \alias{arrowsC1C2.PairedPSCBS} \alias{arrowsDeltaC1C2} \alias{arrowsDeltaC1C2.PairedPSCBS} \alias{as.CBS} \alias{as.DNAcopy} \alias{as.character.CBS} \alias{as.data.frame.PSCBS} \alias{bootstrapCIs} \alias{bootstrapCIs.PairedPSCBS} \alias{bootstrapDHByRegion} \alias{bootstrapDHByRegion.PairedPSCBS} \alias{bootstrapTCNandDHByRegion} \alias{callAB} \alias{callABandHighAI} \alias{callABandHighAI.PairedPSCBS} \alias{callABandLowC1} \alias{callABandLowC1.PairedPSCBS} \alias{callAllelicBalance} \alias{callAllelicBalance.default} \alias{callAllelicBalanceByDH} \alias{callAmplifications} \alias{callArms} \alias{callArms.CBS} \alias{callExtremeAllelicImbalanceByDH} \alias{callExtremeAllelicImbalanceByDH.PairedPSCBS} \alias{callGainsAndLosses} \alias{callLOH} \alias{callLowC1ByC1} \alias{callLowC1ByC1.PairedPSCBS} \alias{callOutliers} \alias{drawCentromeres} \alias{drawCentromeres.CBS} \alias{drawChromosomes} \alias{drawChromosomes.CBS} \alias{drawConfidenceBands} \alias{drawConfidenceBands.PairedPSCBS} \alias{drawLevels} \alias{drawLevels.CBS} \alias{drawLevels.DNAcopy} \alias{drawLevels.PairedPSCBS} \alias{dropChangePoint} \alias{dropRegion} \alias{dropRegions} \alias{estimateDeltaAB} \alias{estimateDeltaABBySmallDH} \alias{estimateDeltaLOH} \alias{estimateDeltaLOHByMinC1ForNonAB} \alias{estimateHighDHQuantileAtAB} \alias{estimateHighDHQuantileAtAB.PairedPSCBS} \alias{estimateKappa} \alias{estimateKappaByC1Density} \alias{estimateMeanForDH} \alias{estimateMeanForDH.PairedPSCBS} \alias{estimateStandardDeviation} \alias{estimateStandardDeviation.DNAcopy} \alias{estimateStdDevForHeterozygousBAF} \alias{estimateStdDevForHeterozygousBAF.PairedPSCBS} \alias{extractC1C2} \alias{extractCallsByLocus} \alias{extractCallsByLocus.PairedPSCBS} \alias{extractCallsByLocus.CBS} \alias{extractChromosome} \alias{extractChromosome.AbstractCBS} \alias{extractChromosomes} \alias{extractChromosomes.AbstractCBS} \alias{extractChromosomes.CBS} \alias{extractChromosomes.PSCBS} \alias{extractDeltaC1C2} \alias{extractDeltaC1C2.PairedPSCBS} \alias{extractLocusLevelC1C2} \alias{extractLocusLevelC1C2.PairedPSCBS} \alias{extractLocusLevelTCN} \alias{extractLocusLevelTCN.PairedPSCBS} \alias{extractMinorMajorCNs} \alias{extractRegion} \alias{extractRegion.AbstractCBS} \alias{extractRegions} \alias{extractRegions.AbstractCBS} \alias{extractSegmentMeansByLocus} \alias{extractSegmentMeansByLocus.DNAcopy} \alias{extractTCNAndDHs} \alias{getCallStatistics} \alias{getCallStatisticsByArms} \alias{getCallStatisticsByArms.CBS} \alias{getChromosomeOffsets} \alias{getChromosomeRanges} \alias{getChromosomeRanges.CBS} \alias{getChromosomes} \alias{getChromosomes.DNAcopy} \alias{getFGA} \alias{getFGG} \alias{getFGL} \alias{getFractionOfGenomeAltered} \alias{getFractionOfGenomeGained} \alias{getFractionOfGenomeLost} \alias{getLocusData} \alias{getLocusData.CBS} \alias{getLocusData.PSCBS} \alias{getSampleName} \alias{getSampleNames} \alias{getSampleNames.DNAcopy} \alias{getSegments} \alias{getSegments.CBS} \alias{getSignalType} \alias{getSignalType.CBS} \alias{highlightArmCalls} \alias{highlightArmCalls.CBS} \alias{highlightCalls} \alias{highlightCalls.CBS} \alias{highlightLocusCalls} \alias{highlightLocusCalls.CBS} \alias{isWholeChromosomeGained} \alias{isWholeChromosomeGained.CBS} \alias{isWholeChromosomeLost} \alias{isWholeChromosomeLost.CBS} \alias{joinSegments} \alias{linesC1C2} \alias{linesC1C2.PairedPSCBS} \alias{linesDeltaC1C2} \alias{linesDeltaC1C2.PairedPSCBS} \alias{mergeNonCalledSegments} \alias{mergeTwoSegments} \alias{mergeTwoSegments.CBS} \alias{nbrOfAmplifications} \alias{nbrOfAmplifications.CBS} \alias{nbrOfChangePoints} \alias{nbrOfChromosomes} \alias{nbrOfGains} \alias{nbrOfGains.CBS} \alias{nbrOfLoci} \alias{nbrOfLoci.DNAcopy} \alias{nbrOfLosses} \alias{nbrOfLosses.CBS} \alias{nbrOfSamples} \alias{nbrOfSamples.DNAcopy} \alias{nbrOfSegments} \alias{nbrOfSegments.DNAcopy} \alias{plot.CBS} \alias{plot.PairedPSCBS} \alias{plotC1C2} \alias{plotC1C2.PairedPSCBS} \alias{plotDeltaC1C2} \alias{plotDeltaC1C2.PairedPSCBS} \alias{plotTracksManyChromosomes.CBS} \alias{pointsC1C2} \alias{pointsC1C2.PairedPSCBS} \alias{pointsDeltaC1C2} \alias{pointsDeltaC1C2.PairedPSCBS} \alias{postsegmentTCN} \alias{postsegmentTCN.PairedPSCBS} \alias{print.AbstractCBS} \alias{sampleName} \alias{sampleName<-} \alias{setLocusData} \alias{setSampleName} \alias{setSegments} \alias{signalType} \alias{signalType.CBS} \alias{signalType<-} \alias{signalType<-.CBS} \alias{subset.CBS} \alias{tileChromosomes} \alias{tileChromosomes.AbstractCBS} \alias{tileChromosomes.CBS} \alias{tileChromosomes.PairedPSCBS} \alias{writeLocusData} \alias{writeLocusData.CBS} \alias{writeSegments} \alias{extractSegments.AbstractCBS} \alias{extractSegment.AbstractCBS} \alias{extractSegment} \alias{extractSegments} \alias{extractSegments.CBS} \alias{extractSegments.PairedPSCBS} \alias{isSegmentSplitter} \alias{isSegmentSplitter.CBS} \alias{isSegmentSplitter.PSCBS} \alias{extractCNs} \alias{extractCNs.AbstractCBS} \alias{extractCNs.CBS} \alias{extractCNs.PairedPSCBS} \alias{extractTotalCNs} \alias{extractTotalCNs.CBS} \alias{getSegmentSizes} \alias{getSegmentSizes.AbstractCBS} \alias{getSegmentSizes.CBS} \alias{getSegmentSizes.PSCBS} \alias{sampleCNs} \alias{sampleCNs.AbstractCBS} \alias{mergeThreeSegments} \alias{callROH} \alias{callROHOneSegment} \alias{callROHOneSegment.PairedPSCBS} \alias{testROH} \alias{pruneBySdUndo} \alias{updateBoundaries} \alias{updateBoundaries.CBS} \alias{resegment} \alias{resegment.AbstractCBS} \alias{resegment.CBS} \alias{resegment.PairedPSCBS} \alias{hclustCNs} \alias{pruneByHClust} \alias{updateMeansTogether} \alias{updateMeans} \alias{drawChangePoints} \alias{drawChangePoints.AbstractCBS} \alias{drawKnownSegments} \alias{drawKnownSegments.AbstractCBS} \alias{drawChangePoints.CBS} \alias{drawChangePoints.PSCBS} \alias{drawChangePointsC1C2} \alias{drawChangePointsC1C2.PairedPSCBS} \alias{extractDhSegment} \alias{extractDhSegment.PairedPSCBS} \alias{callNTCN} \alias{callCopyNeutral} \alias{callCopyNeutralByTCNofAB} \alias{dropChangePoints} \alias{calcStatsForCopyNeutralABs} \alias{calcStatsForCopyNeutralABs.PairedPSCBS} \alias{callGainNeutralLoss} \alias{callGNL} \alias{renameChromosomes} \alias{renameChromosomes.AbstractCBS} \alias{report} \alias{writeSegments.DNAcopy} \alias{shiftTCN} \alias{shiftTCN.AbstractCBS} \alias{shiftTCN.CBS} \alias{shiftTCN.PairedPSCBS} \alias{getChromosomeOffsets.AbstractCBS} \alias{getChromosomeRanges.PairedPSCBS} \alias{getChromosomeRanges.AbstractCBS} \alias{seqOfSegmentsByDP} \alias{seqOfSegmentsByDP.AbstractCBS} \alias{seqOfSegmentsByDP.CBS} \alias{seqOfSegmentsByDP.PairedPSCBS} \alias{seqOfSegmentsByDP.matrix} \alias{getChromosomeOffsets.PairedPSCBS} \alias{getLocusSignalNames} \alias{getLocusSignalNames.AbstractCBS} \alias{getLocusSignalNames.CBS} \alias{getLocusSignalNames.PSCBS} \alias{getSegmentTrackPrefixes} \alias{getSegmentTrackPrefixes.AbstractCBS} \alias{getSegmentTrackPrefixes.CBS} \alias{getSegmentTrackPrefixes.PSCBS} \alias{pruneByDP} \alias{getMeanEstimators} \alias{getMeanEstimators.AbstractCBS} \alias{resegment.NonPairedPSCBS} \alias{setMeanEstimators} \alias{setMeanEstimators.AbstractCBS} \alias{resetSegments} \alias{getLocusData.NonPairedPSCBS} \alias{getLocusData.PairedPSCBS} \alias{plotTracks} \alias{plotTracks1} \alias{plotTracks2} \alias{plotTracksManyChromosomes} \alias{getSmoothLocusData} \alias{bootstrapSegmentsAndChangepoints} \alias{bootstrapSegmentsAndChangepoints.PairedPSCBS} \alias{getChangePoints} \alias{getChangePoints.AbstractCBS} \alias{getChangePoints.CBS} \alias{getChangePoints.PSCBS} \alias{clearBootstrapSummaries} \alias{clearBootstrapSummaries.PairedPSCBS} \alias{findBootstrapSummaries} \alias{findBootstrapSummaries.PairedPSCBS} \alias{hasBootstrapSummaries} \alias{hasBootstrapSummaries.PairedPSCBS} \alias{clearCalls} \alias{clearCalls.AbstractCBS} \alias{extractSegmentDataByLocus} \alias{extractSegmentDataByLocus.PairedPSCBS} \alias{updateMeansC1C2} \alias{updateMeansC1C2.PairedPSCBS} \alias{encodeCalls} \alias{encodeCalls.data.frame} \alias{callGLAO} \alias{callGLAO.CBS} \alias{unTumorBoost} \alias{unTumorBoost.PairedPSCBS} \alias{isLocallyPhased} \alias{isLocallyPhased.PSCBS} \description{ This page contains aliases for all "non-documented" objects that \code{R CMD check} detects in this package. Almost all of them are \emph{generic} functions that have specific document for the corresponding method coupled to a specific class. Other functions are re-defined by \code{setMethodS3()} to \emph{default} methods. Neither of these two classes are non-documented in reality. The rest are deprecated methods. } \author{Henrik Bengtsson} \keyword{documentation} \keyword{internal} PSCBS/man/estimateDeltaCN.PairedPSCBS.Rd0000644000176200001440000000317314564060314017201 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.callCopyNeutral.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{estimateDeltaCN.PairedPSCBS} \alias{estimateDeltaCN.PairedPSCBS} \alias{PairedPSCBS.estimateDeltaCN} \alias{estimateDeltaCN,PairedPSCBS-method} \alias{estimateDeltaCN} \alias{estimateDeltaCN.CBS} \title{Estimates the length of one total copy-number (TCN) unit} \description{ Estimates the length of one total copy-number (TCN) unit } \usage{ \method{estimateDeltaCN}{PairedPSCBS}(fit, scale=1, flavor=c("1-kappa", "delta(mode)"), kappa=estimateKappa(fit), adjust=0.2, quantile=0.95, ...) } \arguments{ \item{scale}{A \code{\link[base]{numeric}} scale factor in (0,Inf) used for rescaling (multiplying) the final estimate with.} \item{flavor}{Specifies which type of estimator should be used.} \item{kappa}{Estimate of background signal (used by the \code{"1-kappa"} method).} \item{adjust, quantile}{Tuning parameters (used by the \code{"delta(mode)"} method).} \item{...}{Not used.} } \value{ Returns a positive scalar \code{\link[base]{numeric}}. } \details{ For parent-specific copy-number (PSCN) data, the TCN unit length is estimated as \eqn{(1-kappa)/2}, where \eqn{kappa} is estimated from data (by \code{\link[PSCBS]{estimateKappa}}). For total copy-number (TCN) data (only), } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{PairedPSCBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/PairedPSCBS.Rd0000644000176200001440000000637614564060314014204 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PairedPSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{PairedPSCBS} \docType{class} \alias{PairedPSCBS} \title{The PairedPSCBS class} \description{ Package: PSCBS \cr \bold{Class PairedPSCBS}\cr \code{list}\cr \code{~~|}\cr \code{~~+--}\code{\link[PSCBS]{AbstractCBS}}\cr \code{~~~~~~~|}\cr \code{~~~~~~~+--}\code{\link[PSCBS]{PSCBS}}\cr \code{~~~~~~~~~~~~|}\cr \code{~~~~~~~~~~~~+--}\emph{\code{PairedPSCBS}}\cr \bold{Directly known subclasses:}\cr \cr public abstract class \bold{PairedPSCBS}\cr extends \emph{\link[PSCBS]{PSCBS}}\cr A PairedPSCBS is an object containing the results from the Paired PSCBS method. } \usage{PairedPSCBS(fit=list(), ...)} \arguments{ \item{fit}{A \code{\link[base]{list}} structure containing the Paired PSCBS results.} \item{...}{Not used.} } \section{Fields and Methods}{ \bold{Methods:}\cr \tabular{rll}{ \tab \code{callAB} \tab -\cr \tab \code{callCopyNeutral} \tab -\cr \tab \code{callGNL} \tab -\cr \tab \code{callGNLByTCNofAB} \tab -\cr \tab \code{callGainNeutralLoss} \tab -\cr \tab \code{callLOH} \tab -\cr \tab \code{callNTCN} \tab -\cr \tab \code{callROH} \tab -\cr \tab \code{estimateDeltaAB} \tab -\cr \tab \code{estimateDeltaLOH} \tab -\cr \tab \code{estimateKappa} \tab -\cr \tab \code{extractCNs} \tab -\cr \tab \code{hasBootstrapSummaries} \tab -\cr \tab \code{plotTracks} \tab -\cr \tab \code{segmentByNonPairedPSCBS} \tab -\cr \tab \code{segmentByPairedPSCBS} \tab -\cr \tab \code{seqOfSegmentsByDP} \tab -\cr } \bold{Methods inherited from PSCBS}:\cr as.data.frame, c, drawChangePoints, extractChromosomes, extractWIG, getLocusData, getLocusSignalNames, getSegmentTrackPrefixes, isLocallyPhased, isSegmentSplitter, normalizeTotalCNs, writeSegments \bold{Methods inherited from AbstractCBS}:\cr adjustPloidyScale, all.equal, as.data.frame, clearCalls, drawChangePoints, drawKnownSegments, dropChangePoint, dropChangePoints, dropRegion, dropRegions, extractCNs, extractChromosome, extractChromosomes, extractRegions, extractSegments, extractWIG, getChangePoints, getChromosomeOffsets, getChromosomeRanges, getChromosomes, getLocusData, getLocusSignalNames, getMeanEstimators, getSampleName, getSegmentSizes, getSegmentTrackPrefixes, getSegments, mergeThreeSegments, mergeTwoSegments, nbrOfChangePoints, nbrOfChromosomes, nbrOfLoci, nbrOfSegments, normalizeTotalCNs, ploidy, ploidy<-, plotTracks, print, pruneByDP, pruneByHClust, renameChromosomes, report, resegment, resetSegments, sampleCNs, sampleName, sampleName<-, seqOfSegmentsByDP, setLocusData, setMeanEstimators, setPloidy, setSampleName, setSegments, shiftTCN, tileChromosomes, updateMeans, writeWIG \bold{Methods inherited from list}:\cr Ops,nonStructure,vector-method, Ops,structure,vector-method, Ops,vector,nonStructure-method, Ops,vector,structure-method, all.equal, as.data.frame, attachLocally, callHooks, coerce,ANY,list-method, relist, type.convert, within } \author{Henrik Bengtsson} \seealso{ The \code{\link{segmentByPairedPSCBS}}() method returns an object of this class. } \keyword{classes} PSCBS/man/writeSegments.PSCBS.Rd0000644000176200001440000000306714564060313015707 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PSCBS.IO.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{writeSegments.PSCBS} \alias{writeSegments.PSCBS} \alias{PSCBS.writeSegments} \alias{writeSegments,PSCBS-method} \title{Writes the table of segments to file} \description{ Writes the table of segments to file. } \usage{ \method{writeSegments}{PSCBS}(fit, name=getSampleName(fit), tags=NULL, ext="tsv", path=NULL, addHeader=TRUE, createdBy=NULL, sep="\t", nbrOfDecimals=4L, splitters=FALSE, overwrite=FALSE, skip=FALSE, ...) } \arguments{ \item{name, tags}{Name and optional tags part of the filename}. \item{path}{The directory where the file will be written.} \item{addHeader}{If \code{\link[base:logical]{TRUE}}, header comments are written.} \item{createdBy}{A header comment of whom created the file.} \item{splitters}{If \code{\link[base:logical]{TRUE}}, each chromosome is separated by a row of missing values.} \item{overwrite, skip}{If an output file already exists, these arguments specifies what should happen.} \item{...}{Additional arguments pass to \code{getSegments()}.} } \value{ Returns the pathname of the the file written. } \author{Henrik Bengtsson} \seealso{ Utilizes \code{\link[PSCBS:getSegments.PSCBS]{*getSegments}()}. For more information see \code{\link{PSCBS}}.. } \keyword{internal} \keyword{methods} PSCBS/man/extractSegmentMeansByLocus.CBS.Rd0000644000176200001440000000167114564060313020065 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % CBS.EXTS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{extractSegmentMeansByLocus.CBS} \alias{extractSegmentMeansByLocus.CBS} \alias{CBS.extractSegmentMeansByLocus} \alias{extractSegmentMeansByLocus,CBS-method} \title{Extracts segments means at each locus} \description{ Extracts segments means at each locus. } \usage{ \method{extractSegmentMeansByLocus}{CBS}(fit, ...) } \arguments{ \item{...}{Arguments passed to \code{\link[PSCBS:getLocusData.CBS]{*getLocusData}()}.} } \value{ Returns a \code{\link[base]{numeric}} \code{\link[base]{vector}} of length \code{nbrOfLoci()}. } \author{Henrik Bengtsson} \seealso{ For more information see \code{\link{CBS}}. } \keyword{internal} \keyword{methods} PSCBS/man/PSCBS.Rd0000644000176200001440000000467614564060314013060 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Do not modify this file since it was automatically generated from: % % PSCBS.R % % by the Rdoc compiler part of the R.oo package. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \name{PSCBS} \docType{class} \alias{PSCBS} \title{The PSCBS class} \description{ Package: PSCBS \cr \bold{Class PSCBS}\cr \code{list}\cr \code{~~|}\cr \code{~~+--}\code{\link[PSCBS]{AbstractCBS}}\cr \code{~~~~~~~|}\cr \code{~~~~~~~+--}\emph{\code{PSCBS}}\cr \bold{Directly known subclasses:}\cr \emph{\link[PSCBS]{NonPairedPSCBS}}, \emph{\link[PSCBS]{PairedPSCBS}}\cr public abstract class \bold{PSCBS}\cr extends \emph{\link[PSCBS]{AbstractCBS}}\cr A PSCBS is an object containing results from parent-specific copy-number (PSCN) segmentation. } \usage{PSCBS(fit=list(), ...)} \arguments{ \item{fit}{A \code{\link[base]{list}} structure containing the PSCN segmentation results.} \item{...}{Not used.} } \section{Fields and Methods}{ \bold{Methods:}\cr \tabular{rll}{ \tab \code{c} \tab -\cr \tab \code{isLocallyPhased} \tab -\cr \tab \code{normalizeTotalCNs} \tab -\cr \tab \code{writeSegments} \tab -\cr } \bold{Methods inherited from AbstractCBS}:\cr adjustPloidyScale, all.equal, as.data.frame, clearCalls, drawChangePoints, drawKnownSegments, dropChangePoint, dropChangePoints, dropRegion, dropRegions, extractCNs, extractChromosome, extractChromosomes, extractRegions, extractSegments, extractWIG, getChangePoints, getChromosomeOffsets, getChromosomeRanges, getChromosomes, getLocusData, getLocusSignalNames, getMeanEstimators, getSampleName, getSegmentSizes, getSegmentTrackPrefixes, getSegments, mergeThreeSegments, mergeTwoSegments, nbrOfChangePoints, nbrOfChromosomes, nbrOfLoci, nbrOfSegments, normalizeTotalCNs, ploidy, ploidy<-, plotTracks, print, pruneByDP, pruneByHClust, renameChromosomes, report, resegment, resetSegments, sampleCNs, sampleName, sampleName<-, seqOfSegmentsByDP, setLocusData, setMeanEstimators, setPloidy, setSampleName, setSegments, shiftTCN, tileChromosomes, updateMeans, writeWIG \bold{Methods inherited from list}:\cr Ops,nonStructure,vector-method, Ops,structure,vector-method, Ops,vector,nonStructure-method, Ops,vector,structure-method, all.equal, as.data.frame, attachLocally, callHooks, coerce,ANY,list-method, relist, type.convert, within } \author{Henrik Bengtsson} \seealso{ \code{\link{PairedPSCBS}}. } \keyword{classes} PSCBS/DESCRIPTION0000644000176200001440000000355714564202212012642 0ustar liggesusersPackage: PSCBS Version: 0.67.0 Depends: R (>= 3.2.0) Imports: R.methodsS3 (>= 1.8.2), R.oo (>= 1.25.0), R.utils (>= 2.12.0), R.cache (>= 0.16.0), matrixStats (>= 0.62.0), aroma.light (>= 2.4.0), DNAcopy (>= 1.42.0), listenv (>= 0.8.0), future (>= 1.28.0), parallel, graphics, grDevices, stats, utils Suggests: R.rsp (>= 0.45.0), R.devices (>= 2.17.1), ggplot2 (>= 3.2.1) SuggestsNote: BioC (>= 3.1) VignetteBuilder: R.rsp Title: Analysis of Parent-Specific DNA Copy Numbers Authors@R: c( person("Henrik", "Bengtsson", role=c("aut", "cre", "cph"), email="henrikb@braju.com"), person("Pierre", "Neuvial", role="aut"), person("Venkatraman E.", "Seshan", role="aut"), person("Adam B.", "Olshen", role="aut"), person("Paul T.", "Spellman", role="aut"), person("Richard A.", "Olshen", role="aut"), person("Frank E", "Harrell Jr", role="ctb", comment = "Weighted quantile estimator adopted from Hmisc::wtd.quantile()")) Description: Segmentation of allele-specific DNA copy number data and detection of regions with abnormal copy number within each parental chromosome. Both tumor-normal paired and tumor-only analyses are supported. License: GPL (>= 2) LazyLoad: TRUE ByteCompile: TRUE biocViews: aCGH, CopyNumberVariants, SNP, Microarray, OneChannel, TwoChannel, Genetics URL: https://github.com/HenrikBengtsson/PSCBS BugReports: https://github.com/HenrikBengtsson/PSCBS/issues NeedsCompilation: no Packaged: 2024-02-17 18:25:19 UTC; henrik Author: Henrik Bengtsson [aut, cre, cph], Pierre Neuvial [aut], Venkatraman E. Seshan [aut], Adam B. Olshen [aut], Paul T. Spellman [aut], Richard A. Olshen [aut], Frank E Harrell Jr [ctb] (Weighted quantile estimator adopted from Hmisc::wtd.quantile()) Maintainer: Henrik Bengtsson Repository: CRAN Date/Publication: 2024-02-17 19:10:02 UTC PSCBS/build/0000755000176200001440000000000014564175017012235 5ustar liggesusersPSCBS/build/vignette.rds0000644000176200001440000000046214564175017014576 0ustar liggesusersPn04$B Zĥ8puMdq,ۈr뗓ډ QgvsBȘј#wVnd·}b3Fh2!O[LЬV_R(x]FXO}*\z}](}w2;}ziJuam&?dK&8 U;!IK*@I-?En:L7@.ZC -t4u(`"9,)ӻ 0PSCBS/tests/0000755000176200001440000000000014564060172012273 5ustar liggesusersPSCBS/tests/segmentByPairedPSCBS.R0000644000176200001440000001013714564051545016301 0ustar liggesusers########################################################### # This tests: # - segmentByPairedPSCBS(...) # - segmentByPairedPSCBS(..., knownSegments) # - tileChromosomes() # - plotTracks() ########################################################### library("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Run light-weight tests by default if (Sys.getenv("_R_CHECK_FULL_") == "") { # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 4L } else { # Full tests nSegs <- 11L } str(dataS) fig <- 1 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (a) Don't segment the centromere (and force a separator) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome = c( 1, 1, 1), start = c( -Inf, NA, 141510003), end = c(120992603, NA, +Inf) ) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) print(fit) # Plot results dev.set(2L) plotTracks(fit) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Sanity check stopifnot(nbrOfSegments(fit) == nSegs) fit1 <- fit # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (b) Segment also the centromere (which will become NAs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome = c( 1, 1, 1), start = c( -Inf, 120992604, 141510003), end = c(120992603, 141510002, +Inf) ) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) print(fit) # Plot results dev.set(3L) plotTracks(fit) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Sanity check [TO FIX: See above] stopifnot(nbrOfSegments(fit) == nSegs) fit2 <- fit # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (c) Do not segment the centromere (without a separator) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome = c( 1, 1), start = c( -Inf, 141510003), end = c(120992603, +Inf) ) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) print(fit) # Plot results dev.set(4L) plotTracks(fit) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Sanity check stopifnot(nbrOfSegments(fit) == nSegs-1L) fit3 <- fit # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (d) Skip the identification of new change points # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome = c( 1, 1), start = c( -Inf, 141510003), end = c(120992603, +Inf) ) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, undoTCN=Inf, undoDH=Inf, seed=0xBEEF, verbose=-10) print(fit) # Plot results dev.set(5L) plotTracks(fit) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Sanity check stopifnot(nbrOfSegments(fit) == nrow(knownSegments)) fit4 <- fit # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tiling multiple chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulate multiple chromosomes fit1 <- fit fit2 <- renameChromosomes(fit, from=1, to=2) fitM <- c(fit1, fit2) # Tile chromosomes fitT <- tileChromosomes(fitM) fitTb <- tileChromosomes(fitT) stopifnot(identical(fitTb, fitT)) # Plotting multiple chromosomes plotTracks(fitT) PSCBS/tests/segmentByPairedPSCBS,futures.R0000644000176200001440000000516214564051545017775 0ustar liggesuserslibrary(PSCBS) library(utils) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Run light-weight tests by default if (Sys.getenv("_R_CHECK_FULL_") == "") { # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 4L } else { # Full tests nSegs <- 11L } str(dataS) ## Create multiple chromosomes data <- list() for (cc in 1:3) { dataS$chromosome <- cc data[[cc]] <- dataS } data <- Reduce(rbind, data) str(data) message("*** segmentByPairedPSCBS() via futures ...") library("future") oplan <- plan() strategies <- c("sequential", "multisession") ## Test 'future.batchtools' futures? pkg <- "future.batchtools" if (require(pkg, character.only=TRUE)) { strategies <- c(strategies, "batchtools_local") } message("Future strategies to test: ", paste(sQuote(strategies), collapse=", ")) fits <- list() for (strategy in strategies) { message(sprintf("- segmentByPairedPSCBS() using '%s' futures ...", strategy)) plan(strategy) fit <- segmentByPairedPSCBS(data, seed=0xBEEF, verbose=TRUE) fits[[strategy]] <- fit equal <- all.equal(fit, fits[[1]]) if (!equal) { str(fit) str(fits[[1]]) print(equal) stop(sprintf("segmentByPairedPSCBS() using '%s' futures does not produce the same results as when using '%s' futures", strategy, names(fits)[1])) } } message("*** segmentByPairedPSCBS() via futures ... DONE") message("*** segmentByPairedPSCBS() via futures with known segments ...") fits <- list() dataT <- subset(data, chromosome == 1) gaps <- findLargeGaps(dataT, minLength=2e6) knownSegments <- gapsToSegments(gaps) for (strategy in strategies) { message(sprintf("- segmentByPairedPSCBS() w/ known segments using '%s' futures ...", strategy)) plan(strategy) fit <- segmentByPairedPSCBS(dataT, knownSegments=knownSegments, seed=0xBEEF, verbose=TRUE) fits[[strategy]] <- fit equal <- all.equal(fit, fits[[1]]) if (!equal) { str(fit) str(fits[[1]]) print(equal) stop(sprintf("segmentByPairedPSCBS() w/ known segments using '%s' futures does not produce the same results as when using '%s' futures", strategy, names(fits)[1])) } } message("*** segmentByPairedPSCBS() via futures ... DONE") ## Cleanup plan(oplan) rm(list=c("fits", "data", "fit")) PSCBS/tests/segmentByPairedPSCBS,noNormalBAFs.R0000644000176200001440000000375514564051545020567 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Run light-weight tests by default if (Sys.getenv("_R_CHECK_FULL_") == "") { # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 3L # Number of bootstrap samples (see below) B <- 100L } else { # Full tests nSegs <- 8L B <- 1000L } str(dataS) R.oo::attachLocally(dataS) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulate that genotypes are known by other means # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - library("aroma.light") muN <- aroma.light::callNaiveGenotypes(betaN, censorAt=c(0,1)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByPairedPSCBS(CT, betaT=betaT, muN=muN, tbn=FALSE, chromosome=chromosome, x=x, seed=0xBEEF, verbose=-10) print(fit) # Plot results plotTracks(fit) # Sanity check stopifnot(nbrOfSegments(fit) == nSegs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=B, verbose=-10) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) and # in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- callAB(fit, verbose=-10) fit <- callLOH(fit, verbose=-10) print(fit) plotTracks(fit) PSCBS/tests/segmentByPairedPSCBS,calls.R0000644000176200001440000000710314564051545017373 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Find centromere gaps <- findLargeGaps(dataS, minLength=2e6) knownSegments <- gapsToSegments(gaps) # Run light-weight tests by default if (Sys.getenv("_R_CHECK_FULL_") == "") { # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 4L # Number of bootstrap samples (see below) B <- 100L } else { # Full tests nSegs <- 11L B <- 1000L } str(dataS) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) print(fit) # Plot results plotTracks(fit) # Sanity check stopifnot(nbrOfSegments(fit) == nSegs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=B, verbose=-10) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments with run of homozygosity (ROH) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- callROH(fit, verbose=-10) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Estimate background # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - kappa <- estimateKappa(fit, verbose=-10) print(kappa) ## [1] 0.226011 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in DH for calling AB # (which be done by default by the caller, if skipped here) deltaAB <- estimateDeltaAB(fit, flavor="qq(DH)", verbose=-10) if (Sys.getenv("_R_CHECK_FULL_") == "") { # Ad hoc workaround for not utilizing all of the data # in the test, which results in a poor estimate deltaAB <- 0.165 } print(deltaAB) ## [1] 0.1657131 fit <- callAB(fit, delta=deltaAB, verbose=-10) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaAB == deltaAB) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in C1 for calling LOH # (which be done by default by the caller, if skipped here) deltaLOH <- estimateDeltaLOH(fit, flavor="minC1|nonAB", verbose=-10) print(deltaLOH) ## [1] 0.625175 fit <- callLOH(fit, delta=deltaLOH, verbose=-10) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaLOH == deltaLOH) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments that are gained, copy neutral, and lost # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- callGNL(fit, verbose=-10) print(fit) plotTracks(fit) PSCBS/tests/segmentByPairedPSCBS,report.R0000644000176200001440000000240314564051545017606 0ustar liggesusers# This test script calls a report generator which requires # the 'ggplot2' package, which in turn will require packages # 'colorspace', 'dichromat', 'munsell', 'reshape2' and 'scales'. # Only run this test in full testing mode if (Sys.getenv("_R_CHECK_FULL_") != "") { library("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=5),] str(dataS) gaps <- findLargeGaps(dataS, minLength=2e6) knownSegments <- gapsToSegments(gaps) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) # Fake a multi-chromosome segmentation fit1 <- fit fit2 <- renameChromosomes(fit, from=1, to=2) fit <- c(fit1, fit2) report(fit, sampleName="PairedPSCBS", studyName="PSCBS-Ex", verbose=-10) } # if (Sys.getenv("_R_CHECK_FULL_")) PSCBS/tests/segmentByCBS.R0000644000176200001440000001071714564051545014715 0ustar liggesusers########################################################### # This tests: # - segmentByCBS(...) # - segmentByCBS(..., knownSegments) # - tileChromosomes() # - plotTracks() ########################################################### library("PSCBS") subplots <- R.utils::subplots # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 subplots(8, ncol=1L) par(mar=c(1.7,1,0.2,1)+0.1) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(y, x=x) sampleName(fit) <- "CBS_Example" print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation with some known change points # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome=c( 0, 0), start =x[c( 1, 401)], end =x[c(349, J)] ) fit2 <- segmentByCBS(y, x=x, knownSegments=knownSegments, verbose=TRUE) sampleName(fit2) <- "CBS_Example_2" print(fit2) plotTracks(fit2) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Chromosome boundaries can be specified as -Inf and +Inf knownSegments <- data.frame( chromosome=c( 0, 0), start =c( -Inf, x[401]), end =c(x[349], +Inf) ) fit2b <- segmentByCBS(y, x=x, knownSegments=knownSegments, verbose=TRUE) sampleName(fit2b) <- "CBS_Example_2b" print(fit2b) plotTracks(fit2b) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # As a proof of concept, it is possible to segment just the centromere, # which contains no data. All statistics will be NAs. knownSegments <- data.frame( chromosome=c( 0), start =x[c(350)], end =x[c(400)] ) fit3 <- segmentByCBS(y, x=x, knownSegments=knownSegments, verbose=TRUE) sampleName(fit3) <- "CBS_Example_3" print(fit3) plotTracks(fit3, Clim=c(0,5), xlim=c(0,100)) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # If one specify the (empty) centromere as a segment, then its # estimated statistics will be NAs, which becomes a natural # separator between the two "independent" arms. knownSegments <- data.frame( chromosome=c( 0, 0, 0), start =x[c( 1, 350, 401)], end =x[c(349, 400, J)] ) fit4 <- segmentByCBS(y, x=x, knownSegments=knownSegments, verbose=TRUE) sampleName(fit4) <- "CBS_Example_4" print(fit4) plotTracks(fit4) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) fit5 <- segmentByCBS(y, x=x, knownSegments=knownSegments, undo=Inf, verbose=TRUE) sampleName(fit5) <- "CBS_Example_5" print(fit5) plotTracks(fit5) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) stopifnot(nbrOfSegments(fit5) == nrow(knownSegments)) # One can also force a separator between two segments by setting # 'start' and 'end' to NAs ('chromosome' has to be given) knownSegments <- data.frame( chromosome=c( 0, 0, 0), start =x[c( 1, NA, 401)], end =x[c(349, NA, J)] ) fit6 <- segmentByCBS(y, x=x, knownSegments=knownSegments, verbose=TRUE) sampleName(fit6) <- "CBS_Example_6" print(fit6) plotTracks(fit6) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segment multiple chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulate multiple chromosomes fit1 <- renameChromosomes(fit, from=0, to=1) fit2 <- renameChromosomes(fit, from=0, to=2) fitM <- c(fit1, fit2) fitM <- segmentByCBS(fitM) sampleName(fitM) <- "CBS_Example_M" print(fitM) plotTracks(fitM, Clim=c(-3,3)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tiling multiple chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes fitT <- tileChromosomes(fitM) fitTb <- tileChromosomes(fitT) stopifnot(identical(fitTb, fitT)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Write segmentation to file # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pathT <- tempdir() ## Tab-delimited file pathname <- writeSegments(fitM, path=pathT) print(pathname) ## WIG file pathname <- writeWIG(fitM, path=pathT) print(pathname) unlink(pathT, recursive=TRUE) PSCBS/tests/segmentByPairedPSCBS,seqOfSegmentsByDP.R0000644000176200001440000000341014564051545021574 0ustar liggesuserslibrary("PSCBS") subplots <- R.utils::subplots stext <- R.utils::stext # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Run light-weight tests by default if (Sys.getenv("_R_CHECK_FULL_") == "") { # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 3L # Number of bootstrap samples (see below) B <- 100L } else { # Full tests nSegs <- 12L B <- 1000L } str(dataS) R.oo::attachLocally(dataS) gaps <- findLargeGaps(dataS, minLength=2e6) knownSegments <- gapsToSegments(gaps, dropGaps=TRUE) # Paired PSCBS segmentation fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) print(fit) fit1 <- fit fit2 <- renameChromosomes(fit1, from=1, to=2) fit <- c(fit1, fit2) knownSegments <- tileChromosomes(fit)$params$knownSegments segList <- seqOfSegmentsByDP(fit, verbose=-10) K <- length(segList) ks <- seq(from=1, to=K, length.out=min(5,K)) subplots(length(ks), ncol=1, byrow=TRUE) par(mar=c(2,1,1,1)) for (kk in ks) { knownSegmentsKK <- segList[[kk]] fitKK <- resegment(fit, knownSegments=knownSegmentsKK, undoTCN=+Inf, undoDH=+Inf) plotTracks(fitKK, tracks="tcn,c1,c2", Clim=c(0,5), add=TRUE) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) stext(side=3, pos=0, sprintf("Number of segments: %d", nrow(knownSegmentsKK))) } # for (kk ...) PSCBS/tests/segmentByCBS,prune.R0000644000176200001440000000253114564051545016036 0ustar liggesuserslibrary("PSCBS") ## Compare segments assertMatchingSegments <- function(fitM, fit) { chrs <- getChromosomes(fitM) segsM <- lapply(chrs, FUN=function(chr) { getSegments(extractChromosome(fitM, chr)) }) segs <- lapply(fit[chrs], FUN=getSegments) stopifnot(all.equal(segsM, segs, check.attributes=FALSE)) } ## Simulate data set.seed(0xBEEF) J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 data <- list() for (chr in 1:2) { data[[chr]] <- data.frame(chromosome=chr, x=x, y=y) } data$M <- Reduce(rbind, data) ## Segment message("*** segmentByCBS()") fit <- lapply(data, FUN=segmentByCBS) print(fit) assertMatchingSegments(fit$M, fit) ## Join segments message("*** joinSegments()") fitj <- lapply(fit, FUN=joinSegments) print(fitj) assertMatchingSegments(fitj$M, fitj) ## Reset segments message("*** resetSegments()") fitj <- lapply(fit, FUN=resetSegments) print(fitj) assertMatchingSegments(fitj$M, fitj) ## Prune by SD undo message("*** pruneBySdUndo()") fitp <- lapply(fit, FUN=pruneBySdUndo) print(fitp) assertMatchingSegments(fitp$M, fitp) ## Prune by hierarchical clustering message("*** pruneByHClust()") fitp <- lapply(fit, FUN=pruneByHClust, k=1L) print(fitp) assertMatchingSegments(fitp$M, fitp) PSCBS/tests/segmentByCBS,median.R0000644000176200001440000000707514564051545016152 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 x <- sort(runif(J, max=J)) * 1e5 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps outliers <- seq(from=1L, to=J, length.out=0.2*J) y[outliers] <- y[outliers] + 1.5 w <- rep(1.0, times=J) w[outliers] <- 0.01 data <- data.frame(chromosome=1L, x=x, y=y) dataW <- cbind(data, w=w) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Single-chromosome segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - par(mar=c(2,3,0.2,1)+0.1) # Segment without weights fit <- segmentByCBS(data) sampleName(fit) <- "CBS_Example" print(fit) plotTracks(fit) ## Highlight outliers (they pull up the mean levels) points(x[outliers]/1e6, y[outliers], col="purple") # Segment without weights but with median fitM <- segmentByCBS(data, avg="median") sampleName(fitM) <- "CBS_Example (median)" print(fitM) drawLevels(fitM, col="magenta", lty=3) # Segment with weights fitW <- segmentByCBS(dataW, avg="median") sampleName(fitW) <- "CBS_Example (weighted)" print(fitW) drawLevels(fitW, col="red") # Segment with weights and median fitWM <- segmentByCBS(dataW, avg="median") sampleName(fitWM) <- "CBS_Example (weighted median)" print(fitWM) drawLevels(fitWM, col="orange", lty=3) legend("topright", bg="white", legend=c("outliers", "non-weighted CBS (mean)", "non-weighted CBS (median)", "weighted CBS (mean)", "weighted CBS (median)"), col=c("purple", "purple", "magenta", "red", "orange"), lwd=c(NA,3,3,3,3), lty=c(NA,1,3,1,3), pch=c(1,NA,NA,NA,NA)) ## Assert that weighted segment means are less biased dmean <- getSegments(fit)$mean - getSegments(fitW)$mean cat("Segment mean differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) dmean <- getSegments(fitM)$mean - getSegments(fitWM)$mean cat("Segment median differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multi-chromosome segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data2 <- data data2$chromosome <- 2L data <- rbind(data, data2) dataW <- cbind(data, w=w) par(mar=c(2,3,0.2,1)+0.1) # Segment without weights fit <- segmentByCBS(data) sampleName(fit) <- "CBS_Example" print(fit) plotTracks(fit, Clim=c(-3,3)) # Segment without weights but with median fitM <- segmentByCBS(data, avg="median") sampleName(fitM) <- "CBS_Example (median)" print(fitM) drawLevels(fitM, col="magenta", lty=3) # Segment with weights fitW <- segmentByCBS(dataW, avg="median") sampleName(fitW) <- "CBS_Example (weighted)" print(fitW) drawLevels(fitW, col="red") # Segment with weights and median fitWM <- segmentByCBS(dataW, avg="median") sampleName(fitWM) <- "CBS_Example (weighted median)" print(fitWM) drawLevels(fitWM, col="orange", lty=3) legend("topright", bg="white", legend=c("outliers", "non-weighted CBS (mean)", "non-weighted CBS (median)", "weighted CBS (mean)", "weighted CBS (median)"), col=c("purple", "purple", "magenta", "red", "orange"), lwd=c(NA,3,3,3,3), lty=c(NA,1,3,1,3), pch=c(1,NA,NA,NA,NA)) ## Assert that weighted segment means are less biased dmean <- getSegments(fit)$mean - getSegments(fitW)$mean cat("Segment mean differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) dmean <- getSegments(fitM)$mean - getSegments(fitWM)$mean cat("Segment median differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) PSCBS/tests/segmentByCBS,report.R0000644000176200001440000000247714564051545016231 0ustar liggesusers# This test script calls a report generator which requires # the 'ggplot2' package, which in turn will require packages # 'colorspace', 'dichromat', 'munsell', 'reshape2' and 'scales'. # Only run this test in full testing mode if (Sys.getenv("_R_CHECK_FULL_") != "") { library("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) data <- data.frame(chromosome=data$chromosome, x=data$x, y=data$CT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # CBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=5),] str(dataS) gaps <- findLargeGaps(dataS, minLength=2e6) knownSegments <- gapsToSegments(gaps) # CBS segmentation fit <- segmentByCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) signalType(fit) <- "ratio" # Fake a multi-chromosome segmentation fit1 <- fit fit2 <- renameChromosomes(fit, from=1, to=2) fit <- c(fit1, fit2) report(fit, sampleName="CBS", studyName="CBS-Ex", verbose=-10) } # if (Sys.getenv("_R_CHECK_FULL_")) PSCBS/tests/segmentByPairedPSCBS,DH.R0000644000176200001440000000374014564051545016573 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Run light-weight tests # Use only every 5th data point dataS <- dataS[seq(from=1, to=nrow(data), by=5),] # Number of segments (for assertion) nSegs <- 3L # Number of bootstrap samples (see below) B <- 100L str(dataS) R.oo::attachLocally(dataS) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calculate DH # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - muN <- aroma.light::callNaiveGenotypes(betaN, censorAt=c(0,1)) # SNPs are identifies as those loci that have non-missing 'betaT' & 'muN' isSnp <- (!is.na(betaT) & !is.na(muN)) isHet <- isSnp & (muN == 1/2) rho <- rep(NA_real_, length=length(muN)) rho[isHet] <- 2*abs(betaT[isHet]-1/2) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation using TCN and DH only # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByPairedPSCBS(CT, rho=rho, chromosome=chromosome, x=x, seed=0xBEEF, verbose=-10) print(fit) # Plot results plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=B, verbose=-10) print(fit) plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) and # in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- callAB(fit, verbose=-10) fit <- callLOH(fit, verbose=-10) print(fit) plotTracks(fit) PSCBS/tests/PairedPSCBS,boot.R0000644000176200001440000000535714564051545015373 0ustar liggesusers########################################################### # This tests: # - Bootstrapping for PairedPSCBS objects ########################################################### library("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) dataS <- dataS[seq(from=1, to=nrow(data), by=5),] nSegs <- 4L str(dataS) # Segment known regions knownSegments <- data.frame( chromosome = c( 1, 1, 1), start = c( -Inf, NA, 141510003), end = c(120992603, NA, +Inf) ) fit <- segmentByPairedPSCBS(dataS, knownSegments=knownSegments, avgDH="median", seed=0xBEEF) print(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - B <- 1L seed <- 0xBEEF probs <- c(0.025, 0.05, 0.95, 0.975) sets <- getBootstrapLocusSets(fit, B=B, seed=seed) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset by first segment # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ss <- 1L fitT <- extractSegment(fit, ss) dataT <- getLocusData(fitT) segsT <- getSegments(fitT) # Truth bootT <- bootstrapSegmentsAndChangepoints(fitT, B=B, seed=seed) bootT1 <- bootT$segments[1L,,,drop=FALSE] types <- dimnames(bootT1)[[3L]] dim(bootT1) <- dim(bootT1)[-1L] colnames(bootT1) <- types sumsT <- apply(bootT1, MARGIN=2L, FUN=quantile, probs=probs) print(sumsT) fitTB <- bootstrapTCNandDHByRegion(fitT, B=B, seed=seed) segsTB <- getSegments(fitTB) segsTB <- unlist(segsTB[,grep("_", colnames(segsTB))]) dim(segsTB) <- dim(sumsT) dimnames(segsTB) <- dimnames(sumsT) print(segsTB) # Sanity check stopifnot(all.equal(segsTB, sumsT)) # Calculate summaries using the existing bootstrap samples fitTBp <- bootstrapTCNandDHByRegion(fitT, .boot=bootT) # Sanity check all.equal(fitTBp, fitTB) # Bootstrap from scratch setsT <- getBootstrapLocusSets(fitT, B=B, seed=seed) lociT <- setsT$locusSet[[1L]]$bootstrap$loci idxs <- lociT$tcn tcnT <- array(dataT$CT[idxs], dim=dim(idxs)) tcnT <- apply(tcnT, MARGIN=2L, FUN=mean, na.rm=TRUE) idxs <- lociT$dh dhT <- array(dataT$rho[idxs], dim=dim(idxs)) dhT <- apply(dhT, MARGIN=2L, FUN=median, na.rm=TRUE) c1T <- (1-dhT) * tcnT / 2 c2T <- tcnT - c1T bootT2 <- array(c(tcnT, dhT, c1T, c2T), dim=c(1L, 4L)) colnames(bootT2) <- colnames(bootT1) print(bootT2) # This comparison is only valid if B == 1L if (B == 1L) { # Sanity check stopifnot(all.equal(bootT2, bootT1)) } PSCBS/tests/segmentByNonPairedPSCBS,medianDH.R0000644000176200001440000000463714564051545020432 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) # Non-paired / tumor-only data data <- data[,c("chromosome", "x", "CT", "betaT")] str(data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=20),] # Fake a second chromosome dataT <- dataS dataT$chromosome <- 2L dataS <- rbind(dataS, dataT) rm(dataT) str(dataS) # Non-Paired PSCBS segmentation fit <- segmentByNonPairedPSCBS(dataS, avgDH="median", seed=0xBEEF, verbose=-10) print(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap segment level estimates # (used by the AB caller, which, if skipped here, # will do it automatically) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- bootstrapTCNandDHByRegion(fit, B=100, verbose=-10) print(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in allelic balance (AB) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in DH for calling AB # (which be done by default by the caller, if skipped here) deltaAB <- estimateDeltaAB(fit, flavor="qq(DH)", verbose=-10) print(deltaAB) fit <- callAB(fit, delta=deltaAB, verbose=-10) print(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaAB == deltaAB) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segments in loss-of-heterozygosity (LOH) # NOTE: Ideally, this should be done on whole-genome data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Explicitly estimate the threshold in C1 for calling LOH # (which be done by default by the caller, if skipped here) deltaLOH <- estimateDeltaLOH(fit, flavor="minC1|nonAB", verbose=-10) print(deltaLOH) fit <- callLOH(fit, delta=deltaLOH, verbose=-10) print(fit) plotTracks(fit) # Even if not explicitly specified, the estimated # threshold parameter is returned by the caller stopifnot(fit$params$deltaLOH == deltaLOH) PSCBS/tests/segmentByCBS,weights.R0000644000176200001440000001151214564051545016356 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 x <- sort(runif(J, max=J)) * 1e5 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps outliers <- seq(from=1L, to=J, length.out=0.2*J) y[outliers] <- y[outliers] + 1.5 w <- rep(1.0, times=J) w[outliers] <- 0.01 data <- data.frame(chromosome=1L, x=x, y=y) dataW <- cbind(data, w=w) par(mar=c(2,3,0.2,1)+0.1) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Single-chromosome segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segment without weights fit <- segmentByCBS(data) sampleName(fit) <- "CBS_Example" print(fit) plotTracks(fit) ## Highlight outliers (they pull up the mean levels) points(x[outliers]/1e6, y[outliers], col="purple") # Segment with weights fitW <- segmentByCBS(dataW) sampleName(fitW) <- "CBS_Example (weighted)" print(fitW) drawLevels(fitW, col="red") legend("topright", bg="white", legend=c("outliers", "non-weighted CBS", "weighted CBS"), col=c("purple", "purple", "red"), lwd=c(NA,3,3), pch=c(1,NA,NA)) ## Assert that weighted segment means are less biased dmean <- getSegments(fit)$mean - getSegments(fitW)$mean cat("Segment mean differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation with some known change points # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- data.frame( chromosome=c( 1, 1), start =x[c( 1, 401)], end =x[c(349, J)] ) fit2 <- segmentByCBS(dataW, knownSegments=knownSegments, verbose=TRUE) sampleName(fit2) <- "CBS_Example_2 (weighted)" print(fit2) plotTracks(fit2) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # Chromosome boundaries can be specified as -Inf and +Inf knownSegments <- data.frame( chromosome=c( 1, 1), start =c( -Inf, x[401]), end =c(x[349], +Inf) ) fit2b <- segmentByCBS(dataW, knownSegments=knownSegments, verbose=TRUE) sampleName(fit2b) <- "CBS_Example_2b (weighted)" print(fit2b) plotTracks(fit2b) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # As a proof of concept, it is possible to segment just the centromere, # which contains no data. All statistics will be NAs. knownSegments <- data.frame( chromosome=c( 1), start =x[c(350)], end =x[c(400)] ) fit3 <- segmentByCBS(dataW, knownSegments=knownSegments, verbose=TRUE) sampleName(fit3) <- "CBS_Example_3" print(fit3) plotTracks(fit3, Clim=c(0,5), xlim=c(0,100)) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # If one specify the (empty) centromere as a segment, then its # estimated statistics will be NAs, which becomes a natural # separator between the two "independent" arms. knownSegments <- data.frame( chromosome=c( 1, 1, 1), start =x[c( 1, 350, 401)], end =x[c(349, 400, J)] ) fit4 <- segmentByCBS(dataW, knownSegments=knownSegments, verbose=TRUE) sampleName(fit4) <- "CBS_Example_4" print(fit4) plotTracks(fit4) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) fit5 <- segmentByCBS(dataW, knownSegments=knownSegments, undo=Inf, verbose=TRUE) sampleName(fit5) <- "CBS_Example_5" print(fit5) plotTracks(fit5) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) stopifnot(nbrOfSegments(fit5) == nrow(knownSegments)) # One can also force a separator between two segments by setting # 'start' and 'end' to NAs ('chromosome' has to be given) knownSegments <- data.frame( chromosome=c( 1, 1, 1), start =x[c( 1, NA, 401)], end =x[c(349, NA, J)] ) fit6 <- segmentByCBS(dataW, knownSegments=knownSegments, verbose=TRUE) sampleName(fit6) <- "CBS_Example_6" print(fit6) plotTracks(fit6) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multi-chromosome segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data2 <- data data2$chromosome <- 2L data <- rbind(data, data2) dataW <- cbind(data, w=w) par(mar=c(2,3,0.2,1)+0.1) # Segment without weights fit <- segmentByCBS(data) sampleName(fit) <- "CBS_Example" print(fit) plotTracks(fit, Clim=c(-3,3)) # Segment with weights fitW <- segmentByCBS(dataW) sampleName(fitW) <- "CBS_Example (weighted)" print(fitW) drawLevels(fitW, col="red") legend("topright", bg="white", legend=c("outliers", "non-weighted CBS", "weighted CBS"), col=c("purple", "purple", "red"), lwd=c(NA,3,3), pch=c(1,NA,NA)) ## Assert that weighted segment means are less biased dmean <- getSegments(fit)$mean - getSegments(fitW)$mean cat("Segment mean differences:\n") print(dmean) stopifnot(all(dmean > 0, na.rm=TRUE)) PSCBS/tests/segmentByCBS,futures.R0000644000176200001440000000401414564051545016400 0ustar liggesuserslibrary("PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) * 1e5 w <- runif(J) w[650:800] <- 0.001 ## Create multiple chromosomes data <- knownSegments <- list() for (cc in 1:3) { data[[cc]] <- data.frame(chromosome=cc, y=y, x=x) knownSegments[[cc]] <- data.frame( chromosome=c( cc, cc, cc), start =x[c( 1, 350, 401)], end =x[c(349, 400, J)] ) } data <- Reduce(rbind, data) str(data) knownSegments <- Reduce(rbind, knownSegments) str(knownSegments) message("*** segmentByCBS() via futures ...") message("*** segmentByCBS() via futures with 'future' attached ...") library("future") oplan <- plan() strategies <- c("sequential", "multisession") ## Test 'future.batchtools' futures? pkg <- "future.batchtools" if (require(pkg, character.only=TRUE)) { strategies <- c(strategies, "batchtools_local") } message("Future strategies to test: ", paste(sQuote(strategies), collapse=", ")) fits <- list() for (strategy in strategies) { message(sprintf("- segmentByCBS() using '%s' futures ...", strategy)) plan(strategy) fit <- segmentByCBS(data, seed=0xBEEF, verbose=TRUE) fits[[strategy]] <- fit stopifnot(all.equal(fit, fits[[1]])) } message("*** segmentByCBS() via futures with known segments ...") fits <- list() dataT <- subset(data, chromosome == 1) for (strategy in strategies) { message(sprintf("- segmentByCBS() w/ known segments using '%s' futures ...", strategy)) plan(strategy) fit <- segmentByCBS(dataT, knownSegments=knownSegments, seed=0xBEEF, verbose=TRUE) fits[[strategy]] <- fit stopifnot(all.equal(fit, fits[[1]])) } message("*** segmentByCBS() via futures ... DONE") ## Cleanup plan(oplan) rm(list=c("fits", "dataT", "data", "fit")) PSCBS/tests/segmentByCBS,calls.R0000644000176200001440000000375614564051545016015 0ustar liggesusers# This test script calls a report generator which requires # the 'ggplot2' package, which in turn will require packages # 'colorspace', 'dichromat', 'munsell', 'reshape2' and 'scales'. # Only run this test in full testing mode if (Sys.getenv("_R_CHECK_FULL_") != "") { library("PSCBS") stext <- R.utils::stext # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Load SNP microarray data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- PSCBS::exampleData("paired.chr01") str(data) data <- data.frame(chromosome=data$chromosome, x=data$x, y=data$CT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # CBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop single-locus outliers dataS <- dropSegmentationOutliers(data) # Speed up example by segmenting fewer loci dataS <- dataS[seq(from=1, to=nrow(data), by=5),] str(dataS) gaps <- findLargeGaps(dataS, minLength=2e6) knownSegments <- gapsToSegments(gaps) # CBS segmentation fit <- segmentByCBS(dataS, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) signalType(fit) <- "ratio" plotTracks(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call using the UCSF MAD caller (not recommended) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitC <- callGainsAndLosses(fit) plotTracks(fitC) pars <- fitC$params$callGainsAndLosses stext(side=3, pos=1/2, line=-1, substitute(sigma==x, list(x=sprintf("%.2f", pars$sigmaMAD)))) mu <- pars$muR tau <- unlist(pars[c("tauLoss", "tauGain")], use.names=FALSE) abline(h=mu, lty=2, lwd=2) abline(h=tau, lwd=2) mtext(side=4, at=tau[1], expression(Delta[LOSS]), adj=-0.2, cex=0.7, las=2, xpd=TRUE) mtext(side=4, at=tau[2], expression(Delta[GAIN]), adj=-0.2, cex=0.7, las=2, xpd=TRUE) title(main="CN caller: \"ucsf-mad\"") # Caller to be implemented deltaCN <- estimateDeltaCN(fit) tau <- mu + 1/2*c(-1,+1)*deltaCN abline(h=tau, lty=2, lwd=1, col="red") } # if (Sys.getenv("_R_CHECK_FULL_")) PSCBS/tests/segmentByCBS,shiftTCN.R0000644000176200001440000000550214564051545016370 0ustar liggesuserslibrary("PSCBS") subplots <- R.utils::subplots # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Simulating copy-number data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - set.seed(0xBEEF) # Number of loci J <- 1000 mu <- double(J) eps <- rnorm(J, sd=1/2) y <- mu + eps x <- sort(runif(length(y), max=length(y))) idxs <- which(200 <= x & x < 300) y[idxs] <- y[idxs] + 1 idxs <- which(350 <= x & x < 400) y[idxs] <- NA # centromere x[idxs] <- NA # centromere idxs <- which(650 <= x & x < 800) y[idxs] <- y[idxs] - 1 x <- x*1e5 keep <- is.finite(x) x <- x[keep] y <- y[keep] data <- list() for (chr in 1:2) { data[[chr]] <- data.frame(chromosome=chr, y=y, x=x) } data <- Reduce(rbind, data) subplots(7, ncol=1) par(mar=c(1.7,1,0.2,1)+0.1) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- segmentByCBS(data) print(fit) Clim <- c(-3,3) + c(0,10) plotTracks(fit, Clim=Clim) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Shifting every other chromosome # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitList <- list() chrs <- getChromosomes(fit) for (kk in seq_along(chrs)) { chr <- chrs[kk] fitKK <- extractChromosome(fit, chr) if (kk %% 2 == 0) { fitKK <- shiftTCN(fitKK, shift=+10) } fitList[[kk]] <- fitKK } # for (kk ...) fitT <- do.call(c, fitList) # Sanity check stopifnot(nbrOfSegments(fitT) == nbrOfSegments(fit)) plotTracks(fitT, Clim=Clim) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Shifting every other known segment # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gaps <- findLargeGaps(data, minLength=40e5) knownSegments <- gapsToSegments(gaps, dropGaps=TRUE) fit <- segmentByCBS(data, knownSegments=knownSegments) subplots(2, ncol=1) plotTracks(fit, Clim=Clim) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) fitList <- list() for (kk in seq_len(nrow(knownSegments))) { seg <- knownSegments[kk,] start <- seg$start end <- seg$end fitKK <- extractChromosome(fit, seg$chromosome) segsKK <- getSegments(fitKK) idxStart <- min(which(segsKK$start >= start)) idxEnd <- max(which(segsKK$end <= end)) idxs <- idxStart:idxEnd fitKK <- extractSegments(fitKK, idxs) if (kk %% 2 == 0) { fitKK <- shiftTCN(fitKK, shift=+10) } fitList[[kk]] <- fitKK } # for (kk ...) fitT <- do.call(c, fitList) # Sanity check stopifnot(nbrOfSegments(fitT) == nbrOfSegments(fit)) plotTracks(fitT, Clim=Clim) abline(v=c(knownSegments$start, knownSegments$end)/1e6, lty=3) segList <- seqOfSegmentsByDP(fit) K <- length(segList) subplots(K, ncol=2, byrow=FALSE) par(mar=c(2,1,1,1)) for (kk in 1:K) { knownSegments <- segList[[kk]] fitKK <- resegment(fit, knownSegments=knownSegments, undo=+Inf) plotTracks(fitKK, Clim=c(-3,3)) } # for (kk ...) PSCBS/tests/findLargeGaps.R0000644000176200001440000000270614564051545015135 0ustar liggesuserslibrary("PSCBS") # Simulating copy-number data set.seed(0xBEEF) # Simulate CN data J <- 1000 mu <- double(J) mu[200:300] <- mu[200:300] + 1 mu[350:400] <- NA # centromere mu[650:800] <- mu[650:800] - 1 eps <- rnorm(J, sd=1/2) y <- mu + eps x <- seq(from=1, to=100e6, length.out=J) data <- data.frame(chromosome=0L, x=x) gaps <- findLargeGaps(x=x, minLength=1e6) print(gaps) stopifnot(is.data.frame(gaps)) stopifnot(nrow(gaps) == 0L) segs <- gapsToSegments(gaps) print(segs) stopifnot(is.data.frame(segs)) stopifnot(nrow(segs) == 1L) gaps <- findLargeGaps(data, minLength=1e6) print(gaps) stopifnot(is.data.frame(gaps)) stopifnot(nrow(gaps) == 0L) segs <- gapsToSegments(gaps) print(segs) stopifnot(is.data.frame(segs)) stopifnot(nrow(segs) == 1L) ## Add missing values data2 <- data data$x[30e6 < x & x < 50e6] <- NA gaps <- findLargeGaps(data, minLength=1e6) print(gaps) stopifnot(is.data.frame(gaps)) stopifnot(nrow(gaps) == 1L) segs <- gapsToSegments(gaps) print(segs) stopifnot(is.data.frame(segs)) stopifnot(nrow(segs) == 3L) # BUG FIX: Issue #6 gaps <- findLargeGaps(chromosome=rep(1,10), x=1:10, minLength=2) print(gaps) stopifnot(is.data.frame(gaps)) stopifnot(nrow(gaps) == 0L) # BUG FIX: Issue #9 segs <- gapsToSegments(gaps) print(segs) stopifnot(is.data.frame(segs)) stopifnot(nrow(segs) == 1L) # BUG FIX: PSCBS GitHub Issue #8 gaps <- try({ findLargeGaps(chromosome=rep(1,3), x=as.numeric(1:3), minLength=1) }) stopifnot(inherits(gaps, "try-error")) PSCBS/tests/randomSeed.R0000644000176200001440000001001514564051545014500 0ustar liggesuserslibrary("PSCBS") message("*** randomSeed() - setup ...") ovars <- ls(envir=globalenv()) genv <- globalenv() RNGkind("Mersenne-Twister") if (exists(".Random.seed", envir=genv, inherits=FALSE)) rm(list=".Random.seed", envir=genv, inherits=FALSE) seed0 <- genv$.Random.seed stopifnot(is.null(seed0)) okind0 <- RNGkind()[1L] sample1 <- function() { sample(0:9, size=1L) } message("*** randomSeed() - setup ... done") message("*** randomSeed('get') ...") ## Get random seed seed <- randomSeed("get") stopifnot(identical(seed, seed0)) ## Repeat after new sample y1 <- sample1() message(sprintf("Random number: %d", y1)) seed1 <- randomSeed("get") stopifnot(!identical(seed1, seed0)) message("*** randomSeed('get') ... done") message("*** randomSeed('set', 42L) ...") randomSeed("set", seed=42L) seed2 <- randomSeed("get") stopifnot(!identical(seed2, seed1)) y2 <- sample1() message(sprintf("Random number: %d (with random seed = 42L)", y2)) ## Reset to previous state randomSeed("reset") seed3 <- randomSeed("get") stopifnot(identical(seed3, seed1)) stopifnot(identical(RNGkind()[1L], okind0), identical(randomSeed("get"), seed1)) message("*** randomSeed('set', 42L) ... done") message("*** randomSeed('set', NULL) ...") randomSeed("set", seed=NULL) seed4 <- randomSeed("get") stopifnot(is.null(seed4)) y3 <- sample1() message(sprintf("Random number: %d", y3)) message("*** randomSeed('set', NULL) ... done") message("*** randomSeed('set', 42L) again ...") seed5 <- randomSeed("get") randomSeed("set", seed=42L) y4 <- sample1() message(sprintf("Random number: %d (with random seed = 42L)", y4)) stopifnot(identical(y4, y2)) randomSeed("reset") stopifnot(identical(RNGkind()[1L], okind0), identical(randomSeed("get"), seed5)) message("*** randomSeed('set', 42L) again ... done") ## L'Ecuyer-CMRG: Random number generation for parallel processing message("*** randomSeed(): L'Ecuyer-CMRG stream ...") okind <- RNGkind()[1L] stopifnot(identical(okind, okind0)) randomSeed("set", seed=NULL) oseed <- randomSeed("get") stopifnot(is.null(oseed)) randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") oseed2 <- randomSeed("reset") str(oseed2) stopifnot(identical(oseed2, oseed)) stopifnot(identical(RNGkind()[1L], okind), identical(randomSeed("get"), oseed)) randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") seed0 <- randomSeed("get") seeds0 <- lapply(1:10, FUN=function(i) randomSeed("advance")) oseed2 <- randomSeed("reset") stopifnot(identical(oseed2, oseed)) stopifnot(identical(RNGkind()[1L], okind), identical(randomSeed("get"), oseed)) ## Assert reproducible .Random.seed stream randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") seed1 <- randomSeed("get") seeds1 <- lapply(1:10, FUN=function(i) randomSeed("advance")) stopifnot(identical(seed1, seed0)) stopifnot(identical(seeds1, seeds0)) randomSeed("reset") stopifnot(identical(RNGkind()[1L], okind), identical(randomSeed("get"), oseed)) randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") seeds2 <- randomSeed("advance", n=10L) stopifnot(identical(seeds2, seeds0)) randomSeed("reset") stopifnot(identical(RNGkind()[1L], okind), identical(randomSeed("get"), oseed)) randomSeed("set", seed=seeds2[[1]], kind="L'Ecuyer-CMRG") randomSeed("reset") stopifnot(identical(RNGkind()[1L], okind), identical(randomSeed("get"), oseed)) randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") y0 <- sapply(1:10, FUN=function(ii) { randomSeed("advance") sample1() }) print(y0) randomSeed("reset") randomSeed("set", seed=42L, kind="L'Ecuyer-CMRG") y1 <- sapply(1:10, FUN=function(ii) { randomSeed("advance") sample1() }) print(y1) stopifnot(identical(y1, y0)) randomSeed("reset") stopifnot(identical(RNGkind()[1L], okind)) message("*** randomSeed(): L'Ecuyer-CMRG stream ... done") ## Cleanup message("*** randomSeed() - cleanup ...") genv <- globalenv() RNGkind("Mersenne-Twister") if (exists(".Random.seed", envir=genv, inherits=FALSE)) rm(list=".Random.seed", envir=genv, inherits=FALSE) rm(list=ovars, envir=globalenv()) message("*** randomSeed() - cleanup ... done") PSCBS/vignettes/0000755000176200001440000000000014564175017013146 5ustar liggesusersPSCBS/vignettes/CBS.tex.rsp0000644000176200001440000003011114564051545015075 0ustar liggesusers<%@meta language="R-vignette" content="-------------------------------- DIRECTIVES FOR R: %\VignetteIndexEntry{Total copy-number segmentation using CBS} %\VignetteKeyword{copy numbers} %\VignetteKeyword{genomic aberrations} %\VignetteAuthor{Henrik Bengtsson} %\VignetteEngine{R.rsp::rsp} --------------------------------------------------------------------"%> <% t0 <- Sys.time() %> <% R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() signalType <- "TCN" %> \documentclass[letter]{article} \usepackage{xspace} \usepackage{alltt} \usepackage{xcolor} \usepackage{natbib} % \citep{}, \citet{} \usepackage{graphicx} \graphicspath{{figures/}} <%------------------------------------------------------------------- Assign PDF metadata -------------------------------------------------------------------%> % PDF metadata \usepackage{hyperref} % Ideally \hypersetup{hidelinks}, but for backward compatibility: \hypersetup{pdfborder={0 0 0}} \hypersetup{ pdfauthor={<%@meta name="author"%>}, pdftitle={<%@meta name="title"%>}, pdfsubject={}, pdfkeywords={<%@meta name="keywords"%>}, pdfproducer={R.rsp v<%=R.rsp$version%> by <%=R.rsp$author%>} } % Page margins \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.5in} \addtolength{\textheight}{1in} % Placement of floats \setcounter{bottomnumber}{2} \renewcommand{\topfraction}{1.0} \renewcommand{\bottomfraction}{1.0} \renewcommand{\textfraction}{0.0} \renewcommand{\floatpagefraction}{1.0} % Macros \newcommand{\keywords}[1]{{\footnotesize{\textbf{Keywords: }#1}}\xspace} \newcommand{\pkg}[1]{\textsl{#1}\xspace} \newcommand{\file}[1]{\textsl{#1}\xspace} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\bs}{$\backslash$} \newenvironment{rspVerbatim}{\vspace{-\parskip}\begin{alltt}\color{blue}}{\end{alltt}} \newenvironment{escapeRspVerbatim}{\vspace{-\parskip}\begin{alltt}}{\end{alltt}} \title{<%@meta name="title"%>} \author{<%@meta name="author"%>} \date{<%=format(as.Date(PSCBS$date), format="%B %d, %Y")%>} \begin{document} \maketitle \begin{abstract} The Circular Binary Segmentation (CBS) method partitions a genome into segments of constant total copy numbers (TCNs) based on DNA microarray data. The method also calls .... CBS was designed to work with data from any DNA microarray technology and generation, including Affymetrix and Illumina. This document shows how to use the \pkg{PSCBS} package to run CBS on a tumor sample. \end{abstract} \keywords{<%@meta name="keywords"%>} \begin{center} \emph{This vignette is distributed as part of the \pkg{PSCBS} package, which is available on CRAN (\url{https://cran.r-project.org/}). The authors very much appreciate feedback on this document.} \end{center} \clearpage \tableofcontents \clearpage <%------------------------------------------------------------------- BACKGROUND -------------------------------------------------------------------%> \section{Background} \label{secBackground} We will here use a small example data set to illustrate how to setup the data in a format suitable for CBS, how to identify segments, how to call them, and how to plot and export the segmentation results. The statistical model and the algorithm behind CBS is explained in detail in \citet{OlshenA_etal_2004, VenkatramanOlshen_2007}. <%------------------------------------------------------------------- EXAMPLE -------------------------------------------------------------------%> \section{Preparing data to be segmented} The CBS method requires total copy-number (TCN) estimates. More precisely, it requires TCN ratios for a sample of interest relative to a reference ($y$). The genomic location of the loci in form of chromosome and physical position are also required. \subsection{Locus-level total copy-number signals} \label{secData} In this example we will use a small example data set part of the \pkg{PSCBS} package. It can be loaded as: <% fullname <- "PairedPSCBS,exData,chr01" %> \begin{verbatim} <%=withCapture({ data <- PSCBS::exampleData("paired.chr01") data <- data[,c("chromosome", "x", "CT")] colnames(data)[3] <- "y" str(data) })%> \end{verbatim} In additional to the mandatory fields (\code{chromosome}, \code{x}, and \code{C} this data set also contains .... The latter will not be used here. \subsection{Dropping <%=signalType%> outliers} \label{secTCNOutliers} There may be some outliers among the <%=signalType%>s. In CBS~\citep{OlshenA_etal_2004,VenkatramanOlshen_2007}, the authors propose a method for identifying outliers and then to shrink such values toward their neighbors ("smooth") before performing segmentation. At the time CBS was developed it made sense to not just to drop outliers because the resolution was low and every datapoint was valuable. With modern technologies the resolution is much higher and we can afford dropping such outliers, which can be done by: \begin{verbatim} <%=withCapture({ data <- dropSegmentationOutliers(data) })%> \end{verbatim} Dropping <%=signalType%> outliers is optional. \section{CBS segmentation} \subsection{Skipping centromeres and other large gaps} \label{secGaps} The CBS method does not take the physical locations (in units of nucleotides) of the loci in to account when segmenting the data, only their relative ordering along the genome. This means that after having ordered the loci along genome, it will treat two "neighboring" loci that are on both sides of the centromere equally as two neighboring loci that are only few hundred bases apart. This may introduce erroneous change points that appears to be inside the centromere and biological impossible interpretation of the identified copy-number states. The same issues occur for other large gaps of the genome where there are no observed signals. To avoid this, although not mandatory, we will locate all gaps of the genome where there are no observed loci. As a threshold we will consider a region to be a "gap" if the distance between the two closest loci is greater than 1Mb. \begin{verbatim} <%=withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps })%> \end{verbatim} which shows that there is a 20.5Mb long gap between 121.0Mb and 141.5Mb on Chromosome~1. This is the centromere of Chromosome~1. Gaps cannot be specified directly. Instead they need to be give as part of a set of "known" segments, which is done as: \begin{verbatim} <%=withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments })%> \end{verbatim} Below, we will use this to tell CBS to segment Chromosome~1 in three independent segments, where the first segments is from the beginning of the chromosomes (hence '-Inf') to 120.1Mb, the second from 120.1-141.5Mb (the above gap), and the third is from 141.5Mb to the end of the chromosome (hence '+Inf'). Just as CBS segments chromosomes independently of each other, it also segments priorly known segments independently of each other. Specifying known segments is optional. \subsection{Identifying <%=signalType%> segments} We are now ready to segment the locus-level <%=signalType%> signals. This is done by\footnote{We fix the random seed in order for the results of this vignette to be exactly reproducible.}: \begin{verbatim} <%=withCapture({ fit <- segmentByCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) })%> \end{verbatim} Note that this may take several minutes when applied to whole-genome data. The result of the segmentation is a set of segments identified to have the same underlying <%=signalType%> levels. In this particular case, <%=nbrOfSegments(fit)%> <%=signalType%> segments were found: <% fit <- fixLocations(fit) %> \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> Note how Segment~\#<%=which(segs$nbrOfLoci == 0)%> has no mean-level estimates. It is because it corresponds to the centromere (the gap) that was identified above. CBS did indeed try to segment it, but since there are no data points, all estimates are missing values. \subsection{Displaying genomic <%=signalType%> profiles} To plot the <%=signalType%> segmentation results, do: \begin{verbatim} plotTracks(fit) \end{verbatim} which displays <%=signalType%> as in Figure~\ref{figTracks}. To zoom in on a particular region, do: \begin{verbatim} plotTracks(fit, xlim=c(120,244)*1e6) \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.35, { plotTracks(fit) })%>}} \end{center} \caption{Segments identified by CBS. The <%=signalType%> signals with the <%=signalType%> mean levels (purple). } \label{figTracks} \end{figure} \section{Calling segments} TBA. <%--- \subsection{Results from calling <%=signalType%> states} All calls are appended to the segmentation results as logical columns: \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> ---%> \section{Saving results} \subsection{Writing segments to a tab-delimited text file} To write the <%=signalType%> segmentation results to file, do: \begin{verbatim} pathname <- writeSegments(fit, name="MySample", simplify=TRUE) \end{verbatim} \section{Experimental} In this section we illustrate some of the ongoing and future work of the PSCBS package. Please be aware that these methods are very much under construction, possibly incomplete and in worst case even incorrect. \subsection{Pruning segmentation profile} By using hierarchical cluster of the segment means it is possible to prune the <%=signalType%> profile such that change points with very small absolute changes are dropped. If change points are dropped this way, this results in a smaller number of segments, which are hence longer. \begin{verbatim} <%=withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) })%> \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.35, { plotTracks(fitP) })%>}} \end{center} \caption{Pruned <%=signalType%> segments plotted as in Figure~\ref{figTracks}.} \label{figTracksPruned} \end{figure} \subsection{Report generation} A multipage PDF report that contains both whole-genome and per-chromosome summaries and figures can be generated by: \begin{verbatim} > report(fit, sampleName="CBS", studyName="CBS-Ex", verbose=-10) \end{verbatim} By default, the reports are written to directory \code{reports//} under the current working directory. In addition to the PDF, that directory also contains subdirectory \code{figures/} holding all generated figure files (e.g. PNGs and PDFs) for easy inclusion elsewhere. <%------------------------------------------------------------------- REFERENCES -------------------------------------------------------------------%> \bibliographystyle{natbib} \bibliography{PSCBS} <%------------------------------------------------------------------- APPENDIX -------------------------------------------------------------------%> \clearpage \section*{Appendix} \subsection*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using \code{rfile()} of the R.rsp package. Total processing time after RSP-to-R translation was <%=dt <- round(Sys.time()-t0, digits=2)%> <%=attr(dt, "units")%>. \end{document} PSCBS/vignettes/PairedPSCBS.tex.rsp0000644000176200001440000005376114564051545016505 0ustar liggesusers<%@meta language="R-vignette" content="-------------------------------- DIRECTIVES FOR R: %\VignetteIndexEntry{Parent-specific copy-number segmentation using Paired PSCBS} %\VignetteAuthor{Henrik Bengtsson} %\VignetteKeyword{copy numbers} %\VignetteKeyword{allele specific} %\VignetteKeyword{parent specific} %\VignetteKeyword{genomic aberrations} %\VignetteEngine{R.rsp::rsp} --------------------------------------------------------------------"%> <% t0 <- Sys.time() %> <% R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() %> \documentclass[letter]{article} \usepackage{xspace} \usepackage{alltt} \usepackage{xcolor} \usepackage{natbib} % \citep{}, \citet{} \usepackage{graphicx} \graphicspath{{figures/}} <%------------------------------------------------------------------- Assign PDF metadata -------------------------------------------------------------------%> % PDF metadata \usepackage{hyperref} % Ideally \hypersetup{hidelinks}, but for backward compatibility: \hypersetup{pdfborder={0 0 0}} \hypersetup{ pdfauthor={<%@meta name="author"%>}, pdftitle={<%@meta name="title"%>}, pdfsubject={}, pdfkeywords={<%@meta name="keywords"%>}, pdfproducer={R.rsp v<%=R.rsp$version%> by <%=R.rsp$author%>} } % Page margins \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.5in} \addtolength{\textheight}{1in} % Placement of floats \setcounter{bottomnumber}{2} \renewcommand{\topfraction}{1.0} \renewcommand{\bottomfraction}{1.0} \renewcommand{\textfraction}{0.0} \renewcommand{\floatpagefraction}{1.0} % Macros \newcommand{\keywords}[1]{{\footnotesize{\textbf{Keywords: }#1}}\xspace} \newcommand{\pkg}[1]{\textsl{#1}\xspace} \newcommand{\file}[1]{\textsl{#1}\xspace} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\bs}{$\backslash$} \newcommand{\alphaTCN}{\alpha_{\textnormal{TCN}}\xspace} \newcommand{\alphaDH}{\alpha_{\textnormal{DH}}\xspace} \newcommand{\LOH}{\ensuremath{\textnormal{LOH}}\xspace} \newcommand{\AB}{\ensuremath{\textnormal{AB}}\xspace} \newenvironment{rspVerbatim}{\vspace{-\parskip}\begin{alltt}\color{blue}}{\end{alltt}} \newenvironment{escapeRspVerbatim}{\vspace{-\parskip}\begin{alltt}}{\end{alltt}} \title{<%@meta name="title"%>} \author{<%@meta name="author"%>} \date{<%=format(as.Date(PSCBS$date), format="%B %d, %Y")%>} \begin{document} \maketitle \begin{abstract} The Paired Parent-Specific Circular Binary Segmentation (Paired PSCBS) method partitions a tumor genome into segments of constant parent-specific copy numbers (PSCNs) based on SNP DNA microarray data from a matched tumor-normal pair. The method also calls segments with run of homozygosity (ROH), segments in allelic balance (AB) and segments with loss of heterozygosity (LOH). Paired PSCBS was designed to work with data from any SNP microarray technology and generation, including Affymetrix and Illumina. This document shows how to use the \pkg{PSCBS} package to run Paired PSCBS on a tumor-normal pair. \end{abstract} \keywords{<%@meta name="keywords"%>} \begin{center} \emph{This vignette is distributed as part of the \pkg{PSCBS} package, which is available on CRAN (\url{https://cran.r-project.org/}). The authors very much appreciate feedback on this document.} \end{center} \clearpage \tableofcontents \clearpage <%------------------------------------------------------------------- BACKGROUND -------------------------------------------------------------------%> \section{Background} \label{secBackground} We will here use a small example data set to illustrate how to setup the data in a format suitable for Paired PSCBS, how to identify segments, how to call them, and how to plot and export the segmentation results. The statistical model and the algorithm behind Paired PSCBS is explained in detail in~\citet{OlshenA_etal_2011}. <%------------------------------------------------------------------- EXAMPLE -------------------------------------------------------------------%> \section{Preparing data to be segmented} The Paired PSCBS~\citep{OlshenA_etal_2011} method requires tumor-normal paired parent-specific copy-number (PSCN) signals. More precisely, it requires total copy-number (TCN) estimates for the tumor relative to the matched normal ($C_T$), allele B fractions (BAFs) for the tumor ($\beta_T$) and BAFs for the matched normal ($\beta_N$). The genomic locations of the loci in form of chromosome and physical position are also required. \subsection{Locus-level SNP copy-number signals} \label{secData} In this example we will use a small example data set part of the \pkg{PSCBS} package. It can be loaded as: <% fullname <- "PairedPSCBS,exData,chr01" %> \begin{verbatim} <%=withCapture({ data <- PSCBS::exampleData("paired.chr01") str(data) })%> \end{verbatim} In additional to the mandatory fields (\code{chromosome}, \code{x}, \code{CT}, \code{betaT}, and \code{betaN}), this data set also contains TCNs for normal (\code{CN}) relative to a large pool of normal samples. The latter will not be used here. \subsection{Dropping TCN outliers} \label{secTCNOutliers} There may be some outliers among the TCNs. In CBS~\citep{OlshenA_etal_2004,VenkatramanOlshen_2007}, the authors propose a method for identifying outliers and then to shrink such values toward their neighbors ("smooth") before performing segmentation. At the time CBS was developed it made sense to not just to drop outliers because the resolution was low and every datapoint was valuable. With modern technologies the resolution is much higher and we can afford dropping such outliers, which can be done by: \begin{verbatim} <%=withCapture({ data <- dropSegmentationOutliers(data) })%> \end{verbatim} Dropping TCN outliers is optional. \section{Paired PSCBS segmentation} \subsection{Skipping centromeres and other large gaps} \label{secGaps} Like the CBS method, Paired PSCBS does not take the physical locations (in units of nucleotides) of the loci in to account when segmenting the data, only their relative ordering along the genome. This means that after having ordered the loci along genome, it will treat two "neighboring" loci that are on both sides of the centromere equally to two neighboring loci that are only a few hundred bases apart. This may introduce erroneous change points that appear to be inside the centromere. The same issues occur for other large gaps of the genome where there are no observed signals. To avoid this, although not mandatory, we will locate all gaps of the genome where there are no observed loci. As a threshold we will consider a region to be a "gap" if the distance between the two closest loci is greater than 1Mb. \begin{verbatim} <%=withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps })%> \end{verbatim} which shows that there is a 20.5Mb long gap between 121.0Mb and 141.5Mb on Chromosome~1. This is the centromere of Chromosome~1. It is not possible to specify "gaps" to the segmentation function. Instead they need to be given as part of a set of "known" segments, which is done as: \begin{verbatim} <%=withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments })%> \end{verbatim} Below, we will use this to tell Paired PSCBS to segment Chromosome~1 into three independent segments, where the first segment is from the beginning of the chromosome (hence '-Inf') to 120.1Mb, the second one from 120.1-141.5Mb (the above gap), and the third one is from 141.5Mb to the end of the chromosome (hence '+Inf'). Just as Paired PSCBS segments chromosomes independently of each other, it also segments priorly known segments independently of each other. Specifying known segments is optional. \subsection{Identifying PSCN segments} We are now ready to segment the locus-level PSCN signals. This is done by\footnote{We fix the random seed in order for the results of this vignette to be numerically reproducible.}: \begin{verbatim} <%=withCapture({ fit <- segmentByPairedPSCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) })%> \end{verbatim} Note that this may take several minutes when applied to whole-genome data. The above call will also normalize the tumor BAFs using the TumorBoost normalization method~\citep{BengtssonH_etal_2010} (without preserving the relative scale for homozygous and heterozygous BAFs; in a future version, this will be the default). If this has already been done or the tumor signals have been normalized by other means, the TumorBoost step can be skipped by setting argument \code{tbn=FALSE}. The result of the segmentation is a set of segments identified to have the same underlying PSCN levels. In this particular case, <%=nbrOfSegments(fit)%> PSCN segments were found: <% fit <- fixLocations(fit) %> \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> Note that Segment~\#<%=which(segs$tcnNbrOfLoci == 0)%> has no mean-level estimates. It is because it corresponds to the centromere (the gap) that was identified above. Paired PSCBS did indeed try to segment it, but since there are no data points, all estimates are missing values. Similarly, for Segment~\#<%=which(segs$dhNbrOfLoci == 0)%> the DH and minor and major CNs mean estimates are all missing values. This is because, Paired PSCBS identified that segment by first segmenting the TCN signals by themselves, and after which it tried to segment the DH signals within that segment. Since there are no heterozygous SNPs in the segment, there are no DH signals, and hence there is no DH mean estimate. \subsection{Displaying genomic PSCN profiles} To plot the PSCN segmentation results, do: \begin{verbatim} plotTracks(fit) \end{verbatim} which by default displays three panels containing TCN, decrease of heterozygosity (DH), and minor and major CNs as in Figure~\ref{figTracks}. To plot only one panel with TCN and minor and major CNs and zoom in on a particular region, do (not shown): \begin{verbatim} plotTracks(fit, tracks="tcn,c1,c2", xlim=c(120,244)*1e6) \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.6, { plotTracks(fit) })%>}} \end{center} \caption{PSCN segments identified by Paired PSCBS. \textbf{Top}: The TCN signals with the TCN mean levels (purple). \textbf{Middle}: The DH signals with the DH mean levels (orange). \textbf{Bottom}: The TCN signals with the minor CN ($C_1$; blue), the major CN ($C_2$; red) and the TCN ($C=C_1+C_2$; purple) mean levels. } \label{figTracks} \end{figure} \section{Calling segments} The calling algorithms for allelic balance (AB) and loss of heterozygosity (LOH) are based on quantile estimates of the different mean levels. These estimates are obtained using non-parametric bootstrap techniques. For more details, see~\citet{OlshenA_etal_2011}. After the Paired PSCBS method was published, we have added methods for calling run of homozygosity (ROH) and neutral total copy number (NTCN). \emph{The ROH and NTCN calling methods should be considered under development until further notice, meaning they and their results may change without notice.} \subsection{Calling segments with run of homozygosity (ROH)*} \emph{Please note that this method is under development. This means that it may change without further notice.} A region has a run of homozygotes (ROH) if all of its SNPs are homozygous (in the normal). Since such a region has no heterozyous SNPs, its decrease in heterozygosity (DH) is undefined. Likewise, the minor and major copy numbers are unknown. However, if there are genotyping errors within an ROH region, we will obtain a non-missing DH mean level and hence also finite minor and major CNs. In order to adjust for these faulty estimates, we test if the identified segments are ROHs or not by: \begin{verbatim} <%=withCapture({ fit <- callROH(fit, verbose=-10) })%> \end{verbatim} This will also set the corresponding DH and minor and major CN mean levels to NA. The total CN mean levels are not affected by the ROH call. \subsubsection{Tuning parameters} For each segment, the test for ROH calculates the fraction of SNPs that are called heterozygous. If the fraction of heterozygotes is smaller than a threshold, the segmented is called ROH, otherwise not. The default threshold is 1/12. To use a different threshold, set argument \code{delta} to a scalar in $[0,1]$. For example, using \code{callROH(fit, delta=1/30)} makes the ROH caller more conservative.\footnote{It is our plan to replace this basic test with a bionomial test.} \subsection{Calling segments in allelic balance (AB)} The AB caller tests whether the DH level of a segment is small enough to be considered zero, which means that the minor and the major CNs are equal, i.e. the segment is in allelic balance. To call the AB state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callAB(fit, verbose=-10) })%> \end{verbatim} Because the caller utilizes bootstrapping techniques, calling AB may take some time if there is a large number of segments. Segments already called ROH will not be called for AB, and their AB statuses will have a missing value (\code{NA}). \subsubsection{Tuning parameters} The AB caller tests whether a segment's DH is zero or not, by comparing its DH level (or more precisely, the $5\%$ quantile of its bootstrapped DH mean level) to a threshold. This threshold will be a function of the noise level, because the noisier the BAF signals (and hence the DH signals), the greater the bias of the DH mean level for segments in AB will be. Because of this, the threshold is chosen from data by estimating the noise level of the DH signals near zero. Further rationales and details are given in~\citet{OlshenA_etal_2011}. The AB threshold can be estimated explicitly and used in the caller as \begin{verbatim} deltaAB <- estimateDeltaAB(fit, scale=1) fit <- callAB(fit, delta=deltaAB) \end{verbatim} By decreasing argument \code{scale} (a positive scalar), a smaller threshold will be obtained resulting in a more conservative AB caller. \subsection{Calling segments with loss of heterozygosity (LOH)} The LOH caller tests whether the minor CN level of a segment is large enough to be considered non-zero, which means that the segment is \emph{not} in LOH. To call the LOH state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callLOH(fit, verbose=-10) })%> \end{verbatim} Note that in order to call LOH, one has to call allelic balance first. Since the bootstrapping was already done in the AB caller, it is not repeated here, which is why calling LOH is faster than calling AB. Analogously to the AB caller, segments already called ROH will not be called for LOH, and their LOH statuses will have a missing value (\code{NA}). Segments already called AB will be called non-LOH, because AB and LOH are exclusively mutual states. \subsubsection{Tuning parameters} The LOH caller tests whether a segment's minor CN is non-zero or not, by comparing its minor CN level (or more precisely, the $95\%$ quantile of its bootstrapped minor CN mean level) to a threshold. This threshold will, among other components, be a function of normal contamination, i.e. the greater the fraction of normal cells is the greater the threshold needs to be in order to call LOH in the tumor cells. Because of this, the threshold is chosen from data as the midpoint of the estimated levels of minor CNs zero and one, which in turn is a function of the normal contamination. For details on the definition of LOH and details on the LOH caller, see~\citet{OlshenA_etal_2011}. The LOH threshold can be estimated explicitly and used as: \begin{verbatim} deltaLOH <- estimateDeltaLOH(fit, midpoint=1/2) fit <- callLOH(fit, delta=deltaLOH) \end{verbatim} By decreasing argument \code{midpoint} in $[0,1]$, a smaller threshold will be obtained resulting in a more conservative LOH caller. \subsection{Calling segments with neutral total copy number (NTCN)*} \emph{Please note that this method is under development. This means that it may change without further notice.} The neutral total copy number (NTCN) caller tests whether the total CN level of a segment is neutral (e.g. diploid) or not. To call the NTCN state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callNTCN(fit, verbose=-10) })%> \end{verbatim} \subsubsection{Tuning parameters} The NTCN caller identifies segments which TCN mean levels (or more precisely, which $95\%$ confidence intervals) are within a given "acceptance" region. This acceptance region is determined by the $95\%$ confidence interval of an initial set of AB segments identified to be copy neutral and then expanded by half a TCN unit length. The true length of half a total copy number unit is specified by the argument \code{delta} to \code{callNTCN()}. Its length should be a function of the overall background signals (which includes normal contamination and more), such that the width of the acceptance region becomes smaller when the background increases. The background signal (\code{kappa}) and \code{delta} can be estimated explicitly as: \begin{verbatim} kappa <- estimateKappa(fit) deltaCN <- estimateDeltaCN(fit, scale=1, kappa=kappa) fit <- callNTCN(fit, delta=deltaCN, verbose=-10) \end{verbatim} By decreasing the tuning parameter \code{scale} (a positive scalar), a smaller acceptance region will be obtained, which results in a more conservative CN caller. \subsection{Results from calling ROH, AB, LOH and NTCN} All calls are appended to the segmentation results as logical columns: \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> \section{Saving results} \subsection{Writing segments to a tab-delimited text file} To write the PSCN segmentation results to file, do: \begin{verbatim} pathname <- writeSegments(fit, name="MySample", simplify=TRUE) \end{verbatim} With \code{simplify=FALSE} (default) quantile estimates of the different mean levels will also be written, which roughly doubles the file size. \section{Experimental} In this section we illustrate some of the ongoing and future work that will be contained in the PSCBS package. Please be aware that these methods are very much under construction, possibly incomplete and in the worst case, even incorrect. \subsection{Less biased Decrease of Heterozygosity (DH) estimates} The DH mean levels of the segments are estimated as the sample mean of the DH signals within each segment. Since DH signals are by definition truncated at zero, the mean level estimates will always be greater than zero even if the true underlying DH is exactly zero. An additional bias is introduced because the distribution of the DH signals is skewed for small DHs, causing the sample mean estimate to be biased. A less biased estimate can be obtained by using the median estimator. To use the median estimator for DH mean levels, specify argument \code{avgDH="median"} to the \code{segmentByPairedPSCBS()} call. Because the DH mean levels will be less biased, the $(C_1,C_2)$ mean level estimates will also be less biased, e.g. they will be closer to each other for segments that are in allelic balance. \subsection{Pruning segmentation profile} By applying hierarchical clustering on the segment means, it is possible to prune the PSCN profile such that change points with very small absolute changes are dropped. If change points are dropped this way, this results in a smaller number of segments, which are hence longer on average. To prune Paired PSCBS segmentation results this way, do: \begin{verbatim} <%=withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) })%> \end{verbatim} The result of this is shown in Figure~\ref{figTracksPruned}. \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.6, { plotTracks(fitP) })%>}} \end{center} \caption{Pruned PSCN segments plotted as in Figure~\ref{figTracks}.} \label{figTracksPruned} \end{figure} In the current implementation, any segment calls and quantile mean levels estimates previously are dropped when pruning. \subsection{Report generation} A multipage PDF report that contains both whole-genome and per-chromosome summaries and figures can be generated by: \begin{verbatim} > report(fit, sampleName="PairedPSCBS", studyName="PSCBS-Ex", verbose=-10) \end{verbatim} By default, the reports are written to directory \code{reports//} under the current working directory. In addition to the PDF, that directory also contains subdirectory \code{figures/} holding all generated figure files (e.g. PNGs and PDFs) for easy inclusion elsewhere. <%------------------------------------------------------------------- REFERENCES -------------------------------------------------------------------%> \bibliographystyle{natbib} \bibliography{PSCBS} <%------------------------------------------------------------------- APPENDIX -------------------------------------------------------------------%> \clearpage \section*{Appendix} \subsection*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using \code{rfile()} of the R.rsp package. Total processing time after RSP-to-R translation was <%=dt <- round(Sys.time()-t0, digits=2)%> <%=attr(dt, "units")%>. \end{document} PSCBS/vignettes/natbib.bst0000644000176200001440000006316014564051545015124 0ustar liggesusers%% %% This is file `natbib.bst', generated %% on <1994/9/16> with the docstrip utility (2.2h). %% %% The original source files were: %% %% genbst.mbs (with options: `ay,nat,seq-lab,nm-rev,dt-beg,yr-par,vol-bf, %% volp-com,etal-it') %% ---------------------------------------- %% *** Personal bib style, PWD *** %% %% (Here are the specifications of the source file) %% \ProvidesFile{genbst.mbs}[1994/09/16 1.5 (PWD)] %% For use with BibTeX version 0.99a or later %% and with LaTeX 2.09 or 2e %%------------------------------------------------------------------- %% NOTICE: %% This file may be used for non-profit purposes. %% It may not be distributed in exchange for money, %% other than distribution costs. %% %% The author provides it `as is' and does not guarantee it in any way. %% %% Copyright (C) 1994 Patrick W. Daly %% Max-Planck-Institut f\"ur Aeronomie %% Postfach 20 %% D-37189 Katlenburg-Lindau %% Germany %% %% E-mail: %% SPAN-- nsp::linmpi::daly (note nsp also known as ecd1) %% Internet-- daly@linmpi.dnet.gwdg.de %%----------------------------------------------------------- %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %%--------------------------------------------------------------------- % This is an author-year citation style bibliography. As such, it is % non-standard LaTeX, and requires a special package file to function properly. % Such a package is natbib.sty by Patrick W. Daly % The form of the \bibitem entries is % \bibitem[Jones et al.(1990)]{key}... % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... % The essential feature is that the label (the part in brackets) consists % of the author names, as they should appear in the citation, with the year % in parentheses following. There must be no space before the opening % parenthesis! % With natbib v5.3, a full list of authors may also follow the year. % In natbib.sty, it is possible to define the type of enclosures that is % really wanted (brackets or parentheses), but in either case, there must % be parentheses in the label. % The \cite command functions as follows: % \cite{key} ==>> Jones et al. (1990) % \cite[]{key} ==>> (Jones et al., 1990) % \cite[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) % \cite[e.g.][]{key} ==>> (e.g. Jones et al., 1990) % \cite[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) % \citeauthor{key} Jones et al. % \citefullauthor{key} Jones, Baker, and Smith % \citeyear{key} 1990 %%--------------------------------------------------------------------- ENTRY { address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year } {} { label extra.label sort.label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {non.stop} { duplicate$ "}" * add.period$ #-1 #1 substring$ "." = } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * non.stop { "\/}" * } { "}" * } if$ } if$ } FUNCTION {bolden} { duplicate$ empty$ { pop$ "" } { "{\bf " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.names.ed} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.key} { empty$ { key field.or.null } { "" } if$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.in.editors} { editor empty$ { "" } { editor format.names.ed editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.title} { title empty$ { "" } { title "t" change.case$ } if$ } FUNCTION {format.full.names} {'s := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {author.editor.key.full} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } { author format.full.names } if$ } FUNCTION {author.key.full} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.full.names } if$ } FUNCTION {editor.key.full} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } FUNCTION {make.full.names} { type$ "book" = type$ "inbook" = or 'author.editor.key.full { type$ "proceedings" = 'editor.key.full 'author.key.full if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem[" write$ label write$ ")" make.full.names * "]{" * write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {word.in} { "In " } FUNCTION {format.date} { year duplicate$ empty$ { "empty year in " cite$ * "; set to ????" * warning$ pop$ "????" } 'skip$ if$ before.all 'output.state := " (" swap$ * extra.label * ")" * } FUNCTION {format.btitle} { title emphasize } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * series emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { output.state mid.sentence = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { "pages" pages n.dashify tie.or.space.connect } { "page" pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null bolden number empty$ 'skip$ { "(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ", " * pages n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { word.in booktitle emphasize * } { word.in format.in.editors * ", " * booktitle emphasize * } if$ } if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { word.in "\cite{" * crossref * "}" * } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ word.in } { "Volume" volume tie.or.space.connect " of " * } if$ "\cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { word.in "\cite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check format.vol.num.pages output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.date "year" output.check new.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence publisher "publisher" output.check address output } { new.block format.book.crossref output.nonnull } if$ format.edition output new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.title "title" output.check new.block howpublished output address output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.date "year" output.check new.block format.btitle "title" output.check crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.block format.number.series output new.sentence publisher "publisher" output.check address output } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output new.block note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.chapter.pages output new.sentence publisher "publisher" output.check address output format.edition output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.pages output address output new.sentence organization output publisher output } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.btitle "title" output.check organization address new.block.checkb organization output address output format.edition output new.block note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.btitle "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.title output new.block howpublished output new.block note output fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.btitle "title" output.check new.block "Ph.D. thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem format.editors output editor format.key output format.date "year" output.check new.block format.btitle "title" output.check format.bvolume output format.number.series output address output new.sentence organization output publisher output new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block note "note" output.check fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " " * "et~al." emphasize * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " * "et~al." emphasize * } { " and " * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {author.key.label} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.lab.names } if$ } FUNCTION {author.editor.key.label} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } { author format.lab.names } if$ } FUNCTION {editor.key.label} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } FUNCTION {calc.label} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ "(" * year duplicate$ empty$ { pop$ "????" } { purify$ #-1 #4 substring$ } if$ * 'label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := nameptr numnames = t "others" = and { "et al" * } { numnames #2 > nameptr #2 = and { "zzzzzz" * #1 'namesleft := } { t sortify * } if$ } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {editor.sort} { editor empty$ { key empty$ { "to sort, need editor or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { calc.label label sortify " " * type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.sort 'author.sort if$ } if$ #1 entry.max$ substring$ 'sort.label := sort.label * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { last.label next.extra } INTEGERS { last.extra.num } FUNCTION {initialize.extra.label.stuff} { #0 int.to.chr$ 'last.label := "" 'next.extra := #0 'last.extra.num := } FUNCTION {forward.pass} { last.label label = { last.extra.num #1 + 'last.extra.num := last.extra.num int.to.chr$ 'extra.label := } { "a" chr.to.int$ 'last.extra.num := "" 'extra.label := label 'last.label := } if$ } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ extra.label 'next.extra := label extra.label * 'label := } EXECUTE {initialize.extra.label.stuff} ITERATE {forward.pass} REVERSE {reverse.pass} FUNCTION {bib.sort.order} { sort.label " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {bib.sort.order} SORT FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{}" write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} %% End of customized bst file PSCBS/vignettes/PSCBS.bib0000644000176200001440000000450614564051545014502 0ustar liggesusers@ARTICLE{OlshenA_etal_2004, author = {Adam B Olshen and E. S. Venkatraman and Robert Lucito and Michael Wigler}, title = {Circular binary segmentation for the analysis of array-based DNA copy number data.}, journal = {Biostatistics}, year = {2004}, volume = {5}, pages = {557--572}, number = {4}, month = {Oct}, doi = {10.1093/biostatistics/kxh008}, keywords = {Breast Neoplasms; Cell Line, Tumor; Computer Simulation; Female; Gene Dosage; Genome, Human; Humans; Olig; e Analysis; onucleotide Array Sequence; CBS}, pii = {5/4/557}, pmid = {15475419}, url = {https://doi.org/10.1093/biostatistics/kxh008} } @ARTICLE{VenkatramanOlshen_2007, author = {E. S. Venkatraman and Adam B Olshen}, title = {{A} faster circular binary segmentation algorithm for the analysis of array {CGH} data.}, journal = {Bioinformatics}, year = {2007}, volume = {23}, pages = {657--663}, number = {6}, month = {Mar}, doi = {10.1093/bioinformatics/btl646}, keywords = {Algorithms; Chromosome Mapping, methods; Gene Dosage, genetics; Oligonucleotide Array Sequence Analysis, methods; Programming Languages; Sequence Alignment, methods; Sequence Analysis, DNA, methods; Software; Time Factors}, pii = {btl646}, pmid = {17234643}, url = {https://doi.org/10.1093/bioinformatics/btl646} } @ARTICLE{OlshenA_etal_2011, author = {Adam B. Olshen and Henrik Bengtsson and Pierre Neuvial and Paul Spellman and Richard A. Olshen and Venkatraman E. Seshan}, title = {Parent-specific copy number in paired tumor-normal studies using circular binary segmentation}, journal = {Bioinformatics}, year = {2011}, volume = {27}, pages = {2038-2046}, number = {15}, doi = {10.1093/bioinformatics/btr329}, pmid = {21666266}, url = {https://doi.org/10.1093/bioinformatics/btl646} } @ARTICLE{BengtssonH_etal_2010, author = {Henrik Bengtsson and Pierre Neuvial and Terence P Speed}, title = {{TumorBoost}: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays}, journal = {BMC Bioinformatics}, year = {2010}, volume = {11}, pages = {245}, number = {1}, month = {May}, doi = {10.1186/1471-2105-11-245}, language = {eng}, medline-pst = {aheadofprint}, pii = {1471-2105-11-245}, pmid = {20462408}, url = {https://dx.doi.org/10.1186/1471-2105-11-245} } PSCBS/R/0000755000176200001440000000000014564060172011332 5ustar liggesusersPSCBS/R/PairedPSCBS.applyByRegion.R0000644000176200001440000001764414564051545016257 0ustar liggesuserssetMethodS3("applyByRegion", "PairedPSCBS", function(fit, FUN, ..., subset=NULL, append=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'FUN': .stop_if_not(is.function(FUN)) # Argument 'subset': if (!is.null(subset)) { subset <- Arguments$getIndices(subset, range=c(1, nbrOfSegments(fit))) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Apply function region by region") verbose && cat(verbose, "Segments:") verbose && str(verbose, subset) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit) tcnSegRows <- fit$tcnSegRows dhSegRows <- fit$dhSegRows params <- fit$params # Sanity checks if (!params$joinSegments) { stop("Cannot applyByRegion() unless PSCNs are segmented using joinSegments=TRUE.") } dataRows <- tcnSegRows # Sanity checks .stop_if_not(all(!is.na(data$chromosome) & !is.na(data$x))) .stop_if_not(length(tcnSegRows) == length(dhSegRows)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each segment... # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments) # Allocate result objects? if (append) { dataN <- outputN <- dataRowsN <- NULL } if (is.null(subset)) { subset <- seq_len(nbrOfSegments) } for (rr in subset) { verbose && enter(verbose, sprintf("Segment #%d of %d", rr, nbrOfSegments)) # Extract segment segRR <- segs[rr,,drop=FALSE] # Nothing todo? if (is.na(segRR[["tcnId"]]) && is.na(segRR[["dhId"]])) { verbose && cat(verbose, "A divider. Nothing to do.") outputN <- rbind(outputN, NA) dataRowsN <- rbind(dataRowsN, NA) verbose && exit(verbose) next } verbose && str(verbose, segRR, level=-20) # Extract data dataRowsRR <- dataRows[rr,,drop=FALSE] from <- dataRowsRR[[1]] to <- dataRowsRR[[2]] ok <- (!is.na(from) & !is.na(to)) from <- from[ok] to <- to[ok] keep <- logical(nrow(data)) for (kk in seq_along(from)) { keep[from[kk]:to[kk]] <- TRUE } dataRowsRR <- which(keep) verbose && printf(verbose, "Identified %d (%.2f%%) of %d data rows:\n", length(dataRowsRR), 100*length(dataRowsRR)/nrow(data), nrow(data)) verbose && str(verbose, dataRowsRR) dataRR <- data[dataRowsRR,,drop=FALSE] verbose && str(verbose, dataRR, level=-20) verbose && enter(verbose, "Applying function 'FUN' to segment") resRR <- FUN(rr, segRR, dataRR, ...) verbose && cat(verbose, "Returned result:") verbose && str(verbose, resRR, level=-20) verbose && exit(verbose) # Nothing to update/store? if (!is.list(resRR)) { verbose && cat(verbose, "Nothing more to do for this segment since nothing was returned: ", rr) verbose && exit(verbose) next } # Extract return data dataRRN <- resRR$data segRRN <- resRR$output # Sanity check .stop_if_not(!is.null(dataRRN)) .stop_if_not(is.data.frame(dataRRN)) .stop_if_not(!is.null(segRRN)) .stop_if_not(is.data.frame(segRRN)) if (append) { # Modified locus-level data dataRowsRRN <- c(1L, nrow(dataRRN)) if (!is.null(dataN)) { dataRowsRRN <- dataRowsRRN + nrow(dataN) } dataN <- rbind(dataN, dataRRN) # Sanity checks .stop_if_not(nrow(dataN) == max(dataRowsN, na.rm=TRUE)) # Update segment table? outputN <- rbind(outputN, segRRN) dataRowsN <- rbind(dataRowsN, dataRowsRRN) # Sanity check .stop_if_not(nrow(outputN) == nrow(dataRowsN)) # Sanity checks .stop_if_not(nrow(dataN) == max(dataRowsN, na.rm=TRUE)) } else { # Modified locus-level data verbose && enter(verbose, "Updating locus-level data") # Sanity check .stop_if_not(dim(dataRRN) == dim(dataRR)) .stop_if_not(length(dataRowsRR) == nrow(dataRRN)) data[dataRowsRR,] <- dataRRN str(data[dataRowsRR,]) verbose && exit(verbose) # Modified segment data verbose && enter(verbose, "Updating segment data") # Sanity check .stop_if_not(dim(segRRN) == dim(segRR)) segs[rr,] <- segRRN verbose && exit(verbose) } # Not needed anymore dataRRN <- segRRN <- NULL dataRR <- segRR <- NULL resRR <- NULL verbose && exit(verbose) } # for (rr ...) if (append) { if (!is.null(dataRowsN)) { rownames(dataRowsN) <- NULL colnames(dataRowsN) <- colnames(dataRows) dataRowsN <- as.data.frame(dataRowsN) # Sanity checks .stop_if_not(!is.null(dataN)) .stop_if_not(!is.null(outputN)) .stop_if_not(!is.null(dataRowsN)) data <- dataN segs <- outputN # Not needed anymore dataN <- outputN <- NULL } } # Return result res <- fit # "clone" res$data <- data res$output <- segs # Not needed anymore data <- segs <- NULL # Update segment-to-locus index tables if (append && !is.null(dataRowsN)) { res$tcnSegRows <- dataRowsN res$dhSegRows <- dataRowsN # Is this really the case? /HB 2011-01-17 } verbose && exit(verbose) res }, private=TRUE) .addC1C2WithStatitics <- function(rr, output, data, robust=TRUE, ...) { # Calculate locus-level (C1,C2) C <- data$CT rho <- data$rho C1 <- 1/2 * (1 - rho) * C C2 <- C - C1 CC <- data.frame(C1=C1, C2=C2) if (robust) { meanFcn <- function(x, ...) median(x, na.rm=TRUE) sdFcn <- function(x, ...) mad(x, na.rm=TRUE) } else { meanFcn <- function(x, ...) mean(x, na.rm=TRUE) sdFcn <- function(x, ...) sd(x, na.rm=TRUE) } # Calculate region-level (C1,C2) means and std devs. muCC <- apply(CC, MARGIN=2, FUN=meanFcn) sigmaCC <- apply(CC, MARGIN=2, FUN=sdFcn) rhoCC <- cor(CC[,1], CC[,2], use="pairwise.complete.obs") names(muCC) <- c("c1Avg", "c2Avg") names(sigmaCC) <- c("c1Sd", "c2Sd") # Update data data <- cbind(data, CC) # Update segment table outputT <- c(muCC, sigmaCC, c1c2.cor=rhoCC) outputT <- as.list(outputT) outputT <- as.data.frame(outputT) output <- cbind(output, outputT) list(data=data, output=output) } # .addC1C2WithStatitics() .addCACBWithStatitics <- function(rr, output, data, beta=c("betaTN", "betaT"), stratifyBy=c("all", "hets", "homs"), robust=TRUE, ...) { # Argument 'beta': beta <- match.arg(beta) # Argument 'stratifyBy': stratifyBy <- match.arg(stratifyBy) # Calculate locus-level (CA,CB) C <- data$CT beta <- data[[beta]] CB <- beta * C CA <- C - CB CC <- data.frame(CA=CA, CB=CB) # Update data data <- cbind(data, CC) if (robust) { meanFcn <- function(x, ...) median(x, na.rm=TRUE) sdFcn <- function(x, ...) mad(x, na.rm=TRUE) } else { meanFcn <- function(x, ...) mean(x, na.rm=TRUE) sdFcn <- function(x, ...) sd(x, na.rm=TRUE) } if (stratifyBy == "hets") { muN <- data$muN keep <- (muN == 1/2) CC <- CC[keep,,drop=FALSE] } else if (stratifyBy == "homs") { muN <- data$muN keep <- (muN == 0 | muN == 1) CC <- CC[keep,,drop=FALSE] } # Calculate region-level (CA,CB) means and std devs. muCC <- apply(CC, MARGIN=2, FUN=meanFcn) sigmaCC <- apply(CC, MARGIN=2, FUN=sdFcn) if (nrow(CC) < 3) { rhoCC <- NA_real_ } else { rhoCC <- cor(CC[,1], CC[,2], use="pairwise.complete.obs") } names(muCC) <- c("caAvg", "cbAvg") names(sigmaCC) <- c("caSd", "cbSd") # Update segment table outputT <- c(muCC, sigmaCC, cacbCor=rhoCC) outputT <- as.list(outputT) outputT <- as.data.frame(outputT) output <- cbind(output, outputT) list(data=data, output=output) } # .addCACBWithStatitics() PSCBS/R/PairedPSCBS.callLOH.R0000644000176200001440000002422014564051545014735 0ustar liggesusers##########################################################################/** # @set class=PairedPSCBS # @RdocMethod callLOH # # @title "Calls segments that are in LOH" # # \description{ # @get "title", i.e. that have "zero" minor copy number. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # call to use.} # \item{...}{Additional arguments passed to the caller.} # \item{minSize}{An optional @integer specifying the minimum number # of data points in order to call a segments. If fewer data points, # then the call is set to @NA regardless.} # \item{xorCalls}{If @TRUE, a region already called AB, will # for consistency never be called LOH, resulting in either an LOH # call set to @FALSE or @NA (as explained below).} # \item{force}{If @FALSE, and allelic-balance calls already exits, # then nothing is done, otherwise the calls are done.} # } # # \value{ # Returns a @see "PairedPSCBS" object with LOH calls. # } # # \section{AB and LOH consistency}{ # Biologically, a segment can not be both in allelic balance (AB) and # in loss-of-heterozygosity (LOH) at the same time. # To avoid reporting such inconsistencies, the LOH caller will, # if argument \code{xorCalls=TRUE}, never report a segment to be in # LOH if it is already called to be in AB. # However, regardless of of the AB call, a segment is still always # tested for LOH, to check weather the LOH caller is consistent with the # AB caller or not. Thus, in order to distinguish the case where # the AB caller and LOH caller agree from when they disagree, # we report either (AB,LOH)=(TRUE,FALSE) or (TRUE,NA). The former is # reported when they are consistent, and the latter when they are not, # or when the LOH caller could not call it. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "callLowC1ByC1", # @seemethod "callExtremeAllelicImbalanceByDH". # } # #*/########################################################################### setMethodS3("callLOH", "PairedPSCBS", function(fit, flavor=c("SmallC1", "LargeDH"), ..., minSize=1, xorCalls=TRUE, force=FALSE) { # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'minSize': minSize <- Arguments$getDouble(minSize, range=c(1,Inf)) # Argument 'xorCalls': xorCalls <- Arguments$getLogical(xorCalls) # Already done? segs <- as.data.frame(fit) calls <- segs$lohCall if (!force && !is.null(calls)) { return(invisible(fit)) } if (flavor == "SmallC1") { fit <- callLowC1ByC1(fit, ..., callName="loh") } else if (flavor == "LargeDH") { fit <- callExtremeAllelicImbalanceByDH(fit, ..., callName="loh") } else { stop("Cannot call LOH. Unsupported flavor: ", flavor) } # Don't call segments with too few data points? if (minSize > 1) { segs <- as.data.frame(fit) ns <- segs$dhNbrOfLoci calls <- segs$lohCall calls[ns < minSize] <- NA segs$lohCall <- calls fit$output <- segs # Not needed anymore segs <- calls <- NULL } # Don't call a segment LOH if it already called AB? if (xorCalls) { segs <- as.data.frame(fit) if (is.element("abCall", names(segs))) { calls <- segs$lohCall otherCalls <- segs$abCall # If called (TRUE) and already called (TRUE) # by the other caller, call it as NA. calls[calls & otherCalls] <- NA segs$lohCall <- calls fit$output <- segs } } return(invisible(fit)) }) setMethodS3("callLowC1ByC1", "PairedPSCBS", function(fit, delta=estimateDeltaLOH(fit, flavor="minC1|nonAB"), alpha=0.05, ..., callName="lowc1", verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'delta': if (delta != -Inf) { delta <- Arguments$getDouble(delta, range=c(0,Inf)) } # Argument 'alpha': alpha <- Arguments$getDouble(alpha, range=c(0,1)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments of allelic balance from one-sided DH bootstrap confidence intervals") verbose && cat(verbose, "delta (offset adjusting for bias in C1): ", delta) verbose && cat(verbose, "alpha (CI quantile; significance level): ", alpha) # Calculate C1 confidence intervals, if not already done probs <- c(alpha, 1-alpha) fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) segs <- as.data.frame(fit) # Extract confidence interval alphaTag <- sprintf("%g%%", 100*alpha) column <- sprintf("c1_%s", alphaTag) # Sanity checks .stop_if_not(is.element(column, colnames(segs))) # One-sided test verbose && enter(verbose, "Calling segments") value <- segs[,column, drop=TRUE] call <- (value < delta) nbrOfCalls <- sum(call, na.rm=TRUE) verbose && printf(verbose, "Number of segments called low C1 (LowC1, \"LOH_C1\"): %d (%.2f%%) of %d\n", nbrOfCalls, 100*nbrOfCalls/nrow(segs), nrow(segs)) verbose && exit(verbose) key <- sprintf("%sCall", callName) # calls <- data.frame(lowc1Call=call) # colnames(calls) <- key # segs <- cbind(segs, calls) segs[[key]] <- call fit$output <- segs # Append 'delta' and 'alpha' to parameters params <- fit$params params$deltaLowC1 <- delta params$alphaLowC1 <- alpha fit$params <- params verbose && exit(verbose) fit }, private=TRUE) # callLowC1ByC1() setMethodS3("callExtremeAllelicImbalanceByDH", "PairedPSCBS", function(fit, delta=0.60, alpha=0.05, ..., callName="aiHigh", verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'delta': delta <- Arguments$getDouble(delta, range=c(0,Inf)) # Argument 'alpha': alpha <- Arguments$getDouble(alpha, range=c(0,1)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments of extreme allelic imbalance (AI) from one-sided DH bootstrap confidence intervals") verbose && cat(verbose, "delta (offset adjusting for normal contamination and other biases): ", delta) verbose && cat(verbose, "alpha (CI quantile; significance level): ", alpha) # Calculate DH confidence intervalls, if not already done probs <- c(alpha, 1-alpha) fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) segs <- as.data.frame(fit) # Extract confidence interval alphaTag <- sprintf("%g%%", 100*alpha) column <- sprintf("dh_%s", alphaTag) # Sanity checks .stop_if_not(is.element(column, colnames(segs))) # One-sided test verbose && enter(verbose, "Calling segments") value <- segs[,column, drop=TRUE] call <- (value >= delta) nbrOfCalls <- sum(call, na.rm=TRUE) verbose && printf(verbose, "Number of segments called high allelic imbalance (AI/\"LOH_AI\"): %d (%.2f%%) of %d\n", nbrOfCalls, 100*nbrOfCalls/nrow(segs), nrow(segs)) verbose && exit(verbose) key <- sprintf("%sCall", callName) # calls <- data.frame(aiHighCall=call) # colnames(calls) <- key # segs <- cbind(segs, calls) segs[[key]] <- call fit$output <- segs # Append 'delta' and 'alpha' to parameters params <- fit$params params$deltaExtremeDH <- delta params$alphaExtremeDH <- alpha fit$params <- params verbose && exit(verbose) fit }, private=TRUE) # callExtremeAllelicImbalanceByDH() ############################################################################## # HISTORY # 2012-05-30 # o BUG FIX: callLOH(..., force=TRUE) would append multiple 'lohCall' # columns, if called multiple times. # o BUG FIX: callLowC1ByC1() and callExtremeAllelicImbalanceByDH() would # append multiple call columns with the same name if called multiple times. # 2012-01-15 # o DOCUMENTATION: Added details to the help of callLOH() and callAB() on # the difference between (AB,LOH)=(TRUE,FALSE) and (AB,LOH)=(TRUE,NA). # 2011-06-14 # o Updated code to recognize new column names. # 2011-05-29 # o Renamed all arguments, variables, function named 'tau' to 'delta'. # 2011-04-14 # o BUG FIX: Argument 'minSize' of callAB() and callLOH() had no effect. # 2011-04-12 # o Added argument 'minSize' to callLOH() for PairedPSCBS. # o Added argument 'xorCalls' to callLOH() for PairedPSCBS. # 2011-04-11 # o Added argument 'callName' to callExtremeAllelicImbalanceByDH() and # callLowC1ByC1(). # 2011-04-10 # o Added callLOH(). # 2010-12-07 # o Added callLowC1ByC1() and callABandLowC1(). # 2010-11-27 # o Corrected verbose output to call results. # 2010-11-26 [HB] # o Now all call functions estimate symmetric bootstrap quantiles for # convenince of plotting confidence intervals. # o BUG FIX: callABandHighAI() for PairedPSCBS used the old DH-only # bootstrap method. # o BUG FIX: The call functions, for instance callABandHighAI(), would throw # 'Error in quantile.default(x, probs = alpha) : missing values and NaN's # not allowed if 'na.rm' is FALSE' unless bootstrapTCNandDHByRegion() was # run before. # 2010-11-22 [HB] # o Added more verbose output to callABandHighAI(). # o Updated callAllelicBalanceByDH() and callExtremeAllelicImbalanceByDH() # to utilize bootstrapTCNandDHByRegion(). # 2010-10-25 [HB] # o Relaced argument 'ciRange' with 'alpha' for callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH(). # o Renamed callAllelicBalance() to callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH() to callExtremeAllelicImbalance(). # o Added arguments 'alphaAB' and 'alphaHighAI' to callABandHighAI(). # o Added sanity checks to the call methods. # o Now arguments '...' to callABandHighAI() are passed down. # o Now also arguments '...' to callAllelicBalance() and # callExtremeAllelicImbalance() are passed to bootstrapDHByRegion(). # o Added argument 'ciRange' to callAllelicBalance() and # callExtremeAllelicImbalance(). # 2010-09-16 [HB] # o Added callABandHighAI(). # o Added callAllelicBalance() and callExtremeAllelicImbalance(). # o Created. ############################################################################## PSCBS/R/drawLevels.DNAcopy.R0000644000176200001440000000063114564051545015065 0ustar liggesuserssetMethodS3("drawLevels", "DNAcopy", function(fit, field=c("seg.mean", "tcn.mean", "dh.mean"), xScale=1, col="red", lwd=3, ...) { field <- match.arg(field) segments <- fit$output[,c("loc.start", "loc.end", field)] apply(segments, MARGIN=1, FUN=function(seg) { x <- c(seg[["loc.start"]], seg[["loc.end"]]) y <- rep(seg[[field]], times=2) lines(x=xScale*x, y=y, col=col, lwd=lwd, ...) }) }) PSCBS/R/segmentByPairedPSCBS.R0000644000176200001440000013075414564051545015350 0ustar liggesusers###########################################################################/** # @RdocDefault segmentByPairedPSCBS # @alias segmentByPairedPSCBS.data.frame # @alias segmentByPairedPSCBS.PairedPSCBS # @alias segmentByPairedPSCBS # # @title "Segment total copy numbers and allele B fractions using the Paired PSCBS method" # # \description{ # @get "title" [1]. # This method requires matched normals. # This is a low-level segmentation method. # It is intended to be applied to one tumor-normal sample at the time. # } # # @synopsis # # \arguments{ # \item{CT}{A @numeric @vector of J tumor total copy number (TCN) # ratios in [0,+@Inf) (due to noise, small negative values are # also allowed). The TCN ratios are typically scaled such that # copy-neutral diploid loci have a mean of two.} # \item{thetaT, thetaN}{(alternative) As an alternative to specifying # tumor TCN \emph{ratios} relative to the match normal by # argument \code{CT}, on may specify total tumor and normal # signals seperately, in which case the TCN ratios \code{CT} are # calculated as \eqn{CT = 2*thetaT/thetaN}.} # \item{betaT}{A @numeric @vector of J tumor allele B fractions (BAFs) # in [0,1] (due to noise, values may be slightly outside as well) # or @NA for non-polymorphic loci.} # \item{betaN}{A @numeric @vector of J matched normal BAFs in [0,1] # (due to noise, values may be slightly outside as well) or @NA # for non-polymorphic loci.} # \item{muN}{An optional @numeric @vector of J genotype calls in # \{0,1/2,1\} for AA, AB, and BB, respectively, # and @NA for non-polymorphic loci. # If not given, they are estimated from the normal BAFs using # @see "aroma.light::callNaiveGenotypes" as described in [2].} # \item{rho}{(alternative to \code{betaT} and \code{betaN}/\code{muN}) # A @numeric @vector of J decrease-of-heterozygosity signals (DHs) # in [0,1] (due to noise, values may be slightly larger than one # as well). By definition, DH should be @NA for homozygous loci # and for non-polymorphic loci.} # \item{chromosome}{(Optional) An @integer scalar (or a @vector of length J), # which can be used to specify which chromosome each locus belongs to # in case multiple chromosomes are segments. # This argument is also used for annotation purposes.} # \item{x}{Optional @numeric @vector of J genomic locations. # If @NULL, index locations \code{1:J} are used.} # \item{alphaTCN, alphaDH}{The significance levels for segmenting total # copy numbers (TCNs) and decrease-in-heterozygosity signals (DHs), # respectively.} # \item{undoTCN, undoDH}{Non-negative @numerics. If greater than 0, # then a cleanup of segmentions post segmentation is done. # See argument \code{undo} of @see "segmentByCBS" for more # details.} # \item{avgTCN, avgDH}{A @character string specifying how to calculating # segment mean levels \emph{after} change points have been # identified.} # \item{...}{Additional arguments passed to @see "segmentByCBS".} # \item{flavor}{A @character specifying what type of segmentation and # calling algorithm to be used.} # \item{tbn}{If @TRUE, \code{betaT} is normalized before segmentation # using the TumorBoost method [2], otherwise not.} # \item{joinSegments}{If @TRUE, there are no gaps between neighboring # segments. # If @FALSE, the boundaries of a segment are defined by the support # that the loci in the segments provides, i.e. there exist a locus # at each end point of each segment. This also means that there # is a gap between any neighboring segments, unless the change point # is in the middle of multiple loci with the same position. # The latter is what \code{DNAcopy::segment()} returns. # } # \item{knownSegments}{Optional @data.frame specifying # \emph{non-overlapping} known segments. These segments must # not share loci. See @see "findLargeGaps" and @see "gapsToSegments".} # \item{dropMissingCT}{If @TRUE, loci for which 'CT' is missing # are dropped, otherwise not.} # \item{seed}{An (optional) @integer specifying the random seed to be # set before calling the segmentation method. The random seed is # set to its original state when exiting. If @NULL, it is not set.} # \item{verbose}{See @see "R.utils::Verbose".} # \item{preserveScale}{\emph{Defunct - gives an error is specified.}} # } # # \value{ # Returns the segmentation results as a @see "PairedPSCBS" object. # } # # \details{ # Internally @see "segmentByCBS" is used for segmentation. # The Paired PSCBS segmentation method does \emph{not} support weights. # } # # \section{Reproducibility}{ # The "DNAcopy::segment" implementation of CBS uses approximation # through random sampling for some estimates. Because of this, # repeated calls using the same signals may result in slightly # different results, unless the random seed is set/fixed. # } # # \section{Whole-genome segmentation is preferred}{ # Although it is possible to segment each chromosome independently # using Paired PSCBS, we strongly recommend to segment whole-genome # (TCN,BAF) data at once. The reason for this is that downstream # CN-state calling methods, such as the AB and the LOH callers, # performs much better on whole-genome data. In fact, they may # fail to provide valid calls if done chromosome by chromosome. # } # # \section{Missing and non-finite values}{ # The total copy number signals as well as any optional positions # must not contain missing values, i.e. @NAs or @NaNs. # If there are any, an informative error is thrown. # Allele B fractions may contain missing values, because such are # interpreted as representing non-polymorphic loci. # # None of the input signals may have infinite values, i.e. -@Inf or +@Inf. # If so, an informative error is thrown. # } # # \section{Paired PSCBS with only genotypes}{ # If allele B fractions for the matched normal (\code{betaN}) are # not available, but genotypes (\code{muN}) are, then it is possible # to run a version of Paired PSCBS where TumorBoost normalization # of the tumor allele B fractions is skipped. In order for this # to work, argument \code{tbn} must be set to @FALSE. # } # # @examples "../incl/segmentByPairedPSCBS.Rex" # # @author "HB" # # \references{ # [1] @include "../incl/OlshenA_etal_2011.Rd" \cr # [2] @include "../incl/BengtssonH_etal_2010.Rd" \cr # } # # \seealso{ # Internally, @see "aroma.light::callNaiveGenotypes" is used to # call naive genotypes, @see "aroma.light::normalizeTumorBoost" is # used for TumorBoost normalization, and @see "segmentByCBS" is used # to segment TCN and DH separately. # # To segment tumor total copy numbers and allele B fractions # \emph{without} a matched normal, see @see "segmentByNonPairedPSCBS". # # To segment total copy-numbers, or any other unimodal signals, # see @see "segmentByCBS". # } # # @keyword IO #*/########################################################################### setMethodS3("segmentByPairedPSCBS", "default", function(CT, thetaT=NULL, thetaN=NULL, betaT=NULL, betaN=NULL, muN=NULL, rho=NULL, chromosome=0, x=NULL, alphaTCN=0.009, alphaDH=0.001, undoTCN=0, undoDH=0, ..., avgTCN=c("mean", "median"), avgDH=c("mean", "median"), flavor=c("tcn&dh", "tcn,dh", "sqrt(tcn),dh", "sqrt(tcn)&dh", "tcn"), tbn=is.null(rho), joinSegments=TRUE, knownSegments=NULL, dropMissingCT=TRUE, seed=NULL, verbose=FALSE, preserveScale=FALSE) { # WORKAROUND: If Hmisc is loaded after R.utils, it provides a buggy # capitalize() that overrides the one we want to use. Until PSCBS # gets a namespace, we do the following workaround. /HB 2011-07-14 capitalize <- R.utils::capitalize # To please R CMD check index <- NULL; rm(list="index") # Settings for sanity checks tol <- getOption("PSCBS/sanityChecks/tolerance", 0.0005) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'thetaT' & 'thetaN': if (!is.null(thetaT) && !is.null(thetaN)) { thetaT <- Arguments$getDoubles(thetaT, disallow=disallow) nbrOfLoci <- length(thetaT) length2 <- rep(nbrOfLoci, times=2L) thetaN <- Arguments$getDoubles(thetaN, length=length2, disallow=disallow) CT <- 2 * thetaT / thetaN } else if (!is.null(thetaT) || !is.null(thetaN)) { stop("Either argument 'CT' needs to be specified or *both* of arguments 'thetaT' and 'thetaN'") } # Argument 'CT': disallow <- c("Inf") CT <- Arguments$getDoubles(CT, disallow=disallow) nbrOfLoci <- length(CT) length2 <- rep(nbrOfLoci, times=2L) # Argument 'betaT': if (!is.null(betaT)) { betaT <- Arguments$getDoubles(betaT, length=length2, disallow="Inf") } # Argument 'betaN': if (!is.null(betaN)) { betaN <- Arguments$getDoubles(betaN, length=length2, disallow="Inf") } # Argument 'muN': if (!is.null(muN)) { muN <- Arguments$getDoubles(muN, length=length2, range=c(0,1), disallow="Inf") if (all(is.na(muN)) == nbrOfLoci) { stop(sprintf("All genotypes ('muN') are NAs: %d (100%%) out of %d", nbrOfLoci, nbrOfLoci)) } } # Argument 'rho': if (!is.null(rho)) { rho <- Arguments$getDoubles(rho, range=c(0,Inf), length=length2, disallow="Inf") } if (is.null(muN)) { if (is.null(betaN) && is.null(rho)) { stop("If argument 'muN' is not given, then either 'betaN' or 'rho' must be.") } } # Argument 'tbn': tbn <- Arguments$getLogical(tbn) if (!is.null(tbn)) { if (tbn) { if (is.null(betaT)) { stop("Cannot do TumorBoost normalization (tbn=TRUE) without tumor BAFs ('betaT').") } if (is.null(betaN)) { stop("Cannot do TumorBoost normalization (tbn=TRUE) with normal BAFs ('betaN').") } } } # Argument 'chromosome': if (is.null(chromosome)) { chromosome <- 0L } else { disallow <- c("Inf") chromosome <- Arguments$getIntegers(chromosome, range=c(0,Inf), disallow=disallow) if (length(chromosome) > 1) { chromosome <- Arguments$getIntegers(chromosome, length=length2, disallow=disallow) } } # Argument 'x': if (is.null(x)) { x <- seq_len(nbrOfLoci) } else { disallow <- c("Inf") x <- Arguments$getDoubles(x, length=length2, disallow=disallow) } # Argument 'alphaTCN': alphaTCN <- Arguments$getDouble(alphaTCN, range=c(0,1)) # Argument 'alphaDH': alphaDH <- Arguments$getDouble(alphaDH, range=c(0,1)) # Argument 'undoTCN': undoTCN <- Arguments$getDouble(undoTCN, range=c(0,Inf)) # Argument 'undoDH': undoDH <- Arguments$getDouble(undoDH, range=c(0,Inf)) # Argument 'avgTCN' & 'avgDH': avgTCN <- match.arg(avgTCN) avgDH <- match.arg(avgDH) # Argument 'flavor': flavor <- match.arg(flavor) knownFlavors <- eval(formals(segmentByPairedPSCBS.default)$flavor, enclos = baseenv()) if (!is.element(flavor, knownFlavors)) { stop("Segmentation flavor is not among the supported ones (", paste(sprintf("\"%s\"", knownFlavors), collapse=", "), "): ", flavor) } # Argument 'joinSegments': joinSegments <- Arguments$getLogical(joinSegments) # Argument 'knownSegments': if (is.null(knownSegments)) { knownSegments <- data.frame(chromosome=integer(0), start=integer(0), end=integer(0)) } else { if (!joinSegments) { ## warning("Argument 'knownSegments' should only be specified if argument 'joinSegments' is TRUE.") } } if (!is.data.frame(knownSegments)) { stop("Argument 'knownSegments' is not a data.frame: ", class(knownSegments)[1]) } if (!all(is.element(c("chromosome", "start", "end"), colnames(knownSegments)))) { stop("Argument 'knownSegments' does not have the required column names: ", hpaste(colnames(knownSegments))) } # Argument 'dropMissingCT': dropMissingCT <- Arguments$getLogical(dropMissingCT) if (!dropMissingCT) { if (is.element(flavor, c("tcn&dh", "sqrt(tcn)&dh"))) { stop("Missing values in 'CT' are (currently) not supported by the chosen 'flavor': ", flavor) } } # Argument 'seed': if (!is.null(seed)) { seed <- Arguments$getIntegers(seed) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # Argument 'preserveScale' is deprecated if (!missing(preserveScale)) { .Defunct(msg = "Argument 'preserveScale' for segmentByPairedPSCBS() is defunct; as of PSCBS 0.64.0 (Mar 2018) it is effectively fixed to FALSE, which has been the default since PSCBS 0.50.0 (Oct 2015). To avoid this error, do not specify 'preserveScale' when calling segmentByPairedPSCBS().") } verbose && enter(verbose, "Segmenting paired tumor-normal signals using Paired PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call genotypes? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Are genotype calls muN missing and can they be called? if (is.null(muN) && !is.null(betaN)) { verbose && enter(verbose, "Calling genotypes from normal allele B fractions") verbose && str(verbose, betaN) muN <- callNaiveGenotypes(betaN, censorAt=c(0,1)) verbose && cat(verbose, "Called genotypes:") verbose && str(verbose, muN) verbose && print(verbose, table(muN)) # Assert proper calls muN <- Arguments$getDoubles(muN, length=length2, range=c(0,1), disallow="Inf") # Sanity check if (all(is.na(muN))) { stop(sprintf("All genotypes ('muN') called from the normal allele B fractions ('betaN') are NAs: %d (100%%) out of %d", nbrOfLoci, nbrOfLoci)) } verbose && exit(verbose) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Normalize betaT using betaN (TumorBoost normalization) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (tbn) { verbose && enter(verbose, "Normalizing betaT using betaN (TumorBoost)") betaTN <- normalizeTumorBoost(betaT=betaT, betaN=betaN, muN=muN, preserveScale=FALSE) verbose && cat(verbose, "Normalized BAFs:") verbose && str(verbose, betaTN) # Assert that no missing values where introduced keep <- (is.finite(betaT) & is.finite(betaN) & is.finite(muN)) if (anyNA(betaTN[keep])) { stop("Internal error: normalizeTumorBoost() introduced missing values.") } # Not needed anymore keep <- NULL verbose && exit(verbose) } else { betaTN <- betaT } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Setup up data") data <- data.frame(chromosome=chromosome, x=x, CT=CT) if (!is.null(thetaT)) { data$thetaT <- thetaT data$thetaN <- thetaN } if (!is.null(betaT)) data$betaT <- betaT if (!is.null(betaTN)) data$betaTN <- betaTN if (!is.null(betaN)) data$betaN <- betaN if (!is.null(muN)) data$muN <- muN if (!is.null(rho)) data$rho <- rho verbose && str(verbose, data) # Not needed anymore chromosome <- x <- CT <- thetaT <- thetaN <- betaT <- betaTN <- betaN <- muN <- rho <- NULL # Sanity check .stop_if_not(nrow(data) == nbrOfLoci) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop data points without known genomic positions, because that # is what DNAcopy::CNA() will do otherwise. At the end, we will # undo this such that the returned 'data' object is complete. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ok <- (!is.na(data$chromosome) & !is.na(data$x)) if (any(!ok)) { verbose && enter(verbose, "Dropping loci with unknown locations") verbose && cat(verbose, "Number of loci dropped: ", sum(!ok)) data <- data[ok,,drop=FALSE] nbrOfLoci <- nrow(data) verbose && exit(verbose) } ok <- NULL # Not needed anymore # Sanity check .stop_if_not(nrow(data) == nbrOfLoci) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop loci for which CT is missing (regardless of betaT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (dropMissingCT) { ok <- (!is.na(data$CT)) if (any(!ok)) { verbose && enter(verbose, "Dropping loci for which TCNs are missing") verbose && cat(verbose, "Number of loci dropped: ", sum(!ok)) data <- data[ok,,drop=FALSE] nbrOfLoci <- nrow(data) verbose && exit(verbose) } ok <- NULL # Not needed anymore # Sanity check .stop_if_not(nrow(data) == nbrOfLoci) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Reorder data points along the genome, because that is what # DNAcopy::segment() will return. At the end, we will undo # the sort such that the returned 'data' object is always in # the same order and number of loci as the input data. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Ordering data along genome") o <- order(data$chromosome, data$x, decreasing=FALSE, na.last=TRUE) # Any change? if (any(o != seq_along(o))) { data <- data[o,,drop=FALSE] } o <- NULL # Not needed anymore verbose && str(verbose, data) verbose && exit(verbose) # Attach 'index' (guaranteed to be ordered) data$index <- seq_len(nrow(data)) # Sanity check .stop_if_not(nrow(data) == nbrOfLoci) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Assert no missing values in (chromosome, x, CT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity check ok <- (!is.na(data$chromosome) & !is.na(data$x)) if (!all(ok)) { stop("INTERNAL ERROR: Detected (chromosome, x) with missing values also after filtering.") } # Sanity check if (dropMissingCT) { ok <- (!is.na(data$CT)) if (!all(ok)) { stop("INTERNAL ERROR: Detected TCN with missing values also after filtering.") } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multiple chromosomes? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify all chromosomes, excluding missing values chromosomes <- sort(unique(data$chromosome), na.last=NA) nbrOfChromosomes <- length(chromosomes) if (nbrOfChromosomes > 1) { verbose && enter(verbose, "Segmenting multiple chromosomes") verbose && cat(verbose, "Number of chromosomes: ", nbrOfChromosomes) # Generate random seeds? seeds <- NULL if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=c(%s), kind=\"L'Ecuyer-CMRG\")\n", paste(seed, collapse=", ")) seeds <- randomSeed("advance", n=nbrOfChromosomes) verbose && printf(verbose, "Produced %d seeds from this stream for future usage\n", length(seeds)) } fitList <- listenv() for (kk in seq_len(nbrOfChromosomes)) { chromosomeKK <- chromosomes[kk] chrTag <- sprintf("Chr%02d", chromosomeKK) verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", kk, chrTag, nbrOfChromosomes)) seedKK <- seeds[[kk]] # Extract subset of data and parameters for this chromosome dataKK <- subset(data, chromosome == chromosomeKK) verbose && str(verbose, dataKK) fields <- attachLocally(dataKK, fields=c("CT", "thetaT", "thetaN", "betaT", "betaTN", "betaN", "muN", "rho", "chromosome", "x")) dataKK <- NULL # Not needed anymore knownSegmentsKK <- NULL if (!is.null(knownSegments)) { knownSegmentsKK <- subset(knownSegments, chromosome == chromosomeKK) verbose && cat(verbose, "Known segments:") verbose && print(verbose, knownSegmentsKK) } fitList[[chrTag]] %<-% { fit <- segmentByPairedPSCBS(CT=CT, thetaT=thetaT, thetaN=thetaN, betaT=betaTN, betaN=betaN, muN=muN, rho=rho, chromosome=chromosome, x=x, tbn=FALSE, joinSegments=joinSegments, knownSegments=knownSegmentsKK, alphaTCN=alphaTCN, alphaDH=alphaDH, undoTCN=undoTCN, undoDH=undoDH, avgTCN=avgTCN, avgDH=avgDH, flavor=flavor, ..., seed=seedKK, verbose=verbose) # Sanity checks if (nrow(knownSegmentsKK) == 0) { .stop_if_not(nrow(fit$data) == length(CT)) .stop_if_not(all.equal(fit$data$CT, CT)) .stop_if_not(all.equal(fit$data$muN, muN)) } # Update betaT (which is otherwise equals betaTN) fit$data$betaT <- betaT verbose && print(verbose, head(as.data.frame(fit))) verbose && print(verbose, tail(as.data.frame(fit))) fit } %seed% TRUE %label% sprintf("segmentByPairedPSCBS-%s", chrTag) ## fitList[[chrTag]] <- ... rm(list=fields) # Not needed anymore verbose && exit(verbose) } # for (kk ...) verbose && enter(verbose, "Merging (independently) segmented chromosome") fitList <- as.list(fitList) ## former Reduce() w/ append(..., addSplit = TRUE) fit <- do.call(c, args = c(fitList, addSplit = TRUE)) fitList <- NULL # Not needed anymore verbose && str(verbose, fit) verbose && exit(verbose) # Update parameters that otherwise may be incorrect fit$params$tbn <- tbn fit$params$seed <- seed segs <- as.data.frame(fit) if (nrow(segs) < 6) { verbose && print(verbose, segs) } else { verbose && print(verbose, head(segs)) verbose && print(verbose, tail(segs)) } verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return(fit) } # if (nbrOfChromosomes > 1) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset 'knownSegments' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Keeping only current chromosome for 'knownSegments'") currChromosome <- data$chromosome[1] verbose && cat(verbose, "Chromosome: ", currChromosome) knownSegments <- subset(knownSegments, chromosome == currChromosome) nbrOfSegments <- nrow(knownSegments) verbose && cat(verbose, "Known segments for this chromosome:") verbose && print(verbose, knownSegments) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity checks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Here 'knownSegments' should specify at most a single chromosome uChromosomes <- sort(unique(knownSegments$chromosome)) if (length(uChromosomes) > 1) { stop("INTERNAL ERROR: Argument 'knownSegments' specifies more than one chromosome: ", hpaste(uChromosomes)) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Assert no missing values in (chromosome, x, CT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity check ok <- (!is.na(data$chromosome) & !is.na(data$x)) if (!all(ok)) { stop("INTERNAL ERROR: Detected (chromosome, x) with missing values also after filtering.") } # Sanity check if (dropMissingCT) { ok <- (!is.na(data$CT)) if (!all(ok)) { stop("INTERNAL ERROR: Detected TCN with missing values also after filtering.") } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup input data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && cat(verbose, "alphaTCN: ", alphaTCN) verbose && cat(verbose, "alphaDH: ", alphaDH) verbose && cat(verbose, "Number of loci: ", nbrOfLoci) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calculate decrease-of-heterozygosity signals (DHs)? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.null(data$rho)) { verbose && enter(verbose, "Calculating DHs") # SNPs are identifies as those loci that have non-missing 'betaTN' & 'muN' isSnp <- (!is.na(data$betaTN) & !is.na(data$muN)) nbrOfSnps <- sum(isSnp) verbose && cat(verbose, "Number of SNPs: ", nbrOfSnps) # DH is by definition only defined for heterozygous SNPs. # For simplicity, we set it to be NA for non-heterozygous loci. isHet <- isSnp & (data$muN == 1/2) verbose && printf(verbose, "Number of heterozygous SNPs: %d (%.2f%%)\n", sum(isHet), 100*sum(isHet)/nbrOfSnps) rho <- rep(NA_real_, times=nbrOfLoci) rho[isHet] <- 2*abs(data$betaTN[isHet]-1/2) verbose && cat(verbose, "Normalized DHs:") verbose && str(verbose, rho) data$rho <- rho isSnp <- isHet <- rho <- NULL # Not needed anymore verbose && exit(verbose) } ## Sanity check .stop_if_not(!is.null(data$rho)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Generate random seeds? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - seeds <- NULL if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=c(%s), kind=\"L'Ecuyer-CMRG\")\n", paste(seed, collapse=", ")) seeds <- randomSeed("advance", n=2L) ## For TCN and DH names(seeds) <- c("TCN", "DH") verbose && printf(verbose, "Produced %d seeds from this stream for future usage\n", length(seeds)) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 1a. Identification of change points in total copy numbers # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identification of change points by total copy numbers") fields <- attachLocally(data, fields=c("CT", "thetaT", "thetaN", "chromosome", "x", "index")) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Assert no missing values in (chromosome, x, CT) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity check ok <- (!is.na(data$chromosome) & !is.na(data$x)) if (!all(ok)) { stop("INTERNAL ERROR: Detected (chromosome, x) with missing values also after filtering.") } # Sanity check if (dropMissingCT) { ok <- (!is.na(data$CT)) if (!all(ok)) { stop("INTERNAL ERROR: Detected CT with missing values also after filtering.") } } # Segment TCN ratios # Calculate tumor-normal TCN ratios? fit <- segmentByCBS(CT, chromosome=chromosome, x=x, index=index, joinSegments=joinSegments, knownSegments=knownSegments, alpha=alphaTCN, undo=undoTCN, ..., seed=seeds[["TCN"]], verbose=verbose) verbose && str(verbose, fit) rm(list=fields) # Not needed anymore # Sanity check if (nrow(knownSegments) == 0) { .stop_if_not(nrow(fit$data) == nrow(data)) .stop_if_not(all(fit$data$chromosome == data$chromosome)) .stop_if_not(all(fit$data$x == data$x)) .stop_if_not(all(fit$data$index == data$index)) .stop_if_not(all.equal(fit$data$y, data$CT)) } tcnSegments <- fit$output tcnSegRows <- fit$segRows fit <- NULL # Not needed anymore # Sanity checks .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 1b. Restructure TCN segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Restructure TCN segmentation results") # Drop dummy columns keep <- setdiff(colnames(tcnSegments), c("sampleName")) tcnSegments <- tcnSegments[,keep,drop=FALSE] # Tag fields by TCN names <- names(tcnSegments) # Adding 'tcn' prefix to column names names <- sprintf("tcn%s", capitalize(names)) names <- gsub("tcnChromosome", "chromosome", names, fixed=TRUE) names(tcnSegments) <- names verbose && print(verbose, tcnSegments) nbrOfSegs <- nrow(tcnSegments) verbose && cat(verbose, "Number of TCN segments: ", nbrOfSegs) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # 2a. Identification of additional change points using DH # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each segment independently, segment decrease of heterozygousity (DH) # using CBS. By definition, only heterozygous SNPs are used. if (flavor == "tcn") { verbose && enter(verbose, "TCN-only segmentation") tcnSegsExpanded <- tcnSegRows dhSegRows <- tcnSegRows # Segments segs <- tcnSegments segs[,"tcnId"] <- seq_len(nbrOfSegs) segs[,"dhId"] <- rep(1L, times=nbrOfSegs) segs[,c("tcnNbrOfSNPs", "tcnNbrOfHets", "dhNbrOfLoci")] <- 0L segs[,"dhStart"] <- segs[,"tcnStart"] segs[,"dhEnd"] <- segs[,"tcnEnd"] # For each TCN segment... for (kk in seq_len(nbrOfSegs)) { tcnId <- kk xStart <- tcnSegments[kk,"tcnStart"] xEnd <- tcnSegments[kk,"tcnEnd"] regionTag <- sprintf("[%10g,%10g]", xStart, xEnd) verbose && enter(verbose, sprintf("Total CN segment #%d (%s) of %d", kk, regionTag, nbrOfSegs)) # Empty segment? rowStart <- tcnSegRows[kk,1] rowEnd <- tcnSegRows[kk,2] # Empty segment or a segment separator? isEmptySegment <- (is.na(rowStart) && is.na(rowEnd)) # Nothing to do? if (isEmptySegment) { verbose && exit(verbose) next } nbrOfTCNLociKK <- tcnSegments[kk,"tcnNbrOfLoci"] verbose && cat(verbose, "Number of TCN loci in segment: ", nbrOfTCNLociKK) rows <- seq(from=rowStart, length.out=nbrOfTCNLociKK) dataKK <- data[rows,,drop=FALSE] nbrOfLociKK <- nrow(dataKK) verbose && cat(verbose, "Locus data for TCN segment:") verbose && str(verbose, dataKK) verbose && cat(verbose, "Number of loci: ", nbrOfLociKK) hasDH <- !is.null(dataKK$rho) if (hasDH) { isSnpKK <- !is.na(dataKK$rho) isHetsKK <- (isSnpKK & (dataKK$rho > 0)) } else { isSnpKK <- !is.na(dataKK$muN) isHetsKK <- (isSnpKK & (dataKK$muN == 1/2)) } nbrOfSnpsKK <- sum(isSnpKK) nbrOfHetsKK <- sum(isHetsKK) verbose && printf(verbose, "Number of SNPs: %d (%.2f%%)\n", nbrOfSnpsKK, 100*nbrOfSnpsKK/nbrOfLociKK) verbose && printf(verbose, "Number of heterozygous SNPs: %d (%.2f%%)\n", nbrOfHetsKK, 100*nbrOfHetsKK/nbrOfSnpsKK) segs[kk,"tcnNbrOfSNPs"] <- nbrOfSnpsKK segs[kk,"tcnNbrOfHets"] <- nbrOfHetsKK segs[kk,"dhNbrOfLoci"] <- nbrOfHetsKK # Adjust 'dhRows[kk,]' rows <- rows[isHetsKK] rows <- range(rows, na.rm=TRUE) dhSegRows[kk,] <- rows # Sanity check if (nbrOfHetsKK > 0) { .stop_if_not(all(dhSegRows[kk,1] <= dhSegRows[kk,2], na.rm=TRUE)) } # Calculate dhMean rhoKK <- dataKK[["rho"]][isHetsKK] segs[kk,"dhMean"] <- mean(rhoKK, na.rm=TRUE) verbose && exit(verbose) } # for (kk ...) # Reorder segmentation columns keys <- c("tcnId", "dhId", colnames(tcnSegments)) keys <- c(keys, setdiff(colnames(segs), keys)) segs <- segs[,keys] verbose && exit(verbose) } else { dhSegRows <- NULL tcnSegsExpanded <- NULL # For each TCN segment... segs <- vector("list", length=nbrOfSegs) for (kk in seq_len(nbrOfSegs)) { tcnId <- kk xStart <- tcnSegments[kk,"tcnStart"] xEnd <- tcnSegments[kk,"tcnEnd"] regionTag <- sprintf("[%10g,%10g]", xStart, xEnd) verbose && enter(verbose, sprintf("Total CN segment #%d (%s) of %d", kk, regionTag, nbrOfSegs)) # Empty segment? rowStart <- tcnSegRows[kk,1] rowEnd <- tcnSegRows[kk,2] # Empty segment or a segment separator? isEmptySegment <- (is.na(rowStart) && is.na(rowEnd)) isSplitter <- (isEmptySegment && is.na(xStart) && is.na(xEnd)) isEmptySegment <- (isEmptySegment & !isSplitter) if (isSplitter) { verbose && cat(verbose, "No signals to segment. Just a \"splitter\" segment. Skipping.") # Sanity check .stop_if_not(kk >= 1) # Add a splitter segment segT <- segs[[kk-1]] segT <- segT[NA_integer_,] keys <- colnames(tcnSegments) segT[,keys] <- tcnSegments[kk,keys] segT[,"tcnId"] <- tcnId segT[,"dhId"] <- 1L segT[,c("tcnNbrOfSNPs", "tcnNbrOfHets", "dhNbrOfLoci")] <- 0L segT[,"dhStart"] <- xStart segT[,"dhEnd"] <- xEnd segs[[kk]] <- segT verbose && print(verbose, segT) # Add a splitter to TCN and DH segment row matrix segRowsT <- dhSegRows[NA_integer_,] dhSegRows <- rbind(dhSegRows, segRowsT) segRowsT <- tcnSegsExpanded[NA_integer_,] tcnSegsExpanded <- rbind(tcnSegsExpanded, segRowsT) verbose && exit(verbose) next } # if (isSplitter) nbrOfTCNLociKK <- tcnSegments[kk,"tcnNbrOfLoci"] verbose && cat(verbose, "Number of TCN loci in segment: ", nbrOfTCNLociKK) # Sanity check .stop_if_not(!isEmptySegment || (isEmptySegment && (nbrOfTCNLociKK == 0))) if (nbrOfTCNLociKK > 0) { # Extract locus data for TCN segment rows <- rowStart:rowEnd ## if (nrow(knownSegments) == 0) { ## gammaT <- tcnSegments[kk,"tcnMean"] ## verbose && print(verbose, all.equal(mean(dataKK$CT, na.rm=TRUE), gammaT, tolerance=tol)) ## .stop_if_not(all.equal(mean(dataKK$CT, na.rm=TRUE), gammaT, tolerance=tol)) ## } } else { rows <- integer(0) } # if (nbrOfTCNLociKK > 0) dataKK <- data[rows,,drop=FALSE] nbrOfLociKK <- nrow(dataKK) # Sanity check .stop_if_not(length(dataKK$CT) == nbrOfTCNLociKK) ## .stop_if_not(sum(!is.na(dataKK$CT)) == nbrOfTCNLociKK) verbose && cat(verbose, "Locus data for TCN segment:") verbose && str(verbose, dataKK) verbose && cat(verbose, "Number of loci: ", nbrOfLociKK) hasDH <- !is.null(dataKK$rho) if (hasDH) { isSnpKK <- !is.na(dataKK$rho) isHetsKK <- (isSnpKK & (dataKK$rho > 0)) } else { isSnpKK <- !is.na(dataKK$muN) isHetsKK <- (isSnpKK & (dataKK$muN == 1/2)) } nbrOfSnpsKK <- sum(isSnpKK) nbrOfHetsKK <- sum(isHetsKK) verbose && printf(verbose, "Number of SNPs: %d (%.2f%%)\n", nbrOfSnpsKK, 100*nbrOfSnpsKK/nbrOfLociKK) verbose && printf(verbose, "Number of heterozygous SNPs: %d (%.2f%%)\n", nbrOfHetsKK, 100*nbrOfHetsKK/nbrOfSnpsKK) # Since segments in 'knownSegments' has already been used in the TCN # segmentation, they are not needed in the DH segmentation. currChromosome <- data$chromosome[1] verbose && cat(verbose, "Chromosome: ", currChromosome) knownSegmentsT <- data.frame(chromosome=currChromosome, start=xStart, end=xEnd) verbose && enter(verbose, "Segmenting DH signals") fields <- attachLocally(dataKK, fields=c("chromosome", "x", "rho", "index")) fit <- segmentByCBS(rho, chromosome=chromosome, x=x, joinSegments=joinSegments, knownSegments=knownSegmentsT, alpha=alphaDH, undo=undoDH, ..., seed=seeds[["DH"]], verbose=verbose) verbose && str(verbose, fit) dhSegments <- fit$output dhSegRowsKK <- fit$segRows verbose && cat(verbose, "DH segmentation (locally-indexed) rows:") verbose && print(verbose, dhSegRowsKK) verbose && str(verbose, index) # Remap to genome-wide indices for (cc in 1:2) { dhSegRowsKK[,cc] <- index[dhSegRowsKK[,cc]] } verbose && cat(verbose, "DH segmentation rows:") verbose && print(verbose, dhSegRowsKK) # Not needed anymore rm(list=fields) fit <- NULL verbose && exit(verbose) # Drop dummy columns keep <- setdiff(colnames(dhSegments), c("sampleName", "chromosome")) dhSegments <- dhSegments[,keep,drop=FALSE] # Tag fields by DH names <- names(dhSegments) # Adding 'dh' prefix to column names names <- sprintf("dh%s", capitalize(names)) names(dhSegments) <- names # Special case: If there where not enough data to segment DH... if (nrow(dhSegments) == 0) { dhSegments <- dhSegments[NA_integer_,,drop=FALSE] dhSegRowsKK <- dhSegRowsKK[NA_integer_,,drop=FALSE] } verbose && cat(verbose, "DH segmentation table:") verbose && print(verbose, dhSegments) verbose && print(verbose, dhSegRowsKK) # Expand the TCN segmentation result data frame rows <- rep(kk, times=nrow(dhSegments)) verbose && cat(verbose, "Rows:") verbose && print(verbose, rows) tcnSegmentsKK <- tcnSegments[rows,,drop=FALSE] tcnSegRowsKK <- tcnSegRows[rows,,drop=FALSE] # Sanity check .stop_if_not(nrow(tcnSegmentsKK) == nrow(dhSegments)) .stop_if_not(nrow(tcnSegRowsKK) == nrow(dhSegments)) .stop_if_not(all(is.na(tcnSegRowsKK[,1]) | is.na(dhSegRowsKK[,1]) | (tcnSegRowsKK[,1] <= dhSegRowsKK[,1]))) .stop_if_not(all(is.na(tcnSegRowsKK[,2]) | is.na(dhSegRowsKK[,2]) | (dhSegRowsKK[,2] <= tcnSegRowsKK[,2]))) verbose && cat(verbose, "TCN segmentation rows:") verbose && print(verbose, tcnSegRowsKK) .stop_if_not(all(tcnSegRowsKK[,1] == tcnSegRowsKK[1,1], na.rm=TRUE)) .stop_if_not(all(tcnSegRowsKK[,2] == tcnSegRowsKK[1,2], na.rm=TRUE)) verbose && cat(verbose, "TCN and DH segmentation rows:") verbose && print(verbose, tcnSegRowsKK) verbose && print(verbose, dhSegRowsKK) verbose && print(verbose, tcnSegsExpanded) # Append tcnSegsExpanded <- rbind(tcnSegsExpanded, tcnSegRowsKK) verbose && cat(verbose, "TCN segmentation (expanded) rows:") verbose && print(verbose, tcnSegsExpanded) rownames(tcnSegsExpanded) <- NULL dhSegRows <- rbind(dhSegRows, dhSegRowsKK) rownames(dhSegRows) <- NULL verbose && cat(verbose, "TCN and DH segmentation rows:") verbose && print(verbose, tcnSegRows) verbose && print(verbose, dhSegRows) verbose && print(verbose, tcnSegsExpanded) # Sanity checks .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRows[,1] <= dhSegRows[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRows[-nrow(dhSegRows),2] < dhSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(tcnSegsExpanded[,1] <= tcnSegsExpanded[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegsExpanded[,1] <= dhSegRows[,1], na.rm=TRUE)) .stop_if_not(all(tcnSegsExpanded[,2] >= dhSegRows[,2], na.rm=TRUE)) ## if (!all(tcnSegsExpanded[-nrow(tcnSegsExpanded),2] < tcnSegsExpanded[-1,1], na.rm=TRUE)) { ## .stop_if_not(all(tcnSegsExpanded[-nrow(tcnSegsExpanded),2] < tcnSegsExpanded[-1,1], na.rm=TRUE)) ## } # Sanity check .stop_if_not(nrow(dhSegRows) == nrow(tcnSegsExpanded)) # Append information on number of SNPs and hets in CN region tcnSegmentsKK <- cbind( tcnSegmentsKK, tcnNbrOfSNPs=nbrOfSnpsKK, tcnNbrOfHets=nbrOfHetsKK ) verbose && cat(verbose, "Total CN segmentation table (expanded):") verbose && print(verbose, tcnSegmentsKK) # Sanity check .stop_if_not(nrow(tcnSegmentsKK) == nrow(dhSegments)) # Combine TCN and DH segmentation results tcndhSegments <- cbind( tcnId=rep(kk, times=nrow(dhSegments)), dhId=seq_len(nrow(dhSegments)), tcnSegmentsKK, dhSegments ) segs[[kk]] <- tcndhSegments verbose && cat(verbose, "(TCN,DH) segmentation for one total CN segment:") verbose && print(verbose, segs[[kk]]) verbose && exit(verbose) } # for (kk ...) segs <- Reduce(rbind, segs) rownames(segs) <- NULL } # if (flavor == "tcn") # Sanity check .stop_if_not(nrow(dhSegRows) == nrow(tcnSegsExpanded)) rownames(tcnSegRows) <- rownames(dhSegRows) <- NULL .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) if (flavor != "tcn") { .stop_if_not(all(dhSegRows[,1] <= dhSegRows[,2], na.rm=TRUE)) } .stop_if_not(all(dhSegRows[-nrow(dhSegRows),2] < dhSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(tcnSegsExpanded[,1] <= tcnSegsExpanded[,2], na.rm=TRUE)) ## .stop_if_not(all(tcnSegsExpanded[-nrow(tcnSegsExpanded),2] < tcnSegsExpanded[-1,1], na.rm=TRUE)) # Move 'chromosome' column to the first column idx <- match("chromosome", names(segs)) idxs <- c(idx, seq_len(ncol(segs))[-idx]) segs <- segs[,idxs,drop=FALSE] verbose && print(verbose, segs) verbose && enter(verbose, "Calculating (C1,C2) per segment") # Append (C1,C2) estimates tcn <- segs$tcnMean dh <- segs$dhMean C1 <- 1/2*(1-dh)*tcn C2 <- tcn - C1 segs <- cbind(segs, c1Mean=C1, c2Mean=C2) verbose && exit(verbose) nbrOfSegs <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegs) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create result object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - params <- list( alphaTCN = alphaTCN, alphaDH = alphaDH, flavor = flavor, tbn = tbn, joinSegments = joinSegments, knownSegments = knownSegments, seed = seed ) # Should we drop attributes? /HB 2010-09-24 .stop_if_not(all(data$index == seq_len(nrow(data)))) data$index <- NULL # Drop, because it is guaranteed to be ordered class(data) <- c("PairedPSCNData", class(data)) class(segs) <- c("PairedPSCNSegments", class(segs)) fit <- list( data = data, output = segs, tcnSegRows = tcnSegsExpanded, dhSegRows = dhSegRows, params = params ) class(fit) <- c("PairedPSCBS", "PSCBS", "AbstractCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (avgTCN != "mean" || avgDH != "mean") { verbose && enter(verbose, "Updating mean level using different estimator") verbose && cat(verbose, "TCN estimator: ", avgTCN) verbose && cat(verbose, "DH estimator: ", avgDH) fit <- updateMeans(fit, avgTCN=avgTCN, avgDH=avgDH, verbose=less(verbose, 20)) verbose && exit(verbose) } if (is.element(flavor, c("tcn&dh", "sqrt(tcn)&dh"))) { fit$params$flavor <- gsub("&", ",", flavor, fixed=TRUE) # AD HOC. fit <- postsegmentTCN(fit, verbose=verbose) # Sanity check CT <- fit$data$CT tcnSegRows <- fit$tcnSegRows dhSegRows <- fit$dhSegRows for (jj in 1:nrow(tcnSegRows)) { tcnSegRowJJ <- unlist(tcnSegRows[jj,,drop=TRUE], use.names=FALSE) dhSegRowJJ <- unlist(dhSegRows[jj,,drop=TRUE], use.names=FALSE) .stop_if_not( is.na(tcnSegRowJJ[1]) || is.na(dhSegRowJJ[1]) || # A TCN segment must start at or before a DH segment... (tcnSegRowJJ[1] <= dhSegRowJJ[1]) || # ...unless there was an outlier at the left edge. (is.na(CT[dhSegRowJJ[1]]) && (tcnSegRowJJ[1] - 1L <= dhSegRowJJ[1])) ) .stop_if_not( is.na(tcnSegRowJJ[2]) || is.na(dhSegRowJJ[2]) || # A TCN segment must end at or after a DH segment... (dhSegRowJJ[2] <= tcnSegRowJJ[2]) || # ...unless there was an outlier at the right edge. (is.na(CT[dhSegRowJJ[2]]) && (dhSegRowJJ[2] <= tcnSegRowJJ[2] + 1L)) ) } # for (jj ...) # Not needed anymore CT <- tcnSegRows <- dhSegRows <- NULL } verbose && print(verbose, head(as.data.frame(fit))) verbose && print(verbose, tail(as.data.frame(fit))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit }) # segmentByPairedPSCBS() setMethodS3("segmentByPairedPSCBS", "data.frame", function(CT, ...) { # To please R CMD check data <- CT segmentByPairedPSCBS(CT=data$CT, thetaT=data$thetaT, thetaN=data$thetaN, betaT=data$betaT, betaN=data$betaN, muN=data$muN, rho=data$rho, chromosome=data$chromosome, x=data$x, ...) }) setMethodS3("segmentByPairedPSCBS", "PairedPSCBS", function(...) { resegment(...) }) # segmentByPairedPSCBS() PSCBS/R/PairedPSCBS.updateMeans.R0000644000176200001440000001734414564051545015736 0ustar liggesuserssetMethodS3("updateMeans", "PairedPSCBS", function(fit, from=c("loci", "segments"), adjustFor=NULL, ..., avgTCN=c("asis", "mean", "median"), avgDH=c("asis", "mean", "median"), clear=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'from': from <- match.arg(from) # Argument 'adjustFor': if (!is.null(adjustFor)) { adjustFor <- Arguments$getCharacters(adjustFor) adjustFor <- tolower(adjustFor) knownValues <- c("ab", "loh", "roh") adjustFor <- match.arg(adjustFor, choices=knownValues, several.ok=TRUE) } # Argument 'avgTCN' & 'avgDH': avgTCN <- match.arg(avgTCN) avgDH <- match.arg(avgDH) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating mean level estimates") verbose && cat(verbose, "Adjusting for:") verbose && print(verbose, adjustFor) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up averaging functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (avgTCN == "asis" || avgDH == "asis") { est <- fit$params$meanEstimators if (avgTCN == "asis") { avgTCN <- est$tcn if (is.null(avgTCN)) avgTCN <- "mean" avgTCN <- match.arg(avgTCN) } if (avgDH == "asis") { avgDH <- est$dh if (is.null(avgDH)) avgDH <- "mean" avgDH <- match.arg(avgDH) } } avgList <- list( tcn = get(avgTCN, mode="function"), dh = get(avgDH, mode="function") ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- getSegments(fit, splitters=TRUE) segRows <- list(tcn=fit$tcnSegRows, dh=fit$dhSegRows) nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Assert that adjustments can be made # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.element("ab", adjustFor)) { if (!is.element("abCall", names(segs))) { adjustFor <- setdiff(adjustFor, "ab") stop("Cannot adjust for AB, because they haven't been called.") } } if (is.element("loh", adjustFor)) { if (!is.element("lohCall", names(segs))) { adjustFor <- setdiff(adjustFor, "loh") stop("Cannot adjust for LOH, because they haven't been called.") } } if (is.element("roh", adjustFor)) { if (!is.element("rohCall", names(segs))) { adjustFor <- setdiff(adjustFor, "roh") stop("Cannot adjust for ROH, because they haven't been called.") } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update the (TCN,DH) mean levels from locus-level data? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (from == "loci") { data <- getLocusData(fit) chromosome <- data$chromosome x <- data$x CT <- data$CT rho <- data$rho isSplitter <- isSegmentSplitter(fit) for (ss in seq_len(nbrOfSegments)[!isSplitter]) { verbose && enter(verbose, sprintf("Segment %d of %d", ss, nbrOfSegments)) seg <- segs[ss,] verbose && print(verbose, seg) chr <- seg[["chromosome"]] chrTag <- sprintf("chr%02d", chr) for (what in c("tcn", "dh")) { segRow <- segRows[[what]][ss,] # (a) A splitter - nothing todo? if (!is.finite(segRow[[1]]) || !is.finite(segRow[[2]])) { next } # (b) Identify units (loci) units <- segRow[[1]]:segRow[[2]] # (c) Adjust for missing values if (what == "tcn") { value <- CT } else if (what == "dh") { value <- rho } keep <- which(!is.na(value[units])) units <- units[keep] # (d) Update mean avgFUN <- avgList[[what]] gamma <- avgFUN(value[units]) # Sanity check .stop_if_not(length(units) == 0 || !is.na(gamma)) # Update the segment boundaries, estimates and counts key <- paste(what, "Mean", sep="") seg[[key]] <- gamma } verbose && print(verbose, seg) segs[ss,] <- seg verbose && exit(verbose) } # for (ss ...) } # if (from ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Adjust segment means from various types of calls # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (length(adjustFor) > 0) { verbose && enter(verbose, "Adjusting segment means") verbose && cat(verbose, "Adjusting for:") verbose && print(verbose, adjustFor) if (is.element("ab", adjustFor)) { verbose && enter(verbose, "Adjusting for AB") calls <- segs$abCall segs$dhMean[calls] <- 0 verbose && exit(verbose) } if (is.element("loh", adjustFor)) { verbose && enter(verbose, "Adjusting for LOH") calls <- segs$lohCall segs$dhMean[calls] <- 1 verbose && exit(verbose) } if (is.element("roh", adjustFor)) { verbose && enter(verbose, "Adjusting for ROH") calls <- segs$rohCall segs$dhMean[calls] <- NA_real_ verbose && exit(verbose) } verbose && exit(verbose) } # if (length(adjustFor) > 0) # Update fit$output <- segs fit <- setMeanEstimators(fit, tcn=avgTCN, dh=avgDH) if (clear) { fit <- clearBootstrapSummaries(fit) } # Update (C1,C2) mean levels fit <- updateMeansC1C2(fit, verbose=verbose) verbose && exit(verbose) fit }, private=TRUE) # updateMeans() setMethodS3("updateMeansC1C2", "PairedPSCBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating (C1,C2) segment mean levels") segs <- getSegments(fit) if (nrow(segs) > 0L) { tcn <- segs$tcnMean dh <- segs$dhMean C1 <- 1/2*(1-dh)*tcn C2 <- tcn - C1 segs$c1Mean <- C1 segs$c2Mean <- C2 # Preserve (C1,C2) swaps / change-point flips? swap <- segs$c1c2Swap if (!is.null(swap)) { swap <- which(swap) if (length(swap) > 0L) { segs[swap, c("c1Mean","c2Mean")] <- segs[swap, c("c2Mean","c1Mean")] } } fit$output <- segs } verbose && exit(verbose) fit }, protected=TRUE) # updateMeansC1C2() ############################################################################## # HISTORY # 2014-03-26 # o BUG FIX: updateMeansC1C2() for PairedPSCBS did not handle missing # values (=splitters) in the 'c1c2Swap' field. # 2014-03-25 # o BUG FIX: updateMeans() for PairedPSCBS and NonPairedPSCBS returned the # incorrect DH segment levels for region in AB if adjustFor="ab" and # likewise for segments in LOH if adjustFor="loh". # 2013-11-23 # o Now updateMeans(..., clear=TRUE) clears bootstrap summaries, otherwise # not. # 2013-10-26 # o Now updateMeans() for PairedPSCBS always clears the bootstrap summaries. # o Added updateMeansC1C2(). # o updateMeans() for PairedPSCBS did not preserve the (C1,C2) swaps. # 2012-04-21 # o CLEANUP: Removed unused objects in updateMeans(). # 2011-11-12 # o Added arguments 'from' and 'adjustFor' to updateMeans(). # 2011-01-16 # o BUG FIX: updateMeans() save to the incorrect column names. # 2011-01-12 # o Added updateMeans() for PairedPSCBS. ############################################################################## PSCBS/R/999.package.R0000644000176200001440000000351614564051545013412 0ustar liggesusers#########################################################################/** # @RdocPackage "PSCBS" # @eval "rd <- gsub('\\alias{PSCBS}', '', rd, fixed=TRUE); ''" # # \description{ # @eval "packageDescription('PSCBS')$Description". # # This package should be considered to be in an alpha or beta phase. # You should expect the API to be changing over time. # } # # \section{Installation and updates}{ # To install this package, use \code{install.packages("PSCBS")}. # } # # \section{To get started}{ # To get started, see: # \enumerate{ # \item Vignettes '\href{../doc/index.html}{Parent-specific copy-number segmentation using Paired PSCBS}' and '\href{../doc/index.html}{Total copy-number segmentation using CBS}'. # \item @see "segmentByCBS" - segments total copy-numbers, or any # other unimodal genomic signals, using the CBS method [3,4]. # \item @see "segmentByPairedPSCBS" - segments allele-specific # tumor signal from a tumor \emph{with} a matched normal # using the Paired PSCBS method [1,2]. # \item @see "segmentByNonPairedPSCBS" - segments allele-specific # tumor signal from a tumor \emph{without} a matched normal # using the Non-Paired PSCBS method adopted from [1,2]. # } # } # # \section{How to cite}{ # Please use [1] and [2] to cite when using Paired PSCBS, # and [3] and [4] when using CBS. # When using Non-Paired PSCBS, please cite [1] and [2] as well. # } # # @author # # \section{License}{ # @eval "packageDescription('PSCBS')$License". # } # # \references{ # [1] @include "../incl/OlshenA_etal_2011.Rd" \cr # [2] @include "../incl/BengtssonH_etal_2010.Rd" \cr # [3] @include "../incl/OlshenVenkatraman_2004.Rd" \cr # [4] @include "../incl/VenkatramanOlshen_2007.Rd" \cr # } #*/######################################################################### PSCBS/R/PairedPSCBS.estimateKappa.R0000644000176200001440000001663414564051545016261 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateKappa # # @title "Estimate global background in segmented copy numbers" # # \description{ # @get "title". # The global background, here called \eqn{\kappa}, # may have multiple origins where normal contamination is one, # but not necessarily the only one. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # estimator to use.} # \item{...}{Additional arguments passed to the estimator.} # } # # \value{ # Returns the background estimate as a @numeric scalar. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "estimateKappaByC1Density". # } # #*/########################################################################### setMethodS3("estimateKappa", "PairedPSCBS", function(this, flavor=c("density(C1)"), ...) { # Argument 'flavor': flavor <- match.arg(flavor) if (flavor == "density(C1)") { estimateKappaByC1Density(this, ...) } else { stop("Cannot estimate background. Unsupported flavor: ", flavor) } }) ###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateKappaByC1Density # # @title "Estimate global background in segmented copy numbers" # # \description{ # @get "title" based on the location of peaks in a weighted # density estimator of the minor copy number mean levels. # # The global background, here called \eqn{\kappa}, # may have multiple origins where normal contamination is one, # but not necessarily the only one. # # \emph{Assumptions:} This estimator assumes that there are segments # with C1=0 and C1=1, i.e. some deletions and, typically, some normal # segements. # } # # @synopsis # # \arguments{ # \item{typeOfWeights}{A @character string specifying how weights # are calculated.} # \item{adjust}{A @numeric scale factor specifying the size of # the bandwidth parameter used by the density estimator.} # \item{from}{A @numeric scalar specifying the lower bound for the # support of the estimated density.} # \item{minDensity}{A non-negative @numeric threshold specifying # the minimum density a peak should have in order to consider # it a peak.} # \item{...}{Not used.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the background estimate as a @numeric scalar. # } # # \section{Algorithm}{ # \itemize{ # \item Retrieve segment-level minor copy numbers and corresponding weights: # \enumerate{ # \item Grabs the segment-level C1 estimates. # \item Calculate segment weights. # The default (\code{typeOfWeights="dhNbrOfLoci"}) is to use # weights proportional to the number of heterozygous SNPs. # An alternative (\code{typeOfWeights="sqrt(dhNbrOfLoci)"}) is # to use the square root of those counts. # } # # \item Identify subset of regions with C1=0: # \enumerate{ # \item Estimates the weighted empirical density function # (truncated at zero below). Tuning parameter 'adjust'. # \item Find the first two peaks # (with a density greater than tuning parameter 'minDensity'). # \item Assumes that the two peaks corresponds to C1=0 and C1=1. # \item Defines threshold Delta0.5 as the center location between # these two peaks. # } # # \item Estimate the global background signal: # \enumerate{ # \item For all segments with C1 < Delta0.5, calculate the weighted # median of their C1:s. # \item Let kappa be the above weighted median. # This is the estimated background. # } # } # } # # @author "HB" # # \seealso{ # Instead of calling this method explicitly, it is recommended # to use the @seemethod "estimateKappa" method. # } # # @keyword internal #*/########################################################################### setMethodS3("estimateKappaByC1Density", "PairedPSCBS", function(this, typeOfWeights=c("dhNbrOfLoci", "sqrt(dhNbrOfLoci)"), adjust=1, from=0, minDensity=0.2, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'typeOfWeights': typeOfWeights <- match.arg(typeOfWeights) # Argument 'adjust': adjust <- Arguments$getDouble(adjust, range=c(0,Inf)) # Argument 'minDensity': minDensity <- Arguments$getDouble(minDensity, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimate global background (including normal contamination and more)") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the region-level estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- this$output c1 <- segs$c1Mean .stop_if_not(!is.null(c1)) n <- segs$dhNbrOfLoci # Drop missing values keep <- (!is.na(c1) & !is.na(n)) c1 <- c1[keep] n <- n[keep] verbose && cat(verbose, "Number of segments: ", length(c1)) # Calculate region weights if (typeOfWeights == "dhNbrOfLoci") { w <- n } else if (typeOfWeights == "sqrt(dhNbrOfLoci)") { w <- sqrt(n) } # Standardize weights to sum to one weights <- w / sum(w) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify subset of regions with C1=0 and C1=1 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Estimating threshold Delta0.5 from the empirical density of C1:s") verbose && cat(verbose, "adjust: ", adjust) verbose && cat(verbose, "minDensity: ", minDensity) ploidy <- ploidy(this) verbose && cat(verbose, "ploidy: ", ploidy) if (ploidy != 2) { minDensity <- (2/ploidy)*minDensity verbose && cat(verbose, "minDensity (adjusted for ploidy): ", minDensity) } d <- density(c1, weights=weights, adjust=adjust, from=from, na.rm=FALSE) fit <- findPeaksAndValleys(d) type <- NULL; rm(list="type") # To please R CMD check fit <- subset(fit, type == "peak") if (nrow(fit) < 2L) { stop(sprintf("Less than two modes were found in the empirical density of C1: %d", nrow(fit))) } nModes <- nrow(fit) fit <- subset(fit, density >= minDensity) if (nrow(fit) < 2L) { stop(sprintf("Less than two modes were found in the empirical density of C1 after removing %d modes that are too weak (density < %g): %d", nModes - nrow(fit), minDensity, nrow(fit))) } nModes <- nrow(fit) verbose && cat(verbose, "All peaks:") verbose && print(verbose, fit) # Keep the first two peaks fit <- fit[1:2,,drop=FALSE] verbose && cat(verbose, "C1=0 and C1=1 peaks:") verbose && print(verbose, fit) peaks <- fit$x Delta0.5 <- mean(peaks) verbose && cat(verbose, "Estimate of Delta0.5: ", Delta0.5) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Estimate kappa # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - keep <- which(c1 < Delta0.5) verbose && cat(verbose, "Number of segments with C1 < Delta0.5: ", length(keep)) kappa <- weightedMedian(c1[keep], w=weights[keep]) # Adjust for ploidy kappa <- (2/ploidy)*kappa verbose && cat(verbose, "Estimate of kappa: ", kappa) verbose && exit(verbose) kappa }, protected=TRUE) # estimateKappaByC1Density() PSCBS/R/CBS.PLOT,many.R0000644000176200001440000001532514564051545013614 0ustar liggesuserssetMethodS3("tileChromosomes", "CBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # Nothing to do, i.e. already tiled? if (isTRUE(attr(fit, "tiledChromosomes"))) { return(fit) } verbose && enter(verbose, "Tiling chromosomes") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit) knownSegments <- fit$params$knownSegments # Identify all chromosome chromosomes <- getChromosomes(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Additional chromosome annotations # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chrStats <- getChromosomeRanges(fit) # Build an "empty" row with start == 1. chrStatsKK <- chrStats[1,,drop=FALSE][NA,,drop=FALSE] chrStatsKK[,"start"] <- 1L # Append empty row chrStats <- rbind(chrStats, chrStatsKK) # Offset (start,stop) chrOffsets <- getChromosomeOffsets(fit, ...) chrStats[,"start"] <- chrStats[,"start"] + chrOffsets chrStats[,"end"] <- chrStats[,"end"] + chrOffsets # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Offset... # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segFields <- grep("(start|end)$", colnames(segs), value=TRUE) for (kk in seq_along(chromosomes)) { chromosome <- chromosomes[kk] chrTag <- sprintf("Chr%02d", chromosome) verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", kk, chrTag, length(chromosomes))) # Get offset for this chromosome offset <- chrOffsets[kk] verbose && cat(verbose, "Offset: ", offset) # Offset data idxs <- which(data$chromosome == chromosome) if (length(idxs) > 0L) { data$x[idxs] <- offset + data$x[idxs] } # Offset segmentation idxs <- which(segs$chromosome == chromosome) if (length(idxs) > 0L) { segs[idxs,segFields] <- offset + segs[idxs,segFields] } # Offset known segments idxs <- which(knownSegments$chromosome == chromosome) if (length(idxs) > 0L) { knownSegments[idxs,c("start", "end")] <- offset + knownSegments[idxs,c("start", "end")] } verbose && exit(verbose) } # for (kk ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- fit fitT$data <- data fitT$output <- segs fitT$chromosomeStats <- chrStats fitT$params$knownSegments <- knownSegments fitT$params$chrOffsets <- chrOffsets # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity checks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- getSegments(fit) segsT <- getSegments(fitT) segs <- segs[,!is.element(colnames(segs), c("start", "end"))] segsT <- segsT[,!is.element(colnames(segsT), c("start", "end"))] .stop_if_not(all.equal(segsT, segs)) data <- getLocusData(fit) dataT <- getLocusData(fitT) data <- data[,!is.element(colnames(data), c("x"))] dataT <- dataT[,!is.element(colnames(dataT), c("x"))] .stop_if_not(all.equal(dataT, data)) .stop_if_not(nbrOfLoci(fitT) == nbrOfLoci(fit)) .stop_if_not(nbrOfSegments(fitT) == nbrOfSegments(fit)) # Flag object attr(fitT, "tiledChromosomes") <- TRUE verbose && exit(verbose) fitT }, protected=TRUE) # tileChromosomes() setMethodS3("plotTracksManyChromosomes", "CBS", function(x, scatter=TRUE, pch=20, col="gray", meanCol="purple", Clim=c(0,3*ploidy(x)), xScale=1e-6, xlab="Genomic position", Clab="TCN", ..., boundaries=TRUE, levels=TRUE, subset=NULL, byIndex=FALSE, add=FALSE, onBegin=NULL, onEnd=NULL, mar=NULL, verbose=FALSE) { # To please R CMD check fit <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': # Argument 'add': add <- Arguments$getLogical(add) # Argument 'Clim': if (!add) { Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Argument 'subset': if (!is.null(subset)) { subset <- Arguments$getDouble(subset, range=c(0,1)) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) verbose && str(verbose, fitT) # Sanity check .stop_if_not(!is.null(fitT$chromosomeStats)) # Extract the input data data <- getLocusData(fitT) if (is.null(data)) { stop("Cannot plot segmentation results. No input data available.") } # Subset of the loci? if (!is.null(subset) && subset < 1) { n <- nrow(data) keep <- sample(n, size=subset*n) data <- data[keep,] } # To please R CMD check CT <- y <- muN <- betaT <- betaN <- betaTN <- NULL rm(list=c("CT", "muN", "betaT", "betaN", "betaTN")) attachLocally(data) x <- xScale * x chrStats <- fitT$chromosomeStats chrStats <- chrStats[-nrow(chrStats),,drop=FALSE] chrRanges <- as.matrix(chrStats[,c("start","end")]) vs <- xScale * chrRanges mids <- (vs[,1]+vs[,2])/2 CT <- y nbrOfLoci <- length(x) chromosomes <- getChromosomes(fitT) chrLabels <- sprintf("%02d", chromosomes) if (byIndex) { xs <- seq_along(x) } else { xs <- x } if (!add && !is.null(mar)) { par(mar=mar) } gh <- fitT gh$xScale <- xScale xlim <- xScale*range(chrRanges, na.rm=TRUE) pchT <- if (scatter) { pch } else { NA } plot(NA, xlim=xlim, ylim=Clim, xlab=xlab, ylab=Clab, axes=FALSE) if (!is.null(onBegin)) onBegin(gh=gh) points(xs, CT, pch=pchT, col=col, ...) side <- rep(c(1,3), length.out=length(chrLabels)) mtext(text=chrLabels, side=side, at=mids, line=0.1, cex=0.7*par("cex")) if (boundaries) { abline(v=vs, lty=3) } axis(side=2) box() if (levels) { drawLevels(fitT, col=meanCol, xScale=xScale, byIndex=byIndex) } if (!is.null(onEnd)) onEnd(gh=gh) invisible(gh) }, private=TRUE) # plotTracksManyChromosomes() PSCBS/R/CBS.IO.R0000644000176200001440000001703514564051545012404 0ustar liggesuserssetMethodS3("writeLocusData", "CBS", function(fit, name=getSampleName(fit), tags=NULL, ext="tsv", path=NULL, sep="\t", nbrOfDecimals=4L, addHeader=TRUE, createdBy=NULL, overwrite=FALSE, skip=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'name' and 'tags': name <- Arguments$getCharacter(name) tags <- Arguments$getCharacters(tags) # Argument 'ext': ext <- Arguments$getCharacter(ext) # Arguments 'path': path <- Arguments$getWritablePath(path) # Argument 'nbrOfDecimals': nbrOfDecimals <- Arguments$getInteger(nbrOfDecimals) fullname <- paste(c(name, tags), collapse=",") filename <- sprintf("%s.%s", fullname, ext) pathname <- Arguments$getWritablePathname(filename, path=path, mustNotExist=(!overwrite && !skip)) # File already exists? if (isFile(pathname)) { # Skip? if (skip) { return(pathname) } # Overwrite! file.remove(pathname) } # Write to temporary file pathnameT <- pushTemporaryFile(pathname) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit, ...) # Round of floating points if (!is.null(nbrOfDecimals)) { cols <- colnames(data) for (key in cols) { values <- data[[key]] if (is.double(values)) { values <- round(values, digits=nbrOfDecimals) data[[key]] <- values } } # for (key ...) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Build header # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (addHeader) { sigmaDelta <- estimateStandardDeviation(fit, method="diff") # sigmaResiduals <- estimateStandardDeviation(fit, method="res") createdOn <- format(Sys.time(), format="%Y-%m-%d %H:%M:%S %Z") hdr <- c( name=name, tags=tags, fullname=fullname, segmentationMethod=sprintf("segment() of %s", attr(fit, "pkgDetails")), nbrOfLoci=nbrOfLoci(fit), nbrOfSegments=nbrOfSegments(fit), joinSegments=fit$params$joinSegments, signalType=getSignalType(fit), sigmaDelta=sprintf("%.4f", sigmaDelta), # sigmaResiduals=sprintf("%.4f", sigmaResiduals), createdBy=createdBy, createdOn=createdOn, nbrOfDecimals=nbrOfDecimals, nbrOfColumns=ncol(data), columnNames=paste(colnames(data), collapse=", "), columnClasses=paste(sapply(data, FUN=function(x) class(x)[1]), collapse=", ") ) bfr <- paste("# ", names(hdr), ": ", hdr, sep="") cat(file=pathnameT, bfr, sep="\n") } # if (addHeader) write.table(file=pathnameT, data, append=TRUE, quote=FALSE, sep=sep, row.names=FALSE, col.names=TRUE) pathname <- popTemporaryFile(pathnameT) pathname }, protected=TRUE) # writeLocusData() ###########################################################################/** # @set "class=CBS" # @RdocMethod writeSegments # @alias writeWIG # @alias writeWIG.AbstractCBS # # @title "Writes the table of segments to file" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{name, tags}{Name and optional tags part of the filename}. # \item{path}{The directory where the file will be written.} # \item{addHeader}{If @TRUE, header comments are written.} # \item{createdBy}{A header comment of whom created the file.} # \item{splitters}{If @TRUE, each chromosome is separated by a row # of missing values.} # \item{overwrite, skip}{If an output file already exists, these # arguments specifies what should happen.} # \item{...}{Additional arguments pass to \code{getSegments()}.} # } # # \value{ # Returns the pathname of the the file written. # } # # @author "HB" # # \seealso{ # Utilizes @seemethod "getSegments". # @seeclass. # } # # @keyword internal #*/########################################################################### setMethodS3("writeSegments", "CBS", function(fit, name=getSampleName(fit), tags=NULL, ext="tsv", path=NULL, addHeader=TRUE, createdBy=NULL, sep="\t", nbrOfDecimals=4L, splitters=FALSE, overwrite=FALSE, skip=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'name' and 'tags': name <- Arguments$getCharacter(name) tags <- Arguments$getCharacters(tags) # Argument 'ext': ext <- Arguments$getCharacter(ext) # Arguments 'path': path <- Arguments$getWritablePath(path) # Argument 'nbrOfDecimals': nbrOfDecimals <- Arguments$getInteger(nbrOfDecimals) fullname <- paste(c(name, tags), collapse=",") filename <- sprintf("%s.%s", fullname, ext) pathname <- Arguments$getWritablePathname(filename, path=path, mustNotExist=(!overwrite && !skip)) # File already exists? if (isFile(pathname)) { # Skip? if (skip) { return(pathname) } # Overwrite! file.remove(pathname) } # Write to temporary file pathnameT <- pushTemporaryFile(pathname) sampleName <- getSampleName(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getSegments(fit, ..., splitters=splitters) # Round of floating points if (!is.null(nbrOfDecimals)) { cols <- tolower(colnames(data)) isInt <- (regexpr("chromosome|start|end|nbrofloci", cols) != -1) cols <- which(isInt) for (cc in cols) { values <- data[[cc]] if (is.double(values)) { values <- round(values, digits=0) data[[cc]] <- values } } # for (key ...) cols <- tolower(colnames(data)) isInt <- (regexpr("chromosome|start|end|nbrofloci", cols) != -1) isLog <- (regexpr("call", cols) != -1) isDbl <- (!isInt & !isLog) cols <- which(isDbl) for (kk in cols) { values <- data[[kk]] if (is.double(values)) { values <- round(values, digits=nbrOfDecimals) data[[kk]] <- values } } # for (key ...) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Build header # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (addHeader) { sigmaDelta <- estimateStandardDeviation(fit, method="diff") # sigmaResiduals <- estimateStandardDeviation(fit, method="res") createdOn <- format(Sys.time(), format="%Y-%m-%d %H:%M:%S %Z") hdr <- c( name=name, tags=tags, fullname=fullname, segmentationMethod=sprintf("segment() of %s", attr(fit, "pkgDetails")), nbrOfLoci=nbrOfLoci(fit), nbrOfSegments=nbrOfSegments(fit), joinSegments=fit$params$joinSegments, signalType=getSignalType(fit), sigmaDelta=sprintf("%.4f", sigmaDelta), # sigmaResiduals=sprintf("%.4f", sigmaResiduals), createdBy=createdBy, createdOn=createdOn, nbrOfDecimals=nbrOfDecimals, nbrOfColumns=ncol(data), columnNames=paste(colnames(data), collapse=", "), columnClasses=paste(sapply(data, FUN=function(x) class(x)[1]), collapse=", ") ) bfr <- paste("# ", names(hdr), ": ", hdr, sep="") cat(file=pathnameT, bfr, sep="\n") } # if (addHeader) write.table(file=pathnameT, data, append=TRUE, quote=FALSE, sep=sep, row.names=FALSE, col.names=TRUE) pathname <- popTemporaryFile(pathnameT) pathname }) # writeSegments() PSCBS/R/callSegmentationOutliers.R0000644000176200001440000001542214564051545016505 0ustar liggesusers###########################################################################/** # @RdocGeneric callSegmentationOutliers # @alias callSegmentationOutliers.default # @alias callSegmentationOutliers.data.frame # @alias dropSegmentationOutliers # @alias dropSegmentationOutliers.default # @alias dropSegmentationOutliers.data.frame # # @title "Calls/drops single-locus outliers along the genome" # # \description{ # @get "title" that have a signal that differ significantly from the # neighboring loci. # } # # \usage{ # @usage callSegmentationOutliers,default # @usage callSegmentationOutliers,data.frame # @usage dropSegmentationOutliers,default # @usage dropSegmentationOutliers,data.frame # } # # \arguments{ # \item{y}{A @numeric @vector of J genomic signals to be segmented.} # \item{chromosome}{(Optional) An @integer scalar # (or a @vector of length J contain a unique value). # Only used for annotation purposes.} # \item{x}{Optional @numeric @vector of J genomic locations. # If @NULL, index locations \code{1:J} are used.} # \item{method}{A @character string specifying the method # used for calling outliers.} # \item{...}{Additional arguments passed to internal outlier # detection method.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # \code{callSegmentationOutliers()} returns a @logical @vector of length J. # \code{dropSegmentationOutliers()} returns an object of the same type # as argument \code{y}, where the signals for which outliers were called # have been set to @NA. # } # # \section{Missing and non-finite values}{ # Signals as well as genomic positions may contain missing # values, i.e. @NAs or @NaNs. By definition, these cannot # be outliers. # } # # @author "HB" # # \seealso{ # Internally @see "DNAcopy::smooth.CNA" is utilized to identify # the outliers. # } # # @keyword IO #*/########################################################################### setMethodS3("callSegmentationOutliers", "default", function(y, chromosome=0, x=NULL, method="DNAcopy::smooth.CNA", ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'y': disallow <- c("Inf") y <- Arguments$getDoubles(y, disallow=disallow) nbrOfLoci <- length(y) length2 <- rep(nbrOfLoci, times=2L) # Argument 'chromosome': disallow <- c("NaN", "Inf") chromosome <- Arguments$getIntegers(chromosome, range=c(0,Inf), disallow=disallow) if (length(chromosome) == 1L) { chromosome <- rep(chromosome, times=nbrOfLoci) } else { chromosome <- Arguments$getVector(chromosome, length=length2) } # Argument 'x': if (!is.null(x)) { disallow <- c("Inf") x <- Arguments$getDoubles(x, length=length2, disallow=disallow) } # Argument 'method': method <- match.arg(method) verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Identifying outliers") uChromosomes <- sort(unique(chromosome)) nbrOfChromosomes <- length(uChromosomes) verbose && cat(verbose, "Number of chromosomes: ", nbrOfChromosomes) verbose && cat(verbose, "Number of loci: ", nbrOfLoci) verbose && cat(verbose, "Detection method: ", method) # Allocate result vector isOutlier <- logical(nbrOfLoci) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Filter missing data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identifying loci with non-missing data") keep <- (!is.na(x) & !is.na(y)) if (!is.null(chromosome)) { keep <- (keep & !is.na(chromosome)) } keep <- which(keep) chromosome <- chromosome[keep] x <- x[keep] y <- y[keep] nbrOfLoci <- length(x) verbose && cat(verbose, "Number of loci with non-missing data: ", nbrOfLoci) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each chromosome # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - isOutlierT <- logical(nbrOfLoci) for (kk in seq_along(uChromosomes)) { chr <- uChromosomes[kk] verbose && enter(verbose, sprintf("Chromosome #%d ('Chr%02d') of %d", kk, chr, length(uChromosomes))) keepKK <- which(chromosome == chr) nbrOfLociKK <- length(keepKK) verbose && cat(verbose, "Number of loci on chromosome: ", nbrOfLociKK) # Extract data yKK <- y[keepKK] xKK <- x[keepKK] chromosomeKK <- chromosome[keepKK] # Order loci along chromosome o <- order(xKK) xKK <- xKK[o] yKK <- yKK[o] chromosomeKK <- chromosomeKK[o] keepKK <- keepKK[o] o <- NULL # Not needed anymore # Supress all warnings, in order to avoid warnings by DNAcopy::CNA() # on "array has repeated maploc positions". Ideally we should filter # just those out. /HB 2013-10-22 suppressWarnings({ dataKK <- CNA(genomdat=yKK, chrom=chromosomeKK, maploc=xKK, sampleid="y", presorted=TRUE) }) chromosomeKK <- xKK <- NULL # Not needed anymore yKKs <- smooth.CNA(dataKK, ...)$y dataKK <- NULL # Not needed anymore # Sanity check .stop_if_not(length(yKKs) == nbrOfLociKK) outliersKK <- which(yKKs != yKK) yKKs <- yKK <- NULL # Not needed anymore nbrOfOutliers <- length(outliersKK) verbose && cat(verbose, "Number of outliers: ", nbrOfOutliers) outliers <- keepKK[outliersKK] keepKK <- outliersKK <- NULL # Not needed anymore isOutlierT[outliers] <- TRUE outliers <- NULL # Not needed anymore verbose && exit(verbose) } # for (kk ...) chromosome <- x <- y <- NULL # Not needed anymore isOutlier[keep] <- isOutlierT isOutlierT <- keep <- NULL # Not needed anymore nbrOfOutliers <- sum(isOutlier, na.rm=TRUE) verbose && cat(verbose, "Total number of outliers: ", nbrOfOutliers) verbose && exit(verbose) isOutlier }) # callSegmentationOutliers() setMethodS3("callSegmentationOutliers", "data.frame", function(y, ...) { data <- y # Get either CBS or PSCBS total CN signals. y <- data$y if (is.null(y)) { y <- data$CT } callSegmentationOutliers(y=y, chromosome=data$chromosome, x=data$x, ...) }) # callSegmentationOutliers() setMethodS3("dropSegmentationOutliers", "default", function(y, ...) { isOutlier <- callSegmentationOutliers(y, ...) y[isOutlier] <- NA_real_ isOutlier <- NULL # Not needed anymore y }) setMethodS3("dropSegmentationOutliers", "data.frame", function(y, ...) { data <- y isOutlier <- callSegmentationOutliers(data, ...) # Update either CBS or PSCBS total CN signals. key <- "CT" if (!is.element(key, colnames(data))) { key <- "y" } data[[key]][isOutlier] <- NA_real_ isOutlier <- NULL # Not needed anymore data }) PSCBS/R/installDNAcopy.R0000644000176200001440000000333314564051545014347 0ustar liggesusers############################################################################/** # @RdocDefault installDNAcopy # # @title "Install the DNAcopy package" # # @synopsis # # \description{ # @get "title", if missing. # } # # \arguments{ # \item{...}{Arguments passed to the install function.} # \item{force}{If @FALSE and the \pkg{DNAcopy} package is already # installed, then it will not be re-install. # If @TRUE, it will be installed.} # } # # \value{ # Returns nothing. # } # # \details{ # This function is will download and call the \code{biocLite()} # installation function from the Bioconductor Project website. # This function will also make sure that \pkg{DNAcopy} is loaded so # that it is reported by @see "utils::sessionInfo". # } # # @author "HB" # # @keyword internal #*/############################################################################ setMethodS3("installDNAcopy", "default", function(..., force=FALSE) { # Argument 'force': force <- Arguments$getLogical(force) # Package to be installed pkgName <- "DNAcopy" # Is DNAcopy already available? if (!force && isPackageInstalled(pkgName)) { library(pkgName, character.only=TRUE) return(invisible()) } # If not, install it... if (getRversion() >= "3.5.0") { if (!isPackageInstalled("BiocManager")) install.packages("BiocManager") ns <- getNamespace("BiocManager") BiocManager_install <- get("install", envir = ns) BiocManager_install(pkgName, ...) } else { # To please R CMD check biocLite <- NULL; rm(list="biocLite") source("https://www.bioconductor.org/biocLite.R") biocLite(pkgName, ...) } # ...and load it library(pkgName, character.only=TRUE) return(invisible()) }) # installDNAcopy() PSCBS/R/utils.R0000644000176200001440000000067314564051545012627 0ustar liggesusers.stop_if_not <- function(...) { res <- list(...) n <- length(res) if (n == 0L) return() for (ii in 1L:n) { res_ii <- .subset2(res, ii) if (length(res_ii) != 1L || is.na(res_ii) || !res_ii) { mc <- match.call() call <- deparse(mc[[ii + 1]], width.cutoff = 60L) if (length(call) > 1L) call <- paste(call[1L], "...") stop(sQuote(call), " is not TRUE but ", call. = FALSE, domain = NA) } } } PSCBS/R/PairedPSCBS.BOOT.sets.R0000644000176200001440000004134614564051545015207 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod getBootstrapLocusSets # @alias getBootstrapLocusSets # # @title "Generates original and bootstrapped segment-specific index sets" # # \description{ # @get "title", which can be used to calculate various bootstrap summaries, # e.g. segment mean levels. # } # # @synopsis # # \arguments{ # \item{B}{A non-negative @integer specifying the number of bootstrap samples.} # \item{by}{Should \code{betaTN} or \code{betaT} be used?} # \item{seed}{An (optional) @integer specifying the random seed to be # set before sampling indices. The random seed is set to its original # state when exiting. If @NULL, it is not set.} # \item{verbose}{See @see "R.utils::Verbose".} # \item{.validate}{If @TRUE, additional sanity checks are performed # to validate the correctness. This is only needed for troubleshooting # if it is suspected there is a bug.} # \item{...}{Not used.} # } # # \value{ # Returns a @list. # } # # @author "HB" # # \seealso{ # This is used internally by various bootstrap methods. # } # # @keyword internal #*/########################################################################### setMethodS3("getBootstrapLocusSets", "PairedPSCBS", function(fit, B=1000L, by=c("betaTN", "betaT"), seed=NULL, verbose=FALSE, .validate=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'B': B <- Arguments$getInteger(B, range=c(0,Inf)) # Argument 'by': by <- match.arg(by) # Argument 'seed': if (!is.null(seed)) { seed <- Arguments$getInteger(seed) } # Argument '.validate': .validate <- Arguments$getLogical(.validate) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Bootstrapping (TCN,DH,C1,C2) segment mean levels") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set the random seed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=%d)\n", seed) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) tcnSegRows <- fit$tcnSegRows dhSegRows <- fit$dhSegRows segs <- getSegments(fit) params <- fit$params # Sanity checks if (!params$joinSegments) { stop("Cannot bootstrap TCN and DH by segments unless PSCNs are segmented using joinSegments=TRUE.") } if (regexpr(",", params$flavor, fixed=TRUE) != -1L) { stop(sprintf("Cannot bootstrap TCN and DH by segments if PSCNs are segmented using flavor=\"%s\".", params$flavor)) } # Sanity check (same as above, but just in case) .stop_if_not(all(segs$tcnStart == segs$dhStart, na.rm=TRUE)) .stop_if_not(all(segs$tcnEnd == segs$dhEnd, na.rm=TRUE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get signals # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get (x,TCN,BAF) data chromosome <- data$chromosome x <- data$x CT <- data$CT betaT <- data[[by]] muN <- data$muN rho <- data$rho hasDH <- !is.null(rho) # Not needed anymore data <- NULL # Sanity checks .stop_if_not(all(!is.na(chromosome) & !is.na(x))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Classify each locus as (i) heterozygous SNP, (ii) homozygous SNP, # or (iii) non-polymorphic loci # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identifying heterozygous & homozygous SNPs and non-polymorphic loci") nbrOfLoci <- length(x) verbose && cat(verbose, "Number of loci: ", nbrOfLoci) # SNPs are identifies as those loci that have non-missing 'muN' (& betaTN') if (hasDH) { isHet <- !is.na(rho) isSnp <- isHet } else { isSnp <- (!is.na(muN) & !is.na(betaT)) isHet <- isSnp & (muN == 1/2) } snps <- which(isSnp) nonSNPs <- which(!isSnp) nbrOfSNPs <- sum(isSnp) nbrOfNonSNPs <- sum(!isSnp) verbose && cat(verbose, "Number of SNPs: ", nbrOfSNPs) verbose && cat(verbose, "Number of non-SNPs: ", nbrOfNonSNPs) # Sanity checks .stop_if_not(length(intersect(snps, nonSNPs)) == 0L) # Heterozygous SNPs hets <- which(isSnp & isHet) homs <- which(isSnp & !isHet) nbrOfHets <- length(hets) nbrOfHoms <- length(homs) if (!hasDH) { verbose && printf(verbose, "Number of heterozygous SNPs: %d (%.2f%%)\n", nbrOfHets, 100*nbrOfHets/nbrOfSNPs) verbose && printf(verbose, "Number of homozygous SNPs: %d (%.2f%%)\n", nbrOfHoms, 100*nbrOfHoms/nbrOfSNPs) } # Sanity checks .stop_if_not(length(intersect(hets, homs)) == 0L) .stop_if_not(nbrOfHets + nbrOfHoms == nbrOfSNPs) # Sanity checks .stop_if_not(length(isSnp) == nbrOfLoci) .stop_if_not(length(isHet) == nbrOfLoci) # Not needed anymore muN <- isSnp <- NULL verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Precalculate DH signals # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!hasDH) { # Calculate DHs for heterozygous SNPs rho <- 2*abs(betaT - 1/2) # DH is by definition only defined for heterozygous SNPs. # For simplicity, we set it to be NA for non-heterozygous loci. rho[!isHet] <- NA } # Not needed anymore betaT <- isHet <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Resample (TCN,DH) within each segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nrow(segs) # Allocate JxBx4 matrix M of bootstrap means dim <- c(nbrOfSegments, B, 4L) dimnames <- list(NULL, NULL, c("tcn", "dh", "c1", "c2")) # Identify all loci with non-missing signals idxsCT <- which(!is.na(CT)) idxsRho <- which(!is.na(rho)) # Not needed anymore CT <- rho <- NULL # Vectorized pre-adjustments for (key in c("tcnNbrOfLoci", "dhNbrOfLoci")) { counts <- segs[[key]] counts[is.na(counts)] <- 0L segs[[key]] <- counts counts <- NULL # Not needed anymore } hasTcnLoci <- (is.finite(tcnSegRows[,1L]) & is.finite(tcnSegRows[,2L])) hasDhLoci <- (is.finite(dhSegRows[,1L]) & is.finite(dhSegRows[,2L])) # Identify "splitter" segments which have no data chrs <- segs[["chromosome"]] tcnIds <- segs[["tcnId"]] dhIds <- segs[["dhId"]] dhMeans <- segs[["dhMean"]] isSplitter <- (is.na(chrs) & is.na(tcnIds) & is.na(dhIds)) # Get all segment indices except for "splitters" jjs <- seq_len(nbrOfSegments) jjs <- jjs[!isSplitter] # Allocate list to hold the results res <- list( nbrOfSegments = nbrOfSegments, segments = jjs, nbrOfLoci = nbrOfLoci, loci = list( all = seq_len(nbrOfLoci), tcn = idxsCT, dh = idxsRho ), by = by, seed = seed ) locusSet <- vector("list", length=nbrOfSegments) # For each segment jj = 1, 2, ..., S for (jj in jjs) { chr <- chrs[jj] tcnId <- tcnIds[jj] dhId <- dhIds[jj] verbose && enter(verbose, sprintf("Segment #%d (chr %d, tcnId=%d, dhId=%d) of %d", jj, chr, tcnId, dhId, nbrOfSegments)) # Sanity check if (.validate) { .stop_if_not(!is.na(chr) && !is.na(tcnId) && !is.na(dhId)) } # Get the segment data segJJ <- segs[jj,,drop=FALSE] nbrOfTCNs <- segJJ[,"tcnNbrOfLoci"] nbrOfDHs <- segJJ[,"dhNbrOfLoci"] if (verbose) { print(verbose, segJJ) cat(verbose, "Number of TCNs: ", nbrOfTCNs) cat(verbose, "Number of DHs: ", nbrOfDHs) } if (.validate) { .stop_if_not(!is.na(nbrOfTCNs)) .stop_if_not(!is.na(nbrOfDHs)) } tcnSegRowJJ <- unlist(tcnSegRows[jj,], use.names=FALSE) dhSegRowJJ <- unlist(dhSegRows[jj,], use.names=FALSE) # Indices of all loci if (hasTcnLoci[jj]) { idxsAll <- tcnSegRowJJ[1L]:tcnSegRowJJ[2L] } else { idxsAll <- integer(0L) } if (verbose) { str(verbose, idxsAll) print(verbose, hpaste(idxsAll), level=-120) str(verbose, idxsCT) print(verbose, hpaste(idxsCT), level=-120) } # Keep only loci with finite TCNs idxsAll <- intersect(idxsAll, idxsCT) if (verbose) { str(verbose, idxsAll) print(verbose, hpaste(idxsAll), level=-120) } # Sanity check if (length(idxsAll) != nbrOfTCNs) { verbose && str(verbose, setdiff(idxsCT, idxsAll)) stop("INTERNAL ERROR: length(idxsAll) != nbrOfTCNs: ", length(idxsAll), " != ", nbrOfTCNs) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify loci used to calculate DH means # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identify loci used to bootstrap DH means") if (hasDhLoci[jj]) { idxsDH <- dhSegRowJJ[1L]:dhSegRowJJ[2L] idxsDH <- intersect(idxsDH, hets) # Drop missing values idxsDH <- intersect(idxsDH, idxsRho) } else { idxsDH <- integer(0L) } verbose && cat(verbose, "Heterozygous SNPs to resample for DH:") verbose && str(verbose, idxsDH) # Sanity check if (.validate) .stop_if_not(length(idxsDH) == nbrOfDHs) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify loci used to calculate TCN means # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identify loci used to bootstrap TCN means") # Identify SNPs and non-SNPs idxsSNP <- intersect(snps, idxsAll) idxsNonSNP <- setdiff(idxsAll, idxsSNP) if (verbose) { cat(verbose, "SNPs:") str(verbose, idxsSNP) cat(verbose, "Non-polymorphic loci:") str(verbose, idxsNonSNP) } # Sanity check if (.validate) .stop_if_not(length(idxsSNP) + length(idxsNonSNP) == length(idxsAll)) # Identify heterozygous and homozygous SNPs idxsHet <- intersect(idxsSNP, hets) if (nbrOfHoms > 0) { idxsHom <- intersect(idxsSNP, homs) } else { idxsHom <- integer(0L) } # Drop missing values idxsNonSNP <- intersect(idxsNonSNP, idxsCT) idxsHet <- intersect(idxsHet, idxsCT) if (nbrOfHoms > 0) { idxsHom <- intersect(idxsHom, idxsCT) } idxsHetNonDH <- setdiff(idxsHet, idxsDH) if (verbose) { cat(verbose, "Heterozygous SNPs to resample for TCN:") str(verbose, idxsHet) cat(verbose, "Homozygous SNPs to resample for TCN:") str(verbose, idxsHom) cat(verbose, "Non-polymorphic loci to resample for TCN:") str(verbose, idxsNonSNP) cat(verbose, "Heterozygous SNPs with non-DH to resample for TCN:") str(verbose, idxsHetNonDH) } # Note that length(idxsHetNonDH) may differ from zero in case CT is non-missing # but rho is missing, e.g. CT = sum(c(thetaA,thetaB), na.rm=TRUE) and # thetaB is missing. /HB 2010-12-01 idxsTCN <- sort(unique(c(idxsHet, idxsHom, idxsNonSNP))) if (verbose) { cat(verbose, "Loci to resample for TCN:") str(verbose, idxsTCN) } # Sanity check if (.validate) { .stop_if_not(length(idxsHet) + length(idxsHom) + length(idxsNonSNP) == nbrOfTCNs) .stop_if_not(length(intersect(idxsDH, idxsHetNonDH)) == 0L) .stop_if_not(length(idxsTCN) == nbrOfTCNs) } verbose && exit(verbose) # These numbers should be preserved when the resampling verbose && printf(verbose, "Number of (#hets, #homs, #nonSNPs): (%d,%d,%d)\n", length(idxsHet), length(idxsHom), length(idxsNonSNP)) # Workaround: ... Why? /HB 2013-10-22 shouldHaveDHs <- (nbrOfDHs > 0L && !is.na(dhMeans[jj])) if (!shouldHaveDHs) { idxsHetNonDH <- idxsDH .stop_if_not(all(idxsHetNonDH > 0L)) } shouldHaveDHs <- NULL # Not needed anymore nHoms <- length(idxsHom) nNonSNPs <- length(idxsNonSNP) nHetNonDHs <- length(idxsHetNonDH) locusSetJJ <- list( segment = segJJ, loci = list( all = idxsAll, snp = idxsSNP, tcn = idxsTCN, dh = idxsDH, nonSnp = idxsNonSNP, het = idxsHet, hom = idxsHom, hetNonDh = idxsHetNonDH ) ) # Sanity checks if (.validate) { loci <- locusSetJJ$loci for (key in names(loci)) { idxs <- loci[[key]] # Assert positive indices .stop_if_not(all(idxs > 0L)) # Assert a unique set of indices .stop_if_not(!any(duplicated(idxs))) } # Assert non-overlapping sets with(loci, { .stop_if_not(length(intersect(dh, hetNonDh)) == 0L) .stop_if_not(length(intersect(het, hom)) == 0L) .stop_if_not(length(intersect(het, nonSnp)) == 0L) .stop_if_not(length(intersect(hom, nonSnp)) == 0L) }) loci <- NULL # Not needed anymore } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify bootstrap locus sets preserving (#hets, #homs, #nonSNPs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identifying bootstrap locus sets that preservs (#hets, #homs, #nonSNPs)") verbose && cat(verbose, "Number of bootstrap samples: ", B) nbrOfTCNs <- nbrOfDHs+nHoms+nNonSNPs nbrOfHets <- nbrOfDHs+nHetNonDHs # Allocate index matrices tcn <- matrix(NA_integer_, nrow=nbrOfTCNs, ncol=B) dh <- matrix(NA_integer_, nrow=nbrOfDHs, ncol=B) nonSnp <- matrix(NA_integer_, nrow=nNonSNPs, ncol=B) het <- matrix(NA_integer_, nrow=nbrOfHets, ncol=B) hom <- matrix(NA_integer_, nrow=nHoms, ncol=B) hetNonDh <- matrix(NA_integer_, nrow=nHetNonDHs, ncol=B) ## resample <- function(x, size, ...) { ## .stop_if_not(size == length(x)) ## x ## } # resample() # (1) Bootstrap DH loci if (nbrOfDHs > 0L) { # (a) Resample heterozygous SNPs (=> resampled DH units) for (bb in seq_len(B)) { dh[,bb] <- resample(idxsDH, size=nbrOfDHs, replace=TRUE) } } # (2) Bootstrap other loci # (a) Resample non-DH hets SNPs if (nHetNonDHs > 0L) { for (bb in seq_len(B)) { idxsHetNonDHBB <- resample(idxsHetNonDH, size=nHetNonDHs, replace=TRUE) hetNonDh[,bb] <- idxsHetNonDHBB } } # (b) Resample homozygous SNPs if (nHoms > 0L) { for (bb in seq_len(B)) { idxsHomBB <- resample(idxsHom, size=nHoms, replace=TRUE) hom[,bb] <- idxsHomBB } } # (c) Resample non-SNPs if (nNonSNPs > 0L) { for (bb in seq_len(B)) { idxsNonSNPBB <- resample(idxsNonSNP, size=nNonSNPs, replace=TRUE) nonSnp[,bb] <- idxsNonSNPBB } } # (d) Resampled hets if (nbrOfHets > 0L) { for (bb in seq_len(B)) { idxsDHBB <- dh[,bb] idxsHetNonDHBB <- hetNonDh[,bb] idxsHetBB <- c(idxsDHBB, idxsHetNonDHBB) # idxsHetBB <- sort(idxsHetBB) het[,bb] <- idxsHetBB } } # (e) Update TCN loci if (nbrOfTCNs > 0L) { for (bb in seq_len(B)) { idxsHetBB <- het[,bb] idxsHomBB <- hom[,bb] idxsNonSNPBB <- nonSnp[,bb] idxsTCNBB <- c(idxsHetBB, idxsHomBB, idxsNonSNPBB) # idxsTCNBB <- sort(idxsTCNBB) tcn[,bb] <- idxsTCNBB } } # Record locusSetJJ$bootstrap <- list( B = B, loci = list( tcn = tcn, dh = dh, nonSnp = nonSnp, het = het, hom = hom, hetNonDh = hetNonDh ) ) # Sanity check if (.validate) { loci <- locusSetJJ$loci lociB <- locusSetJJ$bootstrap$loci for (key in names(lociB)) { idxs <- loci[[key]] idxsB <- lociB[[key]] idxsB <- unique(sort(idxsB)) .stop_if_not(all(is.element(idxsB, idxs))) } loci <- lociB <- NULL # Not needed anymore } verbose && exit(verbose) # Record locusSet[[jj]] <- locusSetJJ # Not needed anymore locusSetJJ <- NULL verbose && exit(verbose) } # for (jj ...) # Sanity checks .stop_if_not(is.list(locusSet)) .stop_if_not(length(locusSet) == nbrOfSegments) verbose && exit(verbose) res$locusSet <- locusSet res }, protected=TRUE) # getBootstrapLocusSets() ############################################################################## # HISTORY # 2013-10-22 # o Added Rdoc comments. # o Added getBootstrapLocusSets() for PairedPSCBS. ############################################################################## PSCBS/R/zzz.R0000644000176200001440000000141014564051545012312 0ustar liggesusers.use <- function(name, package, ..., mode = "function") { get(name, mode = mode, envir = getNamespace(package)) } .onLoad <- function(libname, pkgname) { ## covr: skip=5 ns <- getNamespace(pkgname) pkg <- Package(pkgname) # Assign '.PSCBS' object [since 'PSCBS' is a constructor/Class]. name <- sprintf(".%s", pkgname) assign(name, pkg, envir = ns, inherits = FALSE) } .onAttach <- function(libname, pkgname) { # Copy some pre-memoized CBS-parameter calculations to the 'R.cache' # cache. This speeds up the calculation for common CBS use cases. .prememoize() # Get '.PSCBS' object [since 'PSCBS' is a constructor/Class]. name <- sprintf(".%s", pkgname) pkg <- get(name, envir = getNamespace(pkgname), inherits = FALSE) startupMessage(pkg) } PSCBS/R/gapsToSegments.R0000644000176200001440000001050014564051545014420 0ustar liggesusers###########################################################################/** # @set "class=data.frame" # @RdocMethod gapsToSegments # @alias gapsToSegments # # @title "Gets the genomic segments that are complementary to the gaps" # # \description{ # @get "title", with default chromosome boundaries being \code{-Inf} # and \code{+Inf}. # } # # @synopsis # # \arguments{ # \item{gaps}{A @data.frame with columns \code{chromosome}, \code{start}, # and \code{stop}. Any overlapping gaps will throw an error.} # \item{resolution}{A non-negative @numeric specifying the minimum # length unit, which by default equals one nucleotide/base pair.} # \item{minLength}{Minimum length of segments to be kept.} # \item{dropGaps}{If @TRUE, the gaps themselves are not part of the output.} # \item{...}{Not used.} # } # # \value{ # Returns @data.frame of least one row with columns \code{chromosome} # if that argument is given), \code{start}, \code{stop} and \code{length}. # The segments are ordered along the genome. # } # # @author "HB" # # \seealso{ # @see "findLargeGaps". # } # # @keyword IO #*/########################################################################### setMethodS3("gapsToSegments", "data.frame", function(gaps, resolution=1L, minLength=0L, dropGaps=FALSE, ...) { # To please R CMD check chromosome <- NULL; rm(list="chromosome") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'gaps': keys <- colnames(gaps) .stop_if_not(all(is.element(c("start", "end"), keys))) .stop_if_not(all(gaps$start <= gaps$end, na.rm=TRUE)) hasChr <- is.element("chromosome", keys) ## Nothing more to do? if (nrow(gaps) == 0L) { knownSegments <- data.frame(chromosome=integer(1L), start=-Inf, end=+Inf) if (!hasChr) knownSegments$hromosome <- NULL return(knownSegments) } # Order gaps by the genome o <- order(gaps$chromosome, gaps$start, gaps$end) gaps <- gaps[o,] # For each chromosome... knownSegments <- NULL chromosomes <- sort(unique(gaps$chromosome)) for (chr in chromosomes) { gapsCC <- subset(gaps, chromosome == chr) nCC <- nrow(gapsCC) starts <- gapsCC$start ends <- gapsCC$end # Assert that no overlapping gaps where specified if (!all(starts[-1] >= ends[-nCC], na.rm=TRUE)) { print(knownSegments) stop("INTERNAL ERROR: Detected overlapping gaps on chromosome ", chr, " in argument 'gaps'.") } # All boundaries in order # (this is possible because gaps are non-overlapping) naValue <- NA_real_ if (dropGaps) { bps <- rep(naValue, times=2*nCC) bps[seq(from=1, to=2*nCC, by=2)] <- starts - resolution bps[seq(from=2, to=2*nCC, by=2)] <- ends + resolution bps <- c(-Inf, bps, +Inf) dim(bps) <- c(2L, nCC+1L) } else { bps <- rep(naValue, times=4*nCC) bps[seq(from=1, to=4*nCC, by=4)] <- starts - resolution bps[seq(from=2, to=4*nCC, by=4)] <- starts bps[seq(from=3, to=4*nCC, by=4)] <- ends bps[seq(from=4, to=4*nCC, by=4)] <- ends + resolution bps <- c(-Inf, bps, +Inf) dim(bps) <- c(2L, 2*nCC+1L) } knownSegmentsCC <- data.frame(chromosome=chr, start=bps[1L,], end=bps[2L,]) knownSegments <- rbind(knownSegments, knownSegmentsCC) } # for (chr ...) # o <- with(knownSegments, order(chromosome, start, end)) # knownSegments <- knownSegments[o,] # rownames(knownSegments) <- NULL # Append segment lengths knownSegments$length <- knownSegments$end - knownSegments$start # Drop too short segments keep <- (knownSegments$length >= minLength) knownSegments <- knownSegments[keep,] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate generated 'knownSegments' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .stop_if_not(is.data.frame(knownSegments)) .stop_if_not(nrow(knownSegments) >= 1L) for (chr in sort(unique(knownSegments$chromosome))) { dd <- subset(knownSegments, chromosome == chr) # Known segments must not overlap if (!all(dd$start[-1] >= dd$end[-nrow(dd)], na.rm=TRUE)) { stop("INTERNAL ERROR: Detected overlapping segments on chromosome ", chr, " in generated 'knownSegments'.") } } knownSegments }) # gapsToSegments() PSCBS/R/CBS.joinSegments.R0000644000176200001440000001114614564051545014537 0ustar liggesusers###########################################################################/** # @set "class=CBS" # @RdocMethod joinSegments # # @title "Joins neighboring segments such that there is no gap in between them" # # \description{ # @get "title". # For instance, consider two neighboring segments [x1,x2] and [x3,x4] # with x1 < x2 < x3 < x4. After join the segments, they are # [x1,x23] and [x23,x4] where x23 = (x2 + x3)/2. # } # # @synopsis # # \arguments{ # \item{range}{(optional) A @numeric @vector of length two.} # \item{verbose}{See @see "R.utils::Verbose".} # \item{...}{Not used.} # } # # \value{ # Returns an updated @see "CBS" object. # } # # \details{ # This function assumes only chromosome exists. # If more, an error will be thrown. # } # # @author "HB" # # @keyword IO # @keyword internal #*/########################################################################### setMethodS3("joinSegments", "CBS", function(fit, range=NULL, verbose=FALSE, ...) { R_SANITY_CHECK <- TRUE # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chromosomes <- getChromosomes(fit) nbrOfChrs <- length(chromosomes) # Argument 'range': if (!is.null(range)) { if (nbrOfChrs > 1L) { stop("Argument 'range' cannot be given when 'fit' contains multiple chromosomes.") } range <- Arguments$getDoubles(range, length=c(2,2)) .stop_if_not(range[2] >= range[1]) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Joining segments") segs <- getSegments(fit, splitters=TRUE) verbose && cat(verbose, "Segments:") verbose && print(verbose, segs) verbose && cat(verbose, "Chromosomes:") verbose && print(verbose, chromosomes) verbose && cat(verbose, "Range:") verbose && print(verbose, range) nbrOfSegs <- nrow(segs) if (nbrOfSegs > 1) { verbose && enter(verbose, "Centering change points") prevSeg <- segs[1L,] for (ss in 2:nbrOfSegs) { currSeg <- segs[ss,] ## New chromosome? if (!identical(currSeg$chromosome, prevSeg$chromosome)) { ## Skip splitters if (is.na(currSeg$chromosome)) next prevSeg <- currSeg next } currStart <- currSeg[,"start"] prevEnd <- prevSeg[,"end"] # Sanity check (will give an error if more than one chromosome) if (R_SANITY_CHECK) { .stop_if_not(all(currStart >= prevEnd, na.rm=TRUE)) } # Center CP xMid <- (prevEnd + currStart) / 2 # Move previous end and current start to this centered CP segs[ss,"start"] <- xMid segs[ss-1L,"end"] <- xMid prevSeg <- currSeg } # for (ss ...) verbose && exit(verbose) # Sanity checks if (R_SANITY_CHECK) { .stop_if_not(all(segs$start[-1] >= segs$end[-nbrOfSegs], na.rm=TRUE)) .stop_if_not(all(diff(segs$start) >= 0, na.rm=TRUE)) ## FIXME: > 0 .stop_if_not(all(diff(segs$end) >= 0, na.rm=TRUE)) ## FIXME: > 0 } # if (R_SANITY_CHECK) if (nbrOfSegs > 6) { verbose && print(verbose, head(segs)) verbose && print(verbose, tail(segs)) } else { verbose && print(verbose, segs) } } # if (nbrOfSegs > 1) if (!is.null(range)) { verbose && enter(verbose, "Adjust for 'range'") verbose && cat(verbose, "Range:") verbose && print(verbose, range) xMin <- min(range, na.rm=TRUE) xMax <- max(range, na.rm=TRUE) if (nbrOfSegs > 0) { # Sanity checks if (R_SANITY_CHECK) { .stop_if_not(xMin <= segs[1L,"start"]) .stop_if_not(segs[1L,"end"] <= xMax) } segs[1L,"start"] <- xMin segs[nbrOfSegs,"end"] <- xMax # Sanity checks if (R_SANITY_CHECK) { .stop_if_not(all(segs$start[-1] >= segs$end[-nbrOfSegs], na.rm=TRUE)) .stop_if_not(all(diff(segs$start) >= 0, na.rm=TRUE)) ## FIXME: > 0 .stop_if_not(all(diff(segs$end) >= 0, na.rm=TRUE)) ## FIXME: > 0 } if (nbrOfSegs > 6) { verbose && print(verbose, head(segs)) verbose && print(verbose, tail(segs)) } else { verbose && print(verbose, segs) } } # if (nbrOfSegs > 0) verbose && exit(verbose) } # if (!is.null(range)) fit <- setSegments(fit, segs, splitters=TRUE) segs <- getSegments(fit, splitters=FALSE) if (nbrOfSegs > 6) { verbose && print(verbose, head(segs)) verbose && print(verbose, tail(segs)) } else { verbose && print(verbose, segs) } verbose && exit(verbose) fit }, private=TRUE) # joinSegments() PSCBS/R/segmentByCBS.R0000644000176200001440000010555614564051545013762 0ustar liggesusers###########################################################################/** # @RdocDefault segmentByCBS # @alias segmentByCBS.data.frame # @alias segmentByCBS.CBS # @alias segmentByCBS.CNA # @alias segmentByCBS # # @title "Segment genomic signals using the CBS method" # # \description{ # @get "title" of the \pkg{DNAcopy} package. # This is a convenient low-level wrapper for the \code{DNAcopy::segment()} # method. It is intended to be applied to a sample at the time. # For more details on the Circular Binary Segmentation (CBS) method # see [1,2]. # } # # @synopsis # # \arguments{ # \item{y}{A @numeric @vector of J genomic signals to be segmented.} # \item{chromosome}{Optional @numeric @vector of length J, specifying # the chromosome of each loci. If a scalar, it is expanded to # a vector of length J.} # \item{x}{Optional @numeric @vector of J genomic locations. # If @NULL, index locations \code{1:J} are used.} # \item{index}{An optional @integer @vector of length J specifying # the genomewide indices of the loci.} # \item{w}{Optional @numeric @vector in [0,1] of J weights.} # \item{undo}{A non-negative @numeric. If greater than zero, then # arguments \code{undo.splits="sdundo"} and \code{undo.SD=undo} # are passed to \code{DNAcopy::segment()}. # In the special case when \code{undo} is +@Inf, the segmentation # result will not contain any changepoints (in addition to what # is specified by argument \code{knownSegments}).} # \item{avg}{A @character string specifying how to calculating # segment mean levels \emph{after} change points have been # identified.} # \item{...}{Additional arguments passed to the \code{DNAcopy::segment()} # segmentation function.} # \item{joinSegments}{If @TRUE, there are no gaps between neighboring # segments. # If @FALSE, the boundaries of a segment are defined by the support # that the loci in the segments provides, i.e. there exist a locus # at each end point of each segment. This also means that there # is a gap between any neighboring segments, unless the change point # is in the middle of multiple loci with the same position. # The latter is what \code{DNAcopy::segment()} returns. # } # \item{knownSegments}{Optional @data.frame specifying # \emph{non-overlapping} known segments. These segments must # not share loci. See @see "findLargeGaps" and @see "gapsToSegments".} # \item{seed}{An (optional) @integer specifying the random seed to be # set before calling the segmentation method. The random seed is # set to its original state when exiting. If @NULL, it is not set.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a @see "CBS" object. # } # # \details{ # Internally @see "DNAcopy::segment" of \pkg{DNAcopy} is used to # segment the signals. # This segmentation method support weighted segmentation. # } # # \section{Reproducibility}{ # The \code{DNAcopy::segment()} implementation of CBS uses approximation # through random sampling for some estimates. Because of this, # repeated calls using the same signals may result in slightly # different results, unless the random seed is set/fixed. # } # # \section{Missing and non-finite values}{ # Signals may contain missing values (@NA or @NaN), but not # infinite values (+/-@Inf). Loci with missing-value signals # are preserved and keep in the result. # # Likewise, genomic positions may contain missing values. # However, if they do, such loci are silently excluded before # performing the segmentation, and are not kept in the results. # The mapping between the input locus-level data and ditto of # the result can be inferred from the \code{index} column of # the locus-level data of the result. # # None of the input data may have infinite values, # i.e. -@Inf or +@Inf. If so, an informative error is thrown. # } # # \examples{ # @include "../incl/segmentByCBS.Rex" # @include "../incl/segmentByCBS,plot.Rex" # @include "../incl/segmentByCBS,tests.Rex" # } # # @author "HB" # # \references{ # [1] @include "../incl/OlshenVenkatraman_2004.Rd" \cr # [2] @include "../incl/VenkatramanOlshen_2007.Rd" \cr # } # # \seealso{ # To segment allele-specific tumor copy-number signals from a tumor # \emph{with} a matched normal, see @see "segmentByPairedPSCBS". # For the same \emph{without} a matched normal, # see @see "segmentByNonPairedPSCBS". # # It is also possible to prune change points after segmentation (with # identical results) using # \code{\link[PSCBS:pruneBySdUndo.CBS]{pruneBySdUndo}()}. # } # @keyword IO #*/########################################################################### setMethodS3("segmentByCBS", "default", function(y, chromosome=0L, x=NULL, index=seq_along(y), w=NULL, undo=0, avg=c("mean", "median"), ..., joinSegments=TRUE, knownSegments=NULL, seed=NULL, verbose=FALSE) { R_SANITY_CHECK <- TRUE # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # DNAcopy::getbdry() is slow for now default settings. Below we # implement a memoized version of this function. getbdry2 <- function(eta, nperm, alpha, tol=0.01, verbose=FALSE) { # Explictly setup cache root here, since it's only done by 'R.cache' # if that package is attached. Here we only load it. /HB 2013-09-27 .setupCacheRootPath() key <- list(method="segmentByCBS", eta=eta, nperm=as.integer(nperm), alpha=alpha, tol=tol, version="0.16.1") dirs <- c("PSCBS", "segmentByCBS", "sbdry") bdry <- loadCache(key=key, dirs=dirs) if (!is.null(bdry)) return(bdry) max.ones <- floor(nperm * alpha) + 1L bdry <- getbdry(eta=eta, nperm=nperm, max.ones=max.ones, tol=tol) saveCache(bdry, key=key, dirs=dirs) bdry } # getbdry2() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'y': disallow <- c("Inf") y <- Arguments$getDoubles(y, disallow=disallow) nbrOfLoci <- length(y) length2 <- rep(nbrOfLoci, times=2) # Argument 'chromosome': if (is.null(chromosome)) { chromosome <- 0L } else { disallow <- c("Inf") chromosome <- Arguments$getIntegers(chromosome, range=c(0,Inf), disallow=disallow) if (length(chromosome) > 1) { chromosome <- Arguments$getIntegers(chromosome, length=length2, disallow=disallow) ## # If 'chromosome' is a vector of length J, then it must contain ## # a unique chromosome. ## chromosomes <- sort(unique(chromosome)) ## if (length(chromosomes) > 1) { ## stop("Argument 'chromosome' specifies more than one unique chromosome: ", paste(seqToHumanReadable(chromosomes), collapse=", ")) ## } ## chromosome <- chromosomes } } # For future usage chrom <- rep(chromosome, length.out=nbrOfLoci) # Argument 'x': if (is.null(x)) { x <- seq_len(nbrOfLoci) } else { disallow <- c("Inf") x <- Arguments$getDoubles(x, length=length2, disallow=disallow) } # Argument 'index': if (is.null(index)) { index <- seq_along(y) } else { index <- Arguments$getIndices(index) } # Argument 'w': hasWeights <- !is.null(w) if (hasWeights) { disallow <- c("NA", "NaN", "Inf") w <- Arguments$getDoubles(w, range=c(0,1), length=length2, disallow=disallow) } # Argument 'undo': undo <- Arguments$getDouble(undo, range=c(0,Inf)) # Argument 'avg': avg <- match.arg(avg) # Argument 'cpFlavor': joinSegments <- Arguments$getLogical(joinSegments) # Argument 'knownSegments': if (is.null(knownSegments)) { knownSegments <- data.frame(chromosome=integer(0), start=integer(0), end=integer(0)) } else { # if (!joinSegments) { # stop("Argument 'knownSegments' should only be specified if argument 'joinSegments' is TRUE.") # } } if (!is.data.frame(knownSegments)) { stop("Argument 'knownSegments' is not a data.frame: ", class(knownSegments)[1]) } if (!all(is.element(c("chromosome", "start", "end"), colnames(knownSegments)))) { stop("Argument 'knownSegments' does not have the required column names: ", hpaste(colnames(knownSegments))) } # Detailed validation of 'knownSegments'. for (chr in sort(unique(knownSegments$chromosome))) { dd <- subset(knownSegments, chromosome == chr) # Order segments by 'start'. o <- order(dd$start) dd <- dd[o,] # Known segments must not share 'start' or 'end' loci for (field in c("start", "end")) { xs <- dd[[field]] xs <- xs[!is.na(xs)] if (anyDuplicated(xs) > 0) { print(knownSegments) stop(sprintf("Detected segments on chromosome %s with non-unique '%s' positions in argument 'knownSegments'", chr, field)) } } # for (field ...) # Known segments must not overlap if (!all(dd$start[-1] >= dd$end[-nrow(dd)], na.rm=TRUE)) { print(knownSegments) stop("Detected overlapping segments on chromosome ", chr, " in argument 'knownSegments'.") } } # Argument 'seed': if (!is.null(seed)) { seed <- Arguments$getIntegers(seed) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Segmenting by CBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Setup up data", level=-10) data <- data.frame(chrom=chrom, x=x, y=y, index=index) if (hasWeights) { verbose && cat(verbose, "Adding locus-specific weights", level=-10) data$w <- w } verbose && str(verbose, data, level=-10) # Not needed anymore chrom <- x <- index <- y <- w <- NULL verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop data points without known genomic positions, because that # is what DNAcopy::CNA() will do otherwise. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ok <- (!is.na(data$chrom) & !is.na(data$x)) if (any(!ok)) { verbose && enter(verbose, "Dropping loci with unknown locations", level=-10) verbose && cat(verbose, "Number of loci dropped: ", sum(!ok), level=-10) data <- data[ok,,drop=FALSE] verbose && exit(verbose) } ok <- NULL # Not needed anymore # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Reorder data points along the genome, because that is what # DNAcopy::segment() will return. At the end, we will undo # the sort such that the returned 'data' object is always in # the same order and number of loci as the input data. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Ordering data along genome", level=-50) o <- order(data$chrom, data$x, decreasing=FALSE, na.last=TRUE) # Any change? if (any(o != seq_along(o))) { data <- data[o,,drop=FALSE] } o <- NULL # Not needed anymore verbose && str(verbose, data, level=-50) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multiple chromosomes? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify all chromosomes, excluding missing values chromosomes <- sort(unique(data$chrom), na.last=NA) nbrOfChromosomes <- length(chromosomes) if (nbrOfChromosomes > 1) { verbose && enter(verbose, "Segmenting multiple chromosomes") verbose && cat(verbose, "Number of chromosomes: ", nbrOfChromosomes) # Generate random seeds? seeds <- NULL if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=c(%s), kind=\"L'Ecuyer-CMRG\")\n", paste(seed, collapse=", ")) seeds <- randomSeed("advance", n=nbrOfChromosomes) verbose && printf(verbose, "Produced %d seeds from this stream for future usage\n", length(seeds)) } fitList <- listenv() for (kk in seq_len(nbrOfChromosomes)) { chromosomeKK <- chromosomes[kk] chrTag <- sprintf("Chr%02d", chromosomeKK) verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", kk, chrTag, nbrOfChromosomes)) seedKK <- seeds[[kk]] # Extract subset of data and parameters for this chromosome dataKK <- subset(data, chrom == chromosomeKK) verbose && str(verbose, dataKK, level=-10) chrom <- x <- index <- y <- w <- NULL fields <- attachLocally(dataKK, fields=c("chrom", "x", "index", "y", "w")) dataKK <- NULL # Not needed anymore knownSegmentsKK <- NULL if (!is.null(knownSegments)) { knownSegmentsKK <- subset(knownSegments, chromosome == chromosomeKK) if (nrow(knownSegmentsKK) == 0L) { knownSegmentsKK <- data.frame(chromosome=chromosomeKK, start=-Inf, end=+Inf) } verbose && cat(verbose, "Known segments:", level=-5) verbose && print(verbose, knownSegmentsKK, level=-5) } fitList[[chrTag]] %<-% { fit <- segmentByCBS(y=y, chromosome=chrom, x=x, w=w, index=index, undo=undo, avg=avg, joinSegments=joinSegments, knownSegments=knownSegmentsKK, ..., seed=seedKK, verbose=verbose) # Sanity checks if (R_SANITY_CHECK) { if (nrow(knownSegmentsKK) == 0) { # Since all missing data have been dropped... .stop_if_not(nrow(fit$data) == length(y)) # ...and ordered along the genome already. .stop_if_not(all.equal(fit$data$y, y)) } # Assert weights were used .stop_if_not(!hasWeights || !is.null(fit$data$w)) } # if (R_SANITY_CHECK) verbose && print(verbose, head(as.data.frame(fit)), level=-10) verbose && print(verbose, tail(as.data.frame(fit)), level=-10) fit } %seed% TRUE %label% sprintf("segmentByCBS-%s", chrTag) ## fitList[[chrTag]] <- ... rm(list=fields) # Not needed anymore verbose && exit(verbose) } # for (kk ...) verbose && enter(verbose, "Merging (independently) segmented chromosome", level=-50) fitList <- as.list(fitList) ## former Reduce() w/ append(..., addSplit = TRUE) fit <- do.call(c, args = c(fitList, addSplit = TRUE)) # Not needed anymore fitList <- NULL # Update parameters that otherwise may be incorrect fit$params$seed <- seed verbose && str(verbose, fit, level=-10) verbose && exit(verbose) segs <- as.data.frame(fit) if (nrow(segs) < 6) { verbose && print(verbose, segs, level=-10) } else { verbose && print(verbose, head(segs), level=-10) verbose && print(verbose, tail(segs), level=-10) } verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return(fit) } # if (nbrOfChromosomes > 1) verbose && cat(verbose, "Chromosome: ", data$chrom[1L]) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset 'knownSegments' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Keeping only current chromosome for 'knownSegments'", level=-10) # Assume no missing values currChromosome <- data$chrom[1] verbose && cat(verbose, "Chromosome: ", currChromosome, level=-10) knownSegments <- subset(knownSegments, chromosome == currChromosome) if (nrow(knownSegments) == 0L) { knownSegments <- data.frame(chromosome=currChromosome, start=-Inf, end=+Inf) } nbrOfSegments <- nrow(knownSegments) verbose && cat(verbose, "Known segments for this chromosome:", level=-10) verbose && print(verbose, knownSegments, level=-10) verbose && exit(verbose) # Sanity checks if (R_SANITY_CHECK) { # Here 'knownSegments' should specify at most a single chromosome uChromosomes <- sort(unique(knownSegments$chromosome)) if (length(uChromosomes) > 1) { stop("INTERNAL ERROR: Argument 'knownSegments' specifies more than one chromosome: ", hpaste(uChromosomes)) } } # if (R_SANITY_CHECK) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Multiple segments? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity check of limitation /HB 2011-10-19 if (nbrOfSegments > 1) { verbose && enter(verbose, "Segmenting multiple segments on current chromosome", level=-5) verbose && cat(verbose, "Number of segments: ", nbrOfSegments, level=-5) # Create a splitter-only CBS object dataS <- data.frame(y=c(0,0), chromosome=c(1,2), x=c(0,0)) if (hasWeights) dataS$w <- 1 splitter <- segmentByCBS(dataS) dataS <- NULL suppressWarnings({ splitter <- extractSegment(splitter, 2) # Sanity check if (R_SANITY_CHECK) { .stop_if_not(nbrOfSegments(splitter, splitters=TRUE) == 1) } # if (R_SANITY_CHECK) }) # Generate random seeds? seeds <- NULL if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=c(%s), kind=\"L'Ecuyer-CMRG\")\n", paste(seed, collapse=", ")) seeds <- randomSeed("advance", n=nbrOfSegments) verbose && printf(verbose, "Produced %d seeds from this stream for future usage\n", length(seeds)) } fitList <- listenv() for (jj in seq_len(nbrOfSegments)) { seg <- knownSegments[jj,] chromosomeJJ <- seg$chromosome xStart <- seg$start xEnd <- seg$end segTag <- sprintf("chr%s:(%s,%s)", chromosomeJJ, xStart, xEnd) verbose && enter(verbose, sprintf("Segment #%d ('%s') of %d", jj, segTag, nbrOfSegments), level=-10) ## Nothing to do? isSplitter <- (is.na(xStart) && is.na(xEnd)) if (isSplitter) { fit <- splitter verbose && cat(verbose, "Nothing to segment. Inserting an explicit splitter.", level=-10) fitList[[segTag]] <- fit fit <- NULL verbose && exit(verbose) next } # Extract subset of data and parameters for this segment dataJJ <- subset(data, chrom == chromosomeJJ & xStart <= x & x <= xEnd) verbose && str(verbose, dataJJ, level=-50) chrom <- x <- index <- y <- w <- NULL fields <- attachLocally(dataJJ, fields=c("chrom", "x", "index", "y", "w")) dataJJ <- NULL # Not needed anymore nbrOfLoci <- length(y) # Empty segment? # [AD HOC. Should be done by segmentCBS(). /HB 2011-10-21] if(nbrOfLoci == 0) { fit <- splitter fit$output$chromosome <- chromosomeJJ fit$output$start <- xStart fit$output$end <- xEnd fit$output$nbrOfLoci <- nbrOfLoci fitList[[segTag]] <- fit fit <- NULL verbose && exit(verbose) next } seedJJ <- seeds[[jj]] fitList[[segTag]] %<-% { fit <- segmentByCBS(y=y, chromosome=chrom, x=x, w=w, index=index, undo=undo, avg=avg, joinSegments=joinSegments, knownSegments=seg, ..., seed=seedJJ, verbose=less(verbose,1)) # Sanity checks if (R_SANITY_CHECK) { .stop_if_not(nrow(fit$data) == nbrOfLoci) .stop_if_not(all.equal(fit$data$y, y)) # Assert weights were used .stop_if_not(!hasWeights || !is.null(fit$data$w)) } # if (R_SANITY_CHECK) segs <- as.data.frame(fit) if (nrow(segs) < 6) { verbose && print(verbose, segs, level=-10) } else { verbose && print(verbose, head(segs), level=-10) verbose && print(verbose, tail(segs), level=-10) } # Sanity check if (R_SANITY_CHECK) { .stop_if_not(TRUE && nbrOfSegments(fit, splitters=TRUE) > 0) } # if (R_SANITY_CHECK) fit } %seed% TRUE %label% sprintf("segmentByCBS-%s", segTag) ## fitList[[segTag]] <- ... rm(list=fields) # Not needed anymore verbose && exit(verbose) } # for (jj ...) verbose && enter(verbose, "Merging (independently) segmented known segments", level=-10) verbose && cat(verbose, "Number of segments: ", length(fitList), level=-10) fitList <- as.list(fitList) verbose && str(verbose, fitList, level=-50) ## former Reduce() w/ append(..., addSplit = FALSE) fit <- do.call(c, args = c(fitList, addSplit = FALSE)) # Not needed anymore fitList <- NULL # Update parameters that otherwise may be incorrect fit$params$seed <- seed verbose && str(verbose, fit, level=-10) verbose && exit(verbose) segs <- getSegments(fit) if (nrow(segs) > 6) { verbose && print(verbose, head(segs), level=-10) verbose && print(verbose, tail(segs), level=-10) } else { verbose && print(verbose, segs, level=-10) } # Sanity checks if (R_SANITY_CHECK) { segs <- getSegments(fit) .stop_if_not(all(segs$start[-1] >= segs$end[-nrow(segs)], na.rm=TRUE)) .stop_if_not(all(diff(segs$start) >= 0, na.rm=TRUE)) ## FIXME: > 0 .stop_if_not(all(diff(segs$end) >= 0, na.rm=TRUE)) ## FIXME: > 0 # if (nrow(fit$data) != length(y)) { # print(c(nrow(fit$data), nrow(data))) # } # .stop_if_not(nrow(fit$data) == nrow(data)) # .stop_if_not(all(fit$data$chromosome == data$chromosome)) # .stop_if_not(all(fit$data$x == data$x)) # .stop_if_not(all(fit$data$index == data$index)) # .stop_if_not(all.equal(fit$data$y, data$y)) } # if (R_SANITY_CHECK) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - return(fit) } # if (nbrOfSegments > 1) nbrOfSegments <- nrow(knownSegments) # Sanity check if (R_SANITY_CHECK) { .stop_if_not(nbrOfSegments <= 1) } # if (R_SANITY_CHECK) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Specific segment? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (nbrOfSegments > 0) { knownSegments <- subset(knownSegments, chromosome == chromosome) nbrOfSegments <- nrow(knownSegments) # Sanity check if (R_SANITY_CHECK) { .stop_if_not(nbrOfSegments <= 1) } # if (R_SANITY_CHECK) } if (nbrOfSegments == 1) { seg <- knownSegments[1,] chromosomeJJ <- seg$chromosome xStart <- seg$start xEnd <- seg$end segTag <- sprintf("chr%s:(%s,%s)", chromosomeJJ, xStart, xEnd) verbose && printf(verbose, "Extracting segment '%s'", segTag, level=-50) # Extract subset of data and parameters for this segment data <- subset(data, chrom == chromosomeJJ & xStart <= x & x <= xEnd) verbose && str(verbose, data, level=-50) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Retrieving segmentation function # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Retrieving the fit function", level=-50) # We need to attach the 'DNAcopy' package pkgName <- "DNAcopy" use(pkgName) pkg <- packageDescription(pkgName) pkgVer <- pkg$Version pkgDetails <- sprintf("%s v%s", pkgName, pkgVer) methodName <- "segment" verbose && cat(verbose, "Method: ", methodName, level=-50) verbose && cat(verbose, "Package: ", pkgDetails, level=-50) # Get the fit function for the segmentation method # fitFcn <- getExportedValue(pkgName, methodName) fitFcn <- getFromNamespace(methodName, pkgName) verbose && str(verbose, "Function: ", fitFcn, level=-50) formals <- formals(fitFcn) verbose && cat(verbose, "Formals:", level=-50) verbose && str(verbose, formals, level=-50) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up arguments to pass to segmentation function # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Setting up method arguments", level=-50) verbose && enter(verbose, "Setting up ", pkgName, " data structure", level=-50) sampleName <- "y" # This is going to be the name of the data field # Supress all warnings, in order to avoid warnings by DNAcopy::CNA() # on "array has repeated maploc positions". Ideally we should filter # just those out. /HB 2013-10-22 suppressWarnings({ cnData <- CNA( genomdat = data$y, chrom = data$chrom, data.type = "logratio", maploc = data$x, sampleid = sampleName, presorted = TRUE ) }) verbose && str(verbose, cnData, level=-50) names(cnData)[3] <- sampleName verbose && str(verbose, cnData, level=-50) verbose && exit(verbose) # Sanity check if (R_SANITY_CHECK) { # (because all loci with unknown locations have already been dropped) .stop_if_not(nrow(cnData) == nrow(data)) } # if (R_SANITY_CHECK) userArgs <- list(...) if (length(userArgs) > 0) { verbose && cat(verbose, "User arguments:", level=-50) verbose && str(verbose, userArgs, level=-50) } # Check if 'sbdry' can/should be precalculated. This uses memoization # so that next time you segment with same 'nperm', 'alpha' and 'eta' # parameters, there will be much less startup overhead. if (length(userArgs) > 0 && !is.element("sbdry", names(userArgs))) { keys <- c("nperm", "alpha", "eta") keep <- is.element(keys, names(userArgs)) if (any(keep)) { verbose && enter(verbose, "Precalculating argument 'sbdry' (with memoization)", level=-50) # Precalculate boundaries argsT <- formals[keys] keys <- keys[keep] argsT[keys] <- userArgs[keys] argsT$verbose <- less(verbose, 5) sbdry <- do.call(getbdry2, args=argsT) userArgs$sbdry <- sbdry verbose && exit(verbose) } } params <- list() if (hasWeights) { params$weights <- data$w } if (undo > 0) { params$undo.splits <- "sdundo" params$undo.SD <- undo } verbose && cat(verbose, "Segmentation parameters:", level=-50) verbose && str(verbose, params, level=-50) # Assign/overwrite by user arguments if (length(userArgs) > 0) { for (ff in names(userArgs)) { params[[ff]] <- userArgs[[ff]] } } verbose && cat(verbose, "Segmentation and user parameters:", level=-50) verbose && str(verbose, params, level=-50) # Cleaning out unknown parameters keep <- (names(params) %in% names(formals)) params <- params[keep] args <- c(list(cnData), params, verbose=as.logical(verbose)) verbose && cat(verbose, "Final arguments:", level=-50) verbose && str(verbose, args, level=-50) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calling segmentation function # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, sprintf("Calling %s() of %s", methodName, pkgName), level=-50) # There are a few cases where we can/need to do a dummy segmentation # based on a single data points: # (a) WORKAROUND for the case when there are no data points. # (b) SPEEDUP: When undo=+Inf we don't really have to segment. nbrOfNonMissingLoci <- sum(!is.na(cnData$y)) if (nbrOfNonMissingLoci == 0) { args[[1]] <- CNA(genomdat=0, chrom=0, maploc=0) if (hasWeights) args$weights <- 1.0 } else if (undo == +Inf) { args[[1]] <- CNA(genomdat=0, chrom=0, maploc=0) if (hasWeights) args$weights <- 1.0 verbose && cat(verbose, "Skipping identification of new change points (undo=+Inf)", level=-50) } ## Set random seed? if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=c(%s), kind=\"L'Ecuyer-CMRG\")\n", paste(seed, collapse=", ")) } # In case the method writes to stdout, we capture it # Note: DNAcopy::segment() *does* this. stdout <- capture.output({ # Does not work, because some internal function of the fit function # may only be accessible from within the namespace # How to do this for DNAcopy::segment()? /HB ## fit <- do.call(fitFcn, args) # This works, but requires that one loads the package and that the # function is not masked in the search() path. t <- system.time({ fit <- do.call(methodName, args) }, gcFirst = FALSE) # Drop the 'call' (because it will be huge due to the do.call() call) fit$call <- NULL }) attr(fit, "processingTime") <- t attr(fit, "pkgDetails") <- pkgDetails attr(fit, "randomSeed") <- seed # WORKAROUND for the case when there are no data points. if (nbrOfNonMissingLoci == 0) { # Drop dummy data point... fit$data <- cnData ## fit$data[-1,,drop=FALSE] # ...dummy region found output <- fit$output segRows <- fit$segRows # Sanity check if (R_SANITY_CHECK) { .stop_if_not(nrow(output) == 1) } # if (R_SANITY_CHECK) # Was a region specified? if (nbrOfSegments == 1) { seg <- knownSegments[1,] output$ID <- sampleName output$chrom <- seg$chromosome if (is.finite(seg$start)) { output$loc.start <- seg$start } if (is.finite(seg$end)) { output$loc.end <- seg$end } output$num.mark <- 0L output$seg.mean <- NA_real_ segRows[1,] <- NA_integer_ } else { output <- output[-1,,drop=FALSE] segRows <- segRows[-1,,drop=FALSE] } fit$output <- output fit$segRows <- segRows } else if (undo == +Inf) { # Drop dummy data point... fit$data <- cnData ## fit$data[-1,,drop=FALSE] # ...dummy region found output <- fit$output segRows <- fit$segRows # Sanity check if (R_SANITY_CHECK) { .stop_if_not(nrow(output) == 1) } # if (R_SANITY_CHECK) # Was a region specified? if (nbrOfSegments == 1) { seg <- knownSegments[1,] output$ID <- sampleName output$chrom <- seg$chromosome if (is.finite(seg$start)) { output$loc.start <- seg$start } else { output$loc.start <- min(cnData$maploc, na.rm=TRUE) } if (is.finite(seg$end)) { output$loc.end <- seg$end } else { output$loc.end <- max(cnData$maploc, na.rm=TRUE) } } output$num.mark <- nrow(fit$data) output$seg.mean <- mean(fit$data$y, na.rm=TRUE) segRows$endRow <- nrow(fit$data) fit$output <- output fit$segRows <- segRows } # if (undo == +Inf) verbose && cat(verbose, "Captured output that was sent to stdout:", level=-50) stdout <- paste(stdout, collapse="\n") verbose && cat(verbose, stdout, level=-50) verbose && cat(verbose, "Fitting time (in seconds):", level=-50) verbose && print(verbose, t, level=-50) verbose && cat(verbose, "Fitting time per 1000 loci (in seconds):", level=-50) verbose && print(verbose, 1000*t/nbrOfLoci, level=-50) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Restructure # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Restructuring results", level=-50) # Coerce fit$output$num.mark <- as.integer(fit$output$num.mark) # Coerce 'chrom' to a plain integer fit$data$chrom <- unclass(fit$data$chrom) # Store genomewide index fit$data$index <- data$index # Store weights fit$data$w <- data$w # Not needed anymore data <- NULL verbose && exit(verbose) # Store also interesting parameters to DNAcopy::segment() keys <- setdiff(names(formals), c("x", "weights", "sbdry", "verbose")) keys <- c(keys, "undo", "seed") keep <- is.element(names(params), keys) keep <- names(params)[keep] params <- params[keep] params$undo <- undo params$joinSegments <- joinSegments params$knownSegments <- knownSegments params$seed <- seed fit$params <- params # class(fit) <- c("CBS", class(fit)) class(fit) <- c("CBS", "AbstractCBS") # Sanity checks if (R_SANITY_CHECK) { segRows <- fit$segRows .stop_if_not(all(segRows[,1] <= segRows[,2], na.rm=TRUE)) .stop_if_not(all(segRows[-nrow(segRows),2] < segRows[-1,1], na.rm=TRUE)) } # if (R_SANITY_CHECK) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Renaming column names # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) names <- colnames(data) names <- gsub("chrom", "chromosome", names, fixed=TRUE) names <- gsub("maploc", "x", names, fixed=TRUE) colnames(data) <- names # Drop 'CNA' class and DNAcopy attributes class(data) <- c("data.frame") attr(data, "data.type") <- NULL fit$data <- data segs <- fit$output names <- colnames(segs) names <- gsub("ID", "sampleName", names, fixed=TRUE) names <- gsub("seg.mean", "mean", names, fixed=TRUE) names <- gsub("chrom", "chromosome", names, fixed=TRUE) names <- gsub("num.mark", "nbrOfLoci", names, fixed=TRUE) names <- gsub("loc.", "", names, fixed=TRUE) # loc.start, loc.end colnames(segs) <- names fit$output <- segs # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Join segments? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (joinSegments) { if (nbrOfSegments == 1) { starts <- knownSegments$start ends <- knownSegments$end if (is.infinite(starts)) starts <- segs$start if (is.infinite(ends)) ends <- segs$end range <- range(c(starts, ends), na.rm=TRUE) } else { range <- NULL } fit <- joinSegments(fit, range=range, verbose=less(verbose, 10)) # Sanity checks if (R_SANITY_CHECK) { segRows <- fit$segRows .stop_if_not(all(segRows[,1] <= segRows[,2], na.rm=TRUE)) .stop_if_not(all(segRows[-nrow(segRows),2] < segRows[-1,1], na.rm=TRUE)) } # if (R_SANITY_CHECK) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (avg != "mean") { verbose && enter(verbose, "Updating mean level using different estimator") verbose && cat(verbose, "Estimator: ", avg) fit <- updateMeans(fit, avg=avg, verbose=less(verbose, 20)) verbose && exit(verbose) } verbose && cat(verbose, "Results object:", level=-10) verbose && str(verbose, fit, level=-10) verbose && exit(verbose) verbose && exit(verbose) fit }) # segmentByCBS() setMethodS3("segmentByCBS", "data.frame", function(y, ...) { # To please R CMD check data <- y y <- data$y if (is.null(y)) { y <- data$cn if (is.null(y)) { y <- data$CT } } segmentByCBS(y=y, chromosome=data$chromosome, x=data$x, index=data$index, w=data$w, ...) }) setMethodS3("segmentByCBS", "CBS", function(...) { resegment(...) }) # segmentByCBS() PSCBS/R/CBS.EXTS.R0000644000176200001440000002641514564051545012662 0ustar liggesusers###########################################################################/** # @set class=DNAcopy # @RdocMethod as.CBS # # @title "Coerces a DNAcopy object to a CBS object" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{fit}{A @see "DNAcopy" object (of the \pkg{DNAcopy} package.)} # \item{sample}{An index specifying which sample to extract, # if more than one exists.} # \item{...}{Not used.} # } # # \value{ # Returns a @see "CBS" object. # } # # @author "HB" # # \seealso{ # \code{\link[PSCBS:as.DNAcopy.CBS]{as.DNAcopy()}}. # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("as.CBS", "DNAcopy", function(fit, sample=1L, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- fit$data sample <- Arguments$getIndex(sample, max=ncol(data)-2L) sampleName <- colnames(data)[sample+2L] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup the 'data' field # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- fit$data rownames <- rownames(data) data <- data.frame( chromosome = data$chrom, x = data$maploc, y = data[,sample+2L,drop=TRUE], stringsAsFactors=FALSE ) rownames(data) <- rownames # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup the 'output' field # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - output <- fit$output ID <- NULL; rm(list="ID") # To please R CMD check output <- subset(output, ID == sampleName) rownames <- rownames(output) output <- data.frame( chromosome = output$chrom, start = output$loc.start, end = output$loc.end, nbrOfLoci = as.integer(output$num.mark), mean = output$seg.mean, stringsAsFactors=FALSE ) rownames(output) <- rownames # Add chromosome splitter ats <- which(diff(output$chromosome) != 0) + 1L if (length(ats) > 0) { idxs <- seq_len(nrow(output)) values <- rep(NA_integer_, times=length(ats)) expand <- insert(idxs, ats=ats, values=values) # R.utils::insert() output <- output[expand,] rownames(output) <- NULL } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup up 'CBS' object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (sampleName == "") sampleName <- NA_character_ res <- list() res$sampleName <- sampleName res$data <- data res$output <- output res$params <- list() class(res) <- class(CBS()) res }) # as.CBS() setMethodS3("extractTotalCNs", "CBS", function(fit, ...) { data <- getSegments(fit, ...) data[,c("mean", "nbrOfLoci"), drop=FALSE] }, protected=TRUE) setMethodS3("extractCNs", "CBS", function(fit, ...) { data <- extractTotalCNs(fit, ...) data <- data[,c("mean"), drop=FALSE] data <- as.matrix(data) data }, protected=TRUE) setMethodS3("extractChromosomes", "CBS", function(x, chromosomes, ...) { # To please R CMD check this <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'chromosomes': disallow <- c("NaN", "Inf") chromosomes <- Arguments$getIntegers(chromosomes, range=c(0,Inf), disallow=disallow) .stop_if_not(all(is.element(chromosomes, getChromosomes(this)))) # Always extract in order chromosomes <- unique(chromosomes) chromosomes <- sort(chromosomes) # Allocate results res <- this # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Locus data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chromosome <- NULL; rm(list="chromosome") # To please R CMD check data <- getLocusData(this) class <- class(data) class(data) <- "data.frame" data <- subset(data, chromosome %in% chromosomes) class(data) <- class res$data <- data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify rows to subset rows <- which(is.element(res$output$chromosome, chromosomes)) for (field in c("output", "segRows")) { res[[field]] <- res[[field]][rows,,drop=FALSE] } # Identify chromosome offsets data <- getLocusData(this) chrStarts <- match(getChromosomes(this), data$chromosome) chrEnds <- c(chrStarts[-1]-1L, nrow(data)) chrLengths <- chrEnds - chrStarts + 1L chrLengthsExcl <- chrLengths keep <- match(chromosomes, getChromosomes(this)) chrLengthsExcl[keep] <- 0L cumChrLengthsExcl <- cumsum(chrLengthsExcl) shifts <- cumChrLengthsExcl[keep] .stop_if_not(all(is.finite(shifts))) # Adjust indices for (cc in seq_along(chromosomes)) { chromosome <- chromosomes[cc] shift <- shifts[cc] # Nothing to do? if (shift == 0) next for (field in c("segRows")) { segRows <- res[[field]] rows <- which(res$output$chromosome == chromosome) segRows[rows,] <- segRows[rows,] - shift res[[field]] <- segRows } } res }, protected=TRUE) setMethodS3("subset", "CBS", function(x, chromlist=NULL, ...) { extractChromosomes(x, chromosomes=chromlist, ...) }, private=TRUE) ###########################################################################/** # @set "class=CBS" # @RdocMethod extractSegmentMeansByLocus # # @title "Extracts segments means at each locus" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to @seemethod "getLocusData".} # } # # \value{ # Returns a @numeric @vector of length \code{nbrOfLoci()}. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("extractSegmentMeansByLocus", "CBS", function(fit, ...) { data <- getLocusData(fit, ...) chromosome <- data$chromosome x <- data$x y <- data[,3] segs <- getSegments(fit) nbrOfSegments <- nrow(segs) nbrOfLoci <- nrow(data) # Get mean estimators estList <- getMeanEstimators(fit, "y") avgY <- estList$y yS <- y for (ss in seq_len(nbrOfSegments)) { seg <- segs[ss,] idxs <- which(seg$chromosome == chromosome & seg$start <= x & x <= seg$end) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) ySS <- y[idxs] ok <- is.finite(ySS) # Sanity check ## .stop_if_not(sum(ok) == seg$nbrOfLoci) # Not dealing with ties mu <- avgY(ySS[ok]) yS[idxs] <- mu } # for (ss ...) yS }, private=TRUE) # extractSegmentMeansByLocus() ###########################################################################/** # @set "class=CBS" # @RdocMethod estimateStandardDeviation # # @title "Estimates the whole-genome standard deviation of the signals" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{chromosomes}{An optional @vector specifying the subset of # chromosomes used for the estimate. If @NULL, all chromosomes are used.} # \item{method}{A @character string specifying the method used.} # \item{estimator}{A @character string or a @function specifying the # internal estimator.} # \item{na.rm}{If @TRUE, missing values are dropped, otherwise not.} # \item{weights}{An optional @double @vector of \code{nbrOfLoci()} # non-negative weights.} # \item{...}{Not used.} # } # # \value{ # Returns a non-negative @numeric scale. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("estimateStandardDeviation", "CBS", function(fit, chromosomes=NULL, method=c("diff", "res", "abs", "DNAcopy"), estimator=c("mad", "sd"), na.rm=TRUE, weights=NULL, ...) { # Local copies of DNAcopy functions DNAcopy_trimmed.variance <- .use("trimmed.variance", package="DNAcopy") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'chromosomes': if (!is.null(chromosomes)) { } # Argument 'method': method <- match.arg(method) # Argument 'estimator': estimator <- match.arg(estimator) # Argument 'weights': if (!is.null(weights)) { nbrOfLoci <- nbrOfLoci(fit) weights <- Arguments$getNumerics(weights, range=c(0,Inf), length=rep(nbrOfLoci, times=2)) } # Get the estimator function if (!is.null(weights)) { estimator <- sprintf("weighted %s", estimator) estimator <- R.utils::toCamelCase(estimator) } if (method == "DNAcopy") { estimatorFcn <- function(y, trim=0.025, ...) { sigma2 <- DNAcopy_trimmed.variance(y, trim=trim) sqrt(sigma2) } } else { estimatorFcn <- get(estimator, mode="function") } # Subset by chromosomes? if (!is.null(chromosomes)) { fit <- extractChromosomes(fit, chromosomes=chromosomes) } nbrOfLoci <- nbrOfLoci(fit) # Nothing to do? if (nbrOfLoci <= 1) { sigma <- NA_real_ attr(sigma, "nbrOfLoci") <- nbrOfLoci attr(sigma, "df") <- NA_integer_ return(sigma) } data <- getLocusData(fit) y <- data[,3] if (method == "diff") { dy <- diff(y) # Weighted estimator? if (!is.null(weights)) { # Calculate weights per pair weights <- (weights[1:(nbrOfLoci-1)]+weights[2:nbrOfLoci])/2 sigma <- estimatorFcn(dy, w=weights, na.rm=na.rm)/sqrt(2) } else { sigma <- estimatorFcn(dy, na.rm=na.rm)/sqrt(2) } df <- length(dy) } else if (method == "res") { yS <- extractSegmentMeansByLocus(fit) dy <- y - yS if (!is.null(weights)) { sigma <- estimatorFcn(dy, w=weights, na.rm=na.rm) } else { sigma <- estimatorFcn(dy, na.rm=na.rm) } df <- length(dy) } else if (method == "abs") { if (!is.null(weights)) { sigma <- estimatorFcn(y, w=weights, na.rm=na.rm) } else { sigma <- estimatorFcn(y, na.rm=na.rm) } df <- length(y) } else if (method == "DNAcopy") { if (na.rm) { y <- y[!is.na(y)] } sigma <- estimatorFcn(y, ...) df <- length(y) } else { stop("Method no implemented: ", method) } attr(sigma, "nbrOfLoci") <- nbrOfLoci attr(sigma, "df") <- df sigma }) # estimateStandardDeviation() setMethodS3("getChromosomeRanges", "CBS", function(fit, ...) { # To please R CMD check, cf. subset() chromosome <- NULL; rm(list="chromosome") segs <- getSegments(fit, splitters=FALSE) chromosomes <- sort(unique(segs$chromosome)) # Allocate naValue <- NA_real_ res <- matrix(naValue, nrow=length(chromosomes), ncol=3) rownames(res) <- chromosomes colnames(res) <- c("start", "end", "length") # Get start and end of each chromosome. for (ii in seq_len(nrow(res))) { chr <- chromosomes[ii] segsII <- subset(segs, chromosome == chr) res[ii,"start"] <- min(segsII$start, na.rm=TRUE) res[ii,"end"] <- max(segsII$end, na.rm=TRUE) } # for (ii ...) res[,"length"] <- res[,"end"] - res[,"start"] + 1L # Sanity check .stop_if_not(nrow(res) == length(chromosomes)) res <- as.data.frame(res) res <- cbind(chromosome=chromosomes, res) res }, protected=TRUE) # getChromosomeRanges() PSCBS/R/PairedPSCBS.unTumorBoost.R0000644000176200001440000000361214564051545016141 0ustar liggesusers# @title "Re-calculates the segmented profile using non-TumorBoost BAFs" setMethodS3("unTumorBoost", "PairedPSCBS", function(fit, ..., verbose=FALSE) { # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enterf(verbose, "Relcalculating %s profile without TumorBoost", class(fit)[1L]) # Nothing to do? if (!fit$params$tbn) { verbose && cat(verbose, "Profile is not from TumorBoost signals. Skipping.") verbose && exit(verbose) return(fit) } verbose && enter(verbose, "Updating locus-level data") data <- getLocusData(fit) data$betaTN <- data$betaT isHet <- !is.na(data$rho) data$rho[isHet] <- 2*abs(data$betaTN[isHet]-1/2) fit$data <- data verbose && exit(verbose) verbose && enter(verbose, "Updating segments") segs <- getSegments(fit) segs$abCall <- NULL segs$lohCall <- NULL fit$output <- segs verbose && exit(verbose) verbose && enter(verbose, "Updating parameters") params <- fit$params params$tbn <- FALSE params$deltaAB <- params$alphaAB <- NULL params$deltaLowC1 <- params$alphaLowC1 <- NULL fit$params <- params verbose && exit(verbose) verbose && enter(verbose, "Resetting miscellaneous parameters and estimates") fit$changepoints <- NULL fit$deshearC1C2 <- NULL fit$cScaled <- NULL fit$kappa <- NULL fit$scale <- NULL fit <- clearBootstrapSummaries(fit, verbose=less(verbose, 50)) verbose && exit(verbose) verbose && enter(verbose, "Update segment levels") fit <- updateMeans(fit, verbose=less(verbose, 50)) verbose && exit(verbose) verbose && exit(verbose) fit }, protected=TRUE) # unTumorBoost() ############################################################################## # HISTORY # 2014-03-28 # o Added unTumorBoost() for PairedPSCBS. ############################################################################## PSCBS/R/CNA.EXTS.R0000644000176200001440000000066714564051545012655 0ustar liggesuserssetMethodS3("segmentByCBS", "CNA", function(y, ...) { # To please R CMD check cnData <- y # Extract signals of interest chromosome <- cnData$chrom x <- cnData$maploc y <- cnData[,3] signalType <- attr(cnData, "data.type") sampleName <- colnames(cnData)[3] # str(list(y=y, chromosome=chromosome, x=x)) fit <- segmentByCBS(y=y, chromosome=chromosome, x=x, ...) sampleName(fit) <- sampleName fit }) # segmentByCBS() PSCBS/R/findNeutralCopyNumberState.R0000644000176200001440000001431114564051545016741 0ustar liggesusers###########################################################################/** # @RdocDefault findNeutralCopyNumberState # # @title "Call segments to be copy neutral based on allelic imbalance calls and total copy number estimates" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{C}{A @numeric @vector of region-level total copy number estimates.} # \item{isAI}{A @logical @vector of "allelic imbalance" calls.} # \item{weights}{An optional @numeric @vector of non-negative weights.} # \item{...}{Further arguments to be passed to the density estimation # function.} # \item{minDensity}{A @numeric value, below which density peaks are # discarded.} # \item{flavor}{A @character string specifying how to identify the # mode of the AB segments.} # \item{verbose}{If @TRUE, extra information is output.} # } # # \value{ # A @logical @vector of "neutral copy number state" calls. # } # # @author "PN, HB" # # @keyword internal #*/########################################################################### setMethodS3("findNeutralCopyNumberState", "default", function(C, isAI, weights=NULL, ..., minDensity=1e-10, flavor=c("firstPeak", "maxPeak"), verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'C': C <- Arguments$getNumerics(C) nbrOfLoci <- length(C) # Argument 'isAI': length2 <- rep(nbrOfLoci, times=2) isAI <- Arguments$getLogicals(isAI, length=length2, disallow=NULL) # Argument 'weights': if (!is.null(weights)) { weights <- Arguments$getNumerics(weights, range=c(0, Inf), length=length2) } # Argument 'minDensity': minDensity <- Arguments$getDouble(minDensity) # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Identifying segments that are copy neutral states") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify segments in allelic balance isAB <- !isAI # Identify segments that cannot be called isNA <- (is.na(isAB) | is.na(C)) # Only segments in allelic balance can be considered to be neutral isNeutral <- isAB # Extracting segments in allelic balance idxs <- which(isAB) n <- length(idxs) verbose && cat(verbose, "Number of segments in allelic balance: ", n) # Special cases? if (n == 0) { # No segments are in allelic balance verbose && exit(verbose) return(isNeutral) } else if (n == 1) { # Only one segment is in allelic balance. The best we can do # is to call that segment neutral. verbose && exit(verbose) return(isNeutral) } else if (n < 5) { # What to do when the number of segments is really low? /HB 2010-09-09 warning("The calling of regions in a copy-neutral state is uncertain, because there are less than five (5) regions in allelic balance: ", n) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Look only segments in allelic balance # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset and standardize weights if (!is.null(weights)) { weights <- weights[idxs] weights <- weights / sum(weights) } y <- C[idxs] idxs <- NULL # Not needed anymore if (verbose) { cat(verbose, "Data points:") df <- data.frame(C=y, weights=weights) print(verbose, head(df)) str(verbose, df) df <- NULL # Not needed anymore } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Estimate the empirical density # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- findPeaksAndValleys(y, weights=weights, ...) verbose && cat(verbose, "Fit:") verbose && cat(verbose, "Fit filtered by 'minDensity':") ok <- (fit[,"density"] > minDensity) verbose && print(verbose, fit[ok,]) # Look for peaks with enough density isPeak <- (fit[,"type"] == "peak") & ok idxs <- which(isPeak) # Sanity check .stop_if_not(length(idxs) >= 1) # Extract the first peak if (flavor == "firstPeak") { idx <- idxs[1] } else if (flavor == "maxPeak") { idx <- idxs[which.max(fit[idxs,"density"])] } neutralC <- fit[idx,"x"] verbose && cat(verbose, "Neutral copy number:") verbose && cat(verbose, "Mode at: ", neutralC) verbose && cat(verbose, "Mode ampliture: ", fit[idx,"density"]) # If there is more than one peak, we should only call segments that # are not part of that other peak. if (idx+1 <= nrow(fit)) { nextValleyC <- fit[idx+1, "x"] } else { nextValleyC <- Inf } verbose && cat(verbose, "Upper range at: ", nextValleyC) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call copy-neutral regions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - isNeutral <- isNeutral & (C < nextValleyC) # Segments with missing values cannot be called isNeutral[isNA] <- NA verbose && cat(verbose, "Neutral region calls:") verbose && summary(verbose, isNeutral) verbose && exit(verbose) isNeutral }) # findNeutralCopyNumberState() ############################################################################## # HISTORY # 2013-09-26 [HB] # o CLEANUP: Now findNeutralCopyNumberState() no longer attached # 'aroma.light', but only loads its namespace. # 2013-03-19 [HB] # o Added argument 'flavor' to findNeutralCopyNumberState() specifying how # to identify the main mode of the AB segments. # 2012-02-24 [HB] # o Moved findNeutralCopyNumberState() from aroma.light. # 2012-02-23 [HB] # o Renamed argument 'densityThreshold' to 'minDensity'. # 2011-07-10 [HB] # o Made findNeutralCopyNumberState() a default method. # o Made the Rd help "internal". # 2010-09-09 [HB] # o Now segments with missing values are not called. # o Added support for the case when there is no peak/no segments in AB. # o Added support for the case when there is only one weak. # o Added sanity checks. # 2010-09-08 [PN] # o Created. ############################################################################## PSCBS/R/AbstractCBS.PLOT.R0000644000176200001440000000232614564051545014334 0ustar liggesusers###########################################################################/** # @set "class=AbstractCBS" # @RdocMethod plotTracks # # @title "Plots the segmentation result along the genome" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{...} # } # # \value{ # Returns nothing. # } # # @author "HB" # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("plotTracks", "AbstractCBS", abstract=TRUE) setMethodS3("tileChromosomes", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("drawChangePoints", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("drawKnownSegments", "AbstractCBS", function(fit, col="#aaaaaa", ..., xScale=1e-6) { segs <- fit$params$knownSegments # Nothing todo? if (is.null(segs)) { return() } # Workaround from the fact that extractChromosomes() does not drop # known segments. /HB 2013-03-21 chromosome <- NULL; rm(list="chromosome") # To please R CMD check. segs <- subset(segs, chromosome %in% getChromosomes(fit)) xStarts <- segs[,"start"] xEnds <- segs[,"end"] xs <- sort(unique(c(xStarts, xEnds))) abline(v=xScale*xs, col=col, ...) }, protected=TRUE) PSCBS/R/writeWIG.R0000644000176200001440000000774414564051545013176 0ustar liggesuserssetMethodS3("extractWIG", "AbstractCBS", function(fit, signal, transform=NULL, nbrOfDecimals=4L, label=toupper(signal), graphType=c("bar", "points", "line"), viewLimits=NULL, colors=c(negative="231,41,138", positive="117,112,179"), ...) { # Argument 'graphType': graphType <- match.arg(graphType) # Argument 'nbrOfDecimals': nbrOfDecimals <- Arguments$getInteger(nbrOfDecimals) data <- getSegments(fit, splitters=FALSE) fields <- c("chromosome", "start", "end", "mean") if (!is.null(signal)) { fields[-1] <- sprintf("%s%s", signal, capitalize(fields[-1])) } data <- data[,fields] colnames(data) <- c("chromosome", "start", "end", "mean") data$chromosome <- sprintf("chr%d", data$chromosome) ## Round / truncate for (ff in c("start", "end")) { data[[ff]] <- as.integer(round(data[[ff]], digits=0L)) } # Transform mean levels? if (!is.null(transform)) { data[["mean"]] <- transform(data[["mean"]]) } # Round mean levels if (!is.null(nbrOfDecimals)) { data[["mean"]] <- round(data[["mean"]], digits=nbrOfDecimals) } # Drop segments with missing values data <- na.omit(data) ## Track information track <- list( type="wiggle_0", name=sampleName(fit), description=sprintf("Data type: %s", class(fit)), graphType=graphType, visibility="full", maxHeightPixels="128:96:64", yLineOnOff="on", autoScale="true" ) if (is.na(track$name)) track$name <- "Unknown sample" if (!is.null(signal)) track$name <- sprintf("%s [%s]", track$name, label) if (!is.null(viewLimits)) { track$viewLimits <- sprintf("%g:%g", viewLimits[1], viewLimits[2]) } if (!is.null(colors)) { if (!is.null(names(colors))) colors <- colors[c("negative", "positive")] track$color <- colors[["negative"]] track$altColor <- colors[["positive"]] } attr(data, "track") <- track data }, protected=TRUE) setMethodS3("extractWIG", "CBS", function(fit, ..., colors=c(negative="231,41,138", positive="117,112,179")) { NextMethod("extractWIG", signal=NULL, colors=colors) }, protected=TRUE) setMethodS3("extractWIG", "PSCBS", function(fit, signal=c("tcn", "dh"), ..., colors=c(negative="231,41,138", positive="117,112,179")) { signal <- match.arg(signal) NextMethod("extractWIG", signal=signal, colors=colors) }, protected=TRUE) # \references{ # [1] Wiggle Track Format (WIG), UCSC Genome Browser # \url{https://genome.ucsc.edu/goldenPath/help/wiggle.html} # } setMethodS3("writeWIG", "AbstractCBS", function(fit, name=getSampleName(fit), tags=NULL, ext="wig", path=NULL, overwrite=FALSE, skip=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'name' and 'tags': name <- Arguments$getCharacter(name) tags <- Arguments$getCharacters(tags) # Argument 'ext': ext <- Arguments$getCharacter(ext) # Arguments 'path': path <- Arguments$getWritablePath(path) fullname <- paste(c(name, tags), collapse=",") filename <- sprintf("%s.%s", fullname, ext) pathname <- Arguments$getWritablePathname(filename, path=path, mustNotExist=(!overwrite && !skip)) # File already exists? if (isFile(pathname)) { # Skip? if (skip) { return(pathname) } # Overwrite! file.remove(pathname) } ## Write file (atomically) pathnameT <- pushTemporaryFile(pathname) bed <- extractWIG(fit, ...) ## Generate 'track' definition line track <- attr(bed, "track") track <- lapply(track, FUN=function(value) { if (is.character(value)) value <- dQuote(value) value }) track <- unlist(track, use.names=TRUE) track <- sprintf("%s=%s", names(track), track) track <- paste(track, collapse=" ") track <- sprintf("track %s", track) cat(track, "\n", sep="", file=pathnameT) write.table(bed, file=pathnameT, col.names=FALSE, row.names=FALSE, sep="\t", quote=FALSE, append=TRUE) pathname <- popTemporaryFile(pathnameT) pathname }) PSCBS/R/PSCBS.R0000644000176200001440000001357414564051545012345 0ustar liggesusers###########################################################################/** # @RdocClass PSCBS # # @title "The PSCBS class" # # \description{ # @classhierarchy # # A PSCBS is an object containing results from parent-specific copy-number # (PSCN) segmentation. # } # # \usage{PSCBS(fit=list(), ...)} # # \arguments{ # \item{fit}{A @list structure containing the PSCN segmentation results.} # \item{...}{Not used.} # } # # \section{Fields and Methods}{ # @allmethods "public" # } # # @author "HB" # # \seealso{ # @see "PairedPSCBS". # } #*/########################################################################### setConstructorS3("PSCBS", function(fit=list(), ...) { # Argument 'fit': if (!is.list(fit)) { stop("Argument 'fit' is not a list: ", class(fit)[1]) } extend(AbstractCBS(fit, ...), "PSCBS") }) setMethodS3("as.data.frame", "PSCBS", function(x, ...) { getSegments(x, splitters=TRUE, ...) }, protected=TRUE) setMethodS3("getLocusSignalNames", "PSCBS", function(fit, ...) { c("CT", "rho") }, protected=TRUE) setMethodS3("getSegmentTrackPrefixes", "PSCBS", function(fit, ...) { c("tcn", "dh") }, protected=TRUE) setMethodS3("getLocusData", "PSCBS", function(fit, indices=NULL, fields=c("asis"), ...) { # Argument 'indices': if (!is.null(indices)) { indices <- Arguments$getIndices(indices) } # Argument 'fields': fields <- match.arg(fields) data <- fit$data # Return requested indices if (!is.null(indices)) { # Map of final indices to current indices map <- match(indices, data$index) # Extract/expand... data <- data[map,] # Sanity check .stop_if_not(nrow(data) == length(indices)) } data }, protected=TRUE) # getLocusData() setMethodS3("isSegmentSplitter", "PSCBS", function(fit, ...) { segs <- fit$output isSplitter <- lapply(segs[-1], FUN=is.na) isSplitter <- Reduce("&", isSplitter) isSplitter }, protected=TRUE) ###########################################################################/** # @RdocMethod getSegments # # @title "Gets the segments" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{simplify}{If @TRUE, redundant and intermediate information is dropped.}# \item{splitters}{If @TRUE, "splitters" between chromosomes are # preserved, otherwise dropped.} # \item{...}{Not used.} # } # # \value{ # Returns a SxK @data.frame, where S in the number of segments, # and K is the number of segment-specific fields. # } # # @author "HB" # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("getSegments", "PSCBS", function(fit, simplify=FALSE, splitters=TRUE, addGaps=FALSE, ...) { # Argument 'splitters': splitters <- Arguments$getLogical(splitters) segs <- fit$output # Drop chromosome splitters? if (!splitters) { isSplitter <- isSegmentSplitter(fit) segs <- segs[!isSplitter,] } # Add splitters for "gaps"... if (splitters && addGaps) { # Chromosome gaps n <- nrow(segs) chrs <- segs$chromosome gapsAfter <- which(diff(chrs) != 0L) gapsAfter <- gapsAfter[!is.na(chrs[gapsAfter])] nGaps <- length(gapsAfter) if (nGaps > 0L) { idxs <- seq_len(n) values <- rep(NA_integer_, times=nGaps) idxs <- insert(idxs, ats=gapsAfter+1L, values=values) segs <- segs[idxs,] } # Other gaps n <- nrow(segs) chrs <- segs$chromosome starts <- segs$tcnStart[-1L] ends <- segs$tcnEnd[-n] gapsAfter <- which(starts != ends) onSameChr <- (chrs[gapsAfter+1L] == chrs[gapsAfter] ) gapsAfter <- gapsAfter[onSameChr] nGaps <- length(gapsAfter) if (nGaps > 0L) { idxs <- seq_len(n) values <- rep(NA_integer_, times=nGaps) idxs <- insert(idxs, ats=gapsAfter+1L, values=values) segs <- segs[idxs,] } } ## if (nrow(segs) > 0) { ## segs$id <- getSampleName(fit) ## } if (simplify) { # If joinSegments was used (i.e. (start,end) are equal for TCN and DH)... if (fit$params$joinSegments) { # Sanity check .stop_if_not(all(segs$tcnStart == segs$dhStart, na.rm=TRUE)) .stop_if_not(all(segs$tcnEnd == segs$dhEnd, na.rm=TRUE)) names <- colnames(segs) keep <- !is.element(names, c("dhStart", "dhEnd")) segs <- segs[,keep] names <- colnames(segs) names[names == "tcnStart"] <- "start" names[names == "tcnEnd"] <- "end" colnames(segs) <- names } # Drop bootstrap columns, if any names <- colnames(segs) keep <- (regexpr("_[0-9]+(|[.][0-9]+)%$", names) == -1) segs <- segs[,keep] } segs }, private=TRUE) setMethodS3("getChangePoints", "PSCBS", function(fit, ...) { # Already available? cps <- fit$changepoints if (!is.null(cps)) return(cps) segs <- getSegments(fit, splitters=TRUE) tcn <- segs[["tcnMean"]] dh <- segs[["dhMean"]] C1 <- (1-dh) * tcn / 2 C2 <- tcn - C1 n <- length(tcn) # Calculate observed (alpha, radius, manhattan, dc1, dc2) data D1 <- C1[-n] - C1[-1L] D2 <- C2[-n] - C2[-1L] cps <- data.frame( alpha = atan2(D2, D1), # Changepoint angles in (0,2*pi) radius = sqrt(D2^2 + D1^2), manhattan = abs(D2) + abs(D1), d1 = D1, d2 = D2 ) cps }, private=TRUE) # getChangePoints() setMethodS3("normalizeTotalCNs", "PSCBS", function(fit, targetTCN=2, ...) { ## Fit using locus-level data data <- getLocusData(fit, ...) C <- data$CT .stop_if_not(!is.null(C)) mu <- median(C, na.rm=TRUE) scale <- targetTCN / mu ## (a) Rescale locus-level data C <- scale * C data$CT <- C rm(list="C") fitN <- setLocusData(fit, data) ## (b) Rescale segment-level data segs <- getSegments(fit) fields <- colnames(segs) cnFields <- grep("^(tcn|c1|c2)", fields, value=TRUE) cnFields <- grep("(Id|Start|End|NbrOf)", cnFields, value=TRUE, invert=TRUE) for (field in cnFields) { segs[[field]] <- scale * segs[[field]] } fitN <- setSegments(fitN, segs) invisible(fitN) }) PSCBS/R/exampleData.R0000644000176200001440000000207114564051545013706 0ustar liggesusers###########################################################################/** # @RdocDefault exampleData # # @title "Gets an example data set" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{name}{A @character string specifying the name of the data set.} # \item{...}{Not used.} # } # # \value{ # Returns @data.frame. # } # # @author "HB" # # @keyword IO # @keyword data # @keyword internal #*/########################################################################### setMethodS3("exampleData", "default", function(name=c("paired.chr01"), ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'name': name <- match.arg(name) path <- system.file("data-ex", package="PSCBS", mustWork=TRUE) if (name == "paired.chr01") { filename <- "PairedPSCBS,exData,chr01.Rbin" } pathname <- Arguments$getReadablePathname(filename, path=path) data <- loadObject(pathname) data }, protected=TRUE) PSCBS/R/weightedQuantile.R0000644000176200001440000001274514564051545014775 0ustar liggesusers############################################################################/** # @RdocDefault weightedQuantile # # @title "Weighted Quantile Value" # # @synopsis # # \description{ # Computes a weighted quantile of a numeric vector. # } # # \arguments{ # \item{x}{a @numeric @vector containing the values whose weighted # quantile is to be computed.} # \item{w}{a numeric @vector of weights the same length as # \code{x} giving the weights to use for each element of \code{x}. # Negative weights are treated as zero weights. # Default value is equal weight to all values.} # \item{probs}{a @numeric @vector of quantiles in [0,1] to be retrieved.} # \item{na.rm}{a @logical value indicating whether @NA values in # \code{x} should be stripped before the computation proceeds, # or not.} # \item{method}{If \code{"wtd.quantile"}, then an internal copy of # \code{Hmisc::wtd.quantile()} is used. # No other methods are currently supported.} # \item{...}{Additional arguments passed to the estimator.} # } # # \value{ # Returns the weighted quantile. # } # # @author "HB" # # \seealso{ # Internally the following functions may be used: # @see "stats::quantile" (if no weights are specified), or an internal # copy of \code{Hmisc::wtd.quantile()}. # For a weighted median estimator, @see "matrixStats::weightedMedian" # of the \pkg{matrixStats} package. # } # # @keyword univar # @keyword robust # @keyword internal #*/############################################################################ setMethodS3("weightedQuantile", "default", function(x, w, probs=c(0, 0.25, 0.5, 0.75, 1), na.rm=TRUE, method=c("wtd.quantile"), ...) { # Argument 'x': x <- Arguments$getNumerics(x) # Argument 'w': if (missing(w)) { # By default use weights that are one. w <- rep(1, times=length(x)) } else { w <- Arguments$getNumerics(w, range=c(0,Inf), length=rep(length(x), times=2L)) } naValue <- NA storage.mode(naValue) <- storage.mode(x) # Argument 'na.rm': if (is.na(na.rm)) { # There are no NAs } else if (isTRUE(na.rm)) { # Remove values that are NA's tmp <- !(is.na(x) | is.na(w)) x <- .subset(x, tmp) w <- .subset(w, tmp) } else if (anyNA(x)) { return(naValue) } # Argument 'method': method <- match.arg(method) # Remove values with zero (and negative) weight. This will: # (1) take care of the case when all weights are zero, # (2) it will most likely speed up the sorting. n <- length(w) tmp <- (w > 0) if (!all(tmp)) { x <- .subset(x, tmp) w <- .subset(w, tmp) n <- sum(tmp) } # Are there any values left to calculate the weighted median of? if (n == 0) { return(naValue) } else if (n == 1) { return(x) } # Are any weights Inf? Then treat them with equal weight and all others # with weight zero. If they have equal weight, regular quantile # can be used instead, which is assumed to be faster. tmp <- is.infinite(w) if (any(tmp)) { x <- .subset(x, tmp) # Here we know there are no NAs. return(quantile(x, probs=probs, na.rm=FALSE, ...)) } # Here we know that there are no missing values in the data .wtd.quantile(x, weights=w, probs=probs) }) # weightedQuantile() ## The wtd.quantile() function originates from Hmisc 4.6-0 (2021-10-07), which ## was released under GPL (>= 2). The reasons for copying (and pruning) it ## instead of adding 'Hmisc' as a dependency are several: (i) Hmisc has a large ## number of dependencies, (ii) Hmisc requires R (>= 3.6.0) whereas we try to ## stay backward compatible with R (>= 3.2.0), and, most importantly, (iii) due ## to it's many dependencies Hmisc does not install out of the box on all ## systems, e.g. as of 2021-10-22 it is not available for macOS running on the ## M1 chip. ## ## CHANGES MADE: ## * wtd.quantile(): Dropped argument 'type' - always type="quantile" ## * wtd.quantile(): Dropped argument 'normwt' - always normwt=TRUE ## * wtd.quantile(): Dropped argument 'na.rm' - always na.rm=FALSE .wtd.quantile <- function(x, weights, probs=c(0, .25, .5, .75, 1)) { if(any(probs < 0 | probs > 1)) stop("Probabilities must be between 0 and 1 inclusive") ## NOTE: Data points with zero or NA weights have already been dropped ## by weightedQuantile() before calling this function ## Normalize weights weights <- weights/sum(weights) ## Order (x,weights) by x i <- order(x) x <- x[i] weights <- weights[i] nx <- length(x) ## Merge replicated 'x':s into single ones by combining their weights if (anyDuplicated(x)) { weights <- tapply(weights, INDEX = x, FUN = sum) ## The names of 'weights' holds the unique 'x' values xs <- names(weights) names(weights) <- NULL if (length(xs) == 0) stop("program logic error") x <- as.numeric(xs) } weights <- nx * weights cweights <- cumsum(weights) n <- cweights[length(weights)] order <- 1 + (n - 1) * probs low <- pmax(floor(order), 1) high <- pmin(low + 1, n) order <- order %% 1 ## Find low and high order statistics ## These are minimum values of x such that the cum. freqs >= c(low,high) allq <- approx(cweights, x, xout=c(low,high), method="constant", f=1, rule=2L)$y k <- length(probs) quantiles <- (1 - order)*allq[1:k] + order*allq[-(1:k)] ## Add 'probs' names digits <- if (k > 1) 2 - log10(diff(range(probs))) else 2 names <- paste(format(round(100 * probs, digits = digits)), "%", sep = "") names(quantiles) <- names quantiles } PSCBS/R/PairedPSCBS.PLOT,many.R0000644000176200001440000004442114564051545015203 0ustar liggesusers# \item{chromosomes}{An optional @numeric @vector specifying which # chromosomes to plot.} # # \item{seed}{An (optional) @integer specifying the random seed to be # set before subsampling. The random seed is # set to its original state when exiting. If @NULL, it is not set.} # # \item{verbose}{See @see "R.utils::Verbose".} # setMethodS3("plotTracksManyChromosomes", "PairedPSCBS", function(fit, chromosomes=getChromosomes(fit), tracks=NULL, scatter="*", calls=if (callLoci || length(chromosomes) == 1L) ".*" else NULL, callLoci=FALSE, callThresholds=TRUE, boundaries=TRUE, knownSegments=FALSE, quantiles=c(0.05,0.95), seed=0xBEEF, pch=".", Clim=c(0,3*ploidy(fit)), Blim=c(0,1), xScale=1e-6, xlabTicks=if (length(chromosomes) == 1L) "[pos]" else "[chr]", ..., subset=if (length(chromosomes) > 1L) 0.1 else NULL, add=FALSE, subplots=!add && (length(tracks) > 1L), oma=c(0,0,2,0), mar=c(2,5,1,3)+0.1, onBegin=NULL, onEnd=NULL, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - attachGH <- function(gh, envir=parent.frame()) { if (!is.list(gh)) return() if (is.null(gh$track)) return() if (!is.null(value <- gh$track)) assign("track", value, envir=envir) if (!is.null(value <- gh$subtracks)) assign("trackT", value, envir=envir) if (!is.null(value <- gh$scatter$col)) assign("colS", value, envir=envir) if (!is.null(value <- gh$scatter$pch)) assign("pchT", value, envir=envir) if (!is.null(value <- gh$level$col)) assign("colL", value, envir=envir) if (!is.null(value <- gh$cis$col)) assign("colC", value, envir=envir) } # attachGH() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Graphical styles # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - opts <- list( scatter = list(pch=".", col=c("#aaaaaa")), callScatter = list(col=c("#aaaaaa", LOSS="blue", GAIN="red", LOH="purple")), smoothScatter = list(pch=".", col=c("#666666")), level = list(lty=1L, col=c("black", tcn="purple", c1="blue", c2="red", dh="orange")), callLevel = list(lty=1L, col=c("#666666")), knownSegment = list(lty=1L, col=c("#aaaaaa")) ) getOptionValue <- function(option, what, track, ...) { values <- opts[[option]][[what]] value <- values[track] if (is.na(value)) value <- values[1L] unname(value) } # getOptionValue() getScatterColor <- function(track, ...) { getOptionValue("scatter", "col", track, ...) } # getScatterColor() getLevelColor <- function(track, ...) { getOptionValue("level", "col", track, ...) } # getLevelColor() getCallScatterColor <- function(track, ...) { getOptionValue("callScatter", "col", track, ...) } # getCallScatterColor() getCallLevelColor <- function(track, ...) { getOptionValue("callLevel", "col", track, ...) } # getCallLevelColor() getCallLevelLty <- function(track, ...) { getOptionValue("callLevel", "lty", track, ...) } # getCallLevelColor() getCIColor <- function(track, ...) { getLevelColor(track, ...) } # getLevelColor() getKnownSegmentColor <- function(track, ...) { getOptionValue("knownSegment", "col", track, ...) } # getKnownSegmentColor() getKnownSegmentLty <- function(track, ...) { getOptionValue("knownSegment", "lty", track, ...) } # getKnownSegmentColor() drawXLabelTicks <- function() { if (identical(xlabTicks, "[chr]")) { mtext(text=chrTags, side=rep(c(1,3), length.out=length(chrTags)), at=mids, line=0.1, cex=0.7) } else if (identical(xlabTicks, "[pos]")) { axis(side=1L) } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': # Argument 'chromosomes': if (!is.null(chromosomes)) { disallow <- c("NaN", "Inf") chromosomes <- Arguments$getIntegers(chromosomes, range=c(0,Inf), disallow=disallow) .stop_if_not(all(is.element(chromosomes, getChromosomes(fit)))) } # Argument 'tracks': knownTracks <- c("tcn", "dh", "tcn,c1,c2", "c1,c2", "c1", "c2", "betaN", "betaT", "betaTN") defaultTracks <- knownTracks[1:3] if (is.null(tracks)) { tracks <- defaultTracks } else { tracks <- match.arg(tracks, choices=knownTracks, several.ok=TRUE) tracks <- unique(tracks) } # Argument 'scatter': if (!is.null(scatter)) { scatter <- Arguments$getCharacter(scatter) if (scatter == "*") { scatter <- tracks } else { scatterT <- strsplit(scatter, split=",", fixed=TRUE) tracksT <- strsplit(tracks, split=",", fixed=TRUE) .stop_if_not(all(is.element(scatterT, tracksT))) # Not needed anymore scatterT <- tracksT <- NULL } } # Argument 'calls': if (!is.null(calls)) { calls <- sapply(calls, FUN=Arguments$getRegularExpression) } # Argument 'callLoci': callLoci <- Arguments$getLogical(callLoci) # Argument 'callThresholds': callThresholds <- Arguments$getLogical(callThresholds) # Argument 'boundaries': boundaries <- Arguments$getLogical(boundaries) # Argument 'knownSegments': knownSegments <- Arguments$getLogical(knownSegments) # Argument 'add': add <- Arguments$getLogical(add) # Argument 'Clim' & 'Blim': if (!add) { Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) Blim <- Arguments$getNumerics(Blim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Argument 'xlabTicks': if (!is.null(xlabTicks)) { xlabTicks <- Arguments$getCharacter(xlabTicks) } # Argument 'subset': if (!is.null(subset)) { subset <- Arguments$getDouble(subset) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Plotting PSCN tracks") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset by chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!is.null(chromosomes)) { verbose && enter(verbose, "Plotting a subset of the chromosomes") fit <- extractChromosomes(fit, chromosomes=chromosomes, verbose=verbose) verbose && exit(verbose) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit <- tileChromosomes(fit, verbose=verbose) verbose && str(verbose, fit) # Extract the input data data <- getLocusData(fit) if (is.null(data)) { stop("Cannot plot segmentation results. No input data available.") } # Extract the segmentation segs <- as.data.frame(fit) # Identify available calls callData <- NULL if (!is.null(calls) || callThresholds) { verbose && enter(verbose, "Identifying calls") pattern <- "Call$" allCallColumns <- grep(pattern, colnames(segs), value=TRUE) allCallLabels <- toupper(gsub(pattern, "", allCallColumns)) verbose && cat(verbose, "Call columns:") verbose && print(verbose, allCallColumns) if (!is.null(calls)) { callColumns <- allCallColumns if (length(callColumns) > 0L) { keep <- sapply(calls, FUN=function(pattern) { (regexpr(pattern, callColumns) != -1L) }) if (is.matrix(keep)) { keep <- rowAnys(keep, useNames=FALSE) } callColumns <- callColumns[keep] callLabels <- allCallLabels[keep] # Annotate individual loci by calls? if (callLoci) { callData <- extractCallsByLocus(fit, verbose=less(verbose,5)) } } verbose && cat(verbose, "Call to be annotated:") verbose && print(verbose, callColumns) } verbose && exit(verbose) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset of the loci? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!is.null(subset)) { # (a) Set and unset the random seed if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=%d)\n", seed) } # (b) Subset n <- nrow(data) keep <- sample(n, size=subset*n) data <- data[keep,] if (!is.null(callData)) { callData <- callData[keep,] } } # To please R CMD check CT <- rho <- muN <- betaT <- betaN <- betaTN <- rho <- NULL rm(list=c("CT", "rho", "muN", "betaT", "betaN", "betaTN")) attachLocally(data) # Calculate (C1,C2) C1 <- 1/2*(1-rho)*CT C2 <- CT - C1 # BACKWARD COMPATIBILITY: # If 'rho' is not available, recalculate it from tumor BAFs. # NOTE: This should throw an error in the future. /HB 2013-10-25 if (is.null(data$rho)) { isSnp <- (!is.na(betaTN) & !is.na(muN)) isHet <- isSnp & (muN == 1/2) rho <- rep(NA_real_, times=nbrOfLoci) rho[isHet] <- 2*abs(betaTN[isHet]-1/2) warning(sprintf("Locus-level DH signals ('rho') were not available in the %s object and therefore recalculated from the TumorBoost-normalized tumor BAFs ('betaTN').", class(fit)[1L])) } x <- xScale * x vs <- xScale * fit$chromosomeStats[,1:2,drop=FALSE] mids <- (vs[,1]+vs[,2])/2 nbrOfLoci <- length(x) chrTags <- sprintf("Chr%02d", chromosomes) if (subplots) { subplots(length(tracks), ncol=1L) par(oma=oma, mar=mar) } pchT <- if (!is.null(scatter)) { pch } else { NA } xlim <- range(x, na.rm=TRUE) xlab <- "Genomic position" # Graphical handle gh <- list(fit=fit) gh$xScale <- xScale gh$xlim <- xlim gh$xlab <- xlab if (!is.null(callData)) { gh$callsByLocus <- callData } for (tt in seq_along(tracks)) { track <- tracks[tt] verbose && enter(verbose, sprintf("Track #%d ('%s') of %d", tt, track, length(tracks))) # Get graphical style parameters. tracksT <- unlist(strsplit(track, split=",", fixed=TRUE)) colS <- sapply(tracksT, FUN=getScatterColor) colL <- sapply(tracksT, FUN=getLevelColor) colC <- sapply(tracksT, FUN=getCIColor) # Color scatter plot according to calls? if (!is.null(calls) && callLoci && length(callColumns) > 0L) { colsT <- rep(colS[1L], times=nrow(callData)) for (cc in seq_along(callColumns)) { callColumn <- callColumns[cc] callLabel <- callLabels[cc] verbose && enter(verbose, sprintf("Call #%d ('%s') of %d", cc, callLabel, length(callColumns))) verbose && cat(verbose, "Column: ", callColumn) skip <- TRUE if (regexpr("tcn", track) != -1L) { skip <- !is.element(callLabel, c("LOSS", "NTCN", "GAIN", "LOH")) } else if (track == "dh") { skip <- !is.element(callLabel, c("AB", "LOH")) } if (skip) { verbose && exit(verbose) next } callsCC <- callData[[callColumn]] idxs <- which(callsCC) # Nothing to do? if (length(idxs) == 0L) { verbose && exit(verbose) next } callCol <- getCallScatterColor(callLabel) colsT[idxs] <- callCol } # for (cc in ...) colS <- colsT } # if (!is.null(calls)) # Assign graphical-handle parameters gh$track <- track gh$subtracks <- tracksT gh$scatter <- list(col=colS, pch=pchT) gh$level <- list(col=colL) gh$cis <- list(col=colC) if (track == "tcn") { plot(NA, xlim=xlim, ylim=Clim, xlab=xlab, ylab="TCN", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) if (!is.na(pchT)) { points(x, CT, pch=pchT, col=colS) } drawConfidenceBands(fit, what="tcn", quantiles=quantiles, col=colC["tcn"], xScale=xScale) drawLevels(fit, what="tcn", col=colL, xScale=xScale) } if (is.element(track, c("tcn,c1,c2", "c1,c2", "c1", "c2"))) { tracksT <- unlist(strsplit(track, split=",", fixed=TRUE)) plot(NA, xlim=xlim, ylim=Clim, xlab=xlab, ylab="C1, C2, TCN", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) # Draw scatter for TCN or C1 and C2. if (!is.na(pchT)) { if (is.element("tcn", tracksT)) { points(x, CT, pch=pchT, col=colS) } else { if (is.element("c1", tracksT)) { points(x, C1, pch=pchT, col=colS) } if (is.element("c2", tracksT)) { points(x, C2, pch=pchT, col=colS) } } } # Draw confidence bands for TCN, C1, C2. if (is.element("tcn", tracksT)) { drawConfidenceBands(fit, what="tcn", quantiles=quantiles, col=colC["tcn"], xScale=xScale) } if (is.element("c2", tracksT)) { drawConfidenceBands(fit, what="c2", quantiles=quantiles, col=colC["c2"], xScale=xScale) } if (is.element("c1", tracksT)) { drawConfidenceBands(fit, what="c1", quantiles=quantiles, col=colC["c1"], xScale=xScale) } # Draw segment means for TCN, C1, C2. if (is.element("tcn", tracksT)) { drawLevels(fit, what="tcn", col=colL["tcn"], xScale=xScale) } if (is.element("c2", tracksT)) { drawLevels(fit, what="c2", col=colL["c2"], xScale=xScale) } if (is.element("tcn", tracksT)) { # In case C2 overlaps with TCN drawLevels(fit, what="tcn", col=colL["tcn"], lty="22", xScale=xScale) } # In case C1 overlaps with C2 if (is.element("c1", tracksT)) { drawLevels(fit, what="c1", col=colL["c1"], xScale=xScale) if (is.element("c2", tracksT)) { drawLevels(fit, what="c2", col=colL["c2"], lty="22", xScale=xScale) } if (is.element("tcn", tracksT)) { drawLevels(fit, what="tcn", col=colL["tcn"], lty="22", xScale=xScale) } } } if (track == "betaN") { plot(NA, xlim=xlim, ylim=Blim, xlab=xlab, ylab="BAF_N", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) if (!is.na(pchT)) { points(x, betaN, pch=pchT, col=colS) } } if (track == "betaT") { plot(NA, xlim=xlim, ylim=Blim, xlab=xlab, ylab="BAF_T", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) if (!is.na(pchT)) { points(x, betaT, pch=pchT, col=colS) } } if (track == "betaTN") { plot(NA, xlim=xlim, ylim=Blim, xlab=xlab, ylab="BAF_TN", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) if (!is.na(pchT)) { points(x, betaTN, pch=pchT, col=colS) } } if (track == "dh") { plot(NA, xlim=xlim, ylim=Blim, xlab=xlab, ylab="DH", axes=FALSE) if (!is.null(onBegin)) attachGH(onBegin(gh=gh)) if (!is.na(pchT)) { points(x, rho, pch=pchT, col=colS) } drawConfidenceBands(fit, what="dh", quantiles=quantiles, col=colC["dh"], xScale=xScale) drawLevels(fit, what="dh", col=colL["dh"], xScale=xScale) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each panel of tracks, annotate segments with calls? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!is.null(calls) && !callLoci && length(callColumns) > 0L) { for (cc in seq_along(callColumns)) { callColumn <- callColumns[cc] callLabel <- callLabels[cc] verbose && enter(verbose, sprintf("Call #%d ('%s') of %d", cc, callLabel, length(callColumns))) verbose && cat(verbose, "Column: ", callColumn) segsT <- segs[,c("dhStart", "dhEnd", callColumn)] isCalled <- which(segsT[[callColumn]]) segsT <- segsT[isCalled,1:2,drop=FALSE] verbose && printf(verbose, "Number of segments called %s: %d\n", callLabel, nrow(segsT)) segsT <- xScale * segsT verbose && str(verbose, segsT) side <- 2*((cc+1) %% 2) + 1 # For each segment called... for (ss in seq_len(nrow(segsT))) { x0 <- segsT[ss,1,drop=TRUE] x1 <- segsT[ss,2,drop=TRUE] abline(v=c(x0,x1), lty=3, col="gray") xMid <- (x0+x1)/2 mtext(side=side, at=xMid, line=-1, cex=0.7, col="#666666", callLabel) } # for (ss in ...) verbose && exit(verbose) } # for (cc in ...) } # if (!is.null(calls)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each panel of tracks, annotate with call thresholds? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (callThresholds) { # Add call parameter estimates, e.g. deltaAB colCL <- sapply(tracksT, FUN=getCallLevelColor) ltyCL <- sapply(tracksT, FUN=getCallLevelLty) trackT <- track for (cc in seq_along(allCallColumns)) { callColumn <- allCallColumns[cc] callLabel <- allCallLabels[cc] h <- NULL if (callLabel == "AB") { if (track == "dh") { h <- fit$params$deltaAB label <- expression(Delta[AB]) } } else if (callLabel == "LOH") { if (regexpr("c1", track) != -1L) { h <- fit$params$deltaLowC1 label <- expression(Delta[LOH]) trackT <- "c1" } } else if (callLabel == "NTCN") { if (track == "tcn") { h <- fit$params$ntcnRange label <- c(expression(Delta[-NTCN]), expression(Delta[+NTCN])) } } if (!is.null(h)) { abline(h=h, lty=ltyCL[trackT], lwd=2, col=colCL[trackT]) for (ss in 1:2) { side <- c(2,4)[ss] adj <- c(1.2,-0.2)[ss] mtext(side=side, at=h, label, adj=adj, las=2, xpd=TRUE) } } } # for (cc in ...) } # if (callThresholds) drawXLabelTicks() if (boundaries) { abline(v=vs, lty=1, lwd=2) } if (knownSegments) { colT <- getKnownSegmentColor() ltyT <- getKnownSegmentLty() drawKnownSegments(fit, col=colT, lty=ltyT) } axis(side=2); box() if (!is.null(onEnd)) onEnd(gh=gh) verbose && exit(verbose) } # for (tt ...) verbose && exit(verbose) invisible(gh) }, private=TRUE) # plotTracksManyChromosomes() PSCBS/R/PairedPSCBS.BOOT.R0000644000176200001440000010723514564051545014232 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod bootstrapTCNandDHByRegion # # @title "Estimate confidence intervals of TCN and DH segment levels" # # \description{ # @get "title" using bootstrap. # } # # @synopsis # # \arguments{ # \item{B}{A positive @integer specifying the number of bootstrap samples.} # \item{boot}{Alternatively, to generating \code{B} bootstrap samples, # this specifies a pre-generated set of bootstrap samples as # returned by \code{bootstrapSegmentsAndChangepoints()}.} # \item{...}{Additional arguments passed to \code{bootstrapSegmentsAndChangepoints()}.} # \item{probs}{The default quantiles to be estimated.} # \item{statsFcn}{A (optional) @function that estimates confidence # intervals given locus-level data. # If @NULL, the @see "stats::quantile" function is used.} # \item{what}{A @character @vector specifying what to bootstrap.} # \item{force}{If @TRUE, already existing estimates are ignored, # otherwise not.} # \item{verbose}{See @see "R.utils::Verbose".} # \item{.debug}{(internal) If @TRUE, additional sanity checks are # performed internally.} # } # # \value{ # Returns a @see "PairedPSCBS" object. # } # # @author "HB" #*/########################################################################### setMethodS3("bootstrapTCNandDHByRegion", "PairedPSCBS", function(fit, B=1000L, boot=NULL, ..., probs=c(0.025, 0.050, 0.95, 0.975), statsFcn=NULL, what=c("segment", "changepoint"), force=FALSE, verbose=FALSE, .debug=FALSE) { # Settings for sanity checks tol <- getOption("PSCBS/sanityChecks/tolerance", 0.0005) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - summarizeSamples <- function(X, statsFcn, stats=NULL, what=c("segment", "changepoint"), ..., verbose=FALSE) { # Argument 'X': .stop_if_not(is.array(X)) dim <- dim(X) .stop_if_not(length(dim) == 3L) # Argument 'statsFcn': .stop_if_not(is.function(statsFcn)) statsT <- statsFcn(1) .stop_if_not(!is.null(names(statsT))) nbrOfStats <- length(statsT) statsNames <- names(statsT) statsT <- NULL # Not needed anymore # Argument 'stats': if (!is.null(stats)) { .stop_if_not(is.data.frame(stats)) } # Argument 'what': what <- match.arg(what) whatC <- capitalize(what) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } dimnames <- dimnames(X) fields <- dimnames[[3L]] verbose && enter(verbose, sprintf("Summarizing bootstrapped %s (%s) data", what, paste(sQuote(fields), collapse=", "))) # Allocate JxQxF matrix S dim[2L] <- nbrOfStats dimnames[[2L]] <- statsNames S <- array(NA_real_, dim=dim, dimnames=dimnames) verbose && str(verbose, S) for (kk in seq_along(fields)) { field <- fields[kk] verbose && enter(verbose, sprintf("Field #%d ('%s') of %d", kk, field, length(fields))) Xkk <- X[,,kk,drop=FALSE] # An JxB matrix dim(Xkk) <- dim(Xkk)[-3L] # Sanity check .stop_if_not(is.matrix(Xkk)) .stop_if_not(nrow(Xkk) == dim(X)[1L]) .stop_if_not(ncol(Xkk) == B) for (jj in seq_len(dim(X)[1L])) { verbose && enter(verbose, sprintf("%s #%d of %d", whatC, jj, dim(X)[1L])) Xkkjj <- Xkk[jj,,drop=TRUE] # A vector of length B S[jj,,kk] <- statsFcn(Xkkjj) verbose && exit(verbose) } # for (jj ...) Xkk <- NULL # Not needed anymore verbose && exit(verbose) } # for (jj ...) # Not needed anymore X <- NULL verbose && cat(verbose, "Bootstrap statistics") verbose && str(verbose, S) # Reshape JxQx4 array to Jx(4*Q) matrix T <- wrap(S, map=list(1,NA), sep="_") colnames(T) <- gsub("(.*)_(.*)", "\\2_\\1", colnames(T)) # Append as new columns to the summary table stats <- cbind(stats, T) # Drop previously estimated values dups <- duplicated(colnames(stats), fromLast=TRUE) if (any(dups)) { stats <- stats[,!dups, drop=FALSE] } # Not needed anymore T <- dups <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Statistical sanity checks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (what == "segment" && B >= 100L) { verbose && enter(verbose, "Statistical sanity checks (iff B >= 100)") .stop_if_not(is.array(S)) # Find extreme quantiles probs <- dimnames(S)[[2L]] verbose && printf(verbose, "Available summaries: %s\n", paste(probs, collapse=", ")) probs <- grep("%", probs, fixed=TRUE, value=TRUE) S <- S[,probs,,drop=FALSE] probs <- gsub("%", "", probs, fixed=TRUE) probs <- as.double(probs) / 100 verbose && printf(verbose, "Available quantiles: %s\n", paste(probs, collapse=", ")) verbose && str(verbose, S) # Sanity check .stop_if_not(all(is.finite(probs))) # Is it possible to check? if (any(probs < 0.10) && any(probs > 0.90)) { tryCatch({ fields <- dimnames(S)[[3L]] for (kk in seq_along(fields)) { field <- fields[kk] verbose && enter(verbose, sprintf("Field #%d ('%s') of %d", kk, field, length(fields))) # Bootstrap statistics Skk <- S[,,kk, drop=FALSE] dim(Skk) <- dim(Skk)[-3L] # Sanity checks .stop_if_not(is.matrix(Skk)) range <- Skk[,c(1L,ncol(Skk)),drop=FALSE] # Segmentation means key <- sprintf("%sMean", field) segMean <- segs[[key]] # Segmentation counts cfield <- sprintf("%sNbrOfLoci", ifelse(field == "tcn", "tcn", "dh")) counts <- segs[,cfield,drop=TRUE] if (verbose) { for (rr in seq_len(length(segMean))) { printf(verbose, "Seg %3d. mean=%g, range=[%g,%g], n=%d\n", rr, segMean[rr], range[rr,1L], range[rr,2L], counts[rr]) } # for (rr ...) } # Compare only segments with enough data points keep <- (counts > 1L) range <- range[keep,,drop=FALSE] segMean <- segMean[keep] # Sanity checks .stop_if_not(all(range[,2L] + tol >= range[,1L], na.rm=TRUE)) .stop_if_not(all(segMean + tol >= range[,1L], na.rm=TRUE)) .stop_if_not(all(segMean - tol <= range[,2L], na.rm=TRUE)) verbose && exit(verbose) } # for (kk ...) }, error = function(ex) { # If an error, display the data, then throw the exception verbose && cat(verbose, "Tolerance (option 'PSCBS/sanityChecks/tolerance'): ", tol) verbose && print(verbose, segs) stop(ex) }) } else { verbose && cat(verbose, "Skipping. Not enough quantiles: ", paste(dimnames(S)[[2L]], collapse=", ")) } verbose && exit(verbose) } # if (B >= 100L) verbose && exit(verbose) stats } # summarizeSamples() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'B': B <- Arguments$getInteger(B, range=c(1,Inf)) # Argument 'probs': probs <- Arguments$getNumerics(probs, range=c(0,1)) # Always estimate the default quantiles probs0 <- eval(formals(bootstrapTCNandDHByRegion.PairedPSCBS)$probs, enclos = baseenv()) probs <- unique(sort(c(probs, probs0))) # Argument 'statsFcn': if (is.null(statsFcn)) { statsFcn <- function(x) quantile(x, probs=probs, na.rm=TRUE) } # Argument 'what': what <- unique(match.arg(what, several.ok=TRUE)) # Argument 'force': force <- Arguments$getLogical(force) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # Argument '.debug': .debug <- Arguments$getLogical(.debug) verbose && enter(verbose, "Resample (TCN,DH) signals and re-estimate summaries for ", paste(what, collapse=" & ")) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract existing estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.element("segment", what)) { segs <- getSegments(fit) } if (is.element("changepoint", what)) { cps <- getChangePoints(fit) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Already done? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stats <- statsFcn(1) .stop_if_not(!is.null(names(stats))) nbrOfStats <- length(stats) statsNames <- names(stats) if (is.element("segment", what)) { tcnStatsNames <- sprintf("tcn_%s", names(stats)) dhStatsNames <- sprintf("dh_%s", names(stats)) c1StatsNames <- sprintf("c1_%s", names(stats)) c2StatsNames <- sprintf("c2_%s", names(stats)) allStatsNames <- c(tcnStatsNames, dhStatsNames, c1StatsNames, c2StatsNames) isDone <- is.element(allStatsNames, names(segs)) names(isDone) <- allStatsNames verbose && cat(verbose, "Already done?") verbose && print(verbose, isDone) # Not needed anymore allStatsNames <- tcnStatsNames <- dhStatsNames <- c1StatsNames <- c2StatsNames <- NULL if (!force && all(isDone)) { verbose && cat(verbose, "Already done. Skipping.") verbose && exit(verbose) return(fit) } } # The object to be returned fitB <- fit # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap (TCN,DH,C1,C2) segment mean levels # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.null(boot)) { boot <- bootstrapSegmentsAndChangepoints(fit, B=B, ..., force=force, .debug=.debug, verbose=verbose) } else { B <- dim(boot$segments)[2L] } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Summarizing segment (TCN,DH,C1,C2) mean levels # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.element("segment", what)) { segs <- summarizeSamples(boot$segments, statsFcn=statsFcn, stats=segs, what="segment", verbose=verbose) # Record statistics fitB$output <- segs segs <- NULL # Not needed anymore } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Summarizing change point (alpha, radius, manhattan, d1, d2) data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.element("changepoint", what)) { cps <- summarizeSamples(boot$changepoints, statsFcn=statsFcn, stats=cps, what="changepoint", verbose=verbose) # Record statistics fitB$changepoints <- cps cps <- NULL # Not needed anymore } # Not needed anymore fit <- boot <- NULL verbose && exit(verbose) fitB }, private=TRUE) # bootstrapTCNandDHByRegion() # \item{by}{A @character specifying whether DH should be calculated from # normalized ('betaTN') or non-normalized ('betaT') tumor BAFs.} # \item{seed}{(optional) A random seed.} # # # \value{ # Returns a named @list containing two @arrays of bootstrap samples. # These arrays also contains the original observation as the first # element before the actual bootstrap samples. # } setMethodS3("bootstrapSegmentsAndChangepoints", "PairedPSCBS", function(fit, B=1000L, by=c("betaTN", "betaT"), seed=NULL, force=FALSE, cache=FALSE, verbose=FALSE, .debug=FALSE, ...) { # Settings for sanity checks tol <- getOption("PSCBS/sanityChecks/tolerance", 0.0005) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'B': B <- Arguments$getInteger(B, range=c(1,Inf)) # Argument 'by': by <- match.arg(by) # Argument 'seed': if (!is.null(seed)) { seed <- Arguments$getInteger(seed) } # Argument '.cache': cache <- Arguments$getLogical(cache) # Argument 'force': force <- Arguments$getLogical(force) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # Argument '.debug': .debug <- Arguments$getLogical(.debug) verbose && enter(verbose, "Bootstrapping (TCN,DH,C1,C2) segment mean levels") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Check for cached results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - key <- list(method="bootstrapSegmentsAndChangepoints", class=class(fit)[1L], fit=fit, B=B, by=by, seed=seed) dirs <- c("PSCBS", "bootstrap") boot <- loadCache(key=key, dirs=dirs) if (!force && !is.null(boot)) { verbose && cat(verbose, "Found cached results. Skipping.") verbose && exit(verbose) return(boot) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Set the random seed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!is.null(seed)) { randomSeed("set", seed=seed, kind="L'Ecuyer-CMRG") on.exit(randomSeed("reset"), add=TRUE) verbose && printf(verbose, "Random seed temporarily set (seed=%d)\n", seed) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) tcnSegRows <- fit$tcnSegRows dhSegRows <- fit$dhSegRows segs <- getSegments(fit) params <- fit$params # Sanity checks .stop_if_not(all(!is.na(data$chromosome) & !is.na(data$x))) # Sanity checks if (!params$joinSegments) { stop("Cannot bootstrap TCN and DH by segments unless PSCNs are segmented using joinSegments=TRUE.") } if (regexpr(",", params$flavor, fixed=TRUE) != -1L) { stop(sprintf("Cannot bootstrap TCN and DH by segments if PSCNs are segmented using flavor=\"%s\".", params$flavor)) } # Sanity check (same as above, but just in case) .stop_if_not(all(segs$tcnStart == segs$dhStart, na.rm=TRUE)) .stop_if_not(all(segs$tcnEnd == segs$dhEnd, na.rm=TRUE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find estimators # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get mean estimators used estList <- getMeanEstimators(fit, c("tcn", "dh")) avgTCN <- estList$tcn avgDH <- estList$dh estList <- NULL # Not needed anymore # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get signals # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get (x,TCN,BAF) data chromosome <- data$chromosome x <- data$x CT <- data$CT betaT <- data[[by]] muN <- data$muN rho <- data$rho # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Classify each locus as (i) heterozygous SNP, (ii) homozygous SNP, # or (iii) non-polymorphic loci # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identifying heterozygous & homozygous SNPs and non-polymorphic loci") nbrOfLoci <- length(CT) verbose && cat(verbose, "Number of loci: ", nbrOfLoci) # Identify SNPs hasDH <- !is.null(rho) if (hasDH) { isHet <- !is.na(rho) isSnp <- isHet } else { isSnp <- (!is.na(muN) & !is.na(betaT)) isHet <- (isSnp & (muN == 1/2)) } snps <- which(isSnp) nonSNPs <- which(!isSnp) nbrOfSNPs <- sum(isSnp) nbrOfNonSNPs <- sum(!isSnp) verbose && cat(verbose, "Number of SNPs: ", nbrOfSNPs) verbose && cat(verbose, "Number of non-SNPs: ", nbrOfNonSNPs) # Sanity checks .stop_if_not(length(intersect(snps, nonSNPs)) == 0L) # Heterozygous SNPs hets <- which(isSnp & isHet) homs <- which(isSnp & !isHet) nbrOfHets <- length(hets) nbrOfHoms <- length(homs) if (!hasDH) { verbose && printf(verbose, "Number of heterozygous SNPs: %d (%.2f%%)\n", nbrOfHets, 100*nbrOfHets/nbrOfSNPs) verbose && printf(verbose, "Number of homozygous SNPs: %d (%.2f%%)\n", nbrOfHoms, 100*nbrOfHoms/nbrOfSNPs) } # Sanity checks .stop_if_not(length(intersect(hets, homs)) == 0L) .stop_if_not(nbrOfHets + nbrOfHoms == nbrOfSNPs) # Sanity checks .stop_if_not(length(isSnp) == nbrOfLoci) .stop_if_not(length(isHet) == nbrOfLoci) # Not needed anymore muN <- isSnp <- NULL verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Precalculate DH signals # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.null(rho)) { # Calculate DHs for heterozygous SNPs rho <- 2*abs(betaT - 1/2) # DH is by definition only defined for heterozygous SNPs. # For simplicity, we set it to be NA for non-heterozygous loci. rho[!isHet] <- NA_real_ data$rho <- rho } # Not needed anymore betaT <- isHet <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Resample (TCN,DH) within each segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nrow(segs) # Allocate JxBx4 matrix M of bootstrap means dim <- c(nbrOfSegments, B, 4L) dimnames <- list(NULL, NULL, c("tcn", "dh", "c1", "c2")) M <- array(NA_real_, dim=dim, dimnames=dimnames) verbose && str(verbose, M) # Identify all loci with non-missing signals idxsCT <- which(!is.na(CT)) idxsRho <- which(!is.na(rho)) # Vectorized pre-adjustments for (field in c("tcnNbrOfLoci", "dhNbrOfLoci")) { counts <- segs[[field]] counts[is.na(counts)] <- 0L segs[[field]] <- counts } hasTcnLoci <- (is.finite(tcnSegRows[,1L]) & is.finite(tcnSegRows[,2L])) hasDhLoci <- (is.finite(dhSegRows[,1L]) & is.finite(dhSegRows[,2L])) # Identify "splitter" segments which have no data chrs <- segs[["chromosome"]] tcnIds <- segs[["tcnId"]] dhIds <- segs[["dhId"]] tcnMeans <- segs[["tcnMean"]] dhMeans <- segs[["dhMean"]] isSplitter <- (is.na(chrs) & is.na(tcnIds) & is.na(dhIds)) # Get all segment indices except for "splitters" jjs <- seq_len(nbrOfSegments) jjs <- jjs[!isSplitter] for (jj in jjs) { chr <- chrs[jj] tcnId <- tcnIds[jj] dhId <- dhIds[jj] verbose && enter(verbose, sprintf("Segment #%d (chr %d, tcnId=%d, dhId=%d) of %d", jj, chr, tcnId, dhId, nbrOfSegments)) # Sanity check if (.debug) .stop_if_not(!is.na(chr) && !is.na(tcnId) && !is.na(dhId)) # Get the segment data segJJ <- segs[jj,,drop=FALSE] verbose && print(verbose, segJJ) nbrOfTCNs <- segJJ[,"tcnNbrOfLoci"] nbrOfDHs <- segJJ[,"dhNbrOfLoci"] verbose && cat(verbose, "Number of TCNs: ", nbrOfTCNs) verbose && cat(verbose, "Number of DHs: ", nbrOfDHs) if (.debug) { .stop_if_not(!is.na(nbrOfTCNs)) .stop_if_not(!is.na(nbrOfDHs)) } tcnSegRowJJ <- unlist(tcnSegRows[jj,], use.names=FALSE) dhSegRowJJ <- unlist(dhSegRows[jj,], use.names=FALSE) # Indices of all loci if (hasTcnLoci[jj]) { idxsAll <- tcnSegRowJJ[1L]:tcnSegRowJJ[2L] } else { idxsAll <- 0L } verbose && str(verbose, idxsAll) verbose && print(verbose, hpaste(idxsAll), level=-120) verbose && str(verbose, idxsCT) verbose && print(verbose, hpaste(idxsCT), level=-120) # Keep only loci with finite TCNs idxsAll <- intersect(idxsAll, idxsCT) verbose && str(verbose, idxsAll) verbose && print(verbose, hpaste(idxsAll), level=-120) # Sanity check if (length(idxsAll) != nbrOfTCNs) { verbose && str(verbose, setdiff(idxsCT, idxsAll)) stop("INTERNAL ERROR: length(idxsAll) != nbrOfTCNs: ", length(idxsAll), " != ", nbrOfTCNs) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify loci used to calculate DH means # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identify loci used to bootstrap DH means") if (hasDhLoci[jj]) { idxsDH <- dhSegRowJJ[1L]:dhSegRowJJ[2L] idxsDH <- intersect(idxsDH, hets) # Drop missing values idxsDH <- intersect(idxsDH, idxsRho) } else { idxsDH <- 0L } verbose && cat(verbose, "Heterozygous SNPs to resample for DH:") verbose && str(verbose, idxsDH) # Sanity check if (.debug) .stop_if_not(length(idxsDH) == nbrOfDHs) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify loci used to calculate TCN means # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Identify loci used to bootstrap TCN means") # Identify SNPs and non-SNPs idxsSNP <- intersect(snps, idxsAll) idxsNonSNP <- setdiff(idxsAll, idxsSNP) verbose && cat(verbose, "SNPs:") verbose && str(verbose, idxsSNP) verbose && cat(verbose, "Non-polymorphic loci:") verbose && str(verbose, idxsNonSNP) # Sanity check if (.debug) .stop_if_not(length(idxsSNP) + length(idxsNonSNP) == length(idxsAll)) # Identify heterozygous and homozygous SNPs idxsHet <- intersect(idxsSNP, hets) if (nbrOfHoms > 0) { idxsHom <- intersect(idxsSNP, homs) } else { ## Happens when only DH is available idxsHom <- integer(0L) } # Drop missing values idxsNonSNP <- intersect(idxsNonSNP, idxsCT) idxsHet <- intersect(idxsHet, idxsCT) idxsHom <- intersect(idxsHom, idxsCT) idxsHetNonDH <- setdiff(idxsHet, idxsDH) verbose && cat(verbose, "Heterozygous SNPs to resample for TCN:") verbose && str(verbose, idxsHet) verbose && cat(verbose, "Homozygous SNPs to resample for TCN:") verbose && str(verbose, idxsHom) verbose && cat(verbose, "Non-polymorphic loci to resample for TCN:") verbose && str(verbose, idxsNonSNP) verbose && cat(verbose, "Heterozygous SNPs with non-DH to resample for TCN:") verbose && str(verbose, idxsHetNonDH) # Note that length(idxsHetNonDH) may differ from zero in case CT is non-missing # but rho is missing, e.g. CT = sum(c(thetaA,thetaB), na.rm=TRUE) and # thetaB is missing. /HB 2010-12-01 idxsTCN <- sort(unique(c(idxsHet, idxsHom, idxsNonSNP))) verbose && cat(verbose, "Loci to resample for TCN:") verbose && str(verbose, idxsTCN) # Sanity check if (.debug) { .stop_if_not(length(idxsHet) + length(idxsHom) + length(idxsNonSNP) == nbrOfTCNs) .stop_if_not(length(intersect(idxsDH, idxsHetNonDH)) == 0L) .stop_if_not(length(idxsTCN) == nbrOfTCNs) } verbose && exit(verbose) # These numbers should be preserved when the resampling verbose && printf(verbose, "Number of (#hets, #homs, #nonSNPs): (%d,%d,%d)\n", length(idxsHet), length(idxsHom), length(idxsNonSNP)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Sanity checks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (nbrOfTCNs > 0L) { # Sanity check ys <- CT[idxsTCN] mu <- avgTCN(ys, na.rm=TRUE) dMu <- (mu - tcnMeans[jj]) if (abs(dMu) > tol) { str(list(nbrOfTCNs=nbrOfTCNs, tcnNbrOfLoci=segJJ$tcnNbrOfLoci, mu=mu, tcnMean=tcnMeans[jj], dMu=dMu, "abs(dMu)"=abs(dMu), "range(x[units])"=range(x[idxsTCN]))) stop(sprintf("INTERNAL ERROR: Incorrectly recalculated TCN mean for Segment #%d (chr %d, tcnId=%d, dhId=%d): %g != %g", jj, chr, tcnId, dhId, mu, tcnMeans[jj])) } } shouldHaveDHs <- (nbrOfDHs > 0L && !is.na(dhMeans[jj])) if (shouldHaveDHs) { # Sanity check ys <- rho[idxsDH] mu <- avgDH(ys, na.rm=TRUE) dMu <- (mu - dhMeans[jj]) if (abs(dMu) > tol) { str(list(nbrOfDHs=nbrOfDHs, dhNbrOfLoci=segJJ$dhNbrOfLoci, mu=mu, dhMean=dhMeans[jj], dMu=dMu, "abs(dMu)"=abs(dMu), "range(x[units])"=range(x[idxsDH]))) stop(sprintf("INTERNAL ERROR: Incorrectly recalculated DH mean for Segment #%d (chr %d, tcnId=%d, dhId=%d): %g != %g", jj, chr, tcnId, dhId, mu, dhMeans[jj])) } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap while preserving (#hets, #homs, #nonSNPs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Bootstrapping while preserving (#hets, #homs, #nonSNPs)") verbose && cat(verbose, "Number of bootstrap samples: ", B) if (!shouldHaveDHs) { idxsHetNonDH <- idxsDH } nHoms <- length(idxsHom) nNonSNPs <- length(idxsNonSNP) nHetNonDHs <- length(idxsHetNonDH) # Defaults idxsDHBB <- NULL # Bootstrap B times for (bb in seq_len(B)) { # (1) Bootstrap DHs if (shouldHaveDHs) { # (a) Resample heterozygous SNPs (=> resampled DH units) idxsDHBB <- resample(idxsDH, size=nbrOfDHs, replace=TRUE) # Extract signals rhoBB <- rho[idxsDHBB] # Calculate bootstrap mean M[jj,bb,"dh"] <- avgDH(rhoBB, na.rm=TRUE) } # if (shouldHaveDHs) # (2) Bootstrap TCNs if (nbrOfTCNs > 0L) { # (a) Resample non-DH hets SNPs idxsHetNonDHBB <- resample(idxsHetNonDH, size=nHetNonDHs, replace=TRUE) idxsHetBB <- c(idxsDHBB, idxsHetNonDHBB) # (a) Resample homozygous SNPs if (nbrOfHoms > 0) { idxsHomBB <- resample(idxsHom, size=nHoms, replace=TRUE) } else { idxsHomBB <- integer(0L) } # (b) Resample non-SNPs idxsNonSNPBB <- resample(idxsNonSNP, size=nNonSNPs, replace=TRUE) # (c) Resampled TCN units idxsTCNBB <- c(idxsHetBB, idxsHomBB, idxsNonSNPBB) # Sanity check if (.debug) { .stop_if_not(length(intersect(idxsDHBB, idxsHetNonDHBB)) == 0L) .stop_if_not(length(intersect(idxsHetBB, idxsHomBB)) == 0L) .stop_if_not(length(intersect(idxsHetBB, idxsNonSNPBB)) == 0L) .stop_if_not(length(intersect(idxsHomBB, idxsNonSNPBB)) == 0L) } # Extract signals CTBB <- CT[idxsTCNBB] # Calculate bootstrap mean M[jj,bb,"tcn"] <- avgTCN(CTBB, na.rm=TRUE) } # if (nbrOfTCNs > 0L) } # (for bb ...) verbose && exit(verbose) verbose && exit(verbose) } # for (jj ...) verbose && cat(verbose, "Bootstrapped segment mean levels") verbose && str(verbose, M) # Sanity check .stop_if_not(all(!is.nan(M))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Add (C1,C2) bootstrap mean levels # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Calculating (C1,C2) mean levels from (TCN,DH) mean levels") C1 <- (1-M[,,"dh", drop=FALSE]) * M[,,"tcn", drop=FALSE] / 2 C2 <- M[,,"tcn", drop=FALSE] - C1 M[,,"c1"] <- C1 M[,,"c2"] <- C2 verbose && str(verbose, M) # Sanity check .stop_if_not(dim(M)[1L] == nbrOfSegments) .stop_if_not(all(!is.nan(M))) # Not needed anymore C1 <- C2 <- NULL verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Bootstrap polar (alpha,radius,manhattan) for change points # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Calculating polar (alpha,radius,manhattan) for change points") C <- M[,,c("c1","c2"), drop=FALSE] # Calculate difference # (will be empty if nbrOfSegments == 1, but that's ok/intended) D <- C[-nbrOfSegments,,, drop=FALSE] - C[-1L,,, drop=FALSE] # Sanity check .stop_if_not(dim(D)[1L] == nbrOfSegments-1L) .stop_if_not(all(!is.nan(D))) C <- NULL # Not needed anymore # Allocate array dimnames <- dimnames(D) dimnames[[3L]] <- c("alpha", "radius", "manhattan", "d1", "d2") dim <- dim(D) dim[3L] <- length(dimnames[[3L]]) P <- array(NA_real_, dim=dim, dimnames=dimnames) .stop_if_not(dim(P)[1L] == nbrOfSegments-1L) if (nbrOfSegments >= 2L) { verbose && str(verbose, D) P[,,"alpha"] <- atan2(D[,,2], D[,,1]) # Changepoint angles in (0,2*pi) P[,,"radius"] <- sqrt(D[,,2]^2 + D[,,1]^2) P[,,"manhattan"] <- abs(D[,,2]) + abs(D[,,1]) P[,,"d1"] <- D[,,1] P[,,"d2"] <- D[,,2] } alpha <- D <- NULL # Not needed anymore verbose && cat(verbose, "Bootstrapped change points") verbose && str(verbose, P) # Sanity check .stop_if_not(dim(P)[1L] == nbrOfSegments-1L) .stop_if_not(all(!is.nan(P))) verbose && exit(verbose) boot <- list(segments=M, changepoints=P) # Cache? if (cache) { saveCache(boot, key=key, dirs=dirs) verbose && cat(verbose, "Saved results to cache.") } verbose && exit(verbose) boot }, private=TRUE) # bootstrapSegmentsAndChangepoints() setMethodS3("findBootstrapSummaries", "PairedPSCBS", function(fit, what=c("segment", "changepoint"), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'what': what <- match.arg(what) if (what == "segment") { data <- getSegments(fit) } else if (what == "changepoint") { data <- getChangePoints(fit) } grep("^[^_]+_[^_]+$", colnames(data), value=TRUE) }, protected=TRUE) # findBootstrapSummaries() setMethodS3("hasBootstrapSummaries", "PairedPSCBS", function(fit, ...) { fields <- findBootstrapSummaries(fit, ...) (length(fields) > 0L) }) setMethodS3("clearBootstrapSummaries", "PairedPSCBS", function(fit, what=c("segment", "changepoint"), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'what': what <- unique(match.arg(what, several.ok=TRUE)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Clearing bootstrap summaries") whats <- what for (what in whats) { verbose && enter(verbose, sprintf("Clearing %ss", what)) fields <- findBootstrapSummaries(fit, what=what, ...) if (what == "segment") { data <- getSegments(fit) data <- data[,!is.element(colnames(data), fields)] fit$output <- data } else if (what == "changepoint") { data <- getChangePoints(fit) data <- data[,!is.element(colnames(data), fields)] fit$changepoints <- data } # Sanity check fields <- findBootstrapSummaries(fit, what=what, ...) .stop_if_not(length(fields) == 0L) data <- fields <- NULL # Not needed anymoew verbose && exit(verbose) } # for (what ...) verbose && exit(verbose) fit }, protected=TRUE) # clearBootstrapSummaries() ############################################################################## # HISTORY # 2013-10-22 # o SPEEDUP: Added argument 'cache' to bootstrapSegmentsAndChangepoints(), # which caches the results to file if cache=TRUE. # 2013-10-21 # o Added find-, has- and clearBootstrapSummaries(). # o Added argument 'what' to bootstrapTCNandDHByRegion(). # o BUG FIX: The new bootstrapSegmentsAndChangepoints() would give # "Error in D[, , 2] : incorrect number of dimensions" if bootstrapping # was done on a single change point (==two segments). # 2013-10-20 # o Now utilizing new getChangePoints(). # o Now calculating change-point angles in (0,2*pi) using atan2(). # o Added bootstrapSegmentsAndChangepoints(), which was extract from # internal code of bootstrapTCNandDHByRegion(). The latter now # utilizes the former. # o BUG FIX: bootstrapTCNandDHByRegion() did not identify segment # "splitters" as intended. This has had no impact on the results. # 2013-04-23 # o SPEEDUP: Made bootstrapTCNandDHByRegion() much faster by adding # use.names=FALSE to two internal unlist() statements. # 2013-04-22 # o Added argument 'probs' to bootstrapTCNandDHByRegion(). # 2013-04-09 # o Added Rdoc comments. # 2013-02-09 # o BUG FIX: bootstrapTCNandDHByRegion() for PairedPSCBS did not bootstrap # for all available loci when calculating total CNs statistics, iff # the segment had been called run-of-homozygosity (ROH). # Thanks to Oscar Rueda at the Cancer Research UK Cambridge Institute # for reporting on this. # 2013-02-07 # o Improved some verbose outputs of bootstrapTCNandDHByRegion(). # 2013-01-15 # o Now bootstrapTCNandDHByRegion() uses the params$avgTCN and params$avgDH # estimators, iff given. # 2012-11-05 # o GENERALIZATION: Now bootstrapTCNandDHByRegion() works for more "flavors", # including the default ('tcn') used by segmentByNonPairedPSCBS(). # 2012-09-20 # o SPEEDUP: By default bootstrapTCNandDHByRegion() for PairedPSCBS no # longer do sanity checks within the bootstrap loop. This significantly # speed up the method. To run checks, use argument .debug=TRUE. # 2012-02-26 # o BUG FIX: bootstrapTCNandDHByRegion() for PairedPSCBS would resample # from a subset of the intended TCNs, iff the DH mean was non-finite # while there were still heterozygous SNPs. This introduced a bias in # the estimates, which was neglectable for large segments, but for very # small segments (a few loci) it could be relatively large. # 2012-02-24 # o BUG FIX: bootstrapTCNandDHByRegion(..., force=TRUE) for PairedPSCBS # would give an error iff previous bootstrap estimates already existed. # o Added argument 'force' to bootstrapTCNandDHByRegion(). # 2011-11-26 # o Now bootstrapTCNandDHByRegion() for PairedPSCBS preserves NAs for DH # and (C1,C2) quantiles, if the DH mean level is NA, which can happen # when a segment is called ROH. # o An internal sanity check of bootstrapTCNandDHByRegion() for PairedPSCBS # would give an error if DH mean levels had been set to NA for segments # called ROH. # 2011-11-24 # o BUG FIX: bootstrapTCNandDHByRegion() for PairedPSCBS would give # an error, if a segment did not have any TCN signals, which can # occur when known segments are specified for Paired PSCBS. # 2011-08-08 # o Moved the sanity checks that tests the TCN and DH "segRows" from the # bootstrapTCNandDHByRegion() to segmentByPairedPSCBS(). This is the # first step to fix a failure in the sanity checks that could happend # iff one first run dropSegmentationOutliers(). # 2011-06-14 # o Updated code to recognize new column names. # 2011-05-29 # o Renamed options to reflect new package name. # 2010-12-03 # o BUG FIX: In rare cases the bootstrap sanity checks can indeed produce # an invalid 'range', more precisely where (range[,2] >= range[,1]) is # not true. This can happen if there is no variation in the bootstrap # estimates. Beause of this we allow for some tolerance. # 2010-12-02 # o Now bootstrapTCNandDHByRegion() uses option # "psCBS/sanityChecks/tolerance". # 2010-12-01 # o BUG FIX: bootstrapTCNandDHByRegion() did not always exclude the correct # loci. # 2010-11-27 # o BUG FIX: bootstrapTCNandDHByRegion() would incorrectly include # non-polymorphic loci in the set of homozygous SNPs during resampling. # 2010-11-26 # o BUG FIX: The statistical sanity checks of the bootstrap estimates would # give an error when only single-sided bootstrap confidence interval was # calculated. # 2010-11-23 # o ROBUSTNESS: Added more sanity checks to bootstrapTCNandDHByRegion(). # o WORKAROUND: The precision of the mean levels of DNAcopy::segment() # is not great enough to always compare it to that of R's estimates. # o BUG FIX: bootstrapTCNandDHByRegion() would give an error if there was # only one segment. # 2010-11-22 # o BUG FIX: The DH segmentation and bootstrap incorrectly included # missing values, when subseting. # o BUG FIX: Some sanity checks were incorrect. # o BUG FIX: bootstrapTCNandDHByRegion() for PairedPSCBS would not correctly # detect if bootstrap results are already available. # 2010-11-21 # o Added argument 'seed'. # o Added bootstrapTCNandDHByRegion() for PairedPSCBS. # o Created from PairedPSCBS.BOOT.R. ############################################################################## PSCBS/R/PSCBS.IO.R0000644000176200001440000001105114564051545012637 0ustar liggesusers###########################################################################/** # @set "class=PSCBS" # @RdocMethod writeSegments # # @title "Writes the table of segments to file" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{name, tags}{Name and optional tags part of the filename}. # \item{path}{The directory where the file will be written.} # \item{addHeader}{If @TRUE, header comments are written.} # \item{createdBy}{A header comment of whom created the file.} # \item{splitters}{If @TRUE, each chromosome is separated by a row # of missing values.} # \item{overwrite, skip}{If an output file already exists, these # arguments specifies what should happen.} # \item{...}{Additional arguments pass to \code{getSegments()}.} # } # # \value{ # Returns the pathname of the the file written. # } # # @author "HB" # # \seealso{ # Utilizes @seemethod "getSegments". # @seeclass. # } # # @keyword internal #*/########################################################################### setMethodS3("writeSegments", "PSCBS", function(fit, name=getSampleName(fit), tags=NULL, ext="tsv", path=NULL, addHeader=TRUE, createdBy=NULL, sep="\t", nbrOfDecimals=4L, splitters=FALSE, overwrite=FALSE, skip=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'name' and 'tags': name <- Arguments$getCharacter(name) tags <- Arguments$getCharacters(tags) # Argument 'ext': ext <- Arguments$getCharacter(ext) # Arguments 'path': path <- Arguments$getWritablePath(path) # Argument 'nbrOfDecimals': nbrOfDecimals <- Arguments$getInteger(nbrOfDecimals) fullname <- paste(c(name, tags), collapse=",") filename <- sprintf("%s.%s", fullname, ext) pathname <- Arguments$getWritablePathname(filename, path=path, mustNotExist=(!overwrite && !skip)) # File already exists? if (isFile(pathname)) { # Skip? if (skip) { return(pathname) } # Overwrite! file.remove(pathname) } # Write to temporary file pathnameT <- pushTemporaryFile(pathname) sampleName <- getSampleName(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getSegments(fit, ..., splitters=splitters) # Round of floating points if (!is.null(nbrOfDecimals)) { cols <- tolower(colnames(data)) isInt <- (regexpr("chromosome|start|end|nbrofloci", cols) != -1) cols <- which(isInt) for (cc in cols) { values <- data[[cc]] if (is.double(values)) { values <- round(values, digits=0) data[[cc]] <- values } } # for (key ...) cols <- tolower(colnames(data)) isInt <- (regexpr("chromosome|start|end|nbrofloci", cols) != -1) isLog <- (regexpr("call", cols) != -1) isDbl <- (!isInt & !isLog) cols <- which(isDbl) for (kk in cols) { values <- data[[kk]] if (is.double(values)) { values <- round(values, digits=nbrOfDecimals) data[[kk]] <- values } } # for (key ...) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Build header # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (addHeader) { # sigmaDelta <- estimateStandardDeviation(fit, method="diff") sigmaDelta <- NA # sigmaResiduals <- estimateStandardDeviation(fit, method="res") createdOn <- format(Sys.time(), format="%Y-%m-%d %H:%M:%S %Z") hdr <- c( name=name, tags=tags, fullname=fullname, segmentationMethod=sprintf("segment() of %s", attr(fit, "pkgDetails")), nbrOfLoci=nbrOfLoci(fit), nbrOfSegments=nbrOfSegments(fit), joinSegments=fit$params$joinSegments, # signalType=getSignalType(fit), sigmaDelta=sprintf("%.4f", sigmaDelta), # sigmaResiduals=sprintf("%.4f", sigmaResiduals), createdBy=createdBy, createdOn=createdOn, nbrOfDecimals=nbrOfDecimals, nbrOfColumns=ncol(data), columnNames=paste(colnames(data), collapse=", "), columnClasses=paste(sapply(data, FUN=function(x) class(x)[1]), collapse=", ") ) bfr <- paste("# ", names(hdr), ": ", hdr, sep="") cat(file=pathnameT, bfr, sep="\n") } # if (addHeader) write.table(file=pathnameT, data, append=TRUE, quote=FALSE, sep=sep, row.names=FALSE, col.names=TRUE) pathname <- popTemporaryFile(pathnameT) pathname }) # writeSegments() PSCBS/R/CBS.CALL.R0000644000176200001440000011401114564051545012600 0ustar liggesusers###########################################################################/** # @set "class=CBS" # @RdocMethod callGainsAndLosses # # @title "Calls gains and losses" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{adjust}{A positive scale factor adjusting the sensitivity of the # caller, where a value less (greater) than 1.0 makes the caller # less (more) sensitive.} # \item{method}{A @character string specifying the calling algorithm to use.} # \item{...}{Additional/optional arguments used to override the default # parameters used by the caller.} # } # # \value{ # Returns a @see "PSCBS::CBS" object where @logical columns # 'lossCall' and 'gainCall' have been appended to the segmentation table. # } # # \section{The UCSF caller}{ # If \code{method == "ucsf-mad"}, then segments are called using [1], i.e. # a segment is called gained or lost if its segment level is # at least two standard deviations away from the median segment level # on Chr1-22, where standard deviation is estimated using MAD. # Then same is done for \code{method == "ucsf-dmad"} with the difference # that the standard deviation is estimated using a robust first order # variance estimator. # } # # \examples{ # @include "../incl/segmentByCBS.Rex" # @include "../incl/segmentByCBS,calls.Rex" # } # # @author "HB" # # \references{ # [1] Fridlyand et al. \emph{Breast tumor copy number aberration # phenotypes and genomic instability}, BMC Cancer, 2006. \cr # } # # \seealso{ # @seemethod "callAmplifications". # @seemethod "callOutliers". # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("callGainsAndLosses", "CBS", function(fit, adjust=1.0, method=c("ucsf-mad", "ucsf-dmad"), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'adjust': adjust <- Arguments$getDouble(adjust, range=c(0, Inf)) # Argument 'method': method <- match.arg(method) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments that are gained or lost") userArgs <- list(...) params <- list() # Allocate calls naValue <- NA nbrOfSegments <- nbrOfSegments(fit, splitters=TRUE) segs <- getSegments(fit, splitters=TRUE) nbrOfRows <- nrow(segs) gainCalls <- lossCalls <- rep(naValue, times=nbrOfRows) verbose && cat(verbose, "Number of segments to be called: ", nbrOfSegments) verbose && cat(verbose, "Call method: ", method) if (is.element(method, c("ucsf-mad", "ucsf-dmad"))) { # Default arguments args <- list( chromosomes = intersect(getChromosomes(fit), c(0L, 1:22)), scale = 2.0 ) # Override by (optional) user-specified arguments for (key in names(userArgs)) { args[[key]] <- userArgs[[key]] } # Extract arguments chromosomes <- args$chromosomes scale <- args$scale # Argument check chromosomes <- Arguments$getVector(chromosomes, lengths=c(1,Inf)) scale <- Arguments$getDouble(scale, range=c(0,Inf)) # Estimate the whole-genome standard deviation of the TCNs if (method == "ucsf-mad") { sigma <- estimateStandardDeviation(fit, chromosomes=chromosomes, method="res", estimator="mad") sigmaKey <- "sigmaMAD" } else if (method == "ucsf-dmad") { sigma <- estimateStandardDeviation(fit, chromosomes=chromosomes, method="diff", estimator="mad") sigmaKey <- "sigmaDelta" } else { stop("INTERNAL ERROR: Unknown method: ", method) } # Sanity check sigma <- Arguments$getDouble(sigma, range=c(0,Inf)) # Calculate the threshold tau <- scale * sigma # Make more or less sensitive tau <- adjust * tau verbose && cat(verbose, "Call parameters:") verbose && str(verbose, list(sigma=sigma, scale=scale, adjust=adjust)) # Calculate segment levels using the median estimator fitT <- updateMeans(fit, avg="median") segsT <- getSegments(fitT, splitters=TRUE) mu <- segsT$mean fitT <- segsT <- NULL # Not needed anymore # The median segmented level muR <- median(mu, na.rm=TRUE) # The threshold for losses tauLoss <- muR - tau # The threshold for gains tauGain <- muR + tau # Call lossCalls <- (mu <= tauLoss) # Losses gainCalls <- (mu >= tauGain) # Gains # Call parameters used params$method <- method params$adjust <- adjust params[[sigmaKey]] <- sigma params$scale <- scale params$muR <- muR params$tau <- tau params$tauLoss <- tauLoss params$tauGain <- tauGain } verbose && cat(verbose, "Number of called segments: ", length(lossCalls)) # Sanity check .stop_if_not(length(lossCalls) == nbrOfRows) .stop_if_not(length(gainCalls) == nbrOfRows) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update 'DNAcopy' object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (a) segmentation table segs <- getSegments(fit, splitters=TRUE) segs$lossCall <- lossCalls segs$gainCall <- gainCalls fit$output <- segs # (b) parameters allParams <- fit$params if (is.null(allParams)) { allParams <- list() } allParams$callGainsAndLosses <- params fit$params <- allParams verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return the updated 'CBS' object. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit }, private=TRUE) # callGainsAndLosses() ###########################################################################/** # @RdocMethod callAmplifications # # @title "Calls (focal) amplifications" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{adjust}{A positive scale factor adjusting the sensitivity of the # caller, where a value less (greater) than 1.0 makes the caller # less (more) sensitive.} # \item{maxLength}{A @double scalar specifying the maximum length of a segment # in order for it to be considered a focal amplification.} # \item{method}{A @character string specifying the calling algorithm to use.} # \item{...}{Additional/optional arguments used to override the default # parameters used by the caller.} # \item{verbose}{@see "R.utils::Verbose".} # } # # \value{ # Returns a @see "PSCBS::CBS" object where @logical column # 'amplificationCall' has been appended to the segmentation table. # } # # \section{The UCSF caller}{ # If \code{method == "ucsf-exp"}, then segments are called using [1], i.e. # a segment is called an amplification if ... # } # # @author # # \references{ # [1] Fridlyand et al. \emph{Breast tumor copy number aberration # phenotypes and genomic instability}, BMC Cancer, 2006. \cr # } # # \seealso{ # @seemethod "callGainsAndLosses". # @seemethod "callOutliers". # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("callAmplifications", "CBS", function(fit, adjust=1.0, maxLength=20e6, method=c("ucsf-exp"), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'adjust': adjust <- Arguments$getDouble(adjust, range=c(0, Inf)) # Argument 'maxLength': maxLength <- Arguments$getDouble(maxLength, range=c(0, Inf)) # Argument 'method': method <- match.arg(method) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments that are amplified") userArgs <- list(...) params <- list() # Allocate calls naValue <- NA nbrOfSegments <- nbrOfSegments(fit, splitters=TRUE) calls <- rep(naValue, times=nbrOfSegments) verbose && cat(verbose, "Number of segments to be called: ", nbrOfSegments) verbose && cat(verbose, "Call method: ", method) if (method == "ucsf-exp") { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Default arguments args <- list( minLevel = 0.0, lambda = 1.0, degree = 3 ) # Override by (optional) user-specified arguments for (key in names(userArgs)) { args[[key]] <- userArgs[[key]] } # Extract arguments minLevel <- args$minLevel lambda <- args$lambda degree <- args$degree # Validate arguments minLevel <- Arguments$getDouble(minLevel, range=c(-Inf, Inf)) lambda <- Arguments$getDouble(lambda, range=c(0, Inf)) degree <- Arguments$getDouble(degree, range=c(1, Inf)) verbose && cat(verbose, "Call parameters:") verbose && str(verbose, list(minLevel=minLevel, lambda=lambda, degree=degree)) segs <- getSegments(fit, splitters=TRUE) verbose && cat(verbose, "Segments:") verbose && str(verbose, segs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Rule #1: Only consider segments that are short enough # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # The lengths (in bp) of the segments start <- segs$start end <- segs$end length <- end - start ## + 1L keep1 <- (length <= maxLength) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Rule #2: Only consider segments that have a mean level # that is large enough. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # The mean levels of the segments mu <- segs$mean keep2 <- (mu >= minLevel) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Rule #3: Only consider segments that have a mean level # that is much larger than either of the # flanking segments. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # The mean levels of the flanking segments muL <- c(NA_real_, mu[-nbrOfSegments]) muR <- c(mu[-1], NA_real_) # The difference in mean levels to the flanking segments deltaL <- mu - muL deltaR <- mu - muR # The maximum difference to either of the flanking segments delta <- pmax(deltaL, deltaR, na.rm=TRUE) # The threshold for calling segments amplified tau <- exp(-lambda * mu^degree) # Make more or less sensitive tau <- adjust * tau keep3 <- (delta >= tau) # Amplification calls calls <- (keep1 & keep2 & keep3) # Call parameters used params$method <- method params$adjust <- adjust params$maxLength <- maxLength params$minLevel <- minLevel params$lambda <- lambda params$degree <- degree params$tau <- tau } verbose && cat(verbose, "Number of called segments: ", length(calls)) # Sanity check .stop_if_not(length(calls) == nbrOfSegments) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update 'DNAcopy' object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (a) segmentation table segs <- getSegments(fit, splitters=TRUE) segs$amplificationCall <- calls fit$output <- segs # (b) parameters allParams <- fit$params if (is.null(allParams)) { allParams <- list() } allParams$callAmplifications <- params fit$params <- allParams verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return the updated 'CBS' object. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit }, private=TRUE) # callAmplifications() ###########################################################################/** # @RdocMethod callOutliers # # @title "Calls outliers" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{adjust}{A positive scale factor adjusting the sensitivity of the # caller, where a value less (greater) than 1.0 makes the caller # less (more) sensitive.} # \item{method}{A @character string specifying the calling algorithm to use.} # \item{...}{Additional/optional arguments used to override the default # parameters used by the caller.} # } # # \value{ # Returns a @see "PSCBS::CBS" object where @logical columns # 'negOutlierCall' and 'posOutlierCall' have been appended # to the segmentation table. # } # # \section{The UCSF caller}{ # If \code{method == "ucsf-mad"}, then loci are called using [1] # "Finally, to identify single technical or biological outliers such # as high level amplifications, the presence of the outliers within # a segment was allowed by assigning the original observed log2ratio # to the clones for which the observed values were more than four # tumor-specific MAD away from the smoothed values." [1; Suppl. Mat.] # } # # @author "HB" # # \references{ # [1] Fridlyand et al. \emph{Breast tumor copy number aberration # phenotypes and genomic instability}, BMC Cancer, 2006. \cr # } # # \seealso{ # @seemethod "callGainsAndLosses". # @seemethod "callAmplifications". # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("callOutliers", "CBS", function(fit, adjust=1.0, method=c("ucsf-mad"), ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'adjust': adjust <- Arguments$getDouble(adjust, range=c(0, Inf)) # Argument 'method': method <- match.arg(method) userArgs <- list(...) params <- list() # Allocate calls nbrOfLoci <- nbrOfLoci(fit) naValue <- NA negOutlierCall <- posOutlierCall <- rep(naValue, times=nbrOfLoci) if (method == "ucsf-mad") { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Default arguments args <- list( scale = 4.0 ) # Override by (optional) user-specified arguments for (key in names(userArgs)) { args[[key]] <- userArgs[[key]] } # Extract arguments scale <- args$scale # Validate arguments scale <- Arguments$getDouble(scale, range=c(0, Inf)) # Genomic annotations data <- getLocusData(fit) chromosome <- data$chromosome x <- data$x # CN signals y <- data[,3] # Segmented CN signals yS <- extractSegmentMeansByLocus(fit) # CN residuals (relative to segment means) dy <- y - yS segs <- getSegments(fit, splitters=TRUE) # Allocate per-segment SD estimates nbrOfSegments <- nbrOfSegments(fit) naValue <- NA_real_ sds <- rep(naValue, times=nbrOfSegments) naValue <- NA_real_ for (ss in seq_len(nbrOfSegments)) { seg <- segs[ss,] # Identify loci in current segment idxs <- which(seg$chromosome == chromosome & seg$start <= x & x <= seg$end) # Sanity check idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) # Extract CN residuals dySS <- dy[idxs] # Calculate MAD for segment sdSS <- mad(dySS, na.rm=TRUE) # Threshold for outliers tau <- scale * sdSS # Make more or less sensitive tau <- adjust * tau # Call outliers naValue <- NA callsSS <- rep(naValue, times=length(dySS)) callsSS[-tau <= dySS & dySS <= +tau] <- 0L callsSS[dySS > +tau] <- +1L callsSS[dySS < -tau] <- -1L # Record negOutlierCall[idxs] <- (callsSS < 0L) posOutlierCall[idxs] <- (callsSS > 0L) sds[ss] <- sdSS } # for (ss ...) params$method <- method params$adjust <- adjust params$scale <- scale params$sds <- sds } # Sanity check .stop_if_not(length(negOutlierCall) == nbrOfLoci) .stop_if_not(length(posOutlierCall) == nbrOfLoci) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update 'DNAcopy' object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (a) segmentation table data <- getLocusData(fit) data$negOutlierCall <- negOutlierCall data$posOutlierCall <- posOutlierCall fit$data <- data # (b) parameters allParams <- fit$params if (is.null(allParams)) { allParams <- list() } allParams$callOutliers <- params fit$params <- allParams # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return the updated 'CBS' object. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit }, private=TRUE) # callOutliers() setMethodS3("extractCallsByLocus", "CBS", function(fit, ...) { # Extract locus data data <- getLocusData(fit, ...) nbrOfLoci <- nrow(data) # Extract segment data segs <- getSegments(fit, splitters=TRUE) # Identify segment calls callCols <- grep("Call$", colnames(segs)) nbrOfCalls <- length(callCols) chromosome <- data$chromosome x <- data$x y <- data[,3] # Allocate locus calls naValue <- NA callsL <- matrix(naValue, nrow=nbrOfLoci, ncol=nbrOfCalls) colnames(callsL) <- colnames(segs)[callCols] callsL <- as.data.frame(callsL) # For each segment... for (ss in seq_len(nrow(segs))) { seg <- segs[ss,] idxs <- which(chromosome == seg$chromosome & seg$start <= x & x <= seg$end) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) # Sanity check ## .stop_if_not(length(idxs) == seg$nbrOfLoci) callsSS <- seg[callCols] for (cc in seq_len(nbrOfCalls)) { callsL[idxs,cc] <- callsSS[,cc] } } # for (ss ...) # The calls for loci that have missing annotations or observations, # should also be missing, i.e. NA. nok <- (is.na(chromosome) | is.na(x) | is.na(y)) callsL[nok,] <- NA # Sanity check .stop_if_not(nrow(callsL) == nbrOfLoci) .stop_if_not(ncol(callsL) == nbrOfCalls) callsL }, private=TRUE) # extractCallsByLocus() ###########################################################################/** # @RdocMethod getCallStatistics # # @title "Calculates various call statistics per chromosome" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{regions}{An optional @data.frame with columns "chromosome", # "start", and "end" specifying the regions of interest to calculate # statistics for. If @NULL, all of the genome is used.} # \item{shrinkRegions}{If @TRUE, regions are shrunk to the support of # the data.} # \item{...}{Not used.} # \item{verbose}{@see "R.utils::Verbose".} # } # # \value{ # Returns a CxK @data.frame, where C is the number of regions that # meet the criteria setup by argument \code{regions} # and (K-4)/2 is the number of call types. # The first column is the chromosome index, the second and the third # are the first and last position, and the fourth the length # (=last-first+1) of the chromosome. # The following columns contains call summaries per chromosome. # For each chromosome and call type, the total length of such calls # on that chromosome is reported together how large of a fraction # of the chromosome such calls occupy. # } # # \details{ # The estimators implemented here are based solely on the # segmentation results, which is very fast. # In the original proposal by Fridlyand et al. [1], the authors # estimates the parameters by converting segment-level calls back # to locus-level calls and there do the calculations. # The difference between the two approaches should be minor, # particularly for large density arrays. # } # # @author "HB" # # \references{ # [1] Fridlyand et al. \emph{Breast tumor copy number aberration # phenotypes and genomic instability}, BMC Cancer, 2006. \cr # } # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("getCallStatistics", "CBS", function(fit, regions=NULL, shrinkRegions=TRUE, ..., verbose=FALSE) { # To please R CMD check, cf. subset() chromosome <- NULL; rm(list="chromosome") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'regions': if (is.null(regions)) { # Get chromosome lengths regions <- getChromosomeRanges(fit)[,c("chromosome", "start", "end")] } regions <- as.data.frame(regions) .stop_if_not(all(is.element(c("chromosome", "start", "end"), colnames(regions)))) .stop_if_not(!any(duplicated(regions$chromosome))) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calculating call statistics") segs <- getSegments(fit, splitters=FALSE) callTypes <- grep("Call$", colnames(segs), value=TRUE) verbose && cat(verbose, "Call types: ", hpaste(callTypes)) if (length(callTypes) == 0) { stop("Cannot calculate call statistics. No calls have been made.") } verbose && cat(verbose, "Regions of interest:") verbose && str(verbose, regions) verbose && enter(verbose, "Filtering out segments within the requested regions") # Filter out segments within the requested regions segsT <- NULL verbose && cat(verbose, "Number of segments (before): ", nrow(segs)) for (rr in seq_len(nrow(regions))) { regionRR <- regions[rr,] chrRR <- regionRR[,"chromosome"] startRR <- regionRR[,"start"] endRR <- regionRR[,"end"] if (is.na(chrRR) || is.na(startRR) || is.na(endRR)) { next } verbose && enter(verbose, sprintf("Region #%d of %d", rr, nrow(regions))) # Select regions that (at least) overlapping with the region segsRR <- subset(segs, chromosome == chrRR & start <= endRR & end >= startRR) verbose && cat(verbose, "Number of segments within region: ", nrow(segsRR)) # Special case if (nrow(segsRR) == 0) { segsRR <- segs[1,][NA,] segsRR$chromosome <- chrRR segsRR$start <- startRR segsRR$end <- endRR segsRR$nbrOfLoci <- 0L } if (shrinkRegions) { range <- range(c(segsRR$start, segsRR$end), na.rm=TRUE) startRR <- max(startRR, range[1], na.rm=TRUE) endRR <- min(endRR, range[2], na.rm=TRUE) regions[rr,"end"] <- endRR regions[rr,"start"] <- startRR } # Adjust ranges segsRR$start[segsRR$start < startRR] <- startRR segsRR$end[segsRR$end > endRR] <- endRR segsRR$fullLength <- endRR - startRR ## + 1L segsT <- rbind(segsT, segsRR) verbose && exit(verbose) } # for (rr ...) segs <- segsT # Order by chromosome o <- order(segs$chromosome) segs <- segs[o,] verbose && cat(verbose, "Number of segments (after): ", nrow(segs)) verbose && str(verbose, segs) verbose && exit(verbose) verbose && enter(verbose, "Calculating total length per call and chromosome") # Sum length of calls per type and chromosome segs$length <- segs[,"end"] - segs[,"start"] ## + 1L res <- lapply(callTypes, FUN=function(type) { coeffs <- as.integer(segs[,type]) lens <- coeffs * segs$length lens <- by(lens, INDICES=segs$chromosome, FUN=sum, na.rm=TRUE) as.vector(lens) }) names(res) <- gsub("Call$", "Length", callTypes) res1 <- as.data.frame(res) verbose && str(verbose, res) verbose && exit(verbose) # Extract selected regions idxs <- match(unique(segs$chromosome), regions$chromosome) regionsT <- regions[idxs,] # Sanity check .stop_if_not(nrow(regionsT) == nrow(res1)) verbose && enter(verbose, "Calculating fractions per region") # Calculate lengths regionsT$length <- regionsT[,"end"] - regionsT[,"start"] ## + 1L .stop_if_not(all(regionsT$length >= 0)) res2 <- res1 / regionsT[,"length"] names(res2) <- gsub("Call$", "Fraction", callTypes) verbose && exit(verbose) res3 <- cbind(res1, res2) res <- regionsT if (nrow(res3) > 0) { res <- cbind(res, res3) } rownames(res) <- NULL res <- cbind(label=I(sprintf("chr%d", res[,"chromosome"])), res) # Sanity checks resT <- res[,grep("Fraction", colnames(res))] for (key in colnames(resT)) { rho <- resT[,key] .stop_if_not(all(rho >= 0, na.rm=TRUE)) .stop_if_not(all(rho <= 1, na.rm=TRUE)) } .stop_if_not(nrow(res) == nrow(regions)) verbose && str(verbose, res) verbose && exit(verbose) res }, protected=TRUE) # getCallStatistics() ###########################################################################/** # @RdocMethod getFractionOfGenomeLost # @aliasmethod getFractionOfGenomeGained # @aliasmethod getFractionOfGenomeAltered # @aliasmethod getFGL # @aliasmethod getFGG # @aliasmethod getFGA # # @title "Calculates the fraction of the genome lost, gained, or aberrant either way" # # \description{ # @get "title" (in sense of total copy numbers), # using definitions closely related to those presented in [1]. # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a @double in [0,1]. # } # # @author "HB" # # \references{ # [1] Fridlyand et al. \emph{Breast tumor copy number aberration # phenotypes and genomic instability}, BMC Cancer, 2006. \cr # } # # \seealso{ # Internally, @seemethod "getCallStatistics" is used. # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("getFractionOfGenomeLost", "CBS", function(fit, ...) { stats <- getCallStatistics(fit, ...) mean(stats$lossFraction, na.rm=TRUE) }, protected=TRUE) setMethodS3("getFractionOfGenomeGained", "CBS", function(fit, ...) { stats <- getCallStatistics(fit, ...) mean(stats$gainFraction, na.rm=TRUE) }, protected=TRUE) setMethodS3("getFractionOfGenomeAltered", "CBS", function(fit, ...) { getFractionOfGenomeLost(fit, ...) + getFractionOfGenomeGained(fit, ...) }, protected=TRUE) # Shortcuts setMethodS3("getFGL", "CBS", function(fit, ...) { getFractionOfGenomeLost(fit, ...) }, protected=TRUE) setMethodS3("getFGG", "CBS", function(fit, ...) { getFractionOfGenomeGained(fit, ...) }, protected=TRUE) setMethodS3("getFGA", "CBS", function(fit, ...) { getFractionOfGenomeAltered(fit, ...) }, protected=TRUE) setMethodS3("isWholeChromosomeGained", "CBS", function(fit, minFraction=0.99, ...) { # Argument 'minFraction': minFraction <- Arguments$getDouble(minFraction, range=c(0,1)) stats <- getCallStatistics(fit, ...) calls <- stats$gainFraction if (is.null(calls)) { return(rep(NA, times=nbrOfChromosomes(fit))) } res <- (calls >= minFraction) names(res) <- stats$chromosome attr(res, "minFraction") <- minFraction res }, protected=TRUE) # isWholeChromosomeGained() setMethodS3("isWholeChromosomeLost", "CBS", function(fit, minFraction=0.99, ...) { # Argument 'minFraction': minFraction <- Arguments$getDouble(minFraction, range=c(0,1)) stats <- getCallStatistics(fit, ...) calls <- stats$lossFraction if (is.null(calls)) { return(rep(NA, times=nbrOfChromosomes(fit))) } res <- (calls >= minFraction) names(res) <- stats$chromosome attr(res, "minFraction") <- minFraction res }, protected=TRUE) # isWholeChromosomeLost() setMethodS3("nbrOfLosses", "CBS", function(fit, ...) { stats <- getSegments(fit, ...) calls <- stats$lossCall if (is.null(calls)) { return(NA_integer_) } sum(calls, na.rm=TRUE) }, protected=TRUE) setMethodS3("nbrOfGains", "CBS", function(fit, ...) { stats <- getSegments(fit, ...) calls <- stats$gainCall if (is.null(calls)) { return(NA_integer_) } sum(calls, na.rm=TRUE) }, protected=TRUE) setMethodS3("nbrOfAmplifications", "CBS", function(fit, ...) { stats <- getSegments(fit, ...) calls <- stats$amplificationCall if (is.null(calls)) { return(NA_integer_) } sum(calls, na.rm=TRUE) }, protected=TRUE) setMethodS3("getCallStatisticsByArms", "CBS", function(fit, genomeData, ...) { # To please/trick R CMD check chromosome <- x <- NULL; rm(list=c("chromosome", "x")) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'genomeData': genomeData <- as.data.frame(genomeData) # Subset 'regions' by chromosomes segmented keep <- is.element(genomeData$chromosome, getChromosomes(fit)) genomeData <- genomeData[keep,] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # p-arm # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - regions <- getChromosomeRanges(fit) regions$end <- genomeData$centroStart regions$start <- pmin(regions$start, regions$end) # Shrink regions for (rr in seq_len(nrow(regions))) { chr <- regions[rr,"chromosome"] x0 <- regions[rr,"start"] x1 <- regions[rr,"end"] xs <- subset(fit$data, chromosome == chr & x0 <= x & x <= x1)$x if (length(xs) > 0) { range <- range(xs, na.rm=TRUE) x0 <- max(c(x0, range[1]), na.rm=TRUE) x1 <- min(c(x1, range[2]), na.rm=TRUE) regions[rr,"start"] <- x0 regions[rr,"end"] <- x1 } } # for (rr ...) regions[,"length"] <- regions[,"end"] - regions[,"start"] ## + 1L callStats <- getCallStatistics(fit, regions=regions) callStats$label <- sprintf("%sp", callStats$label) callStatsP <- callStats # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # q-arm # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - regions <- getChromosomeRanges(fit) regions$start <- genomeData$centroEnd regions$end <- pmax(regions$end, regions$start) # Shrink regions for (rr in seq_len(nrow(regions))) { chr <- regions[rr,"chromosome"] x0 <- regions[rr,"start"] x1 <- regions[rr,"end"] xs <- subset(fit$data, chromosome == chr & x0 <= x & x <= x1)$x if (length(xs) > 0) { range <- range(xs, na.rm=TRUE) x0 <- max(c(x0, range[1]), na.rm=TRUE) x1 <- min(c(x1, range[2]), na.rm=TRUE) regions[rr,"start"] <- x0 regions[rr,"end"] <- x1 } } # for (rr ...) regions[,"length"] <- regions[,"end"] - regions[,"start"] ## + 1L callStats <- getCallStatistics(fit, regions=regions) callStats$label <- sprintf("%sq", callStats$label) callStatsQ <- callStats # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Merge # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - callStats <- rbind(callStatsP, callStatsQ) # Not needed anymore regions <- callStatsP <- callStatsQ <- NULL # Reorder o <- order(callStats$chromosome, callStats$start) callStats <- callStats[o,] callStats }, protected=TRUE) # getCallStatisticsByArms() setMethodS3("callArms", "CBS", function(fit, genomeData, minFraction=0.95, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'minFraction': minFraction <- Arguments$getDouble(minFraction, range=c(0,1)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # p-arm # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - callStats <- getCallStatisticsByArms(fit, genomeData=genomeData) callTypes <- grep("Fraction", colnames(callStats), value=TRUE) callTypes <- gsub("Fraction", "", callTypes) keys <- sprintf("%sFraction", callTypes) rhos <- callStats[,keys] calls <- (rhos >= minFraction) colnames(calls) <- sprintf("%sCall", callTypes) callStats <- cbind(callStats, calls) callStats }, protected=TRUE) # callArms() ###########################################################################/** # @RdocMethod mergeNonCalledSegments # # @title "Merge neighboring segments that are not called" # # \description{ # @get "title" # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # \item{verbose}{@see "R.utils::Verbose".} # } # # \value{ # Returns an object of the same class # with the same of fewer number of segments. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("mergeNonCalledSegments", "CBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Merging neighboring segments that are not called") # Identify call columns segs <- getSegments(fit, splitters=TRUE) keep <- grep("Call$", colnames(segs)) nbrOfCalls <- length(keep) # Sanity check .stop_if_not(nbrOfCalls > 0) chromosomes <- getChromosomes(fit) fitList <- list() for (cc in seq_along(chromosomes)) { chromosome <- chromosomes[cc] verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", cc, chromosome, length(chromosomes))) fitCC <- extractChromosome(fit, chromosome=chromosome) n0 <- nbrOfSegments(fitCC) # Until no more neighboring non-called segments exists while (TRUE) { segs <- getSegments(fitCC, splitters=TRUE) calls <- as.matrix(segs[,keep]) # Find two neighboring segments that are not called isCalled <- rowAnys(calls, na.rm=TRUE, useNames=FALSE) verbose && printf(verbose, "Number of segments not called: %d of %d\n", sum(!isCalled, na.rm=TRUE), length(isCalled)) notCalled <- which(!isCalled) delta <- diff(notCalled) left <- notCalled[which(delta == 1)[1]] # No more segments to merge? if (is.na(left)) { break } fitCC <- mergeTwoSegments(fitCC, left=left) } # while (...) n1 <- nbrOfSegments(fitCC) verbose && printf(verbose, "Number of segments merged: %d of %d\n", n0-n1, n0) fitList[[cc]] <- fitCC verbose && exit(verbose) } # for (cc ...) verbose && enter(verbose, "Building result") res <- Reduce(append, fitList) verbose && exit(verbose) verbose && exit(verbose) res }, protected=TRUE) # mergeNonCalledSegments() setMethodS3("estimateDeltaCN", "CBS", function(fit, flavor=c("density(TCN)", "density(dTCN)", "dTCN"), adjust=0.3, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'adjust': adjust <- Arguments$getDouble(adjust, range=c(0,10)) if (flavor == "density(TCN)") { # Get segment mean levels segs <- getSegments(fit, splitters=FALSE) x <- segs$mean w <- segs$nbrOfLoci # Drop missing values keep <- is.finite(x) & is.finite(w) x <- x[keep] w <- w[keep] keep <- NULL # Not needed anymore # Normalize weights w <- w / sum(w, na.rm=TRUE) # Estimate density d <- density(x, weights=w, adjust=adjust) w <- NULL # Not needed anymore # Find peaks pv <- findPeaksAndValleys(d, ...) type <- NULL; rm(list="type") # To please R CMD check p <- subset(pv, type == "peak") px <- p$x pw <- p$density # Distance between peaks dx <- diff(px) # Weights "between" peaks (AD HOC: sum up peak weights) dw <- pw[-length(pw)] + pw[-1L] deltaCN <- weighted.mean(dx, w=dw) } else if (flavor == "density(dTCN)") { # Get change-point magnitudes x <- getChangePoints(fit)[[1L]] x <- abs(x) # Drop missing values keep <- is.finite(x) x <- x[keep] keep <- NULL # Not needed anymore # Estimate density d <- density(x, adjust=adjust) # Find peaks pv <- findPeaksAndValleys(d, ...) type <- NULL; rm(list="type") # To please R CMD check p <- subset(pv, type == "peak") px <- p$x pw <- p$density # Distance between peaks dx <- diff(px) # Weights "between" peaks (AD HOC: sum up peak weights) dw <- pw[-length(pw)] + pw[-1L] stop("Still not implemented.") } else if (flavor == "dTCN") { # Get change-point magnitudes x <- getChangePoints(fit)[[1L]] x <- abs(x) # Drop missing values keep <- is.finite(x) x <- x[keep] keep <- NULL # Not needed anymore deltaCN <- median(x) } # Sanity check deltaCN <- Arguments$getDouble(deltaCN, range=c(0, Inf)) deltaCN }, protected=TRUE) setMethodS3("encodeCalls", "data.frame", function(calls, flavor="UCSF", ...) { # Argument 'calls': .stop_if_not(all(is.element(c("chromosome", "x"), colnames(calls)))) .stop_if_not(all(is.element(c("lossCall", "gainCall"), colnames(calls)))) # Argument 'flavor': flavor <- match.arg(flavor) calls0 <- calls # Allocate calls <- rep(NA_real_, times=nrow(calls0)) # Encode loss, neutral and gain (required) calls[!calls0$gainCall & !calls0$lossCall] <- 0 calls[calls0$gainCall] <- +1 calls[calls0$lossCall] <- -1 # Encode amplifications, if any/called. idxs <- which(calls0$amplificationCall) calls[idxs] <- +9 # Encode negative and positive outliers, if any/called. idxs <- which(calls0$negOutlierCall) calls[idxs] <- calls[idxs] - 0.1 idxs <- which(calls0$posOutlierCall) calls[idxs] <- calls[idxs] + 0.1 calls }, protected=TRUE) # encodeCalls() setMethodS3("callGLAO", "CBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Call gains, losses, amplifications and (negative and positive) outliers") verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fit)) # Call segments fitC <- callGainsAndLosses(fit, ..., verbose=verbose) fitC <- callAmplifications(fitC, ..., verbose=verbose) # Call loci, i.e. locus-level negative and positive outliers fitC <- callOutliers(fitC, ..., verbose=verbose) verbose && print(verbose, fitC) verbose && exit(verbose) fitC }, protected=TRUE) # callGLAO() PSCBS/R/PairedPSCBS.callGNL.R0000644000176200001440000002355414564051545014744 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod callGNL # @aliasmethod callGainNeutralLoss # @alias callGNLByTCNofAB # @aliasmethod callGNLByTCNofAB # @alias callGNLByTCNofABv1 # @aliasmethod callGNLByTCNofABv1 # # @title "Calls segments that are gained, copy neutral, or lost" # # \description{ # @get "title", where copy neutral means having a total copy number # that corresponds to the ploidy of the genome. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # call to use.} # \item{...}{Additional arguments passed to the caller.} # \item{minSize}{An optional @integer specifying the minimum number # of data points in order to call a segments. If fewer data points, # then the call is set to @NA regardless.} # \item{force}{If @FALSE, and copy-neutral calls already exits, # then nothing is done, otherwise the calls are done.} # } # # \value{ # Returns a @see "PairedPSCBS" object with added calls. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # \code{callGNLByTCNofAB()}. # } # #*/########################################################################### setMethodS3("callGNL", "PairedPSCBS", function(fit, flavor=c("TCN|AB"), ..., minSize=1, force=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'minSize': minSize <- Arguments$getDouble(minSize, range=c(1,Inf)) # Already done? segs <- as.data.frame(fit) if (!force && all(is.element(c("gainCall", "ntcnCall", "lossCall"), names(segs)))) { # Segments are already called return(invisible(fit)) } if (flavor == "TCN|AB") { fit <- callGNLByTCNofAB(fit, ..., force=force) } else { stop("Cannot call allelic balance. Unsupported flavor: ", flavor) } # Don't call segments with too few data points? if (minSize > 1) { segs <- as.data.frame(fit) ns <- segs$dhNbrOfLoci calls <- segs$ntcnCall calls[ns < minSize] <- NA segs$ntcnCall <- calls fit$output <- segs # Not needed anymore segs <- calls <- NULL } return(invisible(fit)) }) # callGNL() setMethodS3("callGainNeutralLoss", "PairedPSCBS", function(...) { callGNL(...) }) setMethodS3("callGNLByTCNofAB", "PairedPSCBS", function(fit, ..., minSize=1L, force=FALSE, verbose=FALSE) { # Argument 'minSize': minSize <- Arguments$getDouble(minSize, range=c(1,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling gain, neutral, and loss based TCNs of AB segments") # Already done? segs <- as.data.frame(fit) called <- all(is.element(c("gainCall", "ntcnCall", "lossCall"), names(segs))) if (!force && called) { return(invisible(fit)) } verbose && enter(verbose, "Calling neutral TCNs") fit <- callCopyNeutralByTCNofAB(fit, ..., verbose=verbose) verbose && exit(verbose) # The segment data segs <- as.data.frame(fit) tcnMean <- segs$tcnMean nbrOfSegs <- nrow(segs) # The call thresholds and the NTCN calls ntcnCall <- call <- segs$ntcnCall verbose && printf(verbose, "Number of NTCN calls: %d (%.2f%%) of %d\n", sum(call, na.rm=TRUE), 100*sum(call, na.rm=TRUE)/nbrOfSegs, nbrOfSegs) params <- fit$params deltaCN <- params$deltaCN .stop_if_not(!is.null(deltaCN)) ntcnRange <- params$ntcnRange .stop_if_not(!is.null(ntcnRange)) # Confidence interval of the TCN|AB segments range <- ntcnRange + c(+1,-1)*deltaCN # Mean of the TCN|AB segments mu <- mean(range, na.rm=TRUE) verbose && printf(verbose, "Mean TCN of AB segments: %g\n", mu) verbose && enter(verbose, "Calling loss") call <- !ntcnCall & (tcnMean < mu) segs$lossCall <- call verbose && printf(verbose, "Number of loss calls: %d (%.2f%%) of %d\n", sum(call, na.rm=TRUE), 100*sum(call, na.rm=TRUE)/nbrOfSegs, nbrOfSegs) verbose && exit(verbose) verbose && enter(verbose, "Calling gain") call <- !ntcnCall & (tcnMean > mu) segs$gainCall <- call verbose && printf(verbose, "Number of loss calls: %d (%.2f%%) of %d\n", sum(call, na.rm=TRUE), 100*sum(call, na.rm=TRUE)/nbrOfSegs, nbrOfSegs) verbose && exit(verbose) # Recording fit$output <- segs verbose && exit(verbose) fit }) # callGNLByTCNofAB() setMethodS3("callGNLByTCNofABv1", "PairedPSCBS", function(fit, deltaLoss=-0.5, deltaGain=+0.5, alpha=0.05, ..., force=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'alpha': disallow <- c("NA", "NaN", "Inf") alpha <- Arguments$getDouble(alpha, range=c(0,0.5), disallow=disallow) # Argument 'deltaLoss' & 'deltaGain': disallow <- c("NA", "NaN", "Inf") deltaLoss <- Arguments$getDouble(deltaLoss, range=c(-Inf,0), disallow=disallow) deltaGain <- Arguments$getDouble(deltaGain, range=c(0,+Inf), disallow=disallow) # Argument 'force': force <- Arguments$getLogical(force) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "callGNLByTCNofAB") verbose && cat(verbose, "Alpha: ", alpha) verbose && cat(verbose, "Delta loss: ", deltaLoss) verbose && cat(verbose, "Delta gain: ", deltaGain) segs <- getSegments(fit, splitters=TRUE, simplify=FALSE) # Already done? if (!force && all(is.element(c("gainCall", "ntcnCall", "lossCall"), names(segs)))) { # Segments are already called verbose && cat(verbose, "Already called. Skipping.") verbose && exit(verbose) return(invisible(fit)) } # Check that bootstrap estimates exists keys <- sprintf("tcn_%g%%", 100*c(alpha/2, 1-alpha/2)) missing <- keys[!is.element(keys, colnames(segs))] if (length(missing) > 0) { stop("No such statistics: ", hpaste(missing)) } verbose && enter(verbose, "Calling segments") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Confidence interval of copy-neutral AB segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Estimating TCN confidence interval of copy-neutral AB segments") fit <- calcStatsForCopyNeutralABs(fit, ..., verbose=less(verbose, 5)) stats <- fit$params$copyNeutralStats verbose && cat(verbose, "Bootstrap statistics for copy-neutral AB segments:") verbose && print(verbose, stats) # Extract TCN stats cols <- grep("^(tcn_|tcnMean)", colnames(stats)) tcnStats <- stats[,cols,drop=FALSE] tcnStats <- unlist(tcnStats, use.names=TRUE) verbose && print(verbose, "TCN statistics:") verbose && print(verbose, tcnStats) # Extract confidence interval of interest keys <- sprintf("tcn_%g%%", 100*c(alpha/2, 1-alpha/2)) missing <- keys[!is.element(keys, names(tcnStats))] if (length(missing) > 0) { stop("No such statistics: ", hpaste(missing)) } mean <- tcnStats["tcnMean"] ci <- tcnStats[keys] verbose && printf(verbose, "%g%%-confidence interval of TCN mean for the copy-neutral state: [%g,%g] (mean=%g)\n", 100*(1-alpha), ci[1], ci[2], mean) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get call regions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - naValue <- NA_real_ callRegions <- matrix(c( Inf, 1, 1, 1, 1, Inf ), nrow=3, ncol=2, byrow=TRUE) rownames(callRegions) <- c("loss", "ntcn", "gain") colnames(callRegions) <- c("lower", "upper") callRegions["loss",] <- ci[1]+callRegions["loss",]*deltaLoss callRegions["ntcn",] <- ci +callRegions["ntcn",]*c(deltaLoss, deltaGain) callRegions["gain",] <- ci[2]+callRegions["gain",]*deltaGain verbose && cat(verbose, "Call (\"acceptance\") regions:") verbose && print(verbose, callRegions) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get statistics for all segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegs <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegs) nbrOfABs <- sum(segs$abCall, na.rm=TRUE) verbose && cat(verbose, "Number of AB segments: ", nbrOfABs) verbose && cat(verbose, "Number of non-AB segments: ", nbrOfSegs-nbrOfABs) # Get TCN confidence intervals for all segments keys <- sprintf("tcn_%g%%", 100*c(alpha/2, 1-alpha/2)) ci <- segs[,keys] # Call states for (rr in seq_len(nrow(callRegions))) { state <- rownames(callRegions)[rr] verbose && enter(verbose, "Identify all '", state, "' segments") range <- callRegions[rr,] verbose && printf(verbose, "Call (\"acceptance\") region: [%g,%g]\n", range[1], range[2]) # If a confidence interval is completely within the # calling region, call it isCalled <- (range[1] <= ci[,1] & ci[,2] < range[2]) nbrOfCalled <- sum(isCalled, na.rm=TRUE) verbose && cat(verbose, "Number of segments called '", state, "': ", nbrOfCalled) ## verbose && cat(verbose, "Number of non-AB segments called '", state, "': ", (nbrOfSegs-nbrOfABs)-nbrOfCalled) key <- sprintf("%sCall", state) segs[[key]] <- isCalled verbose && exit(verbose) } # for (rr ...) fitC <- fit fitC$output <- segs verbose && exit(verbose) fitC }, protected=TRUE) # callGNLByTCNofABv1() ############################################################################## # HISTORY # 2013-09-20 [HB] # o BUG FIX: callGNL() for PairedPSCBS used non-defined 'verbose' object. # 2012-03-22 [HB] # o Renamed 'cnCall' to 'ntcnCall' for callGNLByTCNofAB(). # 2012-02-26 [HB] # o Added internal callGNLByTCNofAB(). # o Added callGNL(). ############################################################################## PSCBS/R/999.DEPRECATED.R0000644000176200001440000000361614564051545013420 0ustar liggesusers## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ## DEPRECATED ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ## DEFUNCT ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ############################################################################## # HISTORY # 2015-02-22 # o CLEANUP: bootstrapDHByRegion() is defunct (was deprecated since 2013). # 2013-04-20 # o CLEANUP: Formally deprecated bootstrapDHByRegion(). # 2013-01-15 # o Now bootstrapDHByRegion() uses the params$avgDH estimator, iff given. # 2012-02-24 # o Added argument 'force' to bootstrapDHByRegion(). # 2011-06-14 # o Updated code to recognize new column names. # 2010-11-22 # o DEPRECATED: bootstrapDHByRegion() should no longer be used. # 2010-11-03 [HB] # o ROBUSTNESS: Now bootstrapDHByRegion() uses resample() of R.utils. # 2010-11-01 [HB] # o Now bootstrapDHByRegion() estimates more quantiles. # o BUG FIX: bootstrapDHByRegion() would give an error if only a single # quantile was requested. # o BUG FIX: bootstrapDHByRegion() would give "Error in if (nbrOfUnits > # segJJ[, "dh.num.mark"]) { : missing value where TRUE/FALSE needed" when # 'dh.num.mark' was NA. # 2010-10-25 [HB] # o BUG FIX: Now bootstrapDHByRegion() for PairedPSCBS handles the rare case # when markers with the same positions are split in two different segments. # o BUG FIX: bootstrapDHByRegion() for PairedPSCBS would bootstrap from the # incorrect set of loci when the DH region contained only one locus. # o BUG FIX: bootstrapDHByRegion() for PairedPSCBS would bootstrap from the # incorrect set of loci if more than one chromosome was available. # 2010-09-16 [HB] # o Added bootstrapDHByRegion(), which is what is used by paired PSCBS. # o Created. ############################################################################## PSCBS/R/PairedPSCBS.EXTS3.R0000644000176200001440000001043014564051545014323 0ustar liggesuserssetMethodS3("extractLocusLevelC1C2", "PairedPSCBS", function(fit, ...) { # Extract locus-level data data <- getLocusData(fit) C <- data$CT rho <- data$rho # Swapped (C1,C2) <-> (C2,C1) for some segments? fields <- colnames(getSegments(fit)) if (is.element("c1c2Swap", fields)) { # FIXME: When PSCBS is updated. # WORKAROUND: extractSegmentDataByLocus() in PSCBS v0.40.4 requires: # that fields "chromosome", "tcnStart", "tcnEnd" are always requested # /2014-03-21 c1c2Swap <- extractSegmentDataByLocus(fit, fields=c("c1c2Swap", "chromosome", "tcnStart", "tcnEnd")) c1c2Swap <- c1c2Swap[["c1c2Swap"]] if (any(c1c2Swap)) { rho[c1c2Swap] <- -rho[c1c2Swap] } } C1 <- 1/2*(1-rho)*C C2 <- C - C1 data.frame(C1=C1, C2=C2) }, private=TRUE) # extractLocusLevelC1C2() setMethodS3("extractLocusLevelTCN", "PairedPSCBS", function(fit, ...) { data <- getLocusData(fit) C <- data$CT }, private=TRUE) # extractLocusLevelTCN() setMethodS3("extractDhSegment", "PairedPSCBS", function(fit, idx, what=c("hets", "SNPs", "all"), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'what': what <- match.arg(what) segs <- getSegments(fit, splitters=TRUE) .stop_if_not(!is.null(segs)) nbrOfSegments <- nrow(segs) # Argument 'idx': idx <- Arguments$getIndex(idx, max=nbrOfSegments) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Extracting a specific DH segment") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) .stop_if_not(!is.null(data)) segs <- getSegments(fit, splitters=TRUE) .stop_if_not(!is.null(segs)) verbose && enter(verbose, "Subsetting segment") # Subset the region-level data seg <- segs[idx,,drop=FALSE] isDivider <- all(is.na(seg)) if (isDivider) { verbose && cat("Cannot extract DH segment. Not a valid segment: ", idx) verbose && exit(verbose) return(NULL) } verbose && print(verbose, seg) verbose && cat(verbose, "Number of TCN markers: ", sum(seg[["tcnNbrOfLoci"]], na.rm=TRUE)) verbose && exit(verbose) verbose && enter(verbose, "Subsetting data") units <- seq_len(nrow(data)) # Keep only chromosome of interest chr <- as.numeric(seg[,"chromosome"]) if (!is.na(chr)) { keep <- which(data$chromosome == chr) units <- units[keep] data <- data[keep,] } # Keep only loci within the segment xRange <- as.numeric(seg[,c("dhStart", "dhEnd")]) keep <- which(xRange[1] <= data$x & data$x <= xRange[2]) units <- units[keep] data <- data[keep,] muN <- data$muN isSnp <- is.finite(muN) # Keep only SNPs? if (is.element(what, c("SNPs", "hets"))) { keep <- which(isSnp) units <- units[keep] data <- data[keep,] } # Keep only heterozygous SNPs? if (what == "hets") { isHet <- (muN == 1/2) keep <- which(isHet) units <- units[keep] data <- data[keep,] } verbose && exit(verbose) n <- nrow(data) verbose && cat(verbose, "Number of loci in DH segment: ", n) # Special case? listOfDhLociNotPartOfSegment <- fit$listOfDhLociNotPartOfSegment if (!is.null(listOfDhLociNotPartOfSegment)) { tcnId <- seg[,"tcnId"] dhId <- seg[,"dhId"] dhLociNotPartOfSegment <- listOfDhLociNotPartOfSegment[[tcnId]] if (!is.null(dhLociNotPartOfSegment)) { lociToExclude <- dhLociNotPartOfSegment[[dhId]] verbose && cat(verbose, "Excluding loci that belongs to a flanking segment: ", length(lociToExclude)) drop <- match(lociToExclude, units) units <- units[-drop] data <- data[-drop,] n <- nrow(data) } } verbose && cat(verbose, "Number of units: ", n) verbose && cat(verbose, "Number of TCN markers: ", seg[,"tcnNbrOfLoci"]) # Sanity check if (what == "hets" && n > 0) .stop_if_not(n == seg[,"dhNbrOfLoci"]) fitS <- fit fitS$data <- data fitS$output <- seg verbose && exit(verbose) fitS }, protected=TRUE) # extractDhSegment() PSCBS/R/PSCBS.RESTRUCT.R0000644000176200001440000001040214564051545013602 0ustar liggesuserssetMethodS3("c", "PSCBS", function(..., addSplit = TRUE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - args <- list(...) ## Nothing todo? nargs <- length(args) if (nargs == 1) return(args[[1]]) isNA <- function(x) is.logical(x) && length(x) == 1L && is.na(x) res <- args[[1]] fields <- c("output", "tcnSegRows", "dhSegRows") for (ii in 2:nargs) { arg <- args[[ii]] if (isNA(arg)) { if (addSplit) { warning(sprintf("Detected explicit NA in call to c(<%s>, ..., addSplit = TRUE). Ignoring", class(args[[1]])[1])) next } ## Add "splitter" for (field in fields) { res[[field]] <- rbind(res[[field]], NA) } } else { ## Locus-level data data <- getLocusData(res) data_arg <- getLocusData(arg) if (!all(colnames(data_arg) == colnames(data))) { stop(sprintf("Cannot concatenate %s and %s objects, because they have different sets of columns in field %s: {%s} [n=%d] != {%s} [n=%d]", sQuote(class(res)[1]), sQuote(class(arg)[1]), sQuote(field), paste(sQuote(colnames(data)), collapse=", "), ncol(data), paste(sQuote(colnames(data_arg)), collapse=", "), ncol(data_arg))) } indexOffset <- nrow(data) data <- rbind(data, getLocusData(arg)) res[["data"]] <- data # Segmentation data for (field in fields[-1]) { arg[[field]] <- arg[[field]] + indexOffset } splitter <- if (addSplit) NA else NULL for (field in fields) { res[[field]] <- rbind(res[[field]], splitter, arg[[field]]) } # Known segments ksT <- res$params$knownSegments ksT$length <- NULL # In case it's been added ksO <- arg$params$knownSegments ksO$length <- NULL # In case it's been added res$params$knownSegments <- rbind(ksT, ksO) } } ## for (ii ...) ## Drop row names, iff they've been added for (field in fields) rownames(res[[field]]) <- NULL # Sanity check ns <- sapply(res[fields], FUN = nrow) .stop_if_not(all(ns == ns[1])) res }) # c() setMethodS3("extractChromosomes", "PSCBS", function(x, chromosomes, ...) { # To please R CMD check this <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'chromosomes': disallow <- c("NaN", "Inf") chromosomes <- Arguments$getIntegers(chromosomes, range=c(0,Inf), disallow=disallow) .stop_if_not(all(is.element(chromosomes, getChromosomes(this)))) # Always extract in order chromosomes <- unique(chromosomes) chromosomes <- sort(chromosomes) # Allocate results res <- this # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Locus data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chromosome <- NULL; rm(list="chromosome") # To please R CMD check res$data <- subset(res$data, chromosome %in% chromosomes) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segmentation data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify rows to subset rows <- which(is.element(res$output$chromosome, chromosomes)) for (field in c("output", "tcnSegRows", "dhSegRows")) { res[[field]] <- res[[field]][rows,,drop=FALSE] } # Identify chromosome offsets chrStarts <- match(getChromosomes(this), this$data$chromosome) chrEnds <- c(chrStarts[-1]-1L, nrow(this$data)) chrLengths <- chrEnds - chrStarts + 1L chrLengthsExcl <- chrLengths keep <- match(chromosomes, getChromosomes(this)) chrLengthsExcl[keep] <- 0L cumChrLengthsExcl <- cumsum(chrLengthsExcl) shifts <- cumChrLengthsExcl[keep] .stop_if_not(all(is.finite(shifts))) # Adjust indices for (cc in seq_along(chromosomes)) { chromosome <- chromosomes[cc] shift <- shifts[cc] # Nothing to do? if (shift == 0) next for (field in c("tcnSegRows", "dhSegRows")) { segRows <- res[[field]] rows <- which(res$output$chromosome == chromosome) segRows[rows,] <- segRows[rows,] - shift res[[field]] <- segRows } } res }, protected=TRUE) PSCBS/R/PairedPSCBS.PLOT.R0000644000176200001440000006423514564060172014243 0ustar liggesusers###########################################################################/** # @set "class=PairedPSCBS" # @RdocMethod plotTracks1 # @aliasmethod plotTracks # @aliasmethod plotTracks2 # @aliasmethod plotTracksManyChromosomes # @alias plot # # @title "Plots parental specific copy numbers along the genome" # # \description{ # @get "title" for one or more chromosomes. # It is possible to specify what type of tracks to plot. # Each type of track is plotted in its own panel. # } # # @synopsis # # \arguments{ # \item{x}{A result object returned by @see "segmentByPairedPSCBS".} # \item{tracks}{A @character @vector specifying what types of tracks to plot.} # \item{scatter}{A @character @vector specifying which of the tracks should # have scatter plot.} # \item{calls}{A @character @vector of regular expression identifying # call labels to be highlighted in the panels.} # \item{pch}{The type of the scatter points, if any.} # \item{col}{The color of the scatter points, if any.} # \item{cex}{The size of the scatter points, if any.} # \item{changepoints}{If @TRUE, changepoints are drawn as vertical lines.} # \item{grid}{If @TRUE, horizontal lines are displayed.} # \item{quantiles}{A @numeric @vector in [0,1] specifying the quantiles # of the confidence bands to be drawn, if any.} # \item{xlim}{(Optional) The genomic range to plot.} # \item{Clim}{The range of copy numbers.} # \item{Blim}{The range of allele B fractions (BAFs) and # decrease of heterozygosity (DHs).} # \item{xScale}{The scale factor used for genomic positions.} # \item{...}{Not used.} # \item{add}{If @TRUE, the panels plotted are added to the existing plot, # otherwise a new plot is created.} # \item{subplots}{If @TRUE, then subplots are automatically setup.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns nothing. # } # # @author "HB" # # @keyword IO # @keyword internal #*/########################################################################### setMethodS3("plotTracks1", "PairedPSCBS", function(x, tracks=c("tcn", "dh", "tcn,c1,c2", "tcn,c1", "tcn,c2", "c1,c2", "betaN", "betaT", "betaTN")[1:3], scatter="*", calls=".*", pch=".", col=NULL, cex=1, changepoints=FALSE, grid=FALSE, quantiles=c(0.05,0.95), xlim=NULL, Clim=c(0,3*ploidy(x)), Blim=c(0,1), xScale=1e-6, ..., add=FALSE, subplots=!add && (length(tracks) > 1), verbose=FALSE) { # To please R CMD check fit <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'add': add <- Arguments$getLogical(add) # Argument 'Clim' & 'Blim': if (!add) { Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) Blim <- Arguments$getNumerics(Blim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) } # Argument 'fit': if (nbrOfChromosomes(fit) >= 1L) { return(plotTracksManyChromosomes(fit, tracks=tracks, scatter=scatter, calls=calls, pch=pch, quantiles=quantiles, Clim=Clim, Blim=Blim, xScale=xScale, ..., add=add, subplots=subplots, verbose=verbose)) } # Argument 'tracks': knownTracks <- c("tcn", "dh", "tcn,c1,c2", "tcn,c1", "tcn,c2", "c1,c2", "betaN", "betaT", "betaTN") tracks <- match.arg(tracks, choices=knownTracks, several.ok=TRUE) tracks <- unique(tracks) # Argument 'scatter': if (!is.null(scatter)) { scatter <- Arguments$getCharacter(scatter) if (scatter == "*") { scatter <- tracks } else { scatterT <- strsplit(scatter, split=",", fixed=TRUE) tracksT <- strsplit(tracks, split=",", fixed=TRUE) .stop_if_not(all(is.element(scatterT, tracksT))) # Not needed anymore scatterT <- tracksT <- NULL } } # Argument 'calls': if (!is.null(calls)) { calls <- sapply(calls, FUN=Arguments$getRegularExpression) } # Argument 'changepoints': changepoints <- Arguments$getLogical(changepoints) # Argument 'grid': grid <- Arguments$getLogical(grid) # Argument 'xlim': if (!is.null(xlim)) { xlim <- Arguments$getNumerics(xlim, length=c(2,2)) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Argument 'subplots': subplots <- Arguments$getLogical(subplots) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Plotting PSCN tracks") # Extract the input data data <- getLocusData(fit) if (is.null(data)) { stop("Cannot plot segmentation results. No input data available.") } chromosomes <- getChromosomes(fit) chromosome <- chromosomes[1] x <- data$x CT <- data$CT rho <- data$rho betaT <- data$betaT betaN <- data$betaN betaTN <- data$betaTN muN <- data$muN rho <- data$rho hasDH <- !is.null(rho) if (hasDH) { isHet <- !is.na(rho) isSnp <- isHet } else { isSnp <- (!is.na(betaTN) & !is.na(muN)) isHet <- isSnp & (muN == 1/2) } nbrOfLoci <- length(x) # BACKWARD COMPATIBILITY: # If 'rho' is not available, recalculate it from tumor BAFs. # NOTE: This should throw an error in the future. /HB 2013-10-25 if (!hasDH) { rho <- rep(NA_real_, times=nbrOfLoci) rho[isHet] <- 2*abs(betaTN[isHet]-1/2) warning(sprintf("Locus-level DH signals ('rho') were not available in the %s object and therefore recalculated from the TumorBoost-normalized tumor BAFs ('betaTN').", class(fit)[1L])) } # Extract the segmentation segs <- as.data.frame(fit) # Identify available calls if (!is.null(calls)) { verbose && enter(verbose, "Identifying calls") pattern <- "Call$" callColumns <- grep(pattern, colnames(segs), value=TRUE) if (length(callColumns) > 0) { keep <- sapply(calls, FUN=function(pattern) { (regexpr(pattern, callColumns) != -1) }) if (is.matrix(keep)) { keep <- rowAnys(keep, useNames=FALSE) } callColumns <- callColumns[keep] callLabels <- gsub(pattern, "", callColumns) callLabels <- toupper(callLabels) } verbose && cat(verbose, "Call columns:") verbose && print(verbose, callColumns) verbose && exit(verbose) } else { callColumns <- NULL } if (chromosome != 0) { chrTag <- sprintf("Chr%02d", chromosome) } else { chrTag <- "" } if (xScale != 1) { x <- xScale * x if (!is.null(xlim)) { xlim <- xScale * xlim } } if (subplots) { subplots(length(tracks), ncol=1) par(mar=c(1,4,1,2)+1) } # Color loci by heterozygous vs homozygous if (hasDH) { colMu <- c("gray", "black")[!is.na(rho) + 1] } else { colMu <- c("gray", "black")[(muN == 1/2) + 1] } for (tt in seq_along(tracks)) { track <- tracks[tt] verbose && enter(verbose, sprintf("Track #%d ('%s') of %d", tt, track, length(tracks))) if (!is.null(scatter)) { pchT <- pch colT <- col } else { pchT <- NA colT <- NA } if (track == "tcn") { colT <- ifelse(is.null(colT), "black", colT) if (add) { points(x, CT, pch=pchT, col=colT, cex=cex) } else { plot(x, CT, pch=pchT, col=colT, cex=cex, xlim=xlim, ylim=Clim, ylab="TCN") stext(side=3, pos=1, chrTag) if (grid) { abline(h=seq(from=0, to=Clim[2], by=2), lty=3, col="gray") abline(h=0, lty=1, col="black") } drawConfidenceBands(fit, what="tcn", quantiles=quantiles, col="purple", xScale=xScale) drawLevels(fit, what="tcn", col="purple", xScale=xScale) } } if (is.element(track, c("tcn,c1,c2", "tcn,c1", "tcn,c2", "c1,c2"))) { colT <- ifelse(is.null(colT), "black", colT) subtracks <- strsplit(track, split=",", fixed=TRUE)[[1]] ylab <- paste(toupper(subtracks), collapse=", ") if (add) { points(x, CT, pch=pchT, cex=cex, col=colT) } else { plot(x, CT, pch=pchT, cex=cex, col=colT, xlim=xlim, ylim=Clim, ylab=ylab) stext(side=3, pos=1, chrTag) if (grid) { abline(h=seq(from=0, to=Clim[2], by=2), lty=3, col="gray") abline(h=0, lty=1, col="black") } if (is.element("tcn", subtracks)) { drawConfidenceBands(fit, what="tcn", quantiles=quantiles, col="purple", xScale=xScale) } if (is.element("c2", subtracks)) { drawConfidenceBands(fit, what="c2", quantiles=quantiles, col="red", xScale=xScale) } if (is.element("c1", subtracks)) { drawConfidenceBands(fit, what="c1", quantiles=quantiles, col="blue", xScale=xScale) } if (is.element("tcn", subtracks)) { drawLevels(fit, what="tcn", col="purple", xScale=xScale) } if (is.element("c2", subtracks)) { drawLevels(fit, what="c2", col="red", xScale=xScale) # In case C2 overlaps with TCN if (is.element("tcn", subtracks)) { drawLevels(fit, what="tcn", col="purple", lty="22", xScale=xScale) } } if (is.element("c1", subtracks)) { drawLevels(fit, what="c1", col="blue", xScale=xScale) # In case C1 overlaps with C1 if (is.element("c2", subtracks)) { drawLevels(fit, what="c2", col="red", lty="22", xScale=xScale) if (is.element("tcn", subtracks)) { drawLevels(fit, what="tcn", col="purple", lty="22", xScale=xScale) } } } } } if (track == "betaN") { colT <- ifelse(is.null(colT), colMu, colT) if (add) { points(x, betaN, pch=pchT, cex=cex, col="black") } else { plot(x, betaN, pch=pchT, cex=cex, col=colT, xlim=xlim, ylim=Blim, ylab=expression(BAF[N])) stext(side=3, pos=1, chrTag) } } if (track == "betaT") { colT <- ifelse(is.null(colT), colMu, colT) if (add) { points(x, betaT, pch=pchT, cex=cex, col="black") } else { plot(x, betaT, pch=pchT, cex=cex, col=colT, xlim=xlim, ylim=Blim, ylab=expression(BAF[T])) stext(side=3, pos=1, chrTag) } } if (track == "betaTN") { colT <- ifelse(is.null(colT), colMu, colT) if (add) { points(x, betaTN, pch=pchT, cex=cex, col="black") } else { plot(x, betaTN, pch=pchT, cex=cex, col=colT, xlim=xlim, ylim=Blim, ylab=expression(BAF[T]^"*")) stext(side=3, pos=1, chrTag) } } if (track == "dh") { colT <- ifelse(is.null(colT), colMu[isHet], colT) if (add) { points(x, rho, pch=pchT, cex=cex, col="black") } else { plot(x, rho, pch=pchT, cex=cex, col=colT, xlim=xlim, ylim=Blim, ylab="DH") stext(side=3, pos=1, chrTag) drawConfidenceBands(fit, what="dh", quantiles=quantiles, col="orange", xScale=xScale) drawLevels(fit, what="dh", col="orange", xScale=xScale) } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Draw change points? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (changepoints) { drawChangePoints(fit, col="#666666", xScale=xScale) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each panel of tracks, annotate with calls? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (length(callColumns) > 0) { for (cc in seq_along(callColumns)) { callColumn <- callColumns[cc] callLabel <- callLabels[cc] verbose && enter(verbose, sprintf("Call #%d ('%s') of %d", cc, callLabel, length(callColumns))) verbose && cat(verbose, "Column: ", callColumn) segsT <- segs[,c("dhStart", "dhEnd", callColumn)] isCalled <- which(segsT[[callColumn]]) segsT <- segsT[isCalled,1:2,drop=FALSE] verbose && printf(verbose, "Number of segments called %s: %d\n", callLabel, nrow(segsT)) segsT <- xScale * segsT verbose && str(verbose, segsT) side <- 2*((cc+1) %% 2) + 1 # For each segment called... for (ss in seq_len(nrow(segsT))) { x0 <- segsT[ss,1,drop=TRUE] x1 <- segsT[ss,2,drop=TRUE] abline(v=c(x0,x1), lty=3, col="gray") xMid <- (x0+x1)/2 mtext(side=side, at=xMid, line=-1, cex=0.7, col="#666666", callLabel) } # for (ss in ...) verbose && exit(verbose) } # for (cc in ...) # Add call parameter estimates, e.g. deltaAB for (cc in seq_along(callColumns)) { callColumn <- callColumns[cc] callLabel <- callLabels[cc] h <- NULL if (callLabel == "AB") { if (track == "dh") { h <- fit$params$deltaAB label <- expression(Delta[AB]) colT <- "orange" } } else if (callLabel == "LOH") { if (regexpr("c1", track) != -1L) { h <- fit$params$deltaLowC1 label <- expression(Delta[LOH]) colT <- "blue" } } else if (callLabel == "NTCN") { if (track == "tcn") { h <- fit$params$ntcnRange label <- c(expression(Delta[-NTCN]), expression(Delta[+NTCN])) colT <- "purple" } } if (!is.null(h)) { abline(h=h, lty=4, lwd=2, col=colT) for (ss in 1:2) { side <- c(2,4)[ss] adj <- c(1.2,-0.2)[ss] mtext(side=side, at=h, label, adj=adj, las=2, xpd=TRUE) } } } # for (cc in ...) } # if (length(callColumns) > 0) verbose && exit(verbose) } # for (tt ...) verbose && exit(verbose) invisible() }, private=TRUE) # plotTracks1() setMethodS3("plotTracks", "PairedPSCBS", function(fit, ...) { plotTracksManyChromosomes(fit, ...) }) setMethodS3("plot", "PairedPSCBS", function(x, ...) { plotTracks(x, ...) }, private=TRUE) setMethodS3("drawLevels", "PairedPSCBS", function(fit, what=c("tcn", "betaTN", "dh", "c1", "c2"), lend=1L, xScale=1e-6, ...) { # WORKAROUND: If Hmisc is loaded after R.utils, it provides a buggy # capitalize() that overrides the one we want to use. Until PSCBS # gets a namespace, we do the following workaround. /HB 2011-07-14 capitalize <- R.utils::capitalize # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'what': what <- match.arg(what) # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # Get segmentation results segs <- as.data.frame(fitT) if (what == "betaTN") { whatT <- "dh" } else { whatT <- what } # Extract subset of segments fields <- c("start", "end") fields <- sprintf("%s%s", ifelse(what == "tcn", what, "dh"), capitalize(fields)) fields <- c(fields, sprintf("%sMean", whatT)) segsT <- segs[,fields, drop=FALSE] segsT <- unique(segsT) if (what == "betaTN") { dh <- segsT[,"dhMean"] bafU <- (1 + dh)/2 bafL <- (1 - dh)/2 segsT[,3] <- bafU segsT[,4] <- bafL } # Reuse drawLevels() for the DNAcopy class for (cc in seq(from=3, to=ncol(segsT))) { segsTT <- segsT[,c(1:2,cc)] colnames(segsTT) <- c("loc.start", "loc.end", "seg.mean") dummy <- list(output=segsTT) class(dummy) <- "DNAcopy" drawLevels(dummy, lend=lend, xScale=xScale, ...) } # for (cc ...) }, private=TRUE) setMethodS3("drawConfidenceBands", "PairedPSCBS", function(fit, what=c("tcn", "dh", "c1", "c2"), quantiles=c(0.05,0.95), col=col, alpha=0.4, xScale=1e-6, ...) { # WORKAROUND: If Hmisc is loaded after R.utils, it provides a buggy # capitalize() that overrides the one we want to use. Until PSCBS # gets a namespace, we do the following workaround. /HB 2011-07-14 capitalize <- R.utils::capitalize # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'what': what <- match.arg(what) # Argument 'quantiles': if (!is.null(quantiles)) { quantiles <- Arguments$getNumerics(quantiles, range=c(0,1), length=c(2,2)) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Nothing todo? if (is.null(quantiles)) { return() } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # Get segmentation results segs <- as.data.frame(fitT) # Extract subset of segments fields <- c("start", "end") fields <- sprintf("%s%s", ifelse(what == "tcn", what, "dh"), capitalize(fields)) tags <- sprintf("%g%%", 100*quantiles) qFields <- sprintf("%s_%s", what, tags) # Nothing todo? if (!all(is.element(qFields, colnames(segs)))) { return() } fields <- c(fields, qFields) segsT <- segs[,fields, drop=FALSE] segsT <- unique(segsT) # Rescale x-axis segsT[,1:2] <- xScale * segsT[,1:2] colQ <- col2rgb(col, alpha=TRUE) colQ["alpha",] <- alpha*colQ["alpha",] colQ <- rgb(red=colQ["red",], green=colQ["green",], blue=colQ["blue",], alpha=colQ["alpha",], maxColorValue=255) for (kk in seq_len(nrow(segsT))) { rect(xleft=segsT[kk,1], xright=segsT[kk,2], ybottom=segsT[kk,3], ytop=segsT[kk,4], col=colQ, border=FALSE) } }, private=TRUE) setMethodS3("plotC1C2", "PairedPSCBS", function(fit, ..., xlab=expression(C[1]), ylab=expression(C[2]), Clim=c(0,2*ploidy(fit))) { # Argument 'Clim': Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) plot(NA, xlim=Clim, ylim=Clim, xlab=xlab, ylab=ylab) abline(a=0, b=1, lty=3) pointsC1C2(fit, ...) }, private=TRUE) setMethodS3("pointsC1C2", "PairedPSCBS", function(fit, cex=NULL, col="#00000033", ...) { data <- extractC1C2(fit) X <- data[,1:2,drop=FALSE] n <- data[,4,drop=TRUE] n <- sqrt(n) w <- n / sum(n, na.rm=TRUE) if (is.null(cex)) { cex <- w cex <- cex / mean(cex, na.rm=TRUE) cex <- cex + 1/2 } points(X, cex=cex, col=col, ...) }, private=TRUE) setMethodS3("linesC1C2", "PairedPSCBS", function(fit, ...) { drawChangePointsC1C2(fit, ...) }, private=TRUE) setMethodS3("drawChangePointsC1C2", "PairedPSCBS", function(fit, col="#00000033", labels=FALSE, lcol="#333333", cex=0.7, adj=c(+1.5,+0.5), ...) { xy <- extractMinorMajorCNs(fit, splitters=TRUE, addGaps=TRUE) xy <- xy[,1:2,drop=FALSE] res <- lines(xy, col=col, ...) if (labels) { n <- nrow(xy) dxy <- (xy[-1,] - xy[-n,]) / 2 xyMids <- xy[-n,] + dxy labels <- rownames(xy) labels <- sprintf("%s-%s", labels[-n], labels[-1]) text(xyMids, labels, cex=cex, col=lcol, adj=adj, ...) } invisible(res) }, private=TRUE) setMethodS3("plotDeltaC1C2", "PairedPSCBS", function(fit, ..., xlab=expression(Delta*C[1]), ylab=expression(Delta*C[2]), Clim=c(-1,1)*ploidy(fit)) { # Argument 'Clim': Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) plot(NA, xlim=Clim, ylim=Clim, xlab=xlab, ylab=ylab) abline(h=0, lty=3) abline(v=0, lty=3) pointsDeltaC1C2(fit, ...) }, private=TRUE) setMethodS3("pointsDeltaC1C2", "PairedPSCBS", function(fit, ...) { data <- extractDeltaC1C2(fit) X <- data[,1:2,drop=FALSE] points(X, ...) }, private=TRUE) setMethodS3("linesDeltaC1C2", "PairedPSCBS", function(fit, ...) { xy <- extractDeltaC1C2(fit) xy <- xy[,1:2,drop=FALSE] lines(xy, ...) }, private=TRUE) setMethodS3("arrowsC1C2", "PairedPSCBS", function(fit, length=0.05, ...) { xy <- extractMinorMajorCNs(fit, splitters=TRUE, addGaps=TRUE) xy <- xy[,1:2,drop=FALSE] x <- xy[,1,drop=TRUE] y <- xy[,2,drop=TRUE] s <- seq_len(length(x)-1) arrows(x0=x[s],y0=y[s], x1=x[s+1],y1=y[s+1], code=2, length=length, ...) }, private=TRUE) setMethodS3("arrowsDeltaC1C2", "PairedPSCBS", function(fit, length=0.05, ...) { xy <- extractDeltaC1C2(fit) xy <- xy[,1:2,drop=FALSE] x <- xy[,1,drop=TRUE] y <- xy[,2,drop=TRUE] s <- seq_len(length(x)-1) arrows(x0=x[s],y0=y[s], x1=x[s+1],y1=y[s+1], code=2, length=length, ...) }, private=TRUE) setMethodS3("tileChromosomes", "PairedPSCBS", function(fit, chrStarts=NULL, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'chrStarts': if (!is.null(chrStarts)) { chrStarts <- Arguments$getDoubles(chrStarts) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # Nothing to do, i.e. already tiled? if (isTRUE(attr(fit, "tiledChromosomes"))) { return(fit) } verbose && enter(verbose, "Tile chromosomes") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit) knownSegments <- fit$params$knownSegments # Identify all chromosome chromosomes <- getChromosomes(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Additional chromosome annotations # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.null(chrStarts)) { xRange <- matrix(0, nrow=length(chromosomes), ncol=2) for (kk in seq_along(chromosomes)) { chromosome <- chromosomes[kk] idxs <- which(data$chromosome == chromosome) x <- data$x[idxs] r <- range(x, na.rm=TRUE) r <- r / 1e6 r[1] <- floor(r[1]) r[2] <- ceiling(r[2]) r <- 1e6 * r xRange[kk,] <- r } # for (kk ...) chrLength <- xRange[,2] chrStarts <- c(0, cumsum(chrLength)[-length(chrLength)]) chrEnds <- chrStarts + chrLength # Not needed anymore x <- idxs <- NULL } # if (is.null(chrStarts)) verbose && cat(verbose, "Chromosome starts:") chromosomeStats <- cbind(start=chrStarts, end=chrEnds, length=chrEnds-chrStarts) verbose && print(chromosomeStats) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Offset... # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segFields <- grep("(Start|End)$", colnames(segs), value=TRUE) # Sanity check .stop_if_not(length(segFields) > 0) for (kk in seq_along(chromosomes)) { chromosome <- chromosomes[kk] chrTag <- sprintf("Chr%02d", chromosome) verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", kk, chrTag, length(chromosomes))) # Get offset for this chromosome offset <- chrStarts[kk] verbose && cat(verbose, "Offset: ", offset) # Offset data idxs <- which(data$chromosome == chromosome) if (length(idxs) > 0L) { data$x[idxs] <- offset + data$x[idxs] } # Offset segmentation idxs <- which(segs$chromosome == chromosome) if (length(idxs) > 0L) { segs[idxs,segFields] <- offset + segs[idxs,segFields] } # Offset known segments idxs <- which(knownSegments$chromosome == chromosome) if (length(idxs) > 0L) { knownSegments[idxs,c("start", "end")] <- offset + knownSegments[idxs,c("start", "end")] } verbose && exit(verbose) } # for (kk ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit$data <- data fit$output <- segs fit$chromosomeStats <- chromosomeStats fit$params$knownSegments <- knownSegments # fitT$params$chrOffsets <- chrOffsets # Flag object attr(fit, "tiledChromosomes") <- TRUE verbose && exit(verbose) fit }, private=TRUE) # tileChromosomes() setMethodS3("drawChangePoints", "PSCBS", function(fit, labels=FALSE, col="#666666", cex=0.5, xScale=1e-6, side=3, line=-1, xpd=TRUE, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) verbose && str(verbose, fitT) segs <- getSegments(fitT, splitters=FALSE) xStarts <- segs[,"tcnStart"] xEnds <- segs[,"tcnEnd"] xs <- sort(unique(c(xStarts, xEnds))) abline(v=xScale*xs, lty=1, col=col) if (labels) { xMids <- xScale * (xEnds + xStarts) / 2 labels <- rownames(segs) mtext(side=side, at=xMids, labels, line=line, cex=cex, col=col, xpd=xpd, ...) } }, protected=TRUE) setMethodS3("getChromosomeRanges", "PairedPSCBS", function(fit, ...) { # To please R CMD check, cf. subset() chromosome <- NULL; rm(list="chromosome") segs <- getSegments(fit, splitters=FALSE) chromosomes <- sort(unique(segs$chromosome)) # Allocate naValue <- NA_real_ res <- matrix(naValue, nrow=length(chromosomes), ncol=3) rownames(res) <- chromosomes colnames(res) <- c("start", "end", "length") # Get start and end of each chromosome. for (ii in seq_len(nrow(res))) { chr <- chromosomes[ii] segsII <- subset(segs, chromosome == chr) res[ii,"start"] <- min(segsII$tcnStart, na.rm=TRUE) res[ii,"end"] <- max(segsII$tcnEnd, na.rm=TRUE) } # for (ii ...) res[,"length"] <- res[,"end"] - res[,"start"] + 1L # Sanity check .stop_if_not(nrow(res) == length(chromosomes)) res <- as.data.frame(res) res <- cbind(chromosome=chromosomes, res) res }, protected=TRUE) # getChromosomeRanges() setMethodS3("getChromosomeOffsets", "PairedPSCBS", function(fit, resolution=1e6, ...) { # Argument 'resolution': if (!is.null(resolution)) { resolution <- Arguments$getDouble(resolution, range=c(1,Inf)) } data <- getChromosomeRanges(fit, ...) splits <- data[,"start"] + data[,"length"] if (!is.null(resolution)) { splits <- ceiling(splits / resolution) splits <- resolution * splits } offsets <- c(0L, cumsum(splits)) names(offsets) <- c(rownames(data), NA) offsets }, protected=TRUE) # getChromosomeOffsets() PSCBS/R/PairedPSCBS.callAB.R0000644000176200001440000002246614564051545014607 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod callAB # @aliasmethod callAllelicBalance # # @title "Calls segments that are in allelic balance" # # \description{ # @get "title", i.e. that have equal minor and major copy numbers. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # call to use.} # \item{...}{Additional arguments passed to the caller.} # \item{minSize}{An optional @integer specifying the minimum number # of data points in order to call a segments. If fewer data points, # then the call is set to @NA regardless.} # \item{xorCalls}{If @TRUE, a region already called LOH, will # for consistency never be called AB, resulting in either an AB # call set to @FALSE or @NA (as explained below).} # \item{force}{If @FALSE, and allelic-balance calls already exits, # then nothing is done, otherwise the calls are done.} # } # # \value{ # Returns a @see "PairedPSCBS" object with allelic-balance calls. # } # # \section{AB and LOH consistency}{ # Biologically, a segment can not be both in allelic balance (AB) and # in loss-of-heterozygosity (LOH) at the same time. # To avoid reporting such inconsistencies, the LOH caller will, # if argument \code{xorCalls=TRUE}, never report a segment to be in # LOH if it is already called to be in AB. # However, regardless of of the AB call, a segment is still always # tested for LOH, to check weather the LOH caller is consistent with the # AB caller or not. Thus, in order to distinguish the case where # the AB caller and LOH caller agree from when they disagree, # we report either (AB,LOH)=(TRUE,FALSE) or (TRUE,NA). The former is # reported when they are consistent, and the latter when they are not, # or when the AB caller could not call it. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "callAllelicBalanceByDH". # } # #*/########################################################################### setMethodS3("callAB", "PairedPSCBS", function(fit, flavor=c("DeltaAB*"), ..., minSize=1, xorCalls=TRUE, force=FALSE) { # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'minSize': minSize <- Arguments$getDouble(minSize, range=c(1,Inf)) # Argument 'xorCalls': xorCalls <- Arguments$getLogical(xorCalls) # Already done? segs <- as.data.frame(fit) calls <- segs$abCall if (!force && !is.null(calls)) { return(invisible(fit)) } if (flavor == "DeltaAB*") { fit <- callAllelicBalanceByDH(fit, ...) } else { stop("Cannot call allelic balance. Unsupported flavor: ", flavor) } # Don't call segments with too few data points? if (minSize > 1) { segs <- as.data.frame(fit) ns <- segs$dhNbrOfLoci calls <- segs$abCall calls[ns < minSize] <- NA segs$abCall <- calls fit$output <- segs # Not needed anymore segs <- calls <- NULL } # Don't call a segment AB if it already called LOH? if (xorCalls) { segs <- as.data.frame(fit) if (is.element("lohCall", names(segs))) { calls <- segs$abCall otherCalls <- segs$lohCall # If called (TRUE) and already called (TRUE) # by the other caller, call it as NA. calls[calls & otherCalls] <- NA segs$abCall <- calls fit$output <- segs } } return(invisible(fit)) }) setMethodS3("callAllelicBalance", "default", function(...) { callAB(...) }) ###########################################################################/** # @set class=PairedPSCBS # @RdocMethod callAllelicBalanceByDH # # @title "Calls segments that are in allelic balance" # # \description{ # @get "title" by thresholding on DH using a predetermined threshold. # The variability of the DH mean levels is taken into account via a # bootstrap estimator. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # call to use.} # \item{delta}{(Tuning parameter) A non-negative @numeric threshold.} # \item{alpha}{A @numeric in [0,1] specifying the upper and lower # quantiles calculated by the bootstrap estimator.} # \item{...}{Additional arguments passed to the bootstrap estimator # @seemethod "bootstrapTCNandDHByRegion".} # } # # \value{ # Returns a @see "PairedPSCBS" object with allelic-balance calls. # } # # @author "HB" # # \section{Algorithm}{ # \itemize{ # \item Foo # \item Bar # } # } # # \seealso{ # Instead of calling this method explicitly, it is recommended # to use the @seemethod "callAllelicBalance" method. # } # # @keyword internal #*/########################################################################### setMethodS3("callAllelicBalanceByDH", "PairedPSCBS", function(fit, delta=estimateDeltaAB(fit, flavor="qq(DH)"), alpha=0.05, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'delta': delta <- Arguments$getDouble(delta, range=c(0,Inf)) # Argument 'alpha': alpha <- Arguments$getDouble(alpha, range=c(0,1)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments of allelic balance from one-sided DH bootstrap confidence intervals") verbose && cat(verbose, "delta (offset adjusting for bias in DH): ", delta) verbose && cat(verbose, "alpha (CI quantile; significance level): ", alpha) # Calculate DH confidence intervals, if not already done probs <- c(alpha, 1-alpha) fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) segs <- as.data.frame(fit) # Extract confidence interval alphaTag <- sprintf("%g%%", 100*alpha) column <- sprintf("dh_%s", alphaTag) # Sanity checks .stop_if_not(is.element(column, colnames(segs))) # One-sided test verbose && enter(verbose, "Calling segments") value <- segs[,column, drop=TRUE] call <- (value < delta) nbrOfCalls <- sum(call, na.rm=TRUE) verbose && printf(verbose, "Number of segments called allelic balance (AB): %d (%.2f%%) of %d\n", nbrOfCalls, 100*nbrOfCalls/nrow(segs), nrow(segs)) verbose && exit(verbose) segs$abCall <- call fit$output <- segs # Append 'delta' and 'alpha' to parameters params <- fit$params params$deltaAB <- delta params$alphaAB <- alpha fit$params <- params verbose && exit(verbose) fit }, protected=TRUE) # callAllelicBalanceByDH() ############################################################################## # HISTORY # 2012-01-15 # o DOCUMENTATION: Added details to the help of callLOH() and callAB() on # the difference between (AB,LOH)=(TRUE,FALSE) and (AB,LOH)=(TRUE,NA). # 2011-07-07 # o BUG FIX: Consecutive calls to callAB(..., force=TRUE) would append # additional 'abCall' columns to the segmentation table instead of # replacing existing calls. # 2011-06-14 # o Updated code to recognize new column names. # 2011-05-29 # o Renamed all arguments, variables, function named 'tau' to 'delta'. # 2011-04-14 # o BUG FIX: Argument 'minSize' of callAB() and callLOH() had no effect. # 2011-04-12 # o Added argument 'minSize' to callAB() for PairedPSCBS. # o Added argument 'xorCalls' to callAB() for PairedPSCBS. # 2011-04-10 # o callAllelicBalance() calls callAB(). # 2011-04-09 # o Now callAllelicBalance(..., force=FALSE) skips the caller if allelic- # balance calls already exist. # 2011-04-08 # o Added Rdoc for callAllelicBalance() and callAllelicBalanceByDH(). # o Extracted from PairedPSCBS.CALL.R. # 2011-02-03 # o Updated default for 'tauAB' of callABandHighAI() and callABandLowC1() # to be estimated from data using estimateTauAB(). # 2010-12-07 # o Added callLowC1ByC1() and callABandLowC1(). # 2010-11-27 # o Corrected verbose output to call results. # 2010-11-26 [HB] # o Now all call functions estimate symmetric bootstrap quantiles for # convenince of plotting confidence intervals. # o BUG FIX: callABandHighAI() for PairedPSCBS used the old DH-only # bootstrap method. # o BUG FIX: The call functions, for instance callABandHighAI(), would throw # 'Error in quantile.default(x, probs = alpha) : missing values and NaN's # not allowed if 'na.rm' is FALSE' unless bootstrapTCNandDHByRegion() was # run before. # 2010-11-22 [HB] # o Added more verbose output to callABandHighAI(). # o Updated callAllelicBalanceByDH() and callExtremeAllelicImbalanceByDH() # to utilize bootstrapTCNandDHByRegion(). # 2010-10-25 [HB] # o Relaced argument 'ciRange' with 'alpha' for callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH(). # o Renamed callAllelicBalance() to callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH() to callExtremeAllelicImbalance(). # o Added arguments 'alphaAB' and 'alphaHighAI' to callABandHighAI(). # o Added sanity checks to the call methods. # o Now arguments '...' to callABandHighAI() are passed down. # o Now also arguments '...' to callAllelicBalance() and # callExtremeAllelicImbalance() are passed to bootstrapDHByRegion(). # o Added argument 'ciRange' to callAllelicBalance() and # callExtremeAllelicImbalance(). # 2010-09-16 [HB] # o Added callABandHighAI(). # o Added callAllelicBalance() and callExtremeAllelicImbalance(). # o Created. ############################################################################## PSCBS/R/CBS.updateMeansTogether.R0000644000176200001440000000472514564051545016047 0ustar liggesuserssetMethodS3("updateMeansTogether", "CBS", function(fit, idxList, ..., avg=c("mean", "median"), verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(fit, splitters=TRUE) # Argument 'idxList': if (!is.list(idxList)) { idxList <- list(idxList) } idxList <- lapply(idxList, FUN=function(idxs) { idxs <- Arguments$getIndices(idxs, max=nbrOfSegments) sort(unique(idxs)) }) # Argument 'avg': avg <- match.arg(avg) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating mean level estimates of multiple segments") verbose && cat(verbose, "Segments:") verbose && str(verbose, idxList) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up averaging functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - avgFUN <- get(avg, mode="function") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit, splitters=TRUE) nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Total number of segments: ", nbrOfSegments) for (ss in seq_along(idxList)) { idxs <- idxList[[ss]] fitT <- extractSegments(fit, idxs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fitT)) dataT <- getLocusData(fitT) segsT <- getSegments(fitT) y <- dataT$y # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update the TCN segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Recalculate TCN means") # (c) Adjust for missing values keep <- which(!is.na(y)) # (d) Update mean gamma <- avgFUN(y[keep]) # Sanity check .stop_if_not(length(gamma) == 0 || !is.na(gamma)) mus <- c(mean=gamma) verbose && print(verbose, mus) verbose && exit(verbose) for (key in names(mus)) { segs[idxs,key] <- mus[key] } } # for (ss ...) # Return results res <- fit res$output <- segs res <- setMeanEstimators(res, y=avg) verbose && exit(verbose) res }, private=TRUE) # updateMeansTogether() PSCBS/R/999.NonDocumentedObjects.R0000644000176200001440000000170714564051545016073 0ustar liggesusers###########################################################################/** # @RdocDocumentation "Non-documented objects" # # % Other missing docs # @eval "t <- readLines('../incl/999.missingdocs.txt'); t <- trim(unlist(strsplit(t, split=' '))); t <- t[nchar(t) > 0]; t2 <- gsub('\\[', '\\\\[', t); t <- unique(t); t <- sprintf('\\alias{%s}', t); paste(t, collapse='\n')" # # \description{ # This page contains aliases for all "non-documented" objects that # \code{R CMD check} detects in this package. # # Almost all of them are \emph{generic} functions that have specific # document for the corresponding method coupled to a specific class. # Other functions are re-defined by \code{setMethodS3()} to # \emph{default} methods. Neither of these two classes are non-documented # in reality. # The rest are deprecated methods. # } # # @author # # @keyword internal #*/########################################################################### PSCBS/R/PairedPSCBS.RESTRUCT.R0000644000176200001440000002040314564051545014731 0ustar liggesuserssetMethodS3("extractSegments", "PairedPSCBS", function(this, idxs, ..., verbose=FALSE) { fit <- this # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - updateSegRows <- function(segRows, idxs=NULL) { verbose && str(verbose, segRows) if (!is.null(idxs)) { segRows <- segRows[idxs,,drop=FALSE] } # verbose && cat(verbose, "Number of segments: ", nrow(segRows)) # verbose && str(verbose, segRows) # Treat splitters separately isSplitter <- (is.na(segRows[,1]) & is.na(segRows[,2])) ns <- segRows[,2] - segRows[,1] + 1L # verbose && cat(verbose, "Number of loci per segment:") # verbose && str(verbose, ns) ns <- ns[!isSplitter] from <- c(1L, cumsum(ns)[-length(ns)]+1L) to <- from + (ns - 1L) segRows[!isSplitter,1] <- from segRows[!isSplitter,2] <- to verbose && str(verbose, segRows) # Sanity check ns2 <- segRows[,2] - segRows[,1] + 1L ns2 <- ns2[!isSplitter] .stop_if_not(all(ns2 == ns)) segRows } # updateSegRows() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'idxs': idxs <- Arguments$getIndices(idxs, max=nbrOfSegments(fit, splitters=TRUE)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Extracting subset of segments") verbose && cat(verbose, "Number of segments: ", length(idxs)) verbose && str(verbose, idxs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) tcnSegRows <- fit$tcnSegRows dhSegRows <- fit$dhSegRows segs <- getSegments(fit) params <- fit$params # Sanity checks .stop_if_not(all(!is.na(data$chromosome) & !is.na(data$x))) .stop_if_not(length(tcnSegRows) == length(dhSegRows)) # Sanity checks if (!params$joinSegments) { stop("Cannot extract subset of segments unless CNs are segmented using joinSegments=TRUE.") } if (params$flavor == "tcn,dh") { stop("NOT IMPLEMENTED: Extracting a subset of segments is not supported for flavor '", params$flavor, "'.") } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update table of segments") segsT <- segs[idxs,,drop=FALSE] verbose && str(verbose, segsT) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset data accordingly # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update locus data") segRows <- tcnSegRows segRows <- segRows[idxs,,drop=FALSE] from <- segRows[[1]] to <- segRows[[2]] ok <- (!is.na(from) & !is.na(to)) from <- from[ok] to <- to[ok] keep <- logical(nrow(data)) for (rr in seq_along(from)) { keep[from[rr]:to[rr]] <- TRUE } keep <- which(keep) verbose && printf(verbose, "Identified %d (%.2f%%) of %d data rows:\n", length(keep), 100*length(keep)/nrow(data), nrow(data)) verbose && str(verbose, keep) dataT <- data[keep,,drop=FALSE] verbose && str(verbose, dataT) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update 'segRows' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update 'segRows'") segRows <- updateSegRows(tcnSegRows, idxs=idxs) d <- tcnSegRows[idxs,] - segRows # Sanity check .stop_if_not(identical(d[,1], d[,2])) d <- d[,1] verbose && cat(verbose, "Row deltas:") verbose && str(verbose, d) tcnSegRows <- tcnSegRows[idxs,,drop=FALSE] - d verbose && str(verbose, tcnSegRows) # Sanity checks segRows <- tcnSegRows .stop_if_not(suppressWarnings(max(segRows, na.rm=TRUE)) <= nrow(dataT)) drow <- segRows[-1,1] - segRows[-nrow(segRows),2] if (!all(is.na(drow) | (drow > 0))) { print(segRows) stop("INTERNAL ERROR: Generated 'tcnSegRows' is invalid, because it contains overlapping data chunks.") } dhSegRows <- dhSegRows[idxs,,drop=FALSE] - d verbose && str(verbose, dhSegRows) # Sanity checks segRows <- dhSegRows .stop_if_not(suppressWarnings(max(segRows, na.rm=TRUE)) <= nrow(dataT)) drow <- segRows[-1,1] - segRows[-nrow(segRows),2] .stop_if_not(all(is.na(drow) | (drow > 0))) if (!all(is.na(drow) | (drow > 0))) { print(segRows) stop("INTERNAL ERROR: Generated 'dhSegRows' is invalid, because it contains overlapping data chunks.") } verbose && exit(verbose) # Create new object res <- fit res$data <- dataT res$output <- segsT res$tcnSegRows <- tcnSegRows res$dhSegRows <- dhSegRows verbose && exit(verbose) res }, protected=TRUE) # extractSegments() ###########################################################################/** # @set "class=PairedPSCBS" # @RdocMethod mergeTwoSegments # # @title "Merge two neighboring segments" # # \description{ # @get "title" by recalculating segment statistics. # } # # @synopsis # # \arguments{ # \item{left}{An @integer specifying the segments (left, left+1) # to be merged.} # \item{update}{If @TRUE, segment statistics are updated.} # \item{verbose}{A @logical or a @see "R.utils::Verbose" object.} # \item{...}{Not used.} # } # # \value{ # Returns a @see "PairedPSCBS" with one less segment. # } # # @author "HB" # # \seealso{ # To drop regions (a connected set of segments) see \code{dropRegions()}. # @seeclass # } #*/########################################################################### setMethodS3("mergeTwoSegments", "PairedPSCBS", function(this, left, update=TRUE, verbose=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(this, splitters=TRUE) # Argument 'left': left <- Arguments$getIndex(left, max=nbrOfSegments-1L) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Merging two segments") verbose && printf(verbose, "Segments to be merged: %s & %s\n", left, left+1) verbose && cat(verbose, "Number of segments before merging: ", nbrOfSegments) verbose && cat(verbose, "Number of segments after merging: ", nbrOfSegments-1L) segs <- getSegments(this, splitters=TRUE) tcnSegRows <- this$tcnSegRows dhSegRows <- this$dhSegRows rows <- c(left,left+1) segsT <- segs[rows,,drop=FALSE] # Sanity check chrs <- segsT[["chromosome"]] if (chrs[1] != chrs[2]) { stop("Cannot merge segments that are on different chromosomes: ", chrs[1], " != ", chrs[2]) } # Merge segments segT <- segsT[1,] fields <- colnames(segsT) # (chromosome, tcnId, dhId) idxsUsed <- 1:3 # Starts idxs <- grep("Start$", fields) T <- as.matrix(segsT[,idxs,drop=FALSE]) segT[,idxs] <- colMins(T, na.rm=TRUE, useNames=FALSE) idxsUsed <- c(idxsUsed, idxs) # Ends idxs <- grep("End$", fields) T <- as.matrix(segsT[,idxs,drop=FALSE]) segT[,idxs] <- colMaxs(T, na.rm=TRUE, useNames=FALSE) idxsUsed <- c(idxsUsed, idxs) # Counts idxs <- grep("NbrOf", fields) segT[,idxs] <- colSums(segsT[,idxs,drop=FALSE]) idxsUsed <- c(idxsUsed, idxs) # "Invalidate" remaining entries if (update) { idxsTodo <- setdiff(seq_along(fields), idxsUsed) segT[,idxsTodo] <- NA } # Update segment table segs[rows[1],] <- segT segs <- segs[-rows[2],] # Update 'segRows' tables segRows <- tcnSegRows segRows[rows[1],2] <- segRows[rows[2],2] segRows <- segRows[-rows[2],] tcnSegRows <- segRows segRows <- dhSegRows segRows[rows[1],2] <- segRows[rows[2],2] segRows <- segRows[-rows[2],] dhSegRows <- segRows # Create results object res <- this res$output <- segs res$tcnSegRows <- tcnSegRows res$dhSegRows <- dhSegRows # Update the segment statistics? if (update) { res <- updateMeans(res) } verbose && exit(verbose) res }, private=TRUE) PSCBS/R/NonPairedPSCBS.R0000644000176200001440000002613014564051545014135 0ustar liggesusers###########################################################################/** # @RdocClass NonPairedPSCBS # # @title "The NonPairedPSCBS class" # # \description{ # @classhierarchy # # A NonPairedPSCBS is an object containing the results from the # Non-paired PSCBS method. # } # # \usage{NonPairedPSCBS(fit=list(), ...)} # # \arguments{ # \item{fit}{A @list structure containing the Non-paired PSCBS results.} # \item{...}{Not used.} # } # # \section{Fields and Methods}{ # @allmethods "public" # } # # @author "HB" # # \seealso{ # The @see "segmentByNonPairedPSCBS" method returns an object of this class. # } #*/########################################################################### setConstructorS3("NonPairedPSCBS", function(fit=list(), ...) { # Argument 'fit': if (!is.list(fit)) { stop("Argument 'fit' is not a list: ", class(fit)[1]) } extend(PSCBS(fit=fit, ...), "NonPairedPSCBS") }) setMethodS3("getLocusData", "NonPairedPSCBS", function(fit, ..., fields=c("asis", "full")) { # Argument 'fields': fields <- match.arg(fields) data <- NextMethod("getLocusData", fields="asis") if (fields == "full") { names <- colnames(data) data$isHet <- (data$muN == 1/2) # BACKWARD COMPATIBILITY: If 'rho' does not exists, calculate # it on the fly from 'betaT'. # NOTE: This should give an error in the future. /HB 2013-10-25 if (is.null(data$rho)) { data$rho <- 2*abs(data$betaT-1/2) data$rho[!data$isHet] <- NA_real_ warning("Locus-level DH signals ('rho') did not exist and were calculated from tumor BAFs ('betaT')") } data$c1 <- 1/2*(1-data$rho)*data$CT data$c2 <- data$CT - data$c1 data$isSNP <- (!is.na(data$betaT) | !is.na(data$muN)) data$type <- ifelse(data$isSNP, "SNP", "non-polymorphic locus") # Labels data$muNx <- c("AA", "AB", "BB")[2*data$muN + 1L] data$isHetx <- c("AA|BB", "AB")[data$isHet + 1L] } data }, protected=TRUE) # getLocusData() setMethodS3("callROH", "NonPairedPSCBS", function(fit, ...) { stop(sprintf("Cannot call ROH from '%s' data.", class(fit)[1L])) }, private=TRUE) # callROH() setMethodS3("updateMeans", "NonPairedPSCBS", function(fit, from=c("loci", "segments"), adjustFor=NULL, ..., avgTCN=c("asis", "mean", "median"), avgDH=c("asis", "mean", "median"), verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'from': from <- match.arg(from) # Argument 'adjustFor': if (!is.null(adjustFor)) { adjustFor <- Arguments$getCharacters(adjustFor) adjustFor <- tolower(adjustFor) knownValues <- c("ab", "loh", "roh") adjustFor <- match.arg(adjustFor, choices=knownValues, several.ok=TRUE) } # Argument 'avgTCN' & 'avgDH': avgTCN <- match.arg(avgTCN) avgDH <- match.arg(avgDH) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating mean level estimates") verbose && cat(verbose, "Adjusting for:") verbose && print(verbose, adjustFor) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up averaging functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (avgTCN == "asis" || avgDH == "asis") { est <- fit$params$meanEstimators if (avgTCN == "asis") { avgTCN <- est$tcn if (is.null(avgTCN)) avgTCN <- "mean" avgTCN <- match.arg(avgTCN) } if (avgDH == "asis") { avgDH <- est$dh if (is.null(avgDH)) avgDH <- "mean" avgDH <- match.arg(avgDH) } } avgList <- list( tcn = get(avgTCN, mode="function"), dh = get(avgDH, mode="function") ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- getSegments(fit, splitters=TRUE) segRows <- list(tcn=fit$tcnSegRows, dh=fit$dhSegRows) nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Assert that adjustments can be made # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.element("ab", adjustFor)) { if (!is.element("abCall", names(segs))) { adjustFor <- setdiff(adjustFor, "ab") stop("Cannot adjust for AB, because they haven't been called.") } } if (is.element("loh", adjustFor)) { if (!is.element("lohCall", names(segs))) { adjustFor <- setdiff(adjustFor, "loh") stop("Cannot adjust for LOH, because they haven't been called.") } } if (is.element("roh", adjustFor)) { if (!is.element("rohCall", names(segs))) { adjustFor <- setdiff(adjustFor, "roh") stop("Cannot adjust for ROH, because they haven't been called.") } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update the (TCN,DH) mean levels from locus-level data? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (from == "loci") { data <- getLocusData(fit) chromosome <- data$chromosome x <- data$x CT <- data$CT rho <- data$rho isSplitter <- isSegmentSplitter(fit) for (ss in seq_len(nbrOfSegments)[!isSplitter]) { verbose && enter(verbose, sprintf("Segment %d of %d", ss, nbrOfSegments)) seg <- segs[ss,] verbose && print(verbose, seg) chr <- seg[["chromosome"]] chrTag <- sprintf("chr%02d", chr) for (what in c("tcn", "dh")) { segRow <- segRows[[what]][ss,] # (a) A splitter - nothing todo? if (!is.finite(segRow[[1]]) || !is.finite(segRow[[2]])) { next } # (b) Identify units (loci) units <- segRow[[1]]:segRow[[2]] # (c) Adjust for missing values if (what == "tcn") { value <- CT } else if (what == "dh") { value <- rho } keep <- which(!is.na(value[units])) units <- units[keep] # (d) Update mean avgFUN <- avgList[[what]] gamma <- avgFUN(value[units]) # Sanity check .stop_if_not(length(units) == 0 || !is.na(gamma)) # Update the segment boundaries, estimates and counts key <- paste(what, "Mean", sep="") seg[[key]] <- gamma } verbose && print(verbose, seg) segs[ss,] <- seg verbose && exit(verbose) } # for (ss ...) } # if (from ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Adjust segment means from various types of calls # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (length(adjustFor) > 0) { verbose && enter(verbose, "Adjusting segment means") verbose && cat(verbose, "Adjusting for:") verbose && print(verbose, adjustFor) if (is.element("ab", adjustFor)) { verbose && enter(verbose, "Adjusting for AB") calls <- segs$abCall segs$dhMean[calls] <- 1/2 verbose && exit(verbose) } if (is.element("loh", adjustFor)) { verbose && enter(verbose, "Adjusting for LOH") calls <- segs$lohCall segs$dhMean[calls] <- 0 verbose && exit(verbose) } if (is.element("roh", adjustFor)) { verbose && enter(verbose, "Adjusting for ROH") calls <- segs$rohCall segs$dhMean[calls] <- NA_real_ verbose && exit(verbose) } verbose && exit(verbose) } # if (length(adjustFor) > 0) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update (C1,C2) mean levels # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update (C1,C2) per segment") # Append (C1,C2) estimates tcn <- segs$tcnMean dh <- segs$dhMean C1 <- 1/2*(1-dh)*tcn C2 <- tcn - C1 segs$c1Mean <- C1 segs$c2Mean <- C2 verbose && exit(verbose) # Return results res <- fit res$output <- segs res <- setMeanEstimators(res, tcn=avgTCN, dh=avgDH) verbose && exit(verbose) res }, private=TRUE) # updateMeans() setMethodS3("resegment", "NonPairedPSCBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Resegmenting a ", class(fit)[1], " object") # Use the locus-level data of the PairedPSCBS object data <- getLocusData(fit) class(data) <- "data.frame" drop <- c("rho", "betaTN", "index") keep <- !is.element(colnames(data), drop) data <- data[,keep] verbose && str(verbose, data) verbose && cat(verbose, "Number of loci: ", nrow(data)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup arguments to be passed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Overriding default arguments") segFcnName <- "segmentByPairedNonPSCBS" segFcn <- getMethodS3(segFcnName, "default") # (a) The default arguments formals <- formals(segFcn) formals <- formals[!sapply(formals, FUN=is.language)] formals <- formals[!sapply(formals, FUN=is.name)] drop <- c("chromosome", "x", "w", "CT", "betaT", "betaN", "muN", "...") keep <- !is.element(names(formals), drop) formals <- formals[keep] # (b) The arguments used in previous fit params <- fit$params keep <- is.element(names(params), names(formals)) params <- params[keep] # Don't trust 'tbn'! TODO. /HB 20111117 params$tbn <- NULL # (c) The arguments in '...' userArgs <- list(..., verbose=verbose) # (d) Merge args <- formals args2 <- c(params, userArgs) for (kk in seq_along(args2)) { value <- args2[[kk]] if (!is.null(value)) { key <- names(args2)[kk] if (!is.null(key)) { args[[key]] <- value } else { args <- c(args, list(value)) } } } # for (key ...) verbose && str(verbose, args[names(args) != "verbose"]) verbose && enter(verbose, sprintf("Calling %s()", segFcnName)) args <- c(list(data), args) verbose && cat(verbose, "Arguments:") verbose && str(verbose, args[names(args) != "verbose"]) verbose && exit(verbose) fit <- do.call(segFcnName, args) verbose && exit(verbose) verbose && exit(verbose) fit }, protected=TRUE) # resegment() ############################################################################## # HISTORY # 2013-04-23 # o BUG FIX: updateMeans() for PairedPSCBS and NonPairedPSCBS could # include a signal from a neighboring segment when averaging, iff # that signal was located at the exact locus of the change point. # 2013-04-09 # o Added callROH() for NonPairedPSCBS that throws an exception. # 2013-03-08 # o Added getLocusData() for NonPairedPSCBS. # 2013-01-15 # o regsegment() was defined for PairedPSCBS instead of NonPairedPSCBS. # 2012-04-21 # o Created from PairedPSCBS.R. ############################################################################## PSCBS/R/AbstractCBS.clearCalls.R0000644000176200001440000000133214564051545015617 0ustar liggesusers# Removes all segment calls and corresponding parameter estimates. setMethodS3("clearCalls", "AbstractCBS", function(fit, ...) { segs <- fit$output params <- fit$params # Drop all calls excl <- grep("Call$", colnames(segs)) if (length(excl) > 0L) { segs <- segs[,-excl] } # Drop all call parameters (AD HOC!) for (ff in c("deltaROH", "deltaAB", "deltaLOH")) { params[[ff]] <- NULL } fit$output <- segs fit$params <- params invisible(fit) }, protected=TRUE) ############################################################################## # HISTORY # 2013-10-24 # o Added clearCalls() for AbstractCBS. # o Created. ############################################################################## PSCBS/R/PairedPSCBS.EXTS.R0000644000176200001440000003455014564051545014251 0ustar liggesuserssetMethodS3("shiftTCN", "PairedPSCBS", function(fit, shift, update=TRUE, ...) { # Argument 'shift': shift <- Arguments$getDouble(shift, disallow=c("NA", "NaN", "Inf")) data <- getLocusData(fit) data$CT <- data$CT + shift fit$data <- data # Not needed anymore data <- NULL if (update) { fit <- updateMeans(fit, ...) } fit }, protected=TRUE) setMethodS3("bootstrapCIs", "PairedPSCBS", function(fit, ...) { # ... }, private=TRUE) ###########################################################################/** # @set "class=PairedPSCBS" # @RdocMethod extractTCNAndDHs # # @title "Extract TCN and DH mean levels per segment" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to \code{getSegments()}.} # } # # \value{ # Returns a @data.frame. # } # # @author "HB" # # \seealso{ # @seemethod "extractMinorMajorCNs". # @seeclass # } #*/########################################################################### setMethodS3("extractTCNAndDHs", "PairedPSCBS", function(fit, ...) { segs <- getSegments(fit, ...) .stop_if_not(!is.null(segs)) data <- segs[,c("tcnMean", "dhMean", "tcnNbrOfLoci", "dhNbrOfLoci"), drop=FALSE] data }, protected=TRUE) ###########################################################################/** # @set "class=PairedPSCBS" # @RdocMethod extractMinorMajorCNs # @aliasmethod extractC1C2 # # @title "Extract minor and major copy-number mean levels per segment" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a @data.frame. # } # # @author "HB" # # \seealso{ # @seemethod "extractTCNAndDHs" # @seeclass # } #*/########################################################################### setMethodS3("extractMinorMajorCNs", "PairedPSCBS", function(fit, ...) { data <- extractTCNAndDHs(fit, ...) gamma <- data[,1L] rho <- data[,2L] C1 <- 1/2*(1-rho)*gamma C2 <- gamma - C1 data[,1L] <- C1 data[,2L] <- C2 colnames(data)[1:2] <- c("C1", "C2") # Swap (C1,C2)? segs <- getSegments(fit, ...) flipped <- segs$c1c2Swap if (!is.null(flipped)) { idxs <- which(flipped) if (length(idxs) > 0L) { data[idxs,1:2] <- data[idxs,2:1] } } data }, protected=TRUE) setMethodS3("extractC1C2", "PairedPSCBS", function(...) { extractMinorMajorCNs(...) }, protected=TRUE) setMethodS3("extractCNs", "PairedPSCBS", function(fit, splitters=TRUE, ...) { data <- extractC1C2(fit, splitters=splitters, ...) data[,c("C1", "C2"), drop=FALSE] }) setMethodS3("extractDeltaC1C2", "PairedPSCBS", function(...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - X <- extractC1C2(..., splitters=TRUE, addGaps=TRUE) # (C1,C2) C1C2 <- X[,1:2,drop=FALSE] # Number of TCN and DH data points counts <- X[,3:4, drop=FALSE] # Not needed anymore X <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calculate (dC1,dC2) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (dC1, dC2) dC1C2 <- colDiffs(C1C2, useNames = FALSE) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Change-point weights # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Region weights from DH counts w <- counts[,2,drop=TRUE] w <- sqrt(w) w <- w / sum(w, na.rm=TRUE) # (a) Smallest of the two flanking (DH) counts cpw <- cbind(w[1:(length(w)-1)], w[2:length(w)]) cpw <- rowMins(cpw, na.rm=TRUE, useNames=FALSE) cpw[is.infinite(cpw)] <- NA cpw <- sqrt(cpw) cpwMin <- cpw / sum(cpw, na.rm=TRUE) # (b) Sum of region weights cpw <- w[1:(length(w)-1)] + w[2:length(w)] cpwAvg <- cpw / sum(cpw, na.rm=TRUE) cbind(dC1=dC1C2[,1], dC2=dC1C2[,2], wMin=cpwMin, wAvg=cpwAvg) }, protected=TRUE) setMethodS3("postsegmentTCN", "PairedPSCBS", function(fit, ..., force=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Post-segmenting TCNs") flavor <- fit$params$flavor if (!force && regexpr("&", flavor, fixed=TRUE) != -1) { verbose && cat(verbose, "Nothing to do. Already postsegmentTCN:ed: ", flavor) verbose && exit(verbose) return(fit) } joinSegments <- fit$params$joinSegments if (!joinSegments) { stop("Postsegmentation of TCNs is only implemented for the case when joinSegments=TRUE: ", joinSegments) } # Get mean estimators estList <- getMeanEstimators(fit, "tcn") avgTCN <- estList$tcn # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit) keep <- is.finite(segs$chromosome) segs <- segs[keep,,drop=FALSE] tcnSegRows <- fit$tcnSegRows[keep,,drop=FALSE] dhSegRows <- fit$dhSegRows[keep,,drop=FALSE] # Sanity check .stop_if_not(nrow(dhSegRows) == nrow(tcnSegRows)) .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) # .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRows[,1] <= dhSegRows[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRows[-nrow(dhSegRows),2] < dhSegRows[-1,1], na.rm=TRUE)) nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments) chromosome <- data$chromosome x <- data$x CT <- data$CT muN <- data$muN rho <- data$rho hasDH <- !is.null(rho) if (hasDH) { isHet <- !is.na(rho) isSnp <- isHet } else { isSnp <- !is.na(muN) isHet <- (isSnp & (muN == 1/2)) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update the TCN segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chromosomes <- getChromosomes(fit) nbrOfChromosomes <- length(chromosomes) verbose && cat(verbose, "Number of chromosomes: ", nbrOfChromosomes) verbose && print(verbose, chromosomes) for (cc in seq_len(nbrOfChromosomes)) { chr <- chromosomes[cc] chrTag <- sprintf("chr%02d", chr) verbose && enter(verbose, sprintf("Chromosome %d ('%s') of %d", cc, chrTag, nbrOfChromosomes)) rows <- which(is.element(segs[["chromosome"]], chr)) verbose && cat(verbose, "Rows:") verbose && print(verbose, rows) segsCC <- segs[rows,,drop=FALSE] tcnSegRowsCC <- tcnSegRows[rows,,drop=FALSE] dhSegRowsCC <- dhSegRows[rows,,drop=FALSE] nbrOfSegmentsCC <- nrow(segsCC) verbose && cat(verbose, "Number of segments: ", nbrOfSegmentsCC) tcnIds <- sort(unique(segsCC[["tcnId"]])) I <- length(tcnIds) for (ii in seq_len(I)) { tcnId <- tcnIds[ii] verbose && enter(verbose, sprintf("TCN segment #%d ('%s') of %d", ii, tcnId, I)) rowsII <- which(segsCC[["tcnId"]] == tcnId) J <- length(rowsII) # Nothing todo? if (!force && J == 1) { verbose && cat(verbose, "Nothing todo. Only one DH segmentation. Skipping.") verbose && exit(verbose) next } verbose && cat(verbose, "Rows:") verbose && print(verbose, rowsII) segsII <- segsCC[rowsII,,drop=FALSE] tcnSegRowsII <- tcnSegRowsCC[rowsII,,drop=FALSE] dhSegRowsII <- dhSegRowsCC[rowsII,,drop=FALSE] verbose && cat(verbose, "TCN & DH segRows before:") verbose && print(verbose, cbind(tcn=tcnSegRowsII, dh=dhSegRowsII)) segRowsRange <- range(c(tcnSegRowsII, dhSegRowsII), na.rm=TRUE) verbose && printf(verbose, "Range [%d,%d]\n", segRowsRange[1], segRowsRange[2]) tcnSegRowsIIBefore <- tcnSegRowsII nbrOfTCNsBefore <- segsII[1,"tcnNbrOfLoci"] # Sanity check .stop_if_not(diff(segRowsRange)+1L == nbrOfTCNsBefore) for (jj in seq_len(J)) { verbose && enter(verbose, sprintf("DH segment #%d of %d", jj, J)) seg <- segsII[jj,,drop=FALSE] tcnSegRow <- unlist(tcnSegRowsII[jj,,drop=FALSE], use.names=FALSE) dhSegRow <- unlist(dhSegRowsII[jj,,drop=FALSE], use.names=FALSE) # Sanity check .stop_if_not(all(is.na(tcnSegRow)) || (tcnSegRow[1] <= tcnSegRow[2])) .stop_if_not(all(is.na(dhSegRow)) || (dhSegRow[1] <= dhSegRow[2])) # Sanity check idxsTCN <- tcnSegRow[1]:tcnSegRow[2] nbrOfTCNs <- sum(!is.na(CT[idxsTCN])) .stop_if_not(nbrOfTCNs == nbrOfTCNsBefore) if (joinSegments) { # (a) The TCN segment should have identical (start,end) boundaries as the DH region xStart <- seg[["dhStart"]] xEnd <- seg[["dhEnd"]] verbose && printf(verbose, "[xStart,xEnd] = [%.0f,%.0f]\n", xStart, xEnd) .stop_if_not(xStart <= xEnd) # (b) Identify units units <- which(chromosome == chr & xStart <= x & x <= xEnd) # (c) Drop units that are outside both the TCN and DH segments keep <- (segRowsRange[1] <= units & units <= segRowsRange[2]) units <- units[keep] tcnSegRow <- range(units) verbose && printf(verbose, "[idxStart,idxEnd] = [%d,%d]\n", tcnSegRow[1], tcnSegRow[2]) verbose && cat(verbose, "Number of TCN loci: ", length(units)) # (c) Adjust for missing values keep <- which(!is.na(CT[units])) units <- units[keep] # (d) Adjust for DH boundaries if (jj > 1L) { minIdx <- tcnSegRowsII[jj-1L,2L, drop=TRUE] units <- units[units > minIdx] } if (jj < J) { maxIdx <- dhSegRowsII[jj+1L,1L, drop=TRUE] units <- units[units < maxIdx] } if (jj == J) { # maxIdx <- dhSegRowsII[jj+1L,1L, drop=TRUE] # units <- units[units < maxIdx] } tcnSegRow <- range(units) verbose && printf(verbose, "[idxStart,idxEnd] = [%d,%d]\n", tcnSegRow[1], tcnSegRow[2]) verbose && cat(verbose, "Number of non-missing TCN loci: ", length(units)) } else { stop("Not implemented yet.") # /HB 2010-12-02 } # if (joinSegments) gamma <- avgTCN(CT[units]) # Sanity check .stop_if_not(length(units) == 0 || !is.na(gamma)) # Update the segment boundaries, estimates and counts seg[["tcnStart"]] <- xStart seg[["tcnEnd"]] <- xEnd seg[["tcnMean"]] <- gamma seg[["tcnNbrOfLoci"]] <- length(units) seg[["tcnNbrOfSNPs"]] <- sum(isSnp[units]) seg[["tcnNbrOfHets"]] <- sum(isHet[units]) # Sanity check .stop_if_not(nrow(seg) == length(jj)) segsII[jj,] <- seg tcnSegRowsII[jj,] <- tcnSegRow verbose && exit(verbose) } # for (jj ...) # Sanity check .stop_if_not(nrow(segsII) == length(rowsII)) verbose && cat(verbose, "TCN & DH segRows afterward:") verbose && print(verbose, cbind(tcn=tcnSegRowsII, dh=dhSegRowsII)) ##print(segsII) # Sanity check nbrOfTCNsAfter <- sum(segsII[,"tcnNbrOfLoci"], na.rm=TRUE) verbose && cat(verbose, "Number of TCNs before: ", nbrOfTCNsBefore) verbose && cat(verbose, "Number of TCNs after: ", nbrOfTCNsAfter) .stop_if_not(nbrOfTCNsAfter >= nbrOfTCNsBefore) # Sanity check .stop_if_not(nrow(dhSegRowsII) == nrow(tcnSegRowsII)) .stop_if_not(all(tcnSegRowsII[,1] <= tcnSegRowsII[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRowsII[-nrow(tcnSegRowsII),2] < tcnSegRowsII[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRowsII[,1] <= dhSegRowsII[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRowsII[-nrow(dhSegRowsII),2] < dhSegRowsII[-1,1], na.rm=TRUE)) segsCC[rowsII,] <- segsII tcnSegRowsCC[rowsII,] <- tcnSegRowsII # Not needed anymore rowsII <- segsII <- NULL verbose && exit(verbose) } # for (ii ...) # Sanity check .stop_if_not(nrow(segsCC) == length(rows)) # Sanity check .stop_if_not(nrow(dhSegRowsCC) == nrow(tcnSegRowsCC)) .stop_if_not(all(tcnSegRowsCC[,1] <= tcnSegRowsCC[,2], na.rm=TRUE)) #################### if (!all(tcnSegRowsCC[-nrow(tcnSegRowsCC),2] < tcnSegRowsCC[-1,1], na.rm=TRUE)) { aa <- tcnSegRowsCC[-nrow(tcnSegRowsCC),2] bb <- tcnSegRowsCC[-1,1] delta <- bb - aa dd <- cbind(aa, bb, delta=delta) print(dd) dd <- subset(dd, delta == 0) print(dd) row <- dd[,1L,drop=TRUE] print(row) rr <- row + -10:10 dd <- data[rr,] rownames(dd) <- rr print(dd) print(tcnSegRowsII) } #################### .stop_if_not(all(tcnSegRowsCC[-nrow(tcnSegRowsCC),2] < tcnSegRowsCC[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRowsCC[,1] <= dhSegRowsCC[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRowsCC[-nrow(dhSegRowsCC),2] < dhSegRowsCC[-1,1], na.rm=TRUE)) segs[rows,] <- segsCC tcnSegRows[rows,] <- tcnSegRowsCC # Not needed anymore rows <- segsCC <- NULL verbose && exit(verbose) } # for (cc ...) # Sanity check .stop_if_not(nrow(dhSegRows) == nrow(tcnSegRows)) .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRows[,1] <= dhSegRows[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRows[-nrow(dhSegRows),2] < dhSegRows[-1,1], na.rm=TRUE)) verbose && enter(verbose, "Update (C1,C2) per segment") # Append (C1,C2) estimates tcn <- segs$tcnMean dh <- segs$dhMean C1 <- 1/2*(1-dh)*tcn C2 <- tcn - C1 segs$c1Mean <- C1 segs$c2Mean <- C2 verbose && exit(verbose) # Return results keep <- which(is.finite(fit$output$chromosome)) fitS <- fit fitS$data <- data fitS$output[keep,] <- segs fitS$tcnSegRows[keep,] <- tcnSegRows # Sanity check tcnSegRows <- fitS$tcnSegRows dhSegRows <- fitS$dhSegRows .stop_if_not(nrow(dhSegRows) == nrow(tcnSegRows)) .stop_if_not(all(tcnSegRows[,1] <= tcnSegRows[,2], na.rm=TRUE)) .stop_if_not(all(tcnSegRows[-nrow(tcnSegRows),2] < tcnSegRows[-1,1], na.rm=TRUE)) .stop_if_not(all(dhSegRows[,1] <= dhSegRows[,2], na.rm=TRUE)) .stop_if_not(all(dhSegRows[-nrow(dhSegRows),2] < dhSegRows[-1,1], na.rm=TRUE)) # Update 'flavor' fitS$params$flavor <- gsub(",", "&", flavor, fixed=TRUE) verbose && exit(verbose) fitS }, protected=TRUE) # postsegmentTCN() PSCBS/R/AbstractCBS.RESTRUCT.R0000644000176200001440000003426514564060172015034 0ustar liggesusers###########################################################################/** # @set "class=AbstractCBS" # @RdocDocumentation "Restructuring AbstractCBS objects" # @alias RestructPSCBS # # \description{ # This page describes available methods for restructuring an # @see "AbstractCBS" object. # # \itemize{ # \item @seemethod "extractChromosomes" / # @seemethod "extractChromosome" # - Extracts an @see "AbstractCBS" with the specified chromosomes. # # \item @seemethod "extractSegments" / # @seemethod "extractSegment" # - Extracts an @see "AbstractCBS" with the specified segments. # # \item @seemethod "extractRegions" / # @seemethod "extractRegion" # - Extracts an @see "AbstractCBS" with the specified regions # each of a certain size, where a region is defined as a # connected set of segments. # # \item @seemethod "dropRegions" / # @seemethod "dropRegion" # - Drops specified regions and returns an @see "AbstractCBS" # without them. # # \item @seemethod "dropChangePoint" / # @seemethod "mergeTwoSegments" # - Drops a change point by merging two neighboring segments # and recalculates the statistics for the merged segment # before returning an @see "AbstractCBS". # # \item @seemethod "dropChangePoints" # - Drops zero or more change points # and recalculates the segment statistics # before returning an @see "AbstractCBS". # # \item @seemethod "mergeThreeSegments" # - Merges a segment with its two flanking segments # and recalculates the statistics for the merged segment # before returning an @see "AbstractCBS". # } # # All of the above methods are implemented for @see "CBS" and # @see "PairedPSCBS" objects. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("renameChromosomes", "AbstractCBS", function(fit, from, to, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'from' & 'to': from <- Arguments$getIntegers(from, disallow=c("NaN", "Inf")) n <- length(from) to <- Arguments$getIntegers(to, disallow=c("NaN", "Inf"), length=c(n,n)) # Nothing to do? if (n == 0) { return(fit) } data <- getLocusData(fit) segs <- getSegments(fit, splitters=TRUE, simplify=FALSE) knownSegments <- fit$params$knownSegments for (cc in seq_len(n)) { chr <- from[cc] chrN <- to[cc] data$chromosome[data$chromosome == chr] <- chrN segs$chromosome[segs$chromosome == chr] <- chrN knownSegments$chromosome[knownSegments$chromosome == chr] <- chrN } # for (cc ...) fit <- setLocusData(fit, data) fit <- setSegments(fit, segs) fit$params$knownSegments <- knownSegments fit }, protected=TRUE) # renameChromosomes() setMethodS3("extractChromosomes", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("extractChromosome", "AbstractCBS", function(x, chromosome, ...) { # To please R CMD check this <- x # Argument 'chromosome': chromosome <- Arguments$getInteger(chromosome, disallow=c("NaN", "Inf")) extractChromosomes(this, chromosomes=chromosome, ...) }, protected=TRUE) setMethodS3("extractSegments", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("extractSegment", "AbstractCBS", function(this, idx, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'region': idx <- Arguments$getIndex(idx, max=nbrOfSegments(this, splitters=TRUE)) extractSegments(this, idxs=idx, ...) }, private=TRUE) # extractSegment() setMethodS3("extractRegions", "AbstractCBS", function(this, regions, H=1, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(this, splitters=TRUE) # Argument 'regions': regions <- Arguments$getIndices(regions, max=nbrOfSegments) # Argument 'H': H <- Arguments$getInteger(H, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Extract regions of a certain length") verbose && cat(verbose, "Left-most segments of regions to be extracted:") verbose && str(verbose, regions) verbose && cat(verbose, "Number of segments in each region: ", H) # Identify segments to keep Hs <- seq_len(H) regions <- regions - 1L regions <- as.list(regions) segments <- lapply(regions, FUN=function(region) region + Hs) segments <- unlist(segments, use.names=FALSE) segments <- sort(unique(segments)) verbose && cat(verbose, "Final set of segments to be extracted:") verbose && str(verbose, segments) res <- extractSegments(this, idxs=segments, ...) verbose && exit(verbose) res }, protected=TRUE) # extractRegions() setMethodS3("extractRegion", "AbstractCBS", function(this, region, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'region': region <- Arguments$getIndex(region, max=nbrOfSegments(this, splitters=TRUE)) extractRegions(this, regions=region, ...) }, private=TRUE) # extractRegion() ###########################################################################/** # @RdocMethod mergeTwoSegments # @aliasmethod dropChangePoint # # @title "Merge two neighboring segments" # # \description{ # @get "title" into one segment, which is done by dropping their # common change point and recalculating the segment statistics. # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns an @see "AbstractCBS" of the same class with one less segment. # } # # @author "HB" # # \seealso{ # To merge a segment and its two flanking segments, see # @seemethod "mergeThreeSegments". # To drop regions (a connected set of segments) # see @seemethod "dropRegions". # @seeclass # } #*/########################################################################### setMethodS3("mergeTwoSegments", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("dropChangePoint", "AbstractCBS", function(fit, idx, ...) { # Argument 'idx': ## max <- nbrOfChangePoints(fit, splitters=TRUE, ...) max <- nbrOfSegments(fit, splitters=TRUE, ...) - 1L idx <- Arguments$getIndex(idx, max=max) mergeTwoSegments(fit, left=idx, ...) }, protected=TRUE) ###########################################################################/** # @RdocMethod dropChangePoints # # @title "Drops zero or more change points" # # \description{ # @get "title", which is done by dropping one change point at the # time using @seemethod "dropChangePoint" # and recalculating the segment statistics at the end. # # \emph{NOTE: This method only works if there is only one chromosome.} # } # # @synopsis # # \arguments{ # \item{idxs}{An @integer @vector specifying the change points to be dropped.} # \item{update}{If @TRUE, segment statistics are updated.} # \item{...}{Other arguments passed to @seemethod "dropChangePoint" # and @seemethod "updateMeans".} # } # # \value{ # Returns an @see "AbstractCBS" of the same class with # \code{length(idxs)} segments. # } # # @author "HB" # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("dropChangePoints", "AbstractCBS", function(fit, idxs, update=TRUE, ...) { # Assert that there is only one chromosome chrs <- getChromosomes(fit) if (length(chrs) > 1) { stop("dropChangePoints() only support single-chromosome data: ", hpaste(chrs)) } # Argument 'idxs': ## max <- nbrOfChangePoints(fit, splitters=TRUE, ...) max <- nbrOfSegments(fit, splitters=TRUE, ...) - 1L idxs <- Arguments$getIndices(idxs, max=max) # Drop change points one by one idxs <- unique(idxs) idxs <- sort(idxs, decreasing=TRUE) for (ii in seq_along(idxs)) { idx <- idxs[ii] updateI <- update && (ii == length(idxs)) fit <- dropChangePoint(fit, idx=idx, update=updateI, ...) } # Update segment statistics? if (update) { fit <- updateMeans(fit, ...) } fit }, protected=TRUE) ###########################################################################/** # @RdocMethod mergeThreeSegments # # @title "Merge a segment and its two flanking segments" # # \description{ # @get "title" into one segment, and recalculating the segment statistics. # } # # @synopsis # # \arguments{ # \item{middle}{An @integer specifying the three segments # (middle-1, middle, middle+1) to be merged.} # \item{...}{Additional arguments passed to @seemethod "mergeTwoSegments".} # } # # \value{ # Returns an @see "AbstractCBS" of the same class with two less segment. # } # # @author "HB" # # \seealso{ # Internally @seemethod "mergeTwoSegments" is used. # @seeclass # } #*/########################################################################### setMethodS3("mergeThreeSegments", "AbstractCBS", function(fit, middle, ...) { # Argument 'middle': S <- nbrOfSegments(fit, splitters=TRUE) middle <- Arguments$getIndex(middle, range=c(2L, S)) # Assert that the three segments are on the same chromosome idxs <- middle + c(-1L, 0L, +1L) fitT <- extractSegments(fit, idxs) chrs <- getChromosomes(fitT) if (length(chrs) != 1L) { stop("Argument 'middle' specifies a segment that is at the very end of a chromosome: ", middle) } fitT <- NULL # Not needed anymore fit <- mergeTwoSegments(fit, left=middle, ...) fit <- mergeTwoSegments(fit, left=middle-1L, ...) fit }) # mergeThreeSegments() ###########################################################################/** # @RdocMethod dropRegions # @aliasmethod dropRegion # # @title "Drops chromosomal regions (a connected set of segments)" # # \description{ # @get "title" each of a certain size (number of segments). # \emph{None of the statistics are recalculated}. # } # # @synopsis # # \arguments{ # \item{regions}{An @integer @vector of length R specifying the indices # of the left most segment in each of the R regions to be dropped.} # \item{H}{A non-negative @integer specifying the size of each region, # i.e. the number of segments per region.} # \item{...}{Additional arguments passed to @seemethod "extractRegions".} # \item{asMissing}{If @TRUE, dropped segments are replaced by missing values, # otherwise they are truly dropped.} # \item{verbose}{A @logical or a @see "R.utils::Verbose" object.} # } # # \value{ # Returns an @see "AbstractCBS" object of the same class with (at most) # R*H segments dropped. # If some regions overlap (share segments), then fewer than R*H segments # are dropped. # } # # @author "HB" # # \seealso{ # Internally @seemethod "extractRegions" is used. # See also @seemethod "dropChangePoint" and @seemethod "mergeTwoSegments". # @seeclass # } #*/########################################################################### setMethodS3("dropRegions", "AbstractCBS", function(this, regions, H=1, ..., asMissing=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(this, splitters=TRUE) # Argument 'regions': regions <- Arguments$getIndices(regions, max=nbrOfSegments) # Argument 'H': H <- Arguments$getInteger(H, range=c(0,Inf)) # Argument 'asMissing': asMissing <- Arguments$getLogical(asMissing) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Dropping regions of a certain length") verbose && cat(verbose, "Left-most segments of regions to be dropped:") verbose && str(verbose, regions) verbose && cat(verbose, "Number of segments in each region: ", H) # Nothing to do? if (H == 0) { verbose && cat(verbose, "Nothing to do. No segments will be dropped.") verbose && exit(verbose) return(this) } # Identify segments to drop Hs <- seq_len(H) regions <- regions - 1L regions <- as.list(regions) regions <- lapply(regions, FUN=function(region) region + Hs) regions <- unlist(regions, use.names=FALSE) regions <- sort(unique(regions)) verbose && cat(verbose, "Final set of segments to be dropped:") verbose && str(verbose, regions) # Identify segments to keep allRegions <- seq_len(nbrOfSegments) keepSegments <- setdiff(allRegions, regions) verbose && cat(verbose, "Final set of segments to be kept:") verbose && str(verbose, keepSegments) dropped <- extractRegions(this, regions=regions, ...) res <- this if (length(regions) > 0) { if (asMissing) { segs <- getSegments(res, splitters=TRUE) pattern <- "(chromosome|id|start|end)$" # TODO/AD HOC: Should be class specific /HB 2011-10-17 pattern <- "(chromosome|id)$" excl <- grep(pattern, colnames(segs), ignore.case=TRUE, invert=TRUE) segs[regions,excl] <- NA res$output <- segs # TODO/AD HOC: Should be class specific /HB 2011-10-17 for (ff in grep("segRows", names(res), ignore.case=TRUE, value=TRUE)) { res[[ff]][regions,] <- NA } } else { res <- extractRegions(res, regions=keepSegments, ...) } } res$dropped <- dropped # Sanity check if (asMissing) { .stop_if_not(nbrOfSegments(res, splitters=TRUE) == nbrOfSegments(this, splitters=TRUE)) } else { .stop_if_not(nbrOfSegments(res, splitters=TRUE) + length(regions) == nbrOfSegments(this, splitters=TRUE)) } verbose && exit(verbose) res }, protected=TRUE) setMethodS3("dropRegion", "AbstractCBS", function(fit, region, ...) { # Argument 'region': region <- Arguments$getIndex(region) dropRegions(fit, regions=region, ...) }, protected=TRUE) setMethodS3("shiftTCN", "AbstractCBS", abstract=TRUE, protected=TRUE) PSCBS/R/PairedPSCBS.callCopyNeutral.R0000644000176200001440000004251214564051545016564 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod callCopyNeutral # @aliasmethod callNTCN # # @title "Calls segments that have a neutral total copy number" # # \description{ # @get "title" (NTCN), # i.e. that have a TCN that corresponds to the ploidy of the genome. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # call to use.} # \item{...}{Additional arguments passed to the caller.} # \item{minSize}{An optional @integer specifying the minimum number # of data points in order to call a segments. If fewer data points, # then the call is set to @NA regardless.} # \item{force}{If @FALSE, and copy-neutral calls already exits, # then nothing is done, otherwise the calls are done.} # } # # \value{ # Returns a @see "PairedPSCBS" object with copy-neutral calls. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "callCopyNeutralByTCNofAB". # } # #*/########################################################################### setMethodS3("callCopyNeutral", "PairedPSCBS", function(fit, flavor=c("TCN|AB"), ..., minSize=1, force=FALSE) { # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'minSize': minSize <- Arguments$getDouble(minSize, range=c(1,Inf)) # Already done? segs <- as.data.frame(fit) calls <- segs$ntcnCall if (!force && !is.null(calls)) { return(invisible(fit)) } if (flavor == "TCN|AB") { fit <- callCopyNeutralByTCNofAB(fit, ..., force=force) } else { stop("Cannot call copy-neutral states. Unsupported flavor: ", flavor) } # Don't call segments with too few data points? if (minSize > 1) { segs <- as.data.frame(fit) ns <- segs$dhNbrOfLoci calls <- segs$ntcnCall calls[ns < minSize] <- NA segs$ntcnCall <- calls fit$output <- segs # Not needed anymore segs <- calls <- NULL } return(invisible(fit)) }) setMethodS3("callNTCN", "PairedPSCBS", function(...) { callCopyNeutral(...) }) setMethodS3("calcStatsForCopyNeutralABs", "PairedPSCBS", function(fit, ..., force=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'force': force <- Arguments$getLogical(force) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "calcStatsForCopyNeutralABs") segsNTCN <- fit$params$copyNeutralStats if (!force && !is.null(segsNTCN)) { verbose && exit(verbose) return(fit) } verbose && enter(verbose, "Identifying copy neutral AB segments") # Getting AB calls segs <- getSegments(fit, splitters=TRUE) isAB <- segs$abCall if (is.null(isAB)) { stop("Cannot call copy-neutral states, because allelic-balance calls have not been made yet.") } nABs <- sum(isAB, na.rm=TRUE) verbose && cat(verbose, "Number of AB segments: ", nABs) if (nABs == 0L) { stop("Cannot call copy-neutral states, because none of the segments are in allelic balance.") } C <- segs[,"tcnMean", drop=TRUE] isAB <- segs[,"abCall", drop=TRUE] n <- segs[,"tcnNbrOfSNPs", drop=TRUE] # "tcnNbrOfLoci"? /HB 2010-09-09 # Give more weight to longer regions weights <- n # Identify copy neutral AB segments isNeutralAB <- findNeutralCopyNumberState(C=C, isAI=!isAB, weights=weights, ..., flavor="maxPeak", verbose=verbose) nAB <- sum(isNeutralAB, na.rm=TRUE) verbose && cat(verbose, "Number of copy-neutral AB segments: ", nAB) if (nAB == 0L) { stop("Cannot call copy-neutral states, because none of the segments in allelic-balance are copy neutral.") } verbose && enter(verbose, "Extracting all copy neutral AB segments across all chromosomes into one big segment") # (a) Extract those fitNTCN <- extractSegments(fit, isNeutralAB) verbose && print(verbose, fitNTCN) verbose && exit(verbose) # (b) Turn into a single-chromosome data set fitNTCN <- extractSegments(fitNTCN, !isSegmentSplitter(fitNTCN)) isSplitter <- is.na(fitNTCN$output$chromosome) fitNTCN$data$chromosome <- 0L fitNTCN$output$chromosome <- 0L fitNTCN$output$chromosome[isSplitter] <- NA # (c) Turn into one big segment by dropping all change points ## nCPs <- nbrOfChangePoints(fitNTCN, ignoreGaps=TRUE) nCPs <- nbrOfSegments(fitNTCN, splitters=TRUE) - 1L if (nCPs >= 1L) { verbose && enter(verbose, "Dropping all change points") fitNTCN <- dropChangePoints(fitNTCN, idxs=nCPs:1, ignoreGaps=TRUE, update=TRUE, verbose=less(verbose, 5)) verbose && exit(verbose) } # Sanity check .stop_if_not(nbrOfSegments(fitNTCN) == 1L) verbose && exit(verbose) verbose && enter(verbose, "Bootstrap the identified copy-neutral states") fitNTCN <- bootstrapTCNandDHByRegion(fitNTCN, what="segment", force=TRUE, ..., verbose=less(verbose, 50)) segsNTCN <- getSegments(fitNTCN, simplified=FALSE) names <- colnames(segsNTCN) excl <- grep("(^chromosome|Id|Start|End|Call)$", names) segsNTCN <- segsNTCN[,-excl,drop=FALSE] # Sanity check .stop_if_not(ncol(segsNTCN) > 0L) verbose && exit(verbose) verbose && print(verbose, segsNTCN) verbose && exit(verbose) fit$params$copyNeutralStats <- segsNTCN invisible(fit) }, protected=TRUE) # calcStatsForCopyNeutralABs() ###########################################################################/** # @RdocMethod estimateDeltaCN # @alias estimateDeltaCN # @alias estimateDeltaCN.CBS # # @title "Estimates the length of one total copy-number (TCN) unit" # # \description{ # @get "title" # } # # @synopsis # # \arguments{ # \item{scale}{A @numeric scale factor in (0,Inf) used for rescaling # (multiplying) the final estimate with.} # \item{flavor}{Specifies which type of estimator should be used.} # \item{kappa}{Estimate of background signal (used by the \code{"1-kappa"} method).} # \item{adjust, quantile}{Tuning parameters (used by the \code{"delta(mode)"} method).} # \item{...}{Not used.} # } # # \value{ # Returns a positive scalar @numeric. # } # # \details{ # For parent-specific copy-number (PSCN) data, the TCN unit length is # estimated as \eqn{(1-kappa)/2}, where \eqn{kappa} is estimated from # data (by @see "PSCBS::estimateKappa"). # # For total copy-number (TCN) data (only), # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("estimateDeltaCN", "PairedPSCBS", function(fit, scale=1, flavor=c("1-kappa", "delta(mode)"), kappa=estimateKappa(fit), adjust=0.2, quantile=0.95, ...) { # Argument 'scale': disallow <- c("NA", "NaN", "Inf") scale <- Arguments$getDouble(scale, range=c(0,Inf), disallow=disallow) # Argument 'flavor': flavor <- match.arg(flavor) if (flavor == "1-kappa") { # Argument 'kappa': disallow <- c("NA", "NaN", "Inf") kappa <- Arguments$getDouble(kappa, range=c(0,1), disallow=disallow) # Half a TCN unit length delta <- (1-kappa)/2 } else if (flavor == "delta(mode)") { # To please R CMD check rohCall <- abCall <- type <- NULL rm(list=c("rohCall", "abCall", "type")) segs <- getSegments(fit) segs <- subset(segs, !rohCall) segs <- subset(segs, !abCall) sigmas <- list() for (name in c("c1", "c2", "tcn")) { # FIXME/AD HOC: Here we assume certain fields fields <- sprintf("%s_%s%%", name, c(5,95)) if (all(is.element(fields, names(segs)))) { sigma <- segs[,fields[2]] - segs[,fields[1]] } else { if (name == "tcn") { n <- segs[,"tcnNbrOfLoci"] } else { n <- segs[,"dhNbrOfLoci"] n <- segs[,"tcnNbrOfLoci"] } n <- segs[,"tcnEnd"] - segs[,"tcnStart"] sigma <- 1/sqrt(n) } sigmas[[name]] <- sigma } segs <- segs[,c("c1Mean", "c2Mean", "tcnMean")] x <- unlist(segs, use.names=FALSE) w <- 1/unlist(sigmas, use.names=FALSE) keep <- is.finite(x) & is.finite(w) x <- x[keep]; w <- w[keep] w <- w / sum(w) d <- density(x, weights=w, adjust=adjust) ## plotDensity(d) tolMax <- max(d$y, na.rm=TRUE) tols <- seq(from=tolMax, to=0, length.out=100) stats <- data.frame(tolerance=tols, delta=NA_real_, count=NA_integer_) for (kk in seq_along(tols)) { tol <- tols[kk] px <- subset(findPeaksAndValleys(d, tol=tol), type == "peak")$x nx <- length(px) dx <- mean(diff(px)) stats[kk,"delta"] <- dx stats[kk,"count"] <- nx } stats <- subset(stats, is.finite(delta)) ## print(stats) delta <- median(stats[,"delta"]) } # Rescale delta <- scale * delta delta }, protected=TRUE) # estimateDeltaCN() ###########################################################################/** # @set class=PairedPSCBS # @RdocMethod callCopyNeutralByTCNofAB # # @title "Calls regions that are copy neutral" # # \description{ # @get "title" from the total copy numbers (TCNs) of segments # in allelic balance (AB). # } # # @synopsis # # \arguments{ # \item{fit}{A PairedPSCBS fit object as returned by # @see "PSCBS::segmentByPairedPSCBS".} # \item{delta}{A non-negative @double specifying the width of the # "acceptance" region. # Defaults to half of the distance between two integer TCN states, # i.e. 1/2. This argument should be shrunken as a function of # the amount of the normal contamination and other background signals.} # \item{alpha}{A @double in [0,0.5] specifying the significance level # of the confidence intervals used.} # \item{...}{Additional arguments passed to # @seemethod "calcStatsForCopyNeutralABs".} # \item{force}{If @TRUE, an already called object is skipped, otherwise not.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a @see "PairedPSCBS" fit object where a column # with the copy-neutral call. # } # # \details{ # ... # } # # %% examples "../incl/callCopyNeutralByTCNofAB.PairedPSCBS.Rex" # # @author "HB" # # @keyword internal #*/########################################################################### setMethodS3("callCopyNeutralByTCNofAB", "PairedPSCBS", function(fit, delta=estimateDeltaCN(fit), alpha=0.05, ..., force=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'delta': disallow <- c("NA", "NaN", "Inf") delta <- Arguments$getDouble(delta, range=c(0,Inf), disallow=disallow) # Argument 'alpha': disallow <- c("NA", "NaN", "Inf") alpha <- Arguments$getDouble(alpha, range=c(0,0.5), disallow=disallow) # Argument 'force': force <- Arguments$getLogical(force) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "callCopyNeutralByTCNofAB") verbose && cat(verbose, "Alpha: ", alpha) verbose && cat(verbose, "Delta CN: ", delta) segs <- getSegments(fit, splitters=TRUE, simplify=FALSE) # Nothing to do? if (!force && !is.null(segs$ntcnCall)) { # Copy neutral segments are already called verbose && cat(verbose, "Already called. Skipping.") verbose && exit(verbose) return(fit) } verbose && enter(verbose, "Calling copy-neutral segments") verbose && enter(verbose, "Retrieve TCN confidence intervals for all segments") # Calculate TCN bootstrap estimates, if missing probs <- c(alpha/2, 1-alpha/2) verbose && printf(verbose, "Interval: [%g,%g]\n", probs[1], probs[2]) keys <- sprintf("tcn_%g%%", 100*c(probs[1], probs[2])) missing <- keys[!is.element(keys, colnames(segs))] if (length(missing) > 0) { fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) segs <- getSegments(fit, splitters=TRUE, simplify=FALSE) # Assert that they exists missing <- keys[!is.element(keys, colnames(segs))] if (length(missing) > 0) { stop("INTERNAL ERROR: No such statistics: ", hpaste(missing)) } } verbose && exit(verbose) verbose && enter(verbose, "Estimating TCN confidence interval of copy-neutral AB segments") fit <- calcStatsForCopyNeutralABs(fit, ..., verbose=less(verbose, 5)) stats <- fit$params$copyNeutralStats verbose && cat(verbose, "Bootstrap statistics for copy-neutral AB segments:") verbose && print(verbose, stats) # Extract TCN stats cols <- grep("^(tcn_|tcnMean)", colnames(stats)) tcnStats <- stats[,cols,drop=FALSE] tcnStats <- unlist(tcnStats, use.names=TRUE) verbose && print(verbose, "TCN statistics:") verbose && print(verbose, tcnStats) # Assert confidence interval of interest missing <- keys[!is.element(keys, names(tcnStats))] if (length(missing) > 0) { stop("INTERNAL ERROR: No such statistics: ", hpaste(missing)) } mean <- tcnStats["tcnMean"] ci <- tcnStats[keys] verbose && printf(verbose, "%g%%-confidence interval of TCN mean for the copy-neutral state: [%g,%g] (mean=%g)\n", 100*(1-alpha), ci[1], ci[2], mean) verbose && exit(verbose) verbose && enter(verbose, "Identify all copy-neutral segments") verbose && printf(verbose, "DeltaCN: +/-%g\n", delta) range <- ci + delta*c(-1,+1) verbose && printf(verbose, "Call (\"acceptance\") region: [%g,%g]\n", range[1], range[2]) # Get TCN confidence intervals for all segments ci <- segs[,keys] ci <- as.matrix(ci) ## WAS: If a confidence interval is completely within the ## calling region, call it ## isNTCN <- (range[1] <= ci[,1] & ci[,2] <= range[2]) # If a segments confidence interval is completely outside the # copy-neutral region ("H_0"), that is, it is completely within # the rejection region ("H_1"), then the H_0 hypothesis that the # segment is copy-neutral in TCN is rejected. isLoss <- (ci[,2] < range[1]) # (a) completely below, or isGain <- (ci[,1] > range[2]) # (b) completely above. isNTCN <- (!isLoss & !isGain) # => completely inside => not rejected. nbrOfSegs <- nrow(segs) nbrOfABs <- sum(segs$abCall, na.rm=TRUE) nbrOfCNs <- sum(isNTCN, na.rm=TRUE) verbose && cat(verbose, "Total number of segments: ", nbrOfSegs) verbose && cat(verbose, "Number of segments called allelic balance: ", nbrOfABs) verbose && cat(verbose, "Number of segments called copy neutral: ", nbrOfCNs) nbrOfCNABs <- sum(isNTCN & segs$abCall, na.rm=TRUE) verbose && cat(verbose, "Number of AB segments called copy neutral: ", nbrOfCNABs) nbrOfCNNonABs <- sum(isNTCN & !segs$abCall, na.rm=TRUE) verbose && cat(verbose, "Number of non-AB segments called copy neutral: ", nbrOfCNNonABs) verbose && exit(verbose) # Sanity check # # All previously called AB regions should remain called here as well # .stop_if_not(all(isNTCN[isNeutralAB], na.rm=TRUE)) segs$ntcnCall <- isNTCN params <- fit$params params$deltaCN <- delta params$ntcnRange <- range fitC <- fit fitC$output <- segs fitC$params <- params verbose && exit(verbose) fitC }, protected=TRUE) # callCopyNeutralByTCNofAB() ############################################################################## # HISTORY # 2013-10-21 [HB] # o ROBUSTNESS: Now calcStatsForCopyNeutralABs() only bootstraps the # segments of the subsetted copy-neutral segments. # 2013-04-17 [HB] # o BUG FIX: Internal calcStatsForCopyNeutralABs() would give an error # if there was exactly two AH segments. # 2013-03-19 [HB] # o CALLING: Defined a formal hypthesis test for how segments are called # copy-neutral in TCN (NTCN), with the null hypothesis being that a # segment is NTCN. In order for a segment to not be NTCN, its confidence # interval has to be completely outside the null region. This changed # how callCopyNeutralByTCNofAB() for PairedPSCBS calls segments; it is # now a bit more conservative in rejecting NTCN. # o ROBUSTNESS: Now calcStatsForCopyNeutralABs() for PairedPSCBS does # a better job in identifying the TCN mode of the AB segments. # o Now callCopyNeutralByTCNofAB() records parameters 'deltaCN' and # 'ntcnRange'. # 2012-09-21 [HB] # o BUG FIX: Recent updates in how nbrOfChangePoints() is calculated, # caused callGNL() to throw an exception. Added argument 'ignoreGaps' # to nbrOfChangePoints(). # 2012-07-02 [HB] # o Renamed callTCNN() to callNTCN(). # 2012-06-24 [HB] # o Renamed callCN() to callTCNN() in order not to confuse it with # copy numbers in general. # 2012-06-03 [HB] # o Added estimateDeltaCN() for PairedPSCBS, which is calculated as a # function of the amount of normal contamination as currently estimated # by estimateKappa(). # o Now callCopyNeutralByTCNofAB() runs bootstrapping if quantiles are # missing. # 2012-02-25 [HB] # o Added internal calcStatsForCopyNeutralABs() for PairedPSCBS. # 2012-02-24 [HB] # o Now callCopyNeutralByTCNofAB() calls all segements, not just those in AB. # o Now the copy-neutral calls are named 'cnCall' (not 'neutralCall'). # o Added callCN()/callCopyNeutral(). # o Added callCopyNeutralByTCNofAB() for PairedPSCBS. The method was # adopted from callCopyNeutralRegions() in aroma.cn, whose history has # been incorporated below. # o Created. # 2010-09-15* [HB] # o Added Rdocs for callCopyNeutralRegions(). # 2010-09-09* [HB] # o Added callCopyNeutralRegions() for PairedPSCBS. ############################################################################## PSCBS/R/prememoize.R0000644000176200001440000000253714564051545013644 0ustar liggesusers.setupCacheRootPath <- function(...) { # Setup the cache root path, possibly by prompting the user. ns <- getNamespace("R.cache") setupCacheRootPath <- get("setupCacheRootPath", mode="function", envir=ns) setupCacheRootPath() } # .setupCacheRootPath() # CRAN POLICY: Add precalculated memoization files to the R.cache # directory, unless running interactively. The reason for doing this # is solely to make segmentBy[Non]PairedPSCBS examples to run faster # on R CMD check but not having to create these memoized files. # /HB 2012-11-05 # UPDATE: Now it will also gain first-time users. /HB 2013-09-27 .prememoize <- function(verbose=FALSE) { # Explictly setup cache root here, since it's only done by 'R.cache' # if that package is attached. Here we only load it. /HB 2013-09-27 .setupCacheRootPath() # This will make sure that the pre-generated calculations available # in the 'PSCBS' package are copied to the R.cache cache directory. # This regardless of whether a 'PSCBS' cache subdirectory exists # or not. /HB 2013-09-27 path <- "PSCBS/segmentByCBS/sbdry" pathS <- system.file("misc/_Rcache", path, package="PSCBS") pathD <- getCachePath(path) copyDirectory(pathS, pathD, copy.mode=FALSE, recursive=FALSE, overwrite=TRUE) if (verbose) { message("Added pre-memoized calculations: ", getAbsolutePath(pathD)) } } # .prememoize() PSCBS/R/CBS.R0000644000176200001440000004100314564051545012066 0ustar liggesusers###########################################################################/** # @RdocClass CBS # # @title "The CBS class" # # \description{ # A CBS object holds results from the # Circular Binary Segmentation (CBS) method # for \emph{one} sample for one or more chromosomes. # # @classhierarchy # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to the constructor of @see "AbstractCBS".} # } # # \section{Fields and Methods}{ # @allmethods "public" # } # # \section{Difference to DNAcopy object}{ # A CBS object is similar to DNAcopy objects with the major # difference that a CBS object holds only one sample, whereas # a DNAcopy object can hold more than one sample. # } # # \section{See also}{ # The @see "segmentByCBS" method returns an object of this class. # } # # @author "HB" #*/########################################################################### setConstructorS3("CBS", function(...) { extend(AbstractCBS(list(data=NULL, output=NULL), ...), "CBS") }) setMethodS3("all.equal", "CBS", function(target, current, check.attributes=FALSE, ...) { # Compare class attributes res <- all.equal(class(target), class(current)) if (!isTRUE(res)) { return(res) } # WORKAROUND: segmentByCBS() return getSegments(fit)$id without NA:s for # splitters, unless append() is used. # TO DO: Fix segmentByCBS() /HB 2011-10-08 segs <- getSegments(target) if (nrow(segs) > 0) { isSplitter <- isSegmentSplitter(target) segs[isSplitter, "sampleName"] <- NA target$output <- segs } segs <- getSegments(current) if (nrow(segs) > 0) { isSplitter <- isSegmentSplitter(current) segs[isSplitter, "sampleName"] <- NA current$output <- segs } # NOTE: Here arguments 'target' and 'current' are lists and does not # have to be passed explicitly (although they have been modified). # If passed explicity, note that they must be named *and* that the # first/dispatch argument have to be passed as 'object=target' # (and never as 'target=target'). /HB 2014-02-03 NextMethod("all.equal", object=target, current=current, check.attributes=check.attributes) }, protected=TRUE) ###########################################################################/** # @RdocMethod as.data.frame # # @title "Gets the table of segments" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a @data.frame, where each row corresponds to # a unique segment. # } # # @author # # \seealso{ # Utilizes @seemethod "getSegments". # @seeclass. # } # # @keyword internal #*/########################################################################### setMethodS3("as.character", "CBS", function(x, ...) { # To please R CMD check fit <- x s <- sprintf("%s:", class(fit)[1]) s <- c(s, sprintf("Sample name: %s", getSampleName(fit))) s <- c(s, sprintf("Signal type: %s", getSignalType(fit))) s <- c(s, sprintf("Number of segments: %d", nbrOfSegments(fit))) s <- c(s, sprintf("Number of loci: %d", nbrOfLoci(fit))) n <- getSegments(fit)$nbrOfLoci q <- quantile(n, probs=c(0.00, 0.05, 0.25, 0.50, 0.75, 0.95, 1.00), na.rm=TRUE) qs <- sprintf("%g [%s]", q, names(q)) s <- c(s, sprintf("Number of loci per segment: %s", paste(qs, collapse=", "))) chrs <- getChromosomes(fit) s <- c(s, sprintf("Chromosomes: [%d] %s", length(chrs), hpaste(chrs))) s <- c(s, sprintf("Standard deviation: %g", estimateStandardDeviation(fit))) tt <- grep("Call$", colnames(getLocusData(fit)), value=TRUE) s <- c(s, sprintf("Locus calls: [%d] %s", length(tt), hpaste(tt))) segs <- getSegments(fit) callCols <- grep("Call$", colnames(segs), value=TRUE) callTypes <- gsub("Call$", "", callCols) s <- c(s, sprintf("Types of segment calls: [%d] %s", length(callTypes), hpaste(callTypes))) for (kk in seq_along(callCols)) { key <- callCols[kk] type <- callTypes[kk] n <- sum(segs[,key], na.rm=TRUE) if (type == "loss") { nC <- sum(isWholeChromosomeLost(fit)) } else if (type == "gain") { nC <- sum(isWholeChromosomeGained(fit)) } else { nC <- NA } s <- c(s, sprintf("Number of chromosomes (segments) called '%s': %d (%d)", type, nC, n)) } GenericSummary(s) }, protected=TRUE) setMethodS3("as.data.frame", "CBS", function(x, ...) { getSegments(x, splitters=FALSE, ...) }, protected=TRUE) setMethodS3("getSignalType", "CBS", function(fit, ...) { type <- fit$signalType if (is.null(type)) type <- NA_character_ type }, protected=TRUE) setMethodS3("signalType", "CBS", function(fit, ...) { getSignalType(fit) }, protected=TRUE) "signalType<-" <- function(x, value) { UseMethod("signalType<-") } setMethodS3("signalType<-", "CBS", function(x, value) { fit <- x # Argument 'value': value <- Arguments$getCharacter(value) fit$signalType <- value fit }, private=TRUE, addVarArgs=FALSE) setMethodS3("getLocusSignalNames", "CBS", function(fit, ...) { data <- fit$data names <- colnames(data) if (is.element("y", names)) { return("y") } else if (is.element("CT", names)) { return("CT") } stop("INTERNAL ERROR: Unknown locus signal names: ", paste(names, collapse=", ")) }, protected=TRUE) setMethodS3("getSegmentTrackPrefixes", "CBS", function(fit, ...) { c("") }, protected=TRUE) setMethodS3("getLocusData", "CBS", function(fit, indices=NULL, addCalls=NULL, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'indices': if (!is.null(indices)) { indices <- Arguments$getIndices(indices) } # Argument 'addCalls': if (is.logical(addCalls)) { addCalls <- Arguments$getLogical(addCalls) if (!addCalls) { addCalls <- NULL } } else { addCalls <- Arguments$getCharacters(addCalls) } data <- fit$data # Append segment calls? if (length(addCalls) > 0) { callsL <- extractCallsByLocus(fit) if (is.character(addCalls)) { callsL <- callsL[,addCalls] } # Sanity check .stop_if_not(nrow(callsL) == nrow(data)) data <- cbind(data, callsL) } # Return requested indices if (!is.null(indices)) { # Map of final indices to current indices map <- match(indices, data$index) # Extract/expand... data <- data[map,] rownames(data) <- NULL # Sanity check .stop_if_not(nrow(data) == length(indices)) } data }, private=TRUE) # getLocusData() setMethodS3("isSegmentSplitter", "CBS", function(fit, ...) { segs <- fit$output isSplitter <- lapply(segs[-1], FUN=is.na) isSplitter <- Reduce("&", isSplitter) isSplitter }, protected=TRUE) setMethodS3("getSegments", "CBS", function(fit, simplify=FALSE, splitters=TRUE, addGaps=FALSE, ...) { # Argument 'splitters': splitters <- Arguments$getLogical(splitters) segs <- fit$output isSplitter <- isSegmentSplitter(fit) # Add 'sampleName' column? if (nrow(segs) > 0) { sampleName <- rep(getSampleName(fit), times=nrow(segs)) sampleName[isSplitter] <- NA_character_ if (!is.element("sampleName", colnames(segs))) { segs <- cbind(sampleName=I(sampleName), segs) } else { segs[,"sampleName"] <- sampleName } } # Drop chromosome splitters? if (!splitters) { segs <- segs[!isSplitter,] } # Add splitters for "gaps"... if (splitters && addGaps) { # Chromosome gaps n <- nrow(segs) chrs <- segs$chromosome gapsAfter <- which(diff(chrs) != 0L) gapsAfter <- gapsAfter[!is.na(chrs[gapsAfter])] nGaps <- length(gapsAfter) if (nGaps > 0L) { idxs <- seq_len(n) values <- rep(NA_integer_, times=nGaps) idxs <- insert(idxs, ats=gapsAfter+1L, values=values) segs <- segs[idxs,] } # Other gaps n <- nrow(segs) chrs <- segs$chromosome starts <- segs$tcnStart[-1L] ends <- segs$tcnEnd[-n] gapsAfter <- which(starts != ends) onSameChr <- (chrs[gapsAfter+1L] == chrs[gapsAfter] ) gapsAfter <- gapsAfter[onSameChr] nGaps <- length(gapsAfter) if (nGaps > 0L) { idxs <- seq_len(n) values <- rep(NA_integer_, times=nGaps) idxs <- insert(idxs, ats=gapsAfter+1L, values=values) segs <- segs[idxs,] } } segs }, private=TRUE) setMethodS3("getChangePoints", "CBS", function(fit, ...) { # Already available? cps <- fit$changepoints if (!is.null(cps)) return(cps) segs <- getSegments(fit, splitters=TRUE) tcn <- segs[["mean"]] n <- length(tcn) # Calculate observed (d) data D <- tcn[-n] - tcn[-1L] cps <- data.frame( d = D ) cps }, private=TRUE) # getChangePoints() setMethodS3("updateBoundaries", "CBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating boundaries") verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fit, splitters=FALSE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit, splitters=TRUE) segRows <- fit$segRows nbrOfSegments <- nrow(segs) chromosome <- data$chromosome x <- data$x y <- data$y w <- data$w hasWeights <- !is.null(w) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for (ss in seq_len(nbrOfSegments)) { verbose && enter(verbose, sprintf("Segment %d of %d", ss, nbrOfSegments)) segRow <- segRows[ss,] seg <- segs[ss,] # A splitter - nothing todo? if (is.na(segRow[[1]]) && is.na(segRow[[2]])) { next } # (a) Identify units (loci) units <- segRow[[1]]:segRow[[2]] verbose && cat(verbose, "Loci:") verbose && str(verbose, units) # (b) Extract signals ySS <- y[units] xSS <- x[units] cSS <- chromosome[units] if (hasWeights) { wSS <- w[units] } # (c) Drop missing values keep <- (!is.na(ySS) & !is.na(xSS) & !is.na(cSS)) if (hasWeights) { keep <- keep & (!is.na(wSS) & wSS > 0) } keep <- which(keep) ySS <- ySS[keep] xSS <- xSS[keep] cSS <- cSS[keep] if (hasWeights) { wSS <- wSS[keep] } units <- units[keep] verbose && cat(verbose, "Loci (non-missing):") verbose && str(verbose, units) # (d) Identify (chromosome, start, stop) .stop_if_not(all(cSS == cSS[1])) cSS <- cSS[1] xRange <- range(xSS, na.rm=TRUE) verbose && cat(verbose, "Range:") verbose && print(verbose, xRange) # (e) Update segment information seg$chromosome <- cSS seg$start <- xRange[1] seg$end <- xRange[2] segs[ss,] <- seg verbose && exit(verbose) } # for (ss ...) # Update results res <- fit res$output <- segs # Rejoin segments? if (isTRUE(res$params$joinSegments)) { res <- joinSegments(res, verbose=less(verbose,10)) } verbose && exit(verbose) res }, protected=TRUE) # updateBoundaries() setMethodS3("updateMeans", "CBS", function(fit, ..., avg=c("asis", "mean", "median"), verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'avg': avg <- match.arg(avg) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating mean level estimates") verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fit, splitters=FALSE)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit, splitters=TRUE) segRows <- fit$segRows nbrOfSegments <- nrow(segs) chromosome <- data$chromosome x <- data$x y <- data$y w <- data$w hasWeights <- !is.null(w) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up averaging functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (avg == "asis") { est <- fit$params$meanEstimators avg <- est$y if (is.null(avg)) avg <- "mean" avg <- match.arg(avg) } if (hasWeights) { if(avg == "mean") { avgFUN <- weighted.mean } else if(avg == "median") { avgFUN <- weightedMedian } else { stop("Value of argument 'avg' is not supported with weights: ", avg) } } else { avgFUN <- get(avg, mode="function") } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for (ss in seq_len(nbrOfSegments)) { verbose && enter(verbose, sprintf("Segment %d of %d", ss, nbrOfSegments)) segRow <- segRows[ss,] seg <- segs[ss,] # A splitter - nothing todo? if (!is.finite(segRow[[1]]) || !is.finite(segRow[[2]])) { next } # (a) Identify units (loci) units <- segRow[[1]]:segRow[[2]] # (b) Extract signals ySS <- y[units] if (hasWeights) { wSS <- w[units] } # (c) Drop missing values keep <- (!is.na(ySS)) if (hasWeights) { keep <- keep & (!is.na(wSS) & wSS > 0) } keep <- which(keep) ySS <- ySS[keep] if (hasWeights) { wSS <- wSS[keep] } units <- units[keep] nbrOfLoci <- length(units) # (d) Update mean if (hasWeights) { wSS <- wSS / sum(wSS) gamma <- avgFUN(ySS, w=wSS) } else { gamma <- avgFUN(ySS) } # Sanity check .stop_if_not(nbrOfLoci == 0 || !is.na(gamma)) # (d) Update the segment statistics seg$mean <- gamma seg$nbrOfLoci <- nbrOfLoci segs[ss,] <- seg verbose && exit(verbose) } # for (ss ...) # Return results res <- fit res$output <- segs res <- setMeanEstimators(res, y=avg) verbose && exit(verbose) res }, protected=TRUE) # updateMeans() setMethodS3("resegment", "CBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Resegmenting a ", class(fit)[1], " object") segFcnName <- "segmentByCBS" segFcn <- getMethodS3(segFcnName, "default") # Use the locus-level data of the segmentation object data <- getLocusData(fit) class(data) <- "data.frame" drop <- c("index") keep <- !is.element(colnames(data), drop) data <- data[,keep] verbose && str(verbose, data) verbose && cat(verbose, "Number of loci: ", nrow(data)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup arguments to be passed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Overriding default arguments") # (a) The default arguments formals <- formals(segFcn) formals <- formals[!sapply(formals, FUN=is.language)] formals <- formals[!sapply(formals, FUN=is.name)] drop <- c("chromosome", "x", "y", "w", "...") keep <- !is.element(names(formals), drop) formals <- formals[keep] # (b) The arguments used in previous fit params <- fit$params keep <- is.element(names(params), names(formals)) params <- params[keep] # (c) The arguments in '...' userArgs <- list(..., verbose=verbose) # (d) Merge args <- formals args2 <- c(params, userArgs) for (kk in seq_along(args2)) { value <- args2[[kk]] if (!is.null(value)) { key <- names(args2)[kk] if (!is.null(key)) { args[[key]] <- value } else { args <- c(args, list(value)) } } } # for (key ...) verbose && str(verbose, args[names(args) != "verbose"]) args <- c(list(data), args) verbose && cat(verbose, "Arguments with data:") verbose && str(verbose, args[names(args) != "verbose"]) verbose && exit(verbose) verbose && enter(verbose, sprintf("Calling %s()", segFcnName)) fit <- do.call(segFcnName, args) verbose && exit(verbose) verbose && exit(verbose) fit }, protected=TRUE) # resegment() PSCBS/R/PairedPSCBS.CALL.R0000644000176200001440000001321414564051545014173 0ustar liggesuserssetMethodS3("callABandHighAI", "PairedPSCBS", function(fit, deltaAB=estimateDeltaAB(fit), alphaAB=0.05, deltaHighAI=0.60, alphaHighAI=0.05, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments to be in allelic balance (AB) or extreme allelic imbalance (AI)") # Calculate DH confidence intervals, if not already done probs <- sort(unique(c(alphaAB, alphaHighAI))) probs <- sort(unique(c(probs, 1-probs))) fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) # Call allelic balance fit <- callAllelicBalanceByDH(fit, delta=deltaAB, alpha=alphaAB, ..., verbose=less(verbose, 1)) # Call high allelic imbalance fit <- callExtremeAllelicImbalanceByDH(fit, delta=deltaHighAI, alpha=alphaHighAI, ..., verbose=less(verbose, 1)) verbose && exit(verbose) fit }, private=TRUE) # callABandHighAI() setMethodS3("callABandLowC1", "PairedPSCBS", function(fit, deltaAB=estimateDeltaAB(fit), alphaAB=0.05, deltaLowC1=0.50, alphaLowC1=0.05, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling segments to be in allelic balance (AB) or low minor copy number (low C1)") # Calculate DH confidence intervals, if not already done probs <- sort(unique(c(alphaAB, alphaLowC1))) probs <- sort(unique(c(probs, 1-probs))) fit <- bootstrapTCNandDHByRegion(fit, probs=probs, ..., verbose=less(verbose, 50)) # Call allelic balance fit <- callAllelicBalanceByDH(fit, delta=deltaAB, alpha=alphaAB, ..., verbose=less(verbose, 1)) # Call high allelic imbalance fit <- callLowC1ByC1(fit, delta=deltaLowC1, alpha=alphaLowC1, ..., verbose=less(verbose, 1)) verbose && exit(verbose) fit }, private=TRUE) # callABandLowC1() setMethodS3("extractCallsByLocus", "PairedPSCBS", function(fit, ...) { # Extract locus data data <- getLocusData(fit, ...) nbrOfLoci <- nrow(data) # Extract segment data segs <- getSegments(fit, splitters=TRUE) # Identify segment calls callCols <- grep("Call$", colnames(segs)) nbrOfCalls <- length(callCols) chromosome <- data$chromosome x <- data$x y <- data[,3] # Allocate locus calls naValue <- NA callsL <- matrix(naValue, nrow=nbrOfLoci, ncol=nbrOfCalls) colnames(callsL) <- colnames(segs)[callCols] callsL <- as.data.frame(callsL) # For each segment... for (ss in seq_len(nrow(segs))) { seg <- segs[ss,] idxs <- which(chromosome == seg$chromosome & seg$tcnStart <= x & x <= seg$tcnEnd) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) # Sanity check ## .stop_if_not(length(idxs) == seg$tcnNbrOfLoci) callsSS <- seg[callCols] for (cc in seq_len(nbrOfCalls)) { callsL[idxs,cc] <- callsSS[,cc] } } # for (ss ...) # The calls for loci that have missing annotations or observations, # should also be missing, i.e. NA. nok <- (is.na(chromosome) | is.na(x) | is.na(y)) callsL[nok,] <- NA # Sanity check .stop_if_not(nrow(callsL) == nbrOfLoci) .stop_if_not(ncol(callsL) == nbrOfCalls) callsL }, private=TRUE) # extractCallsByLocus() ############################################################################## # HISTORY # 2013-03-22 # o Added extractCallsByLocus() for PairedPSCBS. # 2011-06-14 # o Updated code to recognize new column names. # 2011-05-29 # o Renamed all arguments, variables, function named 'tau' to 'delta'. # 2011-02-03 # o Updated default for 'tauAB' of callABandHighAI() and callABandLowC1() # to be estimated from data using estimateTauAB(). # 2010-12-07 # o Added callLowC1ByC1() and callABandLowC1(). # 2010-11-27 # o Corrected verbose output to call results. # 2010-11-26 [HB] # o Now all call functions estimate symmetric bootstrap quantiles for # convenince of plotting confidence intervals. # o BUG FIX: callABandHighAI() for PairedPSCBS used the old DH-only # bootstrap method. # o BUG FIX: The call functions, for instance callABandHighAI(), would throw # 'Error in quantile.default(x, probs = alpha) : missing values and NaN's # not allowed if 'na.rm' is FALSE' unless bootstrapTCNandDHByRegion() was # run before. # 2010-11-22 [HB] # o Added more verbose output to callABandHighAI(). # o Updated callAllelicBalanceByDH() and callExtremeAllelicImbalanceByDH() # to utilize bootstrapTCNandDHByRegion(). # 2010-10-25 [HB] # o Relaced argument 'ciRange' with 'alpha' for callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH(). # o Renamed callAllelicBalance() to callAllelicBalanceByDH() and # callExtremeAllelicImbalanceByDH() to callExtremeAllelicImbalance(). # o Added arguments 'alphaAB' and 'alphaHighAI' to callABandHighAI(). # o Added sanity checks to the call methods. # o Now arguments '...' to callABandHighAI() are passed down. # o Now also arguments '...' to callAllelicBalance() and # callExtremeAllelicImbalance() are passed to bootstrapDHByRegion(). # o Added argument 'ciRange' to callAllelicBalance() and # callExtremeAllelicImbalance(). # 2010-09-16 [HB] # o Added callABandHighAI(). # o Added callAllelicBalance() and callExtremeAllelicImbalance(). # o Created. ############################################################################## PSCBS/R/PairedPSCBS.R0000644000176200001440000001705014564051545013463 0ustar liggesusers###########################################################################/** # @RdocClass PairedPSCBS # # @title "The PairedPSCBS class" # # \description{ # @classhierarchy # # A PairedPSCBS is an object containing the results from the # Paired PSCBS method. # } # # \usage{PairedPSCBS(fit=list(), ...)} # # \arguments{ # \item{fit}{A @list structure containing the Paired PSCBS results.} # \item{...}{Not used.} # } # # \section{Fields and Methods}{ # @allmethods "public" # } # # @author "HB" # # \seealso{ # The @see "segmentByPairedPSCBS" method returns an object of this class. # } #*/########################################################################### setConstructorS3("PairedPSCBS", function(fit=list(), ...) { # Argument 'fit': if (!is.list(fit)) { stop("Argument 'fit' is not a list: ", class(fit)[1]) } extend(PSCBS(fit=fit, ...), "PairedPSCBS") }) setMethodS3("getLocusData", "PairedPSCBS", function(fit, ..., fields=c("asis", "full")) { # Argument 'fields': fields <- match.arg(fields) data <- NextMethod("getLocusData", fields="asis") if (fields == "full") { names <- colnames(data) # Genotype calls if (!is.element("muN", names)) { if (is.element("rho", names)) { data$muN <- rep(NA_real_, times=length(data$rho)) data$muN[is.finite(data$rho)] <- 1/2 } else if (is.element("betaN", names)) { data$muN <- callNaiveGenotypes(data$betaN) } else { stop("Cannot identify heterozygous SNPs or genotypes") } } data$isHet <- (data$muN == 1/2) # BACKWARD COMPATIBILITY: If 'rho' does not exists, calculate # it on the fly from 'betaT'. # NOTE: This should give an error in the future. /HB 2013-10-25 if (is.null(data$rho)) { data$rho <- 2*abs(data$betaT-1/2) data$rho[!data$isHet] <- NA_real_ warning("Locus-level DH signals ('rho') did not exist and were calculated from tumor BAFs ('betaT')") } data$c1 <- 1/2*(1-data$rho)*data$CT data$c2 <- data$CT - data$c1 # TumorBoost BAFs if (!is.element("rhoN", names)) { if (!is.element("betaTN", names) && is.element("betaN", names)) { data$betaTN <- normalizeTumorBoost(betaN=data$betaN, betaT=data$betaT, muN=data$muN) } if (is.element("betaTN", names)) { data$rhoN <- 2*abs(data$betaTN-1/2) data$rhoN[!data$isHet] <- NA_real_ data$c1N <- 1/2*(1-data$rhoN)*data$CT data$c2N <- data$CT - data$c1N } if (all(is.element(c("betaN", "betaT"), names))) { data$isSNP <- (!is.na(data$betaT) | !is.na(data$betaN)) data$type <- ifelse(data$isSNP, "SNP", "non-polymorphic locus") } } # Labels data$muNx <- c("AA", "AB", "BB")[2*data$muN + 1L] data$isHetx <- c("AA|BB", "AB")[data$isHet + 1L] } data }, protected=TRUE) # getLocusData() setMethodS3("resegment", "PairedPSCBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Resegmenting a ", class(fit)[1], " object") # Use the locus-level data of the PairedPSCBS object data <- getLocusData(fit) class(data) <- "data.frame" drop <- c("rho", "betaTN", "index") keep <- !is.element(colnames(data), drop) data <- data[,keep] verbose && str(verbose, data) verbose && cat(verbose, "Number of loci: ", nrow(data)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup arguments to be passed # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Overriding default arguments") segFcnName <- "segmentByPairedPSCBS" segFcn <- getMethodS3(segFcnName, "default") # (a) The default arguments formals <- formals(segFcn) formals <- formals[!sapply(formals, FUN=is.language)] formals <- formals[!sapply(formals, FUN=is.name)] drop <- c("chromosome", "x", "w", "CT", "thetaT", "thetaN", "betaT", "betaN", "muN", "rho", "preserveScale", "...") keep <- !is.element(names(formals), drop) formals <- formals[keep] # (b) The arguments used in previous fit params <- fit$params keep <- is.element(names(params), names(formals)) params <- params[keep] # Don't trust 'tbn'! TODO. /HB 20111117 params$tbn <- NULL # (c) The arguments in '...' userArgs <- list(..., verbose=verbose) # (d) Merge args <- formals args2 <- c(params, userArgs) for (kk in seq_along(args2)) { value <- args2[[kk]] if (!is.null(value)) { key <- names(args2)[kk] if (!is.null(key)) { args[[key]] <- value } else { args <- c(args, list(value)) } } } # for (key ...) verbose && str(verbose, args[names(args) != "verbose"]) verbose && enter(verbose, sprintf("Calling %s()", segFcnName)) args <- c(list(data), args) verbose && cat(verbose, "Arguments:") verbose && str(verbose, args[names(args) != "verbose"]) verbose && exit(verbose) fit <- do.call(segFcnName, args) verbose && exit(verbose) verbose && exit(verbose) fit }, protected=TRUE) # resegment() setMethodS3("adjustPloidyScale", "PairedPSCBS", function(fit, scale, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (a) Update locus-level data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) names <- c("CT") for (ff in names) { data[[ff]] <- scale * data[[ff]] } fit$data <- data ## fit <- setLocusData(fit, data) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (b) Update segment-level data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- getSegments(fit) # Adjust segment levels names <- grep("^(tcn|c1|c2)(Mean|_.*%)$", names(segs), value=TRUE) for (ff in names) { segs[[ff]] <- scale * segs[[ff]] } # Clear segment calls names <- c("lohCall", "ntcnCall") for (ff in names) { segs[[ff]] <- NULL } fit$output <- segs ## fit <- setSegments(fit, sets) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # (c) Update parameter estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - params <- fit$params fields <- c("copyNeutralStats", "deltaCN", "ntcnRange", "deltaLowC1") params[fields] <- NULL fit$params <- params fit }, protected=TRUE) # adjustPloidyScale() ############################################################################## # HISTORY # 2014-03-30 # o Update resegment() for PairedPSCBS to handle 'thetaT' and 'thetaN'. # 2013-10-25 # o BUG FIX: The 'rho' signals returned by getLocusData(..., fields="full") # for PairedPSCBS would have values also for homozygote SNPs. # 2013-03-08 # o Added getLocusData() for PairedPSCBS. # 2012-04-21 # o CLEANUP: Moved getSegmentSizes() from PairedPSCBS to PSCBS. # 2011-11-21 # o BUG FIX: resegment() was trying to call segmentByCBS() instead # of segmentByPairedPSCBS(). # 2011-11-17 # o Added resegment() for PairedPSCBS for easy resegmentation. # 2011-10-02 # o CLEANUP: Moved print() and as.data.frame() to PSCBS. # o Added Rdoc help. # o Now the constructor of PairedPSCBS calls that of PSCBS. # 2011-06-28 # o DOCUMENTATION: Added Rd help for as.data.frame() of PairedPSCBS. # 2011-04-08 # o Added formal constructor for the PairedPSCBS class. # o Created. ############################################################################## PSCBS/R/PairedPSCBS.estimateDeltaLOH.R0000644000176200001440000001700014564060172016601 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateDeltaLOH # # @title "Estimate a threshold for calling LOH from DH" # # \description{ # @get "title" to be used by the @seemethod "callLOH" method. # } # # @synopsis # # \arguments{ # \item{flavor}{A @character string specifying which type of # estimator to use.} # \item{...}{Additional arguments passed to the estimator.} # \item{max}{(Optional) The maximum estimate allowed. If greater than # this value, the estimate will be truncated.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the threshold estimate as a @numeric scalar or -@Inf. # In case it is not possible to estimate the LOH threshold, then # -@Inf is returned. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "estimateDeltaLOHByMinC1ForNonAB". # } # #*/########################################################################### setMethodS3("estimateDeltaLOH", "PairedPSCBS", function(this, flavor=c("minC1|nonAB"), ..., max=Inf, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'max': max <- Arguments$getDouble(max, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating DH threshold for calling LOH") verbose && cat(verbose, "flavor: ", flavor) if (flavor == "minC1|nonAB") { delta <- estimateDeltaLOHByMinC1ForNonAB(this, ..., verbose=verbose) } else { stop("Unkown flavor: ", flavor) } verbose && printf(verbose, "delta: %.3g\n", delta) # Truncate estimate? if (delta > max) { warning("Estimated delta (%.3g) was greater than the maximum allowed value (%.3g). The latter will be used instead.", delta, max) delta <- max verbose && printf(verbose, "Max delta: %.3g\n", max) verbose && printf(verbose, "Truncated delta: %.3g\n", delta) } verbose && exit(verbose) delta }) # estimateDeltaLOH() ###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateDeltaLOHByMinC1ForNonAB # # @title "Estimate a threshold for calling LOH from DH" # # \description{ # @get "title" based on the location of guessed C1=0 and C1=1 peaks. # } # # @synopsis # # \arguments{ # \item{midpoint}{A @numeric scalar in [0,1] specifying the relative # position of the midpoint between the estimated locations of # C1=0 and C1=1 mean parameters.} # \item{maxC}{Maximum total copy number of a segment in order to # be included in the initial set of segments.} # \item{...}{Not used.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the estimated LOH threshold as a @numeric scalar or -@Inf. # In case it is not possible to estimate the LOH threshold, then # -@Inf is returned. # } # # \details{ # This method requires that calls for allelic balances already have # been me made, cf. @seemethod "callAllelicBalance". # } # # \section{Algorithm}{ # \itemize{ # \item Grabs the segment-level C1 estimates. # \item Calculate segment weights proportional to the number of heterozygous SNPs. # \item Estimate the C1=1 location as the weighted median C1 for segments that have been called to be in allelic balance. # \item Estimate the C1=0 location as the smallest C1 among segments that are not in allelic balance. # \item Let the LOH threshold be the midpoint of the estimates C1=0 and C1=1 locations. # } # } # # @author "HB" # # \seealso{ # Instead of calling this method explicitly, it is recommended # to use the @seemethod "estimateDeltaLOH" method. # } # # @keyword internal #*/########################################################################### setMethodS3("estimateDeltaLOHByMinC1ForNonAB", "PairedPSCBS", function(this, midpoint=1/2, maxC=3*(ploidy(this)/2), ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'midpoint': midpoint <- Arguments$getDouble(midpoint, range=c(0,1)) # Argument 'maxC': maxC <- Arguments$getDouble(maxC, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating DH threshold for calling LOH as the midpoint between guessed C1=0 and C1=1") segs <- getSegments(this, splitters=FALSE) nbrOfSegments <- nrow(segs) verbose && printf(verbose, "Argument 'midpoint': %.3g\n", midpoint) verbose && cat(verbose, "Number of segments: ", nbrOfSegments) # Getting AB calls isAB <- segs$abCall if (is.null(isAB)) { stop("Cannot estimate delta_LOH because allelic-balance calls have not been made yet.") } nbrOfAB <- sum(isAB, na.rm=TRUE) verbose && printf(verbose, "Number of segments in allelic balance: %d (%.1f%%) of %d\n", nbrOfAB, 100*nbrOfAB/nbrOfSegments, nbrOfSegments) # Sanity check if (nbrOfAB == 0) { stop("There are no segments in allelic balance.") } nbrOfNonAB <- sum(!isAB, na.rm=TRUE) verbose && printf(verbose, "Number of segments not in allelic balance: %d (%.1f%%) of %d\n", nbrOfNonAB, 100*nbrOfNonAB/nbrOfSegments, nbrOfSegments) segsNonAB <- segs[which(!isAB),,drop=FALSE] # Sanity check if (nbrOfNonAB == 0) { msg <- sprintf("All %d segments are in allelic balance. Cannot estimate DeltaLOH, which requires that at least one segment must be in allelic imbalance. Returning -Inf instead.", nbrOfSegments) warning(msg) return(-Inf) } # Identify segments in AB and with small enough TCNs C <- segs$tcnMean keep <- which(isAB & C <= maxC) verbose && printf(verbose, "Number of segments in allelic balance and TCN <= %.2f: %d (%.1f%%) of %d\n", maxC, length(keep), 100*length(keep)/nbrOfSegments, nbrOfSegments) # Sanity check if (length(keep) == 0) { stop("There are no segments in allelic balance with small enough total CN.") } # (a) Estimate mean C1 level of AB segments segsT <- segs[keep,,drop=FALSE] C <- segsT$tcnMean n <- segsT$dhNbrOfLoci w <- n/sum(n) C1 <- C/2 # Called AB! verbose && printf(verbose, "C: %s\n", hpaste(sprintf("%.3g", C))) verbose && printf(verbose, "Corrected C1 (=C/2): %s\n", hpaste(sprintf("%.3g", C1))) verbose && printf(verbose, "Number of DHs: %s\n", hpaste(n)) verbose && printf(verbose, "Weights: %s\n", hpaste(sprintf("%.3g", w))) muC1atAB <- weightedMedian(C1, w=w, na.rm=TRUE) verbose && printf(verbose, "Weighted median of (corrected) C1 in allelic balance: %.3f\n", muC1atAB) # (b) Estimate mean C1 level of non-AB segments C1 <- segsNonAB$c1Mean muC1atNonAB <- min(C1, na.rm=TRUE) idxs <- which(C1 <= muC1atNonAB) n <- segsNonAB$dhNbrOfLoci[idxs] verbose && printf(verbose, "Smallest C1 among segments not in allelic balance: %.3g\n", muC1atNonAB) verbose && printf(verbose, "There are %d segments with in total %d heterozygous SNPs with this level.\n", length(idxs), n) # Sanity check .stop_if_not(muC1atNonAB < muC1atAB) delta <- midpoint * (muC1atAB + muC1atNonAB) verbose && printf(verbose, "Midpoint between the two: %.3g\n", delta) verbose && exit(verbose) delta }, private=TRUE) # estimateDeltaLOHByMinC1AtNonAB() PSCBS/R/PairedPSCBS.PRUNE.R0000644000176200001440000000020414564051545014344 0ustar liggesuserssetMethodS3("seqOfSegmentsByDP", "PairedPSCBS", function(fit, by=c("CT", "rho"), ...) { NextMethod("seqOfSegmentsByDP", by=by) }) PSCBS/R/PairedPSCBS.updateMeansTogether.R0000644000176200001440000000611314564051545017430 0ustar liggesuserssetMethodS3("updateMeansTogether", "PairedPSCBS", function(fit, idxList, ..., avgTCN=c("mean", "median"), avgDH=c("mean", "median"), verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(fit, splitters=TRUE) # Argument 'idxList': if (!is.list(idxList)) { idxList <- list(idxList) } idxList <- lapply(idxList, FUN=function(idxs) { idxs <- Arguments$getIndices(idxs, max=nbrOfSegments) sort(unique(idxs)) }) # Argument 'avgTCN' & 'avgDH': avgTCN <- match.arg(avgTCN) avgDH <- match.arg(avgDH) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Updating mean level estimates of multiple segments") verbose && cat(verbose, "Segments:") verbose && str(verbose, idxList) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setting up averaging functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - avgList <- list( tcn = get(avgTCN, mode="function"), dh = get(avgDH, mode="function") ) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the data and segmentation results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segs <- getSegments(fit, splitters=TRUE) nbrOfSegments <- nrow(segs) verbose && cat(verbose, "Total number of segments: ", nbrOfSegments) for (ss in seq_along(idxList)) { idxs <- idxList[[ss]] fitT <- extractSegments(fit, idxs) verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fitT)) dataT <- getLocusData(fitT) segsT <- getSegments(fitT) CT <- dataT$CT rho <- dataT$rho # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update the TCN segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Recalculate (TCN,DH,C1,C2) means") naValue <- NA_real_ mus <- c(tcn=naValue, dh=naValue, c1=naValue, c2=naValue) for (key in c("tcn", "dh")) { avgFUN <- avgList[[key]] # (c) Adjust for missing values if (key == "tcn") { value <- CT } else if (key == "dh") { value <- rho } keep <- which(!is.na(value)) # (d) Update mean gamma <- avgFUN(value[keep]) # Sanity check .stop_if_not(length(gamma) == 0 || !is.na(gamma)) mus[key] <- gamma } # for (what ...) mus["c1"] <- 1/2*(1-mus["dh"])*mus["tcn"] mus["c2"] <- mus["tcn"] - mus["c1"] names(mus) <- sprintf("%sMean", names(mus)) verbose && print(verbose, mus) verbose && exit(verbose) for (key in names(mus)) { segs[idxs,key] <- mus[key] } } # for (ss ...) # Return results res <- fit res$output <- segs res <- setMeanEstimators(res, tcn=avgTCN, dh=avgDH) verbose && exit(verbose) res }, private=TRUE) # updateMeansTogether() PSCBS/R/AbstractCBS.PRUNE.R0000644000176200001440000004101714564051545014447 0ustar liggesuserssetMethodS3("seqOfSegmentsByDP", "AbstractCBS", function(fit, by, shift=+100, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'by': by <- Arguments$getCharacters(by) data <- getLocusData(fit) fields <- colnames(data) missing <- fields[!is.element(by, fields)] if (length(missing) > 0) { stop("Argument 'by' specifies one or more non-existing locus data fields: ", paste(missing, collapse=", ")) } # Argument 'shift': shift <- Arguments$getNumeric(shift) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Identifying optimal sets of segments via dynamic programming") # Assert that known segments was used knownSegments <- fit$params$knownSegments if (nrow(knownSegments) == 0L) { chromosome <- getChromosomes(fit) knownSegments <- data.frame(chromosome=chromosome, start=-Inf, end=+Inf) } chrOffsets <- getChromosomeOffsets(fit) # Sanity check .stop_if_not(all(is.finite(chrOffsets))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Shift every other non-empty region # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Shifting TCN levels for every second segment") segPrefix <- getSegmentTrackPrefixes(fit)[1L] segKeys <- toCamelCase(paste(segPrefix, c("start", "end"))) segRowsKey <- toCamelCase(paste(segPrefix, "seg rows")) verbose && enter(verbose, "Split up into non-empty independent regions") chromosomes <- getChromosomes(fit) fitList <- list() for (jj in seq_along(chromosomes)) { chr <- chromosomes[jj] verbose && enter(verbose, sprintf("Chromosome #%d ('%s') of %d", jj, chr, length(chromosomes))) # Subset segmentation results on this chromosome fitJJ <- extractChromosome(fit, chr) verbose && cat(verbose, "Number of loci on chromosome: ", nbrOfLoci(fitJJ)) # Nothing to do and nothing to add? if (nbrOfLoci(fitJJ) == 0L) { verbose && exit(verbose) next } # Find known segments on this chromosome knownSegmentsJJ <- subset(knownSegments, chromosome == chr) verbose && cat(verbose, "Known segments on chromosome:") verbose && print(verbose, knownSegmentsJJ) # Nothing to do? if (nrow(knownSegmentsJJ) == 0L) { fitList <- append(fitList, list(fitJJ)) verbose && exit(verbose) next } # Get the segments on this chromosome segsJJ <- getSegments(fitJJ) # Extract the individual known segments on this chromosome fitListJJ <- list() for (kk in seq_len(nrow(knownSegmentsJJ))) { verbose && enter(verbose, sprintf("Known segment #%d of %d", kk, nrow(knownSegmentsJJ))) seg <- knownSegmentsJJ[kk,] verbose && print(verbose, seg) start <- seg$start end <- seg$end idxStart <- min(which(segsJJ[[segKeys[1]]] >= start)) idxEnd <- max(which(segsJJ[[segKeys[2]]] <= end)) idxs <- idxStart:idxEnd # Extract the particular known segment fitKK <- extractSegments(fitJJ, idxs) # Only add if it has loci if (nbrOfLoci(fitKK) > 0L) { fitListJJ <- append(fitListJJ, list(fitKK)) } fitKK <- NULL # Not needed anymore verbose && exit(verbose) } # for (kk ...) # Append fitList <- append(fitList, fitListJJ) fitListJJ <- NULL # Not needed anymore verbose && exit(verbose) } # for (jj ...) nbrOfRegions <- length(fitList) verbose && cat(verbose, "Number of independent non-empty regions: ", nbrOfRegions) verbose && exit(verbose) verbose && enter(verbose, "Shift every other region") for (jj in seq(from=1L, to=nbrOfRegions, by=2L)) { fitJJ <- fitList[[jj]] fitJJ <- shiftTCN(fitJJ, shift=shift) fitList[[jj]] <- fitJJ } # for (jj ...) verbose && exit(verbose) verbose && enter(verbose, "Merge") ## former Reduce() w/ append(a, b, addSplit = FALSE) fitT <- do.call(c, args = c(fitList, addSplit = FALSE)) # Sanity check ## .stop_if_not(nbrOfSegments(fitT) == nbrOfSegments(fit)) # Not true anymore verbose && exit(verbose) fitList <- NULL # Not needed anymore segsT <- getSegments(fitT) verbose && print(verbose, tail(segsT)) verbose && exit(verbose) fit <- fitT # Not needed anymore fitT <- knownSegments <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract signals for DP # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Extracting signals for dynamic programming") fit <- tileChromosomes(fit) # Locus-level signals data <- getLocusData(fit) Y <- as.matrix(data[,by,drop=FALSE]) verbose && print(verbose, summary(Y)) # "DP" change-point indices (excluding the two outer/boundary ones) segRows <- fit[[segRowsKey]] segIdxs <- seq_len(nrow(segRows)-1L) cpIdxs <- segRows$endRow[segIdxs] verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Dynamic-programming segmention pruning # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Dynamic programming") verbose && cat(verbose, "Number of \"DP\" change points: ", length(cpIdxs)) verbose && str(verbose, cpIdxs) res <- seqOfSegmentsByDP(Y, candidatechangepoints=cpIdxs, ...) verbose && str(verbose, res) # Sanity checks jumpList <- res$jump lastJump <- jumpList[[length(jumpList)]] .stop_if_not(identical(cpIdxs, as.integer(lastJump))) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Adjustments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Excluding cases where known segments no longer correct") verbose && cat(verbose, "Number of independent non-empty regions: ", nbrOfRegions) # Drop the K first nbrOfCPs <- nbrOfRegions - 1L if (nbrOfCPs > 0L) { K <- nbrOfCPs - 1L # Don't count the flat segmentation jumpList <- jumpList[-(1:K)] } verbose && str(verbose, jumpList) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the possible sets of segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose <- less(verbose, 20) verbose && enter(verbose, "Converting to physical segments") segs <- getSegments(fit, splitters=TRUE, addGaps=FALSE) segs <- segs[,c("chromosome", segKeys)] jumpIdxList <- lapply(jumpList, FUN=function(idxs) { match(idxs, table=cpIdxs) }) # Sanity check .stop_if_not(identical(seq_along(cpIdxs), jumpIdxList[[length(jumpIdxList)]])) chrs <- segs$chromosome starts <- segs[[segKeys[1]]] ends <- segs[[segKeys[2]]] nsegs <- nrow(segs) segList <- vector("list", length=length(jumpIdxList)) for (kk in seq_along(segList)) { verbose && enter(verbose, sprintf("Sequence #%d of %d", kk, length(segList))) idxs <- jumpIdxList[[kk]] verbose && cat(verbose, "Change point indices:") verbose && str(verbose, idxs) chrsKK <- chrs[idxs] chr <- chrsKK[1] # .stop_if_not(all(chrsKK == chr)) chrsKK <- c(chrsKK, chrsKK[length(chrsKK)]) startsKK <- starts[c(1L, idxs+1L)] endsKK <- ends[c(idxs, nsegs)] verbose && cat(verbose, "Chromosomes:") verbose && str(verbose, chrsKK) verbose && cat(verbose, "Starts:") verbose && str(verbose, startsKK) verbose && cat(verbose, "Ends:") verbose && str(verbose, endsKK) offsetsKK <- chrOffsets[chrsKK] startsKK <- startsKK - offsetsKK endsKK <- endsKK - offsetsKK segsKK <- data.frame(chromosome=chrsKK, start=startsKK, end=endsKK) verbose && print(verbose, tail(segsKK)) segList[[kk]] <- segsKK verbose && exit(verbose) } # for (kk ...) verbose && exit(verbose) verbose <- more(verbose, 20) # Sanity check lastSegs <- segList[[length(segList)]] # .stop_if_not(identical(lastSegs, segs)) verbose && str(verbose, segList) nbrOfCPsSeq <- sapply(jumpList, FUN=length) verbose && cat(verbose, "Sequence of number of \"DP\" change points:") verbose && print(verbose, nbrOfCPsSeq) nbrOfSegsSeq <- sapply(segList, FUN=nrow) verbose && cat(verbose, "Sequence of number of segments:") verbose && print(verbose, nbrOfSegsSeq) nbrOfChangePointsSeq <- nbrOfSegsSeq - nbrOfRegions verbose && cat(verbose, "Sequence of number of \"discovered\" change points:") verbose && print(verbose, nbrOfChangePointsSeq) .stop_if_not(all(nbrOfSegsSeq == nbrOfCPsSeq + 1L)) .stop_if_not(nbrOfSegsSeq[1L] == nbrOfRegions) segList <- lapply(segList, FUN=function(seg) { attr(seg, "nbrOfChangePoints") <- nrow(seg) - nbrOfRegions seg }) K <- (nbrOfRegions-1L) modelFit <- list( nbrOfSegments=nbrOfSegsSeq, nbrOfChangePoints=nbrOfSegsSeq - nbrOfRegions, nbrOfRegions=nbrOfRegions, idxBest=res$kbest - K + 1L, rse=res$rse[-(1:K)], V=res$V[-(1:K),-(1:K),drop=FALSE], seqOfSegmentsByDP=res ) attr(segList, "modelFit") <- modelFit verbose && exit(verbose) segList }, protected=TRUE) # seqOfSegmentsByDP() setMethodS3("seqOfSegmentsByDP", "matrix", function( ### Segmentation of a multi-dimensional signal with dynamic programming. Y, ### A n*p signal to be segmented candidatechangepoints = c(1:(n-1)), ### A vector of candidate positions for change-points (default=[1:n-1]) kmax = n-1, ### Maximum number of change-points to test (default : n-1) threshold = 0.5, ### Stopping criteria. Typically chosen to be in the interval ### (0 0.5]. The smaller the threshold, the higher the tendency to keep more ### changepoints. The criteria is based on the method found in 'Picard et al ### (2005)', "A statistical approach for array CGH data analysis" (BMC ### Bioinformatics). Default=0.5 ... ){ n <- dim(Y)[1] p <- dim(Y)[2] kmaxmin <- floor(n/4) if (kmax == 0 || kmax > length(candidatechangepoints)) { kmax <- min(length(candidatechangepoints), kmaxmin) } if (kmax > kmaxmin) { sprintf('warning : not enough points to optimize the number of the change-points up to %s\n', kmax) kmax <- kmaxmin sprintf('Set the maximum number of change-points to %s\n', kmax) } # Compute boundaries of the smallest intervals considered b <- sort(union(0, union(n, candidatechangepoints))) k <- length(b) - 1 # k is the number of such intervals # Compute the k*k matrix J such that J[i,j] for i<=j is the RSE when intervales i to j are merged J <- matrix(numeric(k*k), ncol=k) # How should NAs be handled?!? Yz <- Y Yz[is.na(Yz)] <- 0 s <- rbind(rep(0, times=p), colCumsums(Yz, useNames=FALSE)) v <- c(0, cumsum(rowSums(Y^2, na.rm=TRUE))) for (i in 1:k) { for (j in i:k) { Istart <- b[i] + 1 Iend <- b[j+1] J[i,j] <- v[Iend+1] - v[Istart] - sum((s[Iend+1,]-s[Istart,])^2, na.rm=TRUE)/(Iend-Istart+1) } # for (j ...) } # for (i ...) # Dynamic programming V <- matrix(numeric((kmax+1)*k), ncol=k) # V[i,j] is the best RSE for segmenting intervals 1 to j with at most i-1 change points jump <- matrix(numeric(kmax*k), ncol=k) # With no change points, V[i,j] is juste the precomputed RSE for intervals 1 to j V[1,] <- J[1,] # Then we apply the recursive formula for (ki in 1:kmax) { for (j in (ki+1):k) { val <- min(V[ki,ki:(j-1)] + t(J[(ki+1):j, j])) ind <- which.min(V[ki,ki:(j-1)] + t(J[(ki+1):j, j])) V[ki+1,j] <- val jump[ki,j] <- ind + ki-1 } # for (j ...) } # for (ki ...) # Optimal segmentation res.jump <- list() for (ki in 1:kmax) { res.jump[[ki]] <- numeric(ki) res.jump[[ki]][ki] <- jump[ki,k] if (ki != 1) { for (i in seq(from=(ki-1), to=1, by=-1)) { res.jump[[ki]][i] <- jump[i, res.jump[[ki]][i+1]] } } } # for (ki ...) # Convert back the index of the interval to the last position before the jump rightlimit <- b[2:length(b)] for (ki in 1:kmax) { res.jump[[ki]] <- rightlimit[res.jump[[ki]]] } # for (ki ...) # RSE as a function of number of change-points res.rse <- V[,k] # Optimal number of change points options(warn=-1) J <- log(res.rse) Km <- length(J) Jtild <- (J[Km]-J)/(J[Km]-J[1])*(Km-1)+1 # Normalize res.kbest <- max(which(diff(diff(Jtild)) > threshold)) + 1 #if((res.kbest) == -Inf) { res.kbest <- 1 } return(list(jump=res.jump, rse=res.rse, kbest=res.kbest, V=V)) ### \item{res.jump{i}}{a i*1 vector of change-point positions for the i-th lambda value (i depends on lambda). i varies between 1 and kmax} ### \item{res.rse}{a (kmax+1)-dimensional vector of residual squared error} ### \item{res.kbest}{the number of selected change-points} }) # seqOfSegmentsByDP() ###########################################################################/** # @set class=AbstractCBS # @RdocMethod pruneByDP # # @title "Prunes the CN profile using dynamical programming" # # \description{ # @get "title" by specifying the target number of segments or alternative # how of many change points to drop. # } # # @synopsis # # \arguments{ # \item{nbrOfSegments}{An @integer specifying the number of segments after # pruning. If negative, the it specifies the number of change points # to drop.} # \item{...}{Optional arguments passed to @seemethod "seqOfSegmentsByDP".} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a pruned object of the same class. # } # # \examples{\dontrun{ # # Drop two segments # fitP <- pruneByDP(fit, nbrOfSegments=-2) # }} # # @author "HB, PN" # # \references{ # [1] ... \cr # } # # @keyword internal #*/########################################################################### setMethodS3("pruneByDP", "AbstractCBS", function(fit, nbrOfSegments, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Some pre-extraction # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knownSegments <- fit$params$knownSegments if (nrow(knownSegments) == 0L) { chromosome <- getChromosomes(fit) knownSegments <- data.frame(chromosome=chromosome, start=-Inf, end=+Inf) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'nbrOfSegments': nbrOfSegments <- Arguments$getInteger(nbrOfSegments) # Specifying number of change points *to drop*? if (nbrOfSegments < 0L) { nbrOfCPsToDrop <- -nbrOfSegments nbrOfSegments <- nbrOfSegments(fit, splitters=FALSE) - nbrOfCPsToDrop } if (nbrOfSegments < nrow(knownSegments)) { stop("Argument 'nbrOfSegments' is less than number of \"known\" segments: ", nbrOfSegments, " < ", nrow(knownSegments)) } if (nbrOfSegments > nbrOfSegments(fit, splitters=FALSE)) { stop("Argument 'nbrOfSegments' is greater than the number of \"found\" segments: ", nbrOfSegments, " > ", nbrOfSegments(fit, splitters=FALSE)) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Prune segments by dynamical programming") # Nothing to do? if (nbrOfSegments == nbrOfSegments(fit, splitters=FALSE)) { verbose && cat(verbose, "No need for pruning, because the number of \"target\" segments is the same as the number of \"found\" segments: ", nbrOfSegments, " == ", nbrOfSegments(fit, splitters=FALSE)) return(fit) verbose && exit(verbose) } verbose && cat(verbose, "Target number of segments: ", nbrOfSegments) verbose && enter(verbose, "Dynamic programming") segList <- seqOfSegmentsByDP(fit, ...) # Select the one with expected number of segments nbrOfCPs <- sapply(segList, FUN=nrow) verbose && printf(verbose, "Range of number of CPs among solutions: [%d,%d]\n", min(nbrOfCPs), max(nbrOfCPs)) keep <- which(nbrOfCPs == nbrOfSegments) .stop_if_not(length(keep) == 1L) knownSegments <- segList[[keep]] verbose && printf(verbose, "Solution with %d segments:\n", nbrOfSegments) verbose && print(verbose, knownSegments) verbose && exit(verbose) verbose && enter(verbose, "Rebuilding segmentation results") fitDP <- resegment(fit, knownSegments=knownSegments, undoTCN=+Inf, undoDH=+Inf, verbose=less(verbose, 10)) verbose && print(verbose, fitDP) verbose && exit(verbose) verbose && exit(verbose) fitDP }, protected=TRUE) # pruneByDP() PSCBS/R/DNAcopy.EXTS.R0000644000176200001440000001422614564051545013545 0ustar liggesusers###########################################################################/** # @set class=CBS # @RdocMethod as.DNAcopy # # @title "Coerces a CBS object to a DNAcopy object" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{fit}{A @see "CBS" object."} # \item{...}{Not used.} # } # # \value{ # Returns a @see "DNAcopy" object (of the \pkg{DNAcopy} package). # } # # \examples{ # @include "../incl/segmentByCBS.Rex" # @include "../incl/as.DNAcopy.Rex" # } # # @author "HB" # # \seealso{ # \code{\link[PSCBS:as.CBS.DNAcopy]{as.CBS()}}. # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("as.DNAcopy", "CBS", function(fit, ...) { sampleName <- getSampleName(fit) if (is.na(sampleName)) sampleName <- "" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup the 'data' field # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) # Keep only certain columns keep <- match(c("chromosome", "x"), colnames(data)) keep <- c(keep, 3L) data <- data[,keep,drop=FALSE] # Sanity check .stop_if_not(ncol(data) == 3) # Rename column names colnames(data) <- c("chrom", "maploc", sampleName) class(data) <- c("CNA", "data.frame") attr(data, "data.type") <- "logratio" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup the 'output' field # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - output <- getSegments(fit, splitters=FALSE) rownames <- rownames(output) output <- data.frame( ID = sampleName, chrom = output$chromosome, loc.start = output$start, loc.end = output$end, num.mark = output$nbrOfLoci, seg.mean = output$mean, stringsAsFactors=FALSE ) rownames(output) <- rownames # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup up 'DNAcopy' object # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - res <- list() res$data <- data res$output <- output res$call <- NA class(res) <- "DNAcopy" res }, protected=TRUE) # as.DNAcopy() setMethodS3("nbrOfSegments", "DNAcopy", function(fit, ...) { segs <- fit$output nrow(segs) }) setMethodS3("nbrOfLoci", "DNAcopy", function(fit, ...) { nrow(fit$data) }) setMethodS3("nbrOfSamples", "DNAcopy", function(fit, ...) { length(getSampleNames(fit, ...)) }) setMethodS3("getSampleNames", "DNAcopy", function(fit, ...) { names <- colnames(fit$data) names <- setdiff(names, c("chrom", "maploc")) names }) setMethodS3("getChromosomes", "DNAcopy", function(fit, ...) { chromosomes <- fit$data$chrom sort(unique(chromosomes)) }) setMethodS3("estimateStandardDeviation", "DNAcopy", function(fit, sample=1L, method=c("diff", "abs", "res"), estimator=c("mad", "sd"), na.rm=TRUE, weights=NULL, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'sample': sample <- Arguments$getIndex(sample, max=nbrOfSamples(fit)) # Argument 'method': method <- match.arg(method) # Argument 'estimator': estimator <- match.arg(estimator) nbrOfLoci <- nbrOfLoci(fit) # Argument 'weights': if (!is.null(weights)) { weights <- Arguments$getNumerics(weights, range=c(0,Inf), length=rep(nbrOfLoci, times=2)) } # Nothing to do? if (nbrOfLoci <= 1) { return(NA_real_) } # Get the estimator function if (!is.null(weights)) { estimator <- sprintf("weighted %s", estimator) estimator <- R.utils::toCamelCase(estimator) } estimatorFcn <- get(estimator, mode="function") # Extract sample of interest fit <- subset(fit, samplelist=sample) y <- fit$data[,3L] if (method == "diff") { y <- diff(y) # Weighted estimator? if (!is.null(weights)) { # Calculate weights per pair weights <- (weights[1:(nbrOfLoci-1)]+weights[2:nbrOfLoci])/2 sigma <- estimatorFcn(y, w=weights, na.rm=na.rm)/sqrt(2) } else { sigma <- estimatorFcn(y, na.rm=na.rm)/sqrt(2) } } else if (method == "abs") { if (!is.null(weights)) { sigma <- estimatorFcn(y, w=weights, na.rm=na.rm) } else { sigma <- estimatorFcn(y, na.rm=na.rm) } } else if (method == "res") { yS <- extractSegmentMeansByLocus(fit) dy <- y - yS if (!is.null(weights)) { sigma <- estimatorFcn(dy, w=weights, na.rm=na.rm) } else { sigma <- estimatorFcn(dy, na.rm=na.rm) } } else { stop("Method no implemented: ", method) } sigma }) # estimateStandardDeviation() setMethodS3("extractSegmentMeansByLocus", "DNAcopy", function(fit, sample=1L, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'sample': sample <- Arguments$getIndex(sample, max=nbrOfSamples(fit)) # Extract sample of interest fit <- subset(fit, samplelist=sample) data <- fit$data chr <- data$chrom x <- data$maploc y <- data[,sample,drop=TRUE] segs <- fit$output nbrOfSegments <- nrow(segs) nbrOfLoci <- nbrOfLoci(fit) # Get mean estimators estList <- getMeanEstimators(fit, "y") avgY <- estList$y yS <- y for (ss in seq_len(nbrOfSegments)) { seg <- segs[ss,] idxs <- which(seg$chrom == chr & seg$loc.start <= x & x <= seg$loc.end) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) ySS <- y[idxs] ok <- is.finite(ySS) # Sanity check ## .stop_if_not(sum(ok) == seg$num.mark) # Not dealing with ties mu <- avgY(ySS[ok]) yS[idxs] <- mu } # for (ss ...) yS }, private=TRUE) # extractSegmentMeansByLocus() setMethodS3("writeSegments", "DNAcopy", function(fit, samples=seq_len(nbrOfSamples(fit)), ...) { # Argument 'samples': samples <- Arguments$getIndices(samples, max=nbrOfSamples(fit)) pathnames <- c() for (ii in samples) { fitII <- as.CBS(fit, sample=ii) pathnameII <- writeSegments(fitII, ...) pathnames <- c(pathnames, pathnameII) } # for (ii ...) pathnames }) # writeSegments() PSCBS/R/000.R0000644000176200001440000000031314564051545011755 0ustar liggesusers## Look for existing generic functions also in imported namespaces. ## This will affect whether setGenericS3() creates a generic function ## or not. options("R.methodsS3:checkImports:setGenericS3"=TRUE) PSCBS/R/AbstractCBS.REPORT.R0000644000176200001440000002056714564051545014600 0ustar liggesusers###########################################################################/** # @set class=AbstractCBS # @RdocMethod report # # @title "Generates a report of the segmentation results" # # \description{ # @get "title". # Currently reports can be generated for segmentation results of class # @see "CBS" and @see "PairedPSCBS". # } # # @synopsis # # \arguments{ # \item{fit}{An @see "AbstractCBS" object.} # \item{sampleName}{A @character string specifying the name of the # sample segmented.} # \item{studyName}{A @character string specifying the name of study/project.} # \item{...}{Optional arguments passed to the RSP template.} # \item{rspTags}{Optional @character @vector of tags for further specifying # which RSP report to generate.} # \item{rootPath}{The root directory where to write the report.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the pathname of the generated PDF. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("report", "AbstractCBS", function(fit, sampleName=getSampleName(fit), studyName, ..., rspTags=NULL, rootPath="reports/", .filename="*", skip=TRUE, envir=new.env(), verbose=FALSE) { use("R.rsp (>= 0.20.0)") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'sampleName': sampleName <- Arguments$getCharacter(sampleName) if (is.na(sampleName)) { stop("Cannot generate report. Argument 'sampleName' is non-valid or missing.") } # Argument 'studyName': if (missing(studyName)) { stop("Cannot generate report. Argument 'studyName' is missing.") } studyName <- Arguments$getCharacter(studyName) if (is.na(studyName)) { stop("Cannot generate report. Argument 'studyName' is non-valid.") } # Argument 'rspTags': if (!is.null(rspTags)) { rspTags <- Arguments$getCharacters(rspTags) rspTags <- unlist(strsplit(rspTags, split=",", fixed=TRUE)) rspTags <- rspTags[nchar(rspTags) > 0L] } # Argument 'rootPath': rootPath <- Arguments$getWritablePath(rootPath) # Argument '.filename': if (!is.null(.filename)) { .filename <- Arguments$getCharacter(.filename, useNames=TRUE) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Generating CBS report") verbose && cat(verbose, "Sample name: ", sampleName) verbose && cat(verbose, "Number of chromosomes: ", nbrOfChromosomes(fit)) verbose && cat(verbose, "Number of segments: ", nbrOfSegments(fit)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Report template arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Default arguments rspArgs <- list( fit = fit, sampleName = sampleName, studyName = studyName, dataSet = NULL, Clim = c(0,2*ploidy(fit)), Blim = c(0,1), figForce = FALSE ) # Override with user arguments userArgs <- list(...) for (key in names(userArgs)) { rspArgs[[key]] <- userArgs[[key]] } if (is.null(rspArgs$reportPath)) { rspArgs$reportPath <- file.path(rootPath, rspArgs$studyName) } rspArgs$reportPath <- Arguments$getWritablePath(rspArgs$reportPath) verbose && cat(verbose, "Report root path: ", rspArgs$reportPath) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Linking to report files # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Linking to report files") # Directory where all report templates lives srcPath <- "templates" # If missing, default to one that comes with PSCBS/templates/ if (!isDirectory(srcPath)) { srcPath <- system.file("templates", package="PSCBS") } srcPath <- file.path(srcPath, "rsp") srcPath <- Arguments$getReadablePath(srcPath) verbose && cat(verbose, "Source path: ", srcPath) filename <- .filename # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create file links to the main RSP report template # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Main RSP template") # Construct the filename of the main RSP file to compile, iff missing. if (filename == "*") { className <- class(fit)[1] fullname <- paste(c(className, rspTags), collapse=",") filename <- sprintf("%s,report.tex.rsp", fullname) } rspPathname <- file.path(srcPath, filename) verbose && cat(verbose, "RSP report template: ", rspPathname) rspPathname <- Arguments$getReadablePathname(rspPathname) destFilename <- sprintf("%s,%s", sampleName, filename) destPathname <- filePath(rspArgs$reportPath, destFilename) target <- rspPathname link <- destPathname if (!isFile(link)) { verbose && cat(verbose, "Adding link: ", link, " -> ", target) createLink(link=link, target=target) } # Sanity check .stop_if_not(isFile(link)) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Skip? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (skip) { ## Try to guess report filename filename <- basename(destPathname) filename <- gsub("[.]rsp$", "", filename) ext <- gsub(".*[.]", "", filename) fullname <- gsub(sprintf("[.]%s$", ext), "", filename) ext <- switch(ext, tex="pdf", md="html", ext) filename <- sprintf("%s.%s", fullname, ext) pathname <- file.path(rspArgs$reportPath, filename) pathname <- getAbsolutePath(pathname) verbose && cat(verbose, "Expected output pathname: ", pathname) if (isFile(pathname)) { verbose && cat(verbose, "Already exists: Skipping.") report <- R.rsp::RspFileProduct(pathname) return(report) } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create file links to all LaTeX include files # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "All LaTeX files") files <- list.files(path=srcPath, pattern="[.](bib|bst|cls|sty|tex)$", full.names=TRUE, recursive=FALSE) files <- files[file_test("-f", files)] if (length(files) > 0L) { verbose && cat(verbose, "Number of such files found: ", length(files)) verbose && print(verbose, files) for (kk in seq_along(files)) { target <- files[kk] link <- filePath(rspArgs$reportPath, basename(files[kk])) if (!isFile(link)) { verbose && cat(verbose, "Adding link: ", link, " -> ", target) createLink(link=link, target=target) } # Sanity check .stop_if_not(isFile(link)) } } else { verbose && cat(verbose, "No such files found.") } verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create file links to all 'incl.*' subdirectories # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "All 'incl.*' subdirectories") dirs <- list.files(srcPath, pattern="^incl", full.names=TRUE, recursive=FALSE) dirs <- dirs[file_test("-d", dirs)] if (length(dirs) > 0L) { verbose && cat(verbose, "Number of such directories found: ", length(dirs)) verbose && print(verbose, dirs) for (kk in seq_along(dirs)) { target <- dirs[kk] link <- filePath(rspArgs$reportPath, basename(dirs[kk])) if (!isDirectory(link)) { verbose && cat(verbose, "Adding link: ", link, " -> ", target) createLink(link=link, target=target) } # Sanity check .stop_if_not(isDirectory(link)) } } else { verbose && cat(verbose, "No such directories found.") } verbose && exit(verbose) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Build reports # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Processing RSP template") rspArgs$figPath <- "figures/" args <- c(list(rspArgs=rspArgs), rspArgs) report <- R.rsp::rfile(destPathname, workdir=rspArgs$reportPath, args=args, envir=envir, verbose=verbose) verbose && exit(verbose) verbose && cat(verbose, "Final report: ", getRelativePath(report)) verbose && exit(verbose) report }, protected=TRUE) PSCBS/R/AbstractCBS.HCLUST.R0000644000176200001440000001532114564060172014553 0ustar liggesusers###########################################################################/** # @set "class=AbstractCBS" # @RdocMethod updateMeansTogether # @alias updateMeansTogether.CBS # @alias updateMeansTogether.PairedPSCBS # # @title "Updates the CN mean levels jointly in sets of segments" # # \description{ # @get "title" as if they were one large segment. # The locus-level data is not updated/modified. # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns an object of the same class. # } # # @author "HB" # # \seealso{ # This method is utilized by @seemethod "pruneByHClust". # } # # @keyword internal #*/########################################################################### setMethodS3("updateMeansTogether", "AbstractCBS", abstract=TRUE, private=TRUE) ###########################################################################/** # @set "class=AbstractCBS" # @RdocMethod hclustCNs # # @title "Performs a hierarchical clustering of the CN mean levels" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{size}{Argument passed to @seemethod "sampleCNs".} # \item{distMethod, hclustMethod}{Argument \code{method} for # @see "stats::dist" and "stats::hclust", respectively.} # \item{...}{Not used.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a \code{hclust} object as returned by @see "stats::hclust". # } # # @author # # \seealso{ # This method is utilized by @seemethod "pruneByHClust". # } # # @keyword internal #*/########################################################################### setMethodS3("hclustCNs", "AbstractCBS", function(fit, size=NULL, distMethod="euclidean", hclustMethod="ward.D", ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Hierarchical clustering of segmented copy numbers") verbose && enter(verbose, "Extracting/sampling CNs") C <- sampleCNs(fit, size=size, splitters=FALSE) verbose && str(verbose, C) # Drop also segments with no data points ok <- !is.na(C) ok <- rowAlls(ok, useNames=FALSE) C <- C[ok,,drop=FALSE] verbose && str(verbose, C) verbose && exit(verbose) verbose && enter(verbose, "Calculating distance matrix") D <- stats::dist(C, method=distMethod) verbose && str(verbose, D) verbose && exit(verbose) verbose && enter(verbose, "Clustering") # TODO: Do *weighted* hierarchical clustering tree <- stats::hclust(D, method=hclustMethod) verbose && str(verbose, tree) verbose && exit(verbose) verbose && exit(verbose) tree }, private=TRUE) # hclustCNs() ###########################################################################/** # @RdocMethod pruneByHClust # # @title "Prunes the CN profile by pruning and merging through hierarchical clustering" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to @see "stats::cutree", # particularly either of thresholds \code{h} or \code{k}.} # \item{size, distMethod, hclustMethod}{Arguments (as well as # some of \code{...}) passed to @seemethod "hclustCNs".} # \item{merge}{If @TRUE, consecutive segments that belong to the # same PSCN cluster will be merged into one large segment.} # \item{update}{If @TRUE, segment means are updated afterwards, otherwise not.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a pruned object of the same class. # } # # \examples{\dontrun{ # fitP <- pruneByHClust(fit, h=0.25) # }} # # @author # # @keyword internal #*/########################################################################### setMethodS3("pruneByHClust", "AbstractCBS", function(fit, ..., size=NULL, distMethod="euclidean", hclustMethod="ward.D", merge=TRUE, update=TRUE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Prune segments by hierarchical clustering") verbose && cat(verbose, "Clustering arguments:") verbose && str(verbose, c(list(size=size, distMethod=distMethod, hclustMethod=hclustMethod), list(...))) verbose && enter(verbose, "Clustering") tree <- hclustCNs(fit, size=size, distMethod=distMethod, hclustMethod=hclustMethod, ..., verbose=less(verbose,5)) verbose && print(verbose, tree) verbose && exit(verbose) verbose && enter(verbose, "Cutting tree") verbose && cat(verbose, "Cutting arguments:") verbose && str(verbose, c(list(tree=tree), list(...))) p <- cutree(tree, ...) verbose && str(verbose, p) # Group segments idxList <- by(names(p), p, FUN=function(x) { idxs <- as.integer(as.character(x)) idxs <- sort(unique(idxs)) list(idxs) }) verbose && str(verbose, idxList) verbose && exit(verbose) # Dropping previous segment calls and quantile mean-level estimates. fit <- resetSegments(fit) verbose && enter(verbose, "Merging mean levels of clustered segments") fit <- updateMeansTogether(fit, idxList=idxList, verbose=less(verbose, 10)) verbose && exit(verbose) if (merge) { verbose && enter(verbose, "Merging neighboring segments within each cluster") lefts <- c() for (ii in seq_along(idxList)) { verbose && enter(verbose, sprintf("Cluster #%d of %d", ii, length(idxList))) idxs <- idxList[[ii]] verbose && cat(verbose, "Segments in cluster:") verbose && str(verbose, idxs) # Indices to segments to merge leftsII <- idxs[which(diff(idxs) == 1L)] verbose && cat(verbose, "Left indices of neighboring segments:") verbose && str(verbose, leftsII) lefts <- c(lefts, leftsII) verbose && exit(verbose) } # for (ii ...) lefts <- sort(unique(lefts)) verbose && cat(verbose, "Left indices of segments to be merged:") verbose && str(verbose, lefts) verbose && exit(verbose) verbose && enter(verbose, "Merging segments") lefts <- rev(lefts) for (ii in seq_along(lefts)) { fit <- mergeTwoSegments(fit, left=lefts[ii], update=FALSE) } # for (ii ...) verbose && exit(verbose) } # if (merge) if (update) { verbose && enter(verbose, "Updating segment means") ## fit <- updateBoundaries(fit, verbose=less(verbose, 50)) fit <- updateMeans(fit, verbose=less(verbose, 50)) verbose && exit(verbose) } verbose && exit(verbose) fit }, protected=TRUE) # pruneByHClust() PSCBS/R/AbstractCBS.R0000644000176200001440000004413614564060172013560 0ustar liggesusers###########################################################################/** # @RdocClass AbstractCBS # # @title "The AbstractCBS class" # # \description{ # @classhierarchy # # All CBS-style segmentation results extend this class, e.g. # @see "CBS" and @see "PairedPSCBS". # } # # @synopsis # # \arguments{ # \item{fit}{A @list structure containing the segmentation results.} # \item{sampleName}{A @character string.} # \item{...}{Not used.} # } # # \section{Fields and Methods}{ # @allmethods "public" # } # # @author "HB" # # @keyword internal #*/########################################################################### setConstructorS3("AbstractCBS", function(fit=list(), sampleName=fit$sampleName, ...) { # Argument 'sampleName': if (!is.null(sampleName)) { sampleName <- Arguments$getCharacter(sampleName) } fit$sampleName <- sampleName extend(fit, "AbstractCBS") }) setMethodS3("print", "AbstractCBS", function(x, ...) { # To please R CMD check fit <- x segs <- getSegments(fit, simplify=TRUE, ...) print(segs) }, protected=TRUE) setMethodS3("all.equal", "AbstractCBS", function(target, current, check.attributes=FALSE, ...) { # NOTE: Here we cannot trust argument '...', because it may contain # copies of 'target' and 'current' args <- list(...) drop <- integer(0L) for (kk in seq_along(args)) { if (identical(args[[kk]], target)) drop <- c(drop, kk) if (identical(args[[kk]], current)) drop <- c(drop, kk) } if (length(drop) > 0L) { args <- args[-drop] str(args) # assign("...", args, inherits=FALSE) } args <- list(...) # Compare class attributes res <- all.equal(class(target), class(current)) if (!isTRUE(res)) { return(res) } # Compare locus-level data dataT <- getLocusData(target) dataC <- getLocusData(current) res <- all.equal(dataT, dataC, check.attributes=check.attributes) if (!isTRUE(res)) { attr(res, "what") <- "getLocusData()" return(res) } # Compare segments dataT <- getSegments(target) dataC <- getSegments(current) res <- all.equal(dataT, dataC, check.attributes=check.attributes) if (!isTRUE(res)) { attr(res, "what") <- "getSegments()" return(res) } # Compare field names fieldsT <- names(target) fieldsC <- names(current) res <- all.equal(fieldsT, fieldsC, check.attributes=check.attributes) if (!isTRUE(res)) { attr(res, "what") <- "names" return(res) } # Compare other fields for (key in fieldsT) { dataT <- target[[key]] dataC <- current[[key]] res <- all.equal(dataT, dataC, check.attributes=check.attributes) if (!isTRUE(res)) { attr(res, "what") <- sprintf("[[\"%s\"]]", key) return(res) } } # for (key ...) return(TRUE) }, protected=TRUE) ###########################################################################/** # @RdocMethod getSampleName # @aliasmethod sampleName # # @title "Gets the name of the sample segmented" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a @character string. # } # # @author # # \seealso{ # @seemethod "setSampleName". # @seeclass. # } #*/########################################################################### setMethodS3("getSampleName", "AbstractCBS", function(fit, ...) { name <- fit$sampleName if (is.null(name)) { name <- NA_character_ } name }, protected=TRUE) setMethodS3("sampleName", "AbstractCBS", function(fit, ...) { getSampleName(fit) }, protected=TRUE) ###########################################################################/** # @RdocMethod setSampleName # @aliasmethod sampleName<- # # @title "Sets the name of the sample segmented" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{name}{A @character string.} # \item{...}{Not used.} # } # # \value{ # Returns (invisibly) an updated object. # } # # @author # # \seealso{ # @seeclass. # } # # @keyword internal #*/########################################################################### setMethodS3("setSampleName", "AbstractCBS", function(fit, name, ...) { # Argument 'value': name <- Arguments$getCharacter(name) fit$sampleName <- name invisible(fit) }, protected=TRUE) setMethodS3("sampleName<-", "AbstractCBS", function(x, value) { setSampleName(x, value) }, protected=TRUE, addVarArgs=FALSE) "sampleName<-" <- function(x, value) { UseMethod("sampleName<-") } ###########################################################################/** # @RdocMethod getLocusData # @aliasmethod setLocusData # @alias setLocusData.AbstractCBS # # @title "Gets the locus-level data" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a JxL @data.frame, where J in the number of loci, # and L is the number of locus-specific fields. # } # # @author # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("getLocusData", "AbstractCBS", abstract=TRUE) setMethodS3("setLocusData", "AbstractCBS", function(fit, loci, ...) { # Argument 'loci': loci <- Arguments$getInstanceOf(loci, "data.frame") nbrOfLoci <- nbrOfLoci(fit) if (nrow(loci) != nbrOfLoci) { stop("Cannot set locus-level data. The number of loci to be set differ from the existing number of loci: ", nrow(loci), " != ", nbrOfLoci) } fit$data <- loci invisible(fit) }, protected=TRUE) setMethodS3("getLocusSignalNames", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("getSegmentTrackPrefixes", "AbstractCBS", abstract=TRUE, protected=TRUE) ###########################################################################/** # @RdocMethod nbrOfLoci # # @title "Gets the number of loci" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{splitters, ...}{Arguments passed to @seemethod "getLocusData".} # } # # \value{ # Returns an @integer. # } # # @author # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("nbrOfLoci", "AbstractCBS", function(fit, splitters=FALSE, ...) { data <- getLocusData(fit, splitters=splitters, ...) nrow(data) }) ###########################################################################/** # @RdocMethod getSegments # @aliasmethod setSegments # @alias setSegments.AbstractCBS # # @title "Gets the segments" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a SxK @data.frame, where S in the number of segments, # and K is the number of segment-specific fields. # } # # @author # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("getSegments", "AbstractCBS", abstract=TRUE) setMethodS3("setSegments", "AbstractCBS", function(fit, segments, splitters=TRUE, ...) { # Argument 'segments': segments <- Arguments$getInstanceOf(segments, "data.frame") nbrOfSegs <- nbrOfSegments(fit, splitters=splitters, ...) if (nrow(segments) != nbrOfSegs) { stop("Cannot set segments. The number of segments to be set differ from the existing number of segments: ", nrow(segments), " != ", nbrOfSegs) } fit$output <- segments invisible(fit) }, protected=TRUE) setMethodS3("getChangePoints", "AbstractCBS", abstract=TRUE) ###########################################################################/** # @RdocMethod resetSegments # # @title "Reset the segments" # # \description{ # @get "title". More precisely, it removes columns in the segmentation # result table that have been added by methods after the actual # segmentation method, e.g. bootstrap estimated mean level quantiles # and various calls. # It leave the basic segmentation results untouched, # i.e. the partitioning and the segment means. # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns an object if the same class as the input result. # } # # @author # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("resetSegments", "AbstractCBS", function(fit, ...) { segs <- getSegments(fit, splitters=TRUE) names <- colnames(segs) excl <- NULL # Drop all quantile mean level estimates (from bootstrapping) idxs <- grep("_[0-9.]*[%]$", names) excl <- c(excl, idxs) # Drop all calls idxs <- grep("Call$", names) excl <- c(excl, idxs) excl <- unique(excl) if (length(excl) > 0L) { segs <- segs[,-excl] } fit <- setSegments(fit, segs, splitters=TRUE) invisible(fit) }, protected=TRUE) ###########################################################################/** # @RdocMethod nbrOfSegments # # @title "Gets the number of segments" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{splitters, ...}{Arguments passed to @seemethod "getSegments".} # } # # \value{ # Returns an @integer. # } # # @author # # \seealso{ # @seemethod "nbrOfChangePoints" # @seemethod "nbrOfChromosomes" # @seeclass # } #*/########################################################################### setMethodS3("nbrOfSegments", "AbstractCBS", function(this, splitters=FALSE, ...) { nrow(getSegments(this, splitters=splitters, ...)) }) ###########################################################################/** # @RdocMethod nbrOfChangePoints # # @title "Gets the number of change points" # # \description{ # @get "title", which is defined as the number of segments minus # the number of chromosomes. # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns an @integer. # } # # @author # # \seealso{ # @seemethod "nbrOfSegments" # @seemethod "nbrOfChromosomes" # @seeclass # } #*/########################################################################### setMethodS3("nbrOfChangePoints", "AbstractCBS", function(fit, ignoreGaps=FALSE, dropEmptySegments=TRUE, ...) { segs <- getSegments(fit, splitters=TRUE, addGaps=!ignoreGaps) if (dropEmptySegments) { prefix <- getSegmentTrackPrefixes(fit) keys <- sapply(prefix, FUN=function(x) { toCamelCase(paste(c(x, "nbr of loci"), collapse=" ")) }) counts <- as.matrix(segs[,keys]) counts <- rowSums(counts, na.rm=TRUE) segs$chromosome[counts == 0L] <- NA } sum(!is.na(diff(segs$chromosome))) }) ###########################################################################/** # @RdocMethod as.data.frame # # @title "Gets the table of segments" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Not used.} # } # # \value{ # Returns a @data.frame, where each row corresponds to # a unique segment. # } # # @author # # \seealso{ # Utilizes @seemethod "getSegments". # @seeclass. # } #*/########################################################################### setMethodS3("as.data.frame", "AbstractCBS", function(x, ...) { getSegments(x, ...) }, protected=TRUE) ###########################################################################/** # @RdocMethod getChromosomes # # @title "Gets the set of chromosomes" # # \description{ # @get "title" in the segmentation result. # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to @seemethod "getSegments".} # } # # \value{ # Returns a unique and sorted @vector of chromosomes segmented. # } # # @author # # \seealso{ # @seemethod "nbrOfChromosomes". # @seeclass # } #*/########################################################################### setMethodS3("getChromosomes", "AbstractCBS", function(this, ...) { segs <- getSegments(this, ...) chromosomes <- sort(unique(segs$chromosome), na.last=TRUE) # Drop NA dividers if (length(chromosomes) > 1) { chromosomes <- chromosomes[!is.na(chromosomes)] } chromosomes }) ###########################################################################/** # @RdocMethod nbrOfChromosomes # # @title "Gets the number of chromosomes" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Arguments passed to @seemethod "getChromosomes".} # } # # \value{ # Returns an @integer. # } # # @author # # \seealso{ # @seemethod "getChromosomes". # @seeclass # } #*/########################################################################### setMethodS3("nbrOfChromosomes", "AbstractCBS", function(this, ...) { length(getChromosomes(this, ...)) }) setMethodS3("getSegmentSizes", "AbstractCBS", function(fit, by=c("length", "count"), ...) { by <- match.arg(by) if (by == "length") { prefix <- getSegmentTrackPrefixes(fit)[1] keys <- toCamelCase(paste(prefix, " ", c("start", "end"))) } else if (by == "count") { keys <- "nbrOfLoci" } data <- getSegments(fit, ...)[,keys] if (by == "length") { res <- data[[2L]]-data[[1L]]+1L } else if (by == "count") { res <- data[[1L]] } res }) setMethodS3("extractCNs", "AbstractCBS", abstract=TRUE) setMethodS3("sampleCNs", "AbstractCBS", function(fit, size=NULL, ...) { data <- extractCNs(fit, ...) if (!is.null(size)) { sizes <- getSegmentSizes(fit, ...) # Sanity check .stop_if_not(length(sizes) == nrow(data)) idxs <- sample(nrow(data), size=size, replace=TRUE, prob=sizes) data <- data[idxs,,drop=FALSE] } data }) ###########################################################################/** # @RdocMethod updateMeans # @alias updateMeans.CBS # @alias updateMeans.NonPairedPSCBS # @alias updateMeans.PairedPSCBS # # @title "Updates the CN mean levels for each segment independently" # # \description{ # @get "title" as if they were one large segment. # The locus-level data is not updated/modified. # } # # @synopsis # # \arguments{ # \item{...}{Arguments specific to the class.} # } # # \value{ # Returns an object of the same class. # } # # @author # # @keyword internal #*/########################################################################### setMethodS3("updateMeans", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("getMeanEstimators", "AbstractCBS", function(fit, which=NULL, default=mean, ...) { estList <- fit$params$meanEstimators if (is.null(estList)) { estList <- list() } if (is.null(which)) which <- names(estList) for (key in which) { fcn <- estList[[key]] if (is.null(fcn)) { fcn <- default } else if (is.character(fcn)) { fcn <- get(fcn, mode="function") } estList[[key]] <- fcn } estList }, protected=TRUE) setMethodS3("setMeanEstimators", "AbstractCBS", function(fit, ...) { estList <- fit$params$meanEstimators if (is.null(estList)) { estList <- list() } args <- list(...) # Nothing todo? if (length(args) == 0L) { return(invisible(fit)) } keys <- names(args) if (is.null(keys)) { stop("Estimators arguments must be named.") } for (key in keys) { fcn <- args[[key]] if (is.function(fcn)) { } else if (is.character(fcn)) { if (!exists(fcn, mode="function")) { stop(sprintf("No such '%s' estimator function: %s", key, fcn)) } } else { stop(sprintf("Estimator argument '%s' must be a function or character string: %s", key, mode(fcn))) } estList[[key]] <- fcn } fit$params$meanEstimators <- estList invisible(fit) }, protected=TRUE) setMethodS3("resegment", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("getChromosomeRanges", "AbstractCBS", abstract=TRUE, protected=TRUE) setMethodS3("getChromosomeOffsets", "AbstractCBS", function(fit, resolution=1e6, ...) { # Argument 'resolution': if (!is.null(resolution)) { resolution <- Arguments$getDouble(resolution, range=c(1,Inf)) } data <- getChromosomeRanges(fit, ...) splits <- data[,"start"] + data[,"length"] if (!is.null(resolution)) { splits <- ceiling(splits / resolution) splits <- resolution * splits } offsets <- c(0L, cumsum(splits)) names(offsets) <- c(rownames(data), NA) offsets }, protected=TRUE) # getChromosomeOffsets() ###########################################################################/** # @RdocMethod ploidy # @aliasmethod ploidy<- # @aliasmethod setPloidy # @aliasmethod adjustPloidyScale # @alias adjustPloidyScale.PairedPSCBS # @alias adjustPloidyScale # @alias ploidy # @alias ploidy<- # @alias setPloidy # # @title "Gets and sets ploidy" # # \description{ # @get "title". # } # # \usage{ # \method{ploidy}{AbstractCBS}(fit, ...) # \method{ploidy}{AbstractCBS}(fit) <- value # } # # \arguments{ # \item{fit}{An @see "AbstractCBS" object.} # \item{value}{An @integer (in \eqn{1,2,\ldots}) specifying the genome ploidy .} # \item{...}{Not used.} # } # # \value{ # Returns (invisibly) an updated object. # } # # @author # # \seealso{ # @seeclass. # } # # @keyword internal #*/########################################################################### setMethodS3("ploidy", "AbstractCBS", function(fit, ...) { ploidy <- fit$params$ploidy if (is.null(ploidy)) ploidy <- 2L ploidy }) setMethodS3("ploidy<-", "AbstractCBS", function(fit, value) { fit <- setPloidy(fit, ploidy=value, update=TRUE) invisible(fit) }) "ploidy<-" <- function(fit, value) { UseMethod("ploidy<-") } setMethodS3("setPloidy", "AbstractCBS", function(fit, ploidy=2L, update=TRUE, ...) { # Argument 'ploidy': ploidy <- Arguments$getInteger(ploidy, range=c(1,Inf)) if (update) { # Calculate rescaling factor oldPloidy <- ploidy(fit) scale <- ploidy / oldPloidy # Nothing todo? if (scale != 1) { fit <- adjustPloidyScale(fit, scale=scale, ...) } } fit$params$ploidy <- ploidy invisible(fit) }, protected=TRUE) setMethodS3("adjustPloidyScale", "AbstractCBS", abstract=TRUE) ###########################################################################/** # @RdocMethod normalizeTotalCNs # @alias normalizeTotalCNs # @alias normalizeTotalCNs.PSCBS # # @title "Normalizes copy numbers such that the whole-genome average total copy number is two" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{...}{Additional arguments passed to the normalization method.} # } # # \value{ # Returns a normalized AbstractCBS object of the same class as \code{fit}. # } # # @author # # \seealso{ # @seeclass. # } #*/########################################################################### setMethodS3("normalizeTotalCNs", "AbstractCBS", abstract=TRUE) PSCBS/R/segmentByNonPairedPSCBS.R0000644000176200001440000002273014564051545016015 0ustar liggesusers###########################################################################/** # @RdocDefault segmentByNonPairedPSCBS # @alias segmentByNonPairedPSCBS.data.frame # @alias segmentByNonPairedPSCBS.PairedPSCBS # @alias segmentByNonPairedPSCBS # # @title "Segment total copy numbers and allele B fractions using the Non-paired PSCBS method" # # \description{ # @get "title" [1]. # This method does not requires matched normals. # This is a low-level segmentation method. # It is intended to be applied to one tumor sample at the time. # } # # @synopsis # # \arguments{ # \item{CT}{A @numeric @vector of J tumor total copy number (TCN) # ratios in [0,+@Inf) (due to noise, small negative values are # also allowed). The TCN ratios are typically scaled such that # copy-neutral diploid loci have a mean of two.} # \item{betaT}{A @numeric @vector of J tumor allele B fractions (BAFs) # in [0,1] (due to noise, values may be slightly outside as well) # or @NA for non-polymorphic loci.} # \item{...}{Additional arguments passed to @see "segmentByPairedPSCBS".} # \item{flavor}{A @character specifying what type of segmentation and # calling algorithm to be used.} # \item{tauA, tauB}{Lower and upper thresholds (\code{tauA < tauB} for # calling SNPs heterozygous based on the tumor allele B fractions # (\code{betaT}). If @NA, then they are estimates from data. # } # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the segmentation results as a @see "NonPairedPSCBS" object. # } # # \details{ # Internally @see "segmentByPairedPSCBS" is used for segmentation. # This segmentation method does \emph{not} support weights. # } # # \section{Reproducibility}{ # The "DNAcopy::segment" implementation of CBS uses approximation # through random sampling for some estimates. Because of this, # repeated calls using the same signals may result in slightly # different results, unless the random seed is set/fixed. # } # # \section{Whole-genome segmentation is preferred}{ # Although it is possible to segment each chromosome independently # using Paired PSCBS, we strongly recommend to segment whole-genome # (TCN,BAF) data at once. The reason for this is that downstream # CN-state calling methods, such as the AB and the LOH callers, # performs much better on whole-genome data. In fact, they may # fail to provide valid calls if done chromosome by chromosome. # } # # \section{Missing and non-finite values}{ # The total copy number signals as well as any optional positions # must not contain missing values, i.e. @NAs or @NaNs. # If there are any, an informative error is thrown. # Allele B fractions may contain missing values, because such are # interpreted as representing non-polymorphic loci. # # None of the input signals may have infinite values, i.e. -@Inf or +@Inf. # If so, an informative error is thrown. # } # # \section{Non-Paired PSCBS with known genotypes}{ # If allele B fractions for the matched normal (\code{betaN}) are # not available, but genotypes (\code{muN}) are, then it is possible # to run Paired PSCBS. See @see "segmentByPairedPSCBS" for details. # } # # @examples "../incl/segmentByNonPairedPSCBS.Rex" # # @author "HB" # # \references{ # [1] @include "../incl/OlshenA_etal_2011.Rd" \cr # [2] @include "../incl/BengtssonH_etal_2010.Rd" \cr # } # # \seealso{ # To segment paired tumor-normal total copy numbers and allele B fractions, # see @see "segmentByPairedPSCBS". # # To segment total copy numbers, or any other unimodal signals, # see @see "segmentByCBS". # } # # @keyword IO #*/########################################################################### setMethodS3("segmentByNonPairedPSCBS", "default", function(CT, betaT, ..., flavor=c("tcn", "tcn&dh", "tcn,dh", "sqrt(tcn),dh", "sqrt(tcn)&dh"), tauA=NA, tauB=1-tauA, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'CT': disallow <- c("Inf") CT <- Arguments$getDoubles(CT, disallow=disallow) nbrOfLoci <- length(CT) length2 <- rep(nbrOfLoci, times=2) # Argument 'betaT': betaT <- Arguments$getDoubles(betaT, length=length2, disallow="Inf") # Argument 'flavor': flavor <- match.arg(flavor) knownFlavors <- eval(formals(segmentByPairedPSCBS.default)$flavor, enclos = baseenv()) if (!is.element(flavor, knownFlavors)) { stop("Segmentation flavor is not among the supported ones (", paste(sprintf("\"%s\"", knownFlavors), collapse=", "), "): ", flavor) } # Argument 'tauA' & 'tauB': if (!is.na(tauA) && !is.na(tauB)) { tauA <- Arguments$getDouble(tauA) tauB <- Arguments$getDouble(tauB) if (tauB < tauA) { stop("Argument 'tauA' must be smaller than 'tauB': ", tauA, " > ", tauB) } tauA <- Arguments$getDouble(tauA, range=c(-0.5, +0.5)) tauB <- Arguments$getDouble(tauB, range=c(+0.5, +1.5)) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Segmenting non-paired tumor signals using Non-paired PSCBS") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup input data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && cat(verbose, "Number of loci: ", nbrOfLoci) # SNPs are identifies as those loci that have non-missing 'betaT' isSnp <- !is.na(betaT) nbrOfSnps <- sum(isSnp) verbose && cat(verbose, "Number of SNPs: ", nbrOfSnps) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call tumor "genotypes" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Calling \"genotypes\" from tumor allele B fractions") verbose && str(verbose, betaT) if (is.na(tauA) && is.na(tauB)) { mBAF <- abs(betaT - 1/2) fitT <- findPeaksAndValleys(mBAF) type <- NULL; rm(list="type") # To please 'R CMD check'. fitT <- subset(fitT, type == "peak") o <- order(fitT$density, decreasing=TRUE) fitT <- fitT[o,] fitT <- fitT[1,] z <- mBAF[mBAF >= fitT$x] - fitT$x q <- quantile(z, probs=0.95, na.rm=TRUE, names=FALSE) qU <- fitT$x+q verbose && cat(verbose, "Upper quantile: ", qU) qL <- fitT$x - q verbose && cat(verbose, "Symmetric lower quantile: ", qL) tauA <- 1/2-qL tauB <- 1/2+qL verbose && cat(verbose, "(tauA, tauB) estimates: (%g,%g)", tauA, tauB) # Sanity check on (tauA, tauB) estimates if (tauB < tauA) { stop("Failed to estimate (tauA, tauB). The estimate 'tauA' is greater than 'tauB', which it should not: ", tauA, " > ", tauB) } tauA <- Arguments$getDouble(tauA, range=c(-0.5, +0.5)) tauB <- Arguments$getDouble(tauB, range=c(+0.5, +1.5)) } verbose && cat(verbose, "Homozygous treshholds:") verbose && print(verbose, c(tauA, tauB)) isHomA <- isSnp & (betaT <= tauA) isHomB <- isSnp & (betaT >= tauB) isHom <- (isHomA | isHomB) isHet <- isSnp & !isHom # Tumor proxy for germline genotypes naValue <- NA_real_ muNx <- rep(naValue, times=length(betaT)) muNx[isHomA] <- 0 muNx[isHet] <- 1/2 muNx[isHomB] <- 1 # Not needed anymore isHomA <- isHomB <- isHom <- isHet <- NULL verbose && cat(verbose, "Inferred germline genotypes (via tumor):") verbose && str(verbose, muNx) verbose && print(verbose, table(muNx)) verbose && exit(verbose) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segment using Paired PSCBS segmentation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Segment using Paired PSCBS") fit <- segmentByPairedPSCBS(CT=CT, betaT=betaT, muN=muNx, tbn=FALSE, flavor=flavor, ..., verbose=verbose) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Coerce fit object to Non-Paired PSCBS results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Coercing to Non-Paired PSCBS results") data <- fit$data class(data) <- gsub("PairedPSCNData", "NonPairedPSCNData", class(data), fixed=TRUE) # class(data) <- c("NonPairedPSCNData", class(data)) fit$data <- data # Not needed anymore data <- NULL segs <- fit$output class(segs) <- gsub("PairedPSCNSegments", "NonPairedPSCNSegments", class(segs), fixed=TRUE) # class(segs) <- c("NonPairedPSCNSegments", class(segs)) fit$output <- segs # Not needed anymore segs <- NULL params <- fit$params params$tauA <- tauA params$tauB <- tauB fit$params <- params # Not needed anymore params <- NULL # class(fit) <- gsub("PairedPSCBS", "NonPairedPSCBS", class(fit), fixed=TRUE) class(fit) <- c("NonPairedPSCBS", class(fit)) verbose && exit(verbose) verbose && print(verbose, head(as.data.frame(fit))) verbose && print(verbose, tail(as.data.frame(fit))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Return results # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fit }) # segmentByNonPairedPSCBS() setMethodS3("segmentByNonPairedPSCBS", "data.frame", function(CT, ...) { # To please R CMD check data <- CT segmentByNonPairedPSCBS(CT=data$CT, betaT=data$betaT, chromosome=data$chromosome, x=data$x, ...) }) setMethodS3("segmentByNonPairedPSCBS", "PairedPSCBS", function(...) { resegment(...) }) PSCBS/R/findLargeGaps.R0000644000176200001440000000647014564051545014176 0ustar liggesusers###########################################################################/** # @RdocDefault findLargeGaps # @alias findLargeGaps.data.frame # # @title "Identifies gaps of a genome where there exist no observations" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{chromosome}{(Optional) An @integer @vector of length J of # chromosome indices.} # \item{x}{A @numeric @vector of J of genomic locations.} # \item{minLength}{A positive @numeric scalar specifying the minimum # length of a gap.} # \item{resolution}{A non-negative @numeric specifying the minimum # length unit, which by default equals one nucleotide/base pair.} # \item{...}{Not used.} # } # # \value{ # Returns @data.frame zero or more rows and with columns # \code{chromosome} (if given), \code{start}, \code{stop}, # and \code{length}. # } # # @author "HB" # # \seealso{ # Use @see "gapsToSegments" to turn the set of identified gaps into # the complementary set of segments such that they can be passed # to @see "segmentByCBS", @see "segmentByPairedPSCBS" and # @see "segmentByNonPairedPSCBS" via argument \code{knownSegments}. # } # # @keyword IO #*/########################################################################### setMethodS3("findLargeGaps", "default", function(chromosome=NULL, x, minLength, resolution=1L, ...) { # Argument 'x': x <- Arguments$getNumerics(x) nbrOfLoci <- length(x) # Argument 'chromosome': if (!is.null(chromosome)) { disallow <- c("Inf") chromosome <- Arguments$getIntegers(chromosome, range=c(0,Inf), disallow=disallow, length=c(nbrOfLoci, nbrOfLoci)) } # Argument 'minLength': minLength <- Arguments$getNumeric(minLength, range=c(0,Inf)) # Argument 'resolution': resolution <- Arguments$getNumeric(resolution, range=c(0,Inf)) if (resolution >= minLength) { stop(sprintf("Cannot identify large gaps. Argument 'resolution' (=%g) is not strictly smaller than 'minLength' (=%g).", resolution, minLength)) } if (!is.null(chromosome)) { allChromosomes <- sort(unique(chromosome)) nbrOfChromosomes <- length(allChromosomes) xEmpty <- vector(mode(x), length=0L) gaps <- data.frame(chromosome=integer(0L), start=xEmpty, end=xEmpty) for (cc in seq_along(allChromosomes)) { chr <- allChromosomes[cc] idxs <- which(chromosome == chr) chromosomeCC <- chromosome[idxs] xCC <- x[idxs] gapsCC <- findLargeGaps(chromosome=NULL, x=xCC, minLength=minLength, ...) if (nrow(gapsCC) > 0) { gapsCC <- cbind(chromosome=chr, gapsCC) gaps <- rbind(gaps, gapsCC) } } # for (cc ...) } else { x <- x[is.finite(x)] x <- sort(x) dx <- diff(x) isGap <- (dx >= minLength) idxsL <- which(isGap) ##str(list(x=x, dx=dx, isGap=isGap, idxsL=idxsL)) xL <- x[idxsL] xR <- x[idxsL+1L] ##str(list(x=x, dx=dx, isGap=isGap, idxsL=idxsL, xL=xL, xR=xR)) gaps <- data.frame(start=xL+resolution, end=xR-resolution) gaps$length <- gaps$end - gaps$start } ## Sanity checks .stop_if_not(is.data.frame(gaps)) .stop_if_not(all(gaps$start <= gaps$end)) .stop_if_not(all(gaps$length >= 0)) gaps }) # findLargeGaps() setMethodS3("findLargeGaps", "data.frame", function(chromosome, ...) { data <- chromosome findLargeGaps(chromosome=data$chromosome, x=data$x, ...) }) # findLargeGaps() PSCBS/R/randomSeed.R0000644000176200001440000000635014564051545013546 0ustar liggesusers###########################################################################/** # @RdocFunction randomSeed # # @title "Sets and resets the .Random.seed in the global environment" # # \description{ # @get "title". # } # # \usage{ # @usage randomSeed # } # # \arguments{ # \item{action}{A @character string specifying the action.} # \item{seed}{Random seed to be set; only for \code{action="set"}. # If \code{length(seed) == 1}, then \code{set.seed(seed)} is # used, otherwise \code{.Random.seed} is assigned the value.} # \item{kind}{(optional) A @character string specifying type of # random number generator to use, cf. @see "base::RNGkind".} # \item{n}{Number of random seeds to generate by \code{action}.} # \item{backup}{If @TRUE, the previous (seed, kind) state is recorded # such that it can be reset later.} # } # # \value{ # Returns a \code{.Random.seed}. # If more than one is returned, the they are returned as a @list. # } # # @author "HB" # # @keyword internal #*/########################################################################### randomSeed <- local({ oldSeed <- NULL oldKind <- NULL lecuyerSeed <- NULL genv <- globalenv() getSeed <- function() { if (exists(".Random.seed", envir=genv, inherits=FALSE)) { get(".Random.seed", envir=genv, inherits=FALSE) } else { NULL } } setSeed <- function(seed, kind=NULL, backup=TRUE) { force(seed) ## FIX: Why is this needed? ## Set new RNG kind? newKind <- (!is.null(kind) && !identical(kind, RNGkind()[1L])) if (newKind) { if (backup) { oldSeed <<- getSeed() oldKind <<- RNGkind()[1L] } RNGkind(kind) ## Sets .Random.seed } ## Reset or set seed? if (is.null(seed)) { if (exists(".Random.seed", envir=genv, inherits=FALSE)) { rm(list=".Random.seed", envir=genv, inherits=FALSE) lecuyerSeed <<- NULL } } else { if (backup && !newKind) oldSeed <<- getSeed() if (length(seed) == 1L) { set.seed(seed) lecuyerSeed <<- getSeed() } else { assign(".Random.seed", seed, envir=genv, inherits=FALSE) lecuyerSeed <<- seed } } } advanceSeed <- function() { ## Nothing to do? if (RNGkind()[1L] != "L'Ecuyer-CMRG") return() if (is.null(lecuyerSeed)) { stats::runif(1) lecuyerSeed <<- getSeed() } lecuyerSeed <<- nextRNGStream(lecuyerSeed) assign(".Random.seed", lecuyerSeed, envir=genv, inherits=FALSE) } function(action=c("set", "advance", "reset", "get"), seed=NULL, kind=NULL, n=1L, backup=TRUE) { action <- match.arg(action) n <- as.integer(n) .stop_if_not(n >= 1) ## Record existing RNG kind (only once) if (is.null(oldKind)) oldKind <<- RNGkind()[1L] if (action == "set") { setSeed(seed=seed, kind=kind, backup=backup) } else if (action == "advance") { seeds <- list() for (kk in seq_len(n)) { advanceSeed() seeds[[kk]] <- getSeed() } if (n == 1) seeds <- seeds[[1]] return(seeds) } else if (action == "reset") { setSeed(seed=oldSeed, kind=oldKind, backup=FALSE) } else if (action == "get") { return(getSeed()) } invisible(getSeed()) } }) # randomSeed() PSCBS/R/PairedPSCBS.callROH.R0000644000176200001440000001146114564051545014746 0ustar liggesusers##########################################################################/** # @set class=PairedPSCBS # @RdocMethod callROH # @alias callROH.NonPairedPSCBS # # @title "Calls segments that are in ROH" # # \description{ # @get "title", i.e. that have no (true) heterozygous genotypes. # Run of homozygosity (ROH) is a property of the normal (germline) sample. # } # # @synopsis # # \arguments{ # \item{...}{Additional arguments passed to @see "testROH".} # \item{updateMeans}{If @TRUE, DH and (C1,C2) mean levels are set # to @NA for segments called ROH, otherwise not.} # \item{force}{If @FALSE, and ROH calls already exits, # then nothing is done, otherwise the calls are done.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a @see "PairedPSCBS" object with ROH calls. # } # # @author "PN, HB" # # \seealso{ # Internally, @see "testROH" is used. # To call allelic balance (AB) see @seemethod "callAB". # To call loss of heterozygosity (LOH) see @seemethod "callLOH". # } #*/########################################################################### setMethodS3("callROH", "PairedPSCBS", function(fit, ..., updateMeans=TRUE, force=FALSE, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling ROH") # Already done? segs <- getSegments(fit) calls <- segs$rohCall if (!force && !is.null(calls)) { return(invisible(fit)) } nbrOfSegments <- nrow(segs) calls <- rep(NA, times=nbrOfSegments) if (is.null(calls)) { segs <- cbind(segs, rohCall=calls) } delta <- NA_real_ # For each segment... for (ss in seq_len(nbrOfSegments)) { verbose && enter(verbose, sprintf("Segment #%d of %d", ss, nbrOfSegments)) fitT <- extractSegment(fit, ss) # Call only "non-splitter" segments if (nbrOfSegments(fitT) > 0L) { callSS <- callROHOneSegment(fitT, ..., verbose=less(verbose, 1)) calls[ss] <- callSS if (is.na(delta) && !is.na(callSS)) { delta <- attr(callSS, "delta") } } verbose && exit(verbose) } # for (ss ...) verbose && cat(verbose, "ROH calls:") verbose && str(verbose, calls) verbose && print(verbose, summary(calls)) segs$rohCall <- calls fit$output <- segs # Append parameters params <- fit$params params$deltaROH <- delta fit$params <- params # Set DH and (C1,C2) mean levels to NA? if (updateMeans) { fit <- updateMeans(fit, from="segments", adjustFor="roh", verbose=less(verbose, 20)) } verbose && exit(verbose) invisible(fit) }) # callROH() # This method calls ROH for a single-segment PairedPSCBS object setMethodS3("callROHOneSegment", "PairedPSCBS", function(fit, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Calling ROH for a single segment") # Make sure that there is only a single segment in this object .stop_if_not(nbrOfSegments(fit, splitters=TRUE) == 1L) # Extract the locus-level data for the segment tested data <- getLocusData(fit) # Keep only SNPs: # SNPs are identifies as those loci that have non-missing # 'betaTN' & 'muN', cf. segmentByPairedPSCBS(). isSnp <- (!is.na(data$betaTN) & !is.na(data$muN)) nbrOfSnps <- sum(isSnp) verbose && cat(verbose, "Number of SNPs: ", nbrOfSnps) data <- data[isSnp,] # Extract that SNP signals used for calling ROH betaN <- data$betaN muN <- data$muN csN <- data$csN # Genotyping confidence scores, if available # Test for ROH fit <- testROH(muN=muN, csN=csN, betaN=betaN, ..., verbose=less(verbose, 10)) # Get the ROH call (TRUE, FALSE, or NA) call <- fit verbose && exit(verbose) call }, private=TRUE) ############################################################################## # HISTORY # 2014-03-29 [HB] # o BUG FIX: In rare cases, callROH() could throw "Error in if (is.na(delta)) # { : argument is of length zero". # 2012-05-30 [HB] # o Now callROH() records paramter 'deltaROH' in the results. # 2011-11-26 [HB] # o Added argument 'updateMeans=TRUE' to callROH() for PairedPSCBS. # 2011-11-12 [HB] # o BUG FIX: ROH calls should be stored in column 'rohCall' (not 'rohCalls'). # 2011-11-04 [HB] # o Added callROH() for PairedPSCBS. # o Created. ############################################################################## PSCBS/R/PairedPSCBS.PLOT2.R0000644000176200001440000002537314564051545014331 0ustar liggesuserssetMethodS3("plotTracks2", "PairedPSCBS", function(x, panels=NULL, calls=".*", pch=".", col=NULL, cex=1, lwd=2, changepoints=FALSE, grid=FALSE, quantiles=c(0.05,0.95), xlim=NULL, Clim=c(0,3*ploidy(x)), Blim=c(0,1), xScale=1e-6, ..., add=FALSE, subplots=!add && (length(panels) > 1), verbose=FALSE) { # To please R CMD check fit <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': if (nbrOfChromosomes(fit) > 1) { stop("Multiple chromosomes detected. Not yet implemented.") } # Argument 'panels': panels <- unique(panels) panelsOrg <- panels panels <- gsub("[-*]", "", panelsOrg) knownPanels <- c("tcn", "tcn,c1,c2", "tcn,c1", "tcn,c2", "c1,c2", "c1", "c2", "dh", "betaN", "betaT", "betaTN") panels <- match.arg(panels, choices=knownPanels, several.ok=TRUE) panels <- panelsOrg # Argument 'calls': if (!is.null(calls)) { calls <- sapply(calls, FUN=Arguments$getRegularExpression) } # Argument 'changepoints': changepoints <- Arguments$getLogical(changepoints) # Argument 'grid': grid <- Arguments$getLogical(grid) # Argument 'xlim': if (!is.null(xlim)) { xlim <- Arguments$getNumerics(xlim, length=c(2,2)) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Argument 'add': add <- Arguments$getLogical(add) # Argument 'Clim': if (!add) { Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) } # Argument 'subplots': subplots <- Arguments$getLogical(subplots) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Plotting PSCN panels") # Extract the input data data <- getLocusData(fit) if (is.null(data)) { stop("Cannot plot segmentation results. No input data available.") } chromosomes <- getChromosomes(fit) chromosome <- chromosomes[1] x <- data$x CT <- data$CT rho <- data$rho betaT <- data$betaT betaN <- data$betaN betaTN <- data$betaTN muN <- data$muN rho <- data$rho hasDH <- !is.null(rho) if (hasDH) { isHet <- !is.na(rho) isSnp <- isHet } else { isSnp <- (!is.na(betaTN) & !is.na(muN)) isHet <- isSnp & (muN == 1/2) } nbrOfLoci <- length(x) # BACKWARD COMPATIBILITY: # If 'rho' is not available, recalculate it from tumor BAFs. # NOTE: This should throw an error in the future. /HB 2013-10-25 if (!hasDH) { rho <- rep(NA_real_, times=nbrOfLoci) rho[isHet] <- 2*abs(betaTN[isHet]-1/2) warning(sprintf("Locus-level DH signals ('rho') were not available in the %s object and therefore recalculated from the TumorBoost-normalized tumor BAFs ('betaTN').", class(fit)[1L])) } # Extract the segmentation segs <- as.data.frame(fit) # Identify available calls if (!is.null(calls)) { verbose && enter(verbose, "Identifying calls") pattern <- "Call$" callColumns <- grep(pattern, colnames(segs), value=TRUE) if (length(callColumns) > 0) { keep <- sapply(calls, FUN=function(pattern) { (regexpr(pattern, callColumns) != -1) }) if (is.matrix(keep)) { keep <- rowAnys(keep, useNames=FALSE) } callColumns <- callColumns[keep] callLabels <- gsub(pattern, "", callColumns) callLabels <- toupper(callLabels) } verbose && cat(verbose, "Call columns:") verbose && print(verbose, callColumns) verbose && exit(verbose) } else { callColumns <- NULL } if (chromosome != 0) { chrTag <- sprintf("Chr%02d", chromosome) } else { chrTag <- "" } if (xScale != 1) { x <- xScale * x if (is.null(xlim)) { xlim <- range(x, na.rm=TRUE) } else { xlim <- xScale * xlim } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Number of panels? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfPanels <- length(panels) if (subplots) { subplots(nbrOfPanels, ncol=1) par(mar=c(1,4,1,2)+1) } # Color loci by genotype if (hasDH) { colMu <- c("gray", "black")[!is.na(rho) + 1] } else { colMu <- c("gray", "black")[(muN == 1/2) + 1] } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each panel... # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for (pp in seq_len(nbrOfPanels)) { panel <- panels[pp] verbose && enter(verbose, sprintf("Panel #%d ('%s') of %d", pp, panel, length(panels))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Setup empty plot # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (!add) { verbose && enter(verbose, "Creating empty plot") tracks <- strsplit(panel, split=",", fixed=TRUE)[[1]] tracks <- gsub("[-*]", "", tracks) # Defaults ylim <- Clim ylab <- paste(toupper(tracks), collapse=", ") if (any(is.element(c("betaN", "betaT", "betaTN", "dh"), tracks))) { ylim <- Blim } verbose && cat(verbose, "ylim:") verbose && print(verbose, ylim) plot(NA, xlim=xlim, ylim=ylim, ylab=ylab) # Geometrical annotations stext(side=3, pos=1, chrTag) if (grid) { abline(h=seq(from=0, to=ylim[2], by=2), lty=3, col="gray") abline(h=0, lty=1, col="black") } verbose && exit(verbose) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Scatter tracks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tracks <- strsplit(panel, split=",", fixed=TRUE)[[1]] keep <- grep("-", tracks, fixed=TRUE, invert=TRUE) tracks <- tracks[keep] verbose && cat(verbose, "Number tracks with scatter: ", length(tracks)) verbose && cat(verbose, "Tracks with scatter:") verbose && print(verbose, tracks) nbrOfTracks <- length(tracks) for (tt in seq_len(nbrOfTracks)) { track <- tracks[tt] verbose && enter(verbose, sprintf("Scatter track #%d ('%s') of %d", tt, track, nbrOfTracks)) track <- gsub("[-*]", "", track) # Defaults colT <- if (is.null(col)) "black" else col if (track == "tcn") { y <- CT } else if (track == "c1") { y <- 1/2*(1-rho)*CT } else if (track == "c2") { y <- 1/2*(1+rho)*CT } else if (track == "betaN") { y <- betaN colT <- if (is.null(col)) colMu else col ylab <- expression(BAF[N]) ylim <- Blim } else if (track == "betaT") { y <- betaT colT <- if (is.null(col)) colMu else col ylab <- expression(BAF[T]) ylim <- Blim } else if (track == "betaTN") { y <- betaTN colT <- if (is.null(col)) colMu else col ylab <- expression(BAF[T]^"*") ylim <- Blim } else if (track == "dh") { y <- rho colT <- if (is.null(col)) colMu[isHet] else col ylab <- "DH" ylim <- Blim } else { y <- NULL } # Nothing to do? if (!is.null(y)) { points(x, y, pch=pch, cex=cex, col=colT) } verbose && exit(verbose) } # for (tt ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Segment tracks # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - tracks <- strsplit(panel, split=",", fixed=TRUE)[[1]] keep <- grep("*", tracks, fixed=TRUE) tracks <- gsub("[-*]", "", tracks[keep]) # Keep only supported tracks tracksWithLevels <- c("tcn", "betaTN", "c1", "c2", "dh") .stop_if_not(all(is.element(tracks, tracksWithLevels))) tracks <- intersect(tracks, tracksWithLevels) verbose && cat(verbose, "Number tracks with levels: ", length(tracks)) verbose && cat(verbose, "Tracks with levels:") verbose && print(verbose, tracks) nbrOfTracks <- length(tracks) for (tt in seq_len(nbrOfTracks)) { track <- tracks[tt] verbose && enter(verbose, sprintf("Level track #%d ('%s') of %d", tt, track, nbrOfTracks)) if (track == "tcn") { colT <- "purple" } else if (track == "c1") { colT <- "blue" } else if (track == "c2") { colT <- "red" } else if (track == "betaTN") { colT <- "orange" } else if (track == "dh") { colT <- "orange" } else { colT <- if (is.null(col)) "black" else col } # Nothing to do? if (track != "betaTN") { drawConfidenceBands(fit, what=track, quantiles=quantiles, col=colT, xScale=xScale) } drawLevels(fit, what=track, col=colT, lwd=lwd, xScale=xScale) verbose && exit(verbose) } # for (tt ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Draw change points? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (changepoints) { segs <- as.data.frame(fit) xStarts <- segs[,"tcnStart"] xEnds <- segs[,"tcnEnd"] xs <- sort(unique(c(xStarts, xEnds))) abline(v=xScale*xs, lty=1, col="gray") } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # For each panel of tracks, annotate with calls? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (length(callColumns) > 0) { for (cc in seq_along(callColumns)) { callColumn <- callColumns[cc] callLabel <- callLabels[cc] verbose && enter(verbose, sprintf("Call #%d ('%s') of %d", cc, callLabel, length(callColumns))) verbose && cat(verbose, "Column: ", callColumn) segsT <- segs[,c("dhStart", "dhEnd", callColumn)] isCalled <- which(segsT[[callColumn]]) segsT <- segsT[isCalled,1:2,drop=FALSE] verbose && printf(verbose, "Number of segments called %s: %d\n", callLabel, nrow(segsT)) segsT <- xScale * segsT verbose && str(verbose, segsT) side <- 2*((cc+1) %% 2) + 1 # For each segment called... for (ss in seq_len(nrow(segsT))) { x0 <- segsT[ss,1,drop=TRUE] x1 <- segsT[ss,2,drop=TRUE] abline(v=c(x0,x1), lty=3, col="gray") xMid <- (x0+x1)/2 mtext(side=side, at=xMid, line=-1, cex=0.7, col="#666666", callLabel) } # for (ss in ...) verbose && exit(verbose) } # for (cc in ...) } # if (length(callColumns) > 0) verbose && exit(verbose) } # for (pp ...) verbose && exit(verbose) invisible() }, protected=TRUE) # plotTracks2() PSCBS/R/CBS.RESTRUCT.R0000644000176200001440000002304214564051545013343 0ustar liggesuserssetMethodS3("shiftTCN", "CBS", function(fit, shift, update=TRUE, ...) { # Argument 'shift': shift <- Arguments$getDouble(shift, disallow=c("NA", "NaN", "Inf")) data <- getLocusData(fit) data$y <- data$y + shift fit$data <- data # Not needed anymore data <- NULL if (update) { fit <- updateMeans(fit, ...) } fit }, protected=TRUE) ###########################################################################/** # @set "class=CBS" # @RdocMethod c # @alias c.PSCBS # # @title "Concatenates segmentation results" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{\dots}{One or more @see "AbstractCBS" objects to be combined.} # \item{addSplit}{If @TRUE, a "divider" is added between chromosomes.} # } # # \value{ # Returns an @see "AbstractCBS" object of the same class in \dots. # } # # @author "HB" # # \seealso{ # @seeclass # } #*/########################################################################### setMethodS3("c", "CBS", function(..., addSplit = TRUE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - args <- list(...) ## Nothing todo? nargs <- length(args) if (nargs == 1) return(args[[1]]) isNA <- function(x) is.logical(x) && length(x) == 1L && is.na(x) res <- args[[1]] fields <- c("output", "segRows") for (ii in 2:nargs) { arg <- args[[ii]] if (isNA(arg)) { if (addSplit) { warning(sprintf("Detected explicit NA in call to c(<%s>, ..., addSplit = TRUE). Ignoring", class(args[[1]])[1])) next } ## Add "splitter" for (field in fields) { res[[field]] <- rbind(res[[field]], NA) } } else { ## Locus-level data data <- getLocusData(res) data_arg <- getLocusData(arg) if (!all(colnames(data_arg) == colnames(data))) { stop(sprintf("Cannot concatenate %s and %s objects, because they have different sets of columns in field %s: {%s} [n=%d] != {%s} [n=%d]", sQuote(class(res)[1]), sQuote(class(arg)[1]), sQuote(field), paste(sQuote(colnames(data)), collapse=", "), ncol(data), paste(sQuote(colnames(data_arg)), collapse=", "), ncol(data_arg))) } indexOffset <- nrow(data) data <- rbind(data, getLocusData(arg)) res[["data"]] <- data # Segmentation data for (field in fields[-1]) { arg[[field]] <- arg[[field]] + indexOffset } splitter <- if (addSplit) NA else NULL for (field in fields) { res[[field]] <- rbind(res[[field]], splitter, arg[[field]]) } # Known segments ksT <- res$params$knownSegments ksT$length <- NULL # In case it's been added ksO <- arg$params$knownSegments ksO$length <- NULL # In case it's been added res$params$knownSegments <- rbind(ksT, ksO) } } ## for (ii ...) ## Drop row names, iff they've been added for (field in fields) rownames(res[[field]]) <- NULL # Sanity check ns <- sapply(res[fields], FUN = nrow) .stop_if_not(all(ns == ns[1])) res }) # c() setMethodS3("extractSegments", "CBS", function(this, idxs, ..., verbose=FALSE) { fit <- this # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Local functions # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - updateSegRows <- function(segRows, idxs=NULL) { verbose && str(verbose, segRows) if (!is.null(idxs)) { segRows <- segRows[idxs,,drop=FALSE] } # verbose && cat(verbose, "Number of segments: ", nrow(segRows)) # verbose && str(verbose, segRows) # Treat splitters separately isSplitter <- (is.na(segRows[,1]) & is.na(segRows[,2])) ns <- segRows[,2] - segRows[,1] + 1L # verbose && cat(verbose, "Number of loci per segment:") # verbose && str(verbose, ns) ns <- ns[!isSplitter] from <- c(1L, cumsum(ns)[-length(ns)]+1L) to <- from + (ns - 1L) segRows[!isSplitter,1] <- from segRows[!isSplitter,2] <- to verbose && str(verbose, segRows) # Sanity check ns2 <- segRows[,2] - segRows[,1] + 1L ns2 <- ns2[!isSplitter] .stop_if_not(all(ns2 == ns)) segRows } # updateSegRows() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'idxs': idxs <- Arguments$getIndices(idxs, max=nbrOfSegments(fit, splitters=TRUE)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Extracting subset of segments") verbose && cat(verbose, "Number of segments: ", length(idxs)) verbose && str(verbose, idxs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fit) segRows <- fit$segRows segs <- getSegments(fit) params <- fit$params # Sanity checks .stop_if_not(all(!is.na(data$chromosome) & !is.na(data$x))) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset segments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update table of segments") segsT <- segs[idxs,,drop=FALSE] verbose && str(verbose, segsT) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Subset data accordingly # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update locus data") segRowsT <- segRows[idxs,,drop=FALSE] from <- segRowsT[[1]] to <- segRowsT[[2]] ok <- (!is.na(from) & !is.na(to)) from <- from[ok] to <- to[ok] keep <- logical(nrow(data)) for (rr in seq_along(from)) { keep[from[rr]:to[rr]] <- TRUE } keep <- which(keep) verbose && printf(verbose, "Identified %d (%.2f%%) of %d data rows:\n", length(keep), 100*length(keep)/nrow(data), nrow(data)) verbose && str(verbose, keep) dataT <- data[keep,,drop=FALSE] verbose && str(verbose, dataT) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Update 'segRows' # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Update 'segRows'") segRowsT <- updateSegRows(segRowsT) d <- segRows[idxs,] - segRowsT # Sanity check .stop_if_not(identical(d[,1], d[,2])) d <- d[,1] verbose && cat(verbose, "Row deltas:") verbose && str(verbose, d) segRows <- segRows[idxs,,drop=FALSE] - d verbose && str(verbose, segRows) # Sanity checks .stop_if_not(suppressWarnings(max(segRows, na.rm=TRUE)) <= nrow(dataT)) drow <- segRows[-1,1] - segRows[-nrow(segRows),2] .stop_if_not(all(is.na(drow) | (drow > 0))) if (!all(is.na(drow) | (drow > 0))) { print(segRows) stop("INTERNAL ERROR: Generated 'segRows' is invalid, because it contains overlapping data chunks.") } verbose && exit(verbose) # Create new object res <- fit res$data <- dataT res$output <- segsT res$segRows <- segRows verbose && exit(verbose) res }, protected=TRUE) # extractSegments() setMethodS3("mergeTwoSegments", "CBS", function(this, left, update=TRUE, verbose=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nbrOfSegments <- nbrOfSegments(this, splitters=TRUE) # Argument 'left': left <- Arguments$getIndex(left, max=nbrOfSegments-1L) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Merging two segments") verbose && printf(verbose, "Segments to be merged: %s & %s\n", left, left+1) verbose && cat(verbose, "Number of segments before merging: ", nbrOfSegments) verbose && cat(verbose, "Number of segments after merging: ", nbrOfSegments-1L) segs <- getSegments(this) segRows <- this$segRows rows <- c(left,left+1) segsT <- segs[rows,,drop=FALSE] # Sanity check chrs <- segsT[["chromosome"]] if (chrs[1] != chrs[2]) { stop("Cannot merge segments that are on different chromosomes: ", chrs[1], " != ", chrs[2]) } # Merge segments segT <- segsT[1,] fields <- colnames(segsT) idxsUsed <- c() # (id) [as in label] idxs <- grep("(I|i)d$", fields) idxsUsed <- c(idxsUsed, idxs) # (chromosome) idxs <- grep("chromosome$", fields) idxsUsed <- c(idxsUsed, idxs) # Starts idxs <- grep("(S|s)tart$", fields) T <- as.matrix(segsT[,idxs,drop=FALSE]) segT[,idxs] <- colMins(T, na.rm=TRUE, useNames=FALSE) idxsUsed <- c(idxsUsed, idxs) # Ends idxs <- grep("(E|e)nd$", fields) T <- as.matrix(segsT[,idxs,drop=FALSE]) segT[,idxs] <- colMaxs(T, na.rm=TRUE, useNames=FALSE) idxsUsed <- c(idxsUsed, idxs) # Counts idxs <- grep("(N|n)brOf", fields) segT[,idxs] <- colSums(segsT[,idxs,drop=FALSE]) idxsUsed <- c(idxsUsed, idxs) # "Invalidate" remaining entries idxsTodo <- setdiff(seq_along(fields), idxsUsed) segT[,idxsTodo] <- NA # Update segment table segs[rows[1],] <- segT segs <- segs[-rows[2],] # Update 'segRows' tables segRows[rows[1],2] <- segRows[rows[2],2] segRows <- segRows[-rows[2],] # Create results object res <- this res$output <- segs res$segRows <- segRows # Update the segment statistics? if (update) { res <- updateMeans(res) } verbose && exit(verbose) res }, protected=TRUE) # mergeTwoSegments() PSCBS/R/PairedPSCBS.estimateDeltaAB.R0000644000176200001440000004733014564051545016456 0ustar liggesusers###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateDeltaAB # # @title "Estimate a threshold for calling allelic balance from DH" # # \description{ # @get "title" to be used by the @seemethod "callAB" method. # } # # @synopsis # # \arguments{ # \item{scale}{An optional @numeric scale factor.} # \item{flavor}{A @character string specifying which type of # estimator to use.} # \item{...}{Additional arguments passed to the estimator.} # \item{max}{(Optional) The maximum estimate allowed. If greater than # this value, the estimate will be truncated.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the threshold estimate as a @numeric scalar. # } # # @author "HB" # # \seealso{ # Internally, one of the following methods are used: # @seemethod "estimateDeltaABBySmallDH", # @seemethod "estimateStdDevForHeterozygousBAF", # @seemethod "estimateMeanForDH", and # @seemethod "estimateHighDHQuantileAtAB". # } # #*/########################################################################### setMethodS3("estimateDeltaAB", "PairedPSCBS", function(this, scale=NULL, flavor=c("qq(DH)", "q(DH)", "mad(hBAF)", "median(DH)"), ..., max=Inf, verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'flavor': flavor <- match.arg(flavor) # Argument 'max': max <- Arguments$getDouble(max, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating DH threshold for calling allelic imbalances") verbose && cat(verbose, "flavor: ", flavor) if (flavor == "mad(hBAF)") { if (is.null(scale)) scale <- 3 verbose && cat(verbose, "scale: ", scale) # sigma = mad(hBAF) = 1.4826*median(|hBAF-m|), # where m = median(hBAF) ~= 1/2 sd <- estimateStdDevForHeterozygousBAF(this, ..., verbose=verbose) verbose && printf(verbose, "sd: %.3g\n", sd) delta <- scale * sd } else if (flavor == "median(DH)") { if (is.null(scale)) scale <- 3 verbose && cat(verbose, "scale: ", scale) # sigma = 1/2*1.4826*median(|hBAF-1/2|), # because DH = 2*|hBAF-1/2| mu <- estimateMeanForDH(this, ..., verbose=verbose) verbose && printf(verbose, "mu: %.3g\n", mu) sd <- 1/2 * 1.4826 * mu verbose && printf(verbose, "sd: %.3g\n", sd) delta <- scale * sd } else if (flavor == "q(DH)") { if (is.null(scale)) scale <- 1 verbose && cat(verbose, "scale: ", scale) delta <- estimateHighDHQuantileAtAB(this, scale=scale, ..., verbose=verbose) } else if (flavor == "qq(DH)") { if (is.null(scale)) scale <- 1 verbose && cat(verbose, "scale: ", scale) delta <- estimateDeltaABBySmallDH(this, ..., verbose=verbose) delta <- scale * delta } else { stop("Unkown flavor: ", flavor) } ## } else if (flavor == "DHskew") { ## fit <- this ## if (is.null(fit$output$dhSkew)) { ## verbose && enter(verbose, "Estimating DH skewness for each segment") ## fit <- applyByRegion(fit, FUN=.addTcnDhStatitics, verbose=less(verbose, 5)) ## verbose && exit(verbose) ## } ## mu <- fit$output$dhMean ## skew <- fit$output$dhSkew ## ## deltaSkew <- -0.55 ## keep <- which(skew < deltaSkew) ## verbose && printf(verbose, "Number of segments heavily skewed (< %.3f): %d\n", deltaSkew, length(keep)) ## # Sanity check ## if (length(keep) == 0) { ## stop("Cannot estimate DH threshold for AB. No segments with strong skewness exists.") ## } ## deltaDH <- median(mu[keep], na.rm=TRUE) ## verbose && printf(verbose, "deltaDH: %.3g\n", deltaDH) ## deltaDH <- 1.10*deltaDH ## verbose && printf(verbose, "Adjusted +10%% deltaDH: %.3g\n", deltaDH) ## ## # sigma = 1/2*1.4826*median(|hBAF-1/2|), ## # because DH = 2*|hBAF-1/2| ## mu <- estimateMeanForDH(this, delta=deltaDH, ...) ## verbose && printf(verbose, "mu: %.3g\n", mu) ## sd <- 1/2 * 1.4826 * mu ## verbose && printf(verbose, "sd: %.3g\n", sd) ## } verbose && printf(verbose, "Estimated delta: %.3g\n", delta) # Truncate estimate? if (delta > max) { warning("Estimated delta (%.3g) was greater than the maximum allowed value (%.3g). The latter will be used instead.", delta, max) delta <- max verbose && printf(verbose, "Max delta: %.3g\n", max) verbose && printf(verbose, "Truncated delta: %.3g\n", delta) } verbose && exit(verbose) delta }) # estimateDeltaAB() setMethodS3("estimateStdDevForHeterozygousBAF", "PairedPSCBS", function(this, deltaDH=0.20, deltaTCN=5, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'deltaDH': deltaDH <- Arguments$getDouble(deltaDH, range=c(0,1)) # Argument 'deltaTCN': deltaTCN <- Arguments$getDouble(deltaTCN, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating standard deviation of tumor BAFs for heterozygous SNPs") verbose && cat(verbose, "DH threshold: ", deltaDH) verbose && cat(verbose, "TCN threshold: ", deltaTCN) segs <- as.data.frame(this) verbose && cat(verbose, "Number of segments: ", nrow(segs)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find segments to be used for the estimation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find segments that have low DHs idxsDH <- which(segs$dhMean <= deltaDH) verbose && cat(verbose, "Identified segments with small DH levels: ", length(idxsDH)) verbose && str(verbose, idxsDH) # Sanity check if (length(idxsDH) == 0) { stop("Cannot estimate standard deviation. There exist no segments with DH less or equal to the given threshold: ", deltaDH) } # Find segments that have low TCNs idxsTCN <- which(segs$tcnMean <= deltaTCN) verbose && cat(verbose, "Identified segments with small TCN levels: ", length(idxsTCN)) verbose && str(verbose, idxsTCN) # Sanity check if (length(idxsTCN) == 0) { stop("Cannot estimate standard deviation. There exist no segments with TCN less or equal to the given threshold: ", deltaTCN) } # Segments with small DH and small TCN idxs <- intersect(idxsDH, idxsTCN) verbose && cat(verbose, "Identified segments with small DH and small TCN levels: ", length(idxs)) verbose && str(verbose, idxs) # Sanity check if (length(idxs) == 0) { stop("Cannot estimate standard deviation. There exist no segments with small DH and small TCN.") } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimate parameters # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract those segments verbose && enter(verbose, "Extracting identified segments") fitT <- extractRegions(this, idxs) verbose && exit(verbose) # Get the tumor BAFs for the heterozygous SNPs verbose && enter(verbose, "Extracting BAFs for the heterozygous SNPs") beta <- with(fitT$data, betaTN[muN == 1/2]) verbose && str(verbose, beta) verbose && exit(verbose) # Estimate the standard deviation for those sd <- mad(beta, na.rm=TRUE) verbose && cat(verbose, "Estimated standard deviation: ", sd) verbose && exit(verbose) sd }, private=TRUE) # estimateStdDevForHeterozygousBAF() setMethodS3("estimateMeanForDH", "PairedPSCBS", function(this, deltaDH=0.20, deltaTCN=5, robust=TRUE, trim=0.05, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'deltaDH': deltaDH <- Arguments$getDouble(deltaDH, range=c(0,1)) # Argument 'deltaTCN': deltaTCN <- Arguments$getDouble(deltaTCN, range=c(0,Inf)) # Argument 'robust': robust <- Arguments$getLogical(robust) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating mean of tumor DHs for heterozygous SNPs") verbose && cat(verbose, "DH threshold: ", deltaDH) verbose && cat(verbose, "TCN threshold: ", deltaTCN) verbose && cat(verbose, "Robust estimator: ", robust) verbose && cat(verbose, "Trim: ", trim) segs <- as.data.frame(this) verbose && cat(verbose, "Number of segments: ", nrow(segs)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find segments to be used for the estimation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find segments that have low DHs idxsDH <- which(segs$dhMean <= deltaDH) verbose && cat(verbose, "Identified segments with small DH levels: ", length(idxsDH)) verbose && str(verbose, idxsDH) # Sanity check if (length(idxsDH) == 0) { stop("Cannot estimate standard deviation. There exist no segments with DH less or equal to the given threshold: ", deltaDH) } # Find segments that have low TCNs idxsTCN <- which(segs$tcnMean <= deltaTCN) verbose && cat(verbose, "Identified segments with small TCN levels: ", length(idxsTCN)) verbose && str(verbose, idxsTCN) # Sanity check if (length(idxsTCN) == 0) { stop("Cannot estimate standard deviation. There exist no segments with TCN less or equal to the given threshold: ", deltaTCN) } # Segments with small DH and small TCN idxs <- intersect(idxsDH, idxsTCN) verbose && cat(verbose, "Identified segments with small DH and small TCN levels: ", length(idxs)) verbose && str(verbose, idxs) # Sanity check if (length(idxs) == 0) { stop("Cannot estimate standard deviation. There exist no segments with small DH and small TCN.") } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimate parameters # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract those segments verbose && enter(verbose, "Extracting identified segments") fitT <- extractRegions(this, idxs) verbose && exit(verbose) # Get the tumor DHs for the heterozygous SNPs verbose && enter(verbose, "Extracting DHs for the heterozygous SNPs") rho <- with(fitT$data, rho[muN == 1/2]) verbose && str(verbose, rho) verbose && exit(verbose) # Estimate the average for those rho <- rho[is.finite(rho)] if (robust) { mu <- median(rho, na.rm=FALSE) qlow <- quantile(rho, probs=0.05, na.rm=FALSE) delta <- mu-qlow print(list(qlow=qlow, mu=mu, delta=delta, "mu+delta"=mu+delta)) } else { mu <- mean(rho, trim=trim, na.rm=FALSE) } verbose && cat(verbose, "Estimated mean: ", mu) verbose && exit(verbose) mu }, private=TRUE) # estimateMeanForDH() setMethodS3("estimateHighDHQuantileAtAB", "PairedPSCBS", function(this, quantile=0.99, scale=1, deltaDH=0.20, deltaTCN=5, robust=TRUE, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'quantile': quantile <- Arguments$getDouble(quantile, range=c(0.5,1)) # Argument 'scale': scale <- Arguments$getDouble(scale, range=c(0,Inf)) # Argument 'deltaDH': deltaDH <- Arguments$getDouble(deltaDH, range=c(0,1)) # Argument 'deltaTCN': deltaTCN <- Arguments$getDouble(deltaTCN, range=c(0,Inf)) # Argument 'robust': robust <- Arguments$getLogical(robust) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating DH quantile of tumor DHs for heterozygous SNPs") verbose && cat(verbose, "DH threshold: ", deltaDH) verbose && cat(verbose, "TCN threshold: ", deltaTCN) verbose && cat(verbose, "Robust estimator: ", robust) verbose && cat(verbose, "Scale factor: ", scale) segs <- as.data.frame(this) verbose && cat(verbose, "Number of segments: ", nrow(segs)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Find segments to be used for the estimation # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Finding some segments that are likely to in allelic balance (AB)") # Find some segments that have low DHs idxsDH <- which(segs$dhMean <= deltaDH) verbose && cat(verbose, "Identified segments with small DH levels: ", length(idxsDH)) verbose && str(verbose, idxsDH) # Sanity check if (length(idxsDH) == 0) { stop("Cannot estimate standard deviation. There exist no segments with DH less or equal to the given threshold: ", deltaDH) } # Find segments that have low TCNs idxsTCN <- which(segs$tcnMean <= deltaTCN) verbose && cat(verbose, "Identified segments with small TCN levels: ", length(idxsTCN)) verbose && str(verbose, idxsTCN) # Sanity check if (length(idxsTCN) == 0) { stop("Cannot estimate standard deviation. There exist no segments with TCN less or equal to the given threshold: ", deltaTCN) } # Segments with small DH and small TCN idxs <- intersect(idxsDH, idxsTCN) verbose && cat(verbose, "Identified segments with small DH and small TCN levels: ", length(idxs)) verbose && str(verbose, idxs) # Sanity check if (length(idxs) == 0) { stop("Cannot estimate standard deviation. There exist no segments with small DH and small TCN.") } # Extract those segments verbose && enter(verbose, "Extracting identified segments") fitT <- extractRegions(this, idxs) verbose && exit(verbose) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract data and estimate parameters # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get the tumor DHs for the heterozygous SNPs verbose && enter(verbose, "Extracting DHs for the heterozygous SNPs") rho <- with(fitT$data, rho[muN == 1/2]) verbose && str(verbose, rho) verbose && exit(verbose) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Estimating the DH quantile # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - verbose && enter(verbose, "Estimating the quantile of interest") verbose && cat(verbose, "Quantile: ", quantile) # Drop missing values rho <- rho[is.finite(rho)] if (robust) { lq <- quantile(rho, probs=1-quantile, na.rm=FALSE) verbose && printf(verbose, "Estimated lower quantile (%.3f): %f\n", 1-quantile, lq) mu <- median(rho, na.rm=FALSE) verbose && cat(verbose, "Estimated median: ", mu) delta <- mu-lq verbose && printf(verbose, "Estimated \"spread\": %f\n", delta) uq <- mu + scale*delta verbose && printf(verbose, "Scale parameter: %f\n", scale) qs <- c(lq, mu, mu+delta, uq) names(qs) <- sprintf("%.1f%%", 100*c(1-quantile, 0.5, quantile, 0.5+scale*(quantile-0.5))) names(qs)[3:4] <- sprintf("%s*", names(qs)[3:4]) attr(uq, "quantiles") <- qs } else { uq <- quantile(rho, probs=quantile, na.rm=FALSE) } names(uq) <- uq verbose && printf(verbose, "Estimated upper quantile (%.3f): %f\n", quantile, uq) verbose && exit(verbose) verbose && exit(verbose) uq }, private=TRUE) # estimateHighDHQuantileAtAB() ###########################################################################/** # @set class=PairedPSCBS # @RdocMethod estimateDeltaABBySmallDH # # @title "Estimate a threshold for calling allelic balance from DH" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{q1}{A @numeric value specifying the weighted quantile of the # segment-level DHs used to identify segments with small DH means.} # \item{q2}{A @numeric value specifying the quantile of the locus-level # DH signals for those segments with small DH mean levels.} # \item{...}{Not used.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns the threshold estimate as a @numeric scalar. # } # # \section{Algorithm}{ # \itemize{ # \item Grabs the segment-level DH estimates. # \item Calculate segment weights proportional to the number # of heterozygous SNPs. # \item Calculate \eqn{\Delta} as the 5\% quantile of the weighted DH means. # \item Choose the segments with means less than \eqn{\Delta}. # \item Calculate threshold \eqn{\Delta_{AB}} as the 90\% "symmetric" quantile # of the observed locus-level DHs from the selected segments # in Step 4. # The q:th "symmetric" quantile is estimated by estimating # the ((1-q), 50\%) quantiles, calculating their distance as # "50\%-(1-q)" and add to the median (50\%), i.e. # "median + (median-(1-q))" = "2*median-1 + q", which should # equal q if the distribution is symmetric. # } # } # # @author "HB" # # \seealso{ # Instead of calling this method explicitly, it is recommended # to use the @seemethod "estimateDeltaAB" method. # } # # @keyword internal #*/########################################################################### setMethodS3("estimateDeltaABBySmallDH", "PairedPSCBS", function(fit, q1=0.05, q2=0.90, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'q1' & 'q2': q1 <- Arguments$getDouble(q1, range=c(0,1)) q2 <- Arguments$getDouble(q2, range=c(0,1)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Estimating DH threshold for AB caller") verbose && cat(verbose, "quantile #1: ", q1) verbose && cat(verbose, "Symmetric quantile #2: ", q2) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the region-level estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segs <- getSegments(fit) dh <- segs$dhMean .stop_if_not(!is.null(dh)) n <- segs$dhNbrOfLoci # Drop missing values keep <- (!is.na(dh) & !is.na(n)) idxs <- which(keep) dh <- dh[idxs] n <- n[idxs] verbose && cat(verbose, "Number of segments: ", length(idxs)) # Sanity check .stop_if_not(length(idxs) > 0) # Calculated weighted quantile weights <- n / sum(n) deltaDH <- weightedQuantile(dh, w=weights, probs=q1) verbose && printf(verbose, "Weighted %g%% quantile of DH: %f\n", 100*q1, deltaDH) # Identify segments with DH this small keep <- (dh <= deltaDH) idxs <- idxs[keep] verbose && cat(verbose, "Number of segments with small DH: ", length(idxs)) # Sanity check .stop_if_not(length(idxs) > 0) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the locus-level estimates # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Extract the regions of interest fitT <- extractRegions(fit, idxs) # Extract the data data <- fitT$data rho <- data$rho .stop_if_not(!is.null(rho)) verbose && cat(verbose, "Number of data points: ", length(rho)) # Drop missing values rho <- rho[is.finite(rho)] verbose && cat(verbose, "Number of finite data points: ", length(rho)) qs <- quantile(rho, probs=c(1-q2, 1/2), na.rm=FALSE, names=FALSE) verbose && printf(verbose, "Estimate of (1-%.3g):th and 50%% quantiles: (%g,%g)\n", q2, qs[1], qs[2]) deltaAB <- qs[2] + (qs[2]-qs[1]) verbose && printf(verbose, "Estimate of %.3g:th \"symmetric\" quantile: %g\n", q2, deltaAB) # Sanity check deltaAB <- Arguments$getDouble(deltaAB) deltaAB }, protected=TRUE) # estimateDeltaABBySmallDH() PSCBS/R/PSCBS.isLocallyPhased.R0000644000176200001440000000056114564051545015414 0ustar liggesuserssetMethodS3("isLocallyPhased", "PSCBS", function(fit, ...) { segs <- getSegments(fit) is.element("c1c2Swap", names(segs)) }) ############################################################################## # HISTORY # 2014-03-24 [HB] # o Added isLocallyPhased() for PSCBS. # o Created. ############################################################################## PSCBS/R/CBS.PRUNE.R0000644000176200001440000001606414564051545012767 0ustar liggesusers###########################################################################/** # @set "class=CBS" # @RdocMethod pruneBySdUndo # # @title "Prune the CBS profile by dropping change points that are too small" # # \description{ # @get "title", where "too small" means that the amplitude of the # change points is less than a multiple of the overall standard deviation # of the copy-number signals. # } # # @synopsis # # \arguments{ # \item{fit}{A @see "CBS" object.} # \item{rho}{A positive @double scalar specifying the number of standard # deviations (\code{rho*sigma}) required in order to keep a change point. # More change points are dropped the greater this value is.} # \item{sigma}{The whole-genome standard deviation of the locus-level # copy number signals. The default is to calculate it from the data # and as done in the \pkg{DNAcopy} package.} # \item{...}{(Optional) Additional arguments passed to the standard # deviation estimator function.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a @see "CBS" object (of the same class as \code{fit}). # } # # \details{ # This method corresponds to using the \code{undo} argument when calling # @see "segmentByCBS", which in turn corresponds to using the # \code{undo.splits="sdundo"} and \code{undo.SD} of the underlying # @see "DNAcopy::segment" method. # } # # @examples "../incl/segmentByCBS,pruneBySdUndo.Rex" # # @author "HB, PN" # # @keyword internal #*/########################################################################### setMethodS3("pruneBySdUndo", "CBS", function(fit, rho=3, sigma="DNAcopy", ..., verbose=FALSE) { # Local copies of DNAcopy functions DNAcopy_changepoints.sdundo <- .use("changepoints.sdundo", package="DNAcopy") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'rho': rho <- Arguments$getDouble(rho, range=c(0,Inf)) # Argument 'sigma': if (is.character(sigma)) { sigma <- estimateStandardDeviation(fit, method=sigma, ...) } sigma <- Arguments$getDouble(sigma, range=c(0,Inf), disallow=c("NA", "NaN", "Inf")) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Pruning segments by standard deviation") # Check if locus weights are available data <- getLocusData(fit) hasWeights <- !is.null(data$w) # Not needed anymore data <- NULL # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Prune chromosome by chromosome # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - chromosomes <- getChromosomes(fit) nbrOfChromosomes <- length(chromosomes) fitList <- vector("list", length=nbrOfChromosomes) for (cc in seq_len(nbrOfChromosomes)) { chr <- chromosomes[cc] verbose && enter(verbose, sprintf("Chromosome #%d ('Chr%s') of %d", cc, chr, length(chromosomes))) # Extract this chromosome fitT <- extractChromosome(fit, chromosome=chr) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Get segmentation data # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - data <- getLocusData(fitT) segs <- getSegments(fitT) segRows <- fitT$segRows nbrOfSegs <- nrow(segRows) verbose && cat(verbose, "Number of segments (before): ", nbrOfSegs) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Drop missing values # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - y <- data$y # Label data points by their segment index segId <- rep(NA_integer_, times=max(segRows[,2], na.rm=TRUE)) for (rr in 1:nbrOfSegs) { segRow <- unlist(segRows[rr,], use.names=FALSE) idxs <- segRow[1]:segRow[2] segId[idxs] <- rr } # Drop missing value keep <- !is.na(y) if (hasWeights) { w <- data$w keep <- keep & !is.na(w) } units <- which(keep) y <- y[units] segId <- segId[units] if (hasWeights) { w <- w[units] } # Update 'segRows' accordingly for (rr in 1:nbrOfSegs) { startStop <- range(which(segId == rr)) segRows[rr,1] <- startStop[1] segRows[rr,2] <- startStop[2] } # Not needed anymore segId <- startStop <- NULL # Sanity check .stop_if_not(max(segRows[,2]) <= length(y)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Prune change points # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - segLengths <- segRows[,2] - segRows[,1] + 1L segLengthsP <- DNAcopy_changepoints.sdundo(genomdat=y, lseg=segLengths, trimmed.SD=sigma, change.SD=rho) segLengthsP <- as.integer(segLengthsP) nbrOfSegsP <- length(segLengthsP) verbose && cat(verbose, "Number of segments (after): ", nbrOfSegsP) nbrOfPrunedSegs <- nbrOfSegs-nbrOfSegsP verbose && cat(verbose, "Number of segments dropped: ", nbrOfPrunedSegs) # No segments pruned? if (nbrOfPrunedSegs == 0) { # Sanity check .stop_if_not(identical(segLengthsP, segLengths)) fitList[[cc]] <- fitT verbose && cat(verbose, "Nothing to changed. Skipping.") # verbose && exit(verbose) # next } # Setup new 'segRows' endRow <- cumsum(segLengthsP) n <- length(endRow) segRowsP <- data.frame(startRow=c(1L, endRow[-n]+1L), endRow=endRow) # Expand to units with also missing values segRowsP[,1] <- units[segRowsP[,1]] segRowsP[,2] <- units[segRowsP[,2]] # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Create stub for a segment table # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - idxs <- seq_len(nbrOfSegsP) segsP <- segs[idxs,] # Sanity checks if (nbrOfPrunedSegs == 0) { segRows <- fitT$segRows .stop_if_not(all.equal(segRowsP, segRows, check.attributes=FALSE)) .stop_if_not(all.equal(segsP, segs, check.attributes=FALSE)) } fitT$output <- segsP fitT$segRows <- segRowsP fitList[[cc]] <- fitT verbose && exit(verbose) } # for (cc ...) ## formerly Reduce() w/ append(..., addSplit = TRUE) fitP <- do.call(c, args = c(fitList, addSplit = TRUE)) verbose && enter(verbose, "Updating segment means and boundaries") fitP <- updateBoundaries(fitP, verbose=less(verbose, 50)) fitP <- updateMeans(fitP, verbose=less(verbose, 50)) verbose && exit(verbose) nbrOfSegs <- nbrOfSegments(fit) nbrOfSegsP <- nbrOfSegments(fitP) nbrOfPrunedSegs <- nbrOfSegs-nbrOfSegsP verbose && cat(verbose, "Number of segments (before): ", nbrOfSegs) verbose && cat(verbose, "Number of segments (after): ", nbrOfSegsP) verbose && cat(verbose, "Number of segments dropped: ", nbrOfPrunedSegs) verbose && exit(verbose) fitP }) # pruneBySdUndo() setMethodS3("seqOfSegmentsByDP", "CBS", function(fit, by=c("y"), ...) { NextMethod("seqOfSegmentsByDP", by=by) }) PSCBS/R/CBS.SMOOTH.R0000644000176200001440000000305714564051545013105 0ustar liggesusers###########################################################################/** # @set class=CBS # @RdocMethod getSmoothLocusData # # @title "Gets smoothed locus-level data" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{fit}{An @see "CBS" object.} # \item{by}{A @numeric scalar specifying the bin size.} # \item{...}{Not used.} # } # # \value{ # Returns a @data.frame where the # first three columns are 'chromosome', 'x' (position), # and 'count' (number of loci average over for the given bin), # and the remaining ones are the smoothed locus-level data. # } # # @author "HB" # # \seealso{ # @seeclass # } # # @keyword internal #*/########################################################################### setMethodS3("getSmoothLocusData", "CBS", function(fit, by, ...) { # Argument 'by': by <- Arguments$getNumeric(by, range=c(0,Inf)) chromosomes <- getChromosomes(fit) data <- getLocusData(fit) chromosome <- NULL; rm(list="chromosome") # To please R CMD check dataS <- NULL for (kk in seq_along(chromosomes)) { chr <- chromosomes[kk] dataT <- subset(data, chromosome == chr) x <- dataT$x y <- dataT$y rx <- range(x, na.rm=TRUE) bx <- seq(from=rx[1], to=rx[2], by=by) xS <- bx[-1] - by/2 yS <- binMeans(y=y, x=x, bx=bx) count <- attr(yS, "count") yS[count == 0L] <- NA_real_ attr(yS, "count") <- NULL dataTS <- data.frame(chromosome=chr, x=xS, count=count, y=yS) dataS <- rbind(dataS, dataTS) } # for (kk ...) dataS }, protected=TRUE) # getSmoothLocusData() PSCBS/R/PairedPSCBS.extractSegmentDataByLocus.R0000644000176200001440000000552714564051545020560 0ustar liggesuserssetMethodS3("extractSegmentDataByLocus", "PairedPSCBS", function(fit, fields=NULL, ..., verbose=FALSE) { # Extract data segs <- getSegments(fit, splitters=TRUE) data <- getLocusData(fit, ...) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fields': if (!is.null(fields)) { fields <- Arguments$getCharacters(fields) unknown <- fields[!is.element(fields, colnames(segs))] if (length(unknown) > 0L) { stop("Unknown segment fields: ", paste(sQuote(unknown), collapse=", ")) } } else { fields <- colnames(segs) } # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Extracting segment data by locus") # Extract segment fields chromosome <- data$chromosome x <- data$x y <- data[,3L] segs <- segs[,fields] nbrOfLoci <- nrow(data) verbose && printf(verbose, "Segment fields: [%d] %s\n", length(fields), paste(sQuote(fields), collapse=", ")) verbose && cat(verbose, "Number of loci: ", nbrOfLoci) # Allocate segment fields at the locus level dataL <- matrix(NA, nrow=nbrOfLoci, ncol=length(fields)) colnames(dataL) <- fields dataL <- as.data.frame(dataL) verbose && cat(verbose, "Allocated results:") verbose && str(verbose, dataL) verbose && enter(verbose, "Extracting segment by segment") # For each segment... for (ss in seq_len(nrow(segs))) { verbose && enter(verbose, sprintf("Segment %d of %d", ss, nrow(segs))) seg <- segs[ss,] idxs <- which(chromosome == seg$chromosome & seg$tcnStart <= x & x <= seg$tcnEnd) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) verbose && cat(verbose, "Number of loci in segment: ", length(idxs)) # Sanity check ## .stop_if_not(length(idxs) == seg$tcnNbrOfLoci) segsSS <- seg[fields] verbose && cat(verbose, "Segment data extracted:") verbose && print(verbose, segsSS) for (field in fields) { dataL[idxs,field] <- segsSS[[field]] } verbose && exit(verbose) } # for (ss ...) verbose && exit(verbose) # The calls for loci that have missing annotations or observations, # should also be missing, i.e. NA. nok <- (is.na(chromosome) | is.na(x) | is.na(y)) dataL[nok,] <- NA # Sanity check .stop_if_not(nrow(dataL) == nbrOfLoci) .stop_if_not(ncol(dataL) == length(fields)) verbose && exit(verbose) dataL }, protected=TRUE) # extractSegmentDataByLocus() ############################################################################## # HISTORY # 2013-10-27 # o Added extractSegmentDataByLocus() for PairedPSCBS adopted from # extractCallsByLocus() of 'PSCBS'. ############################################################################## PSCBS/R/testROH.R0000644000176200001440000001251114564051545013011 0ustar liggesusers###########################################################################/** # @set "class=numeric" # @RdocMethod testROH # # @title "Tests if a segment is in Run-of-Homozygosity (ROH)" # # \description{ # @get "title". # } # # @synopsis # # \arguments{ # \item{muN}{An @numeric @vector of J genotype calls in # \{0,1/2,1\} for AA, AB, and BB, respectively, # and @NA for non-polymorphic loci.} # \item{csN}{(optional) A @numeric @vector of J genotype confidence scores. # If @NULL, ad hoc scores calculated from \code{betaN} are used.} # \item{betaN}{(optional) A @numeric @vector of J matched normal BAFs # in [0,1] (due to noise, values may be slightly outside as well) # or @NA for non-polymorphic loci.} # \item{minNbrOfSnps}{Minimum number of SNPs required to test segment. # If not tested, @NA is returned.} # \item{delta}{A @double scalar specifying the maximum (weighted) # proportion of heterozygous SNPs allowed in an ROH region.} # \item{...}{Not used.} # \item{verbose}{See @see "R.utils::Verbose".} # } # # \value{ # Returns a @logical. # } # # @author "PN, HB" # # @keyword internal #*/########################################################################### setMethodS3("testROH", "numeric", function(muN, csN=NULL, betaN=NULL, minNbrOfSnps=1, delta=1/12, ..., verbose=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'muN': muN <- Arguments$getDoubles(muN, range=c(0,1)) nbrOfSnps <- length(muN) length2 <- rep(nbrOfSnps, times=2) # Argument 'csN' & 'betaN': if (!is.null(csN)) { csN <- Arguments$getDoubles(csN, range=c(0,1), length=length2) } else { if (!is.null(betaN)) { betaN <- Arguments$getDoubles(betaN, length=length2) } } # Argument 'minNbrOfSnps': minNbrOfSnps <- Arguments$getInteger(minNbrOfSnps, range=c(1,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } verbose && enter(verbose, "Testing for ROH") # Default ROH call call <- NA verbose && cat(verbose, "Number of SNPs: ", nbrOfSnps) # Nothing todo? if (nbrOfSnps < minNbrOfSnps) { verbose && exit(verbose) return(call) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Calculate genotype confidence scores (from betaN)? # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if (is.null(csN)) { if (!is.null(betaN)) { verbose && enter(verbose, "Calculating confidence scores") # Assuming naive genotyping a'la aroma.light::callNaiveGenotypes() # was used to call genotypes 'muN' from 'betaN'. # AD HOC: We also have to assume that the thresholds were 1/3 and 2/3. a <- 1/3 # was fit$x[1] b <- 2/3 # was fit$x[2] # AD HOC: We have to make some assumption about which SNPs are diploid. # Assume all for now isDiploid <- rep(TRUE, times=nbrOfSnps) # KNOWN ISSUE: Scores for homozygotes are in [0,1/3], whereas # heterzygotes are in [0,1/6]. /PN 2011-11-11 csN[isDiploid] <- rowMins(abs(cbind(betaN[isDiploid]-a, betaN[isDiploid]-b)), useNames=FALSE) verbose && exit(verbose) } } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Call ROH # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify heterozygous SNPs isHet <- (muN == 1/2) verbose && print(verbose, summary(isHet)) # With or without genotype confidence scores? if (!is.null(csN)) { # 0-1 weights (just to make sure) # Weights summing to one w <- csN / sum(csN, na.rm=TRUE) wnHets <- sum(isHet*w, na.rm=TRUE) wnSnps <- sum(w, na.rm=TRUE) # == 1 /HB # Sanity check .stop_if_not(isZero(wnSnps - 1.0, eps=sqrt(.Machine$double.eps))) } else { wnHets <- sum(isHet, na.rm=TRUE) wnSnps <- 1 } propHets <- wnHets/wnSnps verbose && print(verbose, propHets) call <- (propHets < delta) verbose && print(verbose, call) # Record parameter settings attr(call, "minNbrOfSnps") <- minNbrOfSnps attr(call, "delta") <- delta verbose && exit(verbose) call }) # testROH() ############################################################################## # HISTORY # 2014-03-30 [HB] # o GENERALIZATION: Now testROH() default to equal confidence scores # whenever neither 'csN' not 'betaN' is given. This means that # callROH() can also be done if only 'muN' was provided. # o Updated the ordering and the defaults of testROH() arguments to make # it clear that 'betaN' is optional and only used if 'csN' is not given. # 2013-03-08 [HB] # o Added Rdoc help. # 2012-05-30 [HB] # o Now testROH() return parameter settings as attributes. # 2011-11-21 [HB] # o BUG FIX: The internal sanity check on weights was slightly too # conservative. # 2011-11-12 [HB] # o Renamed argument 'tauROH' to 'delta', cf. how we do for AB and LOH. # o Added argument 'minNbrOfSnps' to testROH(). # o Added verbose output. # 2011-11-12 [PN] # o Implemented a naive caller based on the weighted proportion of hets # in the segment. # 2011-11-04 [HB] # o Added skeleton for testROH(). # o Created. ############################################################################## PSCBS/R/CBS.PLOT.R0000644000176200001440000003157014564051545012653 0ustar liggesusers###########################################################################/** # @set "class=CBS" # @RdocMethod plotTracks # # @title "Plots copy numbers along the genome" # # \description{ # @get "title" for one or more chromosomes. # Each type of track is plotted in its own panel. # } # # @synopsis # # \arguments{ # \item{x}{A result object returned by @see "segmentByCBS".} # \item{pch}{The type of points to use.} # \item{Clim}{The range of copy numbers.} # \item{xScale}{The scale factor used for genomic positions.} # \item{...}{Not used.} # \item{add}{If @TRUE, the panels plotted are added to the existing plot, # otherwise a new plot is created.} # } # # \value{ # Returns nothing. # } # # @author "HB" # # @keyword IO # @keyword internal #*/########################################################################### setMethodS3("plotTracks", "CBS", function(x, scatter=TRUE, pch=20, col="gray", meanCol="purple", cex=1, grid=FALSE, Clim="auto", xScale=1e-6, Clab="auto", ..., byIndex=FALSE, mar=NULL, add=FALSE) { # To please R CMD check fit <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'add': add <- Arguments$getLogical(add) # Argument 'Clim': if (identical(Clim, "auto")) { signalType <- getSignalType(fit) ploidy <- ploidy(fit) Clim <- switch(signalType, "log2ratio" = c(-2,2) + c(-1,1)*ploidy/2, "ratio" = c(0,3*ploidy), { x_name <- as.character(substitute(x)) warning(sprintf("Setting default 'Clim' assuming the signal type is %s because signalType(%s) is unknown (%s). Use signalType(%s) <- %s to avoid this warning.", sQuote("ratio"), x_name, sQuote(signalType), x_name, sQuote("ratio"))) c(0, 3 * ploidy) } ) ## NOTE: Don't understand why, but with this 'R CMD build' gives: ## "Error: processing vignette 'CBS.tex.rsp' failed with diagnostics: ## Failed to infer argument 'Clim' due to an unknown signalType(): NA" ## /HB 2013-10-14 ## if (!add && is.null(Clim)) { ## stop("Failed to infer argument 'Clim' due to an unknown signalType(): ", signalType) ## } } else if (!add) { Clim <- Arguments$getNumerics(Clim, length=c(2L,2L), disallow=c("Inf", "NA", "NaN")) } if (identical(Clab, "auto")) { signalType <- getSignalType(fit) Clab <- switch(signalType, "log2ratio" = "log2 CN ratio", "ratio" = "CN ratio", NULL ) } # Argument 'fit': if (nbrOfChromosomes(fit) > 1L) { res <- plotTracksManyChromosomes(fit, scatter=scatter, pch=pch, col=col, cex=cex, meanCol=meanCol, Clim=Clim, xScale=xScale, Clab=Clab, ..., byIndex=byIndex, mar=mar, add=add) return(invisible(res)) } # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Extract the input data data <- getLocusData(fit) if (is.null(data)) { stop("Cannot plot segmentation results. No input data available.") } chromosomes <- getChromosomes(fit) chromosome <- chromosomes[1] x <- data$x CT <- data[,3] nbrOfLoci <- length(x) # Extract the segmentation segs <- getSegments(fit) if (chromosome != 0) { chrTag <- sprintf("Chr%02d", chromosome) } else { chrTag <- "" } if (xScale != 1) { x <- xScale * x } if (!add && !is.null(mar)) { par(mar=mar) } pchT <- if (scatter) { pch } else { NA } plot(x, CT, pch=pchT, cex=cex, col=col, ..., ylim=Clim, ylab=Clab) stext(side=3, pos=1, chrTag) if (grid) { yrange <- par("usr")[3:4] yrange[1] <- floor(yrange[1]) yrange[2] <- ceiling(yrange[2]) abline(h=seq(from=yrange[1], to=yrange[2], by=2), lty=3, col="gray") abline(h=0, lty=1, col="black") } drawLevels(fit, col=meanCol, xScale=xScale) invisible() }) # plotTracks() setMethodS3("plot", "CBS", function(x, ...) { plotTracks(x, ...) }, protected=TRUE) setMethodS3("drawLevels", "CBS", function(fit, col="purple", xScale=1e-6, byIndex=FALSE, ...) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # Get segmentation results segs <- as.data.frame(fitT) # Extract subset of segments fields <- c("start", "end", "mean") segs <- segs[,fields, drop=FALSE] segs <- unique(segs) # Reuse drawLevels() for the DNAcopy class colnames(segs) <- c("loc.start", "loc.end", "seg.mean") dummy <- list(output=segs) class(dummy) <- "DNAcopy" drawLevels(dummy, col=col, xScale=xScale, ...) }, protected=TRUE) setMethodS3("highlightCalls", "CBS", function(fit, pch=20, callCols=c(loss="red", gain="green", "amplification"="blue"), lwd=3, meanCol="purple", ..., xScale=1e-6, byIndex=FALSE, verbose=FALSE) { segs <- getSegments(fit, splitter=FALSE) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify segment calls # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - callFields <- grep("Call$", colnames(segs)) callTypes <- gsub("Call$", "", colnames(segs)[callFields]) nbrOfCalls <- length(callFields) # Nothing todo? if (nbrOfCalls == 0L) { return() } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Highlight threshold levels # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - params <- fit$params$callGainsAndLosses abline(h=params$muR, col="gray", lty=3) abline(h=params$tauLoss, col=callCols["loss"], lty=3) abline(h=params$tauGain, col=callCols["gain"], lty=3) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Highlight gains and losses # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dataT <- getLocusData(fitT) segsT <- getSegments(fitT, splitter=FALSE) chr <- dataT[,"chromosome"] x <- dataT[,"x"] y <- dataT[,3] nbrOfLoci <- nbrOfLoci(fitT) nbrOfSegments <- nbrOfSegments(fitT) # Not needed anymore dataT <- NULL # For each non-neutral segment for (ss in seq_len(nbrOfSegments)) { seg <- segsT[ss,] for (tt in seq_along(callTypes)) { field <- callFields[tt] type <- callTypes[tt] # Called? call <- seg[[field]] if (isTRUE(call)) { col <- callCols[type] idxs <- which(chr == seg$chromosome & seg$start <= x & x <= seg$end) idxs <- Arguments$getIndices(idxs, max=nbrOfLoci) if (byIndex) { xs <- idxs } else { xs <- x[idxs] * xScale } ys <- y[idxs] points(xs, ys, pch=pch, col=col, ...) xx <- range(xs, na.rm=TRUE) yy <- rep(seg$mean, times=2) lines(xx, yy, lwd=lwd, col=meanCol) } } # for (tt ...) } # for (ss ...) }, protected=TRUE) # highlightCalls() setMethodS3("highlightLocusCalls", "CBS", function(fit, callPchs=c(negOutlier=25, posOutlier=24), callCols=c(negOutlier="blue", posOutlier="blue"), ..., xScale=1e-6, byIndex=FALSE, verbose=FALSE) { data <- getLocusData(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Identify segment calls # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - callFields <- grep("Call$", colnames(data)) callTypes <- gsub("Call$", "", colnames(data)[callFields]) nbrOfCalls <- length(callFields) # Nothing todo? if (nbrOfCalls == 0) { return() } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Highlight gains and losses # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dataT <- getLocusData(fitT) chr <- dataT[,"chromosome"] x <- dataT[,"x"] y <- dataT[,3] nbrOfLoci <- nbrOfLoci(fitT) # For each non-neutral segment for (tt in seq_along(callTypes)) { field <- callFields[tt] type <- callTypes[tt] isCalled <- dataT[[field]] idxs <- which(isCalled) if (length(idxs) == 0L) { next } if (byIndex) { xs <- idxs } else { xs <- x[idxs] * xScale } ys <- y[idxs] pch <- callPchs[type] col <- callCols[type] points(xs, ys, pch=pch, col=col, ...) } # for (tt ...) }, protected=TRUE) # highlightLocusCalls() setMethodS3("drawChromosomes", "CBS", function(x, lty=3, xScale=1e-6, ..., byIndex=FALSE, verbose=FALSE) { # To please R CMD check fit <- x # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': # Argument 'xScale': xScale <- Arguments$getNumeric(xScale, range=c(0,Inf)) # Argument 'verbose': verbose <- Arguments$getVerbose(verbose) if (verbose) { pushState(verbose) on.exit(popState(verbose)) } # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # Sanity check .stop_if_not(!is.null(fitT$chromosomeStats)) chrStats <- fitT$chromosomeStats chrStats <- chrStats[-nrow(chrStats),,drop=FALSE] chrRanges <- as.matrix(chrStats[,c("start","end")]) vs <- xScale * chrRanges mids <- (vs[,1]+vs[,2])/2 chromosomes <- getChromosomes(fitT) chrLabels <- sprintf("%02d", chromosomes) side <- rep(c(1,3), length.out=length(chrLabels)) mtext(text=chrLabels, side=side, at=mids, line=0.1, cex=0.7*par("cex")) abline(v=vs, lty=lty) }, protected=TRUE) # drawChromosomes() setMethodS3("drawCentromeres", "CBS", function(fit, genomeData, what=c("start", "end"), xScale=1e-6, col="gray", lty=3, ..., byIndex=FALSE) { # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'genomeData': .stop_if_not(inherits(genomeData, "data.frame")) .stop_if_not(is.element("chromosome", colnames(genomeData))) .stop_if_not(is.element("centroStart", colnames(genomeData))) .stop_if_not(is.element("centroEnd", colnames(genomeData))) # Calculate the midpoints of the centromeres colnames(genomeData) <- tolower(gsub("centro", "", colnames(genomeData))) genomeData$mid <- (genomeData$start + genomeData$end) / 2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tile chromosomes # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - fitT <- tileChromosomes(fit) # Sanity check .stop_if_not(!is.null(fitT$chromosomeStats)) chrStats <- fitT$chromosomeStats offsets <- chrStats[,"start"] - chrStats[1,"start"] # Centroid locations in the tiled space offsetsT <- offsets[seq_len(nrow(genomeData))] xx <- genomeData[,what,drop=FALSE] xx <- as.matrix(xx) xx <- offsetsT + xx ats <- xScale * xx for (cc in seq_len(ncol(xx))) { abline(v=ats[,cc], col=col, lty=lty, ...) } invisible(ats) }, protected=TRUE) # drawCentromeres() setMethodS3("highlightArmCalls", "CBS", function(fit, genomeData, minFraction=0.95, callCols=c("loss"="red", "gain"="green"), xScale=1e-6, ...) { # To please/trick R CMD check chromosome <- x <- NULL; rm(list=c("chromosome", "x")) callStats <- callArms(fit, genomeData=genomeData, minFraction=minFraction) callTypes <- grep("Fraction", colnames(callStats), value=TRUE) callTypes <- gsub("Fraction", "", callTypes) callTypes <- intersect(callTypes, c("loss", "gain")) # Adjust (start, end) offsets <- getChromosomeOffsets(fit) offsets <- offsets[callStats[,"chromosome"]] callStats[,c("start","end")] <- offsets + callStats[,c("start","end")] nbrOfRegions <- nrow(callStats) # Nothing todo? if (nbrOfRegions == 0) { return(invisible(callStats)) } usr <- par("usr") dy <- diff(usr[3:4]) yy <- usr[3]+c(0,0.05*dy) abline(h=usr[3]+0.95*0.05*dy, lty=1, col="gray") xx <- callStats[,c("start", "end")] xx <- as.matrix(xx) xx <- xx * xScale for (type in callTypes) { col <- callCols[type] keyA <- sprintf("%sFraction", type) keyB <- sprintf("%sCall", type) for (kk in seq_len(nbrOfRegions)) { xs <- xx[kk,] score <- callStats[kk, keyA] if (is.finite(score) && score > 0) { ys <- rep(yy[1]+callStats[kk, keyA]*0.05*dy, times=2) lines(x=xs, y=ys, col=col) call <- callStats[kk, keyB] if (call) { rect(xs[1], yy[1], xs[2], yy[2], col=col, border=NA) } } } } # for (type ...) invisible(callStats) }, protected=TRUE) # highlightArmCalls() PSCBS/NEWS.md0000644000176200001440000023500214564060215012227 0ustar liggesusers# Version 0.67.0 [2024-02-16] ## Documentation * Fix minor help-page issues. ## Miscellaneous * Package no longer suggests the **Hmisc** package, because it's actually not used. See NEWS entry for v0.66.0 for details. ## Deprecated and Defunct * Removed defunct `append()` for `AbtractCBS`. * Removed defunct `load()` and `save()` for `AbtractCBS`. * After removing the above functions, `library(PSCBS)` no longer reports on functions being masked. # Version 0.66.0 [2021-10-22] ## Significant Changes * Package no longer require the **Hmisc** package, which was used for its `wtd.quantile()` function. Instead, we have adopted its GPL (>=2) code. The reason for doing so is that **Hmisc** no longer installs out of the box on platforms, e.g. macOS M1, but also that **Hmisc** has a large number of package dependencies, which adds an unnecessary installation weight to the **PSCBS** package for this single function. ## Code Refactoring * Update package tests to test with 'multisession' futures. ## Bug Fixes * `segmentByCBS()` and `segmentByPairedPSCBS()` would produce warnings on possibly unreliable random numbers due to parallel processing in the case they segmented multiple chromosomes or segments. * Fixed a few partial `getSegments()` argument name matching (`splitter` -> `splitters`). ## Deprecated and Defunct * `append(x, y)` for `CBS` and `PSCBS` objects, deprecated since v0.64.0 is defunct; use `c(x, y)` instead. * `save()` for `CBS` and `PSCBS` objects and corresponding `CBS$load()` and `PSCBS$load()` methods are defunct. We recommend to use base-R functions `saveRDS()` and `readRDS()` instead. If backward compatibility with the defunct `save()` and `load()` methods, the `saveObject()` and `loadObject()` functions from the **R.utils** package can be used. # Version 0.65.0 [2019-05-04] ## New Features * The PDF report produced by `report()` for Paired PSCBS results will now provide an estimate of normal contamination together with a disclaimer. ## Bug Fixes * A sanity check in `segmentByPairedPSCBS()` could produce an error on `'length(x) = 5 > 1' in coercion to 'logical(1)'` when running with `_R_CHECK_LENGTH_1_LOGIC2_=true`. This bug did _not_ affect the results of PSCBS. * Report templates used by `report()` would produce error `Error in unit(x, default.units) : 'x' and 'units' must have length > 0` if there are too few loci to plot. This would typically happen when reporting on human chromosome 25 results. ## Deprecated and Defunct * Argument `preserveScale` of `segmentByPairedPSCBS()` is now defunct. # Version 0.64.0 [2018-08-12] ## New Features * Added `c()` for `CBS` and `PSCBS` objects. ## Performance * `segmentByCBS()` no longer performs garbage collection, which happened indirectly via a `system.time()` call that does GC by default. ## Bug Fixes * `plotTrack()` for `CBS` objects would produce error `Argument 'Clim' is not a vector: NULL` when the signal type was unknown. Now it will assume (non-logged) copy-number ratios so it can choose a default `Clim` range. ## Deprecated and Defunct * Removed `bootstrapDHByRegion()`, which was defunct since 0.44.0 (Feb 2015). * `append(x, y)` for `CBS` and `PSCBS` objects is deprecated; use `c(x, y)` instead. * Use of argument `preserveScale` for `segmentByPairedPSCBS()` is now deprecated and ignored. it's value is now fixed to FALSE, which has been the default since **PSCBS** 0.50.0 (Oct 2015). # Version 0.63.0 [2017-06-27] ## Significant Changes * Package now depends on R (>= 3.2.0) and Bioconductor (>= 3.1) packages. ## New Features * `estimateDeltaCN()` for `PairedPSCBS` gained argument `flavor` and new estimator `flavor = "delta(mode)"`. * Added `isLocallyPhased()` for `PSCBS`. ## Code Refactoring * Now package imports **aroma.light** instead of only suggesting it. * Package tests no longer test against the deprecated 'lazy' strategy of **future**. # Version 0.62.0 [2016-11-10] ## New Features * Added `normalizeTotalCNs()` for `PSCBS` objects. * REPORTS: Updated report template for `PairedPSCBS` object such that reports are also generated from DH-only data, i.e. when there are no BAF signals (which may happen with DNA-Seq data). * Added `splitters = TRUE` as the default for `setSegments()`. ## Code Refactoring * CLEANUP: Minor internal cleanup and restructuring. # Version 0.61.0 [2016-02-03] ## Significant Changes * Package now requires R (>= 3.1.2) released October 2014, because of its dependency on the **listenv** package. ## New Features * `segmentByPairedPSCBS()` gained argument `rho` for paired PSCBS segmentation on total CNs (TCNs) and decrease-of-heterozygosity signals (DHs) as an alternative to for instance TCN and allele B fractions (BAFs). ## Bug Fixes * Segmentation using futures where not fully reproducible when known segments where specified. Fixed by changing how the random number stream is set and used. # Version 0.60.0 [2015-11-17] ## New Features * PARALLEL: Add support for parallel processing via futures by utilizing the **future** package. Parallel segmentation over multiple chromosomes (or known segments) done by `segmentByCBS()` and `segmentByPairedPSCBS()` is enabled by `future::plan("multicore")`. * REPRODUCIBILITY: Whenever argument `seed` is given, the L'Ecuyer-CMRG stream is now used to generate random numbers. For backward compatibility with other types of random number generators, don't specify argument `seed` but instead use `set.seed()` to set the seed before calling the method. ## Code Refactoring * Bump package dependencies. # Version 0.50.0 [2015-10-14] ## Significant Changes * Now argument `preserveScale` for `segmentByPairedPSCBS()` defaults to FALSE. In the past the default has effectively been TRUE, but has given a warning since v0.43.0 (June 2014) that it eventually will be changed to FALSE. Now it will give a warning that it has changed, unless the option is explicitly specified. This new warning will eventually be removed in a future version. # Version 0.45.1 [2015-09-16] ## New Features * More informative error messages when `append()` for `CBS` or `PSCBS` fail. ## Bug Fixes * `segmentByCBS(, ..., w, knownSegments)` would give internal assertion errors if one of the priorly known segments would have zero data points. Thanks to Kirill Tsukanov (Moscow) and Eric Talevich (UCSF) for reporting on this. # Version 0.45.0 [2015-09-11] ## Significant Changes * Package now requires R (>= 3.1.1) released July 2014. This allows us to use Bioconductor (>= 3.0) (October 2014). ## New Features * `segmentByCBS()` gained argument `avg`. * Add `writeWIG()` for `CBS` objects. * `pruneByHClust()` no longer gives a message about method `"ward"` is now named `"ward.D"`. * Added `skip = TRUE` to `report()`. ## Bug Fixes * `plotTracks()` for `CBS` ignored arguments `cex`, `col` and `meanCol` if two or more chromosomes were plotted. * `joinSegments()`, `resetSegments()`, and `pruneBySdUndo()` gave errors for multi- chromosome (>= 2) segmentation results. * `segmentByCBS()` would ignore argument `w` (weights) if more than one chromosome was fitted. * `tileChromosomes()` for `CBS` returned incorrect locus data. * `gapsToSegments(gaps)` gave an error if `nrow(gaps) == 0`, or it contained no `chromosome` column. * `findLargeGaps()` could return NULL. Now it always returns a data.frame. * The `report()` RSP-embedded TeX templates for `CBS` and `PairedPSCBS` data did not escape sample and data set names to LaTeX in all places needed. ## Code Refactoring * ROBUSTNESS: Package test coverage is 62%. * ROBUSTNESS: Explicitly importing core R functions. # Version 0.44.0 [2015-02-22] * Package now requires R (>= 3.0.3) and Bioconductor (>= 2.13), which are from March 2014 and are in fact old. it's recommended to use a more recent R version. ## Deprecated and Defunct * CLEANUP: `bootstrapDHByRegion()` is defunct (was deprecated since 2013). ## Code Refactoring * ROBUSTNESS: Package test coverage is 58%. * ROBUSTNESS: Forgot to declare some S3 methods in NAMESPACE. * SPEEDUP: Now using more functions of **matrixStats**. # Version 0.43.0 [2014-06-08] ## Significant Changes * Now `segmentByPairedPSCBS()` gives a warning about future change of the default value of argument `preserveScale` (from current TRUE to FALSE). The warning only appears if the argument is not specified explicitly. * Package now requires R (>= 3.0.0) and Bioconductor (>= 2.13), which were released April 2013 and are in fact old and it's recommended to use a more recent version of R. ## Code Refactoring * Now using `use()` of **R.utils** where possible. * Bumped package dependencies. # Version 0.42.2 [2014-05-24] ## Code Refactoring * Bumped package dependencies. # Version 0.42.1 [2014-05-05] ## Bug Fixes * `pruneByHClust()` for `PairedPSCBS` would give an error on `unable to find an inherited method for function 'anyMissing' for signature '"PairedPSCNSegments"'`, unless the object contained bootstrap statistics. This is no longer needed. Thanks to Junsong Zhao, Los Angeles, CA for reporting on this. # Version 0.42.0 [2014-04-25] ## Code Refactoring * Minor speedup (a few percents) by now byte compiling the package by default. * CLEANUP: Dropped unnecessary usage of `::`. * Bumped package dependencies. # Version 0.41.4 [2014-03-30] ## New Features * GENERALIZATION: Now `callROH()` also works if paired PSCBS was done with only `muN` available (and not `betaN`). In that case, it assumes that all genotype confidence scores are equal. * Updated the ordering and the defaults of `testROH()` arguments to make it clear that `betaN` is optional and only used if `csN` is not given. * As an alternative to argument `CT`, `segmentByPairedPSCBS()` now accepts arguments `thetaT` and `thetaN`, in case `CT` is calculated as `CT = 2 * thetaT / thetaN`. # Version 0.41.3 [2014-03-29] ## New Features * Methods no longer generates warnings on `in max(c(NA_integer_, NA_integer_), na.rm = TRUE) : no non-missing arguments to max; returning -Inf`. ## Bug Fixes * In rare cases, `callROH()` could throw `Error in if (is.na(delta)) { : argument is of length zero`. # Version 0.41.2 [2014-03-28] ## New Features * Added argument `preserveScale` to `segmentByPairedPSCBS()`, which is passed as is to `normalizeTumorBoost()` with the default being TRUE corresponding to the previous default behavior. # Version 0.41.1 [2014-03-28] ## New Features * Added `unTumorBoost()` to recalculating the segment means and other statistics for a given `PairedPSCBS` profile based on non-TumorBoosted tumor BAFs (rather than TumorBoost:ed tumor BAFs). # Version 0.41.0 [2014-03-26] ## New Features * Now `estimateKappaByC1Density()` give more informative error messages if it failed to identify modes for estimating the parameter. * Added argument `from` to `estimateKappaByC1Density()`. ## Bug Fixes * `updateMeansC1C2()` for `PairedPSCBS` did not handle missing values (= "splitters") in the `c1c2Swap` field. * `updateMeans()` for `PairedPSCBS` and `NonPairedPSCBS` returned the incorrect DH segment levels for region in AB if `adjustFor = "ab"` and likewise for segments in LOH if `adjustFor = "loh"`. This bug does *not* affect any of **PSCBS** methods themselves, because none of them utilize those `adjustFor` options. ## Code Refactoring * Bumped package dependencies. # Version 0.40.4 [2014-02-04] ## Bug Fixes * `all.equal()` for `CBS` would pass the first/dispatch argument to `NextMethod()` as `target = target` and not as `object = target`, which would result in it being passed it twice both named and non-named where the latter would become argument `tolerance = target` in an internal call to `all.equal()` for numerics. In recent R-devel version this would generate `Error in all.equal.numeric(target[[i]], current[[i]], check.attributes = check.attributes, : 'tolerance' should be numeric Calls: stopifnot ... all.equal.default -> all.equal.list -> all.equal -> all.equal.numeric`. # Version 0.40.3 [2014-01-29] ## New Features * ROBUSTNESS: Now `segmentByPairedPSCBS()` asserts that argument `muN` is not all NAs. Similarily, if `muN` is called from `betaN` the same assertion is done after calling. # Version 0.40.2 [2013-12-17] ## New Features * Now `estimateDeltaCN()` for `CBS` have the option to estimate the size of a copy-number unit based on the change-point magnitutes, in addition to the estimator based on the density of segment means. ## Bug Fixes * `getChangePoints()` for `CBS` returned empty results. # Version 0.40.1 [2013-12-09] ## Documentation * The CBS vignette referred to C1 and C2 in one of the code examples. ## Code Refactoring * Bumped package dependencies. # Version 0.40.0 [2013-12-07] ## Code Refactoring * CLEANUP: No longer a need for an ad-hoc NAMESPACE import. # Version 0.39.8 [2013-12-04] ## Documentation * Now the vignette sections on dropping outliers before segmentation explains why outliers are dropped whereas in the original CBS publication they were shrunk ("smoothed"). Also, added help for `dropSegmentationOutliers()`. # Version 0.39.7 [2013-11-27] ## New Features * Added `callGLAO()` for `CBS`. * Added `encodeCalls()` for `data.frame` object returned by `getLocusData(..., addCalls = TRUE)`. ## Code Refactoring * Bumped package dependencies. # Version 0.39.6 [2013-11-23] ## New Features * Added `clearCalls()` for `AbstractCBS`. * Added `extractSegmentDataByLocus()` for `PairedPSCBS`. ## Bug Fixes * `estimateDeltaCN()` for `CBS` assumed **aroma.light** was attached. # Version 0.39.5 [2013-11-15] ## New Features * Added `estimateDeltaCN()` for `CBS`. Added package system test. # Version 0.39.4 [2013-11-14] ## Bug Fixes * `callGainsAndLosses()` for `CBS` would not estimate the median median CN level correctly if there were "empty" segments (e.g. gaps). This was/is due to a bug in `segments.summary()` of the **DNAcopy** package. Instead, we are now calculating the segment median levels ourselves. Added a system package test for `callGainsAndLosses()`. # Version 0.39.3 [2013-11-05] ## New Features * Added basic implementations of `setLocusData()` and `setSegments()` for `AbstractCBS`. # Version 0.39.2 [2013-10-28] ## New Features * Now `plotTracksManyChromosomes()` for `PairedPSCBS` also supports tracks `"c1,c2"`, `"c1"`, and `"c2"`. # Version 0.39.1 [2013-10-25] ## New Features * Now `plotTracksManyChromosomes()` uses the locus data field `rho` when plotting DH locus-level data. It only recalculates it from the tumor BAFs if the DH signals are not available - if so a warning is generated. ## Bug Fixes * The `rho` signals returned by `getLocusData(..., fields = "full")` for `PairedPSCBS` would have values also for homozygote SNPs. # Version 0.39.0 [2013-10-23] ## New Features * Now all warnings generated by `DNAcopy::CNA()` are suppressed, including the common one on `array has repeated maploc positions`. * Added `getBootstrapLocusSets()` for `PairedPSCBS`. Added a package system test for it. * Added argument `subset` to `applyByRegion()` for `PairedPSCBS`. * Added `clearBootstrapSummaries()` for `PairedPSCBS`. * SPEEDUP: Added argument `cache` to `bootstrapSegmentsAndChangepoints()`, which caches the results to file if `cache = TRUE`. # Version 0.38.6 [2013-10-20] ## Bug Fixes * `plotTracks()` for `PairedPSCBS` would use argument `Clim` for `Blim` as well, regardless of what argument `Blim` is. This bug was introduced in v0.38.3. ## Code Refactoring * Internal restructuring on how bootstrapping of segment means is done. # Version 0.38.5 [2013-10-18] ## Bug Fixes * The CBS and Paired PSCBS report templates assumed that the **R.utils** package is attached. # Version 0.38.4 [2013-10-15] ## Code Refactoring * CLEANUP: Removed a few unnecessary NAMESPACE imports. * Bumped package dependencies. # Version 0.38.3 [2013-10-14] ## New Features * Now `plotTracks()` for `CBS` and `PSCBS` gives a more informative error if `Clim` or `Blim` is invalid. If using `"auto"` (only for `CBS`) and the limits could not be inferred due to an unknown or unset signal type, an informative error message reports on this as well. ## Code Refactoring * Now the package vignettes are in `vignettes/`, and not in `inst/doc/`, which will not be supported by R (>= 3.1.0). * ROBUSTNESS: The overriding of `append()` to become a generic function does now call `base::append()` in the default, instead of copy the latter. All this will eventually be removed, when proper support for `c`, `[`, `[[` etc. has been added everywhere. * CLEANUP: Now explicitly importing only what is needed in NAMESPACE. # Version 0.38.2 [2013-10-13] ## Bug Fixes * While attaching the package, it could cause a cyclic loading of namespaces. # Version 0.38.1 [2013-10-08] ## New Features * Now `getSmoothLocusData()` for `CBS` also returns column `count` which specifies the number of (finite) loci averaged over in each bin. ## Documentation * Vignette 'Total copy-number segmentation using CBS' would display the same plot as vignette 'Parent-specific copy-number segmentation using Paired PSCBS'. * Renamed vignette 'Paired PSCBS' to 'Parent-specific copy-number segmentation using Paired PSCBS'. ## Bug Fixes * `tileChromosomes()` for `CBS` did not set the `tiledChromosomes` attribute due to a typo. This caused `plotTracks()` for `CBS` to horizontally misplace the plotted segment levels. Added a system tests for this for `CBS` and `PairedPSCBS` objects. Thanks to Ilari Scheinin at VUMC for reporting on this. ## Code Refactoring * Bumped package dependencies. # Version 0.38.0 [2013-09-27] ## Code Refactoring * SPEEDUP: `R CMD check` is now significantly faster due to copying of pre-generated calculations ("memoization"). For instance, the the same segmentation tests are roughly 40% faster compared to version 0.37.2. * Now **PSCBS** imports **R.cache** (used to only suggest it). # Version 0.37.2 [2013-09-27] ## Code Refactoring * SPEEDUP: Now utilizing **matrixStats** functions in more places. * ROBUSTNESS: Further improved how **aroma.light** is handled for backward compatibility. * Bumped package dependencies. # Version 0.37.1 [2013-09-26] ## Code Refactoring * CLEANUP: Now package avoids attaching suggested packages such as **R.cache**, **aroma.light**, and **Hmisc** by only importing the set of functions needed via `::`. This way those packages are only loaded. Packages that still need to be attached are done so "quietly". * CLEANUP: Minor adjustments to some of the internal workarounds for older versions of **matrixStats** and **aroma.light**. ## Bug Fixes * Forgot to import several functions from **matrixStats**. These went undetected because **aroma.light** (<= 1.31.5) attaches the **matrixStats**. * `segmentByPairedPSCBS()` assumed **aroma.light** was attached. * One of the system tests assumed **R.utils** was attached. # Version 0.37.0 [2013-09-21] ## Bug Fixes * WORKAROUND: For now, package attaches the **utils** package. This is needed due to what appears to be a bug in how **R.oo** finalizes Object:s assuming **utils** is attached, which may not be the case (unless **R.oo** itself is attached). * `callGNL()` for `PairedPSCBS` used non-defined `verbose` object. ## Code Refactoring * CLEANUP: Package no longer attaches **R.utils**, only imports it. * ROBUSTNESS: Now package imports only what is needed from **DNAcopy**. # Version 0.36.2 [2013-09-18] ## Documentation * Added vignette 'Total copy-number segmentation using CBS'. * WORKAROUND: For R (< 3.0.0), `hclustCNs()` for `AbstractCBS` would generate `Error in rowAlls(ok) : could not find function "loadMethod"`. This seems to be a bug in R (< 3.0.0), which we can avoid by attaching the **methods** package in `hclustCNs()`. ## Code Refactoring * ROBUSTNESS: Now package imports **matrixStats** (previously suggested). * ROBUSTNESS: Now package declares S3 methods in the NAMESPACE. * ROBUSTNESS: Package vignettes no longer assumes that the **R.rsp** package is attached. * ROBUSTNESS: Forgot to import `R.methodsS3::appendVarArgs()`. * Bumped package dependencies. # Version 0.36.1 [2013-09-10] ## Code Refactoring * CLEANUP: Package no longer utilizes `:::`. # Version 0.36.0 [2013-08-15] ## New Features * Made `extractMinorMajorCNs()` for `PairedPSCBS` acknowledge additional fields related to (C1,C2). # Version 0.35.6 [2013-08-01] ## Code Refactoring * Updated the vignettes to utilize the new **R.rsp** features. # Version 0.35.5 [2013-07-19] ## New Features * ROBUSTNESS: Added a sanity check on the estimates of (tauA, tauB) when they are estimated from data in `segmentByNonPairedPSCBS()`. # Version 0.35.4 [2013-07-11] ## Code Refactoring * Updated the `Makefile` for the vignettes and added `.Rinstignore` such that auxiliary (bib and bst) LaTeX files are not installed but part of the build so they are available to `R CMD check`, which is recently needed by R devel. * Bumped package dependencies. # Version 0.35.3 [2013-05-25] ## Code Refactoring * Minor speedup by replacing all `rm(x)` with `x <- NULL`, cf. R-devel thread 'Assigning NULL to large variables is much faster than rm() - any reason why I should still use rm()?' on May 25, 2013. # Version 0.35.2 [2013-05-20] ## Documentation * CRAN POLICY: Now all Rd `\usage{}` lines are at most 90 characters long. # Version 0.35.1 [2013-05-07] ## New Features * Now `estimateDeltaCN()` for `PairedPSCBS` adjust for the ploidy, if set. * Added `ploidy()` and `ploidy()<-` for `AbstractCBS`. * Now `tileChromosomes()` no longer gives warnings on `max(i): no non-missing arguments to max; returning -Inf`. # Version 0.35.0 [2013-04-23] ## New Features * SPEEDUP: Now `bootstrapTCNandDHByRegion()` for `PairedPSCBS` always estimates the default quantiles in addition to any requested ones. * SPEEDUP: Made `bootstrapTCNandDHByRegion()` much faster by adding `use.names = FALSE` to two internal `unlist()` statements. ## Bug Fixes * `updateMeans()` for `PairedPSCBS` and `NonPairedPSCBS` could include a signal from a neighboring segment when averaging, iff that signal was located at the exact locus of the change point. Thanks Ingrid Lonnstedt (WEHI) for reporting on this. # Version 0.34.9 [2013-04-22] ## Bug Fixes * `updateMeans()` would not always preserve the originally specified segment-mean level estimator, if different from a (sample) mean estimator, e.g. `avgDH = "median"`. This could result in for instance `callAB()` failing on internal sanity checks. * Segment levels drawn by `plotTracks()` would have incorrect genomic locations for chromosome 2 and beyond. This bug was introduced in v0.34.7. ## Code Refactoring * Utilizing new `startupMessage()` of **R.oo**. # Version 0.34.8 [2013-04-20] ## Deprecated and Defunct * Removed previously deprecated methods for `AbstractCBS`. # Version 0.34.7 [2013-04-18] ## New Features * Added more arguments to `plotTracks()`. * Now `drawLevels()` and `drawConfidenceBands()` for `CBS` and `PairedPSCBS` also works for multiple chromosomes. ## Bug Fixes * One of the system tests for `segmentByPairedPSCBS()` failed in the case when the data was downsampled (in order to meet the CRAN requirements). The workaround is to use a fix `deltaAB` parameter in that case. * Internal `calcStatsForCopyNeutralABs()` would give an error if there was exactly two AB segments. # Version 0.34.6 [2013-04-11] ## Bug Fixes * `plotTracks(fit, callLoci = TRUE)` would color loci incorrectly if more than one chromosome are plotted. # Version 0.34.5 [2013-04-09] ## New Features * Now `callROH()` gives an informative error if called on a `NonPairedPSCBS` object. # Version 0.34.4 [2013-04-05] ## New Features * Added more end-user control to `plotTracks()`. # Version 0.34.3 [2013-04-04] ## Code Refactoring * Now package builds with both **R.rsp** (< 0.9.1) and **R.rsp** (>= 0.9.1). # Version 0.34.2 [2013-03-28] ## New Features * Now `callGainNeutralLoss()`, utilizes `callCopyNeutral()` by default. # Version 0.34.1 [2013-03-21] ## New Features * Updated the report generator and its RSP templates. ## Documentation * Clarified in the **PSCBS** vignette that the NTCN caller is under development, experimental. ## Code Refactoring * SPEEDUP: Made `dropChangePoints()` faster by only updating the segment statistics/means at the very end. # Version 0.34.0 [2013-03-19] ## New Features * CALLING: Defined a formal hypothesis test for how segments are called copy- neutral in TCN (NTCN), with the null hypothesis being that a segment is NTCN. In order for a segment to not be NTCN, its confidence interval has to be completely outside the null region. This changed how `callCopyNeutralByTCNofAB()` for `PairedPSCBS` calls segments; it is now a bit more conservative in rejecting NTCN. # Version 0.33.4 [2013-03-19] ## New Features * ROBUSTNESS: Now `calcStatsForCopyNeutralABs()` for `PairedPSCBS` does a better job in identifying the TCN mode of the AB segments. * Added argument `flavor` to `findNeutralCopyNumberState()` specifying how to identify the main mode of the AB segments. * VISUALIZATION: Now `plotTracks()` for `PairedPSCBS` displays thresholds for calling AB, LOH and and NTCN. # Version 0.33.3 [2013-03-12] ## Documentation * Documented `tauA` and `tauB` in the help for `segmentByNonPairedPSCBS()`. # Version 0.33.2 [2013-03-09] ## New Features * Added `getLocusData()` for `PairedPSCBS` and `NonPairedPSCBS`. ## Documentation * Updated the vignettes and the report templates to utilize the new **ggplot2** themes - **ggplot2** no longer gives a warning on using deprecated functions. * Now `report()` for `AbstractCBS` also includes files listed in the optional file `.install_extras` of the source RSP template directory. The same filename is used by `R CMD build/check` for including additional source files needed to build the vignettes. ## Code Refactoring * Added an `Authors@R` field to the DESCRIPTION. # Version 0.33.1 [2013-03-07] ## Documentation * Preparing package vignettes for the upcoming R 3.0.0 support for non-Sweave vignettes. ## Software Quality * Relaxed the internal precision tests of `testROH()`. This was done in response to the CRAN farm lowering its precision on some hosts. # Version 0.33.0 [2013-03-05] ## New Features * Added argument `typeOfWeights` to `estimateKappaByC1Density()` for `PairedPSCBS`, and hence indirectly to `estimateKappa()`. The default is `typeOfWeights = "dhNbrOfLoci"`, which may give too much overall weight to very long segments causing the estimator to fail when there are only a few number of "C1 = 0" segments. An alternative is to use `typeOfWeights = "sqrt(dhNbrOfLoci)"`. # Version 0.32.6 [2013-03-04] ## Documentation * Updated the help usage section for all static methods. # Version 0.32.5 [2013-02-09] ## Bug Fixes * `bootstrapTCNandDHByRegion()` for `PairedPSCBS` did not bootstrap from all available loci when calculating total CNs statistics, iff the segment had been called run-of-homozygosity (ROH). Internal validation tests caught this. Thanks to Oscar Rueda at the Cancer Research UK Cambridge Institute for reporting on this. ## Code Refactoring * Added a `VignetteBuilder` field to DESCRIPTION. # Version 0.32.4 [2013-02-07] ## New Features * Improved some verbose outputs of `bootstrapTCNandDHByRegion()`. # Version 0.32.3 [2013-02-05] ## New Features * Now `pruneByHClust()` drops any existing segment calls and quantile mean-level estimates. # Version 0.32.2 [2013-02-01] ## New Features * Added `resetSegments()` for `AbstractCBS`, which drops extra segments columns (e.g. bootstrap statistics and calls) except those obtained from the segment algorithm. ## Documentation * Added a paragraph on `avgDH = "median"` to the **PSCBS** vignette's 'Experimental' section. ## Code Refactoring * ROBUSTNESS: Now **aroma.light** is explicitly required in cases where it is needed. # Version 0.32.1 [2013-02-01] ## Bug Fixes * `segmentByPairedPSCBS(..., avgDH = "median")` only worked for single- chromosome data. Same for `avgTCN = "median"`. Thanks Ritu Roy at UCSF for reporting on this. # Version 0.32.0 [2013-01-16] ## New Features * Added arguments `avgTCN` and `avgDH` to `segmentByPairedPSCBS()`. * Now `updateMeans()` and `updateMeansTogether()` methods can estimate the mean levels either by the sample mean or the median. # Version 0.31.0 [2013-01-05] ## Code Refactoring * CLEANUP: Now packages **R.methodsS3** and **R.oo** are only imported. * CLEANUP: Package no longer explicitly imports **digest**. # Version 0.30.0 [2012-11-05] ## New Features * GENERALIZATION: Now `bootstrapTCNandDHByRegion()` works for more "flavors", e.g the default (`"tcn"`) used by `segmentByNonPairedPSCBS()`. # Version 0.29.9 [2012-11-05] ## Documentation * FIX: `example(segmentByNonPairedPSCBS)` was for the paired case. ## Code Refactoring * CRAN POLICY: Further speed up of examples such that they run faster with `R CMD check`. # Version 0.29.8 [2012-11-04] ## Code Refactoring * CLEANUP: Replaced all `whichVector()` with `which()`, because the latter is now the fastest again. # Version 0.29.7 [2012-11-03] ## Code Refactoring * Updated deprecated **ggplot2** functions in the RSP reports. # Version 0.29.6 [2012-11-01] ## Code Refactoring * Bumped package dependencies. * CRAN POLICY: Made the examples run faster for `R CMD check`. # Version 0.29.5 [2012-10-16] ## Bug Fixes * ROBUSTNESS: No longer passing `...` to `NextMethod()`, cf. R-devel thread "Do *not* pass '...' to NextMethod() - it'll do it for you; missing documentation, a bug or just me?" on Oct 16, 2012. # Version 0.29.4 [2012-09-23] ## New Features * Now `plotTracks()` [and `plotTracksManyChromosomes()`] draws segment levels such that it is easier to see them even when they are overlapping. # Version 0.29.3 [2012-09-21] ## New Features * SPEEDUP: By default `bootstrapTCNandDHByRegion()` for `PairedPSCBS` no longer do sanity checks within the bootstrap loop. This significantly speed up the method. To run checks, use argument `.debug = TRUE`. In addition, the `callNnn()` methods that need to call this method, does it by decreasing the amount of verbose output substantially, which in turn speeds up the process a fair bit. * Now `getSegments(..., splitters = TRUE)` for `CBS` and `PSCBS` inserts NA rows wherever there is a "gap" between segments. A "gap" is when two segments are not connected (zero distance). * ROBUSTNESS: Now `append()` for `CBS` and `PSCBS` drops column `length` from `knownSegments`, iff it exists. * Now `nbrOfChangePoints()` for `AbstractCBS` calculates only change points of connected neighboring segments. ## Bug Fixes * `seqOfSegmentsByDP()` for `AbstractCBS` would not handle empty segments, which could occur if `knownSegments` for instance included centromere gaps. * `segmentByCBS(... knownSegments)` could return segments for chromosome 0 even though it did not exist in the input data. # Version 0.29.2 [2012-09-18] ## New Features * REPORT: Now `report()` for `AbstractCBS` looks for the RSP template in `templates/`, and as a backup in `templates,PSCBS/`. If the latter does not exist, it is automatically created as a soft link to `templates/` of the **PSCBS** package. This allows anyone to create their own customized copy (in `templates/`) of the default **PSCBS** RSP report. * REPORT: Now `report(fit, ..., rspTags)` for `AbstractCBS` looks for the RSP template named `(,),report.tex.rsp`, where `` is `class(fit)[1]` and argument `rspTags` is an optional comma-separated character string/vector. This makes it possible to have different types of report for the same class of objects. * REPORT: Added argument `force` to `report()` for `AbstractCBS`. This will copy the RSP template files again, although they are already in `reports/` output directory. # Version 0.29.1 [2012-09-15] ## New Features * Added argument `dropMissingCT` to `segmentByPairedPSCBS()`. # Version 0.29.0 [2012-09-14] ## New Features * Added trial version of `pruneByDP()` for `AbstractCBS`. # Version 0.28.6 [2012-09-13] ## New Features * Now `tileChromosomes()` also adjusts `knownSegments`. * Added argument `dropGaps` to `gapsToSegments()`. * Updated `all.equal()` for `AbstractCBS` to compare locus-level data, segments, and other fields. # Version 0.28.5 [2012-09-13] ## New Features * SPEEDUP: Now `segmentByCBS(..., undo = +Inf)` returns much faster, which is possible because there is no need to identify new change points. # Version 0.28.4 [2012-09-13] ## New Features * CONSISTENCY FIX: Changed the behavior of extreme values of argument `undo` to `segmentByCBS()` such that `undo = 0` (was `undo = +Inf`) now means that it will not ask `DNAcopy::segment()` to undo the segmentation, and such that `undo = +Inf` means that no changepoints will be identified. The latter case allows you to effectively skip the segmentation but still calculate all the CBS statistics across a set of known segments via `segmentByCBS(..., undo = +Inf, knownSegments = knownSegments)`. Arguments `undoTCN` and `undoDH` to `segmentByPairedPSCBS()` are adjusted analogously. Corresponding system tests were added. # Version 0.28.3 [2012-08-30] ## Code Refactoring * Updated code and Rd cross reference to use the **matrixStats** package for `weightedMedian()`, which used to be in **aroma.light**. # Version 0.28.2 [2012-08-20] ## Bug Fixes * `segmentByNonPairedPSCBS()` forgot to specify namespace **aroma.light** when trying to call `findPeaksAndValleys()`. # Version 0.28.1 [2012-08-15] ## Documentation * Minor grammatical corrections of the Paired PSCBS vignette. # Version 0.28.0 [2012-07-22] ## New Features * Added argument `minLength` to `gapsToSegments()`. The default is no longer to drop zero-length (`minLength == -1L`) segments, because if (and only if) such a segment contains a locus, then `segmentByNnn()` will currently generate an (internal) error. ## Bug Fixes * GENERALIZATION: Now `segmentByPairedPSCBS()` drops loci for which CT is missing (regardless of betaT). For instance, in rare cases when the reference (e.g. the normal) is missing, then it may be that CT is missing while betaT is not. # Version 0.27.4 [2012-07-22] ## New Features * Now verbose output of `segmentByPairedPSCBS()` specifies region ranges with greater precision. # Version 0.27.3 [2012-07-10] ## Documentation * Minor updates to the Paired PSCBS vignettes. ## Code Refactoring * CLEANUP: One redundancy tests relied on a non-critical function that will be removed in **R.utils** 1.16.0 (now in **R.devices** 2.1.1). # Version 0.27.2 [2012-07-08] ## Code Refactoring * Updated package dependencies. # Version 0.27.1 [2012-07-02] ## New Features * Now we refer to "copy neutral" segments as "neutral TCN" segments with acronym `NTCN`. The corresponding column in the segmentation results are labeled correspondingly. The Paired PSCBS vignette was updated accordingly. # Version 0.27.0 [2012-06-24] ## Documentation * Some grammar corrections of the `Paired PSCBS` vignette. ## Code Refactoring * (An update that should be ignored) # Version 0.26.1 [2012-06-05] ## New Features * Now `segmentByCBS()` for `data frame`:s does a better job identifying the CN signals. # Version 0.26.0 [2012-06-03] ## New Features * Now argument `delta` for `callCopyNeutralByTCNofAB()` of `PairedPSCBS` is calculated via `estimateDeltaCN()`, which estimates the width of the acceptance regions, used for calling copy neutral states, to be a function of the normal contamination. ## Documentation * Added details to the Paired PSCBS vignette on how to call segments that are copy neutral (typically diploid). # Version 0.25.3 [2012-06-03] ## Bug Fixes * `all.equal(target, current)` for `CBS` objects would give an error if either `target` or `current` had zero segments. # Version 0.25.2 [2012-05-30] ## New Features * Added `writeSegments()` for `DNAcopy` objects. ## Bug Fixes * `as.CNA()` for `DNAcopy` added incorrect chromosome splitters. * `as.CNA()` for `DNAcopy` would ignore argument `sample` and always return the first sample. # Version 0.25.1 [2012-05-30] ## New Features * Now `callROH()` records parameter `deltaROH` in the results. ## Documentation * Added details to the Paired PSCBS vignette on how to tune the various callers. ## Bug Fixes * `callLOH(..., force = TRUE)` would append multiple `lohCall` columns, if called multiple times. # Version 0.25.0 [2012-04-20] ## New Features * Added a trial (very much true) version of `segmentByNonPairedPSCBS()`. # Version 0.24.0 [2012-04-20] ## New Features * Now it is possible to skip the DH segmentation in Paired PSCBS, i.e. `segmentByPairedPSCBS(..., flavor = "tcn")`. # Version 0.23.2 [2012-04-20] ## Bug Fixes * `segmentByPairedPSCBS()` would throw `error in $<-.data.frame (*tmp*, "rho" ...` if some loci had unknown genomic positions. # Version 0.23.1 [2012-04-20] ## New Features * Added RSP report for `CBS` objects (adopted from ditto for `PairedPSCBS`). ## Documentation * Updated the `Paired PSCBS` vignette. # Version 0.23.0 [2012-03-20] ## Documentation * Added a package vignette. # Version 0.22.2 [2012-02-29] ## Bug Fixes * `plotTracks(..., add = TRUE)` for `PairedPSCBS` would add TCNs when BAFs and DHs were intended. # Version 0.22.1 [2012-02-28] * Updated package dependencies to **R.rsp** (>= 0.7.3) so that `report()` for `PairedPSCBS` no longer require non-public packages. ## New Features * Now it is possible to turn off usage of the alpha channel in plots generated by `report()`, which can be handy on systems where the default PNG device does not support the alpha channel. Example: `setOption("PSCBS::report/useAlphaChannel", FALSE)`. # Version 0.22.0 [2012-02-27] ## New Features * Added `report()` for `PairedPSCBS`. # Version 0.21.0 [2012-02-27] ## New Features * Added argument `fields` to `getLocusData()` for `PairedPSCBS`. * Added `renameChromosomes()` to `AbstractCBS`. # Version 0.20.0 [2012-02-26] ## New Features * Added alpha version of `callGainNeutralLoss()` for `PairedPSCBS`, which certainly will be updated in the future. This caller is tested by the system tests. * Added `dropChangePoints()` for `AbstractCBS`. ## Bug Fixes * `extractSegments()` for `PairedPSCBS` would return incorrect row indices, more precisely, overlapping data chunks. * `bootstrapTCNandDHByRegion()` for `PairedPSCBS` would resample from a subset of the intended TCNs, iff the DH mean was non-finite while there were still heterozygous SNPs. This introduced a bias in the estimates, which was neglectable for large segments, but for very small segments (a few loci) it could be relatively large. ## Software Quality * ROBUSTNESS: Added more sanity checks validating the correctness of what is returned by `extractSegments()` for `CBS` and `PairedPSCBS`. ## Code Refactoring * Added some internal utility functions for `PairedPSCBS` taken from the **aroma.cn** package. Some of these may become public later, but for they should be considered internal. # Version 0.19.8 [2012-02-23] ## Code Refactoring * ROBUSTNESS: Package now explicitly depends on **utils**. # Version 0.19.7 [2012-02-22] ## Bug Fixes * `findLargeGaps()` did not handle missing values for argument `chromosome`. * `segmentByCBS(..., knownSegments = knownSegments)` would incorrectly throw a sanity-check exception if `knownSegments` contains a segment with `start` and `stop` positions being equal. * Argument `calls` of `plotTracks()` for `PairedPSCBS` was ignored if more than one chromosome was plotted. # Version 0.19.6 [2012-01-24] ## New Features * ROBUSTNESS: Now `getCallStatistics()` for `CBS` asserts that calls have been made. If not, an exception is thrown. # Version 0.19.5 [2012-01-21] ## Documentation * Added details to the help of `callLOH()` and `callAB()` on the difference between (AB,LOH) = (TRUE,FALSE) and (AB,LOH) = (TRUE,NA). * Corrected some of verbose messages of `estimateDeltaLOHByMinC1ForNonAB()` for `PairedPSCBS` objects. # Version 0.19.4 [2012-01-10] ## Code Refactoring * Now `example(segmentByPairedPSCBS)` and the system tests that are run by `R CMD check` are tuned to (by default) run much faster by segmenting using fewer data points and bootstrapping using fewer samples. This update was done to meet the new CRAN policy. By setting environment variable `_R_CHECK_FULL_` to `1` the full data set is used instead. # Version 0.19.3 [2012-01-09] ## New Features * ROBUSTNESS: Now `extractSegments()` for `PairedPSCBS` gives an informative error message that it is not supported if CNs were segmented using flavor `"tcn,dh"`. ## Bug Fixes * `postsegmentTCN()` for `PairedPSCBS` could generate an invalid `tcnSegRows` matrix, where the indices for two consecutive segments would overlap, which is invalid. Thanks to Minya Pu for reporting on failed sanity check related to this. # Version 0.19.2 [2011-12-29] * ROBUSTNESS: Explicitly added **digest** to the list of suggested packages. # Version 0.19.1 [2011-12-13] ## New Features * Added support for `callGainsAndLosses(..., method = "ucsf-dmad")` for `CBS` objects. # Version 0.19.0 [2011-12-12] ## New Features * Added optional argument `indices` to `getLocusData()` to be able to retrieve the locus-level data as indexed by input data. ## Bug Fixes * `gapsToSegments()` gave invalid segments for chromosomes with more than one gap. Now `gapsToSegments()` validates argument `gaps` and asserts that it returns non-overlapping segments. ## Documentation * Clarified in `help("segmentByCBS")` how missing values are dealt with. # Version 0.18.2 [2011-12-07] ## New Features * Now `plotTracks()` for `CBS` always returns an invisible object. ## Bug Fixes * `pruneBySdUndo()` for `CBS` did not work with more than one array. # Version 0.18.1 [2011-12-03] ## New Features * Added `drawChangePoints()` for `AbstractCBS`. * Now `pruneByHClust()` for `AbstractCBS` updates the segment means. * Added `writeSegments()` for `PSCBS` object. * Now `print()` for `AbstractCBS` returns `getSegments(..., simplify = TRUE)`. * Added argument `simplify` to `getSegments()`. * Added arguments `name`, `tags` and `exts` to `writeSegments()` and `writeLocusData()` and dropped `filename`. # Version 0.18.0 [2011-11-28] ## New Features * Added `pruneByHClust()` for `AbstractCBS`, with implementation for `CBS` and `PairedPSCBS`. * `extractCNs()` for `CBS` would not return a matrix but a data.frame. ## Bug Fixes * `extractTotalCNs()` for `CBS` would give an error. # Version 0.17.4 [2011-11-26] ## New Features * Added argument `updateMeans = TRUE` to `callROH()` for `PairedPSCBS`. * Now `bootstrapTCNandDHByRegion()` for `PairedPSCBS` preserves NAs for DH and (C1,C2) quantiles, if the DH mean level is NA, which can happen when a segment is called ROH. This also makes sure that a segment called ROH will not be called AB. * An internal sanity check of `bootstrapTCNandDHByRegion()` for `PairedPSCBS` would give an error if DH mean levels had been set to NA for segments called ROH. # Version 0.17.3 [2011-11-24] ## New Features * Added `callSegmentationOutliers()` and `dropSegmentationOutliers()` for data frames. * CLEANUP: Renamed field `position` of the example data to `x`. This helps us clean up some of the examples. ## Bug Fixes * `bootstrapTCNandDHByRegion()` for `PairedPSCBS` would give an error, if a segment did not have any TCN signals, which can occur when known segments are specified for Paired PSCBS. # Version 0.17.2 [2011-11-22] ## New Features * Added `findLargeGaps()` and `gapsToSegments()`. # Version 0.17.1 [2011-11-21] ## Bug Fixes * The internal sanity check of `testROH()` on weights was slightly too conservative (required to high precision) when it came to asserting that the sum of the weights equals one. * `resegment()` for `PairedPSCBS` called `segmentByCBS()` instead of `segmentByPairedPSCBS()`. # Version 0.17.0 [2011-11-19] ## New Features * Now it is possible to run Paired PSCBS (without TumorBoost) when only genotypes but not BAFs are available for the matched normal. # Version 0.16.3 [2011-11-17] ## New Features * Added `resegment()` for `CBS` and `PairedPSCBS` for easy resegmentation. * Adjusted `segmentByCBS()` such that it can handle `knownSegments` with chromosome boundaries given as -Inf and +Inf. * Now argument `mar` for `plotTracks()` defaults to NULL. * ROBUSTNESS: Added redundancy tests for `segmentByCBS()` and `segmentByPairedPSCBS()` with argument `knownSegments`. * ROBUSTNESS: Now `segmentByCBS()` does more validation of `knownSegments`. * FIX: `extractRegions()` for `AbstractCBS` would also show verbose output. ## Bug Fixes * Now argument/parameter `seed` is correctly preserved by `segmentByCBS()`. So is `tbn` for `segmentByPairedPSCBS()`. * `segmentByPairedPSCBS()` would give an error when trying to segment DH if the TCN segment contains no data points, which could happen if `knownSegments` specifies an empty segment, e.g. centromere. * `extractSegments()` for `CBS` would throw an error when there were multiple chromosomes. # Version 0.16.2 [2011-11-16] ## New Features * Now `segmentByCBS(..., w)` stores weights `w`, if given, in the locus-level data table of the returned CBS object. * Added `pruneBySdUndo()` for `CBS`, which does what `undo.splits = "sdundo"` for `DNA::segment()`, but on the already segmented results. * Now `updateMeans()` uses locus-specific weights, iff available. * Added `updateBoundaries()` for `CBS` to update (start,stop) per segment. * CORRECTNESS: Now `updateMeans()` for `CBS` identifies loci via internal `segRows` field and no longer by locations of segment boundaries, which gave slightly incorrect estimates for "tied" loci. # Version 0.16.1 [2011-11-15] ## New Features * Now more segmentation parameters are stored in the `CBS` object. * SPEEDUP: Now `segmentByCBS()` will use memoization to retrieve so called "sequential boundaries for early stopping", iff any of the `DNAcopy::segment()` arguments `alpha`, `nperm` and `eta` are specified. See also `DNAcopy::getbdry()`. * Added `method = "DNAcopy"` to `estimateStandardDeviation()` for `CBS`, which estimates the std. dev. using `DNAcopy:::trimmed.variance()`. ## Bug Fixes * `extractSegments()` for `CBS` would throw an error, because in most cases it would created a corrupt internal `segRows` field. # Version 0.16.0 [2011-11-12] ## New Features * Added argument `oma` and `mar` to `plotTracksManyChromosomes()` for `PairedPSCBS` for setting graphical parameters when `add = FALSE`. * Added `callROH()`. * Added arguments `from` and `adjustFor` to `updateMeans()`. # Version 0.15.5 [2011-11-04] ## Bug Fixes * `extractSegment()` for `AbstractCBS` would give an error, because it called itself instead of `extractSegments()`. # Version 0.15.4 [2011-10-30] ## New Features * Added `save()` and `load()` methods to `AbstractCBS`, which are wrappers for `saveObject()` and `loadObject()` that assert the correct class structure. Also, the `load()` method will automatically update the class hierarchy for `CBS` and `PairedPSCBS` objects that were saved before adding class `AbstractCBS`. # Version 0.15.3 [2011-10-23] ## Bug Fixes * `callAmplifications()` for `CBS` generated an error, if more than one chromosome were called. * The length of a segment must be defined as 'end-start' and not 'end-start+1' so that the the total length of all segments adds up correctly. * `highlightArmCalls()` for `CBS` did not handle empty chromosomes. * `getCallStatisticsByArms()` for `CBS` threw a error if argument `genomeData` did not contain exactly the same chromosomes as in the `CBS` object. # Version 0.15.2 [2011-10-21] ## New Features * Added `mergeThreeSegments()` for `AbstractCBS`. ## Bug Fixes * Recent updates caused `segmentByPairedPSCBS(data)` not to work when `data` is a data frame. # Version 0.15.1 [2011-10-21] ## New Features * By setting `start` and `end` to NAs in `knownSegments` (chromosome must still be specified), it is possible to insert an empty segment that disconnects the two flanking segments, e.g. centromere and the two arms. # Version 0.15.0 [2011-10-20] ## New Features * Added support for specifying priorly known segments, such as chromosome arms and centromeres, in `segmentByCBS()` via argument `knownSegments`. ## Bug Fixes * CLEANUP: Dropped a stray debug output message in `segmentByPairedPSCBS()`. # Version 0.14.3 [2011-10-17] ## New Features * Added argument `asMissing` to `dropRegions()` for `AbstractCBS`. # Version 0.14.2 [2011-10-16] ## New Features * Implemented `extractCNs()` for `CBS` and `PairedPSCBS`. * Added `extractTotalCNs()` for `CBS`. # Version 0.14.1 [2011-10-14] ## New Features * Added implementation of `extractRegions()` for `AbstractCBS`, which utilizes `extractSegments()`. * Added abstract `extractSegments()` and `extractSegment()` for `AbstractCBS`. * Now `extractTCNAndDHs()` for `PairedPSCBS` passes `...` to `getSegments()`. # Version 0.14.0 [2011-10-10] ## Code Refactoring * CLEANUP: Harmonization of several method names. * CLEANUP: Internal restructuring of the source code files. # Version 0.13.5 [2011-10-10] ## New Features * Added `dropChangePoint()` for `AbstractCBS`, which is just a "name wrapper" for `mergeTwoSegments()`. * Added `dropRegion()` and `dropRegions()` for `AbstractPSCBS`, where the former is a wrapper for the latter `dropRegions()`. * Added `updateMeans()` and `mergeTwoSegments()` for `CBS` in addition already available `PairedPSCBS` versions. * Relabeled column `id` to `sampleName` returned by `getSegments()`. ## Bug Fixes * For so called "splitter" rows, not all columns returned by `getSegments()` of `CBS` were missing values. * The object returned by `as.CBS()` for `DNAcopy` did not have the correct class hierarchy. ## Code Refactoring * ROBUSTNESS: Now using `getSegments()` everywhere possible. # Version 0.13.4 [2011-10-08] ## New Features * Added `all.equal()` for `AbstractCBS`, which does not compare attributes. * Added optional argument `regions` to `getCallStatistics()` for `CBS` in order to calculate call statistics on subsets of chromosomes, e.g. chromosome arms. * Added `drawChromosomes()` for `CBS`. * Added `getCallStatisticsByArms()`, `callArms()`, and `highlightArmCalls()` for `CBS` objects. ## Code Refactoring * Now internal `getChromosomeRanges()` of `CBS` returns a data.frame instead of a matrix, and first column is now `chromosome`. # Version 0.13.3 [2011-10-03] ## New Features * GENERALIZATION: Now `segmentByCBS()` and `segmentByPairedPSCBS()` also accepts a data.frame of locus-level data with column names matching the locus-level arguments accepted by the corresponding method. * GENERALIZATION: Now all segmentation result classes (`CBS` and `PSCBS`) inherits from the `AbstractCBS` class, which provides methods such as `getSampleName()`, `getChromosomes()` and `getSegments()`. ## Documentation * Added lots of more help pages. ## Code Refactoring * CLEANUP: Dropped empty `callSegments()` for `PairedPSCBS`. # Version 0.13.2 [2011-09-30] ## New Features * GENERALIZATION: Now `drawLevels()` for `PairedPSCBS` allows for drawing segmentation results in 'betaT' space. ## Bug Fixes * `plotTracks2(..., panels = "dh")` gave an error due to a forgotten assignment. # Version 0.13.1 [2011-09-06] ## New Features * Added formal class `CBS`, which holds the segmentation results returned by `segmentByCBS()`. Several methods are available for `CBS` objects, e.g. `nbrOfLoci()`, `nbrOfSegments()`, `nbrOfChromosomes()`, `getChromosomes()`, `estimateStandardDeviation()`, etc. * Now `segmentByCBS()` always returns a `CBS` object. To coerce to a `DNAcopy` object (as defined in the `DNAcopy` class) use `as.DNAcopy()`. * Added coerce methods `as.DNAcopy()` for `CBS` objects and `as.CBS()` for `DNAcopy` objects. # Version 0.13.0 [2011-09-01] ## New Features * GENERALIZATION: Now `segmentByCBS()` can process multiple chromosomes. * Added `append()` for `CBS` objects. ## Bug Fixes * Internal methods `plotTracksManyChromosomes()` and `tileChromosomes()` for `CBS` did not work at all and therefore neither `plotTracks()` for `CBS` with more than one chromosome. # Version 0.12.2 [2011-08-27] ## Code Refactoring * CLEANUP: Now `R CMD check` is no longer giving a note that the package loads package **DNAcopy** in `.onAttach()`. # Version 0.12.1 [2011-08-08] ## Bug Fixes * If `dropSegmentationOutliers()` would drop an outlier next to a change point, such that the total copy-number signal becomes NA, then the sanity checks that TCN segments always overlaps DH segments would fail. Now the sanity checks are aware of this special case. These sanity checks were moved from `bootstrapTCNandDHByRegion()` to `segmentByPairedPSCBS()`. Thanks Christine To at University of Toronto for reporting on this. # Version 0.12.0 [2011-07-23] ## Bug Fixes * Recently R devel automatically adds a namespace to a package, if missing. This caused some of the **PSCBS** examples to throw an exception related to incorrect dispatching of `cat()`. ## Code Refactoring * Added a namespace to the package, which will be more or less a requirement in the next major release of R. # Version 0.11.7 [2011-07-15] ## Documentation * Added a section to `help("segmentByPairedPSCBS")` on the importance of doing a whole-genome PSCBS segmentations if calling AB and LOH states afterward. * Made it more clear in `help("segmentByPairedPSCBS")` that arguments `betaT`, `betaN` and `muN` may contain NAs for non-polymorphic loci. # Version 0.11.6 [2011-07-14] ## Bug Fixes * ROBUSTNESS: In some cases, the segmentation table would contain column names with incorrect capitalization, e.g. `tcnnbrOfLoci` instead of `tcnNbrOfLoci`. This would cause several downstream methods to give an error. The reason for this is that the **Hmisc** package, if loaded after **R.utils**, overrides `capitalize()` in **R.utils** with another (buggy?) `capitalize()` function. To avoid this, we now everywhere specify explicitly that we want the one in **R.utils**. Thanks Christine To at University of Toronto for reporting on this. # Version 0.11.5 [2011-07-10] ## Bug Fixes * `tileChromosomes()` for `PairedPSCBS` was still assuming the old naming convention of column names. This caused `plotTracks()` to throw an exception when plotting multiple chromosomes. ## Code Refactoring * ROBUSTNESS: Fixed partial argument matchings in `arrowsC1C2()` and `arrowsDeltaC1C2()` for `PairedPSCBS`. # Version 0.11.4 [2011-07-07] ## New Features * GENERALIZATION: Now the internal estimator function that `estimateDeltaLOH()` uses returns -Inf if all segments are called AB, instead of throwing an exception. This will in turn make `callLOH()` call all segments to be non-LOH. ## Documentation * Removed obsolete references to the R-forge repository. ## Bug Fixes * Consecutive calls to `callAB(..., force = TRUE)` would append additional `abCall` columns to the segmentation table instead of replacing existing calls. # Version 0.11.3 [2011-07-06] ## New Features * ROBUSTNESS: Added a sanity check to `estimateDeltaLOHByMinC1AtNonAB()` for `PairedPSCBS` object. The test asserts that there exist segments that are not in allelic balance, which are needed in order to estimate DeltaLOH. ## Documentation * The description of argument `chromosome` for `segmentByPairedPSCBS()` did not describe how to segment multiple chromosomes in one call. # Version 0.11.2 [2011-07-05] ## Bug Fixes * Output fields `tcnNbrOfSNPs` and `tcnNbrOfHets` were mistakenly labeled as `tcnNbrOr...`. Thanks Christine Ho at UC Berkeley for reporting on this. # Version 0.11.1 [2011-06-28] ## Documentation * Clarified that argument `CT` should be tumor copy number ratios relative to the normal. * Added Rd help for `as.data.frame()` of `PairedPSCBS`. # Version 0.11.0 [2011-06-14] ## Significant Changes * Renamed all column names of returned data frames such that they follow the camelCase naming conventions in addition to be somewhat shorter too. ## New Features * GENERALIZATION: Added argument `columnNamesFlavor` to `segmentByCBS()`. # Version 0.10.2 [2011-06-07] ## Code Refactoring * CLEANUP: Cleaned up the `example()`:s. * Added more `biocViews` categories to DESCRIPTION. # Version 0.10.1 [2011-05-31] ## New Features * GENERALIZATION: The package can now be _installed_ without the **DNAcopy** package being installed. If package is loaded without **DNAcopy** installed, an informative message will explain how to install it. * Added `installDNAcopy()`, which will install **DNAcopy** from Bioconductor. ## Code Refactoring * ROBUSTNESS: Now all **DNAcopy** functions are called as `DNAcopy::nnn()`. # Version 0.10.0 [2011-05-29] ## Significant Changes * Renamed package to **PSCBS** (from **psCBS**). * Renamed all arguments, variables, and functions referring to `tau` to refer to `delta` reflecting the notation of the Paired PSCBS paper. * Renamed options, example code and help pages to reflect new package name. ## Documentation * Updated references in help pages. * Now the paired PSCBS is formally referred to as 'Paired PSCBS'. # Version 0.9.54 [2011-04-27] ## New Features * Added argument `maxC` to `estimateTauLOHByMinC1ForNonAB()`. # Version 0.9.53 [2011-04-14] * Added argument `max` to `estimateTauAB()` and `estimateTauLOH()`. # Version 0.9.52 [2011-04-14] ## Bug Fixes * Argument `minSize` of `callAB()` and `callLOH()` had no effect. # Version 0.9.51 [2011-04-12] ## New Features * Added argument `minSize` to `callAB()` and `callLOH()` for `PairedPSCBS`. * Now the a conflicting call in `callLOH()`/`callAB()` with argument `xorCalls = TRUE` is set to NA to contrast it from a FALSE call. # Version 0.9.50 [2011-04-12] ## New Features * Added argument `xorCalls` to `callLOH()` and `callAB()` for `PairedPSCBS`. When TRUE (the default), a segment that is already called AB will never be called LOH, and vice versa. # Version 0.9.49 [2011-04-11] ## New Features * Updated `estimateTauABBySmallDH()` for `PairedPSCBS` to use a "symmetric" quantile estimator. * Added argument `midpoint` to `estimateTauLOHByMinC1AtNonAB()`. ## Bug Fixes * The recent `callLOH()` would not store the LOH calls. # Version 0.9.48 [2011-04-10] ## New Features * Added `callLOH()` for `PairedPSCBS`, which in turn calls auxiliary methods. * Added `estimateTauLOH()` for `PairedPSCBS`, which in turn calls auxiliary methods. * Now `callAB(..., force = FALSE)` skips the caller if allelic-balance calls already exist. ## Documentation * Update the example for `segmentByPairedPSCBS()` to reflect the restructured AB and LOH callers. # Version 0.9.47 [2011-04-08] ## New Features * Added `estimateTauABBySmallDH()`. * Added internal `weightedQuantile()`. ## Documentation * Added help pages for more methods. ## Code Refactoring * CLEANUP: Started to restructure the source code files. # Version 0.9.46 [2011-04-08] ## Bug Fixes * `postsegmentTCN()` for `PairedPSCBS` could generate an invalid `tcnSegRows` matrix, where the indices for two consecutive segments would overlap, which is invalid. This was caught with real data, but it seems to have required a very rare combination of data in order for it to occur. # Version 0.9.45 [2011-04-05] ## Bug Fixes * `estimateHighDHQuantileAtAB()` for `PairedPSCBS` would throw an error on an undefined `trim` if verbose output was used. # Version 0.9.44 [2011-02-18] ## New Features * Added `estimateHighDHQuantileAtAB()` for `PairedPSCBS`. # Version 0.9.43 [2011-02-06] ## Bug Fixes * `plotTracks2()` queried non-existing argument `tracks`. # Version 0.9.42 [2011-02-03] ## New Features * Added `estimateKappa()` for estimating the normal contamination. # Version 0.9.41 [2011-02-02] ## Significant Changes * Updated default for `tauAB` of `callABandHighAI()` and `callABandLowC1()` to be estimated from data using `estimateTauAB()`. ## New Features * Added argument `tauTCN` to `estimateTauAB()`. # Version 0.9.40 [2011-01-27] ## New Features * Added argument `flavor` to `estimateTauAB()` for estimating the AB threshold using alternative methods. # Version 0.9.39 [2011-01-19] ## New Features * Added trial version of new `plotTracks2()`, which will later replace `plotTracks()`. Currently it only works for single chromosomes. * Added support functions, e.g. `updateMeans()`. # Version 0.9.38 [2011-01-18] ## New Features * Added arguments `changepoints` and `col` to `plotTracks()` for `PairedPSCBS`. * Now `plotTracks(..., add = FALSE)` for `PairedPSCBS` only sets up subplots if argument `tracks` specifies more than one panel. ## Documentation * Documented more `plotTracks()` arguments for `PairedPSCBS`. ## Bug Fixes * Now `plotTracks(..., add = TRUE)` for `PairedPSCBS` plots to the current figure/panel. # Version 0.9.37 [2011-01-18] ## Bug Fixes * `tcnSegRows` and `dhSegRows` where not updated by `extractByRegions()` for `PairedPSCBS`. # Version 0.9.36 [2011-01-14] ## New Features * Added `estimateTauAB()` for estimating the tauAB tuning parameter when calling segments in allelic balance. Updated `example(segmentByPairedPSCBS)` to illustrate how to use it. * Added `extractByRegions()` for `PairedPSCBS`. # Version 0.9.35 [2011-01-12] ## New Features * Now `postsegmentTCN(..., force = TRUE)` for `PairedPSCBS` also updates the TCN estimates even for segments where the DH segmentation did not find any additional change points. # Version 0.9.34 [2010-12-09] ## Bug Fixes * When there were multiple chromosomes processed by `segmentByPairedPSCBS()`, then the returned data object would contain `betaT` identical to `betaTN`. # Version 0.9.33 [2010-12-07] ## New Features * Added `callLowC1ByC1()` and `callABandLowC1()`. # Version 0.9.32 [2010-12-03] ## Bug Fixes * In rare cases the bootstrap sanity checks can indeed produce an invalid `range`, more precisely where (`range[,2]` >= `range[,1]`) is not true. This can happen if there is no variation in the bootstrap estimates. Because of this we allow for some tolerance. # Version 0.9.31 [2010-12-02] ## New Features * Added option `psCBS/sanityChecks/tolerance` for specifying the tolerance of some internal sanity checks. # Version 0.9.30 [2010-12-01] ## Code Refactoring * Rewrote all code dealing with the identification of loci belong to segments. The code is now utilizing the `segRows` element returned by `DNAcopy::segment()`. Lots of the code was rewritten and therefore completely new bugs may have been introduced. # Version 0.9.25 [2010-11-30] ## Bug Fixes * Argument `flavor` of `segmentByPairedPSCBS()` would be ignored if multiple chromosomes were segmented. * `extractByChromosome()` for `PSCBS` would call it self instead of `extractByChromosomes()`. # Version 0.9.24 [2010-11-28] ## Bug Fixes * `postsegmentTCN()` did not handle loci with the same positions and that are split in two different segments. It also did not exclude loci with missing values. # Version 0.9.23 [2010-11-28] ## Bug Fixes * The algorithm in `segmentByCBS()` that infers which loci (of the ones share the same genomic positions) that should be exclude from each segment did not take missing signals into account. * Iff argument `chromosome` to `segmentByPairedPSCBS()` was of length greater than one and specified exactly one unique chromosome, then exception `Number of elements in argument 'chromosome' should be exactly 8712 not 86209 value(s)` would be thrown. # Version 0.9.22 [2010-11-27] ## Bug Fixes * `bootstrapTCNandDHByRegion()` would incorrectly include non-polymorphic loci in the set of homozygous SNPs during resampling. * `segmentByPairedPSCBS()` would not accept missing values in argument `chromosome`. # Version 0.9.21 [2010-11-27] ## New Features * Now arguments `...` of `segmentByPairedPSCBS()` are passed to the two `segmentByCBS()` calls. * Added `callSegmentationOutliers()`, which can be used to identify single-locus outliers that have a genomic signal that is clearly outside the expected range. The `dropSegmentationOutliers()` sets locus outliers detected by this method to missing values. This is useful for excluding total copy-number outliers that otherwise can have a dramatic impact on the non-robust CBS method. # Version 0.9.20 [2010-11-26] ## New Features * Added optional argument `chromosomes` to `plotTracks()` to plot a subset of all chromosomes. * Added `extractByChromosomes()` for `PSCBS`. * Now the default confidence intervals for `plotTracks()` is (0.05,0.95), if existing. * Now all call functions estimate symmetric bootstrap quantiles for convenience of plotting confidence intervals. ## Bug Fixes * `callABandHighAI()` for `PairedPSCBS` used the old DH-only bootstrap method. * The statistical sanity checks of the bootstrap estimates would give an error when only single-sided bootstrap confidence interval was calculated. * The call functions, for instance `callABandHighAI()`, would throw `Error in quantile.default(x, probs = alpha) : missing values and NaN's not allowed if 'na.rm' is FALSE`, unless `bootstrapTCNandDHByRegion()` was run before. # Version 0.9.19 [2010-11-23] ## New Features * ROBUSTNESS: Added more sanity checks to `bootstrapTCNandDHByRegion()`. * WORKAROUND: The precision of the mean levels of `DNAcopy::segment()` is not great enough to always compare it to that of R's estimates. ## Bug Fixes * `bootstrapTCNandDHByRegion()` would give an error if there was only one segment. * `segmentByPairedPSCBS()` and `bootstrapTCNandDHByRegion()` would not subset the correct set of DH signals if there were some missing values in TCN. # Version 0.9.18 [2010-11-22] ## New Features * Added argument `calls` to `plotTracks()` for highlighting called regions. * Updated `callAllelicBalanceByDH()` and `callExtremeAllelicImbalanceByDH()` to utilize `bootstrapTCNandDHByRegion()`. * ROBUSTNESS: Now `drawConfidenceBands()` of `PairedPSCBS` silently does nothing if the requested bootstrap quantiles are available. ## Bug Fixes * `bootstrapTCNandDHByRegion()` for `PairedPSCBS` would not correctly detect if bootstrap results are already available. # Version 0.9.17 [2010-11-21] ## New Features * Now `plotTracks()` supports tracks `"tcn,c1"`, `"tcn,c2"`, and `"c1,c2"` too. * Added support for flavor `"tcn&dh"` in `segmentByPairedPSCBS()`, which contrary to `"tcn,dh"` enforces TCN and DH to have the same change points. The default flavor is now `"tcn&dh"`. * Added argument `xlim` to `plotTracks()` making it possible to zoom in. # Version 0.9.16 [2010-11-21] ## New Features * Now `joinSegments = TRUE` is the default for `segmentByCBS()` and `segmentByPairedPSCBS()`. * Added argument `quantiles` to `plotTracks()`, which if specified draws confidence bands previously estimated from bootstrapping. * Added `drawConfidenceBands()` for `PairedPSCBS`. * Added `bootstrapTCNandDHByRegion()` for `PairedPSCBS`. * Added standalone `joinSegments()` for `CBS` results. * Now `segmentByPairedPSCBS()` also returns minor and major copy numbers for each segment. # Version 0.9.15 [2010-11-21] ## New Features * Adjusted `postsegmentTCN()` such that the updated TCN segment boundaries are the maximum of the DH segment and the support by the loci. This means that `postsegmentTCN()` will work as expected both when signals where segmented with `joinSegments` being TRUE or FALSE. * Updated `plotTracks()` for `PairedPSCBS` such that the TCN segmentation is colored 'purple' and the DH segmentation 'orange' for TCN and DH only tracks. # Version 0.9.14 [2010-11-20] ## New Features * Now it is possible to specify the boundaries of the regions to be segmented as known change points via argument `knownCPs`. * Added argument `joinSegments` to `segmentByCBS()` and `segmentByPairedPSCBS()` in order to specify if neighboring segments should be joined or not. * Now `segmentByCBS()` and `segmentByPairedPSCBS()` allow for unknown genomic positions as well as missing total CN signals. # Version 0.9.13 [2010-11-19] ## New Features * Added argument `joinSegments` to `segmentByCBS()` in order to specify if neighboring segments should be joined or not. # Version 0.9.12 [2010-11-19] ## New Features * Added `plotTracks()` and `drawLevels()` etc. to CBS results. * Now `segmentByCBS()` allows for unknown genomic positions. * Now `segmentByCBS()` allows for missing signals. * Added argument `preserveOrder` to `segmentByCBS()`. If TRUE, then the loci in the returned `data` object are ordered as the input data, otherwise it is ordered along the genome. # Version 0.9.11 [2010-11-16] ## New Features * Now the `data` object returned by `segmentByCBS()` contains field `index` if and only if the loci had to be reorder along the genome. ## Documentation * Added more details, references to papers, and cross links to other functions to the help pages. ## Bug Fixes * In the rare cases where two loci at the same positions are split up into two neighboring segments, then `segmentByPairedPSCBS()` would fail to infer which they were if and only if the loci were not ordered along the genome. This could happen with for instance Affymetrix `GenomeWideSNP_6` data. # Version 0.9.10 [2010-11-09] ## New Features * Added argument `cex = 1` to `plotTracks()`. ## Bug Fixes * It was not possible to plot BAF tracks with `plotTracks()`. # Version 0.9.9 [2010-11-05] ## Bug Fixes * `segmentByCBS()` tried to pass non-existing argument `undo.split` to `DNAcopy::segment()`. It should be `undo.splits`. # Version 0.9.8 [2010-11-04] ## Bug Fixes * There was a stray/debug `stop()` statement left in `segmentByPairedPSCBS()` causing an "error" in the rare case when loci that have the same physical locations are split into two different segments. # Version 0.9.7 [2010-11-03] * ROBUSTNESS: Now `bootstrapDHByRegion()` uses `resample()` of **R.utils**. ## Bug Fixes * `bootstrapDHByRegion()` did not sample from the correct unit(s) when there was only one DH signal. # Version 0.9.6 [2010-11-02] ## New Features * Added arguments `undoTCN` and `undoDH` to `segmentByPairedPSCBS()`. * Added argument `undo` to `segmentByCBS()`, which corresponds to `undo.splits = "sdundo"` and `undo.SD = undo`, if undo < +Inf. ## Bug Fixes * Arguments `alphaTCN` and `alphaDH` of `segmentByPairedPSCBS()` were not used when more than one chromosome were segmented. # Version 0.9.5 [2010-11-01] ## New Features * Added arguments `alphaAB` and `alphaHighAI` to `callABandHighAI()`. ## Bug Fixes * `bootstrapDHByRegion()` would give an error if only a single quantile was requested. * `bootstrapDHByRegion()` would give `Error in if (nbrOfUnits > segJJ[, "dh.num.mark"]) { : missing value where TRUE/FALSE needed` when `dh.num.mark` was NA. # Version 0.9.4 [2010-10-25] ## New Features * Now the default is a 95% confidence interval for calls. * Now `segmentByCBS()` also returns element `lociNotPartOfSegment`, if there are segments that share end points, which can happen if a change point is called in middle of a set of loci that have the same genomic positions. In such cases, `lociNotPartOfSegment` specifies which loci are *not* part of which segment. Then by identifying the loci that are within a segment by their positions and excluding any of the above, one knows exactly which loci CBS included in each segment. ## Bug Fixes * Now `bootstrapDHByRegion()` for `PairedPSCBS` handles the rare case when markers with the same positions are split in two different segments. * Now the correct set of loci are extracted from each TCN segment, in the rare case that two neighboring TCN segments have the same end points. # Version 0.9.3 [2010-10-25] ## New Features * Added argument `ciRange` to `callAllelicBalance()` and `callExtremeAllelicImbalance()`. ## Bug Fixes * `bootstrapDHByRegion()` for `PairedPSCBS` would bootstrap from the incorrect set of loci when the DH region contained only one locus. * `bootstrapDHByRegion()` for `PairedPSCBS` would bootstrap from the incorrect set of loci if more than one chromosome was available. # Version 0.9.2 [2010-10-24] ## Bug Fixes * `plotTracks()` would give `Error: object 'nbrOfLoci' not found` for whole-genome plots. # Version 0.9.1 [2010-10-20] ## New Features * Now `plotTracks()` can plot whole-genome data. # Version 0.9.0 [2010-10-18] ## New Features * Added arguments `alphaTCN` and `alphaDH` to `segmentByPairedPSCBS()` with defaults according to the paper. # Version 0.8.3 [2010-10-18] ## New Features * Now `segmentByPairedPSCBS()` can segment multiple chromosomes. # Version 0.8.2 [2010-10-17] ## New Features * Added argument `tbn` to `segmentByPairedPSCBS()` specifying whether TumorBoostNormalization should be applied or not. # Version 0.8.1 [2010-10-10] ## Significant Changes * The default for `segmentByPairedPSCBS()` is now to segment TCN on the original scale, not the `sqrt()`. ## New Features * Added `plotTracks()` for `PairedPSCBS`. # Version 0.8.0 [2010-10-06] ## Code Refactoring * CLEANUP: Removed all old code, native code and help pages. # Version 0.7.8 [2010-10-03] ## New Features * Added optional argument `chromosome` to `segmentByCBS()`. Note that at this point it is only used for annotating the results; it can not be used to segmented multiple chromosomes at ones. # Version 0.7.7 [2010-09-26] ## New Features * Now `subsetBySegments()` and `postsegmentTCN()` for `PairedPSCBS` handles multiple chromosomes. # Version 0.7.6 [2010-09-24] ## New Features * Added support to annotating and subsetting also by chromosomes, as well as appending segmentation results from different chromosomes together. # Version 0.7.5 [2010-09-21] ## New Features * Added `postsegmentTCN()` for `PairedPSCBS`, which updates the TCN segment start and ends, estimates and counts given the DH segments. # Version 0.7.4 [2010-09-18] ## New Features * Added argument `chromosome` to `segmentByPairedPSCBS()`, which, if given, adds a chromosome column to the data and segmentation results. ## Bug Fixes * `plot()` for `PairedPSCBS` used a non-defined variable. # Version 0.7.3 [2010-09-16] ## New Features * Added `callABandHighAI()` for calling paired PSCBS segmentation results. ## Code Refactoring * Added internal bootstrapping functions. # Version 0.7.2 [2010-09-15] ## New Features * Added more methods for the `PSCBS` class. # Version 0.7.1 [2010-09-08] ## New Features * Added more methods for the `PSCBS` class. * Now `segmentByPairedPSCBS()` also returns the TumorBoost normalized data. # Version 0.7.0 [2010-09-04] ## New Features * Updated `segmentByPairedPSCBS()` to provide two-step segmentation from first segmenting the total copy numbers and then the decrease-of-heterozygosity signals. Added utility functions for plotting the results. The code for calling allelic imbalance and LOH is still to be added. # Version 0.6.3 [2010-09-02] ## New Features * Now `segmentByCBS()` also works if there are no data points. # Version 0.6.2 [2010-07-14] ## New Features * Added `callNaiveHeterzygotes()`, which is a cleaned up version of `findheterozygous()`. Added Rd example that asserts that the two are identical and compares the calls to those of `aroma.light::callNaiveGenotypes()`. # Version 0.6.1 [2010-07-09] ## New Features * Added low-level `segmentByPairedPSCBS()`, which runs paired PSCBS segmentation on a single sample and a single chromosome. It only segments; it does not call segments. This is only a stub in the sense that it still does not adjust p-values etc. * Added low-level `segmentByCBS()`, which runs CBS segmentation on a single sample and a single chromosome. * BACKWARD COMPATIBILITY: Now `psCNA()` returns a list of length 8. * Reverted `psSegment()` back to v0.5.6. # Version 0.6.0 [2010-07-08] ## New Features * Now `psSegmentPaired()` returns a data frame (no longer a matrix). * CLEANUP: Created `psSegmentPaired()` from `psSegment()`. ## Code Refactoring * CLEANUP: Major cleanup, i.e. renaming variables, reordering etc. * ROBUSTNESS: Replaced all `1:n` with `seq(length = n)` to deal with `n == 0`. * ROBUSTNESS: Now all list elements are referenced by name. * ROBUSTNESS: Now all iterator variables are written as `ii`, `jj`, etc. * Using `setMethodS3()` of **R.methodsS3** to define S3 methods. * Dropping NAMESPACE while package is finished. This makes it easier to patch methods, etc. # Version 0.5.6 [2010-07-07] ## Documentation * Added `example(psSegment)`. ## Bug Fixes * Previous clean up introduced bugs. * The dynamic library for `hrmode()` was not loaded. # Version 0.5.5 [2010-05-05] ## Code Refactoring * CLEANUP/ROBUSTNESS: Major code clean up. # Version 0.5.4 [2010-04-30] ## Code Refactoring * Added internal `hrmode()`. * CLEANUP: Renamed source files to match function names. Only only function per source file. # Version 0.5.3 [2010-04-22] ## Significant Changes * ABO updated the psCBS algorithm. # Version 0.5.2 [2010-0?-??] * ??? # Version 0.5.1 [2010-03-31] ## Significant Changes * Now `psSegment(..., matching.reference = TRUE)` does TumorBoost normalization on the allele B fractions before segmentation. # Version 0.5.0 [2010-03-12] * Added to R-forge repository. PSCBS/MD50000644000176200001440000003134314564202212011436 0ustar liggesusersdd2ea3c39057a858f14c34dfcf707272 *DESCRIPTION fe01f7bb05791b27925ea36d07715be5 *NAMESPACE 33afdb93d2a0401527c287dac38519cb *NEWS.md 5b3e0291bcc049d9ada9005162c5259a *R/000.R 31cb7684ac252cc553f7a71f77c5cc85 *R/999.DEPRECATED.R 5b9ea216c47a57e772308c8d17cfd10e *R/999.NonDocumentedObjects.R b9a22d7a3d629919b925558646512bf1 *R/999.package.R cf11a1bae61124096a25d542b34134b4 *R/AbstractCBS.HCLUST.R 5ee907c9784ccb0408ba4f2c1527d630 *R/AbstractCBS.PLOT.R 3e8ca4bce184866dc280cf1a679946a5 *R/AbstractCBS.PRUNE.R 2a54ff299735ca1ccfd4db9e2d2a3645 *R/AbstractCBS.R 386bdc9fe2dd2c80edbbddf59668128e *R/AbstractCBS.REPORT.R ca9ed4cca2f5ec2edb971cb2dda9881e *R/AbstractCBS.RESTRUCT.R ca2fd5e553fd063ba7ff28c3cee6a6f8 *R/AbstractCBS.clearCalls.R 202d73070b48664daed6f8788a523139 *R/CBS.CALL.R 4ef3f9ddda8d6d548ceade99741e884b *R/CBS.EXTS.R 2f9386f71ac98af17eedf88adf2a79eb *R/CBS.IO.R f173001ac7bb63aa0e8ee4d45b3712d4 *R/CBS.PLOT,many.R bfb7abec63996fc9b7ddf497651278c5 *R/CBS.PLOT.R 396740d236597cda895e9c2fa0aca6d4 *R/CBS.PRUNE.R b3d17d661046519219a4d7adc9be4df7 *R/CBS.R 6e7e62087dca79ed0f893c3c692b7867 *R/CBS.RESTRUCT.R 747b0061416ab0fdaef690f524440209 *R/CBS.SMOOTH.R a01b8fca4229ed36fd40704b294dbbba *R/CBS.joinSegments.R 603ebe88b97bff04472cbc098fb2445d *R/CBS.updateMeansTogether.R 581f27b2999d9c5dd6c6aad2fb2e2390 *R/CNA.EXTS.R c8bd31ddc050974d23c8093d603b9761 *R/DNAcopy.EXTS.R 8850fc36a815db60e2364229e362600a *R/NonPairedPSCBS.R a6e072df7c6573a460b6bffdc40fbbab *R/PSCBS.IO.R a30892181ab7e59b808e36d797979aaf *R/PSCBS.R 8aca0f771027c699cd5dca88c1bee729 *R/PSCBS.RESTRUCT.R 48cc8da528c5bf64c2c15a267c349d7d *R/PSCBS.isLocallyPhased.R 621d9e988de2e8443151fd37950cb7f7 *R/PairedPSCBS.BOOT.R 82bb04a434c11642b0b2a18821a8d258 *R/PairedPSCBS.BOOT.sets.R 279729d2a552aa92757ef82d4ca78a85 *R/PairedPSCBS.CALL.R 3aba4f5259a3dae4bd5ed555b8356631 *R/PairedPSCBS.EXTS.R 70b805fc647b0324bbce1cfcf134ae5b *R/PairedPSCBS.EXTS3.R c4aafa5a9748db76e61a27e8ca622f7e *R/PairedPSCBS.PLOT,many.R 8100bd2314facc0b6c7339f57e1bc662 *R/PairedPSCBS.PLOT.R 878fe63829f7fda9bbd1db4e359a13ff *R/PairedPSCBS.PLOT2.R b1e89555e008ec37e13a071e372abfac *R/PairedPSCBS.PRUNE.R a02aaefa8989d0e9a6ce5027248a31c4 *R/PairedPSCBS.R 0858dae84d1f665d721bd3aa42c3adfe *R/PairedPSCBS.RESTRUCT.R e50260e3bdb6b891b7093ba2c790ebb8 *R/PairedPSCBS.applyByRegion.R 3458731e78497453c4f663b91c8f0cc5 *R/PairedPSCBS.callAB.R d7e8145514e3d6be7598493b50a73c72 *R/PairedPSCBS.callCopyNeutral.R c5a156b8c56e00b734c1ba4528c58331 *R/PairedPSCBS.callGNL.R dfb8e2ce8ef02f7a9cca0c926e2ef696 *R/PairedPSCBS.callLOH.R 2d94006c4d35dd071042b1e7ef39f15e *R/PairedPSCBS.callROH.R bb43c1a57b99ed95d3b96663f62397d9 *R/PairedPSCBS.estimateDeltaAB.R 792eead5634c1e8db1323414ec8c12d3 *R/PairedPSCBS.estimateDeltaLOH.R 17eba7b8dd57241e5640b984023a8d6d *R/PairedPSCBS.estimateKappa.R b9b61ab3388af9481fed61da69fd4067 *R/PairedPSCBS.extractSegmentDataByLocus.R b643de003b3ce45eac64c32a0a72f032 *R/PairedPSCBS.unTumorBoost.R eac8ca56b63887e4090f896648516125 *R/PairedPSCBS.updateMeans.R a0a8ad4af2f7539d1fe67420358695c7 *R/PairedPSCBS.updateMeansTogether.R 39bedc9996acf61a02f81faeed715857 *R/callSegmentationOutliers.R b1120a7f78a4192dcdcbbcac73c5fcff *R/drawLevels.DNAcopy.R e51684240cb75a4f3be8a5d3a3c0f04c *R/exampleData.R 3ab3fab527c1f0aecfc607e29f5c2694 *R/findLargeGaps.R a728221d22ba3203ccb741f5b0771cf5 *R/findNeutralCopyNumberState.R c58968fa0c597127936f174f2b2c8ad2 *R/gapsToSegments.R 2c523572dd0d3b788bcf65d3bc29d5bb *R/installDNAcopy.R f5464022de0ba7269fe82fae4e966c15 *R/prememoize.R a94b36c3f60fc3ae98c749caade5a89c *R/randomSeed.R b28ad62b69d82b1f464e884ea1ca59b1 *R/segmentByCBS.R 5494355e3295264b6d5ad2eb552ee63b *R/segmentByNonPairedPSCBS.R a6ff50e418046ea3b4152fa4d6e5b368 *R/segmentByPairedPSCBS.R cd776ac0c74739ded25b3dafe84cf45a *R/testROH.R 03fddd9ccc07f4b10befa786369c2135 *R/utils.R 65b0bc28aab801c2fbdc93a58be2bbe9 *R/weightedQuantile.R 649ae3161e4d6610a24761ba2aa99d53 *R/writeWIG.R ec94da06896e5ec37619cce4b4023ec5 *R/zzz.R 4408d3f513bf1b1086c9244303cadc0b *README.md 879fb357b0d8db010ee59babcd7b16bf *build/vignette.rds 3b2cccdbd4eefde2c936639da2c69e5f *inst/CITATION f738905d2cc4758f4d595bc8c8b4ab5a *inst/WORDLIST 14659728b7be1bb8e37e953a87060e6c *inst/data-ex/PairedPSCBS,exData,chr01.Rbin c0b189f26030e57c5e59eada84bc2b33 *inst/doc/CBS.R 9bf3a8cca03eb1a147865c702a4413ba *inst/doc/CBS.pdf 6ab8b5697dafb6f0180984df4bf3f5b2 *inst/doc/CBS.tex.rsp 5d3893ffb445a72be4bf07bb234aa5e1 *inst/doc/PairedPSCBS.R 085ec4f52f3720bf6dde4ca967a16057 *inst/doc/PairedPSCBS.pdf e8d89580cd99dc842d45eb2368ea9bed *inst/doc/PairedPSCBS.tex.rsp 56e6435959f6387651a30e915e54baab *inst/misc/_Rcache/PSCBS/segmentByCBS/sbdry/0109d43cd74c8e7e46db1abde235c808.Rcache 17a5a6d6c343e587021f5e4c7c3ec97e *inst/misc/_Rcache/PSCBS/segmentByCBS/sbdry/2aba5b85ae757609b8b4c9fc60be1156.Rcache 1e03443121d58d43b72492a207272077 *inst/templates/rsp/CBS,report.tex.rsp f605500742f015ae26c455b37fcc18b8 *inst/templates/rsp/NonPairedPSCBS,report.tex.rsp 008dcc209acfd836649040fa600adbda *inst/templates/rsp/PSCBS.bib 379e54a8d405491faa7e690e414f7b57 *inst/templates/rsp/PairedPSCBS,report.tex.rsp f01bbc88ade170e0dcb4c76fac17fe7d *inst/templates/rsp/bioinformatics-journals-abbr.bib 5146f637b61e03ac550811e9d46de420 *inst/templates/rsp/includes/levelDensities.tex.rsp 2d2c639e0d72962658f270675cccbf0b *inst/templates/rsp/includes/pscnSegmentationTracks.tex.rsp c72a4a967345e999cccdaeb0b072d01d *inst/templates/rsp/includes/pscnSegmentationTransitions.tex.rsp 860859b29771b6fade80e4d0cebc59d6 *inst/templates/rsp/includes/references.tex.rsp 7885a06ef57438e704c0d9d35dddc716 *inst/templates/rsp/includes/reportHeader.tex.rsp 9a68af6ca781e60d82670869008ffe33 *inst/templates/rsp/includes/reportSetupGraphics.tex.rsp 7615fd0b844f872869b4afb3bbdfd1bb *inst/templates/rsp/includes/reportSetupMacros.tex.rsp 9b2e313a0483afa2ca60cc616434679f *inst/templates/rsp/includes/sessionInfo.tex.rsp 5abfbbffe381cb5d3d3134f14b45543e *inst/templates/rsp/includes/signalDensities.tex.rsp 4cb7c97012df4c618f08acd20cf1ca63 *inst/templates/rsp/includes/summaryOfAnnotationAndGenotypeCalls.tex.rsp f3907cf5bef1f44c8c15558e94274a18 *inst/templates/rsp/natbib.bst 186c25ce77ef689100aba5fadc91d9bc *man/AbstractCBS.Rd 7ddee19fcc549f8e7b073b4faaa16924 *man/CBS.Rd 3fcb1c125c14a8680c8498c546de6216 *man/Non-documented_objects.Rd 5e16e2fa4ab9a4c4e6941c72b0f721ff *man/NonPairedPSCBS.Rd ab0330aa3eae8000ef333c9e41582efb *man/PSCBS-package.Rd 8f716390f47e89519c5ef374ec8f3b00 *man/PSCBS.Rd 8e929052157452c04b7e91bdc1323e11 *man/PairedPSCBS.Rd 91b07ae0f6f46ba1a478921ed2c49b87 *man/Restructuring_AbstractCBS_objects.Rd e534107eb35ccbb5e59093d2acf6e32c *man/as.CBS.DNAcopy.Rd 22ce4b8908c97ccb56a0f134510bffc3 *man/as.DNAcopy.CBS.Rd a6cb223758bc39c5d9ca4e7157c410dd *man/as.data.frame.AbstractCBS.Rd 53f2d1c6fc28166ff5cb62e476fea136 *man/as.data.frame.CBS.Rd daabd4c3a6e27f7c2d86915b5df84928 *man/bootstrapTCNandDHByRegion.PairedPSCBS.Rd 5881cd9aafe6ff57de60b17ecd69cc00 *man/c.CBS.Rd 6095c6f1db04d7817485853349429489 *man/callAB.PairedPSCBS.Rd 69c7ae7eccf16bfebf15bada46d6721c *man/callAllelicBalanceByDH.PairedPSCBS.Rd 8a177a1d31c63dcd3e3cf1aaab45b07b *man/callAmplifications.CBS.Rd 521539eb523296c1cf58d9364167a161 *man/callCopyNeutral.PairedPSCBS.Rd 419ed670fb8422053a9e44a41b1eef6f *man/callCopyNeutralByTCNofAB.PairedPSCBS.Rd c854e68744cfc82c1fcd8b51ca857fad *man/callGNL.PairedPSCBS.Rd 9fc634c7d99b5ad734bc1057bfcca1bb *man/callGainsAndLosses.CBS.Rd dc41bb1efa305ed8e10dc681bc45aa23 *man/callLOH.PairedPSCBS.Rd 732b27351d445addf7bbf2b99e654b36 *man/callOutliers.CBS.Rd 838dc240a03c12ffe3874864dcf3b22e *man/callROH.PairedPSCBS.Rd b347080d29b70bc29aff1ff8934a28b3 *man/callSegmentationOutliers.Rd af589aed4e4fcf9e491c25a16a2c5c4e *man/dropChangePoints.AbstractCBS.Rd c2717b3db4da9f95dd8822da6bd689d0 *man/dropRegions.AbstractCBS.Rd 3dd1f7945c5b9cd705297dd15aa3232a *man/estimateDeltaAB.PairedPSCBS.Rd 271e67da730c818170d45c7815daa4d4 *man/estimateDeltaABBySmallDH.PairedPSCBS.Rd d57ec89a054ff04d163a2934d344c15e *man/estimateDeltaCN.PairedPSCBS.Rd 389ecf9619ef23173bae0702a329b719 *man/estimateDeltaLOH.PairedPSCBS.Rd 5c9ac7b578e204c80e175344a5635969 *man/estimateDeltaLOHByMinC1ForNonAB.PairedPSCBS.Rd 722d9be399b053a6aa85908186c66617 *man/estimateKappa.PairedPSCBS.Rd e25d09950c2ac2aed8932081db2dc0eb *man/estimateKappaByC1Density.PairedPSCBS.Rd bbca3a25a2700e1040065c966c28036c *man/estimateStandardDeviation.CBS.Rd a8a1368fb2e836d808ab339eec5c3bf7 *man/exampleData.Rd dd702d33c6c9dc7c8a61db7d8e57d7e8 *man/extractMinorMajorCNs.PairedPSCBS.Rd 2745258268eeffe5d6f8437142a0ca7f *man/extractSegmentMeansByLocus.CBS.Rd da4cb348dce202b19542a681c3b0a893 *man/extractTCNAndDHs.PairedPSCBS.Rd 75a127bfd12612ecb73ea6c385e791d9 *man/figures/ex-PSCBS-paired.chr01.png 9dbea07287422753ab5db54fa9b547a4 *man/findLargeGaps.Rd a05249b87c436c75a0998564f901df85 *man/findNeutralCopyNumberState.Rd 3699de1bee98ca4afbbfa4b93e27175a *man/gapsToSegments.data.frame.Rd 1bd0c24ae698ca98b9e691a6b9099a73 *man/getBootstrapLocusSets.PairedPSCBS.Rd c27859503bff7a18bdccdb9b900a8837 *man/getCallStatistics.CBS.Rd 01be02b70f50acdf32af74d1095bdee8 *man/getChromosomes.AbstractCBS.Rd 8add6b64fab13e7805e73d454c2f0226 *man/getFractionOfGenomeLost.CBS.Rd 2652f456e0210bd63ba4928e9cbdd75e *man/getLocusData.AbstractCBS.Rd e38e4c27a96ad64c745f9db7cb07faa4 *man/getSampleName.AbstractCBS.Rd 3706f46053f67fdc3359d780cd198e7a *man/getSegments.AbstractCBS.Rd 6d48429ce911acae62ce59a708e623ca *man/getSegments.PSCBS.Rd 2d45f3dfbe49462191da53f7d04341ab *man/getSmoothLocusData.CBS.Rd 2aa35c71d6043956970e091489a23ce4 *man/hclustCNs.AbstractCBS.Rd 12d8023e7c2f8ecc5ca76c7b14381a7a *man/installDNAcopy.Rd c668b9975804d67f833e671635dab54b *man/joinSegments.CBS.Rd 3e24345d7327bf88fea8b824a582e718 *man/mergeNonCalledSegments.CBS.Rd cf642a455c7ca06f7072e6ce3ebb1d22 *man/mergeThreeSegments.AbstractCBS.Rd a3d0413e8e1887c8a3e283128433fe14 *man/mergeTwoSegments.AbstractCBS.Rd 8ea75fe5a459f8b6502e75b6f6ee6eb0 *man/mergeTwoSegments.PairedPSCBS.Rd 8e33b404462d57fa8111ec6c17def975 *man/nbrOfChangePoints.AbstractCBS.Rd e1913743bcf8545b5c7f3cf9b206624d *man/nbrOfChromosomes.AbstractCBS.Rd b05c91b6528f5dfb200d1493523b3525 *man/nbrOfLoci.AbstractCBS.Rd 32dc5a786239d886939b19a814ea865c *man/nbrOfSegments.AbstractCBS.Rd 420bef7918487909706f01ac02d1f7b0 *man/normalizeTotalCNs.AbstractCBS.Rd b1618d544720f032c95f6563a53fc645 *man/ploidy.AbstractCBS.Rd 285605d73ea6b1ad80d561642b2d5644 *man/plotTracks.AbstractCBS.Rd 8e407ed8348a1ad6e1276c7c8d9a3c41 *man/plotTracks.CBS.Rd b221058f3c0508e8558dd7c68e74cc7c *man/plotTracks1.PairedPSCBS.Rd 00e5e824765da4e97788ad6f5764e2ec *man/pruneByDP.AbstractCBS.Rd 525e01e468a4599c41af3a300f25362a *man/pruneByHClust.AbstractCBS.Rd 013127e4dfd9584ce18c9b246c713b50 *man/pruneBySdUndo.CBS.Rd 0cc1a3f744dae1ca53c07f4fb61e91e6 *man/randomSeed.Rd 6ac688a354724df8e0b3c5110949ca21 *man/report.AbstractCBS.Rd 88b05c630f8af9a2437df4a846bab343 *man/resetSegments.AbstractCBS.Rd 9fa51829a67c564956646e18bf5ec31a *man/segmentByCBS.Rd d41e05e2d6980cd141885357d2b0072d *man/segmentByNonPairedPSCBS.Rd 031b472a199f8f8d72a2a54826b0bfca *man/segmentByPairedPSCBS.Rd 4c4181efced223c39066439f8741c498 *man/setSampleName.AbstractCBS.Rd 6e9676b9f9825c488bdf96d410cc9539 *man/testROH.numeric.Rd e9dd20a0adf9def1b9523d189a35e4f6 *man/updateMeans.AbstractCBS.Rd 7d1c1a55ae672f0352ca10e4bd5036ae *man/updateMeansTogether.AbstractCBS.Rd 93205b47f42516cf8c2b66c466ceaca7 *man/weightedQuantile.Rd 63a7356f7ad4433a9361ecee5ae683c2 *man/writeSegments.CBS.Rd c17aa26ce4bed7b08417b45882e96276 *man/writeSegments.PSCBS.Rd de8847124d8ea6cdaddb1f52269f10b0 *tests/PairedPSCBS,boot.R a20d5e74b660794a207ebee3b146e571 *tests/findLargeGaps.R 4f1a9d8d791a7a899eb18e19b56a98ca *tests/randomSeed.R 41267a6a75014b780037272409dcf4a4 *tests/segmentByCBS,calls.R b7acfb4684e8a2f6549345a514346807 *tests/segmentByCBS,futures.R f04ed0148cf6f6b62c2af44ccdbdb7e4 *tests/segmentByCBS,median.R 2237835c4c7d3019d0fb50a86efc5604 *tests/segmentByCBS,prune.R db249f1f339e184e651a68ea57033834 *tests/segmentByCBS,report.R de09c8c008c4bde1691e8c7e4e30fb82 *tests/segmentByCBS,shiftTCN.R 4770dcbd22a8f1f0aa7ec339059eda83 *tests/segmentByCBS,weights.R 8437c7366d535981f316bd770123ea74 *tests/segmentByCBS.R 065319c9e5582cb4b5c7ea4b9bbbc793 *tests/segmentByNonPairedPSCBS,medianDH.R d8cd7bdf20f657bcc393c55c7bce382e *tests/segmentByPairedPSCBS,DH.R d03756cf4f3124b51ddc4b1a7ee224ff *tests/segmentByPairedPSCBS,calls.R de7f30135d0e81460dc9bc68fbf958af *tests/segmentByPairedPSCBS,futures.R b5297118f74861f14db49b1a53eb4d73 *tests/segmentByPairedPSCBS,noNormalBAFs.R 16cae3c29ec03be4526b11b9e5c0a899 *tests/segmentByPairedPSCBS,report.R 07fb3136cfb1d2c93f7a0aeb234a76e6 *tests/segmentByPairedPSCBS,seqOfSegmentsByDP.R 9cdf7cfaa91b475a68f11a56a3c46a99 *tests/segmentByPairedPSCBS.R 6ab8b5697dafb6f0180984df4bf3f5b2 *vignettes/CBS.tex.rsp 2913162b7b2b3081c55f3c36cc43f950 *vignettes/PSCBS.bib e8d89580cd99dc842d45eb2368ea9bed *vignettes/PairedPSCBS.tex.rsp f3907cf5bef1f44c8c15558e94274a18 *vignettes/natbib.bst PSCBS/inst/0000755000176200001440000000000014564175017012113 5ustar liggesusersPSCBS/inst/templates/0000755000176200001440000000000014564051545014110 5ustar liggesusersPSCBS/inst/templates/rsp/0000755000176200001440000000000014564051545014714 5ustar liggesusersPSCBS/inst/templates/rsp/bioinformatics-journals-abbr.bib0000644000176200001440000000445714564051545023153 0ustar liggesusers@comment{DESCRIPTION:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Usage: \bibliography{, } Example: \bibliography{bioinformatics-journals-full,hb-at-maths.lth.se} \bibliography{bioinformatics-journals-abbr,hb-at-maths.lth.se} Description: This bib-file should be included as a preamble for the main bib-file containing the actual references. Author: Henrik Bengtsson, Version: See end of file for document history. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Journals % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @STRING{AmStat = {Am. Stat.}} @STRING{AnnStat = {Ann. Statist.}} @STRING{AnalChem = {Anal. Chem.}} @STRING{ApplStat = {Appl. Statist.}} @STRING{Bioinformatics = {Bioinformatics}} @STRING{Biometrika = {Biometrika}} @STRING{BJMSP = {Br. J. Math. Stat. Psychol.}} @STRING{Blood = {Blood, Am Soc Hematol}} @STRING{BMCBioinfo = {BMC Bioinfo.}} @STRING{BMCBiotech = {BMC Biotech.}} @STRING{BMCGen = {BMC Genom.}} @STRING{CancerRes = {Cancer Res.}} @STRING{ExpCellRes = {Exp. Cell Res.}} @STRING{GenBio = {Genome Bio.}} @STRING{GenRes = {Genome Res.}} @STRING{JASA = {J. Am. Stat. Assoc.}} @STRING{JBioOpt = {J. Biomed. Optics}} @STRING{JCompBio = {J. Comput. Biol.}} @STRING{JCompGraphStat = {J. Comp. Graph. Stat.}} @STRING{JRSS = {J. Royal Stat. Soc.}} @STRING{JSPI = {J. Stat. Plan. Inf.}} @STRING{Microcirc = {Microcirc.}} @STRING{NAR = {Nucleic Acids Res.}} @STRING{NatBiotech = {Nature Biotechnol.}} @STRING{NatGen = {Nature Genet.}} @STRING{NatMed = {Nature Med.}} @STRING{NatMet = {Nature Met.}} @STRING{PNAS = {Proc. Natl. Acad. Sci. USA}} @STRING{SAGMB = {Stat. App. Gen. Mol. Bio.}} @STRING{Sankhya = {Sankhya}} @STRING{StatInf = {Stat. Inf.}} @STRING{StatSci = {Stat. Sci.}} @STRING{StatSin = {Stat. Sin.}} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % Institutions % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @STRING{MatStatLU = {Centre for Math. Sci., Lund Univ.}} @comment{HISTORY:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% o 2004-12-07 Created. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%} PSCBS/inst/templates/rsp/includes/0000755000176200001440000000000014564051545016522 5ustar liggesusersPSCBS/inst/templates/rsp/includes/sessionInfo.tex.rsp0000644000176200001440000000065214564051545022351 0ustar liggesusers<%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== SESSION INFORMATION ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> \section*{Session information} <%=paste(toLatex(sessionInfo()), collapse="\n")%> This report was generated via \code{report(fit)} which utilizes the R.rsp package. The template for this report was created by Henrik Bengtsson and last updated on March 21, 2013. PSCBS/inst/templates/rsp/includes/pscnSegmentationTracks.tex.rsp0000644000176200001440000000331214564051545024537 0ustar liggesusers% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % PARENT-SPECIFIC COPY-NUMBER SEGMENTATION TRACKS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% pscnSegmentationTracks <- function(fit, ...) { %> \clearpage \subsection{Parent-specific copy-number segmentation tracks} \label{sec:PSCNSegmentationTracks} <% chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} <% for (track in c("tcn", "dh", "tcn,c1,c2")) { %> <%-- <% for (track in c("tcn*", "betaT", "betaTN*", "dh*", "tcn*,c1*,c2-*")) { %> --%> \resizebox{\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, fitClass, gsub("[*-]", "", track), getChecksum(fit)); toPNG(name=sampleNameEscDots, tags=tags, width=1024, aspectRatio=0.25, { par(mar=c(1.3,4,0.7,1.2)+0.1, cex=1.5); plotTracksManyChromosomes(fit, tracks=track, knownSegment=TRUE, Clim=Clim); }); }%>}% }% \\ <% } # for (track ...) %> \end{center} \caption{ Results of <%=fitClassLbl%> segmentation on <%=chromosomesH%> projected onto TCN (top), DH (middle), as well as TCN, $C_1$ and $C_2$ (bottom). PSCBS segmentation is always done on TCN and DH data. There are in total $S=<%=nbrOfSegments(fit, splitters=FALSE)%>$ segments. } \label{fig:PairedPSCBS} \end{figure} <% } # pscnSegmentationTracks() %> PSCBS/inst/templates/rsp/includes/reportHeader.tex.rsp0000644000176200001440000000570514564051545022502 0ustar liggesusers<%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== REPORT HEADER ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> <%--------------------------------------------------------------------- Usage: Add reportHeaderSetup(fit) to the LaTeX preamble ---------------------------------------------------------------------%> <% reportHeaderSetup <- function(fit, sampleName=sampleName(fit), studyName, dataSet, ...) { %> <% getChecksum <- R.cache::getChecksum; fitClass <- class(fit)[1L]; sampleName <- Arguments$getCharacter(sampleName); sampleNameEscDots <- gsub(".", "_", sampleName, fixed=TRUE); %> % Header contain project and sample metadata \usepackage{fancyhdr} \setlength{\headheight}{40pt} \pagestyle{fancy}{\fancyhf{}} % Custom header (specified below) \renewcommand{\headrulewidth}{0pt} % Drop horizontal ruler \fancyfoot{} % clear all footer fields \newcommand{\chrLabel}[1]{WG\xspace} \fancyhead[C]{% \small \raggedright %% \textbf{Study:Dataset:Sample}: <%=toLatex(studyName)%>:<%=toLatex(dataSet)%>:<%=toLatex(sampleName)%>:\chrLabel \hfill \thepage/\pageref{LastPage}\\ %% \textbf{Compiled} & <%=Sys.Date()%> \centering \resizebox{\headwidth}{!}{\includegraphics{<%= tags <- c("wg", fitClass, "tcn,c1,c2", getChecksum(fit)); toPNG(name=sampleNameEscDots, tags=tags, width=1024, aspectRatio=0.07, { par(oma=c(0,0,0,0), mar=c(0,0,0,0)); plotTracks(fit, tracks="tcn,c1,c2", scatter=NULL, calls=NULL, callTresholds=FALSE, lwd=5, Clim=c(0,4), xlab="", ylab="", subplots=FALSE); })%>}}% %% \vspace{0.2ex} %% \hline } <% } # reportHeaderSetup() %> <%--------------------------------------------------------------------- Usage: Add reportHeaderUpdate(fit) whenever subsetting 'fit' ---------------------------------------------------------------------%> <% reportHeaderUpdate <- function(fit, ...) { %> <% chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \renewcommand{\chrLabel}{<%=chrsTags%>} <% } # reportHeaderUpdate() %> <%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== HISTORY: 2012-11-03 o Replaced deprecated ggplot2 functions. 2012-09-16 o Added easy report configuration at the very top. 2012-05-30 o Removed ggplot2 warnings on missing values. 2012-02-28 o Now it is possible to turn off usage of the alpha channel in plots, e.g. setOption("PSCBS::report/useAlphaChannel", FALSE). This is useful for if the alpha channel is not supported. 2012-02-27 o First successful run with real data. o Now all of the report uses a PairedPSCBS object. o Now making more use of templates. o Now passing a data frame to segmentByPairedCBS(). 2011-09-30 o Created. ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> PSCBS/inst/templates/rsp/includes/reportSetupMacros.tex.rsp0000644000176200001440000000231514564051545023551 0ustar liggesusers<%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== LATEX SETTINGS ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> <%-------------------------------------------------------------------- LaTeX commands --------------------------------------------------------------------%> \newcommand{\code}[1]{\texttt{#1}\xspace} <%-------------------------------------------------------------------- LaTeX acronyms --------------------------------------------------------------------%> \newcommand{\TCN}{TCN\xspace} \newcommand{\BAF}{\BAF\xspace} \newcommand{\BAFN}{BAF$_{N}$\xspace} \newcommand{\BAFT}{BAF$_{T}$\xspace} \newcommand{\BAFTN}{BAF$^*_{T}$\xspace} <%-------------------------------------------------------------------- R-to-LaTeX symbols --------------------------------------------------------------------%> <% symbolList <- list( CT = "$C_{T}$", tcn = "$\\bar{C_{T}}$", betaN = "$\\beta_{N}$", betaT = "$\\beta_{T}$", betaTN = "$\\tilde{\\beta}_{T}$", dh = "$\\bar{\\rho}$", rho = "$\\rho$", rhoN = "$\\tilde{\\rho}$", c1 = "$C_{1}$", c2 = "$C_{2}$", c1N = "$\\tilde{C}_{1}$", c2N = "$\\tilde{C}_{2}$" ); %> PSCBS/inst/templates/rsp/includes/pscnSegmentationTransitions.tex.rsp0000644000176200001440000000353314564051545025632 0ustar liggesusers% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % PARENT-SPECIFIC COPY-NUMBER TRANSITIONS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% pscnSegmentationTransitions <- function(fit, ...) { %> \clearpage \subsection{Parent-specific copy-number transitions} \label{sec:PSCNSegmentationTransitions} <% # plotC1C2Grid() require("aroma.cn") || throw("Package not loaded: aroma.cn"); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} \resizebox{0.6\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, fitClass, "C1C2", getChecksum(fit)); toPNG(name=sampleNameEscDots, tags=tags, width=640, aspectRatio=1, par=list(mar=c(4,4,1,1)+0.1, cex=2), { plotC1C2Grid(fit, Clim=ClimX); linesC1C2(fit, lwd=2); }, force=FALSE); }%>}% }% \end{center} \caption{ A graph representation of the minor ($C_1$) and major ($C_2$) copy-number segmentation on <%=chromosomesH%>, where the nodes represent ($S=<%=nbrOfSegments(fit, splitters=FALSE)%>$) segments and the lines change points. The size of a node reflects the length of the corresponding segment. The marginal distributions (gray curves) of the minor and the major CNs are projected onto the horizontal and vertical axis, respectively. To easy a visual comparison, the latter is also projected onto the horizontal axis (light blue curve). } \label{fig:C1C2} \end{figure} <% } # pscnSegmentationTransitions() %> PSCBS/inst/templates/rsp/includes/signalDensities.tex.rsp0000644000176200001440000000771114564051545023202 0ustar liggesusers% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SIGNAL DENSITIES % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% signalDensities <- function(fit, fields=c("CT", "betaN", "betaT", "rho", "c1", "c2", "betaTN", "rhoN", "c1N", "c2N"), ...) { %> <% # Argument 'fields': fields <- match.arg(fields, several.ok=TRUE); %> \clearpage \section{Signal densities} \label{sec:SignalDensities} <% require("ggplot2") || throw("Package not loaded: ggplot2"); data <- getLocusData(fit, fields="full"); unknown <- setdiff(fields, names(data)); if (length(unknown) > 0L) { throw("Unknown locus data fields: ", paste(sQuote(unknown), collapse=", ")); } params <- fit$params; chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> <% if (nrow(data) >= 2L) { %> \begin{figure}[htbp] \begin{center} <% for (ff in fields) { %> <% symbol <- symbolList[[ff]]; panelTitle <- switch(ff, CT="\\TCN", betaN="\\BAFN", betaT="\\BAFT", betaTN="\\BAFTN", "NNN"); lim <- switch(ff, CT=ClimX, c1=ClimX, c2=ClimX, c1N=ClimX, c2N=ClimX, BlimX); %> \raisebox{4ex}{<%=symbol%>} <% for (by in c("all", "muN")) { %> <% tags <- c(chrsTags, by, ff); %> \resizebox{0.33\textwidth}{!}{% \includegraphics{<%={ toPNG(name=sampleNameEscDots, tags=tags, width=640, aspectRatio=0.3, { gg <- ggplot(data, aes_string(x=ff, y="..count..")); if (by == "all") { if (ff == "CT" && any(!data$isSNP, na.rm=TRUE)) { gg <- gg + aes(group=type, colour=type); } h <- NULL; if (ff == "rho") { h <- params$deltaAB; label <- expression(Delta[AB]); col <- "orange"; } else if (ff == "c1") { h <- params$deltaLowC1; label <- expression(Delta[LOH]); col <- "blue"; } if (!is.null(h)) { gg <- gg + geom_vline(xintercept=h, colour=col, size=1.5); } } else if (by == "muN") { gg <- gg + aes_string(group="muNx", colour="muNx"); gg <- gg + scale_color_manual(values=muNCols); } # See https://github.com/hadley/ggplot2/wiki/Legend-Attributes gg <- gg + theme(legend.position=c(0.97, 0.75), legend.justification = 1, legend.direction="vertical", legend.title=element_text(size=0), legend.text=element_text(size=16)); gg <- gg + geom_density(size=2, na.rm=TRUE); gg <- gg + xlab(NULL); gg <- gg + ylab(NULL); gg <- gg + xlim(lim); gg <- gg + theme(axis.text.x=xnbrOpts, axis.text.y=ynbrOpts); gg <- gg + theme(axis.title.x=xlabOpts, axis.title.y=ylabOpts); suppressWarnings({ print(gg); }); }, force=FALSE); }%>}% }% <% } # for (by ...) %> \\ % <% } # for (ff ...) %> \end{center} \caption{ Density estimates of \emph{locus-level} signals on <%=chromosomesH%> with and without TumorBoost normalization. The signals in the left and right panels are without and with stratification on genotype calls (AA and BB in gray and AB in black). If there are no allelic imbalances in the tumor, then the density of the tumor should be similar to a normal sample, that is, three bands of signals corresponding to the three genotype groups. } \label{fig:SignalDensity} \end{figure} <% } else { %> NOTE: No density plots produced for <%= chromosomesH %> because there are fewer than two loci. <% } ## if (nrow(data) >= 2L) %> <% } # signalDensities() %> PSCBS/inst/templates/rsp/includes/summaryOfAnnotationAndGenotypeCalls.tex.rsp0000644000176200001440000000340514564051545027203 0ustar liggesusers% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SUMMARY ANNOTATION AND GENOTYPE CALLS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% summaryOfAnnotationAndGenotypeCalls <- function(fit, ...) { %> \subsection{Summary of annotation and genotype calls} <% data <- getLocusData(fit, fields="full"); nbrOfLoci <- nrow(data); nbrOfSNPs <- sum(data$isSNP, na.rm=TRUE); nbrOfHets <- sum(data$isHet, na.rm=TRUE); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> <% reportHeaderUpdate(fit) %> \begin{table}[htbp] \begin{center} \begin{tabular}{lrr} Description & Count & Fraction \\ \hline Number of loci & <%=nbrOfLoci%> & 100.00\% \\ Number of SNPs & <%=nbrOfSNPs%> & <%=sprintf("%.2f", 100*nbrOfSNPs/nbrOfLoci)%>\% \\ Number of heterozygous SNPs* & <%=nbrOfHets%> & <%=sprintf("%.2f", 100*nbrOfHets/nbrOfSNPs)%>\% \\ Number of non-polymorphic loci & <%=nbrOfLoci-nbrOfSNPs%> & <%=sprintf("%.2f", 100*(1-nbrOfSNPs/nbrOfLoci))%>\% \\ Number of chromosomes & <%=nbrOfChromosomes%> & - \\ \end{tabular} \caption{ Summary of the locus-level data on <%=chromosomesH%>. A locus is considered to be a SNP if it has either a non-missing BAF for the tumor. (*) Heterozygous calls are based on (whole-genome) naive calling by thresholding \emph{tumor} DHs. } \label{tbl:LocusStats} \end{center} \end{table} <% } # summaryOfAnnotationAndGenotypeCalls() %> PSCBS/inst/templates/rsp/includes/references.tex.rsp0000644000176200001440000000040414564051545022166 0ustar liggesusers<%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== REFERENCES ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> \bibliography{bioinformatics-journals-abbr,PSCBS} %\bibliographystyle{plain} \bibliographystyle{natbib} PSCBS/inst/templates/rsp/includes/levelDensities.tex.rsp0000644000176200001440000000663214564051545023035 0ustar liggesusers% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % LEVEL DENSITIES % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% levelDensities <- function(fit, fields=c("tcn", "dh", "c1", "c2"), ...) { %> <% # Argument 'fields': fields <- match.arg(fields, several.ok=TRUE); %> \clearpage \section{Level densities} \label{sec:LevelDensities} <% require("ggplot2") || throw("Package not loaded: ggplot2"); data <- getSegments(fit); unknown <- setdiff(fields, gsub("Mean$", "", names(data))); if (length(unknown) > 0L) { throw("Unknown locus data fields: ", paste(sQuote(unknown), collapse=", ")); } w <- sqrt(data$dhNbrOfLoci) w <- w / sum(w, na.rm=TRUE); data <- cbind(data, weight=w); params <- fit$params; chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} <% for (ff in fields) { %> <% symbol <- symbolList[[ff]]; panelTitle <- switch(ff, tcn="\\TCN", "NNN"); lim <- switch(ff, tcn=ClimX, CT=ClimX, c1=ClimX, c2=ClimX, c1N=ClimX, c2N=ClimX, BlimX); column <- sprintf("%sMean", ff); %> \raisebox{4ex}{<%=symbol%>} <% tags <- c(chrsTags, "segments", ff); %> \resizebox{0.33\textwidth}{!}{% \includegraphics{<%={ toPNG(name=sampleNameEscDots, tags=tags, width=640, aspectRatio=0.3, { #### gg <- ggplot(dataT, aes_string(x=column, weights="weight", y="..count..")); gg <- ggplot(data, aes_string(x=column, weight="weight", y="..count..")); h <- NULL; if (ff == "tcn") { h <- params$ntcnRange; ## label <- expression(%+-%*Delta[CN]); col <- "purple"; } else if (ff == "dh") { h <- params$deltaAB; label <- expression(Delta[AB]); col <- "orange"; } else if (ff == "c1") { h <- params$deltaLowC1; label <- expression(Delta[LOH]); col <- "blue"; } if (!is.null(h)) { gg <- gg + geom_vline(xintercept=h, colour=col, size=1.5); } # See https://github.com/hadley/ggplot2/wiki/Legend-Attributes gg <- gg + theme(legend.position=c(0.97, 0.75), legend.justification = 1, legend.direction="vertical", legend.title=element_text(size=0), legend.text=element_text(size=16)); gg <- gg + geom_density(size=2, na.rm=TRUE); gg <- gg + xlab(NULL); gg <- gg + ylab(NULL); gg <- gg + xlim(lim); gg <- gg + theme(axis.text.x=xnbrOpts, axis.text.y=ynbrOpts); gg <- gg + theme(axis.title.x=xlabOpts, axis.title.y=ylabOpts); suppressWarnings({ print(gg); }); }) # toPNG() }%>}% }% \\ % <% } # for (ff ...) %> \end{center} \caption{ Density estimates of (weighted) \emph{segment-level} signals on <%=chromosomesH%> where weights are proportional to the square-root of the number of heterozygous SNPs in each segment. } \label{fig:LevelDensity} \end{figure} <% } # levelDensities() %> PSCBS/inst/templates/rsp/includes/reportSetupGraphics.tex.rsp0000644000176200001440000000405714564051545024072 0ustar liggesusers<%--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== GRAPHICS SETTINGS ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--%> <%-------------------------------------------------------------------- Where to save images files --------------------------------------------------------------------%> \usepackage{graphicx} <% setOption <- R.utils::setOption; # Don't assume 'R.utils' is attached. figPath <- getOption("devEval/args/path", "figures/"); oFigPath <- setOption("devEval/args/path", figPath); on.exit({ setOption("devEval/args/path", oFigPath); }, add=TRUE); oPar <- setOption("devNew/args/par", list(lwd=2)); on.exit({ setOption("devNew/args/par", oPar); }, add=TRUE); %> % Figure paths \graphicspath{{<%=figPath%>/} {../<%=figPath%>/}} <%-------------------------------------------------------------------- Required packages --------------------------------------------------------------------%> <% require("ggplot2") || throw("Package not loaded: ggplot2"); %> <%-------------------------------------------------------------------- Color schemes --------------------------------------------------------------------%> <% muNCols <- c("#999999", "#000000", "#999999"); # ggplot2 options xnbrOpts <- element_text(colour="grey50", size=20, hjust=1, lineheight=0.9); ynbrOpts <- element_text(colour="grey50", size=20, vjust=1, lineheight=0.9); xlabOpts <- element_text(colour="black", size=28, hjust=0.5); ylabOpts <- element_text(colour="black", size=28, vjust=0.5, angle=90); %> <%-------------------------------------------------------------------- Figure label schemes --------------------------------------------------------------------%> <% labList <- list( CT = expression(C[T]), betaN = expression(beta[N]), betaT = expression(beta[T]), betaTN = expression(tilde(beta)[T]), rho = expression(rho), rhoN = expression(tilde(rho)), c1 = expression(C[1]), c2 = expression(C[2]), c1N = expression(tilde(C)[1]), c2N = expression(tilde(C)[2]) ); %> PSCBS/inst/templates/rsp/CBS,report.tex.rsp0000644000176200001440000003364314564051545020171 0ustar liggesusers%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Authors: Henrik Bengtsson % Created on: 2011-09-30 % Last updated: 2012-02-27 % % Usage: (compiles *.tex.rsp => tex.rsp.R => *.tex => *.dvi) % R.rsp::rsp("CBS.tex.rsp", path="reports,rsp/"); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <% library("PSCBS"); library("R.devices"); library("R.cache"); library("R.utils"); # setOption() stopifnot(exists("rspArgs", mode="list")); %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % LATEX STARTUP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[twoside,12pt]{report} \usepackage{fancyvrb} \usepackage{xspace} \usepackage{subfigure} % \subfigure[]{} \usepackage[round]{natbib} \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.8in} \addtolength{\textheight}{1.3in} \renewcommand{\topfraction}{1.00} % max fraction of floats at top \renewcommand{\bottomfraction}{1.0} % max fraction of floats at bottom \renewcommand{\textfraction}{0.00} \usepackage{fancyhdr} \pagestyle{fancy} %% \fancyhead{} % clear all header fields %% \fancyfoot{} % clear all footer fields %% \fancyhead[LE,RO]{\slshape \rightmark} %% \fancyfoot[C]{\thepage} \fancyhf{} \fancyhead[LE,RO]{\thepage} \fancyhead[RE]{\textit{\nouppercase{\leftmark}}} \fancyhead[LO]{\textit{\nouppercase{\rightmark}}} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\TCN}{TCN\xspace} \newcommand{\BAF}{\BAF\xspace} \newcommand{\BAFN}{BAF$_{N}$\xspace} \newcommand{\BAFT}{BAF$_{T}$\xspace} \newcommand{\BAFTN}{BAF$^*_{T}$\xspace} <% cbsReport <- function(fit, sampleName=NULL, dataSet=NULL, studyName="CBS", Clim=c(0,4), reportPath=file.path("reports", studyName), figPath=file.path(reportPath, "figures"), ..., figForce=FALSE) { %> <% # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': fit <- Arguments$getInstanceOf(fit, "CBS"); # Argument 'sampleName': if (is.null(sampleName)) { sampleName <- sampleName(fit); } sampleName <- Arguments$getCharacter(sampleName); # Argument 'dataSet': if (!is.null(dataSet)) { dataSet <- Arguments$getCharacter(dataSet); } # Argument 'studyName': studyName <- Arguments$getCharacter(studyName); # Argument 'reportPath': reportPath <- Arguments$getWritablePath(reportPath); # Argument 'figPath': figPath <- Arguments$getWritablePath(figPath); # Argument 'figForce': figForce <- Arguments$getLogical(figForce); %> <% oFigPath <- setOption("devEval/args/path", figPath); on.exit({ setOption("devEval/args/path", oFigPath); }, add=TRUE); oPar <- setOption("devNew/args/par", list(lwd=2)); on.exit({ setOption("devNew/args/par", oPar); }, add=TRUE); %> <% studyLbl <- sprintf("Study: %s\\\\", toLatex(studyName)); if (!is.null(dataSet)) { dataSetLbl <- sprintf("Data set: %s\\\\", toLatex(dataSet)); } else { dataSetLbl <- ""; } %> \title{CBS Report:\\<%=studyLbl%><%=dataSetLbl%>Sample: <%=toLatex(sampleName)%>} \author{Report template by Henrik Bengtsson} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % GRAPHICS SETTINGS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% setOption("devEval/args/force", figForce); %> \usepackage{graphicx} \graphicspath{{<%=figPath%>/} {../<%=figPath%>/}} <% # GGPLOT2 SETTINGS ClimX <- Clim + c(-1,1)*diff(Clim)*0.08; muNCols <- c("#999999", "#000000", "#999999"); require("ggplot2") || throw("Package not loaded: ggplot2"); xnbrOpts <- element_text(colour="grey50", size=20, hjust=1, lineheight=0.9); ynbrOpts <- element_text(colour="grey50", size=20, vjust=1, lineheight=0.9); xlabOpts <- element_text(colour="black", size=28, hjust=0.5); ylabOpts <- element_text(colour="black", size=28, vjust=0.5, angle=90); labList <- list( CT = expression(C[T]), betaN = expression(beta[N]), betaT = expression(beta[T]), betaTN = expression(tilde(beta)[T]), rho = expression(rho), rhoN = expression(tilde(rho)), c1 = expression(C[1]), c2 = expression(C[2]), c1N = expression(tilde(C)[1]), c2N = expression(tilde(C)[2]) ); symbolList <- list( CT = "$C_{T}$", betaN = "$\\beta_{N}$", betaT = "$\\beta_{T}$", betaTN = "$\\tilde{\\beta}_{T}$", rho = "$\\rho$", rhoN = "$\\tilde{\\rho}$", c1 = "$C_{1}$", c2 = "$C_{2}$", c1N = "$\\tilde{C}_{1}$", c2N = "$\\tilde{C}_{2}$" ); %> \begin{document} \maketitle \begin{abstract} This is a quality control (QC) report on the sample '<%=toLatex(sampleName)%>' in data set '<%=toLatex(dataSet)%>'. \end{abstract} \tableofcontents \clearpage %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DATA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Introduction} \chapter{Data} \label{ch:Data} \section{Samples} \section{Microarray data} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % METHODS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Methods} \label{ch:Methods} \section{Segmentation} \label{sec:Segmentation} We use the CBS segmentation method~\citep{OlshenA_etal_2007} to partion the genome into segments such that all signals in a particular segment are likely to originate from the same underlying total copy-number state. <%-- \section{Post-segmentation pruning} \label{sec:PostSegmentationPruning} <% fitP <- pruneByHClust(fit, h=0.25); #print(fitP); %> --%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % WHOLE-GENOME RESULTS % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \chapter{Whole-Genome Results} \label{ch:WholeGenomeResults} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SUMMARY ANNOTATION % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% summaryOfAnnotation <- function(fit, ...) { %> \section{Summary of annotation} <% data <- getLocusData(fit, fields="full"); nbrOfLoci <- nrow(data); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{table}[htbp] \begin{center} \begin{tabular}{lrr} Description & Count & Fraction \\ \hline Number of loci & <%=nbrOfLoci%> & 100.00\% \\ Number of chromosomes & <%=nbrOfChromosomes%> & - \\ \end{tabular} \caption{ Summary of the locus-level data on <%=chromosomesH%>. } \label{tbl:LocusStats} \end{center} \end{table} <% } # summaryOfAnnotation() %> <%=summaryOfAnnotation(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SIGNAL DENSITIES % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% signalDensities <- function(fit, ...) { %> \clearpage \section{Signal densities} \label{sec:SignalDensities} <% require("ggplot2") || throw("Package not loaded: ggplot2"); data <- getLocusData(fit, fields="full"); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> <% if (nrow(data) >= 2L) { %> \begin{figure}[htbp] \begin{center} <% fields <- c("y"); %> <% for (ff in fields) { %> <% symbol <- symbolList[[ff]]; panelTitle <- switch(ff, y="\\TCN", CT="\\TCN", betaN="\\BAFN", betaT="\\BAFT", betaTN="\\BAFTN", "NNN"); lim <- switch(ff, y=ClimX, CT=ClimX, c1=ClimX, c2=ClimX, c1N=ClimX, c2N=ClimX); %> \raisebox{4ex}{<%=symbol%>} <% for (by in c("all")) { %> <% tags <- c(chrsTags, by, ff); %> \resizebox{0.33\textwidth}{!}{% \includegraphics{<%={ toPNG(name=sampleName, tags=tags, width=640, aspectRatio=0.3, { gg <- ggplot(data, aes_string(x=ff, y="..count..")); if (by == "all") { if (ff == "CT" && any(!data$isSNP, na.rm=TRUE)) { gg <- gg + aes(group=type, colour=type); } } # See https://github.com/hadley/ggplot2/wiki/Legend-Attributes gg <- gg + theme(legend.position=c(0.97, 0.75), legend.justification = 1, legend.direction="vertical", legend.title=element_text(size=0), legend.text=element_text(size=16)); gg <- gg + geom_density(size=2, na.rm=TRUE); gg <- gg + xlab(NULL); gg <- gg + ylab(NULL); gg <- gg + xlim(lim); gg <- gg + theme(axis.text.x=xnbrOpts, axis.text.y=ynbrOpts); gg <- gg + theme(axis.title.x=xlabOpts, axis.title.y=ylabOpts); suppressWarnings({ print(gg); }); }, force=FALSE); }%>}% }% <% } # for (by ...) %> \\ % <% } # for (ff ...) %> \end{center} \caption{ Density estimates of locus-level signals on <%=chromosomesH%>. } \label{fig:SignalDensity} \end{figure} <% } else { %> NOTE: No density plots produced for <%= chromosomesH %> because there are fewer than two loci. <% } ## if (nrow(data) >= 2L) %> <% } # signalDensities() %> <%=signalDensities(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % TOTAL COPY-NUMBER SEGMENTATION TRACKS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% tcnSegmentationTracks <- function(fit, ...) { %> \clearpage \section{Total copy-number segmentation tracks} \label{sec:TCNSegmentationTracks} <% chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} <% for (track in c("tcn")) { %> \resizebox{\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, "CBS", gsub("[*-]", "", track), getChecksum(fit)); toPNG(name=sampleName, tags=tags, width=1024, aspectRatio=0.25, par=list(mar=c(2.8,4,1,1)+0.1, cex=1.5), { plotTracks(fit, tracks=track, lwd=5, Clim=Clim); }, force=FALSE); }%>}% }% \\ <% } # for (track ...) %> \end{center} \caption{ Results of CBS segmentation on <%=chromosomesH%> projected onto TCN. There are in total $S=<%=nbrOfSegments(fit, splitters=FALSE)%>$ segments. } \label{fig:CBS} \end{figure} <% } # tcnSegmentationTracks() %> <%=tcnSegmentationTracks(fit)%> % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = <% if (nbrOfChromosomes(fit) > 1) { %> <% for (chr in getChromosomes(fit)) { %> \chapter{Chromosome <%=chr%> Results} \label{sec:Chromosome<%=chr%>Results} <% fitT <- extractChromosome(fit, chromosome=chr); %> <%=summaryOfAnnotation(fitT)%> <%=signalDensities(fitT)%> <%=tcnSegmentationTracks(fitT)%> <% } # for (chr ...) %> <% } # if (nbrOfChromosomes(fit) > 1) %> <%-- % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: WHOLE-GENOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \section{Hierarchical pruning} \label{sec:HierarchicalPruning} % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % REFERENCES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \clearpage \bibliography{bioinformatics-journals-abbr,PSCBS} %\bibliographystyle{plain} \bibliographystyle{natbib} \appendix \chapter{Appendix} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Session information %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \clearpage \section*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using the R.rsp package. The template for this report was created by Henrik Bengtsson. \end{document} <% } # cbsReport() %> <%=do.call("cbsReport", args=rspArgs)%> <% ###################################################################### # RSP CLOSEUP ###################################################################### # Function for renaming report afterwards assign("renamePDF", function() { filename <- sprintf("%s,report.pdf", studyName); pathname <- file.path(reportPath, filename); file.rename("report.pdf", pathname); }, envir=globalenv()); %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % HISTORY: % 2013-10-18 % o BUG FIX: Report template assumed that R.utils was attached. % 2012-11-03 % o Replaced deprecated ggplot2 functions. % 2012-02-28 % o Now it is possible to turn off usage of the alpha channel in % plots, e.g. setOption("PSCBS::report/useAlphaChannel", FALSE). % This is useful for if the alpha channel is not supported. % 2012-02-27 % o First successful run with real data. % o Now all of the report uses a PairedPSCBS object. % o Now making more use of templates. % o Now passing a data frame to segmentByPairedCBS(). % 2011-09-30 % o Created. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ���������������������������������������������������������������������������������������������PSCBS/inst/templates/rsp/natbib.bst�����������������������������������������������������������������0000644�0001762�0000144�00000063160�14564051545�016673� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%% %% This is file `natbib.bst', generated %% on <1994/9/16> with the docstrip utility (2.2h). %% %% The original source files were: %% %% genbst.mbs (with options: `ay,nat,seq-lab,nm-rev,dt-beg,yr-par,vol-bf, %% volp-com,etal-it') %% ---------------------------------------- %% *** Personal bib style, PWD *** %% %% (Here are the specifications of the source file) %% \ProvidesFile{genbst.mbs}[1994/09/16 1.5 (PWD)] %% For use with BibTeX version 0.99a or later %% and with LaTeX 2.09 or 2e %%------------------------------------------------------------------- %% NOTICE: %% This file may be used for non-profit purposes. %% It may not be distributed in exchange for money, %% other than distribution costs. %% %% The author provides it `as is' and does not guarantee it in any way. %% %% Copyright (C) 1994 Patrick W. Daly %% Max-Planck-Institut f\"ur Aeronomie %% Postfach 20 %% D-37189 Katlenburg-Lindau %% Germany %% %% E-mail: %% SPAN-- nsp::linmpi::daly (note nsp also known as ecd1) %% Internet-- daly@linmpi.dnet.gwdg.de %%----------------------------------------------------------- %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) \# %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %%--------------------------------------------------------------------- % This is an author-year citation style bibliography. As such, it is % non-standard LaTeX, and requires a special package file to function properly. % Such a package is natbib.sty by Patrick W. Daly % The form of the \bibitem entries is % \bibitem[Jones et al.(1990)]{key}... % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... % The essential feature is that the label (the part in brackets) consists % of the author names, as they should appear in the citation, with the year % in parentheses following. There must be no space before the opening % parenthesis! % With natbib v5.3, a full list of authors may also follow the year. % In natbib.sty, it is possible to define the type of enclosures that is % really wanted (brackets or parentheses), but in either case, there must % be parentheses in the label. % The \cite command functions as follows: % \cite{key} ==>> Jones et al. (1990) % \cite[]{key} ==>> (Jones et al., 1990) % \cite[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) % \cite[e.g.][]{key} ==>> (e.g. Jones et al., 1990) % \cite[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) % \citeauthor{key} Jones et al. % \citefullauthor{key} Jones, Baker, and Smith % \citeyear{key} 1990 %%--------------------------------------------------------------------- ENTRY { address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type volume year } {} { label extra.label sort.label } INTEGERS { output.state before.all mid.sentence after.sentence after.block } FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = { ", " * write$ } { output.state after.block = { add.period$ write$ newline$ "\newblock " write$ } { output.state before.all = 'write$ { add.period$ " " * write$ } if$ } if$ mid.sentence 'output.state := } if$ s } FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } FUNCTION {output.check} { 't := duplicate$ empty$ { pop$ "empty " t * " in " * cite$ * warning$ } 'output.nonnull if$ } FUNCTION {fin.entry} { add.period$ write$ newline$ } FUNCTION {new.block} { output.state before.all = 'skip$ { after.block 'output.state := } if$ } FUNCTION {new.sentence} { output.state after.block = 'skip$ { output.state before.all = 'skip$ { after.sentence 'output.state := } if$ } if$ } FUNCTION {not} { { #0 } { #1 } if$ } FUNCTION {and} { 'skip$ { pop$ #0 } if$ } FUNCTION {or} { { pop$ #1 } 'skip$ if$ } FUNCTION {non.stop} { duplicate$ "}" * add.period$ #-1 #1 substring$ "." = } FUNCTION {new.block.checkb} { empty$ swap$ empty$ and 'skip$ 'new.block if$ } FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } { "{\em " swap$ * non.stop { "\/}" * } { "}" * } if$ } if$ } FUNCTION {bolden} { duplicate$ empty$ { pop$ "" } { "{\bf " swap$ * "}" * } if$ } INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.names.ed} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {format.key} { empty$ { key field.or.null } { "" } if$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } FUNCTION {format.editors} { editor empty$ { "" } { editor format.names editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.in.editors} { editor empty$ { "" } { editor format.names.ed editor num.names$ #1 > { ", editors" * } { ", editor" * } if$ } if$ } FUNCTION {format.title} { title empty$ { "" } { title "t" change.case$ } if$ } FUNCTION {format.full.names} {'s := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}" format.name$ 't := nameptr #1 > { namesleft #1 > { ", " * t * } { numnames #2 > { "," * } 'skip$ if$ t "others" = { " " * "et~al." emphasize * } { " and " * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {author.editor.key.full} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } { author format.full.names } if$ } FUNCTION {author.key.full} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.full.names } if$ } FUNCTION {editor.key.full} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.full.names } if$ } FUNCTION {make.full.names} { type$ "book" = type$ "inbook" = or 'author.editor.key.full { type$ "proceedings" = 'editor.key.full 'author.key.full if$ } if$ } FUNCTION {output.bibitem} { newline$ "\bibitem[" write$ label write$ ")" make.full.names * "]{" * write$ cite$ write$ "}" write$ newline$ "" before.all 'output.state := } FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = { t #1 #2 substring$ "--" = not { "--" * t #2 global.max$ substring$ 't := } { { t #1 #1 substring$ "-" = } { "-" * t #2 global.max$ substring$ 't := } while$ } if$ } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } if$ } while$ } FUNCTION {word.in} { "In " } FUNCTION {format.date} { year duplicate$ empty$ { "empty year in " cite$ * "; set to ????" * warning$ pop$ "????" } 'skip$ if$ before.all 'output.state := " (" swap$ * extra.label * ")" * } FUNCTION {format.btitle} { title emphasize } FUNCTION {tie.or.space.connect} { duplicate$ text.length$ #3 < { "~" } { " " } if$ swap$ * * } FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } FUNCTION {format.bvolume} { volume empty$ { "" } { "volume" volume tie.or.space.connect series empty$ 'skip$ { " of " * series emphasize * } if$ "volume and number" number either.or.check } if$ } FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { output.state mid.sentence = { "number" } { "Number" } if$ number tie.or.space.connect series empty$ { "there's a number but no series in " cite$ * warning$ } { " in " * series * } if$ } if$ } { "" } if$ } FUNCTION {format.edition} { edition empty$ { "" } { output.state mid.sentence = { edition "l" change.case$ " edition" * } { edition "t" change.case$ " edition" * } if$ } if$ } INTEGERS { multiresult } FUNCTION {multi.page.check} { 't := #0 'multiresult := { multiresult not t empty$ not and } { t #1 #1 substring$ duplicate$ "-" = swap$ duplicate$ "," = swap$ "+" = or or { #1 'multiresult := } { t #2 global.max$ substring$ 't := } if$ } while$ multiresult } FUNCTION {format.pages} { pages empty$ { "" } { pages multi.page.check { "pages" pages n.dashify tie.or.space.connect } { "page" pages tie.or.space.connect } if$ } if$ } FUNCTION {format.vol.num.pages} { volume field.or.null bolden number empty$ 'skip$ { "(" number * ")" * * volume empty$ { "there's a number but no volume in " cite$ * warning$ } 'skip$ if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ format.pages } { ", " * pages n.dashify * } if$ } if$ } FUNCTION {format.chapter.pages} { chapter empty$ 'format.pages { type empty$ { "chapter" } { type "l" change.case$ } if$ chapter tie.or.space.connect pages empty$ 'skip$ { ", " * format.pages * } if$ } if$ } FUNCTION {format.in.ed.booktitle} { booktitle empty$ { "" } { editor empty$ { word.in booktitle emphasize * } { word.in format.in.editors * ", " * booktitle emphasize * } if$ } if$ } FUNCTION {format.thesis.type} { type empty$ 'skip$ { pop$ type "t" change.case$ } if$ } FUNCTION {format.tr.number} { type empty$ { "Technical Report" } 'type if$ number empty$ { "t" change.case$ } { number tie.or.space.connect } if$ } FUNCTION {format.article.crossref} { word.in "\cite{" * crossref * "}" * } FUNCTION {format.book.crossref} { volume empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ word.in } { "Volume" volume tie.or.space.connect " of " * } if$ "\cite{" * crossref * "}" * } FUNCTION {format.incoll.inproc.crossref} { word.in "\cite{" * crossref * "}" * } FUNCTION {article} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { journal emphasize "journal" output.check format.vol.num.pages output } { format.article.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {book} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.date "year" output.check new.block format.btitle "title" output.check crossref missing$ { format.bvolume output new.block format.number.series output new.sentence publisher "publisher" output.check address output } { new.block format.book.crossref output.nonnull } if$ format.edition output new.block note output fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.title "title" output.check new.block howpublished output address output new.block note output fin.entry } FUNCTION {inbook} { output.bibitem author empty$ { format.editors "author and editor" output.check editor format.key output } { format.authors output.nonnull crossref missing$ { "author and editor" editor either.or.check } 'skip$ if$ } if$ format.date "year" output.check new.block format.btitle "title" output.check crossref missing$ { format.bvolume output format.chapter.pages "chapter and pages" output.check new.block format.number.series output new.sentence publisher "publisher" output.check address output } { format.chapter.pages "chapter and pages" output.check new.block format.book.crossref output.nonnull } if$ format.edition output new.block note output fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.chapter.pages output new.sentence publisher "publisher" output.check address output format.edition output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ new.block note output fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block crossref missing$ { format.in.ed.booktitle "booktitle" output.check format.bvolume output format.number.series output format.pages output address output new.sentence organization output publisher output } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ new.block note output fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.btitle "title" output.check organization address new.block.checkb organization output address output format.edition output new.block note output fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.btitle "title" output.check new.block "Master's thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output format.date "year" output.check new.block format.title output new.block howpublished output new.block note output fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.btitle "title" output.check new.block "Ph.D. thesis" format.thesis.type output.nonnull school "school" output.check address output new.block note output fin.entry } FUNCTION {proceedings} { output.bibitem format.editors output editor format.key output format.date "year" output.check new.block format.btitle "title" output.check format.bvolume output format.number.series output address output new.sentence organization output publisher output new.block note output fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block format.tr.number output.nonnull institution "institution" output.check address output new.block note output fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output format.date "year" output.check new.block format.title "title" output.check new.block note "note" output.check fin.entry } FUNCTION {default.type} { misc } MACRO {jan} {"January"} MACRO {feb} {"February"} MACRO {mar} {"March"} MACRO {apr} {"April"} MACRO {may} {"May"} MACRO {jun} {"June"} MACRO {jul} {"July"} MACRO {aug} {"August"} MACRO {sep} {"September"} MACRO {oct} {"October"} MACRO {nov} {"November"} MACRO {dec} {"December"} MACRO {acmcs} {"ACM Computing Surveys"} MACRO {acta} {"Acta Informatica"} MACRO {cacm} {"Communications of the ACM"} MACRO {ibmjrd} {"IBM Journal of Research and Development"} MACRO {ibmsj} {"IBM Systems Journal"} MACRO {ieeese} {"IEEE Transactions on Software Engineering"} MACRO {ieeetc} {"IEEE Transactions on Computers"} MACRO {ieeetcad} {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} MACRO {ipl} {"Information Processing Letters"} MACRO {jacm} {"Journal of the ACM"} MACRO {jcss} {"Journal of Computer and System Sciences"} MACRO {scp} {"Science of Computer Programming"} MACRO {sicomp} {"SIAM Journal on Computing"} MACRO {tocs} {"ACM Transactions on Computer Systems"} MACRO {tods} {"ACM Transactions on Database Systems"} MACRO {tog} {"ACM Transactions on Graphics"} MACRO {toms} {"ACM Transactions on Mathematical Software"} MACRO {toois} {"ACM Transactions on Office Information Systems"} MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} MACRO {tcs} {"Theoretical Computer Science"} READ FUNCTION {sortify} { purify$ "l" change.case$ } INTEGERS { len } FUNCTION {chop.word} { 's := 'len := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ s num.names$ duplicate$ #2 > { pop$ " " * "et~al." emphasize * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { " " * "et~al." emphasize * } { " and " * s #2 "{vv~}{ll}" format.name$ * } if$ } if$ } if$ } FUNCTION {author.key.label} { author empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { author format.lab.names } if$ } FUNCTION {author.editor.key.label} { author empty$ { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } { author format.lab.names } if$ } FUNCTION {editor.key.label} { editor empty$ { key empty$ { cite$ #1 #3 substring$ } 'key if$ } { editor format.lab.names } if$ } FUNCTION {calc.label} { type$ "book" = type$ "inbook" = or 'author.editor.key.label { type$ "proceedings" = 'editor.key.label 'author.key.label if$ } if$ "(" * year duplicate$ empty$ { pop$ "????" } { purify$ #-1 #4 substring$ } if$ * 'label := } FUNCTION {sort.format.names} { 's := #1 'nameptr := "" s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { nameptr #1 > { " " * } 'skip$ if$ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := nameptr numnames = t "others" = and { "et al" * } { numnames #2 > nameptr #2 = and { "zzzzzz" * #1 'namesleft := } { t sortify * } if$ } if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } FUNCTION {sort.format.title} { 't := "A " #2 "An " #3 "The " #4 t chop.word chop.word chop.word sortify #1 global.max$ substring$ } FUNCTION {author.sort} { author empty$ { key empty$ { "to sort, need author or key in " cite$ * warning$ "" } { key sortify } if$ } { author sort.format.names } if$ } FUNCTION {author.editor.sort} { author empty$ { editor empty$ { key empty$ { "to sort, need author, editor, or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } { author sort.format.names } if$ } FUNCTION {editor.sort} { editor empty$ { key empty$ { "to sort, need editor or key in " cite$ * warning$ "" } { key sortify } if$ } { editor sort.format.names } if$ } FUNCTION {presort} { calc.label label sortify " " * type$ "book" = type$ "inbook" = or 'author.editor.sort { type$ "proceedings" = 'editor.sort 'author.sort if$ } if$ #1 entry.max$ substring$ 'sort.label := sort.label * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {presort} SORT STRINGS { last.label next.extra } INTEGERS { last.extra.num } FUNCTION {initialize.extra.label.stuff} { #0 int.to.chr$ 'last.label := "" 'next.extra := #0 'last.extra.num := } FUNCTION {forward.pass} { last.label label = { last.extra.num #1 + 'last.extra.num := last.extra.num int.to.chr$ 'extra.label := } { "a" chr.to.int$ 'last.extra.num := "" 'extra.label := label 'last.label := } if$ } FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } 'skip$ if$ extra.label 'next.extra := label extra.label * 'label := } EXECUTE {initialize.extra.label.stuff} ITERATE {forward.pass} REVERSE {reverse.pass} FUNCTION {bib.sort.order} { sort.label " " * year field.or.null sortify * " " * title field.or.null sort.format.title * #1 entry.max$ substring$ 'sort.key$ := } ITERATE {bib.sort.order} SORT FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ "\begin{thebibliography}{}" write$ newline$ } EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } EXECUTE {end.bib} %% End of customized bst file ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/templates/rsp/PairedPSCBS,report.tex.rsp�������������������������������������������������0000644�0001762�0000144�00000056710�14564051545�021561� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Authors: Henrik Bengtsson % Created on: 2011-09-30 % Last updated: See HISTORY below. % % Usage: (compiles *.tex.rsp => tex.rsp.R => *.tex => *.dvi) % R.rsp::rsp("PairedPSCBS.tex.rsp", path="reports,rsp/"); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <% library("PSCBS"); library("R.devices"); library("R.cache"); library("R.utils"); # setOption() stopifnot(exists("rspArgs", mode="list")); %> <% # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = # REPORT CONFIGURATION # = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = REPORT_DENSITIES <- getOption("PSCBS::reports/densities", TRUE); REPORT_TUMORBOOST <- getOption("PSCBS::reports/TumorBoost", TRUE); REPORT_USE_ALPHA_CHANNEL <- getOption("PSCBS::report/useAlphaChannel", TRUE); REPORT_PER_CHROMOSOME <- getOption("PSCBS::reports/perChromosome", TRUE); REPORT_C1C2 <- getOption("PSCBS::reports/pscnSegmentationTransitions", FALSE); # To implement: REPORT_PER_GENOTYPE <- getOption("PSCBS::reports/perGenotype", TRUE); %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % LATEX STARTUP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[twoside,12pt]{report} \usepackage{fancyvrb} \usepackage{xspace} \usepackage{subfigure} % \subfigure[<title>]{} \usepackage[round]{natbib} \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.8in} \addtolength{\textheight}{1.3in} \renewcommand{\topfraction}{1.00} % max fraction of floats at top \renewcommand{\bottomfraction}{1.0} % max fraction of floats at bottom \renewcommand{\textfraction}{0.00} \usepackage{fancyhdr} \pagestyle{fancy} %% \fancyhead{} % clear all header fields %% \fancyfoot{} % clear all footer fields %% \fancyhead[LE,RO]{\slshape \rightmark} %% \fancyfoot[C]{\thepage} \fancyhf{} \fancyhead[LE,RO]{\thepage} \fancyhead[RE]{\textit{\nouppercase{\leftmark}}} \fancyhead[LO]{\textit{\nouppercase{\rightmark}}} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\TCN}{TCN\xspace} \newcommand{\BAF}{\BAF\xspace} \newcommand{\BAFN}{BAF$_{N}$\xspace} \newcommand{\BAFT}{BAF$_{T}$\xspace} \newcommand{\BAFTN}{BAF$^*_{T}$\xspace} <% pairedPSCBSReport <- function(fit, sampleName=NULL, dataSet=NULL, studyName="PairedPSCBS", Clim=c(0,4), Blim=c(0,1), reportPath=file.path("reports", studyName), figPath=file.path(reportPath, "figures"), ..., figForce=FALSE) { %> <% # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': fit <- Arguments$getInstanceOf(fit, "PairedPSCBS"); # Argument 'sampleName': if (is.null(sampleName)) { sampleName <- sampleName(fit); } sampleName <- Arguments$getCharacter(sampleName); # Argument 'dataSet': if (!is.null(dataSet)) { dataSet <- Arguments$getCharacter(dataSet); } # Argument 'studyName': studyName <- Arguments$getCharacter(studyName); # Argument 'reportPath': reportPath <- Arguments$getWritablePath(reportPath); # Argument 'figPath': figPath <- Arguments$getWritablePath(figPath); # Argument 'figForce': figForce <- Arguments$getLogical(figForce); %> <% oFigPath <- setOption("devEval/args/path", figPath); on.exit({ setOption("devEval/args/path", oFigPath); }, add=TRUE); oPar <- setOption("devNew/args/par", list(lwd=2)); on.exit({ setOption("devNew/args/par", oPar); }, add=TRUE); %> <% studyLbl <- sprintf("Study: %s\\\\", toLatex(studyName)); if (!is.null(dataSet)) { dataSetLbl <- sprintf("Data set: %s\\\\", toLatex(dataSet)); } else { dataSetLbl <- ""; } %> \title{Paired PSCBS Report:\\<%=studyLbl%><%=dataSetLbl%>Sample: <%=toLatex(sampleName)%>} \author{Report template by Henrik Bengtsson} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % GRAPHICS SETTINGS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% setOption("devEval/args/force", figForce); %> \usepackage{graphicx} \graphicspath{{<%=figPath%>/} {../<%=figPath%>/}} <% # GGPLOT2 SETTINGS ClimX <- Clim + c(-1,1)*diff(Clim)*0.08; BlimX <- Blim + c(-1,1)*diff(Blim)*0.08; muNCols <- c("#999999", "#000000", "#999999"); require("ggplot2") || throw("Package not loaded: ggplot2"); xnbrOpts <- element_text(colour="grey50", size=20, hjust=1, lineheight=0.9); ynbrOpts <- element_text(colour="grey50", size=20, vjust=1, lineheight=0.9); xlabOpts <- element_text(colour="black", size=28, hjust=0.5); ylabOpts <- element_text(colour="black", size=28, vjust=0.5, angle=90); labList <- list( CT = expression(C[T]), betaN = expression(beta[N]), betaT = expression(beta[T]), betaTN = expression(tilde(beta)[T]), rho = expression(rho), rhoN = expression(tilde(rho)), c1 = expression(C[1]), c2 = expression(C[2]), c1N = expression(tilde(C)[1]), c2N = expression(tilde(C)[2]) ); symbolList <- list( CT = "$C_{T}$", betaN = "$\\beta_{N}$", betaT = "$\\beta_{T}$", betaTN = "$\\tilde{\\beta}_{T}$", rho = "$\\rho$", rhoN = "$\\tilde{\\rho}$", c1 = "$C_{1}$", c2 = "$C_{2}$", c1N = "$\\tilde{C}_{1}$", c2N = "$\\tilde{C}_{2}$" ); %> \begin{document} \maketitle \begin{abstract} This is a quality control (QC) report on the paired tumor-normal sample '<%=toLatex(sampleName)%>' in data set '<%=toLatex(dataSet)%>'. \end{abstract} \tableofcontents \clearpage %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DATA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Introduction} \chapter{Data} \label{ch:Data} \section{Samples} \section{Microarray data} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % METHODS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Methods} \label{ch:Methods} \section{Segmentation} \label{sec:Segmentation} We use the Paired PSCBS segmentation method~\citep{OlshenA_etal_2011} with TumorBoost normalization~\citep{BengtssonH_etal_2010} to partion the genome into segments such that all signals in a particular segment are likely to originate from the same underlying parent-specific copy-number state. Germline genotypes are called based on the normal allele B fractions (BAFs), cf.~\citet{BengtssonH_etal_2010}. <%-- \section{Post-segmentation pruning} \label{sec:PostSegmentationPruning} <% fitP <- pruneByHClust(fit, h=0.25); #print(fitP); %> --%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % WHOLE-GENOME RESULTS % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \chapter{Whole-Genome Results} \label{ch:WholeGenomeResults} % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SUMMARY ANNOTATION AND GENOTYPE CALLS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% summaryOfAnnotationAndGenotypeCalls <- function(fit, ...) { %> \section{Summary of annotation and genotype calls} <% data <- getLocusData(fit, fields="full"); nbrOfLoci <- nrow(data); nbrOfSNPs <- sum(data$isSNP, na.rm=TRUE); nbrOfHets <- sum(data$isHet, na.rm=TRUE); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{table}[htbp] \begin{center} \begin{tabular}{lrr} Description & Count & Fraction \\ \hline Number of loci & <%=nbrOfLoci%> & 100.00\% \\ Number of SNPs & <%=nbrOfSNPs%> & <%=sprintf("%.2f", 100*nbrOfSNPs/nbrOfLoci)%>\% \\ Number of heterozygous SNPs* & <%=nbrOfHets%> & <%=sprintf("%.2f", 100*nbrOfHets/nbrOfSNPs)%>\% \\ Number of non-polymorphic loci & <%=nbrOfLoci-nbrOfSNPs%> & <%=sprintf("%.2f", 100*(1-nbrOfSNPs/nbrOfLoci))%>\% \\ Number of chromosomes & <%=nbrOfChromosomes%> & - \\ \end{tabular} \caption{ Summary of the locus-level data on <%=chromosomesH%>. A locus is considered to be a SNP if it has either a non-missing BAF for either the tumor or the normal. (*) Genotype calls are based on (whole-genome) naive genotyping of the germline BAFs. } \label{tbl:LocusStats} \end{center} \end{table} <% } # summaryOfAnnotationAndGenotypeCalls() %> <%=summaryOfAnnotationAndGenotypeCalls(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % SIGNAL DENSITIES % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% signalDensities <- function(fit, ...) { %> <% if (!REPORT_DENSITIES) return(); %> \clearpage \section{Signal densities} \label{sec:SignalDensities} <% require("ggplot2") || throw("Package not loaded: ggplot2"); data <- getLocusData(fit, fields="full"); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> <% if (nrow(data) >= 2L) { %> \begin{figure}[htbp] \begin{center} <% fields <- c("CT", "betaN", "betaT", "rho", "c1", "c2", "betaTN", "rhoN", "c1N", "c2N"); fields <- intersect(fields, colnames(data)) %> <% for (ff in fields) { %> <% symbol <- symbolList[[ff]]; panelTitle <- switch(ff, CT="\\TCN", betaN="\\BAFN", betaT="\\BAFT", betaTN="\\BAFTN", "NNN"); lim <- switch(ff, CT=ClimX, c1=ClimX, c2=ClimX, c1N=ClimX, c2N=ClimX, BlimX); nbrOfSNPs <- sum(data$isSNP, na.rm=TRUE) %> \raisebox{4ex}{<%=symbol%>} <% for (by in c("all", "muN")) { %> <% tags <- c(chrsTags, by, ff); %> \resizebox{0.33\textwidth}{!}{% \includegraphics{<%={ toPNG(name=sampleName, tags=tags, width=640, aspectRatio=0.3, { gg <- ggplot(data, aes_string(x=ff, y="..count..")); if (by == "all") { if (ff == "CT" && nbrOfSNPs > 0 && any(!data$isSNP, na.rm=TRUE)) { gg <- gg + aes(group=type, colour=type); } } else if (by == "muN") { gg <- gg + aes_string(group="muNx", colour="muNx"); gg <- gg + scale_color_manual(values=muNCols); } # See https://github.com/hadley/ggplot2/wiki/Legend-Attributes gg <- gg + theme(legend.position=c(0.97, 0.75), legend.justification = 1, legend.direction="vertical", legend.title=element_text(size=0), legend.text=element_text(size=16)); gg <- gg + geom_density(size=2, na.rm=TRUE); gg <- gg + xlab(NULL); gg <- gg + ylab(NULL); gg <- gg + xlim(lim); gg <- gg + theme(axis.text.x=xnbrOpts, axis.text.y=ynbrOpts); gg <- gg + theme(axis.title.x=xlabOpts, axis.title.y=ylabOpts); suppressWarnings({ print(gg); }); }, force=FALSE); }%>}% }% <% } # for (by ...) %> \\ % <% } # for (ff ...) %> \end{center} \caption{ Density estimates of locus-level signals on <%=chromosomesH%> with and without TumorBoost normalization. The signals in the left and right panels are without and with stratification on genotype calls (AA and BB in gray and AB in black). We expect to see three genotype groups for the normal BAFs ($\beta_{N}$). The tumor BAFs ($\beta_{T}$) should be more distinct after normalization ($\tilde{\beta}_{T}$), particularly for homozygous SNPs. If there are no allelic imbalances in the tumor, then the density of the tumor should be similar to that of the normal. } \label{fig:SignalDensity} \end{figure} <% } else { %> NOTE: No density plots produced for <%= chromosomesH %> because there are fewer than two loci. <% } ## if (nrow(data) >= 2L) %> <% } # signalDensities() %> <%=signalDensities(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % BEFORE AND AFTER TUMORBOOST % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% beforeAndAfterTumorBoost <- function(fit, ...) { %> <% data <- getLocusData(fit, fields="full"); ## Nothing to do? if (!all(is.element(c("betaN", "betaT", "type"), colnames(data)))) return() %> <% if (!REPORT_TUMORBOOST) return(); %> \clearpage \section{Before and after TumorBoost} \label{sec:BeforeAndAfterTumorBoost} \begin{figure}[htbp] \begin{center} <% require("ggplot2") || throw("Package not loaded: ggplot2"); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> <% dataT <- subset(data, type == "SNP"); %> <% for (ff in c("betaT", "betaTN")) { %> \resizebox{0.40\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, sprintf("%s-vs-betaN", ff)); toPNG(name=sampleName, tags=tags, width=640, aspectRatio=0.85, { gg <- ggplot(dataT, aes_string(x="betaN", y=ff)); gg <- gg + aes_string(group="muNx", colour="muNx"); gg <- gg + scale_color_manual(values=muNCols); # See https://github.com/hadley/ggplot2/wiki/Legend-Attributes gg <- gg + theme(#legend.position=c(0.97, 0.85), #legend.justification = 1, legend.direction="vertical", legend.title=element_text(size=0), legend.text=element_text(size=16)); if (REPORT_USE_ALPHA_CHANNEL) { gg <- gg + geom_point(alpha=min(10e3/nrow(dataT), 0.5), na.rm=TRUE); } else { gg <- gg + geom_point(na.rm=TRUE); } gg <- gg + xlab(labList[["betaN"]]) + ylab(labList[[ff]]); gg <- gg + xlim(BlimX) + ylim(BlimX); gg <- gg + theme(axis.text.x=xnbrOpts, axis.text.y=ynbrOpts); gg <- gg + theme(axis.title.x=xlabOpts, axis.title.y=ylabOpts); print(gg); }); }%>}% }% <% } # for (ff ...) %> \end{center} \caption{ Tumor-normal BAFs before (left) and after (right) TumorBoost normalization on <%=chromosomesH%>. We expect to see only two homozygote groups. If there are more, then the tumor and the normal BAFs are not from the same individual. If there are no allelic imbalances in the tumor, then there is also only one heterozygous group. } \label{fig:BAFBAF} \end{figure} <% } # beforeAndAfterTumorBoost() %> <%=beforeAndAfterTumorBoost(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % PARENT-SPECIFIC COPY-NUMBER SEGMENTATION TRACKS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% pscnSegmentationTracks <- function(fit, ...) { %> \clearpage \section{Parent-specific copy-number segmentation tracks} \label{sec:PSCNSegmentationTracks} <% chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} <% for (track in c("tcn", "dh", "tcn,c1,c2")) { %> <%-- <% for (track in c("tcn*", "betaT", "betaTN*", "dh*", "tcn*,c1*,c2-*")) { %> --%> \resizebox{\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, "PairedPSCBS", gsub("[*-]", "", track), getChecksum(fit)); toPNG(name=sampleName, tags=tags, width=1024, aspectRatio=0.25, par=list(mar=c(2.8,4,1,1)+0.1, cex=1.5), { plotTracks(fit, tracks=track, lwd=5, Clim=Clim); # plotTrack2(fit, panels=track, lwd=5, Clim=Clim); }, force=FALSE); }%>}% }% \\ <% } # for (track ...) %> \end{center} \caption{ Results of Paired PSCBS segmentation on <%=chromosomesH%> projected onto TCN (top), \BAFT (row 2), \BAFTN (row 3), DH (row 4), as well as TCN, $C_1$ and $C_2$ (bottom). Paired PSCBS segmentation is always done on TCN and DH data. There are in total $S=<%=nbrOfSegments(fit, splitters=FALSE)%>$ segments. } \label{fig:PairedPSCBS} \end{figure} <% } # pscnSegmentationTracks() %> <%=pscnSegmentationTracks(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % PARENT-SPECIFIC COPY-NUMBER TRANSITIONS % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% pscnSegmentationTransitions <- function(fit, ...) { %> <% if (!REPORT_C1C2) return(); %> \clearpage \section{Parent-specific copy-number transitions} \label{sec:PSCNSegmentationTransitions} <% # plotC1C2Grid() require("aroma.cn") || throw("Package not loaded: aroma.cn"); chromosomes <- getChromosomes(fit); nbrOfChromosomes <- length(chromosomes); chromosomesH <- seqToHumanReadable(chromosomes); chromosomesH <- if (nbrOfChromosomes == 1) { sprintf("Chr %s", chromosomesH); } else { sprintf("Chrs %s", chromosomesH); } chrsTags <- if (nbrOfChromosomes == 1) { sprintf("chr%02d", chromosomes[1]); } else { sprintf("chrs%02d-%02d", min(chromosomes), max(chromosomes)); } %> \begin{figure}[htbp] \begin{center} \resizebox{0.6\textwidth}{!}{% \includegraphics{<%={ tags <- c(chrsTags, "PairedPSCBS", "C1C2", getChecksum(fit)); toPNG(name=sampleName, tags=tags, width=640, aspectRatio=1, par=list(mar=c(4,4,1,1)+0.1, cex=2), { plotC1C2Grid(fit, Clim=ClimX); linesC1C2(fit, lwd=2); }, force=FALSE); }%>}% }% \end{center} \caption{ A graph representation of the minor ($C_1$) and major ($C_2$) copy-number segmentation on <%=chromosomesH%>, where the nodes represent ($S=<%=nbrOfSegments(fit, splitters=FALSE)%>$) segments and the lines change points. The size of a node reflects the length of the corresponding segment. The marginal distributions (gray curves) of the minor and the major CNs are projected onto the horizontal and vertical axis, respectively. To easy a visual comparison, the latter is also projected onto the horizontal axis (light blue curve). } \label{fig:C1C2} \end{figure} <% } # pscnSegmentationTransitions() %> <%=pscnSegmentationTransitions(fit)%> % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - % NORMAL CONTAMINATION % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <% pscnNormalContamination <- function(fit, ...) { %> \clearpage \section{Normal contamination} \label{sec:PSCNNormalContamination} <% ## Attempt to estimate kappa kappa <- tryCatch(estimateKappa(fit, ...), error = identity) if (inherits(kappa, "error")) { %> The estimation of normal contamination failed, which typically happens when the parent-specific copy numbers are too noisy or when there are too few parent-specific copy-number events occuring in the tumor. Details: The reason reported by \code{estimateKappa()} was: <%= conditionMessage(kappa) %>. <% } else { %> The estimated amount of normal contamination of this sample is <%= sprintf("%.1f", 100*kappa) %>\% ($\kappa = <%= sprintf("%.3f", kappa) %>$). This estimate, which is provided due to popular demand, is also affected by other types of background signals, which may be specific to sample or batch. Because of this, great care should be taken when interpreting this estimate and using it in downstream analysis. Being conservative, we recommend to \emph{not} to use it as an accurate estimate of the \emph{true} amount of normal contamination. However, if the sample and batch-specific effects are small, estimates from multiple samples may compared with each other, i.e. samples can be ranked by their \emph{relative amount of normal contamination} (which might be done also when the absolute values cannot be trusted). <% } %> <% } # pscnNormalContamination() %> <%=pscnNormalContamination(fit)%> % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = <% if (REPORT_PER_CHROMOSOME && nbrOfChromosomes(fit) > 1) { %> <% for (chr in getChromosomes(fit)) { %> \chapter{Chromosome <%=chr%> Results} \label{sec:Chromosome<%=chr%>Results} <% fitT <- extractChromosome(fit, chromosome=chr); %> <%=summaryOfAnnotationAndGenotypeCalls(fitT)%> <%=signalDensities(fitT)%> <%=beforeAndAfterTumorBoost(fitT)%> <%=pscnSegmentationTracks(fitT)%> <%=pscnSegmentationTransitions(fitT)%> <% } # for (chr ...) %> <% } # if (REPORT_PER_CHROMOSOME && nbrOfChromosomes(fit) > 1) %> <%-- % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: WHOLE-GENOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \section{Hierarchical pruning} \label{sec:HierarchicalPruning} % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % REFERENCES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \clearpage \bibliography{bioinformatics-journals-abbr,PSCBS} %\bibliographystyle{plain} \bibliographystyle{natbib} \appendix \chapter{Appendix} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Session information %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \clearpage \section*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using \code{rsp()} of the R.rsp package. The template for this report was created by Henrik Bengtsson on April 20, 2012. \end{document} <% } # pairedPSCBSReport() %> <%=do.call("pairedPSCBSReport", args=rspArgs)%> <% ###################################################################### # RSP CLOSEUP ###################################################################### # Function for renaming report afterwards assign("renamePDF", function() { filename <- sprintf("%s,report.pdf", studyName); pathname <- file.path(reportPath, filename); file.rename("report.pdf", pathname); }, envir=globalenv()); %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % HISTORY: % 2016-05-11 % o Updated to handle PairedPSCBS objects with only 'rho' but no % 'betaN' and 'betaT'. % 2014-05-24 % o Replaced a deprecated opts() of ggplot2 with theme(). % 2013-10-18 % o BUG FIX: Report template assumed that R.utils was attached. % 2012-11-03 % o Replaced deprecated ggplot2 functions. % 2012-09-16 % o Added easy report configuration at the very top. % 2012-05-30 % o Removed ggplot2 warnings on missing values. % 2012-02-28 % o Now it is possible to turn off usage of the alpha channel in % plots, e.g. setOption("PSCBS::report/useAlphaChannel", FALSE). % This is useful for if the alpha channel is not supported. % 2012-02-27 % o First successful run with real data. % o Now all of the report uses a PairedPSCBS object. % o Now making more use of templates. % o Now passing a data frame to segmentByPairedCBS(). % 2011-09-30 % o Created. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ��������������������������������������������������������PSCBS/inst/templates/rsp/PSCBS.bib������������������������������������������������������������������0000644�0001762�0000144�00000015413�14564051545�016250� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������@ARTICLE{BengtssonH_etal_2010, author = {Henrik Bengtsson and Pierre Neuvial and Terence P Speed}, title = {{TumorBoost}: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays}, journal = {BMC Bioinformatics}, year = {2010}, volume = {11}, pages = {245}, number = {1}, month = {May}, abstract = {ABSTRACT: BACKGROUND: High-throughput genotyping microarrays assess both total DNA copy number and allelic composition, which makes them a tool of choice for copy number studies in cancer, including total copy number and loss of heterozygosity (LOH) analyses. Even after state of the art preprocessing methods, allelic signal estimates from genotyping arrays still suffer from systematic effects that make them difficult to use effectively for such downstream analyses. RESULTS: We propose a method, TumorBoost, for normalizing allelic estimates of one tumor sample based on estimates from a single matched normal. The method applies to any paired tumor-normal estimates from any microarray-based technology, combined with any preprocessing method. We demonstrate that it increases the signal-to-noise ratio of allelic signals, making it significantly easier to detect allelic imbalances. CONCLUSIONS: TumorBoost increases the power to detect somatic copy-number events (including copy-neutral LOH) in the tumor from allelic signals of Affymetrix or Illumina origin. We also conclude that high-precision allelic estimates can be obtained from a single pair of tumor-normal hybridizations, if TumorBoost is combined with single-array preprocessing methods such as (allele-specific) CRMA v2 for Affymetrix or BeadStudio's (proprietary) XY-normalization method for Illumina. A bounded-memory implementation is available in the open-source and cross-platform R package aroma.cn, which is part of the Aroma Project (http://www.aroma-project.org/).}, doi = {10.1186/1471-2105-11-245}, file = {:BengtssonH_etal_2010-TumorBoost.pdf:PDF}, language = {eng}, medline-pst = {aheadofprint}, owner = {hb}, pii = {1471-2105-11-245}, pmid = {20462408}, timestamp = {2010.05.15}, url = {http://dx.doi.org/10.1186/1471-2105-11-245} } @ARTICLE{OlshenA_etal_2011, author = {Adam B. Olshen and Henrik Bengtsson and Pierre Neuvial and Paul Spellman and Richard A. Olshen and Venkatraman E. Seshan}, title = {Parent-specific copy number in paired tumor-normal studies using circular binary segmentation}, journal = {Bioinformatics}, year = {2011}, volume = {27}, pages = {2038-2046}, number = {15}, doi = {10.1093/bioinformatics/btr329}, pmid = {21666266}, url = {http://bioinformatics.oxfordjournals.org/content/27/15/2038} } @ARTICLE{VenkatramanOlshen_2007, author = {E. S. Venkatraman and Adam B Olshen}, title = {{A} faster circular binary segmentation algorithm for the analysis of array {CGH} data.}, journal = {Bioinformatics}, year = {2007}, volume = {23}, pages = {657--663}, number = {6}, month = {Mar}, abstract = {MOTIVATION: Array CGH technologies enable the simultaneous measurement of DNA copy number for thousands of sites on a genome. We developed the circular binary segmentation (CBS) algorithm to divide the genome into regions of equal copy number. The algorithm tests for change-points using a maximal t-statistic with a permutation reference distribution to obtain the corresponding P-value. The number of computations required for the maximal test statistic is O(N2), where N is the number of markers. This makes the full permutation approach computationally prohibitive for the newer arrays that contain tens of thousands markers and highlights the need for a faster algorithm. RESULTS: We present a hybrid approach to obtain the P-value of the test statistic in linear time. We also introduce a rule for stopping early when there is strong evidence for the presence of a change. We show through simulations that the hybrid approach provides a substantial gain in speed with only a negligible loss in accuracy and that the stopping rule further increases speed. We also present the analyses of array CGH data from breast cancer cell lines to show the impact of the new approaches on the analysis of real data. AVAILABILITY: An R version of the CBS algorithm has been implemented in the "DNAcopy" package of the Bioconductor project. The proposed hybrid method for the P-value is available in version 1.2.1 or higher and the stopping rule for declaring a change early is available in version 1.5.1 or higher.}, doi = {10.1093/bioinformatics/btl646}, file = {VenkatramanOlshen_2007-A faster circular binary segmentation algorithm for the analysis of array CGH data.pdf:VenkatramanOlshen_2007-A faster circular binary segmentation algorithm for the analysis of array CGH data.pdf:PDF}, keywords = {Algorithms; Chromosome Mapping, methods; Gene Dosage, genetics; Oligonucleotide Array Sequence Analysis, methods; Programming Languages; Sequence Alignment, methods; Sequence Analysis, DNA, methods; Software; Time Factors}, owner = {hb}, pii = {btl646}, pmid = {17234643}, timestamp = {2007.02.02}, url = {http://dx.doi.org/10.1093/bioinformatics/btl646} } @ARTICLE{OlshenA_etal_2004, author = {Adam B Olshen and E. S. Venkatraman and Robert Lucito and Michael Wigler}, title = {Circular binary segmentation for the analysis of array-based DNA copy number data.}, journal = {Biostatistics}, year = {2004}, volume = {5}, pages = {557--572}, number = {4}, month = {Oct}, abstract = {DNA sequence copy number is the number of copies of DNA at a region of a genome. Cancer progression often involves alterations in DNA copy number. Newly developed microarray technologies enable simultaneous measurement of copy number at thousands of sites in a genome. We have developed a modification of binary segmentation, which we call circular binary segmentation, to translate noisy intensity measurements into regions of equal copy number. The method is evaluated by simulation and is demonstrated on cell line data with known copy number alterations and on a breast cancer cell line data set.}, doi = {10.1093/biostatistics/kxh008}, file = {OlshenA_etal_2004-Circular binary segmentation for the analysis of array-based DNA copy number data.pdf:OlshenA_etal_2004-Circular binary segmentation for the analysis of array-based DNA copy number data.pdf:PDF}, keywords = {Breast Neoplasms; Cell Line, Tumor; Computer Simulation; Female; Gene Dosage; Genome, Human; Humans; Olig; e Analysis; onucleotide Array Sequence; CBS}, owner = {hb}, pii = {5/4/557}, pmid = {15475419}, timestamp = {2007.07.09}, url = {http://dx.doi.org/10.1093/biostatistics/kxh008} } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/templates/rsp/NonPairedPSCBS,report.tex.rsp����������������������������������������������0000644�0001762�0000144�00000021526�14564051545�022231� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<%-------------------------------------------------------------------- This is an RSP LaTeX template for the report system of PSCBS. --------------------------------------------------------------------%> <%@meta author="Henrik Bengtsson"%> <%@meta date="2013-03-21"%> <%-------------------------------------------------------------------- Include RSP templates --------------------------------------------------------------------%> <%@include file="includes/reportHeader.tex.rsp"%> <% library("PSCBS"); library("R.devices"); library("R.cache"); getChecksum <- R.cache::getChecksum; stopifnot(exists("rspArgs", mode="list")); %> <%-------------------------------------------------------------------- Report configuration --------------------------------------------------------------------%> <%@logical SIGNAL_DENSITIES="${PSCBS::reports/signalDensities}" default="TRUE"%> <%@logical LEVEL_DENSITIES="${PSCBS::reports/levelDensities}" default="TRUE"%> <%@logical C1C2="${PSCBS::reports/pscnSegmentationTransitions}" default="FALSE"%> <%-- To implement --%> <%@logical PER_GENOTYPE="${PSCBS::reports/perGenotype}" default="TRUE"%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % LATEX STARTUP %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[twoside,12pt]{article} \usepackage{fancyvrb} % Custom verbose environments \usepackage{lastpage} % Total number of pages \usepackage{xspace} \usepackage{subfigure} % \subfigure[<title>]{} \usepackage[round]{natbib} % No paragraph indentation \setlength{\parindent}{0cm} \addtolength{\oddsidemargin}{-0.4in} \addtolength{\evensidemargin}{-1.02in} \addtolength{\textwidth}{1.5in} \addtolength{\topmargin}{-1.0in} \addtolength{\textheight}{1.5in} \renewcommand{\topfraction}{1.00} % max fraction of floats at top \renewcommand{\bottomfraction}{1.0} % max fraction of floats at bottom \renewcommand{\textfraction}{0.00} <%@include file="includes/reportSetupGraphics.tex.rsp"%> <%@include file="includes/reportSetupMacros.tex.rsp"%> <% pairedPSCBSReport <- function(fit, sampleName=sampleName(fit), dataSet=NULL, studyName=NULL, chromosomes=NULL, Clim=c(0,4), Blim=c(0,1), reportPerChromosome=TRUE, ...) { %> <%@if name="SIGNAL_DENSITIES"%> <%@include file="includes/signalDensities.tex.rsp"%> <%@endif%> <%@include file="includes/summaryOfAnnotationAndGenotypeCalls.tex.rsp"%> <%@include file="includes/pscnSegmentationTracks.tex.rsp"%> <%@if name="LEVEL_DENSITIES"%> <%@include file="includes/levelDensities.tex.rsp"%> <%@endif%> <%@include file="includes/pscnSegmentationTransitions.tex.rsp"%> <% # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Validate arguments # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Argument 'fit': fit <- Arguments$getInstanceOf(fit, "PairedPSCBS"); fitClass <- class(fit)[1L]; if (inherits(fit, "NonPairedPSCBS")) { fitClassLbl <- "Non-paired PSCBS"; } else if (inherits(fit, "PairedPSCBS")) { fitClassLbl <- "Paired PSCBS"; } else if (inherits(fit, "CBS")) { fitClassLbl <- "CBS"; } else { fitClassLbl <- fitClass; } # Argument 'sampleName': stopifnot(is.character(sampleName)); sampleName <- Arguments$getCharacter(sampleName); sampleNameEscDots <- gsub(".", "_", sampleName, fixed=TRUE); # Argument 'dataSet': if (!is.null(dataSet)) { dataSet <- Arguments$getCharacter(dataSet); } else { dataSet <- "?"; } dataSetLbl <- sprintf("Data set: %s\\\\", toLatex(dataSet)); # Argument 'studyName': if (is.null(studyName)) studyName <- fitClassLbl; studyName <- Arguments$getCharacter(studyName); studyLbl <- sprintf("Study: %s\\\\", toLatex(studyName)); # Argument 'chromosomes': if (!is.null(chromosomes)) { fit <- extractChromosomes(fit, chromosomes); } %> <%reportHeaderSetup(fit, sampleName=sampleName, dataSet=dataSet, studyName=studyName) %> <%reportHeaderUpdate(fit)%> <% ClimX <- Clim + c(-1,1)*diff(Clim)*0.08; BlimX <- Blim + c(-1,1)*diff(Blim)*0.08; %> \begin{document} \title{<%=fitClassLbl%> Report:\\<%=studyLbl%><%=dataSetLbl%>Sample: <%=toLatex(sampleName)%>} \author{Report template by <%@meta name="author"%>} \maketitle \thispagestyle{fancy} %%\tableofcontents %> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DATA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % METHODS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Introduction} \label{sec:Introduction} This is a quality control (QC) report based on non-paired tumor SNP microarray data. \subsection{Method} \label{sec:Method} We use a non-paired PSCBS segmentation method to partion the genome into segments such that all signals in a particular segment are likely to originate from the same underlying parent-specific copy-number state. This method is adopted from the Paired PSCBS segmentation method~\citep{OlshenA_etal_2011} with two main differences. First, heterozygous SNPs are "called" based on tumor allele B fractions ("tumor BAFs"), which are poor proxies for the corresponding normal ones. This is a major disadvantage compared to having a matched normal. Second, the tumor BAFs cannot be normalized using the TumorBoost method~\citep{BengtssonH_etal_2010}. <%-- \subsection{Post-segmentation pruning} \label{sec:PostSegmentationPruning} <% fitP <- pruneByHClust(fit, h=0.25); #print(fitP); %> --%> \clearpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % RESULTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % WHOLE-GENOME RESULTS % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \section{Whole-Genome Results} \label{ch:WholeGenomeResults} <%=summaryOfAnnotationAndGenotypeCalls(fit)%> <%@if name="SIGNAL_DENSITIES"%> <%=signalDensities(fit, fields=c("CT", "betaT", "rho", "c1", "c2"))%> <%@endif%> <%=pscnSegmentationTracks(fit)%> <%@if name="LEVEL_DENSITIES"%> <%=levelDensities(fit, fields=c("tcn", "dh", "c1", "c2"))%> <%@endif%> <%@if name="C1C2"%> <%=pscnSegmentationTransitions(fit)%> <%@endif%> % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = <% if (reportPerChromosome && nbrOfChromosomes(fit) > 1) { %> <% for (chr in getChromosomes(fit)) { %> <% fitT <- extractChromosome(fit, chromosome=chr); %> \clearpage \section{Chromosome <%=chr%>} \label{sec:Chromosome<%=chr%>Results} <%reportHeaderUpdate(fit)%> <%=summaryOfAnnotationAndGenotypeCalls(fitT)%> <%@if name="SIGNAL_DENSITIES"%> <%=signalDensities(fitT, fields=c("CT", "betaT", "rho", "c1", "c2"))%> <%@endif%> <%=pscnSegmentationTracks(fitT)%> <%--- <%@if name="LEVEL_DENSITIES"%> <%=levelDensities(fitT, fields=c("tcn", "dh", "c1", "c2"))%> <%@endif%> ---%> <%@if name="C1C2"%> <%=pscnSegmentationTransitions(fitT)%> <%@endif%> <% } # for (chr ...) %> <% } # if (reportPerChromosome && nbrOfChromosomes(fit) > 1) %> <%-- % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: WHOLE-GENOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \subsection{Hierarchical pruning} \label{sec:HierarchicalPruning} % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = % PRUNED: PER CHROMOSOME SEGMENTATION % = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --%> \clearpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % REFERENCES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% <%@include file="includes/references.tex.rsp"%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % APPENDIX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \appendix \section{Appendix} <%@include file="includes/sessionInfo.tex.rsp"%> \end{document} <% } # pairedPSCBSReport() %> <%--- <% message(paste(capture.output({ str(rspArgs) }), collapse="\n")); message(paste(capture.output({ ll() }), collapse="\n")); %> ---%> <%=do.call("pairedPSCBSReport", args=rspArgs)%> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % HISTORY: # 2012-11-03 # o Replaced deprecated ggplot2 functions. # 2012-09-16 # o Added easy report configuration at the very top. # 2012-05-30 # o Removed ggplot2 warnings on missing values. # 2012-02-28 # o Now it is possible to turn off usage of the alpha channel in # plots, e.g. setOption("PSCBS::report/useAlphaChannel", FALSE). # This is useful for if the alpha channel is not supported. % 2012-02-27 % o First successful run with real data. % o Now all of the report uses a PairedPSCBS object. % o Now making more use of templates. % o Now passing a data frame to segmentByPairedCBS(). % 2011-09-30 % o Created. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/������������������������������������������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�013045� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/����������������������������������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�014371� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/PSCBS/����������������������������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�015243� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/PSCBS/segmentByCBS/���������������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�017530� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/PSCBS/segmentByCBS/sbdry/���������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�020653� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/PSCBS/segmentByCBS/sbdry/2aba5b85ae757609b8b4c9fc60be1156.Rcache������������0000644�0001762�0000144�00000001063�14564051545�026422� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Rcache v0.1.7 (R package R.cache by Henrik Bengtsson) ������RDX2 X �������������� ���sources������RDX2 X �������������� ��� timestamp�����A&) %������� ���class�������� ���POSIXct�� ���POSIXt������RDX2 X �������������� ���object��� ���B��%�� ��&����#��&��I�� ��%��&������"��%��&����@�� ��#��%��&��������!��$J��&-��'��W��D����z��"t��$��&U��'���������� ��#&��%��&r��'�����B��h������!��#��%\��&��' ���� ����d��X����".��$��%��&��' ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/misc/_Rcache/PSCBS/segmentByCBS/sbdry/0109d43cd74c8e7e46db1abde235c808.Rcache������������0000644�0001762�0000144�00000041223�14564051545�026420� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Rcache v0.1.7 (R package R.cache by Henrik Bengtsson) ������RDX2 X �������������� ���sources������RDX2 X �������������� ��� timestamp�����A&)p������� ���class�������� ���POSIXct�� ���POSIXt������RDX2 X �������������� ���object��� ��Z��%�� ��&����#��&��I�� ��%��&������"��%��&����@�� ��#��%��&��������!��$J��&-��'��W��D����z��"t��$��&U��'���������� ��#&��%��&r��'�����B��h������!��#��%\��&��' ���� ����d��X����".��$��%��&��' �� ?�����������r�� ��"��$d��%��&��' �� ������������W��!^��#%��$��%��&��' �� ��$������V���� �� ��!��#��$��%��&��' �� G��V������1�������� ��"Q��#��%��&��&��' �� ��������-��������}��!-��"��$��%7��&&��&��' �� P��������@��������d�� ��!��#��$H��%\��&8��&��' �� �� g��X����U��������M���� ��!��#J��$u��%w��&E��&��'�� t�� ����;����������Q������ ��"Q��#��$��%��&T��&��'�� �� g��"������������c������ ��!^��"��#��$��%��&`��&��'���� �������� �������������� p��!��"��#��$��%��&k��&��'��y�� ����_��x��n��G������C����1���� ��"��#��$#��% ��%��&u��&��'��&�� �� ����������=����j����N������!!��"B��#P��$F��%$��%��&|��&��'���� �� ��D��>��������������y������ G��!l��"~��#~��$i��%;��%��&��&��'���� e�� ��������;����i����T������E��x�� ��!��"��#��$��%R��%��&��&��'��d�� �� T��Z��9������<����6������B�������� ��!��"��#��$��%g��& ��&��&��'��-�� �� �� ����x������!������B���������� )��!2��".��#��#��$��%{��&��&��&��'���� �� �� ��R������������K��������:��Y��n�� w��!t��"e��#H��$��$��%��&$��&��&��'���� ?�� P�� -������������Z������/��a���������� ��!��"��#o��$:��$��%��&.��&��&��'���� ��� �� ����������t������X���������� ���� �� ��!��"��#��$X��% ��%��&7��&��&��'��o���� �� ��#����+������B����������;��Q��_��d��`�� R��!;��"��"��#��$r��%��%��&?��&��&��'��F���� u�� /�� ��N����"��w�������5��a���������������� ��!t��"J��#��#��$��%1��%��&H��&��&��'����V�� 4�� �� u����Y������E��~�������� ���� �� �������� ��!��"w��#;��#��$��%C��%��&O��&��&��'����#�� �� �� #������K��������,��N��h��z��������{��j��Q�� 1��! ��!��"��#^��$��$��%S��%��&V��&��&��'������ �� N�� ��8������ ��V�������������������������� h��!9��"��"��#z��$(��$��%`��%��&[��&��&��'������ q�� �� z�� ��0��v������ ��(��@��Q��\��_��\��S��D��/�������� ��!e��"'��"��#��$<��$��%l��%��&`��&��&��'������ 7�� �� /�� ������J��u����������������������~��[��2�� �� ��!��"M��#��#��$Q��$��%x��%��&e��&��&��'��d��[�� �� �� �� ?����������.��D��S��[��\��X��O��?��+����������q�� ;�� ��!��"r��#!��#��$g��$��%��%��&j��&��&��'��G��2���� K�� �� ��6��i��������������������������h��A�������� o��!-��!��"��#?��#��${��% ��%��&��&o��&��&��'��*�� ���� �� l�� �� ����;��V��i��u��z��z��t��h��W��B��'����������Y��!���� ��!Y��" ��"��#\��#��$��%��%��&��&t��&��&��'������u�� �� 1�� q�� �������� ��������������������c��8��������\�� �� ��!��"0��"��#w��$��$��%)��%��&��&y��&��&��'������J�� �� �� 2�� _��������������������r��V��5����������P�������� J�� ��!��"R��"��#��$%��$��%6��%��&��&}��&��&��'������ �� {�� �� �� ��9��M��X��]��\��U��H��7�� ����������n��>�� ������U������ y��!'��!��"s��#��#��$9��$��%C��%��&$��&��&��&��'�������� N�� �� �� �� ���� �� ��������������z��T��)��������W��������G���� ��!O��!��"��#,��#��$L��$��%O��%��&+��&��&��&��'����a���� �� Y�� �� �� ��������������v��X��7����������T��������\������{�� (�� ��!u��"��"��#E��#��$^��$��%Z��%��&1��&��&��&��'����D������ )�� M�� e�� s��y��x��p��b��O��7������������P��������l��*������P������� U�� ��!��"5��"��#]��#��$o��$��%f��%��&7��&��&��&��'����&������ �� �� ,�� 5��7��1��%������������v��K��������x��;������q��&������3���� ��!��!��"S��"��#t��#��$��$��%p��%��&<��&��&��&��'��o�� ��g���� �� �� �� �� ������������m��F����������L��������I�������e������d�� �� ��!D��!��"p��#���#��$��$��%��%z��%��&A��&��&��&��'��[����E��}�� �� �� �� �� ��������b��@����������[��#������h��#������D������I������ 2�� ��!g��!��"��#��#��$"��$��%��%��%��&F��&��&��'���'��I����&��X�� w�� �� �� �� ��n��V��:����������l��8���������G������s��'������1����~�� ���� [�� ��!��"��"��#/��#��$3��$��% ��%��%��&K��&��&��'���'��7������5�� O�� [�� ]�� U�� G��2����������~��M��������k��+������Y������o������l������O���� ��!��!��"6��"��#F��#��$D��$��%,��%��%��&O��&��&��'��'��%�������� '�� /�� ,�� !�� �� ��������a��2��������R��������B������Z������Z�������C����{�� �� ��!9��!��"Q��"��#[��#��$S��$��%6��%��%��&T��&��&��'��'���������� �� �� �� �� �� ����u��J��������z��>������w��0������I������L������9����t������ :�� ��!Y��!��"k��"��#o��#��$b��$��%@��%��&��&X��&��&��'��'����v�������� �� �� �� �� ��`��7�� ������i��-������h��!������<������A������0����o�� ����:���� ^�� ��!w��!��"��#��#��#��$p��$��%J��%��& ��&[��&��&��'��'����`�������� �� �� �� s�� P��(��������_��#������_��������4������;������,����m�� ����<����d���� ��!��!��"��"��#��#��$ ��$~��$��%S��%��&��&_��&��&��'��'����K��|������ �� }�� c�� C�� �� ������W��������Z������~��0������7������+����m�� ����?����k������ �� ��!-��!��"5��"��#0��#��$��$��$��%\��%��&��&c��&��&��'��'����6��b��t��u�� i�� S�� 6�� �� �� ����S��������W������}��/������7������+����o�� ����C����r������&���� =�� ��!K��!��"M��"��#C��#��$+��$��%��%e��%��&��&f��&��&��'��'����"��J��X��U�� E�� -�� �� �� �� ��S��������Z��������3������<������1����u������L����|������4����N���� `�� ��!h��!��"e��"��#V��#��$9��$��% ��%m��%��&��&j��&��&��'��'������3��=��6�� #�� �� �� �� �� W��������a��������;������D������:����������W����������C����a����u���� ��!��!��"��"|��"��#i��#��$G��$��%��%v��%��&#��&m��&��&��'��'��������"���� �� �� �� �� ]�� '�� ����l��'������G������Q������H������,����f������.����U����t���������� �� ��!"��!��"��"��#��#z��#��$U��$��%��%}��%��&'��&q��&��&��'��'�������������� �� �� d�� /�� �� ��x��4������U������`�� ����W������<����v������?����g����������,����:���� @�� ��!=��!��"1��"��#��#��#��$a��$��%(��%��%��&+��&s��&��&��'��'�������������� �� n�� <�� �� �� ��E������h������t������k������P������%����U����~������.����F����V����_���� `�� ��!Y��!��"H��"��#-��#��$��$n��$��%1��%��%��&0��&v��&��&��'��'�������������� y�� J�� �� �� �� Z��������0������5������'����h������>����n������)����I����b����t���������� �� �� ��!s��!��"^��"��#?��#��$��$z��$��%:��%��%��&4��&y��&��&��'��'��y������������ X�� &�� �� �� q�� ,�� ����J������P������B������"����Y������ ����F����f������ ��������$����'���� "�� ��!��!��"��"t��"��#P��#��$"��$��$��%B��%��%��&8��&|��&��&��'��'��l����������e�� 7�� �� �� �� F�� �� ��g������n������`������@����x������>����e����������+����<����H����L����J���� A�� ��!0��!��"��"��"��#a��#��$/��$��$��%J��%��%��&;��&~��&��&��'��'��a��������q��I�� �� �� �� b�� �� �� ��7������7������$����b������3����`����������7����O����a����m����s����s����l���� _�� ��!J��!��"-��"��#��#q��#��$;��$��$��%R��%��%��&?��&��&��&��'��'��V������z��Y��.���� �� �� =�� �� �� Z������]������J������%����Y����������?����]����u�������������������������� �� |�� ��!c��!��"B��"��#��#��#��$G��$��%��%Y��%��%��&C��&��&��&��'��'��K��y��z��d��A������ �� ^�� �� �� �� /�� ����+����r������N����������C����g����������)����9����D����I����I����C����6���� $�� ��! ��!{��!��"W��"��#)��#��#��$S��$��% ��%a��%��%��&F��&��&��&��'��'��@��j��g��O��(������ �� <�� �� �� W�� �� ��U������=����y������D����n������"����>����T����e����p����v����w����r����g����W���� @�� ��!#��!��!��"j��"��#9��#��#��$^��$��%��%g��%��&��&I��&��&��&��'��'��5��[��V��:�������� b�� �� �� �� 0�� �� ��(����l�� ����B����s�� ����0����Q����m������ ��������#����'����&��������������w���� ]�� ��!<��!��"��"}��"��#I��#��$ ��$i��$��%��%n��%��&��&L��&��&��&��'��'��+��N��E��'�������� D�� �� �� ^�� �� �� X�� ����<����t�� ����;����b����������*����>����L����U����Z����Y����S����H����8����#���� �� x�� ��!S��!��"(��"��"��#X��#��$��$t��$��%#��%u��%��& ��&P��&��&��&��'��'��"��A��5��������m�� (�� �� �� ;�� �� �� 0�� ��q������C����p������)����G����_����s���������� �������� ����������q����]����C���� $�� ��!���!k��!��"<��"��#��#g��#��$$��$~��$��%*��%{��%��&��&S��&��&��&��'��'����4��%��������S�� �� �� m�� �� �� e�� �� ��E����z������<����`����~�� ����!����2����>����E����G����E����>����2����!���� ������b���� @�� ��!��!��!��"O��"��#��#v��#��$/��$��$��%2��%��%��&��&V��&��&��&��'��'����'����������:���� �� N�� �� �� @�� �� ������M����w�� ����+����F����\����l����x����������������x����m����^����I����0���������� [�� ��!/��!��!��"a��"��#%��#��#��$;��$��$��%9��%��%��&��&Y��&��&��&��'��'������������g�� ���� �� .�� �� y�� �� �� V�� ��������F����f������ ���� ����.����7����<����<����8����/����"����������n����Q����0���� �� s�� ��!D��!��"��"r��"��#3��#��#��$E��$��$��%@��%��%��&��&[��&��&��&��'��'������������Q�� ���� g�� �� �� X�� �� �� /�� ��^����������5����M����`����n����w����{����{����w����n����b����Q����;����"������s����N���� $�� �� ��![��!��"#��"��"��#B��#��#��$P��$��$��%G��%��%��&��&^��&��&��&��'��'������������<������ L�� �� �� 7�� �� p�� �� ��5����Y����w����������)����4����;����=����;����4����*�������� ��~����e����G����&�������k���� >�� ��! ��!p��!��"5��"��"��#P��#��$��$Z��$��$��%M��%��%��&#��&a��&��&��&��'��'����������l��'������ 1�� �� x�� �� �� L�� �� y�� ����.����I����^����n����y����������������x����n����_����M����6����������l����G���������� W�� ��!!��!��!��"G��"��#��#^��#��$��$d��$��%��%T��%��%��&&��&c��&��&��&��'��'����������Z������o�� �� �� Z�� �� �� *�� �� S�� ��u����������.����;����D����H����G����C����:����-����������}����c����E����"������h����;���� �� p�� ��!7��!��!��"X��"��#��#k��#��$��$m��$��%��%Z��%��%��&*��&f��&��&��&��'��'����������H������X���� �� =�� �� q�� �� �� .�� ��M����e����x������ ����������������������v����e����Q����9����������l����G����������W���� #�� �� ��!L��!��" ��"i��"��#��#x��#��$$��$w��$��%��%`��%��%��&-��&h��&��&��&��'��'��������y��5������?���� �� �� �� P�� �� x�� �� ��$����:����J����T����Z����[����X����Q����F����7����%����������f����G����$������i����<���� ��r���� ;�� �� ��!_��!��"��"y��"��#-��#��#��$.��$��$��%��%f��%��%��&0��&j��&��&��&��'��'��������j��%������)���� i�� �� �� 1�� �� V�� �� r�� ������������&����)����(����#�������� ������r����[����B����$������r����K����"������\����(������ S�� ��!��!t��!��".��"��"��#:��#��#��$8��$��$��%#��%l��%��%��&3��&m��&��&��&��'��'��������[������n������ O�� �� �� �� �� 4�� �� N�� ��a����n����v����z����x����s����i����\����J����6����������s����R����.������q����D������z����C���� �� j�� ��!)��!��!��">��"��"��#G��#��#��$A��$��$��%)��%q��%��%��&6��&o��&��&��&��'��'��������M������Z������ 6�� �� c�� �� �� �� �� +�� ��;����F����K����L����H����@����5����%����������o����S����4����������X����-������f����3������^���� !�� �� ��!=��!��!��"O��"��"��#T��#��#��$K��$��$��%0��%w��%��%��&9��&q��&��&��&��'��'������~��>������F������ �� �� G�� �� g�� �� �� �� ����������!������������������x����e����N����4����������d����>����������R����!������Q������x���� 8�� �� ��!Q��!��"��"_��"��# ��#a��#��$��$T��$��$��%6��%|��%��&���&<��&s��&��&��&��'��'������s��1������3����n�� �� �� ,�� �� I�� �� ^�� �� m�� ��u����x����v����p����e����W����E����0����������l����K����'�������k����?������w����C���� ��n����2������ O�� ��! ��!d��!��"��"n��"��#��#m��#��$��$]��$��$��%<��%��%��&��&>��&u��&��&��&��'��'������g��#����}�� ����W���� �� �� �� ,�� �� >�� �� J�� ��O����P����L����C����7����&����������n����R����2������}����V����,������f����4������c����)������K���� �� e�� ��!��!v��!��"'��"}��"��#&��#y��#��$��$f��$��$��%B��%��%��&��&A��&w��&��&��&��'��'������\������m������B���� i�� �� �� �� �� �� �� (�� ��,����*����#�������� ������m����U����:����������i����C����������W����'������Y����!������G������e���� �� |�� ��!0��!��!��"7��"��"��#3��#��#��$"��$o��$��%��%H��%��%��& ��&D��&y��&��&��&��'��'������Q�� ����\������-���� Q�� �� j�� �� {�� �� �� �� ������������u����f����S����=����#������w����U����1���� ��t����H����������N������|����A������c���� ��~���� 6�� �� ��!C��!��!��"G��"��"��#?��#��#��$,��$w��$��%��%N��%��%��& ��&F��&{��&��&��&��' ��'����}��D������J���������� 7�� �� N�� �� \�� �� c�� �� e�� ��`����X����K����9����%���� ������b����A����������d����9���� ��t����B������r����:������_������}����8������ J�� �� ��!T��!��"���"U��"��"��#J��#��#��$4��$��$��%��%S��%��%��&��&I��&}��&��&��&��' ��'����t��:������;����o������ !�� �� 5�� �� @�� �� E�� �� D�� ��=����2����#����������l����Q����1������}����W����-������j����9������l����5������]������~����;������Q���� �� `�� ��!��!f��!��"��"c��"��#��#V��#��#��$=��$��$��%��%X��%��%��&��&K��&��&��&��&��' ��'��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/�������������������������������������������������������������������������������������0000755�0001762�0000144�00000000000�14564175017�012660� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/CBS.pdf������������������������������������������������������������������������������0000644�0001762�0000144�00000705374�14564174773�014012� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%PDF-1.5 % 62 0 obj << /Length 979 /Filter /FlateDecode >> stream xڅUKo6WH͇(%i,ߺ{%V#KECo,Ch{3b6cٯ7QTpUf뗌+Ie%Jq*]7YuC&oLv:&9sQeo[mziD2>?_%8Z)`5e Fs,7; ܽ~!"xg%+J껎W%*v[@RuVHEB׻iH}%xYS2лvLCrrߏƝPiޡg`G 0mHq3zo8SNx;svz\FH8�{yQD˒#M=bk`}FMb4c!̶Ceh5~`߷n2ΙxCV%bHf 3 U yQ _494fKgv AD ɽ[w Cً(CNxmE[ *ۆnidf>j.[H'3_4aXh]?m]o3 cJ7D\f=0WL}/HJ*lu0mL([F #Mh=.ɡd6`iKd55qbT+`i6ܟte wOL~Uj(\edÔ}3Sٷᢈ9kGIfU,(5 ˑ7W쩆} �;KWY@x 4Iy<`";o8t>H؝3!i_[ ~Dfl| w6-𣀑ZIEZ?�mIVpJ:3R"/#7c[OQ?ꃶb%WXfPV,+ۛ<"moTدn�NH Lmӫwsvك 5p/�OB endstream endobj 93 0 obj << /Length 688 /Filter /FlateDecode >> stream xV;o0+8RDkҤhQAcCځU, $GRԀӢ.&u}D?q=[^1 8Z!*""Cm>zҩV\y5gfy` <gfKnWCR!@a(F!Hx0rlg\Ք +3xhmm~rpw.KN<DY<ۼMOjf l;Dl Ͻ3k]Wec~44!GHafv z4b&xk. YxVGaA"7^$ v }}_mi Fk> $ikJŜg+;&P=ED9>go?y�?1Հj3V6Z;~L֞sJfo}he/OdLwSsR~lD0s<wۨkCԗy0 *ZJ`0 q0׌4M1 Ϛ[ueC؅CSP#J"* ㉫]ŅTȨ92WnFC"3uTKHλUJUuPכRa{1jG:2MS쌧9Ӭ}bqK# endstream endobj 108 0 obj << /Length 2368 /Filter /FlateDecode >> stream xڭXYܸ~_X50-K$uy�7^8H x}t+V:<Q@""Y al~.^1&56=l".rW:V:7tKSElio?lUNqRԑLFM2ut=T4 i7l4lOVDv Rndb4OQD~RFMgatmuL,?JӸԌץx-S]UE4603ܥ; DTP j q$s[?25˹`8+[xwԎC &*C;"{@al`ȢIe;0Ķ7{;6,5yD30ڦstܽwmڵ: e HA3T�[e) [%*I xԻ X<YވA((PLw酻"uVmvZŕyZ%nKζob #E&†$0F >K'x>5�n~cGgӎ3{O#]}3W&e '.B>fe]GI2T$,]o9kA'dlYM@EP2Il* i X cg>:TS3=8r?c ͼON,.tzi4 }ST qޟO&:i`. 1C "> k)yn!N@ Qh%C'Ӱk'6�#FA0 C13CYu-Z55`MFH95AAhNs@qr/$}IB9N,dL+0;/wL@wt� +LX[٫-D4 ۽f(9MvmWh).SHq˗bl +O!KR伿e&} |w4Ň"sԾ lϋL<P,GI~KUL{ DVRinu  kGlc6oQTqL�WSUaRʤ(TF F I@'JN,\tn:ue8)^cHLK #\.-R̄JtaUqz?h �l%q~.\0˸L|kIŐi튶_IM?+mCv]a<^QUƙbT'V?ivS^jئagI0c]UW͎#% n1uTP+Gj@8woe\aCƶq7$;O@:3p Y9y@ +9 z0g`}VKZ&5Kxz,`rgAbJ8K/2,\NPα`I#8)[]:ҕx{DmIG'FQPz k-}ݷVp<pmڕFMݝk›b#O"X~eRc!S!đqhN+ݻ=H+Cpm3!pZ#l ޳kˮ=+RysmYYX<VfNmAWym2(ޔo �ٳ^ /M_z̝'.1:K[h`Ͳ`JӅ VDG,swud <{91ob[|<6:ܔ c#83^Wb+w~ȭg[y ?kx/o|JєY|gzYZ@w|.�0pGjm=[:qSʲMq~�=hZ ~k6eY-2fBGӒ1hf6]dq.  yŅI$O=@-&[?!j&%ڧ9 7=_>> |"+*:iD }92 k>pѢ?dЦЁON8^VRYn@#B 8Eό/fuҩ 3}|$?X;;w'?bZ82=0ZMzԃ{d?,{;*�y%n.4Izqɉ0_s4p-ő cg)l<O>ul@],D-/be((tm@02Dƥ_7|Zw endstream endobj 118 0 obj << /Length 2361 /Filter /FlateDecode >> stream xڝYݏ6߿B=DFbUC[ EpmdʢOwp<|H>w1߯YÃ.(UI$,Xmª.Jum7UCxZ, Ll@uwt_invq=56ħ%[EwaAbIb)e[{vRx3l(-I\3 k 8[s#xڅiVw+cj+ҨLөʫ.UX4D} ,` FtO 5 X7 q6Ln1{hT1Ak371xc*wb֑:@kTái4Vѧ?tLfY;sm3dژւuF{rSѳ&s#v"JkJwBv˴s98T;nCMc=;%nn4pZC u)<'U~3_wWa84vϺ@9pɖgq^Gi.f:s4*noȋ,ԘD&Ϛ#R1C!㲔yr7XRWER*wz<<(s"ϝ.*C2�;0 Uԕq&Rc=Q"Xк%f!EF`y@5adBhVZKq1ty+08 ?RURr_ :ʆ\2?Pu7}㒔ZjK9ZhBa\@q\8|^s"¼Nϖθ}EVl~]x(D7%~qWщq2~ sOaRM}UB Q( ) ],/?;HbP,3G*xDT^z\'Z_&ENgˤ [zMLE&"|9}AuwG Q%d9cxS s%c DhJnڥ7`3QYf4RyMRsiR/jۛUX KmTb2 %(BwM _D[9c$<wXc%k)` shsjD^#baA6 藳YoK|1nDyvTHZp;L$ &+6ֺ@bsɴ(RO]m:\;>9za�NU=%gÝEe['~Yh陭`Nx=MZ%9"Jc+(dOxHu=5x8no0%$ wu�^n]gSO1.M!o|f{$ $bIe;kwm2ȣHn#y$(Cy4.GL_U~ai�gJpo_F b ϔfFfz䌧J%/𠻵 3+z5X\ ))u�t?atjjjzy>á^j׼sӏKQq0 T&uYb7"<T/�R)B[Q ' Л!(`HqHޜzj%q\B*M|| (@t1Ԅ`oN{4qտӀD!{tugawU;>}߿qDfY* IL4e#D3QL@e$ zS h|MXgi1<+;3ؿ7'6-xTTW9I^QFq1';-"uRHy(Z,W䙐ZÉEGl,ߕ"R;Ԭ9$M g7ue+_Y#$W2/c�KH<$`\P M۾>Eș?l*wr̵1~{n=Im1c'E<u.B=)7> |SqE6̾{↡_!7fؤ5]T<zL$F8=cҺ?dՃpӗǟVwЌ/qlw[!_1TM"Ap*b<Py&"( 3b@>#%P6_箳Y [ _+2LޙZݵ/H̼k<�}˻#R\@6t+k!;xy[n=NZpA PFJ)_Ȃ endstream endobj 129 0 obj << /Length 1205 /Filter /FlateDecode >> stream xڭVKo6W{5#i-M6iSEڸ-=\J9#):gșamab5;3s'I6^,]zi0JUG,/8һZ#U/,Udu v}%q-Oga,O: _h|"WwGvMhmd;Fu-.RQ>Y+ r1z]_$(?~v求{q*<Ii3羘xF-Zm^☳"I$?k *Z8"%Z5煕0Ʊ 7\c3V3Rd'1ˢ+3g G[ZƁp:4~o0_G\Oȃ-ԋÐ- =I'LsQ>Uiodږ,1!kGˋ;F[uն5ã2դHA95.]6҆ȱv̢8u^D,�`íXsqLu}3 0nN`7l @-f<9x88#>[xf"(bKP'v_TUeˊiz|K&?{Th$Bv [?DZLm~z&7sR>vp^iol`8R6*<AV]XM/ uШ۠L&-qy3hOp'ϓ[:ok)[)^lh)KN"84R~iIΆXЖ=EB`aZ=j}v1Elz%m&6�tڱS]°S�DַоDǏ~S\X&< mF_)ً (QPآ=:�!:s@!QhY"qɄ]"gdD͜\}L%Sȵ֙=8WG:L`(*3�飊X Y)Xغk /ng]ҡ!o6ӽo CP:kF` `O>aW5}!Jz=8Nie 'ǏJuG/]\9  Xƒםex}>{0HX&9ƷA2/9Q endstream endobj 124 0 obj << /Type /XObject /Subtype /Image /Width 840 /Height 294 /BitsPerComponent 8 /ColorSpace [/Indexed /DeviceRGB 3 132 0 R] /Length 3780 /Filter /FlateDecode >> stream x흋( �m;3!U)F������������������������������������������������������������������������lG_[&�|M^��O���*҆G�D?.3��������>60#n%𞬁G�WG3ՋGG4GGxpG0 |d�<#<#�<#iFD?=AU =<'tGGCOG#xF׉Gn |nQ{W6 L OܣRxwSOQr'>'pG[W8#+_}0ԮkLL'4ؿƗ+ݣ<`MsW*W4tУiLyIϑM(Tz4Od<xJcbncw`I 5 *Ex4<E+MB)v<kdG!_Wݺh6 |ݣ$UfYvU̢p? \ܨo슾4y>PK{n{\i,e(x~]u`̮U =2}!?TO,QBmP)9K%BNi`=~2{ZZ}I!yr+!A<'`w˒n iD HYAĬi(Z6G0\2E μ.R^Cxzj=*ȡBY$emҷUf%S@m \{Y壀Gps|B: *?,<>uW+KKEI"ԜLZ&i %qR1$+N=#o:<C7ƠB^\V{@*xKi֨&ȥѶnouޛdalT+8џ#= 56gwnBQ9٫ t{}x|GM?GȟuHKxGS$ў'i>h|G ܫ*! <ZFA;kEd|GOG,j5~mAMFݍGxޟ5;&r& ;{=#ۦMAAMSkz:|#7qA(j<D2Ѷ/vvi#<zTA<]m~-@dU8c;9"~ۢ=z&b5VGcdC]:v nff+j3&I2*<£v2 CZ61sM^GiuqBE|Q6 <,*6YFQ^67w_w76vҩf<NX]1&fG$:|;65lQ}٬,1UU hJG.6G-u my5DQKbLd4_ug2x$AT#=JbxN^C[ʣl5>!{n=CEëAzt^Uuvj~K+VuÄ U4bEu[_aoa w;:hgĺچP"wSX5d](ou ss4z D 2]唕3+mlńVg̴]:XBW(Tjkۊ'U}x9=Dyt}WG;]c6ұnѣ NU:d3?W$?y=/ŝzk7=kczy7t~520Gх2ֆee%I|N*ZT3QxgG7M=xQnܾ*g :qdl6E3ΡU32!0˅>(ţ|ӯ^EY)w8`g(h9N$sXhmDQt~ՏXg]dfs[ Qwoz }=#$U(7X|cffפNQeع*DO@Wg{̘YY GG4E)U FExpm#U=F#<:!~xGhGxJHuxx6˲xt>WG_ݱ$1G<Z~STqH~x')1>#<^o-=scGx,xn"ͽ[xDn+ o/њGxtk.|GVܯF*NG"ƍc`QrVIoޮq23)ttGX#wsy5d7:˟s(Vj,#J5H5itGj+\pzSK#Gx葜VAG{#J<:x/[A(mj _Y\QFrՊ$vK}Ni)h0~%{Ix\ZrZcWHiSGb:<B=変|8^Z^%L:`Gx$>kRC_jF'I7#I2jϵDr44MaW쑶cyHb~9;|@x$}#r%YA=+Fi3_nH'gu0 ;ʁ2&t̃1!2r~nѥ#Wy7ƙG<* =ѣ7 ӣ#q3H'FtFwz4:D;HG'j(QR|F_D4f'{$n~񷰐TX u)e҄ )UVHG,M8W]*H]"k7A{oX}7+mf7jlW9 %hKO1 \s ۊhZU&":YYCH;)A[ ?QUϔ$$m1"#]4C"6&Gx|(y~1.9c\fF펖u.: M7|3<.4<A5<0{V(=0%P%YxdUM'PwJFJTzjkixe\ݛ74=Z�kx-6zBi=Gxω'm]e5ﲳQTR<RMpdZZzom ,#3.i o֩9[lm:8\eO]6xG} I#�<�xGxpG�Q<1xD;h #Cch #> Cc�������������x&ߙ۳-oY坑UVl4;Jsq{v͉ߒu@]cxsu<uxH 3ά,s[#Œ# - 0+5A,-ؘmOjѠ*5kd5������������������������������������~{� �F�x@!�������������������������������܏� endstream endobj 132 0 obj << /Length 21 /Filter /FlateDecode >> stream xc``Xa߾}�X endstream endobj 135 0 obj << /Length 1116 /Filter /FlateDecode >> stream xڍVnF}Wy�sͽ4"vSnCӇ.ɺB;KZr0`g93T8]xR4qB4 d‰2(ş "RI1h\݆b2^~hX[GSAN%zЌ,$\2=vˈsH~4cKp]%KáGC QU㼔,Xt.oDPJr)/PWeח(e2p[mPuM1cwp"adY8CvM`ʯ xxU=Z6:햇 u5>jKtcbm·_tM9FJOgR! gP-nIC~x9h$��(comjj}ӫ<aFOt~RDŽ޽:XXXھ hy" V֨Ѣk=hEС.X,3(Ǖw/oL4NpNm k.Ѩ#4<.]_"G4(U-3hSJ-TYV ]O8~1OaNn-hD$s@ Aх)�OI ^5Dbnt]=5&;gݭc;�]-Ǚڢ{uhSK.uɅg^o!- \;n-4\Y%Pj%/Kj0QӉkw" ?ovNaWG:o \'XX,�UeV6Uly@-S^PZU<Wsf3mT? U~uΉ;'э>^ jzCͪ]U]o쇪HWrS>E_Q|Y\ 9밽2L); IdO Z^ "-œƄW)O'ʳ}:U�u*#!{"ܾuK{ o!CAa*sHqp»ʼn$L?)DHNG A$R Iz/ endstream endobj 125 0 obj << /Type /XObject /Subtype /Image /Width 840 /Height 294 /BitsPerComponent 8 /ColorSpace [/Indexed /DeviceRGB 3 139 0 R] /Length 3771 /Filter /FlateDecode >> stream x흋v�|dxlpW;U�������������������������������������������������������������������������\?;�u}t�5tq �Z<:@>�"xpMo���������>sG�OG3ՋGG4GGxpG0 |d�<#<#�<#iFD?G{t 2֫@{xX =#K x T5zN$<t`G GGj5J_=,<GGgvSO^QG bxȣxD+Aoj5&GG_jǕQu�G9I+H |+mџ&uh`OMǦ^y*='2 < 1q1ݿnkw`I 5 *Ex4<E+MB)N<5G^W`n]^4To*IGGF?<OB)3Wx]ם&:~1u`,1GɕBY֊:R G!UWJY�#GXCH,.5CT"D7)(cs'"Q#?!+Xugx[{%#mPdh$p5x)8&H{ L] R[ eRUJ^CxO{TL)$sݩfQ3J#u0U~#Xx|$vIAV E9Lhӌ#4J^.(cIV U,W{G^uxDnA5*n]'#e:$=,Y Fۺӣ?{ѯ$ggZ1d>;}GU݆MH#<*"{A_-?]$p}|G_xD<~GM?GȟuHKxGS$ў'i>h|G ܫ*!-#[e ĝGB>£#Zj5ۚQ&#Q#<zCO{9ewڽDmSѿ`txG=ґś8 {~GHA5Y"hۗj;h4 .6U *Z߶h~6]/R, hlsJGT>`|tlѶ ojF;c.cB#<zm'Ӫ0;kS3wm::_GVwg <oQ>esJPV __1Ԉ5fu'z`c'zj;cb~hqTZ[J"s˷cQ_&:r kt$o=_yRQCk$ɔ[O6يJuG߹p(GO 1ң$#zhKyG# dOҭv@տxhx56#T.~!wʲN:/wqyQ]>Lݯ-ZMaH+vX4^w(z|~{FI+mؼ%̮{=[C&%r6YQ{;:?g@7 HkQ,;\NY1CVLXiuL#͛ƪtG*tW[V? 46{+{Wщ:Dwoimc!>tiNH"8z^;fozݯ YWe JR!T<76"٭g> lcWqrCU9KXԉ#g)bw)Y.iWxakݾ(+L-gՉd ͳA^8pv8Ef67,UuZKX7$JG!Js4e7۽&}wGj/5Uo/% }"oʾj5<;TcbȆ]gT*K/Qõ~W m ?2x eh^BG@+yG+xo*IЯ#"$%GxG>y|;G0`[G|ntoЭ#<B;Gּy!xG[{#^>"~5RwGxn>M7u>75ns&x4'H⤜sNm\D5I)էg<<r7H<'Gq\CYq8xqjibEO2:$ZQ`MQFx'<>:=b|G=muty<Rˣ+юGe9(�-YA++9(YN<BZĎp)M1گqo?IyuK C˂UNkʙ#4mãPQW}GG4єO'K ëDiP' w}g-Q*qvK$58Ws#Q"^#SFw~tQi1 =|,I/v֗o_.4$+gD>:3#q&X^ 䌹N5<Avg2XP&đN^{!XZy3=ԣR>#DV[-3=zt|y䁱><RBxy<*whIx4ʣ=}0=> ~A15Oգ!ؑdF:)VۍmzT|CDIm>}?xJ+쑸BRc5ԥI3TYQ"yD4\㟟\!w=t<#u]ɋtJCLBcM 17X>,Wxy\( G[IKV7EӚ2q)yEp9dULIB&/?UYA3D*ґ?n3oxGʇs!(/3F{of$[YhY.Q*Xy_tChi@7sB4ZãsghŏKm S_\ U%GVXt.{ǬDoDxGY& aӽys^Jӣ GZb'hXPK xG|ѕ_V.;E%#+GOV"<2Cрf 葳<=:\3mWyT�ޔ�G#�<#[=^.1> G|@4h1xDch m1xDch 3��������������d}jw 9[DcVygd* %y=<o:Y lLKD˩1k9: Y:<ruk$9ygH-bɑwG ḻ'Tch~N5Ijh ������������������������������������=�F�EB#�<_ ��������������������������������+ endstream endobj 139 0 obj << /Length 21 /Filter /FlateDecode >> stream xc``Xa߾}�X endstream endobj 142 0 obj << /Length 1454 /Filter /FlateDecode >> stream xڵX[s8~"ĵ3} d0ynw2 m< v!A8dX|:7a#{tֿ';GA(ٌB^0BuGzcb7uE$*,`Y)=r{[g.('U�F& B35ľF0hc؎RvL|Wz�Q϶kP`<VL䑰-=<f7s[401 /ɩg2/& �<"8z|~ ]%gf�l[5d vyƳɀ:іOa CD})]/(>9ͤE6n*O..$?=) 簰Vtk.2Z sF1S{t>NlPOo1VWt1]&O X;L':S?;MdvT(*;<$ٞOY  7=Y󲾎-y} } ?Rg]6U:Է5G/ׂǦK6o&y(�t@z9޸)*M T<zuQP AT=̓q -+^-r5Rp-/xo|+(>2M2'(r7lɲ4+nuSq "{ )gS$Xc`uCcIEal:aM.cNj~Rv[;^Tޱ܈0&'3i#k۱bm mblAְ?79Q]g^B<Ԉd8N~2jjnoEXES#@aG 2P5jaWO]`[|5n@དྷX3֏f)T;체sMՂi ш,.NGseJʃ<JClr59Y)Pq~>F~HіŨ3WTbH �ch*wgSv!m쒭Z26g=N:IPLIx`ZrNUIzSu<;F.U}v~CV{ljQ8/{/~ѯR}V\N?pWlAtK=Ǫctӈ"]ilf%aPwtLmp۽ M+jC,X%9ՄaRm>.%T [KU&qPBqIA'0*~P++&J[~Qʏ p{nvi$Zn-#wjG%&^{ (bq5|]Aсo$ZR@^h}!+@׶c}EֳxuiCDŊ:W^ډ2TXwT'W^.3�'4y/;f endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 810 /Length 2259 /Filter /FlateDecode >> stream xZn}WU_aY6YrMlaAc1E $x>f&G2z.:u&PU‹Eh0 m5xY<AOQx*=0FDMIS#>֞jCbqQ0pMF) 0pRp^8KI Q8!BA8X a1 X�(cw. < DA"@ AD�D qk "*aTA4R":@wp`(" `EIU`>lKZA"\eÓl<`7@h#fAK`kpAQZ#؍$@a td,pX@K"@86ހ4XSAjDB 36fCPLCHP)? qUlBaG0B'MXqHq4'iI=Y1Q5"3&3AH`;0jDc2gg_ffx%-r<J\<DK<x sf<0>7M]TgʩJDZg ic~o*q9Ti3/Y(If|7iGѬA0ȬYmS)dqDj]<m&͸p\}\9nM\3ial[ \2eQ ]o(.۳kK{@L fod!bB2Q<q4Q̛&ٻG4kskX=@HkdӁLw@N0g=Gmͭc*wo,0͠ [ݘ8o?gw\0LN/6/l6MYx/&,#[2f=2+~c~;{J! wܕx3)l,˅ r1W՛×ohMz�sDZO3yy=h>/gO⤮Yh)ޣ^sQ T⼒d-?.e<ZUUrySQér6) ݖ~׿E2xNCO&ׇ(CM3hU5:O+pWhT|XM\b}K5 zG~= GjTFW% z-w它v!xHPjC]NV'֚ZX㏵b%\b%u*LD'푧uaXw+IW]45<IQ8/]4 }8.9 hKu0zyERj߶1ecXܥS8sz=Qu.N[b߅e{O )R3} Pe ,BZZ�- }X h;x򁕌7=bO(䌌D[HDw@qGaL|b$2DDAOeAW dW1dWT9>j:Iwxz8&4o>$(<| /&}KcHJo9ՠ\S@r\;NUhw>}T%5 CWծuG3}_Q{l"l.0B{BNICm4^K9=\'++` ) n3&x?r>Nkx ,P{g`}� A-Db%1^tvO[*bB 0v؄{`zjBPZ(48.}Ea=5I;+W)CKX)^֡!퉗Ӛ>ۇӲw޻oHZ Rwz֏ܡ;8_0=$ixKXQlY˱kt-сGQXK _7:T?=zMs ttqQ՞ jfRH{2ކy|s?o񶉽 =i5J#oDQ^|m[G l?Z k�Ћ=L.>4w~g՜[q *zy,-ųgH%�a&>o$mRcBuF;i{JUӇ&%7Xi+lt mdlf#V:i</}Y}Q:oYގov4h}D% endstream endobj 149 0 obj << /Length 149 /Filter /FlateDecode >> stream x3135R0P0Bc3csCB.c46K$r9yr+p{�E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.�sud endstream endobj 170 0 obj << /Length1 1807 /Length2 13216 /Length3 0 /Length 14356 /Filter /FlateDecode >> stream xڍP ]Ipwwwww 8r9jf^{ݻjȉ? mm>33rD5,̰*NVaՀ6b8� >lND9[`fdց jbn H�aElM͜>@eD `3 d t0728?v42('7+#)?5 t:� 7]=,9@/a278~8�d_6e">�=G"s? l lmL&V@qYz'7':D+Gۏxs+Ÿ �B� ɑHqb6"@'G?;�>ݝ˵u2116 cg;Us{gߜ?6S��݌@G ޞvv�2&XOG o"X&&hjnO3/qn�-Əc0JÌmmy *Rʪj_3;33#< W-/.�B \ PڌlF_Lϐ]GFĝSEX[\g)KU5¶V'd1 B6V=FsGqs7_]A2*:�>312tY~<= 1<Sq�Lh t 6N!&(;;A_ 0q2A,�"8'� B&.20lA1d0 ~Pb/!1% 6Rl Y?/RY NǏqN?vr2s�)N (_  FO)@veֈ'Ȣ6Z$z*g'Dd̀-;^=1[UWϳzDŶgx6i3*^^jZ@s9\%JCe^Jg?GFi͓f-`@:}&ArCC͙z'>fQ؍CMu|S4֒g-lՠ5l|~]hd9FVjFS� J:h`b Jґb,|sWR Pcڎ .XlnIk;>,GH2 YdMU/ybJ#Zy??[|dƉ0lPx{WوVC5-F4^'W޴Kb#ǯ :)f,ağeYҩ[ ֎`ӊO3sY?K/PY"%t"|'29/mOTq E5t }YSnX0dy}(Ӄ]e LQ{v's1-\*g/ukH^I_Mɏ2 Wb<x3>g%~jsвҴz3sNo_]dV:iW1j RB\PzM\jm],#F<ʺ43xk1p>\A H rt. eda9q塙9bGVb V&$~�+di8ǃNjֈkmZ $#Z;nCy_3SӹY h, BLxx0;b5/l]3nOʹ J8'Ҕ. U, &si͘W OYDi2"'zdW5/fSzkCnl88" c8+Z2^SX[͋)83phtʊ?)(m*pku#w7Zz٭pl Buگ~ѝ1JƎE*A:% a^eGj[fGt2+uȈ.rZtK?Zlѭ7adK*ԑXTd*D';ᾧP݅mIӯhzw%c ohFH>Tī.KHީC\۞{!(rAi0()"(j9QZP9in=k;z%5tV!uVGM&Dѵ^X&şvvtޝd1ޛ~*r\9^!Y 1Xt8@c\&X|ʯmJ( wT7t+ DfA¦J]#~]끢=/֒<wͭ:̰ŹW�GLM0.R1ˣ;@ Ap>ȪdrCYDSlt1;xַqn"muia+O :_Vn!8)/[9$srAc})Q`[wgcr$F9JTGiaɁ^4|/C/'~yrp'm U1oG1P_be~@( :׏}b3_T(Xſ(YWsxYfm5Δ9 D 9 �B4ˀ܆ǏCͫ&'%task.aj Bf5șD`i4]R.E\`mKH�NjѬ-Clw U*ӃMB/)-k,{pcUԪ=۫`$/"uC:hVC)1/QOa-]|"锌3[?KsbHo[axNWl8,I|D1}8˭XH^ZJ;5lRhAYMnff{jcÕRp*f*g#A1TƎR|:Osir^s_K$Xc=I0#�:ÕjiWB||S�}];k[*}9o>jǷ>lCN 4 ]TsXH!\ tޥt(^_c*9&Yt v^WJ 7paa5@nWP]fl>`[q~xh&,*~f1Z0ЯmE|{F֩jʃ]irTiJde@LNnmj> |{ܲSU_DةN50-4; @r_a[A]yW!037`} }o1|Zx<JSp$jJZ fotɪ835#ӈoW=Y1RZI\aj%4 ;{u9" \VtP&I>7iȂMSZ4QcwM-T5daEokaX͑{$N<yB:/x&#^y!>V]or RA:P.זZf''#S"\CG,rPp*1ȳ>4D}9@ 4XQfJ= 9#8ꚓ`׻%5\}OULo{ ].FPd  ,{ eB}TKRz\EEzH#8(k6eRo8�ͅ(TַB[: Y%+ߖ<I[L  =Mdve0"K8{E[�7́(kiK>{pMT�d�E9[>SG'~%6Rln8(lHynA *%ϧ=Yxaa 'Bo?0I% ӟա^S>(fe].jPs'2ꭓY|{Yb@Q.)BJ Hn^aP8X$_3pqp)<Ƴ8[iĐ+y<UFK3N.l}c3[95׀XҐ=!OWB!JL+V1,ms^ u<Z~v_˜Wdq9D3INZsbCcDqhbU+eKp!h0?xݬ(`o*/|vH[t}jTňVG4_9^VW jțͽ"@1 y83g9GmpgJ]Y7 /D}LYX_7$(@{ɑ Vx*ڝ@SAOO{]1P@<aO0YkF"ܽy/ZS֮neЦ7Tmg.W AR<qxQj/oׂ`rm{K%dGUV9~]uۇ?ZŹ;?2Bmj"; O5@y=4=4IݢSbR4 /,Ub´S{9"lc֌>x^ v`|&/Xd|1Ppp@T>;rh/֥$[ ',H"^9wà _;B(s>D=RDΔd^i#HLVB�duar&:)hmkٷ&, )" ,e&&@ }#sI_~`� tm_usf)жRoxy]w,&?Y+x[a8zh-(J6I܋Iei,h9` O␟"�㷖퓕w? 9,QCNP L,,rgU*1^h#@")yAk;Sl{oYϷ20QDG 9SzuxmM#}M23;ХE5:dDFfzOx5鳎%OZX$1Æ@Kco{?)p<$$*6ReS5w~S(͡u]xYx&V \~eg֖ Nj]:/$ 4`ͅ8#a(9XzFѷ%w$DQ r +POS[)x$2:.1^^f?[Ǩ`Oۑ{}YJ$i;"[v</О9~_ڄ5bGLZwR;XعCq4|✧Mw"p]>0u<<ނC)iFlThP>־T`^_5@ډ)JʨDj?, I,ѵsPES='0XCbU̓>R2,&];P@dP={R&IxwFڟrR{(AXFм6j6%v75h2L4 Iū�x^st-$Wu08kn`Rp1w( ;pF#ʄ]mTc;-paG]L럽zocJK{-  Me=XP={2tqlʒ29HXZK؇7F8yx3[jvV(Oh9ϜGQ.4<޲OVXܖne+##VEj4|Ս7ؤf-f[̔7dZ1 JqÓ w<Aϸ<)�vo _7M>sOO�&L 0\mVyZ'BO201!) *'`@Q7S[dF',Y וy~[;m=M(MF ׿ E2G?T_QK(WᴺH|eӐQyYbTcV+:D/AGL"~m~-34fAAΦ=څZfUְ $rxrEgM"C@@OMi]xɴg;]V9xg:+bs_H(EQƘji-=wӝ脾JH,dKkRi``[T$Vl4@+pLS&6DI+t`(#p+�"Qpskef|W%7w|UđuI+*QIĪddN U҆ RR" 2i(t~" V&pL;%o%(=@)?М40A&9ƅ&U<K7(I>~鍵.DoYFh{饟Cm 5aa٣g &Gr*m=NMuX ]<S nVTsc# ˶ݷNQ{N $-9G~EҞfxF$$Qg 0B-> y42" I{SG-pr0~>K+VK!(}*Rk[;]> Lc[PِW*\7h.ssivkBh`y'Ӣv|7">Q-F L3R<D=Dv5a?=_SEd)3(mAy/#b") y{ae1c1Uq,*? 3Z(sFp5(Ae=Gg67&^N3$F|zF/CIE _ĵ~p$ Tֿ0x֮ՏyOnhM*xyݽИ[Ay .fUh"3!|)4�g =i7Q/T܅uLsfaLO;>R$:Xle](^R0;܈=u% zW>Cs}vhVV\oahɫE,C)>KNՏ: ~|)mp+uI 0ղ %|J@)r8[I=8BІPY,0 sqH B*&ίgYFdz5Z?~,(_>5LMiIuD'2#Q^"M-ٳUcAw; y< w1v*\s xזIPԵrgՒ`ޣV{C|9yaRQ,P|ȡN">E̡bg_:I&jw۹BKJ섴w#^WXZTdH#Q{` U W3К4د"$-U|J//~ߣ^*b5Zt]SGC^ugq/VUyni4e☙BȷpS טf!ܹNn!b\AAKWwؘ@$Y xj9j/U'r+^ʸ-XѬYAWAm F:?Ҫ�jpC~nz لAo+AJrHA_dtdؒʨx%3G? QmXQgn[Ô $Wrω;GmUExMFdV8f2abA"oqTP!];/Oظ:4PDeV>0"DWfxu:޾6{;5skZ> 2hYXBigƆl\m6@`f@OAHl[oiB7*i>DF :VCc`Tm*0bC=GkiE!e? u܂vh}"sn6<".F7HV�B_\ҧ~*tnWSQ{81sob |-W-jA.@!hC)WТ4<0TZz{*'>WO1~b;9uI¿%ٶpyC27j/maG-hl3t4-vfnB%Z{עRUMn>O@pLXp%(>pqjMBelM KD.z 镲s D,>*Lҝ?MWWos*Ҕ~WMF '2\)ف&[)I�˿ 6el~͂c8O? 7oAS|!Knַ6e/̵{;;(F29ܹHřΠ k0R-:2. c D3'uJй:)+!k܌׺4Hӭ9.Q81/, .68V% 5@a\2FL.e)orB.i).?չ2pd IXlq+RɺG`>22a]Q VD*LfɯMnޢOme|0MdV>ĸ ߔjrC{tLu 'E6e14Gu5U% <ԑD**ñezpJc&HAU0ŦEܓJ 컙IJԆh%WT&Rhb)fԔ=up53 YtF2)ɷ| 6:0T�AjsGY ` ᔸ6 /MG]sRAY+$CNQ-ɯz?ܖ[nT#ƊL&8)6"jSL1Ĉ=iv7wfi{1-/gimThaGV;%\(_jC>w¼ )3u FY"| 6lB`d"~f>p`}/վqTX^p?fݨj6CuU4:hjjR93QEcG;m/nGH>̣Qwڬ>Wg4=? b``'AE}2X??tioDR!"Y k\Y>HJ{BsG 2j$DT=4= t;!}&(n`i="'!2hGo"ð'\T+TYLF<!@-ڮJrmToeIe\w V;4&,䤦=-42teIApZo r- BAAl�$C7.ziȭg$v8<:W|Cbp.i̓C@7 CmQ*y @d'P{"~C܂vh.fML&_R q6 xp yTvR;?n=$'a 𯗚mL_eE2$ s_;.9"-h?q#K'7Ht>hjh`)s<Eե\g0svRߊ$5s5./?@P {ږ30&C:_ 9P[a"ۑ\]EUvcͫ-Z$X kS.4EId0 գ2&4*6yG"4ޠ /3gp xp& !idA^nkVuK%4OJQЛ}h̭O+&4ÿ=$) R L'nc;iO_{=#r{F{DJ2!vuqCrWf;h}B"•V{= `!n<?#~ts7}lZ}׎nLNCuh єưKc . "אc'ڞ!W^p]%=�R'~FJֻ;V] %~$![1h04UB2ř"D]%.7;HDRMЄ}omN{*FKv*A3!-*xn 'ܚW07B_/u뭒MYfB!mj0aY ] ߖfn}.##AC=7ɤV�*=nr $WeF}{ƴ y LMOIj(+ 1O~}U/B"iuU]s%mfvQm] �)V!ap~˹өR{(4to�z-0fTGI=8 oA[]-Rzhh~9pbCBG=?4|nzo p)j>Afdex Y™?*ɡj   @% . Rv QmE"gq1镻>ql6Z^ %wQ.)=G[iT"! 1Rl{"I$i'S5q.(E^8{547y[g%LHJ1u7\ 7%̝9=#(f؛;*+g<=w=xw5j|�ES%D0�5p8/ՊcC=yZ[X}DgKxw Ε{pwdQZ̀tO\s⹄}}1MҫXI}X΁xVu@3?p)ARrƪWsVaT*Vϝ�"Öɢ:pk֙&;j(SCCΗ1LK֘fm@༵)97c ? ŗEOJjfhJc4:L 'q-;i~L5̫'UE8#,MN1TzHN)-)RQ9 Rjr7ێ?L Q׻d9t:M?{'į ȴd֛ן""[抦PGŝ]=ɧe ޭ(JU_BgNy+4Q%ۧJ$ƕ~VPKL՗ETZ8=]ǪYmޔ)4::=$&md@F0!9 Dߙ *]m\igtgB%񣆈Q'aK ^3K>pcdPBD}tq^AIe ߔu$M6[jPTn Iﭗ!딤z8uQxXk֎LltLX/؞X?BL!DCxZlISS)tIVhcQBlD lc=/ZW ҋ`ܑrGKk c)ώ6Ft[͵S*#ܚUؗǎ\gͿ߬#UG|#W2'親f;T="jL;в(; DiE>N(KCs#ڻwpezhSx'/PX;T2m~FVDv19N<+@H~oy_|r%Z% D |7:*}IׇWZ֞| Vjn Ax先Ä‚%:W) ux%yB5i#lZ`OጌNi"̪gnI (F $Hr=|J<ly1IZs@洜?3 �.*[AvzFyL) �3(Otϗ?ap$ΥܝPgBtP89~3@խLEGf'[u$W Bw`<zNNZ-ߧ^wN6u/#WCaqv~yDNK-l-GaLZkY}×ixD)|}q^PO q ќ6RHovpl袋 aHMShGO_54V IB揆lXu6KOB6pպ8E!z)"pW`+H矖+dh1zJ 0G"qGɼܧI! 5L]PRgA�ΟF0ПChĻZK1 *M9AQwp\ԈI戬& Y<y/}PFN4Eij,cSڇ9#M<QhP}`Yx\jP[UY_.֣|DOnxd0[FLjJrŮ˻ l+:"^Rs N'E髤E<C+ iI|E`.2{7;+rȏ&%Dc'$YP NV#DYR}Xn/ļx3/TQq^[I""[j "VH2ewڴaIhaShv!8Pت~oمgi;uG|g͜@[=xud4p+Y:FKmx ver2L]+ لKh_c4ٗ�Ee BQ(Nj8m­X҇WԖ&7?Tq C*U<ǜk$6A̾B*q0#..!G[V;NL`HYDNYKErlzόGf?6P(xGd5xo.8Vҙt"!,:dA†bMzi'XyY:9mk5z 0`̊ HpV{!^e?rEh,YY]&~(fOgѱ@$YAT'q,,w nLEUN.n5Y5I>TBJ8Jw3VʔJAw{ts\R6_u:DF Ei2%0x*+ 4D0R"%.~R>1J%ȍl DY򉖵z1a,ް9[ǖa:ZHA)dVO)~ETA�*ID*m.k8H 6W9J1팘4kl |4Nz<O� u0hn#}%t2/FF_ls;n[~ݸZB- fgK/Xe԰>cOO%n A8dsY[ْ]i%]I.[sZqV U{yɯZd9eJNG05^ǟ.gSmmh+9v.OR $Gfǎ$jh՘!.(ƺNo#sHil˹`_7LAU.$VsojUӞ!>ZgBm[ S=MWm|Ng6#kC_5]w|#+X9U-#�)srTM9heWQWsf@PIR}X_ZC<'IЂGٚc)b)۩9^쌏Wt �?Ttq䠖ZpǃS�W]"c\/DMVN#L2֐WsJ1tBwnGt bP$ƻ ?2>h@kOaE.N.ö>N["cBWz@ILRD4b.j N{twYʔlqyȎAFץrk'A02'TX)O,Pz*ɠz>†`!v2q|l-G)1}%baW]rJ'NE97&b<P;UMI'X_@EkE"gܬ<J=+L_Zͅ%w6ɮ7%\\5wͲ7^hֳ§<c:k!5Xh(+ﻥ[{ZbsH_h­;e]l}s(k&^&՟'W.ξliVQ$&$qź4cÎ-Lʩ~:@zjei?ʏY� endstream endobj 172 0 obj << /Length1 2017 /Length2 13631 /Length3 0 /Length 14858 /Filter /FlateDecode >> stream xڍPk nŵwBq-R<@`/]Cqw"n+3LfZ~{ :$ sb`e�H(ppٹX9Qhh4N6Qh@`?,$@@W$Pbspp8x818�$.`3"+@brDػ;-,^@o�c f r��@'KkFS @b 9OzAK''{66WWWV#+B vA. 3_J@[п�4,RC̝\ l s|uq39�^e� +ˀ�8X9 45v�s , �ڙeq]`ɫߥb�+s4u�;9:mW6KٙI@lmAvN(' v�ݝ߇kmq2ۙEٞM$+oW �}L-Jn[=`J 6x:]@�'g?P88�f`S' l'd/z`7q�u v6>b61iuq)MSR\dpp�88|<�?v�}Jv {A�K : �Aga7}<Ho= @[-^'u !`MAZ]q:_wAm;J@f*`'S˿- qu�X8uL_י[z]M)eg 1k8yx@; (q�<9^ X N.Wr�s_':8xlMz`lRE|\�6?5_q(7MzE &keE|- _W1Kqv?k͖ܯt|CXD_R9^#=Mkԯgbnpx-WG5yWn\WD|76uvpx^g?7 2EY j#qeNe`\rP%`F,ikuGZt15Q(^mj eq`"H ECt5l tM'w*8w}2nu+!{UO,њQE49&sN,dHgn73Y/rL(޿ <u79c<58t `Gh=< cB" 盄a?qPt. Ll4(ܙ 5UݦiA]W4aڱY1!PdX347m5BAA"Q@?4]}‹h"I^' {bBޕcaI(!*0%E{ڃ/$%S0V5r/J_LE E`6>i:-ꁦbҭF#8s>g`+B@j\:P[20ԟfUf ^S' ]1+&@Te\ډy]ᬣr dDC(ʕ}MFnҵ꾱j`JZrTOwr[K[U^kZTio4[O3 Y1 #,RԎwsuN7cd17*ۃqJ BΖ%1sӃK9*EބM]](?X=4Vr|(p%UBl#ǘc<gZBRJL-+#2^=F[;4C*!\h|q>Y9gl헖 5/}d^К8�Y}%χh7DD hppI}/>Hkc1]аSkџ LS%S?~P,jɅ[L?I$[䯋R^x|Y3`:�j! ##6t0ntmrR/}֒eJL^OoB;mnp-8W>/'fqG\Gdje)Ւ&0!κ1M޾R0}!F;lYN^X$o>YQ(CB@ᏺ͊1ߦ ś8F*UH%7{8IH܉d<@0HLrDo?T Bk W^a'Hb5 b EHkMݏgr@9$-;]{ m{@e TJ/m%|_"d)eC?tHO\O`3/] ƃC{#P-V& Kq@'5m}eӒ c(GaR!f_K}.n3K`�XP0~G:tϥ HR?lhF烢xOik}Z>Wy֊arnK. w<Q'Y/VMZ2[b5#gWKN\`)=_Ijxwd3OzRܞ8}jl?1XF{ f}OMEHΤdі0M!P2qQO QUDaڥ«X}jB6wk{VbW't\n["෤\`)|59.$Z{&Ǥo2NN*GK8cM3oO0v8u4ZtT(@fr[He.?tUA_]nw߿Ck1Āk>^n eH@`-;̝Q&, l&آ qU%1TgW:T~C7䬠>.d;sd&, +"s^�XT`WAUcvG;we@E\W1VRR$y$"ܼv�3omzco$AKxbAzߨi b@'wI}7T2̯d yxBv\?N3P/0$kIP$yd~GD0jĦ>GXtYݬ*ɰ$4-n&!.f/%X@* /&^7T𔼝 *:#&Y!ӷ/ 4 ʜkۛ�zz͸*z7߬ g4( k|V3hS,;kPpmͮp7l(1Up MĿӐC/w'~ ދWTclEV(_KϲA~`(Wѷ =dVcKs?:8W|(NƟXv<\vYXh,tT a+$ұL)\.Ѐ&ڧK_Ή4Ξfh[[pUTֈtKQ%iDD~tYE_1xA#luBMu)J| )L!s c3\9.U9G'WCxF=c”CEv-n&[ujH*XÄsFo]V)e93*O^_Ǜd\6 ˾_ަ]2x# .\5i,y48\38_+NۗX},E_4q0ZA/a2ۃ.M"Gr {!;m25zv)Wabpg6;R?tRQ&P̓rcFP+KT\I'ڂs_(ttae)<QPb4'dʠ AcqK>"|R\FP <>% 9D6%nt֭R>lQ8u0ıf@p5*YyJvwdiu@JB- Z27{EGRC~E�t9C>V¶N6OS=􌜆`8odÂf cNQv/"S8ٻ;2Y_Dkrl{:dZ"ۮ޴vB İ\g<GV~ B݂-4Z;ӝf`=WCIsmIe\'vIW6oN~N12h:7a H[fs['{ 5^7`5-'ωd=Z:2aF< 58f|P%< c:kΧF~_Hs=Y`dG*z/reIZZGg98 ou@L2f#s\8ӓV~PSOy>Ez*߮lԗvMgsBgQ?ulS-:J`hm#Q{ٺJCaƮQ{N2"V{ϥo%``, F~d+rp4nFԬn Tc_u;w  @y,+qi(~?&\%;\CRd~Ѻ-߶.*W1T H&~nm;Fm# }Ye!W<SjlGef]H 7>;u?)`۞ۢU M~3Lt̩'Fl+ڞcCClS釣VuӿB=PC"Dl[ xd(x~ӇRfPRSXs'2{Yt�[iIIy]X1v�9|zamނumJ@o:<$BJ@%hyU }?n:>7G/rɊ.uDC;H__^Ӟz^1F%~jFajE=ݱcްR2EE-V!҄Q'N)8%S+BĠ/_@IO/tnAƺSPe'Ed$wT?dˮ1p"=]Fa:G#9 #<(_ɐY>eU�:Ό@񬢬RZRjїlHH:Wp<sJ2؍3jڵg@t:9k!tcF@ 3t68yٲ#l a̐fY$c#_ef#= |˲ڡEG۴!vgp8Ao>r'R .\wݒ|'?zKSqJzK7Q` gэK%'gެI!7x~JIarSv {,Yq6ZUš'ax}q;ӦKs^? piOᄸ'D^DzK<Gw<H#^&]:uU|'8 m<+O8,K$)tE]/^Cw9g뮄Tm^#9  f}db lf]*«L{J>6n:*4u=sI0vQs2\7C﨧@gfwހ_2APZMrTq기V):r bXSr,7nQcasV{p.C �Vʞ/{~v7fB$ja|C,+<x$iL$:EGqpH F )O#M{҅D`:NA+U%k- IrN*^\$U3Qe._v+�Ğxt64Pg|lQX |v>9&//?햗6 hijdze}+Y Zg ~|.jKf>0 տDW.vKÚ0/rFÊFiM&'V(s-vJ#ACQ흍(_*֤+pMэVYTOlRTG[viyNA+#\>50|&;^̘&ؽqHy* {3vD[ԠJDNG 8 F_ ;<_j<1GgmUGpu-uDujJn:YϨ0kH^jGupW5 ZMOۆ=2f- E4o7w*hK2y9iVֺs "pRMsͱ8casSڡ%].a $mgYNs5ql?x fM Ilp:Ǖ p1@T;c2]AQ+\HbX:[Zf`ROUvGlIO_Zl'>3)q_E-\1e>;'GAc2(+5%w#y QWzãnTwqK7-=�TT(Ο6ơk[*d>CLfieJۇ[rql͜ѪyaP¾~"?/r&-_4A wDscYCNMiϖNPXLl/Kh4[+E>G# +"T\;v}w'/g#,98=2,v<<c#acQգDcaf'5?T;ȆQAS "o9f_2\pN qoգ$$Z�T.Os#T`^U/,@aO+΁ބ*N.[ ^:\]{<M-+(I}$pE{BtJ1 G#(rW>$n'Ȗ1K_)=(S:gbGn1Kx[o9C>Lя?\^X(Oq`6L> `ր9 \61Ē@Lɣp\)2&ͺM3qT0@#;~ފ7 c[)|>e`CJTE6 z艳mU ;r@q$юLȎ0/Nn`r�$R cwԚVB( ^^J泅R-K?KJ.K7(�>^ YN!<p'dq=u"/"f< |45 a'm+X*]ZK8=Q!r'uaOVF /9o~)٬//DfkyP@bq2j)̝E2^y0)o[ZwŠMȹCOcIa^op{ D%Au*sou8ļU6m47}*mpW.WjME OOu6XZ^fuZxz{ _buGL�|]DF+V^ϴCn3boblu*!L2EhNc>tx!;d ֱU݇QD�/KP X6AQ:|yE(JvHW.@.'_"/o8xL Jݏ&*K%m u4ݑ409l=\]d)S?"9[BPB[_$bt|@`R;Zx2^ԭ[if.4:ω'zJ%gywBr ]]{0Zr}c6-e/b gJiX oY`ӣw'Vm۪̊>s‘<FLh˛*Y1B tmjbsb.g;T$jFB:ddR6�_c|t y-GlPIl!-#(I4)욢IΠV{Hzo _YnL|׊2ƘwHv%m55/)ΠUGN-v cˆӟ*[Ț;UvU#Tu8І}o\؅_>rgW18y_Ӎ$tqafb)r9# O̘U6ɓlJ|))}ދ@7@ |[*'6UDl,D-́w|j)DZ'O;F$W*5fꌔ.꠴dGdz_ 06m}J5V󍹌&u֓?@>Xk(e=^2څ/Ĩ«lTfYZWG7L /ԙ .@=@(uo8Oa$a^ Q& J͋<('H+ZG<0) Mcd |Ѕ5~ԇjkyP]O.Hm!"ae@ۈ87\xPMGw"яV Ch=X9AGd٬N8\PKwQs<k[⡍\]ӷCL^q{9a똃eVo*r/W&=RZ]Ye/kֺt #s8S JfVHYψt r =<9%,.u:V"Aͯl}x>xܢyht3KvEF|,_r"$K1܆<0fcG4'VQPFfbՈsM.ʶƌ5sqX\$7 eM:CwN91mxbR™3g3I Fue鍺SCىiu8oKԮ7':"42fe9;7R "pH) JA@g[?Uƃ]˭T`C =7t l^?ɞQs>miʳNL;sy-hs[ju.6ږg?2,N|ݥ,`$ĊZ b@c{2n|ll:v <?= ' o7yn,;W" , mfc_LGzttt+bv3M<el,-%%=v'D61ۼc ݾǂoL6Q_S [M36x<DPa<_҂ey|5Ynȳ"Wlu"8Z{ϻM$a*XDxUltsA&J42IbI܏6-u7~M+1hIPw0k,XLWAX(5m߅ Mǘ" NB` :ضjrcfnmmVY1͔U?э)*S?TC~`3) v[ld^l;VGgjzu1s�يᇈ=$Ts\ݏhn`jzY!vH&MZGd4'rr=R#D bSB╵egab9cQ6ѽx-q9G!mŚHBcyrs Q5X[a+w4`K_V-}[¼k*wN$~A^ 8&2,`v%j$h`ć%4lYSgwͰ' i~]!`�cK2^nBi-CoX'K87hSl?g8L#C+Skn $+4' zKAZ|/qg"Z{(�`"{j.CSulnN'G nJYTW؏/ŝu)r|4"9E]ibNSq6HDwSj+'b.3`ٺdg뚳X[vw%MzqR-~|˺񚫦)\)F ~4<ZTE"E:KwoIߓr8qx!Nb =OdܮUnVw'ټ27ѕ7gqM䣮G5~TMeŭg&;^»NhGN!/Zf<r1|9)Z4vkNO5;+7Bd_wLM醂Rk'-fw\'wa|j0!q?$H\ϊr{*뵰l`(z4Їʨ"o]i*YR䋄�Lϵtz6~+* )j jܼ[&�Ma<z!K:MꥂRɐej^wXr9/6]}ݨ>HP0S,)X+q'j3Íz5/2]k:ϩl`ɵXo/+{̔zM9c36"mi<XlߐXν~A1i: B].<kjy,}eYBt8}$ <r~@K&x2.lX{%3'NLxg&X JsAb>۬z1VNG0py_E`]~6ܯW CٗjQ-ĤJE!{� 1Trk'x:}V1?ִ~=u|V@}jtZYh_r/oې6~o?LwIޓc=Vjv&@H.) 'akfb?qw`M< E~K .~p|hrf4ElW~`h, .Iz>=HUPb_kJ'_Ɖ夬]L0:Z9< zػ f&dZå#? HH*.mu؋fEC:SHjBCg?.$.1;TF Iot(o NXU5ԥ[z>=Pl;сha?jwV6&Jlt٧(q7~UeaBs]C>74d54u]]Fh_zރZ{ܞg[!EcJAj@\Tڄ??~99^hɮ?6qJQ!ʱTfI1ztX!!\ql%y[hd8#'䭧g#]2 ̸7JbESMxzLG(e|eI5Tm%)]%)hQHX"ngZ䎆`3e9IKoA :2O@5ÇѕEMؓP/KqwxD8/]NQٌ#Nec;@Re):35?=dK4J-}81^+" 1 Ynk#J:|aP:*eKND '\ÇDfF&+269v\}=EBPNҭ1T\N^Ã]Ym=) Q-ܦ/d4}om�#fwppɃ[ڲ2lz]* de]*CI9UH9uX/xGQS:<r{$RNN̳/W5q=a[ 7_f*̟V(w&]pS_qMf;P)sb3>/1ѓ<<RXV[mk>ÀsFA䷘͞ǂ2*+Y -vxD]%K:?jLOc>dYcdkP(oB?6uWĜxu$,m۷o^ ۰BF9){uZ@M?1^af*e73b~U~O\ b\' *\WK$*k ޔn)/D)SϱJaHD-vڇiWԬ_I61 /_X}>nҺI_X d;qS]~6 -gj{*t iޮr3tidl9>XJPUdq=/E+G .o;Az(gǜ0J3?!`oY%3kޝ0lGg}z}ZR(e /n.٣pT냬+'0qr"BU~t$9(<SlɮB-_*%{t&ٝ cY!LX^.ڶV|;&1zR{XBoT @wӦ=dG2_>a =?㸫-پ) R)Us̅^}^fv1 !L$Xrxm֡"mg8h9@g*CZtH+}Fox>LZyW#i;x1jXW/ J+l6e"diݞgөRE_U4EK?}Dm c 6QŻxV8r6[dVz̔ f&$RLr=ݵ"vqo݊+m'IB%,l0߸͘ݗ <s8O:#ٽS=:; e8 x彞_q0=K#cn +CHYYi@JuQn$Λ\XDhtnXY8uY\`/A*uMW*[hzoھ ͼPS0' tf`cK/%BPr&2)lD>2jMX&HZǁ{=֓ 1\'Jƌ{֦^:^嗄~d]7jUS G%ݖ}=P47t"ݏ du[Wn,fvW{<LHo|HMHwR6,dC=4e&A#O;Xd/͸*^VH#M@* >@^pQks`.CƚiZH ~H!;KW/"Ă̡v DO,S્dt,;Mw{1jZ6 BMr𸑹g@싡`"6-]p7<"PyhHTRy" Peū{j> VEwO>k$LqSN(X<U%'d 2/ro*BY^(χ5I0 &lCQKzA Y<_Z`Ĵ_?o"G]4=~[.=nMJv4/=C)4q>ɵxdEFҿ[A8gmr`Rg9<[߲jd4]}2m #Y_ pKL'ޔ"׏Ìec<*rj<Z_~OXFB93F-CtL=;ySC!OIOsaʢ>Wh$ X]D.#D52$ȿZDݜ L1R9|M_r> 4&`.)E8:q[  o7 ʳ$l_(\ w{[2CLa(Kr9lk ǀUBIis BPtн7DŃ&#a:r4uA1 F[Q"iBH~s&\ .~/Ck֏twz0 <Z>~d ELoj}"z^Y !9xr?1+�%>6XgKˠ8W&bonp-_ zXuŒifb]ymɄci5*ALRo VO n^"|,PҾANxl+p+le1,H|\}Pۻ?\o"B]֏i BI{/"FCF PVա&A?;t<c�n">74t~ ]<ѷ=PX R_(ͰZuW'9b<'q V6CU $UaI#ƸX[pVY^?`Ks-) 2:HfSA~ _9T%A淋Q/j5b:۵uѳ8w!c/~ǘ엄9'heӷcVҁJols b;ZZ>eme*hajdKK)|ƫY�{ endstream endobj 174 0 obj << /Length1 1484 /Length2 7619 /Length3 0 /Length 8617 /Filter /FlateDecode >> stream xڍT6t*1t�Rҩt# 330t Hw ҂4Hw7Rԇ995k<]a-!p+7@NM@� �̺PWflf} =�9`>ĩa�e7��O3 +xC�52qf;y!6fq V @ j q|X �Ё[A!^UM/хdx@]m& P9Bbƃ еeׁ[zj<daq*@ +X�.{w$N f:@�<\� ; ˇ?�2Z�X!N.<.PyyeX`OX=l_'k{|P7  Q; BB�3�ie䏓 `@<`!�W?�`+baS ?> 0>h�郼p?ΗW]FSCM/=>܂�n~A _@ e4Aп�Daձ`{8]KZ�V_|RUo"߆?n#Ѻ> a `Sr= ߛuQzBPW+ۿ]9@aM 0XV˃ sK*/(�! /#~@�IC<H>�),UmE�Vpfe/? |2/?S�/?Cq�^ C_b=7  n`z3hq#ĹLJ 3y[ϟ0}oǶgGI{Fejiu:ڣ|~Ԧ̜&X3ңgMw`ַ !qhIo]i09x><; SN#Pc{5QߥˆppGv'UlƧ0ɩ^GM'[UF I*ǜa3,߃q wdtd8Vb9xެy>1wht`iqڄ"[wzѴcgB> F5P[5Drh%0Ve%*%ڀQ%5VyN;=57)WD|q=C�CR^hZi ]* i qWg07PEVAۭ#2a>zyٖ6Jo \gِI!xn(قSϳO2iT|TVW2gNV2pK[trtM^cr;Ӭ�\(^R04 "դXY#FNRBh&0G[EF/L kD~R<*8jrwi5/%*N!bh8_EӨE7B!_<ҍε8"$`{Xh -"u+v.MpPXQ *C[Vb6܊kH7({,І+~ B,*=fۜՁ<8곜i, țA)ha`r! T< Kom_ ܉?̨;(9=:/p^}Cm!n)_,_ [jRpiUlhZێpkR% 68Ynє?mr}eQIUF}mw!]=W[r$) mBVS(0Lī�g/ gb"Fx?PvtQ,'8W_9"gܤ?Oec6Uؿp:\uI+6'do/`x cG+񋋥Gⱻ e][kgנVnQ)0:d6 )l}4d(Ji'O͛gY#Fsv+qU1;#M3$+rW`H#Y"/5uC0]_L.!x~ޤE9ȣu{d!.̅:I/Q }~AYIf*yI]Lu!?.fk<)TS˔YpZ9_cI|i-O</FG }հL ($ȳM%45j<$bpd c 4dSxFk2rcssɴ8hq{3Wfj3$!'=DRfn`\ėЬzL]cPVԵM]@SP 3$ [U%N!FFc j2Q([cZ辝l(i*$vܙ ,~;:VӰ/~r]^ve�&ҹ+ׄG.mݭq:YB J0\Nnnx:OvzuV6J>'iXhYs>M (޹s?Y1mKBGƊۯSxkSر"튥- 컾ѓi)濞ZT 1+=/lJ>Ev ŏ: 77IY+MNay+SLczLULPi}O0Qʈ<˦M/3.hnOPy)懝v}?*�*Q(jFGTSEE9=%iUW&Ǐ':bi#21ag~):Z"NF?]}ɹK7fl^86DqHW8w8ZK%9�C7<Eh|,[։t\>lp}vOe/2+O:[z@LEur|'}t}Z]zblGxPCBhpgxǖ1#L-17Kkڇ'"\tYvy0F}Y+пd/qoT;DN'L!VD<rt0eIz'.AuL['nz;`oɔ~1?&@<3-*X& Yrz,Ǯ=NMbʫN΋mgD7/ [7io覹,R+ݪeQKy 7SC DXϐA*j 0ֹjy.3`&+$DP'A)UT&[ݖM+HHt4R{t!SwHj2eZs_Lbu/l j SDx'.#駿Qsk%{mvD]+|So2؄ |k%aSΞO?oD)GKg'5}:%nZuk$q楫 bv�G,R2/osAqEQps+"nP�%`>0دjf˪iZZb? z6geh Lӝ|R_hpap1rNuU꺹a(}qni\ $ \z ߯fnޑG4(^_D+"Zh0i9%Րc834ץWE )To>>W| JW|Vg4Fhvsw~l'Pz<ί5/0'H[Cc,;ϸϡ'S׮BՐf8g{6J`Ib:44 K>$c0GPVSZZ 4" JMu1|j-}:llͩ aܺ4s\=Cz!D>|d�T6s_,?sr)pc>Z2 C/ cq[>0g-+9Y]R,<Ch� |m B>t/>߬ J2F~o#;5?B -9isfuGB}"Sl].ӧ&:1TÏ_宬|,tC`GBx뼒ws�JC嗇YNFZ%߾Rl"*;#~PR@eZumU0eeiphN\FLZ7*Nvg~t:G XW_wq oؐ”6WcneOO?ьz70em6#K).)=T/gh-M2tS,'3i^.LD:j<x*ͼ&{=yDxrp74R E O_]݄'A&F+9=6!E%j*金7m֢4v|9�#mXOQE&KkLO.M%7])(rP`l*Qmn& -D`8Fjxzo SߡsOz4=|i Y1&Bb_+00½QSW6k^wwrgpd " Fb ~ix8 "2̨DP'cNK1đ:ؗP&VT f\aF'tXoBI}\qŊiQ2cr:;q揰5ִGw!\ szJG|fe7Nj_N+* bZQ$Zn-i%L1Mdz90).rwQ*LO`zm̖A2fY,Rio;"y1Qqg (H}"aH~A[uv'ξHY KK:Dzox!T{_.5wgu1%{\8m6K7 i؀Ĩs,lI]7W9} !D lr{$]'Y<[aީRQfh"L/)!oux|ER5!xHH~ SNv4wQlp)N]z2BnkΔi~`ⶇ|xy> @*hk9BB79^i*C%�8ߊ V�4V`*/آKIQwGZs$$eK^j|O5?;WF]+gSK;-`+TP�;=u/vʤ(u=eOli3rFh�xyES=7 8%Zc8Г92-ѝ*,6k&lCګ*|MnA~;AF jJ[Kb i4bJM<ľh`;sGY(fƞ_iң)$*ؙJɬF36\ȝztUK LwqMrW4AqHlޙ/39\\PJBVsExf?gdgp98"FI)7O;0{Dj&% ݇ȾWf$mF<w�/^l^Hg%e?8;9ӪHpW6Q#a [;=]nQ@xN㔶밶 q[L^)@E &z:2-ȧf-x|11 S\}pf;Ir d;)urlzI% ]14$b~Vz7H5[(eVA+}d?Kc62n�Bػyc+]8v@G-N[boo(" u G( |.2xĕ;(*ɴ o8aũ9*�̧#.LotbFRS2*z]m3ZjԠ@k$reAppmN&'ƜvVr^7׃( MTޓQMrm4Qa|nE Q|JoM$&%<gZ$#HȥUmd#ЕnJ( TTd)RBF˓<ZGʾ xܯm DBURPъ7ujM[֟v$_uzGoɪc3ծoDZ$ŷ1[]Ml0I/AkÓ_ 3俠!9?}l<t"|ne|6s-5/Q33QS XȷE.h4wIgw>⃺ƻce>z/wWmJ #x=#MzE\rz aB@)r-^\sAށx pO7)!0zmwh>~N:=o>##dӺ"xt(kOdX*?MWg<N|t $D{vחXP_b(tҬ xsl7.| o2]!a>^D51NJrԅy>2GV6BNY_;-ևv=f^6DduNTڛIZhZ6lq[G^{W5 ) fχT[3FH fцg΂ZKh6n\RFvI1Ѩئt=m`Q4(<zanUr)O;~ۼjV*Z"{&N,2ʯBpYhxF?y;w1ů5y?Ganʛ'K*dP&5->iu)Bd|xLʠ.#DD <Dg-Q$>(\®5޾"tWn!yGJ_5;oN]/u"d~2j#}lra*fy4iRBqҺ5ҕ[Ojo[ۢR2mُ_rɲFnEX>!$q?~G1*b`my} FO_: ؀zi~ljr`$AryM#aI.ˆ_\yAn@orRC9afHLܚ#YE h:Gum^p,k"D[}\�dxoW^x4w1]J|A%Gj^ƈRrIv3 \K[l5 [tb�,eEe5@1tzHryma= huD;)$%p#oPxz׫'Ɠ %fKT*>wxC66xÔǹ"!%k\`Ϊ-# 0\ǢPjpIG/gxe:[<8xQfkI0W?x铨2qaăHD!%?g•z+|T/Puxa.aVQn,nba6xK|74b߫ .Vʁ:eqUuN:8`ygEeWBѤ,y (c @9jʯ/5|gZ/%v_#qNuYK4ؖ9|恈_ +9jݧ❌-L{*L(9vk*"Z't[U xӘ,ЉfLHڜUjqɃկn43{X[}3o+vG3娕-91jr]/=w=\(ԭ8t"-FΑkM/ӧ~OH`UWefiq@a} hMȽ/-Z=3a }tw_߅>sb W N4w݋q2g/MM$=eb?ŵ*n7-NЭV˻Lf\p؁{0hЈ\nR9#Um<^P?BrL^ Ť}_EH?Buڄ}r\hfs\1! C,9_Cz:úK=x0z)JKg'M sh mpxoxNL=4Ls!VhFA5ţ럼4< u01X)al\ISA뻌- endstream endobj 176 0 obj << /Length1 1448 /Length2 6897 /Length3 0 /Length 7874 /Filter /FlateDecode >> stream xڍw4]6тDFeFE] 3 w;E'z zD I>}^ksvgƬ#AZAW>^8@ASH � @ll0W8/1(D vEh;M$ �DA �?$/C$JvA��5$BtBl\k pv9BQ0k0 v:wzHk!8$\]ā@^ /e+ t.P;U0@ S/@Gq���"\n@oS�<v"k1�/߿+ lmtt#`[ <Vut_` v`+�e9�]_X`N..0 ( W_)PPkt۽N@l`ͯ" nN@ ZD @""�3�im^ [K A@/;r⟈�Y0b>|` Bs�{e{m|J54To<#$ Ą�"?haWaݦe8N?ci!Ѭ8&Hd?Sῢo$jG v2@=�H ghpT]1CD2 цZPm ץK,k&o=7R a0~!a�{�>|I@=S�E ].�tq~�$y rD�V#1�߈O�DDq( � Bo6K}7@PkDgrt<_F&پr̡.^rVe<[BȽ|Mq,vs^xKN_Z fǨ?l1nt}Ռ١Ɩ&JG~ѫYW:?6EgJXt' ,x-*s>+dS'dn^p ,??^,we5a:&gFѧ(N-,ȆbQ,X1'Y{oOJuV}eӐԊO{OӾ;xOH"PռƁD{V L_nM,<imE%a{:a.S3g3$x k?tZH1?~Ü-Y*\dOi F�Eg*K#! ۆds"vO\ɖ.V:쨯%cr:}=.VËQc - c`dJKHV’zv$dB.vX{Txӄ^3qE18/|V͈f?`Nx^c}.ya  ©|o_cOu^&ɝ}oÄvEt }ayQE3tYҹ;ZћI 9-_@ EO5, ʊ|p#Nv?R{8> Z0U}>Gډ*J{WEP"rt8Ho5:!ֹ{DC%ڗ3Fzu9$3 goM:iEMΚvkM8@uРV45rS@k|U/S*:;# zr=/Ea,a&QP[ Q-z{'?_짷OvRe20){`ȶVRqU,G&?|ׅ2;΅(UG$'Ho ۷4I<P;pt 0|,K`@  9|2k1[<v֗bNR=$(ꞄhE!~1ʲ�aQ|\*TY{FCXz7<$D/h<*==宰q.3cZaL2탳*UJXn|*dxUKܘȄ{+ (CXil+=;eh1-«f9y:];,b+u<؜8"PIRjچqb"xǷO:>y_SJi}WRE"}&:g{ѠQ(m߁Ҿl-~ҙ [#CqEǹ5,ɉ&簃#qA"iۤP5H"Ԓq*H{ lJ|,@H;QrѨ:pe=` ʐO鑔Ҹr[]`#F-vR-uNj%cOlZFYIore utl7aE݅܊4(rT'*OyF\MǍh{bUt*'SP$Ҫ âF sC-KEDQld>ߚq Ȕd=QӥoqQL^ E8uEpoઽYZD [F5:%3N LwB>lN/^5Y@>?(-+u ˜!ieaQ>(nadb&n~X\!Y66O,%Wχ^drz <_86X?ר뙨aB"?]-;}LD;Z41s93EZ2&(|M=MwkpBBum .ّc)F=U|!xsy2;oBr/Ec2R(]x0 ET#h"J, Fլ=wM`\'Ds�AƮ8� ^:r!J,<`b_ta Ӧ!S'Bn% ^3Z: 1kyrvIOVKtᶘC'ƷbӨ)5moalW'͎g[%I^ߍ"XYS];*lӁlMc{ yZte>>KRzJ%6Ke!1׋5C@noG%d cM)ڪzOxGmG^KS9E׸ne1#(>)M1aFclkqtGj>S?ۜc9}dJw8Čթslc8m2G,=ih<,k‰PMB5QFC=y qn=X lM&=am;pbō'Rzǥc8`p+e"a/SV}7Y'AlOgQf3}WN,gӥډOwlݡ{^w΄3w 5,#ɡ|docjT@ jwֶٌ_-{ЈQ {E͇@/,?^lUm�e7-ݳ.i<.R_R)*y3sK#&<4<lBeO!,dHG&.EL!ށ:wؐ59q;J?a;QAogIjE"x�Rp̎/Isf-nm@ W_uMn0>Cԩh=(ҌQ~w|n)6+ZeqgGvKN֫oK_}V=US;3ͯO9V x.Q< L\?!BuwJu9x"/8ڷҥG6 awpاzuq75x#>ty܍Է鬀1ZT.s{ƏuDd"9>8$NŨb4.f[c$f^|>ը>om햴C #.FJLod<uz1N+IZ@zb7yQ~iݗ 7et"7_[5 .Ⱥ]p7̶{T\F D2z,3`h\I12+X i>)p53áB xM9EqD'WO+*HɅ&U5aoW7UvX}I@YߊOVdG=U͵T1џ>58'՗mA_1j'+*%HTnGWcQitdx3g<|[za4Ve. &-ci%z[K0dqu7P(?_QQىq;-c!6ƥk%vt|PK-3~*oLHYvȏ.:e _^{NM' tDj|X.o庥p>6TMJ>=`h3]Bd 3l. _32<8,Nܽ"w1O%?],Ȼ%w8o�IXaBzI$pdjMwOɛJ %}{Yz4(M0(&=Ϫ>:GXu'dzYeD]I~�5qxF<g1q%0 4gO�y<zkE6r`<VuK5„Ti!זi\3Yu12b^6Ȱe;OCsGn N˷L`c}I%ZLf�4LTnZvoHEh%М۴.dcQJ%+1=>P,LS;k)<,E M4~QbC5YHHM+4Ť@{ޗy(E͍> ǯ SviQneU!EzCBS7. 8q$.H'l#[UV.(;tDpn,U*휟GI$JZ#>0kSCD9-{<Q$ Ů/ʤ %!jo9h߬ZSrv}W]:Lm쓣z9%C{$u76"F Vx K[rJ .rZU1 "Gf wH HO]'R ׯ${Y_ֳoꝄ崿 G ]w+E=8cxK&֨im $G;ߢz{7>FG-g3o&z:GG dֺP?91p!eK|73x8TwٻSghtmF ri uVK'psw`p475U^/KuG1{D*cw-Bɤȳ_J#e}ɽ+9v6b3' &'OHEשUS=Qm~0 .qܺlk7"Q +$<0{22CM|fzԪ,KdT.BZa61ŶkŋȻvϘԩ*B*}sFWlJbZ01)'stil bxLQe 2⬰8LTEZ4If]Lx= '^1D,/>q*׈=ۇ> L1((|^<8uyZŴp+~Żi|':t"sl\>ZCX994 K9#H{q|[L9(<Dg]>*qgR8ÃNB<c=7]*Cv2+j2c=qs,uGv7oj�pY8My/TXŀcq̈́OLGZyyl [Lr9 dJ{8%df4mqB>fUAbX]:_+OS6\8|o"+I]z57n-ca^[fcG(-pJ醥WGWECrҥ \ eGrHrp.^.4I 75/`9]0) .D,kU~9Ei19 nz}:/#~<SȠvҪr~M!5Ah8uKؔUp]Pq 4$ybfBh'q<B (h�}BL5c5{]>6nLnu`szMT~N(|ǮԘlOai_CYZApMƑ84@4D&z|,x40X3"ɾШ~^Py3] PhBuz}3!ٮ (}DBOG%5t-,^ Pft,C!11]+'2Wl4y!yƓl4p~-e){F+}=ۼՂo/:=:x1=5cV^s(T\Q3GKԳD;_(vH&s(QӓUQē(N>MS e08+g~Yb1.wDZa/PIFԁٶx)dM/o䲕P␁ ;;N:JP<UcKހ<춦Fn:7 t5DtqFR>?c@3J$ eM5U/ʤI[% kL0ev8fƏ='ER2-j~V &qa.E`J+ɉmgisd\eA!o8Z,|f4rIgMEMx;l3 8QpMNNC* ۉ/\ HZ2ʜY!fM?4hK`ZqG]ʻ#K^F=['L#] W+7(}1s9E͓Wdw@.ysazNԤ:wI57\]vS19` Cr6K\~;O\Q!*|᷼U=;W3@Vm<`ȅL0$@a@V^t4u*/b<}y PĨy$=)wkz;cU""IX\3Zizi.~xNY6-,avFnGMdIqShÂ:٨Ht`خ?K{8fOc@@v&"�Ɠ]tDӔR Rm\!_MOӍf쥍v<qUn/cIj_<MBt8`_rQLNO(?e:^yJEw5|5z N:xusG!0( d2sz,o<Rѝgz7E8a)so BFi%+WH$219R³%&FYTHol,H&jpgvoYUP/D 7N$tUy2&OfmӍjQ;=VKWtHw^{LG`PK' /X;3="{%.7>^yF?,duФ+xnO56>(0=#k҅cb=J*[8% endstream endobj 178 0 obj << /Length1 1619 /Length2 3546 /Length3 0 /Length 4563 /Filter /FlateDecode >> stream xڍt 8mضl"=ef=Nh<fVY_Y"BdM;eJ,%kCq|113uvu2]@4DCj%  0BUL̒@#b J Q@, ciӔL}�R@*!Qj @")j>֗La1RY^; */ (p@pX`PEXq4zRad,G'@*H� *X?<dWH$*Cƒ�*X�f^ Ay:�gV"i;Ñ=� p%A md, Ed(%.aw,9`HQ^4*J n J GI4*V >�~=Hd?Е@»n [>Odbcsi@T�q^e<E\A@+b}AF7bE"<G\@7Ov () >9B"ÓIĀ?[c̭ 2f%gr * ;9𳍿"Hd@G1$\2]#%BV]m C$n$2֓@ IC TxF4,:$7HrHEB@EA9s $МL%l=2Pf8!Bv Go2PHQJJC{ a$2 W2ufUQ�eT87RR˂ �/CE%x+ V_^Hp_P{IzA!b@)A"O�4ErжC@oʶܡ0q}=dz{Uɍu*4*[-mTdH1o{ *f/$e蛷k:02숸$hp硪[ u0zL>,|Ѹr,JG&/ĴqZDy|6c.Qb6#ʻ6cfH :Fq:,2͸w c{ejS{V ~qvoEЮVV~Žv͎:ټ %&.0$|s lǗC08~7 Ae־*r]_N*MV5)%xsJ<\/{{ۺg`@&!UA&ΪA=U(^GٰEEv%܌g,c@fkuy=_1ʂr(jOV7$V4R%XGޒT]{c(ѾPP$Θy!3/r7_ᄆyabgdcKiRS,w-O)4:-Zh3 >*AB)XXg24x3.Pсfݱ2Ṳ3&~>)q;o1}^pkuFdQ6ǀZDj>2 ߏC%&iQ%WZǤ ?C":O+_sm탥KqsLJaM2A>€A*dTe_꾠L?l]]Ƀ05qncO8s1-E̪yo䲉x8>FTǴ uNG|}uuT, >+K�/%*6Og/ٷ68`xB=Ax:/$}i'z|+wǎD< Bdׄr7 C.Jv{9ǂ֪U R&t9eZizt i(v:�;u?kro., oL[i6$v7mQZǙc4G1B2]y}&)_9;pKU9Ox<2p^�9e .P(z..`↠܌R/Ջ:>3^n1BBTtwbMKMioPL7h&ɀq-R%p:uV0t\" dhv"8#'`sބ^=0Ⱟ8&ޓi<3my"Us M ь^XO'}4V['qL4]grPi\#֘|:}5N;q|TjXw.Ťy$կ 5K'JHQWT9LuCں]W 00Bt3>Ю䜂kj a*'DQd'N%if/iV3ٜ <j5+[s#B%)'c{}M..@eplzoi4au#fhfiEKkޡeWN/z4|u 01§etOr;NHs䰈xINTqZIHD+d<ӟ8j08)#~Ԍ_bz i*u~m:0M!!^צgU@D$[y3 v.7){bxwu=X'6]?Dm䂭ɋ&.Ji| LG?wGtż ;%4r=5Y,)(ҁ XOmClEp2P$OtǴcidېp5'[df{N7: 5&xn(iNO ?rXLG72Y'>_FrH(KWIcO܈KHx)~£Ђ&um R _AA 'q>%s=jݓ3Q4D>w&ב8q'W(>7M6Q4C%C i~ꁷC uQ=cCS\ԛ.^SH1k-wr ?rϗiIw|/C.]LHs&.)\ȸL˱si |,ȥ$~x֜=y,t2魣u%oiTjeV =oq$¶h8W{'H+`mWOg`Ie׵^y1D^Lcr1fLWXÉi7C425Gy=`Gh̬'N d59^53f5~TEMFlg6[x'o*զ+Q*· w3 j8[Ԗ\zH`J\#{\sTA.M5v|rg}Y1wჭ*كs$ͬ2^Z0r~s@UҵG{ Bép '٠}>#n;SeQ7{b^F4?F*3g|x?r 2/ >ȶco緵BrX'C7jR{<h9# eiVl#;Uj9ZE3xgڰ|nme_Lwn%- o% {+Y[`!6AC4M9ؽW:[ޔ޵^v;`mП7dlj:GPXGȆwO5vM5v~eDrj c%&Xi ԡ%'Ssf!q鬕A->ZRʕ k wcڟ h$<.rS{.hkb_DGNtMkn%j'lrWFnu6(`":_8:.'zov)̧j::]?ۂϲ8-! zp𢼘(I2wg&w}q}Aj^KLBHnn_<+,}k^N髊'`zpisA[ldm߳AsiyY#5hHwu%D^Lg#nJ~z)/<`Ym:-y{$"Ղ즊b>0o>=<r5m[ܱ'dF:E$v|.+_)ex2dEͯ/ŗrbjλ~EJWjkKbGhYv] zz'$o=J3�qD\X|x='_ؒ}6Ժ;g q$O'^ިUȨ|({s^;u_6,o. [ѯ Kyʶߔ`($XD,*UFK7E&y;|s$tyvnQyǢ'ޥW!WduTJ0Qylg`N5Sl otދo#-d=ꛯw6Ei\Vlt`>ؚQ"|KsMZ17(W3ˑ?}nِ4TxnK2> Lscg3"# 8.4YY[9?l endstream endobj 180 0 obj << /Length1 1394 /Length2 6064 /Length3 0 /Length 7017 /Filter /FlateDecode >> stream xڍwT6 *R%"$4W(R $${.;RD) U>kݻV3gcA%;BB iD@ � [2cR?*8GЩBp ~ PHU!;Pc\*(#RR~\ AppWBFh!8uBW +�@Fp,lqiM4qD`Q8$(\08Kpyc@c-] � XpB 9C`0+B 8@]W�Bv?,q \ PW!BOXa= Cf5 a?SE`0½{ 3[G a�-lD=kT88H򶨤8{&0B?Մ|(4Оa'�w8y�O?%� Cp@(;:A -Ax-A C!] 5ba]CmeS?-˨z �EA@0HLxpg;ğ:W i ^E]^?ԅy q??L?v+@8ˀo9\۪A @ XL$[#<vw8o֛\8~E|@ Lx` m` +5ȟ2TC C>q x'H@o0aM Bp g_= 9h(SG\ !I8 &'P0`j%aYҭC Bkr\ڨBqv֔Nd7XکC_0gR{ؾ ;4n|x+U3c%;lQԝ v=\T>v}H/UҦY]*eo,W'GA#R38tdۏ� U}4l/qhdYU.UM_[⾑A ՠSܰy:ǛrXau'm}4 =M+XN'x5JGh5552N`/ \cC[NYRg]tɞ 7Lsl3/ nH4*R}oYN{2[U26?_7Qx ,^p]\sEV\ſοFIswD0 FpT|\߻QNgGTx7u/H^}? �xҲ;dF;${('ο˷k*ND'ZZhhB%-(R9 }䉽Ho(Mi~%7weR�r!'6vEXw䮲[۰CQ6׾)^j6`DԘr5 N*ڲnV1)cv|m_kN*Ju-YevǘCw` oD�tiLM!ܤ}ig@Ʉ E o4ڙ`+V}RBMRC}ʡƱsX79 XGC2[!!b6dt'-) T_jEШ,Փ$5-٭L_8eG P.-13Ҩg\$ l͛fv7e L&ťotMO\d]E ^h86#qJ,c[uCo˅۷4~s;?eiE.(|;y(�:fzd^D)o6{O_*#tG7;;R s tSK&yQFc Ҁ-6ED* FW}p+SApǾ+#Iա,faE Z:/?2n +z⊚[ s>FnۑAL>6򒵇j7EnubG92BT6@E ~rrow2Glm�ؕ jDW-4g0+ؿ?[P䞨4cvK]o9LDq )! b;r[l1ܽ>V9Zԙn]F�_CwPYT\ H[=Uݵ 8'":AMjgї> Ht F{\6=f-e?iލNI]3#Jjh]]s*lv\g#;Jߝ>wR˴u 3,),3PmxŔ=X ]}(sإB$_V9;*VfE~Mkk٭ D3jo@n>x4h >Y8J|ңw(jt+~ȱ=rbWwiөx/4z?srlڏ=솛(]ΊDXҗVX-3IL BR2}#Zߨ8M?tczjj q&;'V[|TYPk<W/Bkjv#Ӎ#2~~gHH%~z>Ɵ6ߌ=-/W'ԉne<݌fe5<4a ;~a<378 #t{|S; }U*W!]OJ |wQN̻U%W8|sn6G E61M&<hkq6tjJwPmɘg?AM"%TuqVcR# rʝ 9/E -opILh7Rt2=uUc83B\dn 82"Zs xIv>%؍`5'3Rlpx(Ȥ&LtT\?gwIn-L?):i2׶bYpN= ^33/LwWV]Q+~=>( k,7t>fDim0fKS]5])2yU}ݡG9P7k}犈*OJ2vj"#b:ȓh앮ɶOBYj;jOIO]] * ?OY~$Z,R.%,ݬ̰}3: ~ �v}2ZyjrJx־)מ 8=kMq.Z=ys5jFq֦P鯕Z:i8㪖$11ho"(,N%]{.ڵp,1$S53h_O[=#Թ)Aݩ4w0gk$-LI|^#3b.c vWe֗DsI*;{<p!YDevxNӏqsӢoջN!/q*뗶n T($岏XߜNUb yJofmf|rPs%kƸ]-%--#2]8A\7OUҥ> >uQA n많y2[бCECOsPr FЌ{QNU&mopB>Vc ?w9Q5+ÆV.P[nE TtqZmhd]<eO'Fp{B+:Z˛ʪ,w*jLCwةy&PQPOYT3HqyKu/< } :G=WFXR<%~x28νp-(X@7_b(u3 u_Q7bjeBŁLrH" LRUSǏ"IOxvͿUdŽ1*[QWjMIiʗW ԍT|{8<kM{ނ0kDOvammĩ9T j/lF:װ^؇ܐ,h6r˨ZQ!xzռtFC{<=6ִ".Tnc y^Q_ ]:#St{N^q] , MN>u>^#[IBe?zKHR&=jIX1%'EfYBN+(9Ӕb͔F%U[2>ޮ?^d˵^sP_0pI&* GX!Aٵ*䶆ClK+i#e9)νK693$1T{7(2WG{J4@ji DƢODuY檧I<&gMcE\7r>4x홴Rv|T5N=O1m7BQM/$* 4IҺx5Sd֕g=թw ^-F$q7:B},=Yώz?}πQ 1'Pg3ظJJIKҙ.|e@dS}e_3}V!M&򫎀.ޔ{cJγ*+ST=t<7|$go;QwH|o C+:xJrBj5 &n6e>ŭGj#]ΒcP2|I۾J9̹ъKf&wND>ha h;Ƨ݂Hm0'J}=8>42}"ҐgH(>!&!xƳU:f&AJ2/D$դ=sF`]]rZ{k%}^%Yyn&őt{RM9"oUdZϝ^0h]^ m (v3S.#{<m.Ms4t&˜b-nz[_AɒK9 ~~NT/sqf{EAw#A2EcmJ]Y}FMTeyS 3O 7}K(4E")QS 窖WQ$OuSǭ\9[ ^RbxaIU2YQrVnb.c8 +5>>|mAsrF8-V\$o(NLNks t#2N7Lr:flejdEA.qgmQkiԕ6+=rԧURˡJCS.xYS yDxjJQc 0'EI˪bY-cwT&;.JFAS|<xil*\PH;!گȽ+ç@a2#3'e-76`wKɅS,)5Avn^F}7<)v/xC[}eK߭z#ȋ j61ShfXNnfM\1+^WL]$ bsq ?5s kE|E9&LLPo$<4*C/|ۜ…/(|awM.nihYtCoUhUXk& 0TaXܭ䗒k{7;j4cq9.1Y` KVukYQyx41;#uTҮuG4(uv$jO?>mR�[2ULx nQP" -DqM8sPobB iZ43:HhlnLvA߆}dmSu:~L\fR(ZM6ݖ\t(+lе#ֹyEDMc}i 9\\+#7U]7rLV#%,vQ$�>-1^gf~ڮA<xoE+Hou=bս|A(GobKxcVw &ym?I54k\q@,Q1κ$h68^o F.gH]|ٻ!ut1䌨]LeW^U{RFQ٥SMypܱڵ^-C-a1g^a4SЈs3c ǹ]3-/ 8oGT.%! %Da\L<M=V`}iGw,6U MYyGU袻8[v*[gk ;lIQ.$8*{zTDu1q�V}?&#k]բ)93U{ϪH*~%>0h2;|ePe![ۢE}.If{&etxf21~^%9/:玐޻k*̐L׈a7-ss[hPSU~c8^ܔKrFP{,ݥ N2F͎kħ:֏rkOw}K4xt;WGSgK炘#^(�9VaWTv/<{=ig547%0*š]ekռ[N}ə^xPyW?d[Rr|w4uHxט=Y}%vŌޖWpcʩy1(3ԓK:TIO!]i'U6^w;ڒg7W Ԉvkӑ]>[##H| PyXdX5n6o'!),bwIg5K( 2 endstream endobj 182 0 obj << /Length1 2494 /Length2 21390 /Length3 0 /Length 22829 /Filter /FlateDecode >> stream xڌT. -0 twww7 )ݍHwww) HY5uu %)Pޕ `ffcdffET-F:y2se&`;{- `efCg^;u R98z9,\a+ƌ_�;3`jG439^EAohbl)Hr]@s&v*cD[\9Xz8`- hp7:j2�%G?7�F7_&ffv&^ {KPgtt}07mhb�7q7ٚ @RD`.幘9]]]@KdMw~ g^LLdons7G& {PF&`%�:fVLսR+qtpX�,>.&@o#D9` #a`A�=f�xmkLZ "T' `d\/~Mlw[8�xܦ @7xk�?Kl`^moے$lm6z�nPp�6s @sʸA?mH< W3+\@+�h|Zf6G x%/CJ؛9>1VN"x`aߢ9_K `bwp�,O$[0A\�&?$�$L Ib0IAl�&?8?EsQAj8i9u bs1�l ;oSg2 �ꟕ+X.SX+A(~Cb;9E6 <&+/G+_`//n_ۿ evnf=#`Gw3+5;8Qc8{@?eg.r3$vpm\K$ n+xo1 vrځ{8~�CNOӗ}ppn xRAp``z :f:꿞`fn^�zWBB:E=&(i|V;PRh벃oDRFz߮I^%}9im oKRi}2JP9hG\*><@@Ġ.|d U2ɍUΣ_@xaS,CF~P<ei9+1<ƅ'9WRzDXmָjuVn| |]<b_3T>ǩK>%˞%y(2fՁT>t�B 1>U4c9+a׵Ec~bwYnthXX~~̣X<6:m2܆ݍ4i YzIXEfTN`}cSeYrG8 Ůy%[ 8_M]\[IgdIDlS5�?T2]l0Wx'r,(a;X)bYHl4a)hXCh?ύMU!7ёu.n )7{ }EѴ&K<WʈSR( }]1X/ïƉЩtGv#2p QHQB5w}K{dc3{>5e-�> (*̫-M UOYqhwplXҀ MzŤ\]ZM_U:[B8Sf= T쇪3AuɹdK3r3ѯJhb,B͎ѣ!Sb*I0~BF~AEcYou ]tt¢aU4S(䒥$GrO ߺ ɣ4$c/9$,7G.6Cj75g  ]q t]q{*,_ NICqf9˹|c{e4J4x,Po9귵+eʴ֟{<4&`"TWawK^Կqs$gJQՑc\>BWjT$BLWT*k5J:UyN3SFCu C^7<pb$n�_n|2ٴ;Vv?㽛B5k?[bF~<']f;])@/J+-"d3Z <*G{XΤ|sE}U)-VOcn'2y=B}MaQOgd̉=:gӷC5_gF=v6wX *�FB2Vchnv?$aqyXPS+8oW7Ē(!xjT 'suRw<iƟ;d}0�,Pf v0narvZ a5x5v릔+0tƙ'pI[ILrl;)%X xI4EhD+q~p`Vmu#Ѽk[ֆM$HQ]vHDWǥ7Һxc* 렀d8BЉⵯpXɰ5^X夀)B'i6/w{fh KRzPvկmS1U佲@eMx-Q"#Mڏjk Ae8-8%풱CP9ǝ3wХxFzښCW*u(ʯ?#G':|pJzhIr1$Ƙև�rH@zK}_cۨ>okPr(.^~10gr!F XSoc"bVQ)wji_Xe0zczBfP-emOΪlMYqB˜ n?gIlbhsVbeWStT̻H$o~QURX]Q+ZABFB$lIco./t/pp<Q'"79k[HutsH2 :}9HB�̺!!r{H,A"z1^{nT ;L1-z$ӛ\+( 63H=<1tv 78$j'֏1[Snw.Ґ 6c`1^vcrBp%w>{qѡn+j9%}qCEsq.!SW*L;o2GⰄrFgQH l1~Jsw6rs|El$h`cJ!wJ_{ k>muD ``VBt7IţIj~+VI,qPߝA@Q|VgT7օ'xyUW1tePr30lCbP*Vv [oCyVsS%עr< >:I RcO#*)t udžs"ajU3OKu~ `8:>-!D.+?\#NJBjH^\}^@nhUDYv,M+zʷAMz~ͤzOjm &{#(Y$xTaĆLĚ&Eb9ɦ C,^8guEk&>O[mI,v"?\Rz.u2*nG]~]8da $x-"F3j~9='9dƵG6u tQN7`ѿϢw тf}8ҟbr۫Qwhx^5|<W!MȸS,=V$t ɨu]V@N|%BbD/"Nٓ=P:4;S#ߚ"[Lr6kûi}*=;Ɍ33;JGAV.v&&Q_,i+<Uޣ rO$I RpbQE<y҂GYhG~=lPVuc < 30ɺ8t{`o8lj8Qpv+VڸLqMBOe{*ԷFקA(]JO{"0 (iB0F8FkXM8|$gr/=u -Ƕ_U hþ7\2S#wd-˳ fQ657qC6ԭor?:/ʋ$i8&fKY軉YI#oX'تdSVGCRli~5QGT9 Q}k˛&Qҩ5ۺsun~_a4�3dc:)!!eu(J$ZNIDWe `YnЭPT*u՜_L8� :R |$<бD3:8ѡ[34w H9}Gĥ `;c{"2 N/L٤ծQֽ?Zͬ~ٗ2nj*ܓ1VJH t ʑ &T6peR#Bձs+׌&5tJe1rm+5dth\"BenT[K馩E))p~zbL<ZI~d"K4qxe@®l{jC;DJ5j1+ 5gI5x9&Ս X"fQal h.a!ޭ/MXھq'5nDvTkNw'V.\`)hD8G֞r :eUS=G?B]).|Ce~RhMP)f׋4,`v?o~YҺg$({xc^-_jO:dpBnA{K,><۴2dzvcĠPo_z"J)D(f[:)7#,G4Wy mO,5F~<V ˆRr7|UC'2N"l"[: ލΙY ߈Ǯ@m�D\ёO*?Ǣm3,iڝћ/s{W;KAW0ѦIAog4Ї"/he2fM~V$ ⻘S=ub;uy'ϏY^6� BWb/G7fr`y46((Fҫzk<5.[AsjBB\}7 ?~,:D;<q`lOZg+[}2-r}F ?C5\u.g,0n,5N-uĥR}}P).{Yet\"~k3$ׁ!vL{~GF >L7to-o^مY z?KgNf-]fL;5ήoKOi2?i+"#00t}rPh#}hQT=:HR-qZvYt9jI<1̹ 1ȱ,2}avxU _ j:j^'~ eALQߜHkJ/?qz)6djpj@%pFfbdf+, ZkY+tD.�4e|ڴfĜqՇE,ߤ%&+Du̽LPoF}?"x5O"&B@ Fv|UxNQa6|GvE6[im~F*�$8Z#Ys3ӠCv< 6áQ$TԘ(O*=2ӤBg˒GHpj=̟iۭa:-Z%ś?5Ta {~"=-y]w l`Gza+oJ#7Z;i(<DJMc- >iFR:f?&}rels6U#nP+šGi%>Fp?id?x^XbFa;n[+i[ǎsB*pq@ahND#UsXp�нv +_hTÌ* \(a;_PCbOXl޼$t/v̵˚ef0K% {\ֽ/$ecTǏوOY*!z=ڼDkBf7۟E8x>|%[lyccдBk�v[}wLjH\ӧ]_F'b.#Fh` Dʖc'c_*Q;PЏӿyzv\uyZZLg_kArCB!a sX4r7'+%J!޷wC>楎3!wRx {1?N5+e3&u@J^YԭCg%N 0Rڱ!A-RX3bh;̡}V^ f�fRZ3"=_\%pbڬdvݽՀX4xqT+=1*/y<ߗ+F)jVzsb_:0:|L0DfvVAo4Qtjv:&G=iZFk]ufQ5YI Egy$ WR[60L‚Fs̞+9* %CDd rpsK1l;kҢd ;%=jvz^8\9 P{94<zo iIco,HFXnH!}vvzOv-ˈ9<RЇU3~K>F$G;ɴ>}\W̫@i#ApPV/lƙ|ݪx6 ՝D?jba R~eekd'UAMJqS AT$[ ?% 9Quko]&Fv;=SI͏SIJLHLrJgfKmcI˨_? hEJXQGlYm9ULBaP?[ՔȪvtqC&eO5m ʏMKrp ΃3ŧӉ= w2@CeP~Aݙb4wn4\C-}|PWPT|ۆrF˟W`j̔Q*4яd]w|G4vUJq(jIpK%lNg9uy&0ld؎"M!1dL*_S|o YڞkI%tyd)!7~D~bXj/fXk_rLuȪhoxq/cK 8 }P9Ɍ^w68Y?EH+nmܹj4`㧊+5~DQMAMq%vQ2QP=sln%t w5cxW_#ρ@"New@>,tpw/2{WOГj0{"[ ,a`F"ǻF+G bel7+_hG2o,Ə4S@)A I5Pb Z[YkjP3 PM<ߤ9ēGmF!V*v}c 0ԻOYOƻ#cd cR/Ւ:Y*[ӭB"`B/XM/I1GEHkstjD@0~$xBc7^U]+M 67Ԋ@93tG uҸ7TP 6_uaY4]C e=ƌT]jkeJ?닗AU? V'ү%o}n~MM$px+uUa|nיΗtO?V{ظc{չܲ#g1D&&VA.ʄsEq 0L.%u:EJlܻ^-Z :a~bۆ>"3NwVڷZn&̧x"wO~pbԛ6*{\VNh7PSWV= .ZR]'ĔZXL;nqʇl=y\{y!V|- MӁ؝OWWV,WH]jIH}UlQ2πդJɞ h"(]"{:HU%ElsO궉+XLTV%Qƹۢæ[2,( ~@ xe]Ob,Q]E�fkc-ٴ<93:9Tc,R^F] q�$0V) ]|Ϣ yY_з N#ʐ\a6ܧw>|GP{N�6scI=KmҚ:3(hl<lx�4M"i2vz[Υ-lĊ1~(hN9ٟ)ʹe5(d{ڲH o4\rn%!]=XflYs9LJ/3JGw uZ~1K Z뵲ZmX|XްfЬ}!:";tSw.O?HTSKo;X}f#gpimgW/^YGz垟{!E"/9_*u�|t;ԫDc"娭TمF#JC|;s\Wj.u1hemIX^`ɚ*$dMꡏ)½]x1Є=0PW՞2y?f}['Lo&=bK]IBO6ic#6 ?0Xڥ'15o+{-'?xvfem䵩d}!<wȘv .)0d n6ʻ<LߵĆ{HEDox=۶B&LQ ڕ,DSe>Z>,Dd,$g?4J١ $�Z&S ɬ4(~C2hO@uj\L"{f b qn:@#%Ŵ"-J6er0~e_F8eXTI(mT8)1RXDM< �8\~+G0r8=~JcȬJQsbH4lM N!dȆ)V7Fvw1wQpϗ4)$0fnD_eXG'IwK6M0,)8#;F>k&}!BhMvx\[, jD :PndzX&,1S ,8ύI`ٿ}|PO߸^ m/aK$atZDvKԃ<LIJjvUm]I9<jQG 8 p>NJl WzÖ7+l~Wk;&nY>ΊW^6r.觷](IXsTaܭVZ>i營3kaMI0)U_?=o,hs=5qx%5Ř7+66S;{ӄ0L.[Jm]$3:f׿QFmOĭZHTKx+gpo_`i kKO{Rڑu;cpmAxzʱ;FK:瘀9~Z/(f{՜VdgD+K2M[|f񱫀\_[Ƌ_15 .<7-fj:#x<6c%7 SRwyʺw7{G*+u(_P|f򏎂}l_LL]ӒF39X{EDi>(!4p*_G`I֚Dx:#)P9/LtdLkHos\_!VE*Etd:>B&[h "rkgxn@ .l[{~j MvH7N+r;n<jrm+LFfI0Q756ʉ _=09H>i|'M1~3gfp(Z!+;qv?/ۯ\A+z}9�A* 1ш UhR;QaiUAzPcT`ΉF3sRέ`?$bT|]d&mN`!`S`w%96<eWB#s^}]mI>HQg0h<(9ק~ ȓw)*8Wh3Ƶ:sr#%f- 4릒HpW>2z<|';4hc6>oOfi,Y<jK AD.Aؓ6,8sdL ޺ͧ $aeŻ[h�UF^G9V AЈ -HrWڹ{ziM]uշDMw}"^sԐcy:13M[UD|_͓S;;]/<?cC{@' Nc^J#: )/*5ѻjU7 $fr$ݯ3Ԛ�X>0-Г³PjX.C@)3d1P|HL>A!h빇Ճ>&D 42yѝXaE$Q\@YLOTpE! O5|*Y1ꪶʬf. $g59!;J9nm 3l(1xbu<hFPz:Q3d9ҹO+*Ppn9Sg F0űUT|+ꑄ=if&n\B([oPGhQꊗ@ok bz63׷كYǃxڷ7VmͰRzv7GӼG Rjd>iՂ`q\tm;H a\h灋FcJk畻ȷ"2U kT :]H`t,"K^S1V?d^㧺 E'6,wߎŠ4u!!*RAh򉠶cYWm,jpc~sk{5Gx=SsT-\2�m#CbOƸ!0W%Px;^oPA2]/05A{Uw41+8%9s# E qJWeM=6 c\L{M>V$)(B]W'7gqB 4M|r@qmA&U5k5} U;13 jg).ɵ4û"Z.|P>U^+eSKuFh 4Oi*{>VW/&YKW\: ȳ[R䀲9eAbwl'`JrG!r|SұC%r[iX5ǏJ.&W1ߏ)R[u$'Váɤ%kx)J#gH-PS.epkJĆG#Ui`>х $,y[e%Mm%;3zK2u,""JU8D9%Y_,Eڇ�%3we@IXK(譔dEN0G[3v`ں@b%Bqy菈pkJ^Bmud@xmj |J">%1c YKgAƅܟWBmhjoSD a>s@6kg-y%>P&_$UUt*")0j<eeCI*i ;ʗsL?ψz֗T<zv_{@V_p薠pk^y^@h>|@>$ӰF\fbDx=:_&y辇 � Sn{=$k^7N$x}qmֵK|B5Z1B+nVC9ty4?!;eĕ� LN2H勋HrWޮ7ĨIVS0ʩj`{|By]p{Z27osM,ce ؠZwYe2?5ٞRk=cq'tceMe!JPC78$-tXL2eEէ0w f+Oc,1dh,0d̐_} N*2i"_l~*GR<@(5PfԽS77\UД$L*clo &Q5$N"swAr8[͘vdwۑZvq1RLRٵ&S:VpY)c�#c-Rl7wZx OCdm'.Knj&3бy#xQ Qmc(OkƝ/pGZREE& mUil.6GB/ 5dz`ڡؔiRu~qTck"W!0GF2_*gS+;W .h:A8JK_gnB|5HqW�я6R5#yr&3U%P>OXI ֙DNm@PylkMf:=ӄO4ȿƘ7$KL~e(ǎ,W)tfROy+1[C7«D~WU贻^w 0c."ί?ɦ RnVqMhν1&>$,&d]J]VU`iTZ,?rw]RgxLܯ[=zѯ 6*2@T2d1yޝsIj2Tt3P~+;ÜQWN]@fuOxS~BsQ\2DpNFK1aO.tiiVrj}glFJ<]h f[Q \Rz['E,:S;\?b|٠Z;).!jR?geZ 'lm_nz's=XQ{o<@Ixo9 qCT-%zP]bi!0>K`CEQU"{N1^OG}5D~-5o_: KPxR,ۺBcB'MΓ;6sƀr'f#sG3;Mn,$orלiQ1(O$BXDv ˭̫1bW-f /uOG]|V X:)(:q6i 񿆱9ݶU%Wz;VBMb颇/8S}kcзHWeN=}t*ʪ[|J5^{W 9/)4W.[w#R* &ʃ aA7hS9o3mr4'iB sO眆 Wh"-v/74R6]MI[Fz<%POChK:Sc?QJhG?/Zܳ'O_C-FQjgQ0D>P@+$PxAc[«_tRb A)u9 m("tN9(=nLDe'g>D#[^�-tR8EC ~l?ˈhJU+)yʺ/#KN"Xl*54OjmD@c8i:&Xcys^V&dm#RHOVCXewh ̤Z)lG,c, eٷҁY|_V xnDKS%DUlΎ9V^MHIK~Sت>3bGۆsȫ¾g|kXZT[8&篋% xnT UpIuK9:\e EBYVI9QD=Aл~eXˈOH! G!hޠ|*)koHll³\DntU~ִRW(q!%Z0G҅ntqq>[N{:D aK}l Uk-gv5k_G[ sc4 >}K݊aRj@a1]kH = zԗlԗyrckht şq~>'߸LDnv p&znj(abóΝ>{)6VR9٘QjnKlW-Nzz^<nѥC~("Uk MsmKV{$Nゔ0*N LsUIT~ȵBG.]; aE=RMEF7"+'?gј *~|-tϻ wT|#z8{{~39φ&Kil.q_4{�JF γTOz<MIGTԊg?*AFH]$a(U\˭S*i? DC7qc e}r憶?Zg]Tx;'P_4C&(~?ENklgi~[I 35)6<M9b_Ŏ8qvx*ۘ Ge|)dڑVUxl \͍Gn.@H>ñBmxG�QUQIh" #1('O<LPADH^Um!s;.꧰%܆wY&f,j-`{`ﴠE6!!®&Qhg|GݩrAjcɺ<kn.a5 { o-Xo}=JE]ɘf_|?9{ΈzR*Y(Rm{;?S)ص{؛rqE[+<&a)>dm&G^puo<3F^Pٲ9^ 4 wT%jptH+AEKʹ۫'ns( F%?J3A `�Mr9ˆ3nIjE#I\HRfD|mlG坈/<n2~FԻ,=h}RH)wbaf X#'6Sڈu]-4uj*=~ n{%1 utp`L5즁5mWIBo]KcQ6tңڢfvGлZe7BikᅟWʱOl0Q&z+)YJ}=%_$!C9ehH$iY �k_afU0“3+GeiaO!MSz_D޻^6o ЈSz,Hn.?( MsmNnh)(?"6}F5P?FDbcu= q/㵉ͦ-}T嬺߭nm%N�=OuOOIf9Xߨ{wɽ8H3@%|iÛWѳp'޿tc~@fAnIZ8moy,NOi&k; ա83U./CGY43}FN^>ƷD1~N\:c)U9lKCXKbߗ܂?[F+#$E mz4aޭQQVGwEr˒ӴFz`V <=ZgGeLji $=s# )QyZ_[dI^{sm&G<}׈桠X :sQZT崩Kj;agSuu r#(/EV̫)@Ummr܌Uٟ24 JVDH%񌏭cBimW-0B> Y^倂,g_'ŌUّ{|rD8-ZP'IJ?H I B.v4�f%#,vq[Qf{fs1Vs5wӀ�/c$v9HCw}>%AM2iRdBYw_NyVd}-bM^Y jM_p qiv.C؋<D*MYt/H΍b`D13jŤȖGi俖8=LP.pCdTx[4V:6 N5Gs[~EUC L0?8v-HPiWq:N@,Ҋ|(4wb!z?MNRgPn[ ~D91\d@EWdp{i!FMZbM7ڡB-<iX l,"m]RR!q FH3mҟKn.R"V q24CX IS(C,}N'S\yBC m9H\Rﲶ\q8ZET)5)�hk\ 5m^*z2=+s?ќ]fg[h`?BilΖ� #�VAzeYb^Er>qB{Üe|WAwy>4|cz[*i K0Nj^%n FE.Qq^IopPj'DU:SuuFJ*RUS:=knaL?֘$ / 83wu!>#o7MBVw~P mß3#lp [J%]wld@TY܃J`&v (z=_M][#yW&Fa[ ۗYDfTȋi:6KٔZd]y/?րQ ?JH܌|bBȑ53srn i. Q{.pxX/o'6 & vIOƟE[A- ~O4c-6lX@AfT͹AY7UBYN dJzq+ .ΐ 7tԖyP{Q<lika#3>-grx;谾 NׯNvZKRp(s+/',K2ҕ�SшD!lY㫄v~抰}t YAB|K..sDž5Ij9dm)[ǾۋS< b#4 ~=_ ^18rϋ ,u /.Ch 9N #NF/͟tugd+ m𝬊 Ul*Ѧ`gx$rcr,)hKDkƈԉ8Nz0[a+/qM +,#pO?+0Vl6l<b^seBԑiD%YrL掀*O$HثOCܺjqFcJ[Þܽb|2)@dFWK, )*êqts!n)9i�hME򧍄lg&Øtyi( \VN>';_ ն-kQ6Qۿ\I(9F9\cЃ#4pi' ?԰8樚o0^Nr)žFֹ>r<R5~{Z ÙQdGLH6>|P;w2 0M080fjNTԶABa% 9-Y2"Fnm1Ĵt4<ion׎!]!TDY3GؓLԄ 7&!{ jA)ؒS د  )F>)p!,5۽dMG,XfP۸ gH4ib<}6t1<( +JI(xBtύphis1-N [\©^c<F<!QTDHt˻Jww$UjV0M@w9ش̛6'ce<"*-\&GұSb[V1RmLb ;$XX$eJWL-�{%62.0o^9vYh9%!QR4!"DK#p Qulк.&,IGfOT<DnEmRwì7 AWW9 bbIdQKScUqfPPmt 3e:мr_C=i r n(5B4.kDK 'av�['-><]~5 :>'!7J.R|@i'2CaXۻ$ 4 h39 AL8T9DH0fu2ɖ`s &ܲFV/@Un6L]lx|3@P,zox{{Q`9 3$n!{j&4[}5YPR77B@{25zUMixDJ<`.RD)c$!$|śK??"RtkЄSlXv"]W*aro0&n*$VJԪ#7,걳')17ג>EU69bzӻ.+ u 85h�##(1Nt:aZES$"9ÌI.0&gGwfɼc?f@?t`@P^T:u2XƓ[cUqL>N5}k1.3>i=m�r5׬`;Tp>c0쇔\.h6kl8t5 �ݐK0ύTI.<]2 `acfȞj1׈k:P9:huӡКfXJ/ŤjrkyB<tkΘgIPPR)2M;{5bLx+Qt �{ȸ)r'𿫴 VSES(D吨g|l-G +Rx#+?cgܸ;_P OK�Ӻ|a)V,M;xpLT]ުV*Nu3-!Z3;G^% ֵyY.m}f쳃7PUtPytmzX7kGoο:?u-~hu Ezf0-W*K@ 3=M{VNVSG(5Wdq1l �aPvq E.**dgF('`OYa-,ѱ콍YAzS )#.uPzo͟4XL lO`U5=u-. {Oa^/H.9Z'(8diyS|vgm~R{{bĭKiGߙ}@MJAg1ա"GC_dLj-ԝ3 {Ez4ֆ};ǥw¶Bdrv8X҂|B%0d]LBR !BP[*~Pa}缣- 6C GMEp^L %4߄;q3o0iOmQK'"º2jI='<fOЖd:rPE?ۤi7*NB*:,@hb7)T8ifH^49$o\Wu>& .5-i Q +]o,p�CTZ<`9 XV/< 9g-W5\,.$RFoE>gYbjF'enPTJN q9 v{T|~]`h ~B/s3ҫDfW襙ĖzIq93jc &I؄@"7n*eBR]{ R E3즊foV5#c>C]~%L_k2^~ioyߓGF B!Hc<ƚFHyx9~evRxz(;V /P{˱gIE,ިլK•w*Jn2E\|m8^pqM&aI$ y6S=gG<*Ab-yZ* N <OP#a#u HW5*, 0C,:)|1,7KT6 TgxAL{S;'.:1`ߕ慮Z&=kYvmr7Tb žiGL+>x1<bp:i9')B&Y۫yO[|*[ hP؄?ts+vD+ g=Ӌ^Uz_ڷx`96Y߻ƿGlEFDӃ)aeWc>D{WL1>YBZtjnM;>!k0ծl/m%IKZ }s'8,Bײ'Nx�-f�U 6]*TYgS$rWgT.`5S9!/E5D&o Fv:!`Q7U-"6ǦО>nxigA c3 Sm"A_2.$A7rڱrkOmPN"̺ug:6u=\-t T!#Xغ^!S3U{(,t{'Vn;~D _>T!Zho5˼4~ط=Z>v,0@ )HfL}.͐dt߳ǙV[=,ʟ zԷ L+g ?-T8eDdEȟtǂzb_u5A6'O*<r"(ץP ayY#č)Dg ѧcGR&WgkIc d7vJe&R|<?6?Fu >)@_0qFaP~8 BnjVfA&E�cr-_čUD45R~(6T󑛑jD 1/1`c#.=@EkD�ŤF` iAl"ϼ~ כb}6k!SUcJ-zwN] 9_ rl.n.3߾G܁\ٝ$WXNu=ݣvi&'s@/4(.i:Ad"!QSQ6l9Fk(&! $SaS96I.'ϴs.2 gᅰy ^1fCo-T10\=><Z%j3 2z2-7+˺ށ YQ?e?Y<ޚ>T4ObߠjIPcYuX@:uoVT 1wgS%"yt<7έw OE@ SbZPvFEdpnL N]L+ê&&$ɫv6J(5:ّ {6tRr;"IJy8K~Vϧ?`CjتAjg3e=vWD\P ĥ.+0fT*T&oLH:]~n^_%9ky>f S endstream endobj 184 0 obj << /Length1 1539 /Length2 8358 /Length3 0 /Length 9380 /Filter /FlateDecode >> stream xڍP.SܽP\) $Z@qw)n-B/P(w2|ϒ[kzgD%[A07.n(@N]�q@LLzP7G_fl& +@t{[=ĩa�UwG�GPGH@" #DP0@ A\k`fqq ֖0֖�]5_vnn΢@'+7a+ t  0@ ggL�=;v]%x08B!0ׇ w�<t V3l�<< #l l6PG@SQˍ` tt?[zXB-( |h\Pg7WnWi� 07WC뇱{<Y6�;aPw_!&l7�@\�/k;oz=ogN}�& Pp�Z P?f͟P/ A{<�Oaq@c55Y#?;'+ rxx�"�!Y,U'UfYÔS_nK Z� xG4);:fq[:A xЬۃ[�PCȟ;Cݝ׫f20[ǿuUzAZP7k?]9Ba-+Y7"pA_�o =W@�`�apC{�8 �2M"A�Po$ �*@σA>�_/(�:y@� _ /�"\Jt> ?kXc/:jeh<v?JL3q."o1SjC2)}+ Ktwm?nu&w;>M9iz̥'  [)]_s@ɫaby,bnWs3ۊ)83LV9O1ܸh{\\NMө&r`o_VP1RSҢ^M2R#fɻ7^8j\!O͘&DY(*/cەJ0sWT׽TNڬ\95B :8"7y >{dF:vd) t~HZf]8֫WIZE-hۺl=WGWFTfNT}<IϭCݟ]NTf)LMM!{)y84/rh/EhЩR3pMwpزj:=nVWԼ&z݂9NiST~8rS5*kD۾wgM@Is5_}.1i'%Z"vHؽo4`)2bNs*K' d=, ^{QQ~xt' wTxT­m\na`]Zdaђ 30n`70P ch,/&,V`(�5$u;uc؀6q>IJppw%j?L4,<gfEͱJN/$Lg}~N,>Nk.AGA|uM[#r e7䤂xyNZl^,7 ̼6sv?&n 1hw'/:40OIdMQxMeAY8CK? OZNg&G0aK:I{DDpsAERxE>e)}k5 ~*pmwwI L}h Gh;Ut\ޢ+ߟ| CC_a)nC~jrP\w[9Z,Ҽ_V͍mc^i2QEI/q=RqNSaPg{ɫTzaI7{/"M[:TJ ]Ǖb:HGAR%qU${ܤzBɔ7͞ɁlRmrS H̶r/TŪ5z^-)=)y藕4$JͽxzhLf] zӧWO7<3; [+sh%;-T'e{.R 4OMKWAL4ΛF}`I}[ʄ{.-ď#}D5q'78Es6WǸD1"9>"yZѴ愦Wm' -M3;,]]:9G331f.ut]ǯOD5ȺNpfXJа20?MgIC ]&yN~+a$U1tLߢz;7É ERk¡v>=:,50-m/Np1F{88unم{VK&z,:SHy9Z گdQ_M1ҡ_wɐF[+Udq_0V>U&ÒI h:_H'~$9#b+9B񖩖ѹGB<"Ȏ25ϖ&rdl9& R|[p`mf.7'Y2eUx{(J*a)R4nbDQc2֩S 7$nd_ivw$sMWX,;*AŐk1.T%ɞ}ikhxbFQOmdћF1S҅;Qm"4/eX vcT-1@\#jv ɠ s>aW8_ ~LԢ¨CkvRp.")+"wg|sQ"=c3O(^!37$x`9oS7mtOָ?dθD}ǷEtr_\i7*3)iVJ,7ʛEɭuZ=-4gK~[0}&|Ճ`~$+ 3T~;H⚲Fb@J1f F1ca]Dv}W%/K$z v:X[UZycuћ̯Hs7_ E#Mp%$˫5 #wߺ؆� َh1%TvxY o((}^e cͽǁ- eob#`o#kВLmG!eio R$ XnV=E:hِg2h 9X[f;~Lt.x?f-g>ʊz.:ȲţÆK]CzZ=LJ9>~҅0EW=/hIY")qܑPUA/Q!�My0/Cai^.i^(ZFRCVb% IBjO^Mrzs@�Q[| ML>5XhN슑[&it>d ^ڧ}A=ΧB5 b՝z㞳_' q�)GpUbgBjO-Rm>=wgƪ*-ab oFL(/G\r?HD5ttG+jFA44eS1]Mlq~$Zs&\H}D zȎE"AO J^T5!%)rpP="#Z[uu̯_™]b?V 2&ɞD;a00b||N<5[| %0^/ʓH/W*f]oMz_qZ6B~_D<tQ]e1}^me47e%,#X´Fӵ.'R<]4!wjqkȔoJP Hy{7/*>]r ;S:)=2>(zSSfEE='8VIϒ4|0Hf+ix#F7ِ׀fcc ah˓ (@m0h߮)=_,m? !d7Scբąq= ک?uv#EC�g ܄/X^şFG}&a_Al6iwZ�jĻG@ǔ&!A:R[] b{5__,U 5v\;9bGdѯS X heZa1#ԏ㏥^ٶDGvԿ{q5<f`,GBvo!SQJ|߸2ᴶ@tqߑ0EjZ%%vbλ2<pwAJ|0/SOB/VIi/b~Qʅn'+~{# P-!%slQEe鲎uu3{+g 3`VI;8鞜LZC:=4Mu(Z>@h=q!W8#-GaAu#r=Vٟʠݼh9~ŝ\]î7Ie2>0P`BVl/nCS+9.TS/_:¼98رyT-'pϭC'n=yZѦO؈X~UM{uEb,sc8slypL 1d Zh,1mN0Qdn5]㗥7ָm]cþ^&G9fzL<-[G`܃˳}W`!!,'Ġ)S*kOs@S Qfha GΧ ~5?5kT063^6zZvۺ3Q>Xpqd&a&6$;L/BP;5FqGcE9{|mwIF@+BGa<<=gc3б!Ұ|sK%osJZePr6{;%pg)C4'g)OiV#-w YeCxA Xz#HQ0{<'u_' Գ㺘5=9ŗZ"%<o(NUق{ԣhжǺ13_t~;r/R+%.Vm]\]d\9 ƿb#Qբd"1eJt Lhݦtq*  lo2h߾G/?3$eRƆpq>63v'G+PrMM9'cC_7UӀ:#~̿[>?sj7.,3<(Z 2_zQ#{ͼi%OmSi.}h0y1籾/-Wlsdl4 /6e)?Bse;^ouq+oJ]禅"f\L`^miЏ� :SVx=L-ugrKk\GPl9xȑ4Aȝ0W : -n4;d~jl%&�%NyCV0IՇJc?q'C]+QӼxn700T"Q* FJ:uk d&s/n`NhN1ghb{CeQm5dg?\S $3-,ʵjY왴#ZGF% SԂ'P2r"wK.V˙{c/ G0Ɔ0ċX}t wp)b}4e'ql^ Vҥ -嘌%8^1[ :ǧ*G]_q;bT5终bxA1Lu}}P#ۥ5u?sl1XZ<]�c 9$f;dI2?5_ݣ񙔰!OeYMf񊴒lMsNx:-'ֱWuQFP$DhMu6odx94BO<.Ls|6BgGI[GG|실Kng7dӒ޳edk9dg<k|}UEeqK:d<˯B@!f$QY kwm}y֓mAy2w٘�ٵ|&!:9A k5Z_}WH^19E3"U}.µo&N ?frfbpPH3t$4ɱ2\//X+v^$JItLXuLc+6:c!DOjhvg $vHr hPɅ}$:/h11^ &l{O7YN2{##+,TQs],|m_œ,QZBY[p�+KZ2|"܏0O"*#ϒrKnNr& uhsń$#!c|`U5}m>_SX[?uB&K?7߾$`3T<? 5%6x=liÑlFZmN_E[XLLB)T{w8R%T:կSIWiݠjv<Fd;‰MmɡӛOm6�R K^%xIцGTT㧖/)zn췓K3zfʐ9odnkDI^<rE S]g|$wpu rq-U? BS$eC?HC74, Xu Ԛ=a,&Ѐ(e %mabE);m-|X^ hsZD#v9OpPGM<hTm6Y㟁괇XlnzbT5HnՈGd`/\mg4v o';/0J1&/_` yUk$TSld*-BVfO}ijSL;Ajq(qБkAђD NQ^&xH..W,qŇ)~. S݌o; $lS^J B fmҊ4.d@/H1U<o"hH|'GK5V!E t5�NxS[xD7 [C٢^2ނjvZ:N)_1>'ePxSܚ:٦UWm4M퐼6G[kZ"kl0dCo:ӟV" >S1V}irX�\~/'||6q};az?růuXVqQ>./f l=đq<v$PGHGe[} =%3wǽxIk*d[%snT`R>tA`+;ϝͅ5/kWH޼TV]C"AAB2:NoLo}4BE.V댉*�W?[ "E$o_Ο!9v.Kb׵,D>'s&Lb"ׅfANuZ9Ւ$0Y~e6zśGm[un_dyEU',#G]D]~@WA?xQEѮ3⟷#8edzf'Y=QKl뇯.qϻ7w8tAՍ&*>8SO9B%h .+:.imi}y_R([`i"5%\AjClŴV1iKv'i='24qqڌ@p(:N!e߫M|%hJw<3nss$Zs``_'*u1/{6r� {6>P*&/FFKrA+Z)^Ũ\ŘRk30I>4#޺aWPSv7oDŽlE҈ڻm23$ziXYRw'h.|Z$+nRҒc1rbmO<蒡dISȉL3ڎp+x?iϷI><exNh*9[bܗ\.nEjz>ye@NYpⴵ{ Ü/qǾ(Q[ЀC[MPYe).tU:`=sq DPS;Ϧw'il^o}^N9CcxbͶ`b@].7Rks y_#5RNDfFM>ktHnzF^Zi]86 \eM&Ϻ,웩CJXPwo?Q <s*# p`l"a-A>fPRozR y))z+d p>^ `QJ<~F:>yyzQuQwme{^e@L#Nu=#:aڦ]Qk\?;Q~ˎjv}bseJBE_~dI0At!GBDpiilY-hCэowvr4 C&,C0iTb%D]Kx!eHbߤRڹRG!@7^u�y{N@6M]nky ` <^Sf]ŇǮ}f\?nuwDָ$u9jO~(㽖ȵ<H_v=;H>J^%jkhOTǶ/*Z ?Fc-v7{hމ܊3x@ՋGB# ]:ĂD ]~~xV^갤0T `ßNdipc}o2i k_gx:[qUY71/(&-JxBc&6 x2UC (x8^3h�# endstream endobj 186 0 obj << /Length1 1660 /Length2 9458 /Length3 0 /Length 10532 /Filter /FlateDecode >> stream xڍP.C H2Xp -$!Hpw@={W[So?P3CMARP33  �9X@vT -/1* @d,0q~SB�r.�6�7`ycuH,�9(J#p[Z9?W�=wlf(8[O43C g A'`lbbug�j '+`XPi�V`?P g7GY` 6A=\ G�uY=ŸLwCp613ٛ@<KPR`qvwf@:AM\M&dnU<WyNf`{g''YyeI8qvBd|vux,sEسjB. YLE,A�N  �9�@fVkx؃P?WeX<[PL\A�gG׿P�`3g) A'd'~n#|�3̡[/298�@�[N�[^GQ1WYgϷ]?_AXJg҂�tp\ 4{~?3?&$bkGmb.W>OMAά"bZYg9X}`');\lf'Yk2[0u*�f6 tϓef9 <8}$ j{9�&&g"sr؞G, <wGi['x8��Vﳥ?j؞Y |j7|&#Y|n/yX�Vr| ]ϑ=�3GLj<w?}Pff7n;S4;)^ m.0?Wd9^~֍%Iw)HuT^(Ambu~oӁhM/ f Z6Mr49.<*y87n_kzKCgwTWpɣݗL2hFNfP"930`tǜ{"K`D9(]g\)`w$&% x%QΫsV#{ރ\a|zwPhk$R(QߵCtݻTII^a^ux̸MMчMqQtJ}\?u̓py2%Az1/ qI%s%{qYk !v ?]MݘVA ܄t[i4F廍kKLlCtKVQP[܏og/]1oZM #uh>(%3SC 5˃,}=t|%\@Q~mY=:IfܴxeP+:_$j0"%L$k-MFՎ) Ϥ#ڨ$*6AuHZMF8YVUf/Kǥ&]tQ[ƋX4)A17M>�t3ء04]Բ>U9_XqZo[:E5E zï؞'=Ot]`΋+҈ej0b GF0V+-j ze;RWɥIXTdA* fܤ-;Lrxi I|m{D|˯/<dr-E$iWHV]rurK!VfUuÉһ!DoQbc>!XC~lds$X'E;*+#0ۂœlB3Vf$_i!b/ae5_&/V[S.(yc3/ۯ-p0ޘg~{SogDIqg\.M,n {}Ec1Ir'@̒*fQq6b)e!4s ZIǡ:^YFs]Q 3ҢmW Z>jhtm;SyOZ 0"30M<b,3)xevDmͤ>p޸.ߣfL/~쇮⇾fh˕~kdoP;,̼y:l#?o?YHtl%qE k5RE=}#(->eOC^_vP~H"T#f1Xz||Yc&$y{g9c'cE}愸$K 6ku_zqHދ:ȑ15B{*WFkaW ޚ3Q #G ?&Uڳ*_oD񌱾 |ݦ,{VT9JV /gk'm/Qe;CX 4mѺm= oG>Q#6ga,ُ%qrV"YzsXJ˔.L-ֆ0bFHȭ.IO+i9 ֫ӷ%~Nte(e!L Rta0ݎg:`[wfg-O+<C;(67R9-f8nm̍Oia`:69r.ui Ĩn}'P0G5Nm⭂mtyᤡso%Gfb`-[\l˒˸(,wjiB/Z3D8B YֻHLۻvũaO"J[!4狉!@AIz|KAZY~ DD[Ui= |ǖ�k| w:ZMmΘ_÷Q0V_E( xx/W5wL1J`` F&i}^ M\ 1>TwUͽ~ݓxZvq;-N┕\xV)@=Dç6[3(jGiD˘qNr)娏A<HO '?D},8Z#՞ҌUO(tE뵗O[{_N+q~yT2N6Ka%>706Zk,y${>إ׳s1)>d6`qE j ^\J> 6&p[N%ou~p1.074 Kpa|8c"͖(#ˈ]QP-sBɱLZԙՋ` k{Dfv"y`E`8g^!vѵk4m޻S vY:[ [d|*Kj8?Q2\XݲfRe`eRN(ߝSYۉ$N`72!mqP^UO 2F1j vPeH3MoѽfW<J~KD]![ e:wDc[ It" @~*&$p] S<ZO}D`Ú ʟ!Bj\g+D[ NڣPQ1*ȁ7vw)e۬Fm\/ZhW,%teZ4L2#4$ j-֣-B*qF<S,FM](=mH3mACʻcOVHUt"8x1=dyTI7PPtYOF^5�xk/c5`MsbE]]̶o~U}Yk8rْicVod2LR WW!rM\\lFnގ!(x&t}i@~7Z3aR#zW[37 Ow`Ki< {fppsrZ݆�r~lpV3{sQl}KC}rYqzB „Fyb9W_ Mv@{*<xo2`'"$AFՅ9el :?ZWLݘ.TN=ɷ}RG|dwD"+?Ф|u!ݭ|]TdEVL2뼠4޶PqΪ]E=DD9d܁ "ieͷ5<$HvU6] |*Jp얥%j՜Uɿ^F LMoyA'76Q޼O wNao$eΟňux5_s,>wꅐXy֑dZ"Ӫ1-['68׀㝻F=p˵}쓮 oNIn- &m p/xj[͏kmq3%ᑚ#Ynqn} oMz!ܭAX,T߄|:z8>B)hI\i]e�$iT@bޥw+ˠvQVSo@dR!J#KuŊxW<$n&&[V=j+,_N+/7;T·$�Ye*ˉKp(AuXE0tSo-Q:LT3 j묟 PXVN͢ǹmعaZmc&}h5н+bZǪ/~9b$j>^UK?^oEcD\/�5F3MꞬ}nɒ1%:0}7yɾV1QZ_f45/KT^l5G6MB&otCXy.pLeOr)n2?bo_pLtגgiq,CRl*GNQ,/JGiUQtЮR u$]H,T%)RnRB;Py/VܣKfѩf&[LlqGi%Q; HDcʢ77$$i EF570|{OjJHvlhza~) *ѳ1GRi׵N<>Fkd;uD9Py闠)$HThw#*�%dH{VEoEu-󓭳lm2p@OY9cu5S'k+.OYoLjpvImJ̨_"af1=p;1Wu_an3�ȷw ZU7"mR%K%Ttr1">݂bdGOʬPϮqЏ)z8#ੈ�Q (a>u*:|O2cZ1dtgllGru2XŮn6\MS %jUJ 1wGQT8QR<,7+ōC)".6 y j%6qJULFӾjOս챶8P_Ѳ+P `mDK"F2'wIseډ˻ "?gjuղܱ֘OK$?N:]sUO9y4V`fr+]5fe~!Zr{} F&<'/:78+u+JIN{'eԃN8/:E܌XrySH"| ?u(fLɷ Xd<ͪpP}}rv)1_8�`J= d)>LFFL3fBxTax v:ŤFDjsOu ҜNK òU^ 3XnsJBGorrHJ7O�lVI!+#qLY`В1m;P/zA B\J2|bߜaFQہX2GΓBf~Hy�.@pf]!B51⩂+ZgP_ j;;aS>yU3k0R5Jb"]͑ΌO܇ ZPȈ9ɍu oGx[%VrRvl~v5|#Ihb)Zh Pp'0'z°$2x6Swv"ͷ(+�t^6?>+?P T|7a~Ctܕ},y/%1ѸJ|%I3nJ7C_ճSAeAş7H iGڹbNi ̓cYٝLX]QJf4]:fz <N'Oܐ4NS5};6bd\#+ CCnǪZ:<<HsxROky*^̯vǟ/JU_IGj2�h8k:bYuLg ~awr&[d4Q#XuˁA*�)8l%[R6^r Cֵ˲Yâ/?`2 j'MuRR(\8. )-拖T+[~m&MA�GoP룋b40{8 ^%^ ֲTeǽg垛0?[,LyB2cRpBQLhq kEM&Yk}@|oad~V)wj{0ɨP6v:Eѩ"s@7 ᩸/`.)Ϲh:lu^/8B/(\|!.6DXv kFxq0|/< ,k\k'=H˦fOmKH\gYujFxLMp <8*U*% (V:>[?*}m7ħ>m,y-cVXvr1N W`Á!P'8 sf3@Vm6LDnjs H2}25"Ȏ<:bcbi3sBsZ1y 𲊅QE,NN)e%bd6 KXk 6p 0G'2{\lS>26Ο+  U ;,T6GSX=E}M,PЩMè3]( !%+J۱8ؾEb!Qx<+)}a ;/ՊfpT?N}6u;a\OiZdI&ʟBM4HgSe!rXr=)+ w{>H41wQ+Wlk5y܈$N%Ht~XM=~K:2MDY$}+<CxR0S>ʔW.sxit0D$iico \Y.Xo>:IX'ެ|=i38A~eY$:+\|.$abfK&/]ka3%õ6IoIF05K/?3>~+f꫗L jXxU:9a4{"A+9՝Vkdi7M)=@4&7t;$pܩEP G-R#E]uHL}Ԉs\4մV{%~os Ei_G"!C 96%7A8“ZB̦p6KTAD؍ (<6>otz*XLv@\i3n34t㓯V; do@i%IJN vBV{@fS[Ke$N BJݬIiYu_8w�0ٹ�g &mw2(f9ѱd`<E~̜SM'WsC2b Z}:R }7O)r �S4H*3_ 0rˁ_0Ac�6y?u^qs֒*!Qjl5 Ļ( t/p~єLYjYjOIlj^,YcR~4zcB<Jw,gsr:qILhz6,#ky!Π~{ڒ<>#ZE,w,=GPncꄉ]oRy{^r0N/,Zd8w,`Yzܸ"İ & kw{?:NJ$ $ ZbG7^)Gwp6`::6?1MыKIIv5fu \=~GG8#!"FWM<["ԴpF[|&F;~cua`tW9mO ԑBl*)|8{#jۃEz.;a<:9i9'WҗM’3F �6-_M>>^\g ĞE'mx˘S`S@h UMK=wԯK�eob}qGaD8mq0lKf EAD=]E>lr{&ʲB vvr@,I'J#-@J )6 6.H`$[@/\xVy؆�륆)g=Wq6 B3!| lW=?|pMxDpchzyca;`Kb@/e"&*Gn8hjZsEr 3zd -svg1ӸM X)V=(m Cz~8)"{I)ָ̬ #2ZaCg;qlxx$UK8GCꈚ_&9>XúÏ 6uv˒loInf]Q!y)^Y/\zO9N5J ޹hn^a[N7 jAexS-z宵( +w}#Bz~m`eJk6 R!svj#g]D|ijUa5{>/aRW#Ie^&c}¤{6GRo]6BGZ+1nH«_AvܐHCl3{\X߁״|kC̊U1 ClN L_GJxO; lR㱖mg"[N,Ԥh];Qy4q,mwՏEwVyI/aAŏUc2i;XOSeL^SFv÷hꆏ,"+켎svmWusFaH"_Z-XwW {{/MAV=FfvOf,|MXa3"f 푐\rCX\:lfֹY蛾[oro׵}E]a6"=Ik9N˜Lg6 p,ɳ2u_PWjC:s#Pvuy( OE})^:Gݞznܵ7%UUI<`ɿcs,ŇP~-uc%jԌGb K\K;J"RQ{ Ϩj*aluU0vѺ뫧3dӒ$jk:|(S8AJARI}wz7.)}îMq"879{ mv4<THk$\pD&g.9 >H3PŰ9]L51NJsTyUSOpD_ q'佻s 4%렓>-OpX ]k{#a:EK@ށsF"vG<|ԉw(!{i\a@I zXBsv@2oUQeEguvJ䯴&1L{wJ:ՏhaNT 2G5i`3zr!P/٧2lw##*8:[F!uq !pmδr~\JW8C ʊ_YVh%ܛ?<;JeI<Tj] ^ZQq-9j;k-پ?ǒK故(32]^J&TZSWD}T dN Xi0川*8f}[hu͹A:jJttGU cjzJ=&XOLkpYSj9!U %ۭ//sˈbO1_E_SW%o?|P)0׫UW^(DTg "$3iDe"2q󸤷h3Fcgߞ>i@Pg.+],CxŇ 6FYX<{S -#ZEO9P""sN[* endstream endobj 188 0 obj << /Length1 1357 /Length2 5945 /Length3 0 /Length 6875 /Filter /FlateDecode >> stream xڍWTlS@$T1:6QBc66CB@B 4P@N}w9=Ͽ{LH�D"B`a,@T� @@9#�ZP^p$BP0'SqfH@ �%eR @!% P�]$ETCz`Qpg4.˿�^(�,##%C�v2B!n�3$CcW{ #QΊ|�_8` |`_ !ߍ S�.p?b3p789x#a(�.7LG`C1c k4�0 Bp8`�#M}a4- Bܼ8q.T1@p՝@{ {~u(+ nG5; U:⦎VWG8:jCeQ-s HJZ�0P_ͱJ/1@ ,P{A|`�4Q�G8 p9GljaNͣ <0�[Ho1UWUH _H�`1(_UA8!2M_}޿g,C$0��I/]7t�?vsZ; Wo4HijCW#?:h*g h["3Fz=(�!0:G *4L"KTB�A X ܊q7 ?GCG7"$pB(~S\ {~ )Bh{0 A)f&Pmǵ*7|ƀVgPOIjQU^_{4˟gɦ#/)6UE~S\y%32ԕC-Mm\HwV ]쇨eI=ʳQxq`C Z= kyCl[ bK'~^\L}W]K׽>x!c'T߲1j]n,/3!N\bv{){ xޜ"FTQ Mr}ŁŕA EjRi۾b#ȴ-|Z8w6rS"gɱ/�$u=٬J]*R쏦YX\ژ}ВJTEO^Nkn'UH~Y?]-V+H?<5+*ɐEɖ I+j"y X~%]y6Amo^^gH<KFAb2~ 2 W#^#̮LW4=g͝[sUdέ4~}6´8knq"t4LVvg eXb/gXzJn=28�^q,5ּC0EnL*\D9#MBӣ֖D}_z- wbo-O眳oq90p1d1//8x"/3-F$>xF`^UH!5}R@AUxvV#kR%+HDᆩ(L۾ZHې_X^=Qy5\g<d)uXFXVp-.NotX;74k"j>BSV{x:zQU+^4Fa VV1a%?OiMv\u3@`%J;x\ZNu^W? KJTwBZ\Π]=s B)E;K3VR&,7S*EW׭<_!\ȥ'{12{{Nq~U;{/ˈ هI1u}.T. ]5͔H9vz/[h"/I:]H";mvX=L^hf\ .\p:V+zmLR1N9Ujp;[),x,w5!stjh\󺘹|mktI:5J;o^"-cJ5yZmߨn>$IOxLRz\G"nr$4B0$o5 !,*h2U\;"p:v17H`duu%K`Pv "sޛ] 6|g @"tQ:糙X  CgL` *n1L)& Iv%[w"֮`vrxL=1#J}fFG3oK4ǠkZyw}|mؘHhcwNE=Ԗ��q9aA}e#l-}DH1t{fE1SZN6_f9} dzD.HGKͰseQˢ"6f|.˨Kҕ*cWwؗV:y {) jZ\ʎ3]uMA}*`0X=xْ3k۫=ݲ+A_{:29^8l\3fffrzAW]&6*$ V>g]p_tO/*uu0V~jeʷVן!+%e NλpfSI#;TTp6p#uRaގ NbUjx @O?eHiƶܤWM<)(ِJ!|rї#U\}Bfuy#i!X}yv7ъntHtu:_Z__'_ȖfoF%o`I'sS}wJ0&[ 6m--5^?XLJiar@^ R-4,2f;Ӿ;@ʩ8,}Uڒux\<K,*uq!o1ㄨ65<UqG07Dܷ:6x(D4ti37΢TRySzv+]hY`CAwPwm ߢt:S0=\mT{i[YKGut$K!l2Yl7ކW}N6|Y@\ɰyXekáXMCENy#dR"0�e1? ]W1$YLoFX�A{|.V^{Je`eqM+j)ww4-W :Izw+ ]k|Mn<zb!+mEA;K`( 4uMuaHz[K3{Wl3tS4^aC ,E dÒt+u4^ɾȗ6z=qc#˷ tyK-@c{8ZX;aZsVO^"=R`Tc}KKCTxtIf/l]P'pSRDyЖ]15UuHt;D%3m93Cz{o\=o@9<ɯG;:ߴȕ TvxM*,b-ֱ^3vE^3KjHD@ö`RyC"R~[j"kOX$}Uj]FO(h0Ĩ ɳ^-@~4̼ջAmc4Z5=CIR&)T3A&D).K;s)?77^|7*2Zq>n T:>Oms< m.wlrlH)biK k U{^t{jec%QAu+ f<f4N4[c[&?7c=hBLm`3ZA*āTYv=Çյ)sS;)329غLN 4�g%8Q%3 ]@yF!7[VI]]]ˢG뗪BxAضQfF+G,M8nSl.-gH.佥oOMQWƦwŃnSOXZ\x'zO#{dmt*KPzCyw}rh1D/Dy0BQfK?Li V'ٗMkفd$A+|j'r1Hˁ_(mGKZUHmXt*iOG_1aۧc᭧4Slz14xc" Ma|#K M4y#0ē~Q'Ih;"5&y +7ںU}Oql9PnXf],{SKr ̮3 I+w^3^uJG7o!~5fKyxg,P'3v֏ٴTl 3YBz|ʧp-j%Iڔ(Df}T縎{[)[\fȇu HCӋdYǽ4*N4H9Nj[{J Ê,=iݧT,O̮+HqJsOn cCoe,<hՊ3_ &=F"c[ ̆h]!1v]B ,dt| {tTa|'KfƼibﻵ d9?6;:ʞ3TjPc6e:2В_hB_WQ6ew+|spX8"<RKg`*cW|'FcX*s%iJ0WR=yD.Q{ZWθf`wvgG4EF,̉~eo>0Dտ,&K 0XR滏L߱l,8ڜbpVgWrS8T m I35UX6?*'QPByΔ;[E:W1(Tԗr]^@/ݰ6qV'tk'LYY>+ۓ$ ԕK]vccg J9 Ɋeh&W'4To㍩a}Eeq7P: 3,9Z-RUr&x348uxTk\+ife#^6Y0FVr%" ;aýqם"15KR*o#m1T(d Rtv~ȉPu1WC)͊7LLdFh.b:mwuj$".㒉ğvM(GeŔggcIޡ6o^9|H)M GCS+Ff*dUvV@Ny셼2GKEѮwl '_|"2')*W6XNWÚd1nzn CXK~)�vWܸTlOH9{ g'/ۏ)ƅXӍp iNh wWxž{Ծ$bv[3zۤSݟTxE?,z&?hepD촎2ҋu%'}L> T'T98c7SQ`+ħn0vy}7'4!,} S4%=IũS} _j@{p㐋fvkpCِȠ8o[/ Ր=N0Y9;q=MJ$|.{١>5^}l G7c.ۓ}A Cjb6�a9}Ssi* KToOŎJp*Vː{kG>(1[cgws7#ԷK/\XbXއZ oj֎ r6(TTT!+s\rzv<pZiRrг|P<:ewm [/`#(=/Ŗo=4cx۞z :dLdNqNqp85zSM!R-Ya\6Ƚ)KM7fA8p(3zgKk޹d̷g5�">& rlZ @SZn۲=Mo/Vzcps s{wdL,g.֤G6x~-ܹ&zXav|ՒQ+{C9HD*a{VDMA#CO"-%&X6oLWWPGJf3*Tk@JpN5ϲt;_T,'J5T>|ޛԞn矇 ~#S~ۀv-ѼnۛwD6a:oU So¶D4Ts&}B+<%و1x@Pl@gF!tⶳEk5Q_4+)>#9SLyGXf$q¯ګ,<ix^[)ѷ@2>h06#u5JXCf4Dtf[\G&Nsw`7;Mʫ33S!V #7P[u</-LҞuU\Aji_!6td_p:aܞmxV59/yi cLVUMx]ndk1&7A {3aOy`@`7EB\Qܓ9|5jړU)X"W4Ͱ/C9 endstream endobj 190 0 obj << /Length1 1357 /Length2 5946 /Length3 0 /Length 6879 /Filter /FlateDecode >> stream xڍVT۲I HG~)JOBޫT)B PHQ MQK'"MJQ HE=w{kV|3g|^>oj!qA`8ID 46W� )D$,ly#XAX?$pM,#ڴ`81 {P�*UP@�iD_ @R kb|Hw-(�UTTX$a8x" X`H.)Dxp>J`p`` 'J�H`C`v 1)0`caX@4x#1ij }#菃�P)+;cP>0t0!U#)\N]9¼0xX� s!:.訛0bu"}p~R~H_!^6UB!8?ЯXxcBc?k7$W >`+4rDA |D+e7e&�naH7 �?w (pEq hF'E!DAȯϿWDnb.X@Hw440A�^RZ�P4@\3) Wcn@O[WM_/ae!2Mp{Ni;c,oߨ/0;/Wj#Wc+>FԀ:ߗA!\M8[70!=($*#7 Gj_꒖`X,,D1q'D"~3�K18b@l/ p`A)/#X,QVO<_F p~˛*y%J'M Tiϳfi=LEv&bRC͇AoWhx%-ՖB}CEzד_b0g "M[4[z.oH{T^U}dpQNJ$V0K)A8(lL!nVhȧ~\B\v|;,.5V 8>K Fe>8膏(\ F&_zM~~}Z m]/ZB7b2ұD 2#NN _KK' {0<ϭs1 {{2_e_w+| ߌ^U8 :#--pYږ2cU#ѸH8Wᢐpr,spp^-Q:Ly5p͖%'ՈNzRЪEq))飷Y[ȋhxu/%9߱{V޾gBO.֧VMyJ9uњiNH>~[ҥ y\iƈ< +PvQ)ݵVWrg6r+Q j-ZO mSuѦ= EaNB_kŌ5ಳp [. j-j2ٿry?g3畦1Y"s6|4~qjhiY!}SU,)+ׂڃkjӯGXf ="6O*{OVTbjL¸4LAیyy>HJʙs<;ߍDyfV5~`lsVUʫ)"Ž%M`kuu܏'t}ZGm6p5pQa5+ t4BmIw?57>pܘEa8㗺� vnY�ںM~:YW9OFU&5ZV(S7 ;~Ig,H!,B{=X@ 6_XPUmKog~|J2/:H{}{R \Ń(q^D:2wQ97K.VSU+(kMzVؙ<1  lP=!f!*7B6G qaQ<:Y] yO+QW9z\≀v%F]%f8& O:d 6M5=S'u E[!.òi6s>-p;bW.c<-rHrB*lsH:'n9ŗj>Űmܽp-$+!{ϷLsrvJ.j#ɽ]џ򹜑_.A[h*YH^ęう8vD# <+s-�1{S%ޟt#PՔgWQO"Ǭ$hȘu=9U}Nc ;eMZ=d2[剦ܮ)j+(ȨfoG]nqJYތ$? )/(\c#/}H^VD_TnQϭgeW>h|gjƭILdfDHY3e Le-9SKs$ \UX ٫;>}O43uF})b t]aTnHpi/mC7)Ӟ `N;xubȃ]e^S׿2o={M5nC6ژyZ=Wo1WGF[1ϧ  c4M*be>ހFˢ\Fa#;A(T9e1^zmKeKrוu5#_ 0o=@qe,BvrPSʕe:Y(sMgeB \k>4su_f&Ukz9 ;Z\oipTlw^-]Y廦Z$-}l,q9+m̐x|Y(Q=�˳sVzm�2wAM2kMƈGm\M+ԫ/=Ż滺SRo-9 61^+ Fv0xz`t9 R]i^rf Vy\S G"-c&f:ƁG +2{R:N|6y:a5ɘUFC.Q.Hn`{{> -QMPTڪ7t0 >3Z4rƾF68JPSDxO_)P�y7a)jN6v'"ldh�z!ծ/l[:G&ԪlhFG>A*^M;ժ 7ZCHщk]1]z:҆4~z_w&n0!-(",adg#Llm' [qto_7/NNsUaj{[F>ʰ~,jn(WWX"&^ॠ<c >NadΓb\d\.4Itzy4p'-̉pus&k@) ^$}kK"/ NEBc}~ӗ^ӈ/|OOC>PîuԸ_CpT+F2 )Em9Qq(>Χ։'uHyg<�'R q?K947-D.rZGf5f5#ǵzW ҂1Zbk-* ҮfnZUR<bg<y{"oY [ܕ ]}sn3jDؔwT:23nƲ 6zXWHwNSFS_Ufaz5&vk\)+[٤%�bRN褹tBʼrU(�t~|HA\R]%P*Oo neQ ^xj pB NIE߷x\npiٻ(oZ8Jt3 Ծwv?p+Ʋީ\[(8b1\t0/SXQijEJ>Cyz.,vj Oj2+ӖZwWQ`g?Lf12Χ}Q5Ѵc%\&~tU-7cKKUA:_wզjuuxK 1V[/1"kMSɁO]1{CwJwa'%oM-kٜq+DQ}*EF_O{ǎ.F0 ^|R-hxv#Ua عyFbgCRn!!%VXpK}�>n)-)``uGܟ{vaIc̐Kȑ.!cuQ%[2HytI) M *kO?mfRtV &:wFR2VGL6za˴48S]e'''MJnfzBesc.7)$]c@q+)/sBcE&B.>}jX@{KtV.v}${P7mTeK=>iO�b0Ib21"1M;0bI<:7tg9%f.Ht[ lz+G3iv_Y = ݔq3EKe f]Z4}F6+5Gh7L VNr+*PZŸ4ҦC8u}}y4+3кx9.p9s>ǩ>۔2wN'(tw |cꂝI$eW5.0)<ۅ"mxҵ &6 N*Q i>+ù;8 X)|8j~I9)É>%w|TwﲿU ǖ! &jHЅ/`^wعbԇHxpWu@gw7U5շ\\"F +-8ku >;o3{|2~)h~?_G1dMj}gVV�eiv0!<,/qNCLudSV6bb^<dm)%v bW*,[)n<G \nR{G| (8v 'ˠ%.? %*`1Y=ٙX=i<i H{;KE]a_2žPfB 9-Ћ9_-V{Moh!,9toΤѪ3f5+ӳ[@K@h6E¼!>d;fTrÐƌ䔀S=rS)A]Jat'@jY5v?YaY+S%cNҽ՞eW;Z?$,ZL<M3(2Ŕ[3ti5 [>3Jh2̝W\֫Q6ZRlA=G'[S. f"X+ʝ$@"_}$ gswVh7oUݶT`rZLBIi5b<1 BƳ<E'yW!!H"bi[xTG/³(g塽MzwK LwCSb'-ho6SH)4xi.gIrK,ݎѾQs$Q<33&]+jMobNk*B6;. s9f^ڙҘWC7%A4B藾<pJh}YqZ`si`# %p\.X:1{; 餣lJCM|eXZ ;ԣ3peCdr&bLU`Ho972YىdU7hd\65Մʌ]kք.6}k /=RN2ݗ생$<P5ۀ7z5@.V\^y|gy?օڊR5zfχ/?k '؅[_zZ CnBsk82Kq*t]NzȊX}Ћ91V*9{[in@ĕKly胣߀z_i;>MCݴ%DT٬،4C|ޖsKuntd“مW#5,ݧ+o1�D4pĔ:}i05j0ugMi8o50]n,gS z2޵?٬P?p XXϳ[&F\857Yw<)>gWBu4 gS,"8AV+BÊ);AŖ$|?ɽ+V%V~bCSE"^Ε/jQJ{ Թ>yXVUȭh;dtW?.$AKY?xɁŤVq^_~<7AV/=U"Jc3rB{7`B{p?CkGW7IsO gŋ {sM> `Sqf]sUE'ZxS o<`9jޏ1fޡPvySO\X4d{!"D]#MR6grh0A ɢvl( 8`Oe V}oJM}oDksKOQ2N1Wx]Rdg`\30@B�@QMl/:oW1 endstream endobj 192 0 obj << /Length1 1719 /Length2 10588 /Length3 0 /Length 11678 /Filter /FlateDecode >> stream xڍP[-;wi݃{ M!];$=Hp{gfޫkaq;C=؁\�5mA�7=.[Frs;C˸,=efjP'��\\�n..: d-6�53F/x#ɚ�` r[[Bj ֖5_!D=<\999,9ę�`{6.n04z=o,APgO  pA6Vۀ �9 /߁п-\,` 4U9<|<�P߆wgK/K0/�y)-s} wK8;9hɂ@ϷW[P϶`l<]8`WO,Eh@�>...! � �XsK P nxyT7B6`k E'd7~`<x@�Nϳe cWs9Td_ʲUT>�v~�;7�%x>wMKXpuMM_gb0;Ă�L <M(_>_Z y^==g_yklNU|)?vl4r CA ?筲v|~4ܟ/yi;vq,,}ў[�55�Ndz ๼@~ �8_?HipZ>7{N?  r8m-L|>p>'v g<>v>v>{x/"֞nn_+^Kd8l-ڡu)2oqnXi9ܮ҆?l1]J.Q=~zњvpo=ӆuh`P]Wr75@?l2} f/>z~i8XYB9$v S˫'*$V8Ru9o5ݤtF$xS {o+JF:6R=&u_n?'HI8 bbZʩxsOW|~ |rgH?i@2:Ev>k䦿o y֭gw'ڝqPGL﹊nETQ&$MN'Lcq:ݭVڊɐ4]҈ԭ5[j//I7l0'Mb%aMcvgfU\rB,]\1&b^=MD| E ?Ψ7;jf |DWrz~aJu/h[gR>l%!bRyWP?\'f. >WFI\J#bM^Yow lφ^{T z>Y+yCH@Aք'hp=j7cƧ Uk_ɏd㼪9cuVO@:Ts3SK_lD(Zm-Q85 oȓk5lF:)4lxf[)2բ5ˆ'!@M,E.0́?c?5 :C莮V|?`׃> W.Ma뽑rT4f>"YƒK,1℗K*B5л}si}Q-jvL:ћYfV vI5ciNY03&<SnQ,UlݠGNO9;=3R/S-y#gWQ!>z0{NÎ<[Do~03dxNJ&.^y3֙ԺV/G4/N6s_$mGVDY$w2kyTBNJq!R|9ȷC+'sXLJ~sş[Jf*_>v{,ܵGߧqV|vHND4 /ҭ6K%zV`@" " @㓑cc"5DhgH o=sJH?RUL/ ۓ=O1[Ŋafsem;27Ʊ=$/FD?Eȸ'Y?+Nz ?&A yyiG!{޳GauEfUWT$@j4T tXʥZ|j|Θ aJӰ6󩩥BU3͔Yd1ο`ȌV ãJ;Ĺ1 [+눻Jw;!B6׏NQEsw*{mLj0_H>7#1l"fi'r/fbĒ D1zWoPvSCEa* ݲM /~{k6-kֈ _6 feB ҍ2=~bd1jD+NZ]qOoj!x|{R6e-m5;;Y+Xq\[ ]^a3?',�[}?(#d1;vɑ⥏ɄPkvr^({6#k&cCƟynEڞf/SznC)TD;jvaA1V+LmҏWfw.^qo b1/|2>B.}H wz6I:dnjd~�5.'172e#+T=ܤO|5f[k W_{= L(73)Zr>hP`aљ\ ]I=aMǫ)`HJ\ Rjߩ/jIrd l~S94r-h3DEO]sTHaϧ%p^XżfǠ\HwBUN2;¶>cJx$:92t<l�DԱUOOw5"Gg\AP?Ш^>gz,&` e=ڃ0 =Fz}R֭,0R=&"3x .kU{Ũ8;s`U6(J]_md³0jߊaw{Új賓,<d'mSŽ^)Qp]/ȲI&3fo[O7 + E)DhE^~"'Qu8gWg}&9X|k9Otd[M:ك|W9$HZP T<R<H݉: @iE`ʬ` ENq7I\>`ll{WƖ 6~Y'//F!sEƨw=sG �: OAY/'w!<^+=*'(HL;U OURwx:z[C/_!c}1|6Z+�au{UĚǑa}Q�ikqʐ})E>(ǡOCs3h\Xs[v?I{Ƚ]ZR͈PO v)JocM0oΓswBy"PFLtK E ZXGS8glb=KIeWLyR%L'O) uS{YEkDCm_6BΡ}5 u ?J&jZf+_Hϑt.j& $gFԋ\4tSV!vy"Jk=iE433Gjhry{^&aEb!~o 8Chr}}gsbAOJ_G+DH{"<j]ᐽ:~* '=@hКYW0�q/v.Fì iԸNq"4%H,$ du!#㗐'6%&aݞzMnG|sX<"r07~?m!CPUD AIFX.'a<ΈLBIfUX%i *ͷ yu* x.|2BhEꇣ0fR5Ahw x]ި+PG˶�&d@s{w*HfYrM-0lF(ѳ3556cjs%[n' +:1Ú7j)x0"{cӋ'4ùPx1?ѡkGyv 1`‚†'\MDzzKgĊ&Q6zW؋ g k 2HBK=I.U:,F<?#.M9r<o-<Wy`c8|ω$*gdicqPT#:|Oe:wD{ިxn}ż=DIm7gf<5"Ş'&n4vw uTn;Ѩ*8 96!ť~xDaGTW9YL@`,vzϷ�x;;jpW9 kבֿO?) 0PÄc;W9)KtV1Ŋ0xa"3A+Ru>uxR#cřɊ\{>45C1:';#}q qBCrXGΔ7{WiqńV5V\&:"3UB`q�gҵ#DX L%j1Sl}r !p Uj;"l hF%s޽՝V6mr@\0?2M/[K6ԩw9AV怔*/<-# ;d 1D^4D?YC;YŤԈpm/6#b)֪c٥ t"?hkZ(ll^xVQXV]`M�LEv?n`FR6Nv| m?8gHHa6̷)RͿ60ۧ4>#y7%}ڸ= 5V<Afmk1x7-u8W3p=7?4N*Al>%0j 0GbSr؍o>ETް1Xs[/Y`Z{8f§. Qtv|h9vQ y9SlKgY өO>)P-IǮNjvT'BR HMdNUP=7毎 G.)8'R9+=ڋ+38)E{_*Q,UN0I${`m?p fz Ǜt0̦9x{]M{b|&_J߅J=Gq-YUɩU}cw$_F/f6`ϖ/JkCJ[{ߥ G~u¡c`hcnau'_!7+UvO6֗kkţP$\KFKBjy#i/0^zFTbUڷi! ~PlQyl>7`^nȄ`/Bo> v%p5RdlD'"'YDfy{^_2&&50|z1uQG%UsӍP *uy*HB[NcؾsqZWMx\ n$1?v6^B!(sg[ r&AF'#6~$zmUO; UFr5(b@BfB{%익|_K|*k1zd|-I)7Mڦg;ƽRD 9^C$,xiҥaO!krvhB|o>f?mǐS?<HgfqOw} -5&hX [=eo /^؅e&arj/*/qD}G+4aK vh哻`ĸwJ4:]qxe 3N`{~A)\8YDBLzڣ4[Q."spȢWI2+:Y5\xW4lۖwNAyh)y~n#?Հۺ]Eej* w5G[A OްoKF2J..y13;A]첸#hQU}S@U5Kr+V7:x9ePS&Tǘ K{7!{pRg^(bP56sOaw mȝXOm^ ݐa԰z0P>wj~ tv'*&t=Fj^7V}E �tV5Mӊ&ݳ# 7Wna%E t|:SkyP\t<[,c;|du.YjmWx((`Yq#:^cZRKk2K8$MKZI<d<!VRE9Tè 4NkG1#-z׳kƫ:V jw<8O!rZnO75YtBk~y(@(gVWKB\`ǤL[#XRńҽl"tt:N'k[�gړĴ~7jm#S!hx E[`dO8D[ʗVV]4ߊﺽz9?irrÛS .Fc^ZR :(V4}}K %P()˜@^ Qo16'])󉥟:x>pH#SGn] A!rl^KG2=OlVE9toTIo}ڇǬ BMn[ZZ}lqepkt5fДnG~5O$QVH YXf%%I8"7EsP?`+k^Ap-U۠9݊%n.DDl]+8PN+F2DI/GH#h:YSZH.ҝ*Z `^+]+5m#Ia|q̱O GdQã!`@dI:[CՆ+_nJz6qj|1^ 2G֬ĕL-GK)%DP)X/s9s];8Ug?ZB^*%_NAm܃Cd'Vo6(}kwy̜akLp}. SYצ 4NǨgς"S;M !6 zz_opP6rOWюhՓɩ]rŬ>7=.d=VRzh-\[BMK35 *�#T <Fy5A۰v;qo\,qh?c]HǝܓK9Dd' omچ5gyAgz$HtPS^Ost )4,D9  k.NS G|wwo^ٕUjXxz,¨H(JI=%P+A\N G[5ꪓ"f|*v?%p78)P.j1My4̙]5dGX*�Pl}$rA(4=eV ls)|5ٌʏnBs:apHS#oGZӯD̍= e  cCV)~c:ϫ]9"[_E ޤЩ"=ф#eu{6ƨl#A&AB\j{zR0Vu8{Js xHd*֕VGy gaJzbҟ25Bk l|3Esҋ_J�r|5z(eF/! g]f}V/'u-"]7/W,DpPc%4rʥNPz|v4ͅ3l[.g^ANN? [WϴY~v?cK<>9ƿ(6AS kW"HCQZ)qa; %rkQ}=iq�ů9qRw~1k&{n@K:!OUç{{sz}QvB҈DY5#f<{(Ww su~uD 7G9`[밋dzgA&,(e8<pwpo'k Z1*X2 %aHf߹\DAZPj%y@!:Y$àNBX!33vk;S#ģ!D7oϝZǴA _4خv!*Ixrgml1)Uw Ivš'Ă8E~vd9rFo?aVD Ts!~Ûf  nS*q}39!NNpS$Ec?&%b V)“3*y,4y sS S.*g>q0z{i}C|IY (n"E#kǻ'oɾME5GO}J CJJ%Fwϓ2]PǨ1h\F`7=:]m|$@odz|S{[Jh3,>eK%w -s,{B`>Ĭ}T<<IXFE' )D1ni;t\cْTo /øk%_,f[C)D ɝrx J%>-=}pOB.~U'KY%B BO)_ -߷  0mLo&"4Gr+/{&aۋuKLû4Hgd99g� 4 Sm>T}5ȄLɤ2sY.rVQ|i)L7w1p̓ qXe۱ a'/Ȩ 9X,KIǯpRlO !i`sow6[h}5`UL}mW3c{)fE LTXL{(=\uY̭IHA?ҬK]PEn:3X-% *[3c}h<34dQwf)K)RJIo%tiZ13jZA}X73chѝaV5Z#9\gh� b]C &ϔf*3VJe$ڱ s?@bbņ_\>i:o'~{ԥLf;VjQ ~ѹFdh#^vROq |C,dӫv|%EQ38;jC1vLBMoh~ǴbF &m>I5vl63s9K9j7WMTYmbktlmKSJgF iߑʝJ CG"([@z0,u*A)YK,T_p3ĆQ,3ɏ}~\]TU, W9OHS[YQ`5I(�i r#s+h>F{a~^=u۰6VȃEw֊*>`2"DI?shC?<+ $65zD淬?%gԑKݔڵ|sXD8V6{%+voG{~C1,z]xaKmwFWõHS f5k%UsZtdn6c='5Or ʆlepةMWJ{4:B`qG_`KeV5_ԼjM6)M/P~J,Tc>GCZʀ %ȑUv^3|YEܹ:lu!ssq@PqHa+:=ر; 2j$(3r7d4YHF{|&QD+jPqX!Ya h8\]ƃ7+x9Rf2(^78NŁ\ 畧PݮflߢR|fz y;@05xevrA;iH솎)g960{پn= OR66f&X~_д.U?|?M^%w1�zՖ4ܺ,37SjS*JKO,D4fZBl̔\ kWf߿^_plu_ma@p 3t ivˉFbc3¯Q۠Bzr†Pxvy9P-n*Tgsʈ+,i%x3i}3C- ]r>L0^$pHC=o4<y-Q1#R,C'm%Pg^"}/oD:+2޹RkYh&nul9ٟz[[XJ}s 'Pb|g/AdKq1@l4gҍ#ObO:, szRUlKtw K/e|ܹȝ(ѹ<n.pi:sUJꐿ~GR�l"{<^>檦f&7![gBG?[jL{Mw5i5kjTfs+4}&E':m}(XspȹƜ.W+;IfF\%uaE0Gd=JL}GАY٣@H<l8NәAN lp(6iaz[ӏ>|,׵2to}۸UaZHK4F߿7V&Ux 0honut{e+nĒbO 3_vhV|=D Q(h+YP;Dm?] ~eI/n -g2N c>>b^&9B#%x_ 9 ❴P;7VQ=L@q ܟAbHMK(w&g$/OOPC$e㽭#Yy~3xWG5kʛ {v*< EBn@5sȭ endstream endobj 194 0 obj << /Length1 1877 /Length2 13454 /Length3 0 /Length 14619 /Filter /FlateDecode >> stream xڍPڲ.3w 0<wIp[ r{5UZսj"SQg3w0J9ػ21$�̬TT W[_R*- _z gLL f `�qYY i2(2.T^ K+,sКxtAf&�EW+{F3[_!h\]YX<<<M\- W+4Q.@gaT� +_bu Wg ]` 2ڻ;ٛ �eG_ 0n ?#Og33;G{/%d (K)0z2L04uqx7q7ٚI % 0y\̜A.. ?*d#{?؛K8]]' rw݋kwl7s7GM{PVow?2K+�t�=ͬXS#b:|o0L {wyY ?'2weWTWc<>L|�&v.V�+7QTL@`W.aoŠw,%h\fO#e7)7[??Z;yus}}E ߦUhrZYWOA.R O QKǂق*.?�+ҽo>K)?؛9]\�gg/+~G\�54z9�f{w{y~� g? "/ `�X$A� �?]SqX4cLA|� w?b/` X,JAwRѭ�|gi/N_ݿ|O/mZ{[?R 흷;ow2y{߹x ׀9sx@' aeL Ժ!NЃioRhjO3ϊs/T-{ԑ>w}NZF%?%#,O|*:k$'bd -GƋR1 8X6_-R11t4gƕu~#oT.4G{ӂFK>%1 aOYeVb<du&4CZZ}sJn~* ;nr}y332vmQ k= B|^:ho C\1߃QW$q1QtYVz_,)ظW}\嚶]<prԌ۩|q*ɓ\S0dѕ AD$"jo(aV}Ο#]*W}AIx?1V)PaϮ 1EtaVFZ]'IחX"y >x_O}mr$ qHFDkubHz=]%|ON関v޾1tz?&oN>gA3&|44T|>~aPmvMP=rc[/:GKs lz&w97;3pyjޕƇT}#ׯ{WE+|%TY M@ $l<PY4뷨R8'BƭtEcޱ춠E\G47)MBփ،&@i<<F</X|v(g([Z l~Ħ^Pn_32-$B?= JkOyhVZwhŲ8,5hz._g~=/10;G(QRLkÏom;.iÖd6XR.d\(TYPf/zC3V9>Ay:Wuo)#It|r#G@Ǔ<WAsH0{Ѱ6 {XZnny"[n M2f-$LV"kY@�[]7[u7�}*]" ]%|pd Q3B輈jpcޛ51rZuNOVvHe?ٮ əPdJρU NlC7=&T5Gճ/V5A{'f@oa{5ha&p W W,~m|yrɣ-Px RKsc񼕑֑k7W;} 2N\sb; LJ3,Vjp13sW,L #[rqq~}^v5=dF\Jj^.)',g� Q_P>e+[yjHඅziǑTz [ŧ$,FXM98PU܆0H!?$-!́ zM%sg^&%WqִE-=9Sv`+U087H yX}8x|lצ+:uuZcP&x gKfWN%y):NΡwf~VpokFeSRU_;܉rӓpEySKK F\,,-_`6w`]7<Ș$,7֪H oܧH$ig̭Ibg8EuX 8$.zR`@sxc¹ oeY$/gQ#7ePG?もi pQy ё1`;G|V0@OݵkƏҝX] n.C[!0qe~!]@Rwc20a@4~OU¸?a~QϠ\>GUR;t$$aA:~}Pk<pNMۇ8N̂{׭#6YuԊΫsm㉚nyk\Y1wĮ@jĚ 7`7q7yfϏߠ*:ZTfcWY:b6EDC'3&:iL(*y~hriJm:00|+p; 5PO =3Be|&kJb}abV_qOT`XNWW3zX)QzR7|^? Ur* &Q&hǿ.ϿfvG7Jʡ3`Se{^mzE|g0Q7ԯ'R 16o+S=�orPʬ19V鼽NL9p~ ϚK]\10Ę� 31){rd):|hE}.WE3\1`5-rXm~>Dk62vT>.ə %?$fq K\zg6 6QF sAUx"o V|T>X ¾JZo[I$OK I2:2N7Jj<fKCX{qtd,Ba VA$#ڵ"CK R/u-pVJ!@-Ϫ5}^FlߍDe|=<o,,?6FfDr P|YzX84@P!gN~iJwO?_sdŀB4:3(e'" /= Z;zaGiïuf̦<W ԯi?-LOKy|KmoF?!NwkÊD&KR9/|2v@{*9GGP`y8rUœNdX3ਦ8`T+>':o]Wnph<)eyBDDvcM}An 5ծp4zk}:WH"u6kufLƵ}B�?ng˒f;8&f)2nuwiȤh=foŌ]g HWTOOօfdNg1BCoYuSLKR� @٧Ĥ\}%WZO(Hʨomb1螦#og3i7Zn\G`SCLL@7'_ 2iE(;O(&.x&1%) ZFNu֮Dc͒cIk&9EwcNxh$ԦI>8KkB~)EeK5 Y+xDX Vr1uoGp%::a{]%M.#^6N<ҷ m9c%>+LמgnpTs+>Z3bep jypR"5-{IG[[쿓Nܕ,O�ac:t|ܬ\}ӯ\=QM{gm!d%GW 78dt_67wz^?RZ~| X$ ,S+qוKqA!` A >bL>C 5$rͺcdNk>ybgtD"uscl"dǷG3Ѳeə[ڧ=n7!i^e|1fw=L,jc$Ӎ_iy޲hڨ؞5 k []~ܢWPjڇNLk Qf +ȼ|L,D |8V"HI,`0ѽ%'׏*[Hm\Ż0}u4zZ9=x2z U׮^ 8aVd]G`a10z*q#6:Ow+]МI(PM*.$!IhZB#D,9_G'ڣz0>v[<v x\ֆ OF!0OWKCJw+h2ՍW!V#}s,4̖r5gld$/PQe@Y+q,mӈbB.yV#Fh<Oaɓ:PEnb~VgRLF'H]U|cg\WJ{,'0P_1΁Ľ,jQ>:2V&XJ>\8Qgp�+7* GQ[ɛ_ rQLqRJ7+SH 9F 6~NCb5Q)uo6R1"p8k" QǸXh.SI[Ml#a=+!Rug[ʗ۹\hozHzaT1au؜l'Ae^D/i:`I9n)J|Q)!0o}X?ӛѻvfꂴaI|fTWv%LxI*Y%9DI#,1єEBWAlS".Ef<cLWEx˽Q]-+&ެܭLf73bW6?ExMo!٥c|xfblJk"`nF&fp _z݇8Z)uz:Q%(.:kYxwf39:]s abej$ Td;1JqqT.3b^0̢W>i-L‰ǦwH^I-Ԧ&B}K%NS�%g:0}~}O+vꅧR-H2ΖK}3_$ ]c^{^vD)gY^eGIw?ūI|Y5 o솫Q=W!߉!hc6-Q&ܦȼCEk0}Y?"SC i,Ae)AJ#֐.I֛< Xq}^LxܳhdF2Nîsa>b KkXތh(d/Fhs`W@VR`@B yҜ_j։6bY{D! j3BQGitb4*悵;ņsd {vˈrd5, }B|~:kjۿBOIqKҿ`F-SR $$; ÎKq) 5E+ {N6<kA {:'~Z|\_#=65*%j"ɷNMKљޜ:ңHVwFKl|ړ`w5{x5m j=THad\F4bieJω}h pz)`!09H=aW3:AOVYf I9kEBm†}8Wu7{hPB_v~h#!I\nhVu}%ѯ۪@WRtx_B[8|밻K2H84<FKE;⡤�Vva[؉s)9^wK l1(섃ASVW /Hg-8E۾kW|ysFK YLYǙ3b)՗0 evtDs(4u_0noҪXB&LF=)OQ->Wi[,u 8qކE\ż𕓡�&@vk{xM#;(3K8|c(%}dduzao X K6"(z MMtGʥӝCӖ#:쒋GiU,J\ZbY:uڒ(]<ıP>nQi<oO\ mZIbp/_L;tS_5X&8튖O~d cڂ>`;in ]&l ydףF& xҕ3(;I2ʍWu+']SdA|b%f!ŨkcQ4ѐy bי)L�8l$sPEmnb; j_kɛ8ż3ڙoҙ _[~__C̗iF#Iȏi{tW2P-ԓh3*8SH|*[) I�ۯ%)]* ֻ\Q<U{8ʲz _Qze2Oh+G;Dj?.W si@NI7Y(/)e|:Lu -X)- 1$Z\0A#Ϗy*;H𾃁m7v-)T TF,lh;x,gΎ*ɹq0s 34 .clA3}}t o7Ӳ(MQZp$d$"n+\̈́r2$2JKEm/\a~ +h2!{ܛ"q!h7y4m5oWS 4'eJOU βXoc:(ҽzSԻ?SQ*lWؓђ(?` Sȥcjfq%nK4.Mlw)"wqwkY`(a_@ "6dqs2iZe;SDbOOǚmrtBͲf)1hGP͙ȏY2 YJOO$>mB} 4GsPKE"eOF;U)|J']s5=$H^\|c֛Tu_΁=m/i"CnRꭂv;*w]zm|q6RtLu*i~~KuIf14P0K?pι:5X*FLy#IϤ.8U}Q?&V|DA^6 p [0yP Ɋ^ыZr© S ڂݲe~mSDI*8hxy$پA0&HꥹF%r�㾌\:"Rv5UEnd53Ϫ{KBƉ-M*LK Č2U$@}-l7OqF1  NRU7ˌ .]@hRӶĺ$qa.$ RP-`!8HAP8l|,.kea~<!a#3H!A'XS\N4*")N7lKPD/ep89ڀOZM'jʊo3tU&\y0X;d-XzNF6U@BWDH.q{OD{ڊ@Vܕ9TJUFdY<.3B\p ct&I]ԴcBxd"eц*o?FE4%Ie+XR<vFf.9nl@qyJzڕ+ڒ0腢 9΢/KIеWPGuaͺ=ׯ2h[/ȹ_*7l7Lه^#Ⓗ"\G^ԄClac/W 慠Z~{D =aEgqlsN[dǸW.8AceȆ0 u0ٰ SZ@"'sX[fYHb_>ݝ@Bxc O'NRLN.MKxyI?/x�[4|/njxS>qcx嚩?+_C  m|Z]Cb4@SU?@Zؽ{rzk$y$Ι-Za @8L4WfFM\R98A@ khFx莗_傶%JxTV<-!֢I`+JɘWObpK(ѾŦ}SPhޱ73wjGf\t) lH_fT)hgE4qO9P f*$5\Kx%g!GgpZrf5a]dqc-g]Vmʕ}% gTv/aD90Kpo%3O﹟@J &}Ea)3G1Af3sd!2]ٔqëZz'2Xb[03am-׀02y(lNe^M)*spM~8pNܚ'vYKωO<uK+zaŐPQÑ'#GXrHT2:eBkLwGto^'*t^ή262>)Ǥ4bWp:l%=ZQEթ/C8ﲪ_\gUv~J ŠȕLR^Q}k-FWN\wu~jn�eW#BEBzsƵ2[TXm =YX<$;Q":pV cPM7:e,E9 rY @5!) Fa>2"C%:CAde!@(^<y*GN5w{Q$rYbVZr$JB-v4!ūDӈo<g̷o(oׇ&YnC!)`ڮih%'b.PEB8/_΄:S *%-ȯ~Ya2&ief-6ۑxDU߂UqH?K'!!tUlònEśU`4"'U`ޭ ec%1;R?nk5sl$wQ o3#nb 1pzc *':6BNHXyu!zvy@\7 w GT[k|{6 4Ӊc[] LQ?y!Ovj F1XZ$vP\vk;_dTP6\N<#`g0WʲB5 ]~Se-7T {]J,Fw0Ρv]蕱)m e[ <22cоZ1Ck 92QzL%=f=F i:]e;ȯ9N*(( 3�ҪS ӽvcR4~~6' ,؈_Hz$|< i V0ՙ%=4dig=kn,EA2)joja]:Ju޵oa*xScxkkE%xN_}]sDБ5Zj^S7�TٷJ`&`�NŜ=ё$ySg:^D7'`%TgHdilH%H~FiajƑ/XU' R_Y6BU߲kɉY)Y}D5j0 >f.s0""T ѴHBm^; 4 ZʛC?̞>d|ꮔ"bB#p'ilڥsV tm[Otdh-7-${$cz7y De'yG3?N`$=V!IL@KZ5M)_ ~\ "UxnB(I. !TIxPx0<o1`ƶ9{`:AU }^3o5Y3r"Ø:,\a^+3gIT̷{4k"<#'g>[ȅ}ϹKU/)Қ^dzx睭*vot/+ [zLgD]&B6SOAhͰ9e!+7ӃFK,`Y[6}ƾ:? 8R:&*G?_2#4e;2vbDqCLbm P^ڝw55ܚ^s`;ތQl WA'4e8@UVTۓ>S<yZYNtPfTW$oψE[눕ʍޚmCY ܙB֘ eqd!)I^Υ?ʹ@(EL�ۚyKΡ~]xQcG o rL|a�9wsG.B0ԡXYїst!tb>6Ϗf_OE !aVۖ ?vZ3]H3U壜V^֛$A@ȘfMVeesr[f;3Y`VIɎ%TRi"aەJUv(INl`]{ c=[^$}m[ԥّZxQyl{52~w ^jzc2Yp¦PJ'U3eσB.8J&mM@sWKuI5:c~٤~>|np׀7|)`5 Mehw(EAKe%k<c1,t�dɳ[q0*~ FN=9XNs-(D!>q^Q>#q6O@'5@lG"dplڰF�i2kO'x*YCCW wK^k.*?ge59tХxS*jl/v/wEq1u~,?;UA*bnu.4Կ/}s?c{pD n*}e٦v !@7cL}%/\N/bӵq8q�D]U 0C29j Լ1(D(=$!]𕅒9@Vpդ;^:rեQ% xac۹ȟkesG6:9\+<zk[@m< a=2a~9#EA4, L7ҒsǙ M/l栬 4(u c>)/䉡3iw-T[Eu̻2?(q}<+r9*?POpM ת AzQlD,DbZӰ7jS<MNMv@ۮ@E#u=)RwmƍS@fU5|:AMvR3)zE k6M55ҫPO�Sj79>v g('D17ሱq~ݫ$OqvWuP7ؔcc o`9`PIke'MhGXS9@tڧaب/ʱ̬mw90u~%^hxu:Q#]#BYT35 pY�Ć\,: ǎ/0'uu l% u&{^/h ]AM=woȰz:Y_q f?309ז6/)?tA,80z{k;d1n"5mǤW.%^h5\^Ӭ"#?W5;Wؘ!@2ԁL QGJ�S7\*6ItZ>hKKɻՔW\#zYYSHE[ c%@YfVBƀ#5—+}ɒ캣-4G_ʢ| / 4Q3aZ[ND`8Lhԑtw<:vq,jn7l ^|{xGK'>|ЕQE4UiADq7UE8` RS٭iڊ{5ТZXT~Y-t,�K(#t~Yߨ) BdnEyA~YhPΔ$aoǎ2^Dvчǟ%k#`6骒_k >/'MS\_,\ٛKkw/a~k&QL$Cf{ftRhe((-*JqR ?@OB$-F_C&|w_س̯ҐnJMι-wK]Sr:5/dnG_mhxM<'X{1fr@ [8^?$`US uP xAV왥}M=2&`*KQ6(81*XXտK"U5;-11'-,l}gaQ,e%k�t.L׺][%܌ȤfV̦x_YWdڏ `T]Ќ4R'6gF%Q 5ȫ3"䳺iBd赭$:K?Ġ+=A%MS~<J WM- KD苑~mB̼-RKL{oZxo3O`9Q5O O,S> bdw'SY$CRTRc3M'1&] LhC}i{1` 2 0}8r +wQy]R1h[ N^2{ 2݂swlh i&Ú4?$y$?>%*~_CJ@?JW&T*dS.%!&Ȕ 'L p]nEvfJ0 ~ [jrN++w􉟕<'T^oQd7%l8 D5XJ\JXbWUj)N˽>N :!t(sҜ55)3"nftACbak') x$Q.2(&Gg d*]q2dd j1}[?7{z|ٖ/|FbqeMΏVNe$5cJΓT<0dnE:X!1ue.$$ ʘlGjNkl0VɋGaEu6k*"!|[Bβ6[S9"-vۀu+z5;14YՕƱbR.-{ ʈB tZ}u4qңWjǿ_ endstream endobj 196 0 obj << /Length1 1417 /Length2 6598 /Length3 0 /Length 7560 /Filter /FlateDecode >> stream xڍwTҶRI wBRTJ BI H#tWAޥIMʇzν_VJ<3{fy&=n nQP<|�M= ~>� �> >eۏb�A p ƧB�50=_/"/*GH�A/`&@  Y f�6Kv�(t�Z`�Mp%BP(&eB9J򺸸<p ;BKkdh<,�}(O@nr! =Cޤ8fw@u8�~+W!(w2Ba�+=B� d^ A�e�f¿CZ"($jkF_enY V;8@`($͹uv0 o [ur*qg AD�'�mik}WG / pGO z O ( w7}s(~�_Ln] }żjڏ9_Ayy8-"� Do¬�?ޜ-l ZZB�l& >a>˛/3XJHw!n댺Q&F BHW:;wTQf}hnq!?n(Ru(K?KnPDz�+v1K򆙿C s[%%Kk"�rſK#J0�^u`GW�/K/KoKGč妻ʇ@Kqm_G=!7w h_=Q:; -m |33H h1H&}pXUon~f.[SˍSs9n<zTSfjc ,FLLïX,_ mR}<؉W8K^ ]LI~)&Bn>aYnSd9nf@~֓eLS]<T9M3 <"!g5iS.kvFiڅVu5ú}Ը.TFʤC^],%>U3:@͢Є7tDRE^lº'҇bf&׭ڤwUt鉒rH1Z*w[3!C&]M Z@^U1<But1B:Ýy2u-^o~1|!QbV|;ޗ`z̴Z%oK$!&YWƻ^p+Ip#c6[BHξ9%!u�ѱ2Fcٕ%'w[Ě `NouJ dSJ:`Xᚾ!?e{Z',}Ĉםk+p{k'Ոr lJw(xQm\%,))# W6kMyZglp Fy=#+gdzW n Qk[N_ѽvxELB W}m:l^mS Ԣr/K \ 4Xku\eexQE C c#Ŏ}IToN&dC;L"\lռjƮ a% hUy',+Ŝ;l#p޳ޠ"&$JٞϒFI1IX\wrڮ3tѰVw)= Jbln6[ ʆLO1[UwW21dr OY`|m%#aࣞt\2i/E2 mm𒟇Ô)}'qҵEJ|e˦=[hmA--+vS<{y)#tZ|M7כ ;ӂf 3yEn&b,ż̙; Nyr5xED Hփ=i _~xL67˪ VP^$`=p^o:S]0U*,m-X('J^z[fe8ua:fŀߴxc`V0?39K5qIڨIc+.g}VrbB(nrRJɾ^l4KC/=L* Gb*џE+}Cc߫e|IQw)J@Bi/.5lp=\DFuݢ\*1R)XHQJ +p,pgG"TmS0/MWܬC^e1nvBC/.h0 aJ޽B!x7s3 le+c> 2[rJ9(6Ou31+~nBc7P=+u Tk;ƥ\7|tE)右؉]t ADаD~j3NO!gnif &GbhۦP +٩{ʍ[ Zܳ֬Hj dpϙU8h6!4Ӭ.?ȹܹ/¿1P֐@76(kmѨ?#D>Qn#6ŽI: /Oȃ-m 'ΤJzwUth5wT,}$$}~hDf&,6>gbyNZYh[I2T>Sc9/iVxuLHTI`'khI�IukZ/摂{]VHͩ/r0EV8K-kG !M㳨qaa 5ήWY+ ~hЭ;t<6g5생֪w tMb7lUkbq�NO-?( ?{1<20~lY]j L 5H8bO bGC64i{a+ xs_k Lٌղg~Y,ڥH}'iP64{z 8x?ܸk['�c!C~H@łN; |6@TyfHN|}»�ljFaqL<;y[0ʝ()Hnq赼ʝo~/\gʫOf YH[FtA͓�RrstȚ<N@ܓPVSA)E.du?n'T3:+MȲ{1 VZYniQFBo}!s+!)HIKKC.k<Rk.λg+ 3>?N.t@R鈌`ĬSUP[.N xgQ{N(& 5H*ϵՒK;]/($?I:7gj.ڌhvͲmzdcX)S6[я1]!IgQYOq^1ةΦ=CҩYf"/y OtI>֠4Z~;L^[Y<{:6]>�{gFܨ|&ѯFiy3|m^^zF$e؈Zw7-q}*UK@6@w`lOL ,L{}E*jn[Zdg($")D3M'q%S4QUk> cy /io׻ŻWJs9 lWǺعh( .:ʼKOWH92IQ{"6+ n.CQ*=bOMٽ>$x>]Hx0,"C]H!N~-Kj+nF8iMf[n�eф~u6>Qm<18.AT|;NL: ۵g+P;Ѵ~q]~#+ *E@ÒFGZq<y@?c:aTvL,gHŌ\w}ڗ2ʤ.T$< Ғf`tp<x҈ H8V#9y2VqmgtvV-Q;n:}h[eV\)ڤOuUJo*"[`}8ǹ;eYNUOəX#|(#qJI|3BL`&0t.kX=akQh'?tJeUw0վO_,f޽Y9UT~ tJZ/Mc;p+K"Ύ*3qaX^}|vWCa]F'!>֎wؚM@RDU.~IHb{s>|o _wN8fy& (E~%3 nÄ囹"3H@xWfGpXs8:R0Q.p&\glVqLd2848 dRe*Fu $}nXS6WipqDɍ<~1|]|$a<`6J=%8i}*EhT(%|۴z15Iɬ1,fVl'"3m"/3ɭKD? KIe**.q궑*<Hݩ S`pH~Q<7nU; JfNƉwPz眉\hN0flOYǟ1# v~e䞿N@O{ .S?5c2*^ż~w.HyCaլPܣ%x1ŗ5`]?uLA5_3#!0u˾~#VgLg^kjeؔW=Nd1_ըcT:$%P 4(!ޤ:)Tfvuy;۲XU/D+.Mv䟯%V4 {{i6T^i.fGv7<N TJxE?h."Rj3g(HعDVݟA6a>7D=O=tm%I0jF!ȜHF8 u2LWPT;lŕ4݄}έtlR*b@twaoH4ĈHD7 ~BxdLѤ;2m*3dR=%i �u6KIbKuI/@nk+L&%t|9dXSN;Ch=ݎM? H7*S< &;-DWZj)qtz!wgv>c[w>ZRj6#xtiTj ?قvt`;/M?c=z&έCo48MUD.3)3IgdΓ>gWly2*tdZط_YM.uDCWr<; ^G|~Xvl^gIO T2 YF^\r8ڮvf!A tΣIHXW pa)e2sW(O>jR1\2lZӼ#r 3ZDjs-es*}J'KFM>ډNn5wҙv2]vrƁZ4j'ެ7<-eks4%|y].HjBmO7}ֹ&K}Ph׼d&qPL]ѾZ9�CMlݏ0 x c">GFmc"`z8-ggԄ5i.Nf5ZZd2t:W3Qy%F"PQб* Kpʑs}o_5mq&8`)3b >gRWOfy0+U}uPi}TP}񐪦J|ШqsmH#`N[w >khgH-cYD©|N$`P40xǦ4:2ò4P.J#jr=,Z.'o ,~{0 79pa'!2MtU6XxN\vJwYV&|껕gm/GiAY& N?**мr=_ωD  ]bIU䡅-t_"4h+-{8ht<%7|: xcpJ07/qѧj>`e?tB_ u}Y v;?VzbD{:h[,]gY=Ϋݤ %Ͼm 097W% .<fm$nQ3s)=adH@P'Kmr>.%1jJ0K`1m˥3 2*)IodNFsPQxE/y*Q ?M%O8͹ZT<3v+?i*XG.JmP [l?Iub Wk^Zէe6$46IWF/OQaҾ@TRy^]\|zXoW{8z%}_6l%]�Z5/)>3ԱXq p5ySey4 =~ϔj,ؕ"b my{J'I})3LppycJhXg"?->y~{Sk~ CUo0j̳B3M 2G5$LCι_dOOෘy*u{a?"FlWDhꙛ6OȫTI8jϙ3jn9DI}z[:;Wϥ | CYf HU8SO A:o5Y!me>Ur Ѷc:wg[e%\G~i8~St{$H?^I֊I:V{"*w ꤚ8~yäq`Bnގ2켇=3ɯaCA|h�[,#Rg8\F'"}ϲwr#f.ѮJ5Is7hI 7dY<x>nQ^Qd {U"uG>~/OLj`,ĩ~[8RW.R@饠քڮ/~u.~ endstream endobj 198 0 obj << /Length1 1409 /Length2 6548 /Length3 0 /Length 7508 /Filter /FlateDecode >> stream xڍUTTm[iH)!HH#030 %% 2H(݈(-((- )- wu:9sXPa@Q"B Y@UXO�Ą@ QNN Ly!-@ 0Go7@D �QH_,9�B"TEx#aN(2zx t@Ap@rcV�cE3 !+,+vB x�_0zA>P;dB$3npDP� P&�Ecm= '@�ko�!+W!w2A{0szB(?��; y!0`0 l 9P 15 @y y~( fww(E?5 lu#|0!=M0Oo_!o $@ �~g_M="`A34x}� Z$"" N08109|$a'~]~w; +kX> ()J�C s!Ws@OmW>/qua- Sw_U/gCnn< v!7 #�}F 5>^m#ê2B``CA0nKin08iE@aq|>0be/JH`$O9h%`�Md@X@aR�̈A#IT%%a_K V%  �a?x# ٿEA!$3ZeF_QQko⎈V| S?;+V~5H%՜j/K7؎hE p-/=o5ݮ.K;1 ~# ^zթ My'UλBd87p"::U'&;oy(3kl J,T. [aܼ{#ySn \Qqvc5l!^;:6oO> mᶅh37Хy%ߗ{BVKn ໩9YCM n�׊7p 8<,_0ZjHQk:x99~wK1gᶼ5_=v Boޡ,}cM- Lᝇb}*|qv?Y%07T1m^ZKX%gxj}pr&ͼ}gn=@\r m0y4nsf3}$}A6ػe'܂v/ۼĉ"j?E,VlVғp&rRw"b,#L0T6.Ē"VMnP[~<ԃ*- ɞl=N H%6FXsn@BIĭ_AX)ug~.f'Y_hni:osŌmX13e퉡J$n:.j<a0T PDsԠz?)aǩ~eJK M׆(ΜK~{%#a|K3f,!XI#倜"HDv&PQcYD,+s^9׈f5 bb/ߌedަ$V8{*;Jފ2im',; Gz`PѯU;Ōd_G�^{c)zyٳ hZ6?yȪpBڀ�g| ©id,BCY=3v[;crk?pDńKsQD"3tֈn8=BJ:Ԫ?X">@Oy ⡓$u*]].uQHW=[rK5Q4ދڦytgQPLs?YR,~ 㥙yiJz(=pn8ۃ782~G6Շ ǖS}BFH/Ce6 xBѺ/(_;'ԩٷ`֏E8n:MW8K7)xxǞճX4v|!m{U?\L׎{?4|7&.RoAL(c)B@o7v"q9pgS2-.{f MENu/܁j"i-է.)҇B֔5?it* p*-fGP "~n"0Ԋ wq̇4d3(UH RWh}i p%\y'v<k4vѢs' w<-,E\tU#9a5:a-,)\/)7rnemTN/\1t*5#=ޭǂEծ0d9Lζ^7Eg.qpg^~>/v}Vzr bw- `dak{  )řfߣ̖ͭ= ,g`-+#] {2t*.>| ʥvZ%-.D_e՜JWY<iuSb~rm_7`|ȃ'oޅmJm3I oPt`%QoުVG{۟6N{WJwzqL8\<v -vwW$pc]LuOg/[.I/Z)U(9V[+D)P-xU>s5}ɪց|s,QZlPS}i6jޭ=5AA7D'& o{\%{N)|&((:pBTZ??CBvU3b҇R&!#{6XrI?\g8x_z3 f,ݯ=1.~p"sJ,xI+Eqc 6Zi{F]\SONWEjo<yYx5+<Nytq͏_h ഭ[Fݲ8 ImZa`OVEky'jRŦapG'ƙ0jivwh$ÃDD2kG;B&{o[Kk X|=儬;y2<}nHCE4#pv|͉c/+FD%E'eSzyy*Y#CpVY{ȣZf2Śv_ЕRk$Z"vV,Zf ʍYXzj.th'#x굧 1 .\e~8mcQ7Z@ۛpZ͎ub>RyuY#}Bh%>RY̠}@xӢAYT'Qb=�s"o(kL3u9wO"n|U/cI9Rdd5FObWᾹ|l*4ynpn>GW;s=9mѓNyh,b6ҞўKOmԕA;4 SH*j͚tQ1gԠ52{͇0Y\;o%W. _k:L/ nrTjj;ɴ$՞bT6ζVpZҲDNz3[);CҞ)NcK!Mh2Kɝ(fΪvE>n(IW?E rIឣD+a \fm;"Ix^FSX~jIjAK2Խo/;\EXfFLߝ2Rq~L‡B_(�"K%ow}}3>߼H;Խғ 7l12*2>7hl^3[qh!-37Q8r~e*XU[1]jeS"m4wB[i$Nwއef.JHiVqSf^L{B6.ݲoG/gWဟ"tv0ESje`Cww5Lsbo_';T+К80bo("C"S0mVV`"LGH ЃeRT^=n]ql _ Tè0{gQƖkCS)Ydkyҍnd'"9ّ4hqN,}CFe J>�9-.,FO݋<9ŇH {vӻț)3G |T ~ Ƕ|}^}iYYmZMB22Q pՁ-qO<^KVmܽģ5%G.6Ҧ⬻xNO^_{_.^rgCA\{懮4MA}v>y3]Vi@VsuDR^ʆۊո*CxzX\(P>l5@c8 57E{uS/R0'~!Oޘnnwy9&u)2m{|>7*\15-ҔsΈ 0ox0AVt C|v,^og3LcwIL$TzH$A.%i%,l#cX_Y*f"Z6qE/9W5ST{+6&Ǟ f` (+JT45!ASw�}VC�wͥ˯g9D1Enl?3y/Lcq YNQҞ}Dj+ˡĸ@~[ގxMbV:A=<R.k8WShgTkJ .R92]*M Q6"=6m=+<ꞯFV_0fMU$Ez=3k* P]ě;4~eѷJjS;c]ef#tF;)_6#'g֠g;wk]m+Bss!Wߛ'C$ncRk }_ V\F/?~܋dՍQ<(yL;j)fo"? zҷE8Dx2RAqH~Jqz:dDS&Tm'M'Ü/@T[DK6ᘿ'X%Eiiw, k HB|%[4P{}aJ<4#AD1[6t ?8آ'cK|]8[W{IM$;q#g&/z*~^XM^{{6a^`K+GهBכ8ʽ=ML5y x8jM& ?wpeۣb ftu!'%E=g$tsElu3> ̈́lF^+IH,,\kFWS1{|s?Cn{Bh_]>B^9m攝'BFhZU}(Tl �rykl9ݗNtdxL?阉sT3(r3"rB@8&f^*62ݲggؠYG4l\[[KKh&ɽ)¿*BYو:i\Z|Xr1!)t:>*~26v['ׇ})""ӚpҷEs]'9>J6*pA0 *% wvy *<mѴ\5$D&&b4kz;pHVIҭľe你^3 >>~KG3r_;moAj 0{_QUM~`niI{XTmi4oDJB ż޾㔠4?qJ1 ԋ*?_e@.m𒽤EmIʭsYX1]@tCTA鉱;} pܽb{vcop8;Ir^^Պ缚Ns]2ԭo ޣ^7/&:DvGz:l h\8ix4 YM)]4;#,r@S~=ڬȘ م#]6I <[dQ!l\ڄM| lWjzVڅq[Cw7Mpr8;-__ۆeul Z\"04W;X˴"z4ݴEI5H1F'j6@hS:Owܳm[P5_Z)ɣfJ.~G;W)l~V )$RhY tnLdMa4v}Wh0fw /N?/6,_ 㞽p@$ȏ"n98L<S6?X| 8<m?UىpQkpf}%-MPSإK|tL)7�Jn&1 op-i$`j)|݈#8[ynUfN0-UC< 4Xmc7 MWFw;B̙[MMܙMR=%v[zZ>4>cu.?P+a�ZH ڻ*tޭY3 YK6j<"ryw9ʺ&&O/:(هxݭoȦ׵DF־RiVўiX8Hc{<]LЭ'�p2:}CXl@6w s:Z!K2fN=Ls| E^-\o,5/!@#>\v57J8? %fedygG[odPyi: b. EИ=ї =�p J*knb5&MThmMT;J-=Xd#KA:TX6 IT>o2Z:?8ӷ{xy]XӰV||ms Mjx[2Nô×䡁gih|\椵ɕZm€8фw$r˯/ &V4C#D (3Qs,3;U e%E[*\8k_P7mR Pm @cںp#޼FhFp'iؖ[A3a9IA|Gvy eͭ@sxD!ITI;Ѽ7Ac2x '*q}P_ yb endstream endobj 200 0 obj << /Length1 1855 /Length2 13148 /Length3 0 /Length 14308 /Filter /FlateDecode >> stream xڍT n%H%!wpr}kݻXkxUtW55&P&�T֒ggqq QSkvؑu. GyH�Mo6)S𛣲@ ```cpE� e�(�HԒN^. +k>Йy ]@�eS5mGsS;9tB`�++=h�].@ * QA-h:Z=L]7`tДW:rVˁ �Y? 657ww2u9X,Av@ 0u-dgjg�qu¿, ?4혥,$`W?�݋˵uppY,,aĪ�rvKfBf8�@g�ܚ .a~|Y!`7Ͽ s0 hr@'hݿ l,qYU%ĕeE GO3'7 }<jW#r?%t=s8u.@Oqn?CuY_V$fg:_? ;=: 6ʎo]u2fWo `\,l\A2 OlnWec@@5GW/[Y{2s۷W5\+`hǰqp�L]\L>oSi,F?  `�X%!^�_�jC\�V[?gXK\oqo?ſ mk/Z Y ߴoe f ÿ [Nxuz{O쀖[ߎ%n[ݮ·MۿMM?Vן?]cV~k5 4GZ^p4 m'`ޛBBݕ&tW$5&1GkoGvXK&),cW%78,Κ5<f3eh+o+iOXP&b>q@~^)Q#>;!Oz!6+}j(J)$h+I*HA),n4c]U{h똦(`ԅnU&t fMDlO3mcANdBoNnҞ2YlaD%DZlLE_c-BtF5KEisя!. &v4B bmLփ'5r珤ǔ:$<c\ܔGvZ֖!cS^ˁ>я&} H=QY5(JNК_#m[b>4%SיB|W\1A-;$FuBPO5'/vuS^i׌YG#M:3'D֍mF+hv֖չ_S%](kU?!契e,NjC p@\s@N|êuϯm&ݹ[C9,\ obu1;TCІ*K:t\r;GHO] 0O5Tc8GÒjp^ϝAḵ˲C%ދ Q!K) 7?r�rzͷd@w[ipHJx~;84Ljw׿OT�[;SBW6U+>DHUm2F:8Ƴ5g(CBxXT8zt>`GeIҸ=$ srDߕqAx:9;!_SFX,6'vlrƂ5(/(cfcFä.]<|yKvpQʽl'5aITôuIeM҇CM=WYq}i6׆X^^JkʜdJTx\0 $$U\3gު߇/A%U.F u |~>d)-ƒ|b E&ҡF?X[ƒU6 SPBJ1S g`m{yU! 1|(2=XϧrRZ!yxbE51\(9! 1c/~u㕇~8^~6BF݊^qEPr lYQya[jq$_ZDb,0}:glb#p~*@W@6mCw-?,2sg᲋٥Ù4.EdLAF^P"ZZZ*J�"&W${r6/+)tcOmuTECzu-ҁ4Y A$K'B트]b(G2}hkc "DtW]D@2w~Ve#_mpzv2K^}�8A@2z5+ @0m8eBG0fw]\g])ͦUOiqFJ ѳ\d'xk]z!3MK+7 'RE!gk7J_]՟ZA,6_^;4K!)]'3{a%[%'ӥ{۠WWs7 `G`:&T`2CxB}J�׽ߓUx]!=N߄FDQwE!sU" Pf.F8X)~A\ZeQkP-۔'ٟ78#J3K~Ql{ h0,}!_=oSTHfՙ۪DXa|_­% ?? ^#v.¶fh)2V`_ܘTcjr,ŀm1ZQhY)/5=\{z= rԬ:c^7¸?r(QO^d{ߑ>-le9Sӈ#.om5g.-xqTSv%z1ix[JVDHZҲty7iGQb+YnWhWS.T ?gٗJ]w8mށ3I"lIXN~UbbƣԱݭ Ҧq !n9!I>-n 'o}ʠeu ]J%1&k9WR $q';W|f �A>952r@oMv *MGn*p4x#@>ѲCa) |8a>rI\-a4r`0G % `b12v/+Gܫh!P)m ǞiJD3G@Hg[jż2VƔ_n)^޵ߪuǃ-IypJ }Fv @K ٢�whs^ ;m7 H9~D9?qG֪mp939ޏ8!čAL-tO,X~b2v=Mxz x}nf0kB7*!z|i!Oc-K&ҩ ): LӴpx^_Q3txb REO4yxMT/jc]]nX/l'^7M oK=zUfBd,ZGO=><n5U.6 8f;%973# PdMOpQfi�G }ё5:#fܘA;/ɴ0#2ʱ1zZr)!}= 7q>%?=5֪5ֲWԹΣ- g0axTg ,oU9uNnO$+S jl1:d&Tp֫1۷`3Nt+G3); aߏ %H;Ot{e1c\ImRGmԐHvX -_ęiC4v'{%h1QLcڌl4\}~xͽݱTUw:#kk>quS[z|?`.)n}@5Nǝ/w,x>zWV]:9:".*1%)gmj%^Ud>$߰oPwj3u"44$h:5@1g: TCR~ (ײO@aK%_�/MGnJvOy-1]rs8\a_::DXi^c sWbĴB=ʐ_nKOKg6& ރMw>rՇ4qKnY8<=?F` O= SO3WDɀ. YǑ87E!rBl;4L,$9SVϒED"l ڰߩi*.*eny8zqW *wrE>HxUM2J:T3�QnqflF⪡Sg, Hzo-PA(e/ K5F ^Ѣܛ-oM9" r�"W#8kr&,LP(¶ f8ǚ~JUmy^7]9{z1au/![lCkc8o3woB^M{OZMtϮ.�C;usE߈yt#jbaQM%^$Bc͇Grۅi"h=>aN1@ [TO:x$׎a6gb X >ItQ߳rQ6/cO'0 SpK۞ww`ZWOcwR{ŵI7Ї 5r7<3IWG`ce@CG8Y?Noɕ5iZ?T_ RLJDa#D\1ŏ$¼5 AGk)a^!ڪ}9JpvjUApgNbL^=$\ xE#* !zHn`Ƨ%@*oD?vmX6HJ8K/#K9gcA4/9XuJ zWp3Kh`Id:#3+O:ǩ dTd^lĤWcM_wLu\G&-a2 -V3l:9=רi�EU8N \Un)+1UdFŦD:[>1aj&4/=kPRQ-\*n];^`)o#򖡢$/,=c Uskvki2q4?zH_%>: 1s{ɹc~ԦJvI{ 7Ez::\ߵA6gGF%u;@M[p_kupW1vLFilhh/K ,sR_).mz3O%ppQn \גc^\e=Pij`^ZiU[Bz"=I$4`5$*i5!Z)k{pϼd+lΤ)eH<gu6-+$fEDkTøQ~\m*-{ُqI#my J9ezP(xZ'!}An`7R9 8,o>Dy<u!Bimh'Ǵk5Bp" s2 w|%ivz�LT<iKB ٝqp`mi(`!G;_$Ei@%g\#=n^ *u``'jG+HWzzc5Mɗ3q5t_*I>7YqMrٱvi@3N[ZOHFqw`J3"ao`P .4kNJ^i5>P-<ZY2-^i^ZjgmHSs‘jXj%̺x:4E\&*NR&mq:I H)kt8Oe_{u/c~|eշup_{ 5|_R8P ܴM>VRRu_ I˥66pJ'M=IOCf`tHJ�";tMژLP 5Ye'ΓhlM^VI/k.f'Dh>+؄p'8%'S$㵃 =ŲԃHIذm\ϮT^ybӎDN}nQA`f&:Sg>̣ՋtY%ڰ!χ-K\ :;,(phѠDPn!mC%rj骐+@5ubIШ9Yhd =r\p"j/+f}xGx.o)$(&#K\՞:Ul'/%<P>8= +Qn f̓Y[w=R/<8埁3nR^<)xirI4 71nȳA>ibt]̱ȗ`YFCdHHעP򽬕6jt|-& ` NPn'VgjIadFg0D.4xc/ #3xr"L+v9ew"'DW,a?8;g%&9)Plڸ3Ae8M'G[ci׃I9GTDD>j/&詛M/|]{]iC"c5urrsLCZkv¹:kd~ς\T%wCdD*"I.&mPpEQw[[11s.?[Pa>rF')nlؒM6QnSF7S#p-l6p 7?GA4~.gU.мV jQ*|/AS;+�1"YR5;&RG, Vgm *{{k:2⛛bOgs∸k1.1i/".oZA)D ]{& %"^|msTҋ[Ms\ 2NUtvAynt98Bt9sَQ(@י5sv IY@Dy..AU?)GD :]ur:xb9xg1Si*^?"m h\ !|ܓT ḳM텓k�qDd Rذq] mE |&4>dFd\WphJ 6cկ= ?jw> s% fpO_ci`w[XzٻxIeSKHX s UGK&f z<R)Z)4%gɗ+Y?gs$TА+Tx͙ EUzFay/1Իy)!tCSm#,[6*J#ǖt')DFv:)evypsRhh,QsP7aItS9}fQYAƽL0fGo(rʌUeO#5i8s.zɾIh4s :ٻ>NQFn< XR 4ޠ �2<hDQbOd_FXä %ȮgYmBa4&驈 Qn.{^=~gw7YkX.-jqb(9*1/˱'I'|ӹb텄IQVG賖c%7^QLUˑq3M5gؠZ4AJ27-8<5VdKƢ!WYa<&GYĨ©Kt給l,#ahKH#ԞNg3ܬL"NJDoƼÇ W׈ a/ܰdtڰ .ʸI2lo=qAE~̌j5Q۰ Ejoi_yd=g\_qL:. vEp)A&bR@b�ҷýhUmuTN`ӺK8qA-~s Dҥ<zʼ/4mD8Z~w J3$-Y C#1rCCNU޽-F|'daG$gk5"]tݳn) I1c ywcڙB<IZ P|G6$/m;@40,//SvM!jeԩI[a zo;k|/\U<efYpM2+ RV| TXz2>uą8䯊 jvDi?,~vKD<^Gg'V@ZiԂGS@LwrɞyD6KHJkJ{ܥX)|]; A\³[Xd4ؼIa ÀTU#7%ENΐua6sN<Yhɳ'Msɷ\>!wϲ^К_ VӜh%vnv,"rˊz>3pqڻOYܠ샫,RHY˦s$t$5=*AU:d Tג6~ƨz )7~NKܽHdAԁ(X>pv6œ]K1NDL4ngpHxN[r#.,-dew]h=wofV_|+K{t>_HmFw^Ӭ`}F=vad!GQڃ1cl` p ֞8M$4nYmAFƽ8!6@H65Ӂ%6e}ij*"B(5l/9rf:ٖUs»H( BQvc3 <5e*l=W|ob.b wF/Gj3\CS9g-0`BN%OqκB@]B ?4њl:lr5d?9}ܙ>8Pߩ|mⰼUv]bO QrD|rq-\"Zm]n8.=F8g$idžk]|<gT-=qz~du&;q[|lsl}Oχ(  Uݺ[_J 85c %iՎlݎT13pb}?D3%wL(EA[^%h`^eJI_7F>[Egb0Gi uyOg,:<-Aτ#_ىŵl|&K-;A5\1.ѰdlI_mghGPNPof !|%e>\FX|KηY_M6$mTv8>EN%q "'{7 9{A}7ZX*[1c;ޡ+\Cz \BIPwᴶlⱄ_~Ǜ^*E-A0=kZDgyApKU@Jn3Eu;[Hm=ԟug{OF~1Sd̵>M^7d |#!&4ae|6>^]Up!w h BB@<vlQ'&kHtw*I=7rwhUDVr%w*v-r sUA,q5#>v +5RQ|6KgxXxڰ{HRS^Pi/e O[Yɜ1e,AKחqzA~0aīE4L*nr( ޻^ð^Ҩm�p!rw̴CM1;TWxϖ3>tgneC4 w8?-r!W !28\( 1gK:R|ԃ#9ZY$I`͙H}]Ud!'TRc;ћQn IJ0?չZizqwM4\'rcʹ_jhrW`~~Xe y/0R|M TdHX9uXWx?VSDŃ( ҒD;źrɏe_-y׈v+phR*+26A[YQ0$ ,ybYr wpk|<8H>=%r4Du!<r }ԞOJOIm{)0F5cg�ҹ0>W=3=Zq@-D7N?F۠:]jJ3V@qlpeXU< %EA�^{}VLdWbMIGyn-`X#]vM3f:6YЋ]ׁLs\ՖG& E=H Cq*ZBCq8]SEw؃?N׹$kI/`le:yJ*'jd6tFcm*N{pι<2fqØ,mC@ߩbXιcSa]V {I)aw4^艹ZkԑKeGr-~ E}\_{'Dw{79]D .>7GG n񷖂:|q>AꄠIw4TJDU9b(Mڐ<}$'wzm"(M ٘OW֎?N]?RVeϾBG4ЛZZm~(dmJߝ 2f 79>w"ͩDǕ f)g,OLJ7�s"l[}rD0Wto*sMT[= �XCs"ũZȺ ](*]RY)M>_0 |ǣj=SqU@/80@~S>%T8k.^N96Ȧ +9CAՑ=KG}G5 KCQꋸ.Jk=Gi6GfvtkV={} ~A]@#S,Lf77$1UV]=OMh/{Y,{Sp})]HiX.Ã,U8fnj;j_Kڮ̳P a0O3]<ퟦ?l9m1J3S[ԫn?4#qK{r+#|߉|L(Ȁ| 9iJ 2jӉ vE{/7rU[Ce*]=)=— \RKrlU@)WE㭌Pyp{@];6~x:+B(|钇H$ajtYb;aߨl&1>!%g~p+NRHA#�A~e7 nY(O[$h[&*LY҇a/Rl#7ll_ޘ:"JK=;ASPO#`g'"~`l95TCX-bJ%55E, Z^Q> Vةs[paV#it ixZ(N/V^jnTӤL&3Lֈ>E F7@p,:"Mat pE/zxIPEt ؝85xuйN~]t2_z#bmJdF M&)SS"?Uy]-Bik&T(W jK=֏Ѹ+:;+I18Xovz1z>T,4I0LC%WK trl[ιō-w`PSHF4Iu^c悗heG2*@OOz3h*hmĺo ?^b@5-IwLmbMBA&ͪ~N^jŧUyw?̝mRْ":٬l}"C-hh*:O 6#:N_QJ}tt 3+/ZsCyݗS^p/xcь8:G�9+qTgO_iáY js'Cy !=<Q rvu8[_=CeIX>cUDʹրߕ,i#5G*{Z< }&!:[,}DSI4yD(:{@f6Rkb_jm0xQ#LB.ܰ((c48 9.<{_& O*V]D|+V8kıirEi<☽YD^ORTD;>4 U&lס+ Hv>"Ui'IRzȰ8WN9YY$D~6V[25;F @_;y:pgO,K\<gJP6@W ]Qp1*(p߯rzP(N&`ތ^\U]c`vZ@?^ۓ-`tIB\ZYlԗo)NzRK8a�1g;(^SȢgQ8MV!:W{y!6;C6#$ 7(}qӈϾt7H9QQt5K2Tb$͈ UaZJ"rokfsq`A;V+}'#G'e>3�+�e?\AWe\]<0oЫq c/~Gq<P|MF:󷸹,(Rk;1~�/NMxVẌ́TwO5>}@3i;7I 硟'u+Y }(8~.RBQr,E^9'4 iF3{M-&Ӌ&EZ9[mX0B>4 YLDN{F<&>&~7hzKͿi% I$aVڏu/*t!wA{P7j!.ШiVr,X/)y' 4թ!Z?5dJo%YjTdUP?-UʩU]*9%nb?p+#.;q220@dyl .Iw {] ?NuaD 7m".`&~Xk 1>7aGT036G b Y4ބ(rB*j2a)tHl9>̌ЪD!tB]97>0vS  {ct{@ z/6_Z{|F<yj28+?N}5I8)Vzަz< N \~^ELlGE%NOv#{xl"03@ LlS{l1뫗Ik:g/d'K vR'o4y5KreIۺnj/~+j\Z]Q.ŧfRThGh#^&9&i)'6P|^-LLR֯+CZ‚=G:hT7,Cun2n6}긖E=[ t츷|:J{kV_ppHЧ:J>Yr̤_'Ѥ$P$x endstream endobj 202 0 obj << /Length1 2512 /Length2 17693 /Length3 0 /Length 19153 /Filter /FlateDecode >> stream xڌP # ;A2Kpw!ww %]d}vޢjսwȈULl6NtL�9UU&F�## =##3<* _9<dk/ X&j6H;[X�LL܌�fFF:pD ]@&�9z LdfW�1/w5dlh3t2Z �* 5wrf`puu7vu0㧢@G d5� (TlM\ � d q8ۘ��`v,@hcnp{dc0Y NnN�C߆V`CC BJ�Cph�srwYwplLDl6N9�}wgp-ml]m<LA6&0qcdwJm�l,�=�fl@\\d t4tޞV/gb�F@3 `1?| 76#x� 0[+?1'eq9%1KG),lc1�X8�\�h;yJ٘,KM {=�K<@�1adc40\(c3wKO5o :;w@ 6TŕV B6fV4(r(?3+ Pf112x-#x$Rb6ƶ&``$f66'xMn 1 �W 0u}l�ߢ v�`8 A`� 3Ab0HA`>?' 0?̧ 0 `P~15A\`v+8#x @L)A2 -9?L? 0?  |pX[D0Y22t8 ` ;7 6?.tMA.[moٟ`&T9_`_ſ ɘ[GnPcـ_zpldv5"?jp0;cNo)+ ;9%Vp쬜dOM,\ 7_}ewO$򯶲O;Z:+8?;j/p ?S M˿ ?_'I?s;;[|my-j N͐Ry.:;? &QUe;% lQ^ .}|<n iIPj}zҏSm_,8'çSzRn&˵wDRGsp/] UګbyT.S,YQ1;j37׏q4'Q,_=6<VUpIqpƦ=xFfX5Itʭ-+h%1FZы�b`G]cwU\"_Ooo(6ԁD%Vsos͵iͤLjJs7 gWEF ig݌۞J@Og$x؂4djtV*V#8n*a%O{/ycZ2VRlFh-N0ˡi8r KeHM*[O BoKMPIhjje65_cKi2,mj '@bቍ ύzz0w{cngi*]I%4<rQ%#`&SR6˫2StK{ 7aQOLւPUdMH:v!D9Zn1~kwGzgDTҨU(טj79=1Dz]X;SOF./v,#s)"e7kdf3nVW#V= Ϟ>*#ȪK[Kf !!"N)9B ֨񮉿سԸ\ `rT[f^ �$N=R2mvYU79={7MiHҗȺL&E(R?x� 0nOӿJ#MaE PfMRzr32/|i ~Zpt_SЇPp!CGU C?|Z?mfJt ޸/8̈́F\OY .+)뢧+V/1v+07SlKDz4!UX#F٥[&EP[/EV̼1A+BQnHfx{S w|^QDyc Y]#/!%gI\(kًʞ 0S|toyrkϛVOxv&%]Z90_)b+ <Sz 73ԇ&yV3 fhr~x|0cO۷8[eR"o؞HN7iIWk()hC ^%JpT4A~oi-Q|'Ĉ3[57J ~NBQ&UPX=@ٚAAP; Wa`VFd;҈[>Ǣ7O}{sh`XZ:(_nȠj+]fGC컑+V XcD .hanu{"]_@kkAAH s=U20NC>jxEmo͏U�E1]:%ߛ2M潛O ' oU O=)qdEN@2\nt.[bOnl1-O}WE&[VlFFɒ7�op6Z}oa :gMamO}ړ6[:G:vwL?kmd N(y }r&0�"d׏zx]dA}_*|\btɑxZ%R{sْh<C3Dz<]"RSuh yKVc o=L' ۣţw~=0 ^|+ +M?}KE$on%:_K_~<'~C1}~\ N ,^QglЗv / Imў+5 C&x^?%_=3$):H!& 8 6cPB! r{VڭުQmX|<IS-xfozuIK4g~Vr9k׾c!`m+9F%+Ӕr.sz!a7S #'zWuǠ4[.8²2\̞h! R% #t!Yi?tb|;�[Ab$<6_6P[P* Cʁ.L9󲾎XN\1dУUn!\YQOj[.@>?f0fWЯafuVo>=IW i_z;b7aН;_| or.#oC6X*P&!OlL#1 B70vIἴ2%$6*)+QfԴ&\3%wU#reB$q~Ħo)/E}bue Sqa2~IN na ?sBi폀`hgZ'e'l~W]gmq?vV!Kdwi]&TlW/ν F)UFF:֨ޛ<bE|&iSFk?oR|Iz:HjM$J6Ιz鵲,1KEf`Ƙ9t F.�&js.  a�YmY`J'P#=8 Y7Jy=A{zwr\+h.Vg<jఌFе$urԬϏIHή& >oñ~v&꾿SFӝTt;˰03ʖL0yGO ߽,>r *ξ˷_ÍvS/~X!cݶ1:ohI2AuEy Ig~_ýQ8Vϓϴ ~M}: 1+CRø51Mgw)8b 5)G 5rޝ4T+Mgš*ds^&TxH ń,lIJiB|Gn{x[$ѩ3Hڭ6Ќ2&=爁6f(+fИ 9`yG/iϹ5k^t(Xt\_ڣU~r,SK*KMހ->T;;b~1!e@@'0*SFlj85P^'WJf$ `h>,ۜF VKĘَos^Oo V]N}f܌IX7t&8nxyc8קt֩dlS|m>6:clhgb1po[j(QsSr) W€a-rTڴ'98O') K}Mfj&M\\ucO ^J =)/x9-Y bFZs>,ju?qsaXc j6KlSջ;1Ե($eB&8LzګG]VT`gs;bRزy:e>L~#Kh4M[e`C94TZQIAl6% 9K{i5�/)'Λ0S.Lj7a0gt[Cq]<NwץC7D@ '~{p&)4VeĞ o.j X cMasJ?1}>,pa&Cɿ [S VF;?cV(GXEKﭺ*nBA,ƱAӄBh@X̍'qB!\\)v/guuՈKk0hm?qM:JS]0jZ2ـ}4| WDze8N)ke*٣>LI o!�N΢Qo]ȥVH5xiۀ@v$3`N"Hwšf(o``TT S'BBs&L13fr [g_4 i򘩄<׋~m-7CZi$E }+S#t (vg"h|uֽ| JWΦW[Rpo[-JӨGgjh ZK%Ezr8Ԡ]Jܓq\H;4QIT)lbwoh>h&5%b6r,{6k<eRlѨ8}r;aF�IcRA!Pq ⃸ZA{;~Z^ oIE A?g'x%!z/9*Y}HAYd݉ {σ<(VE8[}ˏgRgTI7s$#'XhLs2 j=[C<!cwNڇ (P'gۡ: [ 19" I%h^ ܽ% 3GWޮ]&rlʼ'i_A&Īsui Tg-%h˶ڜȫjbAh#Bൖhvr7c/#&d:,<թ�NK5 8 K6Fͺ\->)ZXzUnO l%Bk\<3?CYc ǀ%F-ejUng=ԛXpy>r""Wa׌߉3&TD*z <j>2~cM\CEK bB&<M*:0o`L* IS\"nc,=fPᒾo,o&gɦeg_Sin0DBx(mJny궙.'z�tj΂a<L!33iAOpۋGpBЁ}{N1PM$"B&L$LӠx@Z_jмhgbrSV|~Qgb nLԞ@&<93 (8{Գ2=Hy[y5>e]мPDVE0~嗗Db yNWdP2X1nH@覙_% nX<_J7@}lFz3Xz"Sc_l 1�|'9/+or(-JY LYDDbyPF\y}j:gC gp<1F[nȽel }q.im:ݔ27xtO?Uyfܮ4cy_>8O 5�SOiԐ6J~8U:vUO>eu:bp|:5@FB1cߜa vK|W ̮J`5D-7GXE j&)O`uJ\8Jw?ؤohm>|$pADܥE N:Pwu02uh.' 2&`tڇIPTG.z\DM==Ͽ֭ۗrtWZ|2&pBmv60ʕ\uy4Y.j|FA@AHnM!>4-ˑ@UQkv2n<>"L [n&uF*4B)Q=EN f7><^mϝ7?rqmbW[sR<{18WxIkX{P|t'兞}~E=vYNO0z.Pw}DqsMھ)(鎏}FI.f9VZøIJA^VZ3)%ށ4S4N)RxDՅ Beo3: o+Uz8͎yrUϪ2gԤUN $2cD^[W|\1D c]0_eTWڤRx7t(r>W,&6W%3'|T H"=v@Kߊ\âjŐF۬,{{ŃʇOh_ w]Abps!A뉋[l~ /!$9jc!xE@:"cżued/]ZC#J2Ci#rFUZr 9Q J`鲵b q:B zj2U.*PdѨ^D _Q*.-[xX9Tq~{!ƽ0B 'M=ErٞBP= {-*"[1XygI/><G4& mrs]4Sk2;{Vs)?�UGZ=Rhl6̸h/܌_s=3L7+tpnS6~,1V7oWTD |vfၔ.@I(_mv-0^!;P{/?`IߡC+^XN*NCHWey.R?t)"iHZH$T9o:fN%.\Zqoz]1e6m L]v W[k( cE4+o]|Mt5o't抿=r1ҹV1ҷ=!'(͔A J-n]}|X&6`:݁ApbYO I&gH ^jwj}yAMT ݦMnp(m;_zs^-`Չ/`V'Cα0I|LJJf)2rվN3Hτ-X Tq5f<Ƕ8raDEc9"%#_t-^z{z+@<H&Ek{`ʄP}xƧRĉj:Gʅ يt( ΨC!cIUj wF!`̾YC.3S<{6K.1K9m]49,S\T]_T@<W;{(||XJn4,7LI^f$WXtL8w$K~/hL1ڒ6ϴ ޜs)buh^ף{o<.~l|@`Y`MqnʃBLcp\38}Jвz>-#m6Lett2z)H:XSt,\qZ*<_F?1VwltOhS]p]z#*܉/Bae'DxڝD ]c<ub $l/}`I2Nv+.ֵg=v7'3#0sDJ>i:h9CS,(51x-BG o� סoc| lVuT:5HsDTe wh82@{DƷAƋbxʞ$Z WF@qd"|ÃۅkT'pH oh?Dqy8ϸQ1E&e 8 @n$Z۬[SN4ê]nýVw2rK-YDcy6;!�<qPd!mUMjv lE"t45#NGD?tJ'ؾp$^sx'A<BlP2+~,za3.$i县x!.@P4ʖeݝK JϏU406!hb nrҼZUfܤ"i"XC;a8b'K4/#U0zt]>p >{<CbG5;IԌ]]{,,X.o+(hzhTH/31mՓ'T1ǧ1`2Z(QEp:6OF}tG*\gꍄj9@MT6 Iҍ.e2 aeE7G\ۢToouY 4|4[}$V\eR"FtuG;k3 aZ >Г5X+Oy>rݯGb}!2 :̍}}tѯ*ɢۄG(o& 1e0 \Zy6Pĵ&Z>#Q `Y=rO蘤@1p#E#<*">-q_F&H^][Ĵ1sR)zU$M 6[~Fi1RXq"Y=ׂ 斩3a^QIWx'Q+1ov9e͸*'7Ԙ.bMd<*e&8#A+< ?x�uP?<Ifb LzjU(aeЗIпRNXGU|~oЏp#v.9B&ǼN8"8$mc0*2OJWj3]!9{D<lw`Lqq|9X?e=[t vbv�Mx4<1 %<~hPŽC$| 4i]~d\6`qwXST6&f5@a|b` x.AlbJRc3I׬o]ZT:җ2NSJQy"f\;_O dr1KN{GQ@_Hh5{|�0Bn~rOCta]^k-86GEDE_sB *Z6b57kd(08\ Bf-b9ע!kJ(Sמ T)<yBN=KÐ(œԙ)^䉍vƇlJ?>~4no\{.BIGlfOR}EY ɲ?Q p(V XHړ@YR-'* 'ܳf\<2ȭ";4l1qnZ,Rb8ZDҝv }LE̷D IK!ajzxfr`^wRd4c &r%#iu00ckTGyj䅭T)8~ղ?~ 2hw3e" Dz6[YM l^d muT}Da*i|ܢ�R]|=O$iNGwAKH%磈=><̨{QO5<B-E.i(]EP |-fcjFo!ątc&\8\gS}7V5kE"i=jϓ==j~ߩJZsT)Ckj/RoI+9 mq~�_ 1'9{˽Eby֞.}!9Z MII0Q~;ߜ"x)R2s=AN| ,U-;`BRxxyZMBIN19|1vw@)隴\Bdnbxrס;!U ZKK7ĶV:&D) \s~޼(r“5T<0c7Z0_ jjù[_T8&wroQ`|g F`48mӝZkw(W"_J9G-QUO3~].'6^MKL sWV5 E *YgV&Ř8�QbE3k gimx1yrAU ]r\8/eJ>*D&9ɕ%Vd#9@Ab GV*l'H.j7>O~4K8,t!v$w亿hˆMSEU T5 =h9W)3e2RBSl΀<5!WC`DZ רìK_Y vS=/3,fJVhb `PۣYɽGxȇXd09nFž}v bY"rƀO#icw=(G"``n=BqgK3)o:9UG vFX^)6#QYm[YZ*v+ >k;v!/�- $"Jo= +gSS})E4İU؄UC�l=pٱS نϫqԆ+|Jh{4^w;U=Uze;1>ch%axi4Ԟ <ysmSO oN/�1�-q|l6.V2O2hzicqe .ZBmF`gWFv* lMvyhRѦ} }ڥ}Ot|.Sڔ B)fYZD BAk*n| oDC]cqbkyǐ?)"  w{\BgvĽUT/'Ic{شɻ1=KTѭ1"rmO񝆞Sl'\_Ï"y-&JLto 2 y._q6#46Uil3Gn&_\(;D1''BAP[jN/f$ivx>kdUT՛lNGb-Wlک'rOYIhXWy30\9^њsG8X3d<Aw3RMFF:$*!UK)Z;/$|7Я$y~c{8g8m`k%57ľ˲x$)bhMߘ|wb4 &3=)6滨fJƬ4-ӃBEtx*zx7Ԛ"/9'곥XtM:솒DŚxn:oҌ3][;ԨI%b갾9ٷiސ.qp4q_rŒ vf_9rӯF5(Pp 4;y;+uJ&rv<c@.wJ8r.`*Z3ed^xwR.}B}R=wr-*gXTUʉ͘WՑ5JI4j:4׵3Xg*[IieL} eUv.H{v8>4ٟ֗q2AEZfFQ[�WTܶ I(K#iJ6#*kGݲk)TG2kQ WՇOJo5ag=;*O4;=S@ PR9$b S53 i3{\ƚ*kUNSh[;/kz3c1W5Wb-˅ ?0^U'>6f}2z*to%^͕Ni%NҲ6ݦlD3p9gQqe~ˎ.Ȍ<Sj52@ ^A!<gak?/N4ۼO;VѸx7S xs.yXE1,pih(FRZ,UvJ]oMysos 0RvGqBBh}=!*«!cŰe`Tپaty]})%.w)mh@ZS*nާ Q=: Hq~oSNj^mC>Fr;KlTE<,zX:>Cb{f,z⫉/" 㚨6lɽn$Zxk0^ӈaYϕP#!d,m_(~l!UT Jz!aME$lڈJu/TF'1Fǣ17 k^̔XXAUS0wb$b7{%lXb{ tOYIEm3/M+i{:z-nW:F?*ڢlN�G>B82ߍ\,%R ؑ1/P; {FՉi\IϿ@=@4Rcp+^<h -u9Hv8~v%崶/OX I7U{*lecLsZ2vgbGgͨm<ղw/埒b~J7p7ˌRu@/o};}7M|�E'܉IB ؟W&+j:G$Taq2+ [p嗓Ykʆ2;û" F [�j_b{uB^M-$*G"$p5LxHn*AuLs,D3M;zLA|ϋyN?c!J?YDQ wlӹo!7 nst{2?G [5Hyjd]nvC[ aa99 q\E^7a~9fj3+TW[[e],K<opfs䧗DJLy4�{X.[dMaQ9}ͳViC\iScdGz8r[i jLk0sP2644ߨZވĵG;|F 6/ -<Gn{!?h˵P _&)8 ݆7iSG Q| ¤@r◤cK3lED I+J/b|k |&;.M[Gz!ȩg >d4WD($])0􉵺{ a:܉faҝϥ^3E/gYF;ahc #*lS( ؊wb,{c颅*rR"4LwсbWKWgzg)td7fvSn'v=bk~WaG}nuOpGK8eIiouz7n|_٭<K4ml.˘#] ]ˬs@uf5$*Ϲ1MXvB't@BäPRg5٩W:tb5+-B*\ ;~eGw @]O8BSّ~D]-_{Czu(bL4,9Gɽ0–|ާgjtپ!!:1KŌ *Вq(F̖޺Riue ©Ac\Ԏաf$HēqR)^"F3wm�'7Px͟4F?hVrLb"-k@^cdY6P(Z_(Xk;aiUFόÉ3D/n vbzplZ  'MozDs-.$2B2O)! :-b<^0*'`hv>MB؊xn9CRq4ve(VaZ%;U 2(P#xi$J`G|& ~z B!?ji7m7hmޝdM͌F) BG.ꪧpFr\ (qCjտL}7=53^߫C u_s3-=.oH#rP,3+iROq$"g24;l ~޵2D)fȌg<s ?Xl+Dœ=tZI:Aq-@#;K#ádߊ(nehy;: &Su}n7}jA 5f_ziBԼN2:w{ c߀0NP<{)1ީg>r~. >X0L$;1t)0쒿~Uf+ۭRRjh?$vE[)tf":\\ڳ,"*9&6\rRb_?vڥXܟ@E1A W qތTG4ݎ+Gspke5YgMsF9``r+ g[b+_>2Fp=e; "EZJ%3Tk8jAqTZbВ["в^e.ݏ@F|m5|NLJouE]qP4CZkeGm>Wm-l:Ai,=-v0,#'K$*Td ˵>Cb:IshJQGO[3tkk9cFHݖv7/첑r3zC[\x PVUN7)N<o%||eL$ۦM)6i_go|<쐙3PVm_$cz*JGĮo"<NQWCAxPes5^ %R|5id67# 栽_` OVx6v>pwSqmEg#ς@D35/քXK,%Ӓku2{\V&*Sg'+ud&kgoVK T i7)D>Y4VzfҎ8Y.T(?r\ 1I4j[16S_93ImĚ_kfﳓZ˻.SWGԏ’'] l?8�9ǧ. @~^S]~JJ22FN94KA zgD.NbԪaBv7тSvkfkryV rHlFN*)] r/Hi'"W AM(}a0~(*ޣRcvwر%Yβݛi AzR)C.O) w+g[(Xi/Ɋdi#v(uB]oBV.d5)0r:w ea3Â(;C7;)M*;rĬpv\Z^r݇"nze|T\ܡRp!6U ۞13Wh&F<<KWlloY5wE;cǢox?6> 3 7VcYz<*%,AJYsth r3T#pwo)l`+@lB{ց|10Ő!t^ͱ'-\'z'' &Fc}l,il ]g4D3~0=!?+5Nu!Z:u$Y:&F̛FcV-W 9F6*GwRvfrru֎jn7` }VM$p`�,P@cH-x(=܂l13'Hl1"�Zq) a <-D/vZzi@W~Zi'CkitqAnr60<�QF偨ʇ¿cI^BKH?#= mh8$='w,RzśeQqT*l= U_zz)M0-f!]fQ'hM3݉r u0%4RĹN<'?IRʡ" yV) ~?ߘhhm)S"7r|X-O}L,d `$uOUn^ag-8;3ML0KNw>+dA0Jk?C) U9g )>ԗJn%YX*QN]є̡-'&$q6EՁCR#c롐+16R}}{zqoݲދjw񪥜FMK=AЪ|:<q^٦&{.VB:U,*+Mr㤉bmF6?rx?ծ-ˬҸPs *e3QxI6wJҾ<2;3Į̶!F SO \#&n\ULK_Lb7LΆ "^i$:\75]jGw:A_N0CC1ӱ#Su`16yG ~x/dRkqb?vX~>iF0G=.HR&6շnW~*750֝]fՉ^ax9+xVx:o--!we9x?L%@>Tx<7m?N μ>LI9M& 7]v]  Rc|iXyJ/4{B+O>6}pN`;$V}*qT FuzVкcoJ^.!.i4)z&Vuji:4#V}o ; ~@H)P\ö3Pwj~8c 03A+ A߀wDp[vVxOzۯD}dHF#9g!'/1F8 }Wm JyFW7!xNUZ G%-'>|t.3M3YmpAQ}mǓk Q˜A {`8,} .%ߞ_zpװlB�-|ч)ʎ/ɏ e4ݘ<=0c$DNzG`<2',HR}sHRmp绐ҵl+PRZ3I)SbM֪l ݔ-5`H|k7-CE@`ח FSް]- deܗ5B;6 3_N 'IH1ZU2ɠg! Cx"pt!1Dv:ل/)"|/?XVvN3 �Iʃey7@=<%6QUb fն_s&AA |ʴ>VDKKk,XcX)3zYZ܉V5J(selk޳92ȏcGyO{W`Bi<LuZgfftQ bH׀<(H'^6Aaд :ߖ h l VD-7rI/1HO` u{Lp,D;QY⇶4V.țzQ@rȳ;49@1i?ͺ.B*I4٪nxh*b=ÈafN?<U0 Ȋ>E.%T_#>9#0x=նz�Jpk4SJVFxȳ̯xp󩷞Тn꫙(HFQ|oXaO{CD?cX4u}̪LB5KzTULHbM8W?eK `Ɏ endstream endobj 204 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qGRp`I_3[dE4ݹn'&9綐7UaL)l:M z!YU0rўo>ν9},lj'}4>2]ݼ[ivjs92V+Vh ~y8&X-MmM|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEm7h8Kc`Iu(!a <#G >n-tJ!]O2`̏S#',<ؓL%qO8\π: 3ht ,+9ugCwËpD|ORɉ#ɇW m藒1NwH=8! 4DCp&q"pBCT/9!ɨ~B }Rq҉TFIܨύ|nTs|neEA;~<6OIystg>O:yұϓN|I/|yI>O:yҹϓ.|R T<띹_mKz}K=W7"V{/@̪X endstream endobj 205 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qGRp`I_3[dE4ݹn'&9綐7UaL)l:M z!YU0rўo>ν9},lj'}4>2]ݼ[ivjs92V+Vh ~y8&X-MmM|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEm7h8Kc`Iu(!a <#G >n-tJ!]O2`̏S#',<ؓL%qO8\π: 3ht ,+9ugCwËpD|ORɉ#ɇW m藒1NwH=8! 4DCp&q"pBCT/9!ɨ~B }Rq҉TFIܨύ|nTs|neEA;~<6OIystg>O:yұϓN|I/|yI>O:yҹϓ.|R T<띹_mKz}K=W7"V{/znb endstream endobj 206 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qg>]C_7[,ifkܒ;m#J#<頃MGeA AZ $F<ǹ7uoM_>‡`Uwvl.@j* ۣaӯ ^)o'ä RU9ͻ ز(ViZۏR_VRn-`2TBXXQ`  IF\Bbu <\`Gc)y ,<$gsv1ag٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!h�$"NN_h 1'>4$OOB:]*N:qJ(sB5Qύ}nTsύ(Qw|T~'UI<i9OZ~Γ}IG>O:y҉ϓ<ϓV>OZ<Ig>O:y҅S}RJtv3wtMxG^y: =tx\S{*qs' endstream endobj 207 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qg1]C_7[,ifkܒ;m#J#<頃MGeA AZ $F<ǹ7uoM_>‡`Uwvl.@j* ۣaӯ ^)o'ä RU9ͻ ز(ViZۏR_VRn-`2TBXXQ`  IF\Bbu <\`Gc)y ,<$gsv1ag٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!h�$"NN_h 1'>4$OOB:]*N:qJ(sB5Qύ}nTsύ(Qw|T~'UI<i9OZ~Γ}IG>O:y҉ϓ<ϓV>OZ<Ig>O:y҅S}RJtv3wtMxG^y: =tx\S{*qs$ endstream endobj 208 0 obj << /Length 683 /Filter /FlateDecode >> stream xmOo0C@@8l[jWHL7$Q!LU�zSnffonh/}f}emy9f|vrvx}[(mmMyTnrlnwwVqTrvԧnfx Wŷ?yQJ ySN2k1ꯑJ.g%мFw66XͿS>r}|oݥNrl6rGىǼ?;'4>+JV}}Ⴕ.Mۻ:ɚx\_h`:Pp/ *,}!$B -fu[ǘ6LQe }ĭAk2$mAGs AI:םJ "ʔ43:KaCg" s rJ_i:6dPtk69u̩3ȣ" P݀^R/z0cP_Y̰*z~ʟ''Mq_ uWG5do9JOpH+8QhfgBfg"fg$fg,e@yɟ1S3SS0S+UjfjCfj#fj&.]1SkԦf44U44 Kx׆_|0n:8pw{]Ap^N3^?'y endstream endobj 209 0 obj << /Length 696 /Filter /FlateDecode >> stream xmTMo0Wx$ ! 8l[jWHL7IPV=M̼ su;Uٛ=w]yil;<[[j<=?׾+v`&ߴț<^*;~&Q>MS >_P{=s@dkx;`VY`s4JaQܡn.Uu9\Y6><ٴ.Z.4>Dӗ}~r:-d0VWk,8yLһʮӮђ[*mLr?q 5F8@=�@)&� 8�Rx uD\j2�H�V0CzL] bctI g$`htы0\F0s jd< I�6zg W qȐ+#k .bsrbmXK7ǵH7Gnb>&jؐu1VljOu$՟qWS/%1{\xB!K(hHTЖ枃Jρϯv=k2UKς_:~$/ ~E+7ˢ/ l(/} -+ZXukoԝE?ZKq endstream endobj 210 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x�?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOL<rmh;)^tl״uö.#]a`4êuA雝< SL_Moٙx`<X.Ymv96y4L UUWqS~~ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m;z}s=״#V{ǿ ^/P endstream endobj 211 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x�?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOL<rmh;)^tl״uö.#]a`4êuA雝< SL_Moٙx`<X.Ymv96y4L UUWqS~~ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m;z}s=״#V{ǿ ^/+Z endstream endobj 212 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvH UdCmU^!1HDI8߯-@=ۙڽ١=?w]pwdV^ڑݧl#oxdGa<B8͌4s5vSc~/u<19w`~擲CTE ۃ@HVxo?ў6͡ 0^C0+Qf;ZPx^\Cywl+L@Ue[١ە56H8_(ցm&rTPG 2w`24XXBX8a JA`RЈ 衡^]wq&j9)*v`R:(!bx8pׂN)&>0NiqF?Sր'YNR}{f{x2A! u xk={Exo"}Rɑ#x۠_J B C쩁b8!=%p&r"D9 Qg̑Tu+gGNN8O-(7ZRntH ʍ(7:hEњr1+w(O:͓.ndm'#Ʉ'<dbʓQ'<hʓ1'RLFy29SRAyJ%)]\/&xG^y{ ?tՍ]*" ss endstream endobj 213 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRx=7i'Էf[7̖s ~ts[(:0p l:5m_-tB}W{X8 jw]lj'OC=6}Ӿ|< D0,6;96ݕq4L MUWqS~Ӿ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 䔷5 B{ $.  3qdAEBu<q xΛ_S8q$0pJA R5 a'!8!ID  =cN|hHr?GtTt<QF>7js"ܨF)EYQУ.?yRmTy'o<i5O:y3'<I'>Oz>OZ<i3'<I>OyʄS&}/6>zչ{ZkZs}=?Fey endstream endobj 214 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvH UdC۪TBb B8߯{ .@=/ۙڽs{K;K.k6/k+[M'ҷ>dyӔKe'$cS`vfSfK}fƁVGGf\bu<19w|擬CTAW $rG]IyMsh$aW7y̟u? sK-`<XYekwl+LXە56H8_(ցm&rTPG 2w`24TXBX8Q Jc Q0RhC8]w+Xơ<, xH�^G>θtJ!'c83?NaO<Dg!;IX 0z)rЃ@kpBQ]^Z7! / U <ɉ#W m/%]cX! gȀh�ID8QN~ACT/sQQRs 穅ύ>7: F+}n4eE=zG~<6OɈy2kLd>O&y2ϓQ>OfdV>OF<dR'<>O)yJS*}𗏿tx>z{O->tՍ]*3>cC~ endstream endobj 215 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRd{nCN8oͰof-%6'&9Pu`L/"tkں(a[ duS $xqa MN{}m}gىx`<X.Ymvks0l+htcA62}7Ae L[7Њn& U RZ,cŶPSan aiqD4',IF\Bbu /y2RXR xHXc®eg:'c|0xq')ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m+z}s=״#V{ � endstream endobj 216 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRd{nCN8oͰof-%6'&9Pu`L/"tkں(a[ duS $xqa MN{}m}gىx`<X.Ymvks0l+htcA62}7Ae L[7Њn& U RZ,cŶPSan aiqD4',IF\Bbu /y2RXR xHXc®eg:'c|0xq')ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m+z}s=״#V{ ݽ endstream endobj 217 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvHB!qض*jn$HP#x�?gxLT$|+$=wwY[L5Okˍ}M=<X)ʌI|ԍ`vn~Oc|;ׇn&z8XҷmELm#J#l"MGq@HVph7`f%~>Ƈ`Uv+NmΧ@j*Ѱϓaҍ*mima%+,U`꿹V#5T>WU2F[l 5GT8XD2dC-X]d>**lv.<T39pD;ps٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!ID(' =cN|hH2?CtTt<QF>7js"ܨF)EYQУ.?yRmTq'o<i5O:y3'<I'>Oz>OZ<iS'<I>O)yJS*}/6%>{[ቫs}O =F/Ehq endstream endobj 218 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvHB!qض*jn$HP#x�?gxLT$|+$=wwY[L5Okˍ}M=<X)ʌI|ԍ`vn~OcXLv0̈́^n1mxBTi{>^tl_7Uwvɪ.#]a`q`d7;ݧSL_tuoٙt:`<XXe=6y2L Ue[-Mm>L|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEmwq4PCxF8hv}.;)t=Dq 3?N1ᏜpD`O2ą><p=vd8΃̠U5(Hq79A/y U8>yJ''&n_)趡_J 8! !T3'3]"3|g̉ IFug蓐NwN>7JܨF|nTsb(s(+ zŻg>O*͓*nm'-I>Oz#'<I}I+'}t3'<)>OyJS:ޙ_:&W<w}c:<quc=a|? endstream endobj 219 0 obj << /Length 750 /Filter /FlateDecode >> stream xmUMo0Wx$*B!qض*jn$H$3Ch<~3~~~ngjv9{C{K;K.k6㳵ችm#O7٦4\ =؏8ݿ߳4ւ8͌>sIvdXC6OL<r]"o=!_DP7U.Uu9^V-O>x9im$l6Dl_7ڞhz*{pɲ2kAʶC+mk>lpfIQTT?LA>J e .1PbpqH I$\kL8Hb،Shąr =z51XQg_s2Ē+ sC:CQ}.'c-BbOEu+Xg~:?aj B.U $,ĨAA 2A%%" 19hM_)ELN 1sR3fg =傸aCYjV^w&L=� 3nqFyDŽϠOL5'pZx?i^x?IGO:~I4ϼt~3][gF~Qgf}fB3y,h3cL}f23{,g>KYN�0`^ay{7)q �W7:*ሟS`R̯ endstream endobj 220 0 obj << /Length 672 /Filter /FlateDecode >> stream xmTn0C6*drضj^pHA@Cfy'n`g#govh/}eg羋򶺜m=Ooٽ[׌uRۉ=Iۏw{VQҜ8ߛIߞ3d_ ~~hZ# W c *'qU;HHV7xwuɻa;zopO_`_ݥNd0m6G_?[6vLClw6ZsaD%!p%blcä  PP[ u_g_x4$O<X^\�NB8 \;cBbMx y%P 3jok:E q:/d48Q4A2="\šY+ːs(5$Y r~+A\HȕWr{Nxo $TL~K//p1sQ*GG-G-GzA>|)3Q/G""&!uN>|%h8hh$hb,n~ᰏnˣ+p]h \2 M endstream endobj 232 0 obj << /Author(\376\377\000H\000e\000n\000r\000i\000k\000\040\000B\000e\000n\000g\000t\000s\000s\000o\000n)/Title(\376\377\000T\000o\000t\000a\000l\000\040\000c\000o\000p\000y\000-\000n\000u\000m\000b\000e\000r\000\040\000s\000e\000g\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000u\000s\000i\000n\000g\000\040\000C\000B\000S)/Subject()/Creator(LaTeX with hyperref)/Producer(\376\377\000R\000.\000r\000s\000p\000\040\000v\0000\000.\0004\0006\000.\0000\000\040\000b\000y\000\040\000H\000e\000n\000r\000i\000k\000\040\000B\000e\000n\000g\000t\000s\000s\000o\000n)/Keywords(\376\377\000c\000o\000p\000y\000\040\000n\000u\000m\000b\000e\000r\000s\000,\000\040\000g\000e\000n\000o\000m\000i\000c\000\040\000a\000b\000e\000r\000r\000a\000t\000i\000o\000n\000s) /CreationDate (D:20240217102459-08'00') /ModDate (D:20240217102459-08'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) kpathsea version 6.3.4/dev) >> endobj 148 0 obj << /Type /ObjStm /N 83 /First 749 /Length 4272 /Filter /FlateDecode >> stream x[mSG_㻲v_RWbl08˕auHI_̮fw%ar\tt?ӳ҈BҸ"BZQhe[ZkVu#~߶0·+q_x҆BJbG' evdBUH H7: V+W@ ba,хz[8/ K r,0tF ª  8dEe<u !�r/ X]4QhY1yXXD@=*< $"K�`<\#\#KB>i3z2RBzDy +J,Z�6FwKždF ,-8v #;Fb:]pIGpm%: F }`"I`W5Aǘ-Xa\j!JQf%Fpɢ<��C8><+8#MAz68Ż|wP՟�P_UA+ ʳ zA=(_n*ZU8-f?wb(]3h �daOf՜*tx3vx6_<4(z;\|Ӟbz9\EsJ8B95Xͪ jV)G4wšo?6Q 5" qh$D=kPGC h1tEr B+ mf<gZS&}!Ipr?85屏�-/ )Y jPÐ4wYkB-FbW5pHakΆ)Gۍx@ eq#Du%k8 um0�a#y8~AMl:X8yEг(2 MoiL3@K@[|f[�&;u}8c#"Z�-`4: 1o.\1>( +Ct0Sܺ[d z[j2/ 5<o,a#$/-!S?ຖ'APT4xP.'�oO<iAaH,{9-2V)zZTQunyM7t2rQ-) v2lf'm_|#$S_J$2Rfyйe䍬yF[>UKMLͲ綉8'a'@q˧wȫ<-mVN#d aFg)#@g'RJ9>fH*QN>8'$x-um7[,xv9L+iǐ^9.$Oc_iMvu2)&o-VsLjUsSm=P։0rCh+ϼÄA�L �*&\ڷn&c-Mfs*,=\Wk*6,MT,GB&I& ŰKNUҺbpPS~ *<[ާVT8<:iNY6BTj#[fO'ׁvJX9&U|#mD%gh#l}c OGM y֛�L*[fOPPL}ڛkDhjZI9Y@;ȻfeظO--1QQ}]<RzCjD mXL8Qi34ti 4í ^u-b,4:Z<a-y?Mtȥ}K-Z6�3Rj 9@o8y <oD}\̰ܧb/DL+ GFW�ft(R_JəG),xDX&z" KǼK}˅4\BU e 47 >xx4qҸUm$qfLcBPafІε ѫ SZ3R3 /x%`"qgm^DXF*H!\`#ѕgH|B1F#H˞_YFgL iR)ow6|crHq~-ʥsax ^܄Wa BKZ!2IRx4wꃅUq{ iMj񨴭0ps$|%AeUWɌ&8U %\&`Ae!q3KJ>"S}_Ʒߢó7?Rj^=S늧;L~g~QMP>>W1ASbgru] lQω NWuyVEyYVhw򦜔r:rVrQ.>ͪ\1-/O؊1-߯7ZFT0C<*"Eepdˣs os�TO~&+0fzʿm{x k)Rk{Y^LhJ&5lc'GGd^\c^7L|$hآmk�fR]3$2lY }?2k6<MQ܎SG/|p]*TM>͌j [o=>cNbDmb|ȣI~Lk dvfD{Ė InSw&cHtl>2hVM Hx y{tQ]~9z.[u3f XsUh?lvVyãݟɑk ( !<F?>U \vaL{'d_cH/5Z("!:곓k?JoOqVDs|Gqkk mVys9צ((xoSVYǗ{oh9]S ^<)n)oTX'AJzhʺ-no^zykt] srr[��C!8i//vO~�Ύ֝N5qM[iG#Ppaj[UJ_Ȣ5w6Ȋ1( *1tqy΅+(wVK"V)J ~5n4jl00]|R3Nrz}=-KFהQ5լ~-y]˂Ud!c]4[Kt\Bz1U*SCOCWJ�ww4w< /?41]"=ӞOLDu_t5]*HfFv{:o- ٮB6SșBn{: BX/oY  }CU)hJR^ŽQ0kU۫Թ~w5v[!){ IBkdW!Ew|;:׾B~sv 7>qcrća~oݪ:DyuyH> UoF]uHn<HkJWy{jOl;WySwy@mO-ֺL5z@V]zASZ_9Ի;<ZȈ_/;_Mk7 ׭ iO,'wk " (R&Y[3V/rSҴz=ƙS7b%+#kӸ'irQ#2*Iuq&=UښȚX hU[nmZbA[ MPZ765' }N`N)W8_5+R qT[n;{[p'ju{--p-W'|XHjݠ1sZA. q\IoᏯ |7xzO =8.&p5'<z19\w~ߔ {FS5<ZF7 "G$nƒl )J<ߌVBD.B 0Y?H| "p8:ի4AMg^],?ˠl AT֘ *l(QTψz:SoKĥc{֝u+ݡL-C�9[vuRu.[E*JzWuf嘾oEG.&S2pF̂+V ۥoænVܳdՀKe5SY!x+̫err 4(l U endstream endobj 233 0 obj << /Type /XRef /Index [0 234] /Size 234 /W [1 3 1] /Root 231 0 R /Info 232 0 R /ID [<8C42ED785B34B77C82E5A384CF971FA0> <8C42ED785B34B77C82E5A384CF971FA0>] /Length 602 /Filter /FlateDecode >> stream x%ӹOTQsCWeUqYQuAeE111`bgcc&ǘh?ŠBzKbll~4{y7""HBI!)f4sM0#C ΒVeal4.;`'L3cPiȌ. 8d{a?&d N* .1&UC3"@-A=4H?h. Gz c,  v �[f?Z7b # o>էR^Zfk~?paL%wPG)X *\Jng`Fs?.QXk[OOa -AM=lh]Fc=5zjhIF&3gheT7ʪ<{RkSʯnOժeO9'O5=ժT^uտ5dyjҐ/Ҭ oKU笧6 G׮dw$[L^FDfEkҤ8YX,,}ME GD|i&ݰL/=wde5.tUH} endstream endobj startxref 231330 %%EOF ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/CBS.tex.rsp��������������������������������������������������������������������������0000644�0001762�0000144�00000030111�14564051545�014607� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<%@meta language="R-vignette" content="-------------------------------- DIRECTIVES FOR R: %\VignetteIndexEntry{Total copy-number segmentation using CBS} %\VignetteKeyword{copy numbers} %\VignetteKeyword{genomic aberrations} %\VignetteAuthor{Henrik Bengtsson} %\VignetteEngine{R.rsp::rsp} --------------------------------------------------------------------"%> <% t0 <- Sys.time() %> <% R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() signalType <- "TCN" %> \documentclass[letter]{article} \usepackage{xspace} \usepackage{alltt} \usepackage{xcolor} \usepackage{natbib} % \citep{}, \citet{} \usepackage{graphicx} \graphicspath{{figures/}} <%------------------------------------------------------------------- Assign PDF metadata -------------------------------------------------------------------%> % PDF metadata \usepackage{hyperref} % Ideally \hypersetup{hidelinks}, but for backward compatibility: \hypersetup{pdfborder={0 0 0}} \hypersetup{ pdfauthor={<%@meta name="author"%>}, pdftitle={<%@meta name="title"%>}, pdfsubject={}, pdfkeywords={<%@meta name="keywords"%>}, pdfproducer={R.rsp v<%=R.rsp$version%> by <%=R.rsp$author%>} } % Page margins \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.5in} \addtolength{\textheight}{1in} % Placement of floats \setcounter{bottomnumber}{2} \renewcommand{\topfraction}{1.0} \renewcommand{\bottomfraction}{1.0} \renewcommand{\textfraction}{0.0} \renewcommand{\floatpagefraction}{1.0} % Macros \newcommand{\keywords}[1]{{\footnotesize{\textbf{Keywords: }#1}}\xspace} \newcommand{\pkg}[1]{\textsl{#1}\xspace} \newcommand{\file}[1]{\textsl{#1}\xspace} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\bs}{$\backslash$} \newenvironment{rspVerbatim}{\vspace{-\parskip}\begin{alltt}\color{blue}}{\end{alltt}} \newenvironment{escapeRspVerbatim}{\vspace{-\parskip}\begin{alltt}}{\end{alltt}} \title{<%@meta name="title"%>} \author{<%@meta name="author"%>} \date{<%=format(as.Date(PSCBS$date), format="%B %d, %Y")%>} \begin{document} \maketitle \begin{abstract} The Circular Binary Segmentation (CBS) method partitions a genome into segments of constant total copy numbers (TCNs) based on DNA microarray data. The method also calls .... CBS was designed to work with data from any DNA microarray technology and generation, including Affymetrix and Illumina. This document shows how to use the \pkg{PSCBS} package to run CBS on a tumor sample. \end{abstract} \keywords{<%@meta name="keywords"%>} \begin{center} \emph{This vignette is distributed as part of the \pkg{PSCBS} package, which is available on CRAN (\url{https://cran.r-project.org/}). The authors very much appreciate feedback on this document.} \end{center} \clearpage \tableofcontents \clearpage <%------------------------------------------------------------------- BACKGROUND -------------------------------------------------------------------%> \section{Background} \label{secBackground} We will here use a small example data set to illustrate how to setup the data in a format suitable for CBS, how to identify segments, how to call them, and how to plot and export the segmentation results. The statistical model and the algorithm behind CBS is explained in detail in \citet{OlshenA_etal_2004, VenkatramanOlshen_2007}. <%------------------------------------------------------------------- EXAMPLE -------------------------------------------------------------------%> \section{Preparing data to be segmented} The CBS method requires total copy-number (TCN) estimates. More precisely, it requires TCN ratios for a sample of interest relative to a reference ($y$). The genomic location of the loci in form of chromosome and physical position are also required. \subsection{Locus-level total copy-number signals} \label{secData} In this example we will use a small example data set part of the \pkg{PSCBS} package. It can be loaded as: <% fullname <- "PairedPSCBS,exData,chr01" %> \begin{verbatim} <%=withCapture({ data <- PSCBS::exampleData("paired.chr01") data <- data[,c("chromosome", "x", "CT")] colnames(data)[3] <- "y" str(data) })%> \end{verbatim} In additional to the mandatory fields (\code{chromosome}, \code{x}, and \code{C} this data set also contains .... The latter will not be used here. \subsection{Dropping <%=signalType%> outliers} \label{secTCNOutliers} There may be some outliers among the <%=signalType%>s. In CBS~\citep{OlshenA_etal_2004,VenkatramanOlshen_2007}, the authors propose a method for identifying outliers and then to shrink such values toward their neighbors ("smooth") before performing segmentation. At the time CBS was developed it made sense to not just to drop outliers because the resolution was low and every datapoint was valuable. With modern technologies the resolution is much higher and we can afford dropping such outliers, which can be done by: \begin{verbatim} <%=withCapture({ data <- dropSegmentationOutliers(data) })%> \end{verbatim} Dropping <%=signalType%> outliers is optional. \section{CBS segmentation} \subsection{Skipping centromeres and other large gaps} \label{secGaps} The CBS method does not take the physical locations (in units of nucleotides) of the loci in to account when segmenting the data, only their relative ordering along the genome. This means that after having ordered the loci along genome, it will treat two "neighboring" loci that are on both sides of the centromere equally as two neighboring loci that are only few hundred bases apart. This may introduce erroneous change points that appears to be inside the centromere and biological impossible interpretation of the identified copy-number states. The same issues occur for other large gaps of the genome where there are no observed signals. To avoid this, although not mandatory, we will locate all gaps of the genome where there are no observed loci. As a threshold we will consider a region to be a "gap" if the distance between the two closest loci is greater than 1Mb. \begin{verbatim} <%=withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps })%> \end{verbatim} which shows that there is a 20.5Mb long gap between 121.0Mb and 141.5Mb on Chromosome~1. This is the centromere of Chromosome~1. Gaps cannot be specified directly. Instead they need to be give as part of a set of "known" segments, which is done as: \begin{verbatim} <%=withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments })%> \end{verbatim} Below, we will use this to tell CBS to segment Chromosome~1 in three independent segments, where the first segments is from the beginning of the chromosomes (hence '-Inf') to 120.1Mb, the second from 120.1-141.5Mb (the above gap), and the third is from 141.5Mb to the end of the chromosome (hence '+Inf'). Just as CBS segments chromosomes independently of each other, it also segments priorly known segments independently of each other. Specifying known segments is optional. \subsection{Identifying <%=signalType%> segments} We are now ready to segment the locus-level <%=signalType%> signals. This is done by\footnote{We fix the random seed in order for the results of this vignette to be exactly reproducible.}: \begin{verbatim} <%=withCapture({ fit <- segmentByCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) })%> \end{verbatim} Note that this may take several minutes when applied to whole-genome data. The result of the segmentation is a set of segments identified to have the same underlying <%=signalType%> levels. In this particular case, <%=nbrOfSegments(fit)%> <%=signalType%> segments were found: <% fit <- fixLocations(fit) %> \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> Note how Segment~\#<%=which(segs$nbrOfLoci == 0)%> has no mean-level estimates. It is because it corresponds to the centromere (the gap) that was identified above. CBS did indeed try to segment it, but since there are no data points, all estimates are missing values. \subsection{Displaying genomic <%=signalType%> profiles} To plot the <%=signalType%> segmentation results, do: \begin{verbatim} plotTracks(fit) \end{verbatim} which displays <%=signalType%> as in Figure~\ref{figTracks}. To zoom in on a particular region, do: \begin{verbatim} plotTracks(fit, xlim=c(120,244)*1e6) \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.35, { plotTracks(fit) })%>}} \end{center} \caption{Segments identified by CBS. The <%=signalType%> signals with the <%=signalType%> mean levels (purple). } \label{figTracks} \end{figure} \section{Calling segments} TBA. <%--- \subsection{Results from calling <%=signalType%> states} All calls are appended to the segmentation results as logical columns: \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> ---%> \section{Saving results} \subsection{Writing segments to a tab-delimited text file} To write the <%=signalType%> segmentation results to file, do: \begin{verbatim} pathname <- writeSegments(fit, name="MySample", simplify=TRUE) \end{verbatim} \section{Experimental} In this section we illustrate some of the ongoing and future work of the PSCBS package. Please be aware that these methods are very much under construction, possibly incomplete and in worst case even incorrect. \subsection{Pruning segmentation profile} By using hierarchical cluster of the segment means it is possible to prune the <%=signalType%> profile such that change points with very small absolute changes are dropped. If change points are dropped this way, this results in a smaller number of segments, which are hence longer. \begin{verbatim} <%=withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) })%> \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.35, { plotTracks(fitP) })%>}} \end{center} \caption{Pruned <%=signalType%> segments plotted as in Figure~\ref{figTracks}.} \label{figTracksPruned} \end{figure} \subsection{Report generation} A multipage PDF report that contains both whole-genome and per-chromosome summaries and figures can be generated by: \begin{verbatim} > report(fit, sampleName="CBS", studyName="CBS-Ex", verbose=-10) \end{verbatim} By default, the reports are written to directory \code{reports/<studyName>/} under the current working directory. In addition to the PDF, that directory also contains subdirectory \code{figures/} holding all generated figure files (e.g. PNGs and PDFs) for easy inclusion elsewhere. <%------------------------------------------------------------------- REFERENCES -------------------------------------------------------------------%> \bibliographystyle{natbib} \bibliography{PSCBS} <%------------------------------------------------------------------- APPENDIX -------------------------------------------------------------------%> \clearpage \section*{Appendix} \subsection*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using \code{rfile()} of the R.rsp package. Total processing time after RSP-to-R translation was <%=dt <- round(Sys.time()-t0, digits=2)%> <%=attr(dt, "units")%>. \end{document} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/PairedPSCBS.tex.rsp������������������������������������������������������������������0000644�0001762�0000144�00000053761�14564051545�016217� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������<%@meta language="R-vignette" content="-------------------------------- DIRECTIVES FOR R: %\VignetteIndexEntry{Parent-specific copy-number segmentation using Paired PSCBS} %\VignetteAuthor{Henrik Bengtsson} %\VignetteKeyword{copy numbers} %\VignetteKeyword{allele specific} %\VignetteKeyword{parent specific} %\VignetteKeyword{genomic aberrations} %\VignetteEngine{R.rsp::rsp} --------------------------------------------------------------------"%> <% t0 <- Sys.time() %> <% R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() %> \documentclass[letter]{article} \usepackage{xspace} \usepackage{alltt} \usepackage{xcolor} \usepackage{natbib} % \citep{}, \citet{} \usepackage{graphicx} \graphicspath{{figures/}} <%------------------------------------------------------------------- Assign PDF metadata -------------------------------------------------------------------%> % PDF metadata \usepackage{hyperref} % Ideally \hypersetup{hidelinks}, but for backward compatibility: \hypersetup{pdfborder={0 0 0}} \hypersetup{ pdfauthor={<%@meta name="author"%>}, pdftitle={<%@meta name="title"%>}, pdfsubject={}, pdfkeywords={<%@meta name="keywords"%>}, pdfproducer={R.rsp v<%=R.rsp$version%> by <%=R.rsp$author%>} } % Page margins \addtolength{\oddsidemargin}{-0.5in} \addtolength{\evensidemargin}{-0.5in} \addtolength{\textwidth}{1in} \addtolength{\topmargin}{-0.5in} \addtolength{\textheight}{1in} % Placement of floats \setcounter{bottomnumber}{2} \renewcommand{\topfraction}{1.0} \renewcommand{\bottomfraction}{1.0} \renewcommand{\textfraction}{0.0} \renewcommand{\floatpagefraction}{1.0} % Macros \newcommand{\keywords}[1]{{\footnotesize{\textbf{Keywords: }#1}}\xspace} \newcommand{\pkg}[1]{\textsl{#1}\xspace} \newcommand{\file}[1]{\textsl{#1}\xspace} \newcommand{\code}[1]{\texttt{#1}\xspace} \newcommand{\bs}{$\backslash$} \newcommand{\alphaTCN}{\alpha_{\textnormal{TCN}}\xspace} \newcommand{\alphaDH}{\alpha_{\textnormal{DH}}\xspace} \newcommand{\LOH}{\ensuremath{\textnormal{LOH}}\xspace} \newcommand{\AB}{\ensuremath{\textnormal{AB}}\xspace} \newenvironment{rspVerbatim}{\vspace{-\parskip}\begin{alltt}\color{blue}}{\end{alltt}} \newenvironment{escapeRspVerbatim}{\vspace{-\parskip}\begin{alltt}}{\end{alltt}} \title{<%@meta name="title"%>} \author{<%@meta name="author"%>} \date{<%=format(as.Date(PSCBS$date), format="%B %d, %Y")%>} \begin{document} \maketitle \begin{abstract} The Paired Parent-Specific Circular Binary Segmentation (Paired PSCBS) method partitions a tumor genome into segments of constant parent-specific copy numbers (PSCNs) based on SNP DNA microarray data from a matched tumor-normal pair. The method also calls segments with run of homozygosity (ROH), segments in allelic balance (AB) and segments with loss of heterozygosity (LOH). Paired PSCBS was designed to work with data from any SNP microarray technology and generation, including Affymetrix and Illumina. This document shows how to use the \pkg{PSCBS} package to run Paired PSCBS on a tumor-normal pair. \end{abstract} \keywords{<%@meta name="keywords"%>} \begin{center} \emph{This vignette is distributed as part of the \pkg{PSCBS} package, which is available on CRAN (\url{https://cran.r-project.org/}). The authors very much appreciate feedback on this document.} \end{center} \clearpage \tableofcontents \clearpage <%------------------------------------------------------------------- BACKGROUND -------------------------------------------------------------------%> \section{Background} \label{secBackground} We will here use a small example data set to illustrate how to setup the data in a format suitable for Paired PSCBS, how to identify segments, how to call them, and how to plot and export the segmentation results. The statistical model and the algorithm behind Paired PSCBS is explained in detail in~\citet{OlshenA_etal_2011}. <%------------------------------------------------------------------- EXAMPLE -------------------------------------------------------------------%> \section{Preparing data to be segmented} The Paired PSCBS~\citep{OlshenA_etal_2011} method requires tumor-normal paired parent-specific copy-number (PSCN) signals. More precisely, it requires total copy-number (TCN) estimates for the tumor relative to the matched normal ($C_T$), allele B fractions (BAFs) for the tumor ($\beta_T$) and BAFs for the matched normal ($\beta_N$). The genomic locations of the loci in form of chromosome and physical position are also required. \subsection{Locus-level SNP copy-number signals} \label{secData} In this example we will use a small example data set part of the \pkg{PSCBS} package. It can be loaded as: <% fullname <- "PairedPSCBS,exData,chr01" %> \begin{verbatim} <%=withCapture({ data <- PSCBS::exampleData("paired.chr01") str(data) })%> \end{verbatim} In additional to the mandatory fields (\code{chromosome}, \code{x}, \code{CT}, \code{betaT}, and \code{betaN}), this data set also contains TCNs for normal (\code{CN}) relative to a large pool of normal samples. The latter will not be used here. \subsection{Dropping TCN outliers} \label{secTCNOutliers} There may be some outliers among the TCNs. In CBS~\citep{OlshenA_etal_2004,VenkatramanOlshen_2007}, the authors propose a method for identifying outliers and then to shrink such values toward their neighbors ("smooth") before performing segmentation. At the time CBS was developed it made sense to not just to drop outliers because the resolution was low and every datapoint was valuable. With modern technologies the resolution is much higher and we can afford dropping such outliers, which can be done by: \begin{verbatim} <%=withCapture({ data <- dropSegmentationOutliers(data) })%> \end{verbatim} Dropping TCN outliers is optional. \section{Paired PSCBS segmentation} \subsection{Skipping centromeres and other large gaps} \label{secGaps} Like the CBS method, Paired PSCBS does not take the physical locations (in units of nucleotides) of the loci in to account when segmenting the data, only their relative ordering along the genome. This means that after having ordered the loci along genome, it will treat two "neighboring" loci that are on both sides of the centromere equally to two neighboring loci that are only a few hundred bases apart. This may introduce erroneous change points that appear to be inside the centromere. The same issues occur for other large gaps of the genome where there are no observed signals. To avoid this, although not mandatory, we will locate all gaps of the genome where there are no observed loci. As a threshold we will consider a region to be a "gap" if the distance between the two closest loci is greater than 1Mb. \begin{verbatim} <%=withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps })%> \end{verbatim} which shows that there is a 20.5Mb long gap between 121.0Mb and 141.5Mb on Chromosome~1. This is the centromere of Chromosome~1. It is not possible to specify "gaps" to the segmentation function. Instead they need to be given as part of a set of "known" segments, which is done as: \begin{verbatim} <%=withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments })%> \end{verbatim} Below, we will use this to tell Paired PSCBS to segment Chromosome~1 into three independent segments, where the first segment is from the beginning of the chromosome (hence '-Inf') to 120.1Mb, the second one from 120.1-141.5Mb (the above gap), and the third one is from 141.5Mb to the end of the chromosome (hence '+Inf'). Just as Paired PSCBS segments chromosomes independently of each other, it also segments priorly known segments independently of each other. Specifying known segments is optional. \subsection{Identifying PSCN segments} We are now ready to segment the locus-level PSCN signals. This is done by\footnote{We fix the random seed in order for the results of this vignette to be numerically reproducible.}: \begin{verbatim} <%=withCapture({ fit <- segmentByPairedPSCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) })%> \end{verbatim} Note that this may take several minutes when applied to whole-genome data. The above call will also normalize the tumor BAFs using the TumorBoost normalization method~\citep{BengtssonH_etal_2010} (without preserving the relative scale for homozygous and heterozygous BAFs; in a future version, this will be the default). If this has already been done or the tumor signals have been normalized by other means, the TumorBoost step can be skipped by setting argument \code{tbn=FALSE}. The result of the segmentation is a set of segments identified to have the same underlying PSCN levels. In this particular case, <%=nbrOfSegments(fit)%> PSCN segments were found: <% fit <- fixLocations(fit) %> \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> Note that Segment~\#<%=which(segs$tcnNbrOfLoci == 0)%> has no mean-level estimates. It is because it corresponds to the centromere (the gap) that was identified above. Paired PSCBS did indeed try to segment it, but since there are no data points, all estimates are missing values. Similarly, for Segment~\#<%=which(segs$dhNbrOfLoci == 0)%> the DH and minor and major CNs mean estimates are all missing values. This is because, Paired PSCBS identified that segment by first segmenting the TCN signals by themselves, and after which it tried to segment the DH signals within that segment. Since there are no heterozygous SNPs in the segment, there are no DH signals, and hence there is no DH mean estimate. \subsection{Displaying genomic PSCN profiles} To plot the PSCN segmentation results, do: \begin{verbatim} plotTracks(fit) \end{verbatim} which by default displays three panels containing TCN, decrease of heterozygosity (DH), and minor and major CNs as in Figure~\ref{figTracks}. To plot only one panel with TCN and minor and major CNs and zoom in on a particular region, do (not shown): \begin{verbatim} plotTracks(fit, tracks="tcn,c1,c2", xlim=c(120,244)*1e6) \end{verbatim} \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.6, { plotTracks(fit) })%>}} \end{center} \caption{PSCN segments identified by Paired PSCBS. \textbf{Top}: The TCN signals with the TCN mean levels (purple). \textbf{Middle}: The DH signals with the DH mean levels (orange). \textbf{Bottom}: The TCN signals with the minor CN ($C_1$; blue), the major CN ($C_2$; red) and the TCN ($C=C_1+C_2$; purple) mean levels. } \label{figTracks} \end{figure} \section{Calling segments} The calling algorithms for allelic balance (AB) and loss of heterozygosity (LOH) are based on quantile estimates of the different mean levels. These estimates are obtained using non-parametric bootstrap techniques. For more details, see~\citet{OlshenA_etal_2011}. After the Paired PSCBS method was published, we have added methods for calling run of homozygosity (ROH) and neutral total copy number (NTCN). \emph{The ROH and NTCN calling methods should be considered under development until further notice, meaning they and their results may change without notice.} \subsection{Calling segments with run of homozygosity (ROH)*} \emph{Please note that this method is under development. This means that it may change without further notice.} A region has a run of homozygotes (ROH) if all of its SNPs are homozygous (in the normal). Since such a region has no heterozyous SNPs, its decrease in heterozygosity (DH) is undefined. Likewise, the minor and major copy numbers are unknown. However, if there are genotyping errors within an ROH region, we will obtain a non-missing DH mean level and hence also finite minor and major CNs. In order to adjust for these faulty estimates, we test if the identified segments are ROHs or not by: \begin{verbatim} <%=withCapture({ fit <- callROH(fit, verbose=-10) })%> \end{verbatim} This will also set the corresponding DH and minor and major CN mean levels to NA. The total CN mean levels are not affected by the ROH call. \subsubsection{Tuning parameters} For each segment, the test for ROH calculates the fraction of SNPs that are called heterozygous. If the fraction of heterozygotes is smaller than a threshold, the segmented is called ROH, otherwise not. The default threshold is 1/12. To use a different threshold, set argument \code{delta} to a scalar in $[0,1]$. For example, using \code{callROH(fit, delta=1/30)} makes the ROH caller more conservative.\footnote{It is our plan to replace this basic test with a bionomial test.} \subsection{Calling segments in allelic balance (AB)} The AB caller tests whether the DH level of a segment is small enough to be considered zero, which means that the minor and the major CNs are equal, i.e. the segment is in allelic balance. To call the AB state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callAB(fit, verbose=-10) })%> \end{verbatim} Because the caller utilizes bootstrapping techniques, calling AB may take some time if there is a large number of segments. Segments already called ROH will not be called for AB, and their AB statuses will have a missing value (\code{NA}). \subsubsection{Tuning parameters} The AB caller tests whether a segment's DH is zero or not, by comparing its DH level (or more precisely, the $5\%$ quantile of its bootstrapped DH mean level) to a threshold. This threshold will be a function of the noise level, because the noisier the BAF signals (and hence the DH signals), the greater the bias of the DH mean level for segments in AB will be. Because of this, the threshold is chosen from data by estimating the noise level of the DH signals near zero. Further rationales and details are given in~\citet{OlshenA_etal_2011}. The AB threshold can be estimated explicitly and used in the caller as \begin{verbatim} deltaAB <- estimateDeltaAB(fit, scale=1) fit <- callAB(fit, delta=deltaAB) \end{verbatim} By decreasing argument \code{scale} (a positive scalar), a smaller threshold will be obtained resulting in a more conservative AB caller. \subsection{Calling segments with loss of heterozygosity (LOH)} The LOH caller tests whether the minor CN level of a segment is large enough to be considered non-zero, which means that the segment is \emph{not} in LOH. To call the LOH state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callLOH(fit, verbose=-10) })%> \end{verbatim} Note that in order to call LOH, one has to call allelic balance first. Since the bootstrapping was already done in the AB caller, it is not repeated here, which is why calling LOH is faster than calling AB. Analogously to the AB caller, segments already called ROH will not be called for LOH, and their LOH statuses will have a missing value (\code{NA}). Segments already called AB will be called non-LOH, because AB and LOH are exclusively mutual states. \subsubsection{Tuning parameters} The LOH caller tests whether a segment's minor CN is non-zero or not, by comparing its minor CN level (or more precisely, the $95\%$ quantile of its bootstrapped minor CN mean level) to a threshold. This threshold will, among other components, be a function of normal contamination, i.e. the greater the fraction of normal cells is the greater the threshold needs to be in order to call LOH in the tumor cells. Because of this, the threshold is chosen from data as the midpoint of the estimated levels of minor CNs zero and one, which in turn is a function of the normal contamination. For details on the definition of LOH and details on the LOH caller, see~\citet{OlshenA_etal_2011}. The LOH threshold can be estimated explicitly and used as: \begin{verbatim} deltaLOH <- estimateDeltaLOH(fit, midpoint=1/2) fit <- callLOH(fit, delta=deltaLOH) \end{verbatim} By decreasing argument \code{midpoint} in $[0,1]$, a smaller threshold will be obtained resulting in a more conservative LOH caller. \subsection{Calling segments with neutral total copy number (NTCN)*} \emph{Please note that this method is under development. This means that it may change without further notice.} The neutral total copy number (NTCN) caller tests whether the total CN level of a segment is neutral (e.g. diploid) or not. To call the NTCN state of all segments, do: \begin{verbatim} <%=withCapture({ fit <- callNTCN(fit, verbose=-10) })%> \end{verbatim} \subsubsection{Tuning parameters} The NTCN caller identifies segments which TCN mean levels (or more precisely, which $95\%$ confidence intervals) are within a given "acceptance" region. This acceptance region is determined by the $95\%$ confidence interval of an initial set of AB segments identified to be copy neutral and then expanded by half a TCN unit length. The true length of half a total copy number unit is specified by the argument \code{delta} to \code{callNTCN()}. Its length should be a function of the overall background signals (which includes normal contamination and more), such that the width of the acceptance region becomes smaller when the background increases. The background signal (\code{kappa}) and \code{delta} can be estimated explicitly as: \begin{verbatim} kappa <- estimateKappa(fit) deltaCN <- estimateDeltaCN(fit, scale=1, kappa=kappa) fit <- callNTCN(fit, delta=deltaCN, verbose=-10) \end{verbatim} By decreasing the tuning parameter \code{scale} (a positive scalar), a smaller acceptance region will be obtained, which results in a more conservative CN caller. \subsection{Results from calling ROH, AB, LOH and NTCN} All calls are appended to the segmentation results as logical columns: \begin{verbatim} <%=withCapture({ getSegments(fit, simplify=TRUE) })%> \end{verbatim} <% segs <- getSegments(fit, simplify=TRUE) %> \section{Saving results} \subsection{Writing segments to a tab-delimited text file} To write the PSCN segmentation results to file, do: \begin{verbatim} pathname <- writeSegments(fit, name="MySample", simplify=TRUE) \end{verbatim} With \code{simplify=FALSE} (default) quantile estimates of the different mean levels will also be written, which roughly doubles the file size. \section{Experimental} In this section we illustrate some of the ongoing and future work that will be contained in the PSCBS package. Please be aware that these methods are very much under construction, possibly incomplete and in the worst case, even incorrect. \subsection{Less biased Decrease of Heterozygosity (DH) estimates} The DH mean levels of the segments are estimated as the sample mean of the DH signals within each segment. Since DH signals are by definition truncated at zero, the mean level estimates will always be greater than zero even if the true underlying DH is exactly zero. An additional bias is introduced because the distribution of the DH signals is skewed for small DHs, causing the sample mean estimate to be biased. A less biased estimate can be obtained by using the median estimator. To use the median estimator for DH mean levels, specify argument \code{avgDH="median"} to the \code{segmentByPairedPSCBS()} call. Because the DH mean levels will be less biased, the $(C_1,C_2)$ mean level estimates will also be less biased, e.g. they will be closer to each other for segments that are in allelic balance. \subsection{Pruning segmentation profile} By applying hierarchical clustering on the segment means, it is possible to prune the PSCN profile such that change points with very small absolute changes are dropped. If change points are dropped this way, this results in a smaller number of segments, which are hence longer on average. To prune Paired PSCBS segmentation results this way, do: \begin{verbatim} <%=withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) })%> \end{verbatim} The result of this is shown in Figure~\ref{figTracksPruned}. \begin{figure}[htp] \begin{center} \resizebox{0.96\textwidth}{!}{\includegraphics{<%=toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.6, { plotTracks(fitP) })%>}} \end{center} \caption{Pruned PSCN segments plotted as in Figure~\ref{figTracks}.} \label{figTracksPruned} \end{figure} In the current implementation, any segment calls and quantile mean levels estimates previously are dropped when pruning. \subsection{Report generation} A multipage PDF report that contains both whole-genome and per-chromosome summaries and figures can be generated by: \begin{verbatim} > report(fit, sampleName="PairedPSCBS", studyName="PSCBS-Ex", verbose=-10) \end{verbatim} By default, the reports are written to directory \code{reports/<studyName>/} under the current working directory. In addition to the PDF, that directory also contains subdirectory \code{figures/} holding all generated figure files (e.g. PNGs and PDFs) for easy inclusion elsewhere. <%------------------------------------------------------------------- REFERENCES -------------------------------------------------------------------%> \bibliographystyle{natbib} \bibliography{PSCBS} <%------------------------------------------------------------------- APPENDIX -------------------------------------------------------------------%> \clearpage \section*{Appendix} \subsection*{Session information} <%=toLatex(sessionInfo())%> This report was automatically generated using \code{rfile()} of the R.rsp package. Total processing time after RSP-to-R translation was <%=dt <- round(Sys.time()-t0, digits=2)%> <%=attr(dt, "units")%>. \end{document} ���������������PSCBS/inst/doc/CBS.R��������������������������������������������������������������������������������0000644�0001762�0000144�00000004360�14564174773�013425� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������########################################################################### ### This 'tangle' R script was created from an RSP document. ### RSP source document: 'CBS.tex.rsp' ### Metadata 'title': 'Total copy-number segmentation using CBS' ### Metadata 'author': 'Henrik Bengtsson' ### Metadata 'engine': 'R.rsp::rsp' ### Metadata 'keywords': 'copy numbers, genomic aberrations' ########################################################################### t0 <- Sys.time() R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() signalType <- "TCN" R.rsp$version R.rsp$author format(as.Date(PSCBS$date), format="%B %d, %Y") fullname <- "PairedPSCBS,exData,chr01" withCapture({ data <- PSCBS::exampleData("paired.chr01") data <- data[,c("chromosome", "x", "CT")] colnames(data)[3] <- "y" str(data) }) signalType signalType withCapture({ data <- dropSegmentationOutliers(data) }) signalType withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps }) withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments }) signalType signalType withCapture({ fit <- segmentByCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) }) signalType nbrOfSegments(fit) signalType fit <- fixLocations(fit) withCapture({ getSegments(fit, simplify=TRUE) }) segs <- getSegments(fit, simplify=TRUE) which(segs$nbrOfLoci == 0) signalType signalType signalType toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.35, { plotTracks(fit) }) signalType signalType signalType signalType withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) }) toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.35, { plotTracks(fitP) }) signalType toLatex(sessionInfo()) dt <- round(Sys.time()-t0, digits=2) attr(dt, "units") ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/PairedPSCBS.R������������������������������������������������������������������������0000644�0001762�0000144�00000004567�14564175017�015016� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������########################################################################### ### This 'tangle' R script was created from an RSP document. ### RSP source document: 'PairedPSCBS.tex.rsp' ### Metadata 'title': 'Parent-specific copy-number segmentation using Paired PSCBS' ### Metadata 'author': 'Henrik Bengtsson' ### Metadata 'engine': 'R.rsp::rsp' ### Metadata 'keywords': 'copy numbers, allele specific, parent specific, genomic aberrations' ########################################################################### t0 <- Sys.time() R.utils::use("R.utils") # RSP specific R.rsp <- R.oo::Package("R.rsp") withCapture <- R.utils::withCapture options("withCapture/newline"=FALSE) options(str=strOptions(strict.width="cut")) options(width=85) options(digits=3) # Graphics use("R.devices") options("devEval/args/field"="fullname") # Preferred for LaTeX devOptions("png", width=840) # Analysis use("PSCBS") PSCBS <- R.oo::Package("PSCBS") fixLocations <- function(fit, ...) { for (key in grep("(end|start)$", colnames(fit$output))) { fit$output[[key]] <- as.integer(fit$output[[key]]) } fit } # fixLocations() R.rsp$version R.rsp$author format(as.Date(PSCBS$date), format="%B %d, %Y") fullname <- "PairedPSCBS,exData,chr01" withCapture({ data <- PSCBS::exampleData("paired.chr01") str(data) }) withCapture({ data <- dropSegmentationOutliers(data) }) withCapture({ gaps <- findLargeGaps(data, minLength=1e6) gaps }) withCapture({ knownSegments <- gapsToSegments(gaps) knownSegments }) withCapture({ fit <- segmentByPairedPSCBS(data, knownSegments=knownSegments, seed=0xBEEF, verbose=-10) }) nbrOfSegments(fit) fit <- fixLocations(fit) withCapture({ getSegments(fit, simplify=TRUE) }) segs <- getSegments(fit, simplify=TRUE) which(segs$tcnNbrOfLoci == 0) which(segs$dhNbrOfLoci == 0) toPNG(fullname, tags=c(class(fit)[1L], "tracks"), aspectRatio=0.6, { plotTracks(fit) }) withCapture({ fit <- callROH(fit, verbose=-10) }) withCapture({ fit <- callAB(fit, verbose=-10) }) withCapture({ fit <- callLOH(fit, verbose=-10) }) withCapture({ fit <- callNTCN(fit, verbose=-10) }) withCapture({ getSegments(fit, simplify=TRUE) }) segs <- getSegments(fit, simplify=TRUE) withCapture({ fitP <- pruneByHClust(fit, h=0.25, verbose=-10) }) toPNG(fullname, tags=c(class(fitP)[1L], "pruned", "tracks"), aspectRatio=0.6, { plotTracks(fitP) }) toLatex(sessionInfo()) dt <- round(Sys.time()-t0, digits=2) attr(dt, "units") �����������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/doc/PairedPSCBS.pdf����������������������������������������������������������������������0000644�0001762�0000144�00001070675�14564175016�015371� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%PDF-1.5 % 102 0 obj << /Length 1208 /Filter /FlateDecode >> stream xڅVKs6 W(D([6>&Y큖K^CI__l9H ?C?3oo֏ x.`p2Lr&TlUT=6Ul<-WF=E;31UΛжz?Д4گL2'/|( nE 2%eG\1 .X8izӼu0|_;M1LpAOw J4 ,%GIHHVd&ktic@+)(H,l Px�/<|hLylM͉ l<p5<51Y_xC|aJWzp$601kPmRi``pC]EGvt ӟi,մEP3:1|:Mdre=86Os!#p{n>G K]SA͞БtږYBQ?N9¥0R O oC@s4|vRiV59bBtHa'N$E`|BnlX 78ڦ$N/{O/(YxHCP8k8$ue+snwщe)Z`^#t|򗟊P3;`AJ%u<IhWup iUTmajdM_=5SX&TXE<<AA睝_A`p?(mL8h�ļ8 .U8#a6Ѳƈ17:e ̮}|yX ;/[HX֨]dCEaAFᆿmzi+BT8>'K0 йF%J$ATs8H)g?33rNҾL@x׾niU֖zn^)iZ`ʮbT\ \<�3N2| & YXQֺpx>䒻B7ǕLͱrJ.y.] OwegS]�n[ݔuU7څ_1I3I2^.ܧ,콶vJ�[pQ=#2q8華sX1斗 4r{ݑq4U=Wg~% V heW<hALJi:̯ǐ endstream endobj 143 0 obj << /Length 1067 /Filter /FlateDecode >> stream xXIo8W( *U\X'΁E,iGK)LRbRO$E{k^=8|3z OdQ^*XDYM'F|phþHij^HI$H;H #9 Ys1llNR<$w9j)uYArϥv}Ӡ+|hUpyR9ů|C{!/&.NbJp6٪ +50,*Z4W_qi[Zx 0{ SHrB4v=nvuMLjD2U4@An';tܴ" YRtr< l]iz;@ɗrCq38ltPZ(')^I](rifijNzpzVMyq0V cN v ={@!oAl�\fQ5K| ,D 1O7z8!f_&(`#\;U;}o/Ehtķ$>w1>nRJܟA`!pi�A!t*s7 w` F#S#+R~aVsYz%ѫOY}e7-p÷aoΫjZ'\w2t^Ȼ@XJVV01Z*4:_+sW "P8A䇐:32%Lg]UH_@䈱]@1hRE9$M0H[~u,$ -:&ɐcK3�k̮Od!prQΰ]Qk7[BxS * qgŤߖ8C)%d"b&Ւgu蟗U5 Kw9ߌ'}x5B[r"໭tȐO#Xiنt͚7s&ݰ}D2HLL-hgvߧrnsxKDqJdYG\zz% endstream endobj 158 0 obj << /Length 2438 /Filter /FlateDecode >> stream xڭ]o}(p2sERǶ(puW\sbz}PlVW\Il}狲({)' pf8T-ŏB^}% )f~\dJtgV^6.7Kϻ9?ɄLeqsXRy߯re$x*}. NL9/Jk~8V2{yoTO],7KOEtd_L0ش\NNR}�(*sX\Ywxh^V7W �9o-jD3cbw\G; 0 +6mI&[�y1+# I8*5lݩ;\E: ֤R@wK`-dL#-ykڲx@L{;({@a/Ue]l$[3}^KAJȎ9N"h{EWjSQBPkjY=3xWP4iwmq۲cE)rK7%]MlA8mbt(Ũدb^1| ]>S/O]-c.6o6d+e*V'iyE;O2բOL݃ݠ2U]"Ӈk[áC2esgyt0Ի@+ “'hٿbCgFZ@xأvᵎމ-nYbP<,I6H pLbw1Z2_Jf|;3wN Xn3Weg.i!/ER# 9V'P 0mXK�O+q?0*Qν \AY{&wE *vM.wB,ġ;X94]s(UaL(yÞ㜄1_^Wr:E9:1U*rYJ9QJa[ԭ dL~o@<z=|뭡pn9Gr*?՘#$@ O !*#Enshx� 7'h3 &6i06Vi8dcNy\ 08MM.J|`L/jm!wqPORJe 6^i_G0^P'GBUܳ彳+IP|wkQ`ه  ,3zJp3/^HiFDxrW/ב˲ƘHk!d3.QAcOijNzzjMa ى*L* cꔡP.(DהCL@Fgp1[N}M> ze^z(ouR3Ȗ&n�36ԡxCVGap햢<~s?$yߴ<XTΏ|> ڇ 5%XuV 7sUS&~L+̸7֗2]Rr�D)N=ԼY-ڀ\ ճ@\O0TMR`2t-I|joOP?=pUdFj=ሊ .;7_j5'xu 4\Yh4 Jɕ.<SmǡQ]c!)N}U7j4voZÁ π!k2(?4t[Ts4�R(ښq˟FP}Czy.[)/43wK9a kn;_yV,ѨeS"zhʈm r1||.|!ѫq?=iN9-OE۟`Ob4,"H8WD/ޱ6q'FE<k4R扞ND-Th�[Ɨ=? |]1en~:kEht1g7i oNxħFqō('afCo`L[Nײ֌ ]Y v]&%ȉ'cu|i9Q AM$z۴[n h13-ɧ}9(Z!ɦ@ڃ dlʿ]Lm`ö;[RR͑P2eLq{]'ѫo˯R}rv6 X7 EgQ7dwkk9 0 W{+C5=Jz!y>χDC|NA;d^Cm!w#�epH'||iNOD<Q@hk&dBUM]=x 8jyA^ 5qjcA;z�XC endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 835 /Length 2441 /Filter /FlateDecode >> stream xZ]sۺ}ׯciH�ώ8vd&g⹣(Ɩ<&=KS J"HD 8{vTB +H 'Q(BG# h1jԼ \PR=E$!PJERְTDEJXң4(Pr^*-ʀ -"Y.JBB�x|ʞӬG΢X!/\$ EF졵( �ڋP �.8a4x PP/ i"aFJv J*&dW-PO;RƊ !]6I$xNS03̻&/y7d90,*z)׾� &ֲ/MO/l9HT)5TnSPAobu(U$%$C)=8  0l/WfL|!zv0CdR$%lI幗an5vLev`Lz:�~=�ρ(`P]cdSYy0[�\\LDy*̆h2.S/';{)s2\eʗ _2ǧ[EI̐/imVýFVC^tx6O-E,TboRu$ r!iiA_Ud|yY4ԊoI8 r:m;Jiس-7X47ml1_NnQl7o'1K:I&D&w9Oiԉ(K; .aJtO˫ƌJn]6ԫjMOf7i6eۜ]Xr�KӍuS\ev$_wӔMa�V'Z4YisnWmmU{i/eݬf26Qw밅S7o_zWqG 3G4B~>Czn5iڭUL|>:̭M ,{ݜeGbJhL9NÎ~#EæX65]в:jmY%f!̨-kW-¬1vƘ-ar?M[tfm&g[8ۚij39,5seT\g%bnIm)N+)p>!ϭpi i#[X;9f-t<qi]~4,?Zoi÷raV&bRh~zŷۡ(d2PRs^y6M:<8?|N-|ԗ=⿂e~I`5e/z+OJ,_TP<`.)e /IPڅB:%D;;0h<>:F(+/g|~;CYq1}v; Ujt+<>Šb|w}})jŐw}fK[ہM++~񄻅œ tQcgjCbPEŢb R{@WNC /8}!ʋP=י{M$TuԥKW<]ӵ<Q-jyTˣZG<Q-r%E哛\Uy-K ML}W9-4Y_2;QK$[XXT 7haօ`B/+QaiǢo) g0:@44BHB0`F3#p[, 6mXXg x;5z[;_k7ҝbɂ䨐VF^=+^;xaʦr#hp@{c9Y+ߍ,&`NNDu7n<�FAV<c"#- p2^bk hI vhQcB !fAAğy A΍lur[SBܹ"BJ *^0 6Q!�q%!5΃'r>ǁ ۂj !ܕE`jd†̶b2T8 Bv,يA]xۚB8IY3Hm)SF[NAm:u us)&KH H03vxSHyꧦAI+�rꃹ%0`z$H5h U` E? M13fd139H{@LxXEIāZ(!I?HF",KHQ{XHU{@p?o{tW#k,d*.`>,ET`gNxw~xuqC'*ݮES_*$ErSxy]vܕMv̙?uiʩMvP endstream endobj 172 0 obj << /Length 2662 /Filter /FlateDecode >> stream xڥrܸ`b;Sem[ڲ'R*=@C rk_~"ǔ˩nF?{E(뻋+"թw,K(Qݕ/ݡ6Rњ@301x0W:T͞ڮ-8,u{m%m+$~50kYNp3ll? Vo;~o DNu"mYi80J3΄mP6ﮔo>~ -/U0 OO3gZη jXJFډIKcSIߛd9n6ޑHȃIi帵<v]v9[r0ʬXO"T 08'ZҚN쏦Z'a&etN1F=*eTGX4;Z2uoNn⎿X 0Nt4Yv_>Q ַoLĭ⠈c^g?{jQ&zV v;#BpMi{k&j9k-iraj.zA> $^ ',(Ziٵ>`;8L3mM3,Ó!-W) Yahd2͉B(1IeOš&1Dlw`3qxHx:XŎ=Ԕw<-^`e/҉\4BwW5{k`PӎU6{8|e_)p3هA%�nlV)p;TF%mUP͢ٴˈ(W:, c0 557;Kgz8T1>uCIa1E@ҕPAQ.S8O'afUL`3Jl+?txi}ٯXF\Ƒw8UN8 Z -{m{lkVoGٙwWN-(hDMN)bBf)J'��RC ?=_~n@K1.&Jmcؿ/>.| 6ܒ̹Qww˿ˉ&'VWNL`sā&%g}I<hΗΗq'ً]<A^m&)#GQ8{A \#:O8T\׷3f`!9&.0)FK)@zPZ)�rqMOg+ �G|SFɃij#)Yh,ej`Sr</ZA BHId-JUuR<m4q3hd]L+G,z $2SNSbX+=W"*L3U|JxɪXwS~UFQ>ᭈ"^I2n$ۯYeM S9ƅVQُԍ"'ҕ̭ijZڤ)3x~O)yLhbvRv.p@lOMpD3u%$,\[�R)m7iJ$4\GD2D<60Rr{Q{D -m-Z+׃*Ԗz![3l*`:hҊ$U $!TAE9br#EA4YcVq}WIf<?*O5/g5JvBy?/]}M5ljY!\4CvE·-Q˜ GB.%s8X yaȜNuEifJ_pJ�F[qz)j@Cݴ՟ 8?G|m@w=#Ǟ֜I]>gॹG >mdZ5ez cpnfgJ�tbqZIJoe>T004Kpτ@l g<?8<1B"{z}1;H.H޿aV0TKB0#U$�X Dk5{ 6vgzp?q0Z"d=0;$$dL6]`[}3"4H~!=cQH)HΣef~DՖ9NJG~ @l?geJ_3/^޼} "gB(]h="Դb =/KzǴs2`*W TXr=PP%#g_ԞR#{'nP+cmikzzP)f֯J \\bߵQaފB6WG>0Aw۩SUI@q°mn$͕RaxcW7|hsO\Ċ|3(\DIC&q㻙i9 ]ϵkr8` b8Hsm|qCnINTR|-*Mla2o.~P�r?8umz%`k1=pN p^EKTyytQA[S \r" Lj\@P$d&lJ /0ɻ{CfSy֮>DJO#.{( @ۮ_)^su/Aȯ}mxDUm8Pj F endstream endobj 186 0 obj << /Length 2098 /Filter /FlateDecode >> stream xڭXKW ,a@|V7)Rey}$<h�O0YW7 ۽IVy[iWUƩV6WTf;Ƥz#_$~X&/IgR"zc?F87l0bn#S1Y d^[P$qdQmߎ + BI\feVe*4]4]צrMNlWrnɒʒt#,ԘђL/$lɾ4wTVĕVt:$c21duP℉m.^N~v_!z/f4j,!xGtQkE"#F:C(iHVcz 3Ed 6YkRVG$32SJNꖓl N΂$ȦHa 2> &|pCjQ/c{COP7kGIIR'USHI:it%ty<)GJnNJ:Tv:i<y+0d}2O&䥕>?yCI־mo&h8P*ݱvZf@[߃N_>=MK5rQUz<1kHc=ɣ<)Ybv~m,?]bj֮sK7+܇Wxq p<5B+"Ah [<@AcdDs,#i?V6G<~a/ZZ p\҅WٻuÛ3z!=CA_fIFzDEUѶ뇲Ʒ"vTT=>ym,Ћ*=uY]t*ێ_c z> ?5pxF^C4DAojIE߬KD,Ctfv2S@%p> QN( 2,IԠ4<!B뿖q_$v[*MQ</hݻFen</rB'bK6?tca@BL#?>NNPOux ~)H s! c{aOLrێؐRS@!``X̣ORW*%%jTP�嘊NWj.8rBbx?WZ腰 -蚶' rKԹkN$rb ֙sc<++Kʖcz~p5hqD WiW bs9r~qU LXsn!NnOéss8Sܷ^P>$]й\;miub3y@8fT7jƕjhP Q9QS}~Omچi wXİCzrr6셰yR9Km s ͇;w"!& ?SwGs~~n/UeLh[Li 6WC'=19 I+X NZ_nsdvuOoٴQ 2OEUPx'/U۳\,#UasR[.ҿ_ nr0fr%oj1z;o@ 8bRL <a܅$,EX-jof0E,=L:ՔbanGu8i^Ps@#U݆f|ت |>9_pP$-| '!ة4xO4%#&in*jzV ӑƎ7(0/OU Q0VmiީY< +_eUHLwi@ym}_\kZb ߚSelh4A8F/^  uQƿ~LƜ̲\ {�b R5w pJd$],@T| Æa?^]n&OGwp]՞ aK B.=?]7l<B)R pj?zH]h!Ű'_ILYA?<J; endstream endobj 192 0 obj << /Length 1936 /Filter /FlateDecode >> stream xڵr6_G`�A2i:isYoI`PxMXzNX,{]Er<bQR 8gϘLN=dd7I$=E̓gdמzFy9UM,UY gޅؙZ2V$NWO_748 !IXn_4]#+aƵ.;Ԟ\Շoe6c' edUm3srʱy[{{'"`+PAkIBdk:iX/(ARP(cw `I6 GYYC$,"wr.I Nc8 nv2֩gI; mqJ8z9<VF31`Ālڎ sKɲ�'b$$ dl>Czyx]VO縝3TrE;a >!MbB7ʼn>7/ {a1qhQFp-0g[L뺒@w]aBYh:U (b&ҜJ8𩮪QnrIU)lТᆳۿھ˱h䷸ub|@gLdאE*lp!=lؗ=j3[/Ǧ0 T$jq07ٷ}k{SD-`-fedz [rceڕ-&< 'vg㊇ QLOHP!I,6�z9'^v49ѡ ұF1 @Ȑ$2eS$UlIpqiRlZ`:`Y^2#fa΃:8B^:I^i^sЋ{hL{Ɇm`DrW(J&fz\yF-BGBz5ft#b{ XX76J+) /fDjgSAM׵A5$-:w ]|^4Դͺ.9r>w ?^ސs![ZӕYȕu3""yzd<xG^4vVpht|om+k7P" #I;!JHѺ 24PP""ե[(.-~pT3jGk..7 o0a5}e9E}`$m/fmw"X9[sU6iCA۶L!69c"�;X !qa {ۿsj~p̼| %Yp:q6wl;Pg$:YǣXꯁ8aY>:$1glHe 5fSjU&BGA=kC9,wx7t=Kc;V\6x@53s-ϨqwyaiA&H3:ǞqΓ�}[7Y\ӬMv:w, r*j55( rT�l;> _~]g-Mأ'iX' ww$;J;"FZLsAaA/8bO"#uёL+Ti؃ 5D)j�ni0IƦ=|<!!)bN'8V?�Hϣe$br*y/}r`wIdr6XLnAvns$3Wmz}YACI)-CI( S<CSesy!݇(( A?Z:J1*a]WgoG% a29?1-Oaf lp)JP>G'ᡲ! N{Z0 Ц8)iK]a{JN00ʌ)Huտ endstream endobj 181 0 obj << /Type /XObject /Subtype /Image /Width 840 /Height 504 /BitsPerComponent 8 /ColorSpace [/Indexed /DeviceRGB 6 195 0 R] /Length 18405 /Filter /FlateDecode >> stream x}+9c{O])L+m뜞*?lE"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeڣwZuVwwNj+ Gq0/P8*+^# *g(++ GQᨬpTVV8*+2>+Ͽaᨬ⺲QᨬpT8*Goqj*}7)_>-+}M`.=Jۭw-}a+)*+++^ධ++&R9Q8*Dx5D@kgCu=xEp1zo>VO?pT]L vL乂.]K;{d :R�B ee:P8*\<gQGe_a3^  ѣpT8$DiЭDu~pTvA- K"|@'X 9AS '(?R/\ Mr A| %p׬l` ,>qrD3g(W@;hx„ �t[8*lp{?ᡏ|2,X40P8*]vL�Z7@*rT Q8??= 87޹^>bӅ I<CLˁ?�&~v>6λ yБg#k2Q'WB;hP 82 @ʏnBP֜|'48<9X58L=�8/ݞxn¿wK@Ez&~bC˛x $ &ώS=QY?2,$ Ol ɠYԢ4ThHEj &Gu\Z 3%q8tErh胯9(O9D6<X֜ ,U$wjI!sr ITn#7)8o? ۦ5 y(In0í\p+C8ki?}*Ԅ_g]\pTUw` ӟ}_1gQ4X'D{;bbu}0<`=ŕ,HŪ4ĕ<ƌK6*GFjDS(?z<ѧdk3t]d151 _eʏ~ Frj>< uxx BwM\]&^6a_/|3B& *\�Ro:"JW:7j6#nc M`Kۿr7Α\ACM{G_[qMPt#ꦪe@ '3H˜\m8:?}k~w-3Rm/0 lM7cGGN'uhyyhUn :UPm0Tm#YJ_"5hL׽*;a~]2&[TT'AMC1�r:;]x)ŧc'*~S7NlCQUjL }MEzvׁ;ᇍL&Qu̩�5zto_: 7y~[aqqӏ'.`eAZ6jAMF'lzY_dGX(vUgQ׫`1*!.h#vh|B't'=rj'%qs~ y7*8D>b a`~sdg4+$0PQh^v8 :%؜1/gx;*}t) E+| $д+NWtw1\d>.]KwA{'/#/|D#&8b)iaJt_rٹ%x Y6#0|?mb ]$7s9 :5<!zI]S,CS#ф7Oőމ?vbn:ѠCob:~Nȶxo,I\zGQ-{$=7Ύ9�X�c8^c9*q֕4q]L -9z'G4z(gXD<l`=Ѣwͨ¡UJ�.#-ߘ/X<Q7~;Rᙗ]rrV3ˏT"D,{BDy?᭛,٦C #Z10K"TAFG:Dd9{jv}ߤpfVPF;L˨;10փcBQA�I޴4 TQ=q[`COq-lqU ]8z-G ']ev+"kB)nҒ fh3]7P/yMiDTﺂ-Z`$ŋ IN+1L+IdIvr'K:>Ɓ:ti)D[8:C/kd%B=!P5ۦD[󼨺cF|"L!'XzR&Eߍd@1@f@:2@Ja(*AwÈ֯G64Tnt:" sy8OsDuʏ*_'$}uO9U\wg%U+hbJл6H4Կ6PQ.�u�^ iM›v.o\I\38/T+℉阓m 6V{{au# ج @$jKh.@[#ftw,j$}S`fs�AKP$ pwUv1Iݣg$wItgHӷ zU>b#_9WJвb#]FV#0BDԵhHN SӛbJR(< [D9HÝHЯwpUm.# *͓?+@-N:$L#`Ph"Y뵔oA*vϳb?H$?[ Nnd^f6, 833nyU6=At kpqUv$GS}QvW:%Qkz,Ȫ4ߣ$%1�z2 +~9hRyW.s;KT0ێ,( D&fsmY_n{UNL`5ش$ ? B\XLl7Pd]{mac@)Px9%^!D,e;춓gƕb0zte^"a_{]pt�ů4L[+[lA:;:.x'\idn}VvoOY Is;& "zb˔rAFp6)sӉ )%[sfl|2vAu!tt@W8bliEgP~`?EQb6n)uC;po`&^Ps_Xe F.J5Q: ;ބp6yH�cQtd $ҖO J3ځ45(uE3))!/FQ&8u)˨BI73>xx?|;0*l-c<Ko'qօfmq$碹y*`87!߅<%D/x(˙t1w;mԚ|O\w'ˈzPgpgaS'H 5 ]L9[6oG 3qݩϐ*~4U2億ڋr9@/dli%pgfm3H|@64$?*.R& d$*ڻI܊.OO-zz_e:SDϕ )7][WCr$A%@c/b!jf23a)u 5IDwD%avD{3ɘZ;.<C{>A,-zJ$F$>�`}|JՍXhi<拢G;j`" ~8<ẼRfh/3v"t_" v>1D~ÇfP?pt'bal5:ݛ %}lՆxdf~ aK#ϼt >uH#ZZ<!x>״d2#0p uNo%PD 8{h&oIV3Olh/$dNg~f" kW5^ЉTh|0}k>yg<|ydhFVO "z~_�&G'iq+ghBbY7D dqA'sbѯF� GtNd^8ܸn!c_v<*GS8g(++U\WV8*pTVV8*N$Lee^n-u9u9x9YgQSS8˩)唕-m?y<<b ]Zcϧ}0\[?pl㽟cգp^SNNʢ|y麟 3|<ZN_SVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVee eeepT;joqZm_yLߧPg/᛭n ) GOG7J,E@*d6H}( O>ϻxl }o~BGp:FeG} TpA8o<> G/G�ޗ@pD;N.6nw60{?叞^b!X|%N>GXcXZ??VPoUG>|Iga,Qv}G dW:D~Ah悗Cܡ5~i`\# Spc�38quM_ C9tQ/% !@/*Õ $A`8_mه>?̸\ DPp0= <м 0@=_1Dti'IؿTYtf%qt ڕ:`( ' q1B<A(FJ5`!2@d 6~0 I!bt ѴL-A{z^|ݻ p*H< \g~pEmIg2gQ/1_zl`'e F )BH0uy:O q9V iȧP@0nOX8A .-&c =I|vCZp/E7H$1PV>�LޛhD04pO|CwY'~sT7Qn! Ar I"U={AWԞ#?0q^oB�uC_tC ;`l FJk<ɱz8 ;7�w-PR.b  8 ,H"g!ȉȑA%8Bs?m?Ax E<To<ì?䛀U6Gq '9^qDJ 1ڠΑ>?KGQ+fʁP9<BP_ZC4h7c-O AcpD:Ԅc<[Du'Z;~rLBβ G&lIL.LT>!60V-#YZkb? H$'!ViucOZ#�; A5C7gkO֛6Oo z2�Vbu#¥1ir { a! .+:Pw 9ba$Z%C){GGP]zW`1f©dPȨ \ط}5[,^`*`0(z-π/�:'tW]8 8CTp>O A*%Uz´::WM~u?wW*i'o.jAg؎GQfh`> ٸCWihO pq E?dWM zO݅VP]Cۯ-­~C0OKcjYүfx̨pq#ķ¨6@kei΃A/=uN;cU1 ӧ pC TEPoh#_yxK#b)tkv|C:0 jTkt}"",U<ѺeR?st!@g]\f)9eGvpuFς!Z|)=|OP*Hz2H] PqGb^�ںTꞠv,ҽr xR ~̖5tm97tOK]}DOu- ={t'1%/єKsd_ܧw9sBC=C`StjF5ܓQ?@W:HpZ!1ݲLj&/.¾+v}<Uݭvq‡-> �$p$j(i |22k Wޓj`z^\.8o1<! 1Ćl y @t*)n_j58oA:h ŭ[EurG+^ś{v[y3 [n cs4UB,y rqz$+K|7*b1^οDB _zH~)f|jJ3]ն5/3*B-{B5&<8eߊ%CEc~({y<-\q\8Izp04I)jqnao{tl83iV5gk;oj )}{~`Ow\C# Y�1x0U 0D]~\%q|~$0}+Sc:Nr1U< aU�;7p9I2N/Q/Lg_d4h{@nhmN$MMP[Le HZN%#sos$E$Ϫ>&eXZ:;pr92 kp *tv0GDĶҙzk"mŅtouyO!z, -qb=D7p*Xw,4 4m{{>:=M3?*qݣњ co@IJo${aKG̝T D30#Il!{qH\ɗnO`܄亻E.VoJ@tؐ" dyfk0zbpƚG�#%=ҙ%{_x+p4qH1k ĕH$7'+jW7`Ԑ8Qӈ7^I yXD3"úOVNx!zžNE;l!ABPP@L ׍`ؔ,͸,-ړ6?Gf$p'8 J<g(t-$Z pn[2^$DN(O-�N~]ܐ-GDlנv@݋AM5_lr\3k1u0l,z `"1NT[F|_EXrF'7-KvNr 5@'ٶK#<4a_ CPDU`KC4kCU^W$<(kú=hGZ N\v%f+$Q04?ܢ=+bL"-!2LY"Qj :&ng=?^#'fxVoh0[DC&܎G݈L\ qm{HWv�#Q5S): Fe#!V.ԡu1`>,x-^dddڴ3Nts{#BPiͭqݖ}L`h`#/^|*[w&±\+;* ~ɚS'm<*N윞9&jUܞ/& qqnM<I%�3LHPM ]{;%2/ɪ;mINb ґ n o344̪Ur[0μb6[01Oww^wiZ<}b?,Wª@pt?NC`1"'`v\;8x#G "<eZ%X.o-3-#Hm$Y!Mz#@N=C"W/ 6Jj@Ne&s' 5 H8W#7̿S=gRnGSF>&kA$wB4GM!> V{d#><xᭋfY;(tsg_szu,ou^*h6ཹ!fyQFLxz;T4CGfQاhdEyhɊ"قgJ@X[^8Xf CH?&q"~, ד k&�W gs :r):nZkGh^;'o8uU7_?BԱgjfVa<웂CRwv$ +H"5>ufQzJlǝ"?!oR-oB| ॽ/ &AN<�=͍~N}/#vA[QfFeW s46subjVb;~]@, !7Am@Y_~?"AREBtȄ`:v;nA[xvBtРbtXEkth7 H.+<oa\!CQû}+d|Gv'罹@ tumb4˖!c8�'v7{b[�EMчB^w##./c_iy;Ku/M>(尽%>{[Q/DH T1-dkX^;ZM d<՛̉Gt~ a[S,n]7#5mVr.,dL:/FٲE@>sb%= _sKA`Ma3ڬ~88=Zk RRƮ<FDr0b0 [ _#NSmF<h*wGzLPE>Ɵȓo^r\Qh;m- 60u,P|r_0$n C\H86-Pf|jf>Աa\;hK6$'qx#IX bv*YGKoQ m ˭+WeZzox/ZN G�#MMbշZ>/1W JhI%oxU\7):u`hOw$p=ϼU$W ރ#ׯJA/Se X˭z-n^aS[1$jJYxHsl>Cp4zjK*MtY&;(l#;b�j@b/?-4;Y|—oC =:Z$UgDc*S?Je0:D?']# Y&.w-bbc8Oe JUU-H uaI4&G~^8rC[7Bb1I!ICMF\(y^n/"ZAs|2_1bOAv%$My8j3P]R?L$lO#ɧ Q O-Eᓮ]_2(8|̻q/+ާ=?E)l!yZ¥Ѫm@;@DmX4N WDإEGq>fP/l% ۑ Z떠?fx CPHZJ I;޺ĵ:N\*&%d<%G^,AHInLH3,#Nv8f2J\ygM+M0dۿk8閤 Wc +$׉FƑz#[!1PEf*.wn߇N˳Zߚob3RoδqSIW7v]!nߪGiW6.5h5-NHU6q S`JVDΈ.9ݩ8$(t>u@_zi-WPI$x{F1p*q4 š(]E)l`2TL$*ҼcZ'U:\wmV j;Nve8W!9ڸv4& %Sfb#P7ÞS2N {$`yA98zE_L޴cQD眞/Eigא߃|@+F_7(/�wum ;YB* qZKTL"vD �>OI@g%MzMY�K]r*0]ݍg )tݖ ]{xvd;S)�y }TP 8 @ z5Yb HW:}$X*1I1^tsI`X%St!ou8$FX;r)7)h 0:#с9WOҋ|8Fh(l0 i,[2!G.4VJ2h#fc&s& t_#HywR$ U8 9V UfLPu3m!{`iQ~9"VvENv%#Pł@"O}lṷ8 μW2ėEn@k,N,XނvTk jyH FzN gGEQi0@ 7(\A 48x"cuI()t*&K eD >[í6Ё!#2KS1M(d7avH ]Ҷ[\l!b@]tJ l<ȄqtINQ-KZE_r܆ AB LPOH+ œ)u_?zd\E'VDbꏼ$xi!qWzPItÚQS=.[Tce �sjv|:nA[ĬS=uGcCNȣ7oTK"F�%Qm!y94lCuB3jHq{U(OsE¢S! )]̳@t":8:dstAgTOב\!4x"x#ޕ: 4M}?o @F"ad4tuW D={<#BwqRfgeT)Ƀ0K;@l4Olӫu}@%&H:g(kNd1D7O9۶E ʼn8%Q?(#/s߀i3JIhڋ3vBSV&:I+i;io{ǀHV#jIi( ` ,Ƽc" ӑcy*-`qzN+ʚm*tjr*xԼX&""�گȎQ5/ap&n/˒ S <Fubg9)F)mJ$p&r;r8O~bzCUe3 +O+~V·b.sL%n7JrY??D")@ zZl$"O u{"ٽɆq1Ƥ83A1fD=K.> G@*n `&CieI<.:^1p7l۠Ga:LD?/+O~LtNNom:_= f؍#zuޘSW2YT(86Dn9 oX1.eLLyw4 ^-`'`CY1XڛFD_vW蚜3ޛR $1؟I{}|IT႞B,n}Itr|%gZ#y{a?#< G1OkEb~q0~8P#RYфވ6-ߏ3yYD,e.xHu= ߻q/w%W+ĉ{CI L`}9M["@LI0}Yaw.L4C?@ L $g>n#Rg#f46|l&X62jtN;e/pcQMgLcW`"CZ<ZGV8>4Sm<nǗ8e,-J[fCj+Ea%cG В{o'R+f+Ivd)y\ .rupXwL]<;5.?=u0}/|>p x EB %n! E'$DlR�ydv7H7"&0:^io;›|`otgg#mmĕ HN3&'aqFIO_Dߧ $u]gsl`a(/+G!L(*kUT7m>B~YYJ"ײX+zZeKbhTͰ٥Cfd!!qeـ(4fLb4̿U0H5y߰~]؄ĘGIY٧fwYYpTV8l3%dCYٯay[K]N]'^N}u9u9Yrr Gu9u9u9eeeeeeeeeeeeeeeeKm8vϧ=|{}:w:FWx=.i>Og3=6ptm3[}:xجz(upԧS8(rl3H p9唕=ivM,Qau)x7q^#/R8*+ѣÖVhm GV\WV8*pTVV8*++ GQY6>YᨬⳊ GQᨬBQYpTV Ge(m>CY-}/ .݅G3"ߵpT][pTV>⺲QYue߄A  Ge(=څ~X8*.7 ːGe ƑQw[` Ge7.}cHX�bmQ%"6Ch\aT3 3B'ٲ j Ge�B< F\GpTȕq&a@n#h``YcJ�4qG\ʣQ!$dv 2E<KptN~!6 `2#N[4B �ʞ)~%OHX_\4 lnРM|G/dJ�;L0_d5lUqݣpT<C#c#{HVI0Ryt<Hh s#cn91>py 9ȟS u#$k. JOШ*T8zuq\Ƿ@ @�~qB hh  <ZakM~4 GS=GX`oL yF^M=L_xwfRוۺ$6\ `~�#cn%E_BWGƢu@23sy;BLMT%#R:yQwuXbǗUZ9/RXX8@{$ 甓'~rFM<~(/U$wjҿF3!X)P =  9@s\DNx?{MBj.86:6Pǐ@y !5GS"ϣ,Z40 )563d~j~7U7u,1A wb=O-b@}!N(ߨpFh( T&2$:"# U""r*B*{o= 2QAa!@$g M3r 敿Gz,oD{pdY 4sgҫeC,j,p_s0?đPkt˚vZWjF I)$O9Lk]?c rb \6 \p u+'ds77 *o: s8G|+wG[޿5_m獄{ s,I VZOZ"b29!m4W=vH=5:NU_vZEOu8ַ{NfF :)<,ݏlgE}Sʝ8rp4_?'7i[TZdtgZW[\86jk%'cխaVLͩ8Ky67in H}?s6׽G >jv�Fo0jur wu'9ң8 +:L='1ƙ%^ @ID\�ӂ鴦P[ љs; ƚϹ L+&-5]76Kw6qR3G3q%'RW N\GEsq(a`�K<RgHG,= 6 %K ##`cYlɦ艹l`v&>C=09y̅>̀i4EVKB?~c\NFwºSx 8Ua NoS; wn ոґw?@y-p&=ep"O~򹊃5MxF[mU@/!n5\g] v*p{khafH neE p)L&sg6^F$ 08zDu:#(h M:%vVZ[a餩>',vTGn E1@{TWu$>3&;B S_J4[,WݯtQ$yICI\ZWcI"IXhKwf2a ¾WDu6\>sBOyكAs_(ȯE:Sijہ#h-HD )\$n+ w v s( _H}_b">ɹvPTPap-tJ]f58C0rG?m ^6"fvzȓ8&۬7 Ne-D G^#<AKcP@ "�15qT^iw0\LsF09ߚb\f+H$S;NgrajPRm�Ps3`OS".Z-oO}8-iv@T_uH�|[}Kt¸,Ұz)ԉRǟ[mnI q=G*sd>B v]d5sϘCR Bepr_A}+"/|r">sinj͢Z%Ԣ3Ha9G+05B mگ io{JI/hi߽ϐ[{AnDU6\_ Z*).uYv Hu5͒;uvM٩~ʑWb芟õȎtQfi}Dĥҝ{V/EnzA uO^eOX@09{% 躌Hm=U0i(,-()Fd%bjZ^)H4 By]D?H(.9÷-׸7DƵ3d١9<3h 9#7J`I햰$ jSFdׇ*dQbrEfM:X_ԕ<CK*C5-Pue)8Aԩ>ձ(Z)EޔVSy}m)tzVlo}#HfnȽs7z7(?xE+7"EsC׍i~hԖ_ nO "Ρ]1{_űƼ܏iOR{4EhxjS+̕\:iО\6 _D`"TҢ1rmtG3I1<ŞtH~ϧ#ݾuYUZ [5yQx@i?2C"(pTs07}Rn="9~w<>tMw7iY[WӋjF Z3U $'OJfd7[Z?z}=؂~3a +ug M LY'\ؕ h/fίYl βaro=q[x* 88gaF\6TGʺ8g>�G:ɻ'ﴼt#/+8ȳGWq}!?g/^x(/8%}V5 {ɗ.}g f4^prxEfpea~4c"8w1Kq9fr%e,zOH0T=->1h6>Ռv Ic[^OSi]qH&Q !Iθ=w%W@bčqCECG�|DHp#W*�}Gs<~޽~]bIE #&)FPfe Z5&b](9JXFriU sջ._aw@Z0ʵ�)~|_ro?q\+k8aT@fHA'v wl/=vdCpDrx"^LТ:�Dܙp3oSȤee(HFӰ{\?S|e`ZEA踃 ˈ+94_p �/Hɭ' VH~š,0IzNU­ʃm6Txڐ#e4?[h(NoD̝K0/ݿbz`7 xbW$RB!߇sWkptn| N:<k/1𦻀 7|n¯LҬ{DNWV828z' NS^qVlاV8*>G#5Wf_8zGu,P *]QQ3Aџ>>Gee:'5k(+ GQYٯQYﴗay[K]N]'^N}u9u9Yrrrd[Ʊ=~>=.yylź?6qANO`~:텣=nsӑ{?fUGᨃ.>QE>Og3Agy.�㛎 endstream endobj 195 0 obj << /Length 27 /Filter /FlateDecode >> stream xc`� >Z?�Uc N endstream endobj 202 0 obj << /Length 2679 /Filter /FlateDecode >> stream xڭYKsϯ%;ɤލ3ښX%&%){=>HԌEoZjV$_)iWw2Xee8]V?It|gjMAoG۬c =KՖ+6r(oW[ʰtkG*¸(yٻ ʃnqY0؞W̓,σ #wZ灭>pᏜAJ&폰mӞYezcdmvvǝخщnD(8Z\7J9�VMq4Fr=$Nz_O²ІMD2U0;<+y=B~JK[q7Ǥ,.qzA?ADXk zAYXW$@C5p/4]vmo?}n֜ppj9oxiiw<>ӂe4կ' . @/7ak}{t;\z)s-L I/I鈿:CyH~;kv/\^?rsEЀR܎)t20 Z͕H(0;%g\ʪ ??{EX=? t.-F *¢(` d(L2rt;D:N -uS,$x49v[ '@3P [3Q%<rYTV l#ȺkV6zl ~m ե<Y O>DUK XXxÏ v_4<"-YjZn2R=t?_ @PpGGEHf;TmBz e3toy7?\߲{Z%Br4@ a:ZT`c `Eqp_ExIG k\%J*l#$:s5:ϸ x_<WpR~-* gjеG3a5 `Od3jM΍-iWFExk:kqc:udğѼ&Z2vv0Uְ96Xjp<Q1bKU/߉f%Š;ǏhVk=B8U xz>�.;Q5M`{ bqL?B;[3܎y8ԃͷ ΍B*ZO@ o&B\lyUk+TP34RRM*cetl@X2xPp0N0TS%ܨ8 Ɓ0Zȳ18y\n|fkpZs?>Ӿm\^d̳R`//@Q!|DH"('KPpLJX4ePeW#9#U"G8yPl;jw:ش͆"jFD( ALќ/T%D/E(|n0vkzbўmف@S^p%F2*R+zZ:bT:DHnǶ`0D{mm#3LȽy̡@ϑJ~ ϛ?VAb14SZ|<#KK2ӥn~(0,2Xnw_kЫw6xVM!uOm)uf -ZiV6P*8A(J}{'c63$Bf".J|=ٳ.C`!R&ܻl.Ig.l~T>}Ϫ99$3r0x/_?rZZ8/f1}\ƷqoKx8ʆ' ~G=? cW#cWSƮX5cw8D_K[YB'TdN#~hb )'H !>(y|7bcDω|",\ 9y ׁӹ29=Є$DFǎьC~d[D?adqDJڌ!`WÃD�Mp#"e,Lms>9ՙX,8VD &3.I!ckk" &e[sNlڝL@z6 \6..gh/8>B.,^y!1xpǺ]˟ 8Z(JcӞ\j~F^t{SJUޞcBa~,1Q zDk9zs;.T,?#" RuT$<PJDt <b$TДSFB#L RoI8;B" \][$I"^`굦p#w؜y?LnpthsSD/"^t�AׯWfd$N>S%& 7;3e掲lY8]zG祹D<Yқ)ǔE!uRXd>bn˕I&/mH.#}깢Β.!r>0ݳϡ.n40+O=ݻ�I endstream endobj 208 0 obj << /Length 2158 /Filter /FlateDecode >> stream xڭX_۸ ϧLgv):lM>i[[Hr @[9we $~�F"Z*W߿UB0Z.ֻEI&CzwB\ !upE_DݟlE6$y*Qu~$ZOn3x]XJA"[¯+'03^dafA+Jafd/G"\)w%e=-R!ɶ li/m@~ .r8Xq^L =ϴ9ޒS]ZyN.u{p4( w |*̔_,/w 12uq]HC/:dXƝ6|:X}�x@Ga,ވ[2A~0p:(:q<1VbᆔR8bުmQZ fiB܇nE6o-b�-onhm[~VGN}Pa; $_$~c-DrIPRifzV NUpLMeLJQ.(-H(ЎƥB4> ee} -/I4J$>1TՖn~!^2?%"ު\#Z oܵgAQq/Km0y eHN}Af|6цĔ4øݾ6lNEis.<'58񡏰TЅ8u+ℇUU_llKR5ύaK ڊV 3Uj&2s<D ogtGVqGҜTC$:r:t$/v:I+JAn‰ހL7}t%7ax=z9 aDf�ogJ]fa"4IJt}oC#Zp�.C>i;yΑlw)7-!y;{R$S3)ܵ2q-f<p(7򆲪OxٸEžCQdnɽfQ|xpOŶUq&-c5nwBwŵN!Is:0O\96 „ոH|mo7VRImy6'M(G[D%0~DI\>qoN',|,6E{|f?RF.7CwGeq_~_Tӈ:ϰ)-j gFC*D~ez5(sF HinZkOF@$jW] *YKO(F=yUcQ0r4/GCH"iyc~C`JBTLsr�KmXVA0 5 ~#gWW'~ ~n{p} 7?ygni[%/D?J;O8j_lrW/?m?9𶙔bqF{ zӕСx U -))?[j*p̷Xؽ6E'˟~i8I]4~QjeiT(Sds}G^3KKDB #)~îXh*O#'B2Bg/'Id<0@s ":t'Gj97v gH1j9#͇N0H2A^'q\U|΄.5\$,T:RS(,c(ԩ"vH?'2}P "yȡ$h!a޹;KR5$ c$3FuO8g�Ng|G\1AI%iv2;ޤm}Wۈ-{?9=}.v}F|B7t1AH Mhν{ ˙vI_z(D2z̈JaG�=]{IZFq,{t-|L @>aSN?(3@u 麩~(dܻEb} k/y!YIXC9I.F]bݹ(^Pq+]ڦk $pM{8I$w�V jQ .d�u4_S#$alb7W; endstream endobj 215 0 obj << /Length 2446 /Filter /FlateDecode >> stream xڥXK6W4|RӲH�{&v5Yك&zEi*VQٓ"U,cU*X"Wwq<qS?MU c'& כ8Mc2M`,81{-xB"p<Bm؝,`{QHf2Ds(]D6@Pi81+b Iׇ&^2}ՙ C?s}G^Q1pob)UOS%F"I Ef~Y!0>""<2;ԴJ1#:v(cPqHrX'EqC_+3 %|򟗇tK 3\?[A|E#ݑv18tUfLė"uQR Pb߾ u ONNL�BAj zREM˕zB |UE+Eema o�unlA<`$pT}ŮqԻL#Mۦ? MʦV<sv@rEOp(~>V(eIgRQ ZxGmhbԎ&|$@7z<nlNbՎ|P KuI}0nڏdzevsӵW-H$DOA`Px*Y8)p'<hDHO!Qw}!ʰ센z+Ñ(}]p3Pjou~Rli[𘅻z`:! ѧBFӂ}ADa�;8)@)-85$MJvUw5C[kI8>w u|;ԋ8xccdoW.(1b!5[JZܜC|~(ч;M2%I<h]7N6 wq ! ׅƥB57R] =1HhLZFF -*6.8 ܥøCCLNŃ瑍Bsk8b2\:{ͬz**[/"1nyPN: ,0AB2RCmx3B<'ރm>ZSHSa21`(<‡,\j`ThY1G(y^XcKvf;]"OƱBIg5- 1*[J?i4+&ry*fQg6<d<hCd) φx:}wy�<hl, `8U}/ 4r@`7ν0 %!iszq`wKtpV= 5Qp:؉6|yf6N~sy!D>�%"?)GLS%S%r80up4 o&s@ m],1CcQ>i|p�ހAb2 Ym8$~!N8j;"n7i=oKš+ƀznn. / jGڢ%}>Ha xmwD�DD@[N; צ)%T7Hc[.xc3C^F3ЉZz@,~^˔[T})qedumsf̴/H{'BElIJ8DIci"C$דI]O ]Һ=Ь,M9vZ^6Fs>D?fcl )wL <q&<ǹi˂6C:X2}o내䊌v'Buw?odXo.`\G\=Tm-CVCo `N"\@-ucdv;}h }m`kǧaD`Kj ae)`Cr΂Y_l9}{'3!Sԧ-τ!CoMw;ֺ7ۦU6*tb4A ٖ! =ż�;<M6j̘n mN-Çͦ?V+3߈EU+ V =|@ (ehT|}I8*7_#̤g{%)'2nM _$RAPwz .v [M{YjZص\HZ0~ӫ8HHkdbw׷c q3%5zd8Q] #UKNO@�_r$[A▹#f0!gEB�xER@I?T3vύāf$ Q!mDUv s` k)ȺJ�]9$ܑg{n_lR endstream endobj 220 0 obj << /Length 1032 /Filter /FlateDecode >> stream xڕVKo6WH÷iiM=0T ;CRػ.yqYNXq¾rpf(˲DI3%fL1)Wo4SH~l'?0O.oK Za*9BDINsÓ2TmWNS)%?LS4M ǫ r)Hn~p^HՄ81??%\Q\M$)(t(\],Jw"A,Ifek `zrOe먾и ttA_IY.eN! L0`.ӜgdfOк.ܵտ&ķzI AB$̘B;qEq .ڗ)_lAS\v$W5k,[tᄴMͺlӿ@dmEڮGS3t89Umլ0_-\<o>"GbpH8YlpqE|J+\PY tZ%EA>P\32QbF@_S wvckGl!l}݃#~`PE|i`Tnmvc̄R wmlO~�ɺ f]9f=a .t'Т%-ZAKA3QFX:3q / ~0`Q#3 G%d9 ԅ[ԅuXu x!s`>W]횞ȁ|@B+Էec2{28(Ѐ\e0h\]V ;~p8CyQm2>lyǬdU0eNrΨLb|'xIE^Rx)v@|Y\#d䀭`YY ~1o>]ۮ7I;AMy``Əf js>n<kf4fc'W_A5I!᧔>vt=  endstream endobj 211 0 obj << /Type /XObject /Subtype /Image /Width 840 /Height 504 /BitsPerComponent 8 /ColorSpace [/Indexed /DeviceRGB 6 223 0 R] /Length 18379 /Filter /FlateDecode >> stream x}8cnW$ʦCi3 �DGYﴵ8 2e&N)ԘW.a^pTV8*GAU8*+PVV8*++ GeQYYᨬpTV6e(} GeWaᨬ⺲QᨬpT8*Goqj*}7)_>-+}M`.=Jۭw-}a+)*+++^ධ++&R9Q8*Dx9D@sgO+GezpEp1zo>VY8*.~q}Z Ge;C&ZQ =\2 @ Ged)G텲WDBͲpS(}Ptwx. UԣQٗwXrco(- jҴjޏCI:?J^8*; %A>Fũ^.}&B ]ځď8ckV\Wv 6uwqGLAxh89"3m+_4H�|„Os:B?閃1#pT"3>#C˰bPClot!H1j�AbD FKQE4D蓣oh04$ɼŘ#<]`ș3~1AhJ Z Pnl7N3a* ܐ}KyfMU8*Jhq7jyBϧAD i~`P򣲛5 ~?IQt8/ݞQ';/,mҟxOZ\se Ob3T/TN"� IB2(AtVd(*hHEj &$yIh%&Pvi?-CcD|A@Q| EhkyKQEr&Y4=g(O$m48t=XB:EBG>7a۴$ MvK!= # s j¯.{n8*;Ͼ/TҘ3EZz~بnzrI1h >LbmxacF6*GFjDS(?z\zLS5RR:`. 2܉ X�rY_$1OdB:~;.u2$<];yׇ{W>#|} <OH`PZ!Lh.K7Lbeq~6#nc M`KTHim P&|ӡ-gq(283�.`$@ZT5 I‰D 2G"+p6uOߚ]o~Tt[" [EӍQvM:#3M*|V շm$K@ 5[<Z$10/ʏtݫ1VeZp)Snh@O,@Eutn!8: 7úӅ7R|:xR7upcV<Ub:�q[mN ,F?lf(5vfN� gpۺ{ .?g֎ |QiD*aSQUO>SK=S:,ۮ(p9<~z�AXG:p\Xʩ%OJn{? 5W8#s0i093VtCJEAG{Gv8 :%؜1/+ǍѝQIK :ERX\>GhZB+:;uc.drG.ǥ;ᠽ@S'ZBu>"iaxFzd1sOV `h`40@%9wD< ,؃>6w�G`֛\y:OvRwy|ԯ829>wwUq.{9N,m0@'4`-RLoTi #kCOuw٫/'vv}�?`t@B Q 452eJph;8 $Fye?%Itf%H8lF8RU8w!toƬ|ZAwʽ]rpV3ˏT"D,sBDy?᭛,٦C #Z10K"TAFG:Dd9{jv}ߤpdVPF;L˨;10փ焀Y�6i]Gi@8t z\a0[%?؂xp;Z>�N (V\E #S�pϥ%jgo^҈gu}Q%N[HR[EN+1L+IdIvr'K:>Ɓ:ti)D[8:C/kd%B=!P5ۦD[󼨺cF|"L!'XzR&Eߍd@1@f@zeFhPT\I6#_mhY!H5t%D* q5_5uʏ,_''$}uO9U\wg%U+hbJл6H4Կ6PQ.�u�^ iM›v.o\I\38/T+℉阓m 6V{{au# ج @$jKh.@[#ftw,j$}S`fs�AKP$ pwUv1Iݣg$wItgHӷ zU>b#_9VJвb#]FV#0BDԵhHN SӛbJR(< [D9HÝHЏwpUm.# *͓?+@-N:$L#`Ph"Y뵔oA*vϳb?H$?[ Nnd^f6, :8<33nyU6=At cpqUv$GS}QvW:%Qkpda oK� B= @D?t�+%*ZmGmp "U/ڪY_'XVd&0ψCrNlZ[I=> , F^u9{N0^DNɺWH833,qv̸R \oK"?Q?4ko vߕ u/ԱR%φ2Jg@q 5F8hoe~ԮIb}n1a Ʉtף[$ 2>-pOM NTHU7.7ccvӐ Z I+XdK+: -˴q]F 1<ý|RxB} xwb%4A$*XG4@B4zZ#G)͎^ےJ[> /TC+ k�+.Qv,pgxSRB^M(pSQ9Г0Yo+>xx?{7{wZނP|򍒟Q8�úl\-X4qW"" &Y#|C^]SNM KG/_ԏ#i+{S<YFdի<o~>%?_ Re?@JNd Pd\G:Zgp?pqw>C\WOȔj/~�1 `BnGQ[A5 =HАnKi$],3#�j&q+H>'?AxJ!~T}ӗ揎GTO=W.^,$ Ttm] Cˑ}ju0 MChLH( vN+m c%*-;+l'"ܓ!DH(8t b fiѓU"'1"-wԐ#�[SBnBK5_=0hQ o i 啂 7@+|[ZI]xE'>G7uh7+Bр[=ae{L(A6.XmXHk`VP+:>:H`zю#^4U 9xMK^-c;@ #g�L_w;YI$Y sWfƘd-1~ɖI]B2Qx Hfpyp`!kvZ(@Ƈ X ۷ xםGf(oT8 .a}'שao9`Bh[t0hf~xVh/`k(~C$K>Gt2/V+{.nppGNFύ:e OQy}pp/P8*+]ќ>CYY⺲Q eeQᨬpt a*+2,ovk˩˩Ϣ..>Q]N]N...lm_o.WtVcOO[ײ=;}>rlFWqV<<6^= Gu9,~: R<'\Σu9eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee^^V0zlj}GYme}ZuQ8:Qpt=Qb(R!pY\WGCq]/G?G+�V\ :_@}"};T\-8{Ss*a{_]8 @^|? ?<u9?#{CJʝ|'+ñǹ<_VPoUG>|Iga,Qv}G dg:D~Ah悗CwО4Ef|t) y81aLba/f?:ԁG{pBC K0a毶Cqg2.у:!;tA.x4p�*pAa@ |`I@/ՀvV B1`IAveeX70Hj&?H\̩ ѿw b _Bi:L-i qRHu4-StKg^@e9=>]8$\3J6Ӂ3 ٳ(DȘ l`'e F )BH0uy:O q9V iȧP@0nϿ�ͱ p*O) Ol1^ɏ3ʀ~)A A؏$rA`µ|E#އa5xˢ8񛣺awC=|ݙY8 HH* ҧ,񅹼*WP~% a00 pR0؁p�ch0LT^kI-w{Fva(RFy)Q\?_ue$[DȠ! G￶ OAx E<To <ì?䛀U6Gq '9^qDJ 1ڠΑ>?KGQ+fʁP9<BPZC4h7c-O Actu xwՙ儙 ethMؒ(\�=^%!eas9T] |Cl`ݭ["Gҗ\~zA0IOCv'ٓƞ4$G�w ~ ޜ=YoߟX<Eӟ%?Fd\�Vbu#¥1ir { a! .+z2r6Ė8HKR"W)鉯 b̄S8Q7oOnx<n;XޛVW\u$[g a`R<-$ 檴TYy �\a_|6~TaӺ rO ]�t=E=a(d㶟!Z_Y=(œ7Q.2!3jnD7M?u[BEJ\vQo# 5ìC?.ʏa eIz1aǍ�]Ҋ^t{@wpb*O9 3. BM;Oh#H=/Dm=iV”. >URoQwWdKGJ. K7ϙoOЅ�uYr囥e3JGqGK< h$=BN wR(BŅ~y kVvSqZB{^IHˍTK!1[Dеm T >-}kw ->յ(f2ѝČCDS.͑}q*{? pM]oռ[rOF@S]#]@jtRjG05"@-gu[Y (�Ñ�v۫]`\YkwsOsقM.J{cmC_" Z�v~)1H5ө}=ZBjI),n՝;cxoeO_3n^0lGG0T clRpY$⮠R,uߨx9Y .|]t}#9d4C#y4i*tU8P ՘4scj.?>0}+uKtΟ~DQ96.x[P"69Gp p`hj RZE\o:'nqgj-βUw.x+RB֟1aF�cc`�a::8WKz<H` VCtjb$xpOªLiw>orX- d^^Dw;>/W_d4h{@nhmN$MMP[Le HZN%#sos$E$Ϫ>&eX\:;pr:2 kp ,tv0GDĶҙzk"mŅtouyO!z, -qb=D7p*Xw,4 4m{{>:=M3?*qݣњ co@IJo${aKG̝T D30#I~m!{qH\o7'snBprݎ"V7%C H:lH xC2<3hx5=18 c#�F[̒w=/8q8Bt5J$D5Ϋu jH恊iAc<n"Q�`a'a q^Uh?z\ydQ#[DХT(c<3S(,ucG(6%˩u3.<h派hiv`)?m#f3Xhp@l%3mlfPE[-uS7խ`sM"'g`ɀx x 1?B7GK[5(-<tbPdS W83r.L$)uzɅ0U#Mt\]*y/+7x5vsW6֛8&`.5ۗC8zZIc6۳<Q'bmeOGp5ۏ*tspzZ-1r2*u<` C-C"$r"Ô%_VX0h&{# Dt[i-o{a6ځaE'RK[+af&&+M& S&s#]btDCLT\_`$ fțU/E75KAFFM;D=a%rOB>~6JU/zg+{ϕZXc(ߨ3;nw<@.֜:nV3A,HMJ!,X^,NW_T0fֲg|wqN KjN{[?dS!Xt$F a?$M27j 3DƖ?l ݝ'fڬu3O*j1ݏӐ8X ׎+Bx;o5nu V˧pKtL 3RrIwVuD?J p!ؗM<dj@Ne&p@|MbDKB1G>~`=<r?zG61Y#8 "k9j:Q�#+F < o]4D0;dn2nngXױ96yCKiۀp]FIq0S7ѬcM;(-YQ|;qn�;{ p3bn7F Œt|#NeaV^6zam߄ʂY": !\|l_'b"):n"kGh^;'o8uU7_?C`þ)8$%x�jJxB\/[c_g'ܬɖ~)bL &% B1xv '@�^+z\7Qr0,ύinw{ޚ="07*Ľ›᱇tOdŊY Ͷ_K'O;nB$*C&ٕxt?$g/D7 *;N.`U$VLq.{_ 0 cS4,W󾅥r)^<$  N,OMVA%/#8.Āi  q� Of wAnY+}(u7-?85W 3?:_YaR;n\⳧ɽUEHdP~O[ޒa@殈en,ѲR)'zS90X>wү!l~k{ݭ+FrJ΅V1[4vȇwN,�K{n)L)!\6~ N.uxnF?+<\,4X(-W攴F۱5Jđ)ixjwG&()N\:h;m- 60u,P<}r_0$n C\H86-@ dbudg\;hK6$'qx#$,Dl,Dw1;Ȭ#%7zo6}IM`[INjei7 -'aWkd&zd1[K-ԫ%ǒg*:FpF;ADVg*a'zh_*AGLr26 `-9Һ5W{UOzwnuKrPOĐ(׫EXp+ f!m̱ n\I-A$v7!ݞ$g)n.BъFӨ|f1/bG _~){%Lkh)жVE1iNE@+ VHvt#$\fhɷl6zD_Cs85l՟�-HhF:\K)559ZƑݺ,I0Hh4G1r{ `#X&Of <qon e(D.F]Y&(ɻ$E)z8CgK(|+bWWu :\y3eeY�Ժh:-"ФVRm FrԆ8=vDÍ-�"BX.-"=28 S1zaS(qL(L܎\Z1KmBrЪT"THRHGp~%Q(tR1)!)y?2e bFNrcXGzaq!w0 P"*S> H5mW䰐ɠ�lnIڰ/q1pBr/~hd7zYE[f7WY/tHLt>P<҂�/RPaVދQ͡Z4( 佑qiΎyuc ^%LzA}w]1veR~ 6 ޭjՆ#MT5d61+gD~JS}Gl:g/֋C=۴+Y<= [8Ph]riScũ@!CTM);ήoqp:nQu7fdX;qn~ \y;jG_`B�1W~GT:&> d^P8^7X9(LV }hvs�FV] Q_#vP s3v. T } ⴎ%M E숼|7+ 9΂capb;R D@}w0C;}"$]:Hb"A2D#YoNTG*@^B2T -<"C}sB'Bh^Mֱ#Շ$m<&x=ݞ'a OӅI@t35v՟T)r ;r=N:= }H{!s0A,8GSatKYV =AiL8 `Ճң 툙cX` Iö7]y|dc7ҁ}]@q!EP?c ]eHZ0ڦvPaUwYA{#i>oGkᛌakܿ wсD0u[q6Lye/͋*?X.Y|M>V7W<@* bAhyyjBГ)48x"cuI()t*&K eD ^zVW%t)R&G0;\UW[.i- E}1zsJ:6o_dBAc؈8$'p %@ݢw9x HN nCOUZzAC re(B'ĔU=Jy\A v`s"ܓJFj+"1UG^`ݴސ+x=(T$aL(é�-*2zNZt9 ;-^@]b֩:B˱!'hN›7*%ZkhAϽp]ZՌ̉!y94lCuB3ǭ$KW"!ƍ#LW)?i N(.d~t}6:3֊ OM\]�fݑ !4x"x#ޕ: 4M}?o @F"ad4tuW D={<#BwqRfgeT)Ƀ0K;@l4Olӫu}@%&H:g(kNd1D7O9ڶE ʼn8%Q?(#/s߀i3JIhڋ3vBSV&:I+i;io{ǀHV#jIi( ` ,Ƽc" ӑcy*-`qzN+ʚm*tjr*xԼX&""�گȎQ5/,>˲ĔB<1dzbydvJ &ItǮ="zE9Γ_PUL6HJS Gn_'U1Si۹_(\,k:Ϗ4;{  '@Ccv/ Eya\b130LPQxty#K�B%OʵPڪvYapL? G>:D6rKʓr�[Ey[W@yOv;p:oL+,*LSe"�EJ7Z_gf2&�GԻYMa}q00,NML#@" ǯ Q˫ tM]p[}|z$ϯ{}|IT႞B,n}Itr|)gZ#y{a?#< G1OkEb~q0~8P#RYфވ6-ߏ3yYD,e.xHu= ߻q/w%@*ĉ{CNirHG4{E`p~[{{q(]h$~8.hٿA &qWI|FY1`GLh*m7|Mv mdV)f7w_ θё);Dx쏬p|ibdx܎/3pY[ŕfՎW..E@Jz`%N<W  R]-9V5XR ۭ ^xv4j\0~{pa(^|@˛lL$%J(CVAN1I߉t8�9^(on3DTC|dxO@xFo򁍾m-m]W6 9͘Q%b: >}~*xuzAaHƉW$n20@?]TPݴE܎QH#dg)(Dv_b聓j}/aP5rdD(4fLb4̟*A$њ<wLlBbL yQsRVi]VV8**++ G PVeXRSSE]N]N}u9u9Q]N]N]NYYYYYYYYYYYYYYYR۪6]qA>^ݟc+=e z<v| Gh/=6>yylVz:8r)IYs9t6xOGr.Z(} pAXe>M8W˦ Gqe8d[Qוg(++ GQᨬpTV Acᨬ#+U|Vq]YYpTV8*UHX8*+0cwCMg(+\]g(B 9]8z>C/ʏ*ZBr%Aו Ge*+&tj�,\8*Dk>>x;#QwmX<?*T0ww='CgV8*h(wSF gN3-m-(d?pTB& (O50 x-`9pT y`HjZϻ> Ge\QNab6 D1Vl]0 fH5$`}Awu<NR:@B6 {h,]t̳?_s ,_ ẍ8:P;?/?*:NsX/EB~qNTX etm:`O-?b| S ``"aDY=)xϟCR<i_.,GGʎ T Rj[;=<FC=;߇6zWCPs4O?Cm|5 . JOШ*T8zuʏoד0�O�Y S,(d/l0|GcpT?� ,8 4ȀWS`"%Sx; 3mKs`|t_PQ0~O~�OG6 K4D̏ͅ GEdf<wsxRob/I=̱N~F=:h,Ax~-_vK&A<<5 *9DN?O&~gEo{B~P"CW K'4 Jy!ihXzbNԛ gChR2م#B=cH gᓚ)v ϣ,Z40 )563dH%:ϟkPHVigߌ#Թlbk0Xމ "[nŀBf=vGe8ǂ^.SF` nȊhƎ'tDWHѫRxs.RG WGY�,˟-H@*65GK\1W~뱔]Rtf%HҸeHKBК~ GB=<n-kbuk] U$t*#_$9<Q3 u 58zÒeg[C60s@D'K0r%Xfz֭HܓITgx¾gN` 4ھ7x�_cΣMܑm{|龷76̱P?')*Zj==j8r\9>#w!kt(:npo[La9̜׭tcSyXݧ>;q; )?7h~kO.nӶȍH5 pl'g98KNƪ[ ì;SqRmnMA<~t Aw$ pt=r=9&Qu6?ލםvs.=JgIL/yqf-P0*BjptG89_Yg+> 9^qgZQ66nq울Yqا ь@܇^pa[X*`P$Ӊ+bcqhn3%La=`6qɟX屧!c@vSt$!`D z ;-]v FZaG3DCs ʑ\ Fs_a5Xʸ$9-n^Ap:t2;^ `pzżS y֪ Q!Yqkɉ+7YÉ<*iz3:jC| vYz83߄RW SAgFvn[G 7CERp+,R(Ha 7!H̝M<[ 6$ax`<%gt1p|FqDkh..bPK'M9q`/#Z<:tc-">A pڣ#Y5]­xH�RJd 8~"@HH08ڸKM2IB[5 Kp"GNZ7 \ z GA~%/dHSAkD%:/HH$v[IkX L`Ci'0Fr{G!7>Ε 砂݌#CnASWRB4 x6F),i#kFhA;qoZ/ib:zq<Q&BIHĻpO8)1:^D+[93]Mei/{'(u4g 1A-Vpjfmq_$pL2źSAYQ{I}+%�87ь4E/ۇӒhD[ڌPK@z,uЩ 㺖&"$JIP'HFn '}2đb55)#vIN1bg=cI%M6iSͺ:Neӊ̥ٻO7*jS܂#7_Q/ id8kR3i&x'oQ+$o,h}>CnWtWڨp})heU- y4KL@5eQ(GF^Yl+~2wׂk#;:-FE{g:KwZ)"X{HEZY*Dց>!Gz5o\Z<cV8R\HeJl|p0 s2~#]P}gHJgɪiy#. Iy]D?H(.9÷-׸7Dƹ3uO :e+&m# U0U}HEo%U@$TK2E{hDLv}BL%&[]Mwt6k>t>b}e`c%(0PMK#Tu!hy3d3uOu,ʲ֬GʰlQ7ՔDope8zG7>q$37޹ą+:Fʍ|\uc# ~56_ `EN2Cbc|_z8B/ZA< ȧ"HOh2WvYsOA{;s,H~dSI%?�vꏒ!=/G}벪8#RkNpd� هE=Q(s[蟲z=ȏs)Ex<!G~'JT{ G_%b'Qg@«֌sH/59/ֻ֏^0}O"!LXJY'j 'v% NѺ:3׋,6DXTPw gYz0{97-A zE30a.`|#e]OG>�G:ɻ wZ^gfHFѝkGm+4<~ ^�&Q[.hIFFM?`|MG. G/^"̤.ptgCKϐKgh) az<M(Rǝ4jF$ıynwlfxW\w<?Ic<(a䌋sWb0~4<,VJ7t?X4t peh|L_9}GOiR)HIn88فen1H"f�ExX#0cblZ6._aw@Z0ʵ�)~|_ro?q\+k8aT@fHA'v w/=vdCpd'UMu IZTH;^6nF1m ̲ #?Uv{qzϼ}L\2(pws;7BTsbqE?篴FvP �55~é.5?_qmp%9 LRޡu:Sp`1 %H/͏V#04Z2J0ě#sgs?LF6X<�2ƙ!$s=on8:ްÇ~,S0!t0p?={^cCP Dw\8�G)f>QpTIqݷHs͕VGX@T8::eu+Aџ>>Gee:'5 5 GeQYYᨬWᨬw˰٭../>,rr Gu9u9z9eeeeeeeeeeeeeeeeeeeom?y<<b]Zcϧ}0\[?p=nsӑ{?fUGᨃ.>QE>Og3Agy.�$ endstream endobj 223 0 obj << /Length 27 /Filter /FlateDecode >> stream xc`� >Z?�Uc N endstream endobj 226 0 obj << /Length 1454 /Filter /FlateDecode >> stream xڵX[s8~"w!YNCwQl $B}ӹ sw=Ig76lL$7ITumW\Q8"s ؒ k*ahy=b{g(p+T�v':Rgkygax ǰeiSiV~6ұ ~/qjG. z|ڵCy~ӷe{[>r91lCT'т}g9 <.JUzrѽ i#Ucf;jWW(>FԹyt| c sRܵbq1m[uɃ*JS (I(5_Qz'-ǃS~d.y=dzs1S{i.Ag[FarGh>E'Dbc8Љݟ蜟|󋕄hF %L&r489 YgXTuXnY(K�ɜV8Q\9jal?t}[7GJmYVbm5Gzԫ䭄JP"M5֫r]%r ,{Q#oqQ) [۲]Ǹၫ/Q~g>[G@uאI1ZgHyycp�9k$txCb7p`Β:u6͇n6놶S9Y!j=3v/F5[M_adNuE !צmz,؀ao ڠFEx9--8}<nhѡ5 zN�9XMd5�ʼoy9ڨd |e2vĚrxz֧6ϠXagȞr~TiEtw25>bLP!~d*ė$x|ֽ !,Qo'�HT>NBIֳ+fku˩ܜC:ُ&)RV\RᾶckQʕ;h^F:lR ͡i])*Nl`X"Jk2m*SgŸ:酈. LVy{Uȷ2xԅ}*F7-ok`A#mQLk ~"n}u ?68ByQBN(F(NaS@JUkPpM (ľjw}fr⫰�no[)AmD6҂77pTAn7܀w@`xg{Z**@ijtm{F�m=𾏋KWkZ6M|B# t/āHl{ YG=f endstream endobj 231 0 obj << /Length 149 /Filter /FlateDecode >> stream x3135R0P0Bc3csCB.c46K$r9yr+p{�E=}JJS ]  b<]00 @0?`d=0s@f d'n.WO@.�sud endstream endobj 253 0 obj << /Length1 1889 /Length2 14023 /Length3 0 /Length 15198 /Filter /FlateDecode >> stream xڍP ] mpw�!;%<{꽚ZWUCNL(fgLD `b02322ÒX8[#%W::YrBh!1t0HXX�LL܌�fFF9rD ]-L��);[,GT�&..?_lƆ�YCgsGFcCkBP;;s3089S,J@'+G�9CߥÒT-R(ۙ::k cӇ ,)e,-�o?Ylhllgcohaak0dݝi&Z;}ZX}I E`Q9;Z;;;YXQ#a>,jk"lgcuv# _e3Z8�%E#3:99@�؜*?L?j񲷳~0~z9Ύ.@+21L,F@3 [wph3~OfbgkW̠%./BwU ٹtl�&&vV�(Z_v�~?]ʿ >&gu??.(X[Gohca8l._Su_+dgmuΆmpp(X85.UX4k [O >p?Uߔv&l ::z~\bx1} )09�>9q�?D!�? _/d0(X� V�ׇ?``_G &L�!GS  ?v.r01d0X ~`b/AA p?~8?&̺ݿchҿ3}pu' s'?8;՝Q˿G@x8:~<>�ay,:jO͑﫧Ry-;pyBJuKH/ڮ( ѫikTH[b~~;4T|:Wo�O]R9. yhne٥^fT#uec@:@S^#C͞z'9b)b~\Pav!&t:>C%t,URɷ3?/C⫀TJǗ/ӅF֝fhf<%LTL^"nPE:RoJJjB󣇰\;>)p҆m3ӗpF\"dtENsvB9GTi)K{=7'"g ~8wN,g#_]#ڍ5w\o, MWAXB39R7mUԧL4Έg^3; **EHD΅ӧOO |<;nVu)IҶIc6l[;[`Mnew ROp12CUq0VOt uuP"y &}w4'=BhI)H\9eʫ{Nۚ=-Wqџk؁u~t^#qNTtU{eDLKTQ*|Ĺ^۳K+"'K^^ zT G�?IyV~&Y~5\S2!�X3u HNnضkkr\ ɼ[mr0ܝqc Cb΍x' XQgj#�B[_W Ȓ_Lta8~*MP`Y۸m0ێ9nyGϨJLН*(6xbOrCk[Vx`:1[kp1ɂ (66 &a?+'5;zC~83F\Ԟ\AĶGǠNW1"(qgǖш뛍n)JI&;6Mh8`Kl%T˶LN'"$K5.rʤt+:l7a$+JԑTdjDg{cZ�M4ұ7 g4cn$_JtX)E'D$!.-oUN (Ai0t}_?QRq4$;km>8y%F"8[9ᭉLm1I;5z=IۜS2B 숉d(5 -@`ٽ"JG:$(wX?t'WGT*(`i[-I&@ёwgdѻ| ^yj+Wm6~@vٝAp>oغtbSYXSLT ;xf@7ؚFΰO?u5 8?_onqHdGCu}oBqmiY+!|J !ܾ͒ `M/E ~ ~vpv m$UhGxP_dا6XG^~{96슫CH,ɿ Q_sxQjc5ΔD{?T9 �B%4ˀǎgQei٪kؼsZԦ*-D`iԐ]ar\`am�T"'FCYPfwK)ثF,pcwt*j5^0z!ڝ@4khH`^S(f+?0E1a.3Rh;)hu�#z(s0%[KT"QtdR8V RRv-?[dZPYc;yژpG$܃JHh*xu'U ݧ4dY982%rqfVJM]/LGppl >;ڞ=%w5h [NPStBli͏JԥT X!NjR߽utŘt(^?j9}LZn*%6[B~ PЦZ @+{l`{9QAXH OUGh B@j"[;mi�]YvvOkp*[DT]"eMSP}\8Y{Yʦ19*.zwyXaiL�Qbv}Wm`^1-`a+<th@p0Ok|#Ɂ~zoUvU})zh:|L]b4B2xNYq䔔 @a91薓UoaftkF$ ~{ګr8\A߀qz9kvrRx3<0,,LL[C n%^?ק29%z)J umT `˰_2*x(`K.Oݗ|º;<S7o \o]oW (NK[H3ϓb)!#Ho(`OUYH |cR >fB>.+3_OC�bp.Nz$' n0—;Jx$4VQlXaG%,^D]P#U#D}ot;^w}&âg=IsXxi0qBR޷JS6 Y-#מ4ISB A.<<MK$gYGr7ԑ(siK >{`UD�tEqC|Fo ˠs )&bE UB븷HENɖ~ *ϧ]x!!sg}FP % _5!kS.(V]jPs9ǨmW%~,hѠ(/zKqt)}R |o-1 f@q}ǿk}b�7^!Ol ~7fȑ8*!'9n㘆RNgxF}5 8d@:>p~]/pl҃׬]+Xׁ|yNmAAH4c081,:D=0C&~PQ|V MW=/<5E�^1m%򹯐ߖXC& N.\#Zz \e9jeɠ�^Y{,D7#,Y,iFܯM3en̬ȋ& F"TՏPfŹ,G rHI< )ܠG''菽>n( ^0SF)Zт_<=RV/sѦvUmfΡ @R|3w=qxQj_ܭ=^"f yp\^u; 7=hwMȟߋx6Ѻb&ri5=%g&a[vRcRL*W1"E*WNu>πӘs҇7Ľ@ ^/ܟw h~i-E:#u)ɔ|}^$^QLePԛNbf 8]lT%u,kF2KyiV.,A+4%�=>9EsʺD kVڌ!Ia{7  mxuOpc`.ʒ@hogS>Kv}8TNSg%8iRBӏ5_웓kߒteqڍo'onlO*KSe>sfW$P.K2OXޞp0~>]a=8ΠA�TSD/T" \զJe3nHJxZ.T[^'{;h]͌C-сxwH*N蹳~XE]ޟv |4KWkvK>Ŧ<"8nE`  .D:FDb]N JEE"*gJMrA/=PM6/E6#۹fm3#o+%m d묀$TА6TH6Gt'(6!ڈ�9&GVhzrp#XYQ)CjFF�{y߶ۆ˂e}m51rfO,]{ 7T\_Xç{D&l yBcgg< zkriqE'sP#CmBj~[{X{_x[v3jю@P"TFKOQsdA&dn\A]`e E[|%Y4&~(Gݓ< Lǻ7ԡ.%3,z: MS)كڌ!dD�km9h*]3Z鮡1H &i}2 W"e=BLI H97,'9vҥH^nuWAlCa,Uibp=:\ރaճA!OkΦ,@*MX}pk<�qÛaJ W3e1 >(E┆[2m4qTKtID2#puG`Ҹ*Rl̑)r[t^U ?SnXRuѶ%^͛)W@m'|h^j\Y'~�5 S@E -[D$'it^p8o') uT1*0 ݨ%JʭSңܧV7k><,ɫ'')�eU=Ɉ;[wS6/0yWF' j1+ ʗf9U'tG4й񎺢qߣbm`uemS])kDnWdQ#Mv.*yV3 T<V+ߛm| 괘#C# H(*=;ؚPn ~Hn0P)_T2\#Px{_LD^< u., k?ɫ8%P R9 .Uγz0*zGJ4")s@ԫ5Z\}y;s}|]݌!+$ߣ8&ati(^-"XYZC\N[xC!t `%<pu4,8QRR}:uܔ?hv @H G2'K7(iA٭۳ǧ.Fhm_C-ֽu5a!Rg &' J]N-5Xq;x'@&c$-NڄNu$mYm'~x&$aD]Zu0|m>OB\jiaUx])tC8*Y_J5CD$Jok s' 5ai4*r*CXR8.yml58dTNr&[Ǫ?)9ӌDO%P!{MqrT7Xp |wu_oJgHlAKvCwŤ8g^^GnQ#1`LA5FZAP󶽺*$WQaFK3wnqͷ6ᰬeeSrfqs{ie=Cl:\ze$]>]JxE\g翞GBjszϯ*5Xn0˴2˛7"fj,Ke@f!Z8 nƷgHX3A.j|}(ixa<fkrNj2o@?g39 JߊT?8,+N#fzdR ͥ)(Т ƹMw8@XRn>u+} rS륬ܽ$mc?mDP ?P4&q&�'z=h:jQu ]0Ⱦ ¤R莈2�%DOWS.! }!J^c̔c??[;T7y&ȉ%y5j`ql?MR sn%BµyoRE(wV/*=Zny9U1Xd"kyŖzѪRT+wp񥲐ة/wz\*5+quEQg' y`9jKi|ROW GdΙ3V&_Akӄc4ㄉIZW)ypndF<TB%ߘЂt;F-6!(}iHKAI6pDAEHd燚Lm>֥/^<` ̂A^'9EَELFVnߜŖR(%VT/wwHk@H2nrn~vN�^fꮞ=<tg&]Nѫҥh"TU㼬&y hдJr&nޕLͅ憛V~7d) }~!fe8j]UhbeTT #&+]i;kY$0qU:ufʼ\TëDO߶:)Op@=x:)^ۦMJ:tѶ_u Fnd_"0X>x"8(4VJyӝ'AU}~TX7ˍtU@(`VKS* \?o$B!qXmGF>a6&׬dn-4> 16[¥8=ΙݬRQ|!=bPAF_d[Q>pǚ)}[4- + ?׏,,o+hGi|Dp 9b.A*>K3 #2{GGvbrp)ua[]@BCo Mh8eA�gp\3|My/3)X-GT/9oek'~sKu-?֧Di`6"d( gTb(DR6)R\yv6h+ASɺ4Fȯqu3;C@"Y=)&RX;.FF=X!ExFk&Irwy` ڞɪT[雉Ph >Q# .Wz|߻7#a"$Hpjw'c7(wo!ayoʵ+,Rh}=1ZK)Dwˀٯ --_zxW!)ìqˡF1qf n2B-@;AaW`%($naKkL+5\* -x 1#G((#(sMIdIpD"N?۫׎OVKP؊f!_C[!$pc{e{!6L5NE0z V4̮M2s,]K3= u4p]v9q[Of&$ncd %*zfSv%ZD,Ѫ?H9u)r@1>rcx#8O'G%aBpuWL[t cZH* bmmX "cy8}qԙ J-+(P-uxwNF68OUg5(ΓSvR- f?)%ZBд6j:4m˿3l}P Z7-%v[3YmHf Ö,Y0M"7H4=B4V~g.1k%D e\ͲO~镸\r"Cr"^[n/ơhl =D-nVF/Wgx݅Q-: ݛa1U{9@2NUlbtFm%0nd[flH~ uV;Y17~_]$DpHw_ f:uX (ք q\jRҾo<(J\?ġ+C"ħ&)pk UtNׄ-qhK ,NWeb4d=3MLlK٤BV;,-mJ`Ɨ/Wusˠ`'X7"e?87G5NK7?V$&E P$]:Nq ̝֤e_ k~~rv^J;xt1)k%Odi Qdm'^k3Z]?8f ^O\զ ^k7_8Tczp_.v V "-:|j`~hF>+n827NfC@SKlӨ0[00Vawyp;x;XkkfLro9NЅy0Zկ~Ifm'a~.5}B;͹"l(h|zRKuZCX-L$kcLOD|J=Y'0@/ky<\3)ȱ sw�/>'.GT:&9}Z+(jTǀ3}3_п?Iq8N>ry$)o[b$I˞0;9۴1%4e˙{wB>OwBNvpo K凉'JApS(d:.U1N_"irhD|3kU[o|\)0e$(yծReɈ{f| b΍Nf7՟/-kM5`FAե]ɔEY\h�XfzRp-2JZ e{Ɩ!NLsD}$'Hؖ[)I�TI:;θ@. ̆1292h=gˌ$΍'o.3`Թ4]F!4h'6/6nSP;p_ T]SRencKLZp*Va䊶: .¤6|7V(+V1r_5�*).^>iL |P1ZXS>�mRJr_GD~:V{6v'F`S>kZZtSIMJ]ru]W϶E=]N:O Dתq𘔿֤q!_חs<[ADd*]c1B`6i(n;&G>~E FZBn9R{ ^phI[x QЅ]nBX84 6nt1 MScTRgsCҲ1�ڬPOC.qlh՞725v'L'wkI Gu%V񁗷\:|7S/;o\#Bz�-a!͵ˍ3XJ\db El.Fe,%K6YRvs?"8`\eNUʽ@=B"FhT}7{ 61<;Gf[ <sPvA~A+bJ]bVǢ1kZhp/ہ٭?3K;k1lw<\R6|ϔ6Ӥ؅vBlUlL!]<If))2r^bLD"+_aDy[!;F Mys"i6jZEk{ӄy1|[q !+!qUjmeu!Ng'Wg:eT™K<.sn0\gPK * /g<ĪC`K?~Ё禞'ZYѭ}JR;+0!c##I,ϓ0b}<Kk5+CXgK0O,>^}٨_ >ZN?I",|:U˅Ás⡺r p˲m?`궇ɛvH$t{Dm̏]79ĈKc'O*E9 _ !l)w ج&b 3#=DƖ!%rܵ EyX4֌D\~ď$mo 330#+]A>Qq#]f'[b3oHf[=3%N|y++2 jH 82L] C uĹgWvNս09bz,ézմwS"01!f_% <cvp4ms 6:]B<QA Y]S%#ex9I,JūyJ@/']rw5)v!tKIfC||+PU%;Va!,Mf6sDS8L?=㴄\uQ{bBFpq0iޅ3:zԯa/)o AM촫+-˭yuo{>xMY%WO%~oH;wqsd994Qx#q?\(/jK\7f~|[&-<1" y*=gf5� X/j@Sh<voaPDAkeLZ�~$|LhH+y?.u>E7GD|ͦ_HpN! ?KGb55 Ni֮\-*%yEOa^瀋خB^s!3Nx`lW+$6jFPEeyT_v߷_Xσ .2<C7~_?W-@Ӈoj rW�D eGRo3Օq"{G5ۦ-pʄdqؤ8U)t7;%}~HB~1tZ~n6Os! eO `(pN΄PA _+U 0kcAvنw3? &\@0+Z}+RwBiz}E-@y+Zp;qu! (ZhD|_jӡmdOxxE4{NQz ǝ[RP`0$]O*J.j T _P B\KrjP@v_Dohgnת: >A~C"E\>d+ bRzK ^zh,P:^p6oÉ]椞T/OtVFjEqS[YuL3]Qva5h#ihk%̈INZq['OF`0|[ 38'١�bY^JAМ'?,q~mbʝ|U%n;VG! 6qԗ7].>\$Yd]| L& 1 .Sf#j 79\en@,xy</)c&ijD0OdfV>ufzX.سvZ~+h%^VgNʲOn^/ AK tQ uvuXȔ8Z]`eL`d 5?yc*Jsɻ[_?95:Nh譇 Q0Ay&R=wnuΚ *h[`SB%O0pޝDBzIP5.;eNFx6&}]^ T A9cS-緘lTC˹[=h޸ZwV Qr""U*ҭLE:D2a?_ҶY^<gȤ>Rs 8c @/Rl-'_-ӗdP{4Ȋȗ: T4Gzېɚ G�I@\Wwrț鳿rqmbyU7Y(AߣԎ >שD6&5z&m#/"qHqwKlڲeͲg_"O}wά^8{~ 6!h,tY5nk0hnfI%6\oAD>;f=UB.lrkgPA;Nف:؉ T`̧Bd-_ e7[Za3Lq'p<ցG|d;]}x(>|J ^0=,&7%FdX8U]}}6鮉8TSIv+'~'wum;A[ )K z{ܸUՄS z̹?.0*d|N԰ @pKŘvbߠcfiunQ�s-&ehtkjf}w PyϸFO 5J, =v|N`U0(. ]7n~ϓWe㾀c@;(e6aѨc,{aY/Xq|pw(0 *%q b8Ko7p R<-*UmiG\R+F=wPv gc豴c2}J76E#;/$f7p7C\G7WuOQ#XKH(AT ~ĎR#%ycRr |e@.m,S#ʌy FࠈiyF"ՇʁEb_jٖatWKEY+o=~{co!;T/8HR"QW0¸u<_Ũ>U1* W(ψJ9(Hx&=>z7M.%=.P@/И)Sp#Zttv<V萾Bx^͍S,<\j5CV1cin~vAԨ) yN9&xXK:D!mT5ҺSu E~R0ca`| JGyz �GUę7y^+Qӹ vŖ=%9mQmShАn,Ӓݱ:2>˻J_x8'4)uF T߃9䩂1yMiVGw̠蹵wJ7dᙎ;#M ;{pԪr(x܍:Q0 Qƙ ۥg׾56RwQ%5Dq3 %q_{P}c3i-e 6GR@rF ��kۖg%U`W2`m_@{D7;Fυuun 0QYl:Ͼ E@EH(GP̿a3S`}-sN |7Ncqٲ2)&frВs(.p$B.kҠAb]/^\V/V֢EPz)>=9?,2eU D"M\sO9SG`IQX6M6!z^ k; eٙw{HAB&jiu<|/mUI#gb=<>~46(l!򈟞8KbaSikqb$ϟ`%2@Ū_nDkm9#Z[-'^̦5Ae쑯.Kz軄sm O9^U$2h]:{lp¾W5e6ӝ2L.Q_8\ nqR4oqo1fX ,?%Y.=s<N{V}b� endstream endobj 255 0 obj << /Length1 2159 /Length2 15019 /Length3 0 /Length 16313 /Filter /FlateDecode >> stream xڍP\ 4484-\ $=ιszǔ1e͹Pd�dn,�)I=N�;;+;;' =?r$ QR. ۛLfv(8�|�Nvv]@ +@rE;yXY_�9C@owPY"`sP [9 yzz\Y.V �O7k�U2@�wiH4�-k)4n@M`ocrt}sqw��ޢ4jN +ˀ�8X9Ko￈lv6V�K{@MVˍ�th ~z�mfoJ�*w}.6Nn6[e- G7Wqݛ߇ktq w'6mGgwmDHdV 7�;;;�� �y[@ /[ ~N`'[ ?K+psqS`ac0Y8"a, `6~�>g6a`G{?1ӿKRRepp�88�|<�Q;? `}R {A�˥ ~\Ϡ󰛿}q]M_,3u[O/=o*]p$܀o he6ڸx,m̭5.kh6 u_W ޶p}ɿUߐ2`�tqz#'m-@^O1x+` vADyy�lxlMIA�6">N�6Ƣ7N?SiAoy ! 4m\%a%arCױYr�@o,ֽA?<.3|o'v~Xl|8?㭔P]El?lVP%GpYr[Eԝ޺G8JGoui̛~cvsYɷt<pxk?[#<ߊ1y#?[>Y6swB6?2GZY 6vI{M3t?2fwHXߕ_%=jkhO~4QcfiyohD )" g:Avm=4hwr^k{ky*fYbcJi r(XHμo^c} 8|68]{ Hgh}%|JãK,IMv)zV+Ʀ~IU΄ǛۡiMW:aZ'z>%DlD3"k=Y5\aa2aР,]Skx2Ya/ ojJ!JKDTkd Ú"OIP ֫($qy xwׯG!b&(P[KZ{L[A>G1(*N:ÔI3,*`ph_m9-5VTpi|#OZI3 ӿM<?TNO9r*tz#Yǧ/{YxjIӵUF)EC] TqsPvBDX63kx־"=5Q':c*UL3ktOʅ;/!vaoW;Rӻl{l s{wR:UwEewɕ>hR?/䰽H?X&}'ȸov=C| B-w-nO{Wy| 6]QZlcy”*`d pѯJ\5/ēD-/SYz]}m0Fm50"u`O V0rWwHwrOnDl6ꏰ1qU݋ -Jnu<Se}[g2~ȐoCFe؅0+=ONgӔ1�> c#Pa7D"8fn﻽[%8+):,i}5JiN͵( [[ oՎ9p(HY|ܟC`c~ 33Us rՍ "[žwH8"$|f5QF<+(5̠ȳ1]̰}zT~ǥF9RG瑇 |%e[jd?T.c!p'w N` 0 QEkL*G Ek16`XpLC#>qu&8dOp@ԧ_ TQ7t8Lr�I_d}m'NL(5գNWK *=Y.㮀?Cѓʂ!Sa<oWCОFTb:?N,O"J4wڪ4l;,8l}]ayB-`E3Ե[n ^KН.~HeB ۙi{uV)5@q֖eza5;ĀTrII?'0^ÀZ:_j3[];ڬ'@F/46Ut P&;lGM' bGPTv9:dyAx`5gQݝDboYbѓzXtsU H\QS& tE+eٌt(":"-!:~@Kpi7$MN9pEZ2o{5w_C (td4INHKߎ;n!HN^zϰ ph+n.,Y5!Ua1ꃫҧcK!jdMσTƤF6g6ߜJ�ˮތh~76r:/ >MUi8gP1+uNL~2PD| V9/EBq-m:sW~XMɗ= G "| d$$\+Jԩ8E�f̴ ׯ9[sZ-lj!4AOF*Mgb;r\,JMxx"RvW<p p~h4;eT=2Q,_>m"b-{O "\VqSeXӕ�~d9لՓ_?TP9R(Ţ)}1C+37{ :aW^VTDߨ Ы7i'Բ4^\b.Q4*ۼcDOP6fYR{zݙp,p7l)7WvHƻR3$z ۏӍTVelGS9lyi);V*\1Ƙ7NP䯣Hr3 6ςL`p|txP�$0r ⡋3h2U s[Zj)qQO�O*'ӱ@"MbVDrkAe;RB/dnu{i%J*#noz G| rYCX}6=F2d:bdyR4o?S*|T-<z>sRL{N崃t8kڜC]a#a><,m^z3њzM&/mCÖ̔l\EB7i|l|}"c` -4Eq}W^ ֽ8uyZ( gǮ{n_U^m{PiduB_W?x| {)u$roE Ȫֿ5tR}5 w3ս0-`GLzniZ7\U܄I,,Pz=E*\\VCYŅhLmq΂!1%SDd7(f1.]/s^*W e]gQbhVr=T�y[rfۻ 7." b l%DqY`lIm_G+|5<- b %.-&~Qs]HZq 3<sC&,]C|g7ճE+Ti8YFРȻ9cU$ ggu߰]\AW>J\NeǕ"fgzQq,bX.4ɀPn(K-vtYϵ dn:}m$iKS`l—T3$Zo&sc2svoBe0K�mZr˙W%|\GBh~4f)~Y6#J3Zí{ueš, z2mvl9$ey@֟ό4]r>YaoF-pIۍX5sq~.tk&Al; ,k:anw5}Gc w33u-#5 *)SNMǵ.)rOo$/XCy0[^b,)yuʤ$;{Souril56 QK箓Ur° <1,FANJ4+r<HH7n4yc 9UN+6 (E|C:-=y6V0 m̷|*SH}wm_\<ԯPE.:vMo;JƔ!{WW$]MhZ:֋0t㿼9o&#R$GeɄ97)ۚ([LqۃFMٗ𨅖Qۋe>YʾF т>$&)I͐ C$d ZJpx;_7=vL^)B`"xEUg 4;pVbܼ|A7xG/ͪW};jܤe]8+f{b! d//iO}/=2D)&:"1m#:82UqT@q@.Ӑ#ՆnGϼS /+zQˆ$6,IQ1*uz@$zc+>Ilͬp\)(|۱1d"@�?|]T+W&G 9oFXgURwL͔ȂȐ gՕ5ڞj2KgG"_g )üq 0w3 |}c^m ӵ 6Mi,P;vt+}/ o 0+�AmE[w{a%gq}nYUauqu;\⧱ELj0[BQ ThiIN+FJ7Qq#߅HˍlP;cX|ˣPAIsJCΑݬJaCr,Z=}{ȠsS Yn8cTh.6Lź0,\c+\{_,M,bDRd,^/�G*73/ mCr߻}+F4쥿N_ KȦmR`ewPUayv0ɗ g?㘩⹧'a箠lӓN͂%ny;sPbLZ3~L 0/[.$_zȹKI1wkPp3޴@n@\da rse.8E椤A5.r bH[z#o²Zּ$g*]$\F5v۲TrE $ȑd*ӈf6=?쓰}.Varlg8pYhPpc|ƓƎ* ;8I课Y21v"�ȟ$e_>"/fZ*y94VN4XtF>UU SZ3~Ȳ4ǭ_Z f=gm �Wz\ڑ|h1at M?_=l#燐[0ĘFl*3GiKۡ(Q(wvL/EGѴ㗏Ԉ,@&513^#`S0Z3/&<GsvM#$%imʙΪw0L ;-GwՏ+Z)Īr"L.`Rx}+RW ֩}ҝ"ǮYd%1wo*;s|i{4CӒHm>w/M͞TchƇ*BY_xvLTg,ڮIJy)hȔ63wȔu>~Еi7āU+n7s₇M:)xE M+/�96(*4< x esH3DIfG +ZeɄvy:wI3@aKY?;b棱YP6OUNO|qOmG\yLjeW1KW GY8i<0 fA*&Ia_?aG=w(%#k`SZ4=S/Mt$*{45Ƶm,,ƪa#8- NV_iN g/2Ӧˑt 򿽷5=wFZu y;3N(A5jP4nʫztqp9^>MJe[&AR5cF\@e{uT@iV.g%uVQQt/NP_cwSp CR N\"\GNOGն`_[=#/u=T6&Y-13 R/]Yا?$8 ). lC S Wnv8j`KK"DePdf8Z v�JqݥGo>OS^+Ujx2V8pOp1[nIPaHٸ=?]:0yc fF@fQL-9n<ftm0ܽɷ .ȕ>Ǐ.J9 :2SĺgL  eZQdUT?cjS>w m3y5$枚,m7e�i =JHHy~s<.x5y&DN|ѹ=3 O;y]CBz26Pͩ~Xv}K]<- 1a5;0+vx~a(NCT3XouvX2,IM6koᩜ<m U!h‘MC̚cGNL#ڛ Pj) B}51wrrdWn\aմ  Oaj!%v9moEMn+?*6vxr`b\m4S+7l/$~ E)F-܂jx )zsr0{ Dm[J@'18ᓃ诂ppT#ez>o=UL3r~\+Z2Ȝ>? P*+c#M9OMc}RG;?׭2ҊɐuZD{L1B<֕_\;)O_~ V ݨ~N{˜ol=mZ/C~ αVgl͏,F?/ T%3ؽEYtH:8;Ωp4~uOK ! kmjFL{%n rHCaN1Fn) x[NGXs^`(drQx&ƓBM%jv搵f9α_{I(3B1 dut#f6upqy ~ T{&׳f  |q4V^R-P>m6fвtPv^"~ȗ'ҀB/NcC`J1AdRuwhZ17e4X_hN&6^y;\;yfjKAUI+/LLii׿#Z_wݡ\^]6[e%�nYhTaU2r\s,e0x8`r*yE2Z.9mrx$mX`iI9kv G8V<eم3\΋ʼFn4w<>y rSV8Mϔ^#ȨWG(/~ ٕVpT`Vx Ŵ#PvGaYmb/_eI@(M:yh!|'~ȵ:!;_]w2P[8X1hhZF{b~, S^n/f�0!+NjXcSu0$hhEkԕm*N׃|pЦ LGՇfm<T҂@SF>"8Fiy!t%$HTԴe�x6g^[JHH {28XF%,?p6^Uh@ZW k)Is.�O7$;˞Zt< iQ}#E)޼GjN˙>bS߮?A߉Xqu-Sg13K؍]T 3lW}jS փ%Q߱Upy&5.쏸!չ-eE,Q¾(|&7/}w0TC</D521Ś. \虰̟-(jKܧ\ߪwN#$72*,.̡~>x(ڜ=+|)Y36W:N\817#%·S]D|}ʕ=JA1*oSWCueM"E&E7 riQڲ"(2. +'97+;dl6]ɽ}$ld}!o*R+xd=&mU>?�i%00-# >TuYkPed9I&[Gu|<oyr ؖzԳYCF*�}�pEDᯄW MVග*+' SMBtOq Oq2kSaKZd Em+CuYxU&~@ u45B4ѯ22kD}A^q yDk|ܫM@(Bvwm4.Z3;vʷ�dOföhȖb*Yy R;]P'Ꜫmä~sJ*bOHp#)QDDr1|o d-'|NAJ{N+_N28)5=r@pOz:^ Ӄ" ?ѳvΥ沷_^IUq}ZYS1$&kX({1<�ѕ+aNhs |WB^0日Fmi; KZ/GϢj/p\15XfqǵYi x~O*Un.5~"aENI2V,Vkǫa@F,-tiqޒd xjn#lLի`i~Adu2ڜOwH &]q.ᩈdea,%6+xˤ'miS{(߂x6;< 4:SGu@ B86+҃VvtN1�+ ADa mڴ�Z(n6)=GZ2_?@D|*τgtKu+(\7o%jpw8Kz:ɤ`cr%edWaT4ؕ|H/{Jz̖s٨HJ.Kz`iꑥGQšA3mpˏЛOaf~s?ά\䆓R\E/ F#}mMFޏNESd$X WI,)~,z%Gxj۠=)[abIUXRcIQqf_:ʡ5Se&6j lXdžѰ_(ؕ(Iڵ,%cHڰ6A T%afk%h1#a՝z/o(O6ݗY¹`g")GKU3''Rk{ ׄ^)'E,`]Gc;Z%F*"R'šEzsǥ*$uJ.1bgKF}N@+)EC-GXdmv# zoFMaJȕ\0yOh`,%%]AuWF܊o$>+8*ᦤopʑ`c)jI`rvtCqktp*Y{p4y?հZn<_ä.[ZA.(nJ?W.n{!Ba%@jK-"/eRMN)665AԈ \|놿5Bv27j4~cAmclrRc85E?dI<?,L՗@ܡ*5,MgO٢|Q8:jt{rHV텺z\}ߕww >t*˼ånԣTWk,ON!͠zܶRP2T1."mxyiDDϸ�p'5";W/EhH~tIx\714-/7Bdk4)r48 H|u}C 8G8WEPN1I ׏T"؊#4g4d qDRy%t+07qw?1RaKդ#gL){;5iX+5zP]FpGVH, 4zDzL:n3+"/P?g/u꾧/p{R!O1W+Pʋ[^֜aª*n',ck22LBȉ슅gr"PFK;T TB8�.1˨ჱt6 `kWb1юZ_a%qB @z&-ؿ+^1x ?{G[k`F+ z<CrNA֪{ʳ5}!|=xqA=CpPO.Ɏz^o*,4O59�~,+-r 4uP9HQDd}yr~Aou¥%T䁺~!l3rjK1Ž^ &�<B@;=Z ˃kZxdgYh.ZnU2UrOD/N1*mW4BO^jo=s1񔢯]~H]lP<aujN!?Nf?b`6ktµ[(5[ElROa*a5MC+m=hiEf!l؝PeId/^ Zsڤ[_+ N\@r7E{9%QA?7x<H}@̴DB OݻX]Z|ufA5'.1.=^:? @BAy <dyv}"M :%%)Mw$�Df$XiC&ڿ{MY @;u$eNnSC*`'#Y^2LVQTDTr91&r*/PR'c ߶. }) ԭby.m.7 Um/j3 ,$ЉC1X;3nWےA$q'5 L_XO0?ZQ/z(st>7#Y3 =7AD/AqLrI#-T@d/R#Nn:p\!%e :=9jBQa쒢q%q@+; m}/̽#-"z�ouN 1Z~q]?9=XdiL �HH#?`F!0)D#ڨI5wGݾfD$w:O9.h6܆IV2оTh=*L:7(}q2#,8fq:z:?I2wZ:S$9={YZ.`n^h (īiв/ )ɯiM&Ac%^)6C>Gm6]6&yL$kg>OMd%a4l s7tՁB Ԟ7 0]fg+bU2d#2h~IJ؛?wbo_1|0&,cOjAy+(VJ>sĞ[̧%e@#>WWN☾QV$>5,ԃʀEċ9{ ҶfK%flsd_NCa-ԥ:ze߁Dt- y@ypl')W2')#xC}'M ]6k ÷g#[""bb+$s:_J롞`-k?zmpq!iN9׶/}[.ț5W6]LY1ޒ.0Yff4z]�HWHay"ha'Et[ip>!_Lc#Z6b)WWFA'k+:1qo{0Cibs~hw>NwG+C ;fqno! .B86�ŎY}O{AᄪoP'u_4ߴx=_Cc D-~8oky6Tj[ ZdXjAIV$æUAs?l` g\ߏJ)G7=˕y'Um^bBFN3hZ}bv_*WZ9M:ꈤ׼51¤Z<v&hX1X(&؄'xsɴnK-{"5qK#鿴.¢zi^CxHLse(;ɏfG+(E#tt*zk\*/ EPIuN<Ư+'f I{5J:Ē}^g9|fMB] tEY^+(�#Ie;Ozͽ)Aݙ6</:L5NSPKпqw,I ]5v]Qy|)yE͊2x9B?_Ӌ#Cǘr~wTW2yf-\>gƧ=_>&W\,3' C"ǿӧ\'ah:{ZSwEO{*v>sHOGu$BFIy+rPk;5JrI0#M蕷s*<f1ctaEZԺk+70-+-{7&eY_x =x�<vlwo^rxN׵ y'&;0ȌGXkz>;\r>br'N#"# Ĉuw1!=MІ8{+5cm\WE]Eʻtn9er=e_l7{ Aճ *aóO6H~;|�|ryWAw24=@X=E:�yO'nXSQ^pPS6K2컥ۦpy"Y'EH}%E([U'z6-xkZ9$5m3W{Q)l'Hܖnτ)8,mD疴l3MDVWLv]8k*6өHX#H韘0ѥ vă@~Ẅ́&g U2`# \--w21i0j4marN!!),Col݀/ǖ (,ҮV}\nغ/^0b߇'2ob`G),Ƕ-P/<k&V(9"Y qgm h@ %_q Z_$[⸢ QH^I5vnZ[ K2 cQϞi|'s8WA,L?Lv~˫P ]1}T4kѨ|KcNp*j}boCi͹JB+k6!%PT4 O�]Iuqfo k=:X|(0ft*u׏Gq^d|])pj]ǂub;f?VPut yTWųeCm5dݬbtiC/3</ʦk-!çzQ[ 7_?IUJ}JGfN!Zs! ٙAc+;PT:N+tHumqzl;UsD?u%V{t^m5%&P "hl K ˔_3[=GV)>FA-K_|.9`lբWUmc~Wq3{4jqhL7ϙA;{5N+?1}Q Q~qc+FtOHOơE|F]K٤B=e tӳ*RJK.SI眖+McB+rGkկFd3eڂ\5{+_XfŗE odykXTʄa1W#XP$yt) 2¹J yGC'bo>:9pNh�z@r3xf C39lm$vSkH"7\A o/늂 t)Q8CDk[dapsQ Cah?2\ }![zG~Q̘&K#0(}-V` PaVPR U ؽɷ|?X#0x ڨl1AIӋrfQC+`~yQ{{_#*\\3^bxS&IIbA U=ҽr|eKzjh?py #YB뼩y)`C2LT |cVaD#-u$mLS o 4!KOxpS_1Sׄ;T}2Nǵ볐ĄHy;dщ-4O)%>Ž)J pE8@P?cOa#Zɸ2|CS:qQ ff4/kVO^Q}ifPUZcHN-xǐmHE _Sl p`;OKrDO?ߩ^+:~_g,Jђ}F~U¦<yVc9<'\唙Ͼ -ghPl3bsoL +b\EC$HQ~/8Β_yWy1,xp~<} $.0h#Z^cЌOد3v?lh2H9hy P{J\Zed]%cc-&{+1ݒTaex;,"g6܃.%U<]Y`ʣcݾG/{ endstream endobj 257 0 obj << /Length1 1484 /Length2 7619 /Length3 0 /Length 8617 /Filter /FlateDecode >> stream xڍT6t*1t�Rҩt# 330t Hw ҂4Hw7Rԇ995k<]a-!p+7@NM@� �̺PWflf} =�9`>ĩa�e7��O3 +xC�52qf;y!6fq V @ j q|X �Ё[A!^UM/хdx@]m& P9Bbƃ еeׁ[zj<daq*@ +X�.{w$N f:@�<\� ; ˇ?�2Z�X!N.<.PyyeX`OX=l_'k{|P7  Q; BB�3�ie䏓 `@<`!�W?�`+baS ?> 0>h�郼p?ΗW]FSCM/=>܂�n~A _@ e4Aп�Daձ`{8]KZ�V_|RUo"߆?n#Ѻ> a `Sr= ߛuQzBPW+ۿ]9@aM 0XV˃ sK*/(�! /#~@�IC<H>�),UmE�Vpfe/? |2/?S�/?Cq�^ C_b=7  n`z3hq#ĹLJ 3y[ϟ0}oǶgGI{Fejiu:ڣ|~Ԧ̜&X3ңgMw`ַ !qhIo]i09x><; SN#Pc{5QߥˆppGv'UlƧ0ɩ^GM'[UF I*ǜa3,߃q wdtd8Vb9xެy>1wht`iqڄ"[wzѴcgB> F5P[5Drh%0Ve%*%ڀQ%5VyN;=57)WD|q=C�CR^hZi ]* i qWg07PEVAۭ#2a>zyٖ6Jo \gِI!xn(قSϳO2iT|TVW2gNV2pK[trtM^cr;Ӭ�\(^R04 "դXY#FNRBh&0G[EF/L kD~R<*8jrwi5/%*N!bh8_EӨE7B!_<ҍε8"$`{Xh -"u+v.MpPXQ *C[Vb6܊kH7({,І+~ B,*=fۜՁ<8곜i, țA)ha`r! T< Kom_ ܉?̨;(9=:/p^}Cm!n)_,_ [jRpiUlhZێpkR% 68Ynє?mr}eQIUF}mw!]=W[r$) mBVS(0Lī�g/ gb"Fx?PvtQ,'8W_9"gܤ?Oec6Uؿp:\uI+6'do/`x cG+񋋥Gⱻ e][kgנVnQ)0:d6 )l}4d(Ji'O͛gY#Fsv+qU1;#M3$+rW`H#Y"/5uC0]_L.!x~ޤE9ȣu{d!.̅:I/Q }~AYIf*yI]Lu!?.fk<)TS˔YpZ9_cI|i-O</FG }հL ($ȳM%45j<$bpd c 4dSxFk2rcssɴ8hq{3Wfj3$!'=DRfn`\ėЬzL]cPVԵM]@SP 3$ [U%N!FFc j2Q([cZ辝l(i*$vܙ ,~;:VӰ/~r]^ve�&ҹ+ׄG.mݭq:YB J0\Nnnx:OvzuV6J>'iXhYs>M (޹s?Y1mKBGƊۯSxkSر"튥- 컾ѓi)濞ZT 1+=/lJ>Ev ŏ: 77IY+MNay+SLczLULPi}O0Qʈ<˦M/3.hnOPy)懝v}?*�*Q(jFGTSEE9=%iUW&Ǐ':bi#21ag~):Z"NF?]}ɹK7fl^86DqHW8w8ZK%9�C7<Eh|,[։t\>lp}vOe/2+O:[z@LEur|'}t}Z]zblGxPCBhpgxǖ1#L-17Kkڇ'"\tYvy0F}Y+пd/qoT;DN'L!VD<rt0eIz'.AuL['nz;`oɔ~1?&@<3-*X& Yrz,Ǯ=NMbʫN΋mgD7/ [7io覹,R+ݪeQKy 7SC DXϐA*j 0ֹjy.3`&+$DP'A)UT&[ݖM+HHt4R{t!SwHj2eZs_Lbu/l j SDx'.#駿Qsk%{mvD]+|So2؄ |k%aSΞO?oD)GKg'5}:%nZuk$q楫 bv�G,R2/osAqEQps+"nP�%`>0دjf˪iZZb? z6geh Lӝ|R_hpap1rNuU꺹a(}qni\ $ \z ߯fnޑG4(^_D+"Zh0i9%Րc834ץWE )To>>W| JW|Vg4Fhvsw~l'Pz<ί5/0'H[Cc,;ϸϡ'S׮BՐf8g{6J`Ib:44 K>$c0GPVSZZ 4" JMu1|j-}:llͩ aܺ4s\=Cz!D>|d�T6s_,?sr)pc>Z2 C/ cq[>0g-+9Y]R,<Ch� |m B>t/>߬ J2F~o#;5?B -9isfuGB}"Sl].ӧ&:1TÏ_宬|,tC`GBx뼒ws�JC嗇YNFZ%߾Rl"*;#~PR@eZumU0eeiphN\FLZ7*Nvg~t:G XW_wq oؐ”6WcneOO?ьz70em6#K).)=T/gh-M2tS,'3i^.LD:j<x*ͼ&{=yDxrp74R E O_]݄'A&F+9=6!E%j*金7m֢4v|9�#mXOQE&KkLO.M%7])(rP`l*Qmn& -D`8Fjxzo SߡsOz4=|i Y1&Bb_+00½QSW6k^wwrgpd " Fb ~ix8 "2̨DP'cNK1đ:ؗP&VT f\aF'tXoBI}\qŊiQ2cr:;q揰5ִGw!\ szJG|fe7Nj_N+* bZQ$Zn-i%L1Mdz90).rwQ*LO`zm̖A2fY,Rio;"y1Qqg (H}"aH~A[uv'ξHY KK:Dzox!T{_.5wgu1%{\8m6K7 i؀Ĩs,lI]7W9} !D lr{$]'Y<[aީRQfh"L/)!oux|ER5!xHH~ SNv4wQlp)N]z2BnkΔi~`ⶇ|xy> @*hk9BB79^i*C%�8ߊ V�4V`*/آKIQwGZs$$eK^j|O5?;WF]+gSK;-`+TP�;=u/vʤ(u=eOli3rFh�xyES=7 8%Zc8Г92-ѝ*,6k&lCګ*|MnA~;AF jJ[Kb i4bJM<ľh`;sGY(fƞ_iң)$*ؙJɬF36\ȝztUK LwqMrW4AqHlޙ/39\\PJBVsExf?gdgp98"FI)7O;0{Dj&% ݇ȾWf$mF<w�/^l^Hg%e?8;9ӪHpW6Q#a [;=]nQ@xN㔶밶 q[L^)@E &z:2-ȧf-x|11 S\}pf;Ir d;)urlzI% ]14$b~Vz7H5[(eVA+}d?Kc62n�Bػyc+]8v@G-N[boo(" u G( |.2xĕ;(*ɴ o8aũ9*�̧#.LotbFRS2*z]m3ZjԠ@k$reAppmN&'ƜvVr^7׃( MTޓQMrm4Qa|nE Q|JoM$&%<gZ$#HȥUmd#ЕnJ( TTd)RBF˓<ZGʾ xܯm DBURPъ7ujM[֟v$_uzGoɪc3ծoDZ$ŷ1[]Ml0I/AkÓ_ 3俠!9?}l<t"|ne|6s-5/Q33QS XȷE.h4wIgw>⃺ƻce>z/wWmJ #x=#MzE\rz aB@)r-^\sAށx pO7)!0zmwh>~N:=o>##dӺ"xt(kOdX*?MWg<N|t $D{vחXP_b(tҬ xsl7.| o2]!a>^D51NJrԅy>2GV6BNY_;-ևv=f^6DduNTڛIZhZ6lq[G^{W5 ) fχT[3FH fцg΂ZKh6n\RFvI1Ѩئt=m`Q4(<zanUr)O;~ۼjV*Z"{&N,2ʯBpYhxF?y;w1ů5y?Ganʛ'K*dP&5->iu)Bd|xLʠ.#DD <Dg-Q$>(\®5޾"tWn!yGJ_5;oN]/u"d~2j#}lra*fy4iRBqҺ5ҕ[Ojo[ۢR2mُ_rɲFnEX>!$q?~G1*b`my} FO_: ؀zi~ljr`$AryM#aI.ˆ_\yAn@orRC9afHLܚ#YE h:Gum^p,k"D[}\�dxoW^x4w1]J|A%Gj^ƈRrIv3 \K[l5 [tb�,eEe5@1tzHryma= huD;)$%p#oPxz׫'Ɠ %fKT*>wxC66xÔǹ"!%k\`Ϊ-# 0\ǢPjpIG/gxe:[<8xQfkI0W?x铨2qaăHD!%?g•z+|T/Puxa.aVQn,nba6xK|74b߫ .Vʁ:eqUuN:8`ygEeWBѤ,y (c @9jʯ/5|gZ/%v_#qNuYK4ؖ9|恈_ +9jݧ❌-L{*L(9vk*"Z't[U xӘ,ЉfLHڜUjqɃկn43{X[}3o+vG3娕-91jr]/=w=\(ԭ8t"-FΑkM/ӧ~OH`UWefiq@a} hMȽ/-Z=3a }tw_߅>sb W N4w݋q2g/MM$=eb?ŵ*n7-NЭV˻Lf\p؁{0hЈ\nR9#Um<^P?BrL^ Ť}_EH?Buڄ}r\hfs\1! C,9_Cz:úK=x0z)JKg'M sh mpxoxNL=4Ls!VhFA5ţ럼4< u01X)al\ISA뻌- endstream endobj 259 0 obj << /Length1 1448 /Length2 6897 /Length3 0 /Length 7874 /Filter /FlateDecode >> stream xڍw4]6тDFeFE] 3 w;E'z zD I>}^ksvgƬ#AZAW>^8@ASH � @ll0W8/1(D vEh;M$ �DA �?$/C$JvA��5$BtBl\k pv9BQ0k0 v:wzHk!8$\]ā@^ /e+ t.P;U0@ S/@Gq���"\n@oS�<v"k1�/߿+ lmtt#`[ <Vut_` v`+�e9�]_X`N..0 ( W_)PPkt۽N@l`ͯ" nN@ ZD @""�3�im^ [K A@/;r⟈�Y0b>|` Bs�{e{m|J54To<#$ Ą�"?haWaݦe8N?ci!Ѭ8&Hd?Sῢo$jG v2@=�H ghpT]1CD2 цZPm ץK,k&o=7R a0~!a�{�>|I@=S�E ].�tq~�$y rD�V#1�߈O�DDq( � Bo6K}7@PkDgrt<_F&پr̡.^rVe<[BȽ|Mq,vs^xKN_Z fǨ?l1nt}Ռ١Ɩ&JG~ѫYW:?6EgJXt' ,x-*s>+dS'dn^p ,??^,we5a:&gFѧ(N-,ȆbQ,X1'Y{oOJuV}eӐԊO{OӾ;xOH"PռƁD{V L_nM,<imE%a{:a.S3g3$x k?tZH1?~Ü-Y*\dOi F�Eg*K#! ۆds"vO\ɖ.V:쨯%cr:}=.VËQc - c`dJKHV’zv$dB.vX{Txӄ^3qE18/|V͈f?`Nx^c}.ya  ©|o_cOu^&ɝ}oÄvEt }ayQE3tYҹ;ZћI 9-_@ EO5, ʊ|p#Nv?R{8> Z0U}>Gډ*J{WEP"rt8Ho5:!ֹ{DC%ڗ3Fzu9$3 goM:iEMΚvkM8@uРV45rS@k|U/S*:;# zr=/Ea,a&QP[ Q-z{'?_짷OvRe20){`ȶVRqU,G&?|ׅ2;΅(UG$'Ho ۷4I<P;pt 0|,K`@  9|2k1[<v֗bNR=$(ꞄhE!~1ʲ�aQ|\*TY{FCXz7<$D/h<*==宰q.3cZaL2탳*UJXn|*dxUKܘȄ{+ (CXil+=;eh1-«f9y:];,b+u<؜8"PIRjچqb"xǷO:>y_SJi}WRE"}&:g{ѠQ(m߁Ҿl-~ҙ [#CqEǹ5,ɉ&簃#qA"iۤP5H"Ԓq*H{ lJ|,@H;QrѨ:pe=` ʐO鑔Ҹr[]`#F-vR-uNj%cOlZFYIore utl7aE݅܊4(rT'*OyF\MǍh{bUt*'SP$Ҫ âF sC-KEDQld>ߚq Ȕd=QӥoqQL^ E8uEpoઽYZD [F5:%3N LwB>lN/^5Y@>?(-+u ˜!ieaQ>(nadb&n~X\!Y66O,%Wχ^drz <_86X?ר뙨aB"?]-;}LD;Z41s93EZ2&(|M=MwkpBBum .ّc)F=U|!xsy2;oBr/Ec2R(]x0 ET#h"J, Fլ=wM`\'Ds�AƮ8� ^:r!J,<`b_ta Ӧ!S'Bn% ^3Z: 1kyrvIOVKtᶘC'ƷbӨ)5moalW'͎g[%I^ߍ"XYS];*lӁlMc{ yZte>>KRzJ%6Ke!1׋5C@noG%d cM)ڪzOxGmG^KS9E׸ne1#(>)M1aFclkqtGj>S?ۜc9}dJw8Čթslc8m2G,=ih<,k‰PMB5QFC=y qn=X lM&=am;pbō'Rzǥc8`p+e"a/SV}7Y'AlOgQf3}WN,gӥډOwlݡ{^w΄3w 5,#ɡ|docjT@ jwֶٌ_-{ЈQ {E͇@/,?^lUm�e7-ݳ.i<.R_R)*y3sK#&<4<lBeO!,dHG&.EL!ށ:wؐ59q;J?a;QAogIjE"x�Rp̎/Isf-nm@ W_uMn0>Cԩh=(ҌQ~w|n)6+ZeqgGvKN֫oK_}V=US;3ͯO9V x.Q< L\?!BuwJu9x"/8ڷҥG6 awpاzuq75x#>ty܍Է鬀1ZT.s{ƏuDd"9>8$NŨb4.f[c$f^|>ը>om햴C #.FJLod<uz1N+IZ@zb7yQ~iݗ 7et"7_[5 .Ⱥ]p7̶{T\F D2z,3`h\I12+X i>)p53áB xM9EqD'WO+*HɅ&U5aoW7UvX}I@YߊOVdG=U͵T1џ>58'՗mA_1j'+*%HTnGWcQitdx3g<|[za4Ve. &-ci%z[K0dqu7P(?_QQىq;-c!6ƥk%vt|PK-3~*oLHYvȏ.:e _^{NM' tDj|X.o庥p>6TMJ>=`h3]Bd 3l. _32<8,Nܽ"w1O%?],Ȼ%w8o�IXaBzI$pdjMwOɛJ %}{Yz4(M0(&=Ϫ>:GXu'dzYeD]I~�5qxF<g1q%0 4gO�y<zkE6r`<VuK5„Ti!זi\3Yu12b^6Ȱe;OCsGn N˷L`c}I%ZLf�4LTnZvoHEh%М۴.dcQJ%+1=>P,LS;k)<,E M4~QbC5YHHM+4Ť@{ޗy(E͍> ǯ SviQneU!EzCBS7. 8q$.H'l#[UV.(;tDpn,U*휟GI$JZ#>0kSCD9-{<Q$ Ů/ʤ %!jo9h߬ZSrv}W]:Lm쓣z9%C{$u76"F Vx K[rJ .rZU1 "Gf wH HO]'R ׯ${Y_ֳoꝄ崿 G ]w+E=8cxK&֨im $G;ߢz{7>FG-g3o&z:GG dֺP?91p!eK|73x8TwٻSghtmF ri uVK'psw`p475U^/KuG1{D*cw-Bɤȳ_J#e}ɽ+9v6b3' &'OHEשUS=Qm~0 .qܺlk7"Q +$<0{22CM|fzԪ,KdT.BZa61ŶkŋȻvϘԩ*B*}sFWlJbZ01)'stil bxLQe 2⬰8LTEZ4If]Lx= '^1D,/>q*׈=ۇ> L1((|^<8uyZŴp+~Żi|':t"sl\>ZCX994 K9#H{q|[L9(<Dg]>*qgR8ÃNB<c=7]*Cv2+j2c=qs,uGv7oj�pY8My/TXŀcq̈́OLGZyyl [Lr9 dJ{8%df4mqB>fUAbX]:_+OS6\8|o"+I]z57n-ca^[fcG(-pJ醥WGWECrҥ \ eGrHrp.^.4I 75/`9]0) .D,kU~9Ei19 nz}:/#~<SȠvҪr~M!5Ah8uKؔUp]Pq 4$ybfBh'q<B (h�}BL5c5{]>6nLnu`szMT~N(|ǮԘlOai_CYZApMƑ84@4D&z|,x40X3"ɾШ~^Py3] PhBuz}3!ٮ (}DBOG%5t-,^ Pft,C!11]+'2Wl4y!yƓl4p~-e){F+}=ۼՂo/:=:x1=5cV^s(T\Q3GKԳD;_(vH&s(QӓUQē(N>MS e08+g~Yb1.wDZa/PIFԁٶx)dM/o䲕P␁ ;;N:JP<UcKހ<춦Fn:7 t5DtqFR>?c@3J$ eM5U/ʤI[% kL0ev8fƏ='ER2-j~V &qa.E`J+ɉmgisd\eA!o8Z,|f4rIgMEMx;l3 8QpMNNC* ۉ/\ HZ2ʜY!fM?4hK`ZqG]ʻ#K^F=['L#] W+7(}1s9E͓Wdw@.ysazNԤ:wI57\]vS19` Cr6K\~;O\Q!*|᷼U=;W3@Vm<`ȅL0$@a@V^t4u*/b<}y PĨy$=)wkz;cU""IX\3Zizi.~xNY6-,avFnGMdIqShÂ:٨Ht`خ?K{8fOc@@v&"�Ɠ]tDӔR Rm\!_MOӍf쥍v<qUn/cIj_<MBt8`_rQLNO(?e:^yJEw5|5z N:xusG!0( d2sz,o<Rѝgz7E8a)so BFi%+WH$219R³%&FYTHol,H&jpgvoYUP/D 7N$tUy2&OfmӍjQ;=VKWtHw^{LG`PK' /X;3="{%.7>^yF?,duФ+xnO56>(0=#k҅cb=J*[8% endstream endobj 261 0 obj << /Length1 1619 /Length2 3546 /Length3 0 /Length 4563 /Filter /FlateDecode >> stream xڍt 8mضl"=ef=Nh<fVY_Y"BdM;eJ,%kCq|113uvu2]@4DCj%  0BUL̒@#b J Q@, ciӔL}�R@*!Qj @")j>֗La1RY^; */ (p@pX`PEXq4zRad,G'@*H� *X?<dWH$*Cƒ�*X�f^ Ay:�gV"i;Ñ=� p%A md, Ed(%.aw,9`HQ^4*J n J GI4*V >�~=Hd?Е@»n [>Odbcsi@T�q^e<E\A@+b}AF7bE"<G\@7Ov () >9B"ÓIĀ?[c̭ 2f%gr * ;9𳍿"Hd@G1$\2]#%BV]m C$n$2֓@ IC TxF4,:$7HrHEB@EA9s $МL%l=2Pf8!Bv Go2PHQJJC{ a$2 W2ufUQ�eT87RR˂ �/CE%x+ V_^Hp_P{IzA!b@)A"O�4ErжC@oʶܡ0q}=dz{Uɍu*4*[-mTdH1o{ *f/$e蛷k:02숸$hp硪[ u0zL>,|Ѹr,JG&/ĴqZDy|6c.Qb6#ʻ6cfH :Fq:,2͸w c{ejS{V ~qvoEЮVV~Žv͎:ټ %&.0$|s lǗC08~7 Ae־*r]_N*MV5)%xsJ<\/{{ۺg`@&!UA&ΪA=U(^GٰEEv%܌g,c@fkuy=_1ʂr(jOV7$V4R%XGޒT]{c(ѾPP$Θy!3/r7_ᄆyabgdcKiRS,w-O)4:-Zh3 >*AB)XXg24x3.Pсfݱ2Ṳ3&~>)q;o1}^pkuFdQ6ǀZDj>2 ߏC%&iQ%WZǤ ?C":O+_sm탥KqsLJaM2A>€A*dTe_꾠L?l]]Ƀ05qncO8s1-E̪yo䲉x8>FTǴ uNG|}uuT, >+K�/%*6Og/ٷ68`xB=Ax:/$}i'z|+wǎD< Bdׄr7 C.Jv{9ǂ֪U R&t9eZizt i(v:�;u?kro., oL[i6$v7mQZǙc4G1B2]y}&)_9;pKU9Ox<2p^�9e .P(z..`↠܌R/Ջ:>3^n1BBTtwbMKMioPL7h&ɀq-R%p:uV0t\" dhv"8#'`sބ^=0Ⱟ8&ޓi<3my"Us M ь^XO'}4V['qL4]grPi\#֘|:}5N;q|TjXw.Ťy$կ 5K'JHQWT9LuCں]W 00Bt3>Ю䜂kj a*'DQd'N%if/iV3ٜ <j5+[s#B%)'c{}M..@eplzoi4au#fhfiEKkޡeWN/z4|u 01§etOr;NHs䰈xINTqZIHD+d<ӟ8j08)#~Ԍ_bz i*u~m:0M!!^צgU@D$[y3 v.7){bxwu=X'6]?Dm䂭ɋ&.Ji| LG?wGtż ;%4r=5Y,)(ҁ XOmClEp2P$OtǴcidېp5'[df{N7: 5&xn(iNO ?rXLG72Y'>_FrH(KWIcO܈KHx)~£Ђ&um R _AA 'q>%s=jݓ3Q4D>w&ב8q'W(>7M6Q4C%C i~ꁷC uQ=cCS\ԛ.^SH1k-wr ?rϗiIw|/C.]LHs&.)\ȸL˱si |,ȥ$~x֜=y,t2魣u%oiTjeV =oq$¶h8W{'H+`mWOg`Ie׵^y1D^Lcr1fLWXÉi7C425Gy=`Gh̬'N d59^53f5~TEMFlg6[x'o*զ+Q*· w3 j8[Ԗ\zH`J\#{\sTA.M5v|rg}Y1wჭ*كs$ͬ2^Z0r~s@UҵG{ Bép '٠}>#n;SeQ7{b^F4?F*3g|x?r 2/ >ȶco緵BrX'C7jR{<h9# eiVl#;Uj9ZE3xgڰ|nme_Lwn%- o% {+Y[`!6AC4M9ؽW:[ޔ޵^v;`mП7dlj:GPXGȆwO5vM5v~eDrj c%&Xi ԡ%'Ssf!q鬕A->ZRʕ k wcڟ h$<.rS{.hkb_DGNtMkn%j'lrWFnu6(`":_8:.'zov)̧j::]?ۂϲ8-! zp𢼘(I2wg&w}q}Aj^KLBHnn_<+,}k^N髊'`zpisA[ldm߳AsiyY#5hHwu%D^Lg#nJ~z)/<`Ym:-y{$"Ղ즊b>0o>=<r5m[ܱ'dF:E$v|.+_)ex2dEͯ/ŗrbjλ~EJWjkKbGhYv] zz'$o=J3�qD\X|x='_ؒ}6Ժ;g q$O'^ިUȨ|({s^;u_6,o. [ѯ Kyʶߔ`($XD,*UFK7E&y;|s$tyvnQyǢ'ޥW!WduTJ0Qylg`N5Sl otދo#-d=ꛯw6Ei\Vlt`>ؚQ"|KsMZ17(W3ˑ?}nِ4TxnK2> Lscg3"# 8.4YY[9?l endstream endobj 263 0 obj << /Length1 1428 /Length2 6367 /Length3 0 /Length 7341 /Filter /FlateDecode >> stream xڍwT6ҤX�= ^$-!ޫ{;HS(U Eҋ˹k}Z;3̞yzzπ_ "]`$@IGG @B !Oa GcH@(,Χ :H#'�X�I@�AHo - P!l�:�M CơDyvX:?`�߯t3A\�:=" 0@p?JpIc(I ]�@d�=@6#t!? q� -p' <r�=7X7gs�`Y+!QOj `=|�O C ':p�Mg> @a1?YF wb~@a}9\Gߖ-6P@## Eo  ��sCOWӍDlqc}p7`яEl0,� C: m�p@??z1o#*S3򿂊H7 _P�bֹA?r5\l~ۨ{vC? .G]8L7`/R4YewW7CN8>dĉ忡&Ձ 9wT AGi~�HQExm!0ߴ7)8' y@Ts]#7 䰿 lj}6?'(" O2,7'S/v.H,.`D<hQ1�P�p,_ �pߞ {FZE\[ۿ.8#D¤BjBZOWvNL -I=*VK YZU'9WjY<YTXqGW&o6=5IQd,Ac$1WMDwNRU1VΪ,mF /~Uڿr?9? ^1L`Ӓn?%KpX蟥fzTgTZi<{nV7TMϋ=- VN1{$S&J,b:`-f&'O6cܕP=_Q3<Tszkd#T w!\|: 2e+_|9bl[J\Q ewʞ= 74Oo5-i 0H0wE~{"keK,UbOFӳ0M,:FyȧcBY[,u$%fGTH,@K$[rw!s~ ^nދ@V<!2-[�]2T{G;D{e.ɶh ;+~ 5L6P{ӴPIP."IZѓik  ObZsǪƿ^k- $x9k@Ȏ~?KY%iu{WѸp7hjÞ W:׋ CU^<wHR!ǎ^{1uCe]7ZUVە �Cۛ4C|cKܯ8AI5xb'vd C9}P�YbU,\'%>!(1/=S1Fݓ'y|1Є]f`"-"34ؕ_LkP,kX, U^9dGyWVh6isN+^ luV@ֆ�)âS"|gnwaZOxf'xݾjSIup؂{,ĵ* 8k֢ 8شmnuxݱh݂"]b;8o#D{П~4=[.y'rTmCa{GjnqFtv fK,/o/ޚ^3؏w[$ g΄7H#[֙_xm]6na sņ,ڞvR$qW菙&{ޡ :$Y.Ppt^{b-; +|\X s>EܱmO#,Eu]xW~F7&a`rQ^u !$XӬ??g;8F0VX"#;!rDVӛ3€[FÌ‚l$ixO.atU\VhHlM@@sݭ0A t$)sޒ畺Tu x껣D|IߩeQހ?#}& ڶ2~sufX"7 sTLpږuO7ݔ Ío*?{&[&Q>+Uwcá;ۑ|EH|X4`vA'n4RRU(oN$f\dCONicxQ_Z[*BRꑘ̿_.-}t ;u&TpV^{3ZzZ?4A/¦9fCGC4*55=q 'OR2:Ng.pP٬(d˰ "}e9pN3>Im,_&�ѸN+=#P 郭b'You:lXA'}CvGAA[g= :Sb^~GHhmZu�U[ 93[:|*1no*(]W4qu?dc"SfD?g/rToH 8R}=w!F#=.d|#+{r}wt* t&;קeoP;XM]lMh1Fը iD)+2) -)]>8뻮:.4M𳝤 Ky!Z`@r\0 xςWвwؗy,;FqT_I;^8ˏМRKͨ4OLYZQ'ff#1*8:`L V'k4 _Nn^-tP54k]3iwrA]16yy$~zzFUyWķ"p2iQ,ީ{%4c- /OcfɊ;aBzL[% dE=LI�_l{=R\j'fߍ<\j t&'"`W1{OP@' EɵQq%i8rFDA@dDj܅]Ś/szS_j1W8G[*aX' >y\ٌ<37[INl:CYksMJ-HBi;j(vZDU|�ZWE):W$w> 0*9e0ߠ8/=z/EPٻޅ E#* 54~ bd;擙ƪ+m^8eN)/^z# ʤV2oZ;Vtz\UB3DƻqaRr]yz3B!2*"ӉC)]2@b0K_G?_^_T|aq۱2A*?X9P#Ew0zۡrYpu>vN0L6s�]' Z[ x݉Sp azkK w<f>:s}8-ams%xEemg&DG}G~< ) 7I)f,G&޽a<(Q b} :D)ۗ1mDo/[T9n n-V0X'g/KD!!X/7:*yul$Ư2B|i4!RM0]-W7V̍>#&8"@C2k*-I;"\.&u2q}:dmYRXcq91S?0MVV ~jβjDGM/RլW \{FB*]3w^\uD7:\Pʥ*05b$-+Bj:j`T+xX$3X@z`_<T:,9q9p{xc$ 9w+^/Ej7[:$ǒ\~fl1>Oi%G}eMi[Q&+.u^>)rJNi7?.pNt}UX+Vߠzbe$k]T陘7 7Oe$~ۢei?<G<d &eI5(;V�- ˃Wb=UQ]5UH*D}+Խi0i5tu޾Xpv$}xh,D֙In8"qb͢+ {" 40z˶FL9׋ /6{HR&`~x6:.H"^  i57gõ5?K˓;-F^=D@n%uf()i R-=Iv2 ^.WEm59jXyFM(EW ]>by#)kKYZ֡{laJcTC͔߰pPgVנ/ +8J lnYlB鱥bRz:n:e:ɵKb#]ΐe"W2#MۻA}%ܥCf&g-~dڜ]C c%Ԏ2`z|<4ٱyyxo_2xz]ɱ*rwHJ?>%'!R]X%MT/uZƆw_/$T$sFhT`T䉹]e]2%}ֻoL=v6=HEFK(mNa~i4-5I{j]JI?}ݯgE8C G1KB7t|ũ�|NT+e0&rq2ݹ܃y3MrusBbj_Q7#9ei/w>o|HטaȾs!N# aj츛+c-JKO~kXqN, =MmBK,%s=PmKB� at<\y+LR_ xr@ <�Z9V;\|:nl]{*j24E/@ƣ(zbDza COɗ<-oxXżzaDISQ=peqPϫD/cx*'Mu\u6)�\sSjX/,B@ >^Lf!M_AsS+ͧ 1q(~g x;BOA;D#ְ- lxvqB$s:%?*ǼA.sA]oՃm/XA;~n7g2팔egW.2`UC_oBOJ 89u<c (&BOcyIokH TDWL':V~U2$sX }S<͇ MArPgHHOIuɠ}F&6^Ts0W1z!cSs(P셸xݴ,Xjzښ5_1s9^BWyhd|1 |DUȩq-Fڸ<t*]^*iL)R$hEM�guGޒf9P򴁵5 1WaF!M44ΏVa MGw<=<>S~{|bDW6h'Fm e Dx "$MZySj[;O~q 7,kEOoi'rJ<nM,=/׶ ׺y]\h|@WRi_v $Fr+PidLc@ںl>?4RLE|Kt@yjM}rA:Ȼ +y\E<g_E"[wZ|4Dx2۳6_=NM,  YDF0X˽W)p11dxi;Bp. iSVU{L̳ɕNK/ VE3 ;'|c/=3·k0 Z'Ι]sͯ) 7G*KESrp_.gx$cN=c|mCs&> ""'(@&”J>о9iQ^.?|>dB&a�s?:}n]i ͼuKĵʺ.u @˵'Lstm9%{f?vġ 'xI#%& \B } LGVgrE w1oßƛL%gu5(&Bެ#?bU]Vݭ<q(Hq#ҞwO)[__w`]JR6)qn~Nj Tz#b b鬏ײ^Q w394;h(Bi{"A[^keD`^3pP 8Dv/emC8ç`~QZ6[To!(4}+RM YqtJd7E'T@ 2Őy4 #NI푁wW ϋ!̒h|0bXEtZ;�$:{슓7e+[_2 3A$D~0Vq[=ݤ9~l}03<%sAȪ3k;Ź5q"$ rQmyMtJޗͰ}:|u2ol2G+>% @l_ עtϒV#I^/#+jԞ) |)2aƝrGDطZ(dfYAf߷IؙV_>Q]%г_MEq|ݢMYzcæ%]o8&Mi̭ D<~CF?97E endstream endobj 265 0 obj << /Length1 1398 /Length2 6334 /Length3 0 /Length 7296 /Filter /FlateDecode >> stream xڍtT.)H 1t7Hw 03 !҈tw4"H{׺wZ|{gww?D%k (a. 7@^CCEˇĤE8Bq !nP8L]! ҧ�B qp@��Āb�>^^b� P n8LpgoWy̿^`6�PTTw:@ `� < rP%X%g1OOOn7V Et!nW5�Md8L�}; r�G(sCfì!��=u3 {7� 7f*Np'g @!�-%un�Y|B~w(�@v:#ܸݠFUyˊ0kyp՟F^7ϟ:0߿ fmkkwgtg A�yEE�� l󫼾3wˍ A@8n �߁Z8@  F� P#?6rP/)/{@�߿ߞ!e 9z{<FFF&wLNy@0 |gmoIU@?"_{%�_qYLd- 7ݐ09AuG G�P#j@NUAB"ㇺ)A Pe ~I hݠ-,^!v@~?ܐ!ņ_6)íOP�ruy W@@!^ �rf ךE�<\-�o]]]ٿxA83px}mHy,'ƸA1x96_qb5Q/+sATidnߥ)rzm7[Z3$ߟ3(9FrŊ\Qi/mmۯDR;L\$ڮ8SZpoMb5!xJΒKtz5 DϪ+ÃK}4AaBEAj*å\"GVOLؒ72v1«6c6{wK3e?8gZꌾ^WszJ{7Lt=Pcv^*Ǿ2|% (v~ǀ/|v gcf�`Phyߘi^ۤSQ)Ooɤ#>2INʏCG"ds54ZEYjcf6>p<ɫ:~fBѠbgڬ]K xo#[:$|cN7QnV]"mz8?[ωWL=/L4DT<@wyOrZ\Sh5VȑC}DtZ qU^Qh_ɷncaZm|1}D{$=]JVG*W(`)w]3\2*K5~x�V\.39$,EòB�5/ 8>MvQMk6+#z'U?uI(n7'<ϯy,|KG>7ErZ&E^wݙI>+?VX3d\tv7loge3)Rk}sL3Q|i:%&B٣X[s8 QMe:ُ gdaTOA;Keʫx.s/by#`ćVޙ_xos{#cXEGH@)45aߐIJŒ-(a�n&f1Z?DW^Kf3Ӿs]2ِCiÚS&RqzNTvKX޴D`03\$`T&X:J冇e+) 摳Lӱ+tszwt]ܝ\7Ag0Fp^ݛ\Cv"Lsv/n"4z'=m/Yx5j6|<7LZeΊX!k#[!8eV5y뚄=떞 S`f^ECv>meb<4yDz]{a3ꬤʦg4+~QU@8_?5y!< )GKO^\K)f w1m?94c|T1Z]E+j{.`iGy`շ?Z4=cW\^){TS҄*C1Josm3{VDN QL .<J?%.G/=q)g:zUkLrX;XZwNlŷ^n&¤3ì)W#vk X "S&%}(p=c|XWSMXڎ1VU/$^.w @:Z٠<g$#Q-yxƻ/]EC+M529eሻӱEeϻN qӇ0:~軨t3׈ ߸ӎP6 4k\;Jh ,E JU~md7rp;FV.w^Ѽ HݤdѬ#5Hz;fsug.rrfӄxG3WIڠO9!(9Sgũ債% N ~!Wyf@\zɒ5;jiz(fH[J\ţ2'M4t2Pj(EYVi( .a-Dl>Njw[cB-*Y F4b4|S]NL$D9W%l);-E LH}{e!hˉht.mg%ٌHVցM$ǁ)ܭzO &L 8ML�3a DB'碣3>y? mmiT&$2'.:Si F{6}k2D[2j6u<=.*XcG=JM'hxٳbmI@MYsNTӍN?otCQKv}"lceUgnRoǓϊwy1YE_:׸R?LyD,%֗D פq!&`Feh'\S>\h~l/*m>~fc9g~cq@W|5[݇#,[.yHUD{&} SCR8 T+Y'O0uEьnI~UԈ^GqIt6 "uf6uY$ԁ|n0Lƈ{ꋻ�tV\)Ź^`"5N0?=8z6WyzALV4 VmcmqR :Fyd7d^rιʹHQ=U%|;QᓛjwO:SqFn_zט#kTU;!#'bj!o'j-'{82e<9OS^ {V 䇘`/xoDxS<;ّ:Gu1߰L<A!|Rnyѽ}<ͺ,Y}޳3k/y^ a@hW`N3>DqV-6uoB_R(Vr (s%@U24> W_(8x I3T@3"9eQU aڟu\{is\2 yʬI[̟UC|OVD‵3;Lj7o#zQ9ibɔ5ņW +LP{ߜ5J1G'FR<TpR0HnV �j9?f>fq$Cb6ނ;Vq--ՠ8w/%478NW@P fގԆ=ܸj(Yq ߜX3- "Z2z^Cn=K.7 fS,oG;֔?MԈ5̇-UĬ0YMʐp$k7 ~Xw-_{ŠibA]Do0m݀o}rJY뫱,B^yUv[I;e&b"Wۧ_gac޴!BiEQ-.;"!l}7kYCm{DNlu40"}T\q%t\0C{G/,~Ê(ygDT45&J=Ϝp"_3m,*u ,J[y흙om֐Ddkhgjw:냃xp[>{λ雄P(z3:z~pa[V@v$'(P#?c,8#b^ÆGHd})CI[͎e Y4ŦYsBG-ZN `3/R@4S 2xrqjK47'ëc?O.׵8̎8ƹT9ӜG+4 %l^.j?փn&g;oIy!<AI3F<~\@h91hb[^<[0d'ɕzm1`^VwLN k9yQ> m` 0PA>;sAMK歋q 7ZLF>I')kz lM\C6bƈ%l>mAG bD#h>V wQSF&w S(uT[:أF'ik5#2bOȵ{Q=辌CDϯӠ%)O\:|9)9S\H><wjsEiͶd±2p|rͿ-#UVu|DB?^&' :Y ~?Hî8; .^#Q ?ўDwKfVm~\#rtZ& *ҥ-^gf\CjLr487`D=cGς;qcw.N٘T:p wtP2(ǎ !;I pmMMCt.b'Cs\fPAz>lK(FO>C#?gȴyo\(cڬBW`e՞K򓘦rBbboQ 4813D[.5iɖJBphd4K4H[Z./飂ETve߾,qb,6pi py}xWۂ'ahWz=e?#_\e=jfvTr$f읿!3jI8{c+ x0ns 95'ʙip+}vwzrQ TBHb/:R6E?(o-Mbǡvo%51msS$X|51( DHX.B$CdE)8\XU!>^oY2ڡz1%VmeT -Y 'CwN~j:WXq)'Y :% 8d0;~R9: Xdߪ e҇݌g*9&aCnr[ ~F5YX#.NqF[mXZ ,֙:�,^0QO&4wTے󚪗Ga`go6_V98~f;/UvzxnZ8W 9VԌζNL& `E;/&oΈ?Ѡ@V4PJK ?xī^K1,NA䘹Ѯga32"Y_>1"NWGTп=S҅9*qJTxmm,$c6=X$.бuWĞ #Akiljk?KX&o޸'ZDhVSeygyWGHe* LJ/pgc|Փtpx~~!OOf+>qx"m Gb̝\,Q$@ w;S Ճg0E�K]bӆFصU˟R k F= QdڃR/wz0vCIyv߻-QxƉlb(d'L=b\IMX'`~c">RƩbZ݋ 6݈9|AGyJȰ}O%HJuCBߙ9`a.ut[oKRFt&-bj YZSB|\MtF4߇])?,ΆF_L@^gYΎ ,,lipƧ~ʷܛ e M*艹zW09RΫŏ?F& =鼄s7D3O\ 0Q;ZۧFͿ|Oր%8|VyF\?a6U2{ *d6j5F^uΆZxTޤMv\FcY]>S~~?%CY5WBHZf$T卑} x|zHB#c@܄JNՑ171<v!]++([Hz*]R'(HRzpYggua?"y܉AoQ>JVH؎H-AuC^,}+I,XP[,ucǝw'Ǡ5< +Y}D<*ro=یL%eg+0dݽu`Q])qϯ o3iYL-&??RkL3iW` khxZ8*$\s{/[LJ|yw$->aW0y_HqX:Kxd4Xu?nX\n:R=]~M^-YV+NQ`IT.c!Ԯ۶913iOS7|9R4DZt%<, MP6 1>|}UMO<\]GEK# endstream endobj 267 0 obj << /Length1 2620 /Length2 22171 /Length3 0 /Length 23665 /Filter /FlateDecode >> stream xڌTU .Lwws(n8FiAJ .nnqf{k~ގ U f1KGs3; �@BI ƁDC r#F0pefn`;%G#+`cCGwt�"H8:ymi@gA`e ftY9�lfv� G ?!^۸9 zzzٻ8X 3<An6�u+h 0@wg,H4�Mr G+7O3 �,Y�\@�89@CNtXo&?_@9YX8;9xV ; @EZˍ ``oa33U@ZL `n\-\@Nn, _- =W} xެo`rՄ(' X[f tps� N}�V& + S_Ý b| =v�ۯttm~YeTŕ4_ `E2^è)_9+G�Ղ?{C�Xʎ`tInfL\+ iw;t?j3{?`Һ@|T*-A[+f>1kry-UAn6o֯+9�U]A^+�fj|ZW+oJ) G_'0sq1F/[zEb�+�n`k<�V_U7JF|�V߈*/e7bF�V߈*qX#p- \oE7ע/עF8oΧ1#_` f @<s3 [ c[3W_ fhȿ9~IW;@pJހ fqv0~C; /G_zGw?M6~Xx/ӟhG vu�_ؿNp&w{_6?*ճ1b5jp'?kbG%sKp%9^%xfNvK hinR vrڃK8_6@?V  D[&W?nwZ?rtާ\{{.w?-]q >z-g-Cԅ~#dIgwisGO~r-:؅)Ew%@K=|dGDqb{II5Ewl@~wvCS-ľ[86SãX>cT:MS`3C@ Lu>}u=7B.ȈY⫿w7\AHMO@ }5<W|/Mǒ9/KP/1cqdՀԣk=ٷS!}[ɵeM8&.*5-&n@ҽv+kN7I'?�Ql~6w>;/1߄z;4S*+Bb ec(EmC(kݙ=F1>l701wYUér4;O,`oOO m8L :# Vi 嬧kUx,eIsg%\r2? y/b9֮jI.R:fkῶ۸7wԾ;[ )lWpUɐp9ӍhNu)Aa)t9ѓ\Nd^Wau߼ќdI7@Qȫ@6[:l8Eh*&g"qb B*5#'6} Kz1v(~lf^ D=[E5hy/fMWaĩ8pGee+%8/ɹo6|rD㛅] Vp^VvARJDh <Mz9WgFnjhfSr)~L )r@fb^nSXCÌF|=C3Pv)U@,PI<.&^;S'!? !Vۗ.*H{{̬ qE4kkOJix3j Gף'L6!cg+CxyݲoRt72hsZS oO<d|X >/\3Bnc 訂<_]92$ `AxnUuSdo-h WO ~R02Zs#nߎE4*iŹR[p/*Aʬm7�%y0P:%GsROeI` _fH,BB_\& {-J6CmJ}5*5}e3s2Ai`m?W4)5>7ÄLo*9z|Vܓ2çy2[>vVL*SgAO}f:ϭHfXO϶V|KeC1/=>g EMbǟoصYcąDk/(ؒ: }oizM zs9wMDlK 4!̥Y" xܼXXJ~ !Pt8|UsSMGڤ-VGY-,�Z:;Ō=.,CǫJ&**%stX{̟=ɫɬVW9vm4Rdb⊬;񎹱%rŊVor}w Q}ӅuKDHUsLħ292{PsTB6zL؆꽥X_kvcK 5B<ӛ*c]IǸLӲ}W�8D, .yj ̜x86}̒"$hD E:M5eMf"v&~ťZ~ ˕Gpp)y(%&9,!$ƔΗv3`"jI$j1C5k)oO|?&^)0Lw|1JoO[[pu$b ZE%w W1K|j'd(&J)v }Y`خgGgg]ݙ`>YLѼW>6pΌK[@vIsp 2.'hX`D1ׇ(9<CY=ZIZN*YlΚx2\1^ZOՑb811!䀕IW z?iG!tƷ_u)� q3YAIwD\. $1ْ<NH$os|/nbU9(Nbc,\Es)�ce  p2r/eۭ AF^'bO/B, $enꑥd\,</i2 7tdb(vMK|,Ǜ‚L>4H-5^l0gtإƎޯc0'r(|/u8D! K̸"IЬ'Q%~Vn)JubV9|:Zd`Qt]=\EHʮ#Ȥ*U֨} R7{Cˡ];>nG2 /YkUK.qTm٘ .OhlQIkYEz負s'Rr8:u՟D. gmLyzCs9PhRCЈN742SZĈC.bi%&Y잱2ҤH48LFWFC^#=gk JI͜^%Ҩ4TsBp l m]0(MKZvGzޞW69(zӋf]g.ӫ&xtiHu3I}VOmW*!,k@~}8Q\]Sȕ|ɞNb/r욊wq ͐"Tv3zuꘅc.=@!!AoxxBÆfjnI<ax]3:J7ft;l/oY{F}?zԉT]rxL"A\^օ4+#)GJ[ 'GBݖF0z{Qug(>_HAv%eyLj խWlh>c ,6%%!T-{hƑ-0|E++qT5eAHkos�:5Ϋ{{jzPakъ=Ƥfv~z}6#PǭTZssR@MqZ|iOW:$[j_dWKwч䊫ZfXHDp+\0L.PU7ĔaQҢߋ.Z$55%4~QA<|عD^،$gM)10`#1管5V^˕|Rtl2C_q՜Sl5ibNp&vrrS`OpGrN<Y$=.AR 81Y!0jGw6@@8j̭ ^[1MZ2Ug#`{^4´ǩ<B=C,!a9#@ 8�WLa0Er=wo5\͸Jz2e3d0$F0ezxѡ܁I˫tDHى9Mo 16]q]py-!t /پ^|VCzw!90jbK'˴IpSBTCU֤cvP;Mr *1 oM)F\ "SشwcJϳViY?ߤ)KìڥRr&znhji5FAfB$ZEap$1Zp/n< qC٣�.h z}VF$;uiOgU9f8bQav:Jtp.MT?|,rAyV~ Xخ,R:M)I?u23Fb mtt{RDr|doih&M -~$ {߮ڳHWmT 'nvt[aX? ͒7: C4&X.M)DPsMG>y3CVt)!j,ɶYgՓm`= fd#9o2^!լ^wn,ۆyn1kHk\U&Np;V6Ԥ{!DOL'(\ rW{lْsq>i%nU^ص}6qr8炱O*yu-`I^ HsD\Cլxt .BafB.`rJW4sp7]K nr?D lXƶJ}ѓݞlo v~HS[Q("?Cr٥>c\SQ5QRE]Dfd(>;sE|,7CvE{wNta3]|jD|.Swȝ'^ =@( L?t/t-1! wImhU(bkJH#%b|bąV\{tDnl{q{V.]#Y?3;ǝuZGoQnJy/2dr~ Sy!_N2ɪ,{ze{ai�:Ex7%/ZǂY ɛETWb{(;߾ `-` ])lSxiiaFR-T+-=ɂ> ƷԖQebsŭy.^3fm.sE' ,sEbef)͉ cc!p:pH[R~ׯ.Q}b{VOPEI)QS STMh7DO7ФDȂ~�IÞw</jO9j^Tqo1iY T^I]W>}k8l0 ˹vl0-`R~TeX)w.;=r9N!)p$:'} ۹VfMg.ꋴdM"gM(zc fPO'&}f)q ˚d=XuX`O)g!R:i<[,`h\hZݤQtY 9dCݥkGAmA rlxS s'Z >}g[VšW"=jd{WZcG}uX|CUf 7޹$h o&ex8N6@/QLvT@U}kiI2Gag˦GlåxdU$x w~p߰Oe<GVwLT?{t1)A"ׇj$$d#?f, y(bxMVxܲ$v2<{'~yN/"]5 v7*&y3G¥[ϧuI+|brĦAHo�<>чF ,hlFT,:Uį!;dĒRJa9 GatAZhuOET <'BH!@rG~-_<FB&GxA V5M'euҨ'r˾*"QČw$iܖgC[Xaw4u:Q �?QlGeũ̧ؐ!K ƕ d(nܲt镜hTsFbF1x؛{~�׻ qIT ~aD$e+d0 +Kb<m4`ot"G/Sޖ;Zұif0T,4M>Lvi"6}2"R,p/ yJ<ּuOi416ȠPJ$DP1_{yQݾ/$D-_jzk=hj27P'.kRe %=ue'p+聰9ܷ7]P5ƋAhmN6_VJͱ2vs*-POg. [x/O<CV/ɺ(t?g.iNMA"C,YʯQEbٰ(NڲaEu1ճޑ u%uWARᡘ?9`cG2۲ia9jvK* a!-lyBc6{0@n[QFNWSQCW΅O ?2rdqi`%mJKdڽā[k|:P5۬ + :y"Rl.ܨ)_rhIVVyӳiqȜ1)"ӹ~où-t^Lb$;?hBs''4y?Vc ۫׋Ks.wBdj@(!Emmt 1aQI7,  0fM,Woj޷R P(S.kuVC#L~@o%D,.GgD/Oi=nPsN8I;NOT2e`8Wgh!h3i�q;�b'T"u8ή͞Y75C寎-{˯] َqhr#,)1}QȦGӔA730\cX<J  R39&:F4ǂī<Ȁ ,(y9 @bh7M7a(N=?CVL=R|x�}#73vhmh=6xӌo}ﶚ)O}1ޝlqqC-™ }bTG~Mɗf>(,�\]F`>j{~?)1=i;ݜ|}`%+T<%>-KSP^R)$6s/QhPnBWE$|M&2SG0056B،b&H5;: ߴtr멋oOf8=Ѻ0Et{(r0\ΟeM27kumW^'}5Lݚ CEB0;af/p00Y3:j*oE`!:&>]` #fLՐS ܘ+n)v5e:0Xg�;鎫lR+_"Ud<z= Di(l'5X  =:[eqJR[lVhaSH{(ӖB oK^oMƀ#}~%L~C3Ovq9_ГKJ C gzZV?"K61 Sd5^ކ6y ;H0VB/0_kmq7�NcȞJ-ktptt_q8o{^lXؽb>j9p^Q\8mMW5.L뭍;o$I܉Xi~AzZ[֤ FH03-^~<R?M(6nt;Q?tue']Bp#F&W}xW}ؤfZOB̘wJXL[yW9R{qg'4'VdݽXZY7WzƘ:@U3e@m-dM S�WB鶜]^y#ˮҚT(NJvn#ªb.$)C7BFcc~\m&+ug ~$[EI:)6S.jaj* uTq6 ~y6.rFĮd;*sE{LGSȽ] `XRLeo)2j+l"W}5!!$d_0-6<jAH߻C(İ: TeRw 丿Z?t+Q2pl5ogYYj7v^=xi8hӞ;k.AjT-*N DK(R@i|76j*/+i$Je]b|K[Ŷb], dа P ;ҷ;piTi;- ]p =Ӆjjf~R1oWab!}R:= /& W "0]0?!a:s8z']�P؛ZQo'}V[NJon2#Vܠ$S}_>>S~Q`EXwV(|zi)UAF۴EEQ%v8g{N8_ sYNUvYۂ-Sݓ>OͥA2U/5�Hh%QpU `b}h�WFb/5i6@ E,M}j%%neP6$3-9ycg.mɊ.dIcTIhՎn$zb-7V*5G~ !y܋t3o$Ws1a ; 93SBRWay׻v/�"7=Fl[?MY ;q{xĤh6NoL sL!ƋϹ͵"}hvwаg__8e,W4`J#H^qj$3LroT!oR[!M̴|YTI~_7Y]דLwx(DL#?;gV|4Z?9Xsd^}/fw3!5bFnIjP(3e tS]i[Վ_ U V(vo5nOKL=4qԋȱ4la,+TC. ^iooŘ \CSzVt2+*ɩL/E1w Bc wg^)Ksqwckg#AL>#pyWG N3! A/( rj۩*33*LR@@-]UGhN]/0xКt'÷žsL67;o /r1A/D6ׯ?ldp?hF kADGB5ȇ{~"WZ 0AUQ`סm\͎ K>[9w SȘc||ʗ4r-ݽF �EWNhm+vY/[];KLU1],!t nRLM騳%Ѳn<LDl1D䨴1|Ajc[כ1? G@.Ar>»8S{΁ �Mpdك2{y{ۏ$Nohɣ* X2 B#ɉG *tө=Q+rTc9 6l"V͠,ܣٜigE16UA}-(r&ΨmKz-D s ~Q,ъ׽PAMrb ha�ԮFD^y6o;͕e fS2 "_fI؅W&MOWHE @�-<o}\͑L^Ğ31%;Ѻ+mpu$B-5¦}J%Up+!m}Z™u˷VY˖eLVI"#2A,- '[zFګ3a@*Pm#\h='f� = "FVk�奨&}Û-Î <�'LEbii�ݜP3u&�vo> kv6MU9Ķ{Kxv/B[3h rF/9VS{hk 8!5~s:}8x=""QM ez]"'֜jb?p̒X? wģ0o%6jP0ie{]ݛS?HH�f^{t4jS%@qQ83.#zGG# 9FSooްGW�,Gc'ǻ_0۟Գb9nKxXwH݂]Uf{u,zFJhO&Ϗ_ 8#634A>2"fs&?w$2ٹ觱1VA<}B qM|1qˢ}"Vb(]a!=#rD/G0:m6.9Uuc0֤ۆ:PrAiņf*wUm=8bL'>ټweP9zkNsVȜo;Q LӑnGLわV{¾-;*l'VsH{`Xd}|EEDqҰ .#h/cL":p~>Kof3.FWWWh+=98)16M(D_d}hhO%IyIHʄ9VUX}wXcTgW+ e(3<5^`ݖIY6(>ϱNWTt2N:|!+3z[(l*C]>4҉b<(huYepά8M|3&2:J"ZLX= L!*IϏrPԘ9'QmL eX,G[ Exˆ`xM ƑsS >޼r* ĐwӇ%qsU74)1Rbo3Q/E~47nsp 3\K] ϧ'7:Uz3_APQN <L8?䅏4Lpd&CFXC(qMPl#QtpMM�`ѝT F;u`ųZ~c2B[nGl͐AcU6ɨlTqَWܚ%@t szRY&c �;}t+"\)3!2sKF1CzfJ0(ƌOipR>/P*_Z3,E JĔS񎛄QF"X8엋WMz BcW ^BšA =�$~ȀgzMv׈p}֡ ˙!udVƔ'=`i37ᖿk j %(.Gp u?~-q]O&Oj)Լ}z5:pRr `^]ִF׬l{(Qv:K)Hmȑ=-IY\!O'$Lx6wsfH7[tċ`emD&+}se.Q@l'ƍ#ig$YwKҥLaA\(C"#|"|B5\قdnr1^^&_qп|5^[g"mUZ=ԼMAg%ȫWGwMySzNwp~,��M'1FpeWv[^DnqnQڃZ:SАw߀kWG("RNkaHe YSSÞpQ^5c .\DfV ̿'R(ufpAS{&MGFӯW!75o?kBَ\|Y.iuPșx'2*,f7u1e l$'Evb诩ajSBiƊ\,eaծg 8t1lr_ǭ\_k:CЦ_rB0pqe]z#Bӥ�g@7_֡GQRrDl Q) +lɾg,0x4ϝl""ÒfpyD!]a[[֡գcDk[Or~}UЕ1\IWg fJ=s|ONE <O>NK{ǣeAݹ_S>oG"jB[* ?[5+%r5j[*0so )%vwϣPRQAmˡ02dhXCLAM1; Y5W`Fbn'BZ:̥E=x5xE޹U@8oAOl(f�,'㛛y  Kv;3Er[I·;^tj[=[) d'72__ǫ[y~т^ZWe񐟺rY&a'S> CP,k7H蚒 #OSNn9ߝ2owj;;(R/}&:" ͨY7Aj\tv}X[/7�nكk7Eﭵ ` MS~?DqJBD& =`M ,6r/abok~ސ;ެ#=MNp<c vW/68ovoe39$O32,.6t[6]|[2t`UзY|{T\Eyٶgq'}46%58 >ݝ6c1c)$VK7Ȗ4wnZ].0aj!I:[L~8lLCɳ Lm5gؗWPHҨ(~?YyփvP@eJ9'Q4qݼ`p/$fg}DBSr�'`d1Fij-d0:ۜCgSLBZT%Kثqf%桜C>#sd:E:h^ۤ]<R\IWojщe<Hv|/R/:玬sVfJ{ /_oliY+8)ږ֠^�C O.)ǟIG'4iIŶ\?i:rLQfM#>"=}۔~hv^}?2b&%YxT};OdS \A>>RJie\(Ե]Rmd$2YКh9cGlf�7ԸDޙ^?5;zx.WH%F,${"CޤNldk sD54Af#msxZpֳHcڵۢ(t3k!.uI7-m]ƨ OKrs>l& &eff'V(,W a3=΍aWNh+8tz7Cr3}qje{V*2' [vΦ RDjN U2L0U'LM 2a wsk1 �h[ pԹ!'箛Moixjd`VHԾ?ͨ-7hK~~ ˟+L>V`&uQl()=C6QPXΏ,.yzIr"$Ӕ}nH4< ,73XxT~(Mli0kw!G>ı_)i Nm5ر|kaKnl4,T6cct?T/KZvJ/x, bʠv|8SM*랁́(nnlaSY^#�lWayNyFStl@Tj�a8Igm/1 hqY ȷ֋ ѩIyoޠրRK/n%u6 Ê($&ьU]ȼAWⓩBzm/Qs2{ U֐_$Bh)avěÏ$W1%x8򷺽лZ)uk|܎SFaWflS$fx:%0K axUoɟ@X>PʽV*,])ܨ`(dc7 VNZ с|33"i|zY*EcA6V 3;HQ[tޟi9Ld:t5-J-nFj~c``HIOALXYAGYVQ樂o'NTJX^<{[ju5tbp}Y2澧HcWn(h_Bp(˄8EEU}o0ȼϐ `,d獌`hxr0(^iK"fqwn;sTLAN.O!jG{ }>^7$byi"8W)|C^@5?)oNPP|P#k0'?ߦS<;)@Z{9WnkPN9B}!Y9kV-[jPXNBET.җTa`3 F+#/gfGQӯ24;wu΢䙦jƼlJeiتUݾ"1U0jc�붸I[DӸS1y !3rڻ{^ 5O]s^}"dU,vD!_&4ԾPܺ@4%G4+t" xz؂4Hr饳xEgD]ɼx)jr\D3jFCzQVFQit1JR+],+U}a<GG\b+]r6 p=Z!u9b^X繠36`@Y1NnGga{ZH1 CtP uM<+j lm-~Dϒk|x;r󿧊ָ̩q |Xݠ-3A~ kەe%C/~+?DUI3%c"όW&|^ J;ArT/Ars l~-ImJ0їv$I Ó%b\wC? 0),HċܽQPD^/|2=ӝ7!B!B{p r3#Fs<4NqЩ+lj Fsl?U0ʛ%kX/~7b6д(& U_0ZT E]V2ʔN3Cc #}'* s]h3J`ec)hv_P^2k6LW(Xg &6w?l~ڿ?O٦>Ԝ>Z3jnZ`` &EvuȒ \J-x{)>ar(& 1L;3r!Gژw짷۵ Ϙz3k28Bv ! d -SɧHtJ2_)z0At.vve?4l{}Co@;tRTɽ(i 0@v#,||j*1]ۢ EhXnvӬU$tVn]> jvٺҮ\|j7 }[fs|]E ?#~j4rQ9: 5U$D@̤gxi<[S9jeN5ݔ|43+ l &Y0W'6Ćs7G|| /#&LCp.}%}C Ohs[,`yx[͉CAJ:z{ڱh #Uׁ 0oF=,VRٌ[H!>[_[10QA4W\ad0C6dx껖̷<KJ  7!ak~뿏vR}&=୓PWNQ~xVKU ,i^͘ыR9/A0*=fPdM$q_=_93= jjKAŰ+҂<`ë岦},8_ؤ+7hQEM:UeESμP:%@qwU-j& ׵@fvDÏHu:٠!+ Vc&^=ƣ8H`%ʲ9Pz?]Ub8|EP2Q>Ih?٨P�0ٍL\z .DH|ޒ qr t j@=eҵ*Fㇴxq `5٩JT72LOuDY3gG'd8^1:yNA*)._l o3 7-ϟ@QӃuȅ.ss __ 4V(LºC['2$*Q Q(jt%֝V1hNR5W>cqu޽d68'*j:֒:pqg%˴={<C<,0/tQ(c]}Hy MޯdT)t' iI%_`2n)2vISny[U(7.u{RFW>&08;|<>fl- Be~׿! #^g|?|K/Z,6 +LX2ec�3<XL.�Ֆ$i!dOWVt:URP*<I ~ޤwTe1*]6dZS'X 2C"w#%.œ3msL|(˾yշJÊR 1+ 8Xvrވ( CXTh Ǵ,&Z)*&`Ùo MLfef7| SQ^Ϯ}a wj}e%n ԰t-�y%۹?E OⅨ|ںDб >pj?p)bvH>)Bp& qXJD}`f*W)e51b$=eX+!vd`9#d7O)AbC8 &QH۠<]'tSqX%I9<&HH ;1]-f58}CGTN8uMf+*(AƠuxԻzmj<-tPItZm�ҧdkqCIDHz *عF^! #U)I탞jC�7d~asE#tgRsbb^'gbLCW'<z9'](|։jJ$uLzI;v|xi^4'd #mN{H|$;Ԑ3QSEKo*6l]V;gjF&Ά,ظ7U$b}oF~dbJ*I`ة}Z_j&}Pp8Rd۱MQL(ɟz*edXe\('a([t}<F�!3(ߴ U,SSqzS"0�X UbD(F=[d9r2֌ڃ%zd%Yx|n0Ye20$ 5Nu&浑]l1o2A5emArm%A<MQ6dM_BdJl(NMKMQ14OAJ3inEg`8EAْ2Hۯ2Ŷb]:đ� D#mAnXTsƫo]<fZL ʏ÷hˋ`S߭JK'JP qZw^_RݫF^\*'UڷM'_Q GIJ꤅cZ noúLь"(E]H`"fz eoVQq0&WL:].~$z@GEW7-A۳z:T(`ĆX(9Y{Fϲ;!Q 7)`إ�4X\F ]*\+a$oHQeX pXfV9Ŵf 8<AEnTSuCJ>S)'i9pmH( aVzµ|#kw9A ՃxhۿX;�/ WY:[~|F]_b_w,@5(hrn6`88Md[)B8{y%{̟[sL(ꭽ͔hz'DaaI8PPފ3j^DS@aX ڴUPz/Ty:cMaO\mӨzP?<sBv$-׮{Ta8d(2VА>cyf\)΂},L5U7TTwHìLcK1JPT`;hV]Z,IG AԿ*=o|~�blt(cJݠŰ6kS pdt 00LuRq# ?rX_<J!A}y\C+߿s+6JfObjaǃސ\ I쏠Q+JÄ"JJ|['1? ]j-.,)J>^hj,|ȟݖ2+H"L]aC:K,)rCìZG3(ؐ~k/ރ2`߃{r&iQç=ݙsg8d+k[$9"e`ǶG"%R{0|RpB%�`J(>e݃V<rbp{Ygr߷矠JcaP=9abLu:8xL{2< tE=x`qa.2&M|sF6ߤqDhp[ѡrfM*@Fpt+D21ΙhaCxPXn(A=l(؟c@dcX,r0 !#Jh񳄪LDqmҒKeq%.fk2ǰ!t/TdG[Z GXe!  @37~sU}<3 Q6UP4bCM=R1U"0XC27$L'%�F_/,lxX R@S2% [=bge#"TĆ3ڰΙ] ;B& ֛qܫa1pLV_)̛tãc>=3uE{T g=մX>c BH}^/�\Ӻ-vO8ĨW?mD 'i?2 7[I-(r=Fqߧ:DA º3Q7'#*:UXSŒd%E6؉ Nx򘙾. \eB[obY%iw}GXvdH*% naU@>'9w~D䧔pgrm I5dJzecp(΀>�oLn$0:iaY&7 J\% $X@fMg-j3Kgq ?H9x@@vXNT,{ 9Q3.#=Kr%+<�)EœJIl{sf~m4$uF :o 9L8C  ,2x[,C]ƪ2%ˎ|EPxY9z~YDikT ]E5ӕ0x|smkEQ�qTxG1;Am|F dCmljwr*(mF~C \' SjZ9$%,4xl`]F++߈<.o59eZC.{Έe/(?\h֮ȭ5ߙl Kp.Y%<ϖ^H1iA`͐S޵`sJs|ϲ̦2R#- U²roU)'cϑ\ -!ZFS*vl H &r{PJp^F6SA2l'N7b<p:kkÍmN6iMn@Ǿ[? Z?W303W] M)qiXxDPq;l6#/`Hՙ�)ԉsTBD?; u8m6xM'>{}va#c#B.KS徃m.r(J(�V<Վ>͝$SI _0O[7!7iVOn) 4P7J=BxRA-(zݤ}",evefjw=s; Lcp[ϥ }7b}9{b3L"W&!fG.uRKЍ۞CT6$N[N|BV(!xRqKv!|"{{�Chb,HPe΋!}u~[ =M7X; ;g7c~BFpBƟpye U\p7GB7<i c]`RlvY 1cgm$A77 @4bΙeU:.=SD5Gȿa&I_=|: ('+IY` ^MKU18:↪˧迚Ϲ@p_g$EϦTZ(ʴ-24p1Z9K;mbF˩.}f] i,uC !4`9KWd1my {=C3 %7vz*fiR$ naАEǹ.%<c~}NX›@ JHY:V^Txz/�K@8*SRiV[j{(  ug2f L5 Pv-."@܆\ydi97f {=e̍ Si~d+LZZhO+R;2iYsPėOoւG:{iV'PY~nF+6f~@NoP )g$Ժe-4uz tTӚM@I>v)N Dl+˧uTʘn| ŒoAUǠl7bEc,r`7QZ33Zi͢PGXri?a<kjr1065%fYcoۻ^)Lv-YbS҆2\o:R+ ̿Axbʶ&6O=S+U:Qيd�:.WCdJכʵ�1v8RUSyn2-ؤGHo={EOb7 El`mm ܦ*C.jJdƶI<Q2iˠY22^ېەڡ{7jO"3˨DϗAfh԰]5{YM瓢f + M;amÆ3 H&Xӕrfsq8 -NK &s)\4b \#qMaaXF7S C;rig5j Cv\|:zE2k5Ȫ5fBBR~"ܙ :r_rzs" W 04|r!ܦ/dܒOjw[V1gd&J -Q"QucZ9ktKO-AE.Jflh[ӔJW? endstream endobj 269 0 obj << /Length1 1539 /Length2 8358 /Length3 0 /Length 9380 /Filter /FlateDecode >> stream xڍP.SܽP\) $Z@qw)n-B/P(w2|ϒ[kzgD%[A07.n(@N]�q@LLzP7G_fl& +@t{[=ĩa�UwG�GPGH@" #DP0@ A\k`fqq ֖0֖�]5_vnn΢@'+7a+ t  0@ ggL�=;v]%x08B!0ׇ w�<t V3l�<< #l l6PG@SQˍ` tt?[zXB-( |h\Pg7WnWi� 07WC뇱{<Y6�;aPw_!&l7�@\�/k;oz=ogN}�& Pp�Z P?f͟P/ A{<�Oaq@c55Y#?;'+ rxx�"�!Y,U'UfYÔS_nK Z� xG4);:fq[:A xЬۃ[�PCȟ;Cݝ׫f20[ǿuUzAZP7k?]9Ba-+Y7"pA_�o =W@�`�apC{�8 �2M"A�Po$ �*@σA>�_/(�:y@� _ /�"\Jt> ?kXc/:jeh<v?JL3q."o1SjC2)}+ Ktwm?nu&w;>M9iz̥'  [)]_s@ɫaby,bnWs3ۊ)83LV9O1ܸh{\\NMө&r`o_VP1RSҢ^M2R#fɻ7^8j\!O͘&DY(*/cەJ0sWT׽TNڬ\95B :8"7y >{dF:vd) t~HZf]8֫WIZE-hۺl=WGWFTfNT}<IϭCݟ]NTf)LMM!{)y84/rh/EhЩR3pMwpزj:=nVWԼ&z݂9NiST~8rS5*kD۾wgM@Is5_}.1i'%Z"vHؽo4`)2bNs*K' d=, ^{QQ~xt' wTxT­m\na`]Zdaђ 30n`70P ch,/&,V`(�5$u;uc؀6q>IJppw%j?L4,<gfEͱJN/$Lg}~N,>Nk.AGA|uM[#r e7䤂xyNZl^,7 ̼6sv?&n 1hw'/:40OIdMQxMeAY8CK? OZNg&G0aK:I{DDpsAERxE>e)}k5 ~*pmwwI L}h Gh;Ut\ޢ+ߟ| CC_a)nC~jrP\w[9Z,Ҽ_V͍mc^i2QEI/q=RqNSaPg{ɫTzaI7{/"M[:TJ ]Ǖb:HGAR%qU${ܤzBɔ7͞ɁlRmrS H̶r/TŪ5z^-)=)y藕4$JͽxzhLf] zӧWO7<3; [+sh%;-T'e{.R 4OMKWAL4ΛF}`I}[ʄ{.-ď#}D5q'78Es6WǸD1"9>"yZѴ愦Wm' -M3;,]]:9G331f.ut]ǯOD5ȺNpfXJа20?MgIC ]&yN~+a$U1tLߢz;7É ERk¡v>=:,50-m/Np1F{88unم{VK&z,:SHy9Z گdQ_M1ҡ_wɐF[+Udq_0V>U&ÒI h:_H'~$9#b+9B񖩖ѹGB<"Ȏ25ϖ&rdl9& R|[p`mf.7'Y2eUx{(J*a)R4nbDQc2֩S 7$nd_ivw$sMWX,;*AŐk1.T%ɞ}ikhxbFQOmdћF1S҅;Qm"4/eX vcT-1@\#jv ɠ s>aW8_ ~LԢ¨CkvRp.")+"wg|sQ"=c3O(^!37$x`9oS7mtOָ?dθD}ǷEtr_\i7*3)iVJ,7ʛEɭuZ=-4gK~[0}&|Ճ`~$+ 3T~;H⚲Fb@J1f F1ca]Dv}W%/K$z v:X[UZycuћ̯Hs7_ E#Mp%$˫5 #wߺ؆� َh1%TvxY o((}^e cͽǁ- eob#`o#kВLmG!eio R$ XnV=E:hِg2h 9X[f;~Lt.x?f-g>ʊz.:ȲţÆK]CzZ=LJ9>~҅0EW=/hIY")qܑPUA/Q!�My0/Cai^.i^(ZFRCVb% IBjO^Mrzs@�Q[| ML>5XhN슑[&it>d ^ڧ}A=ΧB5 b՝z㞳_' q�)GpUbgBjO-Rm>=wgƪ*-ab oFL(/G\r?HD5ttG+jFA44eS1]Mlq~$Zs&\H}D zȎE"AO J^T5!%)rpP="#Z[uu̯_™]b?V 2&ɞD;a00b||N<5[| %0^/ʓH/W*f]oMz_qZ6B~_D<tQ]e1}^me47e%,#X´Fӵ.'R<]4!wjqkȔoJP Hy{7/*>]r ;S:)=2>(zSSfEE='8VIϒ4|0Hf+ix#F7ِ׀fcc ah˓ (@m0h߮)=_,m? !d7Scբąq= ک?uv#EC�g ܄/X^şFG}&a_Al6iwZ�jĻG@ǔ&!A:R[] b{5__,U 5v\;9bGdѯS X heZa1#ԏ㏥^ٶDGvԿ{q5<f`,GBvo!SQJ|߸2ᴶ@tqߑ0EjZ%%vbλ2<pwAJ|0/SOB/VIi/b~Qʅn'+~{# P-!%slQEe鲎uu3{+g 3`VI;8鞜LZC:=4Mu(Z>@h=q!W8#-GaAu#r=Vٟʠݼh9~ŝ\]î7Ie2>0P`BVl/nCS+9.TS/_:¼98رyT-'pϭC'n=yZѦO؈X~UM{uEb,sc8slypL 1d Zh,1mN0Qdn5]㗥7ָm]cþ^&G9fzL<-[G`܃˳}W`!!,'Ġ)S*kOs@S Qfha GΧ ~5?5kT063^6zZvۺ3Q>Xpqd&a&6$;L/BP;5FqGcE9{|mwIF@+BGa<<=gc3б!Ұ|sK%osJZePr6{;%pg)C4'g)OiV#-w YeCxA Xz#HQ0{<'u_' Գ㺘5=9ŗZ"%<o(NUق{ԣhжǺ13_t~;r/R+%.Vm]\]d\9 ƿb#Qբd"1eJt Lhݦtq*  lo2h߾G/?3$eRƆpq>63v'G+PrMM9'cC_7UӀ:#~̿[>?sj7.,3<(Z 2_zQ#{ͼi%OmSi.}h0y1籾/-Wlsdl4 /6e)?Bse;^ouq+oJ]禅"f\L`^miЏ� :SVx=L-ugrKk\GPl9xȑ4Aȝ0W : -n4;d~jl%&�%NyCV0IՇJc?q'C]+QӼxn700T"Q* FJ:uk d&s/n`NhN1ghb{CeQm5dg?\S $3-,ʵjY왴#ZGF% SԂ'P2r"wK.V˙{c/ G0Ɔ0ċX}t wp)b}4e'ql^ Vҥ -嘌%8^1[ :ǧ*G]_q;bT5终bxA1Lu}}P#ۥ5u?sl1XZ<]�c 9$f;dI2?5_ݣ񙔰!OeYMf񊴒lMsNx:-'ֱWuQFP$DhMu6odx94BO<.Ls|6BgGI[GG|실Kng7dӒ޳edk9dg<k|}UEeqK:d<˯B@!f$QY kwm}y֓mAy2w٘�ٵ|&!:9A k5Z_}WH^19E3"U}.µo&N ?frfbpPH3t$4ɱ2\//X+v^$JItLXuLc+6:c!DOjhvg $vHr hPɅ}$:/h11^ &l{O7YN2{##+,TQs],|m_œ,QZBY[p�+KZ2|"܏0O"*#ϒrKnNr& uhsń$#!c|`U5}m>_SX[?uB&K?7߾$`3T<? 5%6x=liÑlFZmN_E[XLLB)T{w8R%T:կSIWiݠjv<Fd;‰MmɡӛOm6�R K^%xIцGTT㧖/)zn췓K3zfʐ9odnkDI^<rE S]g|$wpu rq-U? BS$eC?HC74, Xu Ԛ=a,&Ѐ(e %mabE);m-|X^ hsZD#v9OpPGM<hTm6Y㟁괇XlnzbT5HnՈGd`/\mg4v o';/0J1&/_` yUk$TSld*-BVfO}ijSL;Ajq(qБkAђD NQ^&xH..W,qŇ)~. S݌o; $lS^J B fmҊ4.d@/H1U<o"hH|'GK5V!E t5�NxS[xD7 [C٢^2ނjvZ:N)_1>'ePxSܚ:٦UWm4M퐼6G[kZ"kl0dCo:ӟV" >S1V}irX�\~/'||6q};az?růuXVqQ>./f l=đq<v$PGHGe[} =%3wǽxIk*d[%snT`R>tA`+;ϝͅ5/kWH޼TV]C"AAB2:NoLo}4BE.V댉*�W?[ "E$o_Ο!9v.Kb׵,D>'s&Lb"ׅfANuZ9Ւ$0Y~e6zśGm[un_dyEU',#G]D]~@WA?xQEѮ3⟷#8edzf'Y=QKl뇯.qϻ7w8tAՍ&*>8SO9B%h .+:.imi}y_R([`i"5%\AjClŴV1iKv'i='24qqڌ@p(:N!e߫M|%hJw<3nss$Zs``_'*u1/{6r� {6>P*&/FFKrA+Z)^Ũ\ŘRk30I>4#޺aWPSv7oDŽlE҈ڻm23$ziXYRw'h.|Z$+nRҒc1rbmO<蒡dISȉL3ڎp+x?iϷI><exNh*9[bܗ\.nEjz>ye@NYpⴵ{ Ü/qǾ(Q[ЀC[MPYe).tU:`=sq DPS;Ϧw'il^o}^N9CcxbͶ`b@].7Rks y_#5RNDfFM>ktHnzF^Zi]86 \eM&Ϻ,웩CJXPwo?Q <s*# p`l"a-A>fPRozR y))z+d p>^ `QJ<~F:>yyzQuQwme{^e@L#Nu=#:aڦ]Qk\?;Q~ˎjv}bseJBE_~dI0At!GBDpiilY-hCэowvr4 C&,C0iTb%D]Kx!eHbߤRڹRG!@7^u�y{N@6M]nky ` <^Sf]ŇǮ}f\?nuwDָ$u9jO~(㽖ȵ<H_v=;H>J^%jkhOTǶ/*Z ?Fc-v7{hމ܊3x@ՋGB# ]:ĂD ]~~xV^갤0T `ßNdipc}o2i k_gx:[qUY71/(&-JxBc&6 x2UC (x8^3h�# endstream endobj 271 0 obj << /Length1 1675 /Length2 9740 /Length3 0 /Length 10819 /Filter /FlateDecode >> stream xڍT.-C.$w-^wݭJqr̜9׺we{w?MBC,j1JA.,l�qE5v�'  F e 4uyI)B�9W;�;'-?;??'~(4O'K<||<LDN sS0@h1]<+;k~VVwwwS{g=b P:܀ LvƂBа9)WX:/;9 �:^e�@ 0:�; b` � ; @YJÅ ` mhj y7u3ٙQ)@JT`_9;\YAv[d%{{ w} '˱{9Y[0-,7a 9e%2y#�x@G�ܚwx OJ| �˗&> K  ;;d0Z(D-/wy�^`^?̗U[YJLJώ։A<�^̜�fn6�7QTLAU,ؗSOn͟ݠw,% i�8nf?\;[j?=/κ_5@ je]L_@le1@@ dS{@` V0em_nF,C,~o[' 8^/h�V0Ҟ{oX~D<�V/U `UXxf >�wW�V?j %֞/7?/;$$˦B_9 rX_"; ˿KǮ%ar#1/=(Ks`jQbwq]Tzf%{ ďUNעzV%Dɟ~#&=x?ǫM,NO#E&a` E&ѕC%խ{G]_]UoQK?hFeR"0"1z`^]dO<3~,{ZEDMGH {3:Kl?Y`sV3Gޓ\aʢѮW/qnD7Ў7>H둢kJ{t ګ@YaxιMG:Z"cRpQJ|\= ;O$"6bb^Ӊ{I1y{ wR[ZŊ20T; SzIg:)7>V|28W^O^Bj!Gw=o<׹HeݓЇeIΟrj컥LU>ɒ<<B&W5k 62= jwF1i͑ kX"Ǧ'UyG_:)K=:ƿ1t|Y2ݩ&fcQ(W}U RIO*{V5UiI]>yVq"-JEO[ -L=�(vqj-JV<V{d*o Q;瑂K +`W. Q "o#0ݖpqq|E̱ ^t "s-NdЋ9L$-,O¢" 3$֐^aM0{y}TmMڶ'$wƐ@D~ew%X=gx__#ͻX*P>⻷SQI28 |Ӕ05nb*6->SbuA:ٜIdl]\ID}vBJ pxSLi&ʍ嫍8EL%2 >hy ^BcV]߿?@\ =3!!,(LE&4ɤ!mHV%1Ƅ$m fi ޸Oqvb)e!T ZÚi>Wh[ QsҢCm݋u5z](νgǭ0u=9i ӏxl=fšVR5\Û;忪~Б,u%(FO]? ivX V<pKz�jY;3F/laz|*Ig" .&=ꑲ@Q#_)7;!P~e`H+C[Xј :IٱEY:˜WeOb5S▒,ul^k[ҳC^DR#rn[E8%ovEz[S"r-l.a숡o{Zþ3ډ�o3wUgXC-XV#W{X+dtc-:8 (g$/|~V�h֦u;2 R<i?2LEK`PT0~P/]V`'.JZ"|B. fia>9Wfoڒbc>m tOf7-#)`[tQ듇]tlń\":Smϫ#H=VR9m港w07?4g߀"RsGvA<b]hZG7_ tkbl}jϻJ4.\WWWQ[\[t &E{kZws M_ o4Yzٓ%B`B{:YgF9 E+i4˶Ch#/B%KURW.3tTg=OPO &g r_qyUߴ֌ {a9KjQ�lCv|'4_~ (־ Ŕf@+R<||簠NmG.γxzvq6ePIj.,htQѝXw*б B%ƬUmm$'rǐ0;!8ңKv3tMT/xcץ\H}fDF|깬BWl~gŽ|~b1B/qAETʫlrJlZpoZ?0WBV0kl p፭ i�ᡉwwjl><frI6 Z݁E/94r6579_ +;^}\X1 AJ{S֘CQP-sRTZ ąDa�ϸ]MVk՟(l=j_e'K[49voܢYuR"Cɺ&05tѷ' Xd'5y6` 72 wZ}LEqXEV^U8sylj$n`'7޳2F80/ݘ*K'ozO5'WcZwQg$d̛[q񭈺:Clu0.m2tә׮(Ez @y)!"t"xBr ՓekVk "؀%Mlxp/69jt~>XrĦnLUbۍPl$k]O̍⑥NG\"7e*Y`431"l@Sp2i}1q.bRCBi5.ˉtQ0>681}VeajOW U]p^LVQ=k%&[y)ۺ,9v<(ؠ<eW0՚?`rcE_wnq|} :]y[ik4--MQrVot LR?zD&.M.#IRn~ߗ(8]&tcY`ʓ01l{1F4>q^>8!~j[Y/@7JjhM8rhkjrhX)O5OTSnJ~{Y ";=yѡ.p_ؓ*zj>\Rh\[#^\EG+ J5"5v0実^ꈞ!9Kd)ˣ:#MP^-&^:NRQX9\eE#%,hP\ ^^P _GlzbWM_2>< n Իʚ\6uC$*2-ƔA\Ҿ Z;׭W's 0^M_H-+aoSC&]*)t|m"@k9>Ͽb" 1<N:R r_OmyLGk\CR| FѶn8g=!50 {T4̥gA*r_ qw[ɞ뗃snzʰCVв?0-\LqlU:5o,kUC$Mi/ .2ąZ6|$I,޽WܿnGp4.0.z ,:y̒4<{S*-ӋoģdǦ2BFEz|L p1 o .7P_I QBKI8lC) }Du9( &e$~X-26Go氬 IBMz Xl 41 Qŀ>GU[4?>1M"#rnWLGij9;})J#qu71줡楥nYKU)?)pUy%?moc+ ӁUl�ĺJe&gr+N9(䟷}-C=~}QM[?~'LJ\V!Y\8[((!^~7ÑdlX!p%)RnQB|z/VUukLe>:Ll9rDAVܟK8(?Eo&`:C{ED] jmbz}@bFDvboV'˧PϬmFN L0ɞ攽'w$3 ި5<!go`^$G.�+*f|mRO߅\k� VyqU%;Oh1~B%X[pѠOycM OvlN\6}W;aX>qPE&szp> Kt_w] zGUwbowTtrDha}&{(L;-Y!".0m"kY30Ɯ3⟪1<wթ0u}A? dl&>՞I3h?17'uf]Ԇj5,v$6uH۹(D(_ǵQES(R="e]~n.J"rELW֒!B04/^1i'£bYC93J#O3 h_m,'kWE T�COvI3cY{2+z# Ud׳֙>pJ$8<Nrћqj]}̞w/[Y+滹΢jc I)- 蕶%ڎn]=ߐ2Imi7ꞎd,7WNKN/T.7K,q16ߒhp!7ʑBő7P Jns*av8Rr2Z:#!s13p.̫ ]=vIjHu ֜IOòS] 3\nwNBG~lkv,y|AJ%0^Z #U8xt2somxZ`ؖ9c7(zI B\F2|dzКaNQ.t&Ń7?31A V]#}vujb/*Hpٻ�f3WcfFfIL{F(sc4 ,)dD&^!*+5NrJvlq~\>IxBjhHpO=Ra42d.swbM.U�'>v?~V~7 n,GtړV˼9XDH6Q"߂b}JY Eh$|ѫ%X|TyKiGWH;J hF*(0O< gFdwE)яt}ꘟN`iPOO#y,]g63{ё]X O2R)צ,uFF2=j;(P6xnpJIS%QƟWfk0{ %ê#5�R?İꚲ1Tg>BN};8-_:{ऎ4|5*hT9X E<$x{gKaGnȺ^jxU>58*iH;i Jy階iI3s(^MYaK[@/jRlƍ~{<)7z{wr4(G8*~5>U(ڗn`o0 lƤ*KNyђaDdN,~p 6!02`?EFy3PVp'Ϛx"Xf|%tH$iSx&|tq4: &;k,8=u%W=>VunbuIgg,$$nԳ4&b!!33?\ }kJ~*֒:)H<-N|hD@;Ά/51֫$.+aRGyQ'~gIJQ8>/$]-King_ SoE.aX3ډ{Z]E70ߓ]i|cςLdϱaq&6Os35}V+ 0i*I>%URB b#M91><Nq #:LCW[mJΒhS)P�&POY{ن8"$¨y~ u0M]va/)&hqb1/3iT@gm%p`�aR$#DJ*]EÆsp6נ(9UuIRa^T¹uYk76џ6,kV`4ulLC|Џ9Iwe<I>9U${i1[=.`fYO|<Xp(DMahy IF;oB~l2,/ ՜~\n<1uc@PW<&K`KI*H6Ԁ&x>'Vg;  ")P!l %%Odg d- P|7Vs Hsc S5qKz+I rdaEKThV芏k@`X`vƯis:nVZch'SjTZ}x }?s`"ж81rJh0i )'F*8?~d㦓A؋Ȗo4G YZ֞+U삶Ǫ  @%K#3wV4ZQއ81E~T=>{*#ɧ�wWU + %fBN+@*M3Ȅ2Tr5 jǦzm׶XK۞?1f$u< 4Q!eh0X%sEO`xB;h\ʼ֭TC(V|Ewe-(..<wJo~o U&%ZDDž~w.z̛ m}n#ʶZ0gmЌ; > Җg][/`>qYrp~W֗ʆ[wy,'~T NGq0hF gP}45x(ctL>[T u{ ~.tSz|#'6.T:}Y?yF|Lxj"`Ι[|xD9FjFzM|8䨙Ԑ^MNо_ɇXVF>6ò-'NQ 旬BPT[b8J;7BҘ ǡꦌlsk yl˒=oŘ ̯fUVj54:gMvsM*TFhNv Ykx+g|sI1WZQH$ j2cn!YRQ0;ȊH㠃D[G c,Ev!BQ\*_oh*b*03s qqFcX9̉]{)ou RuN8oK4܂ie <RʻzG5QCDQȿ ')+SLWXiȹ`Uag=C~.Aa7rlG׆)A}W0fXCRw;?q,"�ԟ|˟Vw"j&o{d܃2/%;caSr~*+"`pVIKO!W£VLT_!\~᝖ _/쓗Ih ׇBZGm^yJz#EiG=w+1#�T@ڋ~nin]#ّ} F!Dz5)J={+ 'ƠbW%ݩN[k[Z w'<8>q̔=$KF5s0(i+e n3wh:eGa#]懘]n#«%CTiKF˓ waWY$ܮNk~C㔏ѫDӊTwS5"3cmutTf\Pm6|4S a\;ᕪ%?g.En^\w--T.�Ľ>v$gd-47627]fu"36J2õϯuJqOHt+:u0k((V5gm/9 .Ma> IʸMersІgz"?iR�y;I,r ]=~Df=V,ŐY"_qIsJIq.quuW (¦i1TŴ[&g#8V&+PZ@v!:K`%)TKYYZX؄gu="L(%_ 掊jDIv ܅~sQ{%slQI Eɡo+fF.6}ƒ|I{0/3'~|ό-UV [i^siVۦĚYvQV7~G*9kF|AK?۽(x͌vcZi-˜iLʘ<Λňz2OafQwopҭ))j#&ԻTl颧ճLL%+ rD}>GX3A> Y+@$\nERP]mi>#"ee.:ɡC`h3LQ;G,ҵjz P flaNsIE/F0jBֳ 5eGABmޚ2 s9d67r~ȁcO0&隄Pj,bcr|cѶ\Ȕ!P->pNEs DwGVpqTC?c7Lf+Tjc) b6$#LZ^&^;6̀K=ֶR+W >FSgD*f#kV5@*|oB1 F}hƗNK ` ş%1)|,!~Bdr2$cj+Iu[T^ %Wh]RXocW VH_qQ|қ.دKAl};D8 ~Y(&bUCOD .1]^ak SpDSg} K^[߈bqd^bv>GMfoa._)v cΟa#*ҺXuoqHybi-1GK}y#t㊚V5WYvw n:5Ng%NmfNgz&f{]f=78i@'$lm,c [I ^)d9#=WZBYz9>Ax? ' o%B4l["xY`1{<oj9r#x+ ֥ X"D~vbK5RĶ\cS7h(taTJ4Xtjby7iIC!NGet둾嬌oÑw:|"DA />a|js?<V<L.s>hױveu!$٥g `(`*ok7V/đfC\$Ȋ 0oxfꉪ#"!/ B%\ޣ!X܍,xpY]4� endstream endobj 178 0 obj << /Type /ObjStm /N 100 /First 885 /Length 4288 /Filter /FlateDecode >> stream x[mo_q[ (`V֎ۍ]BA˴D&J>3$$Q>J04;;3Gm3114:<Cn<:&&E$mTM@K)tR�$ аv o ;x̶X5Xt&GbNִ0!�Ќ2,A66ή1FdJ79ИCc|.9n2VI\c#3I V5. fnӱϠDhypP 5K$GMڔiJ�{k8E4jlb$nČg HrМ y8 1#*Z4.b!]Ƙ+by K<8zA'eOpmc,h0Ix�;1P+{32B̐ 4F@PD"6NpyT"ّ$Ac(?Y ,A"cqɆ=lbBTT&S4h> =bX &D-b2 a-m46`>Cȷߎ}4t2gl {>Y/'%w=柛K,0KeF;5?gy<)<oԽxOnox?Y{tj~!"OV[gRn"v¬uxomM5ya>_aIڀ;քԒڜAH$ͧ6k8t\gO3YHf|ȲtKQhY6~-U4'MobF[DNȨ7g[u]:z%&~)/څ򂠧uʈV^,e5--4`h1?y1(ÏG]v8wrwuę)O{Nm<MCBk-`Z 0=XܫG[ݑӴw)!&l՚vl2{12*&eWD` tAH-Jωz~S]"_v.kV޴T;T0TC(Ɔ/$5sYyxLQ3m@qIymXnӗpױi $8D ; _E4|XBay|BqltbF :S2:WZp?Pm3TRhIV28SSb' 疪 IN Ϥ J~@R0YBO!8t0ZSqRDaO! _K" >lK^4ؚ`:Z \̽#.b i1{ wLFA,*"5oA6 ˃ЗU_wLtgt}0'$P ,Qq+S}kC-ZFk}-j\?l]pֵ V2W&ڻŮfiULw6KswIt=ЕR6tS'# 8,ѱ!ߌMlQga.'0\*[kj*R|↮7WN9 >iQKITd[%4iӎ'lZLIl8!cc6l9@|\&53rl;Qt\_-d~:;m. Eo,o@ȖLhb'bn^C/XJo ͆G鍾rm86 \DbE虾ul)<#ޡN-}p-!Ah559} i<y }xj VSgkWKPc4.ți4+yEl0_+Tmq¶"!:DC\r-8e ?Q KuғXNM4@CC5 R 4gfŒ?%RTF"[2Dɱ9Z'*FECվʢ^]ڰ8 u!k908 {2l37؂"<CGT Ⱦ̖(.gS3N<Ec09PZi2&I[[KF¦u3C`Y9! !sK![=ə _<0%E^):hHɂ$f$arYȺVWO-#H(鉟1_i= ʸDEK1 T&G@>*0Y(*& Q|hoA}6~\mȓm˲C 2VwװYOtáSS8ꉱчl| PK-K+"Nf{ܪDmTJ{өٮQT؂a9([E!ը0 m4q4'P2] 4*^25YA٫Ƒs!<uOE?&;ρ(\ī,X`2̙˪'H<.^$=.(۾趯Ei5{ U˅3q+kîg-[K[>% 4X!iwȵ҃Hl qU9TxNe@6(Hqݮ1k ,8ըb^k`MŒҜ� J0anzͶ#d.ssnyJx \/2P(CQReHo#=a\mD  Vg"QR/8N;V`ި͐N|j*E٣}L|"(=_|8)Sif \}.(1$ ׷%<&tL�oԼ"0T>p$-Rmys/K{}F%kp Ր&+b%6ȨM ) <Rp8?a(.IfD)ˆJ5(<#*i<<Ҏ)|1/@<]PvqJy/\ZhEDq,.PPdӺ]cZ=X6GQ5MEX)^]jCkz]pRkqqkpf#!k)pqkUmFi\2+UC2ELJ2']P(n%,dEJ YQ͵ᩅCi{)]zp5ei7THY.B#e&KO滒2+@?Fv[~'a|mF?EGp:@0ga< 5<Sєp^RJ͋tZ_?tRoo-us 2.s7X2f&"Tgʷ)z>r$J+XR{y37}bv/3)=$]`G|3C`M‹!w#m]s.HSvi Ḩ tFY*.m9PdHiz| %q]ʢ]k^{iȆuUk2Zor趘#i3<dy~ZE>ؼ9<zuo e3|#!P:o7'+d`>z25QG7VɃ/V?{]&/_b+_a{u/ݸ{םtIa bѝvͺt6Siwn-'Lfr[udҭ~w/ oSPDw_x@devʒ~;eOC9Kd7^ O,ēǏc%ٓYwۧ3l+؍L;JZ "'kDk/hAe!\lϽ٘r'w>o}m{WO2{y{ir37#V}v7˗;bRGΡbK[aːnj�"=Փ&%ރ {/vQkNK_ЩIdanU{GW-T:! WIe[�3wȩTn�F;@yWcɊriK\^6d{M ~n]||7Y,_N $S}:Xv?w?_Wߤ)9Tf'bWO^wdo(8{GF?'r)*�:gw8bѩ6f`ۚAu".ֆafj'Ը_)1 endstream endobj 273 0 obj << /Length1 1373 /Length2 6096 /Length3 0 /Length 7038 /Filter /FlateDecode >> stream xڍwTl7ҍ #FnPBc6F74 !tJJ7H! !Ny~;;gw3 #E@�5}I�$&�f0/- !ˮQ:qG:n�1,d@>0G@z�~H S_G� "##%'E `8@rc*Bn�SE# !+,+vB y�0 E@ݡ"\`^MN(_0 (`(  w"�Sm=_Ww'!;`nP �Ꮏn^L< s;`4h y`n'd  GyOB0[sp/<௳ {Goas8FE3�@R2�'�Nnc�8aF�/BzCA08cPd#ah5<�'[ p7\f:VIU� @ sg#0.@Ն;!�25ҿy&/ B< H|O ݿ?�hz6V;o;( ]0ojD& u4 .A/oP#ˆahxaŐ%5ovJHH$؏sI #�a!8 ` 8!$S\ y~+Ș:(_ H$f_NCh(dn|TvVrWpmDafW0`0:'|S%=W y֫ǭo^%%-VK|GLy=3"C-MnTHsQ ]]0=f^-KzY6!`oV X;NKG}ts:oU'$h'A8jU4|LԫɊ. 8WFLPi"n<k&g<L¸q+RKRsuV?Z S`7nRuxh?^YoP$+Ai˯ɹ~ >+64M,lgA-tejq uY<J |~ΌXz^Pij<@E{H6<WQx&DWSYJ  j-|19{q|d,}|GԘ HvCzM~~^OnS?&,w&y /QW'⣘R-`y7i\/œɕ^-M3+΍ʉf!|ct{ֆp 6<S_x}r'R?o,b"n.'{_ ~udD꽞 Y&c�'pVp g3x<EM!uLIO2is:ʞA VBB=c q[k,uӭ M;&GO+K7 KOmdIzlAJG<+(Yqe<:v耥&6^[bWV5>̒z*֪r6YwW͔%IOǘ=OC �SAQ|`jo0(97!7q3TX ~(r'QDREE9/$6Z#Q QiqJ :uܮq=.gmnXN|\2~eZ/ SߴJ*K[ "`AOt>>{{\S<A.\ha_Y-R}1T}7eMQٳ95[4Vhɮ^ea9MqU}'_T{}= 悱²ₘYoCLQZO*nM1Jň;VE#c2l?v ]pߢ!l6piΟb-q$4P({oHN.(MTOi XGP]؝xJ!wqD#~D"Hnm=K0BNSD- ɣE·Mc,K^|L9լ+6xt)[;*_.P'Rb2U% 8_3gVRSתH7>*gȷ ^5Z踓݋|lQ_tzO`Qcvԥ{c5.qv]_$[7(4$ZyP,l#l}"kU[/-uinDdH>pG+fܚz`{AEWrkl>^yӏ&IqTt>V48˳mXmǿ`Uޒ|9]\Ti=&F<F`'!Yq)_EX:\E0p%A޿!)cե eP/rV~^,7[ &~YYY\>u^V—LkvCÍD9)'jgVߦYwqHARK=O՜4r$.4me] 91 ts]4)Vyv!9_"~ d|* GM5jH3l=xZʼnĨ; i8=GH=y[B~u:od-t$х>gv-VsOzmvJ/11r QqΎ!enIdRPY)/;<Ig^\]RKlu#5dFTڭ`B"#ֳ{ 9T#t,E/yi-i;Ǘ dZiiɒiRה"& NJA3(oSK˞01/|bCFCE@7{3ZlR}Qj5ʊA,Qx[4GG\8Yg3X^b%MƵ^8ٱڰ,X斞Ѽh,[gp0ߺj<l=ҁ<δ~RmcǮXECEL#`F"7i8 lt-gOAjG_^m{KlNuxMqmꇫ?H4-j=hv*s ?vTj )sy(T2QŇFjU{x%ދ] :[evH y%EUahEwIޝEU9ZDyha*l(6ƶ�sMDb mӮ ==3oC <//^,Ѫ 䐹mtޑ%7ꁳ v*'O&U^`Gk[2YţK2ge|\P?=IĄ$j󐆶qαc=$[Yײj=lyjƷN~H8vDʾRw.K~~1@\d:6'okfK}>)yq_DnPOgYҷXaBs+�n;'h=uo ﱵUtxZɷ,#&I0SZR=. Ӌ)Qw([r�}FsVoȴ}0jg-@B!˓Tn]/Շ5)ۜZ,$Ģ'V6֪vt}v pgJztCXL Aw'*dw~in0>jBL[=lz+A`FR~>,%fC3f&n)K"ֺEyFM *VQg)&X*pǀ #Ȩa8@Gg_(*1lF V_Г 1ՎdT[E+bE蒋:y`=.Tfvt{ }L<X>TzJg2U2f> <}՗'CoB19BųWFsXKUw'w)v zkjsȃZQBM;,/o#v6>,l "" XV?Ɉϑ7AEY ?0Lj3U5{ȜGͧW #M0z^#{1zD(źMU>)PY [5οДEG>>PۏOj:-%OԾ\И~\8 sXƭrH/} L^e}NO.( į{? qp3;|+q,Y|(G^Cq/&?gIU~Hgn›k-W 2K%#[j^%M#҅HDrin󓙿\<kia"mq#.& ( eAd(?lCȁC(-/L,)2r\Ԑ&I112(KqHsM*9 _|y||:!TYk<?"<sԚp].1vS?4tl DnR(g0fYbO?k>K5r} я;9Y4TjP1c2>ܒ_hL[_^:cKMWf}p<ilEN%ػ 0]\; ]HoIX|! n”b!I ;C'dY#o]rYAG.+8i�?23%z8/NB]f߿n?Z•ėVX0}|F|E;GWg|3/eR%8_5fΑ’ ~ix=qJ™<ٯ D}I7% 4|5c&/>jgݚ7sD0T=[X鷴9I UK[yV$MyS8gIYܸ=̈́6*w) ]I t)Rut6Wp8W' /FUT\p+s?zm'JUDǮ9WvMhNw/zY -dp ќ{ONU)vf63V{dHDBt~A0u1WcΉ~f,Dǜ4/kn_vM (mF簪ŔK> 7k^?~\& !i"뭆l*Dە@NȚYRGEѮBȻ .Ⲩ+CTZm0W(dI?r>aV1|R�43or/}Be$yى9ْ?N >#~H1*3j07}iON!zN$WX?<bG-['Әۆ:,ѴSlé<&35qQCHE (#xuVX+9?i><HϟP.Hdw~/>;Av5njsϿS2PpMJ'OS_>k:qt�3 NOߏo8|\n%T64*xƓ䫂g@S[28$7]oN1X.6=ߛ/$9 ţjcb�!+Gfd$7t/y5:)vTp<^!cq! \8AM4 Xy'Fgؾpkט(=9O\rB['B3N#y &u{YfrHT'By^$."ו3O.`l8aIE@\z1~W<<iq9<ɧ>}X{ǹg'cԀL|}3usnB\"އ_ QI0,p@v珆ϵHkgiάphVoӉYJ9abV:Brc٪=]Ivo-b D'񎰇l,bɧ"صa{^6W*8{m;J&i>e -`G ? {+y^PZpvy*s%gSE| 3IG$^"汞JQ~e!72}{D5>Ju.Cϐ+%Ҭ<�MHE_dq uh;߀TF J4U*7-"yXz(!B>u|.;֧H4]!:H;AJOqNJwOWXyRjYiiκriJ#nPQiYA5Vb w7cfwSY~8UQS!6s8:&*,p>G5K:"{ '2x+Ԏ1%_VthE1myZYDbAogogܾ3,楶`U._C@襼֣x VQrw7?φҤTo HW"I]:Xh@wɌ#83E*4<;;A x3Q=a×@ ~Q8 54~lFk+m{lv(V?mxnnNl:"Vtٽ /TnkΖM峣q)mF[6Ē)CFw?YIXȪl](72)-ORT,^| [nZ5Dlqq|M<Kxr[`L 4oR( zz20�ӎ endstream endobj 276 0 obj << /Length1 1373 /Length2 6090 /Length3 0 /Length 7029 /Filter /FlateDecode >> stream xڍvTl7%1:I(nI 1 ch$$QA@$$.%E@RywW_}~uc3QUg\ ŠB@uCS ,!XO_Z�8F/:uP,z!@<DF rrDcP?3P F}�h@ #P�&Ɉ " Bnp$" 4Cpl?R(a^ #Ƹ* �X7); 4">.X(+<08rc@3]m/8/gD_ "w'BCa04 D\.O8𶖁6�+;B=}x u;i R5B= <Oɚ(gu4 Ga}�@`0G: P.GpY޾p]=*tp,P ȁpo <�< B{]#C.p�_x) 3:](pd1�]0x ';<(Y.HZ[B68Qqef1"X] (W[W~o_obG,(ۂ0BoGUBxb7DoWK_t5;#|mBPEz>Z�1 s *-~}( /U0ODο%.% b0@�~xI i ` H CB.h >% [Gab0x8 aI4=Wr)Zf 1-4d/s"1Gt5Uf/pobRMςRLGWS#mpQp_x߉ n$l1.d<驘=jRZhEmD8 VR(^�C%^0 d+Qg t2幹O; +!Ç8 =O⹢q[ߒ8vڡK2 W}\nQ6 Dcf2]TUyIvp\ uyΟɨy|uI:.\:4=̃?nn jnj-7=. 5\<~UO9s}e}6aHB@: G!ZX1"-(<n9(??v'|T24a*1񀛱}"ѣ+c->q;E}Z5eРrz-i,l%mղݚr1SB sZmB8$)UrI1՝2v/GJފc{vmf |[˃(~)ҦPݯt/}5$Lȏ2l\}%6r:JGN~%@8>.X-z˰f7*sonή?,ʧ?tXFԐ!uxNMg@ϖFy=iK3n3CHxN~MsL`xm6agA8!ZЅ@q.ȧv!@+LkFm2~ϊe- ; , O}]F64]a4M:՛ @G+&IsFROr!_q*;0Z]ǹmUJM3 ΊMQc_SNF%ED"ߎ5+L㖷24jO+9kD 4w| $o"Dž8a#Ӌ؛zg]�1<>^|HNTQ|ƽjHp8~D/g;oI*o�ސ^|bHC)پˡ3+~_: )Ip^ߓ{(Ux4ei zV[b[hwe9&Ӳ_>9.X4VwO&S ؜*> g}YsrN%XA{]c*cYJŏ4_^? AxBCy޷g{(rGBtY!NvV컘WCJ+ܒ7ȵ{1Ŷe4 %)Ԅ1jɰ|~̅o˃qlk]#fCpj7~`d.&sC'-M7-*2tS]mepWץ>D,OWniLT@FFD{kqOm.pf&P4J_M|EtjqAyM⊒UMTj~#.'1HcH,.[(vKl4�i$1&DϘ)6< n˛][$g�.7̓?>n~`Go*�q/͎;*�w5We`GuX5Zv("]zN|Hsu8nmrF^ɯs:Μ]~G[qU+ҟy ޥl]5jkܟ5ѻL&ܤҪ2#ygWxyAԶ._W}`2[hV%!Ҥׅx0;m lew|CwVs k1md!2U*f[GyYa;݌:# gD^`V gOl}wX`[^jo L6Zaumu}x_p$t\1x`Wcؓ`ܫ[l<{ySPen~ƀ(=4{ޕnһ6gצ,e9I�jl,_n Onkw^ޥ>Ǔt%G^w~_8?_֢[לT>͒@)5;J?v~ jcSۏ$SLʁJ5@+联Z=]Hxt50ꨢ\_|J>kdsۇEW*e'M}eRt8ݖ)"%W#_G|يVWlW;Q)zcK_ pu ;- D? gKB([;}r mEJ4>sYo0 ݼjl3r m#^lS4)JlٞPxy@c:xFf̽$K *!j eȀIe^+qzo3i);\bG?ӓ o*(>s?@2*1u>M NI6tB:S �PBq3EKx_K^抠-/WCI\Ow8׼NK\AV EwMSG'gP;bەQ{m=X~y кDP˲B'<b_%Ԧ_}K!<%:#0UCYv晡1x U@6{LxK&eO(8aVZQbp~>XꝮVKZ&=߽'[vody_=0֛i27KUΝٵx/~MUCgiKyD%,, Wk;{ME^<t"YkbRd?T>${3t\{͌TfKI{4'-�Ʒ1Ē!ܳTŎFm`JHfj Ki Sh1z/>ɉ BJ{2 j~: 3WD m{1 ӷ1$桳! cR%0:߯:|^4ĵX: ;hFJMh(f7ɬE_6 鐤=!B(ټ<?8N\FmܿH_kQ;ڄ^u|A6tl]XyYM4p'|CU^J$LfOơnt"͇IϹK,%/+D'?]a\]g@n+sR\B&17s⠿�kckz.NyS\iGdt;qkSJa"~E L^4*Ӫ(|D*v{p1f.3aon:m%2& *yBA5kd])^X[ߥm0.U\2_d~CtWH#:<prMץ1QSCvk^og@}6ڒRh5D.r{1۷�*5_~zĉ[,Х%kmMwfޮU֚!Fɯy -9K+T0N³ $ugg/J[Z#״'K߼hS^|u*fn( !9oA9yeWp:hmLhe߈H@AQ7N󒛲^> nER 9N6 2_q|=9�k^LuЉ#nf&/W6$~ ̣#̢{u=Gb# >=\/. ~esmZ ә[{wZ ~ p[<7?as:YgAh' {!Y/̻|,6nFdjxߨjK)q.יn9o gLvt옇麵j#ҫ3^4"rli ԣ3ˀkbgӃRk-ρu_2)K3&C)!1J66΁~ۅefR%|*\-ռJ՗ #^8UVWsJ`u T>&gb^pj娑dK{ugke"Kmi{ҷP_) EbVY-F] :qto/guxB3hFP%G`t0kˠ -䍝hFWeYOMTq:&[ovt% gu۬!'?gBCՊ.`)(p.iG:I4.#dŽdٖحbԝXpaAybFP,r%[L-x\^-eV吔UfޟIyM>ЪWgC?)$K|FTop\NSܳE}8 > ȅ9J*~|"UMcu%F%\A ]Uo*$Hh$ve{E6UY$erXIX!|?Fyj5`eBEd}Xܭr3Rl[5xZ=J?g^ 1JұI4B.c?3{ʽgìKmϝw#zQ.l[]\Rt|ҍKɭuB!,e>ʒ_%g>2>p |mS |^K-/kUj_[vd~Q36[Id<@ )=)5Vxv׫S(ȪpEHs\`~wdpu-.F>CY~MUq*kw ӚӖdZ,#9 wҎkz o~F<xq|*u?'>_vzP܏X lzh׋LsNsig#:0{~D^ΌUP] Y,gu7]DhUrzb;@}M墄. _sO=yQ$% �ewj:ԑ6#ٴ1+˥W|p{7UV^0k'لZNTC.#AlDu,"Gn,p|ωM0fy&)+n㽝pa+`Bե,S}w�۷'[э/z!slUj944! JnX*ӝ}IP-GU):=@?[|;bL#Ykv/3|kWDtY h՗NZ!3k&5c:$j &.k@ǽVPfH)~ S#^ݭ*y}G$D B*^t7J5kǪ/q9:F1=P.O`$D,X-\:~⥙_mK <T+( q_wΖx8VGW/G{x%Ec=+ǕY"&{ 8+ffv . Vþq4?-Kʎ+^P^Ze<ļ8ށ(1G4kt"ӻ2xRJUWGbe&u*Y"Y58yB?"vKgZ.aiamP⥝f=K#G! KD6eOS4JoB#!mlSv{YX Y'bCl3% ˜_yL[@mkuW!z>BCL1+4:JJ9l7"P~g)8{n2ɞ N⑝4'B6RMT.XJVs09L,ųhnW'qG.Y,Dݟo;B=! &meE4E1RTmw$u[3xtGB<vMS㐟߹R.ѱ$CDE%~zKg?1P endstream endobj 278 0 obj << /Length1 1748 /Length2 11049 /Length3 0 /Length 12150 /Filter /FlateDecode >> stream xڍP[- ;57H!KpNNHpޙ>kg}(HTMm`'Ff^ 7B d [@tpقyЋ:�^ebFNf`5 `ef/@d g؂v s ,>Mh�,<<\m #0@hjk:Wj~ '';^&&WWWF#GF[4�W@tp~ P0U#@XxXL`Wg)*-P6ۀ0'ܿr6213�35(!D064v}7r1YE ! 0z_98Aֿ+d66@#o~b 뭻3V++ljSg;&u0(-/W?2s��L,~WsK`Zd|Ct4rޞ*!�LA&N�c9OW1oy@uX�̿9Ζ-$%*NWQغ<8 �f.f�(ł_i-oo.>߱l_'gu9M^?,ct#lm5YK:N/o5{]偦 gJ;0?r�M@N&r f lA� 3^p|ǿTץ`[ 0rp0rGxm+�x) 01m^]�yl~ $[0}yEF n�?d^ߵ0Y�L? +о2Fr�4~e|%fdyҰ& W:fy||p^52s2s WM^_=@ayքejaBW Yݏ)4 (4U6{оmS_ <y7+>x=ĪL",M L 1 y={i[A5CvP;s(b޺I-*Uq">0DGQ|1Μ#qb 8wCȞ|!C>d+u7V؅OG u16M)r$Y\0<>ib}@rpKb K:<bE*Φ4=̆/fcGz8Ћ5W-A߅t]J#'^bR_fr}S[=}L[DH/o> $R[|RcnJLJ /r#Uo [}| a:qL*+NjjD5{h,b 'EQ$Ql'w9Imm@ h' Pl2XM74:!h:os7$hy߽Th"ľE&w*T8Xǥ)lg1 !K?yƽD0IK~2i7ڙ+ź8N@y@.t"٨@inTA!78J-|)gb~UsS#1qM3)D1i, ?cH_y+N/{.F+0"htd1~R,Qj);�qots֩Zkȱ-4v޿"<uб8@2Z9040;OY8~pA~iƃ=΂xCT8yZϠ(=m#m3~HG^V1$2].Ԥt kAO Av(|ġ9*d XpEMHs,TDa\C*Z zd FBV\VmQ\{cu|m>s{Y/{>2<m֔5:۩:AoMKTeɰU=3oJ)r`H|_uZ6IV<eMjQ:!|֎ؖ]*n|Cd Dz4E07/I|bmIYSh2t^pEX߭xVj.OLC<t l<cnxg.PO=7󚉚 gKݟB<&q8)ޏ#t _9Ǹr$뢎YhYLuFOߒZ g0p h;0xGN�&^J)FAK[3řAm>b @DV\PhY{ jcgʇ0e7NB}x<vŦS1UGxp~W8H+dSjzr0~Xc03}WQe$nr-3>Z W!xKfߥ2BdI~Ӣ (^DsRRYPYky-p-*&t`)aSق_s Tp8wC qa3l/rxI._(PpxwcZf](o=Xlkƣ:x 7jx줇m-);+0m9mzFL 3ӏ0w./>g!:rpj.6 e}Yݽ}XRwヲmnGf J\}Gl/kiؤIiY K�EWiռd[ 2SK]  Tj\53k\+?f7L=i7D,piklS8~!e@(LdLoVoc)Ps O%H[Et#OzJgf}eJ` E<a rr޸fjh7̣nxV|߷-/bTO@{HmԘpwfn=6dp"ZΐzeR}xv\95 ئmAZ?([Q{aO1 pk QPٮFY[p( F_|) K4B~FR77J}pRUrD~jvvuX36*TjKL!3^ Jh)-ؚLO2? ~iUM+'Eӛdm%MWT lB; Q"ܭŅ0YCr|K{YT#Rvӎj*-ʽ@oǰ2SDϭ(b>Z9ahE1zaE)kkzP{zPxTIL60QՁNTo9@$_ۋɻޚƁ91p,öL톕`<$^EDxD. 3jw�1Ir$6zmש"oB7[57gHm x�JO~o<ׄT2~Y7SY.'Y,ytWo%s'w1}>IHI}" 4NsH<.e4s p:[qԬy ,}#b'٘LP25آgfE9۶,n3|ԥ?d5Gɱ1#0nj~ae~;~+xMY-Y<^Z*)BV"ַ_#qׯ:nTw[-_֑.{RBw!SC45JhQ]MRT|idFgaQܞhi'ǃ=C9M p^fyWt؏|Ir7EGM<gځӗS9 yvJjوfY|݉d" bSHr'M cQBP Wc5a˞>i {=x.U~&.3fZd>R?z#:&MmՒH (SgVЯ> ޢ5ĭ .Ft¾]'tVࢋ{@w ^Vt/{ ;�c00K$tҧ4RЛ X3?~$Ά k4}9_(~ɕ['K+;w_y#a `^'9ѲGq 1_dur}5}w} +dߵ]^iyM֘=DY DGB=m$oVvC#҈ĉ(jd<BǶ!S%½9oDVԳG}n =@YnrM0;mh 3˴rVc]�g 'P%sBrQrm�M(YmCa͕:~z*ܥkZ?my7(c,E Od KG{ޮL3]ĝ"�I?]Ĕ!n>e5CF<Z.eQU,vP#Y`EZ,TEN^S\ƚߩ]Cp4RSka"ubv&NNt |oحdZυ*UK'Z2d6Cg,_F&|}~K 6DQl9 #*b|ci.YXUhs,]wEKFI 71YqIIS0Zк-& %H7K: EUN<E)oZ!0RmF5- 7zU:hhz2'!$#w Ԟ8F h?##z.VΚ}(J5<KFi-L B+:V!el$}Ǎ4ts6O-6@�PNw ΪdV6yѱőR"q.H>ԧbʶ,zs@%vB~ChcYi;&Awn-ƌ�^ꇧaŖ]dBN#p\C3g2 %^XqtP> t"87f786#87|WҤe©=k-~ؼPnzAbjLFWJ j_z=2>)ҧǷڰeڻ#|Ϳ“2&VQsc`Oz46"ՆaMHN'+D[(|QqR ]hϷ5=n8l=3;<Һ +!ATwr7Z06-ax~U:P' .%NF՜}PF{>[WuՈe*AL&Ns_N{LhB҆꛶6xl|E>|iš*̩5%+04.OψSDoJ ֹd.sw|3 { �%VOf&)1cFw2a*Rrf^ȧ["4zo30:+t*8> Anx.Q!"N+rhSB1ẅ́~ڂ>Y3ݻ 9DNQMQtSC 2ՙ1QwPFnwaoN+ z%^Qar\/hS1{WQ'Z\n݉ qUQ)O$9X52[&6i) fǡC1t,#W|)ֲB#0ds;b%Q-A3{!|8E%$Gw<߶MIt />2T#@SR`J|[h '7_ s["Z\j&]ǚes(V1ۜ%G3JpctXh"CDqm߬q gT&g!3.wvY3p<S +8D< @MT#G\wwjѕGI;z15zXygYP#G!aE?Q6"| ws<l9veA9ɾ$0Hs%Un+!SQ:,Rgq +?d1ёԡFI2k!XL%a|WzFsE*ovXl *' '.w_r}mϻ^|rjo֞GY .ݥ¢H.9&ֶ]3rҘ 4.4&Ԥ28I%8 ܡ T= ;XpYJB.$ͧV?s/yq`&bA Aa*;7LX4| l3S0 !dcJUγQ96|5c[SRQEJ#$*R"䦐Fe{Pfݩ(mDt| 2“x3j\G9;=aq SJIRӎi75'0hSvҒ^শP&&N:[G)CaIu{~ݓGXƒmPޏ5!^2~(nf7]>̗B)Ounr&f}_y,S؄.ʼ|2Kk<J킳a H(ҙQW`30p:iD?~c%yz:M-q\%ylCgWSGp<WC=�ҿ}({B]VP'9OƪPogb 1wfsl\6$TtA{au:N2Vea2@534ײ3�S⋐}OHrn |t\BfX¶־ g[8l-˥Y"uu,-B? mpZd3`iOE(y~hFeJZ ^5# :t%-dA[pE<b}T\^BZzP-!֤WIX-ޙPuKB3,`^!ulBp^)>Smwzzaӯ]SɧӀ R-J ^'W"  ʮD$ɟG$|-�O⾧q΋7LSK̳{' %g./K?oWY,Dc&.6x 1 %Ghʉ, ae۲^9I\hmbCrúSz̦%95/qV+_\U -FXl�6 ʑ'c>0OrU ;6*Yon<Zq)oLJTƨ C @q[be򃑚k -~.'%J+ Ikcr[7BAaoaؖEou/zbF,OJ閬8% x -8yFv&5ӐI2AtJu޽1+%cs0=FY!΍d~1Hk9gYP/Obei+Qkfy(+^pħ _"|͓`;#)z$_JGZ3hQWl9/l_-xcv0{GlUqipL3ApSYzCӦ=vmnrpU`1A X/wM]Kbsm߽WăyQhm1CPoe7JI%n?:N-ϳTP&we`7^9,b:%n#0vdC:fWGAM {uQc2ZouzBű~!/{pWO[.unhF9 5i.f0ɝWU?~fK"h\;ibw.Ȳ~>@ 70~POϬ $!FV,%8 G [SW|0uXυhB٘G϶p\}F|<uiSʊ'rR¿l^(_NA Ej7Bm#?ADd$5ma';rg6mrʨv 86=#Rk[X=̃pu_cԮD _H膢Gjܿ ;�\ŽOVl.A8q]CG 7A1/┤m1!,'hJnxpd6e˒ZGZW~iZ?.%&g-+eyYw;76qゅVo"q d]69s č!j.µO/mWA4#zX-%yWZaǺ~*fs ,F VwQ¸: ߸nM U8j[j%'VyJ L#UdyP`iny ؕ4O*睰>/LGl,ndĔ(vM f1~9:4˜`gSbwDŽU㻁ŀ .);AMNWc.FcJ丰Aל<QZg*롔w2Cu>2.dXM9Hk]ؔ:[~zrMy*0_1Ѩ؀DXjVcD16g'|Օ1*^] v}.+r1).7g?U"#ʇ�⏿KɲK}O}t�K:.V)Ӵ)iÙ=}F'u 3":->X-/KP2MۭdPOE^FWP Lji:;iRbrόW} K⪇oa/#E˚P&ןN e u5 ڏT'fi]Rze�R}`AlgWr6!Km6*̰ɤ8xeb?@ܘP5`!WcVqcu36 ݥ팡~ 7҈7$&&HPE ` n)`1,,C"qs05?TLtb2 z u Syc) p"̈'S!_UUM "{/ DThVF.N?ՠ Ϧa}L1K9j)[ V_Zv!FTFj[&<RO Mo*fjU.!uYbYhV}L[$43nm#HLg&wс|^vѷVw{F7w�S^m礯W?sQ , BYE`p Y:V9z;$rڪ<FdFkЩ<3n'p9хϵ<+7 RaӋ` p ' C{epv(󁄩KO1h1m\pʳW+2#4[#CSv (Y�ݷ )ī=rl!IH`:l1K$m4U"%[>bN3*Eq2ӳEHƊdWGEV ]% %ˍ18~lOYA5JmdwJ! Nwi'|aka1XVң{PwJTH]iM8R>E:4?4 &>;=]e{ ho(?}"S!+id8- ,nЅMCK|,ZI`3_y|"%vub'˻m/L%f`8֛QL6qt'<iI 0`2lK_8YO?Z3b,,�wb٫б@Z#`vK~_a AO_ӗR=P=x# A^k0UQ('>OɈp[Kx#{@ժ!t%Qm>ܷD⧄c =6PZjϽA܅9jΝSJטR-ҲtGsLRq]dКmEY-X2_yC|. C3C/$P:s\?�ʩPK)8h!zPtɮ!!V!_= PHw3+6 $[[ICIaW^B %?ntݿ @pm2ݤvɓz9V$w od)OcY htD| ° A&NTK:jRj;#@>|<o-ޛ& RjƻlBTYu_F3*Oqh&*+ mq˯}ela>*1-xJc_7ni)b`aFWM*kAk!QFfhT~fN}(VgPTji- A.EFc-/#jjZR$1_(L1}Vmĝ$^#H_z ;J&jɑ{eρ|]zjA㴤5Z"uzH9|حb99Fq^2u:ۥu h5YWE[-gDև܏ґ5NoݞߕfC|M?_Me&Es<Ops, Lg ;im\AP.oN[V~؅qh!4$+Yn)ggx̡TeAtgC_ٗۊp#Lp"ey蕾"y&ȓ+jR?]`FO$&zX CTW$# &^M(q?xvM,X,;.);vi1b"s~Zv&ꆃK "LjZ0iDLji0τ&|P51xCjn`yC>G)gR2{m@�[+wtOO6bS$r"N{>\hu&RwRAh (̪YvqgBE"~Xᘏ]^}Q¶X"Z~klj2RLEdiQKTq9'3s8"Q)R›k1*xj#zب;lz@TneO]�D/K, >ʵ#zDǢl`"DfiT2\$UP֮-_Nv'4~5'21d|J̫Wzlڸsxzz�ҢKQC5D`q5p#n ,Y8P(OO2`ߍ}iQ+EM8~cDs&&7/R(KԼ]\Ȧl =A8ʆi0:T:h6#e)i+Úvh~lUU|:7z)~u JY<o-»laXl =Vg1>QgR)WtͮA)GҼpme"RԤQXn{jk.ţ4<`�ϊ5|�YL\&ǘé S*b{֋[eؤ1 :vwDZ!z5-萡Q.W%)͍N~/U"y[8Amf|ZCnsۨA}2tl 8]YUtg=w'(NNun-z!]F BR$pLO&y,z1&\|3uC9pЅwNǟ>N4Q(U fHU$YpPH/6Y;[,h˭R;#VC-*OV=EyWMBeeA<껦^dhטqhg AeU7D}ʡuȲN endstream endobj 280 0 obj << /Length1 1996 /Length2 14895 /Length3 0 /Length 16116 /Filter /FlateDecode >> stream xڍP[ \wwkw= -we/j}ZսJRe5F3{ #+ @LA†@Ir#E:9sč]�6�Vv�++7  �n 3@@)fty?�SZ�+//7�[`b }hjlP7]<W~K>ffwww&c[g&{' AZ; t:� P4]%@X x؀Lvvf@'{n<@h? p+ogcSS{[c;Od(I3x0�24q7v3M )0~?9:\A6UW&Kؙ\'rwݓcwdgfW fv GW,Ed@�' 7/��zZ2\/;_o{{ @_9 pqrz[++ d0ZD'�豼+ g߇ˬ -$IwU{�yl,�Vv.�l  ?2v�ȾwiK}b�?byv7EGo-_-?yuuy} ZUhrZoAΒ 2QGׂـΠ.�#+ ѽo>KSJؙڛ]l\�c''cO#~G�o54z=�f&;{w{y�s{'Γ,`bY ,e(л `V/a0+A1UjYz`_~f�f; ?]i//w,~o]o: |_Ty+_ߩ9n~�]HY#g%+~?/EWWXKq|//^;o읋ǿ; w^5צN<]wއ߯ h8oo1ت.Fqw\`rW+{ѩ6:+pV$yme[Fx{lXkJۓϳQn¯I쁉c~"xBFu=G�ky<(_1<˗GCwU˧c4Jf)Mp`\0.<Pgong0r'Hd|Ob؋u7bV+ٜ(tq o0FERdqKV~y|/"EfH]aDc:`ˬF5ֺ.`KS `$Ֆ5c9)}n3te0]m6J%\❮q&"Dju!ʺ&a[m>i=0YjrƔX,kޤj*=ʑy rr=-[:~q�,-jX0eB#$a'P ;Jq*2=+.zKRvPaO>ԁ=]ĺ%<>N귲�Σ�$cNEk8)zZ n<FbҁI#>pqߛ<XY Eڭmu</|vDΌ9nDQ`荺mW=물 `]O*מ֦pV-̀x2EN~oQ7rgUq݋wI{܇ Ӕ 3G`h"b3(se>UNkq|Q&@R<$־:Pv-|IcxY΢Sb&KBlFpaHa84F͟r 껰@m]a^Hcqa ,:܆[r]eX˝Did`{svH|#7w=E(Zl#ϔ`Z n;S,7IVW^426&e<'f)bU'gx+ sQ?w#} Nol TEڹ '/$J+'~f2non#i@,}mu8WSE𗂙+ABZ/2t5?dw:X/B|'L �f):59+ VgIPq,V0Tkte? 5Q~ô%Q?>AIu{]$۹^^;ZAUWI(U^A[�OǦ@ƱoOh&x!mp /\-47JW !s U\?uo˺O:ޥ =X!h�k6SM6$OXЫELʹ_+21͍N~2x-~"5"_*0sT{StNBqg|Z/ I)m^mnS0(.J?|D!w)щ&Z1\.ɂC>ʢVArLئָ{J5CǍʛ t]yavy܁tga`NfgPkrF 5Z+{c=+4ZeG |\h8dG& S+0^9ǻ{?4{, lyCKZYMxIWhfS&i|*):kga s �*GdKw3Hʤ+f*\I2zy6A,N3ef;@e/71YSh5M'q% 2;"#VI|1|U Cs&A@J@@Iy2M1AR c Q[~Fw,%妅O#vrdeD+J7Fvu,5WF\( O 4Mmy$ Kn $4dva/%:W?D/|y^jܯ68ؚ;Aabƹ􉊢 (m~iƳ;4m_dJ>öuMU-N4~xY]Y>;z+p,lqU̝^tb(RV%$<8~SsOsh|F^㹡!MA+d07tz ^:sԿH@/@ cc4JO#ȭ HdybdR[tKgƘ'JUS5.V|P(5xZBxZ/RބlzzpSfїXk?cޛ^j2G�+xVTj[WtdOp(yN.jm_�BX> *U3A̚tKWC0(`D8.0 nr>(w\_ƅX;dF2gR_q>BV,~3 Xw!32*yFg*K4w>.yp߰vLg,tq1&mD3<,r'tC9% TFDY_slJBG}?&agXB/|Uy(m[>jߩ4^0~%8l?iҌ{Z-f>]" [U' P"""(xX:WFh 5~ 'BL=bIkSUhŠJI[Q'\뀑iOhqW5Fu2.g$Q᜶}@;.B(fvu T)ϔ"ś׍WB�u8Oi}ܳy4p=5ƖNP^۔Ʉ[z1·G%Dܘߤ?I';Fzf)cT{Qں\pjAG쑄`yEXzKX#ȳ~;QJ`I_1`"?`P-<#>8>7ثTgoAq%nq WJeoӎ˒ _Gq\M$`WT* UG׾̟=쨻0RW.ume Bhn~yЂXcxS̲ttXE,5Zj^o;4A2*XGl;,'s2tw Vc@32慟5F~#8 #}t.mci|BHꞢ ] *Y9 O|%ԷO"Q&J4-u.ðRƦ&cp5މ& !cʋ{0PL9K,|mK\hӤho!IB;Q'ܙbHu|4WNR2P?-ǂJQYq:gT"M\§z(=|#+;IVE+^[GG{vVw-lp$$gN4c#5W.KNzT]5J./T5>&\_تv[O^g{I<<ظ)^p9"EkĹZ8蚽Rx4|HҜ/F$M*X[z%'F1.| 8ObYã'WNGr$Y1.pG� h]` B7pYu /um# 55NIc i:jgxR !`M 6~؅x®!k /u數Wå˜7< 1?J5"AyTLn1b}T r'vN-'F;Xe&?:bO_v?:vyHƞOos.CFQÝCg!,f|s3W5 V:hrzZi) |8.K젋=9opK6!ίJduGf3ȿ9@keL.?]� JHb\חVKyg %Kul:jK z_BD,m!ΣzxP7+"|8zHIQ/ },Gtx8P&0YE sDZCl:qX!.,\`4#{Jha, wp>;jFGx*rg,C*5R*-T!9WW> ΎKN;@ż(Z)c!rdl(aG`�#;$c/KV]ɝ2] pO\qPU5)QwI9Y Pm-%(||` bݭó>ƶ8-(JB[?&DFoM-PPv7MJdjXY ɚƲ_m\.}4W]#]0*m &VUpD,s_ ]?ݙx]&<o~a8kyP;ݝ޽|j⌴nNtbFXS[x;d?#&XHi8C )aȔߋc<2yF,ݍ=C7UjaЖ[`j5ؑi{k>b ވDʬ \*udֺџvHW<!ƶ(l2Fm4\&dbd`9H`ˋWKM +DpҊ ,3d7Ngptr)x,'e8GإTt``h&f\GF=cF-k}ND4-9Wseۘ*C%"0I g:LT;ۼ]ӑq=vD$e!꼚+fV^zH!kQh'- /UGt864w䊳A-[.ϑ!h c:%V *Ԫ6ϴGNY!"+c]1I;,[Z$=?`H9kPV8PMM7q*4I8<|_vݎSaB1s9kHp0xN ?oYw@rQ$ٳGCV Yl"TAux^S)V"Ia&fEӱ 3nseIj2A @(j-o>+mIrK$3**mX~.!䜎b⤑|0#HD9'\a :;vRtLO |%g/ HJ}nT5(Эb*ܿs[bNi(>1^"t%!|=spgǺk @Zfo|&{ZSx] uqWrSG0N,歔qa.@gur.kSZ 0jGd~ߔAWz>Wŵ"ƽg,q6qvm31H bN|kwgOTР vF yl4~5lVqy%^n5A2'A8 ~gQ<@0$4JSC7*W]q>*}(Hkk!)/κ*|@61;( ңzg1Σ5$&T<Mϥd«DfJdz iTi|)Շߦ ef8tH} 8yM~ZAwܲH\*DZ-1W㖻A-65g(wռG^MZ|7𕃾{: @vmspI-3Yk`;C+'FlrVŏt^Ʉ` N\+eVUmI7vo 2RbKXз9tծ"z5CZ(?ڸJ켵]#gs_=Sq!ڗWji&%%=%g5$X;\yELIg a\ާ\wc=il 5"# ӥZD& VäٖXhI땨^gʣ2E27aAK0Ca$YAd6KI@c|2Q:|rcʱ8z$C#4VOp3>A^EM$pL;ShkIzRW3D k%hHQϣ. LPJ<,9z @'[W'P_^Wz~?|6-a"eГ>NM o`bwߧLAA&`D _e-nqx7+o֏{fc7 IJJz?K~M(īR繏 aF5ϡO&h׾0?1/=\F$sԜHRVU$5}.ĕxܒۡL;-6~NʎћNb![3 nZRZwz|?j F_JY¨*t-tqAya@@hs+)I'Nb)݆> W*&?/lڣK*!RP|D" WTXZfλ:rt:RyUN53v8k d4N-BɔIAEvdd_(%䅁adġ)Y;QMrZLܺ)[yz;rKNcoV/g4>l:)jŢ6\Mcr8FPK#DeJ#nwR;3DGmwiVH9'/c35T3s#yB7yjжN5gG p*8N/BahBDa| r~",X爐K^3S?P8U{e(0gY4sa nDDhk \ �i,8o?]_h5@M_7X-^M%Lrj3xY*Sa*?B" լ;7?~$ Qۤ_`X4MVi<96/^0Aš+J)-z.ȡeL-UB|jw{C1ذ\�pF+* ?Ho)qH{L-K%|nJAeK`H^st\.=I ؿ]|N&"`5 A #! M ?n&;E8&}v3%u B$[O|8s*HK:^><ZmQkhZN˶B-@h'idg-T='\mv";}9S1L\-Xu<e2φ9[JoG8L҃&ї:6RS&h aUٞX81Ǝ;(a%݇x\S;%xZ(8imH padʉ*l`j=(m&楙Nv7q)b `ʢNCAb_ iUbg V_aM[�FΒ1t|]1j:q_M! $RZ@') N;4KsZXoA! K8t)Y8y^Dۑ}6PnFoDjFקL~8BKum~LG9N^D.8YxI9z:y$'(] >%Rh'JI[ua魽CaK؛׬*2(Bp1 KMjc‰ѳY,qK5`6A ؎sUΡ4p=(7 zUIj綕,P:hn _Z~V`?KHf8kKݱ@cx{\8,7DI.R siJE(g9)yo�у2 W WHo<m6{ɇv{ۄK{?=r/rt`.tLSJp(!-$(f3~{Vc_3Q8/ql/C꯭f]^VK\n븇b$}Lyw9{Oݠ4߈ O!㏟etY|K ?g@LD^AvI+BအdVȖ='YO.f+VY$^t€T.P(7Yހf昉O۞?܇.mZ.wta戮NQW =7I"`68iwE>iGo|"\Ɣ!L[J5?NjKMhѐ27 -B=\ mlmYg!/#_b1V-ʒr Un<GmjT#lJ4v} Cmulb=<Խo6Û 'ƯHY'S 8ֳv-vC34FC2zcd>=oDXh\$'TT 2ƌ>(谣&86dlۓ n' K&YL  k 5Hy)Dŷ9[OyUj�͜HPSM/af2?ꇸyy{|FMH UKWJ-k1TM+:00jeQbgxh~n?…yCIl,O9>AJDA<]0:nAuitoO@4:W֧_y*Qv̕*reMBҲ"1R%S=rͱ eЎںOO!}"Rdjܪ\8U|<ᜎ{0UQ᪳)H!Ε(%W90~q}X|TF.+9%-E)(,/9ɒ͢Q69/}k`5=~L$LnTuPNT,MPo| <BArZ] b�;�zF%,hC/rdQh?oϛ06/:#o@a ֑.K[3qVfBaJz ν0&Q(Ʀ8W.{i ?|^~C+Ot#V .�X#&7Nbšk4(D&3m9r}F|kpѡ\D11m]-rP[bVj$MO5zOiU RW2ؾ0a;=f+"&^Yǘm0gQ[i7t]zk);aAXs'-y72ºI3*DJ:rH G^<Q1RG`pTUԃ5{1zaLtM%evtś7ބ'M`^` 1뚲 o*߻UZ[AYpy 6F4Ty頬4Tz`(dcf#K?G8S}G#htZ.NB6,C4 |@DjWʧ̢SbFrٌ 6-,9ݩ ;޴;_ ?lC*! m0JuܶιuX =CvfBsDhm D33ϋV裌zX3${#>ϷO<vԺؕ3~Κ!܅}uZ�,}Fʶ*Ws {Gt^6^m<h~ NNn٣!&N3yt@X~՟r9Ƿ}jkVmN-(*xp~-g*G6Hvklv79t5 bѿ: |Έ>�Z%%LKHA/cz5H0ܕ\&2&窅uKpߊr#0~JbuLԕ9?AuT4-"H e`8Xw>/T/TUJ\ft�<MxJ^ do }L:X5zO뀸 {n+39StJ7(Ǧݝc !Ih]'J˥^m9{PXr*жڢJp'%pb zK⪏F@5) e<W;zpPn;^1؛ҜMM:牝d+>_`Lri6Yer8Hg2)mcsJ~wlAկmf|(,ڻsʠa*?H = ¹lvS\P^ב[47y6E9ED(&~n#muzB&{%48KՏQn?pDҜ~A<iYé(MW 2hVlӂǮRɗ S좦9Cc/]]{K* cBJ&r aMSfqfTN` JYd204Ҫn ҃蕳IjBY%[74[6N 7Iۂ32S_A!Dd^ޥ+lS#JrG a)6/?cPݢ}$/ėo_VJU.{Fz֑zJGzWe\Rz8ɯ8"/ȸs!9^BղRnOPWE`aL5xyn~SqE~ Whk[p͓*c[Gd@I:sdY44jIYW պB⸽ <bSh>F6,Mqc1mE_򼽿$&4p-3_]fmJ p|lcsMr¢ ds3ي' .<Χ?2 ?JfnhMdt ae.cW`m} $* JkTv;KU?&3Za_oostą5bDmX~,5 Bd>}( &typtRRQwx ^ 1O,]U81b"`G⻯ 7z,^`Ɏ-#y(jciUaF؜e$-L `U359Y-u[C8ֺt9֓3!ÐySZlA%XE{A yo[6l6-+t$h,]q[ndpȒdD:]IN1%K�`Fw fP; ]|찰jaZZ*-v  ) K3YF@t9]w]!0O|@홖*1L$#N)UX4ziC/1]#g4W]E%"lCwŊ6xgktCr=$ ״Z 7kuBK_$ wG&/]IY_ Y껑`n чQ%jJki$ ! ~+=݋20}ўkbL=rVr-S()7vaa TuT@۾T|L:JAVIpVֽ-3Сš0BX=na0Fyv΋"%Gyʫ#XcArXHxq?a]Rg{ f{GTشFcA#soޙmy$fL2�WMOi88gcyrwIIaٺ8cAS)FvD%׺'dB,+og$%t32q) ;@NwWR:dcX,]MOp@ZE!R'~JȪO_2^cQDkz/`1p;: ȶxV@ x%+d9rxK??f<cceIƦ2rr\[-e;Ų̩IqjOrvk}sV11 ״ Bm񩚝hʗAG&@W1W#G;<=Lu a](W6xȗ7!<<ua$I/R9Oa6Q敼O xV %U\"!R1x/ *L)9:&h'�Lp"jH Jbz!陂HV /_ÌΆJX# Z^@pHU]#m5{u7r;sϖ]bc8d<#|+ɥC-2!:Ry #,u!42'>+Nk Dp&/T7[ذS [n~u&~UN+O/b*;u&T?Sa}vu^;n>6$wVU(9{t7 4Ȼ{;mtiŸvk#vtGO,8h L]ʱm=Nq:08f%_rLi[5LqK4QUon�*U^Wvq]PSi 6(Β)C$7"ASDPC\腗6g$1qҀxap#;G)]WdW© ( =A ^++Vp<@ص\CS4TQh]`0Ɇ:\` ܳo$H!)*\oǗ Gqxz� -f9U0 Y U("NhDD b#yY Rۼw^<\YTo4OLAyqi+XS"6%`7'L;Jf+z,hO$ ښK{`b9ڹKgD5ϸ3^m_7HE>7]BdYGH{pzDz3*f` R@N3뜹9Ѓ%[) q0thLхFSYU&~xP[WS͡)-/W;7 pa~ 0=$ZGQm}5:/ ]!gEgX3`@\QC;a8SHuNKG0$Ȩ. (,Mw"/_A89>0?8] )#|pq'=[KUW֢(z["(C>{I<%& @Sh;\"nr`7rk̏i*K VY0g 1,<2OI.A!|Ӈ*Y~ScE1N&zyy3*ȱ.؂#ȉ)L$}i'lo`W@8glS0W?CIA^; c|Kě"/OL!VW/ma1LԲ289qMX}(81Q!6 Tio'I>F?aQyțlsmJ=׻JS3OǶ,\tXUOlo7SͺSQUɩVV5 *|FIBύ(V; zMG2`}{K= E"iUh!Z>j߾VŒ3``)m~B 5v8S˓9�oq_]ypj|�f5AxV8Pp+BRՒ]N(*W&ryt/+ZxPh<'z>$6[(̣ڵ{5[^lZnkP6;I>"A}aS±QI cHU,n+" HO+lMveEh$^B f7j"Fz7CnvB}u,ؿ<è(2>p2K}y g$C7r8&mHʕMm㉛q!8 G7D�%ЮoRDm8wI^,q/y NǫN;y|~FZc8ï_l*3 ҈6lJRU17ݠ[O(E<άJ`/1[Ƥ~]Nb!?\᥌t E=v t#{cIlM*2c8wǟ#lxfh^M$Uf /'z~@om CPin5QcJ4?%xl<AS9gZ[4*ٯ@~QhzfkEtc \fE_!I_+uд{+_Հz Gʙrv9UfƄ}^拠࢈5$;bGz%Wf 8K~TN㐝aBdݸzŬ`6\xmDuoTT=3xl<l%7 z[MWdziN>bɡ#_ZЈۢZm4t`AH\.]Uҗ6,6E( nVŰŹ> vӟ_%튡;q+i_0dJ onLQRk qDv:oA+Qw endstream endobj 282 0 obj << /Length1 1417 /Length2 6598 /Length3 0 /Length 7560 /Filter /FlateDecode >> stream xڍwTҶRI wBRTJ BI H#tWAޥIMʇzν_VJ<3{fy&=n nQP<|�M= ~>� �> >eۏb�A p ƧB�50=_/"/*GH�A/`&@  Y f�6Kv�(t�Z`�Mp%BP(&eB9J򺸸<p ;BKkdh<,�}(O@nr! =Cޤ8fw@u8�~+W!(w2Ba�+=B� d^ A�e�f¿CZ"($jkF_enY V;8@`($͹uv0 o [ur*qg AD�'�mik}WG / pGO z O ( w7}s(~�_Ln] }żjڏ9_Ayy8-"� Do¬�?ޜ-l ZZB�l& >a>˛/3XJHw!n댺Q&F BHW:;wTQf}hnq!?n(Ru(K?KnPDz�+v1K򆙿C s[%%Kk"�rſK#J0�^u`GW�/K/KoKGč妻ʇ@Kqm_G=!7w h_=Q:; -m |33H h1H&}pXUon~f.[SˍSs9n<zTSfjc ,FLLïX,_ mR}<؉W8K^ ]LI~)&Bn>aYnSd9nf@~֓eLS]<T9M3 <"!g5iS.kvFiڅVu5ú}Ը.TFʤC^],%>U3:@͢Є7tDRE^lº'҇bf&׭ڤwUt鉒rH1Z*w[3!C&]M Z@^U1<But1B:Ýy2u-^o~1|!QbV|;ޗ`z̴Z%oK$!&YWƻ^p+Ip#c6[BHξ9%!u�ѱ2Fcٕ%'w[Ě `NouJ dSJ:`Xᚾ!?e{Z',}Ĉםk+p{k'Ոr lJw(xQm\%,))# W6kMyZglp Fy=#+gdzW n Qk[N_ѽvxELB W}m:l^mS Ԣr/K \ 4Xku\eexQE C c#Ŏ}IToN&dC;L"\lռjƮ a% hUy',+Ŝ;l#p޳ޠ"&$JٞϒFI1IX\wrڮ3tѰVw)= Jbln6[ ʆLO1[UwW21dr OY`|m%#aࣞt\2i/E2 mm𒟇Ô)}'qҵEJ|e˦=[hmA--+vS<{y)#tZ|M7כ ;ӂf 3yEn&b,ż̙; Nyr5xED Hփ=i _~xL67˪ VP^$`=p^o:S]0U*,m-X('J^z[fe8ua:fŀߴxc`V0?39K5qIڨIc+.g}VrbB(nrRJɾ^l4KC/=L* Gb*џE+}Cc߫e|IQw)J@Bi/.5lp=\DFuݢ\*1R)XHQJ +p,pgG"TmS0/MWܬC^e1nvBC/.h0 aJ޽B!x7s3 le+c> 2[rJ9(6Ou31+~nBc7P=+u Tk;ƥ\7|tE)右؉]t ADаD~j3NO!gnif &GbhۦP +٩{ʍ[ Zܳ֬Hj dpϙU8h6!4Ӭ.?ȹܹ/¿1P֐@76(kmѨ?#D>Qn#6ŽI: /Oȃ-m 'ΤJzwUth5wT,}$$}~hDf&,6>gbyNZYh[I2T>Sc9/iVxuLHTI`'khI�IukZ/摂{]VHͩ/r0EV8K-kG !M㳨qaa 5ήWY+ ~hЭ;t<6g5생֪w tMb7lUkbq�NO-?( ?{1<20~lY]j L 5H8bO bGC64i{a+ xs_k Lٌղg~Y,ڥH}'iP64{z 8x?ܸk['�c!C~H@łN; |6@TyfHN|}»�ljFaqL<;y[0ʝ()Hnq赼ʝo~/\gʫOf YH[FtA͓�RrstȚ<N@ܓPVSA)E.du?n'T3:+MȲ{1 VZYniQFBo}!s+!)HIKKC.k<Rk.λg+ 3>?N.t@R鈌`ĬSUP[.N xgQ{N(& 5H*ϵՒK;]/($?I:7gj.ڌhvͲmzdcX)S6[я1]!IgQYOq^1ةΦ=CҩYf"/y OtI>֠4Z~;L^[Y<{:6]>�{gFܨ|&ѯFiy3|m^^zF$e؈Zw7-q}*UK@6@w`lOL ,L{}E*jn[Zdg($")D3M'q%S4QUk> cy /io׻ŻWJs9 lWǺعh( .:ʼKOWH92IQ{"6+ n.CQ*=bOMٽ>$x>]Hx0,"C]H!N~-Kj+nF8iMf[n�eф~u6>Qm<18.AT|;NL: ۵g+P;Ѵ~q]~#+ *E@ÒFGZq<y@?c:aTvL,gHŌ\w}ڗ2ʤ.T$< Ғf`tp<x҈ H8V#9y2VqmgtvV-Q;n:}h[eV\)ڤOuUJo*"[`}8ǹ;eYNUOəX#|(#qJI|3BL`&0t.kX=akQh'?tJeUw0վO_,f޽Y9UT~ tJZ/Mc;p+K"Ύ*3qaX^}|vWCa]F'!>֎wؚM@RDU.~IHb{s>|o _wN8fy& (E~%3 nÄ囹"3H@xWfGpXs8:R0Q.p&\glVqLd2848 dRe*Fu $}nXS6WipqDɍ<~1|]|$a<`6J=%8i}*EhT(%|۴z15Iɬ1,fVl'"3m"/3ɭKD? KIe**.q궑*<Hݩ S`pH~Q<7nU; JfNƉwPz眉\hN0flOYǟ1# v~e䞿N@O{ .S?5c2*^ż~w.HyCaլPܣ%x1ŗ5`]?uLA5_3#!0u˾~#VgLg^kjeؔW=Nd1_ըcT:$%P 4(!ޤ:)Tfvuy;۲XU/D+.Mv䟯%V4 {{i6T^i.fGv7<N TJxE?h."Rj3g(HعDVݟA6a>7D=O=tm%I0jF!ȜHF8 u2LWPT;lŕ4݄}έtlR*b@twaoH4ĈHD7 ~BxdLѤ;2m*3dR=%i �u6KIbKuI/@nk+L&%t|9dXSN;Ch=ݎM? H7*S< &;-DWZj)qtz!wgv>c[w>ZRj6#xtiTj ?قvt`;/M?c=z&έCo48MUD.3)3IgdΓ>gWly2*tdZط_YM.uDCWr<; ^G|~Xvl^gIO T2 YF^\r8ڮvf!A tΣIHXW pa)e2sW(O>jR1\2lZӼ#r 3ZDjs-es*}J'KFM>ډNn5wҙv2]vrƁZ4j'ެ7<-eks4%|y].HjBmO7}ֹ&K}Ph׼d&qPL]ѾZ9�CMlݏ0 x c">GFmc"`z8-ggԄ5i.Nf5ZZd2t:W3Qy%F"PQб* Kpʑs}o_5mq&8`)3b >gRWOfy0+U}uPi}TP}񐪦J|ШqsmH#`N[w >khgH-cYD©|N$`P40xǦ4:2ò4P.J#jr=,Z.'o ,~{0 79pa'!2MtU6XxN\vJwYV&|껕gm/GiAY& N?**мr=_ωD  ]bIU䡅-t_"4h+-{8ht<%7|: xcpJ07/qѧj>`e?tB_ u}Y v;?VzbD{:h[,]gY=Ϋݤ %Ͼm 097W% .<fm$nQ3s)=adH@P'Kmr>.%1jJ0K`1m˥3 2*)IodNFsPQxE/y*Q ?M%O8͹ZT<3v+?i*XG.JmP [l?Iub Wk^Zէe6$46IWF/OQaҾ@TRy^]\|zXoW{8z%}_6l%]�Z5/)>3ԱXq p5ySey4 =~ϔj,ؕ"b my{J'I})3LppycJhXg"?->y~{Sk~ CUo0j̳B3M 2G5$LCι_dOOෘy*u{a?"FlWDhꙛ6OȫTI8jϙ3jn9DI}z[:;Wϥ | CYf HU8SO A:o5Y!me>Ur Ѷc:wg[e%\G~i8~St{$H?^I֊I:V{"*w ꤚ8~yäq`Bnގ2켇=3ɯaCA|h�[,#Rg8\F'"}ϲwr#f.ѮJ5Is7hI 7dY<x>nQ^Qd {U"uG>~/OLj`,ĩ~[8RW.R@饠քڮ/~u.~ endstream endobj 284 0 obj << /Length1 1409 /Length2 6548 /Length3 0 /Length 7508 /Filter /FlateDecode >> stream xڍUTTm[iH)!HH#030 %% 2H(݈(-((- )- wu:9sXPa@Q"B Y@UXO�Ą@ QNN Ly!-@ 0Go7@D �QH_,9�B"TEx#aN(2zx t@Ap@rcV�cE3 !+,+vB x�_0zA>P;dB$3npDP� P&�Ecm= '@�ko�!+W!w2A{0szB(?��; y!0`0 l 9P 15 @y y~( fww(E?5 lu#|0!=M0Oo_!o $@ �~g_M="`A34x}� Z$"" N08109|$a'~]~w; +kX> ()J�C s!Ws@OmW>/qua- Sw_U/gCnn< v!7 #�}F 5>^m#ê2B``CA0nKin08iE@aq|>0be/JH`$O9h%`�Md@X@aR�̈A#IT%%a_K V%  �a?x# ٿEA!$3ZeF_QQko⎈V| S?;+V~5H%՜j/K7؎hE p-/=o5ݮ.K;1 ~# ^zթ My'UλBd87p"::U'&;oy(3kl J,T. [aܼ{#ySn \Qqvc5l!^;:6oO> mᶅh37Хy%ߗ{BVKn ໩9YCM n�׊7p 8<,_0ZjHQk:x99~wK1gᶼ5_=v Boޡ,}cM- Lᝇb}*|qv?Y%07T1m^ZKX%gxj}pr&ͼ}gn=@\r m0y4nsf3}$}A6ػe'܂v/ۼĉ"j?E,VlVғp&rRw"b,#L0T6.Ē"VMnP[~<ԃ*- ɞl=N H%6FXsn@BIĭ_AX)ug~.f'Y_hni:osŌmX13e퉡J$n:.j<a0T PDsԠz?)aǩ~eJK M׆(ΜK~{%#a|K3f,!XI#倜"HDv&PQcYD,+s^9׈f5 bb/ߌedަ$V8{*;Jފ2im',; Gz`PѯU;Ōd_G�^{c)zyٳ hZ6?yȪpBڀ�g| ©id,BCY=3v[;crk?pDńKsQD"3tֈn8=BJ:Ԫ?X">@Oy ⡓$u*]].uQHW=[rK5Q4ދڦytgQPLs?YR,~ 㥙yiJz(=pn8ۃ782~G6Շ ǖS}BFH/Ce6 xBѺ/(_;'ԩٷ`֏E8n:MW8K7)xxǞճX4v|!m{U?\L׎{?4|7&.RoAL(c)B@o7v"q9pgS2-.{f MENu/܁j"i-է.)҇B֔5?it* p*-fGP "~n"0Ԋ wq̇4d3(UH RWh}i p%\y'v<k4vѢs' w<-,E\tU#9a5:a-,)\/)7rnemTN/\1t*5#=ޭǂEծ0d9Lζ^7Eg.qpg^~>/v}Vzr bw- `dak{  )řfߣ̖ͭ= ,g`-+#] {2t*.>| ʥvZ%-.D_e՜JWY<iuSb~rm_7`|ȃ'oޅmJm3I oPt`%QoުVG{۟6N{WJwzqL8\<v -vwW$pc]LuOg/[.I/Z)U(9V[+D)P-xU>s5}ɪց|s,QZlPS}i6jޭ=5AA7D'& o{\%{N)|&((:pBTZ??CBvU3b҇R&!#{6XrI?\g8x_z3 f,ݯ=1.~p"sJ,xI+Eqc 6Zi{F]\SONWEjo<yYx5+<Nytq͏_h ഭ[Fݲ8 ImZa`OVEky'jRŦapG'ƙ0jivwh$ÃDD2kG;B&{o[Kk X|=儬;y2<}nHCE4#pv|͉c/+FD%E'eSzyy*Y#CpVY{ȣZf2Śv_ЕRk$Z"vV,Zf ʍYXzj.th'#x굧 1 .\e~8mcQ7Z@ۛpZ͎ub>RyuY#}Bh%>RY̠}@xӢAYT'Qb=�s"o(kL3u9wO"n|U/cI9Rdd5FObWᾹ|l*4ynpn>GW;s=9mѓNyh,b6ҞўKOmԕA;4 SH*j͚tQ1gԠ52{͇0Y\;o%W. _k:L/ nrTjj;ɴ$՞bT6ζVpZҲDNz3[);CҞ)NcK!Mh2Kɝ(fΪvE>n(IW?E rIឣD+a \fm;"Ix^FSX~jIjAK2Խo/;\EXfFLߝ2Rq~L‡B_(�"K%ow}}3>߼H;Խғ 7l12*2>7hl^3[qh!-37Q8r~e*XU[1]jeS"m4wB[i$Nwއef.JHiVqSf^L{B6.ݲoG/gWဟ"tv0ESje`Cww5Lsbo_';T+К80bo("C"S0mVV`"LGH ЃeRT^=n]ql _ Tè0{gQƖkCS)Ydkyҍnd'"9ّ4hqN,}CFe J>�9-.,FO݋<9ŇH {vӻț)3G |T ~ Ƕ|}^}iYYmZMB22Q pՁ-qO<^KVmܽģ5%G.6Ҧ⬻xNO^_{_.^rgCA\{懮4MA}v>y3]Vi@VsuDR^ʆۊո*CxzX\(P>l5@c8 57E{uS/R0'~!Oޘnnwy9&u)2m{|>7*\15-ҔsΈ 0ox0AVt C|v,^og3LcwIL$TzH$A.%i%,l#cX_Y*f"Z6qE/9W5ST{+6&Ǟ f` (+JT45!ASw�}VC�wͥ˯g9D1Enl?3y/Lcq YNQҞ}Dj+ˡĸ@~[ގxMbV:A=<R.k8WShgTkJ .R92]*M Q6"=6m=+<ꞯFV_0fMU$Ez=3k* P]ě;4~eѷJjS;c]ef#tF;)_6#'g֠g;wk]m+Bss!Wߛ'C$ncRk }_ V\F/?~܋dՍQ<(yL;j)fo"? zҷE8Dx2RAqH~Jqz:dDS&Tm'M'Ü/@T[DK6ᘿ'X%Eiiw, k HB|%[4P{}aJ<4#AD1[6t ?8آ'cK|]8[W{IM$;q#g&/z*~^XM^{{6a^`K+GهBכ8ʽ=ML5y x8jM& ?wpeۣb ftu!'%E=g$tsElu3> ̈́lF^+IH,,\kFWS1{|s?Cn{Bh_]>B^9m攝'BFhZU}(Tl �rykl9ݗNtdxL?阉sT3(r3"rB@8&f^*62ݲggؠYG4l\[[KKh&ɽ)¿*BYو:i\Z|Xr1!)t:>*~26v['ׇ})""ӚpҷEs]'9>J6*pA0 *% wvy *<mѴ\5$D&&b4kz;pHVIҭľe你^3 >>~KG3r_;moAj 0{_QUM~`niI{XTmi4oDJB ż޾㔠4?qJ1 ԋ*?_e@.m𒽤EmIʭsYX1]@tCTA鉱;} pܽb{vcop8;Ir^^Պ缚Ns]2ԭo ޣ^7/&:DvGz:l h\8ix4 YM)]4;#,r@S~=ڬȘ م#]6I <[dQ!l\ڄM| lWjzVڅq[Cw7Mpr8;-__ۆeul Z\"04W;X˴"z4ݴEI5H1F'j6@hS:Owܳm[P5_Z)ɣfJ.~G;W)l~V )$RhY tnLdMa4v}Wh0fw /N?/6,_ 㞽p@$ȏ"n98L<S6?X| 8<m?UىpQkpf}%-MPSإK|tL)7�Jn&1 op-i$`j)|݈#8[ynUfN0-UC< 4Xmc7 MWFw;B̙[MMܙMR=%v[zZ>4>cu.?P+a�ZH ڻ*tޭY3 YK6j<"ryw9ʺ&&O/:(هxݭoȦ׵DF־RiVўiX8Hc{<]LЭ'�p2:}CXl@6w s:Z!K2fN=Ls| E^-\o,5/!@#>\v57J8? %fedygG[odPyi: b. EИ=ї =�p J*knb5&MThmMT;J-=Xd#KA:TX6 IT>o2Z:?8ӷ{xy]XӰV||ms Mjx[2Nô×䡁gih|\椵ɕZm€8фw$r˯/ &V4C#D (3Qs,3;U e%E[*\8k_P7mR Pm @cںp#޼FhFp'iؖ[A3a9IA|Gvy eͭ@sxD!ITI;Ѽ7Ac2x '*q}P_ yb endstream endobj 286 0 obj << /Length1 1930 /Length2 14294 /Length3 0 /Length 15489 /Filter /FlateDecode >> stream xڍPҀ 0hpwwwwww N],e9{yսVwTE@R`FV&>,+ JlJ j/ q)M&a ~3Ttt�ȹX\||,,�6:$LݭL�9G+m<h�V^^n? k@l[hjPwZ^F vcf`2werte�xX�j W;G�%S{ߥ1!Q4]R;Z=L]@75`rPU�(;2Vˀ�XXo?Y;l :;:xY;X,@�e)&'``㛿ٛDUo]+ jmGyfIsqG{{$]@}bpm=|CaĬ`Mp�@�'Њ4@*Yx+gmzAq5u.n ?+XY@0 diO71/~;kO>[X1߶FEBBs0s8Y�l�bjwup>'e{o,%ǷhitNv_oFRnvvi2ћ[ymֹn)Pt|k ktAnW+ 6}Q˷fd`bKn*e 2Wꚿ̛H͋ކ hv* ﺒ@G? `bvo a}Js `frp�jX8 q\�f?DY0�2ЛN0+Co=_a0CoQ!�-?z /q3XwBV�3_ſl/| gO-rzxY 2j/||Izo9`�#e[LWvZNoYJq/|� p/|+d{KO%xW? "-;CmjCEy0g@Bޕ$tS d(5+~눭Vh73o{$Ñ/N=vsK&W"3 ?>H P7UVXḧ́5 OÎ.RFtfCBd8D>s{`z+!C."yI n$cMU[h먺0ne&t:f&OFt-QKJ{ʤ~2}UJ2pM͞,dnPQY`"DY3@,Ok4 zeУQkrMJZᦏ>2}`n|QsB8k8z9Ч=m,7Sc@d X\Doh!N-ԝ6E ]wŜyn! 7|  ~mf}Df"1 o"9Q<'ntC8JN2ʺV9)%D#}6rvRq?Z7m+v^w쭡S,`2úQCЊ*~nP,<wX_J3Jutg+t8}Dp8X,z4s:Dt1G*0/KV:/DL:ӜP>{2ȝ[6RI>!)XUT~{awp;DUծ~+y �yv&-0T=Ɂ1JVQT,&?7OΗPots?+B@xW[hEg"CeJQ=3Y/X$Vun&pB\hJ~U]JH$67ntrڜ90/(mfc$FÄ6M,WY 6pa!l!;5AITuIe=>uզ(yzX:Ik}77VEn*ŻLx<0 8{5g?EIEZbsPtIՔg/d5_d?>dI-ʆBgtE1IYP#V&|T-?ƒ6~7SBJНS}2*CHbx'dz\1O}%bOo/NX=Å#"fqG;^yXmb_!&>V,`#6sfqG.n1,z+H�a묑a M %S}" .fnw{ʘ9)ZWRpiʃkDD(='1<30H0o}OeeDËj {@H2~֭1v2 :jE'C�Up(F>v: B<J/LwI0y -[t,.2>H.zuȢal/<�u܃O?[Kg̵PM0 dRXݲwqk&WcuM?Xr T[Mqn'Km̹ZA[zVn8NdPD QkR~mbqP Wv1{n¸/dد,N9T3<گg;o9u|u ^<' �ןgUx#]!m=N$hQw#!8" PЦ/F(٘ɏ!q.-pRѪQ ,ٔp'ڟf;#H27ξJU\ > 鮌*F2k͙mUB"пBVkRȞ^;e^a[5�za{1]TcjkKS~,1ְ,R8Zlp{z }z/cY=>e\7ĸ;t(VM]`ȚU4̱%i>ں.יiP*p3Tp"aH) wQkӰ2e/ⱌ&DkHɵa,Y7IGaw3ݮ&u]z)~N\*v$[ِX#~ $%f;;ALD)c.[!MP�qvfΠOi1pkV3^q9!A;#E) GȉZtoĩw},-%Btd�T8'z6QӉN!Z~9OSrl^L;@1X |A]R.)x%t8`;75h\y~Yȟ0q*}V ݗN 3{%V*yAf<}>Q *nǼ0THYXc}-WF򚘲+_v-j] :?dJY{HS Jģ_OʌvB_ s]럥"wh_ 95$l7޳5D9?.Uٺpf|x[P'&n,ef{lbe,eϝ&~ !rN~xa8u6ì U3߈I8|g-pq!_m5K&黗73(Nte-U)~f;??kkӞ|TTSh28v|.b$8i*Vx[ѫ4'jÏМ8u=tT؛pĜB|nf>@7+yS58.aG}9*G2B6v~imqHdžǨ-t6B o;,_fE ?vZ~G `+\ ^,7ex`θ쌅,�b0.Lm beZT-"Nl݈ nzU3b=&:D{$(=#N*Q]@{:ODԏ/ƌuuo9l[lI|FP'7~y`l >;4E㔁RdfdEo*5�sc:7<Zy9-m :)F-RkzV@0qڧ@9q<Dg+@.>E]X8:=%wuj9QUl}+$ϐo^vc*:!jjobYxhZ֚Z_ f(H%]K_?g-|�ǴF&7IXNO-0][$s\a_9::" :8=h0/5Qh1h|(C~-%rR]mho4w�f<6ݽ13O|@GĒY6<57FIg O=zo"ai!Lp/^Ps6^hw?>h( OV۪X5 _V|Ԁ` g4@ L]ZX<QPWB\ X-%Z֤+UΫB5a_g~N^1}ꌃ51Vyʯ> ~R?MxiXX1<U)ʻ~SlʵJ�@W?A0ʜQL XD&c܂L畜bmKYr~Xv4`fǀQ't\Q,&Ǯo^G?4h<]]�J6M[qwրp s:9 mc AaMEn$B#͇G)Ri"p=1iNc(&p [XG2xwfL@쑚~{ت'Y {=g"L4D`wnŵ};&,ƽo6U;jUMf _Ta`vўul9p h1?ps!cXN$Ji4CV7’Rh#XN죷z#jGXMeD\il{r׽s8; ӕR'by1"a~OlyS6$8h7M" ;h6PrԺåf,9Wp)SH`IDGgN !O!odA2Fck&N*7mwrJn:E{Ʈ)ovב sjX+I6잫T�EUj8kNָB"+DS=M ,C`lyDО"P>T39$BIE6p(!\tx' ʛƥ1 &MU2ڭۭQ!ŠT#zt`8C/k(㎽ZίI>AzDHн |q6Fw-裗[+ޑ^jlMCZ>WZU̠]-U%!monzgӑY礅&BB6mz*#W%h`^n |FmA1ph/4u 7;|K\5K R@g8jIB'uxpSa|]܀TKl_a#ʐĸNl=cf̄ke˓?r8_m+ԽźH@G m~a'Ȅ9axP(xZ'&y�+AҦg7\>?, Aq L'l0W,0cHČnկpV#W4.E_"�0>/sgRoKڧ_:2I.jKC! 2I|kK�BО qQPD3gn^wQ;V#\iiWanoJ֣?/^h&*I-9Hj9옻uԠ'}e-B}Q$" 9C|y W2෉Aj )6[Tә|~ZI.T Gm͹UXY>%RWp$+E"|d^zz t1E}�.Vb!_tiq8FlqR¬x4 NēhɆiJT^9"+v=m/Y,ґyq!Ы @fCd@TiǏz+)he/Oe2 %Z'M<J-MA` Ju�$p硬I\vBR j#&xDRRޥKJ;3;j+ vs>vd%Xz335y}"4:$'} <=&?,hDN}]krmbD 3`rήK QE2ڐIk.dZMLǜHppX@^!mCbfWk6-߰)UpWBFc ?8b݇vm%r,ddݤD|qUegd?%bAg`v9i7c> ;zGhSܣ.) d pJ'ut+I{@ &M?k􋂵O "|4]_;T/>Ȑ.עP‰9)3TY4[ zyzRTSyj/rax2B vewB>^wH>wN%3)';)oڸ3@M'F[bASrk)v`.8Wgn4>'&cGM6w q |Vs4ˁ.89me۰ gج%Q9)K%w?H&H".&m" PFqQw[Z01r/MCY0#Roް% (4HMU2Nct9E3ඞP9N,3�5YKQ|P4ygoD=` 1e xK/7r>ZeqZP_#¿9,|i};p-sޥ=*E_?89H~e}Fy.7WƼm 2*eŭzX,G*FhS89ݠm7^>Nc'�MzL~EdBlF:"*YfzK-kYYhj uPZ&O*T1@a <DoTkxWPMng1[q 4?-"m1h<rqr|ւ (I>Hdaz&~݀,m@Xoe-N4 5"5 2.1|݌S(X�ghv>~[csIf.Ĵ7ofqd~|/YBĸH`:$୸d$:P>R2>= XIAB$f ?O^|9\AM,�GR;5,ލl؏ߞ5#muOhFO[5(v SOޫa&xV7-45)OTSbcq_BRUayGu&,:OZzY&Vq!ŧJDyc{h۩+ڈ\wiXmyiTM]?s\ldQ$R ]S$ǵU(\##_UTDv؅mU`k)4tGKO>cvHlh ,_XB7.m_؅,<"iP*&h17JDi4zl ZUȋp,ܻjӸp-qn{vB-rB z;rn1ȗc#Qz];8K gaq= dޟZ?`3̤~" ~MbWBh7.TM cV'WI}5A'Io~?WnEY!J|@>Wt'؛G}tbYp1vbeڎE#Zjs4JOjB:7m&ܖ\Usev#LR˔ŀnM:gx᧜)w.%9yQIP+-pJY�Nh~\Y\ ;,Tm0j\,ae-D5G0їƕ].SRׅ{MbaDr;٭U,-yTQXR!I/fzt>K˦_&.1Wc]MatTIO0O*-QM'`^)Ïo0:n4cpS&Brk)SosB.+wʮ/n*" q7}w :Xi]:9o\)h%`=zZts|P1oV֢\o([,!7·uR(نMAĪBI5[ QKNtBfyU_1oG,M>b4JWtrN u{@xZ xZڏe:uW/ q2gUU Ԡa]%V2q 5l1+VǾpXW BmlfY_jޒSL`ٯ4޽w_A$`/÷iC0N'0'?}uV16M'out'[cwh/3N2Pɬ޺wT2D$&j}a8ix#[q/Hy!k-+G"'ʹl`;>" BVż!TW~<I'yvK -iQ΂Xvd26'lg]Mx\X2KaQ2[1!!\Xk/L3WoٮLWK/)qKϪ2}Ze!;< Ѽ>E }W] |]Ͼ@D̥G no-3ps^_Cw+)~>~Ob^>msb!MX6k GV7iG2䅓_000p,w^qYxEpU'Fw)Ә|͊s'-R1Q,Mɼ;J/i4I"xXd4kSkID>J<2-^>vf"`6N3#bX^Q'M:#%a9[1(C&`b0ݳ|Hk" djA@eaԧSk(+p!aJ ' U<7ʀؼō6:Q|3!a-}2.Bܚ8{i荙SR"IB/SE+rјʖթVζظݦO%[aO]>MwZ!/굞l%w-5H LBWf'1vw?@.:"2 -pOX^m&WȪc>aVW}}D{|=[/NY`bz4 ѣ7):1N\ZjģCG7`Bj.E\dyw 4%Zm u6j ?񪧴[b }Uk(4A2ۣ^8f$J#'%4f#(8@yњCINNx?Vy|$ MJ T2zլTCu!/ŕ5f}oUhM ~XJxS֧+TcNje[~oQnoY MU`/nwW 7DmO9\ H PV=ޯ\'A[/0)Qޟ#cMw]5V7̮܉}?5Zڲ4wtX(l/TvuY% \%b#0=zyc h9z8ʞAV)||6AW}= RҨЦIwm'K'<'tɜz ٚRb>^NX\$\h,<^*Bz(o\2JL8+z')tcDIЅkV6nft2˞#OLG҃g}(ZN5Df,g9) _T{\Gx1Z"a+y3 ޼]{ӈ,,tGNXt�EXC"&.LQ$mڏTF/1sKy< ƹ<&bSxO}lo$若3ruTh"qyW1*$0ٞ]؃m_]4-Ά>j|8r}֭dq%4hyT/ag"9Ν;D!bBe)},)Lj;5nvVP {bV9*&$6pZ۸;A8cܲCp,n+D *Z+S F~8)F!%-ZˑfwpXr2i)!ݚ5ܸhfKpų_ WP C,At&^SV1f^X㵸ݞ*:ٲdwTmUi2~\:'P {jLY3J}Bp,Pa.QͨxT;"TbK`|ÖW7fZ:w&g S]`P52#ZL6̈8ˊ|2ULW)zﴆRB1qUObo0!b-,M[&uR xD1dxJn.Vo@!f.yXcCc=vtD,Kf`~5Į�[x,Ĥn#ҔzppDkb|y86+^}Qj &p`&^oK[7Dn[R]cPZxA0ۢӸ+-Ku[E͉TtP3c4*q>>9@A 1D! ׫7y}wJMŁʎ#�:QpAL<Ho:%S1^p&{C:e L+Zo&qpDyϭ.ruv%34=#N\PY(|F=BGB u_66<^\|<l0M# ]agMe]afgJd 1ُ2(dHNUOC{lyPKYe;r{2F .1kHǚº⑟3-ChUMFrG4% M^Qۮ ?;Ǧn9#y၍v/M}͹^: .B0W au.G;堈 I$\iΈFR 䱈{'E5'1s٘ZJ\ ΐsʾu2II<<1D k8>J;~;3AX__ᴆ*"M\/F~Gň3F<%֘dKГDpkQ duxOH71PF1+*7�LOBkND='Еc rAW|K v ;~GC1/AV[zW@G9 1]c=S(0{ыc$~Ԇ)#Irԩ?Ptn` #[PY8p&2 \6ڰD$:DYEj0uizh�)6+ IRBRaNe~Ctq6flT>EVVKj䯚~<`>A@6|:j2.&KDw,rio, I,1]"#A|^t=C$-؍Ȁ@PLn;c+I1A=VQErD k-q>K^v;@?&j dEs1/>?v$jMаbꖍ*O^G`r/;Yug&j$sce 6p`Bn~ kI#dg06M*gep1x-W# *ITy2.y|DO"R ֻDwHfG*Tp aOBD:˷V:EwlO^{qP$jŁ3O�弄:DӶb1e_!u080V RUzl= x~pa?i/o}uPK;,ӲBnjZ^!D'cZuیٓNBfTf'wAL<17O#`kVM&I(&<9wUeG9Վ}/~Feށ�tlP\W!V=fůV- Yxyspw@1)1>ɓ XG] {>n=u DB#-Tn8׮=tCy@wGSqϧ蚒hM5@X2SA,烓49h'1>@mM x?t!m(sY7ob_VBr+= !kDwYݓ y)gV|1ş=q?]gbօu %\KR,Lioڪd=k( rޕ̋ry18J8x&J #M!p=UwsǢQ/�] 雏 4bd`a[|H'|BsDc6]3% g!bD*c݌޺uis ~V"qmhx g%O69$ҎIAc%3hJDNfߕ,01EtOf/x4w<6l.NjTXHJ) I:ۄL ;־rNNsed,^B,-̼#]t(]7ӠIrw Q7Oq0'^$ #AN )hJQ${TҵwG#Uj%VYz/ OO<|2C\c(^_41lʲ-#1+-O<xBz@ WSlg䲴 b+V&)J2!$mnTΘAN"D\TfV>f7,| WqQ/ߌFjWm<fo=׸W'BC1 镑pKEUw%1;LXsӭ՘Kt;az#s झC& F7@I6MZGfVRҘ3h؈wCWߧ(rU.^Sj߼ZTz٭<ta�q<]kVڜg>{kRVIˁTtX%>�I7#YDThmZDt!jv}1{OuⰋ~H],iO7},SVm&Y[e/.y8i|`%צGXK-**6m%q6?\u)&WYmL~)i'G7H5OY HU|W"K2ŏHh8)lAV]VM&[eCtNH|ފ:OLa(Y5(08yfy $`/$d~3Y=/kfVm `ޥ6a噯⺵^ 爒$A}SEGM,o8lؓPXm}x$F~/M]LJ*3q *|u=ߔeT" SHJsr˲4w@zD֢"(~=`슗Αkx3U@;&msYn.~~{y+6jP6hcn mr qTj7Sr$CoXn*MTт*isNKmbDdd ~DW6>aqWZ|ڽ}Gĕ}=!tngLn$Rs7Ĵg+zN!-tnq72)fbTs/XW>GaStYQ)/M,TĔC]F l!s=Cwx=-T7!{֩l-'@y/"ָnIkT|6^B,huChl| mm!WqRlIԆu8,2MA*EG2R7.C'mU#mq p.4 [ݿE WxYc Z bTSZF4dԍ99X@83H"-Uwyx](xغތ=$(㞚 D _ak 4 R4MӠY4]wp"_Qm&zZenh;QRJQ×WVGU.؀s^),9 In|wo hqAUq �4\_=*mQ78d#kL!) [apyh|4GF~ȣR@6TxxHq3xȈ똵FTvVߗ8'{]YքO/H3[51ƾxy=A6۽X:ե3N_}#g;J@WEa҃aTA1a›"<Lip~m\O1利ĉMhcYc ~M[˸ey?Q)s[O1R#k *S=0wF9zi~4\g$&jqn]^`KMqAQ\0ٌ瑩 }2423jtIzGPKR+HQL@3"Y>jq1P^he#hdHUSL` endstream endobj 288 0 obj << /Length1 2477 /Length2 17674 /Length3 0 /Length 19119 /Filter /FlateDecode >> stream xڌP\ 4܂kKp ww^sO*ǔ1e͹6LYI(`WPWgcr0#PQ[+G:X9Bh I rn�6�7??++ᅥ� cw+33@@%lea ߟ�ZS:�_�Q;=@hhjl Ps0z#?  0# t:�K(. ni3�Z]@.nf@g�(:@M=@h1`�3?t{&`ne (Igvteۛ64uq�[ J %0Uw}.V..VkdMjw~V@SP߽X>\{{"s+{3e9h[9e%,�.VVV^v� �4d@T#TBq1v\݀~>V/B`cYLVAb0<zc�4af^:b -5yKG)& a0sp�8x�|�eQ6;yڛ;�,KM {=�˥�[ Ϙr\o1Io ܺv@ T U�Y_1hD-li'LXZ\~,�&6V- p_* hw7%c;;{!& F3_C `awp�@~)7E?"�X ^�`X 6�`8�,(EW@ Pt/(A�?]q@эA NcPX1dMA\ -T-CYlme$)?); (U?.ͭ[ ? G&-Tj%_ տ (SAP3mA17 GJ?t ƿ&8?jPE 2G3hlK2A8Aru-7Nn@3?5q-_>66&r]@jw5v(?@,3_ _ ?S M ?D/'I7?!2us "/ h4`*l]~MЃiwBhjW+gɹ+]uFІ^Iڛwˤ/>-a *mOTv N 1}q lqrEQü([ U٫G|.f҈,5ɜ#qe"8DȞ|#c@;(d~^PgwƧ#;H]))Zbc ";{/j'=FV݇fH_x`!%\o7`峷us|#|Z;=g $&䇥�Ct[`^JYg=y81X. k**fAZ#pM &>|5_ ~0 +in Qmd, Fiܩ.vJ2{wr+fUڤNz>>SX0> 5 3ܔEE n`AAn@8xuN,b/-rO$T<KGpE *j^ T:㱂j3Ao1B7ezcD} K(StgztF<#kjjQKSc4 (=umtM[3xY!mXߋ2<QhkөJ>YEfvŬu4a~W})`pRi;XUj},]*j�nw;~r.aX)yYBw8< OJ(_b#eFBkjﳰto$I󹾷9Ċɶm~Q<8tDqˤq {t%efIZΏNlJD A`6Xh?<(碔.Wcl8Sm,8G"=k#ac/kcwo8ۘCtS,`? 4VHŶ%JNM7C e˯2TIby[ kA AfqޝR|[!&I ֡#p)ӏB֝s0XlHQc&ٲa_zk~"疮E$]=[Pu9> Z]*Վxix%.F''H*JfZN1 >$-ʆA<^z[3%x+]k(~Rk-@Ntv!Gsa{m$?>4 ψP![۷8;U2Bq(j>k-bǔj1B H!39Ǐ~ѱ B cɄ,٧F8Q.IvѶXjt&>ehDVOr.QU~{F8=CrSY_4*;nM9C(R8N)}w:ٗOAe%cKUFi |50??`YLxm'#O'UJtC k9|hK0z;((5ڴ4ERW- ٘1}חcv;p)!q @*akٻ-5UQr@eD}BL'?,~b5.ϗ)3-<$|7&gKZ?uVٶ-ɨɚc-3@)n%48IyDY3HfXS$Nԑ. hۯZ?�yڤ3Q. ;F"�tQ?|4_ 0bڧe.lpEQX2MO6\BG:'V$KW%x@)C#OrJdރ%xE3\'*>yc~47@cv%t[x 'gqZP-]~ct(f?OɵQ7˙qpivV hSZ!3DB߅`di7oN]K` Q1hcp<>401lFV9>;<q 79}is},˞r[4rwg *?DNQ 0#]־`v46|fx Iu`-{oc#ggan{[NN00dL?Ky˝bQGx_#l9MV}" ȴ"Wؒ7UE7eTN/iTک׍ @/#(J}+Lu_ >k %]||gL%4& 6 r+czX-RƋԑ\9A/2ebODw|Eo\wzPGg~\71(0~\a>ǝz)C4 y9UZpn=&uSN)/0#ZHJreQA�ursHr(]v1ujgcDG`PH"tc,bhnp[Y]њ" Y;6()7جwy_(;9k�w'rTZ..$GKhwFFY͞p">Q\Œ (bt 7\ਂw~}>* ɘH>$xc"=91뻺"=v/*`?cQI=F&¿ޒJAҷ#B2u"ZP;-8ٰK~8Afz ?Q vv+}g >b�ʳtpyڹ{E#?f0:\ 2ڑ5ޮ#ʛ~~/8 ޫbR<O0ɒI0cG>+ bLUUv-Bۓq0~9}ۡ)&whU&A}UerUIv%WsX{g�! J'DzGW3<tqpEoƶ .i񏋽Y@{Y9o!Ic-TaN<". !9plp&f>5LpYo~'yru_yfTVq}F I[8zcCxzBH^#&/S_r*m*j/;;6as?\J4#Sz6a.t4/FyOz^`(޳`*`u6vF:Kҩ T۽086Cx^kNe3f{r5bFhmė܈_h~4_${$ƒ>kd<lN1F#15q0}WYCM@rlP8cjl?[w_4M#;SI9Br$%@ d;Z2.] gr?cƦUQF =p@!Z!)ӿ{Up+PcOǻdPl ; '?C|Ifu]4_4rh8:BAA.uKnҥ}>!~^R_HVDq%~j%n .; = I¶5>t W*~—ILf{-ix*p $gCi_Cp�a;#iuD%3<&U='ӱ,hnJ~@9 NҞ]}|F }50D$$�o`[NCb탻 N^(x9L~vP T϶oS3"⿰T˱(tda;gDSTHamw b7]'lbn}YIĖwssjEYN_ߟ'j /?H$+ b8s.$̽0,KIwª8jbK24 )[AhH[~o![& @q3U|~?J\_mv妖!u0tWrƍeX𫧋<�NLG- fG=W8e"<(<|;}"m\k"[.;<Fَ駅o9q%*j f1&aXn!X78 ?t Al|Ts3CWkt.HC>Nej>E9oZG8߼3os-ƕإk:mao}!a,>nϦΣNh}s"%yIrچzKO} m/ύ=Tg<H+YJ%+:>q|_PO�S],hJ!)/ Ow`OqR[:ZjD2#)r[YtoXT&z]J"}٪a-%+Eȳv}dEA$jC}9vcQ ;rތƶpTPOw3%?~<d7 N%(|=ĽĂFaO:9{QUWB }k) Ny#mLO(wD4~z*)gKWl#|y da-A)XMdUWR0Abk,YP;(l}) sSN=˂OT8Q!ۈ>,&97~<h%Wmq;aur<@PrvؑyT KuOt _1*>,5Ki)פ6<&Aǁ +.~*u9%}BMjBwkIoiPuttY&WD_`lafr|Sec C(j�mb %ثRZf ~:n&ʐMAi",ltְ~d}6 8}^l8gF˩Hٱ6lL^42Wd1r)Fݟ>dg,yte+ ^f`̽3}. L g}#b՛$ųNHd̗ +U|?O7J,RO61qOݳvh& St"A?/y,EW{w]1W:*5FU! A=y0dLYǭ"OIh:;A`Y)˦0c?q_I:^o$maSv;@D-u:r[Ժ(ȜA1C\<V@ mĝ\#PPlq ސhۗ[j{nE 9W56>PޖDz17 1zY.(~rڼ3=&8v4# of!<$ȵ1u$G| @+ w~zV8m2 #rX|=`#�cֺÀ9֠V]wL~<fqzqeūb|؆ZBElwVC$O!j0AxQ%%xߋ ˈQkML˽Ka=q.T*Tc^yi?6uBrgs=,^ZqA-hr΁7 Qxjʠ>w_ֽKz,rF2{%i!_R6 Of\N K9 3CkK]0݆u{1Y< tuM Wqqop4mo #A<D7v)Hed 4EP]X-Xz΀_?ˡ~}?]3Lui6LVLhš"Zq\֢8rYE 7T}?zjypa<^7KH7d%hS"(xBJ_Hʔh?(mZچ ,R-^^/94B!%d\ -pyTTN#*&^^c)'tř#M@9\Cg#25v룊J/5<C vDXJ&ejV?_i|:B%Дy_?&T' 'z&.DA�8(߿;V9 10Sz`yu7`q'LrU<x\ցZXȩF6[S@,fkXEa1 j=oW<#SjcZcijӁvuzj?%Y+Zpيr yR=FJu:PtɤILHE6.3KlTs} χL{xꈬQ{!UI{Xkj�5ae7h1XE7I_!\'RTշfW ޺RKƟ,<.5vNTm?܃`\ˀY0%X<Y dz}2=6*}7VjZv*;+#E?qo J"Q1ID�ܬ$<Dmu&Tg�K͋%g*U01P[=o=fJR<#<rdr $V/"-~$2aI)^VC:'4l6WB;-;Hcm[k[fBeB;:DXoajGhEveD]NBWW&Pe7ґ" 5hZ-s[ٵz6:G\ˮlz|X>6h&͙EhrEGgɰ <+հS=h^b87D񮹉NZ ߒ(gx~_59eP;*d-&[EFz Vf1{LrH5_K@DKl{yY[-8:27PEsH/9߾~ʼ mD(ٛT#dŽ#31O Mea5O:UahLhzp t౔juE~C&0O/>CϒxF@�,O:y 5&5ǔvN+D:xj�^-QDDD}%Ud=(x޸۩2Pl9<_}-(pҒQ)gń_60bd_x bz�qr6nTM6 0#8VG9Fܚ|s#pP-|ߵT1XaR@'n݋;|C̹feAݿ.ZR39 ˄O?Ng^^cdgTJ~ <Iǜ,cU-2c.PKQ�b<$N@ FRI~,CJ''!-;)%N!D4YV kTq^߱VYmf޳֟D'&9nAs/~%6V4` v9&ȲKkSoNTKf2ERCGR׃0~ qo֚Qޔ̺rc.ICrmL"yʣ?<[, }X;BiZgDKVZ6I#-և]dp<ED; ;bX5�cs.^)>ݽ/'S){ge[6-[_2;{ H\,$,HRw1e0Oaj]r pڮ6+ 1)$ظ-hFo!_.T%XͲ]ǽDW\e7?lJxM CU(eד h+am lFAޱY@gxMM]C^AiSYzIeҎ}LaxWs W\0GeMGN '1 +4]Bã9&9592~AG+U 0j@TblV;}^qƼ)+я ʿ6X"aC ГQj0Q>.z&\E5in]uķ#@|g|D-d.pA-M<otHۮv蕙15xUTNu 1am?w(ߞ<H;FhU-2}xA ,Q2ޯ%DX0*r'7[);HpO�˻ WzK{!c*;򟻍^9=$6x%j}(#r|42i\aEqdp5cL gtv7%8l (V�eQߞ}(нQf >!MM=sފ CUt'\~9<"R.|^%1WSaXBЧ#02Z>yDs@ ~9U$"{*ej6 V6zN('m-O(9h&1fWDġDEow/dXV1 ,2axyLU,ϧi {>"GT%|e%-ccǦn~ݻWOPRo).JE);):>*HFOs,/@_Pƪ=US4U楺2Xp%,A@~K@M4GvҔx+nR_M+w$P V4;mLP-G'#vCxU#lF~H"9DDt4M…fxvFa`aWpywN]?Rn8Lpq~lA^Sbᱏ^˰CGʺt6#PYG|XܩOdZ3 #h [P\F9!r;Uܜ˪$2H_͑ &{-&% 5f<[5:N\.`N]\{Gh'2#ŻVh]jltOJH'*| 7wP,L:.2&@�x2n=4]{H`)RfQ$o!W/*ek AYN!*BCE.UK5=t I$%]X<@cyp0@[*_6{w:Bz%(|�Vظ}$dX&Yv4-Ђ2g[J2JJ>tt1pj?+OMe` G7^1|H<XOjX 'RAGjI (Jdl}_ dVlX; &ɡ;QkM?, 5jx^rVz=-њ4=ιF Z&-.4=˸ IJW�Q3{{݄Ly�M Q>Ϫ% fMT?ƏwH5:&ת E㐰쨈~_'M4x'!a)|Ƞa c/xqk=lj,nF 2)3jYy&@COcbʁCP1CibO1b? !T{4yç,v^.l_;R4,f3_:󍡜2{µF"co5,LUϞxɅQ븦:lyc52k>20uEvuMiP6[T8fr⇕ET>rO#1 &lPM'*YTnAšZʆ&;eLh9]ibb, |%LUal@th$a)RpԐ42(Eq18LE/ i$;TtȤgיG^Vs�O Hׁ :R}/ANP}5nkiʙ9XEvj\Dڃ_60"j̭+1\H'Z 윦/! -l.+14dWd/K nM%7"V_R\#`8YTUCMIpF;b4.9;8p*5Ae2:L/"@#rTB8]GXrݫPkj:*kF≣3)bQnoPE<Q]3ƛUj 4DC?`MeVGulno0MNgG(ntSvCfh{?Y9hx."0cfc->l`lTD_fY,] .z5w ֜p#sE3isP)GNyLKxZIxֹ*WzGA[5/sVK_'3n%;Y`NMWk#/P#z #U#P.t~qJi,tim4^ݯsxIom,( 9)58g /Uv#x]tq%Z4~j+j=3Пj_땘sݑvfTU;5Sg|SQ&qic3)iҐNTSCuJ]ܦ9y"*UawYiS!Soi,9EO*) 25r,_,6jX7Hvڹ fi6/a'� U:ΈC`?PYL iGS�NGl/Oco'RbͰwDҥ.u$nڿgӳaT %/c9 *Ax&VڮAb1GL3_7un @M͌GVoDi 6Yt$lERigl:R.XM]&9nw8^B;W, ?[΢1STg2s h}Nxæ10z+&*{d19ZHMCߌg4M0Q{Ff˭46&hjbO%ݒ9Kxwynv9o A ^ ղz?Xr3,KE98cQݺ4>4[pܗ FBRȈ\7-CQ#[a !fwϙHx'ndޡg7`}CUrö,"jMS5I}JjGBetNLj_r)Vj\ ץ2FAVJ:V5Tqp/?3Hm$j*y}R/,t'l G\;˫޴Ԇ<�k>$HN>o(ɽ~x:_߇%PoU ~1Rjvʭ;jIaa tS5g>[YKDp/L ޫ*ȡ2J~a"eixlD9 <ݗ[K~3!s#4mz*wBG)<@3^ ] 6 drIg;fh/ճݛ7/rt#O,11dL"s؇Ôː4áTzNKV `J)Iq(toBH{ouM)v1}ʦ4N0d}Y&x.TBM<?4[{1D]GX* F&=P2\tvM)F C6w: 2Ksƀvo@>L^66ކi%mwD`G7}&w C(ZlD{;+UXus+PW�ش#6 aSFGVP51C#lY:ig{㛙[+zUJDU%K1z>rF֝i@1}ag~~].lD3O^ oPCrnf㈗RnF*U1|th1`֕$l-խ<0"wjT"!<A=y`AX37H.]gqSiHnZ /uOBUGY̽sndu&fcFpZ!bFʇWn計E dG9e9r^zZPϿcD脲:k05,~!˜ڢ]zmk5{uq9觨VR7Q~T9$0`:6tin6*KU%�kz5 bVz)R?V1RU)$I,-"֞rI|=B}`6wfSPƭGdaRu)AgE eJ2sGwJZ>K)sHŃW+j{}la_; kq9(80Cy/M9YO)KJ]]a+[S7Dj,_sߎ4쨧R Z+~X?~9l%Mxhet+c n5 ˏeO\Vdw}wE$% מXW1v c)(Q<ZHޏdӽmk9J-(޷m_<yIt&v^U�XWw -R~%t!$ky⑿}czX>dXH{ ^X<]bac"2%Ą,my3 < {D]0gjguRQzhXMH$kZӓ͎N>i~6 _3ʗ=Otm &sQoa&lGsn4'LHNap򃳴3, 5F 8^2nw,,gy<|/`BK 80 ޮxnflLās.V!y ^ oD]z~12%hmъhؓ:Ed*K ðzW܀J DDUYT <#"km16d-l&2THˡ4lv$[sm>-^cs2_֢Nj&x7k{DR{W1|Fܙh!rBM*1F{R|YQ__kYN^i^(//аdg7'e}B:R6Mr7S*1]{(9n Ǡf鄕l>AgDp Q;&g2J(̰т ^M 'nȠ3I<4+HwKE,Sxbb5( vkK 3%LWZ%^<6ThVhr)rcK},Toj]9܏{ ޗJo_G<$1nMX0k� 7 hP,NtdRP$Iءv<mE05rkAt}Gs|.Q9 0J$3SKV<Ӱ% $ OΦ}SWl hSL1S\9|' `<g_r:M9[+q1)1?p$kR$i?4ĘA0RIt4N(a_5stRce㊖PwVGx p<լ:̗.4ΐJ^רˇwSmNUxvL>GP-[_<84֤mstn4Xe.&%hY`eô:e|n|EsTsCABd{ަdQC @ɑ/əʭcinRD+Y[m&lpO,+S^_JfF43[[NHL+XZ0MR8,>9BZ uZ*nӤn]! )hD{\OtF{%22w ⻲Зf&n0#32r'{_ˈs%mz,Fp>eDu})q\ \G ]jaȇ?Q= )HNj]N-ƅ-dǴr +1RIm#9R <h,2^֩KEσc-0o b[bUyU`Ͷᵺʃ쵚 d@$>Uuޔ4SB IS Dz2:+V(^@SOU{VijA=~ RW; ru-kH1ccȏcTl~(ӣUF=}r@X~ϷBK(y=9>\ >8oMIT|{yTM G*+*Pv$WV]R9`mɦO` .u]PanxN?Q>eoAt17Լ7 ΈA%+\4X84X20\] :tn#DGPȘmcu[͓ sU苼5:y6^O{B<3Y%`Z!*sG<TZ(a -|QbVx:܍c(25O;r\ӈCkSh]%}bG5fU ZH<<>2L$hJ._-@UdgCq3ߙe|Cyě_tB`V|{_ա;TL::)@+'NzacVc= `݉+:7O0nOa&[(]⣭å ʔN/~*6j V") w"Mg G5i_gܬGҊ _EB‹?Po rі6|Xjl8?ERw ,B7pVQřa:! fe@LVIOy>7#ozxU =ĵV'K?B1?C@TEЫ*x Q<#֞i(<GpXGiDq$z˶rwyl&|+33CEB*O!9fR|o~~U~e٫?FL[{#eeZ{]|AM.7,sGŏ%%=}dxL@,++ clP2.T<OryU9؏.DŽpGÿ/ekBJڊ|MB=Si]NJzC$hϙO"#K\,Â;� #\J">ˎĿb(RygKd~:W W FL#;fI<}t=VxX޿& zi[>U>^@h0CzDRV&�K~:rZ]ÜKIIKn|r̋Sh'..p44ulqV o"wHԎԨA ߈ôwBh|W&HGׅOsʈzS\Y.�GRuxiLv85�g6 yLWSrW[T:X*gX5VqK!ͅ此.͵uʼ<FkzR/ootBG<Ů˒Nz`i] ľK@1WGjF]UipA zҪZ6epT,'OI W/Xhj$7^PV '$,m G [q^HE@m><MV2+Z;U$ krsEkڮ:&!f"'D]yJ mj۰l-uc OB`dhtj_KXpF[gD,,q RmLup~9bq#dy ^ $k^ڢM.- ʝG>w<v񑛒~ |À.X]Nny&0`3J7>?}u;=_ '=*x9~|Z/:3aykJA7W/c:ID.O$xS@B1Q1Go< ܃2Ȋ4t:05@~8z&ǀM4HP:җtf!ޙrTL l#;r(3[)셡FVWޮw6?J[OJd�pu%S;4=E؃Hi%O;kpFBh!9_OEx1c&U2Շ󲭘{W�|lD�t Bb}(}Ge6ZitëZxqW NdX: h9١v.A4Lsǃ{t@.plhRţΣd桗јm?js9ant'Z0ȲSa1/?0C5C w@{un|z}d.=}]oR]e&:$H tWUھAM=,*ds!oxp"7a&.΄<+y}Sf�=6cv^}bG'sONbqv2Om rTVjO>Zm憝m{Nˍ\@ z歙?!6h $-0uX +EiL"arx:Ѽ>QuBRWHp;*qhЊ\. 0Ůr,ް¸U ]44ᠮF5Y6‚AX!&p̖:rkTD|MN4TQA߫ݳHsډIX>@w;鈟Q:{ҎERfxBXs xqC&dUlCMjbi6+oAuO+SRK;2u9+.{!eZe3i8.iP*jmvH2ovv$ٛ/:̛8P9gYT8H~qJN _G%,C"k=:""jT׃=XI38(Kߏ:k k3p_MP:~?@n3# E}FiSrX֖崽xe;A?F'c\! $ߟs-l>x >q5]jA-}fR_'W [3,Ŋ#0ѥ_߹θC Q'">z?O]CFI b+jk aj|A{ɖ{6rӉ IVڲr44GA5H,w[XPI!oMぅ3^x)9"OR8?c endstream endobj 290 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qGRp`I_3[dE4ݹn'&9綐7UaL)l:M z!YU0rўo>ν9},lj'}4>2]ݼ[ivjs92V+Vh ~y8&X-MmM|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEm7h8Kc`Iu(!a <#G >n-tJ!]O2`̏S#',<ؓL%qO8\π: 3ht ,+9ugCwËpD|ORɉ#ɇW m藒1NwH=8! 4DCp&q"pBCT/9!ɨ~B }Rq҉TFIܨύ|nTs|neEA;~<6OIystg>O:yұϓN|I/|yI>O:yҹϓ.|R T<띹_mKz}K=W7"V{/@̪X endstream endobj 291 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qGRp`I_3[dE4ݹn'&9綐7UaL)l:M z!YU0rўo>ν9},lj'}4>2]ݼ[ivjs92V+Vh ~y8&X-MmM|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEm7h8Kc`Iu(!a <#G >n-tJ!]O2`̏S#',<ؓL%qO8\π: 3ht ,+9ugCwËpD|ORɉ#ɇW m藒1NwH=8! 4DCp&q"pBCT/9!ɨ~B }Rq҉TFIܨύ|nTs|neEA;~<6OIystg>O:yұϓN|I/|yI>O:yҹϓ.|R T<띹_mKz}K=W7"V{/znb endstream endobj 292 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qg>]C_7[,ifkܒ;m#J#<頃MGeA AZ $F<ǹ7uoM_>‡`Uwvl.@j* ۣaӯ ^)o'ä RU9ͻ ز(ViZۏR_VRn-`2TBXXQ`  IF\Bbu <\`Gc)y ,<$gsv1ag٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!h�$"NN_h 1'>4$OOB:]*N:qJ(sB5Qύ}nTsύ(Qw|T~'UI<i9OZ~Γ}IG>O:y҉ϓ<ϓV>OZ<Ig>O:y҅S}RJtv3wtMxG^y: =tx\S{*qs' endstream endobj 293 0 obj << /Length 741 /Filter /FlateDecode >> stream xmUMo0WxvHB!qmU^!1H__myݷDULG^͹t߷.k4c*S'ҵ>]g,yݔKeF$mS3&qg1]C_7[,ifkܒ;m#J#<頃MGeA AZ $F<ǹ7uoM_>‡`Uwvl.@j* ۣaӯ ^)o'ä RU9ͻ ز(ViZۏR_VRn-`2TBXXQ`  IF\Bbu <\`Gc)y ,<$gsv1ag٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!h�$"NN_h 1'>4$OOB:]*N:qJ(sB5Qύ}nTsύ(Qw|T~'UI<i9OZ~Γ}IG>O:y҉ϓ<ϓV>OZ<Ig>O:y҅S}RJtv3wtMxG^y: =tx\S{*qs$ endstream endobj 294 0 obj << /Length 683 /Filter /FlateDecode >> stream xmOo0C@@8l[jWHL7$Q!LU�zSnffonh/}f}emy9f|vrvx}[(mmMyTnrlnwwVqTrvԧnfx Wŷ?yQJ ySN2k1ꯑJ.g%мFw66XͿS>r}|oݥNrl6rGىǼ?;'4>+JV}}Ⴕ.Mۻ:ɚx\_h`:Pp/ *,}!$B -fu[ǘ6LQe }ĭAk2$mAGs AI:םJ "ʔ43:KaCg" s rJ_i:6dPtk69u̩3ȣ" P݀^R/z0cP_Y̰*z~ʟ''Mq_ uWG5do9JOpH+8QhfgBfg"fg$fg,e@yɟ1S3SS0S+UjfjCfj#fj&.]1SkԦf44U44 Kx׆_|0n:8pw{]Ap^N3^?'y endstream endobj 295 0 obj << /Length 696 /Filter /FlateDecode >> stream xmTMo0Wx$ ! 8l[jWHL7IPV=M̼ su;Uٛ=w]yil;<[[j<=?׾+v`&ߴț<^*;~&Q>MS >_P{=s@dkx;`VY`s4JaQܡn.Uu9\Y6><ٴ.Z.4>Dӗ}~r:-d0VWk,8yLһʮӮђ[*mLr?q 5F8@=�@)&� 8�Rx uD\j2�H�V0CzL] bctI g$`htы0\F0s jd< I�6zg W qȐ+#k .bsrbmXK7ǵH7Gnb>&jؐu1VljOu$՟qWS/%1{\xB!K(hHTЖ枃Jρϯv=k2UKς_:~$/ ~E+7ˢ/ l(/} -+ZXukoԝE?ZKq endstream endobj 296 0 obj << /Length 695 /Filter /FlateDecode >> stream xmTMo0Wx$ ! 8l[jWHL7IPV=M̼ su;Uٛ=w]yil;<[[j<=?׾+v`&ߴț<^*;~&Q>MS>u;q~:fc_0F)lGιmu f8Gӫ6b"!YUe.`M{My?IC4}+̝l/Bj*{pϻƲO('$ *{>J-9_eQ"V$)MP:^9 ^` �br� �@ {@(\,RH&ti m+�3ԅ ,;F$БzFFieD(�0A1a8yΠFpnù[w6p@ )9r9b_ia|F-(:(nQHY^`nA|n(戥K}s\}sԑoA&vqc⠦ YK^ʛ!_my_)=^ ^{TGRw1RDž'xJzImi9j'pͽܳ/-_Z,N_: ~iyY2q,nЪ5QN Y58.] endstream endobj 297 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x�?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOL<rmh;)^tl״uö.#]a`4êuA雝< SL_Moٙx`<X.Ymv96y4L UUWqS~~ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m;z}s=״#V{ǿ ^/P endstream endobj 298 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdCmU^!1H#x�?gx]OTm$|͜s_Iss :L;<Sz==׾f`*_`ɫڟk3'iѴ}=M;7rfnj-eSӵOL<rmh;)^tl״uö.#]a`4êuA雝< SL_Moٙx`<X.Ymv96y4L UUWqS~~ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 )ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m;z}s=״#V{ǿ ^/+Z endstream endobj 299 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvH UdCmU^!1HDI8߯-@=ۙڽ١=?w]pwdV^ڑݧl#oxdGa<B8͌4s5vSc~/u<19w`~擲CTE ۃ@HVxo?ў6͡ 0^C0+Qf;ZPx^\Cywl+L@Ue[١ە56H8_(ցm&rTPG 2w`24XXBX8a JA`RЈ 衡^]wq&j9)*v`R:(!bx8pׂN)&>0NiqF?Sր'YNR}{f{x2A! u xk={Exo"}Rɑ#x۠_J B C쩁b8!=%p&r"D9 Qg̑Tu+gGNN8O-(7ZRntH ʍ(7:hEњr1+w(O:͓.ndm'#Ʉ'<dbʓQ'<hʓ1'RLFy29SRAyJ%)]\/&xG^y{ ?tՍ]*" ss endstream endobj 300 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRx=7i'Էf[7̖s ~ts[(:0p l:5m_-tB}W{X8 jw]lj'OC=6}Ӿ|< D0,6;96ݕq4L MUWqS~Ӿ |Ҳ\Khv7RKs|*Z -1 b[d08A  i$C#.CZ\wF|TT<\`Gc)y ,<$g v1a粳[ RHדL1>g~8 䔷5 B{ $.  3qdAEBu<q xΛ_S8q$0pJA R5 a'!8!ID  =cN|hHr?GtTt<QF>7js"ܨF)EYQУ.?yRmTy'o<i5O:y3'<I'>Oz>OZ<i3'<I>OyʄS&}/6>zչ{ZkZs}=?Fey endstream endobj 301 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvH UdC۪TBb B8߯{ .@=/ۙڽs{K;K.k6/k+[M'ҷ>dyӔKe'$cS`vfSfK}fƁVGGf\bu<19w|擬CTAW $rG]IyMsh$aW7y̟u? sK-`<XYekwl+LXە56H8_(ցm&rTPG 2w`24TXBX8Q Jc Q0RhC8]w+Xơ<, xH�^G>θtJ!'c83?NaO<Dg!;IX 0z)rЃ@kpBQ]^Z7! / U <ɉ#W m/%]cX! gȀh�ID8QN~ACT/sQQRs 穅ύ>7: F+}n4eE=zG~<6OɈy2kLd>O&y2ϓQ>OfdV>OF<dR'<>O)yJS*}𗏿tx>z{O->tՍ]*3>cC~ endstream endobj 302 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRd{nCN8oͰof-%6'&9Pu`L/"tkں(a[ duS $xqa MN{}m}gىx`<X.Ymvks0l+htcA62}7Ae L[7Њn& U RZ,cŶPSan aiqD4',IF\Bbu /y2RXR xHXc®eg:'c|0xq')ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m+z}s=״#V{ � endstream endobj 303 0 obj << /Length 739 /Filter /FlateDecode >> stream xmUMo0WxvHUdC۪TBb A!Gp�?gxYOTm$|՜s_Iss :L;268{zb/}WUjWm?fd}Oi=7gRd{nCN8oͰof-%6'&9Pu`L/"tkں(a[ duS $xqa MN{}m}gىx`<X.Ymvks0l+htcA62}7Ae L[7Њn& U RZ,cŶPSan aiqD4',IF\Bbu /y2RXR xHXc®eg:'c|0xq')ok A8 $`I\3`Af<Z]! xNky"7 _㓧q H`nḱRONH=CpB:# =%888QA~!*zƜАT?!~> tw8y*sύ }nFE>7*QύR>7G];~<6OIyktg>O:yұϓN|I/|yIg>O:y҅ϓ.}2 L<e띹_m+z}s=״#V{ ݽ endstream endobj 304 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvHB!qض*jn$HP#x�?gxLT$|+$=wwY[L5Okˍ}M=<X)ʌI|ԍ`vn~Oc|;ׇn&z8XҷmELm#J#l"MGq@HVph7`f%~>Ƈ`Uv+NmΧ@j*Ѱϓaҍ*mima%+,U`꿹V#5T>WU2F[l 5GT8XD2dC-X]d>**lv.<T39pD;ps٭N)I&S?^`qq5 B{ $.  SqdAEBu<qrxΛ_S89q$0pJA R5f a'!8!ID(' =cN|hH2?CtTt<QF>7js"ܨF)EYQУ.?yRmTq'o<i5O:y3'<I'>Oz>OZ<iS'<I>O)yJS*}/6%>{[ቫs}O =F/Ehq endstream endobj 305 0 obj << /Length 740 /Filter /FlateDecode >> stream xmUMo0WxvHB!qض*jn$HP#x�?gxLT$|+$=wwY[L5Okˍ}M=<X)ʌI|ԍ`vn~OcXLv0̈́^n1mxBTi{>^tl_7Uwvɪ.#]a`q`d7;ݧSL_tuoٙt:`<XXe=6y2L Ue[-Mm>L|ŖE LS7Њ~& U 2X(pm XX(W8X&LR4=zukTGEmwq4PCxF8hv}.;)t=Dq 3?N1ᏜpD`O2ą><p=vd8΃̠U5(Hq79A/y U8>yJ''&n_)趡_J 8! !T3'3]"3|g̉ IFug蓐NwN>7JܨF|nTsb(s(+ zŻg>O*͓*nm'-I>Oz#'<I}I+'}t3'<)>OyJS:ޙ_:&W<w}c:<quc=a|? endstream endobj 306 0 obj << /Length 750 /Filter /FlateDecode >> stream xmUMo0Wx$*B!qض*jn$H$3Ch<~3~~~ngjv9{C{K;K.k6㳵ችm#O7٦4\ =؏8ݿ߳4ւ8͌>sIvdXC6OL<r]"o=!_DP7U.Uu9^V-O>x9im$l6Dl_7ڞhz*{pɲ2kAʶC+mk>lpfIQTT?LA>J e .1PbpqH I$\kL8Hb،Shąr =z51XQg_s2Ē+ sC:CQ}.'c-BbOEu+Xg~:?aj B.U $,ĨAA 2A%%" 19hM_)ELN 1sR3fg =傸aCYjV^w&L=� 3nqFyDŽϠOL5'pZx?i^x?IGO:~I4ϼt~3][gF~Qgf}fB3y,h3cL}f23{,g>KYN�0`^ay{7)q �W7:*ሟS`R̯ endstream endobj 307 0 obj << /Length 672 /Filter /FlateDecode >> stream xmTn0C6*drضj^pHA@Cfy'n`g#govh/}eg羋򶺜m=Ooٽ[׌uRۉ=Iۏw{VQҜ8ߛIߞ3d_ ~~hZ# W c *'qU;HHV7xwuɻa;zopO_`_ݥNd0m6G_?[6vLClw6ZsaD%!p%blcä  PP[ u_g_x4$O<X^\�NB8 \;cBbMx y%P 3jok:E q:/d48Q4A2="\šY+ːs(5$Y r~+A\HȕWr{Nxo $TL~K//p1sQ*GG-G-GzA>|)3Q/G""&!uN>|%h8hh$hb,n~ᰏnˣ+p]h \2 M endstream endobj 323 0 obj << /Author(\376\377\000H\000e\000n\000r\000i\000k\000\040\000B\000e\000n\000g\000t\000s\000s\000o\000n)/Title(\376\377\000P\000a\000r\000e\000n\000t\000-\000s\000p\000e\000c\000i\000f\000i\000c\000\040\000c\000o\000p\000y\000-\000n\000u\000m\000b\000e\000r\000\040\000s\000e\000g\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000u\000s\000i\000n\000g\000\040\000P\000a\000i\000r\000e\000d\000\040\000P\000S\000C\000B\000S)/Subject()/Creator(LaTeX with hyperref)/Producer(\376\377\000R\000.\000r\000s\000p\000\040\000v\0000\000.\0004\0006\000.\0000\000\040\000b\000y\000\040\000H\000e\000n\000r\000i\000k\000\040\000B\000e\000n\000g\000t\000s\000s\000o\000n)/Keywords(\376\377\000c\000o\000p\000y\000\040\000n\000u\000m\000b\000e\000r\000s\000,\000\040\000a\000l\000l\000e\000l\000e\000\040\000s\000p\000e\000c\000i\000f\000i\000c\000,\000\040\000p\000a\000r\000e\000n\000t\000\040\000s\000p\000e\000c\000i\000f\000i\000c\000,\000\040\000g\000e\000n\000o\000m\000i\000c\000\040\000a\000b\000e\000r\000r\000a\000t\000i\000o\000n\000s) /CreationDate (D:20240217102518-08'00') /ModDate (D:20240217102518-08'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) kpathsea version 6.3.4/dev) >> endobj 275 0 obj << /Type /ObjStm /N 67 /First 570 /Length 2346 /Filter /FlateDecode >> stream xڭZ]o۸}c.r)~bI['MEPֱm!))D;[ 3ԐJGJ!_'ј il1CZ Dhd~(DFDQ wFp(G D%1JE#M J"8KA , ,02M(F<0)$$ gRk@'"W0!cAf1pAD J 9\A8B%$80R'Fh"O2P< S �XF rp<+@vBI&C?JI 83+c@* 8* ,8c#%� c0Ҡ#0 0i �Bňa23RŽ~)lYt5,U޿Kś.}}^yr 803*}~>M<_''|v1a<; i,rHQÓ"}u!$-+-S\� FY~Et7GcKGm*:Ϡ~':r:7ɑtt":r#S|O4{xH-Nsx3<+W7ewd2t%Sde~ rx/BO _d.]~LzV;oC=u;wsf0:&g$ -z+~%?/x-|c<i20_O7ц WIHD?]>8T"&bDxE <4hbl nWFMq VHSbVR)HlS8C|l[[hpo@$/@K)"[֒fEem N~ }/</dv^:"p?sS< o8_$=_v9ҭ*fjt\ \.1$O?WC(ږQ{D{p ={,)o`W>ݙk"\Χ- N?:D4H/.";wi�m@"n�" Dwtty5:;tڀHjPh|NІD;h#$κ]Oi$ t�]]]_- әʟE1]<rw<|bvxA}:tloV3b HъNPW{Go C&)L#{PHyrlj^f E{tɯ G٣M7Onm8<{t'&ϼ_2xhCI`R/<ڣEm<x.=:tHԝ)x wQgR3 S]D&=Nfilm6=_-8hosk^ΏP!v[RPX{%ܔ6o|tFb[Ce-H8/`]rJťүs6Gz.Vo&@0.2�z 6"'ߖx2%RTߝUuT| jb@5H+Y-jJ_ osIޅ)keSs-RcG/vu$kESl[b ^cܪMyky,5eY`MÛQ�X-/,۰ l>{&qJVW5+R rCP%o<,xh<ald@]oɟ!kEꚐVg2�=RKPESo F^a8k>BVW`R$`W'wYV,"/侕U9rVy<3-şG&R{>E~.C5԰1]E 聆OmC!YBnn>[e(&KI#FۮWKd,XTV(ud}`d g0*0d|ҔQaV*03O<[NJEh$u32c[Fn:~35F5UbMdfMFO2qG?/\#:3a7e;3FZC[u:CQWT�A,`7rw! -]{P!ۨHI P:gVMAmQ?ɚ^;N-dQ+-*MsJ"A^Vg1p9LG600:#qZ$NFv_өskŀ>ST endstream endobj 324 0 obj << /Type /XRef /Index [0 325] /Size 325 /W [1 3 1] /Root 322 0 R /Info 323 0 R /ID [<698FDADCC759FFFE300F02E8B4FBA3A8> <698FDADCC759FFFE300F02E8B4FBA3A8>] /Length 795 /Filter /FlateDecode >> stream x%oQ}_GNZ:huI(UZNa/ VX 4Hj՝}n罿N_!KBHu9,uR P \Delpo?*ex��oe!(+KY mk,JZ)R2PWLY*(w*z=`'F] 5(߇R3D T$x耜; ]]x42 bbP�]l@9%@�a0GQ0`�')0N3赐QL* y0.`́y,<T LԉjK\,'ry)KqU,oiLOԱYY(A=BSxb 5,oQ.w]fUUOZūِS_5XxQcW3*{�jI<̉Ic7-|h}·iG-lLi,| Yѧ.}Ԃ٣efI-}<ǒzi}ZnԊ%Z,}-;XJdcM*TG{Җ2,¤2-T|sm#W#:Gq`譈kS#fF̮G,U@ >0` 0j饢8鍗?A\ endstream endobj startxref 290210 %%EOF �������������������������������������������������������������������PSCBS/inst/CITATION���������������������������������������������������������������������������������0000644�0001762�0000144�00000004277�14564060172�013255� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������utils::bibentry( header = "Please cite PSCBS using one or more of the following references:", # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # BibTeX entry: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bibtype = "Article", author = "Adam B. Olshen and Henrik Bengtsson and Pierre Neuvial and Paul Spellman and Richard A. Olshen and Venkatraman E. Seshan", title = "Parent-specific copy number in paired tumor-normal studies using circular binary segmentation", journal = "Bioinformatics", year = "2011", volume = "27", number = "15", doi = "10.1093/bioinformatics/btr329", url = "https://doi.org/10.1093/bioinformatics/btr329", # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Plain-text citation: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - textVersion = paste(sep="", "A.B. Olshen, H. Bengtsson, P. Neuvial, P.T. Spellman, R.A. Olshen, V.E. Seshan. ", "Parent-specific copy number in paired tumor-normal studies using circular binary segmentation, ", "Bioinformatics, ", "2011" ) ) utils::bibentry( header = "Please cite PSCBS using one or more of the following references:", # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # BibTeX entry: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bibtype = "Article", author = "H. Bengtsson and Pierre Neuvial and Terence P Speed", title = "TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays", journal = "BMC Bioinformatics", year = "2010", month = "May", volume = "11", number = "245", doi = "10.1186/1471-2105-11-245", url = "https://doi.org/10.1186/1471-2105-11-245", # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Plain-text citation: # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - textVersion = paste(sep="", "H. Bengtsson, P. Neuvial and T.P. Speed. ", "TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays, ", "BMC Bioinformatics, ", "2010" ) ) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/data-ex/���������������������������������������������������������������������������������0000755�0001762�0000144�00000000000�14564051545�013435� 5����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������PSCBS/inst/data-ex/PairedPSCBS,exData,chr01.Rbin����������������������������������������������������0000644�0001762�0000144�00012342000�14564051545�020367� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������?_9g3sf(,imER Ѧ*{lm>I%Qh!EE څHDJ;Hy;w;Yy~6v<EQ HCZd<Vxٲbwͫ\( _p2{AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOATQ}6 wRvQ#gRܢƘL W| c\)馔ьz̝2M]Au=5Qffy)f57QӻX@M׋S3Q3^P~xP.Qs?OޝJͽS@M?MMsiPs{RsPsPsҨ_dJ;S'slGa}# ZTOQ>yP~rb=1o|fI9?V\_=K@mxrͥLRnP˼)O} [)w|~S"}}FRdTgt˜cFQ̠̦BRqKSW SKSO<6GeAGX$*vl9]_0꒧JRSWtP) PiwcTțXAeGeiP<rrR7PoRCOTq Y1r:T?*4*5ҝ ]R#4*ӿNռʽR-GS7SM+'I~T5Dr4ҤzwzNU_.s&Pկ*SoOQo<^*޶ vj&REQZeWzTJ!Ȑj#S_-7Ew{w^Cww=Ǚj9pG'KxBKs�55zKQ+iZgiSCBkU4.MU<?Dw?;ZhozsGStt?v=*oih{f7tNRZ[Mkg:i=a�Uz`pZt=(2AM[CI1hn6z̨1鱩qBVhnFO`KONFڰ m8C65A6N]BO9JOjLOfzsUz[;d`z|Tq6̧MMk-i2ڬ m65n/m J[]N[}O{},mk^xЋfҋ5h;؋vvgюkR ~}Q7ѥ>v>C>>)i+iGos w_8ЖlBt7bt :~'#s?%SF::w}E?p>d<ϡ#+QQQ]c0NjޏS>tҙ9|Ly(ɋ>;Ӆ.;;Ek]4 E#F%tɗtthGq]6%]ƒ.L~5+B-k6е3{еѺtau!a=u&[PՄo,b�2pl"1+ vJ3 m"/D3} F(aR ܱQ(cE]Ǡ-> qaЧ l # M 6 >#zdLJUFVFŢQ}˨SdV|F5!.6/֞Ψ0{g0s{vFG yr3w#3DM&gϛH L$d =g 1F2#?Ѻ̤dUf̤{̤O7I1S]f0"+L`Ҍ6fq3{ce) ;̅ K3s!3o%zOcsv,PoczY:` tPtlc/c|gW3udwv5 )BۅY1i*aVͽˬ¬xì:YޘYY`ֹa[Mb6 d6\b6lc6l٤<>yf ^llpq3ĸ̸3[/fc#Ol,U۝{x;1>'V0^_]1~<%̮)̮]G303�37&b daG2AÙׇ?݁=홐p7&$" >d賲&i1sNpRȊ(QLJ'mƜ ncb2 o3t똸MߙϘeLPW&Iy\\[[ܬäھbR _11Kx&#]d1 ܵ'*&m*S0a u1O43OGv0Ow0OM$b_`u0Ϻ1%v2fk3u!Nl)u^j5zP:S=tS]%1oɝh\jfSc9ͼ;5`jC2F0LCe%|(癏S﬙OOC1A7M3$m5-wdi2e~\\7i}P�s4i3@t};A+z@3CvC&v!y70y`y$ _~ _6]�F FM#" ڰx͛`J0(YF~ >*$m0k.0Uy�Ls0NVo fږ&e{ہW`9#W`N|2 _5/3.0_XwP`9X{i7T`XG{+΃lF uh6: `h8lj�FgY$Xu ߾MY`A-pOX Xo$Xi!XKV (3Cn`3Xz(Xz ,xL�AGpH÷SNZc3 BY!p޳8XC?d`F°4 Vt_jVwO\.&YLkOuum p>?˂TmY X!llX6lp�6$E!esX E(XT6(MY6ؼ4l7 lWX ,8>[i-+f�%]-dp;�n s[Kp}ny ~ ]c,Ȣ%/"F/k,>݀mX�M M +W[N`5#Y>3 ~k*V�e_*ڲ4_7~Gπc@`c4eKAP^T^=_O_'=C=`lBb@ x1 t5= :ԃ/ l hZ\ "\}o r??Diqrp|FpBN'zn'tA# ڝs)0�7�7g1 ]05h�gb9\paB0\0ymqswx9 >#$p A$D胄 /piq\z>$ Nہ ~4H @ 9`$e#d[Jp \]՝jm,~�v\dcpp H9\=n niAWATu i m@p(p_.ȸn 2W|dr dN[nd?.gRf YlsY �䏽 'J wk<<9Uv<wO4d IϳILk,x%(@jP C΁k@E0 ^-/<}Ai-%3<3P@*Pʴ{2G ^EyWA,P(M^+k�oNU"u A F Yu֠zXPx;:d޺gnYyj}/ݧ!PxM�uF h7V>Z�UGeDY2(F6&o l~\;�Zl-V%3h�~>_?^'Akh!-m\~hO:G+A=3qP :ϠW<c }oQ3;t;/k}]p9 .4]3A. tA a!XZ } a &eِI4d!{l0dO "!.W 2W(.(l g=F@l/'x5AQS JP*×APIT5Un MIVnǼ T@?PԄ[�j =ρ=^Ӯ^?BAP@]\ZwP~.鲀lgg=죱 =7ueͰp� %r-Ӂ [_G@z8\8\C?\4j.: -m#yc8r#8j15,~yGxQ_-; G'vgk 2 N> 'g~u Wa hAٷ[h&IIhR/éV[zpj> {.4~Nc�3fMᬭpG3u7ZhC�eha -Q[dߠpH8{9 y^WJhvZ9mͨg^ ߜK8%;S<hcX&A-zn['\-3>n.G^U755p%\ _:)u]9\ 7 Apn}=wBG=H=C"g?l4Ag)}b\0{>ї=OX+h=w.m;]g]C 3__@8`mr9TMpooN_Є{]xbgs@ x಺,|t΅:M0Tk,΄0! =3+`h= sao`XT ɋ^X Cࡨ{qq ÿGaįz FN}#]HjFf,`d,#Jx8<1p O΀5Vx&G缀g0fd+ގ&0O!<w%na\\^�^^3Wkը6x'T -:=*7Û9omiA:0-l!L3N0å7X 3Œ03玂N0k̓Y`Vp-x{^x{4x;NUn?xw2xoL908 υQ0wݓ֚üukaޑ06|`p> aj_ V 2YV N6‚:OoXЩ QC >XvI>qJ i#y~x3|dmm5~'ӛY4A|p4sC7NX&kO=j*, "~1aK%3`IG |˭e`ZX2BX6ԅ5|zzUح+.JM\XOkTši2s1RP3 ea�Pd=lx?.ȅW}ǝ[aLi4+~:5~:]?}?wo=VMq/}q=`L�aSp6l* >ec`דNVw`w>6}[--'ßAgS,j{-ke`m#e)k l^L-'1eV.` 乯+K'ҷtz1gqV,ԔeuXfY˄,< fe,,te ,+^uijܼf^+{rYV9d<LX4m?j$XՕMb٬z dgVLfX!n-+\gfX<E!Yq3+1Y `UDZ*߱*fz2#o[#]"۽ ۽m6xpܒ;Qjob5NHFE鸞suLu*Z]jj\ae c b4??:u2oV~$ ۻNӍsȜ2[j}ՋوO(`SeO8XL5dCbv`vH ;T4%C١GCűvvg\cǎbG<gّ{3ưgeGϝYʎNaǯ? Ŏԍps;A,`'kPv<vXv%?OYq[vHvJtvJM9k50VϚfU,~4;v+;#܃q̐QμyZ)X~ %kqy.k񵐵Zggag^V]w=vQvN.;'w#;)vm<<e-ǰ==zWKمW}.kw).]j]zL7ڿ|ڗ ־„uPd<޽e(]ur]y]#]~]>]QήhebN]k]4BVϮ ®˺Nb׏pa?`7&3ZٍYkM&cKM5^ۂj=`)169ϮTwt!+vۨvǦ-CνάMhݒu{_ٽ}12 )͆}IbÚmC)C/걇 `ưGbأgGW{cMqI]ٓS{/ʲ3*Yc33lYcnR}XT6%-fϦf~eϗNe2 [ظel0 6~v6>Ԇ?җMؗ&ocFK#FŰIfIlr?vEϦ,vgSɞ7؛؛ٛ77}iFll,kl֋~lVq{{~{z?{B;{SO6[5fkk٦];ݻ_Zl$\6Tw6'5sasgF+{7l~|6[(}x}l>fLagb {E/T˒lQz8NbKؗ?leX[}_V>aslLogknak6pυйh~ܿX( ql xnl>xgㆲ9򸚒e?a?M~re?O~"S[/MKa)u'!w,-{>]k!]ǟf=1۔6eae;?-a[zl kd1ו`-3pԉ;ur;GkŻ9jiW1*9~ kp]D N/ړq*wFq*'s*E38NpnV+nIU\\w{QNMc*f%q9uHNT+Cw뱵5z(v44r7s鞜kzι>"z>zirZ8\N7҂=sCf;qCrCpCG~M4+化fqƔgAg>3Ι4Ls\8GZ,=eY7{nnΥ{㸹y7n^#nV47a#7v57n~K17 nXΦFfMna IܢṚs 9:sΫKs+&s~VSp.>p.Ae'V­.ǭ XƭʭK\p>{fq-LeYVn8Um7ҙs!ù)rn+r<zc2c:<<s9Ga)WTΫ~r޾9�ۗe.8pwrAҹ\A27na^?wǝ'}>/gnN!_7 +Z܁=ukЭ;wnhg2.F،>ܱb.j.U];+{wNDgsP;ENNNJNNDrgnLbr1Os1ّ\̝d.\.vW.jYkK \S|HB B<.nj2WhŽUrxz.~'X_qopYgrs.bl_)ת)g:{s3Ȋ븋j\R/.ѝK%%Vr4K(sϓKS.MqI4d W9\R9t T}Kos{ &/_x-Zw5]R&p)f 34_s7͹S M܍|{a͖_\j:.Ўqvqqt\;\zm 9X6Xe,dYsa߸S !߹绺s= Y\aCŋ\ѼU\\W~+MJsqKɅ{iͽ{yf+Wj+Wƕ~^qzr}7vqUq5wz:>%/jreڬBs6Wk>j\m j j[E=ʽcfpc4>҇{i->)7N\r&0h+Ikh}8zkT5}}/>Gl=}I}ՍO~}};U}}kR|/Ѝ/פpM?zsM۹摩\)_۹]oykwiڣn\GTO`5O4yn+`VW01 kM3Vp! E O¦,WOM(BbPP^^PW ~ |NX )xDT P! P`o IUHv*T;*Վ U Uc*S1 5)ԝb^)Ů (4oSh/QY9S3)z)Sr0VzZ'* =S+ O)tfX*t:y ~ ݥf G}W)_}MG?ﺢ�@Yb`yŠ=u)Š ^Wa0^a0`R\3]18b$*۩WV<\2"Iy܉QUY[ya w(/뭌ӕ(t񭗕m^?)I IweSrrtWWT^^y"Ry 嵡)*Sv,Vn1+K+K>*K^P;WSV(8|[T}@YAYOUY^l\yV0S:Mbieq1O?ǚ6*ulGM;BW٦B٦llw_lڡ(hqQ|e.ʮŔkbs)rQ e; Q[e3<4?9!T-u!zڑb'H dQ?BK0/R?eGl+iWŨ6=R G_@K}H3;ʑ^h4h�4|n4`4}>YxYrnƟƟ&XLGI Ih|-dL StG42ݩLN ӻGُ.dY}۠w5d^hz^!)14x,4EUdQm, di;YCkw=/y;pY7BV9ꁱ, 0y{ݿw4lD6ÑfXe<Z-qBMu⥟:h-ZY쎪ɲ},d? ُ}ǝCf}@s[&rvl!Ñ hټmhңh%Z-K<uʎ!_r'rF 5k/ZyiZycZU@~"}hhahZ7OD=BN#zZ@E,ІƼhc|=f"lm66OwA[bu$r?<*O!/y}ن~F^}wf- ߗoZ|rw_vڶ mFMSP@9B_`(n/cš= K7eUh:rEBe_QO(t6c1F։B"P&soC?Y:4 :BgmE7FGCG {pCQx(|hnGp(Pޚۦ=QI2{VFdja!A):9XOv\߅NnXNnlA'ZO>EKQc7tMCltyt37SPL\2FQlr3:mBtCT> K++@Qz]%H&�%zEΫKq?ѥmDIcQ|]9]NFʴ teF:i6y,]EkqZZ| JrQ(eq9JYeQʺ(g8J3.tEi7[SǡPƖ e@g1seQ1(s| . v$DP6MɴQ6\9s= P(f iPGww;݁S讗{k>@w=Qt|w W{k/mEGYK{md>>qJF9&(Kv.SCޢ܂0oGy=To *غFIo�z=̚|EOgNٰvJT8$*\^lLA/\DEjK0*~ KCߟtTF%Mz)5Kӭ39?De+Tn **F٨B UhE"z7 ި>Foe78Ch:pBoG+PǨzW 7؏Q7DBע5>Qce� }ڡ>>7}ղE_-A_@o+.o];~}DMPSjGDCPJԼ5o;Z?Z�Ԣ~ZvW"ڢDmf͜Cm3Qۼ?j~DFi}áQIEu;:B,/ D -ڭS< 47gNhg#y#gA)<ÀfaE2l[cj= +N7_y<Bmגˎ4^S cxiZc@غ ՗WuʫlU!} ]`Kxu> m ^}f>'>g WT"s/5^i?^_ف;{{땨z?k7e]||h~@~-~t=^7q75 x`>uޠn)oE"?8Erb?Q?l1?҈؞n_9'?i%??*e?ڒNQ8(Y4ڏ4ր7?!?i>~#~ʧ-Ǽxm'o7 O }CӪ|߾ *Kن |}Z e7E]y;6lo7oG۽l*zK7Rq,?1Oh%È'ѼáCy-w`;N;e}W {<en=sRYk"bT7~K~]V׆ǯǯHN+vV&VM7d7Fy(&~@%9΋wttn./y7t-p1ww̻oo :[ycd1%ﱍy;Lx[!Gㇼe:y^Gx*υ.ާSx߶f~[Z~͇*af.~߼bzyy'Oy`<V=1M?g9T Y%7:u8�a>rc>*ߝ?[Kw磗UƯOU <?s+'^S6SQWKk֜_nK 7/1|K-|Rʥ\U7NSvE)-`,5A>qf>u">l%&f[>%g'ʊL >ӼϜޛϴgV'̼$>1l//}t Ygkw 3M4>>wvA>o/ ҧyz|K|u|U_>l_Y/ y?R??Y?z/B6/2 YS/^_T8E�_d0/\X'3䋽\Z$m<_>_Zȗ2_M}_}x8/4/s;ףje||Ů:b$_ܰ3Gʿi|)ke|@Fk4T'}}P\>ՄO?FE)s9p�\sZO`fY;1vR~ M?MMQ||?C<҃{ސo÷_,;vƗS(SDNL&9U`& L�_\<PP"( KHP&U CByGM~qAh0ZO XovQH}\i[A:U᳠:IP-% Ge?nS݄= jꩂeAM,{'rzq\HM4Mm3A3F蹺Ry{3Iz8L7CL O&: l ي2}w0Ea0$UZ( (8*/F0ֶZT00S0e0FPyI!`ëkÚ݂`[&&,&&~&,{'6݂qu;,L-gO S+S?`fzU0.%]? Eat@aŒ#Œk~թ߂սp+`u,JX9^X껰n`F[*'/mellTl"8炳yy"⫰B\Xn~OX}C]X==.9 3 k. 666*/l:d+l#lvT$T}G}_KPדM<fOg)K^N'xG>#Q4R)l_.lrvnhv ;,�ߓB6wYXu^=;.Os񆰧x䂰UaO}  !G~ !焃vC~CNa\H!<IfABD/JY#DL"&S  QU9eBF#9™(&|BHx8VHYH/:&.5M,$[!9MHn*\  WG ׀pap3f=PH.nM[뒅[1'[­s}do[[ tBzD!}@npCH*o2nB !K3]Rt Yq{ ^ wm.(r 9 SBng_x0Xx07DxT* e/gWEBA<~%<)<]x7Rxhjюc[HkYq$Ax^xzlu١_BaPPDה_ %VBɺkBI(#Jb %*BI6TP"=x':i(SB6J'+.0^K & CF҅7*M›۾›�6fPS)Լ^&{7T]]G[*uBBݭ+T$|  ;F N[  _hBs;EZNZ:V/* }u]ucsKӿ6Xwp/ K1 1s'ۿcx* 1d[04>Y�\!bs V~qF% /퇅1c V݈U܊X%N ugIp$I,y$cX=a<{E^Xˢkڻ- 3tXPl,Ký>.gpP[?])g3).xl=xi&76ĆI&Nxؤ=<MZa|U%69OvϢ6a˝e0-a#زd3 ~[e`< 8cFغn^/hmas=&/x!;/^m"j!^f[ŋŻ*l^j ^9l~y R[l;^fWbicvtÎNb˰vJl{cKqx1/^1=W\++5^ K&x՛Jj"^v2^}^qβ.GbžxͫMxM<.x vk(A)xx7&+ʓxpo[NLn+c~xkqzc=r&`OA3"{=Ğy8^W'qZ}>cOcf�wƻ]A8 |qRڽ ܀ s,\p|`:|?|*|hp9}>8=ZJ|GXO|1>iN iLV>Tcz=1 p�9ǞϞՖs9|f|޹߂; |e|ox/mSqv 9]h ǟ`y'B9P:[pV'6h8@'{Q8/N,58p\߂h|yVZ7Fkkk m|-A7T8u}f;N 0i֦8]a/9AJi3p\|o f8'98l{m*#qhy, .q a~5~V?[mXm6ϼeVY ~¼vBڅ_|h.ꍋJFb^]qٸ$l3~cx_0/'\/'våqlW\߅K;8\܄ \ py|1.`˫4Վ6z J\/a[k\" ה,Yw. kuVkڇenn w݋ VxnX< 7,Nqa+NOj3'tiGɀ_ԛR%0 o*?qyK>n5 㖲u]�5൸uo$nNGpǛ4Y>i+;;_E5�wm9<._YY+}t"#>i3+r7D{%ruODM~\TUxZbR( cEi[([ jDj-@S0NV3]>N^>J^=HT)Ů{M{Կ5=o~FQK"j=.u~} {v٢(QhQ7YmZ=}{F{i;}'_F8Rq8??l88G^'%.#s==#+Z-N!Nx-Nh'/+hqJ~qJfq\0K Չ343z^gJgugş5.Z= dVjr 2h%ﻜ-Z~x#[#㦊z󊧋 kόD댁,:h}ohO7Q\h. s ؉ 6  (BW^i,K\^_X,:2 qy qS*Q\u+T\mY\=쫸-qu&烸VZ\IUBteDײXܐ7}7}+; n~DrfVܺX nևsĭEoP wcDbfﱸ7S2^/x`⁙bhpxqxV<e!7X aŰbXf-'Q"FpĈ"=1⥵QD< Ab bdC1A<0I<3B!3^<u]Y Fbbt'1:@<\!@-;# qc ĘĘ/ =7ų'ijquQ7ses'vqӖq{qqkċrb:bYOba`xVꡩb_LRӾodb#Y-bv+1Ex'w -;E;;/;';jŻ/ĻEsĻbNv1爎l';/y-~b~Mb~?}@)bv\"Q|x@M|$)L|RY,>,>U|(>3ST|{X8I,'V. _eEŢ�=X4M,W%LKX% Ē7#eėkψ/T\b ?mXiÉ'&qfy[VUϾU͓[[%b(l]nߕ߽ kFkNJe:b]J/D{8\l`, bgw@}-w׫7{ŖϱeĶoFbۏoygf },=mb#<S(vm"v]/Į9?(& }Ⱦ^ ^;HԊAeRO.|$khD$ۯHΙk [ {Hh 'SbJ}%x&Me|+גPq"Y&)Irl.1Kc ׹JC %iNI/ΐTT 8"u++u=Y%uG(uϻ' .sm.HI$RΫIi4$H7&J ۤz2g״:R7de1Y}罤!GټU([((t5IK%sIK2'N$,eAR@3MXXWJ}6XI}|M> Y7U/* <! L֗'s%,? H_$cТia4L, ˟# +PFJ#̭--h;Wij+i`i4&MwƷ=&K'INI*dJ*M/F;B2y(MxXV-M2Xn $MIfz]f͓f-Y%Gd$疒Ea_ɢd44y4%+%HT&-^WZ2VZbJKIvfiiQ0t䰡Srh%-;Fr2 1XJIU8HڲQV%y 'y !yM.m$$Zl)(,tӑ\(=F.jHdRXRXsҡGFKcDD.g37JZRl) R`)qg\dAJ]/FMO4G90XߓҽIY 6YQӨw)r~bDR/(P-CT>hH%u_@*yLoJ3J :G9wz}^8b>h^N}m8B}?;~ъ{_iq{_K{}6:hSz=s-Rқ}>8vE{ͺB><.z'q-Eǽ+['.s]:8u;w#fTSAz/9s#i1 3.33r c93'?c=8eG1rg1/w1,`~f0![Í7_3'oebe^”La{3u3N4hXt�`X_"`,?,VkOP`.<&7E`Yإ {Mft??8t8T=N gͿAdU@ Eky@!^>/ܻ%zwS9>=�Zـ_B@o0 H*ӡڤpRr.41y ]�~NQp`eyBx\~ZF0i*L 3%y֏|1�_8o jAX6 _Ž fU>*Y YloDVzDCױCmfC`]b'ZNlc 1I*3,i1ilvnߛR6`\Ul;{lh{N(gG/c�+{k 6Q6?;[,/[91O#;_׷ -دjlSۖ?mo{vf쿦5n䤕)jTN813[-Yi/ \+V\hsn5۪IQ2\ms>sg<=...\.wqr¸[Ws۳Y\:tB;W:qW}d5[p~pwuZ~er칎Η@Co_73RhV jA zrG'gfUWxT3DlxHPv'>Kи4:&-@3*,4 MAN5{ ;89 Bo==&7#hz6EG^;oȊ@smk?DۍѾij(D;蘣]mtt8?t�}e#:(d,: %,3DIo呹(u:eV>Gw|Bf( zT=fDcFh$Z}.~AuzipTWZu%'yp؀g5f^9r9y^e=|)g'OOiO>ԏ_\w>_k˯_QokwZ!~זW݉|hGi/^_ڐΧZLSd||L>mV>}i kg[g{gYosC|Aזg|3ZwccFAS[4u۞  O z }La`?_`4u`D#, ,_sIrH , BB(x#ʿ r!sPH*<P( \j^ uW҄ BBcZ'|b,|Mi#|U1v%,QU.]~Lm$wH:#aQnP6PY LsTP O7n-/b+4l݌ֆb'vQcC6x•>=Ƶc%p@6|ڍx'###ѐ:q\`cvk5%Όoc8Pw/ۂ+?j#udEfnDUJEa_-}=6#_dG'|#Z?/.W̶]يn jE;iF1~q}R<eL<~Z)1=1񣯘{xx{,Sx}1OkgƊ1n!ӵbeFXX':N 놮+H@.g cAR/3D<P!P )%`$ Q;BRY,J=S<i{>IcoII3mu46G8+YY YHfZI]}4Sd왴h`iɍҒҒ?3%5,ɾh*9n˓U|EƖhikX1`>]^vI_JݯJKIn}eM2KGvIeKsޭRҵRJ})CWJ+> *.ě\uT;ȟP)XdOTW'<mcv"\|"aʯ oȾ7gP]^Qp¹1v<N-V_m8iPJ{BfC֎\>2y=S*=>2Sy}R84`kɪ܍%xqf(}R2cx6l=^GZ# #W5&u1xjbp68"3?Q`ܽIF8WLJo ؑO׋l#zO]y{^&龜MJd?8.g"ΪL윉|$mƙ9B(?/AIg*;K,t~XƓfÈqy"6)G zzAgx  7wx6zRw1r~\V?<]IM0V|@ԎJ tX:pǏ_]?6-zBݵ MЬdlԼ3O :8>Q[Jq (xKz<Zbsg=^®_鰊z{B7ϕ%ab�j+q4el7#jGifMRiA,eZp髼=Tcqr%?-)b%̧{˘ +$&#o3~q`qp3΀ 9 Z50Nтa6Plp  <fSxZ克_Ӱ.ħs:q`Pלfվ)[g9w!vrSEx){=Zݙx . Wn<%=e3a h*RE$3c?&%M#(ߌxUG+7d?Wo ]Ée h7:Wb&-.Zdz.cMg㴝l<0۫⍨˯Ps&mc\smV@4k Q`8!_ۋB_k Jx xi#3 h= (v" ?ԏlh*^m(U3Y-VF+& )o'iIt!` {32g{̼+ V?J% NPvtyj]u`k'dJ3\\NMs=MCx?EH3+l`Qsڝ2E1>/HO0xM9Ά&⹋#m/P]eS񲨗d]VG+Ā;8,wgd5X'4YrݵΡ;iGX O柘vۍ _Q-^pۙZst~Nzyh Q>9B[5"8'#`ľc hIw{{<,PN/a:qZ_>_F[p&,/qZo6 Q^;BIڠ#iIf,_)#0jEP2TP- ?a Uy З6'aK&P˜X^sZ0Vv%"qvGaŖX=z9J�5#l(XÜB9=\x7\]\/ wǏG{z}:'k'ZF3@2H&ٞg~0I/�'FNf,pAѫ̞Ǔb;#ULңO>նX(a/mtfp5)07ōkԈӦ(xު/>ߡ-ͺsMtd5=0LU+7)jU`i�|>Xoz݁||7yR{ Ro@2c=+]J1U0/bBu?k;`{ٰ)gY"9BZҎu7YHlW_ZZYO0̌a1.?yNeN \` p{O)u)oRCs0];_fWNw^gELAOuk/W>8a,Mn7xS{Ikd{GU uNh@r/:~W/ʾ_@ѫ9⫰>=y�uͬk|Is {`+ |HKJ3sdU?cO .>Ay}vv;y8<[{;ڙ>LRXՁMZ/!⪳{ P.2~f,ި=x+\ii=b=F #ʕ.\MXTe|:c?A{tK$(ƕv%ۿgK3`|{tVxD_kx㘈7f\Gmx!ZE0d̒@<ifu&ַ>W�6K= cůãIN^Q/UgE+'KQŨ jnυMp(oRecX5s4de 41Wh]̵J)/|qf+LaCܫyExt 6vY heo]e( ;[mcq7[_@ gR噚q |N@pjWSK+U+*\&0K@݋;X/wQ40/FS$$z"tp_},McWggr3 #vr(%/Y/|ف2n:Sl1P$V$enk!Ous3-)s26#2\8f>uk ua8VYG7إo8<T_ =VG˕9#P7;s@E |T$_o~Z%> }AV8+VI\`Nb?|l?A>~ŠM@+ŋao2Cw Ώbp]%8#Кbtኖ*~0FB>~j[3i虽+\v Û=5X \w6e}xHj67V/Up{~tbcJWh`n!7L4�omᝳ絶q^/ez�|](L9Th۬lo<k? Fk? 1K{cWȿZgSrпb,q;SB'e=K+~Ayo'7nj0  3~Jy͚mkhŰP^7oYn =t g ӿ`3s1i%& ~]Z?[{nxw9\ɶG'wjCqa�m |(z7B)}#U:G. }~-Փ 6 Aڠ~ќʋ|Fq?Uin/M !g><u#ưz쑐rjPq:NDӾ~x:HL DuJ^w&MnHXu5{挮GvS8j2T=&Z;|)ΆO? v3who#!{?vsmGp#2I_fp{ȑ~qxt m% U(dpq xTmtvn'UzUk<Qw<z苴Z . fEEM4acDili tJx . :)Pv-D6lHC(!Pw7OaAr56X~/�Og-뺿r&ٶ WVBo\ @W61}k9>c/uq}h f˪)m9g13#M 6gn 꿮;;wT~]ʿyL!ٻ1]uJ晹Z3/htF\>pqCb7U10|pfE4a#T7++xU!lCicD)zvs8W:;ϚL*/ Y+?Nq:;R;4pr`1V`|d T:yfqRp;iLedϬӡi|ӣ ;gl1aQu)ʱOK6n;2?EroSu0\㒴GOh1n&uڲP-ϱ =p=zj0ێ~)Sșt%% Mȧ\.xz=7U+w ؚ9JMGeH&q+ĂqKLgٳQ鹆 qlۆWϡ}{nq̨/ӸLz|6K5`0k ̱\0<vRK:r#%=鬻?\˘\TQ,rS7& W܅`iiE/ܔg3eT-Hљ$aURvy*rx5#n+z?+~ =E`W_%;;dýROkZD9센E_qwru$j#F'sPiе2-isao%*GYK&gO`z (w;:O/wc= bÔl y;/?_$̝Qcob3BƟߛ,f#ܣ\}m08(;vgn`DxzHk7+Q6l;_&nT}e }—-ж5wz yldzn0* b"GP9L+zϪVOr>nU`ve`.Q2/&FEq+lăGYS%ź5,c C'Q:O;^кlj͵ǍEaD 0h0hyZ$Yxg-3׮D4 GN.)afN:yϞc(6|^L 8qdDQv&SEX hh,N2R} uQ:^=]r̯2b0d:E-r=z}ѻFt Ƣa5+#rj!K�% =+o cB~؏R*7qYt+7$#ߝ vAgg`P1iuaƭ"cg~W&j(z R7*X<o7솺Wձy,rsaMNSP589+VcwKbm)sf: ˭/4IɚflS^Bow. qjŀ̬!4T$vP 72S/tCͳ5RmƜ]TZkI7YһB}էlħc-xNg{lӇ˓>rNG(~jBCp2Eb^;L/fF>h(PL{ =p/W_?cTW}w["p|Vc+CE?Ό?c7-WY|>LE[]4~fsCQWq12sF w~^>8y7TBVqG8:_0?>|a Kaг9(?vbk8 8 fчm݁=(e7$hg%8w]tIr <$~étc/2.?b6c.3r|ty`U+jO-XqArTs* qN{,DB8ST f|q7u/+癄-0z<h(&?]F/a\v8=7e�+M6^q�{}V z:0#Ch̅˔Λ9ڇ#OLL|yy<)Kdc{U<og쀳%|pFE2/+ g1f'y}+8_} 2kqMm21&찱?G kn ,^�#SZ$H,湛U.3_rTk]?< ''<ӾEciL/(peA`IϽ8. ĨJ#>]=N!f29?zѣD^_;CHj|~>cuSPSC�~v, cb?ڊBф cj!RTpx(l2qN/BflQ|PwA-285Y 㤾kt0;X|۴Vš~:-tL>g r9WY=> v%L[÷S{?NTʾx}!{`Me0_% x)|V+sk o}mpv|^E^1hܥmFk&& k~XhD=n2v.~fB[]=%\ 6z|Nd`Nv†' i[ja#،]=wndELeM.ӚB PT$]Lb &DqW+<Bt6Qﭴg\ˇr{vUO,cY*E]obno:T` Q`§xU;^xuø.i\7pYy2/ďWn1Mw'M*6Y~V<6Rq߬Gnej;փ#-s>}Q\gjuQ>7X V.ŧ鹑_2;kA}9NۓG= Hu9ی,bK]?3GBVOOۏ_BI+/=EUPS-cd7ݦif!Go�fi0,_-4i[+XS8ܕ3 @,ю<}(@UD&<Bg�ojw 4h)=ᗋGc%[6iBiھ{]Cwwc>ML c}FyU"&<~ 7C@e4);{ ݄~ڮc_ }jbgB}u/e?5vvArvF}<Hxq {>lj7ӭRy%l&>VvှS ͭA._C2Nk ۓ`e7Of0Z0A!ѭ|(#nT{>"O|ZUf bLĶ?ԈlO7~<&ICqcթ?쥰uF4"LjUPZm!C̘J ={U)pN`&_}t&dNaGln4uЊ`]:gX?o#vT˞ѹ 5z ?(tպks*!Rth?H/OmIVI̕ lWʷGepqF_ i07K^^/E\?*t*XNT~iѾ+Ɛ�1Ъ4+/�IB߼q jw ʋ8y'@ùf;1_w#] XK5ndo.\jv!c0O% #g&㙁:O۽Wr#\m㜘>B#ܸ~͏8^{nŶ0s|{'`'G? ?^f }eY]X9v+M<R<t=ѺNWK@S%7PQ{]$[MFͩ:eL/Ŧ̪C}O&1z'{A9k֋jÕ}L|}hXQa]~=W %f(2 ~I 1M>U¶RO˞Ģ f`h ZTb车Y:(8锰c\ӭM_d6#uinm \Z^HF3suz3Spn2L1?QKuNAs.4赗;aU}ЂϟŀS@wz&T<.'Ï#) a_Z؊v/>6?r:6ZX\. (꤇VRYb4jU]OjؙP뉩՝w|8砚8e17^2{0<}c-H<܂ jdžf$efRg{iZ)$Acs>r wMK/)j=}9z>ѭjS ZX6rJҧ}ïRs=|),^صTOۭfW[pXհvد(yyuj w?s42IށPV,_ܙmǪ{=G*+fjub#(/#&r;w>{`*`I13q:9췍;kužK5x9vc ]ͧWqi3iR澠|('5Gro?dV$~#h-|M�Ԫ$} 1s]#j.UuE(En\Ns O24U51g/|)ZxOW,<q}MU(fl?ƻ.:seqZ*@x(.︞?{Ͻ9s+ I2l-Tک4(M ![hPB$TTRH$i0RJ"s<z@O ^Læ}#m4e7¹8A1e+sƪ4]FiWq+oq2߁>"q&" 2BU?L: czEfW`v=6L 90?>f �+^31ߘ&h fе?wt?Fn^g81r?uO rs#;lO4ZI/J܈*Et0>T_sdVػ9W~,0V_nBkYbG+~]S6 M,C2%l$ǞUr'7} ]/%?ܞ-h#ӆOh C4~ [x;Ôtw8NƱ?_ psJm2֭'ݔ.LjLn->=߳ENi.im�o/n|ָ&MLc b֠lc&ؾkΎUuB^!1j[A(!Oģ+Xo 2LySO2+Ys>d`t&x<DØv)w[ |+ } ESݑ2�{啸 q{L%ӘK[Z?"f?}Tԇ63i_>'NLe+|5FH+>y )̡\a#!o;XkG'ע-YtTJ?Lbٌ֯ԭke*5_kU~Cue ۖQC+9; 8h~~ioiǿ̨⑌;0tbC6�-,n2$?r'ȌhZCכg/Oa=5=VuFG0)64;#W!N_&jr>>3rv![cEjMӬ/\{mN|7iQ&}3Vn?>ъD눷;x|{K3RiDg_w|,c6W{8ŒbOEAz9vJYrj3NO?]0IlA_OUw57@eInާ/&#*oۯcg@zZ9~ /p)<t(wQdU>hz bƘݛ|/'ehєzªX;]p�:L*A3_Ok^€?y8)(^w<ȆfE9$+BWމsZ?�RD "7$V>`H{4I Z4el, TO"M,z-�vQR q6ӛez`0]8y7UW 깜u9 ذW|JiKȈj7ifGf+9<&8燔(XsӁӽe�%`Sw iخ-*r(U|kD\v }x.alV՜FH^\1;@@Bk.D[,EW[\U[KNpKѡ/÷c-_+2G h$wˤPof׬]7_hF2.'Ü:8SnZqΤIkf{ (ф_}ؙy|4TjՍ^=OЪ˝GgYlAlnqbpؓj\\%~"h-̈́ށevٟiKߩc'|7:6 OTo3d3C&rciz9<!Re' A&D!'p;IԔc!wTAm^Q}[|];. IJZ{ֲ7YpKs`=8#C˄ٌt4r~l |f3:B0L&ܗ`]Uчpq(ݼY(XGu(b_Gi%_I+XGX%,V%~mV~Z>>s],$ 6IX\mDPaft>?dnzpclDK XU'MnJz.KW.nGtI x_}۽ePZh0Չr{.Dc3GKwh-D_]lT-r?K.QߋM \,yKD_o;gփT RL_ AXA$?9WWܥGs}YyRI\a4<k.4!_s+:6^%Vnqqf- ȤsخAµ_ϛ ]NvY):QijRNt*%2 "_$L&_ _J];>Lv5H1gtQ>/F2 %\Ńz[fu,Jo4zcϖ.PX~ >9~R L6zd<3|wV&Tܫo0sinC a8uf<~ۜETyh-;As<|a#bh!|P^B-d\R#j_.09xmw fU8tW.=~U 3A1>!B&.ռH͓k. XVfl\;#Y=o`+[學4f9p69ަ[ KHP_J̖ 8%ҒRSI85F}q s@ُɎ6B@n+v-c&ǘi먵oWBlf.F`f/!_;JOP Xby&7w/?K<5vo0z-1mx3K0x]CPi^z(}B(l0G\^BK0!;_eDMIm17{q$Bk(]"6kN'??F_}?9ͯkZP4ovn*S P&1?'HʎhPф8A0C)ܓCDpM8s~ `[qc}hO~7,R!1g{p b4zJ.za~<X|Iba_VU{ӛQ>3LLGeW2rl|'yLUw .tnbz{xr~{[P#ịxvOA6Gߣ/g}o2M[v#8$P[_h#sUG@W؟Er'<8U~r ]^5vք}kϾQx (Lhz)? lC mם@+v7#?M(RE6KԦs8c_HaMLv;.I0 U:u,cC)`z ^죂<9M"j6 sِV >sJ EqJ1Qg*9_յ/KgA|ȦB-YLj!(}'v(f]v7έ4@sCq_n:Gfژck6DZx FyU; gd8)XAӗMO"r"av*dL_1$7Y50wzvSJSpS0Z/Z~߮O@l.${/G+A-xnhСVfg^Ac/+:ܐC}|Q=+Y|Ӆ"P`�O*a{2_j7>k(ᢧ@H,Z>R7a'+Dv6v/)~Κu3 15(|t[wS3j=_EGrRN"98g,17鸩mL9vGR6piZ2gC <}t֣T\"mC ^Ijhr?r]*{"~bM#eE wN^MзT$7|զ4]LumC!dzK%w%u~cӳgp̽3D5od3e9Z0p[r& '(zmmqߙJ$ jgcm˳"f1V\s &#Y[!ԡ=xn>kS|hl  nNKcس[AFnDj˺>@"RAipw=3 ޳ 4͘uQ͂$C[w1KʡFF;9Hv;zZC\r`'-=VI]~[ \{ qx �8K. %crs|Uljb2<rw,q8%2 ]Pg9&WHk]e?(;ľ4Y!(kSsRP'fgxf jv(:Vl*.Nk7g(m( W&k{vs�ExmqpqӞAOD׾zvO]E5WV\!�o!٩X~2)\l+.?1[5˜5{=<CWovoBSX`~bO5qyd9X}GcۿGV|*my[6y 66�|} J"T\|<jl7s{i]0;]KM,D} (جvq]ec!(Iii0~6zqFpW@čS�6|"'.eo\fͥi_s00h7qHzYu.Y ȀO\9S&clc,ebݗ/~eےo7"O6?@9#t m_bx/AKi?0vd'L*$ZK!qd,އsiAr fGd؈_ $qLY >K2s' 6%Pur'uj$"Y]L 蓲%m(^trM)HR6*Hl!+"ulek_H/ȁ*(T6DHrX'L'9ǥ蛗:KTZnALG[C%o3}*Ќ8Y-LxK`m#5s-y3e"tqwp:'t|cVNgl򘉬Ҕo70t�o+سxdKG)U00p%:OR¥Dc:eA<zAF=2տ NN</pCc .G8URG ۬lDC{Y wa =lR~ ;�<.HJ(ŸO<@:i=%i̵1Ikȭ7ЯUSqڰ �K=G7/笋nc9bc ~s 6H57o]d9ԡdlT3Udu{CZ2�Ja= $nؒc#*D X4'?_$+?3f4YFEz063)V8GHkf%q)-afgvփg^[f @}B;/qg UUm2&YF4Mw@xxpxL7.e]'MQQT{n5Y}dz'{#ć4}g|O&,ɾ<!gאg'dx *UV.cL-j0 h+H.6ŸVLu,Y==ikM?xHKo,`:Өs5-ӎM4dz$X4)ɄP?a%ԳWϰwk1ʈ.a-ꋼ4u@<M ?)w}}S=vREO]Dn˫dG#lܽ$Rᑛݷii7xEι@dGPYA%_j[J][(bbc{;TVXCVI&?7g7Njy-9IVGS9$;r%wLB.S �'͇-x :Uϸ&:kWJ y6EmOF&K|Df̣>#nq/܁ >$W[,tOT 7u~WJyHL'jf~nքd #i@.` )w[ˁ=-/ &=;SV3k?~շJz׉ d+(Gnlc 3M7YeüsOb6SycŠU'_ȱu%C=KG?Oumۿfpq9RN;m15xNk-" {2`$Vc)8Iμ|_ c²k7—#_3uXa7\�v\_Mŋr,yޯ~-:wvWב&3kOH-ʴίDئ܍R*<ca3ކe3+Msi~TFJࠈ_y()9Oh *g'QuT;uP9A Cʂ;3f8bWLcF7U̓6v Լ?NGWcFGs |YJ:7`=ֽ͔ G3?@Qv<}A` ={0`_mt[h82x aQjFYy݄LZW;8Su}>5='qK\_R[HI`pa؟(=9˕',1%|h=[_.Sf//O|:�m3QmGWhgb\B'Yz c+@Ɣt$h|8]e?Iq_p's`REw.@m<G<_ ˶E<@zs5J'e&]z$-?wsU/:n/h N5~`x,ϊ ;+7<c{v<@O2�TXl ?{-~/s X{Qģ4f(dQX7Oc߹h 8 &ٛV'\#:ua~aAn׵V&*pb+e5?6�R_ሖ{c6z,3>x <Ry4zf̽0nshƕ׺ÜFxXf254w+%Eͼ,BNjtK.Lfn){cd,Tx[G|x ua3YKe;3_ts%WQG\NWz`&:~-pQ\7IN_ؑTqG)wD/M׺9?V2}yP6R!3.TQ&J$3H� ΍Qń\ {`kfkp, 7]}{}9f ThxL|Y3dXsߨW))Z3I3qQ ;c -$sDVy=&IauLԝf&ƃM#$g8(f{*8syaqQM^ f@:Û? *N-Dׯ(_yH,̚W�l�;a0LfX=/=z"yib֜k\%Yb6-4/O5;^D|r%^QwMw~Qc?ܤΛ&nb^nf$QKƽe& 䃦Åsy.-1[0с#ssi/5 e'Agm\Ss*| 4%sID8Enm&P{\F́kp׼j)K[q3~p_FfB ;T>ih74i,?"dO 29ۄI0Eo| XMAZ8-st>9c01?;a.!8r)*M c~6֟3w oUTVd&{Y fgqWHŮls271<~*zyZ%)TqV:B�Eܽ:Pw;SgFc=۱}3mz{{AX5b*Dg71n/v,l&慜ϞՄ"'e؅;aA>ϳ'Y5cb;EQj/3Bw 1:pqo'.7 m/ l㇓+fz=mA$OzN+p,T; 5kU7)inVʁFǓ@LkH/ް:3>xl5~v;m[#3 S:exmi}kh%X_0T][z3xޜ\[/^qkhFUvLq"լk"kUFnlx#{9mqP3=n$?J~a+\k$f `g2˘è i/@S>IY16zڽY2 >Q<+evTW\if]e| >z-5Yx[,?NBf\;qY7܏^Z~YɿLn D{.T6�1O_"Q.OP5:\~<x°0!7T`$Fipt{?`%|Va3]3z:nS5L掏P[.?W$huS.%,?;�)#-^B%o3ٻoLNT-Ҧ#|+?e |w=jG$uFϤY'ŃĊB, DsrqYgI˘_LQBnt; ~�~A^҇OKBQ.pJzĉ)~0n{m r/y' 7!1ټodRR=\xdgGy2qJl9/+ p@<ю+d/�# Z ?q(t"cv raa Xt D[ы5ҸDIu>{aX,SXhh2T�"[s`?�f[h'O>lN+?yb A,aFsm:kƳ+^+ 4Wv 1oy9Pad3<d3X탆FT5 'Ib~> mbv}fa-6r<Q4=Dkri2*|LL3nwpa+vlZsA}|M4=w' *Hq*(F})ZU:*a(,T}-l,,_Qo#rf>W6+q 6Ɇ¼!g.4m1=d5z|ȯ, OmU~x 9!+əP8%QؗNci#zH�L1T7??2kG!JO8هe/[rjEKUaX2dV]I\@x2侭Ewu1w]+$nLN Bt@a#|RAl~."1m'\xS(<)Ch}O \"ibuq2|<|љŬj{G=tOr۟&ۮn#caz^fX_ݜg{vwMj66Lq3s^sFz/#kx~蘳wN NK> yH gk6gj:2$Škؑ( \y8fb48R9uvr4\h:^V;ÜO\ { Vƀ+)8 PVd$BW؇vrs|r:sn<W8a 16F츒X^яL88/ٰ#*A/FfTVDlq LT?gD 'tߋhuS\˜C:^ɝARv1P~fg Ka9 eSfs8,ی Me;^uxJ,kަVbe.<*}vl :UĞg?62svf@Bu;yMyeO_2"(1cyF-ιdeOǮw#} 7VW@[f]Xr+HKj,;P{-$^}[;CoWW؏I@;0dokᴎܣk&A%ID f 5;&Akṱ^`q]ʭ"4a&l*:i8DFNܼ_ֽLtу?Iyj^-\q̜zkDh' 8p~>B}g>ݡ]@1ۙ^+"ő^햠`b3I6\3Vc hQ]_i-qi4)AX{Re6m&$ƂC2o}^^~ƟG͕,zU_(HOx WT-!<06~ԂPW2$xx.I 6{k"+7/6|5Wd"|M-{C.2oҲAu9»s05qn!P4ÊK7AEA]քI.9΅^joY�mX3%ՙ(w>̲6n sI)/x~Xy> "` & w~82ǒ@RKa۷ xPK=ĿeAH{PߎI jr;um`>>2=.5Qs1a3L}DvW,33. 1Pa7"B9r߶A SA2*Xr$# c&_X_4臟a +vx3,w@ fw �U꩛wxP\.dhaߝFVQzG�ӦmuVg{q>~,_\/ $郘ɵgQ/J/X,bvn](^1z8NuQ:<Ie-2_XGFDKDjf'TʮrG?yfIJǃT=/ ½3> yj?%G]H >f(Me6z�@X '%`޿Jr0nxkgSLu'nE}+ؑ &n0IvE gFoN G P2g_^dGjqxWI@QK;QEZM9sI ߛg?˩ K=5 sTPv{aw*E,U{f|RLTeUXR6Op᪥Mo++{(-,;T1m?8fzCw5k ā?S _a؂ruλsfՅf:YuR=niYkN/ |^}'f]BT%w 5]Y((FYy}Q I~'LL(Bi;zv.9xmnM~[UY B8%Wg+7.d;9şBbFzR,!C2Ѝ{p2^ţQOҵH x:"V"uq$Yu*}7WZ `EZ]ڑ{KfRVf?A?…kWB L)t+n%!cıKeېYkb3HM`6UE;ds4VO%W]?pĆDF%ox-ĕo#˰p3Nҭ>OVgL+FL_ i*1YԘ-N?jSQhc[WS`Fƿ:z\mܨet%v |g(qjA)RӣMm_s. ^FUAde?#q\ a:ĭr(n bgO{#&2'7Q-W|/ّH8[!7(bbf}3ovt d.̊#<m7݄gd])gdCAb6>G} BA؏Na>r$J_/,s,˰$||Yfm We ~@HnU/QS3`Uј obJ4U쭆m+6{�l:}`M 0<<z"r`/'re_SV1N%k҈U_S}R{jby`P;)r{#_M濉Xr t-k_ /!x̐.$EY$ kҡwXd!xѶVZ(JMYٚTn7Krw Vh>'F}23 ?ݠZM5ŝLTBduzsז6׌YXgQ#1qV _›{n񸴋|eDpO10K8j :Q V E=_/?A =Mm+q8zYD`eFs(}\Jn漵A;~q y-5]ˍ1C]7sxuS4齟]δVy-v3ީLB/n{685X2Yk98>MQ8|VGo֫Cp$j=,{%pSph;&\V-9|{ 2 6??qjB<SrhJ/*?6$b7v=}r)NyuL\�*ė"/W{᧻^ts@pKB3Yut/ݣLUjԿDbm%` -o#+JD?.1W-=F)s9?8M,۝([S`=S>}�9+q.y{DJ3v1yd`C߶~|w.TnGwi:|YtG[C*Zd9wtY/jv 5o4:-e:˅ST.=~0Ly-$y._)i|Owė TrPzݼ=D⥧C͈f7iz.{ PڼZp2F,cLʟo;vٟ6BaR {}#XtwYP\Mn"|ggО*PhA=j^�9-$"bc;ֽm)h>vڼtY+|ZlgӶ&r"n=H̥ÊhNl (յ t1ɛKiŊs-mw<TO/ک|]R5=Ֆh\`W):<EhxK=v:ڧnӻ~\~;ŕ#f+3– {wf*uv9;bz%u᧥wǙbɍ m°~={:5kgiU!xfZ:b)}oSj;,8` G/_ o_'5TEFw|>mז 7DQ%8 l,nVX%ލVY uAh5Ywj2\ opӹMeOU_["33Qt uؗ} hh#8>+"? -[MVᧁp@9Pb n8vfz|}ĞJ>c.|"Ѩ,W L97k˘Fx~I;g?N K}3cKH2W<DOd 9z)ڍ2mYkKhB~ӝv8gV$Sa3|$Źsn2S+h4Y Pd<'Z[*vo t_M=OwzHi&ң '3": .E ) :*- `] JDBl$= rfi*,qɐҗZ0[+ݹ[33Mjw 1Kbv-ߞ|B.[@m\;k%ss0 paN|͟n\[`4-ÑO.ሸ$qoѫ* ~7Y[B SGCZ[h*Gl>a7ɋXԘhaN ;u:8X2ʖŃ Y5(qhw=zpQ 6VǙM"nŔLOnR؋wT?u@Ӫ<ZϦ\ Wg/j ' %= !U՛j8V~pNɝ3I'Sà ebӅxz*.`Ǧd}RٿV7 )"KNDgpI,]>(I:ctcm: :T+F&2gJrGqu)^'/VZhzJw8I0S`dB؂盉=];Zto| C7'%fF-:v+/$c?'/Unur 3\Ypnb 0,w<j[]dz^D/m'ŗ;<{_4љ[P ۹4Y�>[^ϴTJ2ˉ#gpyJdΑPD9/F5M\ !RV <b}r9] []wI#%&‚i֙< P@ 9�<GgŸѶ>Z)@|QgIiz0Us'W{ӪDs쏧88Q"1a+ƹ>/:1?A%ol^qXH5w C,fY>E{Y($AIln=_X`he~?FZ(g/ GޢBWV8UHXq 7vOf rBdQ)J]e pK1)'$ȧrT9$aZb3ep%)l/ ja\i5ŵF;a?Ahg�Umn!G sJД &g0JޞC˨HZi`sMTT܉ܖ2,)AXhE79r#0f%!\W}}ChXc.eE:V\v.QT%$k\ǐ<\N~Bϓ.bVs߿&Τq%v\|/h,%y'D~!Zo7^)֑I54@LZEݺcwnӃ}?er7EoUhÐp+> uсμBww.>z_,et8sڐ_;#^I<%6=ez=ɟ.;8szԵY 1F |g+^\|'>Mtyj`mGX\K>_71 r 6R ug:,G3ɞ k2)g@M>^(`lD?6}4u_0{!zr*~]GACw@=bSb73jo aw 8,.俒Mlbs=™0& 3vTj(.Ų+YIP`sq~(7;37)B�q2TT7" uApxs NNZʞ_M!!1,[N*XMe]F@AgX܌Җ4Re)MJg}@:D[W ^" A_b,dȺ!~mG\:3*UwOup.|8,W6l˾ e/sSTx4!tx' FS"ЭӊR\܈ kqBOFޞ,h'mKN`WE=)rozZ3J^^Ž-QjLg #fC,kw c*Y<ɏI`uBJ6kYLtU'јfMabԦaWSoqA(w#.#aס85A!(I;M<nsQiIYeLbT2lQ+,G/ond=a̗vZ9u25u{‘\ۂ4]4{|Eq;]K.l/+rBthli ;ědLǭ(׎ڙ|=$ k{ӵ@/3q[ؔ_äH_U1`Dj-| Øgヒ@ riV͡X_84%؞?xtm5nx8ӆgBL ~泜QTo0qv"i}uM-`(=Ov7{A =/ﺐQn\mB lx 8·Ձ?2<+8 N&V:BQL^7& ( G %d8x&[?l v̢gpvR۩K6rF;_zxwZң2§K2GZ(mI|łg _qqx?$!_0>uި Tx:I} xj5r j 6/B9'q|Z#o$%_?P0`&&*?RXht8ZJ\Ņ<-ǿj 9{}7ϑi賆b ڈO՜R \4I7G/G/eSxF| #;eNwB v.X% dFר-ܦvrW?zr}ʅ/!'_;'X0Mz'+nؽf`֎z�Ti'I7a +]/C_qEeϏ,'5= V38v빁k ]8\*ҥU%O9)9�9޹\E]8/7%x_{} Jl`5QxE{oqSG ҥV4p:!*C z /e1u3LeG=$do;Wy+;9)|BA5#(&Cq[qb8я^lU"I8vI]x41a?CWV&~! [h)qydiDZ Ǥp;Of‘ٜ[w 3Ys%1zOqVt,\'~w :%Pq/:N}^ߊjFb;҃uU=%UHk;aDOJ} #!j]U9fFO<:x]\u84Ʌ=HpL9X*#)! Jܖ Q.7ncuqġYA= n7g~8i.֟@mGJ !뿳"a ,/RY)�Z^ȧz+To)S9> hlv(X,[rْpSP/xh(J]Yȹ4,NjRRuR쉞ukH-'?ro| G4!٪DEoq2GAXD.E>$tVz)Aqz<qʏʌO&LjN? |=Έ^tBSC0b ~4}kW̝6 Sc)Y\ܚ K~o'tHwgG%V?+2k915ܹ̍SїJ&ɗ/kOi&] j^Z]jfE4 qd#/eW<j䨚6:glI̿={N|:g~=Sxi6ݠ`XJ\7XW?&GJ{t<4mc>9/6׈;yYg*w5{2=B؍vrU ~|$D =f{[jſ,$؊y셖Btѻ^ v;ns@GoA+p,)~};y)ψӳ4]p|t*n21|"_M9NaN?c7\(bo: {$sW?%0wc=_Lף,޳9$<{3:'XGUKAF>|)r{:::sBvtJhLDyqČJ#6zFx\J<Cfˁ=^9 7F q7-h3YC/?s |F<Tw-yҬ)ü~Zs*mGIюRvηeY\K\4*v=sip3/<|F 9zU0m(NG\R宱tDemYAΔC󲻚]T`V0]h!Hf~2U/WiOa/n6BL\Ph)H06o$"#:ӻ蟻q#r]8;].=#\}d iOa#YMT.$�gCoPcV[=%ڶB؀Tof-עk}tYO3HLcGy\𶹃NJWCk/=ZV*içn<=&O$Kv1uw̞$7if078I|%B?'*8QD@yx)-*%h,'9䆚W S_k.JP kv+/=mO:0K J1=ܪ΍|U$Оj-ƂY\g>ѫ&"Џ%ݫWY>#a|j6ZFh2CUe#׈t<+zJ* !N4ZE!MG:6]29_I69rK|ίkM%,2f/[fMMIrO Vqj=6f4!bhDxo<j;> N ɹm:8'S_;l5P [KnU&.A?Sc_cF2sPU|_}WA8(g>]A6/{pQ?[ږ_7 ..:7Jw>0/ҹ'Quy^Zq9Y`HKx\nG;^';Mœ73{60Ar[W4 `]' .z77t'b&KDv2ߞ`uX ,ej 0De[lS Һz7FNME\q$/_j܊d:w!6m%z~6{,ʦ?'k#;=o"V߂W|N_*4lfՂHJ = ӳvLыǒťQ< !ZJK[9q`"*B +h`N%x? _d՜4Xk]ϜG{<+h/硱 D%L?]T@̓z..7oY%1�˴;G٫y$Tagk0a1rkғF-Ju՗=ß�8:#\; .n-Nb:=VXD$5KҬw 7<A܉uRTV^ao"nގ#x >~U猤`&K/`]@Y<RNEng}>wo0u$Ȯ-[Z[}#}S;r[>{/Ft?!"7kLkj'k\o1߁%%F]b N36a3eZY:0Xc;N};{1vT&ŅMW6 iЅrViiT{ dB/NkvM U SBQ^\ N\IKG2QIt5ܸ{RTgwjs+]鷋I #&X^ڒT;#mv*JO>bM6`OsŘ |廙L Y8dm5~DQ]n?5.m. :7ӽ&jMbf7v{a-.q~ vF8SEe_0'gML*ގ"FY}ES|um{Mf/W`f) jD4 SƂ}Ѵ)[DQ3!w,z*DwʸJ4&!)+m.&&RgmWcCPD(q8݌r{D7o܂ &=iBȎLG(݊fe 5u,at/4 ֟{x7]G ֽs"'-/O#TL&eTmk#X\Lf? Ar'4Lh@OҞ9\H,pcAEYsWx8Xـ\Nn%jx&!k|gZNՂhv{apy91t�&Eظ'ǍW(WGxI0Q|Q#=: J LE\;J:Th)PWm0(;Bo? ɩݧuē]E?[yэ>I".r%\|~c#„2�eeO20 j٤ wp89N(g|g<m,~ocz]UpVݠ<T>0r\{NK aCC.~t&)G =m#_&rN_eQ(H)MxL1Y}w;33`QBk*׋2ra\g-!&\ Լ:4t ޤwb".p;>㨷OH%d4^ѕ+k~yeKOX168Oq9kTZ.&w&ӆ9e`1ߥ$ߍXFԮD.JMcJDHr[&N Z0 ޵[-Li]OZLw4ex jA>lH )؂~zry-{hIEWMSzw;tlރk4) m7Acdֲѕ$+8;6m?zXny<z%09<}<zOp %c;ito Xmʩ4E߇rttۿzRR%fw*t>V˞Gߪ#'㰳78-b/]yNQUܑ?H.z~&+'x H].\A.bNL֍[c_OG"ppbsw4Ղ3P�?fsN\0Ao2uv {=ptXf$># <"l%<ZM.!( m_LΤ|1Δcsf`> .U7E ]0w*Ic&usԓ *"98 e0M&gчoz+HMrmu;M.I|KJ 'D-oE|~<[4aS* 5=.=E @iLOvaXY ɫZArqsW:T{܈}5O#� Ew?S)/Uǻy1p:h<77!}lۤTH(cnC~6P{w)l V́>EC;Ų5]fZz>X x̓o1D@VҵETǾKXEdex{?.F[خ/.[:$T#Fj GӲI{K ;]0y)c4ߗAΠLd>ٮMG~`}gJhn|!ɱV9{x+T y|aUUѧ 0_x|4XڠLUBa>˝]LCëXDy8wӳ7L'|LsrIor%mZR=Uz0~H;Weh̶:J[!JUH%f$:ko9J!=U[Q}fCMD<pAZ1NT Y<N\٪'XkH"|־銖 $;y:҉ynXƍ.}]g̳¿1I TNpb͂Z!\цQܶ_T0Z~R'n!=ݸكCm3Q0(4Τ%O*K+&_sgo&pm,@I=єfӁeDxmi@ؚ*seN`IqJV}IB7۶N=w/b9J y|[3F}z$= JNb0N1~wĂۄy'>[L-1e b {,8UոLI *iY:OpawIreqW{^'Z'&p4w$!7r>*e])cCcE*Il]{9%ˣ.g1?>9�1G<8`—3M<7]Q҇>jr7R'c<;\ ^70w3Lg1n@3&VQ$?^,gRJ|U"�6<do n0:q)^+VS!^z`/i~Ofmeeu|[%cUh;Yfcl4oLaq!~V,^CM`6awksWo}=jBm3:/A\F}IO0[fq/}sY3~Qr_x\�88p i#o˝$:a+0XsByE|~ 't 9 6A}~Ѷ*d#`MΐFgbMf{Q7r9&kR[U6v=<!3O4aBł;`}avN eU%7(:ooƕ h ̖$5+d!4:DSU*r޷`kSZ0yl'~`_D<{19K2Yz^?x!DdW;Dc_+ jsz%'rG!nf X<>5Ub={'Q;hv e0ˠZ$njNQQUFJUSq"ҒĴˣ#"xiAJzy$�_ǁ_Uuq뽰#n&NWy16`�NN {K,'~#}6*!>Ir(L.g qԡd ,eK"Caܚa.ݤ+n{zJb-^9i /S!j z׈/ >+Lޡ|KFTS\{QTh|,Pr)a%ogSwHC52d0]G!iɀ^',AZyP`ǔe +'YZ,tOO,<OJ0\|JYKӈ#(+@`*s{0K>3,bԾ�til&C+8w|'6H9s{#,CVIדz;kG<}y=Ncnmc%7*0V?o?6lj&>K ̟P!9&%K1GNv{?nt*@8uĘsH{~go&Π8M0}yFlLl\=Z)ɴWp'bu/;@= [m=īO?9eq2t0&P߲Ō}緖8T@ybgE~?8#YJ]/ ƛaZ>QFN>^ƅ_ _%VRCglpx72DԘKBE7 s{ DX-wRtyL]J?(H+q.8[@.۵m.icwS1w9-EosZPՀٺK8(ƨV)!OaKYM_fNߍgS.[_a'Fn3T3XV&t#)4_mTi1ۘ'F1@%ZD|jꇦ`_UR:ૼ8P<ǕeYfwը~4*~N|'cԙݳP.`v#ܦEX;~bn\FU#lt o$嶂Qsžƣ/28¥d,Wnn\''N^jpV-,/,yBg,&0N7@[I8ij)gBT09%x^Ƹu6Gnt>G`peJ 6ԎgA:kU>D+MAOC w@4E//Ű{|ms?PG{7ˑυ;,}^qxMv`VvN'+Gb)˼R&W'[M鶓 :q G?† VoGgeGN0>ڶFРvH6CTq,ż6]Jxs }T&efQ.2!IRs1iRU=,d>>,QޑĊLq5>sbs9?u7kwXQ [և"AMga qȟim(vWoUW`3 Te'9L ”rϳhZ14)i b2_}G.58]=1}ܢDJS*9]An:˼mo72cJz۾m6) ;rC82K:q˰宙|ĮUDYʍ,8OrhsfP7}k ~E+vSoVde_qV'W EZ(IX_ygmИsogE,QdML]~\cRre{4~m"ҋOgqb& aTi|vB $1'*cقGxF{s�=Qq�poN-#?L54l3x_ >HT)!̜>Dx\Ԅpgar1Rf 5vYmqxȍO차%[Y/@ɡܱ.HM3SLΪdk'Ѫ˗籃djbfUlOynQ 2My�4&N8Kd._5{弎E1!{ w¾;hMUs|d ^~{Gw\1|ؿxe_W>H:5H.eO /5䜺{SΡ>3f[ ˲sw"ſZM7Nص+Q޾j;rTv>pKćg7IW拳S=zC/&ϥ;eƾ˨4SDnhEW3ٓ}31i$2zHPO'W FE⾣$aMtlCmԹnUt˶A.3S~ .>f,b_lQaZ'OP a4nVw ͠m|8KQR_'TH%.|UpH&a30ĚS.6ܾ6 ]6X5~ rt•zhx{ 9iE!d6k>$p:aE(+Ԅ<ge"y=V;~<sW|E5I~\6()I,=goX}XX%m{eoxG#Vg} 2q/>| >QTu3M N號94Rn.sszxȊ^7Y;c)`kA"E/fJwƲ¼(n>;yc@R-%!nk=zal!E'w̹ͩ/m. ǘ'O<KZߏ }OJP#5t/)c,=i7?T;ݟh{ɭe Ì޳eywLGށVxb%czF io6侙Aw$C'z]orgϦTn8>̗ٗMTklW'[qڳԛx ^ өs%엳? fvXWOUbֿFv=+qP,$<kd|d6/6W7Щ>wއϷ,ٖM3:fyK.,L ?I0do &\EZ c7A >}ְ~]LAms$d„"۳ ?YmpDTϜ\2btjt┡bw$\81t3D O ֱʺ5:5 !x'Kz/SJ3Nؓ-9%iw(R}^WGEEqbj)?b*J:zQ~:Qܽ#h< |lPx:?@D }E4]F63 w!V{G>z**"3i̜` SO֜*-:Ѕc'f9�~I>C̭l/p0anJvpSH%ؿS6^_-=֑An�k:,Ů:sX/et@„cx:W)i+[RoyJ>[!V+nA<*taތ'p_z86oXJ*uS_;_VHhhY )I oWPZhto9!j t7"· I]5tUNz 'rʼ:|Z,-3Daث?\eiy߹٠h|.у0[q>ܷG>$vyk!LJ/|}U֧.7|棎[׾9¯*.L{aXUMH:sVꌯeJfG<ό[ /'*}$\6Ûpӫݯ(m4oˡ:(YQX 7 i=&]Jgn#CDB}-=$Erx`!&w_P\C$ WR�<#;JQ$7mA#QPnO7vSk!:gdm[ST\-]>!{G [^s|-/V'͆N}$N O5n"kj `=3O 0[?;֭z8zY\=[[!Sy]4nmp~5LP#%'PO0o3SOղo5/w|* =>ZGo7c#u,xVldfyN (P-Zeؗ30 D|/E!)h-asj\}Yͷ fq>>kl]Jܿ~r_kn;/7#J+eͶla"ifFBBYI'|?~jY_2)\n),>/EZ8 KQ6W/l+@50d+$q_Gp} ?1ӴUԧIHQ;Rs%8x&iej]~W(l�K֡ +A ~ c4NTAl]a*[b?cāsܰS;V{ u*2]E o 0RbۿW - 5ڔ]DbF6R<%"vjr �]ҥh.)�`8#B(|AvW!6&ߣwoMWB[vUm ۉ1xњ${5?v m۩WFFFR}{Vj/0|I݁n+~1iH0'B_^VGli qVh $i.6Xk>eQ{N~dYm8k)g Iu' z >y'n? 5:P:& \5zITܒKDӲpYz26=?hgD}Tz4~bEO2"rc?DLtt??>||'{3>lc?Gpv?0/ 88Ci{6IESOrܴjbikh?f*kez׆΀I)4QUE>Yall1'1w&7t۰O2GCn<6piU4³ _ҢAm�^ RvEC^|6{# sk%fvW!yMz :|!Yɗwb _)VIp0Q[Cov'mU=ӯ+ȀSsioq<۔I,/(fCn2M.gʳipz-~؊7٦-~]Lg?df cߌ vHvum .EsͶOVtgQO 6vDRiDnL˅El49i"˸sMY.v j/VCד 'lG?(ńrV ]t/_ŝ kS,!HHYqr<Om.9,'L]33͝E!~aÕ+mPKX6[Y;8bB6̛I<,۟jpwԼeSU2q .ڀwa97(cGģ~ĉ]TGhb-쫮EvBf*vKkȃµ6Ɣ Hu7> 8a*i^&V!Yau+LOjMJ5lC*dJ~,6i{>WKNB*dd)d|n_=(2 KM/yЫrɩ65h '5m|q~4Pi Nԧ#ZlTf+C`J$O}i|*0>~@< x)e+J[廙gDp<ܺ7PC=ٸf}p>f)OILrAJ8}=p]MԠ|6λFw .p/8KNZ~_&Fx6r1٭,z [cHp#=1-m7г5kt]1o6ۭH3wt^ ZC/Lg-pgƷO8uJ 9`?;uqgu[bP�=3mGca|f<ϙ9gd)-Z"EDhAdO" m**IJ)["d-B{*e'$eHmksܽ:>g ZwL%|b&o?կlPfB6|WN^^aX`# ztE0w=Om>$[I5Yti�,1˯}9mVXFkp&`c:8X TӻޔzHeiLdlm,jP HNd& 3I\ oܰ;iw9DN&WEa:O:]@M0y;a0lp`2|4RN7]ƽoe6ء3AdU$"QS4֑-xWx7_S<)Χ\C"\g/sapcKpRa!?R5_oy%P> HC?6RbxRoq0,f_;ӡgB?ٙEyzq^%ty=N0^2c)b'H5&]BFu ŏZU8(14.}6$<& :O8"N3JCjpj~&P"93Io7=ӑ|+d,_NC煉+6С(׈C>}nde'2+[ppY^m'Bk;ϻd3=XHi .%_ xϕ첳7cqu`qw =a'Lm!)lqΕZXf$y^)r>[\:uH1V(>#w0aHF^lg`MN|!ކymFI NrɆ\.I7U&P3z ༙H͆QI>_B=PBK\|Xy?,Έ]ďk=?2<vrH.uAԟJ}oʛ.ej#yF̆ОW &|Srn7 #xH -;9 .:/Ѵt1YBGb_ tUI`\X9N9/ye9cهr-Jm؛Gַ[OCe6PC/p_91t2#~!'v,_!m w_\ijhFWMD _i5b7C7ȧ-Д(~B"M&cRMTĭ! ?)s?C`Ԣɐ hTlSq`)}1iud9{ 8e{8"ίgSHiS h-! Tg&~B氰w_+b*D|u^NBD{{|#N]WG"3v$sU]K#.iiybm337)>AWf*hQӊu(90wS0rTӟ)x@6LR}�Uk|u0*�IİH\!I,68_UNBkT7pƩ[H"XE:49z}i<4mbVV,!6U;whVg8e"%%2OqC̦)�j_7 &cا<2SG2vxåWW:czӵGg: h2M<lYtU%߁@].w]|{T]2{&->?-+ ڣ$w@ryU>J"G"yrgtnBN"VSMliX-̯G e|"^fN#wJ8n_ʖ>omosBq]˕ܓ|8™()sO7roH<QlSf{꜡&1wf]|x_$s÷>KP~* QPœXO$ΡЅRˀ/vL!<1侟o]Hz,&^{ۢ<m*a|3l+TWgyT+ϩpG[6ڻK8I2`xq\` _vͱ -"WJ8PگRW D\q"6)mwΨLTĥ3HiKADּqS)=r<sM8N!&ǽ#7/uÄM9 vKog%M߲R7LE3I¹l<o)\nzp0ҥpW +- t.DojmL>]ɵ9Z5ыf�=)mJCPCyӧVѥV=tc>~_p,mY^AŶFq6D6;@{uʖTI p-ѽcn#mdn+YWIdKL=q ڌ:C}\~UM^ă1#kdסC"p(߀tCȂA{Mz[%zc-J79گA2p8Zq27zsfjþw*gXgdhbE|t? |dd p2jႋ)Y?&suܙôM=d.{ :.%<l!Dspd*K;! $n`B,}%8"m:;̻[+9Vy԰~}h{_>="h1ash[x*h P$']!Rdlv#;\`zp,#P3ַM>JN$ҮէK1>PUzt+D9}32s"mko4fgRj| :e4l`jCy(JAS kώZK93T'K}[:zvʈ^>|9Sfr4_ mRI(m#=k.D>^* sͫ7j;Q=u7 3$W2k1tYeWJ}vU&{Aj^�/N9U"XK.>M6YWی{#0pMJB&ѶWX;[<.J$ �wRY&Dpk� !hҽC_NÝ ~&\>RW0˜Sn$RWRh|q 8v¾qĻ z{0p tc/iMǑm'X|w'-§^{gûAsPGdFM1h+0_HJءG}az'~]ŤYn2YrۇNN c3o39r-S8|S r2W^DJ}70zӧ&`}=!My1a#f׈3o~ouȮҍT۲ mR9Lߦ{њ% L;J5**t.j}]`躋 ;Ne29o(0ڂoM棶_Mo-Dc /C(:SL4ɠVdY ;$؍ BFBtC|&_2 l{KL# \GjAQFxE-!tP+Mz}bf<feǛRMo]f&:.JJrBΖa=sѩ? o)u;4p8ÿ`;]fVL _ոp!\o#]١ b/ܺc۸:\S!Y'Eɷ}^WKyԱ,ŃW$Of^F*:D4Dj0K!<<܃QU\"ӹ(]JPGs m6Z6R:*\V*X$<'?:ס"i7xQ'ipxfXw<՜Ӫk>ᷞ?) _I$=RAAġO#ߙ ]Ś琪-_gG΋Hk V>Ϙdňl)Đ[48v|Jn)Rh:. =rK%9%c/ҙ r#z`دyvOn~Ɛc0EHiE5]#^Vk C!chjPf$ݲ I1kgpMR8ı+~JHuC\%u�'Kf'Y,cZvuȦuGy4Eɦ^t>]eߑfCNs;"q,S/d+'`*oeW|ls^GǥQqkY,*@uxuU6{?x]HMcߕdR;MЯLGjqPh(NטOLg\yL.= B)`d^;9ѻ+sH)oiGThh!*EʹoKT7D.2w3 wei=,ISF@{H5swzF\~o&$!ɘ=bn~ ~SrN|}&mofĉ�)Ћ¹cq !qf `̇coaFtfHU _P>'0f$\ MsY #}5y}dzX߆:1FoS=KT:[Y FPF^Tx˜xc-RumZϐVY[/U~MT0!0hk_k ߿D5?2+#uB 䴒g_)kkqYղ?#~2#B:?abX]|άyRijxi׋rxê5C&UgSrnpa&~nthx5:u׹w_#>]"ZzVK4t zwpp5f @y͑_ރp']\Y/ӲZ^  1[P h͎@ ~j='&r𝷋ڶolӷ4e+;#ђu+U eԓS:n`+}܏[3so{w&xXPg ԩ0Qn ">s2nƏT| &`w F[p/#aLBuS i牜v<#9[K?^ǖw7ٖZ)!/eۀhS4iTg\fM<ϖ^=K?_1Ѥΰ#RX]>æg.,+mj) V (q'^=8q}߫%gиYXɛ] r$9!cm@ګYeV[+Q|)g7CC!fWh}p4Fޖxn&wu>D|_#[@r=g_?w pVSH!hF;qΓ�i2KqxXT<GUGѻiW!Q+'W$Un{W OT sTW9 Ќ@f̨b7!%2@"i/j1qIpT.HRnI,rGL3Ή8־yț`oJU"_H8*= ߿\Ьx"Mtw=6Ё=:_`-J6bmN G ldbv*\aSx,.>pz9)&8O[Ǔ`F+z!DsuS"`v {a5 <U{'a/}ͯ>2S ,n?/?4ͳpn|WSLfa&)uK:0aZ҄,$z7BJ|5^|"|4EL;F 0͉SG/&ĶGy\9u<G.5GNճb:<eEvl_5?zrB2f)t#; QwGzS<o2{BrzPiŖM% 2m('x5")$!mI>v6~sY~ =mO?o f[񚶉j1}аG%NO#7K& HڎI|c.?Bؾ/߇VĒ涣>.xD>WWu~[ق!xOǥ(F|1&_o#"j6E^rbT~u`-vNu7ȁW(sJ`8wiJvԊϳrvm>dNצ^·&㫏ςsdRo0t~c:ґ a7+\Mayqk*g@Tt >Q vEnsŋ41h[S  )+Ac>JEV7qgoM!/ b:Q֖F6VX֏TGd=jb~J&< WnzաgUd$鬄}> ;J \k()D|#s\(#4ª JvC܃߳|tUs* c6z8�vܧMv;͞"[K(UуW[qO粓l50;Czds5s *c(˷Aޏ|(|o)wxp-$H)WL9h}NVj'?Iɡ4qP;UX͞_T,S93布|y\U&7s׈}D%" {aZ-+ڪD+J.߆ o,~<A8_^m]'9M#D[Uٮh{~O::2Ɋ-];.-3MF6Mܣ4QN܃ gFsPX45 HM˄?ׄ O7dz+6pm.aJ/^@~_neDr1g\}1>%:skwA̹ , &m"ѡY8y=5K/&Aip"jϝ}$ η*G/)& ksDSɚA< ?K'5 'C(r %9U+G~&ݗ`)kw0}na[MXԞMjN Jf ?Mfvh` BĮy6'?m ؋C|gD~,y0~dJ1?Od3[4sD?R6pc^٤4. Ǭ׉+syc^v8~%9>ؘ67wgz}t[|p�>h$ĉXRBf|5* {1,OcǷ 2Ǖy~~|q9}oo<sNv;Nǣyâ>:ŻN`ZoNВ͢[}7)I|ݮn=&}ȥ^U? ߪut $&5lIk)uFrʍ Ҳx78["X.H'rR}?"p7}rpՑwb?nbaGܚ[+4z:cۄkKQKpqL_,W=rϲHIȊ#"'&if'55'6bsfbS\vE&w=wKnmvJ|$sco'R km5$ [ec릅4'cNeRMܳ^ԶZRÊ̟qx Z@z#_Ka[cf{ɃB)rzgd!SӾ2KZ/zkhqWa:e[N*Υl9*X<FOZdN_0qH!f7>o=k7 arJ<c/0hB4}qy0#1^WylRr;,`Rh8?nk5HH8я76K(@(N!#kRW51B5Klv$ٌq}T9_Եї$'9鹇-Rd̶Wӷ6f:yHZ|jy&zqẂ,O5 SA#[0VKKsOhX,GZN%Ko okgz>= LǍR*'/? 4Zɗ5˩7iH{)fQ^b 2`{6 M8\aBF-lj7)G5'4mj:Cz`J>W',nRvD9) wh+f˜IuKZZ+rټ*f@B Gdq̨&HCD[g <3K6nsaQ6o%0SH 88)I=><̗%pdLa٫Fv4s9VD~"cH|n:Lvq/ `09Hm?7_{]gI$SBo1kU׊@Uq}SWd>lT.ΙcuD܏�6FH=Kۦ,@^nLBb<VV&,B5~ϚF-'\I`26w5FtyR&3%>6UjּT`ΤkhF͹@we,<5%)RuoO 3I5KAVCV (%C+C66-z.Lm ӛXǹh"bul;}0"a?@.iēɓncu5eڬBɄk,HO}؁0倁M BZ6W%L'eԠi?~ wC:B=pԌOa?󻴡+X=(3J S煐ӳ_"Q7b6W4D$Re ZVC\|swT:{)&nMaKG 5r"]HE8jcm|#&ffį$b e@w{^5W'7a|KKX< 48M;K-⌹b\7ϙ} ~4e4nd@v׎?ҜSH6 ֢t##S6my�N%zGRSy `ɐ5heEje|B&IS8q BqzХaS+˱ s &(ܦ^ODNMT✷"_̘ ;bG4޹@,VWn~ (hb Ýd<W+ w ~h!j`=g }GMk97zVNl M#NHlX7^3a u; { *9 i(e@|UkBCUEMbm_SvE'!9PB^[6ya[`E~`^G<${�oOLAFNs|0L0>NaaLbӕ` PB*-?o |>#iW#`LE.sVr[9"ř\=ruWB)"ųۦ.CdkiL©,e@yp?7F*L=OY:| 3`D 5F*>u1; A6]<$g 7 Y,fElLl,:1�UNn1g_b.92_8*ulV# Č(*8q~c9a*JSi;n8g%8zr㾓r[Tb܏u`|-}zwEHH̡){׳]ɷ;dzTzt6^ ݧe }u)1FP *% e#=6ԃ=N.[ȓm|]5TMN $gCs03oe-dB#g`Dݩ?/:d; 1 Sh5hsmhd Q^F|[6тlZ$?X)~IzMO0=ǵ>5ݹ2'@)t؍Iëng3˸~GZpv;&w}QB6Yg˹IEq|] .OduuvB}_u C XLTQ#݈_(z _-Q _jY .S'peػk!VUq&w4QĂ1\R@9E ').;CTQB l\xǒ_#wL!qG<{ћCUM[T%5zCH%�wG>astRfv_S<(2V t_MoգⓆOĢtў-(Ɇ&Ŭ%)%E䖾((_ MqEpzcXtz]j9=9duDVIpLq1|Pu0>?oM@`Ik y0kox 5>$gX&k"2nFtP#cbf_k�~5awSن_\~8q\X*xAzHW`r_w/]H%u-]0 �]9Q$I/aQINs{vWsl\ˮ$J)}"1g@ GyE ^N:NJZw4Y 3ŁDӜN OQw_K;.v7_XI>{K#-pHwaA]TwSBА[Ʒ ڳ f:Ll"`¿7ף02Y~~5#zء"Q%q@%󏅼VIM8~+MQq2]4#8k6aEs;|I6e2 l-t�6~Lſ(M\jt8 J՚ՊnİC6­l+V zW:[=0l?a`nM+yTVG75RvJ:fO?DlRC]?puj3W L|ϷC:̾5iq8N:P9|Wݞ�}j[a$s-qzM{T_C%خ<=4D8D˓햦Ώt6}0~i@a<^Je ]l8 \F#1ݲ@U6I?ʿ%lE =p+qu*€vk>­YP9ق<Uޥ ;W!,wWiWmf~U.uS}1iqo᪵)3d4v,>F>'r&a}| }@$[O2積B%WF:}rv*QhI[E]ʂעpc:<(Rϋ/afx~$ZmMH)ys`}qONO%5Qύ> ~qIauH2k3J~18o]>>q?F!` 2[P@!W(*GhryJƻ$/MvY/]YlzRY#>tu0ï# 1ohٜ>Ҥ\]6^Z)Ut3ggʰ$DX^ܰQKH9~jzzwOZDK5c>a7&6`j24*'&T t)pںl~WK> dhՃٔO53қK!06m{^``2{qH=>!կR?> 'Aʏc0J};y%yp\N$ԎZiW{j_X`I;|# X?w$sֹ̟괇'u$"A!#˱ ܹ헠(/ s7C+CbB? șxPn̶_) i]Lp&Y"~MyTʯK@¡v\Pe+Kթ+;xu#D\?C^0O,>DubW#'`ɱ #"Xz>w3%Ux" ^a XW:6z{@_.KaXpP@?_ȷ8ޣ餬#%R%Wː7Q_(3͈9ۣǾ܌z Ӱy T;lk˿`;kfl[≡['[6GeϮp5yڵ.*&u!O|AuA ^m,mc# 53Nf~c|oۦJwD4{DaKz鼼<Dg-eϥ郔z^JGVi2w|b`ڽ)@+W)⿶R[jKD_NE؅U0,;sɆpurXnjX1=C/~y~c>\ T*X+/AϏ/eՈ/S;4L6ENDžϜяš"tI} gEf/Cm FH'NmIǾ5?i&yIk/E^h4 &Leѕv3Y 37SF&O͵xמXf(pVs;@+ce)A,n>˔esf21Ph}4|dNQrcܗ`cp%E_9$†ƤC4eV |f*5_כX ,R,RTk:[#_;c(f\SDSdk8QL�l>G{VWRn󺕋`XOJ"49`V.؀wȲ2{ i*#G;ſ^/*<{oK%7Lfuʰ8. xqC||[Pn= 9Y,>y`T>a'L[:gF $7PÎ)@/D*QX~F<4ſd4 veV=zgJ"׉RAJn.]<“KcJKMJ|+DVN#ua+4-P/* 3_P2BN/_,ݍˠj~F%WLִ9;ԈL2ʫ,7OXD~'l9_ԛkϓ((ڰ`)+Bj礈 wI/ɩd+1gW7Az9fbk<"BN5_!Š- J%V@zZf&" =wj)md5+[UEW 0mnQ'4su+D;ˇ^S%5M&"bјhtv6#xhk.h{j6>y&ـ!!hb6w&Gvw-{ޫS0&�6{7t3ˮPn1lQ6|cT>2mLZG a{ƻlAt >>冸="װg#0ރ<V ۧ@g{o"m T~ 'y_L"'&/�UeK-7$~pB?³ ߔ3J5D+0lOhj)0LqaolcMfٳ:sPu;uA0цr|7lv XY>~vMN-fiS" KG?.:6HahTO';1|mJHn~»CAZj-ܰk Rmvpca?wzB-ط &Ah >Xhj0�g+ePOzdhǔ '(q"jδ5ːmk6'9VS<K !#\ DM 1#d N5t 2 v!aO5%⃊ui z^]lit\XDS<{G(Q&g~kjv*Ƞa6> <r=Nk&;*ScvBMM~?qV.!љX"<FO lN"|Oh8p~?Ih !ʒ8/!_ Br:*;zH䁻-ĒuukĶ<p^?Ę95t[{ HQxDž0iO2w o?ZɕXi8>WoWf<Q_tR}gDjOW_\*R(-fIA77)o7A Ks?ۃ/ 9XkJLEd+c9y)(-j[Hf G߄#BZXHM: Wn 0?<w0P$ڰ ދ3<Y!=N}yNpf%Ʋ;2N$ob'S2QIhF'\9ͥ2,lׁ)Bµv5cy1K&_A+6oacʨZ?Qb D.k3N@z/*Y\@trx<\8ku9=%LXG97 &.sbw1y 1zd>۶E,?Q*αY}v)%M⢯' ??F%BɫGg@Xk.J#X>^P<]%<DD O +,{Wn2:J3?7yi89C .2m@?pڏGw"we6Mjd,@[ӊXrRh(7>}'8ڼ&"ƨYZNJ]a iϪA~t9# x̤̂Ioacި 'MP':Dc_f?!ۍKʼnvo>x<Ɛm筪N( &ۈ(0ƭiBv Z W+Ww|r?mHZv0+ݒۧd dӰ j#C\VYqKO2ՠqs,Qw&t|P/Y3[ υY[g@ˋ|G^2`yQŔzqJ^%9w*t]! :7�A#D+a-'{(0G1!_ejhgK�7nSo`2۪XC2.TEz_ !ru|["~"? [H_> wo擁 ҝtPVn}ʧEXhK~|H6Eoi `0݆/N Qd3/7G̞R}@HODM13)<" ?1{KVs .5taP<7Zߋj28ŊrB? UuRt O>?Iz`|v ʶ<gnOGkuNը5*ݹ0?| 'kIqKNP9MZ* ԗSП|wAj|Cef_hh#+mb7es?Vч:H},*n )ql~#s^.ȮģiQ6,F& >+(!YM2mhehSS!o|Jnӻm@0Tf8S6}3/[X0ȎϼiĬС;/=DKOkV'ݷ>sQIJ*{$nl+%_^]AZ G;~ye8! Tg7VcOXi|WH %'-\>]Ff30叟ߓD,6b9;r,,:!k)2L kiJ bKGqG@;1]KQF /<΋Y6OB3 7؎OM/}Ѐ짇RSra1@gSg8x/y_qfKuviz?m&4$Z‰3Iw[Q8bx y! mŽE Vc&V�~vmʿ.: ;q&/5du:sZ?ѻR'c[vZPdŹ+'vhA!LwȄ.]܇ix_{<j`ch~mAtb>•fLU NeU9yH{PU$y7_]I0QLHWl?s? Sݷ#=hJ֣lNx%nƉRM9ZJ$vĸ5oB�k5m Lbĭp `{ERElm"uUS OڍO@0Sq:.&uș.G|vC.u5p(~}2.ovnSf.nFoi7ҦA|=a?4@ CbQcWbt: x>m"q&_)}K " cVgq.r6`@( Yzy5m"nATv $F_`{/tX0G[]`k4)~9HGnNY(z4^ͨ=!L箭'$<wCyc}J߽UԂk܎AN<x'&<Gb08~ts,L)^Y#qQCnzNVxM qOiD#c<ֻx!$h`q`mXmkGHGzaCCJ ppm$]ɯ!&t6o/22?`zU}Ck}t &֎_Z:+Ho -;SL֋R\ m$K;alZ9($E#KȠ+qR_/y-VRh9dS<pVga8w mҙCeH7u \Y dm?Dlt}}19 [q9*s38*QȪ][987--u8I/Wk0կ"N$W',"dmT>r;�gmdZjǵtFa'A**ђ|{0LXwgRa N+?k1(dӢ-/'fD^vM: -rK i#uϪrV)5gAF"e�vڎ21Z$E{d#UbW;r~4O@n`I+puƃ %E}ƉOR}B-FUv 7{eOf d@94 %΀ q)>~0?ĘG܇5C"ե-y+?.XbsԻě9ay/A~0]L]w[Nԓ\=|̾s^#V̈́+_hr*uCv3XVk&/KN\Xhv(92+$=f/7W\o-r!9/|͇dBѾVpNV;,�;Roh-H`2O\9IrW):z f1MUN*zߚazf#?I:LeI6j5MS7T;92dTV c5Ĩm8}wy?}4<�k[[΀LYd7ll+gT/Ǣ7/ԍ\*NfH0̟,ڈ7PN֕2Wԝ &Vw+LR!ڷ˹o;4b*"l.ee~ TWIʤTWiqj ?*lӀm-x (3 v6? vRrO;i>E,koE{W9'E|ǨKl<k'5]m;]X28yxް܍s^~ѡkoDgnԤ/rߢϰꨟaxZ +'[_}}LۢAs^ZJ|L\1B3 B7 nފ?l9Η4l]1w\:6N7(0lޣˊ%T>%Bh晄in6zLY]~h>=Vj@ /a}; Nstr;Fw,9 6<yȭ+nb4UR3 OC ٛWz>I٠vFvd[hl ,ݗپTJ'iOu~RZ)6rAtj79ns [ʼn8-f�B_Һ}NK.]<<R@>h2yCip WLבS`g4o;}QB}x}q2v%*COOg+Alcl9:DOD;nS1CH$,QDYVR =&6OIԼBe9 IRm/+k/͢'>^GO$ih36Gm]8 BoF\)=kdgYLd5VR;c @XFcGn 0WkeIV#01ʤiQX,Vka|5aj=ΒW]lȨjYw:|.+O``Jӌ[" 6nq-~27K U&m킖q-Mn@I> IH\ܬsPx)ya6' <q7i>z-nBHo@yádA_j5#S;չ ~J߽ v45:D8~ [k3Z(�}~fr%-RyE FM|^uaZK uZP0UEdB] AӒ.Qf72*x'$J9Й(>C0˟4^OsGדkI7Gw{abu/3aT?CroɴL~4\#mq);q*D!\5VU/Fֹhh4}pZV39 m&|*_ x S~HWP/dϿf߃ "a]/uDRrPac(W�" e]c6Ty#T #h+`S QP-cT  Ы*,n":ųKiwt[6WlÓx+`NEIIbmf.<vs{<A?Dǣ:%M$s33_hl6+D^0]ٓn"AG6+֠qN >\"&"mөqj FݧVn%Sc);\v.L-g؞n$skM>SȮъ<ei/uHb56 w+˿#oOjWw'�N@]hRĦ:q,5-.4#-g>C #} fawOa.[~=\f+5oupP~HX&]ɝZ⮜co)xs:馕jMSu?װ%IJ0p[&é]RĢlRb"O,>Րa71-tf0~`2N'˶rka|od!S :-V=Ոbz ڑ˕Cr=N q4k[ QN1<Эߑ[1~)q1vsH?`5,8\tg{5J;ƪ5$GyɯE7}l&<`.p$so S-Y eN3z>"69F4:N'{&9JF5A5/Q63JBݡٲBt3ὗ"E`6kE~#Ej3HkPb3f0yDTbS zg�0f8Ys΢/RG{pbu 0{HҮqc ߰2\#o>X9jza\�RgC%iM3+Y-\gxcI^|_N[<&dWӀ+BqPen8-u;B +8\16\pM)~a޴O7!ґl-'4UEJ]#EixB.lFe˹rT_@K&JEd:Lv!ew;Uh~3Ҟ,X BD4XAM:UDqdxzk7Ҍ ]T;Rwḃf,nʡpz¿\�;.G!G"PtsWf3>^ gsbLpQ`&YݏeW]S̥HS߹/m8"/2oF~JL&Lg"gR0+x3'^uk3.cB:z:-<z3Ts(5a>Y93s upÒ̭٥:܍)麵`s-G8x՚oVcɪYx= QJ?͞Oƾ{; S؞iwE@+m+m'<rt-Ҟ)uOdI GI^_hM$o}wHy+l|mm6"wk.)P;% y:s^)]cD7,Ceq6_B 2ɂ&cϫcu9* Zc(d 6nKSS؁JlCќ'2cI˩ }|-Ko�硫GυoWQZغUtYK<E4;' ^x: f%YfĖ<IRfTgҷGD9`NPx<|Yz I/xODF@ G0D.?XqJ 1RzIf !wQA[ט~8+fW1GR)+a G^M/1eD7a)T~KC \U0r"ַB4וL*UbVR葶xъ=[eB ZL6"|cu>JX{kQ#zpݍ|#iH~&wqve͌C7#7E#3 LrAœ1w?qp�l?O{m3R3 Pzvp:]FWџ^v:fr[UOa';",:,I!Ứ6P5C֗\x7/m81іV-zduKɹ{3Di$8(7X:3!_YMP ev폴PUi[zssqOvL!gƝ^f?:o5Qe)9qH�WAsSؠ]);^45ZDj7)=F6$GǓ3U2+e t#*QEJ{ra_ fYJ .[?`wGa(o둶c.)#'reW2¾))MaTJ 0}qNORUI>M2JG{<78ߥnh7?w۽8:B|=r3< 충 l~j/yM҈ >M)D/?g99rF? ua_`<*r63 TA s2p$>F?_81Q丯F ێox)fR)vb,80oUKUT[A8öD˧&X[bLR/$lEx<.6G2EݳY't$xh"n8q>ƣ5g�܏K['KɫHV 8V}Y VRXÑޭqv) ek6,5am>=,2B p`#G홙'zOY84 d'm%8%"RJ/6@ o AIB5׮Eݾj)E/qElHLY;O(f4d53bmqKhC9\$ve/aw(0RU.al;Aj#h5I}Ɔz-lN$SJYH\.fDyP[|bt3Rtü/EhSX nE4fnGF] 0*4c+)%Dž࿶@C6+ oeտ/B1w~ vC @#"Y3蛶_hvu[Eд,<^&=>͢$K3ٮ啌aI yқ;-׸G:@\|H�:l2m&0BXeUD.mm)O^1l@$;܃ąқ9 a`< `l\[ ފ.f -;*nJg{I"Y#eA )ąN&rwVvE$G2}or̜ɍ Ѻif!>yf9׷Q0sDֵ( 78 /,}#{}[m!HƸjGAe/UI i;ZjnحTS^ʴqW<3/ vG&]ZIٮ/RI<wW$k@SCpp Ɂg)%2n-ңlAyb9�>%'h*´ +o0C># y9/͓:TpdZjlXBr+tg <|)I&')&` Z{of3#i qTܲK3`P ,֤kC/Af/_yFWGMqL.80T'g&Gځo K(.42e ާ{UI[I@pt|u\y7a=̈eko ǿ+кOoZo;BխIع=ҵ |}<{c*ؠɍ ^"4Ō1yG5:q^D=f?pˀS4 <fcw?m7#F;~,*MkҾm+ɠMTsX8:?n~eF¤Ƨ]s+8$Ca64YQ@< yv@(޶<uLO6g; `vH*_Կ4܅Qm.8IDs>bf6panGއ9 z&.1TSi K5?lÀ7if3S1"Z}>?,lDh+ FP)zSN Ucz {փ滐e!AR3n&;{!9pNb:)h]j#؄W 1bX?Κ+3N@Rԙ5wS²[*p RNWǑsq|e;'wa4KPׅ'S<o߼PrTNIIXNѿ-^5UZZ*FRS/%_Lh́42I޸~\�ob<kOLqE~? %Œs=Ç\w| mKP1kmL84rxDuEYwT\B8SL[7O:8o'JG?Aù7X>Pәl«=,"=z @>- DZڝSb =w  ;a"aqs:Nv${$';5{oҽvoq1SzUty5/|uGrP|q.Ζp*DX 0Y;bI G}[3׆ddt"MqE!Eh$ tъ)Og{n[\j`N<md3@fڶfm nAoo {OE!ѯ'w̱{32Fo͵.!r:]7tµˁ7`ex@ȯ~rOإϦ}i=mA$+od4kw0k�;zOt/O0-N/9L2 >LX8 M;5yTޞq$~6F띈l|JY#2N8KvBmFDUv#n1%3|W*o8v ;t*'Klvf?k"l+a1cT$/74<%C ~nd]{Fyvr ?^0qYN캌S<4e/ K/>Lvv lcQL7h)s{ɹ\)G[aDh''_Ʃ[Uo;`o;z}̵wلřږer'?CbQ k;x0qE_<0@ K8/I%sJ5J4Br՜͒|@mh+a +\cE[#h0:|&�MYF[+QL W+`z$ʝэQZ̧فv#x7 Vu NN!%z6bRT@aH/#bO}c ֓B/|[GYZlwSS B G{Z+sͦ< 'LNO?. w ŏ~clM̐^+;pXB |1+cea>}W{݅Ƒbb)c+5@6- >ͅӪTy&<l^y̦o  TH|mq:tuyzA+tr\.ǻ72Nrk`](d.› !!M_rޜ 71{;^[*k(Nb_"~k.ӥLf5zؘIVRLit,RiƬA 7ɓKld)]i*]0kN0 zPaNdiE4T@&sN"uJYKݛVePkGmN)HmIg5WW;-Qΐ?ndzi yy)`SvnsY<_WaeDǕVؽcy%:5`+�_sYȦIUkTqͮH)=Nd_|^8URLsya%61V'eQ+=_{p7bD+j*F gLm]"!<뤸j QA,?Jq[^yc'IYOy߉O}8*l lEY;|S5gL.yhiF95[; Ѭ&X=-_{=A8yuQ?X1W{(ΥuЙ"!4�ͻoC@3%r]{M,.wA:o`;OJeͽNNtfxMW0NQyܬ cɆ7KjNJ? I lDs‘dT9}%UFM�Z<@ۯ>:Av؏3Tˑ3YU0Y"zӔIڇ[ȹ,z t6 3e`3gblf}Мy6]<�&`v7E$J* 앎-Q|S5CH@X3(1Bh=cc%EQWy_] Pu;.|6\81+iLN$r{ n1y;M 4Ms ϕ۟f1H ofv- U _bGUp Q? gt4wnw>r3Ok*]%$swfcf![&@+u.PemESg!WGa5?9S�lºߣ*2VN|ItgpZp]^sO+೎ odppl=N/A&i]r/,>;#/1]iCEcve^M -Dsn^H?w <x븣l2!>p0 D$g5܌Sq碜" 5dDyBU*W8Upͬ\I`/QyBShϦ 8Dت qՓ QNEV{n/N㋺$zΒoF|-w[m)k#cѡ9R -*rQ4;g͐"b=kH9@`TKx&n6q e} 9�4M9~M'yxW0j!"+̵73ߺ..FS_E.0zR |K賈IuLj Fٷ;pj<mo~ZdEt)zQޜ>D}1[ڱ)0ߡZ.VA{J*\9 A@6_<hᄉn>!wn7r(=F դgKڈJG�ϐT/BBطAq%\e!䍸Š'$}Hޛ^D? 1~75(h-0W;INA[<˘?R +Պ=clljQɃoIRyzVкc=?k-سAQvp0@l_ 4WaJ7~>[ _@cl 5MI?& U5cxnȎN]lA!`VU?Z)=X;dDc#a c f<Lu0o&)ѽ㱘{u# xJmJ,@^1#= QUF�"8?tyO$1hk {6aԦFmgK*E)N֞ѥ̆Gp;8u+oCf_K̅Nۨ7S};@oJb̛Q{{ak*]k̴Vs٠m2L@!z\oNWwp*9}-B5 Wv| e:%87X_hӦ *rvZ4&o=D^;u$IIm^Lȟ 'B�z 4X5nfM #Yo+LցJ!efC9@/?~$_Ꞇ==xl!Y%ȔX�>Gϱl՜L3ЧcӔ;48"Hhj G_sL\,0>�9f[-¨G ^I\ӚZׅ(/pG;U`l\,=&Ɉ8 |r#J羟Fѻv 9;>|K MkJ|}n~�Kѵ+a4 KSQ-11DfQQ=$gfD[&Cc9ʯ'Þt31Ժaގ⁍ݫ -QG,vP$~}]?T3k3 [rNe'.Ff*h1^լܿފD<aWD O/;I9RГZ@4 2BTС5GHᵧ}0tq%,5 'ص+ M6JS\Ln╵/unAq%i<)~=0HιnMug+m,<jʎxaIM*^%OW2#s\ 7W`%i>?ܳN'o\agw5%;7] 1xxM",,(nUE>K�}GǞ2{[7"/_s2;myp E2q'̅{IA2xyl,Ņ S)*qR?6_v<>ƛ@I" ߖlo-s.55qV<VT5Α!èq9~Nml6z#!Rvd} mw8̟=^wwf@oRt3[+G j9 ؊b9pLNI}d#ĎK00&OӥNmPO96yl&jʴiiPa al²ynG�mCPڷ�)w"^;ZT8Fx|Kdή tuwǮ+H5Tm#ψݛr@ֱ\z;w8r.z![3cS@+SV5S+�6{p4<MdfuuŬd~0csNOg+]@cD^^TK\I-B tm:Eف/AڠOY|ێ™cɭiuhUZ"} n,pju*SX(6~WTX>G.�{09S K8ù\ĭBJS~doC_"e";]ٵMj _n<=lTu|;j35@|Cj3xpj;yLv?>|/;0rm$\OT'NF@Eʽ.[ iلF[k9 G=dw z7>y6]A<2_*fs`Нqza8A.| ג/oʌKVW3k6ճ4uz?L՚DO{-܃ fExPS:9ZrDρ}نm H)XˆM$~fܞV%K^zQ.�7_gǝНY}ě?'`f,핖L:SW}L/ەUU9ۢ2pyU�ۯ.| vqp>*} I˙:\I%z1%.R҄4rSuX>4`Cw݋bkD1yx^!hj6#7^)vFEVXT} 0'[/: fQdzzv 惜ſ?2'qG4-.Lt^pH<|@tnq%ŸΆ<Hk cmAi<4- ;V"ׄ.sY+jh~ 7G<tlר8"S8ّyЍ+!+ƺ A'1_ 9=<2Z8*$ %ξ<HƏ\yY d{ w= $s$ЎC(YCT|xue#2L&VϡRs.Ȗfldf'm,^yT=ZwbKngcfjTz"]V Sp5+"`H$·nK9TՑ[gtz'NS*z (4} nb̤ܬ/vpWLCE3Kr0<3gf̜3dMD"dKEP()5)iOe,YӪ$Z(ZT^_0s|>}]Lo?ВIMu2CyR"ê5us7saN \U$pz be7LX*TȒ j8r38 E-?<Sls-9,qvm4S&v4$45*ږm\R?1cN]~χl2oztwrDkenWs LC!x, z4NlpWټNx2s{ %s3eΜa gE:,ޜ9r*ւ|Enn ;;ʮA/4ls*뻕ӢZ<RyGI#I_zs?ǓMM lqUHN+R;/23]#f_�?e͇Zhy o0R igV6DR=Pgk sy7ysS1s((kfNZϾC4@0V3(F71qWDTC$wgvGA!lb).!N-%?ց%}]܋׈% >=Q{aEvh"S ~{Qłe*Rc8 q=R 㷩"EtVN}&BC{y^-xv(湛 XUI } - Ƌ[jg7=h/_݃E)#i:{O2{N\]i8Y4%Ŝ9#{/_~2 %"g|sMdg7^:!B& ne�~}eѶbTm7.2YCW|iFJA5H4#^7}\O|gp5H.6s[97>/qm̊בclvtT4Df̓GbWX_`,}/CjOv>rܞ1uּ/EKOymWs\%-Y)fnѓZ tg6HGc-yŁk^0]+ >Mv; W?Dw|Zq"$Z In.! '` &̀ i6a;l%&{zi3.־,c<n6ܺhy8ړaw~75N$>{fQ$#韻ɓua_>EDNWv|7"Nj1Cib$ 2A9KM/gf'S& 6AxG4o_M١9I:|N,dv)AF> G1^n4]mt^7DpnAxd9fTe?INr &+VM߾w!05/U5Dk ],tBC&Cc<rd=l܃/]]]@~:q}gV3KVW>CcQ\i`zk˚W89%ZTtsR5x= in^Z:{ Ֆ1nSvoh" wͧ, hv+sScյ]ǨϮQ o<zH4>;Dn+ ^7ЧOwJEkϡq[(mFaZP$T9||Y0=*F >bop%;}x8ro&?H$(:H>mý98h5P/c>o_rלI[%LS`eCig*_*4\ ͷUS!|? ,칆u6RU;4E 67;M8Tj:VPBY LᆃtxB2*X*ňNdL_$a, 24jU5scIpr[f#Xip۳)m@fHwLNleȲN6=t&"z(DWf]ɧBϨ; 9f#Dp|!],BVL] >&0𕇧"sC?lHٯo E ~aÖB::,H?)bފƗ,rOE5cA9֟[d1W61J+Py9:C8n-?>c+z3OYp#~.aUAd9 Iٜ/Unq0>VsjLB3Z`J7aYI.a*2KDSJ G s9r+q9~r_j5¸'L; vOnk9䆁h٤1 {` ӻ_G"ÅP;~$ڠK$ܭr}z}'q~D·G$NX/w0rH={{}WVmVAÕ PIęo==UM`mym7`ܥ#Y*2Cuk5%8~³ O`=ёK8 )sM 8ROANƺl:Ă9h\dN *T\#))ͩDR&zV_[ 6o³NC3j J}̚/X آ[)sTxN< T3˒ޏyo'c,}NÊR4c\U3F&r 4JǤpA0DĴMBw=WsX,;P)xM~- 2ӊb,֯ p2*T1sL? B]~$#kɓ/`ǥȌ$zA\fEY2d3OaB0XBp9{?s%d'>#IK~?aN*=uvaME &=6N6j^(>M54E ;>{`'MG#RQq\zf 'Cވc|:U3 9^sBZL%'O_d=o>7|=9||˜.Ay`BCa/o0k�׊!|l(uJlHe5kNl݆rld{όo3}:<Z^#n�'q;r^mO+. htw۠SU@9ǤQP,5?6zQFwjBvSl;ۇRԀ2 -8v=izj6w Z#"1-G,'"p m$ț^͚ˬ1ܷWbqrYo V61mKf-_f0]ٟt}_IUGEќtn^b)G ;8j yu6 mR}ĩ>ܱ_ȕˢ=`<[o-qk^&ſMy|s}tɜɔICzL\ G"]l駟]76B| ^v&mBOSOniC!I$ 6f6szK}s}Ok`On9<ވp鄵׵c}<rf&pV%N kK+y/vd.t&[pᝠ>Iȇjb8lJ:wlq&K.Xd.s't 10_؆\a.JN@3t_17HUDŽ(i-]  -3j6mVW(|A]CH}%Zmc}F+زLEKB tt:{"CnbZōwa߉a;%u 6#@v2=M/U͢L讘:^6V^ds+\Hk|Rf=hNn؎XT~5!Zp:g>3a=Kȫ!C1ktm,qث,Ik;ѕ>a#zH-L&b>Ƀ܆>* >/ce 53vWW@VX;!(=D8)}AOTlDہ^Oamq26-[QuݿXۜJ{&aA<p%#A*!Eo+DR&/bs-XDly"5SP xz|͍J$|$-;*觉챳2D# S'qa *>r3re)X66Ż9mx+[`KNGphy~WWJGfz[L@ַIk_*n)~9؄|e1\a]bۜ9[:9ŗj\ 4'v%?|@%j.'N :~ZrHE؝�os7v2`^Ax r`22EHnN|~ DZ ZZ5Џ^$r2t钵"]tDCB*^š/ä5*IQQ45hڵ3ߩT,uS+(Rv%, d-aMW(&ď z m5_*zd8R4\xtv>v}|Q}"W}rt"IXj+>e-R"c:zzN_ gA0#-_" *w>�Oko&Sta]IУM49CO֢Q@0&, a"ؙDҼtv>@xx| =7x-su>O +:Ny<_Lp>[ ٺnWWZ:Cl<<8=Uڒ S udJ]tp޹q}- aw RvgVIZOua]IoIϦ2ঃxvI Vz֧PsH&B9th7K2c"c+FTVIR`<6~"Uln_<ӣm/k"Cn\3?<م~6Q8o/\qXN،M 5T\'L* "Ӊ(xӓ/<KDHZga [}I虴"U/^=D &H&l rypؚ,T*m$&-;Y0:1?6D29ᯘS+P#@ki]n0lPϒgn'ڞ#ffw0䛴@ cӶ!., 'iлǬBAB8[lAɝATNKz^-GKhDs)Mס#2nKRE-B\AA5{3PJ#~gYc4Cj0Ay=bZs#19R&g?vT?!e7 =LNp7wY$Vw)Y±c"'|ʪ 5u0)^5e>Q@9j,u>`d^Wv Lɂ(y<9\yܠo9鱍_~ ;_ØLsnF( !oGWBǚxmlG / Ϊ@i' N|]߬ rT?YevX)98owv }/O{AӠ_m Pg-?s9Rԑ722;Y(Y<_B'@+1ɢyOK{}J"v֭d2+U\Ɓ^.#q[dAs;AL-,#xGદx;uslVzĔޝ&]|A(E;v5x"=G 9^z=a3+ f)0c¬~ lX:\Cq"}z%$ 탯qCU@yد|@G\n /9\p. F7 8MmH0שa9TK47_e2YːZ п;�T~U$Q}ĕ_8~fi'q⺈yS kFqw\,QO%}$ߞQzq0([%B">q5fE~TNW XrۀM?P46aS;}'-㣩ďwՄѭy[>d>*> 6lAĹQ"W[3&JT 2XqԔL2~`%t3$_k}q0P."v.l*>W\;%[ }u(`]$1SN0MARrxmN$]6<h<ٍ NeϜp<o0֝nkBI4Q_z I>`E2h\7.{k9}rAU^&i\O%֙x90f"]5=|rJ% !NV mfq\@B)(iYSߛ9R݆^+aGĂ0o2@hf4>ElN,dHJK6?[3•xA~Z`G_z@L4,x¹/{<�ЉQ߸'R;t҇f#d\!5w95=~A"rVCϩi:щulFM']}&wNcQ˖ě[~5aozDm1Ґ PDn9mx}G Oի<Xyy!ɾJ&},!tÈE2d76W3|5|blSɃ2iT~o; wɁfwnj?aل#Ur[Mtz"o9{Bx|p9 V; ɪk+iɻT@9�)z17#;ۜЩp | P8ht{.W*E`~07ý9es_gPG"dtÇK?0IrASS;k+{N[BP]ۿ\J6zūZɓ:1D+]P{RgVl"_o{]۲y8I3b:⇲m�^1ǻER~<='58<P:V[\&ő{ȦU_rS*-T r}Y@qq'65տNYV3C{AJ_tf_ i "GfSs?yy=fK:[V<@*G?pYF??l\}=̚ +ڋ`x0AX!D&]P^cO<Nϴ+ƹ 4? ѓ=_q3ĭD?qF 3%^qN։(=2pK L%vΜ 4Gk$H9ͼXu/ !\9\g;t 'WɹSl<;9nZV3KnI-?L=cN{a>Ŧ#p<sdNkVIp9fJbTy6,FX)�/>xV]רvr93 W>8w&UI‘opu8D3b~/nx޷L^*ƣܨ\ m@<!Qb*eEϜJE[%WS?(|v8\ǀk_9"ƛMBοlſK{m.:xR}=y~<|!]S g#d1Ӟa㯕¹1F8uZƯşQGI[wZx F?Vf;:t9x/#P/bB!Ǖ”%EEҲ<'wLcHS6,'#9�F짩7WQ/lg,#Nnnv!DVSiM9`u:v1+1p~ON:n:IL|.VjxͶ_䨶"ʆT!ѴrݵD2`0KY,SX.[('^:\ (~lߌ| 6NHBY4v>xH>' :AmG"7L(W}f ?M_bj|&ev$ Wy~t,P p: U y /v/<,roE"dY8NU^X{c_1/E͗)!aG@CYդOS-p@@\~02`z>T,NHihԉB2!t*wc$po].맫 <+@n]CpTymaRzԟ swr@^R+)~| 6(A\Ҕa&Щz]Bw ?cI`DE-#\d7b$ɪS!^oo|?Զr u3]1XԔN80{ณ'w >{ }'goWrgw4z w Iz<[V>6dD f4'_Pa)OGw:� GOS>5jJ'wSVQ?`3ԶhnC@z`Vs1ĕXpw=?Jy}p\$,U޸ l>02\ss0ZUɻW`;.oB-&%ۗ堾ւ(k2p&s|x:L!x"rɒD2 xupkjX:s, o!BYŽ䬠 "˦JEp NPD2 "M<t[;s)HX~W#sOZ?͡2w Bh[bHiEPw^w f/42yC& /3& H fJOU׆-.="}8\EDoK?>NeuZKkbaf<]Y/Rv,KŌhZ&Z;q9da/᥵x;@<6Q,Wu<Uj$63OgqAemȐl3p^Ob痸eSJ.-|DWLR+Xjif'_"}%_s2AV|RŅLx:*{[.ޓo=N&X3a׬^cٵR0qJ0Äϫ^''@x\^|ޫFd-M�fࢆI0n'+m72#NXa"t,1 OiN2T C]h=^߶rFT4(kd�mNfQ#GJ"e_0Ǖ<σv=Ԧ->̾B+>z<R (ݩ|퇨<\}c)_+feC$4Lq0 [cjYB8B-+#*b[OHn^ }3>@cZ RN}ZKp&L`'"յ+?ģ).ʋhM=X@^¨Ր-'{Fdi,e/# ërW8a=lަҾx7S~Q]PQW\?a&d+bQ=rםWev.c|Ra@0m%XZEe_Fm__R`J%51+;bn#%w b"}w?7|R{]:JD.$Zc[W_hgtB/2;n gn$ .F:jO6vWҡ"WByw݁ o?"Mxc&ʧ6W&vjA[©4EzVn"z"]~?x'{rb6_[7:Pefz RԱـK'Vj b JacpGؓ wrwЛKW[gغm?{Cpg{6s&Y޿h;cG]P6 w(2||ᆶ>\'bmTtel$آ}/&&h7kQJh7ʽ+7hNA1\L.>d-)lw⠀#R^\Abpz4T!oDz6j�wBk%\}#\E' ٸ<Ph~M 45Xru3Kv<tZ͚f|_%  3.Me r;{o?^'5vm32Ψb'Q#󯿁8<ށhtBzZ({Ĩ}F*� )gT{C+?^}q|QJ"᠇H<U$a]Lj~ہ[Iz.݉o,s@`r'iV/VY%*49 T{@Kͤ+=?I2lj�ӥNc֔2Ӗ@ u)/?8agUh!;@&xJQyqlnnA%ȕ'Qc ppaU.7҃06^gOҲM_ {P cW8) 6g3%O0+_mO]ɹ*~adbc n ~=+-IP=rxb(<1 Nn ^^c~=Dk`,Yvi Tl#k+1/`lLUn.O*b}`f2H4(I)yԳKWmP2V>?Fjy/t@вNy)5roU|C_^K0LjkO<Cl@c-͐\bEJSKwԷg)_6k+NRPS O4qB r=sCZlj'[ݨ|]ʸ_d'4ί=߭5([.L8AG3)hpXL(C94f~;!Y@>}kRS*};ߟQX䪕7~eo020Hj90"/!ï0�˯(]b3 u5t&'TQ:BzƓHVP,?'й 훤ON1żQ Z:K}s;w e^ =[&R[g?iSQ5➖hba+WՏ2I\!]:1c5ԚKmTo <Vغx(?lLo.kSVͩ�-[]:kk _JV+id>CvG֑deÂ)9BҼ$reA[SDc3SA&Zl�.Pz3gU(I"4ѹj\AJe6 Y`~h�an=Kڟ18O-]W)w1N{×g{{jVE3?(L{i%㽨o :gpX;xjk"O95k2xUϜޘM([\ UWg GLb@&ۦ$oa%7}{wFn*wnK{Nۧ*@)_SUґxFSŵofPC7 _uÔXN,}�7vN#%_K_Uȧ~׃!n 4я̖UPwl4ņ=,Uy9G3M~i:\GZYooHzN>+ź|eB?n^'wS}WZ-mc] ,Mn ]|ǖLQ@9gRwg[1ǘt \*A]EY%*wE yNu: ~!O)y`|?o*{2n#'Vb9[Xb<Wr7~6K cP .SD^x !Շמ ln-vm$x*؎ښOY='e_Fu( M!#HG$X3%whJ}HD_qڥD#jgzzqchs[K#'�X&XNip_,?˽ۂѓ91Xo mz dY=%Sڝh ੋ;.~> $*_l715PajɳnDjT*v*;&RI]$ r$b>-HNAGI=ΚhbD Us{;D oꭢ$ ~j"{w2A v@Z=~pN.Z ߚIH(&ӷD>8 LCjN�Ij(-4JR|сPL&8>.ߖcVs풤xھjR|gˋq1"1%iIZ4EVBZ^t&}{&(GN}JD))`=wIO*N-,]#Nn"F_md"\ݸ64 y_L�MAwO!eue1k5[IXg0T /W1s? S3VR(6Mx2[;OWT<ZfT_BB `}k<=c <a&po6z>6^kÕ[¥甋gyОMv+tDs;cqfWIRDOA65L +*o<ND{PJ-TX2j?\Mh۠XI|n.Wv!TO:=NRRW<7sKTp(Z0 3QC2 /C;+IV7$0 &2nҋޠj)U5WeR)Vt(!*7d{y@Uckۇٟ>cabMPR!\|ӎ*rHşM\&aٗ|mXő _'sc<W4w) 6d/I~M?N Sܳ]*i~?WMgI9aOd-] ZnOP2f|G:N,w38#�u"H]H`0ǖ\ѾÀ9jƬkaÜf~g:رɋ~.hr{{oH %*cPksN?C ^2%A\8 Ɋq` r>9A+VRդ*ot|~%7.x..AD1 s&|2 S>m1쓶Ttk;% &#iQXU\J߶@W~[;v?;a3Ib\LP2 . t/p[o._p&bm "u KZlCMY<3sOJ~fc6Dc==IVW:#nyw0<ow 8қ<Q+ M-oA[=Pn3q"R^5'?-#>y)6�vN?} kzT9!R%̶moBeZ!=;{g"PɒCBȪE|GROʐr1p`E,iF0�}vޅËUG;{YnbObs&t2u][u:k"rcU8k3TC|旅M`23A]kn v:02"{" <iv^ɿo?yI[_wq lfc>*CxZ>ۮly<V ȧ%a#djٞi DmD213 (ǕS=T\X:)vOYJ?Jeot}b"dF-ڎ/lt9#0'ܘj4+qp)C~LJ.Ad- n.콇v}{=< ůr./ 4tsdr붙krQûD٢ l#o`?t<h DUm!l49DnmɣC#O52`ʶ^/r:8a$\"23W;?F2n3a2\˪=@K s(!])Z̐t˿apfI㪋.+/L.[psHzxoz;_5 >"p#GI Ӣ㧏#A>ۻO4u_/�ys}.oA.n_?_2cDWT͎ܻ3PKOщfۙײ*mG#5']NߒNf5,mM>YM \_9$.n:w޼ K6Y^f Vlg^JPsM~NF:YpO?>�gDpQz;eSH�M hME^N*N7g ٢ }6hvLP5+rv3@oLtm2~sЊ>n/N"p_f#τÅc]~{οMogE`l}S'ˤ y%>? Ν(jWANKCʑQ:{L&Dk@_<+n$xvk: jY{H7\0k`2'Voh</A7hzG*V>D7XTvN1�(}M b=ŇTB.,DyїԘ,I.n~/N'q=T-\5;sS:=&h1YJγ7@G.`l7dAǟZ˴@0قma/|&{KG+KmseAnT;F.BO1ܔC kW+F%[trlfӮncP19[XdnSPd3sV+M۹༷ٸts VO0:\ɪQ5+} EcO]hb5g;_ry+RR8kSgP5۱LWg|CtLR&5Og쌀fq0a4Lr1cěG92hA[TS*~t'-F` a@nM&_."b[АRx=DeJFnEv_<J#߭.eS&;Qs4CVtCkpV'f.[w wG1D*·ٕ?t/D}.2瞅AɆH}q=$jxrRZo fM^w_-gq9yF=˶�gS̩}J'q~GnR)W! g.n[$ޖ/'6Mw',J.11i_7& }GŚ("j˳z~},2vmBxc^~Xm)ЎURnTepnqUHʂŪsAY|1{n ]J&Q%9]D8τ+h9/Iqfi!ҏAI)Ď;sW$aNU1p즳/?[3ج.7b-1N{J=ՃfAcW=%ECoqFx={8=n; 2*Ň6:x!)pg2876LHp9#Zi N„1"|DzEHB!jف_}FN]ج*`A$HICbW*5SZ4~t'ZJng0_'4<\wC|povsbzNߊoZp#=EB}p&W1"e.M&߇= :2G`bzh t +)xjLXMI}vυKn%Ӵ*f/yHg":XsZql: yB*('_&)xtO*諠o/> sq`}E/Mk~";E;~bB x]53{䟤GV%Ep幅;ty ąM\c%<&CJZH#=돱d.0J=a=6(HNfD(ّv>,`\3??"J�h$aL[~<V6d?f(!<eur<_;4z~JNa.$^1\y/ߚtpIAjc-khP12{n~K0!&@ - ->g�Jm-N* `z#->ƞ=Ewy=E:gNX.k�wJQu7&tP?.ISF~ꈼ^ f"YāORRxժ>P9ª; a0sfXV; +q |"%oQtPR~` ؏Jakfj l&oCKΡ;Uɲ(YMtwM8z`b,_G!(Rv|Ab~ptO W>cj$h�rT9e(VVU>nqE$}N_s09iJAg(Bz8o^.V2IHs*${9j29iDam a(w9{W%"Za(|F4x=<{33FSPm,ۺYǬ8ŠhopI-+Y,Ǧ g3MZvhs.K톙~^w+*?`~˹ W$ z?= W_["x),r]F^MF0lD>Qm�asGӇ2#}tVX-:8%&'2?jpE8YͅMo\T$̯xV6+$iІ豴+;,T<t I-IUۿ0~ӬbL̳;y'UH7^] >mE{D#QYb19Y-R^DFw56Ҋ][s+㋽(pLko\dVv[koʪ[{|3c N|2'G"sעk~ПM$ȠFh]p]$ Iwl妧="~D;.h]lIYVKE=R8۸ڀ1ੁ!\QNy8 owI!bt<LgVF4Йqwv]klf^=:ɣ vS?F{t 4J+ϏݷOͯ 's=בp=3mB:[J9G4/򘱭"h`E=鶹l؆vq7ԌVo.Keg}Ū"|9tO=Vj{8m{Qy$HCYzm _o} U ֜߄K2w?urZkE`4�آ>x࿐|.%W8ħFhѥ,8b7EQNїtfjOL{uسׂJp5aֽ#8<i�g2ǰ }KTbrf~dg37gh Az9b /% d.y&Sp$„ ֳzo^⫾UoX_kwcç̕\?A 7O2{yrZCzEYq�GR=] iLOK+Orm)q4>e<_ʓWeSHkTyo66}d32}9ͤʡqu$- {aW'6H?!7ٱu%:^[S\]]X6R>varqq+H-~&qy1lhAmS'tR'2 >?iC_szZLךN.4ԒNH5jJL,Hp/OAf7_ONJ#aaS7PTM`C)sn a|:x =rj5LCL^ͺQZ_VxXF"]8Rt|Sj:pGS 01+34u)IBQu(῏#ņDUL\Mqԅۭg ;m*rggY؅h4^2%S~wQ!D>J)6+{ r2'v#EV'ANK�QnsrcYΙ&Jo v,%2Q7a?-r5挰.ϰOlxgIk6{2c=Żu0g- lVK?MEG6 ;VZ}/֘>x,̒fEc٫\/X=(`/Yre]2sxZ.ۨ{:8WFwaݛxW8:?ƚR633v '[< LCrKYa;QRԖiMW_!,8Vf8kP˯ћOW`z:]bόټA~lƤ=(ِ'hd#`}>wzj)|'n< t\FǸ1&9{/:}$u4U6C K:AvL,'0%|:vZDveZ e7n{C}|+>4e}> AWt|qޛWm |ۣ&Jq!4R.D^Ű̇`G.MݝBٌ^$M(Gُ�J,2bvҟE� 4=*v'ar58jE協%I<uyzy\vfgpw =^) ޿eʼoQק:\'gvBPWvYj4 ["S%؜[kSlrt*8'f7o\ `v+~xVFއ(+rloGъ FD9Et(Ŝ.n%pF#-1"W<Gxz8YƵ񔗚Dޑ%cEyYܭJUCi| w>d`oMBxH0 KUp &?+r/-<h*u0@zDb1k&'u8Tc֥s7QNQ[aW8^q֑\c/X;%?(G}I|h9b\Fm?߆n Гm}RV~ng2j͡ĕfcz޿O5tFIͽ_ jQc}D<7u k3}5w&[!p?T@Y3-Y C=MqD{#9)R84^EAܹ\'>W{,yvD*d7% BhHz+'wl_ GڙNQ P#W𡥜2OXdȢs-PRSz:Ƌmt4WH 98aR!QOӅu~nƼ-&oPKѵWǹI|@AJvpf6lnXBuwּ!&E/ߑsړ3W۟? #'l:o<sݓW@8/t-" 0Cġk)c-yꎰw/w w3yf<o9pz\&9H=-=ٳ-GU!1*g̮^Bi$"" #;!67b 7ۀm&zP:2w/ّn qw__zKIt 0c=9I7Gw\Γ*nn$iYb]eMFEӓ ;=K:x\2iH]I|q:w&cwI^ڭ>,a$ҏoF_si FtM qWp2-G Ӡ|1.!ZD#a’̻^? SyVW%*F_}w ::v]*&ݬ<crW+=*艍LR;O葃0y>Vr,fB֏VǖrR[tgKnNkYeIMal^OɸK'N#gJP_Bc`>rW&񀍴1k{ї ӬQE8Na?1 !9]'-$M#z7`eFN0}WgoXn57-waZB<=ö7/2Z}o+e:,ل4'ʊۈwObɽ_3s)NN$eP:iM^(+ zx8no'q&&އQ ~/`^skݗ?=g4ڸJw2DإԷU w!.j g-M:H~A0 ƕ { Z7~ܫ kzq&dwj2d1S[DZ(߿ 7̒y燝03;߿?lxs-X.E+gۯ^c :P>f`ڻq\$Ҿ4_f<~5]>m(zkQ{%XG3=gHSݜ܊ZZm2?և\΋g2ɱ0K)�yKsn iIHa]YOXP; 'fUXN_f7efRnk2Kgn&|nSJK2zw%}\\0O+Qz9@EssYw؟.DNGI�Q ZSk_rrmS[4g#nN߲v NA%K}F4{{1p69>qikY͘-͕9-݉v2@4JKxK՚rR؉ Œk >$ab2 Ў.dˋnȏ@fA?;UX\8[7911R㐯W8e4�W =[X?⟳5{\#ZqUN]MX50fw֨`ϑl\43z@0Zm&x~'U| ED%t(䔾YL d|:|)ӻPہiЗ)lo<}Y!mF>8J?'0 ]mH2޼Y=ౢVqb@atʸBwScnCKn|&7Oa'k_h/CkC0kT%p>7C¼5J2}VNX} %AWI!Oё̞ '(Gˇ jӂ-g &ma?DhQ2<hW)bN}/]/ ޔF:lϺUߘ4M0g)BQ*נּ mO"FE{r@4U('j(XRB#O1vR·Ljhs Qtq IO�,z7k 95I@f\m泀-r[(Wy3{fx yEG ,dK'1ы$KSfy#$XѨr_ݲ^9/ڬί&4y\#rZK/t5|;)ipLT!]!U^z]$d%xJJi)?ܵ$Li k۟em)</X~rAN7Epʋgd4B'BպF(W,e` LM'u_d )[).6>]8LbجL#-7fju&/0^v0O $S@r47p8dnjZ҆ބ+7d62bc.} ח6 xZ-S +N)Os_/;Yip o* v?TJ/˧_ySÆkr*i0m'q磊B� g=[wt]jq$'pyAR6߅/rJ|K= y_ԼZ W_t"c>4:ww0o󌙌XM"$V悑#sA?�d|{F�=wc*u3:NIɢgV^D"]!϶%{v5e[ܛAhh8 v.�gEug:Ƒ\͹ :@!A3f>*莟$N�wh$9:_?~d/ML0M\,đ'¹@4{~gV/qOT ׋iV4*[A1vCo^3Vԛپŕ/ dΜr1"va‹2Z _e~MwyaAw$Z.}ev&6D¨זh$?m2~46HĤy?g^䦄+:@/7]'dDr LATxy_ 7dvsqöx։aׄTn5n5?~h2aRiOb'bz6/rJD] sALF<B;[6=>'8;r3=[S.7У]#O]Lnrfh/Ntqroo sYϷ U?ɶg`'IEVWq{:ZCxq7)ʕ[#lD/M| Jz'N4ВxCt39)'HO< ;.znҗL{C +mTY |.FvPw0_/ ¡fCn˳? 7QU,|8A왝I޼}{  MN|S:YT8-z]LZy:'zkLMyQH&~%GJq5bzGvOWr&YZUnq8rQ:.Q%]g26w|<74pd 5]Vk%s`V#ekiˇx~!5>R;ɓQM$4hGk>%\ =&Y?:PߟH'>{ 6Dq?c !¿ZO ~T ~ m@ "&5JkَQ<QGw%mEOML[�/6J%2| 8Uao~pS3ƓSOҰuDTLNE/=_o`1ӂE2c މ2a]n&6[g+,ޒ,*x/*,e,ctMqzFp/uâfz]5UsTXDžU3~m-|j =HW'SmI~eH:L85|ȗ=#XK1S6@qo!^ڈeƓNfSHk5G!.E6\Ls*|]%{:-99kw fӤIbf"?ihˑS=cW%U(jOv4 w:, o?˫…ϳUN6=ޝ'^\B*|`sp:V6g)(;S OEKK9AaoWh.^:ʱ;(߉ Ȅ�²ݬ.-v ʬG%LطĮE@Ndf!?f+nO;CL*"t?a4~z/f':HԘ[k"!E1Rߧq|/zri6<XXYw\?S{uB}Vp�j|rQ)c$ ]0h%N7Jc(ab<S|_X~x m;Ouߩ<y*4uyYw7D +7L>|=7a9JDxOa3c6B i1#\=}Iiv8TwOӿQwF.mzU΀1&m/5C}zR{hcsh^ Ϲϱjbn;f'mۮHV/.Oc~1',ᙠ]. hҲQ~D)* ƱYb%Hi;<im26@pfԘ#"Ūf|$kˮZ# ٜo̚Qq#lVۨݒM\Qj)zՖ֧5!H.J/O{?Q<wo3yqL&d,-dCפґgA},vTmP<4~őTC\tE;1XZ<9?"ſv{^@N>p0AP7if/އ%X`[NkVn%zi.m}&Y{qn5||=aw{MӇ>l’PV8{v U#aO"I+?gʳ^Vqvsٝѭqtb:a%{oa6ۘe,5БlJ;369~XX;y-2x�J7qM{'U,"K{[vJ][ÇXOͳ°`Mo#m:ΊP@Ji+Q<i4y\Wh-xG&Ϸڊ6v?''bg< l\JX;s8`86.9Ix䟫`7bv:+1@4IF޴ oc^D2cpxXIX}s<ɹO)k}=*&g6WO㺃董{_ =ˮץH?th*j1Q+].,cnUq[*.h1wpWVב~Oq[zaDY&士3^!Sve]+(]qwu(L%geDi@kױ tGup4�9˻L<ɯ] tX 5Q}4_l]wzLUv3Ve=WBy1NQm2$^oV0sjR4cC 2 a.;Acl<˞mΌƸ}ǩTA -V<cTm̶T+CW0bۍDAy D&6mCusK!:7W1_cOgn|¸7=Dm}>0.U G#VazM4ä[)/b.H]#g2x?+3 s~}JzGy94u9v<g5Ww<JN&R& I|=)G yU#&`]_.GI鱳Wem:cRsf^ zyMz8wrz) Ao1+vWM`hN܉ШSK08gޯ j"']fKcaiI6Y/̙C,vn\gGZr7Xn'/sa빠aE5Ҍq7v jٴۭF&G}^6a:`ծ0р\1:,CL/x /$py$m]F)wx4r zI2f1qy˝䋥s;C]syYf^(ď.=ރWYL|8u,C5a܋71Um]q;7!Sy_<pu%;)fBB#{'H� :1Ka‘<օh8ci"yBtLb%ݞ^`Pzj-&W&3xm"L_Z ɿZ٩Q"e0 bk8d1X^^4LfȀy'U ],pg*sxN!,(3C]{,kD d4C48ܿR%×k8S Mr! «p-q}G~:0k&WmЁ9;qk8=ujvBH=yÝ1Qȶjr'%%]dي (M)=Q?n;kh[Ix~c./�; J bwJ2Uؓ(b.Vgz\uݕkyw|s ;l'HP_)-3A6IR$ Bnu;}Pj!Vdnǩe~<qup5y)'ZAT�\BccB/&7-?E6^ 0ƅqa50~�*3j5`خ_We2W>g"bGq|.JY;VOJ~uD%a-z~J|GcU TXBӔEӆ'㑫c%~s]Nt|[!gx0.w/_GQɒ+ocv~q#9Zi'X"EA@od'4`FZm[J3kpO`n8|x)\_3b*n؅õdcu` |,n~[|\Lڰ!>zԼM7,eSjp.XZK)pԏ}-KY񱟟sP$6*U+n Tdžh :]| K*&DʤvO5s0k2Q&YCƜ�d 15 WەD՜|/Mo_g~j}[t SaٿsL\q`9zو>V�s=߂߹ωtJ*4}j7]iK>[)&CYf{cُ}XM8ĬwvGl +lE<ۦ%8e*`D(-)Hʹ4G*fDY*nZ,us7WNhQ='ٷp; =I;G8v2'갧o&x7oz8>;I }"k̭i҃zx;EO$RFE?>oD- Oe[X 14XgnýO]he=$gf{aW[`]FzKT.||Jqʁ+~s|Yg~ \n[[Ш#O/{yX%ZzPgϦ{z^qMcPZ#LV;v�?D*ъ;3ʱz`ոUS@( c2gT|#({Ԍ]֫=;}` ܾ!{-pz nAP#>'+1W%'1kZcf*f#Ime軶tH:@-_6`kC3)KĐZa  ٶK13rٳ�o+I %:, MAz+yt5J EǷC*47AVc+&/e9*Z?eS'_z6('LH=-4BWCMue9uywK8 C'88X6$d΢LJgL10D =(iUL]EWCs۱MR{>c6Dd8c"Kpӹ#ĹqEL{'7ƆrEn3t244͂u*%Tu ,t!'hr9.'o-!p N ` |<)1ef/sԷWs'u ,AdT ίŅ+tG부B[KzL6�e,?M|}ESN/aj7JG=\B<|g|{9h:W~DQ| o8i>YO싆3 YX`f cP|j|S^?8uQ?}_WIw7²?]X}0CzXGPYie =L$ld-wPHVDr'D* UWsLzOn؄˩G'lǿJ\DT"&қ訫2~ަC4_5TDŽ}쏽ʤ|=in ?79h#Xr qYci (ڥNޢ ıK aq1v`y&FaMѯ$츕7~@Jx|Z[19I1)=B0Z~u_'ʐW7֡΋`}yaR�#8]ՃoAOq=AԳ|՗LE ar`>k Mcl`sld=&@)&Z? C`ř\6J ߑnHk2җ e*uSiL jG7=45k:9x`+8>f+=bi Yn=<�Ue`1D r1+<&pahGɰaOM(}8.sz̢oħsyϳى2?i*ŏYz:9&*B4O<_lQ;ډGPŽPaMLt O\deΞA󠣒 ~%VH2i|6>Ǿ,b4ۍt[0Tmq~΢m,],6^"(郾6$tk!Q'X[|k Z'1JXj[;n6/fkS/ 1XQEa{i:s Zc]8}ٟ%zFT.Gʱ%m+e&m> ?\CiK=G}R8B J§7º0đF"b'9wfYkp>a~!U̓Lkx<)Y vV< ֲ-H'liEAuo9 Z~  Zt%ˁJa;WDXr]bOIlzˎY p?#!i4x' [{Y©AJR-;VS+4|c\MX.nE+I2@OLuMW23oSe^t4 O!,ĵըe̴SZ쁯¸`a ֳ.ċYm-_<+¨%1^Z5`0ΡR;5uG- ߼Ob_?}XrMah[6u& m{6q׵S`5;Ô܌59=;$-&ꁘ)`n,OǨeԝmHXˎf2<?Iv te%)3ֹFSt_¡'4, !mr,}mj$Sg}zfNϑW*vEНӮ#(dW` zu`7 C{.{%ܗmItU5Jٳ[AoB" (p6 {>g" B4HeJy  dj"i2UPBi(E)H"&Ηs]眵~tU2N#vt#$sC�BaUHY f<S5lk(Ǻe\AAe.2?O8jI-zր!r:<3XX~DoFMq뾽$UTܩŧTtM/. WnbL43wp-tB4'we o45Iw@Iq5M SNlr $xaק?W3[uqA{_GSAXRH] >b Be/_M^Q;"NQN ȑYZAM(N6faZNգ,>4Bwi+znCD"El%.pa1$};Gz|~fqN:jF6үw#Z" u3׸y3NDZO!Zn~uL.l-w+ { ɐ`}$5,!<樜 x=8ee21_bw,BRhnG1-- wiNYp,TS[3w, O;q  ԇjSI)D*a bFI]}:Il꟱?0| N ܅jMmz=g0d>dt^7[;y#mbYflZ:HNj]i9/Di۰}d&7G?&a-̊團Og<�62i,K΀H"/yOwGനd\*$.K/ fqivruZ3 v2Ϻ0?4S;[ +́d8Ecً"f}{nN6igKw|#r�|P' 8'o>2ƏYՑLJإ3)8+|:NDÀqb6I'/4gt )qTZk,VVؚ`WPP˽qPT~:e|嵪ae_SG7v :[m =g5GG}eY 3]1"Է ܁ftQ~W}^1WΡI7٭M.݀TshlMG&!u?{!]*S4z6R:|vsoi Ic)o )-vmTpbEBP1ۻ|@b+͆eP ZmDyl,-|xSvܚt"w:^hH\;.O:0z5уwFRn-ж^8QCc=f$O;6XAZ}B5*x$w^G>27|GL/" /©]LGc.y}P1RqfYFJu6zy_dr;”=5 Kʹ-K +:G-AƜ0 mʣa:]_"0K-YJvz^VlĴ_|U e#_ʉR{4ͯҳEuIv̭a6gV݆uw32g $1g'/No=}q)%> S;"I1!DӠ{M~IXǿia 4_hi૾*0ec7}z<G9K7FOƨ ة$޵tN/B:_eWz;< 9#U&`p%c]}\[ f-�ٵ%ɬŇTlQ Bo'UVM</̺ eCEE8$з`6FS^Ãin(z|V^OUѷdRU뿒+G\\^ۀo�S8 e'}~�A 8¯>~sK9H3ƵK9>$x?:0.+;0f6TdE sfP*y#m (D/ReEl@S1#B<9Mr uT1g}.jW )LVև<ٛ{.=8ID~$0Ś̺VT'^ɳS4WϵѻpeGkEmJrz Tx[+b_ >x~?-|> -nHjp�4rd =6* -7^yY[Y K8/|zLO. #%m+b+Cp~ m Wj²Kۡw`wɳ] =o2tz'6< bzA&P4%#NS~,gUD5?gާ|;6{ W&P{TS/y*v[\+vѪ u;Vûў̳:w6LGNa2p !"Eؔ<H7$?OA9ٙ>p.M c$`5LY%˳?vEy+1iqJBp-|GI:0wlMqC {Sl^ r%WCk_B/k~CKJ،s rmeuNfSnGun)-2Ō-BS84Y̔#6֣N?hN뙙V]dOXG40_T'Ky #mFREzTW~R 5IqrHM^KB# Wr@nzXRgNsvxv�nu M`ܳdR^52z04HxEPB^3xw]x㪟Xad#<\r0Wau)fGpsl +3x5o">Dv@!Zɡۥy#Jg|&pϒ[=4�[pPilSΰn")6=UbׇP'Q|n>?dGė~,!,,^Vs.䒰e@a YE>ј)'0f ౏=򘌼EчW`=7'hQ,lI]D+OBfk|)a|,~6:TAO6-`}L#ppKauрG%cC䓉$jk8*uE:ŷ$o/9tK96JX@<{/q%i& :sۼcn>{w[sZ(KpлЖ-,;K >)f "/WY$-LIwReшF^1n9Jy|Cx1BAs~.Hf͍B%mHaT|#:q* i2u-mgB?)GW! Vu[}b*wp|F)zWJ\7IrE/Vp@b9ʞryνFIƘK:F%o("9Q%ktj8fų'r,yNeMnAnNJɝF;2s)w( fŀ fx //6�Ǯ$ΧG̙tt 1]6,]$T`9K)Kgiڥ U`ȝ/)&Oؤ {.3mEF;$sp ,{6s[~%1oڼC,K҄|O+oU2ˌر}L@+(*َ/KI{ɵ)tW#o*$ ]g]3gKS<Qhb<ioLGE;F8?l5Wn1U F mw A> EX*ں˄TDojǚrcsQ'6YyFi$eJ8g-%;Z`ͅ# NLGbm"ٷDTb@/pzY۰t*ͫmՠ*}ߍ{tk|Q<=  FNSdP˪Ma$%W!>ymtn=5o!xSOvl bD%ucBx2NKDs/)Jk֋m؝MAsh ƿ/6 gSN1K6,Wqgv3ۑ4~)[>1�]ǘ䬭w n(cɆ f>F~TuRax8N:A08BIEݑ`wqyHl>ƴCMHÈ?Ig^gv?>dryL 95H"0Gz`.%/p(b*"1++>ss5[?Zo' yŦ{fz]s%Nn&;1 wW"3ݫϱ^SfcqNqΫsoFzaX+¡:GـbxNk'2 WN-/5*?FYekEw }aFܻU@My9 Xw/FyĞB_1)DO6-Qϼ-]n~?:GD%4e/U R&9;cw@,V<z2+g*z<<)$!+ZF{7n*nkxn=6q E#r2N|֟~ߎ_Z@n=j N nes]V;ǗHQsXyThT(}k&5XY+Z=[Pװt"q  Dz,կD6?-W1EГ/'?2!!ڡE[Į99LvZ2_w!6s8:(ʆgcg _ <C|I;n<Nߤ#!T~ 4vaR6H w~;{&&Sr?kFfz<(fTfXser,:j*|+_S*GfCu԰8MMFK+s<Ȥ0;9(̗CK^(o&ڐ֌Sa^ B|Ŋp|14h3Q[;5mSJ5&X z3}~><v oi $]g]\J^8 1tiQ){MRTW13HtM<Gx>7}ovWf0Q5!>_}ep|>b݄/3J0qooeU)8 glQz&1$o;Qtp^=s3:h(SKVP#m}DAiJ#Кb'2qbL╒/u+k]wН,0[XYތ<;l, 5:ۊo{"(0?`%K5e{^ɳ7B@^8CzYhC\a6+qwg & T-vKb`\)>CR|$Q<ZQ|~?2+N&L7k 9Ojh?7dh"Ery`׷{U9P֛Hoxߐy ~Ĝ1B ET  ^QUO A�d;q˃!®׬ǥ\F5j'_j@<ŞZ3OE-oiw (ZWCݱFIsQV:#Etx4]g_ԳleמCm <r ܳpL8'ЎqӸQ^J 5p˱M*w7ށ˯xIgߖZ ÿH->"bȰos7ȄvMŝ;L쫼i{kUP3:0o-|ݓ>3BNw!/8u߇+/3L:jogl$g*z%~9H.E]ݵ b&a}8+19?u~ęqKOtȫʝFI5mbP~~aiY<«-`e_g-u%جtR],w-!ˋ+-(_%n7(xw6.I4'T�' Ng~Z D||Wz U 4WZ;+^'`O 7%3NK|L>֢e7FykykWu&/ⳛ*EJ/Zׯ4'PV1%JbS0 Mۅ7]#`iԧ'X[ul>_ZU!Hu-߶e&^nyw颅黕<XO [8-8~q1;s3T}a}E.ϵ2v&~"oWZ* qa ߃=g, 8iCubekvlsknD!a賒U ^-gE_uN~GtKضMk[k H/si}p=XN4;4\3o !-KB&)tuGN&Z}Pt9-Y;@'7MIE*RQ5mT2OÆ;4.9.FRCK' C2{8yKĖH<Q3|~1[w'g[t` ď p$D[ւg}Qxwrc.Ê~L%|t-pmLKG_lt֝V'߉\ 0^șh) sp;)kOY$:ĵVS6-2 A?b^,XU0p1 n�qa9M^R Utd2D[o9ktc|ݞɎ~P;r(\ި,D *P/S Vkpz2P" qpb|*;/ dꙠg0%k %~h5ao>-)Pc'|:h{$ȚLg۷<$w' KLJ~z OY&1.7=w'~OR[6тn⎗xX 9Ox#/ǢwlZe6z)6۞Oh]Ŋ{OHxa7<2ҺFt{=a;e?ZH5|"t3Q,s:ͣnw޾Sγwne[>3ifn>O҉;9\G\SZru"c1p:.JHڽs-;bﷰCiꌮ;7њB^ndp+`7R[hC/q&͉Ld_n]J?2 ԢΆuK3 x٧CIS, ?=>` 'Μ(/K6QOvep 7Cį{0Ckd:"'^"~ sdP)GePڿ]e'< j4$QxY7\a<"0(a/xɮT;n\ϝjh2) d׵%1G%>.c/yS%Sbton<p,u3w"61BHpBwݖL{2耵KȬTHl%1:-\MaW)XP@l "޼־r?GW[,zie_ k7x)do/uf- _$H'ZR&VME1 dc҆3Z`_�[J)D)簼|mፙӱEu׸Mq>"gy/B0Uyv>F<\lq(o*}{:"xp vƢ vo/XldNϗdv (!$S:YZ6=4Adг&*ܘK^r{ly_gch2F_!m)8~3H_f?r^F|NGSru]5qr$V)?^@N|/1⺭sź|0ϝ f07,v! l6OL_T ]4z31MrOqh7{͕ɲ n6ILFlw[Y8{51R1G\Ě57A {, 6@5.A]Am5c-3*O^gG&{p=K>6>GO2?"WB9+ϰ4v!9o (kRy]1;bg|, ^):lzp"c�׽E\d'FΆMx3tW+ خxCn>|&.|(cħH?m5.0>YO5:�sIr;9?hop]Z9NzR[?.G/iŕ4McA<`v~lN(5٣*3[vN$eʱج% `#)'yr/$n )9N`\NEccZDrǷ>βOTv}uoeGQNV˔[ q{ /~PZ v n$os5]K.lR⬬YzNLg =T U8e1+/"w{ 6)xN~ޯ]O\7gg),b%]*?nQهr̠w[&Bπ-0J_@T7";ݘ_k{)5$�b8y#6~K\W7=N7?J~*Wr&H] Cm ehJhy&<]tE?`SѦ}o]`m//xq$#X;?*}@mCne@~V#:{m]p%/{a7{8iijwaU ܻXw~6' [kܿ׹4&=GiY{p92 uMGa3ң&yJa`>gwh& W"=1[X�lm ^'L`.c ~&7Kxjg=ApuI{Y&R]<`#+i,xj-qzG7nyf'M>i۳z#Q"C9B~ i;< ( o#-ӊ�ݯ+{yIec˜t._J^C7oͺϭL& .7WQR΢` ` 'ӎgD{*@ '{+YknsBC4m]V9~isy(ド֚l:A"_j20{0 tSm&sBKSs<nx̘u)|q*;ߟM5- d>!+Sx/ *'vg(r«oWn-TD oYѥ(.2',m[?9YJԕקL1$<dзeØCwJZJ[7lSH@v_Qb"Sq%ryʶϰ>\<lL*9eArP"Ӝ4F@h@S x](|7䨸=^F[ 2TGUM)yhI rfU\u| W~s̖\ޣZg<ϻIN`|_*^yZx2i"L-&HfM f]C g#W5<B%KmfzWU\,`'z[|gʶ}!>ռD2L]uՒr[CF"frxM>Ө ]+ ,j| qقߗI3 øylYCxcA3;c-Lxh=CgTX.o0ĎvVq-#{Gj~up?S`V0g`Bra! 9 :(Ȅ'/02: [ 2q%VC %bxwE:{OCGHy4|"GAjY")O @Y.窐(vڊ䙿;_属YD(: ('?KYKQ Ɩ47qw)P V>Er:eKF X%2x]zu|ƮG} WqBYvH"C\3!W9C 5Si=X*+,KBȅ&X-Ixrq|?ڭiT/!3xZ3r^(HIg6B3׍ȿ{A]0R�Z7݈{D8` NĪZ&tlW"lss}Ȏ~t~3y.| wF{%=mY'C%u_%AHMl6e3Q<_ܸYgs8&2w&rE96yI?{_>ݺ=Xxewn7OJzI}p5�4Iڍddswvb>YmfEyp7A⸩#;@vL4iu]?uu5 {]Bvj 3a_XO]Y`=VL/A@/stzFQckIb1R ~]AGz3m.sѯ,/I_^rǵ,\E 7{BTglEnr\j6[Xg qd!+9qm^�E?8i]sbL_id/şW°7:[K¶Ԭt7rs x68̥>(cr/^i-9؎kt%d *ׯ07u�Ti̫(d129')"F?Qv<]5G#n4-͸GAϣO~0ONc?iKiía(M:39øz N3s᝶dI9h{P�DM^^m4Du47?I#^~,f%6jeTar/mzx_7=_B(vgZ4aƥu>U0osFUjo毷swSً{2zmbTڏ܋_!}U t[cHE\rIB;K Kegn-#';RUn\jϬrGl7]atU',%$bAH%j"kiT8(oe?3TlO/e5m1x]??_6&32,x1H&:G|_-<J0+L%@ zjg8D e+Cr`0j$Ibn$nߣ3*w71\JzNܑ)q"ydИFr W:gX&5fk'tT&K @q|{I-lDII&PLYSʊǫ//n#JAl !c( Iԩ!4ӳX¡ƊCi8%8˛?4-zҌMC%Եblb_0B2j9i^;❤mI_vXȇ\rERcV)(vD98j#wFz`ҹt۔[ ms�zb P όT.p?Bf"mM.nĦşˌ B/O ;^h".?I;Ə]?51d:fjhD݅3Tߢ쒻73v!`Cpj敒&([xo{$'r=៰rӑ8st/>rN1{og،n6"ACe7.s~}JUpY AV2hL%ԕ[bF2F =Fxd9vґެcG vEPa>BRߌv69E!{t~_NZeVF2הSW+=7v1{8zu5˼BcBr({mθKQN?H˗1d7X )Cȍ}QTV6X͕ʟ ^ETmc˗L+Q֪F/(_etO睼%qC/`yH(S_ Ҷb5ǩµ(PVݍ=qi0<QN0STo`=&ȍ[(;DpN&'6[Yh)TrJ6"| u\;yƽAIX(!0\|Hv,VD8<}YUoCJL}~ NӜБ?rO[?8SdWSQIԈqik(z{MMێ7k"]],2:͈#~`_T<U{J2˂UO5ySN<|̋Կ rˇ<DXYk a! up#/*ә`Ϻ^iAYJOJzD %7g?:Ho-/sE{t\:}l:^6DLs裷^ON%I^R-}y7 ͳ~r}{*塃>POhcmb&;.Dys-g2c5)jτ-v|2y F@zdo[f'RL9'nHr'w|Yr!'RdzkEp`?8֠W zè:2Hٍ!8$Jɶ؟)$;Kӆؖljt+<<m[Mr(ۭ8<`,aG@ڗDo_�1,Z htI|4لvmՌQZY2LȘ-l;;“9u_@_|X13YdYDwG{8=&f7-`>15coتK)h?ٓ.|\T iu0ZLa>ba3OxJ)pŐ&Ei$_g |=yp%hA1(3ұawh/@oleă!SW ݃_37БB!^M\vjhsS5 K'Is8 =vB8NƖ%[_u٦xY*(kN91x^0'=69J} ?Cz9·WtrM'Ig+qŤ Oqg0�35os<pe/g%J|Ӹ"wJ<gơ3cXR!ۘZL㎆ɬ C}v.¦ fnƮ};7zgnm*܅*g5q46z{OҠz lc=ka"ϵ| Ϲmn=]J4\QH~DoOkOd %}D;DzOhϚ3T5+jrAc4kˆO[ŐLƈlVn$떭bzl'Ё- ]T[SVEMb\!6R 5vk&+x'ɀCau^E/^h'=2Wc KIl?N^Ӿ{P&45&^KyƒP'+=; dnoR�00ϔ0QB|FYe j2N qb/}N2Jr;ߣ{2lz~"IN C2P}TfrHTk3E̋ssm(A)tzq }m (=K C?L וre(MFeʞP`k\0BE'oL8 �tb+8PL.qze@*_ǁi<y%w/o VV@?p2\RDXp' u- :*">}yDD>$16u$ mqwtǡab@'-yjxňKZW^gEd SI pX.;{^Jq˃[ϯF CLHpU 'ynvUgnY6 tЁ'=}pO-yF#$n|gm[wUO<3ÒPS`M>| n_[[a|Yט2.>|BPiP'z!sQ`5O tLaC%}0JWpsy5EhIh5h uEl^z� I?͆aZ;Rm @q4qD.n?O0/!Tza p,x(ƛY峂y-ZȮ=@Qѕ7f-,n[�wAw%؜clý#t ;p^j)/&pմu+y3ڣ™?M7L1+vbf5Dsmps2jpu[mP)%9{CdCs*v튮bV{w '2Rsx!w]ϱ<NR9C |y~>WXK)AlԿlm_f lNckr@J!kw) |;ݧt" zOYOQNgJ1C(Dg?Swϱy?sMd^4zq ^M{qnIwi#fwq; ŇlS6Vq](z1.%:\?̹ęp&YŮYp J[)]g:-۔7ˑ\q:gC=9eOK'=ƚw"~N!wJ ݎ.͕v-?m=GXY;)gԐU_B):ra�>Xf*6Re_rٞ [4YsRâ3!2s UǗtFO`.ϖ'/ ́&sa{^u $!pX+b[߾cCݳjdW`4395ĨS"$>J`Ysnf>YU#);R_2By›`\/D('V{x tNnGg D1Y 'p ]cl3yzׯ+.sn4^k5݆6]䦂UlyI_\f'[q6jkq+mmH:Z]':>QFRg8Z„SDU=`msk XÝ5dRQͱNT@AB0[ƛ�/9\MP-iILWX&].2\kt.;9-/$K; nOlU�?cqϛsWPE$N7jίjdf }E2ߋm. >Ue@D'ہܹhgSh1/ko Z`-@-㍋x~G}&gXYNΣo9^΢ScX]& D;Ȼ\9?V_Tǟύ _ݥ'mN8XN~ߓĕ2ӿroQ`HGH̠}-n0,IoKX>$~t3M?;гUӑRtd~ݍ9'9?[P;R32_xo69^ %eĮŗRbf jK[X\tY㛪FU&x/0kv7]aԟ8Z6~1A}E U`ӏ ~jC[iw9Xuye{"pv1ck#T_dO_I0o}F\M-C FKdbDSHg,>9^.FU[Vʥ'K3ɋ9e%גI{dX&<J~Ԏ4gBU$d.A_ɍUa9s|B/QGP&7N ɒxDl!w;O˩e.s zؽ1z#4R  7)LTK)Uܟֶ: IϞ'[P)p>a1H<̉5/Tc>ҥ [Fw[7_b\fk_s稿\̀h <7ʘ~s !˺25f2=&NY @nPE\>3geaA;}7=- Ĺ7 @{~b?_C!ORԳI gR3i'^];RͲ1C^0q.|2 ZiϩhrO'g}[*;(Uw76щĻ^TWfE;A# }LF/qKlQʟ-kqë):'͕z3Hnp. @㝯UK@ٖSޅAYֹ0 ;X+sͽ|=RI|['; j]+-`9=΀'A7 o., ɜ{g+MD:{ܟCuWBI'Ư)l7  s|<`b ÙB [D6DZ(oRDٻo|vw7zWe°DbAVZ҇~>޸iR@mŴkl n<kv/ x _,F]b(G(`v]BEԧ_xp ~JVfLٰMW]zXqUK3Wv* cG0*K Q楛4k~-/=L?xCJ%UeĠ&hG6xkOvnz ?a 7˲J�!>K  .ϪvZE~74=C>O&t½ TY1 WOHKcX1 \ Z߷ߔJ ExW~-nՆ&R2^hL#?cw/Ea@%RA{]~zZJ|8Eg-?dҍQhx.zgƣ˧cՏQFUU g2& P.F?Lc/%ةNFhHqgAHSz*HE3JF1uyzK^H# fAkOE:J}SƷ2{GA1q@DhynIcs)y\>LBb įZD sק5a<5f N_6$Qi<>[fnMar  ΐ0w7GEd\,BO^|&?v#> xlW 3kƇ0G9H@ӬҪ͐@n&UR"TDs//W9 G;|;>} j)s#gV'/YsnJ_͆:9߉-ytCVǼQҍHP(K$ޯ|`v# ]1#bj@C~ވ_.ޖ xVSw徜o_J5anWt{t'N 6%cv JgYu#q<MӬ[%heda0U-ﻴ{&/e;&ŷTr>>Z(.Zݧy)ujw>1 kEz")s|=xdjs|'NS'YOm5"- ̌=L$*S eZ` լ=|ʢ^P'UXjvOK00}L'MDx9XGAbZp>k(> ;k^يaN>.Nnƈ:}hEv6t'sB=% o,A;חRu%٥9)t7Z'x@~Юw~@ɢXo0SAN׽|i-kSM 2ip\~rw]a`Z[IPN_ ~T*E-]0P{f{!uhUCO%YW]~}ϱ_ ZlJ콿2o _J񍠣5ϲo䑏T�wMa q`Vj!Us2j MBp>`ooA[eK(/}_qnpk]u5t\L+$:p"OZPgDK6uZ_H4; UH;p>}7]y@8r8͛v$ܩ1s`:i'ï6~fQ4!Mڈ|<%\N5`E5/i#a=/%oM'ܜ]:230o^dû55<)r ؅N&ؕn+^1*{ Dt&&: dا_D4VMF< c2]7t7F? U\O]XntPf@}vTE3C7 G[n֛Z,z2qM| Er֐{r] {) w'5+( c&Q{t]/(;1o17Ŝ1\۷�M8 HBg)D CP[5 Y[@.y̝p*"J].eg[L\�FMH,'Qul]~6wi4(1 7[Ae_غ[|f4,n}O5o)#♳kCC4%LESs#Vƫ0q2?wgrWi7=);pjY�7Q܇m[δPz�>H,W!'˸+2n:@L(ԓߍX.EtG&#{?c"zu5J֪ *q091.aV277jOP~y0A[Gl%pwp=侟VNJˌ%GC,̝W2å[[uTrr? O(eV,8ݤUTk_'^$wlg}4^w=F+yCT͍)v4<h~>F cJRj^f.q0g5 9. qggPUuWٷS}HѼGT'&;+gR^'G@QYiØ5k#=ʰ|_ /SnuN4U +L :PgRlq' =ν[ؖ{>h;^?\3xb4b5«oBZb7ji[z(yxr�mW+R.:5I:*B[9?/ #lU-fy>b= fQ"^kЗI@vwrt9Q8uN�*uk+}5hOM]1~;^Z{|*AvY$gEwŨ Â+SbYnN66Wq-) CyIy u%26ss>!sɝ䷼ (mi<`oU%m~ܣG|}drI=erk(5cιH}8vPCeZt`5kcħ!/C0;N~)de_|od'Tu_qnDa+LErQ!Nl38tvsa?(\f7/C,8-U,";?a6't1;'FJm/7XKmQ P1~1S<b]D 8l�ڧNy]:@8$UP%ct{7Lk<L<Peŵ~?S,#|z% 70 3=q#H3Ձ<7Gt*wc;뀜%T;;gi?Q1&L#w?KF%wb> i[iya Ӈ4`Ð$0m#z29q{>k+?ݤ /ؗ0p3ў6)`b'κD_8+/u.n}}PN3`vi]2x-<FF%GDQ81Fj[+^M THZ;`)Pko;!.SCDѶna§ns/S=+F1~{aə1E~W{X4s�x/m>qg'wsU+-Ap=$%鄦n:+=u72]� wyerW2 և bqVs^X߬N/"Wq?X'P� 7eWޠV.>IYNUW loR:g fY)MXv rÁ/ чcH Ά+^+cl6]BSp:/hh#_]\}?QIW xgzQpV'C*g j�+'�C$w�Sfkq"1"d{OnaZRImNR ;X�>o>AքpN}ָ _F`$XK؊skBhKf?Ha.CgpkUG\w?HjBtY Bu'5?():{r;9gVdWSiz'ߊY5R\6@s#Wu{x&[XF-Q~+{eS ?4@s !,>�,W& {a_JR&>Ɓq\N!nu=evnTGc- _ߋ}M.,~gIDm}4yY`^=ҙ~gQʌ/vPN;7? KSͫؕɍSJWSĩ\tGΆGw2&SҦob9? g^jQQIc\ 4c`&r}0]͗<_g˼yVj�"4Yr6AEq^\೻d6},S:A(GȻGwW`V fFCg335QcҲu%tk,ZBW|j-e*TR5ӳS?bedc0vvk?f$^Y)�& &eѩ I[)Z cSKRT_tr[5ydyvB5ee\&Wf^`wu`o;gOSŀ&^L:CX*ah"\Zh+-scpJHL.sǙDǡ}4Cs #ɠ̳uٮMz^mB/<}55S=ZMkc_\1~H1^=Eh;C;XG[t>+O<Pvj_9k h|iх›YDnY1N < oST5{!ٟĝӲ9hkJ"[QMo ۔ rod~3kT䭯!$P .DwKqa*kQX"<[  [^˗iiXs^C; a[�& /'Y!Ƿpvn2\ DGY8URH:s-ԂEb%]+8IY#<#лj6WC'~_cKb`M<P<w^wȂ̾ jIZq} LZU9Sc]T j<hg3P酤lW~uFfTpyE@?Es\% FҜ榮$ZKκܼe0~o3lH@kuhGAF.8oW<i:#ט4tq-{;u287$Ӎ [['/OHL0/k&|oX~KG˸DH%wGZ<�'7 IÆt!o >ǡfo%cO`Ø 'b:VM_0mG^+IWN#SDŽt@|"\D;xv"Lн[5$wLh:hz'ٳ:$=s}Bng({`:QulnjՖH J~ o}^[zhpsvM%.C�O, cޚF@ch$v{LNf{qӿCaFQ}1;3Y 9be_@;V *qU3)U#G<ɠ21fUr+�72h`c,A]U`!88*l0q5Yf]haeIZ{=a4AAzdL_Ý8hLYIx7;~jvnjStKG#[ s�mokO)e[_,z6;"0[؝+G?@+\~T OV>u{<=3 t/fGкwA店XX7SϪTjo2|h+py1L߲WZ \z4zS}<aƐNoSv2Cӹӱqg3:ϫёyȨ291#GOr/΂'|Hh:[ ̰%ޢoЇ hj_h2E%~b-r.#llPL"d#fMQL.c}a]QM27V#wc:ci$s<;ÉIMGݨXbv;CWNE*9iqՔ׆`s\"/%#݌eln9õY0[Z6o�}[WF}&:*: F=6SI8"uR(.GSPg0.f<d#u]MV*POʀDfʲ> 6Ssݗӟɇ\c}>S𖊇#[3Cu_•q~R, 6eF-qˌcL_~ | pX%P' ~n4KS$ychV+un㦩d$m 4|]l\wƁEJ2} mؗ:ffQq^4VopMsA7>c pY_j4^Խ+^)( iUTq.=|35*-~y;/:zGKm&SHpp0 �T{|z*=ok'>K!QuI8]Km"Qsޓ 0$  y|QQMP\:pӉ<0e+Ru-N}SPrn <[PEٙ!ZC~|\ՠwc3gsj:ѺE郆]?˹VЈلo ~y2Yb܈jx3/R+lrߊq 4X2.[qטr^8pg杇#Ȥ2{ gxd+f{uH'Kjhr,^Bǡ塢%~8N|CdŒgRz݊}pծg[썻_lgsrۍR^VN,o)-meӱU؟Da~aKvųjy_0#N UcPE2] 0Ҭ܍b#u'!r3n�7F&7eY߁M>ZLErd|HݓnZg@u"mC/^&`7̋Iɞ0@wWzgklXt3Sr {Z[~ߠBĭf>E3wX+3]J}Gf?yH#yWH F2!sA vl.mbPǩ?~֓MT}ijSx,F8;݀mLBUHb׾ OHTsn[NMOŒPbe=}I7u�f,gzu%V ݱ *D^SFaw <S2ǟQMO6w*G:@pZnS^\1pty;rv`=.Bj b$~s+R-$v~^x˯aڱ9AowP۬WJ/;z9,YGxe9Z�?wc2şA"&ײL懘 #㠸}v#wȯ}fM'(b#ikgV؋:\>l^"<#[/V G;XJl8,x K$S27B+Kr?PRohzL@RkY׈$o&Sggqm3SyL 2>cy5yW!6_ [xS?gG4va1|l/MFc+[ʉ؊0AG:3^Č`FG1Qpf젇2fۇ=^Z`fON`1!u fzY/ìFb͟Sut:ssnfb/`0@ui+4Џ9 \`[3a^6gm7 Svta;vϋ| F0]_o,3,HG Bc4#k##ةGةiE՗XZ$vQ+eeb9qص؍+RX^ UlvL1+ʞžNÞ\ޘ$O޼nbuEXXSJ 6 {{{+9)xWkPZ6`ﶏ`å-XE}ك}z k&vWg\Cau *IX)l}*%u-}ui>z\|r;Roc_z~CX~=-ǩ;8Vi/Np\.\LKpvX..i\= Q<6zNqspŕpةy\mi"V؉-ہ_\EK%q-\ϥzM \rPX~[ŭvvYq' |mQ1lw S]W?n_|3ܳ9ei+u5߱:AT<X0maSSqnx[~s('^`Wj/#?/ K&P~Ou' Ϗo%o?o? wV]xs|xWJa/P7PVKЫ>K B[ w7o,A #Ȣ4L&2*B0J”Ž$(w~'h2`^jT#Dv"n"wjQy"!j% D= lB,!>vD&!9@Hi3KĢ3E ?eO%t_zl'?J<K2" a5k%aCXw }ӈ55ڄC Kpδ:[Q?>' ?˄db}gbW${H#<r ,>"Q'oG:B>w8H; 7wṫ%Dq)88@M֯mDd2=˝%M̈bɃS+=S/gg+#+[T"q#(5H|^B$V6Ĺj9q "-ʈH8L\~ĵ?kʉkigk.Dnf"7' B#x=%%U{ghhY5Dc?lqŀhwj >m%:O G|xK|"!zO}s}DL?##o^%5#?z�6`,PINL@?+�zB0G|> (F{lTf{b`QiP9 kի`ɋ`T*Xzs+ NxOz"jV~+u `>0:)O�&BZ:X4f| ÁX6Iu6_ͷ6؆Y]`0i >N�kT5i`MC+p] O\t8=94-X+=ksIEp[  A`Fxjp_6\JfK9e<'--۽`+8 *肭`[Jn#cՀ< |Z4' `G}-عP"v�:mNߋmg~bx}=ZM@~Tj_ xa+nK޵``7p'ց{ I+A8- @X[8ܷ;'Op,9ކ7p)J1 R6T5I@dZ:DAd"@c JSD &SD\1뮀.oCu7e{ӛA$H΁Ys .,0I(z,AYH5 H.齪 6d^ದ1\W"f+"A֔X%> dݰ�Yyz 6(9W5΀\b:&׃6W0y.� 8nJE; *b ~.k@?iP|wM[wRP"4_#AYOxs< O[7(Pa! *|li9x <+~Ӯ\ T>_*7kA^ jAm�P*jYi%xřsAi9)4\7MAfod4Yl@hZZZQ{|mJ_m#p:h۾ |V@N.:ւ˾>``%0 =�C%|_|Yqs K___3}w8-|00�= ƾꀱ>`c7{}, sZ`bݤw qg=A8RY!m ҝV8dvA>-Y2\S(w:ιŧ:Cxr_ⷬ?{(n(^ }^u(-k_2wnAPuRxA9lq8s<T>ivPuv9LJ'AprՓh?EƹpPK j)@-<|r+2s 廟)4 꾄nahlV| <m7Ch;�UT [RzB=},t4q]cةINpm[ptIkEt}-=Níp?]*9 w<Ơ-s ̓~8? @&PpT+y0I8flA7ZaPg0ω*U08" Nqx <CC`ػ]0l$ w"/ {&<z [de H. F//e5=F?1R6a?٠ c6]1˜[+'e!kxR <<uYt<aZ6]ƚU3_iwA[WJ P&Ԗt\ vcBTx &YN Sbaj.L ^s\(xit[«`N ^py+_m05ag>?c aNXt ]t ~4y$ ךû > {ݓaqO,?V-xs uXh-,ua}Xf`SD >OSiigP{+.֍t೩֥r7< _~fO:HX|;X H,l̩Mj~m3 a,lQ-JasŶ'Ö a˷`~A%nRPs%6ö[;᧘ ,M:6i~^;Cs:v3ˁkTzu:eaߎ~CSaF8 K΁C26pH}Cup82r#pd] g_GMׄc6Rp4> 'No@m[f#~@ӓ9(a L#5�Qm-5 q[7!n_6^&!ȧ)7Ϣ)-hJ[#y9U mH7$~DS[ Bz&}4$f!a$$STZ6 E?Z 4"xGvnH6;+ ;B$_SfGY;E4:R*D*n]H1R 6CFh^rZE9ohKh\Aˮ m�ި]&vRұE.een Ǣ*h_h^3?Jd8 _FNW#I'i%dVt "BYnCv2f99DNL/r[::ri;)|\>/AuІ =iifтyk yrwu?9|!D '%׭}h}[ G!Y!h 0 i;9^h%:8w:1L#Q :وΞG9#itN{ۄKP*ӁRMTS-j} zNE;QPz6J2A貿%2e-FY1(+ve{BޏPv1c:k?YVOg]f*D4&lB7ݣ$: =4<EdkoГCI$U`?KPTլFo�4zBOeWGO+1 }|ZCmCQ["j{y +By)=9E_/>Q(F}+47z&Q~GP=6i5жBr`|X=DC^hة A#"�ܵ*$1ĪIB—$O I<DvRDB[F"bR"Ig$n%E:H;{I1rKR|X&?io:9-&v&%IDK)HJ3b$I?Lǥ|{:9S9{%dD*Y$J*iRژT"RH5KURN&ˊe-%rQry ry"484V$dHF8fCZDZ}$wǑ}IZqоIa) kk Hg]9ʹܤbInfNzl?DzHzF[SȭUH*kl:}ss=Kkܳ.%"d22@ CBɰG0udGd>OY �~{%dEZdD)i)Ied4hҐR)I BJ ?ޯs_u=<G_t']+D  %BAaK trBك6'mN/Z&*5U835^YRbVL7p[8G\(Ļ;=ϋss Š Y⼳BBb{BRp%@Hֲ'T :kB|WWzpvᚥp%@Hٕ#Ć)~))u-;!u!F2n|%"x Bym!xG3I,N!{!&r_ H [GFBa8dVԠ|juَ‹N\6 ByxR{P] T~=,*G˷BtP~Da#<*4})Ҭ/Zf]Z#UTh]-zZ֫ͅBk^{V&$}<Kh U#ϫލ*S»;{»G;ݷ@ݯw§Ov§§u§BLjB%B Zw—`g/%N~zf߃+~_ma IY# )K( Jn? q4Y z%TD9 N$RYHdJd&Jd%D~WDdXU|O/$*DDmlD}_Dd5QG$d%oN31,{B,Rhm- h=iLX*ΗFĘJc5II/gqW&I^U0^e*$CzJ"Mu*Mhe]ިϗh&H"`@piPZqí$iTié,+$is)iq,#i矉x[ҟ7 ?^KL礽MgI[8Ko[(@A0 0p1�~_. $q�} @K4e? AL7 { y|ȧ.'S`b(]QTG^c<j3PjWZ 0z} &λ 'Ѱx'_ L+׀ǂ `[#0_cgEu`щ.`q xr X< Lx,˃?`y XvZ�o`?` +_=m`'vA`'G;ξxPs \CHyGWp fNͿ7pڦU3<*wo [X6벆k &p�.}m(pY3`?۠3~M a":-#܁G m9 5moFsN v*X?]ڃ]6৴Y �e&I u]@; } A*Ap2p<vQ ?x+3a h 1)cłQ rbi Nr"p4�@lpfapfgp=]5 npe. ^ s=ZȂ K@z=Hf iF⸷Ap)\: .! nHlP�e% &py�Wʁ \hD7pm Rvr\W�5:wu=[p}A-HӒiYwQ1�n[[BI m 2mL@\3ȚT *s [ dM9y`r{4H M�ynБAn[^�A}pOF kT y 6hȏZOzawx(#$ NNcS2(m "@AFPXi % ҉zTW`w./7¼T\ *>1٠*KTUߟf˹jz5PɀF1 8Ou@=k Q6hT+@ӐIkh[<oځ7[A߯m/&KR:tT:x( Wu|.%@_Х tMK]Fk (Е* V{e vG?׃?5.a= zmsi9ir4T7Hs=S#]tπL/n @+Ae=ߟ4"FB{mPD"o!`5=(X!Pnf k:uФqpG8l8l?T`VCMnT.Ҁjrj0wQ8pX8�n_Q5B}Pj~5?/Z+8!i:6ς/ b8I7<<N:B]1POA92P.szPjB`@Â}а|S̐1M8/ Z8 T;ݛ9pwj@{@hktXt:n>BO[cxt2ePtj�D;dgN8?".mpK.B6L =uL?.Q>V>qgp-v}m~B?_2IT?wL(RtaP|4 z`<@rA #_xd6<}Co` ] Ò°,FS צ0f Zc=^c^ r15lC<w/<UKM01z7L d(x5r�oߍj0c3.UL0s1,Yv0kYg@; x9aNx;7:.¼0/ ;�ww4{Fcx8  D'Xt"Xtk,J>O߃O'CZkl, >9�_|"X~�Gj|X1VG9;Xzuޭn�{ z Ka}+l&A?aS'l6O]܃w O55̄oomg`L2|~ ?QE~ܻ~̄*caǞHؑ;2`@uO"(g|]naW]. 848ޚF?kﹻO؃^4[+�3(lG=b_GLA?8; /$&Hl { xY$5-&BHjD 6^|хЯ1ˤ#<As܀3H1tɠsHf}$7-ߎHUӟhȜ`4w8G D4g'Qq ),ZG f#EgHint)U-B@,TZQQZ{h%=)"-&�i=C:}hmHn;.C+Cנi4[w+ e"H>d`qd'6##cȘE˶FhqhI]4As y#b͙59ىh473͏6GJ{dm2GK!j?Ꟍ'7d=<�Y ~]rJhV TX:e Zs)Z+0hHKvZZzqh!DE.; i!/kF[ʡzȃKEq#HyE) אwFC=3̯A>hSbv>v s_ =4ўh ˣ�_LݏۡQё={1utl :c:vGF@utbbto?:>8ţMQt;t>*]PC R㋮ZM躱7J(*٥XtG2T,(k.֝(GF%(#1nFM,}d/* 栢)_PVduzΣgمkٿxbT쪄J @%ߢ;=LAϵv籧QеFAՋP*VZJםj%pF/3ژԠ$$꣦Gf1f5*j޾ڌ֣6<v [ޝ>}HFP{~uى>߁4F?סП?;E=K;)؏zzQꥨo(~8#h RYC037fGc*`Nf¼z,`+y<v Ra A+0ib%,c˜Ʋ X?<,^ga+X~</`v <t'Vl0LΞĊ'X<RE#kwaXyS9V3*v9Xe1VxUOa^5vvc XoGG'6:[c2!/ 2pP 6P d`7<ݸOO+ӿF`cl| 6ݍg39<Rw<6lfl.[ S#^^EVc {{dզjl^:^vC$aPl [MklsKۼNCz}A-v6҃ܰá`vq ;`B9TvUG{;Z'vZ]&_.F%lvIإްu:Q72Yك]OaOk}xr(xon2Kې7حߑG5G{b/3:ۂn1+c>sbxG S}5ڰ}�;W=pÁIpprՊ_u,>8l>CƇQw=  ?GÑCEtGQx8wZ|d۠'e|aS .ㄌ⎑U|)ʼnK{s8rN+I8_yP0_cצNZkq7]`SDopjW0N0>7w[;eqh$hHwnwÙ` ΜBq{[Fz3,~t%?ʫŏj#qG\76^E[7~&%J¥#=ĥ [p|p<quWݍ+q ҉LU\,4pø>܏놄:IoS\r ק?pdk*~j~|7-T/nlpːE^[fǭjm$6GmCci t/?;'ws܅kj58 yP$f苿]0A7; jfz7yA~UJdJZC1G$Of)zHb+'W({ܻ࿣q';IqzD4!D4_Ndm!2D 'CD~'"0 7 5jɈBQx(:Z S3(= J?[rET%DuNzǞV}2T2&<Ԝ[N-yK_LqEDh)!Z-dk2{2"h Yd⥵db2tLaM#dZy>ѻ,D3ѿ+S'dq,1#f d,0(1,ȢxA%BG,_=Ȳ\Y|P9V"f.z.K/#% un.&vBY9҆+. NЂCVK9٠D\-j5q G6ψ% +4li"KF[9@<,'x{0E#Hagr89RLnw"UcY$d3 ]EBww$?AN+j)ș(;$9~~CbȒ8ı$!"|$4 Br1mIܰ$nl'eo3d$'WBcɕe$y$ I0Z@nu H2kHfS)]Dr& $gZ;YB-BY6{GBɽ*H$?=N{6ɃE#AO(y;<B洑GI(f)3@<[s<{k@eH)YDJtTk#)9@J{l[,4 mSRK*7T6^&UcAOI1'HmR{Vi]$iEcƸVjG^^#nC^(WȫR]#y=Ǔ6cȗuWF^4Ҥ6#-~<ixNZHi/W;;c/#97|'W>MGt.G~Dn78ADYoh2Ě d8('/@H-F,(`!*D^s?$Jd9QCl%YDgWQ(}yH`b"lT E|StH.䗋Hz(n*GEʼn2'EM l8dBQ;Q82L|8.q\8;O~$T~zP8"'MT,*x-E1EmuR;Q\EeAjn*1JyQ5bR 5NպJEu-GQvQcO{1@G;c8vHq 㠛8^9NopA<Y.j(jڛ֢dQ;8'Jʼn8Bq)NJ'de+ƉS%NMu:5D Su}E GQT͒== kj~h $׈Ń:DCA֢abqcܠ qzh?hrhh(gg3]ę3& %qVc8gwqN^sE4kh  ;%hZ ׉e#ke9nms[ZL;Dt(DGs?qU`U2]tLjUE{1RrwNwĠhP(Pae1M]<fpH #6U񤂚VxS!Y-ײŌdJ/R菧tOUP{(Oy.稥F/)W('*ZYFy_G=žP T9ÂԣMTe^ڏPu?oPwjyz?zJ}=G|KK[JiIMt}B+>=F+猪G miz~m[Kٴtخi{:m ^1 bUytah]m'k:ӵퟂoڥh0cgi@/dd2 DQuf.}4Y!aVd2.Y#tflLr&-W9Ǫ1]R&I)ɸ8){Ɣ4 MqQ Vw+yΪcإYԩJÂ(!ƌuTd5q5vӛϬWe=xt4{hDl8:{V6i|{@ka9>6J}Fol ~vq03[9ȉi87' SFF>̢npsTrWfr;/ppae\iL)ܥSZ\6+O_U;~j/X3sM!OMh1<G1xن~d2~W~욽vW^?.gϊNš~a1-]Ư|۫k/|V wɕ,;~g<U#o#%7op|q9_$B~(nXb yF3g;5+-ߝx_/褗|0|`a0o;aQ]ր6ta  Ǭc 'oN_ qӳs;+ܗuBޡBMFcH9[|]*|/W]Gi-W\w qz~icef(~3vDoV?z` ݵ�Z�#%Ah``7`!`0iw�ֳ9Q]}8 ? r"p4Ąq p~^8. \B \:xh73_g#hl !P -DiC88eh8x) ঞopKN_ i3ذץh/G4L_ (݀Z`,wY/$:g<g!ZHpRXx)[ aHEkJQ ,vWEPhj|zFPHx4j]Ԗfsf~/ƨOy rj`2qX[|35t/^e.[m5`q{Cd-v ;ZW=ū^e/xZ?Jqpr/gb..GqӸ =2ؓ*9;;/_C.H.& lw@T&d8u>tļXx,{O#oHԚSIrg0g"WnŐHQl>yDʽW꧎AV|Hl{I_qHYq #"X<N$H֊EeFQFpKԾĩWE=CK$87QﵸV6\h{N\.,X. [E‡Ƙ;]=K+-`A {Y<G>⩋WS/b[G#Ż^h5hP򁵝;]*)Xfh6Y-+/[gפ.~ϻzEede)l� ᶱ10R`6rf~IYɮ8$rV8vt5 ډBx,?.`Y/�TuBTnt!utk VJz*.%/^ 3+`Q˄.tϾy='tc70-Tb=dK٠b n_3Z{E߈c°،ކ{>2HW~!<ؿ*P20._<Ϙ(Pm#x{\B,G ~'L]xCJ./ПGjPSᏹ! B ۷TM :sl/~LJ!M6|vK{Cra>n{b8=oo&,ABnO.qɦ[/[a<kf@Tw2ngKcOӉdřl-0RdI4S_'>'v.!ǹ=DO$&LX6O\ErD}}U#!o6o/8Ql^qCdP_NI9מ+bKPg?L_'QV_&'~&ԁܯy,ٴ^D#NJm`xp[lrvɄKu䏏rqTr{OʹWP,X?8.j!yr qr'a>6|z#b?b`G"1!X|L+M_Db'?zA܂Pvp% '#w]vũ#Pݵ0.Ρ�|$B&1JUT^kLw|=\{" ?M6W] G90?w&m3ytw'xܛRar'H:4}IlPRz'\WS$S70T WttMfgo.WHbRJٌD13wEOњT>=҅'-+3_on#'WGC:!G~s^0jh(CZW )Z/7;FX3zzSC?<U ߞ׭5#xt]Ǝ r9oMO%Mr1 Ȗ~_0YZ:л'qDHQqGux;(:3ϮMr5׽A3#ЕwDC~2;<IZWѐgZjd>i!B0=S*¨u832ΌYQ=|Xz_yOJ.A?Cprm7]6)wYt8']:YqN2KٛgqB]t=u=rݬ o6o!т.7MAVgҫS`H Uph7ը6qewY2(P/?v 7eTCI! `2dXW˴3DE}~"G~}.@ꑪ`|eJY0ѮvBazgvwn3Aczg% p൸�ge[RTl}΀i4bN<2 7Ne3 &Vq [8`-^=Kf,ǻh뛘:~*szy=f#\®vPҩj+6Vu`^Q(< J3S N97]fW=JwmKh1Jx[%O3Y)P3DMu�ݑ݌mܞNU606ݟ/1T̼\Lj(}KnoICZOAuylthv�w ;`9krx'~{$/j|d'=,s3Ogfg;|woeߔ#D2@ eV]w33:Қ񉿡:(zGӠ]Ve`_-Ntb7;F1ѿ'I)=Zh0o2H/u+ײ}PVa 99 Mcv ÙO60ՂƋ%LklAuκk ]kQ!dh Dy3|G 8ʮ̩=cNyXjF7?Ot?1p${|!K3Amν^|RG|RTz'}q{07j^p+}JK1ݾ_KbuW<د؇ W]B)Gӽ(l'f&2%EAn8 5xZ]e_n~^Rn˷ʹ<Z :Ff<Aم ډfFp_?{B #-կĻ/r�=z$*3ݏ(hLV15H<PL<z?{.qx *8GzAY9\G֝D)bty*W0Lھ1[�z->[!<X}t"Agj'\>3-DXK}'Br|6'`P6*U\kDE '/81=vQkm1mz` N5|G'Tn"%�*s+L_lE] 9E| yJLl_pZ1d&NEّ(<|w d"6q0 s0nF'{[y)iy-IA'/bmZd1J,Sd yل;G Do#3ݨ?S'wouN]>$2',k݊?ZIibx["Oﰤ fWŽN1Q +a􂅵Y1P\M$U[ ^w^pY 53gC'}9@,;- _Néujh ._n_Wh Y?&H 3Ocq@=1 g1ٳW_]DwR,5FSڠk~.~a2G0fV wB_&mVq8k#=N2gaE܄D)|\MN."5mڦó@vT|! wL.M % (hiGKb:>p$/wMg˅|qyŋ"oUB' cHޖ:6ϕ*70C6{6b2c`<Ă NymAsWP : HnW{-tO5ݗbg0'iا[`<<*zṖgDuẗ́W& #;<WjK/o8Զg F"\_H,$ߞR Lj'ɟbŐK~+ ״f 3?ogh`fs?60O:d\`*' @[Ÿ[4 {/�8di3Z ŒI_3d-=sPT^;9oBè bȝlIػo}1=`(&qhܛIC+Jq`L^F * fqD6 :(~=qؼʍ)]I9tf" ' {/.a&Xt~*cP^ؠ}?,P?[kɕhj֛бTv#\%'<(UEdt[4M «<FZc]\\dfUB?DžY$PD[ޝW%- dQEuw<osn@zP6yNgo/T15-9Sx wimWػlBh$ P5dsHGDV-#869e li팓>H+ !onG>tS?_B) oh2h(7,E5Zw:T| o޹VY嶺gx$0ΝҔƍ ހJsrW4<͝db8/YT_',PBNក;pͅH~gc`ж6;&A ܣWܷ{{SNLNZ"Aç4ͅ/I%qw^X}Ew2yx ˙C@k7woMڰ|U=ug4 ҒsXqz֢&B>[TA9Sueq>jsϒ:2w/ח`¾xI�* qηtS.n~;t3!&/pb.zXz 9m(M/ wvw, Am)KtOOOܮ-q}Cvߜ2?C?]Or?T,DFlKS&w6ȕg$U>a[Nda|/9ܱ֩.NjL 8 LC f'iW>枢Ki"sU(|KyS u~OOh`mDsKwΖvbJ-ڛ{O5t-?h^o/ڶPM4JWK(WfϛLЇ1j]Gs&^^+337~sj*+7֕ äI)fkřc\E٫BB9,LW+<oV3}^fWk<s.Q|;a_æzX(_Tkd({x\{/mn(Cʅ5u PтB׵$vOǮ?[dZqh%Q )edU#%@~4ZQQcW@ kjˑ*k#W‚ ` \bwUjO{=!KU3sۻUQ-%-uubnWA?"I6G=2G5EǗдNOTz#|'6r绖Fb3zP|FGwz{7uDZ$e=S02|KYo5_1Ɣ'!$ܔ}|kˇKe3샬E[&(3Z i_>=>?τ-F5]#̉ !=ktyxde"Ԗcri6._3T#уY{mD!T^pQ4\<k %TRI Y96ގ "HniR5t /cBeF4d> ȋNШ梾L⎕f@=ǹ#Iα򬵘CW#Um֣+-AA\C5KAq;LSF롵̫5b_ɝ-_W?Eم䵼idTn^MlD->Ѧ"z .2k*'%'+M[cTŜnv\(-.ݕ5lX(ۻ51whujd 態 :|!'mBZK.DwQQӍBFp!0'QL(C\Y 9bܺ)-_Hq5.~y3J '~*z }${ʌN u$l0nyid'tپoMt%>](yBˣh`<ucCUjRi*gF?vЉܷlf7ˮ-Ftr+~5x6:a2ǚ#P;U -))q.d)+i/kF{6B-t%)k_2nXKnHx@<jݾc/bΟJ }NX*tٙlٷ|wp0uh]f[oq%,�wph;|}-a6jVQINk y n E"=6mKWz10{r6I22$c"rw+inš9]2nIq |[]IKh^'Fѫ167l;=~M.\O~V=¹sF: ]ϕIԓTO=sxb|r 0sn^YS@S~oFSvB zT)yaX(2 wk#~^SAxQ9tC :̏հGglׯI;^=":C@Ŵyxf~|yvX _"\l&05s`Kw~<uNvb;o2Ex-\Tܣ) ~lԏ)z1) _]}RoِH=\-UC!'J>u.F, .V8SH_P/NAUp~nMX"\ ^j`銑l[<lIg .?~ќܯ|ejaͮ/kUn3tr%r4?+2}<ٳ\-Jg} uˎElɱz=X?jFmIҼƤD^c$~*6/\4NkDmfa}`|;/懥cNk;䃢p:?%lQx 7iUZ@yh{;v@ut_Ĉ26ۄ+z %r�xׇSFpnC']OS=ˡnAѰrXTyUu�qVc d8uYo4s!zYÜxvwֹ@ȹ8ױl,ႂ*aS]ӭKh27MY @(~RNw؃aVDt O\R04=i¹8c3G(UJOvrO!=-}tS2w/|6{ GY[y&Cp<N qWnP?Ax@i)O# ~˩{]uHǐL1c#w~vZ5ܜBlH>YS<.ݍhڷ'FߢXfLhؘyfQ=%%hG^y#0M˿W5AXD/xٛ 7<xant#9* Q?ŝ \ƣ(/ZpvaqiWɝ٫LGn6 ~ !'5[zt;O2�fiװPWYWx:NBsG|=@ |!%xC'Fu׳<%*%A=1_#&&(Ֆғ]hhuY0CE>̿2^2X`g]}sX",rAOnEǥ4/.{+q" ;ohӬ<Kr96b3YT9L&_┞~p./fvEx-CAk~&P+rE_s-# 5̥m_.|qx!dNe0שT'^dS( JMr6Α^?>|f^g'g:%df@C'7OT##\vdŢlݹsZ&)] F,pv6R Z;Wys-Ӕ2-wvo%7qu@^r-z>4n ]?Xoe]q9C;V ̍ kŠf>b_ � 4h2Ovӽ/4MOn_ѽgFso U7oR ڹ*LM<X%<wL$v5d8"{}3HEW6hXQcu,~sA\L%P pA}x>:^6 m=< 2EV$)0`` С>ۏrk/ݕ\Y<; U`f&+b�- YN["KdST|uR:mK~ ԂG/;k55}\zMTnҤÌL7Tp@8ӛ~ZKϞïwۀe-eq33&:۹6|^ɝèȕ35Yv)-ׄ$SNj{phI&PsZN࢑]j%WZ",k 8mƌz2j/ʸO\*X'^ 4"Xkʞjح;"Bȏ̼D*Zc/Z4"s; OQpJeg>a$̟tkUH$[rI2?C}-i=P$z3i@ 0jk$uxW0zRvyDٞLl;R>~8'22}:QQ~9NO?1d4 w ?)".Ceד+fufu>.`<5>1'ѹ $&"3{ɛn-ϾCj W6W#E~}R' ZWl~M!IW7aE}L#9Gm/VV #l8E:7,&-ĥq>Jk ½n_TmRH~9O 9l3ȫv7Oq- L򞨍.llڊKC>;Y \*ewB̜XaȵL"U Ѓ{Jc7RlJJXק{C58WgUZRoRL07Ƌ7f}_1.噞l( U*A>C cй9TF๳ J4/YQZJ3~5H$ǓO05tǶ_aDv-{cw4ʬ X)\"dٶ¢-,JS޼p9(l(/nVx .l*o\pa;VٕVܛ6m{c7QrnA!]z�k;y*܁{V�޵.?Q4En8!ϠI2 Ģ ʹ c9rD`K1}QQ @٪xL>^-e䵸T|IZVB2c61+hx%.:,NH%mXCܲ.u&|מ^ņ>zM&[+`^m3l#K7!k䲇^&ⴔd[~-@80;Y& Zu_͒ '.r˸ {Ā%쓸}Ro]TL\BҦ?HAMf/l+}F@.n8 M<'>*,3?_G탘D$| XlI@6>{AR$I{!^8Κ][�>DRq:TM_7gQƇ`~Nj Lh)jcsƎ?`9^¹U)ȡdu>ʞ+,"'FaoD嬐q2fi 23zq [G75#G1 2-,O../`4Ǡ\M"jAEۨX+ܳ?%#̋`).L(֔©wG{Scޅ/"H.y2d<}zc:TJP%UqR~<4VKv̧{)UEG̴6O}P Ww[,cCs8`0#M8_Wy꓏`=d*b!)D\+QwW:io|Lf PL} != NDw7-n'=m< [C$gS[ ~`?XHd:%+SR&ty_4H'FK/$/v<}<rbKNY!/y@mjfk<"k&VPg/R痽Sr3xǶ;mpV{=@_  mc0 +`s.g$CYn@/Xϼu#bՅyߊQi5$y[[ܕK|G?dۓ$ B\shX�SX etȣ!p2NYv@CѸ_H J\J.6_)Bvs+.KMm_LLR:CM{zW]5GAb}-g4 /ҋ =Zv#ף9{ΙkN}dɿD,fDZIgqo>q=]/uˎ+Ä)n42<pBо$Ow7?h6@E}mn>S[qV|cg E]dzc0gL?IGOf;~˾Jd,?0'_Yg/W)P<6*!rh[W"{#/'pJ%;F@\~sC=ѺD<,K.y]C Ę h]K u/<x'^2t*5ϯJ< 7}*xʂ1ء-F-SQK s987|F\;*kTBZo&v)fq>?"ZX͌+%GD 2C_IfJ}%lZTYk9À @?lQ{,4*fD+5y$!7-Ed>8cJI+P'=Ӷ!8DߴBTGZ_#;CRcwm5$N5X"F >(:-u On Xn^ް|,9S/'Ng?\|s/7#T.ʂǒ̓:|Kͪ%I(Z:JvfD t^u-[%U;Y_lwCU?}6?Sٱy0}16Y]_IJhףwkDkpv!~ǒopoxȏ5R/g0^ΈƯcdŚjU3x&6֋j_s՘E\`>v u80 s戎f1n[1K22KV}]ޭ7NOv_G"&ۧ編\ 5y#qFݲ)GE`0b�m\ <g>ќ3wpp<أK#'Kks [fOZqϽ;@-RE>*qLIo:0cd`&b>lcǯVJ"ޜ//JO]W'Wq&>]*+NY ⓃTkx%{I^L<_Yx3ܖ\'R3ދlxXC7+o2QYѮ~cgz32G~=a/36Q=Izzkf>o"XH8ϏP(nw%DjZ7TG!gVvQK ~ '\m#6JS۷P\ОWqIĕ M_ 6*T< Ț1 nﳅ+G^h7G{١3+led4[!ki0 s#`~mPJukI/c.ܱ}FD,kjRg~ϼ)w9=zh V og~Ɔzo }NrS{ ˘I☃<k寚WdClzY (nb'}[WF.YT)]˻e Pn[jM~O'.;ش,d5Wy+oBOG33ES+] 4_Q6a9&PY>`lҽ_tJJJ4.,򙶖+/?;MLOO>X8O+GrgB Pr�{P-7G#Vi�67~tHT,-< 3>X ܖ/F5%(S$w 44z;9ݝه)C]i{Q6+8_(+'ӑiTN!+EmۋOK2{l aupa8.dӘݐD_FG͆DETCV|D&aӹc~6%ht4_ .GV PExzA&GSq^6{P5d,.;-U,9h;[לyv| #A%Ob` cاx9ڴJҵE/ZPMgwdz64ߋZm2 Y_iaw7"Dq"z8u�5ݤ z~>al:xv?LاT3V\9iTC:Só 9!:|hXu Ϝk̀ѮlN r'UJf>_ies2a8<0wfNe[amwx~ܞЁoiO6oYzml!X|wSN9 ZS͐ǴB42d8T^a+ت�rAc^O.|s=NQk.5}Ԑi۝5P_?k a~;/1tVRNćy\C*oBɈm2*Ckȇq[Bn)i62'-Dfpz&^qs5u7ؚ̮W baD Vd!^yۅ!.dW ㌌ۉ4[ Z6+DŽCj0hiW#72N\7I/D `wqu⒔>~ӑ)` q4gxy=@<Ջ/MϞk0yJ&JRU-oK%μ[pI>Y5VK '-9\g˒ч}H'h>xt4Ʌϙm߈ aE'=[3I oto<(y#%ue9wW" 5^#AoF{Rt=x*OQ\u7Xυ,YByϣ*= /.. )<>7̉ѰTcnHz".0♏*Bwz�߫ų+؏m@Z1^lFOoh^WvcQ@?p#ˮ iǍ O^н%ҴDW-;k@ӼS[#7Q'hOꍛA XbԖA-؃ʓȮb4l}ԱTl/gPY22v ɢ�4?makܙ4}^)MzoSw;5b9SDv9g+A\*cLJ(/"{a8q|3X6VV'te=N&{#uqId6l@_n${eze[>Q'^A>[y}g`}d? h�%_2ɓ# *\^`,dBz2e*<<Ԑ,RV7qS'v/8r;,}ߛ]HG/*:ޣtkMպpb_^CCDmI=̍|@EENP{Yb;-KM o6r1U^= s}c'3l1-\3Gt-+y1Y$Ki^y͗Nh¢DNXKxHz3s {:?ӘC霳 ߨD0bmJ?8qc]{k84}dHǀĸ@|(|aDm'tqyٔ)*mefrCndԳ 8+a?:b58+_yY]g_MOUmv#9`3_RM_5ק"+j4z8E8s̅ \ЍF$HhS^B!ۻ 7}y6wSgS_NM5vc*j+^fQz0{3C|kEx~u0`}�^1Y䳚}w5I5WZipF=T9?9o4[3<)n{=(\3/,M{2܃%wؼ-:L|y=bvۡ #q"kvx(C(1wʶw1z.&A8m}7#W gh3^2)8)԰_}渼m$2mꇱ4I/{r1kAeK;T a, Q6fk_ Bڛx>fX$n]M<H6r^]z ~osγ'X.G֭#ҵFr(S\iRuSӆMH.) ڇ9:8;螎3:q֭=k:g⻇jwD~ rin'˧F@VѭK'35vb Wn 츷IcD< \wd q=g#sx愓UXzV5>A;fhom1=m6ذGl&N*c(]X/b΄dW<^Q{0.U_MBEPqG|dw)M޾fl~Z홺G%f$xbA)mIj'Ն ) ?H8'k:(ؿJJģ'ep*nZ(ܕ8!Z\ .lCAxהZZeb126 2X*CYM;BNve@D$0%1,gQ#%R1$)ůރ{Qw`TS-< eNпѽX.^ R/hN{`+TB^xL:$zvwܞ͌DodܹRCXs?rl ~$]=^UX*}kLKi㓞S5?/{uK_ [9\;Y x0icXu͙m%qpaP!Uߚ�Nr_ W%&ئc9YyzUƈgX])$]u,zކ5ϔg k#z#g7zB/yßJSќg9Ms\̧:ZC\kȏ4yv?e= ?TAMFf-/nt)} R!BF5oNBf'-z*/P[Հ~x+}ҎA2fXle($$�҅*S;ѱ{ѻtYo(RGݕ27\XA+ ށsyy9XR4ާ\|Rc| t/g@y6`01P7Ʊe)'IW2(Pʩcq4v-|lJu7Kh@!;Lod6[DmW'uqǠuV̎w* $ɰ+X8I>CNpsaA̓&UChѕ!�XFYUM5·Z^ӓo2;ey#av7 "|2iP+j7fFT͐,avio:m=TgY#/$e~#+h9-fAhlVwV ]G?ׯ;y'0J]֖0s)eP#p4]#Rl@5YWֹY_ -ypp)tHInB WԧS.3y:H4cs2x;l,<rAzk=VB!ܮw$uE]Gv8u?:W|bL2ii%Sm'F@<~:ń}`.~{h:0 ڗn^}La0LyrX} j-k&VbT%yc6VWSkxB\dj,?W`<ݢwSۨ3PV\=? .8d¥?k}f* hD?&A^-꿪eh C̳}:ưd%k<)RXŶ`ǡRq".w~"dd ?"{FqUɢHU4njr2j.!m8tż=qTu̮$s_):8NT,Ji2ȇq2O^):ΚQ|t]ɄK%Lb>i%7d5r%#~oD6e4Щ78 l'_SMikeVc(G7=vPxJ=̥W۲uruԉT-5Lp`ANt`L"Xv&O1UN^obOE{8tn9XY!)]V[Ei:yyNuWj !}U_#] eqSZLe?}[ ?L ~eiMr {k8+4i%칍Xܝ,<kUĺ1 蝉p.,&}O>B`!Di{r6O[KSpuߋz?NXQ^ P8dl{7:s )pX6LE'f�;Z3j ,ȿ,Om+^W3}Mq $BxBN5= 1[I{L oWd[2mCd:tUl =|=l6y.Vz5K+@GaԆw6I#kr)]';ih-te&8`4#̗R|A 491ЉٴxeCnFw6f.o#!ԝX4n/v~ǩs/̼1OgCx"%Gc|``z8/ЗR�bD5H@wT|89=>!Eb:!zz w tybS=̺oyiʚ@Spd*e~5:tq:+уw0:”w3N}'01~/VX/469\ "|;Sة%TYb"3֏]I7nkuH=\L%Zr#6kJft uWF7@*c w~-&üy=ٗoJt57|Wӊ?$rFl01Fw{Vr/[^FU_}πoO+xR)|{$FQeC羼B.p7] ~s eN.$2u{qxL:ldlBsn|Bɸdm]uT{zFG..KFb#qJl%jCǒ_H(eCyג\ >/'?78G^f9M/D?ߨ+C�)$N%/}'swwc96g.."~>dI͂IAd;+%Ԃ1lD:pbt'4Gh]=^gQGZ2T{pHt3g!&QMWmhO7J\Fn/gVZZF8vݻrSs~P453wU)m N[͉{(&wo>/7澶aVxsǖgF'ͳ N9v:PtԴ|<D);&T`_t?Nؓe`7t̳L+UOG^ 0vw$?ly~\qHUR'MnS`WDԂpRyu~1)3L8:2."GhA<|bL}3f?e**1!|x96^9H`4S=2TK*981#9q4[G%:ޏ?Gz;ӌo50>N4٩w䁫sARzʎ.LyNN\bw%Kl㘏鷤Q-[p=k8:3'˲H\<}-}&n8iCzo-ʣԫCyIx4#fhl EBQx[0UDg÷/]p/D4'ٝ$Dά1(qjǏ۶ ǓUȄ`?rIY:Lh ]DiO[&:cG="Q6aLfjEv{}fI ^,"7#�}vs[k ζ\m#S_̤S4ގGNIb.F<Jmo|,ƸVl-Ugl!Unپ'yiH*{yC9݂ a |PlfX5FTv1[;ϧ?`@9rm XKj"쪻9%?($pPX\z(O5M?zuolk;5#p&<ۭtw,5}}YL'7b`6#Z2SE,( @3<ӵfOڎF^7فs8fu0ŸcT 퐲. ) MAf[Y<@.h F[7WS޽i`OvETnKv/F�=kmZҪYVەZrY{ĭAo=F-|D L( M[o;Q[URh/vj3zà/Ka.QPߊ#ޮi3V)xi%K#)sزzAz, /׽u"TOymʎG3kJ=]Z1ٔ鲌iDqM6=$feW+ }+z<%*Lr60I%]ˢ|}άXYs|zv#W ֵUxO1w42zEE(&ơh >(k;ٵÔؿRHj/ga@,,af<;?q^3!/E~7}۬0 {ϊ)WLVyfӔ]~D/9ͨp0vV@3 ٬ Ma>dVB Tu}xDz)kSEyBKXT4EIj3ֿ siB=8#]*^J[q cRWvqzE;?giET2Wkw=ۜ f0mcVhowPq,qu@yӛBa֤zs(/Z)? <ݮOA[4&ڧztH>o #G;b7ˆ{#/$J 6J#u0abWs8ōٴͦk]oh~ZuS=_(݂w#[z|DpP5FJBVB{ m^6M bg <NseN6\/Q&S}/ٲee QytNh^7ga.!?ɂ}ID?~g|qB ]͟p85oljOwc}Pm ||)1\=>`vkԦgw'!Ӳ[Bm3idEc&blIJ<QjƗ81,ݬ|&!oOspzյ!pjx^njt{+;"U~{vXpC}b!xc[ Ė`!)jH;ۤgwt1=G~%R >ѽbAn8iڍ*DfUFYMON\VS^;[V~ ?A4S[;wYKD@zoqSSW-rh!\M7=Bu}cM&�=>R?'-G(ԒH$bzH_~ȅ_mNMmtd-TNQ.\c|Q m{ݩEHbPH?~/)WR <~ף 9b[lөj j#W0%MeܫԚ5imAQ?5Ȣ'yzP)d7%¢<8�~Es?QKIb/i<GQ&cVđ_zѣUwӌKlo"2VVz8c+ɴknJF\V9\?:S7n&yQQtuZf{Iax7 LO&V'K E#\ɱ=E]d|pZiĔ PI}:ptS:dMX,huom/ .ٮx=e?gڌrFߏ7$)c}_YNq{a[\l * x_ ϗ!=@m":m5;7ae8r/}B,`8 L&MlGg^e6a5\c'|r6Z�2p;G{8m­' ّ͍zƳqvpH7 իIiʼjk*W.D_:Y9˃b5Z )Lb:vpyas;-HJA% !TF%I*4R(3ZJ2Q;s^\w;n X(xkdMd x])fB+*rc=mxX@&/y`9/<h!3R,3髚V4BVd6y1M*KF O\^ʀ'yQl=v�v >JᐷTݚTVFyM`w6%ɞpRfo+$]:pN lq�w4R3(+;Ӵ1_pځV }WFEfq3AsT,̸I0;$L*FdΧsfIhQC7:mOk9{{Cj3sHیO0tVw7JQʥj;(<G~nJC鋹 2q7 :/CrfBM*ϜZ_Y7$2B}Eǁܽ΋սYnFש6rDF=)#&)o OEFªBM (Ui]TOf+wXk<){;4mv< <Ra <ȬMF;aT6y_pNNLy*�5lh@NiʹOgϮQE讠_A?]rMԒtegμt>с\7=}̡bq§a˻`2҆&|@[}/Srb>k[Z3sOP5&ݐ#ɅdԮ!mxT\[5f!COf͎qY; r} nLK [ػX3dc?2++Vh`JcVVo7RϙIrbm'{ f[A+\iʳsdtyMωIϵ =YEx+] nڌ,_pGbȸ .Y!+$Me!eX-v #齉 *g$CJ'rhFbjg zlrs|_ت+p!^(.bŝc{#'RWf }‹x>22Կ I?ox`X9,\GEUVC=2ZM{Tb{sA%˲[TH:xw })Qھ;jamK^P ="Yoo5rN$>f-6 ~͇?w"9 H&.ф^9V1Ź.ku^LĎx_f$z/2_-ee-ͼYlN3w~q#eTM9؊q61?Ry,]Mt5Eװƹ(s_M `s5\r>9*G&C]y.Rc Dwf$ ɒ@h pNQ,2#V0.Zp<Δ8z0IGKyՁ=E𑣊AK&31=V= rń^›zJJ~2;os" MG/oNM1.e&QkHӝ97%gv4Q +,'w% N{q_9Y8X/(_@c{,H9. 'V13+^;¤1t"PjdxHef;A~*@ , -ak2~Q4\4= pv s{>>KřmXE|ZOp<:Ca3j3$-2鴛<NcvZKpgEZz>$˱&�i?/Džѻ@ɯA<^{N`E*sy^Fs1MnqrًNַ>mf:"0 0e}TClMz^ن;l0omu--RlN&h# 1:g G`if%H;=@'™q:rb32țNGtj>E {e)d>򻃻$goA1wqЌ|&?_Q %i9h 3(|k4TӢ c À*YY? / `ח2qlq_Nr(Se?z'h:]Gtϋ&<26e0zs=_ 5! ^qިLŚu'BfS>}@-ĕ�<fF|Q)-{k–1%mb(q?,0n 9['(T1vx7W>x̫ن⼃m4Yb]]hU^"jxk XnɐrsAlfZQ53+r+ޟ,^Mp ƕ=tKH|U5=&@Ṙuv8ٷ7o'Vl?\>,>G俶wqzD+yzTd_uOOk^{s(_byoS߫W돳o'A|ҎxnMcG-,U1|SyO⏘<rm(&l?A㯨:W˝¿b학QQ}e4j\>y?$/̀t% f^_34~3Jܶ3z.ٗ&FoW^JJUSIB,x;ϕʾM$yl1a} `mOKyv$kITpb+ሕ;9^Ք#UP̆"fRٗ|//X8H=<N�%�JD[V͈Os) _ܔ"WS/ f>w"Z PGOG#f7L{wPAS+J7i&`#b󋔇b3z_;ɶ`)wɲVj*;1n~~O'Sw}J&'*]`&ۖ;_t,L᫏-(A ,WIPa{ 9 |+KNKDE@|`W*whv<Jv753Q nȹ:pK Nǯ܂ȯKsku.HͤeNO^c>}uë/q^z f쬕#ϗ8 HBJ!3O#gFh!Y4IF'/gr_g"ףroA-adhؓclegum-br׭a/;qA_u-o$=ğVDzP#ԢlRq(|/EJskJp5S0!YT/M (t~Rb.H(WD1˹t6`rǩX6Ri3Vi ya4 vQ:.eRüJ9' Wgk f!7P- g==+EfLKCI61%f1v❝`$2{AR=O<BBa^%&[7wX j/ bs x|s5{VIVϛ7dO;[F ۶|oLa# 8>/u[O;ι̻"Zy;DK%w/&\ `"n]ۣ@9f6WR!Ř/ٮ1̫C]s=;G#1_%'E:)*>Ҕ<%񚹓\76ִ3TTR|:by=#/>Žc\H$gnMpW[ņӻE ^"jWRy<2*x'GU쓖<\ H!.K"{;ܙlEzF#/% _af&Î+.l@l 6jt?O DBA\fN!~�Gf[7SH ZW7\g/GO]{.g> #`g[O锸,AoO7ZȊx+i^Ω0K yxB4d~y&U7.qZ(}k >5O<_S~*Ɉy{4+q<'I+Dr0 d>=K՘&~ts/S=rWw-@¡4vVKyQ E5`j[c;'�Տ䘹ivtU_ltNOKȾvt[/U$8 'eT!L>\>7`RPr2hHm[}=d4ݮMQ}a<j9 Y6ObwgD4HTIK\`)u] ؈?'/jbHSwdE.1QW5z)ME?K]+wO|WEU}G KçJ gUg(.mڦ&LpV nψ>]o%D#P/[CKZ / =ٶU_-KZH$<GI`^_f>/S3Qykx׍xvÍ+TbV<Q粦(1;Xo9=X -(ޤnCHRelL5>u7x$`f?GbLYs!"!vS \'kYHChnXN@?/au׮Ou!<,`Sefs%L q1: e �_H}KM� *#_.33Xm:n|"u#akQ-:RƖtڰwy`f(<NA {"[8Wt /-Y/K߮#KbگYwoTz)1b]'*?a\^D ̣>}#P]{JعoK?ha[gNaS/`hEVq\:GKܠHJ~wgqݷf`X9ݯQxD ~ LɟkyRQ鷠4+{pĈ@aiRJxB/ GS<@MV8S'X3yjosGKBdCQ|=x/ Rm$EZn$:Dj~ٰj 68+=c;] m0y4YKĜm`''t>6`.bokB>;mղ/'ɷY*}ԉA/,^.NRyA.[6=xbOFn [iBB\BgdDIBӟCkoLe>W~Dϛr'b~N`e{-T? y%{<@j*y[u1?qA{'`JrVlJV1wOJ25yeL@bB ^F脴8x҆? f',  oq|SV=ڰGH.+B|U~,a*me{Tnc2|5tI'Cd yʎ~m\:<fG2f YFSr*ˏ)gqg|MRrEws733^~ f}w߾ Ћ&\3Zq-|,ĉ@LU|j\- o x PBGp[[+JfjŸ P(cHxHWӫ_Tk;+% 4KD bokyv`{`l=ܥ{I> f&8xx`? ΥE݉6�>l? kQг9D>w~5Lf3_ z-]7K2qޱۢߏP?W/e|8ԃ޷y%M;Ӆw'݁΍776%ھ΄'3Vo*NZ/sovK'qV"B _CȂ~N?r si;*L2Ś~EP4^ϟȷ#p](n_w�q 3RoǛT?d?=c$V2 2D0}Y΅U\a홸{.Ƞ۰`y ny=7=.]IEҋ1^K?.+AMJ FnvO=>\f%D"],if>(^_(U2Pof|g(\+g[A}*9@O%5_'@@vi)fIauc=^6cmNәAoRc+t֍01 Q\ r}x~[X' o=' Ő_hwS) =I%f``'ag\7ѮYL."MW2ykܗ-[?~R-G aO&^RM-W?x>b>[ĈPo%nOsE%)`gt_%>!CLqH-.R 5Vuz4PB`z_ 78 ײdT5%ZHJ 2Q(dĐ4bءXоrNùْvl gH/MCc5[GӉsL+//G޴Ha3 ׃\4UWF+kw,3;}K<`gzToc7vAݫ4Qv\l37EsW5˽EtQV/CcwÿńJfM>ZPhd`GqMD#^'?EjTC-v*s3POƚs- EbοϗDrQ} ESs ݠ"7:H: m[m^x }IicWf5^ojh[%4'0]kK:(qj4奨X#zIKg3\$G8 ~�]+A#]CA*sX+}>:pB8SOb/`8AJBM?r ǘ!Q>~f:|`ܢj9Jx|AVcŃ j[iiIͭ7ǒ> W{LбwdK; kfb{]T1~(k'-2^u5woFګ"u,]OEQ2dMC2^ !gc[O'AR|~ &̖[aPشɗ0>غ3= `RUِ�VVxx?M58Wk@ hX¼scg)1[oCoE)qlp/'q-]6Hb}n${;I>*M+-#L MSvVRCMw-?Kp.kp~<*& CUxg(I+N/dq*)@b)}KZ O:3+[1HFylWmrkHo-3R^E f߽OgQԹ޻+WFMMŸl+Ow|݇>,Ѧ G?=g\yvx:KC_lդvNϯX<siq1#n؛t/Q d{>Ya6szPc{^�zN l(n]�v~(*ϓ+<0ykd 峄0t:1ҳ5a.+ρۂ9A{ޥޓ0,ق1ϽX,oa5Y#_' |D%URA{paSʡ`?HfcA=V9+{{۬* *=! ;[5c+'3UPӟ%"鼧p<g\D!U"0Jy|zoj3 [#rɬ~nt@Y| /η 骙ex_ -wt7}ĎVmNST¥<:kRG͌TR<A?Ӿ-7ၫn3ޟaWr_Q3ݏZ*PtQP՗1 YD~H*褑LC\)\fLruH߭z>9%6q' ؗ ]x#Gw UfQ�FY"7zH-k&/ yq^�^~x< oA{iKKnH$}Ժoo-,32 Beˁy"k̵?׸BUD>sO yZ'u nK.e:T Z27N{5  6WbD] o|Z3a~kuzuha2%ʋن^@o(/#EVa0)OނWK!ei1Q}:H(ޢmObOn#;`4]1 Hkqov)1on ~V u6m'{DQ czS!7 WP44cLFz!v sPI6+@92hԜfpUh %mHn lS+DdvpO,ͮ얲d[ixC053=8'=DS"eC82qY/'aՃ%=]iqjfkKr/EN˜g+"k\caI} pimM⭝CSI]?X|QN{6 oY,{0I,r~{s'ȦSkEXADB`t1v,nUa<)V'nfgx}t,i~/42`l3~F!v))í:v*kQ!r'cbN%0Ni涹Xَ469/5>*c߲<hE<JrTe/G<)aW,׵V#3RX9W#2Jxɖp=̜{L[ Oޯa}vpG=`Ap=S {`G&Ra)#܉4(1Je[ь] >{x?njlAYj=2(k~Ѓ~`ݓ0xc! x>}Kn Vc-YNs NsLtQW{wD%؝Lx=Q+xpJى7{C~�'~V;qPcSPw|aV;k}O6E ֤^\g<]ݺiZ-?Fya뼣CLmfsֈWUy3nSI*E$:_Y۟n[gD T!ˌLjbE*#ϗzYk/ؒiW UT6@x ?]Z;ìt/x} гJM#ht &nOmpyn2*2ӿh҅Y =u|w#۾T, AV$$*]a=ĥ v?ˆ9Cr״푍8/_؍=:Jύk{؆+A;%ӊ3iȩ_n.oge@j=06sz?|Es8caxhE@MD?6X4]iY"_va捏H>px +@24a?8ΫS7DHaǪ-?Ju5yh<nx"yPt@[phtzj_QLa&\0^1:jqPt?; o JhnpP/X؜3<CZXlNhgi^*1O/1uI첺7 fY'=gL\=Hr;Btksq:AM|j%|j1mn&@79Sۥj6)c n$Th|WNqY4=<HF!`ѕZF0C@*q!ֆ`= V)gP?E"L,UTC?^i]ǒJ^^*(_n\__+K)#sI7,Q6x8$b:5NA;ػ_Xo#lQxY'V{2h׭~%m=W'R  i\WOC[JvAŤ14c|e.@7s5߰7Yw0T|)yT%YnL\߈1^ aMS:4DU'N0mFmwÆ4eBRP:o*?ds~;mDZsAN=J}Res>W*|q\_Z7DXcSֲte6S6 5J2Zn7s\6E*V&^Y_'uK7OsSGRm[󛭎+;6hw9b \^Wfv gF]RlFY`L`cXM^|OG!ODoanNPX\:ʔeGȦ` f8qkG93i㈝ܞtO_ZEJggM= "3KYCgnv!.!Jl=SI뗘E9&F8ݺq,>$n7NZDųw۪˧2]?A}5asC(K 2raBj]?lLtO:#_(]HYGf2*ÕhcjpA,jlYEdHS=yz t2y3W`Gk4an"iחNN/efG9Pr-+)8Q7op ޷R?,)̔WK|ku9@2[;C(Wڶɂ><U}%oЃtx>ZDV A;jw;hEH BK<'<=̖ogơY\G? J;7_q,%2Uz yE,Z> u_I+ f/i. ,* T_Oa+sx t,gԒCy'11IIFc8+8-tl`�Û.eGPOPv-$ W3\d,?2H]boHϴ<ڍ'+3iݾTn-.fH榱`E'cj ‡rZ^7XzߚD<R@63'p h%CL ?*,qd ǓՈuө%|F8Pkf^!l +WrٟS> a \ɲ6Z#CiWU&^ FPr\L%jE?-M Hl�nV8n@\Vi!?[E%{ع#T}q% oED}YB6s~HuҒ֟W%;1"UI".I_Giy_YG.|1Ti"R~ lU؄~%xV klsN^ofHr PeA9l]&wduc { s f.s-F$UǾ=4 jsJ`ѰJTHҋ4h3N|ةfm9]3<{ |cQ<r eR€9 VMCiUغqfz~5 S+3P%_mBnz" nl_PŁ?9;Ԕ>m+uW[B@F90@l'{ʫ,u?Ibeܧd6H c0AgX ϬtgЉa>$H, >G&jόnƊd0 r%MKCOxrJ4\?rw>% UZ1f© 'u*?韡r_9sWF>zL9¬7gj/z˟0w4ٶL~oMa̲@l`tE!Zx)E/x7G\ ܍I[Ck#rXlNfnm!ҺAw &,-Zҽhѿ>$;ȍ\qGLNC$Blsx?[ܽ@CYgA3x Gv9�Rk~~P%£TRqx-C$Ɏ3 ]ٺz+1Nw^EcAD}.從2 ,ȸxժdtN6/2,B%~Z\o1Ѻ_|.{;1kP5N0~ȕ]̤sb ])d/]˅-O"SɿA(s)߳ k9e>�}JISPV0Ko<y =-<]8<MMA?׃ 3pOIn 5o o䳅}ѡ~鏥L)E\ nwcG,,3 H![#w93ovROipSɹJWK% Rs-K3L=k;X/UaN߆~sfbKs/D*6b* wrL3KOB7 aE"Š`wys9yug/&j)sgvgg1|H\r.Ʈ bn%D6+&;[bnU3 oR;X#+IÙ8&+#2b1Rn36qoT%/@*=S};p9濱TyoRDqn76I{~0W>TpƳ$񣎎hC׎}o1@|"Xaev0Kv!hX!@-w)[1SF֬O-SWBRܦ]\_46 gۿ+yE(Il۬<i}LZel:N*Kzӽ)IfL0v`N;\:J #^GwoӋ!Na}?lJ[~Ss4y=1c::P+Mq;YXӍV@(VA*Yo wbR{o.8 vb4T= #Y('\(<+b%L 5T s\g00=춹< wV#_`C|yM^F'M9W@fn|wؓ~\wxCo6a (T|]K6#cOl>q9f3@6@u{J/bVdj 顉TqLGn[2H&m7uQעK*Zv>)WG0{X 㨡u~ BQ]NuXeٕf .&@{i8w b$vgZ2H1Ļ1fmB"w'z2=4 6\oh]f6A2j]@6-~z3y$2n> pEdsOS\_U[\feջ!=M֯H;#Nc&T+mF'ZNBPf>e;?rd/sT즏=E-A&"@S}%ۣ1?O1<>J?Jg rZ 哇޲ :ɤ82LWx`h+NgRA '$+IzRY]\ta?2ѿ!M=G%ﶳ *a WOs_M!Zu[c&z0 oV*Ϩ͹캔ݗC¿! ݭG)flHoT>gv|#rU}#V48~ߤBR~7k3<&x/ب*6CܓټbXazJ*Lsgv#]nd�zJ<7/�?K!Fڍ ZC\3jc:0 C%fu^̛x!Fd~A3DJy ;=.Vt1%@0Y:pf g=&7:^^^-:nnCq ,ͳ\k \`s۔ 5N!1v<6}|}f? fO:3n ^> %G+p4CbW/#Ϟ/NfhSz ͛ ۸lMgLeo76ًXa/1!vA?xgaWW;{uTbشvKWA;C5\&gDR>?c yLB TkwPZi K\Gý.LO .t6@*<0W UccL;?w%ʬ_ƫ=ROa9nV S7%kK^KYO8ώB6߼x Uힲ#.KcT=3q5/tnCLvALuuG yS "K)su]Ʌ_;k?s?>0Ϣ-Ϳ<8S)(-R:17$2l@pjs~Ôclسa[f./vfF"n{‡ΘiTU�[bl}Jr'X7BVn7lTC AMw 7qvȨ:mo 0( wJHkw$}*6Kg݋k$^.j[%4ᠷ'ו{b{ 1Ll>MK3;\^(y1i)0 =Of WKA{Ŕkbx`kg }pɔbJl".:&>xqTn f]&tFcR6-3Ԉvq|_O?܃vt 2/ ާMXn wpTLNw_ W7Q'p֣u[8=W٘=O=J�VUt/"#{w)Y]'M W`7vsM nws>FnVDUnbRoEC?х%30jyGNRTKj4<0ԩ#<s3mp$W.'?s|9wנ 9 )->8 ?|LZQϦŠg!f wv2YY=~taX/0;XU+)LR2qޖ' X4.ÌG2:c4zeLgtrU~VUϨ8O2<|fCɌeT`=Wks&MMv Z]:FRT*C"NmI+\Nr} ȥ!? ݆&6levK$xg}:Ce_b'_DW2N%pLǐq];̸}y̨}F~ Ԩd?Kfk ĐۺvS8h\A?sF,b<6dV2U'3_86rH۳!o@Ƭ-#�dw?P0MLc ?}N81b`1%b2 *tPh;Uܹ&=$3u#}fq V`rWBoN SpRyz֒H( ;VUlU^Z 'hn-[;n.-9S0~fkUwA3i uV Oj/O.k*V޳+8+wkh.Bxo}(wո}9g>6\^,bqm0M1*Jq'x6HpvÓm`Tm&ͦ>9I*'koOjVө-ܢ׎qizw&o8Vg"y>.<v\Iŗ_/!ܫ9w0iZ4'u|:H_;}=dwF_uƒ=X8 ^S !+ѮLp3ӗB|g// m}˯:.;-qu;HxAO0nag<܈'OAGoF@e>1bg.F_0h~뗹b.;IͬbqOQs|, ~ "4 Xӆ =Pʞ͚,vM`5+#QeH_膿 ᬧOa >6 ݗ/vj`<RO]MUg6w]ч;`uyy uK+{@ӑhnZznO�/mfGi kͼn�ex?mᩁmo2c/*YH =JǰvD?Bv ={!ytX oƤg� 򬕫eo ]goPI@{R0AR=WWDRFuo!'k٨؛KUA"ʵu\JGe2%K@OP)tWΐuÓh$ ߐə{ a6BW}]tzɤ/�ӽUkp%x5mt]s)^ŭF#Wxks6qBqj, !߂f6asx wٓTTyє :^+u1\,)z j*Z9*>k'~*ӐKLL eŕ茘vWr&f8O)!ERV2 UAw0>[KL�X+w/ mth#W"(_x< Q{ oNUfW*gR/1gf]L=pu+KEܼ \ʹ{=w 8C}s5E8fmm EIJ*T`pQ �+;; A<2iɪYn1{fgEr靟Oy+J8f? c<u}}y`u^|Lb!g dTx[/WQ$ҍK3zM QDEE'-\!{@9}䘟2yUSu=, =}7y[o_/ ^ͦhPLä?1>V Z?'q..KguvZS[*  }w)_%XimYz8û_+Gy2wJw5hS!%?a~L?2b\``w|`0J}E'E̿WwlrE`V.�tUɯ$>gևwC$JX}ouf,n`n7/ Sw2dWr硎t=b6es5cFB͕UÔ'T 8)%әiaM5qܑؖAZί;RmooAOPhՌ8 �qܠr2m`n7q,rW%=0oE}HNA{ " uO0ߒ{pv1&q?U*ǜOsm8yaLpP>.Q=HU'eY`LDbAVt R-W׹q\B^d/�zJk $`/}T$c$n0JV`Xov[0Q|f%~/BZ9G=ƗSmx\- ;FA RԴla+L%z~cك#ӺC${;UECWh<7/ O0ß"B `z"Mgcۣ$V1y;upv<l%s7 d| 9s~^j镨nAQF$\.rϨa%|d 7a6[GdZ/a!S/RAs #WPw!/B=هCb-(x!Lg6R !gF; X ϧ [X:cW*n,96CчEsKu9<) ZnLOXA݌AtLob#57oqZo#S҅e?@dt ҥ̾Y‹p-׿e(Y,vxY&aUD<։׆}@g陸u;nk[/אY_?\8qϖ7?W%&߷>E1 o"877z\H LAl@*a]7d֡S~zg2?_:3o* ӻw$\>~]QLH.Ͷ=B_L%oI:-l\S\*~ n'^QZSﮇ ꗾl/1ԱcOs+>�>j%bkp[(:{ @r++{ؗy6\dY:>\5R.>tۦG3%Ԝق7KFv^0pz@[E跋IHqtU=oi>ؾkTg60*7x`=^ӆd8}g 쯩<5Tdl>| ~c5Q7gm2avR~МE<hDn>ܨG9י T^˃_yD!5ax*cͨ%)|v|<‡t0c=q<1 [:I!^F݄KSuK?{8;9s_(%/ ӓyX_lci:\oL?糔x .G\tOZ f fuB~;s"l^Zй+/nltŎ((u <* H[ݲzM/p+;"i>Cl{L$|W\ =>>3K=>i"L.c]!(U&6&Wu=9E뜿qeIv {hiJصPlG60|2oܝL\`ŗxza[J6= ix=. ks}!pǴp1CyO찚} eGHNDFCgN+k)\R/`?ӕG}^fރ>V0 3C]\AMhc?3ʢK|{AV=#xgŽyĖv%!Q $fgN%^͢lIwyF�,8f@SF +wAmiH^C,<[�~ eo/)W}xDZ.jTl ܳm ""U4g$.Fj ږRtSaa%xvL/{q$c: 3 ?d"(5DGǒR|Zw'" őL:aGi=F~gA\3D5؉#Q-{&ҌO`$_Իf3>CdgDo n,2CSa(Їꓠ%,oDeرK\u >&nrd� ɸv6L"||/<,Bg~#䳄ڈYx}?־ޙUmCRO);;ڙ̿eؠe9 ! \EL\ P#!htm_x!Ѵ6 bGwo+8=O ޽ojRMƥȩhl}m z`zo @!#ȗ>n=įvr%/x:ΝXc5@KCR<|g!.-M }$ЩѶ lW}|t3z\!k[^Å,!>^CcܴIo fEO%`^;հn%:{�Q7ldN~{lY{97 P,;6h)X? ("a)6}O՗CӟϮ\]֣܌DI~Holm??Cnmdk93~%'!>m];7eR|6z3} y %Xp(ags+j "E޼ԀJtp>#}h;t\"Cv;D$*sFOj W c akpMQRPan ~MڗiU'آp6Бi‘ ~!�oi҃DmiqW2~heG)CK`@0֚ET' n!vz\Kj9¯>'W_ox"`>)P |Gxr;@l(')1Xh7WedWj.iU |HֈD`lteEڦmKT׿/=}wPx΃؉0>8-z./ .:j6g^n޽"<]Lܱ :Ixy?a,|2kʡ80|w,:~bU0,8>h@m!]]8ҿTV0 V^e(ge q�n$*ƢրDϔc6@Wp8o&ȷiW5R5S}R2Oq"1qh@k-vǐω.2`�rl^=Sh k\dS٦@;&xc6 g(K@P+P 3Le\#bROˏ!9wmL԰"l&7&%Nob]pC|Ma�dfKqee腼K+ǂpX QKT0əA%U[e`ة>or1+7'l ͷ5MTpۋXf:ZnWӛS ,lab) 9\{ӌ"eV G7/g-ԦOo.cLvz sB|"lh"ߦ% &ߩ"lf\b&~bcNSYIlɞRB'm=晛|kBpYw+ʎs|Ia8mv3?' Ƽ٫~lWUwՒZ:M{Y21Oϔޣ?gΓߑ]L8q3yc(q/oxo 2 ~r+ L1̑Tܵ\S+xQ GL/abY= /gn 󫰂֜ܥq~|o^<k?= m#="rM1b2A1KMȦ7ρ!pc̣T ]dbc%_3.SB^r FnqէQxSP}z9W`4XRz!i1 R&΋"w5]u]r*GR2BE0M&ۙ9h�k]!&Ɣ޾a-qO;ҩ jjfd@,j SN(އע@ju/oFJ_J_Ϻ,CGO6[ 6:*{<io->u[w5lfg%1k=4 P%<DY_~1_])= )-0R6XG)=yvuLPE^x/o~A7m^y �ʶn<rۉʁ+/T}e1ݵ~=O ;x1xn»�u0><<$}]{a7 ύ3t\ 栚@SY8ʺo 6@ >پ 0N*AŋL#A3EC5RQft#Swˇ {{= 7SxNE lm"H A.�C{p>z/pv86'ٶd:[Ul~sn.e.+yJ}U~ǔzΖN;u)FO$uLv<?=숽?iLn ]'4Omd<[; wHcrZucH8GUoNLףL~DqֳmpЬ*˪LM�<(~ÕJ$X{h5˥fz>fпLq=! -U?cAջy[v#E!C-3|o;p'К'bn%LbY'@ r# NY>óo"SG!2:u Xp.˝RTuKKyV7$]#XV|5U�}g䅅5{ {>֯M~7G3�j-CKb+dJ~ N8/ȐA~"=z4,[Bm߱w ;" JN rM?x)уDhV fl]}YJh /Cf*c`|&Ǩ O�kK/]]ΪHsi/c( hho5("цlsiCgP%|z![%t5lh%aa :a^J/X /''@!en ۠sSO7%Dثۥim>#KcmY:r)JBGWUvQ5+Yus;%I%|]Im{Wip[ XXJ\vPcwݺp 3wKa(v~Kg ;RG- ]6\`5__j:+:R_=spFIg(3 wy}_#/CK5`2;(=ȢR2P9i[Y3|뭹M/�&Qpy={H݄)}Tbtn3dFyqWE|km)eQY iAjԜ<5kv"Kػ1BZzQRV uLڟDMμ^Cq U:Xbˈ,6=%mf?R>MV⋮R$~ČY>}UTIG 1?dz-/7Se$kX( </O;m؈Y4oi)/y[FBϒ<l[!jW׷njgO`0jv. vkv;w0:kA7?.f*`_g?|J%xρteEf2nVϣ.NL7ǃL5{T.)+KСEnހp6q3 t3lA l[-:Gv9y:Lc+rbLZ<1 YGKGa' O.a$_mN Ԑx:>X޺ 5G\VHp")x-^>~]@mQ7ՑXYt�<2*e+ч-Yzf 9`U"=ZUAI `DZZ6|{͖Pjp>f:zjSݡ[c'j;<*t!lBn~]7lf1Z3|H}NľLg<Oq"$B;s` Dp�\B M?2Np(l/[R0@#Bɲgfˀ]{5ף_`x)u8 ؚdk bxk-j][<CkWԋ"j\CTi8J2"o+;G| c3vnZ]dy*9sdtDfElѻxiD sW}�tZȶo QxkC,4+4jvǴ~"/we1)Kh*Z6.Bgߧ1K(a\Mޒ^n~n6O&쥯6>fh+34{iz k/@�,+ir_Z>fm4:Tl~dDȩGa%YiI Cw U{,G - ^a '>˗,Hu4]]b"ĿH!2�zw*ϭLth?5h.l3%|]sr8z-E]Q נx,a^uI?z'l^>cm%+#OqM^Cn~f ?w~1gÛwԒ޺%]fSyWAp y2Qv!z c3`G`+2qӯ¡s\5] *Tܳ+{,jJlNvb(t>d?˾2; (ωaP*[aG(|67h(ן|Xx*mZ_$EsEx˙41#/c7W)-MD܆X/aC h/*@oXtMtsZ]c^ͳoܷ` O?ᕺ;5N1dA:]ABT<-\T e)eG{)=.S{ȅ "NO襷R U]̒6M챞NgNO tqU&7]'מ "]BѵDfZR \"Ʃ@?NR/!˩^l$Bo3wޡM (20ZC;96GbWLc\B'<ērU'3mI�{ {:ʽ�{߼)Ck럀 ]|ڼ?ligf.zߴWqm‹1LBe"mYO<ʻKGԝf[Zڑ%l~CO~׮U|\S%g[ ek0:wwyO7_�~M <Z8Ɗ&ϋgr.j'/R?i9⽙Xf f3 /c[Za/  3䖳凟X}L@LȚεE<3#zOHm9m`)Kv|^+LR[ks ٺLuBb8cjSeS@LJ@5{w gt1OJNZӲk=ixoB?Ny>{ öl%1G^6.`1ʖL.c-ۄ!\j-6GjP5a0ږj-L;߃C5tx(}{3˨CFv:V}5E{W.u?;ۋ$͋(n习7scNj5s5\KlăZOr&alW:>ǬZ\¬>u4YZkk\ỳ8jr|nCkrvc_ JM l'I' cn(po!NJOSU1ͼ)l(1dK/oy`$=yihڋN ͇^W/zm /=\WMko>2[b`8S=ܻ$*_pŭx~=VI[<g:",A&#us}`Sn~Ԑ= h.3Z%xS5؊v1 e\#=Ex0O}+m/ەK+uK\aL?SKqbÅSPg$7Üzz ^,A*= /e,`\O[1O{g~N>H393yqرstAք[o:ܒY=ʠ}ϰbmw"\\W-ț)p{ b=/):-w+zz3OP3 l S}} ۶'97i;)Wd;TRJӦz/U[3h x(^!F/`&> #=?a,frӧpq:"#Y;^"jf!00ʧ+<<Tb@*훷-Ȑv|F>_\]M> 볾zҬX:?WIjD@FU-᳖i:m4WGK�Fnyx{lXlRtp۪?gQh)no7GId`Ϗ$4T H»dC`>2OU>|{>R:esY(x#ԩ|S~ǟʥ0{g][2qȅIMqSvAk%9 #çм(A, vcR(o7/ oESϷk$Q;o u[x+tcX EevҖdܻH\f+.q5U ;Dz }{E,| 7+ϧ{I:u"r_hCOWRZ0<rCU暳p<SzH[B4g_%Zh"<pk:c!"4Ǿ><qϣ3Do0wYx7~k~[ pKc=q~PIcEAG=~z{)\�@F--ӴQsG|ߗ\ V$i`! ygTN;uf~ bfBa~ƴW,]V'KOkc?4:ˋ#Ճmd_2qVoZ>DW  ^iRcbpA�ꅭ{b&ZZ#A|JT絇eě v1k}4fDobjFVWn:SSՠqTfO|@%prG .JZf[+M\ 'lXksFb[�=–)6 Rs?6JϐQ<q #ϰ Z9'8 %1�P ZZ! ֿg@}P-W I)~Q)B 9J,|g~aeWpQ F1|>"Popaǽ'e1qq sg gx~7s=ޅ7}!OQb/7;H9D-'>rbDžqƈW[%7\k<v/m-/=V7X*)r�Fl̽}"meظl<=KZH=�}܆6sy5rUq^zޒ�'8o;=u<'E~e`_f]E[í[ t!mK4P-5@vFN<Ns9Ýw_pVoXO*dҳU{iy&6kC)gr:r5x�L2QXש=qޜ|,Ox>w;[i]CEļEAt!O. h>}3Cl~Ø娱 x]N(J*Ϊg2_kuQŵ< Qc4{aKǬ o\hdD9l@8C&|�I;PJ{ %2O;4@wF3'.F*FJ~Rr>gTInM-m M<4FTA8J ~YƗ"~-&+N25E!evJ.>z %p> ccVm%w]>JJlE1 w i`݊)7xl#Qk'GxW�g'wtZ,=DYB 30`6F i жO%MLo>M&<G~3BHU^A_x{g5 ظCZKo�p1K2gG36^y [%#<c1MݛQ5ip 5`{`*xӴ5mkbDS{\u P|묙 ܲ^M%PA½g!YGwf<$፟co/:SPkL5!vt zڷ3CuIK־: wY(Wa쿧($TkSL&y!j1گx`CHI._mNM7 =Z^XWNFug83Yvn .brlh*^ݬƊ\nSfئ7s,Q"JAźw'đ;zR0+~gE_(O*%١\{8ŏh4&3%p*`w<2>VNFnvdwBx4dMї@cs6GlP/q3i8_,,u5śYջ-/ mSx{4BS0&۬`xa#991?Y\#q7?e.W;L/kbf:i".WS3Dc.2G04 p?'"iNP =x)M#.ҊJ0٬&"LM!:ˆ[ wdl>o*gevцL>f*GUEJ˳3i gK4R A8!@;oxv`7~nhk5ssE.W&:p i7ޥYv4X 0ܟ"LTRi5jѫMTĽfܴƃjnՉs9M21Bo/\6w~u zQ;Bwgi? Xۗl{3jsˮZ^w&Ԉ ix%Mk%x$Й ǹH"/ k c5ROᎍl�j.p? ZN%Tor 4 oM#zfk&i:ۏNFG~|eLAN7 } 2_v3+r`fV sV*<2C HGp]6L EZlgxRl 'Y+ Yy[^1g c9m2D>aǁVjz; 1\6w9i}2`x]˩0iYh\v/7|TKI$˳Emt < ǘ M<7мiBfRCXhKZһP\zFl)(�>БW4i?u\"Ep|J u_g>AfM [_0rL \84 _UnI2o (qFcwG05tepEbFonfQ9NڃUPg%pG9oġ%]¯ڄn#CZ}!c. C.SNfN[sCotp2ܑƄ¿!ϨRFJS ga*8YL760$e^rMj#3o:/w T#-gt)2*v/ƪ4Q0�w<@& .[B],s�_9\(0,6̙>3猥D!%Y&[i(V6B)$%%JY+*R!]>p>un[Cӈ&@?aLZwSOgM#ѷǺ8APAD4.`H1BWۂQM x259T*9)KaK& ޻^ߦ'-k}^BAK\ }`]Z>B+kd 9NHXLC<a~RFDGeuT<ڠ" Qv̨smKyt%~ۍErD9t=!k! $]f,Y杄o/2O>h"Q%REG̩+a_T{;5E-a*]>i c⓱cJ\tņX:(8RIN7<\Zx'}'0KSل Bq=v2<ϙxoso,?la hnTsI@5:|f$Ǽˏg3UuCntdFwPIB#4OGw(RGcOkP/P(<Uo?> &+/2Zw4}T'Fpo_9⼍y@F54ϯӥ# sdy I2ejd %u7's3?bqlA.R)=dW,od$]V'{I 0Z]U?ĩ'O Gަ.iAe {W*ZC{MՌ7iA][65p26s|Zg tp//a/HJf_''M_MMI_`xosU.X &zdȥ˸uFD?g6 _J_.c~3 @gZd}% 7~,Ooyxy,Vsօĕ41}bb)›h}Ⱦ/3{׫89s+eg<nˣ-@T8PC~ZXDKs P~IבΜSL`r\!'% lѺ:y~4֫{p"1>pGZnN%!zf[ _5q v)Ǯ a�3ΔDD,oh*& ῎waHv?OE&Qs&wO |9*'rIDŽF/ />!Q(~󝎑ce )5ԛavw[&}Ψ^?ېw)OLe'dNbdS68صvufN/6zQ1r %ne1^Y0.ǝIUa7q[F7#^ ?+GWo|/h߰5JPRG=X:*h*gt2{GU=<N]?Lks1<ۛۈ+%3@XEyܟͦ5L$ءu~; -U #Yo]_s_s{-Hu7m۔ pvS&x{#{DP/F[ {!VZO?}ƻg"t"ݒ\ ;;ikQ8axI0®:AЏs_'.gDf`"jln2Ktefy~!e7dTVqE_IAnT(,{<wd/9=+Fx`wX>7fc ĶaZCڸ6.i$VuC[1ᨛƔ#<NOt]DסѧӅ%Ԡe'5 YŃ!3/6Tȕ\ "_{9:cV0jq`Џ^tQ f2d^G>VS{aϽYM1AccӆeyNu; ފPQ0KXlVęv^=^/uvfvgޓ-"aV)4f6㬃\ȯܳ N 7~ޜv" `hU9?xg / ;1<a{xY9ԤE~$LY̶'Lֆ CK X{J41 ",~Y۹e7rd-Lz̳znH;C/JNtY-cG_#ӥ"OLn*_�Oe6zhKP<&ɉ:ɞ^քa.11/wzfs`qڀEB5ZdK ]0|,>J1{PV ~[${ӒTLd~mPvrk ~ IjO32G1ۯX//A4>Fv+qX^Gˊtۤ߳`yLzs:'yiez%3;g`q )NwWZU0g9=%._V`$i w P%80B,Qe9u+UPQ&G=M7co.1;g! G,**abۋ ᚟7E1 %-`ӗ岸x2QQ{<~B7#%&|b e D6(~4PMLsag<GMV^ʌ7\UO$wEެX^ttYޢx+eyfT 'RPy8M=YH]#LܻP31lY3 &H+3,K: ^%y0 ,e1K~ =nB?^” iMRͼW3wV=i6[M[OM0IK,[An+Ic ~Et@|%7lj-h#̝v�ŵs7´׈#&، 'P)j+P5AxD(9a>zf<cvҟ{ԹIdF~B*{fw ԣ 9Oqi*,O|I'=<.z~ Ȣܷ`g|J~FSQKe.C Z`s*7SQ2Gǥ` wmT^)UXQMYaLqdGNS`Ͻ'xbXj:ˀǼfK.":}/=4廯L0$3wZN+U<v2pxo*‡WPeJ/%HgΨ>!@[Ⱥ5\׼+:\fؠg@7C7wUg(KZ`(!otn`ӛӕNTȆ_r \tR'?:E> S¸/%nHqsޣ4ěl!K*\m ==Qy&v ܜ(8;){Mӣ:,#&/X .#z1g,!lF]( r`z M=K3v $uQOD-֝|ɵξGW֕0i*r }ksH{F nx%&{ѯKYb ЯSx.f^RƄY !;@As^M`2eO^ ,AN/|]d!;_J-|Rv/ETHVYkl$} sf+S1ºq9aD:p SeFjG[໵ p `&?G*0=iX1wNe}3+]hz=dTX\V,>lĢ'.:'~+U,#pۭ֔dLW%FVef!7tW)QMv| uq ;,] mWfp̷("#̵1˸|6XI%QK22~Oq܆{.SE,g^kiKЃ_*|g^e5ӻ2 gOBG׋K z,93%GvO"3:vKo,ⴴSLd*(MY|$UW9Pd'dia ^uOu@rO|GϜf2&'N<g^ ߂~i+-`w̆Q3a,?׈0EBKgƿD/OZ #8)J57c/{dL#Z/a 3[xK)[Ud Lv cil;3l+K(>;|gM_[Yȩ&gڱM闇Jyzt Rcz -عuz[yfۯ3n>tPr&V]@^*Rwg# Իmf]/g#/+T2x O*-Wm@DEo_0)/' ra>t.8fvCΛ_=Ȗ[!h[xbIu y|?a89%q-+�;rIica�l )skZ/[wk^r[KI1Qz}0IeHW:RSXa|f>^yk^�;Sd<՞PJnjhj-"FT|�[2AZ-a t&o9VA:eHp3uuą|5,I:I>Y�К[Q�n2k:> j2m/0[TV̪_vYlVH"O'%.-4wǓ=,o(R4t �7:>+ٮ0Oh-#"d""3:":M.9儣zl+X&,(S\nc_`z,V\Ĭ:Ov[drĮj Y/gI6@.%O:V�L8¤?I=/Pao͢,UqKwkǣ/Co1)[yF0<<:~3gڽ2aqo5D.~HT1 :P9ao-{τ#(Oϙ9Uzc~_ 0\j vo/3zdVXJ9i`v]4:ݘ#Dܘ³gZ<=~6Y'+Iۏb>~ɝfqP@v/&;*P(c�Mgc2߉aPw+/=*g9jubs39&;+lZ$Cz|w#0lqL^+r()\kI:."ԭWpW!=ь?f%bT[L,D8՚1Q!f%\&p*̒sj QlT]tlt lcj )K;>h5\[I-::6+08I19+|?_2aV7ASdw]&޳[jR ^^8v d"3k;շj\˂c`.s'{>E|9_2~0\176=Hy By'g+eV}3 m߹/Co~#jAܼ:8;3W˒'4@�?i"pA~}M=eRSe–#d$,W] 333ּ ^2R lY5I 䑙l]2c[8~(^(!oq3Ahfc_!z{3cBGAʳ^{EPFƁ"1c5SE嗍06�Q&VJ]^ Dչ&E̺^9t#},]?/\^oeB=k}z 79^8q�!o,_A~v%}k`\4ۭT5ŇxT_Fv A5FeЪ;x߽\ƞi3*|f5 S8h:_`}R=;g,lz*WP&lZ*b*gMDvɺv!Ch U#1cYTϏ#_>Z.\Hef|f'V=lV8FV4 ap=R?K8E A vtZ Tʾ뉹81i%" &Exdv##O'*"!k1}oS2wpp/;.htxmӑV|63(5ɠרnBwN,Quށ,/[5JZx Ozy1/YG詯hKhq+6U ?ҩV7PowЮ#H͜W8b%BDQ.z5â+>.\UѥؑF ЭP+!_>N8ONg7d~7Y z-giC|/ߏy Zvܸ>]A>qmYY* FZ_M;8TRp#yeOF e-Be7)#w~1e.=̪OT!F;Q!zS&5pD\+µ,n-W`6Y"dy#6~le\/g 51@M9Ic}]C/qgjXI-WT?X~e]|{M9 zV; y-n=fˆ^]Q@9x+d*6͔fO` *؉Y4'KDVķh޺LXKpz6~VNR2)ɁiufX8I|;ހ!wxP R"p%5=cQk"チkap,G`+8tp` ءOR߫wR0MVL<JmT!OCR gdj< OxsBϷZo(r'>ߗ́{7_=:xxcjMp`L8SN+֡rsF0[ñt)C'ul }I#k,V&JߚC@qZ#'\N!=3=@~c61A|NAp?Jॠs? m_} G-0_zg$}Tԡ?i.ǍMOz/AF],.a8dqIO>qr'O@#I9\y"TsG>qi/OӑV;t{JGbK`z[~4~?-ECa/{Jq~$LC2`w0ǧ5|!Uq3^Carڎj6cEk-U)0Ys7ƒl')K;ڔe*EdxAf|i)S93Wranw1MfEۈO f3[9c<B$EBV¤3%|<�~&o+M$ ,SYtĢ}>+71s߇ܥ>}a>F KV�W$< ݚ02/$h͠ _aQQ.[>J8fl{soyRHAnL}.cJ,& mh9p 2MPW'^ g+5'y:Nd߶^䐪{<4q#]\ e+ O~B=f&Fe͗ e`ݝ 4{037'=y 8C)? o|JbMxK'W0},6q1x,׀ϖsUx]7(ǯqbR kn=^337M$kKzYsĢ _U"lScdIfnvÄŷ|Z|0DĝVqoCn%ww1 O~q5gI/[~J! ^=u쪅iJkܴPAV=/1f =eEYcy8ޛ[6%l ˜~\v z{esM_܄.Pml>mk2RVw?(ޙSZ;u}C'FIl+l> '[H1`w%~n;͈^l<1װ ȹ "ţvat/Z#<~*<)pS I`w=(kK276XL-fMC"  vp{فq`},beQd e<bfe]6 ?wpeDӂ:R!w!Q~0Z )%X/`V1 O@P1&?nx*>WD>0;&\*gm#Pt6".'P{Hue!4pDvz gΏ·* ֟ "/`I-�K9 ]铀_ݺ75ip{an{԰0xK /Gﯛ jEoHF^ ;fS3M5+QU%jzma;kf|~XIփ"r 0(Lḅ(̣jJDg2C221PaL`V3.[!Zkxi? 5ՓA 'úlS2bc?jwvӓog ja<73s+ a馤WQXO @ɑ2c!*G`Enml?i_ z w!zgQ߆Be[ј[rǰqX(R}LGp([Ѕ5)}á#kh HdU |d ox!HAtIt>dh<OX5|{1PP SCTQ5q 55~5}l:דkbCw4ۉhw7%*LCm(*iaNnaҟ0@&-4%Րma YYfmN\&9אNEǫUߩ]d yBj_,P&nE6},r)o?eg^8eBm-L] 0Qa#~"Wh}h1R0gП IVz%ˋ.*&<ubK[ [9~t;MKkpR5)[@i*Ph%JHXh;@W\~WfX w \]bK!jSu ~yÅrq mq˄"Ve@&+j4<2'ѿiɚ1oڋt/&99O:Yp[u=KG5zԑ]t]E0()(?E2$f Y}1r @F,@|I�3 cz~<No c aEՂ*=u4TL4o8U5,Y )xmzQgl{ =aI?IEÒ`]n&+{&)3fυk&-Ʋ4U512IhW-ASzn CE;Xݏ3'L;9)Dv@K`2#y2.tH֒ݟ}}9btT Nֶ92+b&!5Aq([v_r`{7{.չȸLibj[/!{e#oubƁDwbܽ6)-\9+xZ\/& `ހH%=le!b.[pm^<v+0=^?P 8(؎Prv0]�*6ݼOA8\sƝ8 B>xX�aaR]!uH;3~g-N!4dGEwn�^]=($'kzjT>w I}\v cݿfy`i!7?ŏ^16F}EqS:9v5,]wTRCPJj6!Vv=cN|B淅Z wZr{]w? ϐqdvlFJJ%lE]AZ7#L8.1OMa6ǐm Np> 0Lt~ exoR145c*u¹T<JDק,砩Fԟ_*܄!f <w**e84ڒ]}�q+W/a+)aHݠ9@W5Zڥ <XjiB3Sd٧~Hd] mTm:Nc< qggPp%Kѡ3|4BweR3浬> t?([&[ F"T1xD{^ȪEfmiuP|zblpٖUqb==şS֓$gƇgeOTGP)k9&5qDa-uHRS8s@nbYF!qCɺlv_.G_3+k}SM|gkv"J@^s:J\ynkF;*'11"ji Ru g~6'L¯-<oS^:D#x —Ba߲k#2|J FX 8l ֻ0="S#˜pfySzuT A8W1!7UCՃNyR6xR2ٓ#v V vWCm,61i:toeq0C(HP^r0IF3?a"zƔqԫZl;J܊r|J - ,5[6f%֯8: Ao_%.W7*`] X||e:ʑd7l5:L|0_D5$m{6<s*1I ?'We`elrO7K.?WFjU3КGcs+fb6-sX*&;}G~@\魆S{) m4D\>>?7}O/.'zdVmL: X=F/i\Ii}14T_ovshxS7^2 LTQCG66gbKI&~5Sb/"m]SN~g J{V&XGmc&nsUCbߴdQiT꣟&L*.sT s? ?hB0Q՜ ?p|0zR41 2+UHF/b}]UW&V{_] NLA!k np(n`J6o/fp}YC\X݌pb$S3ONHIwћ?_CqH\ O5^$܎C'9)W/Iح_‹!жXzN{:eU!Nph/xĠLS {(j<7Ayh$Md?MlєKp@#q }xDIS 5ƛH VXzP".‰Mi 9&GW-V柮sV{nwSk#),#t9\+RϨh.S ?t7Glx\SD$'"Ua,Xs') 3`Z- :),[XE:P{c@LU0>nn͖o#~OΞ>'sc"W8t<L719믔MaR22)sp584ZCOR!Nn#34yh.6-H vYFXD3Rpkƻ چ<JR)jdM' }aom1s`rz}۬ʭ2DOS8KAR#nW950�Prt 4Gi?<F*oOxm]owSٔvn9=%pR11bn?z@ǽ"Q$ccp&2YG۵E`NQRzKĚ7\܆(>TyG*32gq&sVhb8j3j} d08+^| c;1EH?"-}Nos=Q]|Õ=gL@l)~>K;wW x;su?04\8{јz>? % ]5wU$iD d*uwk։{h/Pힰ{ڹ5)t ;`,g{ UV 2v֣)v0dB\gzr6*y5w?Zѻ7֠dknCy!Ho^ dD]0o.]̜7|Hg ljxUv'*0of<a/ˁ/hxm K-,S?=wf k~dN| RkAFdv:|[ fNuG}|/,K%d0mCG'q X;_D\_~G3'JtsHr tzf| \lٶnmmۗ8_1&6| wRՙM#![pt<j&PS$@¶hFk~f(34>5RO"yڇ {<Le㵘;:882Sl~;Tg]KMb±M\L1&viEK#kp~d� C>1/1XK>+&/>k/% ίJdF/DysqQ"0n=t$@J~HF#Ti$29FhK|Oֹ1*d]kLMEڹ<6^J%,\T:u]ʜèK]_1Kj 'z koMCA̅O]BR^^ANrQ_,η5+[y-j;Ա'c' 'G,L"UDDf7$IK.r*\?rWD˅ #E4ʈ"H*,!IUs_q o|bΙ@ZaLV|FJ+C {,*ƅQJߺjA&sǚZt 1/em[rQ/53HF8b:s^D?O7>cf#[5CDF4ۡ|l肭{n E%坽;]{a^"F@N9�.�՚("}"ְ};UQ<iOqm79' n3ʷG4 0E9ir*4g&Y}R] '9 mYU, o7g'FAuO=97ꩬG+<n!sgQF$8oZWX@ ɋIK>Oo /fN념{$p_ ݛɤG;%T8Ss!}d(x̩x҉<oGYCaE=33\.\;[<ugEpcߏcjc+"kwENPےʭ#[7F:&ֹ> |M=(\oqQ`f} JTaބ /8'o|M! # ^q'7Vb3Z Ydr WS O<6:G44ޓϽSw˷k !J W1#֟'=Gey]As][&Cƻ)N$YVA؛Lwd?:~%'7KckꗐvC1k%J`J7xT 6o%yy.v4{6 ~:OHKo[N/t +UhgdEL'C|睰nmg Dџ'<N/9 ̙\}0Kr6$9V~,= uue"% x]b]d=X|?-s/G@9D~3DKfr#'TJl^P[^53f.@BC8ģǀ%Xnm# ꓧp&}5|,XNObMF 0UwQ�&|;Af"P?f:nr:ߟΦ¢Nj#r~y1%)' _&/ ;ڄn| $w u9g)Ga#K"ī Yhtl]T(7au@f|ZI}BjMeb!:YX`]+T]ձDG*p +9x?r|߃Ej*jQ6򬌍#'ڢ1(3R-QC L#ݔ_'tgp!ULzZ F CeĐ1<?$>lG'qYRTlKq& C,͑wH<1[ -^L|ac^Lte-@Q@ b*v[yG;:7}h{"⹊VxZND<ϝCR髑W>"±0xå#xbL}oXw,q`+ƊTvm[˄ SWmgToy)KX&#:S? =^Zc<& WZʧmSؒexp]քrwiIiXf}2 Xu;qȟr 'MrrXR]u%:l!XZ\@Oċ0^{`rОsKN,v}?51oN |-2 ~ɀFgT2_2 3!'͹IrBL-ݽr5L\{=* d,Eԓg<9nQ fHW `Bst�HASfy[D8@WG|K" ZB7ͥKl̃FQ=؉02>y', s%;!*TA~v,ӵΫ 0oh\ hӳU."ϋ(4Ǐ_cDL n=G9tͨo6݇\1m)iu#OK=<7yEiLԜ HwO؆՛ieEcn.FxTha[eȣ՚C֢١ipY K[H7RaY.?V)I=&>L1u&=2&9KtQqCA">f̭+X 슝MmU]hO$J9q "3m+^v/&SG_lj ћgcTxwdaAh4=#D]6хӹW }:%[<5S0G Σ Z]j¶SdR7SE٥Cc}-�/k1}@' *˹I`.e .sac9l?X~ 3{&L7o$Ob}HQb.Ǡ_be֐s(Z+x;H L\#dϽ*$dh2|u?=N)q? IKqm$.8E&fLd;p)}]|Pbݳܲ7%:F.xA'Jؼaįɠ +_4אHj",L!aWЄf|<,�dgx->qef7% -t[EJc ҵ'_5fg*WGq\GfʾnU˺�;^SI OCv1 >zjO)-M1w8ELqEԅ!ec'}n�M}c$zkqą@s4}w9p 3dP)9F.5Ǎ2˙:h4"UFIvрyNZ! A߸[ ߤ�anH+ƏMƘ۠@E_D{7Q^&EߟwY!qaoϬgúͥTP6{X 09\>ҏuy bw&1 V3+LV&f17aO)0UIO�ʡI.7v_T3@hyGvԫD @p`we?y(y }6ܼU T|i&7C3<~lZU9ʡW-2\%ȨO>\&1aI7lI,nhBsG.%N#^X\'+?z8aG7~rdif &=_FtWD8Z]ӅJk*5e6E5 WC]|pu81;.' ~''@߽є(89xbfA>u{P*h?JĵoUH{*U޷Sq""5O/:5k{,e-ߍ+Qr }kqh$erR'UNQ.'ee0,zˆ͑prOa ؚ[VqW^c; 4RLJS)(L6?>A~W,h 3uc*H*9uK44x=tύHv!&Nsu*DK9}0aoѠ_Z$7^I*!V$-\!%0%fb yJDŽG.[A8pK%r�#3rt9|\N˔*V)̘fsZ-kzLa栰/>.&.a'i8{E|U"' Iåb"`FT9m$˩#77Ǘɨ,:I˭ ֜k;3E~G rEfsr=y`:C7QI3 <L: Xh&% #jHof){'i ]zIÄq0n}?"DC]96Z H|٪N[ ]8B1kmװȆ;a%~[~K'u ,C{ÕiǦ~<FTܞCac;+|UTKxA#-\4gS{ྐྵx( ùl"\woƞgM̽PƯ\o -8Dj [ւ]nv91v$X5lXt{!sSbn9#2@]Y6(ظGW vV[XGRpG[%Nghh|6W,X,w=Ydžˆ{`@+8#6m g2U'82~sκ(qw#ѝ~~:{ʸE-5E _~tx,|=\lcs\Msg"xX\6^3WR̚{.0e=\%:(*n>֪6S_pVj8؍Ƃ ea w쿏V ݗYP:^ΌXRMxNq]H濾ov$̧@ywų/'$ѸtYX>Zk-Ruzf#"�V} 4PGW)_)YOZݒkúژL؋G6iG*!CulsnemԫLҲ>ˣGlw9 Mͺ: Ds'fcߕ<;}}I$TL!ϝFXEzB8Tta_qi;+5}~1Ձ?u7 mw_##b/qQ 魼S/M~Lc|qH'gFSl.n_u4zϢm|cH/XV\mKo ɣK]TK'}{uuF?Y}9#D8HKj\Mz $d<8RBQ5䶙C;Gq"f<x %.b}xv\62EA 6[fє `V%u&!6Ό|$;N1`AX%>{\aKSt6Em4ꮰ7ZyO&H͌ mKF+O D焽lf R'gmiKh5% ;#OfTO:qq/R7N,-!K@~{I�/h'!vP_9S.BV0R8ƻx;j\lnܕ VJWe;[Gȉ\+~~:q ҫ ]^Xv{3./ߌ-f�#tJvY( d/qdrToq+AԨ&]E3U~DFgW26hTCG>A`C̼8KE8s EoɦE-$);tS[\x\3ty5iӟfgbKmGhUznq"eONa6", %M\�T} aUVTf#^ɀ=W!Rn/2�.Zv&a|orow뭑-i`l/3ё#E{+1eoaJ4~+{"9L>UB^@"~[6ϐ >ĘL=5}Wp3uE]nIfM#6H(\yp|4jlUO|d i FV0:ߓy\ۊ6SPīO4&;7Vl38r5+<μIKDq UIj/)aGNJ63xQց÷2w.a<Zqd�W'fTsq{;D; %rقy.qv"qفFb{jK=#PꞜ RX'kN+C"`Yr匱.%?'VtW^xl:tm #D1$ d2,[<zr wJ%ܚQ O(!�Gp&OJ9~ ;/\.hlJ]T#[{0|1;=9AjڒsOe IחyoqzcG~0-*}o-�j0jy[O2F <>U�M ǶK;HX_y!>I4@XѸʅʥteܛa|=,.K&zqk^><ՏG[u-ex柙!8AAZj!n_$15䪫 ONз?rVdzTG^|E\vNW$M-w�Yl ;K@hq# C2i[S#6ߡS`[ |fs;W3HH S xvE/Rʕbbr^t- EzNxRg�&//ϛ0ddc.Z|!gR3( +[`Z }<EP{md-s9{ġ {;:+.}SpHS[ { a\V< :\)zˏ?:2lP;B_6)U.g-۟M'/Sy| +N=h,Q2׵ n;ܳ%ӘGRzE\ ܎pkOF{,3(a?(KC p#5RgnD$`?IK&"כk!=cvNhX 9|G')|u@< We#!7Jۋ"^TOm7ۼ3mezS:CyV#cqyrȮy>T|puhE;(X6?C` K8-OlpC~27CVhL{[vQ]樯d?2e1c?Pvd^DXB|5{:.|tJ<Tpi2Oq=xg!7O%VX:!Y הu= כb,#<[y=J~->Ś2֤~t<xFw[3ؔ66>WYDV>-n`jqg*xc=�fL߄]yN1OΩ`MYG6K}J "$̛EH~?To=H5rKYȬ!zx}1SvXKh2&kpSw߫*-ĐwٛxrKvv9 Vo^2''^V~Am:y{6-&b?h]؝ zjþm0QdYKacp&eIMBԬiDp7s(ȕ8&ʡ{3|^hH}p-Gu^p<K.aervCC*# p>;w?ZQb{_|X9Z/`t$pHҞh.%@2"Ov(|j)}7ё7;,nASɿ0U.{_'kقInx+TM.IXnYEגZ3G(Oq FѤ# sal_Uon�|[1ٹYH.<Vu8%,.&:gpz8+-D߈||ʏ\+EJ6*#e찄]Ax4r lL0~=L";e~꘯3V 았cEsXCFg 9$ tZ&)Lj }T“! d;W?|fص7'ag=9,A|#xz`8"?Yڋ4PՌm`ܡ^lCqsvȳF~p*j_n3.s6uUÃ(ف�JQ*7DE*qa;$4kS}S)F[5Z߫W@ۻ.⻇};9/^)Fx/^Rc}zge[uc<}V*UŨW2F9גqp`lf n΅'V.:/D7p;ˌC?Ub .H]<dƳIRȌXz:!lAsYlc!WΚ;aWH[݋i9_J_?ɾRM(z;^%ۈt 8l]҄S7mk"67cb #sE{dl"5}~wZN@/t6*J`.L?[SPNoEd%!b G6Sb"vF(ʇ*WW!X\2߷QAx?qOmn"`|cY>OmǷ6Oh³+34WC+ hK`,[z8PNL &RP8v9G)ĊoFuIJ'zƛf&00xxpl %e?P\/2MJ'\JFt~%0I] >a_/iH{BY]Q猄}[HM+9y3.ŸkpaUP*~Q, k *7g3sh/Y\WLW(K+E{+Q.YSD& /\rOGeL"L $֑9`nV /f1>2|{~!*$+[Ą' +$\1YK/Y2YpH _~& k&Eq Pb?)*1x#d<r�'=dmJ nJ!pA孶G s<=(Nv\h S/O!ϸD^'/YJČv}E&Xfgrj{>5-ջbחM;+=C=qx3WN gTdT9'i*xzK#v'rN<zI$ߣk`YW\t;4Ǔ2pD*as6(\<^Nh&s=ϰ7dsI\r蔕|gK`=WX]*/nR)kV $n ˊ&rw~ƃ Aޒ۸;2O$6Gp>w#7Y~2wQBxbYHai߯=#<yO3;0}20)3VӢ H-_K-)tQ7y1:f&T^OÏH_}@z(<*x$[+轕\>^u ߊ:N=Ir'9􇭐=|muc%K'y0VgzK; 8W8>ԓ0a]:dO?ǂ>\ڦm+i'~I|ٍ>R_hKJ8;s.SV)UG.5miK9e,ٌw.fQ1n̺/<!.iQ/py|^?mT`ƭitZJ iH `loX[%#HLK/$?a"9e<{PLd:~,>XJW۹�SԹU{ь[9%v"z\pTj'ǶmLix{AFG!�t8&\ aG;=y_ӹ+}؀U,ӆkcC7Vz\cx*$̷@WAߔ-(yp5HaIiXe.~R:RYK&!*Uǣ==sq>ĝ1׫A6~К}SYq46oK'^\̈+.dzñ7<!64=o<UML/GD z.1f+W3yp++9ם n[E20jF3<T2/V'ߠFPotkWѳ頣{ilq`lTnM hH{ mI2σqL#0dV<T-F[7KdIw''a 46s: t?):H}S'i Su0X,J kEڪDI%jnH hvT4 +Ӟߌ18)8%|6!T:gYJKѸ~,[L@n/ѹl"jxHT|aKw1nD,;=>s-Èg*C`;e)~I#Qs&Z&>4 {y4 ) 2|y ADhD[;neH7s5h^b~ji l ؝#\XoAG+LYt-5~8d&|c .Q"IIɰnflPK\pvBO5̓5xkۑ. 6A{پ( 6`ŵy]tg|>!]<%<KV:6?(c|\Ϗ% Z1Hm,3:ʫǂ7kH} @JBpN ath$uP>TRƄZ*:&\̂Yɒ]uYZI6x O۩I4գGrDEx~6ɑ'(xzϞN&bՅsI _*\C2 ۗ1y?^87itENg/�޼5M{D؁ԇID=?N_ڏz& ֎HUAww$q@`.~EADpB':>kO{1 ^ty.t~V@ �z%z1G= Zm6�Eq%\Sh6awo6 NgT@Ay8E{AKwϴ*3W6-,\-Cr̽cs >\\;fa۪Up:BzKsO J).i6?g Bcbf`*7k צ4:Jum‚_qn \HjU>Nd*u`,yHb12]Y&BF"|Sw$KU]ʷI ikt%,Vrk. iAQ#kӞY\Tg)f/~ .729嗅׍y|{˛z^lkpͮztȄ_`g3a\ >0o瓊o">ݾxv?ers!I7o0e5jnX`z#0|6NMBmQ Z*gzlSYg<<fAٽd_@Qmf\f`�6{vߊ̆w|qxՐ Vkf sw{ϫ>Dnׇ•:Qlq&}.MYJ\;*vOD^_Ϫ^ 3tp|+>} d-#v5h\;8TI5l쓍?Hz 0r&3 {\yjRx?J=/XF+%9ý|M;:{k*%9EW~;6eA<nk35_3pXN,z6ed!66BI'H�R uÜ<˔sW|$&e ؾv?Hz8жYKyOb Tk&߉O &\f<WXwRJM+X$ U-,Qy?uZZwT8qA1xo?|3JfeޱB$66792ٽxtccrjn sza7lE3Cc;:EY,�˸m7-]9 S{,) eG%:u$9 ݛ[C-?V)b1S*W3ПW!¿H kCd а &;b# =.^,Od:ar5mF8[ q\1PMҭlWX8EV\ 'ǯzވC.c4$U W6e99LR0? x _?)]M8m<?؞Ä!5PzwQ9剧w?@wG͟+Ag.?8fQn~_cbU1a̱c(++2+4=`:-cg]'|<JG즶4eK:L3h0\|S|]3o#> K:W\Xm9?iOK9"Kp̻3/HJ,rh7)0v2xϤk]쯕հi sk" 67ٻ#-M鷙4,$kn ۰: Ǟ H~bY7*#Rv^A?-5DسZjk|zV]Rk{!gE!c-e~2Rq[ H z.{MoI3Ͱ>jOpaވlu̱5 . 7oJDWM )i[`ڃ+o 3T΄"Jh.N?ekN/3K'8~m2"էd $XxыރYQU?mD.^L/ψ俷q]c3+7GF.3U~Z:̡"~76mDž I^B}NfT~³yƥ T":cl\C&/ˮr<H.v\W2uur)~XQ-_p(EXsLVoyV0B+[.û[zs=A33yǶD,k |O`ʴ4.~:":晿/v3S 7 FySl:X`*(?]sqSg223ΓƉ?h%n!Fz̀2IɰoeIv1Ǵ׸p*ޜXy S`F,%67~TZÉG H.7O_|AET~oDSۄĂ7ώ .T;{EMgPZsظYx}rs7 b�랢"kP}%Wt!_|,+Ncܙ܃DAcP;“Si%W e#ށlWkDvKB3<$lQ|Pf':!NO?GXW'Ϗ8n{|HrGمT),\{O)͝w8Pˑ=5Y}rwkmi;ͬcHyFo9h!RɦJ 62hbw?2+e<˘aeRgY"pl,sy cCG? S\rkM;ed[%WœkJb [;V.⳯i3(+$סȂ:\Ի _Te[@]qP QqyQ: *'P'[_>`]1<ί,g1*_S:\鹚R¬GLߤA~ ?vެ9j[\>|-f5ZZvΪ*JSPr*&ɾch Xq2TdlPˢP(y[pT3ty}Sw sebӛ"w3ig_0/uD^TKi`dXBXݜKjI&LMqH5jMk"`Exyӆ\SoŪ/� ƪRvL.&?Fjf OJ†hWʘ@mB'bP on/a/L(yևy@.k(ڍl#Ǧφ+NQA26h#3_&vӽgx|?L!lk Qy_|y`'=U]75is4c~_bPک/}DpL`l6%fS}6% q�qg61 K=ט/) ?=YJv/?iCY<ş8Kֱͼ hw`<iZh6,/ι%\zARvTuV4ŝ,ëU 1)w ~z)?ڊ4Vw9c :L"ojDDWVvrn�(q%QqיIϨdMst!3""'_oQzR@؋G`z.KCL'Ob Wx:<u ƽݡqe͐$O>k,%Q&gF!h8- eI h9_d,BO)Jb`=n첢m>aK|tdƀfW\{~uݫ5;۷sE]TfN{-i8#gGV0౿xS7ё2] _Ԙ_2D }svkh|0luKK!Z# |f˺Y.`2l*8Jm[nitpxprG+/"MEz0p#E۪ӑ{~9g/:ܮVJF]Lhw>4:Jy6‚Ws<q-eQbZXst:|-8XX_w\ܟ{@"oz^MbOrenlɦwvN0h _b>xgng =:QYőqxI)p5;ϝyb_}c !gٕ(^&mXë!\y598'K'2 kqʅޗqo?G'' ꦤnJ0ugJ~cnnឃ`c @a;RdIV<py2vtTϱDchͬέoUHݴmt*|!`mۏ\hRvvSwNIxi5WgpOB/SNs {%=^x&2˪'<zd_hg29Z&ٟbO6o|Yq9Wt0!74͎aWnTWrQww ډ@cc87Pnϓ~g,[+b-gDM﹔S)"kkwdiU:Lo] &WYCJz@)> $3ZԵpPX1O㌤w<u$V ʓL-8,fUV+k2gGtş o_ qY"!lat*}|?i :{VÏ)lmfԷ+lo xeЀ6#=M<MwY!Y̏gQ?ԧ$s{LaѕlRYj[Q8v7oNbn-`G/<gZ4E'fxd3z |Fnf[mܩ#Yh]L Wb kau~(_ AJpe^}QI^$52lY?rJThE6߭f WW/󖅗W(On<>u`FHf78՘\3XWw# ?BČ1H<$xj 0x)8}N |jnALlNR̟1hiu kkF:fau[ŝb(>E5p }Q/g<Tz1?fnBTh 9[{b[iٳѕؓzC1-apy(7$go}ZBbضZՆ0QxuOӿ˩eOߤ$ڑ ''&u$:K�t*ٲ 5=̂nRV7K4nߕO.>RGN g2c@،h>(}~/qmy,1΄$DrI=*`.PaQ%"9~=lI6wX4hVr7xNhu x +k ~]6uK=P|ijvx}ZPK/y?\7:;9q/m:cz}0[W_v sW"C#:/k(N|) G3GE1r oS嵒Q?�R=SM`ۃ0o* v[2Czu0QH_ {\tj{`X=*AutL70lDSm0DP|"w=GfdZsAˡ6K;'Rlo_>fQr847"<D/L^E|k5z|o\,>uD.$W̓O^;.7DbR=cNC-Z@\ZN|x}H;i&eV/]44՟H\ﴰڏXy .*ЪQNLX>|_AǵgNcwאo0‚;ȖA\.қ?vH\ Owvh 8Ea;eH=ue XN 0aOvEPW={Q;CJN@ *N7xϻGWDHZmA4Y ;u!xF'[|={g%;~/" Gwu2Q|AXKz*Tv ESH^+MgZNW}1|1#>iM&Vh]%p^/޻2t3Wy,݉7 "E3`[tB/[=G8Rs`>{oc ڄ;+uo.x۵^~GL0P!ǃ�8jk+}24u~}<SS=nD^^__ +o?'; Gqus۟}B6QJ(AEʈQ*Pi Y#wxzNw!={t:ao%;u^?aYxaoV]~;O ;He5raM ܟIfsGp%~N Vn$ӞQSF-}*w”p_tN$�1n g=bkn?�.ېe;l fBLP4Q9چh;it% ogd !UNɦN+͸pTڻ~%bdsވy0!y*v3;oO"{~�WGj-'9ĕ̼Xr[ͥW % 3M0E&}Q͎ނlH5o}+ZLbkGتw(1Pʭ"X&L9eዸ`yir[\jA!7Ga=g [|#ˈpJ_>ά+ī>,M/왂7.b^/ |NYv]ZDXЋ;^;_VsT^bjmCҠGc 1 NƘ)ίP7}pK<ӂ1%olNؗI%yjGtC[y'TRv=? {<G.\mM'J?2y~c?VNN>rjڦҍܣK_VڋI@ pO0DvCy9|hTJ{WIʤ5ssE6}n�?f r2=<ôܢ->Ϫ'"ZCxLV1Do vVrv͜Jz =Qs7<z `WldCĢ[ f]*ʕ7CRs~ SgOq+!Wp0r "u3i7 ٿN3F;&ykӘ9A77RUnZfGgŗ,'.>`9ĭV|Mێ#&O!FJQh4E)n=k͟Lvg_3K)OJ`}3!wl)#f2H7'OeW9;9?'%9YG7{YCJF7fd:aWظ#ɔN(n~vU@e"~q?fK!.$ @JvO/(M o3y *n gxJ Nb Dɑ0ENOÍہ3o(vN(Vy?igoE68ʮcJ@ޗÓͫ@3&Q¢\iQ[)W{yQȁmh:I$eȖiw\M<{5=ĥT7c:OY=rط*:dTCYDp|BWoS9pܞFWdXFޒ݇h9{йڪ՚$49K('۴^PIS>ưl8>BvVY!fۢL)L3RބsL>vx�=CeTb6 LJUbtM6+q!@t)J`Q*LVNT2\PҢuy 5윞~$Pѡ"3v'l0Vvgi6%סZ^U jƳUjyD2\ Pmid›i?_8gu.MxaA?$SaؑH|U [?頔 [`e0X,%v'jط5E\H\�-ė䭈>[/|"A3ワS9T*FYO }1Zzin'R2RQ? ,CӇCپ6mtrݟ>Sh]-hҫC|b S!>ZO%3}gg*Vv,m 2J3ltd'5C|sH㬮Y?!я>\dnE$WOsw+tP[|98J[oY)l5XkxIB+iEQ? `z&LMlƼ./3d ل_i K<\P= ]bǐђCvrzٴa#hG%  PjQ3֧+t`i5f QVj _=\(Ǵ1v?Ak(e,mdVM/R--wcٚWdh Wgw?f7~ȴavv:D^`4p R]3q]U(|՟ $cN}],H3;7#ߢ'LŊ4u#㵐уT<{?iؾ}>s[ƄH T?O8bq3H]kswFB1*Lgv ɡ'ҧ -t(|˶‚$i6©5%^0MGm\p1Emq�=%ͦvO-s||4y}13z03"kz_{>T(ܯ)%%z~"e]%xaJ $"5"Gl2{><1#9q1R=\ {-&dQ.iw nLO}}mo*yO4KŸDIk>]0ްbkA*aKLBgׂPz0\ɹK'H젓y|K?hDF݅Ts1xa5/A|q*u[{7-5T�(&^>^6'<Y*/FM]i],f%Sp߅G{> Dwl5%%&}u o&Xʒz ƵϨLip8sA^l =DFg9a x:G*¥qjpeA!i sw^F vS'#*2=#Oȹό$6fuEhYp8)l@sOC2z-+.A{a^!~%VR� {vq^*M2?nܫi0YE?6 I2b {(1o_@xJk Lv]ߍW0-E5_я!ٌcA EO.{b6쥕I-bEM ͜_%H>BO%$@3d_a`0ӌagcY&vO97M|Kࣕc; H8j[{~w).qB ĆčO<!Chؖ:B8Wƶ}BjX%'ڱ [ WnñkZDis.#Q:Ix7A,®`YCPdFwdm:IHg__ ixN4C]._# .Ry#dzңZѷ옿0=w*IuFl ֬]ޑ:)L## df<R XmcN%~!' SH'AK”g4ٿ%'S/#fapD/#'t-}9CGݹ9T  }aLCЋ9':aw^cIr\;qr S1R7Di 6F3OD,%!u]ت*cvl6Rd˫Gϟ7|#+1rU{ vYbɩ9[كU2yrNy۴E}F$iCƭ5f< A~5yʔVvJJGalғ')qtw~HcDN3ט/}YNio\ÛDb;3.s#px B I»@rU60{2iQph%AҔc[[dlK1-Ӯ;?p"dX0O @N_6O\^[3ZEm_ ,'^D<LfM:Г%:lO<1_ _k2m O#N; 0f\q}51%ԾbY:�7}`z,>]+BM+>p' ?"kwoq̐;_= T'i=:s7y>^~Td2@chO˯0/R'68!G S9A4QէmDKfs% Z4as/R+N;p 81nrt);lp}(g#OŞE4f}LRq[o8}0lPYtnjWS&b![fᇬϰa2Vlan~)?x|)A9Us3Nks~XjnθGnhl.@a*TnH̷%s�6+sY:i؇4*NnI~vϴ-{AQ> n<-,{M.vľʱ?=C0S1CNk->?Xlx09/3; U K83 TdDtudjFa!qz9Jj@h®:7Spx4] Ng0MA8~[泌u6/"৏JP/Uݷ Fq/xLf$:`5&K/# qy>zugO|TcW-3%[|;`4f5ZY)*tjv*q{{VG Y:wA.j^q+MhuOEvi\|;YAY)UqbL`Lt/ͧ8GYiߞ_M W< v'! Ll'<{@]�{2ӓ:^N"ou�͠6m ;u& |A*v&g }=E,v]̢tUՇ cnELD"׻J 8ґ-0J9>g -rS=|1~p([S*BtGOω@LUGhC(W̋p\WW<s"C{& :`{1`7YS qaIۢD]]BB8 `kfQ Pɜtb]Ftp"5~5F9"1}U ݎlmAw{V#02x?5F+Qul=<05-D^;.+኉y"^W6+- SARɡebMçTn@ 0><ONm؋(n 4&w*v3vs xMN*ϒ:ٶV;%Jy.ܺx.Z\j uf�! fLvBdH͹!#oYD9ѩZjTD6*e>a<?mv [l@P}3iYöլ$:g%u#~U q[#I+e~\|B -5!P-}ݲỰ7q?rgMSI8Ce:f!W͸ۢd6NaZ."aXU6mf;3y+L?r9|lWcR꒧OdS^ߨ隬tr*qgzv(31_z\$()dP|yUq}:N;0*PJp2v{"Jc>'!Vid�2Ig뺐uJ~G.VB>&1W]/C ȣRTu vYh g:3J7;H'120b$C/G`ڂnUqAUJC:Cfܲ"Hok D,-Y6enVV{{PVN mN5Cke2##+=|NpUH4Q᝽kTb{Z2ցk'LY^@`BN,:*oILe`'lD%x@C҂%L50n|/V"?Y9,4TbOCqw+M*#`E7\5À=3%cUiσ?[pC ,a1[ >f^sJOsΑ*8ݢJ0ƺ\je/kXѮ˧ Rгp{E/?>r 9]V5ffRDՋg=d1pxZ]jKw!F3aC<|9D߶B ?gi*ljfv-= j4ڗxv&i/ oi9WFpwwyoFMv?JkIW,&><J%'2{AXHü^. K*  fmg(<FxԜYj(p a"Mq,<?ePjgWo=dT3pA9K_Y~D5ɫֶkp:^!!d5{0lݏ:JAHs! %hob8>!YQ~ <Z.eH*NQ(fy%D=b<{!s VaTfs F;cO'xK2=_fL?/ԣd;& 4Q~@>5AūB#p# w?_.?0&AI 4fpzoX< <ZB鉸z-[:Agz�WZ[3?_V߈?F EH”l5mceh$r36 ?Wm2T fCxٳc.(VQ3kq4?41YLKD~utH I|k.n JfԫLFww?5o?fZ )/yNi@Z&ڊ㏷a(v<{oS7 LGu-JkIJjp,YG%rj8nzTF#}9HZp?Hy= 8P7[K;5vxRE? K`M''{q-rlӡք^} v^w=Z\V àV8>W{o둫ׂ(oj|h4$O6<~g;ά/\ͽM51)K?8�x|tQC;ևBo7ν2*7q/bϵu~8}@~}Ey]:T^ag]/sO{zO!*mq|HQ7:İ O<NgbVA\&v^H<Rh'V/䲦'?1AVVt Q9jK|%l8'sDۍǜohY.~,蕐C}J:I?0pBN =_؞3av JlFN* {t~+ wAͺM2lKn u?ݺ}5d)‹׺mH#̶7gZ 5u`/,ȁ7HV:]ЇƎ < '\m=FXTt&V6!tZG;QTrkT'W]6џρ9"䣴nlYdg}~xBh\Veow@G[ȐrOӰH#u~2X3.ɮ QId+$Odr7 r%e(5IsF"ƞD'ít$?://A8cٹ]z�-OGՁ(`iK$2&Su(F 1x p:=KY5&nQeh9ci7h/@_p#¼K#@k&TBɢO8OU[[ł9kiS|5�/ 5_mt�c9&ovsȒM 6@==E]T.6#}HH|bu=ڰ(~r#d A*`IUFEcpBy~YwcB%xm\ 9[ȋ6ӏ%~rV;Gpmzv7v.i#!xolmpC>Eh; RQ,aJ W_W 16Y+CD 6V`@g/Y =''eًטN_ I#Lg|q:.RD2 b~1;T BQU[Q<cN3 8UK`WmVcRPѓdT(m?,8tBT*SnM;~m@fqD:h<O )aу.4YWvv#%.; [bߺd>x;ixL(ǽKa;c%0[j#281 =3H�_Y=[TF<Rڠ5wC3^j".MǹX-lD MKyvdD˂_CnkKZyQX�C:26.SG- |7P)'c?r(Nc@KKuIlw)5Ƒdb\�LCMΞL8sM/|2!\w["Ӛ^5Vv s;djE<IO<G M'`=F@p,-;<Z2*/f<ڋA_r}x~(};jT|La(G1Ha;hl }#Qw=rߝC7+�wrD~2!B-xAﶟ@vUr Asn 0RSZmQ4iDw|(�\JQ]ƈvvİ~e24ا?S.=1Q.,λlCgPۿ-#Qq~@tKu C8"T|=h_86Y?.";S~oexm,G9e ª,+ rhSL@0c:r֠#j[hfDΐgO)%e.Cl5Ϣ% w{k{fqd}<{"1Zg0 FI s[g-u?vGy<2Op@ HD�tbrzCīUR!3>ʴ5/QŝN*G"?7RhaS1|.3[ļ#{٘M^nb:& -J؇HP ^jzdD#6$13~[2-c7dF_yC^ؖ7Rs5$ gp}H&g4+JC7)чizT!=,R+&7O0g8lM~U+ÄrJON&L?Egi^6AVϊ\,J2|Z/Ŝ?GH:s ՠHYs^xZg}u;-q 5x~U7ӖGl@~\cLݬX!w~\9z 1;Mx&̍3涬eY4RoP%R6ח%sGX,!z".eLf`RCx* l"?yrSRD\HBHL<P7}.OӘ&tXʟT$0Bl4@&9 _BQehE8MUrK]DnPGIb;d86=~={례Krm9m+d. 鄡piYq#ﱦ=:n<@�1uuKdZM u9uQʥuCTf *~J+B4mS_};06P Vg-9Ms5p=rvIhb(tc,ٔU0y]?O* ;t>R>v@%[#OT֐,Nw ڸJ~�͆'5^;y*u1\]l^&2ـgWqylm -mCuu?*3\4}Χ :v7ܿsܔAPF֥|۾u5~;H4~1$E=YQ*L~ ]FYݳB�᭟G!=b=bc<@h|1,Qd *ozh\,kY[r1l[ !/Fʞ<r[pOHz l!2m^gMŊρ$VA [(`B\VY?IDe;,1q7vb0șnB=pm{@Nm|zwl5$rax] %+JvԀ-A-Vg6l}H~|~!ܯU@Ѡ34)ܓۄb)>H[LV"ju4z̞= ;ӯSX-ؗ3WP:<<Ymr39"ZR5&c(ߛ3uǸM);H@]B ,؇)jzG̷y8Cw<"|8r;xZ(F~AZ�<ۈ}=߸ =f6æ-`i(_G_lv@kh:"Fw *ow1q.}Up'(V*}`m^:aqTMMT,^u@Wh/&/}="Pߎks3ϊ/ 4}z/FawϏR}Uo쌭bf5w FR\ 8SvP=%ct(ԳGI2 <0`c k#EK!v|d֏FEv.eeroeStcCVBtoTU`oXNݫ?jCt{Gbsĕ=V?jY4)p |%݈!laJ~|ߜ>93I4|kD޿T@_e{'1S2\+y,#Px c<\Y0�w 1-?ȶWWخ#p̨d^ꡤ 3R'+g ^wc K�M=+76mdJbWyTIǜ1'�ƩޯÒ-eLsܲq+l1<BL ׊u$۲IT=Cx\J{ u#dK2=9i _Tl d[U|{v 'v sj.ʶ w+1F&GP(TخO0ke3-|㰘i 5$+m6IZ˜bOm*15H-_VynD+IM|[c[6TWv+ɰğ FוK5Vc,a\v&+ulWDe'3}x[lZ${+.:F'Au?*ndL%,&:JЃH]]~*5ҡS~⓵S+AR^㬂Ns疄̪.6 g ?GqC+JJّgLU 9:9ڏA6-BK920]o50k49kK[=VV3g _A̾ .LǿbnRA# ݒG3w;|?D7T#=eP<Pp TA H‘9v71ROp\6$ \Pw$2ǎIWmŅ},#jjl+";VOaB9 Lqfʚ鎸,ꮅ<HW#7 }_n.FI ؁#x EJ> <-2 wqwb*/ ެ1XHxknV3R\B>z&AN-U^5zu! ~ g<2gTr_D2: <u ] 6^yx5ꚅAR 0I Spݒxt|38=E+wЙ;G` 86esɇh l%;l9{{bo#SP__MnHp2oW;}$7~O&A:ȵ3qB zȁqb+jQp2[ELX !t8|80BH83#x6s$nP }~iwqWq[eݧ~0OUV‡FRGSKp:bC0̔\{McqVی(݄x+y 6)`O͔90tC0g8] vsu=f.8b> '$ybu \7aqpq*8܈s]Mg~}HKU3~4Ò حAT}ow`i&nQ OpKT0Hg1ma̾}0r36'[܉wa4R"w&�HkndP4mg7^ƂJ?pKR믘^N3=ibj%&Re͡cU$έ<-}Ϧ;j¾?F gU'䈻0&niբ.S0)T uziCmgq',5bȥv&t&صhc(s";Jp\+i ]-GzuF$~I{ZtGZ?gPM7Mkp2:FP{`2T.77 ɸG!halh{aZjldӜ{D+ӗ!KLnG+f|?ӽN]w'ȓw#[g0Vrӯy|ĺ!1ZՍ]g6mF)5Ω^De#;k8FM*@Ϡ ;9ɉmopo6zF<mD8u**P0KóB+[EVcGUr,~0 ;C%+ռjzuƩX"h8|1 'xMDz0r [5M؞9tVY2n+p?nj߉5l6 4b.VmL d*✋,9lnüh8L&3ǀ:�+4)JG8T|rpLph�F\e [v^@qZ'y=pu}R䲏E*:lƫGȣ_ o=OmC^1AYeݛ8=%�O#y,/ZLn,rz.~,;a]џG樗X|;՛}z(XߋhgUYTiM$R|cؘ?԰B/ĵ{Ģm/8m32:͜ AK;h'|#3nH<Dוglcȏ7̯E@`o5Rs<y1nbG~.r$Bk1 zgXrOb~76b64"Ƌ^ ׺@>;пT+jF7?97:=M-E eO7qyr̴EJdD ~ݹgZdFW8XsxYzKX i%m`A�=<|zC=9ߌ.߸N ljnEnd<cR7%Eb7Q@xdŅĢB5fPo_僽V;=bT̯84 1#-wq^,$-!{ P/L$Qp\;6? ʯ qUV<6�jH ΄^8#?iu)᫁<I ;x~`#ٿc%5haiJT"O(0IbϬ;]*JX.Y ;yR<(~'eJ<)IK~7*0|s8خa U+Gm`J-bF;d{<96;[?qPCEN;6`-DFpQ^[n.yӐZ\g .A9]:=xs~)[MlfG<'Y+kʺ=H,wFNqb.ɈN{Fb6V".3%7jDGIzϑӞoo~+d. ߡHx`ruX=7bmVJNڱzd^0X6YKV%Ft2W;a%uu<i_4l<B gnk#`W)_ lyTLV].h'Fh\I~-.P>B/]DT /|OD?85Q2qaIaYW6GѸ~)LXlKׯ+{4ZPNq&nc73vA4JqəuCD*f>r."g". Ki/X<*W MDsm|+mYr8-Zו`.%Z(㎯75V7s('B*`<Qp%Ld̏WfAEJۖ20+ ؎31Cw']D<OYG^[IO6A6t(&qdYAH& V+[$T,feF fӟL<D MւM#Z…"H1r&2t N&["7&Hudu9L\fT!JøTcX703H _w^C w"�xo5v60mcoƫEJcK.$^O۲;}y^P\:j#6LM|<~e)ao jc/Z~hf}72>aAFW`XC)!)ڮ6u'pS1@ ]:K'U>0E ̠0BD<,l}x ʞ؇^|Dh'ÆY O6!%ȡ*!ěS{$=W "e]R w`.hN.x}-Є=5sz'I>PCRh+}$<tXL:%.MgVha5!bȂ6n"+͎^@>_#I@- g{st5Pκ5S ֔4#6ӚW@-_XF=DZ$i elwRooa:�D6S&1zAFo&EzC e?J/ech[lf*J|'o$S\iA ,>^8n}[qb֜^9]zyx ٿ*̧k;~,`ybtO,Uy�C! fM$¯_ R!=[<jr?;i^RSe8Rug{5a򃴤8HCKZ1�ًTXm�MblGC;.;py�]ĊSOIA$g݄<Ć;iE"&Nz,M]+`BeuB|Kl/XLv ˊD a_QQ1"e{\ZBy{镖n"}D/9>B6Qcqu+pqpB'_7\�{D9p*UT$u΢5ۗ{MpsTT9w+_bQ ۔3lTZ "3RqO4~/c|1{ I#?k/PN0]5 wR42xO}/)^iY�_Q=JW&>Q&KÎQI"P`AVX;ġ4]P kWr]h4sRTeAyJf/)6;zXɤuƈ;$[g 磛?%biPLm6 {(R3Zd)V:3J@{Sp7:5M]KɷLInq&_lQOcrc'l~kFdZ -,&նhWOу)d_fLXqA}F>;ƅNA; -gK}֤^v.9] 5ìIOKvJ7p[N%4`W)L<yO1T pg"¾ wU:9B6p_зjM{ncv"|fo\/5kh$})}YpAe:fJyluG XcM9w%M/;?z,mqQ|=\1УջbW%蒟̉R$COd@ p ٴz=*L/!M@v| 'iUyMһlvH:4<\ p[餭r/x.U%_ND1ٙ0i@$9׋)D]:rm YN(sE�OE蟻bG}v02UEJE/nu)w֟�lD0]گ'Vea+ς1򾪯~,7c70hr"ӯ6Z-i@^_cG-V^٬k%8. >o:ϛ+lMe45�knÌ֪_SK'ڹ-Lu!+m6k4G2ST v1I߉o_g ;,bW<@i_6sɶXͅYVc-s~SG.8Pf#lnf[HUۡ%7EBd ~QKfA3pv.̮H17sfJF,/ / ]CiC󓏁&f�!e7z\G%Bjo(؅[~Ι> +"J7\0L0"n5o=ʚEs)%7Pr Un..oyI_p$~�XӃ:w7ЮH7dW0Q,huxI'FqpWmܓl{$Ыy4%}al@ZW2j!HN7Jp@Zm!OuXӺ,ZS,wq3#ܺy] Ov#QIa:.%{ggo+Os16c4"2%Q<;(qҮ,FkFbͩIe֮@FG."WI}( l>mf[�[#1p>!Фͨm>B }?/~ktζ?IH#r ? MfR+geKS5g3{ord)Ru܆%$v+ALBRFzm{!nx '= �ﯾeBQɪ1fNJu`@<?8!I ; g_e$Enqq>Hդ6(qUR߹~'䎙J?,ٶÙ}0KWc UF3hɈWľ vE[f@@x |G({I*$VZcR }c/Q*ۘg]/~XTJ\HmÌh0E;[w u1DajN⷟u?0G a\Pg4\ ]w jk><X6mqLEDݒ ԝ|HI}?VlA&nޟC(?i+D_X7Rǩ@R&vZC#BrjkS<9B ŁXn+}fIdc Be&8\D{ )'0tHz1;c2 uem L) ܺԇ4ٞVjmQRdADz5U/p9Sh_u<�Z UOqD1Lv-b/{IӬUGrly$qh]w^cSZq<$رӺț}28Dh6NVIl,Vս 'K3뉷Yr: W[ϔ>Gn_c]R2Zi.r_1bI,85 fZ/G[Y]Wg,<t,}Яt#5pقQtn'wE6,$٬@ܟr‹H0tU6%%9pv;[1)wLo"^{k8ܝoÞfdS;ǷUD6G*}}~p=er}{R A܆R`u&\}-TSDp vC7Af.G:Bܫ_ vec.(mE̩|M-j 췄_ԴȲgyۯ w\( <;^6gsS}B-�2V fŎ<)2:40r2tX㈇ &Cdq m>:G}D\B-B# X wҙ: 9ū3+g'>ҁA8'9&gNoRM,(?}T?YtrElzNl tq)-X=w HYז1jȕ3G D#ؕHKBvyͷ2\3Yj׀t<3Oz/u+qt(TO;>drso^NcIʏtmEx>{:/�[އ0kC1m 7<U1)"}mcHjf*VѱZi_ӹNhZ՞֍Aog"q323&,iH s'@t6, E[bQ<]tA8c3MHzwErL _=̯\+w-B&qƔ` <TІ>E8u{pĶS3/ϤDhG7.q�w' >ny "9#0? ~|ڊmlN@agVdGH2թ6ؚVKx<99S4̬TŭJ"H1Ns-Y&9A9'B0"`:J;GAB1҉?`_EKQC<jY>"ņ40:m">*3 s\/qkl7j.v&QM- #%-?iQG}ڐF^HLJ]xU/dbtхl|-O]tX]H1;s(HݽY |sN;88 ?Su AI&r^l#i>3u]:M.Es{?ao)=` V2RnG] m?p'ޔ)i|Q,8+{]g ˿ \[?5Dz\3j,)c?ʠ};w.oK#]�5FךW D�kڃE-B]B 00@A>'J87 FTKs9�]i kdpo7dcl~ـ/36D)8x#UuK/Oc.+K>v-\DnlD' ˀ{({<`ǜP˱O6&Rg8w W7%^cx?ψ:fd;ɘ{Qlo%E&6S 9O{e^W6 ~J+GPF'=nYEe׌EF?I}/ނ-G!| Yt>y>g- ~vtbR݊}} n!Q)XbHoD>_E?B&_OͶ.A/{UemT :RtJ5G$(_hIL'޵1r?H*E/wߥ2:كG~lfX5"i 9*y[CF\Ma^MzM%/J` ni9q~: b2qZJ~G /_OI3Yȱ}qavXK9Lp&g0 K9 &jyD躜Xo2YszΌYg;h*1 nvLan󎘾$`fiN cd@QK9INbz։٨*[: l~I7%`6hབkjݡ3mEeZZ!LC&H�sâg4D%yr Cn!Zuk'[? ċ䗲qe2Y%$ }"/&בi1+-8dVKt9c-3ɂ4-yly9n9Dx*f.6x@qXxW/o2G. K"Iu~ 3+D r=6yp|C$**p[7&U1?Ra@3WG{gO׫":(-\V>ƼZOvP%H9A;g^PӊNCers!byG J'(4}¶Md.XAMԴ~r*9%*'?FRF'“#?Oq3¼O3>T]<|{;n(^]e?A~hV5pgVSn19)ܼ Ç?BhZQPgBF*(mP`n:?l #V|OxE?R_D1̙#N6QS+ۈQ[U <=;tD3~y}&xIgsf'f!t J3A;v'av~R>唊U bN-|}`L6v:RՅ-"L dӹ .2a9@cmS1rPе2fǖ-; b[b(u?.KEjy1X3XWO);}c{>8wXGx\q%7<{m'TāFTtArk|8#l�VŒ]~j+%'Ay5;zCJrdsޔIVA$~? ]R )-vF&wkdYsMR&[lqoQ"�hIaj|   . u)r:,+Mn%tjDpyrSD;|J,5?=:5MCLd3/޴3F'𢝫\Hfnv`W/rNJ,BwZZuh KG~'G`phBx{t`nts5wuѳ잾$p!FnkeK̷ye?<:rHb'RC sK-ԐL+u#=y_9Z0ˡq6K_�xYhwk;+k` hظ7'Kf&D9FJFryTG-YmE.sdZ%(MLKva).} ѡO;Q`_KEoFʃs[f1ᄿeSZ2:0gS֣ow ;f|][;L5ur_s_.E!z%{!~څ"_!n?;=șchCJ"P.|h4>5$ziɸnYH}r Nb[q-MZ9nQX>&#ADZ�RQ(bNMϽL=?WM14az*-{<=k'Qo Cp{qKc'e[n.# h+30eցFn}G5bIsny&Swh?Dvw&WpkZ6J+w3piN�Jr`nKl| uE氓-49SKGJ)`k-<AEMf`6{*ùP�ƋZUB4@DKfuܦ_\C&86L\=y.ъghQ 51MŪƑP]3"nǨZJU-$DF7 �v) TeL=@!z 썜n9@IR7sg|o'a6ze?Km7&XHJ )QFKu yDF O:n`xSq4c35/{ hnZ-R4LCsPv,JTݫh#cK*N+u q4,=>S8Xf g]~u.ugcsp?ǐGg<v�}>oN7r20o-uʄPS&Mak:/_G~DV3b.z!sx)[Ss*cS.ch9O\Hў%tN(س4->zh=}4_햋?@*}n/ v2W*ۙ K{ee%G:qq#8z zK>_[#�ՏBFz<؝t| BuTS/~(U"wt6Us ~ -1<anV/;~<Ry[3ԧtcM;kDsK@?5/N}{5v!U"xq%~  uKv_4]GL@ǩvj9^>c*G/DY>.rwEx~#6}Cj+I6I|"{Q> 'ӣD)9}p|ߦ&Ǜ}˾UV^snr\,]~&:ICKjևc�_*qj0&+ep/K`ms?#?.?D2/Lq>+G]tSp >f|;x?̈́.#gPfS&zy#)x ; ͞-yǥ.R'w 6yNm_n1F,`3Q`bm]`Kky練_ {<^`i^)q h <^ъ^+J6g ugܚ-?"+ý;Xnn|%KnD?7M71e,`-ۅ1"NRG@LJ)d5ڲ?`̏fU5Fy۝�<is܂ze}яh+\tM,"}]E#X3%Js2G䄜,M:x#.MH<CIlܻf0Dq&{m"V.EZ,<@RU+q.'.O3g-X)QԷuÈ%Z[3~%Rd79 32g[rTg d la Tb%Piz&4e5?ŃDz*2?V"+𷻾Owp˔aEL U$OZ|!lEYs$Z ]1"oQ6$cX(VV,9+?s9\0>A]PT:h]E& [%{X<~Г:?1vƮ*3 9Om?ɥ)CԾP8Rs8&$SZ. ^\6L8˅xlZ?'jVW{sқ`e�d1 ;skNĐ#|[B7dޟ{D,"؞sO0gV&pg.!2̊Z"LkI.�>p\_{iLy l[1YDYwvaքb5ٞy4!9čE*Q y@kȈ:H+5u%dcp \/ XP(Df<g߃[{Kbߠ1U@R3ן Sܝt"!6CGȣ`nɓ{Ia̪GX\ :I׬9<2^%BrE쁴l :1}%[#-\9ON:/Ag&B?J $]T/L9<Y t %?~ٞ=a<~�'(=rmFMNPe1<f &7Cs_#M<FI֯tUS|#j!ec u[nԜɞND_긐f[ LxK] %W es9(LB a܉aĴлCpl<y*a<-D/^&=F(Ĝ -acAF$TAk?xz }Y\#eJ7cωrs'ʸ!PLS.�<@9?/wyw劈)τOg#REJFM>\쐹lۄԼF)azq/W,qհfm) Ii>7pc͜(/dC;EQl+([mܗG>8m:(~,c^LZDwgn ƱKFdED/#d1e!y>Tڳ頰)h?v>/n=^ N[:\}bA [^%>Ι]!j⾥?O@⪛&X}DCm%r=* YP@`sՠblR&1xELBLKal 3JKHݟޠ~v#4jͨ8-oNe1MD.kEwgK^2yJN"F7AKn)8'ed L�֦Mtyҥ}ƑIaYy4vw>JwvX=5D8H+7V} Am3̛aU=LnTEAbi3b &q輗]8c -C]…cl.=e3/Efy)[ PPP4bEV)V:ŸppG?ݣWVsi{Ѧ4SSMe{葐ؕA?e&ECjM;GgW,&8rN^pm}!xrk eκ"GS{p'Va÷`WE<dn[GwD,\Ҍ.6S rIu9eA|,X1<GixºU\-$&&: / W@Vu6~/:c=A"ƴB)@H+V<~=絹+W)|vh j.rAhW4`}aظ` yjV:-|o?/<}]"t a*X]1҅glG؈//F9_,5o0Hɋ͔; ͺp[֗O?Κfx4 ohe]y)`jqKJ0u&x]ِsߙ/!t*]ސUc`%IVe2\W뙰h*kKۓQY`ߵlI }DER1'�˾mI'n[%ҳH?S QQ1*R ͝GqX/j1vfQcpe/|>Ib?75ZJ(vGZ[˸YĮ vW8 @d6KܖFzK:YYѥ,*IL(n(!N5z?ĝl ~Nb _̍h*0Ͳ, UOwޛ ,rS9srFGyjܭY<%[@ R� r*YQ[,P`o)㴶8rNi|'p\&U7yu^Id8:xQ9{OzV mU0&7g˶U$3t{zbq :6nȣ~_U: X y ޭT= u>"o=Hy.:4QkYeQ.6C$.WS^؃Da^TJnm'ЋEsab@n ۍDwD$~An/wO31j Fsqu[aX#L2K;hj g&{i4Xk̲n)w=lq32QjH2&y\鷛5ݛ<XIKojic{,ߕ_sVt>U<^4mFU*0mq_o=::#[,IOvܶC@fBR7X>"߻ 4:QXU1j@<1ӕ(C9L?~pl[Ka:m[6&9uNl@p&OL2ֱXvʻ\r'$\bmPl88@މE|Fۺ7L]=9Fp%Z_VRս=ˑl{ 3,8ϭ?!aC䄳{=u ,?ϸ0EX)m aG.ĸ  iY#4"H>ANjqyeD>} CtޥǽRNf?'ߩ$!=>%-8Id=`6b 51Ts=4FĿij=WA7Rc8Xc;7xXE)32Q#ɾHVx'W~ 1ά?_A4eC;Rcm9٢ilMࠡqe>leǓK+?э>\A48d t{1wۋ.wG"& ֜ 8 =)HN"f5ʱPCfǧй,ZB3O,/U,LKe% ')q-(18H*lnz泦YÐ×88<&m>>axeWG{GÅ:a;vF\Ib>t}CP'՜jW5iyKwp8g`?#f 4uwa5wGR_O!Ϧtw/Nj ӡX_.dp˿Й.# `Mmf\RzLkd÷wsr 6(`rY0?ڿ ->JZJ^b1 sn0~<TIzxY9  ^]S  F\�/-ӮOa ]CS[`u`~?NeoL+H۴0m 8׻-ٲN;Ck?. &KЦ%lIw]tdB2=eCH|onYhA\4mګ9& H$xB]3_!U艣D8l;i|IU80*RiD)$ZK'}NoBy_mZe b.1Xx(Uzza+; mFNT1 *')𽳏?V 2Q:pR*y3r0[?hmrx*⇮/o0懬jޙ0>7ivpF}G4eY|9f{}Lf'>&^}{мYn 5$#-PIa ?(׽T?dvS~a/wӛs㔞DMfl<?QΞ^Uo!M$aًOxҋ/Z%߷gTo~`9%c&`ΰ|[ly7_r='"F:5*TkLw]j  |˥B%  {쯏=SKLy;I0<(vv]/_Kq/?y:^bY?ڽ51 +Z>!-4Fn*?)9=D ?7 ?:>\o/ $(vHG/H|<*T5^m |Ɏϰ{h")R?4k~L"?p'f8?i道,t"^M eY>,O/ۿK,p7t-~Pw[|5YY~xЕ/r[!?4'Eoe;v?6=K$|!O? 33g#_,[ CRǫ͞WS|!ڭIJ vEK}9ɷ#T[:?._vy ?'L8[umN4ߛbuƸ d?^d},?hm#!jڅ?MA]u^w@˟?EL{}q8?Xu:='?8iwkgU~]o6,CSgr¦P~`ե99ÏjF~7_71nP6<!?,Tq% ^rv?ƨ?�?"li{z/ HxȆq~HGU;0K?!sh;׽d##k[O/R:Ͱ(ov*CnN}m3O#K1VK9$Dw׻z9viK^b3?(?̿d?,%^`?=;Cu_ͫƏi{d%hޘNfáο]]T[Y6o>aΏ][Z-ꓮY~0|zo{-Ev?܋θOYiyDj\ QhC]I_M{?DZp6}:#b7aU@.wk; K1d*[t!ԝVV=x\O,|B|ڧ,*F[<< -q@;"e@pg}{^wMVVjWN--ٚ|nh7$Mj݇f`]JQ|Dc~anYz "T{۸S&}hwm]j/Wg6hZ,oHIJ4z/]Dt/ucm=|v춡A-~((1l|bh<߷zk?Qö͚|GB~~y_|~d磦ַQW凒G_8g}6[זRs U<m6yؒ@~4wEJD0߫)mTq<w81?S+~UɊL?yUz)W6~@XP'U?'孊j"FC!S[\zͻX j}.~] obpoa74%}mkZYEb{e[\^9?,1ph&?`Ī!>}3K-J?m}OL yykbY109~L#&;߷ 觇26|}z]a~h%cXoc̗YWmm}ă˧5y}n~TRuȝUKo=oH88J /D+ (D?1&ew(8︚7UI)vHR]$$AJHJȪJJ(A{:~//u}>gįZ60Zj{3>>L1ܕcu& ]0ٰhk?O?fcj80%m/)�,L[^Sg{t+* 3jS:-eDtTҒ?kNOBnŷ�=i] ^odx�YX"<jl`-q4>ܹNOYN.[OI45L0j wX@pA7fO�uϷRa̋}J61I4:)5el#w]{w(I`X c3OSf*4&r=/f;^k1D_,FL([-0mBGa`?}}5ΧDEJޢ*̱gbjq{r7;>a'Ў O�In{0''W0ou+0<.{Q_f-u0G+7`/٬+@Wﳾ~XzJ#:1/u֭N3K3*E ؑ ?Dzƍ'[Yop)ZqK*Z�6g: 8/o�ҭʿ0s'2T "}rKp2>C>ܭܲVhܱOk- gtᗚx=xϲ-q .?` w {n@lͦyCE (}l\dM+(vr?kl?oujpCn;Ca`#d`BX朳; gGԁ|~(зWC#uL لg% gQ`*`ָvx:s{>WWB!*j<_sD0nQ ݣto_C%GAtgj7K7+f+uۀ6SٌkL_w99 7/|уI|}B'/pGu#gD }5~?㝞?umiOR\` WXkp{bUxR'WkaoVאU5.p[iuN}yoidB=&0Y<Yiqu&*mE5\caՋCu. 8arllt:O(6QsFonY;D?o;iK"|b*/ZN?rf@@lI N寂G@?lW0?kfӖ=X4ڨf pWT>; }g\溼9/5a{G5;݆`͸l)溅 E.r0WY F՞j svYpm> ?ͦ5,VsR7dxuUO!4Lͫgkij)�fD_60L &K`o88v(+DۿO˅A\ wG5a+.YVOjw'`x;y9M@y9 0.yʘr[6dFŹS>rLV\}h�<_Vcx[} h~X|#sx.%'ƭFچN7.Ҕxn|.Q;R mZp ;/NO�ϸAjY:(]BS�kJo8￱dKe$7ڙmi`ݙ(Fa ,/~[vUSN#'�C)N�{h'afZ8`l5UD! SB{s1l\P8Dا7J:_"؜scîˏ@3 �)W`/IM[B0,ϗY 7U,,UM{ ೎S[fAU`nF 8]'_]y}xU$QZ?P ہ&WmO7]?Z~zZj65|`0-� yZ[("@ .uyIfu`\8(uk> ܚOl̛dká jwCo2Z0yz\2{tFz~`9bm� VzҿUXiH8E}}T w5T89hTƃiYBPs~Ϭbǩ} XkS>ۭ�ft78+ѳ<',v>LӟhL!#‘OO�K$`I9д*Oa.G 54j(˦X�3?Yo=X̏-ϘLpw~`~]7Ϭ,AtyI. _Wa#ۅub"E%;u6)`?r`v=4A*y߂`~[NnXo1g  Ml4]sho {o{sL}�n�յ ;׽=+}zZd3Lbv{hJNXq2o)|Ͼzy]8]}R pTzK37_g۟9x^8|s6;\f#Ж͞N[eYb=-gs0b%.$)|.Ώd֫^rmpdlG.ATgG4ANDA 0?~cD̟"CuCa51ZP_wuG!ɗ ZND<<O;Ur"`";B?pzb<26vYT=xhf7*$v &d=<pih Qb`̛ww"g5ɦ<C;"%SxٸM߀z>_`v3!b9uQqB_XTWr9iݝ6m.pn,q0?o~,( %+=AئTߋm;c(]V(g mܛkuQf`tz2uD"x%;V\]~0fpO`Q7xUf�@aGib>J8K9jj9ϏiUZ MSGI=V=WSh'5k00'W񹹷>0|�}z48 8Jm܆~.f>x8KC~;KG`&26xw~ys]t狻S0U+̗eCkWrX?"# *A,sCd >5wsSsMϛd>z,,u40O>p ͣs0?w(t*g̑ݛ�/̱b#0Y2ٻTWi Å:%pP 'Xj l[:tKpxLI: f9=g:DzZ e87O�Arv. u_�|˩ ?zn/0OX;Ry?vY3~h>N`blX*1}ؿW1L-{&opƍ[;Λ{qe{ŕY1?2W] !IN=;k 쁿=[<s}d&K#oX30hz7x=wk+~1~-l 4rE KWmԀ6�17g]؉A=ad� U9{*dAJWLO97M=6 {DjkA10ֽ=SFf{3g9NV(mڟ,:y ^}~x3XZgZ>+!JwaLZfً́$o ?ŷ *.pcL{sqm{=BhbLkI* [u-WǾSq/O:R].-?˱N ަ(=s랧px `c>[SxVLl|h_3+Y[d~e@O_~ X{l}\UGnG/zi�H(j}`,zWVQV9 |Cތ:[@եnxT %%-\̵s%$U+@XTdLt#g-ɯޅƕ\W?YoR`J%32f4ƽz nѵn"0wyΤZǠ܇'b`o_8s4H f}Vp{HFM%8'ңao&~{VL!VLq-6,;S w<:yuCdc=`~=ⁿ)쑯_p̝=|z|hfb`!SfRD%ͣ .Se oQj\x#(sׂ}E쫫vmq*aCqfL݀Zi?95I&/YS»f\QQ{7p�$C<rw_d,>Ab1ls*7XSǀj .X_b/:n˸$9F\.oM@_ AVӌ{^10pUhswQk1KTe|[6ϛWdMp B)W!%d^U?fz#{iK=IwjiZBeY=`oXAq-g!g=.x*%ab^myת٨?4/L%x ) I7ov^oBs` DĹog&�=Y of+tG <Yu~{$ɀcM ʘ9&&_|0Lq@_Mh˶U�Ji- YKw?@E:m%mȽ?7/K{ 3Rv/qܟ{vhM}S7+7Ŕ3 k8&3n h.x\lo�dKwUD>6SbӦxWy؝l/=/I0ъV"u0%(^96�3w7~k/K=7< ]:r`fg@wjK@ 0Rt]LĜh0{J2I![?Dd[Re}Hbz_mf?h; arw`۪I: kyi\4N<<ܦ Ƿ_ڗ X8~<{-�S'JAc/Xڻsg$<S;"\e[_`DĄXerY:v$�v{�W'xKu[44Ɓad0h Z<l9 7AxFDR0S[9Mu] p;{}J|+x#z(WW)|w+Uպ ޼5K &"Y"bw] sk ܖZkW"ݛ[VO[FK{y3MC//b>�׈F`jUYr4ju#o=on{Y+]dg{fƀshĄ-WK.�߀+?y TK_Sгe|󁛬``}4ܕnDJҋَ>D\);N@{yxn{�}OB�xz'RG[R>p�8ݽfh�S<`6|\@eP% ̃Tg_�3(2#8~4:o7ƀNa0ި+X >oaEJ87rTf.6g7U91pM5yr6]¼pʱϓgdS`\i3=|XeB:%f&99 w&5#BR[(OSE[e/Xd4`P�Q׸YF/{s ]` 6{ h`[$߂OMZ}g8?-n3V'{ KY0B Fo[~sw+&7dsaAe`E+(9/ReiP0fV rqG@Xn !n~ dH$ \)v<g9,{gQ xW8n(�# ^5Z˞�K4[$ 962cl>js Le_Hf=!QJIwvG9HU#!!1w?|tE 0g @h?T{۝Xs ,=)X,=+_~IGRi`K,c1-%d 믋 Hn`c͒ tcy+'e5kbp:\80!QoTk6/9g3~Z9ӆۏ/eDڦ]՛8x`Υ#§MߔUoatd :x:en r\[gD'^ؗ-efq8>r1/hZlq⇱YɟŘ1nWژUX|1-> fX001'^x;8w/VAczN5Tn p3-S\l&a4̨ly&8;|##mUuѲb}[f~ $ y0ۭc}'lȯaΙ~^�+*?hSњdjZUx 7�XP$q<_ɪ.}&#?vlw-Wjh)]9:n1aԗlc`:>s�CkW�vc !U xH#?_OT7<@`}Zluhcf$M l|ިtʈ4gcOAd%hapԹW؟f_�V aUBf֦G _$#$e c流Q0sXd6yĈvs?]u~j|[8At׺~3WsOP:\ }]m lE`p.}piTՉy*~@;b_~ʯ.DŽb 7دs=r'qӲ{`{y#l[˫WiTן %GwFtN^ K4_ ^Io2=sS^a|"@НP#vcpyr{Ih34'h\nq;.{g>0:Ll'݀ՎPqϿ?f}޷?KY j0W3 t1Fٸ(K=p;hFk!Їdv:t`:ݬ�iݻO<cruQ5UY ;z|]!~>3w+`n\y{68[{;�]ˍwޗ-12ohۮMgɇ57qv2ZF0k~uw>4tf ZA, |MscËsdh;зLͭsN`2ϋL_뚵F��N+kl-p燝<z[_)0p|}Q`M:{vO M. .f[aa p_R^bhU39JeJ \qx2憮iQ@'٠hNd5Zc&~7/o6֏4!‘Ϧ^0150Z;v{Zu-Fw_uG*Mu! a_|>v^Q`Gvɴ@b<tYa#e@xѦ+zң{�EG6۽4K }T8q>0N`Yqeuж9ы$<8@_W.wV�k Bt~ep\.~;ݭ&cެzRh%#o; <)\,*,zd�h+8\wM0V\$ XO+/Ly}ە~gbLW? `2+<G @OMk? I*wv)U1%[NGoسBv7[&r Ii۞<�K)E̅K>$"CoK`u*_=\ _c^G4~>$望8ov!wX- |wۖ@]I)0 K$c$:�c+a] ]rf</un&ЂNvAbzDfRWo�u>:~f߼S Xl}l+?w􂿝O`vqԺxSY=eD[F6�SSat~ -JY7Ω?H0~&yUho3F!C* ƻvs/W3Y1S<-K6<pG? &Ji^ 4㪸Žt2~Og1gxJ&GVsf>Ã;Z_�s?`u&o_k'y� X&Xl)T l;vu!hj~Obaju 0R퀧znlp~ƽ}mƙ$ێ�[~Ja?0,~^T߳l${j=%IT0$OڮK0t}Swu6{m&ζK kt5cg5~ʮSѪ`~q'fIfL p[+fi�K@> *-/< [}Y<~�fLojVۣS>7�bDCj7V_B FS{qʎߋUA$0v�<gQ`l0V4z^>բS)_LQ`|b. !jۙ1�fe-D7}K3SL>P{hB0K?xCA߂uA:7=]ݞwOg>dZIp=Z+`2w{Lu-2nl;0;Wx^*c\2ku/8 szE>/$nTZ] tٗCs8;! l`N8+x7MZݜx`Ef(xlL+mh{phF~fҦŒjR`!F{` Tҏ+f8@:OXYYSs?tVd5_g 'RSQԢ6 ׺At:d|=82uS44/u^ v@K-%pC%vy⦀x9ͽ*a}-9hVis5z`WbZ`6j̤\ՄkAݢVpJ HIcj-Kޛ]1~&l7ˈ1û?dxe_7T<T>^!0[,^T޾0qy|ſ~xyVOfƪWqf6DK!@2s1ffK7͉:pi3MWc4r$]m{}]ֱ%ſn7::ϭ<k%>l ֠Sԛ_s@&J` KW�?\ q_3Rpܭko9mF͛"`o3-ȿU{׍ 8Go x?MM=At5^+iwK]Krm 6G7x/z2%b_`{yN떞[$?E,; F !hM߯_$�Ogq ٌ&}OWQ5ϗ0B7p=8d v@O+6RoKüw{>4NfA}+€_w6oM/pe?Z GnPz]8MʀKѼTMLѓ70v:}87~ɩaomH'Z:`_.Y2^Ih{szEΧܖvJ�2 xapX+ksJ ^mqX9;46�߅tO ,Yը8}۱I`X#VM\[_A0oX<Hn_;s}i^mQ`)|x9f/OJK3@0s�qe@C}.ej_x>2 8òқ_a+mn9] sό K4"?΃Ѻ[>HC+=A,x̽=ók#T;2t{,'k¢�2@y|ܯMsB>vK΄i3kߝsxGܗ!= 5hsG0.e!ezZۦⲏ0½Ӿ0M{v3q0T͒'f0q(4r%C^ ,ȓ¯aZeL0{k[0ܵ$ `\Z&r"lvwl]eQ"eQG?U�gqYCd/-Wۀ(:=]W6ÔSәW Ӥs Dg`Y Uh?\kۯ7%s_qY eYeZ㷉9/},n9X&wǛogҀ3B&}.O|�S4лtKk[]-/A< F}M7}p;[ 񆝍Q_eަr`0k ?qy^S0Գp ]gr7׿7`%}2,/WSuE`|y]ܯF +۫}*� -6?_ix/Y7F}c4BP=WN`^e5$f`W59ԩ?yY |VՄڈ=}Yy0Z}?){1\ո+FS9*1}\ym/c@t d[oy,6[ޠr~ x ڊb/W|<"bW@K1+tJ nn'g hfITGa:˧35m6=K<�3ùl1-RkXSՀ3asw Џ&k[9&#Cg|5^}}%S૿nU> UIxny`fAAs`> C6E!Unv UM0h9c/6xWW$vVCLД MRg㜗UK`4c-0Vw#�#ڵ_r2 K;'Mk{pIȄ} `NMCoN�Ul-0Z[ dd,!u% 3UW\s[$BP7tN]Uh~=>OpΕo$ЍǕ}(aK-m§ XR5XgLKVҳF01޼8O~tp9s[ogoD*pN̍_Ke rdLК^pxX}pAdx.mxn ݦifW[s/6�OSr,sز$v&s^B-_8=%]ṅqh�wq+`&wD'>Z=?0:Շ?+ɿ\ e#90+`4fs/0[oG&a^9`o;LC;YڇG H)^&"fNm5XjܿyEf¼#6N�;c2WkA'Pï_zBؠ_ ϋ+yϗ-Yh%'HS?2L:,xJm Dao{-k{acq`.9h< 5ŗK�k똟&*=}.yX O l�ZE"\Ҭ ا= N**0w'gGĀ4N>z6~Ǥ/�-(΅fCr<62w%໶WzUm;R?4pV0;t1Eܲ W_3]`oh̷Q^ \AnZn#D�d gݦypi%pfeź/v =\ 8[i{ bM_8^^ ,Cu-~qQH�ιj]pTsvs3�{\8w0"N o7發(mf`v-۸JO g`5HT1<79с1SL>'sVH�g?~̗kCg'x09^@+瑻U* X'lÅ:{,H'oļ{~=-E@)c.ش xIe߹p�蝫'Kq`6gglAbFb1<݈4-f&qt"k?x"Xs]KJ}+`J)EX͇OfEޥE'|(z?pN>cl6߯u&\ թ$Gq038sU=#K!ZQɽfX4뚱.Yxù/9c`Jm^PdG!s t<#'f D*#gb{$+`(xGwjBчRY5p<k�v'?[wCo=+0>N7)AC:zۖc{$ 0>�F f3мoDJdڲ oO~@[L!Щ#;f󏋻>'Ktt];><ج aw r^NGL-+ Rơy]4֝h 3f-3dRnS_/Q#"軞ǟs>c[v?q\{z;j�AaCpa/`э"E�o|Fpz: |*m0d[q3+wd hSquykɞ[;ºJ=wꯁ }}"}F7}❫` 7<�t.CbL_SVS+//VfQ2@ݹJSœZ߾ Bvsk^SDQY'ĺM1'vU1 ~^sE:_g`^k ޭe[3@z㓫 Tq|q|70KFa~u15db(c>j`n~ظYFV|H ;6WF&c/~/k ';wa걓Ni~؇Ͱ"w{kG0߾G/?;{p>py#'>�X룫)¿+wj_`[o> }yY]>uk0M[xżw:V)t6ಯͣw"Ң<0S܍>mߛ,Oe;cc},E\gܕ0-@G(Qg%~j%́qn{/<R3>-pYi�dhjBS 9{D 9IUKsguwt{ [ T]~`ali]g"B^0 D{]]?݆@zu0B qzN 9 CqM`NYG^!wZpN4p~p+V{y~`x|u5#\jK?aJb�|ދs-?j1D*fڧ4ea(2AX9_5752׸|eЮEM; |rc!0 S�Du5`mEZSq2na.Xm)9״ \[h[.efʘ*n 4*x<Ľ�{dĚ *H1X{n:gɁwgu*p3˧l+o/B_&�Zߪ1( o"Mpε@ Ecw�$;5nA~E85pOm3նUa{|7>+g̀üQ<w�[h7GLe⺺)vU^ o�Q@(7ω o}8uv;_nk9w=vL̕J<gg6>]!W=X}RAW=xmk0zfhd=O=ӠUa2T xwQ@D=tv#f^*~' !1i]{X7vtA5e.f3{?]r�{R-8g�/90R8<_"`ivMEF�ҭ@%DKh<~UB״-yvݦqcÊϜޠLÞo[P.\~?ޒ->XJa-Vh4jGr~QAWv&QCZ/oH .v]+{8eL;]ZEl?p{hwmn�o�'%r-Aq-U,+4b7rS]~}5] җ;'"5خ> OxNco _/<Y+N# aZ_E TF2UWsSl(YfgLש:=O}T ZNJݝ0|ϥ4 .\nȤEWnG0O{89ü4 {'GqBox -$Y_�~@NZ+P<ڐ ^4xcom'#˂'HC[Ԫj�CǮ&,=/{ݱN/۩yٯf�=,Ϩ\[�sTͻZ@km2C0NhT5%2uTY, A??c{w]$Xy {^}#ճr)U.8ǹ6;֡`_UI7AةxeJ,/fA<V՛ *}P%n/?u_-^�#_==6ws {d}拝[ʖn:bo`+FqH:5ϞKkmy2|Sa='2';k G.NgK�A`:GlGCU* 3\kׅ{ 80X�+AEk ]42�lR>}K pZ&q廁{a]:L#c/ZY+s`TOv5jAcrٯ|095 +sѺ@£X5㶇eַՓm<6ܯ\(�}B7{ +sZ`V,%^89lpzGuãoToИt)?`/![ףǟ??==ݎ o\~x :3l B?)ؤyćp`g ǵ*C sUyg DXf=i `)m8bɽtDtYxFϢ,ڭ6`?p[)ƭ s1Gp@sxskK�jXbfqD@^vrp_σmT`vx,9tKpOz+pw 7hթ7 qgIq/0rfj`ۇ<oC o˜7a,/iaVUXw~'n+*<ݒvtp6jӽހmo(:K:As�¼ >BsגdUH%[;)b`gcI=LՀ^`<2`2:rXN/Y .LS[y*"|EH.Kx>͆ܩm{Esz$:QsD1KmӪ"B$Ig++`vPڹ.OK#'6ʽ>#" sq0x1IH[9'6#Oɍ +iʫb5rliӖ+wì.&0kqa)D xn.*58A "ت^i Q Xp�jW Gd+ !QaS̥]T!Ky/j7>.܃`&u,0+3Zo12@p7S;fSap-Oq/DwWr#bˇ{8P 9Q c$yW {Ź`Nqux5"<cyD8wr"D #B_~#h"` T#]hw�6+k"NRw[DԏTsH*"wwWܬ!/@+܁HTGRs ~ "o!:y/}LC܌EJR̄0{๨n zmY}0 ZDvyLM;|iCDm8Hv :y߫Ҟ:LDb~Y~K |芳10֨>epQW-=Xcs~n}t.rW\aUD&-Es4隷}~{ׯ ?UvB-I E1<Dj=4}Q.WgZK}/(_C$1;bw[DXKj-?ZW 9|a"i4RRkQE"D9gt_nr9~6q̹kW$zK)P #Uw)]aV_D08oNZ[0++=d+ޥtYL37_q&"bR+~D9yȅ=`^ ~iF}\v/%! |Y�3_n|;P�Dt: 'jr>!F8Dе6!bF7B_;$a'Y Q;$VPK۳TDfZ3A,7;uJ"~|(]n*?K:y0kṔ9e.V^84S`.gH~DL3ɰ9 /Dek-F?g.wo |TTaSV׷>C˽= V8ixA;g m R_"q xS!Bŀyr# Uylmqk?"e"k^Mah�Df7<D)'q. MwazkzqY6s?D];BagV}4CN=ww&,جS41G`h^ĉوa%A+h\#:>PuiӽH|S'L|*GYlk�D=赎[eGF(b PWg!9tܑ 3ΈpN)OAqn!D^+y7s E ֛͘4y2XM^_oH/ԁ{z|Y  "> ^SI"kûfYew+#K]"r)Uw=8s<y"^S h ~iܓubk)X0W)z؏~>"M!B ->Y̍۬qo i2fD9u:Vlo~|^"C9xw?=>H|FUfO(0k|mAbUj!ZY<ӈNwN`).<g[`.<!:")vSdmDL:)bAQUAw: MLoA<"vxeD+Nw'`fhԱlq}_]Qy^vH^~ftds9&"RyD&AF%}"g(FBwҵEP0+QMtǽ;ZIJZViIh#ǽEO-[%K;'N"y4zD(pGFUwe Zm]qT3"ޱxOY+ρRN:"+|}� R d@HXr=dD4`k\MY!ёB.J9 (G;՗Se#g ##�=g2Mmp~5"cWDոܾOn8gfK l#rp89 lZ cn˚[DwAh~~DvAg*PskӮDtʪ\yrr3&iUy4{kEl^Ham�<;hBM<?,ci0U钌brv_n�eǂ7C ^%]di<Ow]YiTQ߈TC^+ OzZ="I{ t\]Dp)"; r\=lImkxbR:X/B$] 8ӗY W.p@biNMO8yQM>Cg{ʬme^ܼ*"AT$7D|FH˜?F{r.EFv@۹=0sDW\<וW@4ZPBE0pi"3[vL:´vڰ'ue_ WḴ ٲiDn.`'lwJ{M,jS)u8Zj&ݕJHx!3V!ҾFXMsմZ>0\!XyJR&z c W[j�Qwoį=J4 [{,tVAUK-.|5}%"n=s",NK ҋ~}5a<}t5<&1MpwiœRSp*@xpn>"Nxx- ^]dimD%1>OCѧ|r[ rϖ0x]0kt "с=1HnyX3gLa?<S.|&ݳWlA_AjtS7c]o !~!̽SS 4n!oŪ0$Y'1dF^LvEWk# 17Ԟ:{TS¿ 5~[6 sŖӆnVǬ7 ϸ[.TD=J0;9!KCL״e_̟ >jRL~us10(eHV>m8DV~wYzD$V\P:><YJ/CD덌? `v;8{L(7~D\Nc2nsA0Y c5<rEbU{-pN?U 1'lTۘgowysE+,D;kC{6ߡȁ&"GdF# ٣x1kfɄV݇, [U(_| ӈ7_! skN(Dn 퀙?;T,-/c M!krH<kΎ`ns$(`1>v?0CA|'Ͻ0ۖ i{O߆0/?渻1DF:N0 d^"\ޯIAnM$y0;PnwbvࢆT;"ox-"<Hv4`eio7yc#/5,Le#D~!陒^Q˼.1Iⓖ@m|-;A(]>bZ}he uuLU"J/>sa!C\UC~#b[AP\2T Q+ubx\Z@.3wz/"v?YX!WnGL0sk=,7d'n~LEpeqQ+)Y''>tB "-c!3 sDs/;I:s<ǨKqUs>IC{>?X "R7``7^ qnIދ>,*ٸ^"Y4fp+ f}Io GDgCmS3 x|x> D)}{LyJqqɤK3 ;hd3p2= fcˀHMJ9f7MfSaIIi~0tAtH]6 +f+R=qOTɬuT185lQw/YOTK=<#K(KjU 3*qoY=ۅ򵽢DP*8 —Cg$a\o㳱jjwGw ,c<װH~o} [D("1M4.$oS3I?ZSMQF[Sm= uGqT%}̑7d"O}F0WΜXl#mgᅵ@52F)M4^#0"Yü_9Ti^UjDX~mh;Y7j;K_f";Q�>KAPF`罝RUҋ1om8R+DL0zrLh97\y! ^5?o*liBԅ_;^z<2Ep$fN{<2ٌH0 ~|D^rn" :&޼p|D\~`&xs)i VqeS`Խ:|zOڊ'ŒĭF0D{/6N)AJ`DyxЂ}eGiHc0Xq #Nm 7wxos8/xT Ye{y]b>W{Z "?i 1gڹ "™]0g`D=5 o>_Dbާ8 "o;g>=c">4WȅD'MoLe=ޜ|bZ[_-YY Qj6߱~9XvN"9ˬ݂(3驈Y1t@*oV];}V}<D8\y+aH[;2j[}a8iHZg#¾! rDI}k1wm-Z J>*",ҝ|5< /M.#͞A<b{ "gWו3K[ |wf]_1 sv܇cv}{OD@GbM* D\<.5;D l=i ́'!y0w"o<c!) 9Vjxj}*3#`c+řdTMrXC&>?eyNZ_)<} }ȼ MG^#Ře'| S.q`nJzSatHl; %p/88 ]ׁ;68eͯ{dF*LolD?!OWSĶ3ju_:~ 7?G}U yu*@)Zߎ)!~qH%vC 0kSaZGlg$VYƑH?3 }|iU˻|"˦~p;zդ c5Y�smq%qi^A1u@ ?{fnʂHlԁu#ÊlwZv"Ba૲k\%e]Y>1U)RCή$v{Θ 67#YB^D0*+[&swjlI Ě4>YFH<~]SC![y0 >kn;aߵ/D)ۮjM5NA{-E/z6|Tzq6W0ÞsO>SW} ҅g6>WOb.^0&ͼPs^_: [uLdT#윻} =kM4$m�Oc`+ Vu&7moX(/~u i Zc>"Fx#qW}Yn^ךav giDNд V D&^ߟa՞0P5laeGm55D>[s>"OI9}DhA٢S1"){�vAZxo �Gj u̝m/K XqɁ ̌H_aX J0qHe6G5RLD[}|"m|Dugvlq]vAueY|w"On"v%rGqX51CB?sCD YaּiӻD{cnmDu=jD "eG075EfFI#[/ jz?D\P}Icx9B=�f/˥G"™ _ |Ie{{}#kG)nه' [VF^}I9 bЬ!O3]_cfנ(72*UEQ)׭za[% 97# 8.&o@pzUZDt{J*0s$&ۆ3f 0#?o|b�)?؋IJ,)�IF{Sdwb۲͌}"ed`nrǣ0$qcdrc2Tpy#lxwp7=8S{L_M}D4o]Ys:" MsV!ۘ[ ͍q߁8^ ,S|Ȫ8t^f@4{(shvFh"SyvR")ڪc~RmjwReAv 3EU 9)Q׏cO_MDA�'#*6!I9gqe-_u-�{jtWDiׅHG4#|U&գu1o\2i RTsK\o/Juwb̽+zRf"/s3ʇr$x'"4XDĢhuT2j](¡_ָ>?VnurSٜ;"g3+eCZ`�7]Iy_Psc6n[(h @LP)"Qy;ך۩""ׁ%0wDP]s* Ä X:sxק[3ZٺCRi) >W@ݳq4ݧ$z6a#Ü8=frG"D~-۸Qb"*u"*SdW[!G90J$Vu"!=\A7:=G1 %HWjrDaIxĿ\")2^5!1.cs圐/YbHtJs "9:/׸5`(Y-3$sKnC UILn CWyHe[@-$uE'mm!|VX"uik`x_c (0Cb79*$VWz()xHVa YQpo ܃$vux!4!W_?Ka0|m:UinWd$".?gqD!_aZ"J'>ڈ义0nwҺXmțMBEƼIWhyQEHF=yS[OG oir9$pB$T3 y Q w%ATf$HjIm&_,Q &E'VHr[D_8:$.*<=Q4m*/:v<I!@RF.<^z7~9g i:҈tB?d[ogo)i?ٰ} Enk #In푔bV:2)^!Ds邨xGұ[n#SQdTnm$NU8E'd] Ǚ6vςﺭHƯDHFn_[pl.@ԔZcːK烶{/<6wp7k@Z"rćzwxp}Hbo*rA[w.8zV5I �SUXkKewD^$Ul)QGCF#ɰ x\ka.dk6)#&zӕ8n9WYq1"{ѭ:!JB[r+,?.:wžѩM(Db#G$-�jFve"1@R{pc�ޛ-!?G$VTnw¦pDF8$H!oNAbb)"7ļ˾B~ތc $壽<ݣD$ Q)s5[!ɇWv#aip֢x</+6euW9D^2)BoL"gϗs8#rGKDwPa,:XμXuh#DbJCb;'诬ƃzQ'i> iΈ''D#6\Dsir$}23uD~XuR ;VIg"plu?$L?DBMZ`̝Ir!" Wf~.I(\; Aw<A9`$vZ{BVI _v)8Q;8srǢHr]8& ̮;-h (ldoLUDfI[oOh:W zAD ߼"Y"KϤTqݼ<D2zȹK6>9ĭYemMxO֪&PtRmG{.FJzyuù< )|ctD7~+df8{V.+$Nv2y*+(e{ARɎ~QU\d;{ΔY؝/H}keK>rzvn**>p  4YSUQ5- HT`d ~Z.mD S;owO,N@ "(-V|ɱChP?!1U|/#ۣģŦLD}n~8%ax:v[a35 ֺ'a͈@L6A{}=8o{j6"4)J$P.̥jLB3$#JF󲨄<Dg7.~EQ ?KRsY Mg?nDÊ}:t K'nD:P܌sw{Ze4",z$0\wJ"BJo- 2u(9}H^ @&['<JlxCgu]Lw*8IQ*,M}E$%{BTz\Ddn*C rl/ɚo-w,m'[CRǿUAs_swz<=rq ''@{43$at œl#D\QGDFCwr$j<D3Mu8n[o"ҡL-"|3Q>%,~+^?P(/D-k!vEc5#=4+@mj?2uA�zJ~<5\R/mc2#AaIŠ:d$ԫy>*>Xީ!%[ck!#΍/^!&3|3" q]gEb_R+^lqW8I͙%߇H36Sgy/}o}% ӈT]9ksIm$[jӑ:*t6""SpO|s>vl)$i1:WSԴAS`^~oE;"dLB]iqaI$X45MJGN"1 /-q+ˑ}HF3xNM?#76t&cCLV|Y( <*|I|zm@6J>4>y<{lJ|ϗ?i]{s׎}TpJXge$ˇ_+3ϖHL?I#Q'PDmv-wN/P@Aդ+a&`GN$]"TvږH4uNQ <\%5٥/_y#ޚ{([Atǽe%0Jq8lޓK!|_Cmbqn3aZH͘%ngq>/m]8_|$d, 6_:{ vD\ {8h#jDq$~I:H[\]j؂{0Ot̢_&f_s%kdC{Մѽ,{Rww(UEI[vy*Isn>WIidF9`|&"Yw_}4!LSܓϴDoy!C{Dtl?s}H3\9s͑֯ZKmHW%EjΕ@$kjI&FG!OЂ+'}0ןLo4eޗ=�V5з?Q4YB}j~חL#Or p.a3O^XaZ^D<ǩItލ\ND;2ۍk<6CΎ.#8f5ۂ}`-p= o͋~KǟTIug'm9IB-oclp>,| ϽcuO N;đԉrN-H|AkA 4J(UE$^`gՑIwT ^?O]Q3^^A< ͻ496#LG eRAq4O}[dĶr zgu^WaI; CwF#q_οpEW&cJ|qh*%1 |l$~ݤ u (nmHI M\1+[yЪ0OE,-!8#a-PuDMm{~*"$|mQ\{*"ʒ._;3ʔdn[ $xC($Yd2 0WPr;|r~>\[xljQ:ϭn%Aj"$qyTI+מ3G$mȧFH*v.KD 4kӄ$7[{QaAV!Dmu<ĉ{fHWM[e/x5}FOA-$ 32#??` 0cjWk<7Z$@D1hRc_Hbk{P$L_RQ9{!V""5ޜZceW !R0gŏQ&\iz.#17j3să+F.k9g>](uT|>943{̏ƅD۶v,eʡJ> jZ)%[<X>,/tD)ޣߊHz 㓫{G痄 ɋQn=Sr If~^wsy M_`$ZJIiMly뾏lI(dVd="713>v%�IY jS^Cһy 8ʵ͓e ү=?P -~G![n8m!#k`VLzw$6;Pmm9u^�&;_Yr*z+ $=t'^$%rLTq?gD,@oE_d_dZ ѷ[ks:#23.?sj]9R 梅ŝ~$\k ߊe}07Bv/K斂$H$Brx=񾃈 6!ѼGv$Cv|$?Iin8{1Q'd&/#"!^b* 6&aNJa"ǯ~DM70Gg}AbACgF]MN6pِ~$rWE$R8Ş4:s,"e*.O#"oūi$>쿺ְ DMN"!*numE_z =-"e)c SMXx<^3*wاpĊR*JkNی$:<{ٰy+N<F4ō? 4 q;ΞDB]#[n©Eɯ1wY&i;93Q^=F{Fy8W<ֵ+WTS7Ajsd7`ߟf ɉK{.k"16 ?khzgL2!ju[u"|T.)9s^^^p184~4;sQ$){NDvvN"7m;͋Jb 4#ɦ*n wq.t_JjzaN(}="YHT,:$m=}Rn~ms5^R`(BHR)d(DjoBaC"5cfsѼ2?z(?'Q~s|HG˧`>xzD5}viyPmT?9[-A{ՇLܛ̟F5k !Bi(HT#) :2-^m6Q,$vݵHDsh=̟}/DIOG0wZ8g ߓR$F^% =nwUNEcn\Թ Jaڞ{zkn"~#1k֌)HAuFRE=HΟD!W!1լsn`OdwF3vaɹк~'҃Ĵ~BdCMuލ&"$k21-$v( {)Xe5Q<*Yꆨ]] Bon syc"[/܀ߏ& Hpo$U6F;]=Q v\uשiJUzOS$f?/9ʧi`Mx砊(WE+Qi*M:_ycĽK9-9͖kH% +0oʳaFF7:o=6%2}b>JE0tKӞ XW4/�Iwb${[-U {<CbK<mi`.b?LXg9�"PIJ~{-u8f)۾4$& )n QrSdmA$tN67;H<jYy&{GZm}Dt|="+pƟmU%/Ľb!΁?Cb7 kk벂썈?U !1qDYASY9ΈݞsgQ+${̒z7~w^{D(u鎟 ܼeΉ&< KDLR~iT<Ş1sb|G7tՕ\DKؗH_4~@W쇞l!7O"N ,Yه/ج\EBbMw:3xm덉Db?m $a| 픽:8$&}Gm2 O)5S$)/6 ~HW"bhƳ{X:Xj�umyBљH/g !i%I*կBd7ؿ5HL:'9xzfD:'(|[d36bo|꿏m~\Cl lqei$UpBLGIz~4ZZlWb?0^PSEfw 5D+X2_9 w$'pJhKGT=g7WDH!r̵bw|X(W04{NI](42xRH<GS~+}Sg>~3w1)1sQ#cHeHBet"z4?/8>IcH?1wW!_|l:k)f rtn< w l ܘ\YN @$|Yt(5Ku^!RmاNZM[_oZ|tCK1F$Ss [ʫ 鹪r bk0"ߋtpIWowFע׷!Iy~`9}u:6ahD[Unu4 yP!X|߈Lo};w"k/vL{FҺTRJ^#qc;/CbGB/kEEx/X@QN]5[ȲoG$tD"(1/x)E$c!j DI^H0h;D\%GL՝rlDYRU߄rE]av&)Q^.(}E�.ۑï0Je༊P:uN?ۖ# nC:^ Oj9D G { `|�NT.1߄ȁ7cec7b>N!;մS^ AP+;yxKV#r PR=g-@%I޷XjV $j?q\$Տ}?$ 6Hb;{ )쥳_kD^pi(:p(6 >JBZHD7ů(Yڵ˖dD{e+R"P>{:ʘyyy;Dگ3cqf0?1Rmeˑswjh.2Z" +Z<g))15"rU9?7"n^ľ@SHkH$dHҵ $w}?)iz-Hq?#D/?ƣ_(|ݒ3~"N¢%T`Os$e\H-k!a˞]D>%47j!}q?J_3j@“+7M{vZd9nل?UxLdT>2)vwHW9hrd/倴7Z!W-oCq_!-NoN *#UNrKwP-7M ypS2V[blYYEҠ!!*2HnأރN![nBƍNDJZ($זEY}$w:p/\HFZLH9)Fx[͇tMh|EzoNw=/bH 9'8kyڮH.˶鋔e([sE񑧝\F>J|wdLCWcyERĘЮI|}*yi+7Пt;6EAjo \f:%i]ǐ)}e:KnzGMWu>Yu ~E4+BfGRuw)ߛ}%/#2tw;ĺ+\:% 2#^$rLpXKK3ݒ*H V󺔚Q}u/߽eiuml0qMp[Atv$MVn7tߛG ?C'$O|;G->fϋU(9OszGT{-:̻C^ I"C�Cd|<ng�H횔;2]C=UWY{)+[ BcAi^^XT-2t]hDz�ɹr?$mzC9e6Ґ! i Q˒]g{Qz"ף'LZIp#1Cq6}`vhS|o{\@_Yۛ3DEC ݫ=839OȌڲ2ju!q.sAOWCp.n4_Y Pw^%d gwkJ/J\ӛIKي_OM(˗LmÉ-H[$@I)E~$CxdAd_3>}(*!5D{VT;~XWDSN }Ɏsr9uՊ0|v6;e[mmz~~zQ(N3ԟyW秠YbFIo"W>VH2/ґVFK!Gx$^h}{LԒRKW^śf 3H:PJxY \>Fƙ%[PF̂rdLz& uT:uOd2x'Ss>Az~ܜ3בQQa$O c^~dUL/t<DFLji{p9"9GJ,UbZX %?.bRvE}VGnDݾX$u1nZ'2~;R=Z'7be-AʾYW~+NiZb0&s#h<6_2;مf�Wc" ͏7c'fE#Ȭ~xyV\9ϖGaÐ;&^`1F 'l9@@uPv~$l(eTdi3kwtĕ�HW0DS a:)iF%Scw"GRl~l;z(/Ȉ&2L(8$9%28D66N˖w~$z‘rAOř(a$AdO+t&$7ƈz֐|?Soޔ'x(Mn"W5ۆPfΦ+̎,cҶ˷ܦpR;R3}?x?>K?I6D*L ;f&)j<9e#᧳<h6ƯN T/Wi(è2#&x$acS.p" >ocf ռn?,*buNfQfsZuiΖSOs蹡DŽ] ZceM<nb5+*LVTN{w1/zTC[%S52֤\L{`G(q qr{e1ȑܯ(vU=2SU/L#5'FHJ9+[ڽ7ڋĥۑ<h63T&uqnH2ߣ&\<wY%6:P[)|$brP^HNj({̱(tRew8 =) H[3~I$~DO}MyOt߰_*GZ;Y'Ƀ J֩s]>ʬ/|'|Zgo =;G &O4,<9kI )@y; 4ժEҺ+l{N nޞ'V0`O)~wv|>+%xF:?,G\Mz5ۜ6sJ#nxzunsgrgfEY- 8_:|�s|;gq; 3}{ ºS+d�71Fid_ǀ?/YܵeϾILZo/ ~oOD0XgŘ޹P[yCŚ 80hzc}CiI08\X~3g{ni۽Qj!0[<`O\le <e)_c LM)~hc`UG`*}FI iSgSy+tI3ԕ>ݕM0XDzg#wج\BsA|TZ+6i~$UȀ`8hy&09v29d%7K?L[~`KS%arY~xkqIWˋs`i*, %�۶ M{svX,ݚҍ|wGe'] xH/=hG~?͑URӧ V 蔝~R P=äOTLfN7SUs�oRƠVe @x{2T>²$HM!p>Z B0fOV\.E迹?}h˩; ]], [Dg;`/o&gN4EŃZ̈LH]hAk[L{r?6<Mokv'3g<2 [x [c|k+^wh`4F\G`%]6$7(l~pNߟ[f Cs=4/^p,=_0 ܵ˞|x%O\=8߄̄Ч�oί |VX( pYG}cp+>k*za<t> S6IoF2s<.vٟLd8ve�׀Dvpuc Ha<mH%nF0?'0??WQ_ƞn{r/AP X`��p@{;?Gy7_Fg|N/{A]ޭSaYR6Z,?k(>g1>5Vރ ¯R{>M Z90?D]._N8n*Os1S(Bo/+XX +j#9X?9,ą! '?T٣ow*MFU=0џ{U&o8{-X%+ W4^ni7+wabO"3ݶ\ \Ek�,~lYX/nC;.Nn+me\{*& 7(?bߖ8`WdB| vO^H!㏬#@X~/%9l9tk~~BAC`lDxHt0`w.?X0^ s:_5΅ρɓt" oHF[ L]\ͲNv~pjsvo39c_vfs:Tۯa2w2}wWeyV}$xptu2�uq=;`Pwk}!H睸Yuk2]pzd0Kw\yOE*)mez:^2z*oՎ[̟ļFm!zQw{XRĽαU.8q$W$M%nDqV[d1E3ǯ/w&�7ty LŞ}X4$W ꖭ�Geƙv[$r/FǦ UfPp vTF5#fF7{ChwY Ο (Uf{ӫ}1%b=ȯ׋%[{Q%VI=Kֳ "}0r\`_<\e0R/,#9[8Q3~f}jU~ +ɵb"gGd_SO{<\{>to \\4~XV>.X&m,Q 0j#0ރY g[ͻDlV<5[^bc,L2Z6B(6;nMa!y;f G -z/R\-Fz2 j 93>*#i]i|s62^n6I=xJxFgHxJć: yELGʠ+8lM<l㻀=v'9S͹[=gz\F|,>wwauťܪeL[\ ;?x CMkqڡ{ } ٘a$_9ꂌsqaf"ơ&,"qQRi/:<k?]k#iq0ysHVoۊԓ,ڏu6$0=חg Y/FڭE%աB?^ NwI2Z6#)q>%~5,ٌ[Z$"? ]x.p s{R"`.:6&|F2iE"R3"%$)_yW!cV~B6CS]3AN] )?k!)Qv=a}aǜYs<auIg׳c5d,$NP" D:\8 DY*⑜{'rҬq˅K[6? ~F9JHfg9ݧZ@w$\0\ Sz/xFÏ\JDew|+ݻa`/sIvu*$!~GI$݇RuU~贊kFgaHRV &|dFEItk; 6jfEr#mIƽssHӜ! ZW#n#R(_*`fn JF 2nl$Xi&$2v8~+6och/0zM1Z+>2uϥW%R/[9|(_(#zϵ˖ GlwkIOҴȘҡ&%K ]S꧐৉b;^0Vȏb]EI5{f P"qaC{KE?t"^/:)/|ȐO."U=Cȸt^K,TmtEIJ-Cm沭(}r*eH 8I&(E-%,#Ǖ!C/(\sn{9/$Ҏ*Fz]ڥm%4,Z5p/4GA|OHڬveܬ,_:wR>/gC p"OKH+_wk<#4cW%2ڶ5VVh�FG+&=0]/O9u<UZKnF߲hdm _g%mc -(ĩ lϾ/z{F􎮱z-J:2d8SS* p)^xlCoV=m=:/^v|aąn@HaSa2<"cdoiPd_dmi=JUKڞ> rl,@Rev{Y:[-f(@NdX1.D}6 \޸y9҇JZv 39N~Rw@+hL~H~c}]zزF|Ysk{xCb\&{FwK'#rSrvw_+ɫ'I#f ""qAJ/M76GQN1:a8w,H՟7w/uAZ[Suun[ÓEbO kO+^k)ޏAr':#÷0\^=[kZ~yh'ܺ&Nwh){QT1yF1Zhz1b(ɅHsJ>uIj."M5>k %84kaӊlU9]9wREKNwҶoe <ü^;ڼ\ ԑ1oH`8Rg R(e?"rѻz7y %weG#IfLdFWN&ԦYH3ǸoȨџ,91Ef\tfH7r%D5 GֿE1mD?ttc){̙jAHSYI6ښHsܒgAIt{LN%L^T !2muNj5P.:߃7%WrCFEv?qd?nUDr`]HReSd,2E5~H9=k?2tέ bۅD0R8s6Rvg:'ee!?qaUP̮˳x52v`<CFqrF^=#/Rtn$O̻diD'p-FčÐv l=1n#Z}ů&t7RW=!)lCxz4uf"跉9ȝOv(b՜4*w_S3*F=Hs 8P"C6N8K=NGy{׫Z\)8]xԎ39by}V]}W,CʜZ&2Xdyyi#|~fiV6p݉ސ<w*og 9?%Ѻ5b~ ʿj"eR9+g cC|ok#r3QBW?(g_(zː|MVϺ旷/tL ᯞ[`ZUCF`􋉴#E@ZSع[i0o> 7!C3e!LOC9s3LO_#i9UqAxbڡ%I .2w@Omh˴¥ Ma";3k 7$*ECo J/4{bL\-CO!ݮB-|t)q.4p̓!ܾJywT'h6p˿yw3 )al;M7: P+= Iü`J$2}* &~hB8)^!Kä]r$flJyF_ݽRv82hTg!E p/K2’Jۙo vy E{#)8d\;zjB8.x^Ljsw yx9#.\JD72Z`AC 2$]́)Hֵ.¯rKCiы9ApbvdVBWD#U9kGXւH/a81?x9)=(̐ĬW4~n_̚3 y!r�J?8|=O8[۪Pp`FPޓ{)wt JvE]%uߑ_LFktxmHnՈH&67x|;tBenH Q}[O9TޤDw.�[gAHO *_G̓#yw8LEv3:s2^�Cݽ,+B&L5357@ 7жUxC' a2[YeKZ͞Yi`<џyHPTRo|HH'mRK{-R )h嗐z.}Is%+4UB"مOIt>$[2�YQ <9iY}@\Q4so$m< i‘&\Ѧԛ몬E06ѯC]+܄C *qj8jK4 j&c*UVK8b߳Z&3z< m ^Ŝׂ!Ab P\4/UU@z@NձpFo0v9-At[+7]EXd΋*@ZRW0$gE6;dKO0Ho]55x#I+W)SgO$h8??]tYS.[UMQʗ{S`<Y5` /n $'dK-~_wC}bi-s"J`>p*97TP?a<6Е!s4|ZmL;D}>ǹUF0֯5ӰDKr*4dl/d%we@7\\6zVw\Uq61 d!$*}d5Hh9Y7$GJWV~�8=w s|7ӬIw, ѼAӷ=xp]<W:Ren^H[l*!ˋx[&mxc.kyM-d{#-H6(5~K==vLuYzHHq F~VO8f" l Ɖ9,:W�fx\kkOA!#nx4J~}; K$]Iv6_i}V:\)X{?W_Y(O�'(y7\qqҿ-dOD@V(L.3ƍ4<CR_{AmzP>_F_^Mp4Adn@C*Kj|�ͯϩtW~|4cOjS yNKSZ+K�.WVd!e7n%E \{k(Efb]2 & zUw\J{2y"RyO o]``h*Y"qqQ n5*Oq;!tbUՄFwX|vN:-ߝW c %oCA*ͥ%2:h"c{bQr(5sLek ^] "w^CN,C5%"d?$-IKc!iu+i~' |UA0mJɋyk ^g,W2I1g)y V>,8.ol`ɣ{aX~ 5Hk3Zw"%L}g ;q"6Q`]*o0wwCV[${n^AE:-E;K-joȽ&R$&=Ĺ=Rz<dʚHp]k738t9W$%=Q: {.ףϭ Wkg9WMM<2%3auH9Us/ҝj_v.'^!u{wrV5x~Grq.g+qgSih>e:*0`,$?~w&txcG# pN,T:} H- |[y RFe^[QaUc$=O>#m]ym% +ߙCw>KI5RX|:/{iIg>TvO_)> "Ys=Ka%_Y oN֬G93BkC`N`(0""p{l|%kr"<F}UQ(z=4pZ@yLXc6<]c]z᯿D+oEZIgKdi-Yq~pFd{zfb{0$5kl-"<>{ߗ~J3U~DӾ]2vcmXȬĬ3a/*[v/Awy6 Oo`"e@BM17D0�0n iWGat _1Ni@%@'4 8A܎2?�ӗLuϗOBVx>Qt$=Yn /!z%oCv;D쿭׍, E]A\/R7g Xa̧gg[_#{}9"g5U!ԥHLT8e`EܧCZ8CNx6Ė|Gڝ@R2/Fi�a wlМ{< VJ2[(VM$ (tą#fEJg'ne 0g~\#KJWfn�L=cгhk?L٫>[!cݳO N΄3?p%΁W}aiyW{ ȥu7甫!'ll0y0wKa05ݱ(GR{QIO% nN&tGn!}z|?rR< 8Z~�V},ȝy(}vex+yҦb$tO.u<oρypߊ<w4/dYjv 84!?B&7ԅ0s]2P\jГ"Fz3  z7BnԸG=Ng9ZD mGo3M58F t5Uta{>oz+:uxȼY/g i*/cQVeG_ Pw8>9D顯 ߮U!I{nB5+ģ4Ed8yN Ӌ,c%R l#V79E4# +Ց7,wLk=2~o|`*hJ7\{UdTFKa|ɴ ^.,{WU큯~C LT\|[HxBiŪn'z 9U'1^.>!]Sgu '.L0o=s{#FT�)/`ҩ[m$<ڗX.ۻ׼_W|ڝva<0>r\LWs/Ɂ@&`ɦ0>u}�pXN='z<-fc=n xJ?({<?kA\ Aح !eyg OyNɇAO@ Վ, [٘8r~&Gt&5iSwagVTR} 8-"vNolN'\s- >=O!ɫWFW}LU5i@MM,b֛${o!?LAS!%Cɇ'*}zZo˚4 3X:)uvKÔ(\}1ve&$mAhvE28[("\Q&j+ 5 LPd@h</1Y 9cgͯp:ܖHqU<ޒFxq_2o,5)&R} uW6 <_úrޖd]KAy#Y7z\w^Ҵ(;Bijֽy9K+pżE<ZDƦ&oWl~qޯ Hdƙ?0UUPp\{f-Ph-}2;bJ?s5oX\�bPጎ No: >YF87Q؟}G`|*rXRt JJQ%m &:;?=8sdB2 ze͇g*SQwo~"e(Rx !<SX13h4ҲM( agq 8g~j�xA? +e}Hl\cG)tt0Ovs I@$0!ľK;RlDatDw߇si'v;5mi˶, /uPy@N@JxDw>. u/uF1gUO- iDJoʀVfD2l߸)&4 #<44 I^ ,absV�w]yMR8Vx ;\GP3T\ȾATed0'|IFs8uj keu^{ `e?;t bRڕ!4${&BkYbՐ'5;38fMr0dܵI-;$;jHxb#q=!Cߣw{I?d&wXJ/a7}: K )wg#NI^yB˧MlNUjx`R5aeiٳnB+63&WXĢ1r7=P;{)ԁяf aDph~_ "8{Y52<=>*#Qxv6?Fs2Qn#9mOd�+y:ay](ɕq@f[ qPB7d _Ϳo9zH9"l .+;@\۞}0V˽?}9=/i€}󂎁F8J]w %Tn'8 ߅0jRJ<$/]Q;0̒_[l~h-];ϓR~; x6K6F exir;J.P"_4^Hٷoe(bv;^$oxE_Zt!.}_�k9;K� _޲mu;^H&|e,mf.* աH{-0VJ_dfr RK*< sRμ~/9."'\DRNZ`gz^}@UZP|!miƒ6lFg?+;=8rL6,�|Ez0ig,B LgGKe`)uaΫL/d)YԟQZGn=mrɫcwSM}3k°o Ӗ GE+"w`آiH_?+e ]3zqwms@p;9Ң؆ϧAZd}=sqn_?<3~-V>d`gxт ^d{C53'd(bcFpjϳZ `MU,1?ׁPvX/MB S 'p(qH= L'q7ПjB\PPd+˂ELkw D,/ilX_Ӊ"X 8*~>u4rrzq72iA>GsWnfׇ4U4*OT1hZ87}þjջ|"3:G?+C-.N )YF2p~*ʚ}~/O΍5DڊtJ&#ɋ[D 6fPo{LgG5W#moɉ `+ ,<Q�S$yoYA1qG�ZI؅7Vs[|{I33 |q)JfDŽfm۝ sʃ_nL'*%?j\ȋ{>u|GA' `Oɣ=DOxKEι;0U-aKvF8/|3:~[/m~!0^ayԹA0E{ҼH}3|'jBl 뙎1ҨM_Ny_gn438 C(^o%oy!xа]gq%:X>w-ފ_L$ίޥl aQWoY>,*"<жm.M.^ iNm1/XuBkH񶻑zSIH+RAګi~9aͺ`2Jf+@洲\µ {Q0Ĩq M:6.\iWZ"%]W^:+쀷`4+I:oYb+29d_^t ǐ0l|LR:։Ko4ِ zc%2L&c&8{P%q*pLb+ s7HrH R_ڽȼpai_j8p_D~ŗ/Eo Aq58.2&5O"aJտ39lz3[M!i\Xxϐ챚A!bsBw"Yz?w윟0DZHvw�CLS@Rz2+&JWG$gHܙء#so_B^!Ž^0%q*<em$_Tj$5iKҺDTں^0g\IuU2Ho+5�&WIDӹCt|O I܃!s0΢^[T�+/GTFNsL(=uR$eL0�'}lL^XYS_vnһ%j^ɇWņ Qɉz=#d>›%} ;:`>:I/ ysN6(ۥW{ p9~8Ssf߫oڞZ^!JM^$g}|\-0<reґtEC" 혤dzoH Re@Z_JhXF{ EQ%ASr}�)ci`2˫,P㓉09T_W.$pӃ!bK)BRYջ0iWEj]\{=[ؑf<�ftHr5m4rW`ZMuoR^ XlYcHQH wqі* jHY=lv帙dd5r9;3xs oB+CC+qdW�F/j�GvA񓃱�8׼x8 tr*X:S#YhTk] pZ}/8#E_(1oO =FtC H Y@іWq{ pU^3ITdؒ}޼(22;d&hUaQ/F$O+c8ufpI‡c~sNmWZ6ç$l9$xsR>x-0~~?S\kl v4Wݣ0<f)xi3DҚlg>u *KA$pk ʞKo bڶ | 1jg SfAH[9Z62?ފGyÇ#r+2)>HW^lNHZulCd>7Z|#ndH+Cz#GJw0)F٤Lqs|˷m}ů$XcR ڈ?09>b ijH2g|+OP}NĹ`%h3W M.-;Icmt2}XGR4z[:R#pΝtRϘtX ]kGgdE�-L{=DI({˒X@ԯkq#z;)Y׈(1ݨFZTC CdtmNRAa?JjZ_p2HmDeБ`$uy 5;Ȟ#[`(D-i=rHR-PMwN]QRԭk>WC߇tg?| nZIB_ϾNagC&zJl#CkzjՕ2#=h[$}ov!QM^|7 v|<?5wR31/lY6v?4gHQ\sW՟9]qn'Vfr/Jޱ3hRHSu}Cഖχ?Q0̥;~= g.A {yq 2fѯE˪_sR~|DRpޞ$Y|i^Ɔ\ 0su ^Ş+[úfi HY^|,*b|qCV$<͟w&c*l\|Fߜl ˄OQ~zPOl7RG[#|Nl1͏rC9.QUBrzJ/5~0w CRJf�_111ϻ||"/J|[|by!{$J Qrճ&(6"YrrRΚ,J*�Mo5B2R;Ͽ>DŽnc$lݐ}S2(idٿ2= aZIow0?0RRcdjE˨@5NnQ[c9~Pt;#m$ƇŌ nYӡXG|Or'eJ[aBe+d ^l͵)˟Aņ5w"}^цj?ΥT6sǐS!HFbN7.|Z#Q^GMѤ9ʥ~XT.560iTq=ef#ߠ3iY acGWyf8# EI 7EyD/p vtG)b$z~m]U`/hXr _L omF*=Nk@Hoy&8K<Zr ku߄Hsg(w~-pjGN~Kaj!M0q~`8908/;>Cʥ )�/.+C ^_:p Ļ k@p1\lq_R6]%-tipOk { {9,x *N^ J?;amB+XH"oэ2*V"aBG[ېmFs ?kߐCI{݊ wV_9[{&I`±~^̹ <lqtyĕğ%B+�'>; )OǞGGcw [SZ@f rP95| Jy}Lރ47"@Gƍ۽w}|kwεo\ F݁UY[ 2(:-JvzBupOȪ )^ Z-ID~[E ożQ HЖTBa- d;+2WRavO7@8ߋJEBw"wBK·iE = P's(Gcت;Gˢ8V^eo\)T ѻ]BR V!j6<4>Ӑ;8K d~`1':kGV]7̫azv{}9~1`;ղ5Gj, =`rlyωoTDb^ͳC!uڲufOaHI1�&tiKkA$ψ{$LWhll@?Ώi%+sHWcHwρ.thċعHNJ= ø*#c/٫i![oa"s}|[/NDRQYM~~vQ'E9i2:}9ſ^Wmw^G(DC6%/g[ҧ4ys_M{\00�We0\j;pE8f"[mHL Fdx�{EqDOUET]\Mi!|~vGb^^X(?7 𮿽'6kRdfZُs쑑O}T#$W8{5h- "HDƌ&0X7^-;U#I^n`XB0P`&/ a=Ion]~|ia8{|_~#g@F! %Ctݥ C;=D ly"u];'=\뀒>6FA_8a|[:I߆ ㌽swU9g$d;UaߟC/;w]l1|&/Liă7݉ury>Y;zWx8v +mu 5v9X E&Y{@&qfƒ8:+6-џeGslU^#w?< FVNA&$t4Gr^oV?D@F>/k|[�@RdZzB\H6s͗;d =G C`zdJ?Ȭ!zCCHMZө/=uY1kJ.F 37Wz߭/}:iFzᬾU*k7yäs) x_] &/X[S@0ZE7tCZߝ]|˲~| IwX7t+IOؓ1&I@`KH+6&˲abx70F3�XC曼rd?pbdx5; ;͎\]'Al .܂./.ʯ4 9 x HbXPybӃ(sFI[L7R쭞 & E|_}NSf-ZQaWv^!aO߁}^60;sWZwn#s=oy Z{:j 鈓�AzH*Tk@Ry$6 >'aRE!|"/mOx 4sUs 6|巌C_Zk5 l{ CT$5D_AYSRVf<6>7ZJ �^IPHk=? E&K'8<nS}i l1J2wNoMQ]׵CGs{ h=bN#3cZa2CdP"$&3mJ-G4$e#Je1q&{TӐ[5x*sQ2W2g~syYf K}ul>RTS!cs'Jɢ{ՑʛVTwX"ce ˳QW-g-OԊH6W?nE2cp'EooDZ69,ARO7�`N�ʖvю@}Q=:Y2zm$oR4xRF^)HS{X/5>,n&hl #t -,AW<du1Zu] \S/Ne!3zXGlw>L7wKN!ᛌ.Hv_HB N۝6wP ?$7[My>'T=hQXdDrŻsgxA0RX 2|2#e(hyS"xO<Bp'0N3훎g|$EiWe)`EקIQyZ_v~`8 qJzcuy_5_FFѾR@?HSnK@랈Hz_5b - <mb\Yo -$ckiʛu6Dx)  >v.7q[p]j.l*gˀPt_w!ͣ4\Y+#;VEbn}yӗ aCuM* #$dnm<nes6P;cB {o4W[HYn[@a5`]w+wMq+kc S|Sz>i ^<΋Ml44/ܒ L@pk"g8/?6&A;pJ;s5/w=ը@Pw&?iIwNxӾ_ړ^ɞy$OVL>}W+(ߧj 7{>3Cƥ__g',1k%J%<jAkmD^_{p v~p ^ $- 4ʯϬq JH޿BO1IJio:~s'"%& c?C=v d٠iUzl*ruQfC `rm.;Dup]*Ss{&\Zף K&,m78#v%p>5捶|#r*aiC%1,^FySGğWAEsIMK Rf禡jn?#k4tg\>FxKމNj4AMdL|>V҉_ y7\�ܺ׳zcN bv'ӆ1r-&;ubixw=77[!J$qk(L-x-?$Ev9{k,spcy{4νX:L. ~0tjF(.h}l/m3|0Hi" k̕NA-nHO5 eoB*LZGMݪ{rhȋk ƈu_7 k#Xn[b1_H 3_ mN0y~1> ?sقDN/!e8nCU >sd>WEA2G=oab/7S&[K`Hިk.5k[-.).߄d:꩐@#h6uZi Օ&͗OFA;9Q|}WA`<rFWi5DOCN&l?M4i_$mzXN`gFyu4W,|U=Ojr/V`+ h �ns+ȽSq >jo6 eQi:=G7}•.ڿ 82 rAƭir ҎIp^6}ljirddYum;i xb37DLE7SJ/?؏_`AJ)Lc{R�(D.J7 Eekaꡑeli9a #X$�;NolNi JD+Y cCk}^ǝ Ŵ>?]t^T1+}hE%f'V֛H6 Ώ"wp3^^߭HWD zS L!O+2|)?e5&` w#E<H3- WU@r̥.qVI +^JVY}0VUk |ðE0m&k҈T}KsRv-:KuLQ]_W6V7)%{'\IJ'ggs^yf.?+hkF!si&cҏVIΣ+WI(52s/>{i r|`siSUj)IZ 0UgL{fkmPg -:vo)>9=Gv8Nɗra\aHEȀu |m8LW_>mZp=:poZ#Mm6<{"86{+g]]|H콼)e0p'QH{ EK҂ɂrrH;f^{3~ C6to<*.̢ 86wKJۘ','\)P֋ٿMe:x"M)_<7Ņ[ZKN+b<Jv҈-JVq\hHi($Q ,PEHLۡwn!ze`HW}9qnWȎzVƪ\z#?(<'D Ջa߉]rpd)ϕ[>@qN'RW[뿞]-!cdלN1}Rbcy(>玩7`t񺧄_ !Çq|dV{d<7yѝٚfk^d.=n.x*P& =݃J]NyoJl~z R!c/o�g] 띾%z 8<JN_DQJ+#dZEb~O`*,/Ugv7qoLôt~߈}1T?V IrL)D˕2Hѳ7<,}ia\+Z<؇'~JD˫ƭQk]2 pjnNf~ oB>-JǃG*&S*wL[tr-yh<ZrۑkS@ Qvb^ ੵ9I{^AJ u8S{={@IJK$|k3KDlDZ[ ;\l Z*ա[mW>xʳfDž0mp:RN cs -`^\wFw7 8"q%2+[w<ߌOr%6{^Wr6"Ů? |:ne?' [: EdaKa�AdBR}ׯ4gr >Ǒ ,bQN 3+ч{׉njU m|;CHݢ`%kt8! "^I3T'9"MBQ Q@:x)m*  5ʹ_ /X6wbos$&#mJ0h373GP;jidpͅ:{ Ƽ&गȔ&;J %omb ӛ՚>v[ &ZʮBҭ^oK4WyV 7'~%}ažoa#">WkH`1܂6_̋AJmy~귮\EUV iq*'te L2Lm,e_o^ ԧ>#;IT߹-W$[o/%za=L=!,bk϶Hm(_4 {ukeK�2ju:N,;F|nF)(מ?s�;ÑW(ELV\2s `Ȅ_^u!s],p~{,FM=Ul$ ~ gu, JOAiaEn ˫!)o_}M{ &C ߏ w/]745J?@P78_jS>R]'zրd/堔C(aإ!eͣ{^gօܘnTѓ R^^S+\= QI09Aqٺ ĵ{s I3qO.3lڱqI:L 9w M@`aa@~ f|Isॿye[Q03ON: J\ <5L<+xY7YZKCup୪ \x3ȵ!M09[?V֑<+#ɢ M]xj|vU vz+:nBJ-h<&ȏd Ht7~v0qF]j;4WLُ@sX嶊(;$; 8 ⯹@沋nk]4AE{CL2_k.CWa+aR˙MHq\;=Y|峚Lze$ ΅?\UH+r5e[:;l<wddH$;|/cLɐ#Ɋ& |ޝGk؋f Gtt.Rd Ja̳]ʫ1xuAj"T 8^J.җ0#7L2aΡ $lx!\;g}x'rPX](܉+s.;1& SFH^_67xңˑseϥ'(n* C;uWF/#ܵmw>yѾd\Uqk\q &{TE>,ҢqO-8#\EJ]Hܪrss[uJ8|E&oK_yoAEۥvt 2B @WSrmp?;r<!6]7 _.nGzjZļIwFk"5/<O$G o@zRa_}ApګEwiw;4 H>rAw6"^c6ݬ^n30d%S I9f]@gGՓ6`xG[~)YEm`jLJ+�0hi~'_vT;3)օ [~c 33W~?V#@t/77~)[í7O6dA`L ݷGG9b2ѻQ.v&CXK嶺$fi`N$rs,A9FK#yZS (xɣZԏ35QW@0|1ʹ#<;Y@Lq1ŗ_J۷6oe=mkH_\(:R-5)g ŋ\\A\5iev}f�XrKD˜\aX-pkwA7o]M!=MoӴF'ʡ`Ea)t߱;:1n鍔y듐KWul/kzHʦ=Zb D9r`7k~z"�/*&Ѻ?_.G'r9}UbN~ѫ1N@O0Y 5!<ֵ$Th![30j+յ5?4~RG7+Q!A^QCWA0Mgd\z%B03c'uf X M݄YJUo:?j.ϼڇ{OKitͳDߤ'�xcCQHht!3p#J\^TԂC;vMEꡭ10#{(:T!s_wO|XuLvu݂q{� hDjUL(3.g4A&dw;;{%byEg/U7KaeEG3Atv+5x S)^TI%ʻ7; zf- Vb7ӝAx! 8f (dY4CFo[�?jrW5(pvs�R.<P � 5vJ>:qe¥Z|PO W5g'$ /Ή0<v"8ug v̧/g.aLyN q&PcF!g~1 EI+gj9$/XU@^ȓ`<)YI{O>ߵ1F#˾)n )s^`\U<<o.\7|qdsf`wmhZ$׷Ek牉sc$`9[.i uwiuwU^DO||mGy׆nΚ] B@Lآ;B IT1:ej$ġ%;q_p%/<AZ.r ׸=qw&rۇ() IOGhe/w4Cr}cTM݋u|хnu}S3ڢ$ x\@t>ho ﻮ;b'_gz b5{No/֭})"ƌS<\J%&Rbw|-26c lg4_`ja&*L}%S΄%c+,qk>^T%?0I-\Za뀵ʺx(ͼ;ufS5)&؁vV)ٶ2:ȸ;Q K\J<ajAKs4bF+-_  V΃iO/x{"/p7ls!!cugH=o|zZ;p"V_y0HyJD7 Yd Xg{�|׽xY+ԣgu`ozH$ }l,DKcD~ K["uM4Ռo~,68@&Od~~鲳?f~c ܀ ǁIǷgLEge3v e]=R>8Ig&D _HdFc*Qp!^#$:6v0Vyk< LQxS=зN]a'Jt%}ΠDhv _&}ڳ+O؀R3c2\}O>&y(CmC [&L'FG uU`{  -yp#\nܴNԥ}7Mu<Q&ul(]PT]g"zOF7 |PlOaz:~$<8o3p_�"N}_ %{{R]$K.վdhz~fVS2C<2 S6rGy`_NeDvjɭ, ܺ@j+G$Զ;Q̖Yvlm."~[ǭk]M7ʭ"tz@PRLkf#=>L1 37F33Z<=~N~ut#I9>m6_zxxdrH)X9pL!ĩ7y<0;Do27+:o#sr1 Z󜘵}RC6H"В(`<QiGZ<f40nyӤ2#)e>Cҟ +HXA~.}]<,k%{\@6ĔJQ#Ruαi*HPHB&m=`|UɍSSDI; =!{Dq0w;G䕪_n x|xO5+&׸8'͜\)τt!zMiH^>y*%!*? a־<�%}W܋v$] Yrv{ iwE ?ľgۈv�_nVk;:?V*hE˖C:l.!856ZQvőo#y\/#ԎdHgvb"MOs6%:kOv?^ !xwݻ1#\ͅO/OD/ D|z_ǗuJ unތv맋Z@Sb:ftݫaR5okG~}bWX~ȿ  zeE[fKH%sL> 0mh5_CRMSi $ ۆYPwl_2N+r)ÞJ<'%UT'HYf 2*J_z%nP@Y~#@`һkjsa3-{Q KV;*bET꬟X %G䕹J0|lB22-i=摀ie|6k).]W? <3S=](<q1 Ni�6”TF>f9iaw*[7t`N$ƖRAwI XmyJx<^g@^R.+e_w$&d+mO@Zif[5_K7#ͮjO52)}ߋa|x^. [޻9\Ӈ瀷Iu?dl/SEc$%ĩ�Q`oRڈ~ҷ̨GһP*6_ƶ\U$#qkt@8O*&-$H Jh5li6{9)p>348P#|kGD#8s}¯҇LJqi{Ti,5cW;Vź h�N/]oAo^XkWZAf]%O")y6 $/2Rς lCEOv 5O֎s60fmcH+o۳k_q Fn4S|`<Wc< *@ Y0tC# IJju?>N(#pu"ZnMG*u!׶u/�,iSE/*w ,)"?GRZpC$}i</ j*٭F~o> |MO_�G'6 IC4+.Խ djQb)-$_v9J{~98yZ%8‚$+mQJ<_4q}9_c qz˙CH~߶>=2L*a|ޙ�&&ʹxWҒy-HYB?5fm=*L}=>k1:5`DBmskl#GOLR`qj'<hw!c,zA_`hk˃Vλ;Ž@*k65``XZ%arNNխL챭=5o#˃Th1*;�G2l;xE~sN\Ɉ+ |"K7n9ྼPrHѕv՜E1`q^6 G&V{^vGϝCl'sQL˷:4d܉iQ.HMx"X={g~:b=mz )>%J0}cjP*^)3ne@l9t#lUo44ohGa^pTsOz&D$实5s}/2¾g0h\){~ \ݥ^WaS!CE@|'vG ݙ#]S`iR|js;Xfyۂ7{r RKd'6R(yi-Q2L�5C2n=4e^[Yi#cjo3Oq ƌ^ZR6IMͽ! gQ6splL?)L=MJHY6Qtc~V$8mxWnU1$]vH3ZnCzoY}3BڢC -~| i^g $Hn=Ce/?p5op RwK ,kC<t@oR3A鲻 `=趩@µMQʵy_9iߚ <j5DOSLH~Soe{*Bmsro!)d}74I#i|z)%@rag<%0Ucv]zHI`'_<wXϨo3дk|v]|+԰i x'7 Be LM[_hRIXi1ːixd@}t@ ݽAx)L,voz (LgZinEmunQȐ|t!=l]D8X6u~:<J8 Fdߥ/գ+kf/CɓbѻH4YLVml͔5=u"=n{ z;+^!KkU&]yu DǛsIH.1tq)4\SE * 9xDtuL+MIW [&_(D@mlMVrCJVMFƆ]a$XՋQ(Fɗ( s m\*+,͌hB9ݸ?<6 ó} I!T$$lI*-$B*$5DʒP"B"SY>j{1}sdHJ_Є-|բ3xbx >`6H߰ A1b_Ou#d$qU>%QybuQg&ԹQ?P|j#Ro0ysX8u.teLuUAc+<bӫ 8&1!0*{ɛ YumUY!]ž3/I`OB0W*pft4~ցGȝ0?#zkQǴ]ۙ_O[W/b| m0tq.Ic˯~ ) M6MO0A<Zᆉ1N2sHA̫fWjM90N&[NpD0◴"FW`<R $1V02 /` u-:UNx~Ai޾:DHm4^GwֶXҖj|Tw' X~m:#<M_5E M.f/1gӘI * i;<[kB'ʼVW?mGcfGw*6X=`Wj|~#M0רN�NގҔ`n9%�Sv=wgVZ\O�}39 j[h6FSJz#gx(?8/dj.k$b籽efp4AE I)1^,1 xLAG({UHq̽ IL8+taM$zaW7S`ͽQu2UGݚ?1f%oN*ɱݥ\Y. lCMr#DXdژ9is{l!'Iױsw +?.n>-5�ma%dcJb: _o3D:Sg"Zc`>EyIZ%5xn 0^ʌԞqju F9ԨTW'lFqN7[ݥWYT6y6/D~^5p๻6"#Sy.&F,?lTam3q .{俈w 9w#_E+*ʿ{i>AN=_1. |кQgAJx$iϚo;Q o| o:0BCg> r>+;nG ոoY#¥7~/+ 3l ^躱p$O&(5?%J>JG^ۀqnhbr=np~ 3H20wǯ9qB躿aqXZ偢 n,+N|�,߫Be o9YA|_T dG8o)EɧHj~[;;|(3$YX[9NE{ 'jIzUPTYo_{]k)(xZ!~kDWGM0ZTd'vDUzYh-s/|~جRE}mRa<yrp9ԥH,P|*D(u Ϧ\1"&)<nMFFdUZVP7߮W u\j!0@$У f7Z 9ٍ@T^7\auX~g[-ERw]"mhxd4 5;3)݋ڭ߽;_!|j5[@ď͏TWV3:ka\T`|{E"z>ˣ`笷ׁklZM>+>5rdJMZD]a*}p[u*T@zhc,uqn!5j80c0W%# i]E:ixHጾ^�tn2DfD0d1/>e: hg V"j|K'^ 힦3ژG8W$m@HBy6 ?h.njBuc_P'j?[ncGg??~j;/O#$;#ekQ{6zM< k܋d\c^f[Ï&$a-D5HBUrb`M(;D/Fd` 0gtY"DY?jFb{/|}=0FA"ڳ;0z^Dd}5-)*4_4\]CԛX.BQcC/"宫Xa/><+D$tJ&.L( Lӆ?MWϵ;!Md"J?!7"~RbtXѧ^c`g>#@oI,'y`u$ExdchekrG9Y, )D/gKn|z8*tgt[NuCL_]3%B `>=6}70vdj٬ ؛weabW;RX4@$My¿?D*u<VCɒ^QU*\N!>'ȩ7 w?Vt]-RGئ[H{cN|+%P%�Gl> I(.?q=an#-[ahUD*,;f>i~ϡj :wnNN\b˱L`9n*Y)|#la`Ф8'me�?{;?k_TWѺ0,Fܓ GdDf`gr#gRsz6鴜8fX:liRQcKԷI{'{F.3>yCޯhys^ MJKZ)B8r~鉲*DroشD%8 $2yG$O)Ճ(P\(ps*; $hw,>$9]*I +Z- 3߮fʟ{Ʉk bPFVfЮ?<Tk`pؿ+^$DT!tnF;hc?OpcGּ|HGlyc}z$ \yS~0kpb ̇SO 0ǂΞ|%˿w+7{]>qW _꼳<:;W?N>agKTqo>zEcƕXg'C=u*6'AL7o :#ad`8N ^%GUr&|cƮ|@ܜ:!fھZ{ZXED?&S.:$0bo9RONOۇ5~HX\X,=wG*0<gcο7k`D|q:i"||2}*XWQ`=hT+\ȷ@yO^Xhp 8q�^-Dh*Zxjq\3f+uvs`^'dy;%_*j[\oDi0Y 8~+ +m=g&̈=v2FK+ |g'StXY6]H"$`ق@zH$"dhSw%Ok<7qS,nM¡ڭ'll"a힕FT!!"m\PX! tK{G`ⷖ憈Kqp <[qJ?_HDif {mz"4Si p?0;W9ON^F,{hAiq&H!1~I~Hf6"Zs,>~F_02WHGmazdśO##q1yHB0[3!F}hDta}7i~OJby"+blةocۙ"`Yz["r?Hr:r<IM|c%!ɽv=an 7!b[_uKlCыaD1,>g ]_{hݿ0Nun9 i^ l)$7畄pBݞ~�.@,u#JEZpK_N<4K#KOp@43c,>`ՍɨKD?\ÇAp~q'u9y�vzWa|DߛWSyA0@?i1]_ $>C20_ xc}̗RFěE'`_Dȣ?|<BiJ`97eK�RpX9"ڏZŧF@+I<'0O*"ˬ)R¢ #az(c'%v0ɳ}2&q");ia#ƣo~ ԆE0[PyDҶcA$shԾofrl屢 #CR+? 32tw(>Qd:_¼Go(5`r&"Bz!U)_>7y_~$?'ލ痢< jMu)iD^wYلM'}ܹ L:5; `Х'F3&j@-I̛Hkۚ )7||Xn- ?%49wk4]SF |wtE6Bi`ZV͉1X*Lyq7GRorDj"l;/b|Fi߆C.F䝗]RYa0;nZ1LԼj:oQ{5Žqn9}?PrZ+$%^tȒf # JH|D{w<ǶGF"ItBg>"ί&I1O3pQWLӱuLB?S,2Ili:(DY[Tst|Ն/ T3q)%W5?ZD垳3+I=G_n  ?ݸşYD`v'4*T`%Du+ .A]Ӌ ?2V1#vޕ1o_}<?,< 셑KA{6ϩns04W W>aZ�ҽ)@W6ؔ`E@={TvN`%يnpD43ۘ 5ieM[vÜ Grs1q}ãW|%3�ybsO=V,i,pV7]DI=ݯX慝M +6.B{cJ̟ظ++ϟKc`}ɲM@竸b}20D:ۣp=x:n+`}/!ғ. ʡclqkl٭ VtrzO,+.GyBp%,׶wJ!`|sD֫> شג{V|T\,4o+Lx8�>6l#dٽ|y+y$:<m�EEY#J-N{ !d؝:7x"zg2*3(8gu76=Q cy#lЫMTwSuY?w]ݩ"kyʀ^~9q@0/5W ʭ{O#`?F{AXc 2l=nAT&m=IEʣ0+!̊bT)ɐ yi^"Pִ˘Q#;L5d-޴9F]ax;21"NtYˀ}n pef\ =_}<3Hڙ߽&,2<W'=KR̶iKlonm qfש8\nZ�3NsH*I݃\ x$Rdsϛmt} wI2oO@d,ٛ7@E o[2CzoɅfwǍ8=?'ae[{?DbO2kI{�X.&؁%w^m0K7DΣ0ӳU0Q\ �ڃ3yKI Vpc\mJ]-p ˌj<fې/K@<Nղ ~\㞴i'߃J@{>É<ӿ6H9C0$}$S{#o2K Wo#|y#ߐ\tk=`m4WôkCoBhd`HQ'W?}4"` SQ_#reAdXmV40 wnzk.[}$KeֹfȪ ;k`3 BAŝ+!p+C�ÈaX${X_7J�aU$SuZ+7E+vW,ҿvsb<QQs�8+?[<Y)~ȥ*N<&C :"^6~ +?<ej�# {‚Fga±g@t憇-׸L]Miz9G2)<5n Iw+"_D$ {CD2Ex%/-G;ʳ�U|PL MJLcoo-77/buP}x'H9!2 OLJو\PkM@|_ۻq.Q`a ´"i>_yU҈͏zbެpsAqVѥ , z|ZR Jց.,cbc�w eg6Mc՗ӣveQ>5�ϛ#IC2^lJÑ}2'>fPqQ|3=24!c~j6ZGA**c\NV巗 R ]*DbaV%) #L_A]׃i%]ǜ%Fh! ]iVd^Wshn<BM<a]t~OTp~'(^DK~ωCM,D>@;v>>X(h,Aͽ?qof$pm;ңn]͠?vôKfRHJX!Шй} Zk'[ J)>qrB#tVKk } h-Z =z??�j`] G/V@w l* 즍׎"_+Dh#rø 7ש`[ͮu޷Zwf}ߧyVKRX<sث7X|s MAG#9# >x4MI]Z6 ob<]`heKc}VgXtoJ%#ÿ!\_,s>fjq[l@.sᆇu"W4Yb:dul{KVO h3 J)v>wڗyo8 vɣs/Y 1TD-Cf*Ô�u}E?}*V|jwU\Њ RbM_yHEsK\ }Nt7=oҨqFɍXJ߭]f}۟[3v6o;MOtteַ4V6'LEoEd[XY:gB䬛3FS=OSx72]S!4J?P* XYy5}=6yM|.eӢf@oQz6fqе#;MD8\ *ZpvDR^e4<$0Ȕ xDb8 Y7n=fy ~E8ӟ|7|Bz] N}uIH2OU8g~۝la`UZ"BKqw~,L]^z0 BD56D+:63\ER70dYvm?Vލ|[#]jf\EƸ(br9z >4o||4VSmk1ὬgMGVhOY^Wօ4D7 ]cq̤+L_StQ%߭ Q~m./I(�^r>D<Ҷ.R T++:ǷpG>BX&v֞U_38jq04` .\Ovz!"_̔Z B^VK@L΀_YT D ºnI ԪYp I8mkkg Dv[K/xjT§K^CHݡd}|V~GH"~h'&G�֬X4DBG+G`v_ x,R(aV9$F1QC`ov> G:_F{S( .k>pkiv&[Eu5D r9rsZ]s " ]?Zc maDq@BeU83"e!Jh̃z^Mǫ G'Oe$`*%?!ݠsXE kӺkK$Lzʄ\V - Mھa9jz"\bl{𯅚7^-ͦ9Xt?=pg|. X/\vՂ_~`&H_ SC<a|B͕_˝qۈH~]!3ZG$})Ǫ_W񜅂".[%75~^5$?[8 ,`^"K}qÉk?J39(MV5]Kc.f00_CoI2[Lf˫/ v̑mS>^ p3}߱ ?f p.Z@0mG0wZ1}Y9n*!H#!}8Tͅt{eȌ7A/{25y9(E= ҕW]~o<+qrÕ{WXgWf 0'8,uYe$WlWx ,uKcgYQ1•h\R Gׯf㖷m!^oU~uldzf))@: }K?Oq/c^:4-m lor*Yvqs 7`]") } ۸w~ZT5Q="TmaEl9Qjlk1^k]?#Җ[ a|,e Zۯ~RXF o ;٬۱ޔ<(V0g?of~䒘OV\/),u{y$ZBhۘ0;? =+cE8_!\rS-+VbK+%?'w- 7Xu zpVxe439 )DVgVHw`¹-!و(1s9"0%?:U슷YKJ!bD{q$+ۀ(116齀k ߎ{ug@pE6fw[/mWDXb@ skVGTL`s֑UV ތ{ZI{'ت `9`>۽:`,[Am[:#@W^34 *s7 ~E~wL}2'" ru"h=7&<r_QT=\O/bXs*|T^as`Wz7ݕ|gM:IJbpW ʄOgYf6/IjJ-B$sρ/Ŀ0ƕSaVC~I@"䫞n=[|'L-"+㈒:g׾@7i (.!BzYf͛~8rjO52D5O-.ՆW6{C6UI ܧodC7= "%]^$yvȼ=l+}ڹ承wz {ps`ypNVy3W S)Ng@&{8 `/ m‚!@<}|V$Y lNW>妗*ulyۂjlnUfëM{DnY/٬ ƽ4exi= gN=5�諂I=OIXB~p`\>}N4.᪤L|A"sʥ߃PyuwZWW bՖ,DPؗ ŃXJŴ$"tYٌ+B~:(;1{2)ɼr>"V3j񂕳fk{"59U X[O .P K"EL)d~l с7"<"?t,Qs#(0crڈ0<: S_9>6k}w!vsgp:|EG:ַ$I4ڲ|T!Aw}!;: KvpAT=z eGO;)`[%gy ҹD2^z #!n4m*j6WUh"J *l(-lKCnݷ0'Z#ڭ8$pܓsVn ^B9),W(?uxx.h/Z%Ѥ9.`KM^\�GDu7D[ 02bDXY30D19kW�0ND]?\(|Wb0nֽu+IH YUl_S/-{uχرo_D$!+J_psG:0h}:I|DYp)=|- 6R0{cM{c`;T&@4׃Sf+¤ON ԫUVn[gr:`?戴'LRXna/ N1}n`Uؙ2 "iS0G_~]YEQdMDA5t�*?QdtFDDCm]:$!_/!]WPGR{HBnނ<3Dj9֧6~c~ek +Sא1dk \+lxn1stI4"2>W$\yNaBhL~OL?<qB{صy%@q4`\3{nKGuѣ0_,z)B/y`>�K) oTQtmFdI_["խdmL_L7-D vUO^NwͧJh0Jө�6?Gu}3?.�v˵մqݰ|{*so+%z{ߵ>]쉤FR.끛O gɄedDX%"LIY\֩ 'mG|՝x) ?0Wcy]Dkv`lT9]<{n>"\GU^m -0=}z5D'/mt`уAxLbV3!H0 «:N[|mejYD]&WۏpF/G`< h5@o__�F7eR+ȕn�f-C&"Vˑo 1hW4Щ_D|=jߔ�"ƾ[y ɺ]!3,pģ=j7(@cm1iӎ ~|8H׿UR>VwItv ugL>{[v!«rc2kw鲚~%Z?܌]Ou{@(a\K:.){nQ?zxX;Ğafym5za5zsdؽ5`SԒ#܊ۧ�iXOX?N{1{,X֞_(ܾH@7xG[":x"E2nUȍBp(N]9k.G?\ jVjHq{,Kx$\\X Y.GdE)%wOoGO~�̆}fS\nȋ$dxE{`O*U`z"Hф 40I(];51zSl޼C<a߉~wZķ'\FvF$E- ++.9!G;{.75KON`ҝodYK!PًdTDLkw9He�o8}^U[H.Oxs c_a£xx&I?j/ ߬H~gyB LUFXCY@LD:VYv1C?ae`D蒽r "ݟ0߆q{z,~1oDuDܴ\r tQ-!@SֹHQ}T%!ʹglx|Xc(2[0P;@8ާ^-z9Gh|,ٴm(F6 |oR"VxM'wu-z|`IhDDeߵ7@f(>Z߯5ߥx 4m?oG ӽK-̗`/yh,܏R]";ݐz[%GD8 }kܡ"畬zR_μ Z*/o`;zz NUED~/c ̍.unc10޸lM D x�eE>[wh MzPpg"4ו#bHϥ XcE9Du:,iCJw@C%q#X>j;sj^4!U.DTs^WsJ <ka>q=b % қBΣ*׸B̓r!XC  xST}K[zS̔,Iƻw"V�ΚJH ۧ o1W/{s˚VYOmL|>#@l?G䡽 V5!ZKYC?� sk_׌"t><F"c5rGa™ C.w?H&vDޒ(DzCm"JƭDy6vda羻]FWJ-\ BC S~˪�V64j"{CPDrw<qq+ j+\2N:O�V9O%+yVV;I| h-r;#sK;/Glmd_dIQS^P+Cԡwk,F oJ{j+0+5C$_aL`~j;$m-zŁiD7P#p&8 fô<t;$<Nru% 8z98fJgM!Ys̏E7=nۉg?/7:ȍ;DRcGཧl:<\6#p]/wܲ8|_ca:q~E#RtoĮAp1֟K|ʘ={pk h7 l w3ʁۭ/:@ON!\"yC:{8 ضo D:e[gj'VAQKށQwb|H7-!Q5[$o5Vw|F?Q=~3mW"7#RKs@ws>�=֓qTbXB$̀YňܰFgDV])̑^.i6v;u; P)'D]Wby0�'ZX<;NDLWFRK͎″OǁqN>׌}dnOգSqFu"l̴,ށvsh7޵쉩D)afor+ξƈ*DbcVDLE['x+0N'=슨'X[@տvD+l 7 <}^1!"2;F|Fkr.^.tmUi]u{T2$PVb5B)%^<Wm7u^>c ,bMRd}z\ćmψ(;Զ$me->wg�4a/@6'O9,<;+17 x66{. `~+rC"glX,_o=;~'By>nsHfq@\b3Fd3CJͭIKě(lfc=<[O⫀C'8O&qq˰MmN{'ko0?jłXn0bO~nf0)^ѷ>Dx!M=θ0kr"3rަ~*MnU6~_GԿRz=0C:漺Č1~D/d, \?AK 8ϮJײoP; +H"4ۨ8*::i'{O7t[1UFYͫaU4N[y%ģEU1޸u06w!"h,|Z+ dS^Yց(5g0eUv H/ Ӓ϶6 e4[{}D~^zM9~Y�"]df)hvqHpexw_\.�VN3x+);tB@{+] SX/nݏE'^ R,nMtb\ϙL`'~Jζd7Ne\gvla"UUsU]jYV6T&XX|#M􇞝 s\IhaCTҮ"֨Day>*7dlf1R׿̇oX80XLCeޤ6 20"k'%�-tG֡zDrЩ}>T]e#Zw::HB^!i&9bO|.B* Deak[T=@H`~NI> B޹S(S8 ߖxg K: ;wPF7vGGO6l@DJ1 Xuv-/sQ.+{&׷`s,gI,Y }6.2t࿎J~s==oB^OK%_| I V+c\ȮG9$I]Oxr.B60֯Onm?T5' Q0ywbw0Ru qiG`FpDh QG |BG/+T F/俑2ϵKpVzAߔ{No6~LgnH/3\=.6v 3QV {W9,mCoº8`h$o_(t~,tS�B^d}Ғ/? ?L{;$ &_`lz5?zmA;qa<cgDZ*#[Q:5+^9bZg`-e;OJa<=~]qw]ٌAm;U\2o16W�|]uD_VTWiƋΤc{2ﻷL2)zؙL}pq8/FFi^�=mAT} .?[@Xco*a;9س7"]4 +Ga~ޙ{wYi!b㽡iq>f %s%�cbӋ209=1&#w7);33եWg~lN}"<l^!RA[Kl˂0-B?)RJܻ+7,Fς}A--z ,D[|. mny]Fh? $ظ7ϣW_i08t#u<|b.p;~3<ড়YҪy^z;Hm#WGR[h)z!-cՈ&LkDt1<7!yxնf0ɣ5z霷IYY7"�DHVݲ75>KE+@d$gr44 `;߷ ];umLVj$ז Ha2m lWLv!D=vʧz=¾_#ڄ=v*ILC~G=7Pq}^o7�Cݜ_qQ\yRQF0PbU|'k5~^8ׁGB`ZڭACh>#Y*[5ar9"O#\"e&.ұJ@_ls;̝%Rm'Ĵa^ ]oZ5`VmBv臊0WZ/lT .va<T8�oU=^hOTaE[3P$tuH5 ?FoMZbu[!ڎaX"=jf>5s0$?%] CrkڎQ@oIc*޶U/LaW;ꉙN4EQ҂\Q:{w&i}B{}uTDX18Ksv8}ɏ0s|ju^=ڇe]kIZ L٢<OD->s:_ex?"켜/i\1>pG _sno \4o}m`"_B�8ށWZym,{Y"FR`>=9wh:[Î5*.b/$"|Q8X 9�sAW%3]͚rB%7kZ QM m3p쟟77 lZ(w}/mKL>)՚y/if,gfUԅ൪? 3/켆lK`I}y/{-]wM*qUA6DqG5޷!b6dsgw<"'zk_~?HrDW^+ޗIqrľPEx7鶐Mk!u;D2Rv,t)�u:D.= b ~?ܘЁ{_?|^Twy!"—x,e(7`cQ_9W'~x <3+ Og?6 %" NolXJ,oIvĠ#o Sfq$\D->!j-@s-qO}pƋn`?)qId)jlD8_Ǎ.XyaZ7OWEMj\~d!Ľƿ B욗ՈPp"m )A=3dc0#sG;g_`p.I])>4*jLƕcSNv.l˭�`]p' ƬV<_s+*_2L1fO7!mfg)=?~2}Wt]9)?n}#0GϝETg<7QNED!/O Zm+Mt0pS;,3&t>`!/ sv\NCr[o�}Ah:}lf% 6O_sNf]de!:;D3oDۗrXέ<uR�!Ԫ* DuJf4"o0.O>QfwD20PFq5Ie0Kpr>1dΎn¸'ک0`8 ƹط-Mcy]hh`}Q7J `ƻQdg GjMz.Zp D!s#x1Y{ufFs+^`,9D²�5[M9p% [IKU%mN `3k~-g|�ԟQC^pA$x`5|E)$ 7NnU;8zwר3c{%%aR,t 1u(v! 2dϏ@$lnA">\}p.h0ު e;MzVcW}iA /:79hQ=oc-W˷?t7k@K#[kEzd ",PCwnCQAfBp/n06Jwl{Q*TQT LZ}^&p l_D$i;^ \̯Mz9l }4Igt,2Zd40i5ya$BΌK~XI.$5v.ٳϛjସ/"sK0e=HBb?(:얞׎yl's xM̤[~MAe-{cyopuNLߖc428d(�Ohxe"P:}X>E�&d]{D^SH4BD2?%tQn͚@Ȍ[n wJ%g^V`(mV{uڕlHz91ΎqWP64oË!\^Mx,=<Q&Sx׃7߻c|̈́"$[O"e}r3MBwat |[hAK#ؾKDO 7l-"쌰`<=�I$'0\)FFX]/8YTCWɃl:p6̀@+~93t˻͸YW`fjhp7&uҜN7Ww(`{'K}Yi|XW7"edd@$ ~=o`]k]-`\~FM>T?`.?""<Rը\"gDd@FU ЯZj 9jH9=p[:?y0^Y]?6XNW]DJ .Ȟ�g|~K:vS\DMv}6O{6{ܪEC ̖0aAϜ! dwXavQP8"_zZ"pޓ-{+!› ̚?C=0n(^76L K `ag5. Rf͂?Z 25HsXƪU6+.K=6 ϐ)Ոr[n~٦N3߮;X<X*Uy#X| ǧs52-P"(tIjَ[ZxӾeJF:J1#1Gj8$!IWcFm{.=덤bo'bʈW:q[Da\�'`vỌȅؼh}f7>e9VVZKv.o $s fj\W<ǭ5Kz\.Os5mGq3qc6@dVy90 ܚMCvB�c`%%My@lq"."%C7dYƙ[dQbf~[2ew[tDXVrn+ab2L0rTo[.'eN1<5*wМe n-JE}: vr}D3Yxju aƶg yJsҌGm],<!V*,t/~ٙу; CsXKUb6Ly3[ e@{*(+Էְ< 4 d̻l49Z-pdWz@KYۇv/ M2@mowwMo[HE CQk݀݋_G|^i2pk^�|8\XZmZ 6\Ϊ?@zs5fn4`W{"ٌa{: ~yl576(1V`Oh`v|lQ-BSi<e;Al-ޡr0$Ѳ(@ XzfxUEX Ҷ>\`L5:nu@J._՗s,"`&$PLVRߝc-3CY<.V81Is`x8Q _=jD2Y{}RQvLV@Jm;nȱvIfhm}[6_hAa.Iu"_On7BzL\l }kf@pѢ.6m+EP uvcיzqy8Z99:Ab`T=ora -߰_v&Hb^^ר ;E~j�ʊRhfW_,׺`o,CdSpZ:kQ}$Uv�kế"9㋞|[<#xa]6?.KJ5N;QEܷx9&U౅ xt? 6CpI_dy[p ܈TD,bkۢYIl=�K#,s!5�QzTX"D8zs2l |`:GDHSh>fp4p Z5zh{0tJpn: Q Af-"T{q,jo]tWn/½9gʎL�%%¹HZ.ر8cX>. VqGo`]nĮ_N~gؽE_W=*qW$X}0ˍ0Ruy!#iȮ sW*b`W܀6pq.8_|2S63@wFhqڽRD]&fD+ͨ!iZV[py�̽wBDl#x A<Q[$s'L14a-5!w!`2fќ S_ 7nB$Ä3o׃ f:<ǖ|Ѥutgm!6<? sS$6y[~l4M>T߻nG8ܚ{b+!67ZhGԏRRL.2�;FvctW80ɯ`UϵxCD kxZ :`^Pψ#2/;@pl;!"d>[S jJ`*zNDXSs.}J"5"-A3X⍫ly[uq`vX ̺ tv:Gf殤꼸h5UG$x{)`|~I)ۍ]}l`WM07"34? c9D1<kqb.\Ӂ))(oTIJ b_T^2"N~ٖSr1H_5[l\�,;h-AL+v˿v^#|g<|lٶ@'drNPuAxb$g7ľS%9S2tt[T/n㯕刉 "to>AD53HJ3D4o_rn%Wogq8V3|wUE"p` +'./qա}0{(z*{~}XɡaYְ ߡZ{I|HݱPvy4iKWY{x}7<uev]`cssF9k?\BP$qY`-Ng[d)$}ﮮU,ht )w!bvΣ;bCS='}"ݯ;-�v[}|1i Cɬe,Q(yuG>\^#?y]窯5v҆OnQ�#Uq1'ph4"R] D3K֙$"CU}&xD]pC=O>iCa$k-}�/JDnQK~[x8Xqk>\m]|sOw]%<(wr*V4{dD9'd<Wt%%{ACv X,o?C8[7u >Wa[O�v:[N{/8u�ލZ@|ܞ~:-r" x|M)3<~=> քZݡa sV/xK?FDGULJ#V:{u(…+fcuZ9uaܿEEƙc `c;B6z$DGΡ^K"I{0NzmMIr%{_˫#mٓ%kc@z\^ ¿z9ZNx,}XO98ue﩯öw�_tDN@n@x~76-`I1~1RE5A2qnV],u u/wI p=ɜK^X5"k|E['۫ w{=QsAt\ { H v={&~ZtC":8m+vtx͛za_ P]q8QO\{ܓoE./ֳoU2:0t{CQ;P6U$ k\shpobLohR]9_ZyQ%C_ӮYH!bnO%MDĿP⧕\r%F78o@TU~<Dt#d!/-. j~soVRF62¿@hah�n]jX1vOKHW!eD,o/o!򖓑o^1C\ho|'^W~5`-D{vD{:p͛<LTT?rg#j# 6�o6h"x[i Yav&f3wܙ38sDZX>UxpWǸNW@lg"6ۤp5G#z%H-zƇ-1X _ƖO뷗p =7�;dG[ap7C?أk2b5SC/o; =[{Hf]/{C vJr`8(pl bXcxwZbﲫ|qmNnplrge0 :;,`cʢc=A $JOO'�3}`Q?+u]4~F`9r%F#&V"ɝ #{^7yԮO^8OȀD:&gݺ>Ei ݿ)h,tnW 'Lж6O6>$L؇+መe:c[G2`–vS%~ojR}O*f߭uɋzjVxX"% .sb:"[:,jQQc.0 -҂K3޹?{;p T>_ wXZ} ky7B(fFȟQ`Q]w!:,}e�e@y�<a@|ӗqɩ ]_f dc<1#mb!~Z'Ÿ|[wrݙ/DR.k}KwP[Ǐ#ܫXiҽwCZ]  ɑͽwί#+7j$^NZ8b:x)mے#0U1m4tIE>�>.`2&+]OI_G~۳ \҆vs o^u}k/aR{q"6|s`ɣLC1  E q^pɏF-Ny\X*yvL`q_pcwPC#"с $wbV>ڇ Օ@4<oD08KSH>•]Ǖ7wv 5MO}^W0#wQaH%u_1iorRۈ3$ O9ج n9q~{DbonH6?#MjlWS= \Ӫ׾J|6$!@6[4u(?=IɺS׌ow OD {7耰mA(ݫ$^5B IEǦb+KDe*G�W{e/n{ÆQ\]UmdD%*gnź {'H9>5,o[oiE͢'H 5z}/,y82wi SDH$px[r<$Wj0}|6>x]<CقM2:#Pgai|]5r7>IDkI}Sʔj݈H`Un3* 4@>42.f=?Rcd[kzXN/S�7G[(sqFiO<z%C&{GCb+~ow v[jX`_f2IK2y~;p)#T}eƖMocG}O⾖Wf(4ڳA(z(U)`DҀYHfDJv+О.pYUx0wq |K]:Kƒ`\.}8I7vjomW"/mrg'\[ l^[K#\7 џZ ziqo;64P }DH2xOΪ8֐yM'QظzYD)QM^#s$nI#ɞe ў[]h9 DV}U ^�bčADW=IuKh3I�  !,S9ۉ8g+`y§}SRE|S.[,7)} }jhvEA+}wau*˄GAe![Eqܐ�ߠi }k?GG`5_'{Fmme4cΩkJ@ۭ8ᆥTO?Z9Ai!i|hv=^oxQϰy.Ύ0{lŕ}[%D~_GyX^�Q|,=Ea` D}?+0asfx tt!ꯞ+k bpW.-w.kK2[HBcQJe Uқ:)t9"|O�傝Eۀ97&a'9KʀyaV1"crxv,8qVIBQ6>π{g7F>hwkU|e6v1{>ӮQ( Ɉh=pjʿ�G iuxG_0-NI/BUDhi0M3QpvTvAX60R9�ϙWbs}~2̽;M Z8"p)t _hr.k^$uOi,^^ߒcϘ@g,Cz `>N]�>H]#0zs/7`Oj7eI*ug6\k; qCw#Iiza9rm& d..X`HWOq+ƷןJqo`_͢N0DٳDO[7oovR ̹-Qp}pm�Ï|! ٍ#:|ɿlG@wmZK&<엊}Z"M%2ߺ+D쾅>ÖBo#`6gт;0e֦``v,K'"uO(t`NGd9[$j*DYu]_XRD="o8۩<}o?]H'mƹa|& ߄;{ ,|o5_ }6\Wocr|`ͬ 0�NgEzsM3Wn]W A9pbʮUp-=y)k ;U ܱ>­ 실 nflՎj珨;WA@o^g -Io<nG0,w!!iѯc)pJQ;Q~)uGk_T�:u{TW0*Hw ¹JNA!r|ո =o7Ŏ/Uiy7u=4?'y+FX=n~2$ g#B!ڬ4lxl1^:"ߩmCI8"묡w\"B>K<rFޜUὃZD_:gf#+.>vR7a hG${ڤ>>U@?/ȿ%�7ze%#Ry<O`_hZT^0znZ<"[*J3mU6M ٖomnDj ",|V'KƧ@6s0}S#DȿT ~{3*=wn5qSݟ!<<FxO�U<3$w6za}<8"}eq zx;R{ƆcjG. ۻ|ƼOy /,ٯ0{,I, @'lޝ(S9CT,0*RȘL@o(]Wl"6bJ$,ŸHƲГqxMQXUۦ0o7PN6Zt`R:SCEWĵHtY0v軞s5 r5p$uz޾X~ vw2/s>"J5m< Og>Bi�s?j)a;="n<| > Qj/8>Ak>!DEP t j V^a ",rX>}`ZS�z(@c 9z[hӞ؁ěQZ̸s 8ی[(YSt3:Iy&v~$"|}oDU'zW1JR2�E9ew[_  G8O~$FiDXDN�Bϯ t3lcsA,Wj "=q?x`QO]>Y+as{?�D=hOUvfmKwo9v?. <9+f�mXo۟MTF EĤ['OiJzWљnOοތ$8` XECAh5޾p ~;D(OI =3 %AV#(z,pzr徽1r:�M^<aȩ`>qQu f�{s;vMo 9\yD U1k:؟-zքS'7"I!RPAF]̧\y+ w\ӎauF^ V1k cG9#r_A;v$1d DJɨb us`P{K<X MvYnwf5V=6H;wK{#B")?XEX#7CqJȓx5n pguͧXDY-C [pA*\5wX3jS_)i�{wN`u<;y�#ǜP{ X^rcǪ\|eua`81, >8MT7~F旃 {<ICԕo8ێ] "nqOEw8GӶۃA7)rX[`lm3Fx ^`$F7YA"9-\0\c.U]Goɿaga6sw.Z/.=f 04!#0njNE)yKc;,t?95}i];$,|$.Q掤 spaݽ2lM0nJݺ�OXnÛ%IB*v'2?u!kJOnô ,-^$ cKYi9U!2yɓCT㒵O5$rrR[S\<IO!RqOfe�vgͳi/qw,v6Hߍj6?R¸o.O_�"ѿʭAt'<5?ZF$Wݺw jW8G] F 矁q_ ODXE " o6QCg.ӿ&)R}_b1"ؘ'6,AGĻ۰x *M6F#n|M*?ど(=3F ׍ӿk�l=Lf//텬xz]NGQH~VpaPqi{Ό?*"^A)16} ^\Mw�{xZp:X|B?{:{^v&#kIW⨠/qsSвU"N_3tY9O$-tסnP h^i>.г[0%xb=5*X0{k5)IHu5d�1cPW`E9AT1JDSr3ƍ/DH3Y/6ZyI_@9<6" ~^M C+DLPrzQb~1("u*E8[3DuyTtW5"T|߼x .=|#SOnȨ#oDU.0N:0WKf*�ݞ\R!VwʫG/Kw}muKVg{-#v\9d&<<}o?yZ a~U~daYk3%#vw[0P bz"VCӄw@|d Ek\z0^/LtuGSJ <hvaygA1!bu~_K҇ʽ0˝4ʅ3u@82+;Dݶ@?8s p/stB!i 3" #>N#|.¬_Y 0żj|~c7y90?ߵ)wyݓȿӣs >uMZ}Q"[LFT)O;ny:nd[睼I8oUI]c:eYw#[E*6oֈ| ] gTC*Ήp)zwpH[еG177Oz L"/%j*_y@?c7r ~>+2lFb|t{b!0/&nG;W(7{˻{D~.5عլq/c5;Sk[^a ! oOȥEUm$ggSfk6=iy{.@={q p.=鷂9;@\urQaXuQszDo re ߍ�;2v lV]윗ρ8ahP9;kOW:(RۏyҀvZeb#Kt�mUwn,{ BD `Nz/@Իn;^;`"6$!*8 |sA.E-`+. /P|c[RT7,-<cl48r UՀw,\8<2JQk=Xܻƺ{y7%@(>eQ>9?�x,ɩؙAׁkROwlLSD{N"s}7ˋ( "g"|\Ę!"~률H;i| z/8S=aEE/DTVi h:??$F>Ku>Qf\ggEA 0BF5h iWocb8(Lw�`ͩFkBRT9(ͺP;4 +DI\j|IM㆘!U0DMWfO7<#D^޿BDݷ  ;-91r'zc :P.U{oD"u ;8OCx i=\k3ArF -3WxqݝxHRӃO]}AEL< L"(y۾'I{7s;U46xbvj\-o A2fqrb|]ՇNgQ(`Y Rӥ@Ԣ8VU)X.>vJCNe/}=n`7=j䪂(7_ށ olȔ)+uD*'"ig"(nn-9-?xp I,llM ?s&޽ ?;? gADN/!"2 l!RFFH$! *4HH2Ts9ׁ}SJmL~LT(;JΎ�oc2ax|nc) l<FM�#J2:Зy<x ϐi[4֋Ʀar0}@+)Mlf '~]9¸i[~#-p! j)\�fE'hϏd:�jFG3%EE$v޽wcW|@T<0S4 #7k^R"aA9JE:bq&0;';y6—䆙!rȕBkG|5#abm~0%YO؝ϵJ&1_# DvW^]%!_ KdVTN5-LpꐘR.;N*o W0i32}.\nGxkw`YV/B'}T<2@�W}0=ƿz/A`5;#ݺ9=6"יwM ȡ0]~{jq,8*r+؄wNa9tI]UJ͋1jҏ |2u?xI`G%>8,{K8`_ +κonb)I0֑{2DL$qfK\U(+TX'ܢt<><o7c? x$#I넴8Нe %\tUژ5O|8r0ԧ\ |ʪkM&n#j($yzٝO-ftpe xZ"vG-{q;�̺sޙ_y/^<iۓ1?/X_ٶmާ6OG�B`[Yvu>D,` ý:X 2j[呈ӧ aXNOmx%AjUu*n~G൏Jk< =!|nR"'Nd*>1Yx)3Ƚq{׋nu�'`JwBsk )g bgѣ`~?Co9o8vZ͎4ÿ,hnFdֻEf`m[H?(U&qs8p9ߜm'@иfYO.BmY@ؖG1'y}hSQ-tO0,nI-C"Q۩(d ŏ%s!hQW-?Dk05[[f c6D:B}O\5"3xm$"ESe 'FYGk1_Y?#v�sl2Ae1NCǾH볮#,$tK5M?>xmEocNepZo_EקvyϤJw' }ht/˥DO8'M+/z["U/I -Hd~J&秙\@1D~0`mm/σ Dka"R ;)qaq[ r'a̗X$X"|, ) DgD$/_agw{|KdD_(�s/$?oTb[@L�p-#^NrFՕL~p!y" O!+M_u< Q\{: +ځqrYߚTD1԰hUĤ>`>X"*O~<s>A~krV`s_j07HZV*;^SHe!$Lciסk1̹h[˕,fzbcnrsL%!9BID*O�^縹XX|(j$76Lٿ9˪rwB$0goD\l zP{t" E#WAüoeD])}fiD1S_ ߽0{BٿHt¥9M.$ C"9> i9I^mnP6܌/e 7!; kFP~[-P!,gxO^]ߋ+c l_mFCC^T�"|2";;*?G&ל.%YsG&rK!v<LA˵@upl0#jf"Yb(~p<H^@[":؋1&`~SJEԹoYlΥK!zir T٫&`I˗G!$=אD뺃u^Sd'"V^wKLD6\5r 7;0SCzbDPd{W]3ױVLv/p~p?v_bsjN Qaśq y=}GD~L9]X'M2�QϺ0n2�vmWaj"?;1/ƼO hqJ~+2ûDnNpcݓh,H.<ꞔVlQi-a^h~zxw$r X+2AlgHu o{6.UL;sW&�_eFi+w] {.M;qӆM (3`+]lɕ;XUdO&@tD?!g8ɿ8Fԝ\eF8=swh }_A"@8*[,߈JQ$ۿYl TK5k\ K[cyl|"NXIgs _sp#IsNW.>EKr6Ig}֤^轢 y9x{}w_妜FđGN_ Fcw]Q|>׼l`Zxj $b`_ތDބFNWFsz`^I/�o%|>8"= r1""om#/j8WҳqrH@7<;}Y<CFq;1\(=3Q$&$#um6w\Vy7  `~f%M' !)D={$pΞ!w.0~Ebů^ ,-}a{wJ!Bmdx,+g7 NΜ4pa\{=$T;HqO%azoD~n/"8c8 Fq""rkϠ hea;O{Bz1hyg"܁-?jo ,|+,i {3r*bI(wA@]^O38'b>Us 8'A }v?{KW~MgݝTD\K:x 76|iwQ$s{y!1rdq&;'b0 xQ|Nk$]W _t%"Q2 ]4n^&p6J{qE!"١�̫)!k޸$;Gck 28J^x9 LH0O_l" Ѳc[O#rnN!_AVeNY44X(w~5΃e[#BԎ qSH*?�լ<fKr=tʵwda(Dj`Ga#sʧDTvkUD\ҒgCpoӞoNL{6D^\|lx%40srU8 k7p񟊖}@87d u`$ 3nE,Ƈ6pڮ:c\'o˺ Gx< QZbBctj>pKeUnnꙗ C0_'RW?oC0'fV4,L�-CMٴt|Do[=Wz}=dD�.zoDrCTI={Ŏr3pUy ;40w 5f1/y&8Ư᳎{&zipGP'm2J˵R?. #9<<sZ /'K"|M?呜V`xpŪbVA3&p\hOaAAxfy_m!o9"v}nF"by߅_4"ܩY�QlOZ bӦPh`Lϥf�nˋm&OC߯<s5v̧vfW+vxۗ]#`Bp"Ԭ2{HE*729aGgmE[a"۴5ڪw�a7&|1/Czt\0oN"*>F\ZDMXF OasVތ%gֲCwcȷ[i$$SC$ݭH|HZNfOWtY$ne:uXN2̓%RǺuQz<"Zмf|rb~wnK0"mWy rW0s Xu?*%%S/ 7UPWw2dcTW}m׏ybYb?C"+OpGOlzjy<WE$b["Ώ~׍H+sGֶT,_l*=X>ylpqT'8h숈 ;̼ AC>yՙiu0Рx#"INy@ $xm "8L 'qUew"6J}$zVj!d",DM5r�'S)N <"W-\՞T|=B�xꧣ$?nDԌ}mAH*q9iu_"1j}F6,(f '(o8Fփ;ŷ�k4Ār<OGxZO\Щ=-N^H$W~b@?c?2 s̿2GTG2oFVT߾Ae0'xd%ތ@_Q#[/e#vC#L aޠy. ዕk~'do$"9̌.AF `ǐs�W6?F,Lp8z=  eCŸu}a{&o'FA0wtcƌax+H30@;Oa=RX.0-\o;rEfx /!3~]KĒ> +}J dX8?(5i#9 XFvͲ0k:!{DT< [.n�ײ4Wwa3!^b o`SS&؋6;n~Nm^�[ׯkneԩqXNTș~zLYo?<lIU[X,Wcq*JU۹Qm4 >{{"&{рᐜV?s>Mഌ*�sT4OxUGHF8.<ig.2T\wBGbs/t4SiKd!#}:,[. sN]춺 >"8zDco;㵜Sp_j%D3PJB8Ht<][/ d|AWD,;Z MzWVQzM6$%O W2Vzwol("}º7-< r想Ef)"d MŪ2\EK'`=b.-~L>A$yvaAFiJNW*Zs`ksDZutܹ YsF:#n 7qؾ&;vGi{ځm6W Cŋ }`FBRv@Ѽ9U94 ]E9`OdU܀׃ܫ;zN: GVbqWxD ծzA, DyhK4ni>6kvL`ʩF7a*}6{sV,[^밟 jYEDlP5̝~um:w!BQvD/z=,aZ":F]SW"N70&+uՍ3%pձk%3@AX+Dz!")!RGBL88^뿂'*j0n 20cr3gb�%8/y +?; 0DkÚҙo0Nۻ G=+k`ݬCc_9Ex[q[c0^+ G;۾嫧}~VE9n;x0|jR`R#9o "80|1.%U/PD" _Dt+d':X;x60T8a$`ڴ`!lNսF"ZQb07S]u-s%ޝp&SK3g e_I ~m_,vKk9ʃ)CL0SEq}7|po+7!B@o]8X*+2ˠ8D"5x܁-Uc5WgjᝆEB!X5=~&٤0o۲K}0wa}_UDxe0.և{(@2g,Mկ>GV.zL:+qP+?\Ҿ CAOg{ѿ0;H qXߝ,R mx #]FcaH0S@sxp3&<D|i 랳I`k՚3c(CEw:gvnז(`)m0! q* H%sE`< ݞYa~{5"7kQļp !+L1cU^ %craޗ?]jDt8OkCy}$]o9OG?3<ϸ&O" "n.�_dV==+Ou2.kY?`^GX-֗?ngmjAΆfa`*{ =.' ܽib}kJQZ>"X.sh@2hwPnMa[z}q#0IݏM`mIk$p+x;2Ϙ$X>~XiV�NCG:ĸ"f30J&�W=KMa5|u. l+5Om4Bq \o彿Fc{P}�e^nsR\ sYel.6Ac0D"/,[Wl l>œɻMqeH@ 84_ 2ʚG(ՀLG q`{=|f {k@~B5?u0F=�"U7Jc=Dm#Vc}-U袣\sE_\ӳslew®y_=N PΩS θ]0؞z^H8?LZ;+4+ovqo׍"}{}gc|9п { B@O Q~* hާg}r-+nD<qyHdV͓nڛ ,m^8-Й[ʔ``Grh񚉘L=vzm[%-R~H>?WR%]:1\̂#ϩ ce!JNW ;$dy/pN}D"{S0ֽ̻}Ǻ=.4pJX LՁQl5phE1^Gli/I@$/|,!"A'`kL(ޒU{e�c_\mXH#y+O�D!\O -"\eu"BiuZ@ES66M;Cw0,+t #$O#ZZt�AaYf~q_Wr@m;| yNmx(Н>UTOX=?!o_<kOoAԢ%R9-汝6_C8z {jWKGzI$͞lRK8{῝zٽ J=YD V!!0*/T awpW˝ XL3+Bf;ti4W7Tb`:oYB7n^s]wQeN7ҭ+suNg޸ܯ _U!9Лލy?UV|U؄q[vtuY@c: O`;;1=XSmK5&aד9%ٔ0z8=z2NOJ/+"~sq!n5�릁 <Ϝ1 lY _-\? 5yD,X{o?B5?#Υx30뗑6w b͉te6pj*E"uɤ0+z%-u=B)됔 ˰ywQ_^"YՈ'jJ Yo%YJ9tl"鎶V.; én`AHdW}<}h+c`%ܼQ(zǣe8] a:F]Q\#BK˔l"#x&e&K[`{k]?`u|][]m+C"[\DtM>_A{m95#=o0~,do㲠Q`$`ZENs~B^~."u&4:-oi`|D۳@\>r($pHsaNg/?Dpbd|B"ky]X%i5'`y;S[ h938ƾ9"|S_s 5vFEa6_Zwef 3nloqľSۀRg?O ډBYHk,NA2~k.[b{, shуJY;Sv0},^Hv_`Ej1� oq6D霂J_�sϽ,.y"D-c3HҾ8p/0]?lgٕ#q0i+]gfc{^&㙰<W<Ʈt[#ҍ1?P2U}>¯ y~omX)c[ kXJY}p̀)㿆%+rC.v" ֬I冮8F(|( B3_8+T=l׾)#<O`"my%8}Hfz+F20gRX!f>Ua\F^QDHߵ2~3lAe &"l=(,%c/]p8ʥ}6b 4l썫@d2I.4gO{,C:hHbWe%BfX9JkܿD0o> Y4k#AQ{zͨ1l]y ">#ψԩa-DGsgQj$m]ko%T hY^i5eJRf3!d0.wJu!DJ0Ln ;S$-ЬV5"ݼ{ &vari'>z~~fj%4`:.˪!R&~>n�gM:"6*=8+Yv\Abg<漳:�_ԃݬVyaʝ?Dv{',ER6XjJe`h,c,ƱNDfop&VJ])%.L_$f{*T;v>7L9>"٢k>!`t2e) |#X^V0~ŵ`}S[ "Oؽ#&I랈z_#3B+嘣0'a4g$AxNIavm=*u5V[b8ԕ$e/Y__:؇#\mױƢ_˶F^g5P9YWJƦiS\{xϮ>=̲a"DW *C9k^;EN=L�umǰUme EIvP57 ;;Kw܁Y)I_4D`r4>' L8fSxDMZrM>lH{O|s{B/<z*]�K'•'%K�s>~q8ό�wD"hU:AV郣~+"lo[re[~NotV?_->�Aԗ{p87TB$!oHI5uuO6_r]vcӟjhu/1ܹwԸhffVUIb^j-2 Hdu/C>7cW=S>).FnKmFC?/A|cW.�;ŧp,"<j7]|)%W_ᝥ̓'#}>a9kOM%e 0<<lW"W>^y0_aC#F@Z(ntY ADRɥ% \d)t=F NrT wtH3 RGuFCԴ#ns l #T[6)#-=>]!DݖeSJPB%/U' my췔@TcbQv0oO6f2=&`I.aB#;Ap^d%3XQ(\?~#JKE11Q+8̷f@;]ƋG=op/VIW!4::3]knp`AAn4@o9僈1Zub -}YdDN;m _xDu"R^s#bJmazZ`Ӭ~!َ[#@۰7'U7) Y*FV,Tv[D0:[9T.? }@J 7T^y[oDQ�{t_p>҈dgxR-p,>zx`GK <nγe$ΕU@/?:5 X;tu4eX^mZsozn S+}Ͻ{t"wD$H+Y|%"Ti"�i v u؝o; 5 _?^߅WM#4uן$_yC@^'`]lD]nr'<)r I߿.1 ZڮSKwTJĽ{{Z:Dt]glt"-{af֒u,p&;Y';bqǝ"4_&9 2ϡMꞞܢ|U?x sgl׻6{87ѢW&Aƴo܁YF�LQڞWin,#o ~vۯ-AT=ypONa9C?O/~\ȭ^ 2( \Qc*Ι(/.EDsܙPwD^e}ooֿ~}Y&È|ghJM #J|ܘ{7%TP^3ڸ=6ǵz 8 w?W3D|Rs߭*_9Y!hO9=5 xgӣ. ts6/][4C̾ƧZji7`]ȧX6lx ƃY!\uGKHdo.b 8n}Q.\VsgmB%ʎ \ v*T/٬8$=b.j < ; ,RٟG)@ڧr>I 8So%a\0?t?wWDpo2#{A2?LŞ[hi&`>Jڛ߆DO@yefܛ s:&y߁u5q"$=|7V} rlU,[ݗ{:w[;6X%v?zNޅ&i5vA$9m7@_ H~h,m2>"oɋ6BG.Aō24O]?fD;e㫃k›Z4*l׋�I-\r.޲2tDl?Z3?z)'_�9}}I0@o']ƕԚ h {s= VϺ㟁ӗjvf/w" /з.]L4Ap@) K 5 ~S2rIt:%oWRl'D|/.ǖp~ 2h/N։kǖ<95FlM"eʹHHW;NXˀ㛽;1r ;]V!m`Vx3V~+ qtn"*DV悧jlM)aaˮ� eڗʡ%V򗃞Sq[$ji8,DD ,6 ;~sK(݋~^b;\g_G"mgw4K-."K f @hY߾lNܰ+Y;,V^6f|ZQG J_`I44| 8.s~( jt5>9qt`18?hVʄ1DN=WQ>`v B$Z:H4~+CV|^ӎY\+ o[6Sk�oa hSM]Mɭ'0yDڶ tuR#D ׶AxLi-9+8Q=rϧj/|j[ꐨyܩ/e~rz-̑+ H#BpOB]c˹|땸s ʺ8_)kH߲.p:3">!Hk8:{vk7J=x3j#ܐ30w%_83#: hWA/*S1g ݌PY^ a>fr+G:u!q^VX2p%kw*1 xy渭x%ts"Uaz*Gl< [Uu#39&'ӕri0N ,!Rũ4`}q?q{2Ǐ�g-p7sC"e.m֦ "ǖؿ {XGXu o ̼LֱW]%.yk)ܹ (y;uӠ0p?9C>(.lj #4%lbOlY2dV�[B$-^fmu:n=Q3:}U/k+ہn$驆DkK�{Sɲn`P>x9 0z5D;:Nw} #[k#M]h+)pDl8D#?l=wZ  8@XD[&uGWNjv0pP\3~0QOJ!4> _O˽1�6-mFꭱ!VH1pVO"v(+<I#ÂoOQ7b9WܽL-IWD})W485FslH-)ǀ]V^ T_fڞk| /VGBO\-edB܈>Fwx!U?c2c:)frW.c|zTohCj`H+m�KM,RCQ*,n�k۲?1tXh?,}�7|Z_pEc9vjaÀa' o /#5$+1g o{NF߹ٓDLPA3:p5(<ZSU0=?&} ,vL,H/TE v_DG�cNt�+-}qҟ~ӄHHc[A0e(3Y$> AX_!ɟ�z xb~?9Es+ו,m xr.m@Rf\e:׈]Cˁaez�O=l,�}KA ~9I3Pi#[5i.QO2p5ԳXμ#20*sx/jf}qO̓Q?kHr |>X1_r.ou``(MT0;Otl տxQz)@9$h;V^"-[?wa۶"ͣ�[`xDوߐac9p,ỌTX9}g;rኔ7Lug[ `;Aݛ&zBƪZmbFrKHA ̓˞iG C-W"nW7xۑ}z+SEmu/p'7k.F=:]Su[B gإΧɢsD&ϻXT;w\n>9"8 ̶yp O`>}v Qm_==Z4j) ImYN[޻u Swx 8BeO 4#B/1ߛRrCZ;+k B_&ܽL}BM (LOS|ɜ0-cb}&DdEFwޮ-"$rx|-v=oD#ʉ?˖�[}n.$u�hab9V<xYǀ54YB]'^J.$"qx |D] G"Sԟ': e.m}q"܀q#opü0)^ѩ0W 1XbH!.Vtoϧ}`xeX1P1~kM- ss{08mz8]mÃyQx=WWGr#k85~D.Oa a^̣k*̝H|.: s~ޯu8{J X0k2p&g7Ǻ=^ P2} 0wYT~B3G]ݝQ6GslD 6 4~Z *IʫVd_ͺ]1=~*/mT4ƴ*r[{*`ӶQ3 Q:UGۆ. KCaҔ&Q"M]7? ±kGX.)9T"3jڭH^!,p<D,M)ғ0~pQ)rؓ0|r.ҚHCNL ^ \#4.GFWEd|a$/pPIt=0\>/&_g>z Zu5c{8-Zzo$œRԕ'o@uE0;1;}X]vϬW!ܥ]z5|̇׍5 #߭=׏ joE_6؞=%_xY6<;]}ߺQK oN׮fqjJXVFZwDrsõ[=i^Sݦxqw5.FTE.01$7@JCQ%a{S㠽HGSV H$ql#-^/z+0*_q鳱sKe ~RQQ(L'_,e Rd_z{<pS~G$)7G-rpƥXߑ,3Sc~U [QGU-_�_t+8,<:YJ@'53?k񲣞R][ﺫvxVAݵ'T]0 BG_ GGi9; g}JXo?Q|i᫏(>>[}30ͯX. \r|i.,i_XB M!'mj{"˯I{̇.6�{$")Ѫܵr1 ))`6e^|zkK|rƶe?7hil8:AD{=09v ɹw ;׹ e?F"W[sNb YĚ"@?׶f a271$rG_}q~9"8N t9T|+oSjӤ ̋sJ4`[ѡ.|\V!D6)?n C5%}0M> M͙@+=k%L,sEŶPDf~k"a{nF<ȫn:hŸTrɋq|0P|g%G E+BWU櫙 pE !z%~ WjW_/>j/ْtf$!�~oV+6B:Ei…Y=@\m01ym8g?"}H? DUϙ"' MXo=Í_{NfMtf{cʋnV5E! lYpv1pٕϓ %ŀvXCE fݱt#o)pYmO'%wn}2DWXh1%u*gXH<$=wDYp%lD{Uti֤"}$; ҅*_ ܿŅ~˃_;y^106t꾉A?^L[_`2dkҘ>8vO�N[d~'rW%DXc~@5 f4ڋ#>f¬LF3{Ig)?њէ%GL:" QDdɋOYXtKxV!D߮pUB6yсM,5vZ\DR8`2FCy"}m݇([s+Ob}Қ K%>lPG"N5!9п{"׬\4[i51ov= F6Dup@gyJ'.+?צ[+N&KAא%BG#wznG'M`YOj\pK`!չg;'H/~hs!029`b:y<=cCAx.",>?N@b7*~w~x"0>K R8@i x&x }C`]^Ɠj'$_JSb˞c0\ϺL$(5 u')\~dk`$/<kS׭@#-?ny[ OUvYU}Ƹ._}>n3s9qCc9b}9Y|xv\DQ*" ׯD—/#تd>vε^z-&04/"E>RȎORslNf#+TcZq/5 LW@"묯\t꿫#+BV.1VGӠ=oCQ_-)fX5U-M~|9j"E{5p uv�͒\Gu4 (f"o!Uq DH^A ז J"g`vx5]t2n\ٹzHZ'D5H" ΄:H;ff5M ً#!IPw˶4p.�'?<2c`<:.~?)X!҄VM6창{(at-UbCk%)"x?v62v1XQ/tD ;eJTe/ |zAj{D5!P#a ONiKmffn+{ n<{On]2{ v}v 9~,\^lVT!ܵ[b`Ά3"X`q2go|@IdDy\΋;ʁ4Ys!ߚFNY"Կ][qXb3N!´G˱]2s3{'I> 9{;$퍶l%}YQ)6VK\Z7趏[t-76)v^ f< 5 b C{WDcD(naSp^z32^[F"u9K %V H~] r6Cfupy#b}K$иuօL\KOӥYpdr"(W2V@r:?#bJ M}ɣz|~Z4͇ mǟ@sZۍaӂetDrD8a!0GHAdPZ0ʭ5}.�Xb"·~orDOǔexj_0w!gzSq"4k\u)1͋�#cP`Ҩ]k/#RoD�D*Z/*I st斚�cg8@; Hǀ?rR8s,`=x@CjbDPYIJߎEi9q�[N5WQZC,v'_zDxwM$j]GN؂"+5"G.'&ܾ; D7<=^hp潡]Y$f9UpY=Mt BfKxcs# _C+S7yGv?7B8A)';6!i25=ӵxj? H+Xx� yj3!J vez/ip,"=y~z$L7]2iTU~_s:Η!*`f^a_M</t}#v> 'zmF$1'Vup.`'Z: ˗={|CH&%Xz}~q`tr;' g-1w y}g#Bbl^9٨M<j+L#R ]Ђ5=XæayQo\v+F!rخ-V,ceWmV}.l;1=”ƀRK85wf(ͩOv@?U<fApqKو8ǀtG&+c)u۩HzȑqDALHuu4M?fDWOy[^2^]@_m?^[VLTD#7yk$GTNoUZnBP[g8Ū9'WLrT3!#eN @x͋c uաa\Ÿa{MM!U$] E@s9vÇn ՋUio Bך@:"e.Q[ hACXH,0Yn i.hi9"s#~\t;W`$74ĸ2T?F=aˊ"anp'vcZӁ_Vy]'6"= m_ ] g.ZnCT湒J.,|-Df{2w�7�]]^ ~.?#ew@W;Zdҙe�Xv?ʟJ۸ Ē/l9r+*tJ`(dl;vJ~lF!̙ 7ՂE>9?>]AXZ=ݳ[c0> TcuP�\tOMr1[H^1yd<nqN5 -+}*}.H_R;>j 6&"UA+,'2$%8PN9 8:2"ϷԴG2Dv?+x7VVE"Q]XΛw):qm~@ `޼%Y(o6@;^OxtB ` o!? E&"Y:퇰z;>ŬZa"X Z%%P:;<tm0?D.X9�ة샻T a.ه-rÈ_qӳ8$$op>mZz *Oy~ pt]dܖm+w#0.jמ:kND2jget,)@!k+W`}urc"N-~prpd}[Wjg pM>gJ]Š9jC8":?mnkQCtxg#cZ/@,ZJmzؽH7hE,+8g#`qF`\%NA-#SX's#b#ne4В3Vv5?DgtKip|LZl^(OVY_›%뺿!%ɖ9׃H5;1o9:|x/cN:=Ե譒`v9zl̶\U˅WR'`{=r<­D ^Pf b_8?`u8$[{coA~m3 x+!шwY}XS+y`ﭻvM+V Wq,Vӯ~tGD X8~hk.}-DD.` IXAgٮթӈFk-n*B|b"\M%DthhٻU f2} -rxUʀe^х(5OgsNo}NH- \[QoO­GL` y'7noŦd8uc G>mW3}iK}c䂍 <E+ja#\"U[Ů4-_8>H= 2YQɽ3|-/{逨0QrߺN^ZoIFeGcQC e4vP>0وޓ֟%]1N>-;#%L4<Qu~}dn`T2`Zw*WK@+xDC7]BMTu=3b'̚jDu`xsK DW&fk%-,@[}~`vcj-I;4 ޾+p%lok@W -Bj?F:e2nVwϽ9`-J"sG"ed>fo1κrL ߈B1̅M8>7H�p; ^VOH9l)F_ ;GCO% w= hV^I5n�ܭkQ_/0-mHH4yЎUUyG3!cU0[z-xr56?`xyOD6WLLF;Is)̟֭<~ ] vsG]B{)vl{pXsɾN!;oAS:5` WnMh�zu϶2"{kJY B9޼ 0cM ̫gT"j@bs3e/zʋNCir%HeK4 )k3V!Ѵ߬0+ ڑ,p{9&f5`U^s-A�H`A+̽#? =~c[y x8"ۛ"[v`46[�G\P_/\k^)�[sڬO%D<m9*# eo&̫kzy /v#˙[.PsZ(@!x"-ӎq[b>]),v�W'qhCp[Uf�۹0] s$=gO~lXdUh#o0"^[^H\yv}üg<@}5_^Tg.ywhb+tԜ@&Y̓wBį{ r2̗d#fFj +w݊-vax;d} O; ݨv'D|6,⷇4#4Z蒳{5v//aBmLCs%I,'$$?FqQc "Gc|WPuw͘v>KJ!B0nZ"V_KMZ|}}_D& I_Paw1]D]\`\(ע.cxe!u靌kZk˶$[uۍDC%OU>2&qNkJZIBtw!h DE+Z�o9+6yS_OA+;][*X&im? ɸ[ % չG;vWI6A'[7`:kiٹb"M#)`TUI?RsNW. 95&/vC/{m {"B):X?5 E" ;>rl z5ba~p�=<6 "Oŧe aƉil)#P_$`kn/dy�X'_ |wG#̟:Q[Bg7;nCq`+0 TA]w`L= ̃'ˉZ Ӄw*ȶ=s,w)| uWdE2"?]Oߒd2(仌,+ }(XWnMi.�OOW<™ 2Aj'[ei]ES DUvد7C!rٍ,n<iKRsX lAwtq[Ȭњ֓0KYDynzm%]Ea-c=irM;!ɓAD4/}�hڧ #KK(f甀n(d <߯U3WD-8A s?ZQ$Id?4\5K=>b,+86$GDj;)ٹ<Q5膟Lb{?X!1@ϒYh@Rk6D!X/w 56G8E_Ht81 ~mQk`#ͪQ6<v+󿽦M0mo /Ԭ� *!z8Nl z󗫖lv qTک$,$q9~l{7+j7Y,^* `ϯR>yVu7Z Br7o{vUNصKaΥOۗ0È'ʀYל L-@IOڦxL7}�X{�ml0>8 ' ܞ(`Ƨ>rFT uH僀Sz`Wں]GGne/7K '3}w`{l\|{{#rl24z٣e.M+oIULb -&w".ODnܢS!g~O3 ug{H .;WgO:gF:&Y n i_F6^\{m0%j4'ၣ0XJ9w<UňK 4CfVp5ٯR)̊ܳRFSzI6h!"%ycuV<H? %Eeg!OZd Q܂@dv͍Y1$-h Aa#`ݻ ѫŪ^dOJX$Ԡ)Ľѐ$SJ׺K3NfW،9D<clm7xFSOkp(Sk[njynޖ~ ى="~1 K .:WGƾF ;E@D9Έ(8�$̰>rj7cp-ը!z1ƲC'y|zvW4~u3\Wd-p*]Z`iVA6+gī5z*WiC$?jPZDT: VVEE>'b_4l^F+sk|X 7M˸U"f /JkzDn+�ٖ7=UhR/'wށ G:3ʂa<ۼ ߈lT> 7my=jml?F˯Ԣ+ƅ3'yh{28q?w#ѕ%#J3' K.ڟj KkÁy*p|QkiDvv#7̙bİ;JNlm佸-hM4azG~(#3% ?thVBdǝl`~}_k~m٭}6`/7qnO'1Xvj[2{mC�/r2}mS>flCWxd7t} *,x(9w&϶#[_64GWY Q0bhC@*u Z-@цh@c+~=3Ha <gF)0k^ʧUOɰI�3^_n!9̇ {p̕En~yH[c\h߫7Vt3ԯ:DK#SLo'"YtJA*x7FSys:W{}_ղIWНSS=6%Qcf_ٗBDtj] ̑@HAnjZUiO$oowFܿ&Sun\*P ZzfRycX,tum]2˹[b=#?FP - f# CSL,KBERYbvaDPwͅӳMo]Հz7b\`}Y:0x縢NfT?uHU`>WI<?F ‡lB6͘GD{[`.ըm<̷b{ĐC`=P]!\IwKYoD#~Wgvkq{׼)*LO�`]w8.g~<Nkn R/ؒ;ۖ }^ ibǜADY9+O={jb$HypOg.Fr/Ù"RgI`[ vw MD=t?99�Ԏ*_ln@PWo$r!HbqnLf">˕׍�*1X8|uuHG'I|XJA%'Xoz,}0q٪e{sMp3t_N f׮ͼr7<CY7ܸIm,p]DZnl�n=0,;k1[tI`D9\PfsM/q&|A*P MU^! j/U9 k!섴"q0.!'`ܔ1fpHR7Q&Bu!›O=v aN&"%./\/rQ=߼aŝ 84kv>.5 07rd ~; Vp^[r7�gLDsf?JL[O$V0Q%JLLrA$`{#)ckp [.m:R;^M/{ۀ^n>$Q}zU@vz=><F<֦>yȡXDEg6�ɢE%Dk/y8B} "4lYZ0.}i.7, 9XnU3̆L yo]ȷ6>!F1DTI2 LOH9$0(2QeEI(Z@c+e"\ƴZ~rQ`:ȕЂAUgG l;cs+~VCxGWtƝ<)|`(9׿ hkG8C}G0zKsQhvZc%ǴGD'jH+>!yÍRtQ(< C!eU-,:ݛA,^>" Eh<;6KX>$a.TD[[O>C[CFmCׁ)$:sc6ݜ┌W==D݌)(i ##\BvC?)Q㚀[jr03<7(쳏;o3kQF0S_ "K!rcMXv-\t<J'oC]+ls.ydh|^}; 2{=r~6܍߃vD$]ɽ:2lAqOs- |f}qnOWؼ9Qw?]%hM!3t/'9 B@rh"Oi L|y%l6uGĮk5>{놗-~]COFQlsrk_,`Z6=BSqv ] Ͽ-V[Rq<+6FްՂV7!loFV%ўK*uE+>WN]iSp.<bfۍ஭)(@`feS0J;$numڵx0*i1 U vl.cѽ@kբW^ハ5!dE_ZĬBx"gpJR …غ;UE28!3f5]ZFO;v8=N<?|Mk ݢ<$fS| >aϝ`I:E-c9Ո"\y 3eOc|Uф4sy|!TҭĶF#E;e0{N(E0}tc3v_;qi;m7~R:n q;18&t+a% r:琤w`^$זo0AY8^ ,Z';&_ n.tKbUcȕWטb}9@~Hy."uf}qzD)Qwy }6"'}Ab eN=)'k1r>!L9n!Мp̿_v1ȏfXf%}3vHЊc t2c;p-.= \j~.mהB#%_D/;'ȍ#WTBW1MFh彛fo$%GIm;ﶼ,"ݼnmr"NHx JP Ej;p3�Fٯ (?sobD;3U*rRe^FJ]Ȍ\D;�Ω2RיyksqL}y:v8t$2]Zq\[0)yr01VaǁPd잗?!QmGiZu(M մމAf^`ț^x�ODݯ-@? Q8k| 꿋GD,o5=-:I^}|/ou>"dôyLƒ,D]o?elX13"`Z{%{EI]@rMՏ *^@T 0;lImϪDD`M3Hx5С+phRXs`@~X֤߫͟W|QmBĈ."bA P+"W׍ U[qUzǍHlXb.X(3̎D)=kYwkӊ&D59cfsoJ I@<sEl<|Vg>rj1JE-<(:-j;:a"-&]<NjZ�mFC;l'\ub)XEJ&2=_eACC~+QR୚>^,I~(<7N_�nNzF]eRz1t^<5?<Wv" m XS#f$|Qc5뽣ݼ(oO؃D16R)T]|(pksg#+2>} KC/Ůd]ˋ _V2?Djw56Dz'7/^ٔ~%?X۾{Q})T {{`N?  ah2?창 \ϋ1/aa#ߍV-^Lcɵa6PU__^j<.;puce8")?9r.H%)@oP|LrlcA |ˈSԱa?&0O̗0AKWQ+FYRnwM]kRd$+:6]F[# RdGB!"z6;ցvMX'п-Ao#C]Fs>\7ȫcvyl#c޺t?p?~ ߙ !b=xHH=xV&"!Y,._+Ύ]%]nQ;xsϢMpS`<m9C ī%o~T.pطGox�8 "2Z^6c3i>:�"=^i8 暆H\r�bC"+xۮ}HVTȶ)Wƅ܂=92|{Q:a�u6u_9Lo5n0HU!ҳk|xt?F ONq0V7{r`iD7Wm8^}u^ sD4P!yG~T17lsHƽw\r#1K!KWR3(a_�M�Jcͱ##qo"A2PIe81g_ooIZ/pDһ؎$_ڛ9ޮ^K%bI#\sa~*D;k!v" 4"zHOGa{~le/s^O^Dͫp0~qT Q Q]ў'z~~DAd%w_k0r=Ua+�XoKwB׽ P uOa}#pauDNU [\sCYq -N91=*lDZ?Rgu$!acZ_cWvp^AE GT?=fnCG[//_|톙nf0eay,$F|/ChsGB/"Ҵ coM_G+s?=cg jmÈR,o\+mm;\RtD?88o h^׿zx0#&ˁ!{F {/+H,,,i0咙w֝!_ gY*4sMÈ|cR",t~8!'a{Tm�o݃ݷ?EFs`G> [2`ҫnZDS "00R|wI:~(ܰPXF>Pʘ^ O y]D-j�cUS^|@z.p[O'qS[)“;抿ڏȆ~ogWԎwSeɅ7z6kNj8Fu|z88`~l"e5 emSD|8=tQ oiu@#Qq£)Y8ݽx܎*2?9]Wwq0p%.Km�@HDD&>_b<1zl_D:Mbc4cu }WM}za#^ߣ;�tE_ XtcuaNy5Q ߪ8m<x#BpVGD+a;~FDz m!I) I!,dD%3-%JP+JJQВ~}zs_yGx%`n 0 |FF#֏W)TDݴRx?w6L1K.]r!fZc&gYqon$<.|vkgXh* DF52r/VM"U+v8 |cVq "M8,' #ܭg҆"C։%Z`Q<1y ~'eoSq'.tn`<[{32@s,Y541f`SI`]ޟwHpv,Vv %A^q= \~I8Sתc>atEylr/|8JLSQ ͚y\KmϽ97v8X#6+z{~}o7vdY|6M ^u":|rn`cDo&3'pR`7$ΖK׀mڨvGDɸbZ=_ZܙT6ܹv Z3:2;Y*>L,HazdB4n!+ #KO=@+\A<p}uhВOBaaex _7 yb?7`=o"8PI;1_YZ) gznt˻|ΝR:/~^R׀irpnJϏ;[󵴹V�\Xa905h[۟٪}(U;N.m9`ošGcx\x6>f":P t|%>O`B/]@e6�Q*?<X<43ڍҁ\iX7 A 8v~VyZ|Dr/XRV</;BNz k`-Ұ] )P?DKe9Mݤ\r,&+9 3;_,µ<m3gF "^Gq[+{׉agѷ~:_1V9�m^X}p ~ݍB-}1_k> W``))zV}KN{wt4l�3ix͞& ܎-/!dïRzw}~Y?ΊC"]dRnZVz "?,� (ÔCL*9Zu%-0Wz”1lqQ8E'GRU@71"[)5"_)g!4\`H_Tk_,0:`#O\"b .\;1"ob{ӏ"b*v"|36ƨE<~ں=y1g'<v?\c<UVp$<?EԪBI1ޡ)_ saM}I&[wD ^ _�в|N-JFq.,9 %rQVi4pD+�O$b5jDvS\~upwrlYrS;[O$vh;|g/�gAu*f c_`kw5-U'-%${am%Hm4fG;qu^9D _Z1sx;2Bm,~m%\x׭a5jwyۓ v$Z<T"iB R&!\@0 PĤ1,}ǭ@*2XZ<lLˑP>ᛷ "V5~1a&?"9VI{[W<rܵ pEOV@ʋ@*%8:L]k�qT ɍ p;~aG"}0;=ޓ zGYODFK#2@}u s$n@%aDXzK9-)؋DvEx BWMtT9` k A"ĞL8W@m8-rЋZ[6ΌtxE☇HlEYv48y5p=u!.^;;\!"8$L/ߌՏ;")8}IGӔ]Xnz3HǮ2O'a~ϯ6,Z f 8oQ~ytdq>U.6bˁ2 ѿ9@S\nD*KuJ�FNLAZ;9'н—;MuYԻǾj5e*v.D`mǓ0F weSG1W2+L6ʭuz[]國r%_~e*%uEĸ >c׏ }j *!PLm9]9؆}p~==[`׿SWe/n<|P._+VԵ~t^>HVaVڴ1.]aC 8ʴc d|ۚϞHn̋XYw^e =ohі!Q">:{W¯IW=h"}Z7|w?w�f~~~2_߼8WO/kCqz ǚ 2Q Wx@nؾMߪkcmgb$<Gݚ]a@^-D6,c#B[Tyx<2XV%E춗h5>pD76߿)fBD ZK>:#qsl%afnb?;mB0`g-"±Mbvyǂk@vhl ː?$T=D^o<Lш Im vBkL+|h7�pϒ<!DJͪsf__�B 7Fo|KC8P ,10}\?fT`ʎfv,/۶w#jBΩmՉXD޸7mQ^t2| \ev{�wNAǧ: 1u7r� jڔYE!W\w-lrt 5,U::]4ch ax+?yKgxI3e51p;Ԃ\ڲX3|Jn>tb6}00EdÂ>C�`Rd'-!N<cez,E|ۏD~&:pss]pW^Xm~5qgF$t;RG>,zoŁ0_VP}#љg>UC:9T%M?9wc^nA?."];"d3T`)+U;>m;'Ud9C۲Ji^"ҧcohA2p nOћ%"}GM=}}80cݱ\T�zzeAho"t4|젻v%Ÿ[c ٺ,`zgF gՃ#cIt_JDvD=4.|rr~6yLe2cr>9D*}/Q+œ˗[#l@YCq8"s;n�3s آ {ځអoK67輒$n.)y374`6w#[fBԉ$$H,ӱ'ֺ|9k8Fw09 ƽC&!qË?�0&B#/%n|q$ZBShsǟ�ץ1B}w8wBԡ�]F#WתmsgRž^P'$NGdiZKi_6{ZIy x"{y?%_x~:rd#%`ݺp` ֍.ct !fhUL F'`Vvup6 ]|m)0rTk_qLO${ OO=+z<k,ڀSGvv{ΫZc`\3LJ/k<[/ _ i9 rr@;0X6 }<4.=Ӎ)nWލzxG꘯~Px+M%F\C\Y*=/DLS |>:K�VK{Ϯl8 8ncW=S^:u;"0X( 6#`;} ȣoN~pY/F {Ap "Xia>K漭}Zܦ9S%V{,0+"|8UL=fb8{Ab]a N>tl$=dNͬ&^鄈MtMk~A%}:q￲�3*$I׸HNd#|^{�ܥAb[nϟ%,J\=ӶiSb#!rҫ"WAWw8m@4Vm;1z oK~=2-Xd&v^1E4F[<^}C{!Ȳ50:Kx_@ԭa:->#n!ø^9U?7`v-�a=<vL#OwA*sxLD/u .Sf^n0gDDž12ic/'LWT˞;||,jb;۷RH?\,=> "⨃/ @dSG&gMBGK<Wx>E6[* < "U2;H!u_\;j o|?5W v8^W|{`t /�ڑ]*rl"oV)aؕhqD `Yu�Nm|+ w}F{T߾+21.[ܧ6{zN`wUThVq>ςa sv }~|b~3VIWyH П\\>E"aY5)U!,)@6ϾXti A#HL7v?6"2΍@uKoFe}Ƴ:%k=`pc@Xu!e1u")∸YiKn`,3L\c˧0 JjgIyj^{f0 R#̣'ؠEmw-lQQ{{0mn5||Z"\.9|/hC LJtW#6`6M)noQ Ÿx,D߃D~ F\Ψ IШRa]}H*3vy-<0i`u}=(Cެ(UG9p2O%#n ,-! Q<s�ZUd `"/`ȏT8z۽ɑZ=$PfD܄j%_X~CƏL8dNhRl>EN$5 =؁p}/P*Ke~"D Ё!n94(W/Ff|S+>_3l)D7 ǏKSTŶC@} >~ȼ#Djo�.}! kVԋaW "bPux l+q~39gk|4淃dyCZ,n "(p_ڍSNw[jtnbtg\ !F=yк |7H{U<�".QLw|7{ؕeZ@su:lq;؍(Il8a{4T4k߆}mu`u{;2R 4ǟ|͕`xo{[o˛e;[ڄ]?$~y "8a47o+ tܳ M۽K+d�{eŜ؋#\DT G:_%b L(G 8]J ^G\* 0Xo=DՙuHlҫ-ˀ:A8 89D|έ/0K}EGdbk劊}hoَ`* G~ioV8+3Go4b9۫28-\-H4G|A@,"/eAh2zh,m Me[e#~)e0w }Asvmz^ kҞ$i\*k} )m!ƞ.ɫ"C�F x1_:(U# L#=ۧoMj]o1Y#D~-oc ,$0{ }|s{Nrᙖ[ZJڣ7x'XVdf"\zewxgI0?[+&1%cT ]Z>~S̀)wwcuF:*%7D4Ѩ;.3~/U$lz6GEmF|w ܝ�<Ń5Ir y快oF GS;V��S-/3]Q�ƞoj7^!,m3@OοWV@:}JogOԽ.b#r=oԫ:g~-|tJ_r/<RyA "͡,`4ߝXJd(e1Ά.2**X@ֆRl¾4pKx#gO"[Sl ù+q?t?v~[ s˔=/"6ܹC-JMG1۱u ̙@ZA,~VD7#|喣6ByX q962X<Fm7#$?3yn#q`F+z'A.J-K3=%i47 s<pꔘ T7cl` jƼeSJDxAe3Y!jV�wZP$SI/XfFzz0׎D,{ޖZq)g05F%y$XITy0o;s=@4.'UzgVMc=Y[jp&?ADu&^W|]`q}] Ur,w¬톅2_jQQwǑ++g7D! ã _?#ߩrD<iq7ViNŮǴJrP9}ş]Dp'l7+Xޢ1 ;x7[̳#w^F?p|@M]Q27g_W4vZDk6"Xߌ9)0 <~% `z U/|l|; t4 M?uH֗c\n#紼y4& #XФB1a&(+J] <cwY *_;#N%0_LZ MhZ?ԫR3r[ݟbK=} Qڍ&d;"e猱ym"^@kb?pW]00^? EY UjT<fз1@D~}D\ 827\zzk.,H |9YW>c':iqV�Ǫ{D-}S*C7vݰC cC^Cl7TǾ,}ML$:v拴-(ۊۋ[`ƥK}y P٧Zhی!W_0w;*n#-B83^-XoD:�`-@| ;z؀-$zA`3ÿ_9 ا9$z*LT49 3wnB&C{8n'_Ej> mS@]_|'/U� E70%4*�})#;Ga4$ [ձ+Fvv̑Us/ݨoU/ TJlN}|̓6`+fu%҉zڀ L /Q5v@,u\wºMH:@ ]6 j5Ϳ:Ӧ3 H\,N1]0n_Dp5>[mBWC8{(B eIC% ؝?):=;O51ab~y;DVYcrSXx0Aӈ̝|p'7뱞+QߊDS|"I%2 P{[[ qu%xҫӶa7wޟv|Pf`^q1<^oJVqw\ChҦ#؞wq9D)J31ΌW Smw,Y<oSh^{:i7;hVa5Lߺq%K\|7|1L;H5 f$`_TGUx?g7 nk E[œCUw(m"9zMT;Exl( 36oWN+& h_[RKv]D6ms}Ai㘟m ={d|^8gG'QJ["8ಒMmL9{ZMrhOKNn&?Zގ›<j_DY }'VxWM�e}zl=^_qy"?]Qd>H]W‚Ἱlx:)yG,0:;/S#bPgkDuhpVDtLWx_~e?۰95kq`Mb:J; sjq[V( {Oy^'άC7I `k*qrSZo*Fo/B䫡/Bd�mEAŻDz XJ[<#bSԽ;k9@?ۘtHQ L8́vY$=<嗢KصOX|$"Iu;Z-0~-#_s҃_RX7&�Ke渭+D\ٮp]qfa>.F?MzJ~NfأOϒs[U1/k _#v{&LS/mw"'][ KaGf{0)p6(<3-l1ѐ1W:8%.J˗^){"l Hǃ-@ x$g/ͯNZ>:<[g",D[q7�(U@f=Ndż>SkwLQz-,l\v)(R 4�4GZ=wD\a3/yDQ|KhDEM >B0Tr$6C8f7 3#<|ۣ" ­Ho_*~- ԲNȸd` , G|P O,+c#q`1u&Fw]q"‡8F>.q5e+~6_DSC&^] R-yz]ўve1㗆 i9" KM?L{0D8~l-Li>�Ջnft=T+|/4+4!܃ŕ?іqZ3f_'\}0xOV1Zؑĭ5?x^+j!7j ,U [c~;qǦl&}I:r~ v-M[O Ӎ(|">kD[(.3Ga@%-_Cn И_�pf O{s-0902V*vA@kKp ϵirKŊ[f{xo2`zH*wnHR)f|_(^.ن㜍T]`@f.ta=>DVX*GDGSN/ ? �屗sH$h׆`]̧ƶSR~`2rq3[D[}Mi?g�K?Zv^~pmhԬ7>j#{feR:p:BzzcJ㼞^? ZɬѕߒH4xáH]RDKin_w뚚-"T|%DU"|x싌@lʴ}%\S ]x,cB>wsY]$+&l38dS,vL&~<)WA~5+xM OL٫@8r~`_;o>$ qm\Kl^+ZlOmTL"\sY e5\Hvon&JKDYjkJ:ĺz. c9q@>I"+W[9FUL{?'󁺼OBos#񕖤c{lsWNjX.'jSAv-݈&v`,> s?s9{cNuj$6gWa4`ϟZe ,?؜V_s _iQhؽ%8o08-נ@}t,P ia} 3_`m{7wkOwsZ 猈rfl]a^8�ƇuzX#7 ; AQ<os.gm_P,L oᖌxkcw�q#0UW!I:>oྼ!{\j,Yu=PV"JwgL"j5FւkGu%`G #7Է2 ¯M|[s_/$$rc "hsb%I0~uEFߢ1;Ch;ydn=!Fb1_Fd]U/M/4Yds?MǞ]a- +9?|ᬪ,քpwv,HJ6G$i#=eG;}$C5w`nߎ7#SҼv!?;B\xfwGmla~# /?uoE}7u|oS )6sڝ\9O,Zh")EIizOr[bqd3,{W*">\\L-=* sb5i JL5n6Oc06eS~윌*<ẳ]C8ێx>e8W[%P[vtaFĈPН}@J^D_ ЀolzKTuo)]'ɟ*p)eh}-,UYg)—?2oY <O_o$s:~;m r&Xz*_8NL_iՀeeXgy\;{d~¯an\e=*xJYk^VRBn9ˋ@?<vVrFez&t`n/sz,x{y:;0?ox9K>1z5fqǒP|\9s{}zUV>(wŏ}7ǟƦdguS$6P%oZG>BTm5̘]*/7`fB̢ÈG\62d22i5zM"`ntu çnn} #^ہ9-v2$̙WFЬ6UIzGڍ5#7ֻ <o,7o僠3hL, 9Iz qV kdɫʮbTOK�ܑZl(\`?YAo7^&O?9{b<'!qae 峸Mg~%rN7#?.`lnʂCcɲ@{/5 v$BnD5$9 yvq` LtT?sۅ3Hy؉ÒbY{^I \]-;#Uz!^]3)e(q2S 49? k><p{Xɫ$0誆>]/NXZͪ#sFDyhQU/ߧw].>@1?[f ͞WvHK߫4_H\77牂t+#QD0Q/"\ٞJX7w'H`-sGV<D[t{?B8 m>^g`O|̫,#S ajƯ_ QI [2CmAp6yHOl>|&k oj|1PlΑV>=IϒzN{瑽х4mb/a ׷5`he+Ы2wkf6Ch"}D5|4Q)~Sb gjCMlXR?5,T4̌VyOZ^!+ ++_ΩmhA a5vw /~8"d "G"#{JcJ"n&, ' 0&5U;�տ Β_P]r5H!w"gWHኈ.u<GxQ[G�a\s?b_C^K.u3'+rԳ|x Ԗ3B_l^$*Yw6oyKVӫA ?iژJD7Qwj$#<ňx1잎:D98xF0"PwbD / `*DW)`{cr[0C쀅y5A\R׺cC !)Cϊ`X#CjDIP u-1 x"~.t95Rp[ R\8&5(#pI | :vFn3Ew1o D\x5f>s&ux+dK xX_$m;.+:?CĻpAkH#[`^s`n3 K"%v]N906ytk`TgyMo S<$}ᤝ<LRc[m &/I:"ʨ y`8kx7Yt#3`w$f${T[}eDƭcV=D|4=?|~T+4E*sw#::r0ѧ,ae=[֌ԼF#r r$yC9 dvO'K#F/lN/k�:qWyfɈO{\s֦` xS/{;xHۘ�Uk`aw r!&?ks%7"~s{uh:*<> Bm{6%L/ֆ?,Xt+k`X}D$!?)Qf]ug&ޝ3�nKq--Պt@(:{ V#nq"KقD:~iW!pM߆Hн }"e֭UTW"B#Bj)`E& Ab<LZ('@}"!i"oUi~�! eZ^v�03"6Ķ)F[i3qI~Y?s,_ԪPGji窓3زK}}B`=!0)πHq<xrV6"ÔbXI~r"j="H՛,3E"[f#R.u˵lܼV9.24Eֲw^`k%bSDUc>Ϭ!|*/ 8݅p $(6:'v:तf ${o1QDМ�T!+i!pc]tn qO![<0gÜNyWhi('(IxoltX{-"ovY@8tT,{ߓ  㖆=}5csR j]DJ/vun.5�ZEDbn)W?ysG%4Uz/�Їg{(pfC Ȉܨip"y?ovxo`/WG5"f~덪_,/CX?$Nb- `nȆ YEN_tN�ˇIajC7 -M޽ 03|}{̟ګ]wE6Mk|\qN:R*Yio(y\ү@~1{;󎓄 ?qӨ=f d\Itν}A<vorEIb v<?E/Ȳ~#;oMj I=Cwn#_<(k/0o?whU.e QS]h"|k/+Q9ތďtUatY_ X(;|Dgܤk:AVE$5u#$z]?]Zk ]Ve!)w͚ZsG^B؃=LB319Zp'9\OgmH�I} GR=ĥɗ_#rފޓwq+6¹5Dǭ!9!0PY`6sڂDt<*,UjoQAv`t5n$^`+^sO*uNu%5@Xza5 <"HDl> r}-, SBQwL~`sx D*tASYdFDz^ڽ-9Rձ{׵=ZxQO~DR5K났|)pB2f;n" "c>! yT<[- Xeo v'i.8mD660s$K <׊m]c.mޝ |@84XNp_(Hf'߉W2DWLѵ`Eﴂ$j0'8/ aHPq* IMT5.oZ˿J ܁Ǥ%5 WʱyjO lNOG= 7.Y+ 2\;6 bN#3%;{;urBL5Va}|Wr%0W+)T%uTS{TzDcG"BwA`U߉Eg`(եg;&b=5u!FegF#ЁstR}Ӑ@_y?ғcba9so9)mT~p M"C7Ӿs,;#)G+"ۈ˚˓:Xx$69"=IE;$$A:l066>F"+\FK{D=(`l`2N#3rO \5-x۫.D j3p3fֲ)HCc_jD5r30/[Sp#HS)w>k�nEGG&SuDrA̛K/P~ZjऄT$W-Ax~uHY?pe ׾gfje#Wg1?g: fD/(L.}Or]J96ǭ qyD.w2 p {1?$Yn,s?7ǠUiO)':qQ a&#~{ Xg.,I޼m9.ğ!*/x(F ,+$Sr{܏&)}>&7Q5"U׊lx9g:J�!-Sf&ڧiZRAaD]]_(}ާ .$zf\OIV1ֲ̯:�K{ 祒U}Tgh%Ox ؄H^Áj~84ɫJ: N$MfAnUzPd7dF.}kշLgK(R0wPB%҅'xkA+ҩ#ZdK [,0B/ͷ¥!J#ڈ|ya_}Kr7yOOlg*lFSk"R=7̟n ]oI@[-`'tNB$XHu~"%v\ P^0%/\\1̳o9̍˲1O6wh�Y80b|,9L=NƘ{9+}X)7v`,H R\i~t3;ݶKMϪ̤7} ^09tDCCg }`w4Nb9(^I77gmBwZbہAˠ??TD51oѰTy@[<X.v"?s eιR I;j]~Xbd>`$_6 cƷ>|++0_5>DGtLav=fgp|oS߃7ΐmGhzN{l? |X)qN܊>ٷȲ$l$L+^j+="/3AęyM{ hGXomMYO-[O_R{IxOS |oӲbbQTs9*Y'5r JWNcb/kԊB{CE�oZ$A.|?+_kKԢQb V./Q:6=[=l7Q^#]!A,lo (/`zў nsW^O9 \ZԮ f nOi_iS_r$|MD$hDpsz#!QODH`2hWGd :s !_j~.]=;$`ӧRu1Оm DiܠL${K;Yy5ʼnl=?�W\W֒?4rϐH+}ҩ/pA()!hN^vE+*#+N4Gmø^aBpX1Bo\`|3v,|ji߮;&8Z+}qr5 Kױ`M"~SEO}`Cd >-w]~)hQj!Sc@_},2݇i#H,~^fI.E&9`"cP~lFڧO�-c/9T% K$qDX\LfDDZ y"ɤON]Q%Qj뼱BRV6?϶$m GbE-Dُw>8J;J2S K9i*/?KEDj(;-@RaIAwY%~ P:Ɖ~ga`cRaZ-^CApK{;,AQ@}{, Yz7o>kFT'"ogrƋe ہ0K9' 8gf?˛ zmy]5/S~'Nx1WŮCBC *o|gJlcK²!?;&�pŽR1X}r1vcW{ӤRًpˁ]WrBǃDO11F s'̹۰φ�'g/a"zVe{ }6??a>»xMs,cݺd:ϻ9?~u;!9`Iwx�:%WW ;re XԜؼz3UNal<̿?d#&U[2fg$5)s/1&n[WNN`TpGVTAbK. [Kf atZ0"r}M7!܍!UܼyC!N}e3t2W %֮47 >-9c9ͭX778o̤͋�;v-hR&#S;M\;pbm`Scs$dL °n8v`aÆIŊaG['oFT(N0ʲ:%p*#20m8"WSU=m&{v$;A'v^\nց b͎Pw~U�ݝ]@Ƿuyb$獋'!6 |UZ&EB07f{E+ʮ'QL)AxW]!~$k( s/#ё,ż;P~$p0p_i }A[l~Pϛ>+=ʞ1ٲ#i u}a^v~K.[lkj:]1ם|tå&x� +e9V /ZKBL`&ŏX fZ?8 sh}RͨMi=+ۮW7=-9eJ?t/Wgϲ Ϭv#HID α)3YJ,|yQ F9'<~lyY<j 8U5Σ?<(vaη|Z{(?Pӏ*ަzUeД7EF/xr<~a~$R=lxFk.d;@@dGώTo?g0,#z<c,Bܾ_n s2-�Um57$�W5 bqHmr*%/u*xIv 5viKO>E+KZh_x K8+t:+ m$lݷu0d6` o.A=/ƒ=N}7 vGyv! O%D컓5/KFD%UX E'q@}+E-ت6c~}N!S˴5~.*v|D"z5_>Qtl(po V!vp[buze엺{۸3=.Vnb1} "i<B⑷{s|?/X$*ˣ}Bm[oDȿ{E>*7(_o^Vp vr$f=wXwiY Ǜ/Mt˱6a"Apf(Uᯟ�z h~˯z-\P&%8�xԤBI`R|+RAW s/I9 S^Ea|]YգNuEiKPzZlCCcxW]�G#ADwf#0_gSihC{ be]/'.ˤ"Y[ɭ6gr4([Vuc|۰oO-0SD5֮0j92F; UJ!@Oq Chf`>ħߘraeN;A#wĺP' +ve%݃q9c㭍k0;)jq,ѣ۶�~4](Yʩ@qDSV- n@cƮR%{v,Aq'\`bfmDŻzb̹)ꮷ?^޶*pw|7jro C8 kDj}ڱ4!' l/~ouyD$GvNR VADS0sd\0(�B6:t2RĀ~v+"̈́ƣw|,j >lR]bnZY-S|Meqﹱ1MRՁ~kآʼnFwr+ V.X{8]B&.SlοE96`Ay1 Jǖ9-"uZD-GE⁻OX)‚Y6$ :8'UZ]0iC!^KWf#WeK C`ʪ+ x{~'ݛ> ۷˩3{%.EG6!|uO Q}z9}e76 ӓv08`\ƹ?!\ŰMDpшnfZʅ#w9Y .խ#ˠvӍPW8葾d1T7J ʨ%~"N I<1^aZG\ZCTuK޷VED.yWڷXwW B <lSFɃpk-+~Pqcle̫E(A_t;@[bƪAzdQ솺:C`DI; d6;,a MwWi"wŝfɈvW+/.<`LF_.'A9$:ˀ^sE!q7-S$_<lw=O6Ӱa v;!{KVB>Er̛trG�6ss4}icKQ:1睬Db9+LTyPrf," Ecw}60苫3  ^3o8* O$omCƋ<d"4J$ub [1}'kZoGM.v ஫op^vgrɊE;kMyH^,K'k^D8pυmDjlܻxjLDLjvXؗR|J/q̍jz^¸fBa^DiCYymSGvJ_DǸEQ(<ZZ^G\?PIy"[G�uJmrc` R'~sӘ 7{c <hͼ5 zO]@0jIzE# ?ht M$kϢM:MV=:Du_])-c2^-9? hA* аx ULމ|dݗǀݩКiSȡ{O( Xꏛ_! b]> = }e'd9 bd'#T("rj>e DnrVD3Ԣ?VyA*tإMÁ~f1`X rI'ǣW@$Ӣm22m?Mz^k-81RYftkD<.vGR+"f20>\jX?_4&a 0~|0{9W=o8 `W 0?֐+�g~:^k*ֈyOF`n}:#~-NWC>&*.E8ف-Xs.uYE#hî-aN9-8أ7i X ̴Jw�Ԗu0JCYx!l، ˔<T(Wy+p /m=0bi=Ÿ&-R.[x>5y ˉ5xlۀ|Xw�0޾p=<Ŷ^q@#`5ä5m1kzoD,=-r+)$Qʉ$-vWaQ(~AGs@Z^hSY T9{߁(i"J u)}R`@1`KfʔgX{R#Dj)":9D` d6g[EH,NJcu[J?dڎDz0xq\}8_ Xvw+�t)f!bz�WnCz^'VAkg1,K^c7�W7[wwa D#qx hQ,~pĩCf ${5}E_U7t$nFG#x$ӌ)i PV 8/*+Ah21cy" Zy�<VN`)v<ۺԽ绁~oO]DB4TFo;$ n.z+p?elGDfWUHu^/(ާ_Hul,^ps Kuz=!hCRS-Nlh>͛N6^OG& b vrH$]>"TDMXeE' Jukm*$pu낁1oB,D\AhLG-0_T ތ'[ aجi-XG�k}]__$O>gb GjxEcEр>&훀ntAXN#BE7?yHKD95\eĴ;O? ,sG1t([WDŽW#R2\}-('8вAcV<qz!!%Ԡ#B#((çasxR n3I>pMuV k_ +"{ ,"f&ŷ +Myf _z5Ecw7oZqW_ta�է4̏8U9I$bFS9uoi!ҶÏfOOg:bq*8'MSQ7czmtD.@2}RQ߫f~w7c~ gzLX?v[Z\O`{~ _/aǬ\X8wM춫0e5᳢o{.j^0v *vw.ۀW̞fלVT Ey;w�Gk\U# gK^.Њ$$&|no:f9pgU+WbpU^D CW4\%IBr7eNYGĦk/m\smoN{{Btoǀ+i Y#Ojt-ˋ!XHin Xכ8,ZTN Z|2%Ѕ "+E,|,?4�{( ;\- _)OY"\W|}cQ}DUU<?:۵uY6"%>8<MvY`lp4N]X4=<&j͎tTwk]hxN ,mK#[)?I8Ꭾ.7HVYi!"ceC^ϷU*owߔ,^4*xx2OC%F`<Mx[g3]Q =ѵ"i|�]1M'ы%v(0άS귯N"i.˰n�Vtp G4+[n?y]ۛnA@{_,sf"zC$Z<[InOz0S U[DF�OU'Oa|x~%4Nۛ@o~^_zՠWFz\Z,\78"ŷN}xq 8$3~ ǀF*oD";7*l@X_xpʹ"̠a{&yI`s-WT!X&/1�Q|IB8SK.]X_Hk /k#pJٷLanN5={<"0ջ VVlM? @;J5 @p鯲lj7Ц.o 57c׭ @k RBe=| NwތdhQYm0_>>%gܑy<ր߃2[FcfSBF0O'%2D%6˄))@]3O`*ǯw/=z;sh÷6k`-]:2 vfشK{Xp[_KMvaݺU ɉ lr{Ia 4/!L @-䛯E8{U#"?g?oRw"rMېX_Ӛ|캰duq?0+%(6 ҫ§SEa>&eQ&V/uwA] VZ�)N,-?RfR7}`</]Zev/_0jC-€ezOo~am t U!/hi^`B)zYU~4Dc ejk 4{2 lؚm!+&~M7DzOk4L<�Ln˝ވC L{Wf9 ޳8mI&zW&?W锒}aEL|" +8rMү|D]}e;bϛ* ,Gܶ{,:w%;E�KVWD|~WPh\7*C } ,0, >jkS7,GO~@b:Di{xo +c<Bk7o㉗xx\Ed{!HLeՖo#j ^L;5s#`+Z~"QXL)`9w k6p$4H~ lo鯗6`n&l 0zF`ޞ݄XOk#q97Շ $JAɯJ5~7ZٳVyB]}>U_Qxr+l| ŊbGanӻW$TYٵ#!-<q@sr5"+V5n> TXm^ȃӃ1q5_%RG9xhyƿֵ{߼F&{y» g6iiQevDM{- ,:ۗ+\P#;93](#)YY�j߽7*`]N<,_a@^GšήC@gk3=_pT{hܷťx+_e|4BᆴnW֞y2XᵅFp0 ^$b}CI{94Rq 5.M-D".Kaxg�C{Kp-oXf훲D;"aﮆ(-s^c|_{=]t(wIXdp6յ^AVe2H,e msxXRA"t Qgek#+iHi׽+86nVx6 ,7ۚȏDc,"%ZcwM~GE-]waױϥw|Gc$FdZaڿAaw+G�g{hBυoLʞ8ܷJdž}ȓ.`~Ӈ҄"W~a{6\}[JcQ9,Bc�V]<`w\ &3}E0'mhv iZ9 y(U%2`Zw2ŕ?"�؞-זtt?9`L_/y7ơQq<9q !}h0"h8=L,K[vApMa>$a܀kS4ˈCp0 _[CX|= w*:lEʇ"|ֳ!&vd,> psx�`D'-Է}n = א|S4[![bR XG9aEʵ@$Y]])5F(5N.fwxWz+`[wWyO(ޓ= sBgRˑHiE`^+$"ݞ=uR:j yp ?Y%o^` 4"E<cLW+~Mn+DRvs;ŧV|,g/3v;M XmIusӋilX0w䌌@ <>w5/p_Z"Hd/e'�~ʠL"<^3 >cO[J:Wr?_oӼ׋(ӑiݯX뀹Y0E.) F)"қ1?D8Hz#Pɪ#� ZC `2SXK[+^Y or7Q<LЗڍp4>BYOQ"V{DD_ \.) x7py maAfg9O[adu,<O\-vvt*=C\9�٬VB>8m')!(00�oŇ=Rl$?Ky{KGuH<JwK@ήQe5~Zw"SڲW&5c._y @^xy.wD\)DθEtmG>Qc( A*$c=y8n#.1hn-uN\Ŗ ;l|!0>^fje! L}E"g\>+%jwZE̼*mvNY.d(wDK#? ͷWW\xayDt:LiJܡC kc@Wa2em MEYD^"#%T~ԃsWǏ qh]ؿ@ ".m!uON,"PS* #YfŘJpYb*9$?%) a$5b`Z"!s}1`WGmץpaiEk̢ݑSOkb<b,>mSf߼Jo9"87XAޫBhz$Jm;7 ?O4wt B`1k|87\ 'owi̲C^>XXZE)W8ДF$ 1MD^1AɅHLW>ׄe#˜^?0yMk̔8 '> sQDTKwLjX\ZL֚觺@püE쇁A0ʢ|p^޵{"L wzޱogW)]�GB2nE8%R|h$ v}fI#GFi{'@ktQؽ26v}?&#}@[b#yKU�h�w{-";_9ЕK\1JtpFR wSr'g0\6yʖ2W,9(yN9KX4N^K= e/#Rw^879Dc'& "ο:ֆ}7@Tuilٮ O D8>&~ ?c=Zt?Ҧo!cEx2m@w 122 Iʱ.S#t3A@ua�vB)wAwcDR?< smFa+#v6;KqΎˀSiD-..dXRl9"rj!l=V[feL g_(6}h^>ָ|Z(0b}y%/3JL޴ #a�z:dz@혵y>y/+Ujw0?`wX0^VX[՚p<h[;A'6dEd>Y,8$ t_D-?;7 0f0(FĢtJk;M[i\M .-?w@i;-RjIC;"DJn|$6;TIl?&c'VH3 ENP|^zw ftoHYCW5U<NxiC+ΟG;frr[+wֿh70/{kٵ6lhnZ6pz܍Oa/v<XQMy $!%QΘ iB%pRhT_]Ƚ}|JT=Ҷ?sFY%`ec&'[cRHj65�Se\y]_;St .T'"Jș_}`m oQ7͇r5K#^ BIj rS0{BS`|١B\ R#1u#1gSx{cl Y`K**k&� ѷ-Tw^sK@XJZEiQVo/2ۈ|DY1T`bq=$d??d#%D/DXwk## t8›e!"@[ ՊjJ5>WhN �3[8lvRom[O�*1<ӭC=%?<y"s`]ov+/?nz,ԕT"Y D˙;sOLֆi?kUL'\p 4=NnWH"b./*U#w4"^?SGNO7Cq}f\>i;Ʊןz>Di;#0|{疮~g&Fi3p>,֬ |Lꖂ([lld駳IFg`U}"񴰡<`Z,Y 侗9�7}Ϗ"U:rwH\ 8Ày`\t$"?S:|w;c}1E&d0酆*`V_۵wa5u H&w`?<KC̭i`V|7'"av0t\/X*s!ܓ! s(~r })WkJ9a ʾ(lf!R(pQ\F<鏏ob}.-~!U/ǯ/:LpGڦ= /HR _hsRܲ? e7VI'e|97#Oy 0.XX%`皰}U U/E_eS/V0)ÈRT!HqWG/%nJ_%+EH9Ywjz`/- <Vz$$sFj t�'>VEl^ \ SQ[؈ש}yHGo3`F imio3qշSo�ebOm l/w%I]sQ kVͫJdX #*z_ܥQX^fDCzXJ])MiţG<:)ao~ibc<0=GwH&<]CS[[`*BzTTC9Rφn~q޳'fv0~^ߝ�3g,u_%gd!r[)ZґD(-3pQj7M"gϞWW5<fªnf/+7;pp�Xc*;SSp,]Ɓtzr nлNF6*Lk]dZ@ f#Zp|]ЃJӑH2w>p?oj`gm T|<e˻oBHL:V&Ec\yhM$9yT/N$)12ؼ+au ADt e3m\ʤG9kkώ^I]k:8TybD8ꓪWF.w} s?-k_o~�BD[Spy!\#۹t_Ttξ L5gVAYup0hQ{&<>Әvc16\.Fo0+cg;`=r+X W6bɋrثH,&/BBcw`Sgo/j݁wXpZ~]�ځ>Dgc^M|N} u{&}߁XNl:^ND⿺|DֽܷLqۯ5!W"w pfߗ[tY٨>lqN'+ _`z h+H?WPDTuBVt?CS?@h` 7S‚ue #=7h B/b(KܯW<Hx_چ=m[P`6rܷ |dg។+/1;Ǹm\X;$^"?}c|}}-wYls5"o5Vʟ[{>}ʪz7$rjxk<@1S~aк94KP\ 4]Eα# 8g3\S*2O뇍]�T .#8,`nد�f؈y>SX!U(V]GB}2DRXi \dKY<~ L=PkflXt<ٳHƈQQV*"Dw*<mڹeX~}G$ ڽo3 B٩$P)P$T%ْ*$"ID**Q]6|uq]̜yfqBHa=ЎڰŁ:Dhc񝜀,Uzo`Cf7NǸb%ey}yyC@[\Rl><+-__m?)ul@ "`?y_&" ;_;tGɃq@/ 7+W#@ґ/usp?V�C-3pC)5 xUZ7O{;u6Ʒnb`m<B\{^_[\=(:i),͞T[Cgg1u,#'Spc^G]nHt@$c46S[j4𾯠; XQ2pM3alyx"yI8E[#b"A]#z]m:<HnD]/g w%$dl}D̟ L A:N#C51~Pyd㡊%_d~^Ӱ=ր<ay# \ar"Ptg"}?&W\ק\u&]O՚ΪTOk 27M. E8<s9O]BvZ{ t-?Z˝iz[FsCX_ZQ(0u"D[eŸq*H/J%[ON.Zг"j3xޭ̇&֥bS+y9= >*"f@؟Be +%*Vd?F#S¨'"/3_7ze{ʜdCۿdHk> z,)Ec$xϸ*F{kB8yf9cN/t+"dY`~t̆9?=,.5"ڀ]ሲݽ`}tX %fz49m}}׊H޹IYN g+OwXTw$f*T.]p�D/"SˉӲǗ|q..~i«)ӯƀqWⰼ"[M|tŒ %A(, &m@{.kd`v*nL弓cw~w̦-׆P9̗~x.p% }= _j}ԥOa>[B&xIy6 Xl}x ao:N]l^OjLN`o;y=v^@3d"v4Wt~υ|c$D=n@`&x{DcFGOs ՜7h޷*S?^Cõ5:ea3Ϫ>¹ >?^vp=]<&uA&6v,S]–q h#պ@;nO36 ?.9Zᮠ* T}N?g.e�{줯}f�]eWQ;Os "Vf0/?xr:͇9~yxRq,TI\D/:iN`yqnH &510Tc{>:c<8;?[n?fN`QQ 2ro * mFb-6 \ Y~5ž폂YƔ- JݼTm_s`T4~O\w;ֽ90Fo5lN6T/,�u-�ˎ?~ YQ{m}¼!w:n2,rNI3IlkS/ns}F?_`9- (6G vKH#M[*{ؿp 0Wqa$GmTƹ^ȯ-]?2Zs7xZtֳ/  mww~ZIF X]o{{hǸeh.DD5t_9"z\mq@ⶥiԜL*pxaջ߯> 6ڽk'eCPrýI X1}r~1kS](+YB`) 掽Yo* בn߼_tk:,`gJ.3˕|<"~OV4ixV~g%^O 3S90%$pG3a~s.fH>5i'#YFOA.^'s 1fe/HˌSS}" K(k �h})4sIkvX c(b{>صc9u^Aտ$֞}l}/˾{miFg#J|3od3?B$i|` V+HWQ_9z1 [j`\} 9x/XlT#s~~W;9t*"vK<6bsh`_c$r\Sp |Y]Zc"ü:-Z/,[J�#lgf`* TuqH2OD1D•fډ}sg#H8Z{_D,8)[h"? $uz3܅ZI%|QLUed�09q�'9Oνz<ژ:7}Br[vPsŽ3?!*gevHijQDBƜ?L7F83*.=5_umN_3 NSj[m|V%+Xw&\R<9(tuDzM7zw(?g''7hh�fiX,B"R�_qsJ!cCf- )HOrVCGhaY+[v^M;b3@ Ns]HɦV#÷=J@{TN, rJ__ܡK[1ٛ< 'g'1% ޯl`0w>@Frn0BIII4sDٱ){<rD$s&Z%"!TE9Ko#U#+5Ngz|1B-9@Oz> _n[n;0X[SݐENK>L{$&Wq)p&"O|4.9 X?zWp}}j D +2*D _6fn~h2;} s;U!2Qq^DGf$"  DBkNإ!¢zSv-K=q |~%v@=gx:&@EDb}Jm_`9ݬz~nat &2a>D>ڱsK=&w>;S,q+'TO`=w$2.`H77]JFʢ1G`Pxw/P.;ݵ 8n[>�{6qJp's"ʬLFą>E+#De~mk!}GęS^x]XruT)<SoiUe}xh',"_|"ݹ_Obܼs˳W\מSu񏁑&yhOelI?ӄrfk^. sFˁ^sqD*:X|kxn謌뒳4iQ] ,7.ڢ t3qB$:: ,U^w<`lsyP ;ϻR0o ]c|EiO1cfN3na+&_ JZ뇭!axX7E pmYK1N+^TQf�zx$aCu}ޟnu~X]Of[WAUG|C+"T4^Bx[>vX!uҘZ¼po=nZ D BZx-Fc=$b/~$ң :A0\ ‡8Jp{?tM_x5|PQ&#'C5yj[I`4_~>޸V 84DD0Z*>D={&c 䤵50?Sv_D\@H=K!oRj-*e1 � ݠ͉aPx'6<, 'VƳMM\=T0[pʽ?ͦ7`Cch5҇nG ջ0of0ѷ[oSa/ P]i]_Hs|j"PTdF#,O5cKY[V50>}pLGD`1f"YѾGbz-{?t˾ rNFLJ *o&0ۋ.-92_RC Qr�wvR(0D^#cG:E7ʮ=s+tvgWj%nk8Z@ =Hs˝?{AiWØ973"L Ra|AcIj7z>u42_-(WUGB]qbwn"j_8 W \BMAXܫ3~j4jF7 odκ >+Jp1N΁~<k%@e_m@^E2L62!/~e@I<,<BԶm&Dl v�G<Y'UG:si@K]F?DM9l .#$XO+68�}~*T|Ĉ<E̾Y1/ tQ`sw<Bd'OLB! Il[.mK6@fvU{8`]= v}=.Yq*#"G˅_ L,Mr$50]M} \DnX(:9+>U`ћ=8t:]f(N1^Ǝ_s+7\wC{>%!]+1`^̲@D\_0S2^?(cBBV#'c>5u[:Fz}�|B;?1|+`D"}~G__̳hIƯ@Tُ0/ߗxi?F҂7 pƚ߶l]`w~KQ– pC|}*7il[UXס 1"s3MF@?h Wbǝ+\3ɪU\3lƵ&]̊;Ag{q:ʥX!3VB#m3 ]8˳ v֟##0n\#]JFw*d@#`WӆYxJ&Pk`U3.3[MVUC$c>K=fV<'u8=:ϧ,e P"<EB&Gt|3 b^kK5]IO6+y@V6{3p_l`?K>wH2s=t/y7L%mܶjK.FK"3V}cJAP{ 057:q$lj0@spVIE±>yr- `va辥l-`DT\�Ntz'xZ/`wϡ[abcy'S04 ;sW_6 .CBɥ뒐PϽ%)O!V ߈q[3Gw:|A,g&E QD7iR swm-zORTeӁ1wk6S' zہ!T;e^: kwͲ'yR>?Q]l(ztVoPk֥XC60n V7(X81d+G2woBCt9$܎\ a3DKT�O#gv`Y[22t0$3񽃫1X"˦ƗaBݶQ/Uf^E^nA᥯ ,V`G2^wn+BK_31?l\῞1n8X64rQoPŊkEUa钤crB=7�}�[OmBn,գ dFo`BiK%橥Y|ƽȵ l"MjD<c'gZ&D)7&W<hm&x5/oG²W>S5*ڪ|KDDT6<7.ܔ/X >T5,Τu=AD7&`{6z/�tnf_9‰\Z>L WesM7Kܱw`2e߯<wWa"gM˟{MklÛs2B)Htwmc>Dڼ\y: 2NsԄR7dXD8#ZLY zFڇ"O$^yHe]qH8O{M"={e5]q0ox(x~ B;VD:!>b&q[܋=� 7 B9u,{F]˵RKs1/4x6,.|m͝1XIڗ^�^>xH^4u[8"% A0ݦQ74P< مtN2s-1)ؾ!\>Puc xn uYmԴ�%[Uh|NLӍ2PH:;>D/[@.?d[)71n[@iyn~y)zW;tIwk >3^5`Kʓt5C 8/W a>3߁ii`o{X o,b]͏]˭_U J5w̉f'6/{(^yJXv8f냲>!m" ZbeY7^Zgp> z!‹ujXn2cy(mϫKH;Ɖ:О{o &Vׯ | c2#XFTcTmZ-mkNVYk?C ^[53�{ kO0<,e%xXhHNrA<p:n/p#{|cXŹt/[V<['˹Ya=b5˳yϷˆ1ˋn_wGp&}ڢ>@/qlӋDLZo-Ԇܬ{-Xi2%NoRQ?ۗ(>z luM|"&!I4C#v$GLtl~qp+gAr;ɭ,mJX la̓k  x|eWlPjD{_y#^#ö5SAPU:6%vfvvVt^k$1+zw'5*|n#ʹIB0gLg%(O<n7ʆys2g" z_" ֺ?X)7Hl0T|Oδ~zNo@wAWD$#[S`K.Wǿ] y/'q>Q.+"\Dq%F7D6u \=o/#!-Ľ>-1N9,<Uj!^ {1ôGj[.oH~UN֟.B"4Q&"x C"y$&顺 2) g>y3K\Zv![//=%%+eHF%{"u+Iz2xJ5bվ5SC |"GRrE5+Sd wx/RZ6^‱}DΉ>yb4,xy5nX\:yxeiy_ln,"v+y9p`AɆ#z58VW!bK"4F1ˬF! H:"KTl _; Ueܖ? %W{32`9}՟Q[�oᚬUL|xNVjqZQeJW?>l-"jƭ[Y"g7:bGD:,qnT *HDzòK9q־up#xHtmȑ`}T<uS$/ OGdu#m0gV.k7BmH$w@3%e0Ό(0<,ϸc}@U^Vea{7+V`vy "L) ƫq@su6P׼nΐVr`.!61~b~#X|Uԅ]yOsWY7,s?1} ]X:mZZ x~$1+704jDa!J G0eIn'DhzP[ 3'wTphEO6K[N<yؿ\_-Fxo,AZȧy:KmMy,MsOV z [#&Vh=koXuvY#c4U2:aWԾhDcs}$ >>F:˺�z~ }]=e/W@xjc"gڀnbGZ:4'?"]wb@/6iy]4X"uHQWPhR/?`1 \)@_+nhVtۊy,e#anD,yzq_u+F o`eE/{|ڣ�ʤ nXY!nzmEBX,ߊT92D ѬDX;m?a|Un} o>M̴Qk!1v*_d;U-ȉ{5?TrӲ`9قpJl}կSX}wyeE=:W{̢pyW~ gotSnWE *+D?z>be'o>�̈́_R`593 l5 u#R0{8"nYV>c_Gxόs/&xD#b50>[ȶvӃ@3Յc2�+rg>M[^D2 Qϯ 4X#%�DVCbi DBRz)*2M܆So R LY`<oםw'r;pο rR",F'Ez1֞ļNժ`'ޛmYW)mL*"얭tiJ޶?=Z|c{s_,5;OV d O6~!UE?Tp@K`8^q@0N^e/0. Xu%5>"ܒ_G?Ύ@8k&XVM I.ֹ`qDإj%aÈeH4s+}J /6; S$is{54�h ]k|t$\?jRK2"<[dMr7_>CG)Dln >UDXsO~xŲ2x> 7SpEq&D!2a*w[]T@K)1/x݀^rLc\1L󴪽WY gX;hf;lq~׽X]VUq!k`{J 㿛E = T&\In_u3_:!4~DZHT&�#[D`f=/"?p"Htd=KvFb/0'-i8fj6!rW[cvv7sGd1*۝'0x $ܕ1,qZ؁W>X?5va^\*�~^`IEJL5}}2$"~y>Ϸ�OUۄom-r;4˟ӯlo1п[ǸY-Q9д Scߜu]7N9f�OTw[HXq6{+*7|WE�Imط#H7|dz%F$"i78 䝭GmhEB~˶Xɹ%?8(?Og|׭�0k8_ XP~㜟}Iã<PHGB#z %޻6XB@_om@&Aҍؼ7[A602/G"ќ6'`woBQ>2WD*Ɂ4ASrf_^j"*gJ [hqe"Z%| \w0'g+RL?ќ'jE: ص+ˆ8*;>m8A})< ?T%O;xMf1p4ߴ_BRDוuK@5ɖn=u@bF]n(Qm9 ͿRk|ۻvFxU[|VM,/~CbqBu7]G5勵(pW|g94fj-`FpM "{`;絎 [fLB/=$,ND.E}}=ԠWၕʈ0<d "I Yܟ=hf}ioiD"ZmM͟7HԴ^2#tP�=3~v}?{ Jݏ癈�8G\ʼn{Y<jHp 7O9L{*LOZ";zO`|3H+!,CG ;�WkFXDl%jQW0l-,� oGR\(Cgd"˛Ռ#@30T%N>iaBCUCip%⟊;꒴PZ?*0ce D'*q(5R|Oj!$3W r|ri뗍UO!|[ie`2d)0.3L{1fn:ca:^ۯ+v- fCʥG}kJ#&Ijq$jn.!)Q_&'�Va}fCg ~ST>'5`eD 'ϿzID.Ɲ7Wt"@pшo 4>n Z?uGOx`"Ϭxwc l5w|Q>8G>w3Zs#ڑpTtCD ~޺/1^I@N+"]EJn[cX~ h bU)wBM)п9?U<j@KGf߾GD2ԴݥWfW"ӧ#Mͬq Ak!6Ki#ѩx`\[ qG[2o"wbx8#vP sj0>ܲge0"}P87eui~%DD8=%96c@=~>s?2-*2g!i[D]}𳶗l8kkyGQ\8Zw9} 3⃜U:"n} s ϛ7Cp�o=�ZC]LnECl35W-#np_5�h`}W=q-#�-<#FxO6 h!=7O/Cy@U8z{X?<hQV<q(xB…[ n-ߋHosLُD6 |53Wk ʗnMk$B2e6yasj6^I5C" D :۳ueyD0 "$P~7tcɝf%I8MCtDUne?YL=ͳe8BnHau>0S PnqX0ABE1+Lz4~l™=Uyü /| ^b ޼rKKLp?J+Dq0 BnHdU QLoNM;XgbgBun?j>,:.?#!2ɠ^IX ZU^z�k>2(/ά=&4Bzwn^,_ySZyR%\~HhTN:"^"BVcIbI]ÂnS0|¦7g->ݟzC@ݻ_ʫk^kNB#{D\}K֓*2([h~[euEIZ ,!ڨAdg"i{E]'_}0WLoA [OsVU"Σ-W`*Z|_.݀,7R!юAm@UPvX="JuE9V|,b𱗭x@?u#(NO׾"2 4ݼoE`eِ΢5 ,<9ȷL Lcz~1T�+ oGl{T*f]AyJGw U=j.4uF>=N53H&$9B.=D²wҲ^FLplF_ qXabUX\b#_'zəD1zM:(}`s/ZNJ-Ƥ�1'oHw'o=.oC7aq{[KI6t5t"Q͏} (lx}":2wn7%gN09DWIs{-<p8Bzy<p˲C>9Dreߺqj04qLߖ+u5\ LT孷ځ{ȣ�`YK@(#d<`}F6 hkl:&"Mwp]Ȗ}-֏kT]/iM"c[ rUB[~Bz1)kCDE_7WX8ר}FW}O. [؛!asG$^HX&|b"N{fo8mO }]6zS?}�ֆ]TIXXU"潶 촰Z,X G Ͷ[C8)]@BnaBd/0OU(E$.WMlOsS߹nOo<i&|Y^Z1H$7ZoT}G[?v7?!7IfQ>Z&H+HxӲkyxV=ֶ柄OwFb-mow`m.l� )Qo?h,Oجd#aj N޶W@iZfl?jROFIo!0[ه/pߺy@ emAUU=܀5N<"IDvtDx==ZfYtyay{̏|zlSbq@~A_WHx"z15Yu{;在$Kr4x~e:"dyx_"Pڟm@Cͮ`O]0PΤ^vCP8';v Yx­pt! הakg *>:4z ʾ[rS/HOm# 1k jj=z:? 1kh"܉q wVD\<5i7%}:@I!0rk`[3r7Ӏ63d@s/_n&`6<] /INO<mj#)K |}Q6WvhωFrN?MY!j^-g2cw"?bZ|l焦ƽ"wr$|[{#ky[%\"p]d-"7?2e[ìUvObq,\2(\P{;>!Rx8к;c=V:fĕRHւZ7ex`-X�\qO%I}HCΕlʣ߰/ˈi.guw0ve'"cNw?J@'nK�Ɨ tPaܒوyH[n<4ޚ�gz=@uSMb>i}s :K7=ILs"IYv(nNV=gHANR\YlDfUcC x#Ukv\8V�~{[&vQ10=v+raC0#-U;oL9`v"{F<vEmDzYǼ8NmbXwK}a!/`P oH~@,}+k uc*׳nz}$X9w6/CU/إX +,=sCk"~n?N/C-/<>_A'̹H!DnҼmGٻt>"WMоK; 3A9U>%GMwՋv2EED0ka\ֽ[ fLøL|a|32~ EECY;#b <�iv#=CS^X J5oKH^[(vw>%ѐGe!$e9|�.M sXg;듀.3!p2/ɖ�_Xo c⹩OUT|ׇjIWHL6.;p!&+ڞS`~ja LK' { J1irGBFvt]D+D"X؉vݿsId7kJ]gB1u0^Jz~R$tf]fm= 7Ǐ6nsJA7D^6_XϨҖ;kx78O%=+9F+soKP("cSAPxk_�{o$>p##Ҟ@)tXTr/%,O?#˞X;u%7'`նr&Kj'6G5V#᧳C|@>|-Xtb~]SS0 >žH(N583vత/Gt} X_y C;7ψjuTZ9Dj`$S816 ե>rhznb_KW|ü }3ׯZ蟎Ոg,T׭L=SLi>6n $^0UxņXoҖG6!U;BE$rhv t<mO7tTJHC[݈T}Jw\M,M(ẫU, 2 @i9%ם׋T^? Q.{/`^/+[ LqpjܰvK�jAHXH5%e8 L՗6_)Cߋq!9"PΟ=cs}WLOu)0y +fEWGO5A8}HX}@j_ɵ^D}#wj(+v4YcW2D.V݋FZ<>Gsz^Dn?%8go(~Y շ xneo)p<^f(O!`ve$]i0)RxcY X!; V"Eb ObYDn6}@HxJ"-{Q"| ~xj QMNcg6$˚dwf[Yeߛ$$a(w'"e~G¢wb73XHa t!"(g2F =sT &|;t`k6]IsY$Vyp0\~&w!rҕ ]})|z[^sbܫ+m\K"~+8!|+j/K] !{0 ت.'K'>aZSD1iP6H;k/loix Z^HF%2ATϚ (RcLO�̥ ㅞS&_ w[<$saA^ #g 670mI 0/| =[ #oN� i|qqEK0gTiDe%XP9 pV'Ȣ'dv0ʶXp3Ŵg)IQٞDԫ;6;p) |]OB΃we7TDv|Amgw�~0LZ.ۉ{>( [2XPV]KW(?Ycc{42?h<qZXпOCxvY9al-&brd+ϼnB.}}RqzMͯmGWφ  {{k9ٷD,"Rr+~ڳ&y�Lu}png~(*0p>dNW<׵pAw'yulQjYfq;D l`4`&6z)mz[(8:<X {yWp LԺvř5G␸]pC`"-E6[<̈́;XH,N2ۺz @ i-I<ҋn+J u?�5~AF5#]6't Ӛ˃QHp$T=4ᲆ+=�٤KX$ݞչmCq_te05n?((y'?EjR#KgҎOx3$cҧ}tI3UZ'OjUI 4!AfÀvs)"9z4Wyr"|J, WUӂQX)]pꎺDn`ZL=}izc kyw*wˑP5Y|0pƉB*oɶHs؇/xp0fWX-hœN`\gY:\CXľ|~,<X<7@EL*Ѭ`[P ?3 mND(r~y20U;d 0!X́S2punnD4Ț?W<Hn(ƜVAd(>+Jj; ߨ\6WK@!~ VR/rMҕ;;fpKm;D4;;cqG$أ~@u$B&̔uuuG(J*U^�۾ 0:r'k_v7:[6Amڗ9H r2mji9luOkgB҃l:`66a߫"FAk =VHR--7V"lNᏬ~QUٿWJù% ]�6k0Y4bO3^ ܸLsr<U 1ʞk@K{R `$?(|C /tq7 »s;û1:l# &&ہ)zT�4ll9}$q$L,,k$u^Bo$fcv!5+v@;# @5rہ7a{so-"{c<500ٛb,d�Lq[_ڊvsĠؒ0|eF !\W!ja_¯\I " Œ{}: T6bŦ ~i;,WK O3k2T5[ ۈ04sQE~vh:SF?y} + yFf_D}m1{yE#,I֌`/G6Ћײs7FIw3u%ϯQxws0WtGR\00PXycR#lx\k__Q:~g߰J1`ېӲ !W%;>64b"FE(+"q: " fPn~"ل5*+WczIׯ~S kM`|ͲAĄgs,T8nX)~:${𲪊}9@;>㊄_RT3__i/%{,\?|ehm rW:HڰRtga_LcIEw# sBL$m|ㆥG^1�E[ F8qLqN;�SRZ{_l>T3TݿG8;"0JQmbز~iW^^vK&ɽf=)"wy=7ЌW Eү)yAtA`'v#bq:̻/kھw()"< -$4)s'pޙB0ZI,%wNB/*OEb^;"\ gP߮rro9 w׳ہi/|^H(sh"%50닰qZM 㣭{WLԮcޮ|؏3h糛ȣ![Ia#? S~}?L+.̘k*; Y|읕+fOp1?ysuLZ@Ny!M Pq.@Y]�)=1fH{1aZi->ˠ#w6󼴔=[)j<YRJ3":/ۅG.Z�Cnӵ xniTTOR�4ԙVD~.!+Pz#wRwyPAPiErxM?uAenG"1 &#Վy@by% QOWG46]{4ȓ{yÈM=O,uS͈bYy$'3y뚃KH@Xnܼk? #rӝ7w|3Rn-sSxнusB[zF')*.`u2xsKJ9eZVu" {Jv^6 ,l<90`d=Wa?S{o{%Lw+v<{_M�kLE?"]ivdPֹF4l ʺJN`h)?!?./e .m؃N<7Kb9m?;F~DˡV?ݗ'ü7 [B|)"l,7+/,﵏n0d| uW vr̀�CGߑDBN[{P6rcH)`i(t|¹]J#}4k2Pn "eU;Txfx?sn^Zw*3M'`iV_z77bl!0vi2P*K]+z)^sW4mx2٫x!!w_}�v{M}^[ $.dx|nz-MG+k&lfTM^}O>Y� Y^h]϶Dvf85ބV=^gED)]UpX](t~,pS gN|_w r Q۸ [%kGZl@Cg֦�vGc{ Xvqg]=D`9Q :#)i4б6teb{$\a$"%%N$�js"� 4CJ 9|Hr1p— kѓ$D\alXw *2"7ܹ4`&ɟXI(e zůDBA6_̢kjv�Eh04tG#io+B˱}ysg vPdcty?_erJ%3E`kP2<KZ/Gc^0*l3W} 8`=k tNF#Ѷ@a>|CᝉV#oƼ8_MΆ߯:zD:#WL"YL5z a\D0q^ C)j# xB)5j1t7݈i/Ic`Ϊ!_kBd:~WfG<|G NKH<߁vDXuc ,EQ?YQ!xWc~&Ё0%)sc/$m|y($D;�[E@?0~#Bl k1r ͂.<3^9zfNs\t1-i`E?<{1}(M #p*`P!%˿?TS/6 -7Iܷs#"|90i L2Ps^̛W5ksyE%|&};)¼iҔDٴjy"I4juGU+as3{ !R -[1e(C.뱥@IiFm>a`V9@cSԑ<uwavJ[-,yn?W ]E"^qX#̽ [Zނ,+{=j̟/EB5?\UT >2뺁9Jບ$[7qڎbr‘s㟛 ksO|pіu4Rz>xr:ƏD,4"1DGtⶂ/0|w& i (K=ӂE$0]r{yŲ\$zx#oWSCOÀ>d"]͛co"Oo4H҈S_-q/*%n^jPm`^>I r:$ؕx9o=b( \iUw| lX1lY^}wF2)͑^*a^yХ?R`yAi=/[L5(/YK4DP*Nu[C9:[0߱[s1JV4X*y?EuE$`V knc86<.пP fS0OD~-q>S|o|wWkHϭal-` NGaK.ǟa~h*qUlҷ 8pր1,;f1o| Ap^gRA$|AHi@ ~o3yT`$\,wU Z?|FKk{ �Kug0H}V+ 3ars=*8k'ӗ GU@@mZdՖP&�g^z�ƕE O:~,X<]QÜ_@'i']K<{ü»Sտv䁧!.xZFPDXV?d[0߼}ira_x z;;mQZ`|!<Zo�FHd^}sD@{ ڋ[|cn*0##gy$3cνG|)̣HNy^ kXaX~l"Q^ ?]|Vi< b.?7o)ٖRu| $ށ)�QQCE<$Xgr�h,\Yvg,AۄH1]Ԭaweq}ڂHwy0׵`]e^Ye [^Wr<Xv\ǮWɘ/\S Oϟj};|oW_O�/gS9-k.Z矧ֲqh}d1"Ҥ{~LwQ_kzWu7셵IQ^!vOl4{ojfF .sa"WO=bOg"c+5`Z@'6mvβ4@}fOtyگHBٰQ#еZH%7hxY'mxNLcWnpNq<9P51+~AQDO*?y\[>҆H"wL3EhQz "R|AmYr0ުFMU@DjmK7|/؎pL@boH2t�6Uw*_qӋu.Dp/y8̷K$:~Ax)c&oa10m :g4ih'fW-Fb$m3Õ:shj/ϊNl^4m`ANّ0C}_ a|;hzw(${WЗ|=nn+<=eY :-yv+Wc̕*w�gZz@ \5g짌#OyS5$b,wE#)v{g1w'n!*=�jO\\&|'E%O{X>h`3$} XXm lNbڢCCB*ϯ@RTk[0�g]r?w(vq~@=Nt [5`�D:0Ѿw� _1yuv;2I>rzW Y^1w\|-DSr=� SXpT)o /lKZm%H(0ūq1 |o d/xHN^zV*WXn3@垴}Xcr&,<rmN{դ7`G>ևq;"6o%عзݵ>Zרd׵Aw@}Z>שڲ>=d u$ @;I(0A879׍/>_JT0ޒ !ؕJep}/澌.3} VooBSxesLOOo~o\ 7,|q=;.:eâVVrnsn_țy.7.f"36E:ykyO*laoXbT}k*aV9p}*h!nN`ZOaA$?dqD.^C;{?XMm;"G`:tEo�c;@b _ ;k2ÆI"5և$"p2PiЍ=a;wFDq?b6{tl4X-,WܦH]5z(:WF9 d3(\-ϋөEK1>M2MFC:U) ¦2U@5{w&"]4+ fw""hWLpX%  ڟ#Adг@Ky?":S4nׂqRl_ J^"|dŢ]z즒_]YP1-g9W_A$,m{>"LlIg V�3Lv ?Zj^ oLqkߊ=]3qE:$((>pԬ=|=7sw&6,B©CϜ>B' 5D:?4t ~wi(4?v"|yfLe+X<!Am?G`QK8 e˗�C2Tۿ?!X5$_ k "jOӏ CZ *nۀ`tzLPůdp8W%/oFGL _$lvu_7CA7^!c k>Yw-V+o:fh'W9\1UsRK5vr筈8tCHeęO4iYro" ou~wXfUHNIDxoq W^u˦9Z-8^EQgڸ"Ti,N@F{CxzxJݗ ~{vG<%? ;_W4q# HqádMM -׵k_c+/YQ/S˺x~/IxMtWD *pln�Ǽek.MsCU=|ݾ[7okX$~`E[O=q~rWЈGe89m(0O1/2ӿJ {m]7?vBArhDzͣioγay«o8z}�ڳ?9~;ɚp+GR︺:ڰ/*e_LTCz1=PU Vni9$3,F+0$l3xE8%BxuSʰE`^wӡ_L/fٌ9sTRQo>ߋ~ ^CL}"_ MzaI=`KZ{"Gå3M ϼB߄ ߩ6]RpF j2>I:8 u"Q뮯(x#Ѓ~#݇5YwNI$bL:v�ކ}GBE<dod`.!ЌHPګ@o"zߟh�Dʼn⭔bɞ�`l%,E]Z}_Pk6D%�&Rr+|o3v;J1 ]'?m)V@5 S ~:<vx+0at/s. #_n<L�~䏸�Ҝ`/w&D7:QQvMGy-% X'8f3 \oSiGX\n ᧍OWG#z$ ī"R^<"6wy Q|퀅N\iM2X q:q ==Q!"N9�Ԕda`=1@B˕eIҤ@mRq׾bQ0y?< 0E62ćhJnԞ{6$'#+!ܶݟM0FWcvF�¨;!2W[RAтHM^mmڣ^3=gyq\<04-rOj8G?MצW"Oe~$*S ~z&$) 7G>q݁ΧR< R>)4,lXd&8P ~.ܬ遄_؎(4I">Šڻ0zvX2"y,!ҏuf_feq,[sE 5�kEsxeϾE7vvSr`^ݒgv=옽rX\-v![@;Fk["j_˙Dt%[m>wxODxܩ)jǀ' 2XD Dd^o2 j`Z¾e}K(H9Rs.%O!ڌ(ڸ jG<PJ -Gcx XD]'AVÖ[q#Tw@@c[-Xj!q֍ !52߻sV kFZ1*tM}9aaWeO`PT'a܀I{vv@N�Lջe7`s~ '3MAQ> HؠWǏ@oT=EKخ$>:}@d\o|Dm 42zr0kdmzs3+wR$'@k;\860)۔. 2mrD=ItZ F҈/u."u{M=NEI/̏:U-anuEo`l0dv[qqk=+֛ d#j ʪ=("KQ; io1QD$=Y g4[#aϩ郃.Hm 5m[%Rfڑ9ݝ_"ǺD Tȟz =<˗08|]7WR.HTK/ǼbZBT`|~zۖ-<6'"2G /tǥhXĽx{>M�^'Ԟ]0r="cKMcw[o^ [?xǎοOם^eGc|n+*߻I[Bd%O`~7ˁQ|᠋o409kl_(6ѠQVפ} O3偛Uhn}O|h!y̆D늣=a h(?` 0PF)ΈwMWK~,sno"$I9+}r6c{.}tQ|}.#îI?~Q {:abtXQp1~E2 tRܜ]M-,vtEk>As<ȏUMaQ'DD{[ous^[v a+")mL?ɂw+DL@Dw%ٯ~VO Q,A39*[ul9*޴*mGB- j 6i�ܿ-P}km7NpvBB.qO6‚c s_l kcA-J$�sհ {"*^qu?s{WU]ڵ5k` pYaPpBAbN}Hҿɸ/yUi4KӍېh{}+�i͆Yg^umR(]mHg ;>mdz7+nO&»9f?8c&̖.l|B3?e1^fD \g.Q<>hafaHts30Gҁ9X|d p.}X-%07=zpҮ,va]Hv>vx}ޟ-I9Sfwnd!Ru!`m30m\O/؎z=�* z[vqo|B-qMкwOTt7cGvCG(ІNfF"]GVW!w[#\;'U_+Ub�OXpr0p Ⱥϴa|+m!i\_a攌Hlznh¯>ĴGx/qwS緢 lGs^y ]zQDH9{iM!©j�w}_H扭k3rR]RyE٦GnMM,]^6LGD ]cw&'xnN,NU/ 7O#ymd JKFeB<zz-W("\lPxۊpZ<퀺kk2"^:z Xg_ {&[m̦%)QވOJgcgTq~Qkyq \?` ">Aڦ˞x+6FSHbZ ҉ӎ2?-Ȑy]njnu'PX�yx%* FG\Ӹta"wz"Ii'ASkX xx~0pSa fV@5nXW 0/419`pgEIq=X3 ̖a5C yb973^Xd[&?M9ϨRV}[l!Y44t3|B'k%i@Ui|PV4Zɕhr�j%5,Vvy $m(k(ߕ\l.]R2Q,_ػ QW8#B}`~aRa"zg~6x48a{ˈtЄ?vcvN2! p`KeDT|}̳%4z~p)af&mbJ]`PNwn_M`g0{6 7}#|c,U[$0Zx @F\bM_lsUBeR눴lԃ?/ܜԡy0D Ӧk�9!I Xc/|"]aA&N`}[ۿy뙃ϊXݧG SW׸#Ƶw.3 U$<S/_ K=�ZJ'qD M߫Z彯%nXap7P ɟ;o`?=:/ sm /m ȅ)Dj2$ Tj6SԐp{p/Dr;"FQ4‚<ga :| 0|^h G/UJP.($�Sʡu7ڭv\%=.+;fM)qA3>8)·κqo;Fy:=qhKu*8v'w5'-O!ˮh,)< Q: wyy;:~zE$uߍ@X&mCB_"[T  V5#\1][ ֽbN H$v{H"I`W Zk«D[�jߖ?`*VAxM/D1޸zrCc4!R‰]Lv<pj6ҟ3niesݚu;^ɛG FJ2R1jK 0CTϝCAzf7u-F<<)1h&ldmMUP'pENH(G ȫV.ߊa[<Cox h3S{kQ."]m\eL twZp`aFYJI`M[nNu_yFx3_G`*x7k!b5`<ٷpZ>XDo!+ǣ^hmG?p+ m]^{ !ݳ^7춳q$K[uWV�{},v>uF3?RM JcMǁNKIrd<)퀈k6>zI4Qf˃.}t]$w< s.Nm%ޞvrzXw00F-Lz NkPWdU]�fɳw.QXx#0o>k<?xt-5S^$j]EGI<Db+[!\YmsTmlQὤr$$?P •Nh 5 aǨL\m2PsZmW ͳ9+7%�KR'2$G#RцUum; DgnaDPrS�ehwG^ٚHD~W*j9>[Ti3Gb?7"fE�0/Yoj@p.@/ob jS^H-Z/"M=Gki}Ds8Ӣg@13>1 I|Pd 𺅗Dǀ9bJ.4YHθ'iWfXc;v;~V g �Xךvo3pD!S!̺HH`~K-{J f4=0{('e�}Wd'k[ْ*[Mi!\̮hP;ms8܍ʖ})Y%?%mO.t.T) 2hĞo DB:w,es1SSo~xSJujzg6wp|3u*ݎHNux `u)|s "<jk9[ wut\[c`L5|z:zn3w�YDXLF &I o_]"/_ sC`~j <om,wxX#{]K؞Uo蝞~Ta>,n4qF(_{,._ - u[Y\%eT# 1azz!򣶷-#JұZ{Ļ;0٬Ye,y TilS Y}GJɜۍpeϬqc_:?;7w۔DFHMV}P + EH F)IJDDBVVw~yJ߹ιpC(vm:"Ȥ(koʤG\C,hk?ܺ~7cә,-FkyKq@׵FB>{=Fv'ـ|04v)rA:[<Ƈɒ#c-M `9n8aύSx`qC;Ɉiہ ؿ#WGv5ü5Mn:/\\xbn D'x  NB9p.D%+_@I1hIEYz&$|.�rƬ1a}s{ʹT3нu;0:3?_^vtMZ�}t!#1l;.eSC0Ɗ6 Tg^pO[5w`<б<m>"'\?ܴ/U1NV,wJ")pY~C熁ejX}|^دދDj_ ^y}27//p&CO_�vp*W On5wq�jlQsiA{Ʈ|D&Dtۿ ?? N#Ra~N 3o:$$ۿ x{?|!pWRf�Ua:~/P` o@Y[V7y.a3o9s2ܵ^FS֊UEC !`Ĕܮ kڮ8^~v;{R`ҕ /= .ӹ˜gN"0"h-OMd摘}3LDRobVjLCdYiHDTgT a{#v=tG>oj�s^ώ\8 ui!�& :-54}\l_|0MN]hlh;AOWD=mwhaW}�:qF{eH-EI5$M7 mji%NXB [{,�=|͵p 1f,"kPFKB_e:?=ٱ`͘GsHI 3~CHr|1#:G]6ӺMlpgZ㺉|,T6H"U犁&7S *^|ae�i?1ɝ\yhk`%iCBq=Za7yz G6_o kh02f_a�uoi&H(x>Dh sؕ9wHX}OZ毬"ۏ"zɫ  ;=8t/CIu$nE`LmB~3 WKbZS3aL iOl=N[_SQő:3˓@AS xd_iV/G= s"M|6 a;ZIWL-X `"Dm+[R` ܘץ%_O?ҷG$-~H c^b9Do3䵬K/Gۧư̜0_/BC?0 C<%:>ߗ艍8y\ n;c|@#!:Au0/;%m@ s*m#wo?hj%9ӳGg*pV:W^pf ;gFw^DCgF�~:)2R| Ԏ IM <r ooMKDܔo>p19ݺUX/6d#KduuQk+[L7HVޮ޳B_m߸=|ߥԎku U`a`oZG"bZx$4wl~'c4 n\[Q9<Gr<¼ZmƌBŸg*^C^3Ozh}H2o#^CaG0LCV)ιcL0.:,tJąV%gEqK4ayo8(sqO5"!uzlh.-LHC@ܻM|1w+@ur׵-p_~V>!k<{=7'M:YE]6 h 璻ZAp~m.t@xMzun= foJ- "USFi[gU/~*CUtWI0Pͯt;Q'"Ci/Wɿuao﯂+I|+V<C8K}k;&>�qů &OTT=/=Rb!dl9N ) s Y*08^!<D0R-WXCAH[,G7GjR/1H~vdD67—޾P(y̔Ey=]pI^<>?=Y ]o=@r_)sWDX Y>rgSRuI@Uݍ<y�}g(b~fyV`}d|ԎZm}odEOLMxH6';8 >ԥhS|a_\ z§ٙ � ǮYE֑ADR 1x6{U‚,PIz]!J*zOi;NF"5S׀ykF.|fW!"/+yQgޫ1*KY^Td6g6ڙ"2I[m\Sw�_yx#4lZׯ#c2qȦl¬n1-> &*^X4 v 6t܇-t[_mu,"u_33@}S(H6 y11>=MwD.`{ ceðࣰ# Qʽx?FC.>"_49p ue2;*oH'f;ae`- '"%�k_rNȾi`춯,Yv"ҥu $r-V'|f P!J@ڝ0S.4?i͓yZۖw;qy#}k `P VqQ<z.#aS@մ]Q7_SYD}={mҿ�L\:P//EbqܽEI@7b)Vd{=BKx"W|su5ei""O^s>F6_ j5[`2/k@8UxI>xf&>HTDAD S2bp[Tܑ#u>pO'~QRKJuc (+yaSkQłX}^lcI2U:ڸ+"s<a&j~;b:?1lF�}.oOww_雺)Hwޞ*-o^sY(?['.w`�%6/7cO ">_޴(J|gH$\l]OݥpH**w+m.7P;p5jCN&zྜྷ>ܒ .׫�3\4©Tί�6m|'~a/a3!1Dɷ]d OVt#"WWԳۋOLl= L8$3|'!f6#2N_+ ɤ.i -ڞq U?) Eըl|HaUe;:Hd|@¸蕈kū8B%"==ۗlͷL>`yB2;YaGᯨYΑ|Dx $dLpc@>7D|s$\3pycVtW;##PƿK%G݀hn"xo85F;_L >-kyls2xPlq4\BKLoSkҜlP }%c50X/GA"t)eB|D8E8;l5rv ܶ5J2ҁ*q&2n]?^~ݒAG̔G܇Io Rb- K�fl^� 4/l7c@WVe�/`¥o2rr@M/YH\K̅M`qپ*lP8l 4'4ـ/4 FH'O6'3mS0JaVوp/}߯˽ _E !C$]_o0ΚVڑ<Hx^u>"|tz 8)7t20 U^,/U,K$ڭx iه`qmFa`ږL3q8,1v�K|`iqfJcp? hk88wf]N,"Ǖw}5M+崥7~^n7ڶfe PfE]2ˀsijZg`<$<u!A(Gx9[KYB 5`<x[bJN( GB- U@;jVÌJqyT`go ZF=@OD'5ZR<~n.6Fmlj#`<>+>rZiP ^UFNp{o :F'0/i3'kRr1hy>v><݉ˑX|rV0{Wܾ *p1V_`\mrt{NZ�uΑ6jQB u:뚝K_('z`7[3_2,֖"dxKw$F\nXi u!o[k {蔌ıް~f ?֧ڒͨnY!o_Ab>KG%k)˹[2Oع'Da z7*Y#tU";𓞼"$�j1*DYwj J�u#EFhġ-Xec%(vѮ{"Ħ sNSB/9d1i.Q}8R[Ƥ%+`T#027{q'm,XO--v#Yyﻎ LwAbBH[ɀ<nY4jrq(:|X38#-Q3fdr%۔J _("v/o#xq*7W \TĶ s *64`HHDDOa1$*gQaH9c|xՆ/~O-}9;cÏ氠mU6g;Ο0X%{'EȪŎo>#M"BEXAj6 X>TD5U靌]1A%ះ S`G',݅p?ݷB M-ǃ7}'/<¹{>bN̫^�d=S=[{6ћL`&aRg60黅DxbjjiŭAMO"].!N j 3iW"<|% wz E_}zpʾ WEΥ@,BQ֦Db;2|D#L`]nPrSΣF*W{WID5z5̻JewMRl.ՋAdrq.0Y!ܫWP`zmCBSʀVkdmM:0}֌_F<n @z9xw,Wn8I~Y+OD^ ABzj@9H2:_3`` 8=IrX D^ MUuғ@=ٱJ=ۂ곘 3`z "m|wfHd<x%`Op"?(sJ0/|KT<$<> h.L 4d9u2k'+}J�b JޝF%`-yǻo~˽3:x%lCX!{~$Ķ]Jaa2"V�9A: _x^Q<Lſ�+Օ]@P~~ ͫ.%blS oSxY t$'@UO@:zZ@ xq`je$N!܊4_~l=d |2+)eoߕ+s1E`vuF~Di4oUAPp䦭 Gj/ü9|bn_>q;�]ٸl(ؤ4�s.\>"n5W|bMD"B]IUʟI !ǫwi"e`Y>0_(2yj.opphPboF"nvjz"WN6j"mvdS{Q=. h@_2N8.~,J& '~GĹgʂ=RoVs%?˓)SEǮ$ ˢ,«x﻽ٟw3(˷VOD3|Yl_˾g)D6e෣Wqv_QxYRm]wNS5yf42QA4t5"[V+zQS\0o@ GumYf&,u) ðJOء f 3w9eȅHϾa" g&o^aDt1[C}"W$oH.TV?̗V:e()bBwo7YۡKmvqˍΪ)D^,u=|N#Hz$U".9dbX>e*^b^Tp[Cm4iw} ţZg S1f1mDLj]HoB0u̯\TWV\/pR-Jv !|5. !hL,GZ_6=9݅e/>#\mN-e$OĞS,�6 kP:.&+Z=QoTY#Nӛ]IGz'2@^}ۡB/X._^FYƻ.,`?CPyhg RZ|-Tbi"Hyl`1Ƈa^ ] w){gơO";onUdx&R_5J5"gd0OILg=~B}W<*j`{=�L feFv5ܞw>[*_ ]ݐ6 ר gN*`'oN�1M9,7!vj]syOyW5%G_Uyw00w}-�7Y}o[cE)"~ tp)pn'p h϶_,//޺mGxtJ(&6 JrBGqn! ޞZaR9vm.p/xOd04{8=-Zc"PӥǛHkN">C o1ߚ.8jbMN]LW>^gMwLv~Ƭ$*8 muoaN"\D:ӓA]HOR\i�P)cڢUIRyw-'<_G1\?,"ߓz{$: 6!έb4<xY*XqF7vh GMR&mF=xOG,~-W5wGj5A GAW:gC.JciCCv%�10{MNvy=bgu`ql>xՁC3<,o,/%A ;<\LMQ3u=_y^HDݫYf] cܱ/w7H\mZyPGLJh3͕J]y_-/j[<")_hnXTA_p_{&@8Ck0̦_F/kl0h㷟]3Y'm^šo},;_-#i<I^olO4GU2;{I" %c^]*?e~+^#2Veu5q<Ч:&`U=e%� samΊYCH%�ГʦKͰq/1X6/+I_͵5< .id5U#`x}b> d|'`[]tvL)ݫLZcs@dž2l>F�{]w 'gs 4Kx-|Bڻ`QSW9rdאͥ;p'z3gs7O,pL? yPKz4;׾{D?3rM; b15K{xǒt^WkAC1? 1HtJ')zsG#z5:% $,9/!}{16ͮy0ބpE l fRݸ4x['w~p`pV^i-1Γ_C}2z`M�'c;8ElKܙG,zx0 807#H>,kh_p ӒbRT@rw !;5QaKn-1-9;0\[yoN:?KEBIf>r1$`ui QX},?2H$ EtDm1 |[|w_:ʭψkw,TUu ]uetȗ ]A(-Ui=mɍ0[(ފw O$33:F\ byheRWhӺy?~٣K56V{2>50/D>DpBe)c&RھB"oxUDԻ(`/֮O3@p`#I ŅT1)fw/d0m4-q;Ypԋ#@[*y~9XCۮc!7;OO&32~O=˽l".5qWzNg6gouQ߻^us(C W& w[Ĉ "t,9{@;i.-uGv$ɉNC&K}\�R礀ϼjlեLRN4 5PF[2�K^uj%MtᅫYWԖc<~|70EĽF 6no< A -zwG0?U t/F~I;Sgn#_gY,Z/Ba|8R. ;7�K4l"`լP+!+9*D(8 F1x>ZwD8'MDE8֫Mk(Zqx=6<`hƹGy^E@ZrnX G:a==[>8a{^LccskT,k!Uh]A! ROͯJA23FH(j^b>[,Ѓ^ @W].KzOO,.+y=;wTs*9JSު?/UޒK|3bg)"Z?q E?%?[{"-=jo]MOݽ"HhYxmX]#Fή�z>"'&^T $"Ɵ;1ᬦ]@;Ԟeq;DmUsH80\"zE1g_}O" ,yY  >8~4طKc E" čZAsكA@f'wsY@upy ,uUR apK@* [z[Om\ &>ϸ"lL_eKDX^p)3B7Ti';e>{p5Rce^!rXuڼ$LմXcGvND0m؟ .C{]?7XUzr:?)A=p|}#8uGF]#V B"B$ :tWawsH M$!򿪅OExh&G zs,4rS1NLz /o\*Qo@@&}x"5i F"֮a!͆QD3wh?\.U9DeI^QŜ J=6Hg;#3I]v+p>YJA#_$ \mgDyr.E+w1sQb.|" -U;u+s'^aCj \Sg9M mV4$z.WBg#RDigP8]�0k.^*c#\gۿ`\<8}U#l_|:$ +?6�gzϫv+%ꈰ]7?u '3}%;W@{Z?$N:AXk>*1gZ?!EF_^8Xm agQۚ-_`^%f}{bEغ[HF'k8"iwvXhGBD?V<_F3"X_ھw�󃴰/uh MqjS/>4Ax2 .N/zxQ Y(rێa@=A yhm Gu[gW`^%}Wpb,њ`kӉv?^&]w<H7|u 3L"\6;,v1Z粲kbV‰深5B{dvŮv�]AA}߮oyQH:`ȝY]只\yDJ;^A ~4ː$eǗ7kT园淕T|'z̻YE8_ 55cqp"$K"i,n݉Z؊cWJ~W%;~.a^d^X# /DSe)]Z{VDxD',n};xozzWƾϷ+jFS/;֋!B39%EK:/Mwݭeqʻz8!,?'V7ީ׸a<Pq͸vUX >!R֌A_(}ߑ^2D|Qlotʗ@kQ6f?4‚[тp/WQ:/7=YpΟ! \`+{G[*/lm f1u9LdL]}͕Y._L9hts}PpSUOH:/T !/?Mc}lײls+"_''gŻL"=oYuh/>\)Fzؾ=h}^*$%]e�ܖE%z _zXZ^8aY2@_s,BJ#=몾[ ʮ*\mc޻깙vozNF3CSVM[yp9BS B߯/wb=y20%2'}}hɁ>7u+ZXHw?R'靔|w0<;ww?046>˗O{+ ̵]M@ Ղ7_4�v'4{hb<.ى24',GVZ�)@ݦv'E=0r04, Ez;Ƃbmjq2* IgMLRnE0`ڀESo&9$߰8$Z StRx'?GP:+/-"Օ1M] o:DVNsgM,׃غq�`y=` p)k{1ur5hZ5x3MC ؘH6Ճ>GCGC6?+aJIQ1v#N,̻>'Jyw$u.,PJJm˾,= 9 Ⱥ-;X}=.ZK9jDήhm7ـwk͊XH5L)UX}=h$k"7`qύSшԼ3A^ ݱ waÎXNMm.%#brT{`5T-_[X?_wACZYs\|.rvv #Hd;_}Xta Ǘ͎Z; FeK_/ TΟ./8vYA?|`qܭD!:w8v"fչqD1z]U};ZK#VU0/D~<y=&ͿiޓMGLY{NF8$$F=2.9174mڊdcflyVv{\AyU9`rgcdf406_Yf4~|bu0P}Hov`R_8ǟ֥El{ѐILSlQ~OCoۼlo]%j&(!}+}ּbM^ &06F>."g$D0x3t/ !rFYr<^R {3ĬvN?(;cB1R>2wb>HbٿH/ӗ;.iVE,<_`%m<Ƶ?Ғ5r*D%lN䲁T a~o~:"v hGO:�bOX\<s+|MiDUźc`:p, ADnw0f/z8ҋNk䏈—v߻ |{9[ڇbK!K;Nb)+}X ł9[wr ESa @c>%ٷ_L",{alTu`YK1@WO<W#RȕCud>�WDߚp:)kx'~Ak+;ĞۈSDE-yDJ9>&GMgSK N VU@A zL)9Vhe7]W-{9ר 㔱z򻒂 tO%o]50ENܻPmv~^D%s7S˼ :`0߷~iܓ!'F䣏-]9װ}nʻ];|bMGS[k4[knG%73`6|՟Q`ޱ[[a]J2PJ _ kUbN?'~-�湀1~JDy*HVA$c\U']8_7<<I/r[uxku|6l^6OAs$EajXp4DDzn]G0\t}@(Uǒ-rKRDZA @)")^η 'VAxʉ`,OzD:u:!j|S S.�mXy6p1_<?E&3 6;ogn6#:] \2}UKƺle}Ӝ7ŴׁMYZוeR׵n7Ѝi ) dGsjw'Exrf`619 zWeŒhΩ> QX~Mmv}Nt"B!{t-;:0vؠ%2+WoG[Ԏc#y(ˁ%Vrg]hǛT{X'})uY7LF聎I+7:{� _ioyH_?2/ׯ� ~[%Uu[XogOWŔͼSe7;kub}Y9[i۹V7/hjE0Н"t+:{ UO[}ٻܑhH{hs" dye]= &j-:bRzevW^ߔp?nu2 &Ǻ HnYwc:^/eLJmU|]H*1>'oAl^GZ8DѾ4c,w{Զc|B)4'jbu0t,t+Eʧ3&`ݚE`$OG!ʽ@a`x?e_8jۯaly0 ̆rlMOEBEUcD*>^ tJ~Gas!DIɹKs23086q$sInѡZfa' 0cv㛎.X/K$I>:W1=nG[ħͰثz/gNċ@W|qjc=;FXǰ[| XOᑝ0k<ڌ'qn[E`ʱguF!(G$ٶ(l~N�KgJDJw?`Ai@ ^q( �sMxXҾ#Wpw%4n$hG*o wXU'3CÄyF1Z^D|8<!+d#,b= 'y TA-y/-wN1-)zxS:о)betg%C$wuu ]?M[3@HZزw>e|_HԪsaV5V"s[0H U5iJ|J]}%>V|Q>Po՜%]eif=<zccP^M-0\QQ':<# <"TZ<C{Hu`sqDthToO[Y <* "̍+G=4jtCR2";~X!#kUgGD.(G̓ʝ&`̞?xq}"m#Lvygv^;4r4=Sq8NONxQ:^L`86pyn԰~ ~Fxibc0.83a~vxqSp ~r7)aܸ<@xHan&b< Czw^^ V^_ږ1H_Y1On9 ,j^+'_M 0m/ֿk_TwF+L4t/l묿M3wDd ֛lNؼK)0v*@g}rmdN`S9G�Ə>2S `yT@k ^!C؈ЛDJT"%`A-<;\h׭0?AOV9< =0yIVgPfSVcFLjxkż]/bŚa^{ӵ30 p=i?q7v�؂ 9GqHLO>GR& ;qW ;&"T)Dتkґ(íh)"u4ԉzwoR [qAxvV,2q{ i4]8yd=e?0OڜٷˏP-9n5swܺ_6�M\TCX؎,*Ү $Y{59l(,] L&W GY: yI֙P`X?~[N^U5s`-dw>4nm]c@}3uM*^KYl5^2~>'W%&"VxQH)SʱuG7`$T,Fxz%T[˞Oj3vG\J\w?L}pSȌv` bR7fˍ~?W3 L'bʞ _l<,?ɗGVmyJ¡"!Ɗ WK+~ߪ=v,Gryތ?ɟ܁qr9?Į60<z m2xW?Xdg:{";6 0=o~F/eѓ eKxQ$o_ҁ}J/CHtUTG�ƃ57#\W ?^qyYfK~7^^p9v薉cɲhj3,Ae f$8w>ɭ߹oSmsU9"61&۳:m$ckˉ88Ll⑐7BxJ:\9,|8~0!"i:垯k<DxrDAbI] Kۿ`..+IG,*͙ `=+bP  RQ "/]${r"a'U[ȭy`DuF%Ffq~=cWr-(3)raut"5rT舅nD:^[ ǁW)`t?",oI/_7`x4=Ո(_'C{q"Kh!g}SVK߄_(k@_wl "} l%‡e#rb(!A>W~HwΜ%p/isR9dU( {;Oذ<dy}HC^W' _[Ͱߊ+!~ ^)oyL]ky"LЧ֋ nr_ ]WH=X&>J9񃼋 H}&e/d'? {:A`06 ǎ]8Y#kCB"t ֑?DsQ' '?<"o7xV]n�$EdfDtL9嘷': ^Z%A)ވ@-"#Bulէbjp؏M m} 0_L8]&&)p.oe[v>djz(i�?Rc/"!>S l8݋nwBn/L^{2껴K8T"POH\ =j07Y'*+5J>3޽k^<D~fר� :Dm9!¯ik}?H'#R@b{װ) bk IˣN JB-]?0 ^(H+kxH7~YR.v"7#qwYLyv$,=g3=W"LFW >7bWvT0=SqdJ4W ˃yo++I,X|t67v WluH(}*BKU<0O _V-p5"R4Á~d(cPp!L.-pc.U6b2D{w"/:75\!5aFۡʺn"7Q|_ ?VS ^c5"KnC ʽZ>sڰ9(p4N h.�탂6m8!} ߶i}Ŀ- 9mLBd׿ay5e\X5_�mhsu~D݄?vPQSdz8Hсՠ@&)$Ǫ QݰxAz~V.r,&:X_o }gϕ*-c܏d/j^ ҄Wſե6;z+N�j1u8�9"$L誢+!!A:>6As6jSN`4$6on"$~;:Lx#kͻlB . aj?;4sn` <G M߿ίHY0@z=]F|8|xM1\*^Вvl븪/M<d~svA8󿗻"|c=?!wDsѩC/y jbY/oG[W!Ot*lv }hG[e bLLHIk| Yo=texɦC Eir$5&!D2@P~E^Ӛ"7unLJ%\5Y 7Ξxy [˂ψh2+y+|wM BfDr-6Xw�g6a'va }\?V *"w�25K?u"G|vK^D2.(D1X T=m&yhZ'J^T՚\QG0%P59/0?|iz!F'>@cW]:w>O$"l̼ov2+baR/Q7^mZ;�:6*D0pfl}g;#bڴ.Zy] %KiO0'r~"Rxq?j1 O"oyOwrmO>gZ .%hfb>]v�7*?zop_`$$`;d<%FP /޸| Y/ojJű?-Ǻ|Sn!%Hgc v20 n`?5=pDC\*6o`K(ʌ=zrw\D{Z 0y͕pF+D|Ei8"F‚D9p-�'p' \% )!BAP͉NҺ1i*6&Zse4Dvi}N8*eM _ beThǷt@AM .G8z^$"ӱyJ h']7$mz0mEk}9,�oCb놺 ҒK?0O[)nU$3/,d5c!Mm0p#957aIhb%ЙG O?3imxh} 7w6c x6$Z uʒ)@o^j&N cHUC$񢤀X7~sgk3._� x@ 9։]nj5X?Ib伧Y5G@y^c|` +,a1"?=T Lw뽢~z~ifcs67#"^W)/DA??,6U˨5簞=6Ác?� R;`\>9psߟ9�\@}È:@͑߉p*~X_իU~�;ZJ>hí*$lH}m-vɷl@B,ez>~m ':t2ǵPoUCBһEOMF !c%#+LnC$/5)V[LM'N-k$)w R/ONQsy+ن[ Ew;!D;[w~'h~a ۍh}חʈ4sT{\3}r2(,ldv!+Dx©h> =�Sj#N!hmD$(gJ]Ʊa`, & ?- ByHD0 ٮuߗz]H-.7]8 ,cRXoD=DD oQ1+}k"u,Ѻ5li͢|\F'GM˶Uf5ˮƜ /ЈFA/DpߥHݕ-O7f{<*"iBG?%8?ypG s 7|iw"+I6}K> I8+&�Jtt IqgxS:,lKJC/+p̗/D! �6W5qoJڴi�_6}@FavUK)iܺJSI\ L,؞MCXb[kƚb[b=>zDw+:)6;`,;+W ܒu-6 ̿WD.:7DVZ}>d>Կ$ ]_�Xi(^‪bQC,]^t M1:0+笌4#<>wOb\Vv,d"n?g0)GDԪBDrlyܘ@kh,F"˃쳫_ʌ0OyW.+ye9Ł^Da<{yAw~I:=s7"{[ AL][~7"܇Ścz@[p+k |HGyjw- '~|Yji pD'zAtY";>T('M!hfpo1 67a2ζU~Îǒ KFuJ{`^?"4jJ~cž>EBS,k]jod5$܁hq7&F}$(v8kUȳ:W^ vCm0#h靳 Ǝđ{6 S?`SZ_2Ԑ趴IkOIy�u|z1cu>ݍpo_頶GQ)" u$2ޗEq0y#t:w}ژX!r `d$b-9kp? LD9zݸx OmLMQ~EEb`΢g qSقДΗAg۰,gI^�N-e`^[5""n>Xtu{܋@}hвz oȹck-E+c_G%ˎҭUK�ƑHrqevm>n^FQ02"K ^߻R^(Dqɲ%>2emBDݖ5y+1.=}k]Z{Q،iоQl?Dj'~)^H]+WQlnL@ a_#ߣ07Q0+ $M Z(q#)F#mN~&4ң<y6͐][Cܦʓ`FL񁷼K퉜*--ڈ`$ YGUa55at8O2yh]”W_KzgE=`O*@}B8 ơ!4]>ƭssA锂/e ^GHa^H} w|_lVr�^  Xn|累էa--f}@RRrVqˆJVNLǼ@ܺXGD<=bga+C  Nz$ˇ /}o"@6ijƱ4/"ί3,G;Eʤ'kKߔT?L�؏y쐰ݕǑh !>et*[g+@*?㲌tx UV:#aP+^Kn֑y2)(D D+\y ̅zC^kGB5k~|Sw%G)L/w8)a9 >tN\ NBIO~Y+Њ$jl&%A`'u"Zs2(y/=w'D"1� {^oEľc0-DQ3?bmG$q|/D l.wø1{g@42Seȳ"Ӂp'V`^wЯ) D3@v\<&G7 mW x`q6y8|o{F(j_-z  RsK(0/uQ]M'w _Dѧs ,1H/٫nsYoX>}IdgÁz$ -}`*69rڷ'arΤLΓcW1**bR]\D58zbe,R  ?pفrm |F;wٵm-%H1j ۟w<CB74([[$.bp z=b'qܣtಶ2FVj/궸H_vw͞pM`p{CQ*[,/rȥ+%CW ӟ>l/+l&�PٍG|rحc>py܌ǕY=WG+ufʼ'5&ld/D4J Hf nOÑa >2S-֦b>.?͊t]]l<2ffx:o xn}q{{D ±_KPbFVp 8|np޿}Zt80_csMVc퀥80V7d?E1rPUv~}"%*0\u]XYpZEM@E6,l[{*X]+']O>emoBFҹgg9X=,G>ݫ rbRoz#qSa{#0-uj~2,;t+V EyK|YMmTidH;6bاH/0 Gj06/Vɫ[:wŇd$痾O${*>^92')G'D |P|u!R'(;.QlJ7dơ5@b%3c%SlSH-1O-m�G5ewe0;\-F$;ߧ%nњ7}Y";><X(nE_^TA͌=mԏ^w XѦ.Ã^(Wn2n"RQ* ]=8(`sA8IQ6"T=y :;-쀦?wԀ!{G+HGX*n?9?9@9" zPď^l{lк'Ӳd7[",[LiPwחsEk::"ak"Ʒ/X&=jM5xf;.; \yoX\:۔4'[ځ',! ߽qc-#˰^~W: ފߛkvcϪ`u<lC9`+r0^z!7/ab ~^p\wՃO;Y'j6WKfaQ>^a wj#ʳyj_D <dJ;DU/<\f[@@WQj@8qbHvFz:5$=*!_<)ܗ?&H2f{RoˈPqxaC+1rYpOLjp#Vd& 9usxeDֿc$?3EW-c#ʦ%]@w/~ M^^FlY3䴥D֚CtGa<`yHֲ{O )0NKVb/Sџ@6<97gG8M<H K[rp=u}L{kh?8c=7zp.캦Ԃ۫Kp<{w(cֻP}�`];ea֖w зϯId�~1}5ɻ~̤8bsD>Ң)�V5n]biK;P߯ЭP?oυ!ˋ;X+{UU?),a(Kjke<z3\:~zev !b@WL^V+/-k'`2nvMs퐦,Q}Wٟ79(P*͏Ǿ J! GV�lP' 2W(t,8g KExOrZyK=H- $t,RfuF}qkoڨop/^@}n,m0żۯJ!D]!0( Sd=sn CNt>q= 0;݅^9XPXlsK_"tڕxlV`ܽqs,Z9~\ymGX>n\o'*OXԻ^_v/P8"|kc@ڒ;pWh.AZo Dm% 1>B䦕b lH]5qWWV YDʉy˲KdvZV•u)>J}9R;~�;r60M_Ƹ\؉fXhre_Z |<p^O:UK!u3By(M. "jF09nsG.~4 L\؊Eu;^-T -vy෭ZJ3WS=lS7˳ch uW+q<#n%C$L|E0l- ogԓz7"9o݇J$pPwa XKwa1.oE͖xy%~XW (oz9(]ad>oZ%V3Y]^ �1U2TQw;/9^_`>KMTAu1b^LQ ﯽ G4jF ^]C;L>v"տ4 al?/#1aHhšK@uzSO3e@=賠j<Ix+9as-RPa ږ)QWv#Ba1cXp l{liH>Ƚgzge-wf)*Fx[$1ޝon>YnH9X/8o\u\xxqw<~~?!$T>ۅpe}]Jq]'|Y4чpu)_W^Y;w9TD~qG`)KGD{g+"._y~@€>LEJRO72ϟ!a-|zv7$gDzStz?OmZ ulNQQQtL (Y�7=\="/9ZuwhcSRD"d=%oF;5H笮PY 6Ryj$۳`K#HLU/B]|Xd{Ԇ֗*Ik2 \},[}"N;oB]rݘ1G+=#H GZ6;Iu&^;p:Z#; }jŞQ,/uGUc9/ҷ0?JgWv2"8(,$*o$w4ckPoIVOG]J$>MYO>c6zX|)EubgW]dD:=�+]<ɶi�/HnDtSK򩷟6"܏}N祰pAex4D !޻B OcUqt^ Dxn77:k#;Q+_"z<P/<.x |luMKn =knC~LɺkSUhxTf]ӥQ=ƳA>O a W[5qEݿyq(|rw@'m>uHhh"n`-nrnvuu>]f4"0I$l҅7 *:@ )%Hݍ$֦j|5F)wOt+PLBHHyI;PIҞމ eeK"| +:; &[9F܀f;^>p@6Ub\9 +Di?quˁ^Qt_ނP|n I*4/4 ={Nl>w/,% ,H )so7V~wG4"1T@w=XR_|lDY-�_kxp4w& `>\/_)i0?rU"pWUЄ}7ʝ`何ػh4 7+IDW)[h" 8Lw^?"Ps}@rj:E M@=z"Jo[.nh}de=7zpD \ |.sl_3"gfj\^_;zs{S8,fUк~ܖv&Os(0B'7|rVnЄ:U$d3VW?v׿(#Bض2O5;q%W"85 7 X[2W!__G,PRUCvB׏?>MBRٱ:0w%ss Q_/ :وH.iHƓQ+ύ3ӻC>)I$4tx[;PBtvͷ3 -a3'gK̟Qo ?j!QN?[YZRV!|Of7vkEWF$SN=fqikϵ7++aWDܣ?sվT$"fg@0@sVD\r?UFi5wb?KWzR߾vL.(Ī-VHtb0zO3DN|Ky:ˀğ)NKKG1e0}"6p9PXJA)Xr i}NzrȔHxC�cv;#,sGnXZOwg̞;qcU"i9PY|�$0&D;0|m^lf~![@y:$&ih,"ǼA;"ܯPވ ۳#~UƼOQgH9|s#0B{o`_nhFN-ʙUr xG%%FJ>.،D]-Jv., DüsoJz$|F\lp.֌I{ wYLiةoxE:QIw N . ^vL&o_6 syM|Ws Eb4i9E<[=@op:<YD`-˶ 0B ;,LM] ]�󒷙͘מ1'ճsO@-$]¼Hyy}rnwb^n.B+E"X. xIXq["ɷ#vOu1#":UO2G b=kѴ LU-!szpbNHt+!Si.nگob#&(?7p`[o9̿н+X b5�;H7I`8%߄]%&#\M7`>jLwAb%HWӂa=v7p?_�ΜLt*6զfo$ ]~MD[0cYo.ikZ!!gd"|{-$s&:_ W enx ŷ,ä>~ 3oh҈346o޲IYKk铙OO$6n6?ic>Ot(o|~z"#| hYG{Ng=*64'}1;9."jUD"\f4.s]vM p^ e|-৭B"aey9/DZp&c_Cڻ6.s^ڷ- ԑg%3.wdD,^ߪ:nbsם``, n`$<T!Wr6\_!ɧi.G'SL)X<XjWLN"e=샾N/0hROss' MTk5_mq]p P3:_e(_iW*#ZM 0>؛*on}|{p۴wKªYG!`\l&sFurXOȇ �0G-h ~҄$Nc<y}!*S7a9zLD~3Xįy,;{}Y_5mF`(ގ(g +KS% x1aJ I�{N+5ރ :X~o\{'8qL036mD"n+.Jϴ |xmLRD]9..v�M*J[[~>ك&m2ZĦx$XHn,嬳~ħctu~f${D42  MfI}c7yʧf0/-S׌탂c>̚}g�G.uwhÞSwKIXw!5"9澨쨂NE3 s-~6AH$=fzr;\,엠 WN!RJisᶤN ``] #s6 jc_$DӛڙxZ ثjH5K/m"PJs!ˀOn)M=P| "P -V|/*HwE給Ox1] >P[DWVP*V>,~`lV6?Q/_JAhʞ/#FuIKW#ypO|.s% E䥾d>l]<B0zsLFc;+{)�}چ3ڭX2ZZ=cPuǘX<) %zUa%7x/ҋO'?p!% Gˁ{u˜c5oxlSP GW2DoH _ZĬP.aćp+D'JNߑQ.OԀ s>!R'J%kbu\:D'`jz*HNέQ2DxA,oEpB:\}so޺7zH2zݏ@sjc%"mɵ oW%wG-ֳ=1au͛mH$>3z"-XlG 3H|:Ĉr5'FxtIA"ǺEb~uY~/6[СE.DؽY}ln 5M09lw/px~J{l aϴ;5�5_^8~E {4PVĊ w8G|H$8z k 5'Y}JŰv+ӆ"`\rg`!z:(,K&?~Lec굡 U N)אIJ傞E3FLB.{[ oP"B`5i{S@$.a~jf"W� /6ftAĪm"v9o\x+:3-Hw\]i_[ChʔGaT sCX!9fONkoЋ=f(ݡ521`_zo4{ъwɗٙ -FEr6۰$/Wi; \g÷#[7.R0b}w+¿K C;kMTXXvOuFs޼"Cx@{Z)Lh{-u;$|Z7{"ҏ�D"r͊ xvmԲJ~ҢsES'My8Gwa޴ bdX  d|_7J\%WZj둈ρW7}SX}>oȶxDEגMJ⪏kd$:"3ϵ`\p߭0Fظԡx&խP;? c[c=ao"H QӶI)@^cHπY媆,{/{ 0T;rL\ffIz!;&lW~{y q]?ᩜ+{X/"R;_d颛uGySacRFDK=ߔB$$+! RIH%DUD)BR?Tyu/b\%~ ƙ6r`vkD|1ݮ#mgk*Jo С.q?̜�[V-91%Oe(Lm䁝GZJEo%-_|܆()5AU9'|,*"vN_ÂٔX;yf})>ԟ@?* nm+R)ц* 6"C}N[eئ ͎twfxԋYc!=i4E$SS3 z7*/aiN9s~1nߋIIyuJ*p.kzY.0/_VN"G|¹T5i�{9I>a_+7Tc+ #<WJEZOɨ#"O~� T+GO4yd _'f"O^c&0/_tH½ ihONJnb)=?DA$6ز3L;tKp6 ܂~zuOD[x;Oe@5"ib�b @}+-̾ C2?.#14\]F9,@İ"t5ȿ˧1N8J@ngW%giI0c}~}jl<zۧ.̍6hRu(yʥGm]`{H4jIK !xgtU`sFvlR2Px?"Oo!jZBKJ@7ly2k.ha޼H�0cZ %)"ƹdj"׋o[e>2"^RrQQ;zRE'/C#bt0,W.CtoG!:ZH- gJzpW>^uc?ѦQtgw"\L8dqۊ{xo "]Xi}DDT<,g˽AvJ浖|ȝ}|GoA9Zl-փ-eAgV9Fle*Dz;G_�^O4;U$/  0{YhnZH.VW#*Vxxsk=C׾0z"(E�Qj7tQ13�|e@o޹ ?Jq!ncr5a1=3o*^Ӽm_.'=>w* x~!KxƼ9WĻsV\;�]0[)&m ※o]޸K Oc^r )Hbֈ8w!W!`m0MUr{$Wl ]3GucTqw j�푴6M/n=Gӎ8$Qe#p!agCK@y0$9n&Ss6`~x`i-yX}2 Vz;A^m_qCQSchM.|Z>iL{z'cUx)(Z ܺ1z+W&E!Ҁ>] $fkRLjTjLGkmzAK4$i1[N�'k gsooHr?eLnV˥Ք8bspΜ0jU: w `i. D8TZACdwBrDjp^6ex/^Tи(񤞢"')$U!y]Ɉd >!.-{XMqå)ӈ~RYAŬ ކTg3 "<X; hH l�t+>c_|E0YK>G!GM6!} =:lo]_GD#X:p>c}GgLփZy98mH=I]@8`+~"QE7_C=Ke_ZDF4|#cWץ6 㥛j)Z|u0O7S,fEnZ5$D}\ R*;ٿZ zFB>j۟^<p}Ww6^Pۊ=Y~H,-+Fu%T |qs7� C؇,X[6XݶU@!=_u: pmBz lnI(3Ɍdþ"h?LF,^CZ9pqsa Er[^6~X/a9?et9I]Z/6#܌Lodt-J6H#`:{ne% ;^r~g'$޶gɱg&DQMsVkHihG?},"]pپ|X ݋I0o!V8ȓԳ-w (?r^^VsԖM}C%GW)[J#|+^s`-sx u䉏ƦR࿡[9v h3L z`Zqc[2DVG7@l̎-@_!r𷵟 $/.[ʀK?5F{~w+}qr 3{{B{v!%)Ο{KGrrPG-5DQOH"җ-(pZwx <0B"_"g]AؾZ_%Z̜5:=1. K"/av0.h1s*& .ki~%Wqߥ2q!= ,]M('3mڠņ1>;m}C#pN<8 GO#W"1~\>|Б{MXy㢳֩5-aa)c~L$~g:860[MVGcKڶ{۞&"Ze{Ƌ*s ѰߌƋ;Wbq):;xlD^q, iқhsD3Hؗٚ`yڲ4b6dWDDHi Zw%/A{,"(%aMW7p㳴w,Ğ'[*}2Un8^ :}W"^$}/8 ;u$0/DۋȰSq< {^/Ŭ9\kr L݃Xj+:''{ȩ�G!KEID2Ƙ/5;Xy6#bi*0 a}4xZs4Vɽd_ZTA>qjg]ž1[յ{߾Jp4qD?~u5G \E]*V*s~,;Mz}A:̷JoɄ縝 0\#?]|m]z|=8v=l9Kn ܄CwxD8-_"n`O/9%"8_}c{X"gTvFeOf£xOZ"-<:A՚˵(i)"?VHV~rQi9[$̩4_WWC; ŵ;-E;(mW Lݸ5`4}}_ Ӗ=) r wW;ձ(pNLIh'\rG﵎#a*:'kr؅(}>~%|fX?̬Įcѻ`~w"g\ߙ-t+j86!3afw_*X6}7NdL>YRV7^sDߓ DQ)klEbi=7aJֶ$q_#_Łk8xzf<wv!oNe(o]ț!SP.r=0} hv,oկHl) wߞ{_[z ci"?A;d)=a\ սϝ΋¥5;ȜyD򫛓'#⟌*oX]˿'ˤq�p._m<s*UG#//1veδC@wK`4lz" YNOpf0OW$?Ou-ѧdZǚj3ldg dل]϶{%@P-~g%|2p1{CL?"m)ɫB*U7DslDR�+۴ _<<_ Oߥ[H ٺܞ"x>݅Hv-EcbӍ]P2 Q["/Wi2Oh}a+$m*'c _$Bf0>j4�FC%/`.8UNQDIpSxqGq/`ϣq֔f0�3״#zLl"&Nx-{Y\KE,WvgpZxui^s G/cw|/D9ڠx4 fi0.GHC"`69u:#:5Ոڏ8_ȁP;BD=x ajQáViM.0+H'ẉnpi1jo0FUhqU̟ 7IIZ+̘r3okFCLb9515)vQ{K\JrtԬ埀[I@K bIwm305DO`nAHydDiYCSGn$^#_kޜ;sW.!ss͊ƴ`cva>VKo{Ox&Q,/}4�^ w%3M^SSJX92?*�|VT f# u"<)YٕuT0}#Rzu,Q{+ ྰbwwٓ󷁻/٫(kfjv΅iHh3fC8W8KBwsj (̾g (fa&lñ=wWryYJ~QGg\&,EѨ/;$Isy`VPlv #/"W 0XX[ *}HvZ) 9~Gs~TqDsq[Ķ2,T`w/Լvz~ _?dy$ꔞf,A1v'خR1g>2snUovy=La}P*<<?R.y?J-/; 6|=? ^=t5_$_ˬK.Wk?o2)K^ݷ*} %P3 |?$enr{zSŮˆ;8De:!|^?";nnV͓rW$SZ./�HW n#nZZ$i7 *zP9v?͂d uKrQ>-?(RƲh/EͨӋ@p8QʁUwk\j9bG?ׁ}N3,p<G&nXw0�/inp:6{^ t5a΀0yu{?C WȘ,=>! ̞ELp_\_1;| q46Qƈ"5ئ߭1Hӯ tiI۾YI{eߏe˶KSUo9r$E<i. esD~ITx9.m@"mru)#g7sƼERswѢ "LFz̞%Xodfj7 `'w6KvpJul.v׼N[?FK!+1]2 ]w_~dUfG~meݑ߰ ?) =/&NcrukMṋڙ D]BI?ԉC˲1`1qݚyq(4O[# zv{T*\#˕ AК*pC=_: &,^W Q(wR,/w~x N*TG�Z%b6Բ4[:iO7e`i9܋>hҼCஶ�n DY(6Uߪ2?OxW<}t{7|\Ğ,j[g]OzVGRnc^u_NGW\!L}L>xHޏpƚ{^]U:>9k`6+S} "j>ɡ#@3Kٟ: i5nE#/։{^X#RþD":\_ڃ`87-of//BMk ~gkGXEd[da[U:l*Kӏ:1EkӞV BpbTDux(4mF*GOasXxSF!j6VξO#v>X>Q]| ˵J^mJܯ!IOKy5RI<zBE$փ2"N'(ڢ7N@"_>lzh߼[ b>HgZ vbMa|QKD`Mc;_d>D!RΙ[>kp$ڱOA싈G4}G8nDlZv" rᶴl%`'mo&A]rYj0nņ\ӟHmI[hl0r8`͇Y+D%@@;"$ѽwImAD>:<~W]#bW|IKD> rEq-GC[7oQ8;k;0`YBNRl^Y z'n6p,C"nS#|44Rdߜ#"vjV!Ңr1{Q+VD w2 mɗi.zxJ7JZskE#(`$[!QB ŝLj�?"w2=X\qksW.u[pc ߷<]hD\ç+ Ҷ6+ywS!RuSRX/̯Hl[9ң(B"$n)R,\} ']ۈDzk+yDroI~KT,YU/@ ?DZP]Ѷԟojc=Q,4ߦ7m$|v_RyuӦxaUپ%?7UJ^ Q?#W{}sDܷt[� hc]ϵB> =14B+)ޖ[iH:0piWF:",ڗXg}Xjfyǜ}%8@3_pUkVRr/EXc4Q8e'^~Y}oh u"W`D30! ~wY֬-)+N 2(ѻwDIsJDz]0Z!ۂً){{f`=:FU!�}з&7? ^YVb0o!`܈Sκ5_R@ImD{*Cc(4l XNR"'X%.y-̏ @R`#r[o:O_΍TF=OgߖhMFZ/Lu``usB"}+on\^dj+uaˋ:`zN"0WsxD;JU%4[Bos Ωga{v:rsWs1ӗ?)KI1Q%}no]aAQoSO;ļ^.5,un%ٛkR7&8 !IQ4 W#Nxq^lW̃fCxx!Fnyr`.:S#⵫u , Y,�&-{؅?۰U 즃Av=X/Xm y{x q�ly@^^QXB5*Y o A0Rs_W}PBxkk�H縍0DZSfr% "> sM6OVuT6ǫA%=$QX _N䋏{<g\X  w]so\|kA  `mNu2rv1N]ف7WQ -i |kτLOgӱ5S3 Dz' Nf;Q*e!?X$֘|/~L:p/ =fjer*Mwq 8/O8T�V OM *Ǝ;?~``:k$jthE!j]}]tƳ\Sdz̮/_3 sb{3m~ 2ot<ˢw2IuA+p::xcB2" \"M˹яo6^c.1"}䱘d6jz"2 D"V9;aR @œt JV+)@ [(<ރ@Upd+ЂwFG[Z Q5iٗ(É"_!܃>�!ߐVD(xֽ8C=zo(=$؞ 4:7fL%|.Dar'"jh!IJ `7ޢ큩|mm p `8IX}̖: 8 2 4`EK>"p$zMzXy̮ΒK�'!|[μP/+p{o4ǹ#J]=<ۄ1_e2K{2.~ϓG!`"YEܡx.7'=tK`E?5v`/,/|ŽU~.7iC�+X$"nw9oҖWZY�5$C~�{sΗ+ ,t;^ATD' oi޳ÝH<xH/1?* Ɉt{[Lw$�7z`js"-%wΏZ$-u1hE9*w1a.y7À#"�Ky,k7g!W}aW'``#WKWyKjC,uIYp?韷5wQK@A@ɬSTo0 Qo=~ X;wwSM7ɵ!q{ϋZE@سK2fw3t,-uo[[֯:$lc^Zڗc|%ls*_9ȕeϯ ѫ)!cʅ Ʋ. X_/7 /KW=ϟW@&ks32Gkٓ/ޝRԷ^CbK֖C0KXM,)=7OOPeh^i`R\{/||-tBxʦ+f-zДL`Zn"NCeivb/U^G=/V{@eEL'`.M} L?OFvw:n B`r]]@3]OCA[Ƣ)N ?߿U�h^޹^*?`~l30& ^T^]tK.0wLwNx)l&};!(_={F?ES>^Qπ~{‡ce%16~rE"jΌFxI19/?uxze (\`=k/= ͫ[m_=@05jrJŸg}`xŻGy.WL /w\q$0=Ng 1$a A[JoQ3{KثV1qZ欆}TQ߫.{C[C"ͱ.[  /"/ BL/ `(L=C#ֈ:vK.=B*T]Y$,_e6_!@M1uWъMiݓW"Ҕ#n 3T؊3S<ry;Z,1O,c&&O,~@<Mp/^p'ru|kB;}6mNf(_ Q?L+ϯCA)}y0 ^Lpqa+R9(S6fsjJHR`0W_0}fBcw!><,m�[.;"㌽?V+t)De,wQȂ{~f HX-Se4pSA8řv)`qnsD,C"ԣ~'M) JWMeٷ{*-;`q\GruK;0lxֺWagvfK:p3f@`ye'b>1h+k"ߊ)RH$6 ~[_n͜8`;Y 1' .#kѯ2E xݹӽHl홟)$E=[)a90(k`jlZ> '.Vw嫊rD+rxqME}0h0xg!Rχ.ͩw__DQ=?XqD]kfKO,@r/ "~i,|˵nZ B{;.R93 Ru[^`ʫe=h^:U  \<ڦ~!ʠG?#ܶuȬq)AˀT "<DQ>;o\5j>DTiZ|'>i ]%[ċr`~C":[|˸SnHN/|f-[ȟ6%LҲm<uBtfI:>@ȱEkYj\& }q7\o2̐܁BX?}S<)x]wuR`]ZFsLnM9 ,9yHĪU0Z~S5)[cY7_b6S ;Rkr2ݽiTwXz,"EtaVkw+xK<xu@;] !LˋB`{=/.�kS`/w,ET븧wQ6g C^�Z7q$ �Vz츉)ƍhR=7L Hk\ D>(rLw9և!=z~T XZ>*ȓnY+IZܖMg{zD;l8#SfxۇHOk+a2~Շ`VN#N¾Zhü|`l OLeg<m0WdvRϨ<̋gHHW;W]hEulW2w8V:,"žp)c|lυKb}H+ ߱afg.`|tO8OIK!uqMؼ6]'pD?j< siWjp[ V г_ {^z *iOs(:'ovnJ֧*`/;#JL"EU\R}=P+byghG&3ŇO rdH>Ыe0BTD1v1PxUcxk,/!2W'rpd8[G{`B"G)j "Y7DÜիb<蚰d8s<nDnWS{Ep7!su9@;[gb "ߝO_ J,B9q.ːeɸ1HsM:v갋-3溏(mRENc}kYY9۽Nzkzx9;h:mX8xPɛLA$֓E sΦodWiZz/GDߢ< *q=!} Wcb>XDTPo F+n^F8wjQ3wةn= BϷZHJzsZ6ۧK+/`,MCDy@dq3Λ7$U XN�xW*]rQ1} L0i?ll/#46aG[R%8uOF',L_uXmJjo ZΛߛRc\[Q /j5 >0|OQ$G|3Bh'0W<) G|3#O9~*Yg}]T^lg(~K/a<y|" Sw 7lV̿UeK5lTl;bk0OO s,&wRp,dOټFP@Kh*",W(hh3DM\0JB54!?QPŲDpt6 FDb%9�! Z5LwzSZ Rpu-/So}+ /</i9"ڧ'\Lڨ<pF}$Iu[Ϭ|bS3S#�0^'o] lmfhU6Ps\۳l5.,4n\Vg_:T񿛒ן4拑H$=^C:"w||_G@K�Fn۵BxOLjrBZpp2ʒTaaǙ/8Dg/ʿ:{6"( Tk0oVVam[j:@糑_!"܊}{"Ӗ+-Yw!5h)Lɹb{;n*}hKN/-نDxզ%AO]VI=e#N| 8-_Y2pf<|wF#r˂d[7P~xʳ+HT8i "=ںe]øe0udR=ݸ(eQk\ ,St 1p FD~$ǼXW{~Do?Zz{ʀᝁD[h!BiGyI/z[WX=t~K5ۚDUjzb$p|zkyL1`U_X 4�no? \o#qk{b9$%W)?bݎ4D|FV^]uW;H\.; ac5윷`i]Rh$}Z` Z\{Q-XbSەKm5'ۮ!�§R)kH֤,惿]R%�L~1SJwIDCէ]G8Zf�P0M~9H6L7C9H/; 8+0yQl{<Ov;sԞ�`@X(ס! \tdIH5_w7"+<7};6}V"-2%VIE"&F>0Wzʕ( 9߼жXW\ OuenXhj?܍'j0"b1<!3mן ʳE3X /Eb A`aR}\oGJ#Zٞ}/ݚG`4Fy)ȟv5�gZh("\cOUPh-"X}ޣK%[`e/ȯǔOXo!cky+nO"?|E-'D??fGd|$Uitiu=ӉH6_ScHߡז[ôS}_�®EME;"I+?aHsfn4ޕ]m�U*-_Q pC]6()g6LjޏE㟸{9sXm ;{. fzc"x0ciD|5yLaԵ∔qgrDzhMSMUyݑ_vڳjY34lUN"7vD$?:O:-uya^*/aU#;DI{l>,B>ɝ]];@IU`]zDHrKR*;!`|r7iϘu"Xr ?e\Jl >#޵@Dv00SNfO2P74R;x9Α <WUQ%E-Ɨ\ AQ<w'w4ђg?홨 Z ̧LڡWfeH;*M%- jÜB-"3٘kد4%ς�ya p꣝Y; j%˔=W YWPhrZ'�PQW$VfP9}!4DuXtRk9ص=BАq%&UwlXb{\?_|*NyQo [M#*UXn\.=^9=0M'%%Bk%w[Wֺ@-u_1>p]҆*O5GƁpРy/%!ɛw,wNQU#gakY)*Px cu}@bϙT!"0nmQJ-Yq^(0y|D<Cg(fOcsRp#Ճ}9WjW:9lg?sf pc�[SnYW"$Z~OV'NA $ce|3^- ڥn=DN֝9~ZT᚝O<[TtLӖ2}'g:bE}s&!{Q@4guMD8f lq8ɻԃ]}-xm`4w <o2}S^mQҭwKa6E"N,8C {|--a)D-R#@ SLK r_gI6puV pؓE݋Mw.k- �>]Lj$vJj 1H.B{l0Le<tb@+۶[p+_X0%]] </Ub<nzXsK'˺a>տO6Ho}A7c=jo?e*^L7j B?O�|!D4#6?ހCoT!lf}x�v r&1S�&qmт^CKl>�uCj="A7?>d?s“ZJ<9(mF1i[/-KAѓUa`S ژWE cHF' )w7ӱVWlNy;�0DؐsRy#-<uL8 ڏPDzM Wi~90֧Nn9󠘚x?;3$*{ndx'}i7sKAD"^{ 7Bjww�s۱x.3IȶqݣMѽ%DH[q o.0ӜKnE?L [8%)Cۺֳ\0r4\~w `7EUSD?~W{0Taaj ,0vO)tGoA,Ť_mUWLAi/Y l7˻lr^w韈;U<Wk^5'p˽IB[;?#1H;czA"0W]X>2 j+<f ߶W.Y՚7`7}3"|d<*~$`zU] ې=9$}`ߚyiMn`yHTG:Q<c+- 3+*4*ֿQF_S"YnuZGۘҞ`�X(zh R+Grx:Kuٱ% 0S~ WD 뎨un3G҇?f_›D0qxCk_}DAF0~c/(< ̧ILB$#D AS[D$|oI>-a@VH{u^jz+1N:[aO<o$uvXJƑ1y�KnNZ}>˥mg-#ݠ n? uz0N) ¼lh*y \`S+ &|U~qد|[vNdA0=w s.[(]#alRyF{ QҮJBdMڈڲyWhCԞm= lpE9FW=yP-пHF5ç( j̀'HqDVk(!rk `vr[5~h0a,ο}vZ.$ ݇֫*tTX 6p.}0z`SAl:YxUjO wV9 .郎  Auw}: KLD,;\&;ڡcfL)ssz-\+ꪁ>O}l{7K\zbXݛy*P{T)@ p6s_3«kIgw݃y;2fXm{I9>-u,?c|E~ɭ?t"W!It� ̺"b׀%hG=YTroOsv<@$Y$$ ͨa)?}D\>|צm@#/K(ZOIʷ&kYP~5$rڑXQt$8}%;fB^E:DXD*8KuQV쓃+}h$y1;;҂H67IDfg2qD n;x-P/DtwGesQk-o`V~A LDV߰?v'gNQup6*13ӷ¤Kݲ|=voɓ',׮36jsjH|K=p /߻3%!X݉&XVmJEk!&۞L/d1.ѫ+W XnXN:w9 \v#QD(?<zL~wqD?/"@v A0[wxIRˁQcݲ#r %po /pϣw%z4Ni1|l583&9n1>5)'DS3":Fb+?\ؙrpG[8]ՌDLw.f!}o2n\f_Fc@3{_+yoܧr"0~==Ocb~AnVўR +^3ԋ7ug3Rt MO"\I~4P6nsbDߝ e9wsxop ¿돱,gso~ʕ_^7ڞ 1NX#&n(R�n$4kM$?{J)#VҁZ_ǁyXp,K$E4" q.xz\#i Ka5:)܎%僯}|8]jQ^e\̸UH]29L<J*SE?+YP:PɶD԰ =}?W%j/xG._5.>w�f D^M` nƿ^K_5$ZyK@8yRY.MxDTSB!F$/3{5 X>i$&) ≟~U r[#$RYzZJx9;Lj*q9@h٪|?"gʜXWIj'ƽՎݍDoj0ͨOb6{~ݞq$A[wX)y+$oW} F$ `oi{xsGC,tn]$'!\'ksxjrP9{s4pWx2h83z<z+\y0~nޯ@/2775%2E$}?)%IZ$ ۥ!=&[Oe@ [U9[aY3#j Pᯝ;W]MLF>WYDx^:t+=B=7?@R4~co,_[ m.C_IvHz=X +ϙ#T*B]b7~޲UگwW/pA89K_ Q::v7?K"' /=G%nKgV|n-آ/NN�GUl� CeطzA7}HnGfȾMJ!:%Y`F\ou"*X%�WU`c8;+:aJnt`qM<mOpBz9e]{4H׬FKb/`aǪg+SvP梱10zE(Da&(<pQ_rٍHL7DgW[Tuz"upJs%z۽a/x~䤏Qh <ǵy{s]!PbL"HHAmGֈùbDցxwd 3DyOCɑ*{ޫNKR `=zx ӏR][1{h쥨,r5fjz m>|#U :3N\Bz3gkOR^% >^;8pRЅൗƚ:~6"JזG"x&#I|ԥ |Xfq;UTsQDSkOQIZ `S/4B8[ rU�ʱ ẗ́{1x]no?9t S"`m�zG0^'7H!]ax?6-8#|Av񖓈 ]v0):3"&lhUZ3M;;8W"+"Iہ,VSr"D}~!j2B<"OOHTy%OF3ql\o: 7!UIzu9-F:zߝ)Ц.F<<d3_D2cgf~bycU^0{\4}c>iąyd-/!` W0[t�y]1Jr9#1 ,w=D r@oiHl-6NN"檂 h o!چqF"b{iJ&H:0NxU~]ٱ?3Su >Ѓ|dS?6B$o%g۾ { Q®W!^Hۢ<qo[5nNg] 'u#S؜t!Й,󕫆D# ;e _\!"PVh<s-Bx\˽X&M.-C!;n0UfC9[|v=9-CFTښ.>1 X@H)h'++o$P5|tYSI9plw%X^j\VLlj}<j[H%zIB Qg<_ARE'J2!U/F+Ho=j٤ڡo9<|_M Mٙc 4G CvGSg<p>x~ZSvKPRzU(0י=%,tg~\9^Qw19ᴹ̮"R5ޱ�&ÚyKDcX0LD )pb Wyxջ['GcE#>OEQI9W�͜(7ow[AImfڮ8a[*`_VJ ?I7X0o9,̬^Þ ћf8D.}$b-Ẁ.vXGD'hs.6P�L~[[wA >Xp o/kƹ_ZM܀s YH"M|S&q,Qjwn?߼G&Cpe{{e`.#;MZćbWֲVu0(x=Ɠ*ncH屫2ƹ񝽩CTw\<dS60*;1,m{6.Xs!IGz2Y.x~fg@Դp*nxScGQZȑ`7wwFFQWrakkp m%tC&/g!JGಝ:w&R䙞뿪r~0DFƯӁ>_T?0c<#njnk4 *8[j?]EVKq@ha4Dt’zŋ~D"-.F>8Ibp}p`hgND`wʳa;wr`K9H̑%wAArxݷkA 3qkOXpb#"8kz7<E 5>?vJyrqVCʱi9#3C�Xg}! #@p][dw�4$/FAd"5OC.3M`PKj䗹H4{Y?dOB/"z$Z'"iɑ�v1}mU U{rp0՝c2Ѫ|[UWD>iE6vΙ&޻#JtẀ`aF6Fċn2{0oJsJۛ[jQ*",r?crŚq^UD:hWu9qvyk=ڛ;mUJb~.,R^:*19Q*[�B G=p?5R vzZ;SDkKn#"ٽh/`6Д,yqHDoq<˱ar'TuL˝j $ĩC#?!H!5R{"8u�Bx[6z?KOt";s*=jM6z$2;Ah_4ܯ4W6^C"ydQw`VnJ,D{9F&1= ]<a,~eec .; 0XoLǾ5td�4SZaIll?kN[:Ê_ەg)R&M`'_=?8 s %CGmneg~ioߞ˛YT=|It- 2 $rdx8`Wx.d!`8n"<)Pa\ZzQU^'s~iǤT/'lËAСkpN ly!e {hxi >/&Pr`Oz@ }\D>'¶ӛ 7!b母.AD?܂('5-["AMX>^O&{ѶILeItxtNalΕ \ɴDUv;|CRNJ̌J dH Jl/209_Dn7k7R1,zf( ?( 꺵ݥ_0u=kRI0_T ߬+%ߵo֢$22T)q@D87%1ρ4a{5"wǃ>Dݕ,r8�3NY\T 5$vIL'KEnT@pcs"ߨ=$R>dhDf"ߴ fAfFh|} svq*Q|xUWTq|I�QvoăV,+|o}Y~!\˿P_^ҁQ;q(~~(51DlE-=gW Szy_x#jrk+w~0^ `os,ٌC~@oveXVغhϯF\0P&nrԎ@(Ӽcu? 1.eIBQO6FoK+<Eߋ6;孳'c)$fۻn͆/u>Hy)km嗋(�E 6"e}ن=_5:|Nj`*g{;m6hCDf siq]W,W;FZ%_}b!=\kvǿ&r[X ۴ǝ_"˨rD׬qx_[dÅeoeK˵Mƈ8ީpZab+DHYZ ц0S˗EZ-2o<4%.`&,ˮ屮 X.T\/KMPaұV SP"e]7e_ ';0ԑ}B`^>P@@W^;(,|m;wh= Q?Q]̅!kh0Gcլ_d~;`{zv!? ̕NLL-y.:9 mqD񋈪_@_u Ң5#SD?QE^y)�57_}†( smGT<&@ϋX,0ߏNl ~lk2"xTR `ݝ(\;miy WZf3"cqQTFl!b0W9)ΛMHޤLʍ"qм_/%%*$9 *"UK҈/{iq[`8h0' Gnje1=:ƃA<`_6k\o);<!QOJ?{C0OEwbP"u~1桮{_fA30'wi/] EC"p0�S|u]j倽@Aj%j.&+KefExq+}YDm鮰%aE;\n1�ucnׁ{&.[ўC@!n :#ʶ<"0,I^w|Y!b)T�+D/udeeNo^pXVrդ)~0,jca<9!Q~[8Zy9[L7\%.:>H) ,[UUA"ޛP &lUDz~m sz1lO7ݏeG-Jג+\΂h91qnULP7IޢP_6c.J8aNyI^E7!/he$QHvɚh2s/><x&Ʈ`^N֧ç aґqg�v.qP'`vh�qnxdbl %גqH\'gQPekD16>G4lO a:_Q~L_ B*P 9y<(.va9R>e)FlNYf"L~U0WlG1"7g~إ-}{K Z&k>I ϼ]3ymDHtՌDF;=Ns%tjujx{^<NkJ#v4r90jR{r@/Gnvah:`~߈^}̑+ �.Wɱq`tPO|W": 6W*ÈVJ,Ђ}ӂy<-= u�{Kջ5<oMO�o4"5E{_0ؔY�"[j TpPwB%WOj&y+;^.yU-zgƒv#U @y*[Kޓvxg^m�n"g">{Y?K\0[eAς`e2aȁJlnXd6v5"Gz0O(Ljz+f\`|6gs\{S ja9w>:WJ+^مjR, e1M^ .~a47ׁ& aVdKS[86cDUד'&g-q-�+ D\ymD6-4d>ϗ 50t'a;u`[~T>"\#D8\Fؼ)7@ć%_7D^ۋr}Z�GJ|(Pk-%e"rL<"^v زK u0v5§(캲0?ΤRDQ%lYY9DTb-Ir xͧ[f1p}<67Fb=ob>4Lgg!ҽWZf(mSejzg�uiJbΖ)*:/;ā=i+T4̻q<":̓>J\$jȫRg2l,D8r>a[D|4|+7Gy;?}&->2_$G ,Fn[I)]xYzjLE]̪/;`<( #6RK¤i;`XpM:}m`JNEUAX.\*}P5 SO iCJ̩f;.3nH^`#96#^wGF#"1 ;c>L|Ap{ ܿi?l֧ayjܸ< Ư jg"nD?>J|AĴ-_vmUȋAQ=>̚n\#R  cSߑ\pܟO#B‹BDޖoITs=|,|}{I\=0BIٽP,7}<K@Ԉ3w0/u' '.dLU *2mh] S& +{c|yxp臨sua:mNW[+\Oׇd"K@Т+rWo/<Ú{uri*?hz>$r/bS`O'6�{ބpAVUgXMsJ2W!j70wnz+p|Ć7 X9^E8)wZM۵F4"_rp撣$]tU&07xԮi~%Q(~{__Oj܅d?h4ׁ|h%^# h.8錈 % `^t21Og_Get�F:Mm9D;ٲULxq;ɐ� 7>�̡~,S/g[7oAk?z , Fw`!1(ZCľGČT:c^IॊU_?`jՅ#qA* QX >o4mo|ߵi k^ bē0>鈙0}݄O;s_CƀLh "?= ,1 Dc槕srQ`ޛ9 aʗ/cޝpkC`_QE"Ƈ0X p;܈OuNɅʏg[&V>Z80ukEp& ܥ[u\96RՌN v�V07D/FU~-#o}EEʭ3kkG9pr~ÿҏr2iz:ߘU/4_#Rۚ@XtZ9Iǽ} F Et-Ӳ[?#Iy]{@/#H?"Bv蒥&H޶>r4r>Qv"{uoV/>y'pO\q *eҢ1`/͝60ߍK`~8m|=$Pgk3|˯ q0I`(~xDXwXRt50Ee b>s̺Fκ9 P D!sADp=V'ݎ<M|/sk BG9I}TXrH�xj)Nu;n\<Ŷ�[\( l_] ?O xNH@"eE^)`/> S܀(10WwKI'#4@oV7ljuu\u!"<hsy$wOQ?Ƈ h:a0q,W^~Yz[o,(|v07s7RS s^[M:>WtG}K=(}h|G%V#`W+DMx)wj .Nަv{bVc8(HtqDؾ7?%R Na/Жc "4*�pEUc`NSC"J6 $\anj۞<R#Vx\;V"я>YlOf 5\"Gyɉ~s5s}gv8ylCd ӵ TfZpdWƓ:U18;ovI mzYIX[]Db^$ryb0z`i_/7$*b{4 ntqQ{l`_]~ׅ |D*6M5e/ 4N y؍룾-((C;q0f7F IǛa&K/mIK$P)BRE,۫ ,FOQ| ED RY—ؔxqɓbQ@*6[hxD$jJ`Bu{(WW}6/\z^gֆfUUXokl]]wр$$HЫeu]0f=aPמg!GɕpwHTۢw|Qb1[Zzo6-_ a1sm*6G#Ft]o$zF6D~6C_{;vp("& @ȿR8g6p::n]~C;'v܁Q#̶M*"tG)f0 SE D8_ Ryg]m`d K=!RGW6wpkDf'ʀPrkmƞbD1 j`>/iזJt\x(ʕ /1o|`g^"" p+<ـPFGe%"5svFH`XЊm9_"V/*X;R#@h/k"4njin+WbG`&a% ^vg:G E2fn"[  Ud |b{f"X@xݓQ֪-{hRv7/MqO'+\V?~4B?,�lCNQVei**m'oY\ux�Su #mow]/@zdZ"}[(\{Ν˃{}«iwܭ䷘9$z+ψ@k|р@ [r'—cyp $iz=) CssѳIGvGꀱ՛?�.0mB`V|<b/G1.m4ht"yYa‹`~:xJ+3#R_; W9\(E Dx0UǸڷ?i"8vgWIVxϓ,4 Vle/BD +?aUk偻k~cS_D{]+Zf<לzs<GL #m.H�]33f -f$ )1n'5I{q[jQ¹߭)uÞo=sEv`'yO#țC@w^oQz_H�p"N 6ދH̹ @["l<S pˏ0w+8Dgiy cdU;׵v{ruJk1~./pΚ*2 EfbRgA~q׸nW2"ՒzO1w+$*KKA75-p3"l5rOk{ [hHC_KhU]Վ*c8?H$hUފu- Q\:#uZaKVOO$mG#hmol[qbnce@?͋mG\>1#%5>6u%/Qu!J3�Dl p�;ebWz{@~5jZ@f3b{عzVR/S"8qhCv~Z+0grLͧ~9 QF.Zle#~LB/lH jO<DΦ ǖb{9ܿ#bQY5=Z.R09+[ʱlk"eO`~CE?9Z h_qbݵsS^rK1"RuOH`?>}O`X?Q(>r5S="/]q̓V\Y0~ {|:.h~ݍY>'<Htc"R9Fۜzsϵq ~k <ta)Oؙ:zc"zZm B=kb,6lwHd{PR�MmQ2Z źD7^"4 ?\?n{P:+S5jES6^l}w_ ;niců`\B+_2O={4iy \lBEuT"x%~.{;,ځ&n`HN})\YY>~¼29V<p-J#w`LU0/c=&u#rԶ?~!iw>'Wz?!O*#b.D*جGzH {n'D鵛s@-YrDC`4:>a>rz?a. >fh�Tac^y2xw h؎YE`?pyXXe}r˥E5y"浖=ޅ4Z0ߒOOsl9[W,7~e4qn{|8.? 7We)gsأ"ED8-OQp 6(`'e8iD8eNYOޡӯc[K�s*)ԟ]t�*0KߏJ-.0sr2>aE?{Q:'ٴ -?n2AD|R$"S7#UG0:5{�\Kzq^½r>uC$ }B Q5}bv�OS1nn\rsl�#^pJMF+ny1`vWaxk :~!Ҋ}yQ'$|ӒflJF96ɳk՞Ӂ/`8Ty:H�sEs[ Oƫa샛;ƽaQ+@)Kьa*DFčH8 ~+EeDyWɀ`ΐuOz)5Tez[}I/ޒ54;a_ϙyݟ+#§Y5J_Mp9>YDFs߄>͏+~Rzݪa/uVoAO<nnS@G2%W@܀ňX|sis+"L ׿ֈyZ`)*t{0{+oS q索V-4.ht_fu#ƽTDdyi <7%�eKL}`֏(Ds`-νxj tCeB,) odTո ~ hOhFHw6h Ї{+e0۽n$WM[$c4cFToG`]|G+0>ժ2XG/<,Plpl+sCw8o>vQ*Df)YPB*TFJ("QJZD%[K%!MYgc_]u}~?u ;>̑7 0rT>]4=6Bۇw-DjU%'WKu frEC.5]/[y)v.,xLpe-1f^>.e|o&>]id,w`JknC)p<Q{8/Y5K]H'anND rRq\BŀV96y2oHR6.BjCHq+I��xay_%1ANjt Si FkKkclEڕ"A8y- Ikjf[{;l%? %}"Ѫ/? /WҞHW;YR Jÿ[/Ԣ حHўSFƿE{lm) Foș 3Ce}D>IQ]b.Թg2Dj:Z&~Qn/aMcFS 8p!<ݞ*]EZo,GdQ*Y`[z;}?2 ybm\RlVތdOIW;]EIz=<0K`&Pt9 )]'`oY T#u ]5?6E&<HJ~ Rj9eLC�V(X-_q9�XVldm](nVya{Y:oE|gc98zǢPʯ<3&2 WE0-m9a cC۵ tnlLL*)90+ߝWCs7wF6OP*oy7q(m ί؟+5Q|aCtV}X-ʞM ،'o�}kSH9l%(5F=LYD|>U^E a3 cگ; }0n!#8Be}`|5g#Cb6`[{;W<<jeNIWvz@ .P"?PLy+C.o;�(>3S )_/!UZxy+HrBj  UQz`Sozq9 bat׋}OlfY.*ša-mґW.awn_죿ge+aٮn|/:tu߱ g=/=|)G�\+yc,}w* ӸVa>2i:Yy|j\B%N{4ЕćھE#B=}k;= X[#,;R`hӮvH:Av(i32hDeрr^wJ7_ٸäֳ_"yx ?z3e]UaEuwŀ`Z8CiU]򷂩o'67EfiLݒҐx&6.{W^<Ȟћ Pѫ0 mo|IL6f w\p%{3ueo|&:V\Xudc :ZaL>Y,3_߉ $D/'˚>g*:A]׻9sAdͿRV> T~9}Ɠ_m ݥU{ެݽAI~.&̞aj M\6CU%<-xn>hz c(s.`[<fvIUOWg8GF ے >=jTzz󾺪#}ײ?R_d~A4%^Iwl.(ow΂gG谋 K2LDHXiBT7'ba^{az&<*/{Ki<2VW beĸnY_ZrrdG!023]Ϋ;o3 zn~ ϭjU3~`iOJ C!Ϙ{ܕ{4Θ]ެXx h\*AD^F)ZqD?eH+&_ejR.̾;}?^^*#[Y|ă@(Uf Օ<7NxձӑHقz`St|2�ػkm74ρEDK$Abe=I.+E,snM~+`Ҫ</-i՚v :llHS-.um,v�)7C)A;g` AdV}',mGjJ]Hm0l+im�^ܼtW WØ[AriT F/S~˿: I/#Zwp/ks [CِsRQܬ C 1Z-pN6쟵i&R2X~ѯ)hS9Q\ȨLF]P_d_A13Y5j@ůV2:n mA 7w* y~{gyt3j8sSy#&2v#k{yj#c:yҒ{үUBGŜCA5$sy0=̞2YҺQwKU*:qrS_}:̶rEGZF9)it!euy{"نtKj_"31L"mh͵}߇æm$eJðYX;G-R3 E~-q"୛tY#Gȹk6~#ge:#{JKxA /(k/S~˧?#u!σ@O5B eo/ rDE $SU[M;ga밟|�)ˆ6FZ\EL╯�uЋU0e*MmY#˂s} temD3L(w)NRS0y z|in݆T&SC?i֢ՁAhY53 7nodr~Dߏ9ͩ᪭} @)A"O{%-Ʈ}�}�0M;,WOd^=8nEazDȦGl!zY̚{c<v#_>Z3aGU ehAY3aeɉHOcQ+;?Cc=lW7BGb8u/26H"0Î^e�7^~K| :sZ Fߧ d<AB&r Gpљ9џFZ(Fa\VJ&: m ͦwxM7҅Ӌovxf(&xfpcn ܫ7'+%Lέ 捩Pi >iqЁ}}%M.  ^3j6k6.|TSR_WP& }ӆu uJĆp$d#M9 Ev?T'A3k礇 ͚6oFb+siv Fk'A(ÎρcQl\:]Lq)0'kUД11} X1Dn_bӽ4M]?H~% %CF<atIſog#yK&OHܣ7&呶/lCVHV)xA&$-9s!r_~aWgH9՟ }3B `BFj`_XtAU؛=Bqa"H^kL<t:;'*k˹@G:~zqi{aby[0iOX33m_9;5 =0H icb({>H/R|zT"鐱O .̋o*6M`Dyn#xa7H`o [KYRш' e˻")+۬gFR~i9sf_,un>`&~`vc+1Ws!@f/\y[Q/׵1_# ɹ:cn*Ugdk7k7|ӅtҵM%0foUK3RL2#ΘJD+aLo]}wg)P7C[#r}C U7 i"tH7r6WEz_z%|9{~-rRZ]3ROY0z#H;sGs&xk3{O H+a|+LT|dI6^AKwp`L~ڿ9HbH"ugn."@@c@G;D rN'uwNF{zO(zt}{1uO;M 等ն^Q? ^CS=4[pHsA!iyL `TNnCFU^VHd-΂^}#{LvO  yJfcե,p &J0rVoBknokM?H`0F?`dԉ,+#_L2ld卫ݐ3}#塔dR]eGm@piL^ٷ<ѽ7A./ PVO߿sw>`HVwݸg/?܌ԳgȎe)}w ͩNJHR'u(';?&CnSoOMJ[3 ]DEoՇԆ僱7S\&{D@p�kV8|rntBiͱ^ ]�&׼,o ))>Oṉ~HxJZ\LhvVBg锗PI2fKdIX  +R^�׼7; =T 셮0vR- -;BJy`O\޻Xwo}?U汀UAԓ՗t}Xű([gx].N]o))GZǫ/yGV&ZF] <!&=B<%f} U_v�C@G1O62˅;6#Qh+8Q<wmb_X ?#\#JC#mګ|cms}o-[>7E;x[ْ( 0սj^s'^3xjUߠ94ܺbg1Ɵ#ܺ%<ΣwuؗAw,Dz|ڿ0q5N d|*qwG-7*{m;R[aB1GM_jfJa-LŮ!f^wqi'ϖ<ܞ`_,|+ߺG"X~ޠFd<8X"koG$c}!nr ? Lo¨g,JϪSQ{]usk̑chޏ<$߲9<pbΝoAx=Lnޘ25ȫ=. w{e'Ό܊d Uo<r1_kptpM->T;[DmJlPL)ySnۉGdq4fxZbWv/z 95aLd8 u]kG[6Mp+Va8 h8q2b[Y05W_{l/X/�QYg UZyN ւhWzDnym~�8{vM<ne!?x8Do{ N11D/z6 XO"9fIgY 85+K&^疯CiҪ3S̮<s}X0@p}F>-\I fҕn-0F˭~04ܑT=X☎',&a21~m~MQ3z¶wۤwb˖#D{N[*so {z0:=0N?|[ƹfӮH-}ËvH,Gܙ#}R:٥¤ۜVPuF;^'=y,F cVeԂvG`f$M`#y8n ',"Y!!Xeʍ?$ej~>[[ |+[S7};|cDi3tPH1 <gXtA_vfxbwvD}ƭ~0bЬLJt^P=𒊵緺d٪N$$,k(m#l@'hX%Ν2N0yW, &f#-0+Nr{dt* &Zɴ2r}͂)W[Ązv_  VkD  ƅzOѪ]Ȕi9Lv%^>ӇY~__ H1Oޘóם':%+mX36+mHm=;Np**cM"i͡-cSJCA4ճ{Tn|:ϒa뻅$!sN()##?iCʱ҅?2۲%F2?(9_+$<vp+`yWHe0*m^Kf>وg|bs?}Ʉal@Bs,n%S<#NRSHtGY—mW^<sO@!X|e'y'OgH~z im<ء_/M'Ժw8pׇ!'Q'āwCg˥<wڴ49 `t&3EqʀW77[X8Wl T@tYH`֫S/N)jh#&B'e2mZkA֎Isŷ#kɓF&;3%$ z6=Gθb",_`RќtqgN0w>IabtFDDJ* 7r1nGҰXN`=[[~ȒlߏHpR$5hi.n흻/@Ɠ= ؜o8頝iMl"<޵zϝR\!,Eސ#9ܺJ/hyi- ?BW*M7n͍*pO]T^A{X9Rjr%I%OXo{�jX{0#֔9>8{ZzSA0WeN7cGquylvُ__Y|2:N{wv7'OD5)ꌲ MEL|S3'k~697IWݐqrNɚ͔mM\UɎˮՓNٯWP<~z )Wާu^T]cWL =\s78eyIܾDh_퉛b*Ԍ.*H<YbqX`"r#O=kݔpo OCv?G=Ve�wKWgdJ߀uLFCLT77<;~\LY(M- 2. @?E^iŋDʗF' səA tQUAW$p{o R.m=_w~ tHغ ( 6 s{ɠUp7LyTpTi[y@%6�Nz%p_0(O68dCp[7xR͒0Kj8p Q5s@x6^u/[Hp̀%Z͏a7HQ a Ag{Rb v0 LϡjSs֭O ƹa2ŵHXg7 Mi�o 2pf-^OK/fLUl(LiQ8k-$wUT8IUY`2 o`bqS#:2>mUEpVt/$᩿GYĹ+y$<,  ){N>쟑e|tabB:, >໒Da<chHR#&,o|5^maۇBc%|'5W'~s2SQv䜶V`3r^f#3L?k˘3!SZHISjy?p95|#ڶtqdF>ll̓HNe, >] \,ubfqWDJȌe3^kW;X.ܻ\ϯwn#- D+|*<x</4㤐`:Aӷ+ Fg. "u߿?h4-K L[FR|.sͫD%pl;\V<}Cax$Dgö܍(.3p.Uّȝn1o gsʧC1djo I͚f"!2 3o3:\\id6+(%y^Q|茍#^#0 XA֦zD6!Ów7p>H{k/ . F.mp|56yQvz?*Nؖn{6 H\P2_c^.4Èq9OptƼ(#lS_iR n:H^el+֒Dʺl—{N&_En~S,"mZxyb xQ=.|܂dT0&ܾF4/Po="Vރ>_fI'*,>R"7`E =*uXNFq+lio$AiN'> Iwrɉ>`GZo 27Z꜆4fCD~ raK5ߋ>0ʢp 5 8i<n; >>C9H=)y yݬ-?6UIh;sm)%WVO;d:2ϯin3^^w K\$|_ɫVgGz?=cp]V.9\{d*gȋCǚo;d;H+9a[ #Ul&Dk5עĜgòl`?k0Rτ}:FDqݧ#j﫾;09G%sMz cHk{H TuLp!stTү$_B_)8ڑ^vv L۱:o8ol5 M"ƟB1Y/Vl FfگLCpOG_H69N{~ V r^"Nj};cS͑5bk?cN.2!0iٛ\ՙmؽa{{5T(iaa4~8q]^=_=D!?#:G_t&( ܛ^uUr:'voSYtKmݵ{`ߏ!y5KY:hHδ�'@͑(sВ/2y ZOe[$mz}co+f]8VgS&v cWoMf(n)Y#^$;v+xmBR<=X ^{KEO`v .S?aw:d/H}sI*wb۫Reۛ)Z�՟ P,ݙus3Wf9/Z|X,8nL_" -3"r9T73JC+#}.kD^KoIC3K/ilk0&[?:Ow,yvrٷLP'a ɵZ�^r6'J9ǵAd|2lמ1klAJ3-^a;2o\�x[ !|r[W:yl4߳X$-x0ㅭC%L ^?vfnAqooHs  /_ ^M-dz"+7<x|F˓7)o3AԷ;'vhbHy"N8F_]m B emWYKC9#|*e \9\7 >:m- \A|ʢ8d~Xgߕ˜[]{Owь g N8`;.ByquiT^xDr'3MdtȜ;GJV\y2t%=U! :g_u?93=L\v28]0x"U`WW~ <s;#wQlg؊#nf_b.5Ϧf_&xӕIRHEF^uDxzdwuΞ/ Wԝ>_yo"pB]`濶#R}p].ljRZ=:HQʩ}v%]0V*zm*e}0k}yK |-ҳbc>KЫf;W6I<#8|;~\^(^Kۿ\ǞAc <FKl-P z7}"_JS޿ ;@ sk:ng;LGJ-WRX<|W0T$7[|99}TW-f =K*�Ns uhquQ\cؑr,Gb`$-Mx?H|<FO?@`agj ] c/佸1 \ş>=cEj'12+]5(k])CC _Jݶc%<0$h9o|`uGf^3g֑^iHqsW_o ;T'"[--U sĦ]; ][VGOm`dRۂGeU,-_#4-<˜ }D\tVYsׁLE)-e"}ɈJOP|4-a+׀"1cb67 {HpyWr%sw쭨W=Ӷb7lj}[+UmTB1Ϻ9Zsk,^V�CI23bԤ y=%)8-i&Oh:! V8(S:[Y$Hd(�Ӻ]rQk= XV4ay{Eد)^+ur+V�,ZE}`|h]q'$Y60,a4z 8V 3-Wӛ%o+16Bo 2|iyqd"M]vSR54L_DͯdͽH{6}Ֆd*s>6w,KG_?; $g? 7(qrAB>79Cfv}nO/3kx 97 ̹16>/{ӭu(~gnvs4^:,�A<TiZ< ,w^WI:DihfGS96<rFkv/[֛G!y4RytOY0Y3U!,#1dm3@? 8 GMd&Oy,{KR< oTJSHlK x[&R&K}~wNx _Ώq3B)Ǹ]+Ax.eTn*O>H+4(0%J97B0xpϛ4 @Z4 F fl#=;_̻[[iky0`֖{.ȽYu٧T]v҂bDWå%}D2!G{\ :AZrovZ|+"yҷ0|k~U*xu(vI6R?Bkl"apg$۶WԔ nôb"׋ӿ$fhH2I-FאpEn"*G})0A{}#7�IoI_ ܦ-1D:f3Ov(ljܯK0nfrᑅ  r` gL:;rp~I1dƅ0FK/Hb%@xHFݠI&~7'󲜭%_z.$rɮ;H>Ywj J\H\5Ҭ΋ϻʉ۴^qVJ$mT{ԯ 7du羣}_+iiW@R^ X%D9 gKY l'f{"^xwh@\o|eޗPvEӢH]<_ jl3 !1FdUhzsS)ݼaϵ8 À}0ypGbIoqk~R~ @jk+u qh:/y$-9|` 1K �9qV;("e8GL<1۷׿,_ PοEo[[^0 41YvL,j 9^f1 9oohل>K5"V GUs)Mj9.lԂ0|J]+8FNH>t]UYmmat@́&'#xN90.ܯ>xQ?Ta24, ?'U $jHژX:>-5(yܜ' uc|b_RhL *Lq5=]9U|WI[DH8*NMIH1=z_}T");wZB 06fo\%ǔ4kb4=YH*.)˅Q;%H^?Am~ccq_ZENx?Y.P'aW+{OpgOHۦ޼zAϖ!3?g_5z #%*k!(ة ֵ? ?l|:ڐλ*2>"kg0$'C%D1ˍϲma܀9IwL?lVٺZw+pS!Rm\k~Cߘa yw/R1:L迯oki|h._[GwSp=)'DnY2I Q(1'Wwx<QHY1pwśEG>}�\kUGf4 #qglf `2$T%̻7E•~~XI#ucx�7q$Egc>&O+,>iQ:n2V/NG!C?ӟ2摇%kX ''OMJIfhꝂWrȼ(I $K(?awm*Su8katE(qsˌhD-W޲ i_h}" F#EQr;AV_BK>[ *>&Ep9j^RJB|!c7Hk{gè֧(H66BˡȜPAZ+W=8iيH^h:?QQٻ;ok?BXAj=R% ~n[Cb˂\❈̕v4Ckg]W* "tUZO$QF{5;G~Y5ivr߅K?Vdi>sFז4|B'ߔF?7V8ѡ$w8LkA\8Mj`\݌g1B,hjH;b B߽ܣ{޵iM(7V#j ω 8WBTʌC]Hڐ7v=_巸0^e0CA$KwWc?##8{9Ҕ<j#7nׄJy'Q a].\bӭGF~I3?33Qn2| R`Z " H9;WCh$PHqwlDtc`]31KQ5VhuT5>jْC\:oIEjH!><vnzl ǵ0ipU% ܯ܁-fucWf)7S~K:$6ՙS0OyY#<oUrIzEiBv;$H_kIbO Iip?3EU^M!C~`kE NgWH-w(eJ? rܥƷ!iՍ7;&˝Qv0{y$K]@e -w*LN .ԃyg54%{`pDžfPzs=qe8gʓ /AכFKf¸]=^#%YF@2L3Z upJXvˊѲ ́]pO8Ϸ Eu[)%BNiom=+S!9"6U)ǖy muL ~4IQH|g<_ <D9sf=>~GE@Z.J/1ќi.O\09j ?@I-בCD.]XȺ=1뽐b[A< c`�34mN-Q-W5ف`tQgS3jBgFZkGsPYaV&o% K/XE;!`}lRFr3ųG?{b'왖IEDOFZ|ʚ%ØW1 ٺ;FK"abTlɁ-Ԑ{ RGH.=Cz$Ud4OoşgaE}YH}<,\ɹ{\#z vO To!Y/uvk؝ T~ٟ񚦻 ]3^ iZO,觊ɗ6Gjkʦ zpsɞr9_sD&mTo#-ܧpY5R=ֹW /GҶ򀕖!.hɝť/I;[IR+N~`e%' eײ): bxKH1A[0g9ϿNy9* Iź/; -[;Ol�NY[վSY_t^sNl5͑j[a~`t,ˡ- UK4aLֲX/dđ#yݦ7P_-@ZR]H;vD͏Ē3f]MĦ X+OWqO[ bn:<n3&[lJ`o䂂iH} >0<m2${<ԥ*J+oٲB_eҾMlQL`Hl[/cj_AEL.,# Ĕ[QKHq]h}H[.|)s\ "Ƹ(A>M*J b zM u!+hR6"8dU: d6t-6Qy/5/$8$PL D*`uG6W5LXhtF-3[JV~AW2_sdP!I+V^%φ ETy�\FnHz 55FwmSՌpCwܑQ/3O�rq?UVH6tm#dc/;7)"YimH=I8>cs LzgZZpΉ7~H6]R J/묊v4$nlz]L޸Ɓ>6QC;H9lo7m?oR{l{X 琎\TC }/'�QbN6ø_ww!.ןV륇 uh)H$rQ~"gg&_> d 5t4W{ƒt%-VGGif6U$| Ѿ=?U])[Fj-cE'<{�\gՔ¶hf+>[$�ˬ�g/C׾0`;7?Ʒ? _bt ־X`2?HT/zÐ/{FL;v:o3p4!xy\ާv"׺͚aMƅSR,HѮ0"zp=ie?Fe(ފyHڡˑ>ߙWcکz zS7 OTΝMƽO>@oVo#6a%E:h(k(hgOnw }IӴ�XWZl~xcsh9OXwFl%GO[ oF'U^v.WR8<+^-L<J= %NDwdյg :xyK>2R<_[B.}x8?6<CMH w>lQB6 H#)Uq?$P1 #VWӛl@Zpї Dg/zԀTߋꑹnf-ZAo {HwCmס.0z$7_|g[RE,K[Ԁ'' qǖ [gt*a}W!}Po}Ѿ/߄90M΢_y+/"yvlYH3,+B z E?Ӑf@C}Muq{#8\Ĕ[XJ}IR:**8½Ic}/!#/ 9Hb˾H+'O3twE#TmR$Z%Jh˩ :fC17zh_L>mmmK=oaO7'Hh.s[ pI $7iFxДXe0mO åO{{k|x:q.&D:G@Pbddx@sRFgU&;s1HWuĖ5#5xWV I U#tϗHziF<?NUlK" Jpg@deM]cl/ ,8�5js ŵ֟5gzn!)j sXF!lX{v ('LJ y;(߳˾cJHK[>nɁ^bt݃IiD\úb]1Z`3;?>e+cA@Q^w.KW,jGf?Vh4)S�λu'DŽ0[9%TuC3XCسabAJI &urZPOzyuw]v(p*yp ƹ [>; u=BqnYH 8(Gi 0Z^t;}Lz[*9 *; ~M/,o+5FrCz#ey% ƣVJк$Ǫߵ" ߤK :!Xc佫Fo<J%~~˺G'fN0Ra+kҿ~FTcN#GxjVT #C#ѹ=Q1(qS tʣӲa, ^I3 @qZc11Zݦ oŀo`+oZGkϩ⌇wEJ$%C'u j-U@'7j0Uc`E w|e$ּ]Y!-8}2:u/#]ײ~(e9%FC: $4h°s M'Bu+)mi$ N@UF%b:vo�fo}M' 8]2=Ͻ&'-V; Sz^cޭxvQR~9伮$ft 'BO) gW["Y XՋGLrV#{GJFdpb͓1}2q _r1U?mޯe¨(t6 {mGux#koOwz$*<bS&u/k"p9v_ Ӯr<聑 lg$M;;%Zv"ק.9ys``6Rw3ۖ 5O>z8c$\ge9J?)#Oc *s'HE>D/מn^Ƒ<Cp/M~݁`wiRWZTOkK,[4hEGΧ cj�8ܬn7ODRÅ0I`=ؿ&A#& Y9>�cN-uosvtjEq -eK^;hƯ_v]I�7A9$*bbA^ |sp^�RX{;#vtk$ 7ߨYc}9;5;zͺt~Lnr�،ɛ|@FkHRyp{[ 7O#e}&82'"s*H2} qaY;*�aEۛ#g.#r׼LIDOG6f_Ӭ c1ai/0,Kb�<TT:/|jLƏ/a?7aF꯾P-w.v|z4* ]Pl=c_ac`ge)|BFth5i-͈<J|ɬ,W xTxf9Pb2/=ӅW*|I{^ jmO ԣ/[^Hg*_mpo֭Cn6p@KSǘ "G$a TdΘ}b`W'<ŧSvr7{#㟧:yIIz4m̀#�Qt=`>njX+|_~Y7_xJH/@}~*/{}r)wW]hEJ灍 ؾ%vdH,AJ_RHfR리:FڻF(~-ܼd諞'/7dTBO-#"0egxr">编 x} k%osK!yd%6� Ňw֠HYw.D_arw5  !<,l){HΎn@n LkIC +J5gL^�fF8RLyN|!*Gϊ}Vq]+<]%=;*j"y掳IHwR7m5}|OzW3#nC(R<Ia wn]XoеAxԓ?ՐlyKjǦP$,C֡GBaN,&y.ӶA])K_r OK/9EwbKv8[~i'Bx笁;R^ mZ{k4~hQe {ל-`ΓH4-'_}Ojf� n AjYZW79'h%p`#*zIP֍D`G[ 'vh%㌂uSv/*xQ/8&ǿ{v`?+`kZ瑬 x)9VH{f(s)S�yw{cWsM'y&x z5d݃w=ѿ$Q졆n_EH+L.;Ů=tz&3$͊| H_Xݴ55ڬh-Jq<m^Wfpշ@8Q %1V-KlQ%0݆:_w:9?�J 4MA%嵶ԕob<A(ɖ=)c\Azn`)r ?u|JD&zmX̣w;U޷ c[zo\V42?7p&z]lRmN&O/T[%!.Ae*Wl3ls@ܼWH>Sv=J `b\i3*}DD[5Y02Ta )ԘD)9WQ2ḙLwV~VGw9w|rƒ~)r @ 4N$ 't3R[Դ(�H߾<$HE!˲v|@a9:?a2s@ E4Z(3Vnc1Rl.2BڣR.yZ.RoʌY"1njmm]Cg>c &=]] -ڢXX_HM|^;HEȯse/lcc_`&>A' wesQd,RX)&u/˭zN[If?IjlO¬%<R#\Q&ڪ*ɠL^›l?D 7gǃƀgp!4o$p»rVKFfvi׫<u"LD莨M�oJdG4]&N+Ƒ!id u+"d9TCŌ*_:ކ69akm:b:cҽ)ٯ!U?` Agp`d)ay!=;$ c$9fzX3g8 D/"nc",/p/޾xcɰƥ-W,7�D.\+HH5L!j[3Rʷ~qA]/=zvU 2MD)ʝ,sΜps鎨&hF3}* oЃt+ޱLL>0[W8uFI[l)v_MgIWFH=eLalRu`=}r)vD6&#C2vxoRSCƷw }]f(e+cDvW%H$*7%䉹&p!bɞۯ<,'?Ks͗1!c s *̑2$:@].d"hsrY ꩄ{ ?"T@AFjH.@n u"Pwsybw*EF^iH2 Sߏ˜s(Nu:4|FzO}Š'G;bI!3>8O}19u4`PZ^ ({t͗,xv%׬Qقon~ҮFylB6 |y|]A2~&.tNW`Noc~f1( .<&D%<c@w3_¤2D$6$ad]ҧ=ewLGfZ(dKj€2ֹ8#Ea`Z|鑂K/ð u[8/yl#EW@'DYN 8G1yt[׶( Ik PjoWS-q2C2.~q)+W�{/S}sNm% F% Pbvzjkj~$(EG2_>�>2\_ڼ%H9/w|u}nrZ${a)#Ld =;s-�Hv$/1my;N7aZy.pn~^3e6|lɃ1w\0<{0�I+ EoC I "^Qw:5 h Aη>6`6rD''0!<%!5gQ^YЧl _ϺO{C[a47; g[ MxV@#I;H87 $]b>_8dM$_;P;x/1 4ߓn)D1 se`bVATN ŶwȹnFjT}Y(ɕxGm74!>zH&0zS|Ϲ<T(ӭb�wвl?bl6ebrCղaJik= o>Z7\-Cщ;fwkl&K1 BM858ݐSly &a/j) "-͸Lվ N-ϬǑrPfUcٟN '|IX/.Պw }Ks*l$a7>~]1bgQ[3^|:x8ՔIK_ED]9)y3~gnAu9~uټEHXx}4;&gf&pu><X$X# q rbP:_`+ =:Z@ $>sD7o^|+`x' 'R`3u/oX% #{ wXx$gs2,0@۪4U/vp- u G&"E厜w]'p*/z$MV^~Gnif|$k&(/+�ld>T61 a˭Kz";^@oqw#zL0q"5H#$Qg~\.0A\fD?<JHp n<OX;V)OܐBz5uYz\^,_[q)ʎ;c{kTDFpvŮ y˩E!ば�I~+g.S:X(~| }?dob]kΊW0y3:xYO{S<Yȍ H=<!-)z HIw  ~_Oc%k䭁zCպ5M[Ub/ WG!W:SzXo{e!D^o%?ut~x6L<v+3 FԜLӺg?B晄Qwe$9Uqs @D`+ r6%T|xzcEk:6/EMmaiDs4{ni)?)%-%<xǫ >h/[PLRDJVDj=E1fTG|'AHݘr3mzl.a�9/Y ~P+@jxHlFMuvoGf4"zhX.S}os9n\FgzHU<2.Gc~U/: cs]#Ggi E?eUlk7>WC ^=vNȿV"CS:4<փ?=FQg/,uyd/"f-\t &t/U=½q0K2*yf lsklOl/oP /0=$COGR㙻%V]F\%YNM03Q\l[ܜQAD+HB_V^e:EܷpOxj: 9YQT6g.”W 8wO{\oko~9tsNu&[۷zSgn?:) ;7,<tJcn߬11j{<yQbe{,RR%?@ػԣ.Yd{^TEF ae5.)kDחۄ )tMOn=x=G$?YR|4:5r;F=v瀨(skqC8y_<#)ƽ@F ; @*[ݟ*XDt6%k"鳘R1TPnXgO RnHkԄy oۋKֶ!b }4Є h|W6Po%87e#9cd'ˮiE:59mg- 5IMr,n6 gD QE-AڀT{xk$|/:Ck+; X- "+ ٷ8\&d׳57>"3xIlSז_FH=uq|?ƍ|b;D4y dܟAڃM7|̃ {VT&LJ CmI$3 <;¯ e]uhRi>5dz!wEZ5-`ݤ_@4NJjBr4ɵuRofg/�Q5hI䒨 0 _+sKbOHk{"2m{Q]䚫JǎD/<Q f P#5~(RmmAK|iYLj9;P# ^_11Y셯@thȿy wɜFqc'"uj_ww%.֊=RHf5o"߽~Vee 8 D.>m7o6LmݲZ py_ ,c*)&"A`dgO꼈4E$"yncG X܄R~%( ] wr^ҫ |tsD\3g</2*w~ك3/ҀIlRe"<tYΆ aݠ& 7HJ<0G$*@gA6ǀh{d(HC/l�Iם? H?<Ī8L`ho3Fu&�xᕻ۪Swd5R^lIލr2`zY]~~AEmGvEdZnط/Yvo"&}-whyLjN_d?#KqAvR)RͶSˡ.czL6ev4s_ۦ7H2vINs|ff5G#n3\2٪sׁg!nSgr[Pŷą~։ bTnӗ 5z'%ħ36f3=wLkGŕ3le<p^ @,7@pNUz4I}q~`jb~_es'x(%_'yWA*Wxl Q!Ppc!+6ӼOHuVP`Wh$oXb-.*?]={.¤ʊ}.Sm@hQ ;#ɨ]l r㾏0|A~G8v6IQ `d6LpLʛa˞} 7oټpV}{i:O /�P=Z q~Xqr +$)"*v!qafSL5g!#('>?v}~&?Wn@汛OoK) R_H> BZOcb~Ect;8QU"ۆGPWd\&mb>-x#IgE�NƗ'(kK{)kgF/0ji=�#R�v(c*Wƃ(kR2tbߞ~Hp$y?s¶H_eh)_&\]/H$#Ybieo`&eU }/ɐ)^w]S~eȦUXD3\b{KOHֈ|ц4zWoO<^\9 v+xc0]OwvV8PGzaR${ۥSyJ"*N^?Wk|o;1W-UcP;]0M17sVG%X9ys8ܒZ^ꎥ+sDF$e%%wXdTm3Ҙ{aV~Qǿ>f?äηZ{ʭcH#)?^ Ɏ g-EO(͟&r*ݹ6ysd5Y;`B¥&acGl1MLXCpĺ709/׏P?87RLzYZ}H_sR<OڻH)wk~||Agw]$Y2f;8uW+8!m[J<L>8lUhb=(FUK~b*qCJ1)G T$Xi)Sh|ZSmϏ)+Нh$syo 7<Y>ʘ^hR`#Iefi{/GWM]{<Gԓ?05K5"L gP"h̄EC]oZ;!siy䗪0_`|W]kJKWt%^f0|ùKny-J Im̸_NF^<::ay&_{n9 =;lki+1Y2WKqntH?rͪq_ӄZ?8@\AWR4NP̃ї46Xֆb)0Up^]w62]\N}5xk%D_l]A3)j??ben(H\K^U S{w] 2Uy>l5K ԑn&RDSagJK`m@'4M(ԃȔZ{z&j)V[<]xsj9oVsS7irvX*-ߴcI4t\,%<48ЉUEEꦒ[g;5^ޏΗهA;LХeHD6?{fkkWYд'ܮ"W86ַ7+|I<?1'}z'/.=mHUTs&;^:k!%w[8pq҂ߌ\mpUR, h~˷vO;TW̫ޥ}ùXWz)H(<Z<Io9niE=Ayۊ$c_݋fi!e?K#i n$i~wܰ( }ӾrWjA"=3 R?_yn+Y7Pnnxq_pV83*ƩE/ XŅHoJEg4gtOu"`#|Β҆ͳ_g91mT9DG{؉`t>I!n[`?])7~Y،w `k#Z&'l?^w $ S Q,)&xptri#u hP5ӆ_${Dȁa`~K Qvٻ<3XFL$LLYF)g;:|%S܈`=׼ohWY }u wCN4Bˏݢz4<RT?ـ 3V93z}o|R A ~01mdnx`.\lR&V|8 *? ҺIF޺ӟ@zb,29#lKF! jjN!Ud+ Zs3g+lprݰygr Od?'0@w[ZYT9u,v{SrX.V;Y )d?키`%v"7Ab.y 2޹> ^ԣӑy$YܜWWw^μ̥o5X Mqv=HkObV!Zz-FW U֜XƢ2 Z_èҬ0> S[qF]I  2`> sfܰH:λgA==H|n0q;%FҐ#/䱰OE hvm)}"pl0T֟:@g~L)rۑT=)1.zܛ-jvlcXR7[$h83W9"sQٝ hA?KpWUߓ,`|P# ]n,�^T9Uv7LOx.)(_z#e׀0Iy~ e|rt L欳 Y+YZov]Ͼz Q˜F||KXc/)ab͇´RϓFZV'{_@~E,ܜo?zکN>)5sS/H1 d 7NJf1U26(2@2_ Y;ϊixV[vT_|aqB1#]kB_Omx B=ga֏__~r৚^<^3Vؙk#&:y ZIPL#YMMgy< s'znD~[<CHN]$wN[kjt=2G\S#UV /t#ny>6ITӕ6#X͸1_~:?�TJ+-KN`~~5gGk"clʿ嫊Lj$X8/0G y[ a:в J JLRtv*v`9$A3ޘpv'\z~\�ywH҈u0(,`eSyRU8KܺY4q pgGcVۗI_Z8iȘFwS9$F"v8DMX  95ʜ3E}kA5HC!yTiHCa@7ibg:E#@Y`Y5QzLE;Ū%U@ң~6JrAG٪J`=%rI@jHuLoYgP~9=jTy'"Y~-K`tN]EƚyviV"}W2;J/^|FzX=ؗyf+ C %{DvH*WO;t+*Oeg=S.> ݯ$!X53te<jAj n)JغcHW5i9_IPu0Y\jޓ.ymg&;"txhګo-VeZIc`~H#] \D%6 Vw^;ML6qoYoG6wk;kNd}  U( nC[E.H}x^++{ k?P)?MQϟ?cuӢzdh`鴱{7q0&+)}$ #PBٙE@}tp^w&)kj#put^Eҿ9>FFv掿Hv!o'tSIFBJôҗ0~r(&Ktଏ6 H^32 NUOP<,e ֭2o%D ϯ)@ K^~+ns/Zk\Ax1lte"v#44\z͸xMA 6G &lf(~slpդzdPh^6ͻHw5HTВI_}7b4",1,JKJ�BUlqǟ|l%R k2rx7W8TB_0CJiZ\ t+#9+`!3t=]bb}{M{ {=g-{9g#ugNk@T]q(d$#/wCʩ; ҕ!wve�ϱA sQ%{Nَ#m1!R'۷EkqyJg֞vh-H02[>NZ9'z珴9V}9?=\d 4so:qwznOf�45;'a6S=LmYjq[1ȳ(è%| 'Ȧ; gJenm z9 %'d#maqRJS%j/+RW yK?LlqDQ>b%x$_pY[b&fIU"IuBCH;k.Y&\t0h-%-A,9}՛(&;<sY RQDCR(q[?$SR FTЕ7  <^YZkd0><ج)C3>{Ǟ+/B^晴Q}oDWKIOb0jLvdQtށTwaۦBQI(# Qn ePB)($Dd(eB$=_9y{("Z �!#" k>Tqq̻:D̗Zj0zC))qhA\mWKnk~Ĺ'E53NW5gƄldBz*G&憯9FY|1sm5sx3DڕsKul^dVx|-~eŏd48wV<[Gg7.?CI(QcUsarXju6"D;{"sru'`ؿҖw{c51@}S8^s?ֲ R|aI;oRʆ Î(w: \!%ZHfݵqp3/#B詳D-eگ`8q2]>]*3&D$Q DGMBR)d̺kJ LS?~ED *<z4_ v=+tΆh$BO:ܕ6Y"|7}OD-\vNN/Tf ׏DhVlMʴgblDPdM-`jh w-m6Ϣ87 ∹|Z'Yv0 `u"JDN=zCjaL66$T�xI}(]/=FCSgU̫n aHҒ]}sF᪅.[},)IMkK{ȧT|cY+B$Ψ(EgWEK>Duw `.\QsJ% rЏD$cW0 TճnD{=yYd)"%TjjN#eܫsy,wQloAHV_Li$uCv.xnoֳ3luqk'OdD^D=4&z`'ţ"j'5_uSKt{D8e@#(Lm u{Jk'Nd MewZ=u޷N|ǍX7o}oH}a)~ߗ\6#tv@ Du QV4ijz<^PY$sKk;̺SUЉ[DNsHLYVF69gu wwY $5`{DT;1-ՋǙؽ;'} ֬{s_/55v$ߪg^:86s7#r8ٍ3qy}We7eD5Ww;47ה\q[(uY23Z J0}])a^sqyedk gyqkwUvұ/q_:xlB?,VUՂ]%L̕>}`⹚h$#nvȐ( T,)~;C( 󌛼i/\FBwCw D5rXݷ�5 ,3́}Sf|b=.~tي(XԳ :הRH:NqyTBw-M2ЃhjJS/墴ǞmH*b@ xPxKue{h-2qֈtm߹N_͌G(CvNX[avX,Yטi4[)ۥ(|k20v+@YaBm93p-5xx7G=QL'?~S�хŽseC!oy'yC!dB�]tH6} ]vL=:,yX;Sٮ>dv>I&[,v;4y}:p=dEisvF }7鑵eT q0\ /áG~t3ּ뼧H.`+yoC63:"߶ xcQߗF'#b: ^,"Е8r]!2rnjG.s.nI˲Xn]q�O19R))ߪ2 ; bJծ|x[ +?kW<֨ En7$wHW>;ѥU}RTQ0_>H-ߗ4Jgwc:8Zv *\0:X^ǝzTA:NCSG@[oi399.ν1"3|糳tCr %@^)묕n1_{9/xq7{ɯADH[޹5m_P DAbk傑s>mk"nhGO,�Vppcm\~.T/u4tbs6W�Ь͸*H5=`]�pŒ`DU.I~폤*6ˀ9=7kzuʋ}=AIŊ7 kJ+]]` ?z0Xی&6$RX3�exql3p6?iVo'? l2A#g"fy=q|t'`[CƓ ^K :v`v[؝sx/0˝}U'dt^D[atue2/n5@5ڥS (U<9,ЀkXk κ7|G[ʜG`eL%P‹2HʮtKT'*h l<'  t]! (ﺮE>,+{얏@Z BU0Bڝvԕ=oq*˯zÞoH~XTw-Bԣ=s.PzӹHj?D~9IWD,DRd37_X̽c3`\9L(ݻCsHs <_oB77vkMT\{]i Lf Rqv F0tɵ[?~_w'Џl߼78"5]�<rAMN,_D tZFi852-ٴBf!fZW (Y|EA�H6%R;5�սV�OB֑ZGLu8O+V#x`DָjHzkN мtIInG6%2@YBð=DG:4g> JB2dX9חnBhIU8kUF㻑ۋ8>&4 8uu:'g휠 X)Z,`o~ WDVSvTi�BS7:] [=K2kqY v۞G@q>:*.89JXd"ʍRA['BJ?&-*s R]@gs- =`MQ+>g}ꮓ̫{)tEJ/9B%Da%ank~׃=^_sx -6|wClu=D1܉ k}N~ʀ[R`%7ARgL f azgD�q|ͥvFh]40<}tkzFn.@R'oZ eR/wD_qD$km�{> ԹmQρ7=yN]&o6,&0n $"♃BsRqΕ'8>d:"Uwԛv7nx#r٦Rx'bH~p0,gRC/XPbNX`m0Ox=v;;N˗PfZD grVOt"l1gkeՆb;yPCEׁhXmHO5 4LݛfoVZv0 O!J %2W�P'! L HKƏͥ?0>MY?^7)3#aa~Yju5i> GujY;ҽ,r /[ ⰶG)0^ɞ~3 ^A瘺y)DI%Z:*3%?ha/jK_ t 7)Udzn3.Wg}URE@~pxE_|Og`t1-$eMcul/opXzծ6Fh+o 5qg?mjBe4E`ף�U3wsҚiDď#~ACġ>4�ATZ -QF~_˒ cm3V4�;׼0`os6LI'.PR/P}vpJKD-2);}#Jz`dsҀsxw-� m k2Yi ?uDD@�J??{t8<,4A<yB^ga<Z'}b1dnI]Vw Qp3'^P":zA]4N qm:mN1D<Vɡ&HZ~ɥ<nē=eްBZrK{ɾ4ys>yz`\@lX2_o@Rн'IիފXnU9 BOW+!JՒ? Gw)`gz ¸` !!pPAre-M a&ARrzM+#Hh9ub@NDJ\;UrQ[<$;؟sƨF([=AHK I=xY O7YX�_I 9�̒,xчHWEI Hѳ͈raGD [<dލ}]؇svf9hG`vD;1W!3vHMǴt/-:VʂE.쁩hzL7na\AhRUl^O[VE>j?8?,e?1Ddh.^mĆqU/4p/DZwNZt jZ^<ބhNk kZ0iAڥW+;(צuυ{8D=A}A4t=+p@1\8#L_<}Dzw% ,au} ONWws@�nM#YV{K Ueq}}%V}Ufu]Fލ~ j_mtX)iֳ0< WHRyq6 (263FO;@|:F؇? ,(@bWOYޫa .A4g-&c`%PNfe6\nI Zʑ`$&#}<3h ]ާbHM@8RLVt`0~Y�eN\D B2dv6R3ϺˍE~|g%3s`J$HCĶs>VM~<@GU6kWk9_pSd}-D~]u{x_1gj }iDb#j3$eVًBў!ڇ|mi`#jǜH:a/[.žj\ws_ $m{waһ1.p&~< %_mb; L-s5ωef/li:?89vM+0ҏie G ՞[$U=<-}yz`L5[N;q!E2T6�8 OwQ͌n#`Y'2`w&|jXXo_C! _bErDQ^7u t@x md_H΋mKHv61N'foGTNtZ2jg!qIZ#moD?<@Rc^z[jI ˎ" 3釈 ѝ�G 0GH6 &:% y0-}G+boNIYKehIF$coݝ]z|\6l]U�~>}]oNs.>Y 5i~Diy@O8'~w9<3&_u;QI`?] J~AG`ΈTğ'^߁~mDTHzu2touK/Fk)W5ӚSCto <K< wQz @p/Ń0t?|}%M 隹%{8K½co:ג1# %܋=l7*z|U- ƹ[}oP3plqm? \Q{Y&I[ـ0=j K~80NmORY\0M4\dwJ x3ap^ػwϷޙ(|u۷S /RGZ7P{=,}Xr%d`m[Yϲ@־1+&~䞇iŭn}>J3K8v}jV1"u!`^Y 75@0hSR`nk=@w?`;0(/<{[KJLY\o/f Ϳ:{( J @/=siJp=N,; e`Dk{8߳;Ϗ7ܫ& 'qV9~gts,HsgϾ9|OxU`o֌,ZLS#Թ+f*LЌ:1(wADΣ,Vkj&WH_y3mǫʵ{_ֽD(;ͣ1'w'@/h7#?P`F&o@siMkNqq犋 "4 xw= g"[Y>4oYҸnw8N E;G�aK`4~}3ӓ~vƾ߷% `hعjtz}g; c[֒WԱkyu=a&* ZAn�MܳV ;睩xeۘQsVw= .똪@&Ue lDLEO_ZP|\Ɠ ߵɲ qb ?1;y]D,>^͐jjzq$ss0.Mf_5 <om\�9qa "tlw7Lzޝ́ߌ;7_k�gǂE0Z{~ L�/kv 5+F'gMgbI_;G^MSiYd{t,vNkSbTl:^877uk@Gc]'=XAqw^ve K5N.4u !2.OU zUqsRo *iT^[9dLqg0/}:l!P@ 3wM=}18reK #LgQ'>"L}GHI3,�W\b-YE|H�P6 A4{guK>$.[G=gc`z\p^q8n@Pk> f`;;1R@fu0a'@BV6 fnCǀyvtp.Y;IYWy3z.o8誶E7d-_.y~ L̸_J}s{<a̰saC@75s (/ Zr-KW*[hO7;1} ,:&r0 {`QW*ve'#B?JA3**Ətt 浿/ޣgD'o Ύ93;5N7&Btz,}9C#,n�v4_ Ӊ;4xE/Qb LGaܴJ)؟, # ~,oN=UCFT)Blw�Wpx]Oc(Qz8_\S?&.\>^ӽSԷ1_T<uW<<J}- КIIT:[`̪ TeB̥^)/v;`T*pTf?= =#BǮ㹺`UOa 8eV=-Ra� 7\¯yo5*s` Ep�gbPka VQo� SO1u*{Vb6 /m 3 Ydldsl/4pfY$ZAx  V xղ3 F:C84>ൾ XSݛ̺wS}l%/2(8Yga]^ ^QS[R<ᒀr00ya~ڪٕ$%fY�=q K`n:3n}|oEpsj0/Uoj5VˇvUϚ.in%p9ξ }8\lnjl} '|tnh{2sKa,N<ӛ5}S >~-`?W+|�V>EEۦR|/֪!�@ZΨ4`?i [+<k,qןt x5/3M?r<sbc 3;S%wy܁E39]!9TbLN,7=M L_v�-E �eڌ.a|ykAܸ* ]5|wr=u LT# s~G`^)҃f.Y}"}Z6S Od:ȫ0$ܹm)ZƖ]L Z * [سf4 h~*a`o9xl.AA$o8r[@tuAvdrݢ=bōqIxץ$g+ڲb*yOWjpn6Oۀ9嚶Kt6g6}.0uZk<axV'S7K;{aM&?+ WV@yw#1_OY x*nLSޝDN2@,Pi`.KsO ;}`Xu?؅ﯖJK:QO`fX >:<zm{/xOF9L&p_%I/c2L8<˻0w@uQ~zUYZN)3 &-*9͒d _h2wF{?X6}>ï 7:`S[΁d%/umo(ȃ UQwcDܹI>]+=?2g N%?1g6orNz�XaoןѬs5arbVryPYE݂i# **e?K^ +ZԖ x^bG W鮭$6 %+[Ȧ3%5}gt _{Q> ._&4bXѼxisuRf1e.rd#po$W"e r'7J=਱>쾡 ΗUW< yg@puK %-X_0|ӗmLnZ ';'y^v x/OfRuI;1cs}.G/țw"vE'wٙ|RP.x/tr&>Ibr\0W1HN~q8)י G_̢ XrDD Ko䉙+26Ƶ`8S '>xWaSoܶO Ik).w�OGU#'з?珍y=xf,QODrYVz߹=k7բ@Nc;f.]eEAA`>r JxmC{|1ͩ[d-evyf;pnGӧ.|$mȂy Cfn+i^e܏ W[`K~�wY{u -Zہimp!L6e[abx<` =[Ah6Sz�/^ˇ}sU.�1`;V?/~<ÞG̬vxCqWRNN]&ZyofBȬKspogyD4sb'{6cLdX<Ĺ_8P L^%Pj]. pay3icNhp 賗;( *_:k~LdJa zXGyMY\N/q] _+YLm p<ͽ0)+n@.>v` 0::t4xĔN`Tخ20 !a̡vJ}T?dqWiIvBF*@9#`)O9+Ӗnb0>MmkM#uҿMQߦ-_p} eQZp5RZ- NDزՋw삑|ĸ i?^Xv${Eak)x5nOLU`xwΗN^_<30\#A)>ͨ`=0*:<W<:wΙ=`d's }_YRJ (�^51H6O {cNks*~>b&B 0)8 kx(wb&w#oGT$A]|[j٢'[?J)n-*is8_UW~es?D: ݋ aVuq.8<@%R{թ䈫DDs *vz p]]bv v3܃:T`Z0qΦ_OF{dw�]Oaզc>raI|HOщr,q_kw<Wm纇A 9_+=k tME& iL,u+'mo#ø1cEy͋ o]f@FJE.i@Dp쌈J~&=+,lB}esڥ`|SjwpZmtkFpV 168/U:s?7̰}ԟ\1_r3ԛY(X}p]}g _ \颭 ۲>g+O�#a7wi|40ʙg;.%+r QgKm7VN^093�苶(5^kHŋ>MfZO4mo_|3Pw{]O=wGuK[$�#ݺ0}6KY#=~2U<NsL>:b~xC} ߻>o8;ŷSVˊsUǹp>t muۣ ,E G})~ƻN͍V'[_O .#S_9x"t &cO揞U �zF%T&Zqz&U']Ȫ>5̎)K7Kxa~=%Yx.7> ar9kArԊe+Oz5#*`1^cAcI!]#`"y Ex_{8kn\'(u/>`.D.qULhgB̀wNx~܉1x9/V՛(5}#ۻ%ҧ]Kio;<F_xjPsqXUv6LeRlف(棪"_ otAjs[^=` zu-xgp-ϸ ½%?Ci}he76i&mz/cŃrQl/Igl|i'cN^b?G_rδ{V7t_5jh8i?+Nc"Ϻ ?9uNw8po+pߜWNge5ct:%M Gw}%_^Y�qab`VDmo'?tz'<߫<y60 }xa~V M AhYgYg) 4SV ]+SAK{~!|>p^)dz+\�n /X.+B* 4y1{ϼ[ňPʳ}c�#`vpd>ϋ5<,Gmz/9#diT67wkG eY}xeȼ�ct.82LWpl5V׆x^5Ԕ@EL<�,`Nb+'�ϯ8,oTp%0oxw\GvOzoxI8l16[k+{?aFN]Ux)hq~܆%z9Wxh�e1V.ʆ*}6 3;~F7\7N-tw\@$_/ *Q(yx%Q%/l!??fr ͶG},AHK ]ua<%R60]?opj-:`7p "~LE`:xjd XCM=%qrpZ5O=(XY8e~6`the>,J~evLЧ�|VIכ0㪳m`a{RT%|s= 7IO�moN){o2 ,HGhJՁa5kڃr3ʒsxy߿8'k=raU50�xAHuc bp 5?6_S=p2@d_ Q[ޤRe[?`9W+Ws.ɔ?cӟ4�#_`d "wnJ:%0v/cÿw+b6>;t sn#Ri߅@"MiO1<wkk:.ɣV�֚1׼i䂧$7`2i-KpNxuS=̀}q.=_8/CW|qU-RM0o3&tl`ܓ-i> ZQYba.-)?WܞqlUF "o ܡՙ.ǁĂ i�<i,L̈|%s)$֟{[}9V`wu �.Mug0H5V0eD|iVF{CZk0o;?'v�="`)j_a3}u NݕE{pu= 'ڂ_b4JǼM6X9/\~Wnξ:-qw/,oWSFz5Ӣc9Ώ}e W_miJjQX7s1H %\c٠*7$^j~>;2ֻ$XRW^?1͎x^+95ɪOҁW|F^+"L,ޕ=o>�OsQIܙ8W~_.X�;U߶ځJv{�\W:M~CciPjX1@o;BAb|{=0i*Zs#BQnn'G\5{-~{߂{t΂|`X].\9;O7ڡ?"^׼hI^ | qfâ|kˀg Xk|r0OLNp߇<cO9/gŞuUxN ݿ  W5Қ# p2lƞ{~l� j /K5sI`]R]Dh/C=A.֤-W+6xd: _J6w:5۔ }`iy0ys|u Uۀ"/ o֟)�Һ"q})y?ѹOɿ`sFp.yΛqr~@_F.${ΗO4N$y)0}L�_{vߵ=¸O3{-D=j�/@^fY%OՍ{{TTęUʕWmʾ0i?g> :O u$>7j}J:MV#LCU&9ܰ4߹Ğ&QϽMvED( �˰{ k¢䵻6\ZS|pFc#L8t&;u zC2!΋==]90m8N;�֬q_9vNg}xՋVlLjsxGCOiiw<XVUsΙ2ysXUW*T@ts&r6\@8|6n_΋y6/<�vϳ\uZ&}=Voz`MLK~vL`45FvvԽmGx.-̟ݷAdh~{`AOd.zG=Ÿfݲ#װ7JpG Oz&Ϳ9 w{>˸Ϫ5;=�Qjm?C>5ϛ~;wKZ:'a->&f1l\z u}`[\#77Ot9<s'H!v@gYvOD\n-9:{lԷgvySabŇ ́dUGxW] <ޝ[7`8hƀ5*s]U6Fm} ŗ5˖0#w.%I/D}q;5uE0wA~uWTp[}DJ͜FRy7VV+H,Lu,7j܋jt?[-`E.?<oVf+j0wa_QÊ[>/LCf\ūl~ l/YV;^~畛C+Z2ޟkt &Ǖ[^UL6ۙoIСf}"]|;e3=G0wɟn&BW*fw=n SGg;icJƒW&@ҲRgU3 j7[]L-aнXc LXs}$Hhg ,cQ/Ux@0+q`/'レ'4=4vRBv4^E⭒#{\4sw nu#pG-;ϝUc^Ͽ< a,heo=9!ѸƸS7Y9NV}_>y&qɹE@T|={Xv:lYR/my $V[VWO']L.$ ^Vc׈3wwxMٽˀ3oONp2fhفwXc"8(�yP �ML@tI͍-xJe'WF.~_6t3 f/zk;]Wl̝߲p=L]e¦_-@`%4àT `;9^[́TJ`?B?"<u]zu]:3C`uφWct|}-P?=xJ_wB ; ~Q c?٭�CSN{D^Ԛ~9݊U")=B]J@l&n|`|%eg{E@4z+`Օ}0 |O~][N6&�vgR:TtO}g&Ar0vRi-'^/|&: }ٺZC^Eo+ ;]Gu}zL.|s,cG\]Qx߃f0 {bx 䄽�Ʈw-hFa+|U ] Yߌ~x.qz|3pī<;ѥy+uT;b K:|=b|0{EbJR{C{;}_Ehj�fA\6 Y嚎>pGx5Ide xRRE9m0O*P?uV02[ki mm8ֺJ=;g7{z0{ģ'՛_q>Ĵß4\yv8x5Y300,CYXhء1JM_/ ۪%8Ƚ]غ V Wa"4`.b=.3WC@RYvv\}Sm?�o{`i.@`~OZ#.;;?x*!՞t~<ClbV-p6}|&ZzͻXq]oe<9ltKtfs;{Ʌl7f7-: x}WjxuN\cie5 ZnD^( 0*v^uoo B`֚t`⿭&RZ`i|vXy8j'w7h%i_TK~`){}޴X>ONEw}zwWh>soyQ7@罽fU?{Ɓ58"cn-`W\%&fL*HEf Ia *JNOLW?+.>W( L>aWbv &3o͔DX`^ [MŮ2`;^}7n=f|@oYoܶ~qb8)Mf1 P2s ɯ`7ߦTEM1_ޟ0P^?Yp�H~Y\Z VJgY~yEkj.!sj~_;8CiwXO>Y#J\ }zY`ýatGb&<˃ӷ(k; Q70M)Z|<*1vdQZɅh'~خR\<7FIM^تҷEź@4z4$;/y [_⁻ `O;}A}ܷ+~7fS2@FIm]~!UN1&V^S*+T#w<3DR+(tL[yM_ L=2( j "[}!5ʊOa*G1("Gm/[ZW)I ÿ9O-Bxg?ڈ˿N~"`/~HKDyoN!f Q/}}*صvz/OIDҹ_ a�JlD,I>ޖϷ}Yxly5HApq~ڗ b Ѽ 9/{ZY#kjjJ?9qe[A7ԗC@LW ա#QB NXJuצ? qQȓ4J'0Tv̺ow ~ G#@da?Mn&#EI xt'xjWAKheAtetuDՠ: 2]pEC*"δ8xg=DZݺr9H_kD|5f݊X]q?FmYތHJ( ?:99e6L ;eB{#!aû .-9KBCgmDYHl}6(>7Җ"j9NV3 "WlQ"BݬJ1` 6,^j/@Ooqllh#ҏE5mBMCCʈ8wat--[Dp \17*{>L=0eQ y7nڧwq͉:Y6=`*o7V[=ӛHa *kc~6 bf|րd<m$BzR܇Rek `+ke̵GZ bec麏G<ܟe̪1CYm òyr!1Cx4"݋:ZI\ Dž/o;WĽp%5QF<CDQO(v|݇mI}уdٵM3#[-DZUvDmo3(Fԭ8תn|S1g7#r*H~|ui9֚0J%M6 $T}s .}o+r%B# .~#DxZ<l{PĻO&!҅ t]!šѢ8[9#L?Yw81 _�W=e0(i 3迿u`&R,>j=!ʐb]">(}]wVLWdA pbwY .P?5ߓEnT'?"[Lpo9]E@`=Zu}*Wz,5mTHZ W#jq* x? @hs;SiAڹk`*b8WݜFQ^^ fe<GS!|[h.Qe!#ci A)h\1H8<G6h;>WAcxO�?X:m]`zժ7�0jeD|-%v6\WAwV#R%G}"ۥ5KQ78E$a"eaZNX$]SGD2Mɇo3`jHeR':pkL8AW7IlɋDIԩwLKAwYD:Яe" I.Yś<#eD9vSتO0 J9[?q1DamD&6 w%G`*,K 8S-Ƀr2 ~ :`]  ~.uՈ<~O}m8F0u|ccw,YtUj6PcZ)�߂kU?ȚHXn1Iff+N" g"̥DA¨c'+_!- >vyֽ !_lk h<&LS##'W!rqHD"n!Y4H ʫVʆ)᪹pE@^ZD?x&F6BWiMu`׊Cyms1J\f▁Ohpl qu'͢ sAŵ[)iVB=O-մ`jv ru>ꫲH:wDbދޟ9sPQn>HY*^ ReP7:6SS:nH_epܭcnEtC$,Jw@b9kkr~!\Ng'J0Q ۆd!<of.5 irL); /'uIH??82]!!?R?/W戻*v@0=t3ƭy©#Y4ݳ¹}(#1,iY{ +Hzz}Y2 Pcp݊}I ƕIR|֭j|JJy KzY(DKZch \Zu<kʷR@l9";v*g!.K[H~|5 *^E }+Df)գ/ÔF"X\+qvi-mGy?" LStz^ooC<jjٽ/0߸(8|U0UO􋢁tCTjћO}처bO<-0=Q~Y $چct]캕|/s DtCq>,Ho_`TkmMi "^x}kb&d`/pÄ([U `ʴ~uNM@ci "7*a^T6�¿l%9{oTMI4QOD} IkmK{J3AևԸxZR̍p|{]oa+!r4n|w"̩V[uCIΈEvI5}Wg<mw[!rȤ_GE^�TARAD3<耈PԽ@IxGEmG[FM?!"cuV>8 vskG;a8j_ iwr~*" 7 =yxx/{ŋu/51H覀K[0ߟ^LG&X6ך|ϋ }{*s�F R0wUO ^hwWLl_f4cn�}oK:h-Y$0 f�Λ53n\ Dƫw{Ҕ>5Xhgwy9ԃNh_"!ݳ;0'l#KϞ@H#^㧀H-mZJW$X%!la]⌜n>1DץE.!_AzdB{os$mlDT~~؋H5 ٿaH ُx_'Ĝqkv#H~sgv"d;#5"zHՑS0'`#BcZMf}IAD[[=$ݠ$j#鄚b&pe:pkpYb6gBہzDXwE&U+@zۨYbDyKHw/sϰؾlDx\-L|!i۲$oo&"z0uߺ7<_7{V }0,1[<cٙD?bu7"fvMD93g4"=Vn@7)lnSjjrvD.d6! _iF) d1;nk{QZFDۻ)ouYD v^ Ѽ){X-e #IcQymISZ8(eċc7ZYQ/)GZTqG0G̪xPO zG#)N]̯{_}_, V8Fg$&Q?S*?g&Z;!ћ{ &L-> Ӽxg{:CӅٔ+Dp&Nw7TD rI#+ΫG2{KTe5aYz0iQzk27 nf4U1Pr|L-\쇩^n.AWUK>HkBU}G. گ#Q$cD䙘UB;<Q\QDsr< Sk>\S^˾Þ|3O!B@3^ʞT6>׶ 5'-7_Yv5Ay3^ᚱr ?sD,k -EщITUl}x9m!J8G}}8G6}>H[k xQ눐.(7ybD$0䛼>*Yt\)0*�tH_[]s(2Oy-fF!f_LDב1W쿺@",T@T9v#ٝN;nCd+n`W.0>Qv:~u_<czS= ax6zku{R`E& LyivʢSg0̽0B_UHŔd{!</<t"EZ>=tV5^i4ǫع"RฟK8t@d':9pk]"njՁ5?4\s{A)pQR-欿_hr6]hj/9:�Snº 0Ryy!fo<ؽ{R:p>[}`y{D7O VAe]Zg-Dy7l||// Ab+1W9;<̕Y#~rvRٟDxh^xv}HQmky#bZ"'H^,} }T Dxڙgkak'˞.!&whICY.5:!yU D:+ݻMIy|"iic8})-y>Um>";P&ԭ3tѩ@ΖZ}ɥ&OJZQg}({/B U6;f#)7wQȸ- Ż|ɸJ q?'4QOYi(6^;L - TƏ $;¾ .8wGRb1o\dk|DRd}<$m۬d,5Hj.c?؄}5bj,I|%W`MkEH:#pV"Ύn�yC>68(]MlȧR5j=KD>chtg#ef! ߾C3C6 "tM쉰N{2q:"JXfMGT#wUx-F1+ F>D[_a;"e]3dL?;$-R4Q6Ϝ 曩)ݽ}J0)m_ܘ!d5/#52&Hru#"y1` ugd%xm? wo HfKM(}o^[H v^hFRR6a|U$YT9Ww|sn?Γ^/ s<3EQgonB +eկ#JFJ=|izD^oуjGERU?Y8w#^!w1D*=9$cMr4!ک=lcOHAF|sD~"hf6H" RGl| . d|s/eه(Kӌ?#cm~ʏs"jb^֑7>DT:q.GR-ٚ&EHHP?sx<px晈FztsCDDp<)t Hw(vڳp2DAfm7Ccio{m6"3T.,CRܷ_~ w8rp}q G]%㟔%Nyļ2zFٷ#)5ԕeь]t=''{;˔5ƈ`z/hJ"w/D֧d5ޖ8Z/~{Ƕg D"1Ec {:~A+c"Jۃ #XJ$Vq;h'o?;R}`S_(;Ƃ5H"Dc.ֺenȭzxf.q}>D<*+{Q|_fTDu}Ψ QDow"ʚ‘tES$=WMB,l3@4q}lW>_ZWD}<Myy <eڌj~&Q-.x =XBdAaT˧LjSpYjYZ!" S1�oH8󫐔K^!굟1H-.k3[eIiNs7Cr?e\3z$t$bfnR$}֦m'5JQt_!RY F /P)~c[qh#vh_KG.Uyl=:Y "zS"^$5y,s{ _>E \oZd )HW%\ržZH\@DăVD}$A79ނ5K+w HeU>Y6*-nW?ě3mOΦ8M F7V$|ly=L̢P7z'^QyQ.@4:!&ՈSx=8T>x> }2deW^J?7F%+[!JFAW %m|40Is;_F!jϩ'5Grx" Jq?_ 0G~.߈hGp)fO22w܇(3皧?DZpHaeQ}}c"㘇磆uΛ0SD1sV>R|9m{U{5>V9E\ OzhvH!r]۶m'FȆ~Df5s1V$el<j"'|(iJ㣏!ID|u@""k-Ј-nDS}C^ɶ:z ўs˞"0}b;j~W|}:Х=[jIͽz-`q>"YHڙoC ҕ,DUUj@Ikiao*";SԐ9V%,!Y?9%UE3(Eb>ٽ}+uїKLjJH7W+nW~^Z {7ŰܐsBaY8iNDOϧ;4TMfz$9A0^`ih[,_m /v"K\!,4B"aƬ^쟃IZ rsAǫ:~x ï @'Fԃ)QsiJ$c~x"o ~{6ϢND>tƙH*[Mgu6ir!I#HZ̽n3\{A6GTŸ{ ATӋ/sWs{@DX8;QRo]ӧ#⧒ i=[#I߬+k ,_h}(E 5dC뽨_H&^imuD^}m1y%t>nAT ٦|;z8GDV'w!҇5Mx,CIٲڛ]> w)đH^6ykS!q1_H5eKDf: ]˜[H~\OQ.k0&"w-gpgWΣ=]l~շ+ii;%H5u֒7_"v|A$bv[ 6"R$@)ED[<VHxbu;;3qux?<SH\yضjt[)Dڱ3|e@en[ew{9̳7t"fHZKqۛ(3LARIm+Z"jn<�ɗn6@W"O箽VoA\RZ9U^$`-BYǞze5QJoԎ ycxns<)FR3%)2<^+FAkޏ 1gd՜2QG2/?7nG_ٍh Nv9(bCvb s(gRDWe->K僅W0'nsAFJ(?=<V&~@tnWZ#�мΙ<%A2&GonRh9Y9S/QTsNYU̻ĥP&cƈUY9<7 ;;\z\x1斁x~&5FK8G^!9ҏkє;楑rcn]eDHA=/TYػV޹8 ɬތ :G^DqB|^;} eH:fn-Nb/D, "AȽWudQDz!1?|ÍS했4;IIm8KEK_Gҋa5".&$z26LW-I&h"ʋe6=@TYF5O2~;"/ĭiD`߾/)I%-FYyF"2b)\ & ԅ}iǽs:4l7Uݸ. v\ǜ`<5&>/{JI!{"Ӈ_C%NGRa38o) "=Q{bD2W>ًHe,Dn,} 嚒k&FmF;lye^4)QH8?F2Ty+Zɻ5I6D]v~j+87gmSYWڿ`_?'<Dm0G4oJ"$rvw7"^7u0Cps05S Qyc ;ujg1CD-u +=#=U-kK|RV>ޓ͵eBD1A5券9a2C +xsڈ}VƙH^5=6*m-r`w6CҭMeke#ه""L|,AęK%%3KI3_"Ӗ~&]D:}%1ȉ^Z&ឋEˑL{SNT<urUfI}v5?&[U`[Dֵq ch{%~#"̸h7uC"ZO&1YY+lD?Ֆɷb/~t)LQ-ރ^n! G4>ZG>/ncm!*sQ/7vɉpY8sj+"P hZ'#Zr=Q"i!P9"Yk>% U>D6a!Z_xnUmFBY?N<Y@sBDf@Y?@2rz\CK /~zPyr "l{;IioY=/JDRJ>fc4,@3_)8 ftƝ)D4Q*v!}Do` 6ip R+nL}vU6!sF%`t"ο-U x~%MѾ }܈Hۚ\ zQJ?yZdDh>.P7[3G1r5 \ZKQ,qN:uHvI%퉕ثSw:ȍ|&掓3o�MF"%a/ڡQZ:N{~ʗ[qE8gKsW#RAyrh-"[/1̖Mm!Pe9*H&<<;yn-n9v@+[^H<vgxŬu$;e.ڃ}OrO"U_Mzn%&}3` {=qds.tYx=o3Q,Xn $TbD1j+vAPGD>|ͫg My.νE~]܌1)J /T2(Fa\HqDmK-$:^'D5>4OW[]�Vs@/$eQ3V#Z }K칝2Eî/<]yu$Σu>"w.=|V <\)Ѫv #65C((o$]|=,zRp_ft~;&Hf|e:=N EVL"2$M.duD=qc<$v.,I8Qk_ix}k6"{lND1՗dyE`AZ7ErMkN@T<ˑ?TwU_;2^"^A<)$-,Ju )>j0irx[]Kz[i95gyg+M5C[ I_ED}oUS50eNnGԮQo!DE/*1Nyx\hFc;et/M8BmJe\GH~Y�s]Ɂ f*czށCH:/!ZH~t0jmU>E53*\}k ${5etD<LKo؍W}Cב!E_2BGrY~#nSI&D8_?+z<KNr|T@Nδ?wXM?œH4sH$jFSM D✉=)Hޘuf罗lDDcƜPz$T׿[(-Wt/9f_?٘3[ BԦTޡ넕zLtj=DZ9ؿOĻ#r`'2@ g޻_!iR`j#D٢`%/l1WBQ!�K_݆ <䗏P_y=p+?5} Qbݩ-xQ"ʽ?bc=" /23??Yl>Z{Q -g/ v^F[Muc"~6ϮHz2iiZU/T=˘B;w"ԕWrOK5"m+�ɨl.OGĞ쫡4q؃L"BgE. +ҳ>}ntea+v}6Qo@-3O!mQtDyje։HkN7h[ENu)krJ!z?yRs�(Mɏɹ !r S)Ugi(%{!Je Fs O }^x*s+m"o'i^Ȼz 0'nzeSu>s=*<{"LZ 7#bÎzD0O&/(dcm{w#7comzH <r[հI=S39##?w"Zь\Djo@4ݮms u"*[!$z[A^}/ߴ1"߹i-!ͻeB$cFJv,@di[]d!ʟp'݉k&Ux; ɥ5%!馥8s]NA27Aه7TObI$N[** ͊D(7)3>DV]nW=K"m(3<dV~m*/@ce5n}Y3"푴9X!raͭtV~Ѿ?}zߟBD&.tpR͘{*E IG|ІN磪stNJ_۴g={"r9O"ι=~�ɒ=# "WqH,!rӧ0{*}UBr=M9{OξD~^B@Qfg5BԖ8/Uw0wt"-"[tɮl𜋤: kFuw,\n2E"6{CH6 >*% KGӨǎ j~Zm\<-0)}3iuW gNiW$hΊJ$, 8dzm$&uѬ\łb pl>Q]0I;8aFkz :t{"% AFeF(Ow^:Q2ccꉹRs; JTÜ|cWV ac?4*k(h)Y.T"9wvsL*<{= %5!{޿,=Ѵ'Ar߯aw̬fewBO9>,;�:BO`O(SN U&z("zF2IDzꚞ"S~RDY i*q}նXP黧(m䑚h47˦=irHhhuER'1׼dԡ{KaN^dFQ}ѠOQO>OH*y|[ۉ6!Jjމ~DY^QVP}y9."M<]|*$-_`oVE!CMaH>SY iF~ km}< |9#^/;)i쿌y羨3"V>xqFIB ڹ5Q ߱k}m$+ǛkVҝ,c͈нD}Y |K1ĒEҖ]3Ցjy[$SaeLP?`(7-ʿ/,t]:' N`?A]d6q, h_ Y!I̝ x3oҤϫ�E Yq߹<Դ$`^\b4�k7:ż7]vQsF{ar>:?;6 gCR(Tr]0*4PI^BHA EBe(I%JHJC" e{~~}yzLjSkE93ևO=aNӴ3< ǿѬBAx[K_~&jDp\z8 GAR^zmkygW�Qf$]NxV'hg`>9`i/^T�GtV`L8><H<we0~pů˹\ac>*r/ �_D-`}.}X�"*;9@<Hq ǀt՞`|M-p|+aH@7fldfN!b`/*;QlXo./$OL\% .s[t9P99L~s>g"orƾ:2ӯ[N 6`u+ޱ~.Ox&-%Nʌu'piVC R�ۿ)qɝE.,`VN`d7קi m/'J@W8sZٵс0=|>~o0/{ X& pD|]N.cKy=tUo'˻G_>1qz;gMT~V ),+WAI+ep][zٵ}b�xO];HE fdOL+�Aՙvm yNU= ޵sLӁdScYiaέe \DYATȊWnm8~&D hc><x˼ $ 묀 ٛj{qq㖯f�ГpYyz_=yIǛo<g3*'h&Lܼ|b}4sF2<ͮUoy e<&m.~[=;6mN{A|{UY'5 "7xHLTUXӁU]&0O|3'p-}QrҧZǨ{34KSإBMY7 ?@^N3X_\EM y..ߓKM H D bn0p.7Y?FSiTTv=9t/GEE.\Aܧ?ͷ`|ɫiϛ!MkJ[ ͔qѮ o'�IDwTʮhT"׌rw#gpO߷GASg/= t}k`rl.D\XVi8tEwo]4?;`\c{0 }7MMYNQzUkVD{�WJ`ͽuF8?N4/XrPUL_}{tei/~x$ys;B@:v={%+#+=Y>]"0 9{fI!p{] mhY)=ZH! y/HUM[R7(ds V~9ҥMl>3ۀԷwj"'_44 ~JG!S]Skk}@nKʁߡNOpOu s6/KWڠ:c3k#voݿ u=(XxlLt+#iȚ5O\>D&Ĭ,@\aRco`%!unѠNIgߓGJIM} Z .iB҈$Q;9 Cdoh$ـ3_/h}01abLtDyb\FeƋ75AP+&&눾j'fD[a?쏌U{ ~f ॾq -l?[3rqC O Y?t̮LKB?Hz{ I{o*_ILY6I@tHplu^І ߤ[HFK gzM.ʖܐQ|fH7H%MʀE*H n%?H/ ;!uHwOS>FIb&'80Ѽu_N޾ۏөm% Ϭg HltU0Zz=+U?*ݳZ7o&%OGoS^ݕAxJ/|c &U,1V&[GAJk`a[2C7\23�f굾܉N__|+R56 e=9b[(IɊ(zmuiMsR6-8D!tʤj"yw{ R{2):*ϐ:ּݜ Y.;#c=~4D6i'((#fBP(Ҟ$_FeYCL,YdJWPv\{i|Q4z O\׳TDjQƼuq$=YTIA€! (reMH߿Qe*%;k'D6oIQNL dE(+T: d<zz)omת:5<@~ea);"wu1T}Jv gwLb:8iڳˏԡ|Yt(|fmcӞLiBO;|TYJZWӑ6|sG#w_'֛nS+gQ桾{_$*4Jx Pl_thNѩT<zɪ,C=O2QNMqH]0z R.'r|L4BxbW7Ҳ<7vO W{A'dIB&ZgDzhyH<4̽mX �)x2ך^*E9͏!zY4<͍X3Kc%2.%IH:TjM\Iuq! Qpd*=a7\Y@f tSEj&_Bjxş@ǁӈ{a6~?yh˜j=ugF!s{~̤/HQg$)-K5ׯ={R D uy �q~w k5N<{m[ɲ!ɃA*PUj?6wO>](-yhg^;*x2ksH[5MJiO|՘W2Y|z [ܪOTBƉK [yCHS,1R5<[ "(m*Z2̝R<{?cnO$mK{߁^H9b .5Bziz(e/~ۮk!᳿|bks]c#7ӌuGr9ʜ)!O8gLb n JFT<ng_D Op z+PzRJ O/E'<u}!gld"]A D: 9Vú׼=Q^ҺM ,O|ft;%}M�|WkF'}rU%溲ԃPv!]:v9r�[#2ݝdR^d?\ |.X*;J-yvo嫓Sw6p}ykWgpnoxtem1YϮנhyITn~kLIå{+۫zbgH&%-K,+( M/.OA4tjV}-8HH_xQƫ;QnY"?&;W-7jn".(,(͑Qd)2)SC 7 /*ϙf3L<)n:H{վZG+AkP՜s4ݑz,z$}J2Ҷ}ߑ8ED'\%.c< <nT"s s<݊8#Y!O* u,AYJ `_*'՛\cH~ :XG'2|3A&ô Uh\mtdm;z,aC OA 5/7XCm*=/o0#5tQ\WZ"*֙_ B/ۆڇ@xL+g #8wM{$"י_KEa orU[E}",a7_xO#)#ѴFbϧSk4 Y)k]pS/ jPېz$WM?o4iz<\ x\ 2ֹN FF'a~AzFfʖ ZVIEEHxu{}cTֶ xpul: &[_AQӍ.񪔲Isu߭-(&a9M8'ኀ꣡H=$q&*ޮ/T9 $*S_^Wh۝ {Vh#<= ^}F,z GjT2:u_;1F,R\S)6U*4‘9Kן{sG0BEVDiin-W\?lU۫'eFfAm׳ *Tf?{η@%r~TCI cqdD<l'DYܐ1Qn{계ڊ? '偰xQV>%?ÀybR˼mϡZҏi6f/)tj(t nDD_]WŲ$amd0giX|) [f~Q@KF՝I H26i>1^H]/FA#綏Az/ZHN("<hh |A:RG&!mSts7=|'-8Qf7{Qq�,甦4$W..` Ӥ)HFul$}nkۜѯѕaG ?H\4/l'ڛ3bǦg: zeӵv8<p xI^_FjW꣌o� xjs8˯Q]n0<؝_^ \ 0r)}R(:|`Rl}H{>c񪻷 5H^Q{Pg/gڎjH zu+ZaΉ+BP=]a~§j=Bꊛ)B\;L89xZM1mҗjb2ennw\V|&+fŎ)%ezϲ9 U^XvE_ Zd.ipvr^S&i@o"[ [lIFeHv Zl釭Y[s~3 OjyFƢU~DjUhr#B^~&u5fxZn;oQ`}q*_"[v:-w&ӮցxK?�}`w,nמ@߿ 8J^J#}ÁYxn}jp.\y5XhHa[B`ֻ\4qav.`5]qyF]ֽw̦'X6nޟ/Fϯwii?RAFd'2H.!A 2=9@p죌p Rs RY)ioE$1KV;4R5;�:sn1KNJ[yܗ t6@YȲ 9RZ{SjU#M-mu-4Nxd|lq ޱiu 'i*|}J最ioH2VrpԽ:͋W{|I-7#�| hJ,7AayݎrTYֈ2cgW~(ktSDJrj(9;CeZ kqj讠KHo:U_ C, E+!$'d9q46V刔Y0&^>LňAV[FcHխi 9Ns-vHoMd_HgnPs"C"w(is'&c, R3:.m|Ϡ0e Un؆䓥UNxm;? ]ǥT̋;*KDo^̵a ݲ?_p%Ͻ0xnZde7]\g{xjrfYk98K7Xt8r/kXݘY1'[HYūs%!H)y"CQQ;20?<'R/*BƃIFJo>HS6UB+:"GһS#m|QV>$[B#INP6ƽrL_&o"o U'5ʽ>`I e3m+\;|<6r=fodOdN;'iç|--Eg ݋SD U * D|bJ.Z_9ȸsc}|?BEgK, <{ߴG2/=~:lQ  *\9ϺcςÀz^O!Hnw4eoxR}墫UA(ЙBbzC$d" jlui'"-0zIg{1w_o{Y4AxF,~w \FwxOgq% ^t<M>`S+̱hŏH+uxY<W?gk9#V;@V_'2 AJ-;ءκmAx~x1/%}ֵk?W`huvBϑUB?'Mk{w>yDh@cmߑ.(I 3y- @왯BJӳiDYDUi-m{gy7 AsndTgwi&ރ!杻PVNӬ#6AeՉKӪH]\e&iT"Eyir ҜVW"ͻfbȗ@TU /|zJCQ@y#.6Ϝ%ń/͉Z^4LQ։H^ac[gf,;{.Ov̗GUqH \ٺAҊ>ON#o^9RUCv@>amUg{rHMWOe(OAUen- %->).@ IC%MX?¸fnt)&mɩjD~GU@8:r +Hz)�$֣gCG>gx0L]A\e./PFߥm(00vsO/XHڳS]vۿc!Rw4N>< Ic/${'\}~~n-HZ_\Q+m)wmuAÀNs^p+k z_(& !~ɮ?K|g%inɌ?%|U p[tIs"mM&Y@`Ȓ`ٟ|X3^8kCZпC ~HFi"NÄ7EYWpFWyJ$s'>^Ę}ໆobʖMjwo>w1HowVLi–WP%^"l)V El{ 6b% co~AEF'7Ҁ_D?ÎWؿ6:\ouO$xS/ocH9;Sa`.{r{W!űcMllH˚5tǷ+R�{'}Ȥ>o۱Z!RF5B.10 u0vFIOgT< =wuQ6+~u7ot�.4 !ҁY$. 5�n>NqKpƣ]NCR;oFJGfouٶ\>~�I歕sz#ǮXtUƃ~Q8-?>$ EsrT=)&D @bm}={KC$K_�Cmv/DLd[g,C0eqBqY[+'-6p,t-V,$r.q1R%X}wod+ti7"2g5o?FWrnfխ tusZZU3>:lK'AAX\j,xqk^ơxՏ-*i}2kUF##;ьu> (}Dd{> NAF'=sVe1x} ؅rtD)H'OBr- !uA'9L8sIch~fHby&rY:\4ݕQ=-= {Nj@$M*0!sp6D )˘ Oʟ/G{ϑƉξr7Ss #/=9 I3OɅMH ^upf L޹)$C] U=k|w`~MMîz&߀Ž4yGpSEٛC4agi(guMyw "o|]jU`<s*RԶ~->{Ό"8A`pa6#ߏ瑐z>dw;}ϕ$ŀ{AprS l,l <wi¨E�lm DW2$ݴΈqCL-tV>?'Rxqk roa�,$CbT[+{e#|FRsǁkv?*==0s DGz:<?o5'iEvi 06|}5nW)Rۛu8?ƩEoQbׁŖX^mҋ;KF 9ʖ5#ٵI5ߜ3FttcUyXpmCUψs^4??'�ȴ9-D_' G�f]5nr 9 <Q$`;!K^;i_FS 2X(> 7B?/ǂw_Qwm+Gpl P"R1.ns#R7>^ Δ7fMvӧ!smϐ,lUoAT{_0^2n8K'<,A ̳n44簣%<FɌ w5%~'Tp(|/:iz9#3`/ #?_v7TlH? ]5aed~S{7z<&hA͋n7|qhoD1ǿ=0=ڪ=lԍXycĺmT9py#t͂?"v%y\?/UƼeHoȘB=#~mF1[/<p{ eŪǵ@:ћrrJ67+>yx.p_PAqHD7*/CY3ɨxLo;k3nMjz'(?ÅfWy?\A2{b(|ͼ[N-WAZ{u|CoEYrj?j5Z\hB[5Cg]* +x#x>xhZBۢR=lM!) C¸ݹFͻͽxs>I0rٹ4xZeY6Q R}vRe|~黪h_ek`<BzGSۮ"eXB\8Hco]\[|0qԛK,>pw>Y@#"%-NV}0bw}s݉|s:Yw&?$=zKݽ_Į7k]Do ߴ?F:Ν0~Ѱo33}jcF>0~@g~ޢ6Y9Y08"TO1#<Y'v^~)2fږ_ot<.(p{5 7!=(`p 0_7 \m%2L| lU! a6 W li*ϣ,5\nz-PB>Tߡ[e`GXȸ՛M~�eoJV]ٮ?4'ciW2~1Ci>[qVRϛޏ! s~ۏ7|.:[_< ںv5 &"JI'@87vD5a T>+@?ա?Dje$ G< ޴V}H52陗SNF BQvɓE<ԫ;"-)PJ|: `\|$K>lO# TH=A(/c0RMӏأ{F� i'3OD9WR@۳/{I?9Y&ޏ�^Gў8Gɦ vB֟PݷZy6|S[?BKT+MH֛f2>LT)|P Q{\4!nyۗUI:^y8wQB:p־՘ 93 bHmZ] :Ӥ?eAșy2�S̹vҵ8ʽADӇ[>JDzX% սڧ:n- <3e%}?"9s# m`փ^@,, \�G%]w'_ӑTE1 |5H r'VڊK塵gjժ=Xlw2pLSەꓝ"9򺚙.RCid [߿{uFy?euD#0W/~wiB(y1݄ Uʷ.`Hˊ_gPErc"?/q‘\½w=!d9%4V[wS=Pf6GIkS6RKAr/R_vYՍȯ$-ud} ZUQ{GN2[ _r2RqJ ?_MzRN+QEͥص'kΪ.uqr(po*k[ 3 彅0>6&$LThp)af_tҢ%G ty '`_mV/g#M_N39 Чm 1Xi6h?/ωm,UW+yౡg%eAʭXglO˂T~엪H*gh8|*f9K$e4yPq5GCKn{[|:ΙzXfSb#uբd^hD;ڢ; iHiU 32pn Bccۑo]Ax^V&]8H$r$?!!yGwLJ6;#p^>A 1 N !ISyj<zYd\+$7Mf?Fk//zi^?l1|o7mV+Hc1H{(A 5_ L<3/:<鎅3=`d=DK-iz=C+Rz'M#-U!:L'<΋v3p &'K}yqCo@F[R×`)Y7MeOW# nS?!*4(,Vo xsg+]C:z敛H:Nvb&�%H;jrڑ'0$8nQVW[AcY+[2�o׽:dofc'aX&p޿Q#36I7ܬo!ye+1׭ "#ALZat e02o@>C%_ ƞM 3t=.}.2NBۺ(33kvd煆p64xwуuX#)xc)D<ς{l, ᦰf7ws`媻oDDG)9E l3l�_70cDgɒ9l]c?7RCL|Y?Y[~v3j\Cyb?~ޘ+ɛ:oofuYZ`xi\g<VmFꦰmOԜҌKCo@0 ɜCr^W;666eYCS*Gd\QuMC2j ^i55,J,RR2`{gHl7N󩦞NE۬H$c+[2Po׹|9QWqڟDh))B7oۀ$o(^ٕ:$kxɆ.'/@m4?a^:axiAn=Сiz+5 �˕נXShsG�I3/\3e z} 7Lz>0,Z�oo?YD-}TǃCn0^[ \lݰƞ ~}| 1rj!ۧcR/rST'fOJBM]1_ecvSb&GBov95o D_ٵvitڴ,$U�ӹ 2v4 J>05?q^WZ{s/>QID^ j@Q+ϛO <+:lXs\ ,;gWZr3,a BکCb`zTWxW#N%rfٹ祗@}!?H)\"ǂejK{xݓH}o"o�w?huɖU3Vj}kFe:iDD+;S i*n`OZdo, 6!u`WJ6}9Nu({* <"o9I<>?I V ;uZb{ۨ!7% {T>6>~ޟdkiѭ~H;RAi#STMŰYN'$HV1{Dj @0 (*[U ioBAʊMPvq OOS;.#97Gb0U$%yW#e椡HOL`_|W/v ?a}C2,4V)Fgơm?`8Kqs&oBOK&b4+Ogޜԑ(j𖹃?WÖo#zyEYp9mcH*{ WG9UfaQ|(W޷0y %Zj 0.ir4]Ӈۧ)%;oQϗw. NM| ek_ڰAR<}q(- %BO9=:_Mnv} wֺ -hZMZ5n0a2pя(sg^K{&EN)'dge{}]y60meԑvqs|"q}7/^'WH2?T Pn<c{_El3fL2$_|D6Ctmt 2S(B~pyoj@ud^`Sn%D֢*2Rիn'zziS^T|^??!3@T88'eBdF#@4D:IY�' S+;O </Hw@~d>F ~g^EKuH>[Q.0cd(|Ĝ"5!l]_Xg^W^?'xw"Шπ_O'#kMwQS_o+Vz̚0q1Mьa 4U{A=mр 2h$Y[y{y?H-{P3Gyƶא"f@'.UnjEG@ vMC ݵ }ˆl`Y%.T޼M&z+>9v:(S9T̏ O;{^q}`k=p ozrFّl gng)_ARwOjFK!9Zu`Ny3)+iЍzHoX} svFz/3nVuy#7fU*{z y. eO?\"_i\ �"#u͌RQA#7o߿yAp]ȓkhHbDYCgA uz)/459s:>3A;Mh{"TUG^̲zg @ڀ_tYq=T 6$%:l]ʯ׊jGbD呦Z7Rumكm1'|̔j$p^.:{=R̞7cH`\OS0aO7*rH!ٖNpP+H=B^)|-̹>5<ݑz-|㷗<87i+7*i7="L#}Dh1 wT[JeWGYBl]}ЀJGlf?ӞsiT!#˾Ozl厄_ pG #ۗ"qw%33>-eo^^9aiјA:�3/F>Zc�'D8zLZ UߨX2cz95~f{J> 2; |WZ[}KnLJNsޝ@ʒ?Ʌ>4w2&;U G}O w3v9>m%.R|lW[8}0k_lH%`?J3ˀ}WVktx-v>]%'GOיoFb`T}mlhxxO5"e}u Z R+ݧN|n`%p mhFI-R7C[=szo hG }L֪FKa?V9G8?�Sw6 )k\_/Z- 8d,${)܂Քчo A=e1?2/9]u.y&"Cf֟aΪD ?W_pD˩6Y;Dxr{ `t6xۨɷcbkd 7rV:Àמ*d3D]ېuϜ6B'o96{lݹ#d^;}#͑zs\70Y mDr>1ɏ$O¯t''n+إHKRH(KV_ _j[1»'ݽ]dԥ!ݭE% dVP.-'^;VV^&rl[^WAt~Ȍ< Y_贴mF Z]IT go,L9سE!sdl|;lCRp> vGMtP*Dm;"jM&`_o"鐳FWp v$E{玚<LSNNpjuAru.$+\lUCs;`?EKj? f|J ep9alSpN|+I/} 0H$&yՙIdA(c- X4;X^`^_[�ݮ93"zWMQ"v`lV0KyƃH!6:GUVzV? +$ʂHs$rjmN6 ]D^'4{nD]ԓ }"= swR7UrLg/)8c ;U\1z3[n_?I4 L$wݥ TTB#qrXZ@PxsCF!e Jg°?yMI0l*Ƥko6!)rgQK4+M˲1-sӴHy>SIBr Z`[l>%bu8tX, t/aj)HrZ!{3xb6Xz!E L1yƗ/L_EiD~]л|\9EHoי>$+ OzI/[x5W�c4 ?V@贇H;GZ`E(Kq|liظikf,DG6](AA12?anj& dѡ^`j@E֕sc&ÑO xh"b塂ĕ-Ռ"5=j+5vTSt_/*e&Fҹm=E,R<9nM0.;{@8- Ti q#ݖ<\Mh_0zH^%U0,N r�sAdL(}'inE^kȸ±$f#*p$i- 1%I}Fu >2cf%wy]~ɿV"=eCߏzdiXG}�ėoLp\oSp r|E3I,׈oB Hdj"yKO6\ߵ{ADtg6�ڳr;Z!1Q'ӊXI4g$ ;($Nm/5u|pI11JSa [TzԞ'Ta +5mvQzhʙUTNz+{ A7Z c[n31oor4-c/MģN~Tפr& 2:g%! ṉT@\N#'ɲ|#mbLa7%u0>7ސ/D9ZH}"}%*Y._u-oF^S0l=Y9@4kw@~(N~`\sX Lvp ݾ!"_,糏j6@IyZ_} ]O#jy0jn`/:.#Msuuj[ҡ'6b}EwoΞȋ7aWĒ3`<䟿Ya4P)t [>eO9irH|MƒB77 ?f<A2DuAuPݱil7-&xh�x/uiCY}دuH-kf`ewAmPgd,9l6g=k;ngp!3k PjJm)TT~Tb Ƨ+=FpC^hVH6O|k-rQf̘i> H23d|7# nvU\p3-fCvQ(HiQ9S- gOv D3oO MU/Iwm#Ci*$`p9o*H _VY ac^p/~l/usѥ�󦤬}wN~̝Z  3ͩoL3@JȐn#2K&nLFh/6x~HmC I=:5{pYyw {n;r ;<g9-2Z:(?قWLzK4%l7>2)ekGa|Qcv iuMx្7?%0jQ<|{?~mw=|rG«侅\s"+s\"ef:(Z7\#jAKȣ}2o-DE7W@ڌ57Is2�nbIQ62C%O:ڱ*NJQ2;c} 띪׼ *I?<΅q73�CV[H m3 +s<7Vy3膣S}O<Dn:}>ɯ'䇨'%mF{uV+;(O:onե2oHh R5 {P+}Vx.2},u[e!'QY{s!c74Go^Mˑ8Q};9O .Ɂ),r(c/0D7܃45f<)AZ@†YoFy\M{eW;PF6lMwCG-k]ՠ );C@|M᥂(Jw11o <ާM~);> jo |7}_=aAm5%l p՞{$וjb@R/0:3)_'Gқ>@{͉\`,t�w=X�͏mA}Ul7qϠ<H^"-g�s])ҼTx]iw@PӞ9 zՍбH̺X%X]fՅkx]\G/QuKT5ո:SWP\s$Zʖr![ |溪kzfn-z$0H~@/Agu'gG)Y$*׌V?yY0 a!�Rh#6aȜ}8hUXwn6;D"'F7q߶&"c;&ʖ dStVJSGҞYR<,;oO-̙md"-m=P;SA^br`b饫Rzx "Y8D,ħ4q.\wLV7BygIHM0 -Pusa྾'d_ЄUĹ!Hx|}tZTabSЅ3}ԩEHySuD; jתU+{y2Zː0) ?׀L[Hx'ey,2N�n\pCvrmO} IU a"jlV V ռ>f8)dcav?-�s.J @]{ӐH3]Eu#mzz�nc<:;vEz.IA—EHM)8$YO}q#ur5MU9$k LZfb&R^wFuR ޗf+n'Gv|I<%eۼs"tmƌ ϟVQON=qO~+j &j|dL n_"$Gdv-#f]oUuCc9IQu eW̎)!^I$q^lt+rk$5l`J+!MMϺ)c iKZZ"gl( )8^AY:ND?fg DܥX!׎0-02voáH]`x:MRUUwAx!׀1>f{Fև*ZR&Wj6ycb2L~璁'ҺNCXq<LC*-sv`/e ѽ0zt`Zsr�Y[5N{uXϨGZ`O%'eʽ7ˍpGfZH3]O8,皯emT`i;efD7+ގXT�;f~/`KwTk!ѿfT-al/.l0i7.ޥI,'<*CLrֹ +B+RH:n 5_]BCҽIQl?T%H Bl}曣 כZDpcfkPa7=ϊ F;8(ODk4i>3w?p;r^>Z{_ jO~C QN\LLO\,;k&#EzE]X2l 7^&6lb-)k;u)R̛W~�>!H~{P>)ح >2[n|$˸%3MG8*]qټ*O6m*C<w?@R/XRp)IWTHKd70ȽZ{WBK $c媐Q9HU}x2ʘ;h/pg7ZG}R^>rfm&>7 kGvŞx#%6|ܥR^!J59 ,g & UcOrpS@T~wJqs=RYiOяsy]J#8 [mr^hЯGyo+N5|U}HuB.W6[�ޣN~='_v9]WyT˞]; ɢ^:q?'%x4H*8D_) (xD,y\\V獭 !ᩖBFDe xSk$3#}zo3}ҥ˜tcN vDq?Hyd|yES#əW Q3Kr$eح_S qv:gCs@|M#()}dk/@jlLL^?0=W+kfxɵЂ�=` R.z5 oX<#"*UlsO}1W IgU>F}CRbUFҒAxg-ۡu28^YHS\BIdqc?pV\6F#'>=}D :}G( a$eV[<#=FÁfٌUw`[kO[w`mZ+͜xj )ؗR6BmzL$#YрwK;=4 "}`4X羷Ο|\xGĊ? k4~ҹy*0w̸*DK  SZvNのi.(>̨-$ڍ?:P>IR{m4Ä'pe6/Y<U ̜@Y&k@;y#39< I'$�co f?OGDъvh̫;DҾK,NJM?v yR/Fy$~ۮ)W+5-MW^l[PΔ3֣͋A+)PvǔWӀvy!<JNpZ=X&8oX!?I,GDb�I"Hq'g4T+˜|W") bjl$Q1˴8 H`? �+}:M6[cJu jH2V B QܛPf떪LUPyme@\\cL֖ܲGGLOT'],d5"#~ ΄ ae+@xXij< '~5o%klQjеw\wYI(K7SSp& ngAM)jVާ?1{OE,^ӯV.Drz#`֞QϭC=Z:Hm-%V??z9q?d~&rW){+/qx1a?^ ].vŇ $;^DBQ+(3}ݟ|85 <^e Oln؋gzN9�#<Dv}ȎA.ae*&-̶M+ӅS3wM>p3dAk ~J ug`ҵoHVHXO_"gA ]ttFWHzw+S]Tl畉~;zk;XeIHhG?+hg! ͎{2GBpr滤0`6[9?xc V8U|cc^Ͽ㌹:  c+[$QMX䅦5b3*4L0}f؅ w l[i eǾw|D V8[t磊`_a/GѬePAe7TIĠ1Z~'^̓;Ä$/ e/ʜ[#%씅Λi3+H{_F p,eq(W6G;G>Ⱦpx3ؤ<gb?-=4{gd]o'U4/L¯r; [zz58=J!y3Ӑ+ }�F'�'eEdƒL.:hH[RϹf Jhh֘dk%@ }9t"|tH1Zq葛DG3f_R X_5HOnqE%gSљ3Y<̗M] GiWz{L 3W ;3sўw[ E-^\ډeQ{H~FO+7/n>2H#Dy\QСuauq$w6|Fw:U+Թ>Ax|0~' mbP)21H+H}UݗaJkR:~߄Sw|Kʊvvnp_J^&6`}I�`n [zw7]C䓍2Rbn?3 cڷ i_xY oV'y<G) B3!Ӏm'')XQ.9+P6':!gJ`"m޷=|`|٦DN&7iZi�i"e:vZ#-nA>\Ik߇K Ad.8-Fl(scDeOOϜ2ND)Bʤ&A v]m޿z` nxV,^sLjs`\)炤 Y#h.n~_Q¸~6Q4( RGQksgJp=-rϦZlK>=rn32XjFkQQj~ %/q6 &3 I\ev;qfVm*ѵ. M鞃$~N)wڵiq`(w 9.,?7]qym@sxqε|(qPqۘUH|gtn=iVH4cK&pj䎊,u}`K#lf͵Y~gMdw>`h 3sS!I^0,_-kK>|ڟ7PUGZ|X)\Fڞh⾁ aԷi;R("=Qy=MJ9Šd0aE[d^ ^f3P ߢ d^WGJE9Y็k.%:7u*D$tW /FHO5c+4MYޯkPff"-o&qۖunA78XGh8P4RF|htސHx̖)PRGWv{dol R/܆ \OsPŪ(PPAW7)Rܐw@?P{9$\?s oU|lűH0hMD|\`]1Q Z_YZOc hk MZ>AC l.?Yxa)IՁ7P=y$OڒnImspk-)�AvT:FjlEA(XejCʜJ �ˬõ VW�?\OfTmxz`;H];exyeh)0vz椇HvL}Ƅ'27|aX!=,$Itd}8 77ܦǎ/⸄'_}9߬.\q|*dXȥ{TJ:Y6^Z3K A]0m_οme 3 lNH(cVHZ?4I^43VRgϞ^٤xr�N晱<VH}ZOg@] +"ͥǍGɟ,kz^QzNRM2R$l~~ ؀PtN{i\4^+cu{ K )m y b'6:Ϗ( Z:~9?k,"b(. :mTFAo D:;PT.e0".8Y3zUTԢl$.}0hW8M"WMEMd\: l([ ҹ^Q0=jC6X 㾜7_|F))w5/є|BrڼS tGݢK' k o+䓓bF[^SjL|8 X5VN@IvcO]n6u@)i{⏃`ڔỴej`Ӈ 'QtܴWVܢk w)d]GԮ?_`h øUro~#2zk]Ͻ <O#E!שeW_Զ"Eۯ#ydy=u\Rz?~/;�ls+ǞѡWgu `U pf,cAw^F[i\;d3fΞ<Y1}zI?8x@N$<y{~V6Ske*Q>>i~(gpEuHJZ}ʍ5 ]@y]Ö}Tx4Ϣa>;7X'nG=VooID5ƮNy4&489yB c dZps͙M: %꯰H:8Mݣo.?B 6F$*|Kin:>( .YVwrP`0"rBjJ-mf-ލ#«:}f#ӭX8<>ݜ3;z.M2lȴF1ZvTeWX˜<%F f0dR'i'~l s%^*Oeۏ "�<s�;>.-ˡ8v̙C_v.t*RrU!ig+AAq;SsYխĜ>ti|^ `^Zx<p^hq.�<? lI'4"`2:�ד= |2keKzX i"glrGВ`tی7�WOYmxh˝y?l٣ 7 ~0Gq qߦy{@κP~f~btd5T@E'[?x NKR<u?u Rc_\GgS XgrZ)Me%{}Wd5$i̬n4"r| R KUv ] 1$3IatT tjY:*v֮sv $0IXCZ»{ rm58Rl7@߆BSW|cڕ[Ye~ ؗRcZѱf6 NVO4us*dlSrg,(I̟YøuY`U'*rje&J{w;W7Y rx>^ε<x;l2cU5$R]o� mk%Հ2Yωޜ_r A uF abL4[r4' J7Lg{gdyMo3^Sw :+.<W4D νM 4*: q䘰8GPn`0ԍa !혛Wwyy0c}ysy&'3`GSL~X0pb\iEt¡<"Z9*@Μ2qH{ݘe˻=12m(7\a<hJGt :g)흐FFE- ~Y/o,˭Y[c\U3 c[n%<c";WڢgLoS˜JS_ kK6 c/}T89V7|EuHi]5( y^2 \4<G8ad 6$Ӂg:辗ॉO+P~<ϲ H+ZlӪt~g@ !;Ao~DLX,[x ,v}O>!ٹa[*l1v5XiQw‘R5ɴy(9fφ*m ^֜a:<uV 7g\B%+h^$fD?Q@&Ͱ[-.#u䊗n<ݿioY"mB˝;$#VT"HBw %M٥Q6$|wC4{3UF!R\_,7mPsg;OdwI<{9[An 6SkEiO_7ʒxWT{!2^d-s*kU;DrI#zUIHd8J6C6?8ׯ-@"N .Xl tu̽|&sHS^&]"oހUJu+Sϡ$Nܿe4 nqd]FFW2H 5 Mp 턱:gu< 1r4^5_!ۚ4 |My2K3Ve OH#h1q3(nYH9P hnlj>o<hövG+D{>x'/1DϿ[v[kR\[:K/On&}#+&1՟ߞv$bs3Tn; e6 {iϩ vu1{OLFڥkV^aW rhvf3mH #rq%SN jA<UPBx״aU,yהLXo%'8 O7 0f�\\{uadM>;%}$w$<9s*ofd؟վKKm(E5bә P6AivOm}CV˭&;HRA%H5Ob7vMPa99@$@^W;o'H(b#5+K-+D;`YyfAU칐j;`L0dk몁;Xse]ޮf^&"pUfJxod }3hB?N/COs9ݍ3Z[kL$Nu <Y+IbrLuc|KN,tZGZҰ=zse5|iЎF+f?״f&^1)o�nv~m+v~iiS߶$oj%zԢR I_ _�?y*tp%eLOMQ R7IPyX[ .KezƖև r§@Ւɞ.#=UQ +◭\U@A*DZ 4u'"430. g{ujB{łW!I8cIWs$4 c(w?y7m5*l@d^�lz];+xΜ]UDx:KR X+2`.~K?ގBJIF5`/=}1݀euh Lp>\t9 # @V z gkqMb3Ss'=x-+kj]sJU*Hݶ>'y`[*A( 7^Js`||s:Qvj[(APy j/[֯6�{R}f'0F߷쭹>;t#L{++gl %�L?i�?5 *0[r 6U2 Dڏ{.`�wung$5Cjcɾ9޲o4&C6iue([ظK 1#ƀd_~O ao{IO)K.kv8m![إÐYݛl�?!ѵgU8# 7~遱 S@gr%/H_h虘KT:_%k^#uR*ol! ϵȕ0r"r/"D73He{f`giDvKiC k =IDG[ĽEF4y>v)iNo+Ν {qѫ 8Z OhHs['\wY$-N{޷�s/V]lmWk nϋ;4ܡZd;d<ݟ ]mHJ\sdA69T 뚉uW% py^y3 NFA k䴾bV!MmhqH@šFOvImnEFv522)L"57]CԬ`b |c[<~u9{'56,eFH?K!?bfR{oz}t5җyspQfWwv6Aj@j x<.48>GyU{?#M~޴ M-:`CBMkkV0f@EĞZu`}ߢgp\6l$} %?$zmse{nAaֲHeZ�_]㌑%A./*"uki!®H>87_\ rG'ҙ'P"L =_FY?r[Go*ZYIv�X> | DR Fs=oބtFhoVW& #+;icRj>J>"uΪ+u'u{{),dz>mSrhgnWFޅHjHqBCwg8v{xY L5eMgnA7O׀_%Ro҉\Dm҆'?U:"mAQro+ŭD,}Ys=ʅWVp�|K'}/wbٜd oڻ іɡl}0K)ǃ(ߓ:ҵPcc<uTN៭M{�R:>m7&r\0=+o,4㻍/0=h#/FÍ}A׬D~_%qgm(W/[5٭6e�Xә)u!$=W6.AdǷE`BSaحmtM$hN%8$^|BW_-7'z;E_?kk`?ӶS8qI-7߲`gݾ뎄=^k 化 -0U�/e67\PeU&?k!ҝg5W<L:2)*o, +"1 N|5:́myӎO(qҬߗ4~e ιm(Fw!H>g :{Ϟ7q}R͝,UyoW2܁W< ?y8]%yј>/?Z3/jʟ xA^_2$?v ;2zA?XN5RH A>T뙼{<1_Oƾ�IYe@~)K.R"NLy oN�JG m@w=] ̹y ad.I{XcV; fgۤ ]6q8-iږ](_ ;Ęr)n {)NjD@}amoDunEB}=8o$=KӿLպ De|Gv<@ՁR/z%&=:=blR#mC>Qs5)sj_40l]:Z;u˛MEM @rkqs^>> w/0#83IP.` $M}v�'wS $Maw38A׶oHʟSE􏼺ހ@|NZ*H۱,Uڻ:˯"H$oL&}ӁXwQz=oAu,RgE*Σ3 "`삶aOt熏E΁:LTx7^_ ugQi>f9=]^U�Ο"nfL:H\c<Ǒ :wHhT!G}|.9|3z>HZEKB%gacHvz;iisE{K7=>n1^~8# h8F-?;g;)$$JHh ]dTf 4DFKR!"E4J}dd{~9sug4fg@*LYX͍1_au]w}n_`<$;LoT)4` �QvI< \'̈́N^ Oy,IY/@m,r+ 7CƌxRu$Qwb| xg{v! VHICA`:R*%;,m*#w8JH޻z3g9#9zՀg;ȢV?h@QhIwwRێ<;'W֭'m2bHU;[U72Sz ^Y_bh~ \y2/48| "ԉK#@P]S|pB66u=A;`b' }%8+0g(B-d[")ۢ;l:R^W&hZB]7ɭ "D㌔}<CJ/l5e5(nHk9W1gnO=: Pw޾. N'<GSN\Bҫ_ ~j%mql>jx޽4/V&/ ~fO[*DkWoLkd.q8z@XVύ+ZmRs`Wj"v iN_6ƺv "=ljzI:ݫJyi @++Pq0x+~x4M2; $M&rwcHUR/UKo~biWIރ{Ɩ@~2 M_FLYhZeCчM>Bp 측rt*qR2ӭWrN׿@ړ׻ݵm86Fy"e^S18CpLʄ1=|rf/J?K?yT2>f^f1֧u% +:;kpo|U"mB.ض)R4mбuݗ< T.HB+dHuY_);NAdvW :du02R"Z {C<AȄ-7y�DgT3ւpȆo0$Z icőӑn"=w:d=M9K\�C딫DVa6d=]~*t׌oݩ׮ uFҙjwX s]�+&+Pw}-|/|<BFރπwk[{\$@\.2+_v,rfUOH tYiֿvi@H!-qYe i#(xɒ zHUMٟ \qܘXɣ׬Nڑ忁l )M9={GJ2_'Ob9օkY.-";ڎצ\J:&pVhyեNT.ߖ[�,:A651?\L8c$\$䵛?K__{0RǬ^,|g{k#N A`L%EGa!0qbxA;n7 !#ack؊|A =I 5?UHŹW宊2⒌%U }e@>#3`*.Ţ[ ξnfVk'[iZY\pR,Wm=dV,+ ,b=- 9HmK/_7YEn~f5w i2a&+ϯ BF.,!խһ54Rh_Յ~mr </_ C}8,=>퀻PЃn͢'3<PI]V}X=u9[yO/RJA-p;G-یmZ(/؏-G&2IW8\lቚ%l6z9P Dk[+YSMܿGn!2U8X}ktw-)x8ij'~ nB #jHixV}4E煦j0lsTc*,TvIvϴф+,gis[&5@jRݴļ"pMW^w&(e/Dzљɫ{&y kltm5 <yo IiΨ.IhVZm'4ZSo|Jz'y 9dkTrG!7e%`oׯ"+0l߮YHTX _+GO]DRM];/= <ǸD(u4Er2 &mG{4kle5ޫ67nDB]|_U<uAT>p)paIۛ $$Ͷ;Hfqo}~D= idع끥j6 U_~B]{U@;)S v<ѬRx.9廁6]P[#],6iHĶv'tiȽsj;k'ͫQc¨@?AwG�姦xڃԛ1=zZ|5o5Tdoh�In$k0�<exlqn׫57wg4h[UO )WjV]lƷ8 sW3_э%:!0z9�)fY9cH*6y3{<ϢvU�/M^=/~5m<چ43h#sym5HM~69FҐ;Cο $)n n1Bs֏DTGszqxJ^ې9kʽ3Wul\հ {iD_O?LJ M /�ñ"_uG 3t2Ϯ-_1H?894O rIO+y^=a‡<7_+C;Bb{u6Z<LF'^V>t7Φ7|ݥ,=ȸ>`cCB6kV1Ge$фOIJ92 IJj<+;BA'uێf?Ͱ@ʅMOZaHhM)RȪw'`ܧC͈~u{<_y'9 #5霁M&ȈKs&  #'3o %֭ꯩ%mU.M؇{zhhej9, |lSK jw6kVh1Ӭ"e { z$_KG}=@vyË[煴InnA7wŶ>z$0;HZ P ^..*�ޛ Z@sV\Ce[d2i iQsw�8<6XG$U<%xy4.$?�ه 7+YYm!@էϠ=ye`,p-htl2)wcre^uk0^MdJCrzP#`O{Ԃ)ӌ<aWܹ寥no]BNX [bOit4вT>~j<KFĻ&Qm:BSw(DO˿$@,=..KjyAJymŌ6@d<Y ,+:Wр?wlOu},EWYgLsرFŭ 2$Z4BDvDJ-:<O.Er~'G^JM41Kgd#SHe(dkz}kpEMH_{QsjU_U hA Ǩ=ZN2WgNBfP'/?w .;aB7鑍Tns7[zHRw [!E[V}y^bzOH҇*"}APg$E#²>H/^03/0#guAk2 xܐn%]ޙ4uo}u$+3`5G* .rhi 2t|{cd\8 4E]},:e]H}L \*6RX=օ3Wt �'*%pM|5eyVuMQ4DQv:̯�;`"MHSQw%mӗIl|6ϋÁMOW+$ٯڟ}hNUJIH:Qre]$rT"_-- '+f?oϻ>qȸ¬gb_ɩ(?NǵkܲFǥoox}BKsL2M@Ag]P-lC jU"mr!srpΥ�"Ǫ { mW)ճ*-C%W q~jQ:3_D=}Kܷi|Z/A²;[ Tk`_z4`ewj vHP꾈f7{ug[kpLa6;uEUYnu^slzgl W 8{4ʲ+pBУДyo_U2}9߻\ +3"mzZS>7mT4Nl;�gqs'q[zf '-&c}9 K&U| 8eJ)è4$|:y[3$\IO2hґ^ 6A" ]qa,zV"ҩ}~N,ɳ/2s<ڑxsC=2٪N"_ *qtŷiULS0pB;2ÀW뀿_AYIPkkTpy Bvsngݲ92W? g|WMv?}vW=@H~yHE+g+luwtR-gҼ[XXWCf=ivF~Êv쵡oU ryϋ6XHx@8Efs>N�7?(IAh?_6z<r 3HJQt ʝ+4?!|-;:(۔X4ž;%C>5"(W<)D۶^CrڝAHl8=Ε$˜AXcxHē^"eZ׭0u /3p/2iyi k_r*pΤt@u) v0f =Uϰ9~z:nzW#{frp73ܪTQ $2b3ۻQz>N2 ~Y 0ǗSt-`x|ڷ+<j0 ZnaIfpr 2J~+pUy%<{!|,F .9ao!-@],V\Hڼ Ɨ~挔QJH՗(rAY./dwW9ygKa4A%,͜ SA ˲&U~B.+: Dj_̒uX/>=}?Ћ&Gcaikcl3FZw$#'*~<.*2q bmt@aU. 1 9gV_J qV7m <w)22Ͻ׏E{;A)|Q:HFZgN_eeݓ7X0b54k ka ҽzfp(M GPV_<1l51 W(@p]Y.<UKV<>"?=v2^Hl�η) x=cYftԈLO޽{Džf#|05T?ٞۄMj~9_@۳ŽurkPn2y_1>A0{CsmTz ga9{^9}A[#v'nEjfe~ < nǷaRz7~Mvߤ{zw_ӷOpὪm׫nvwS6ĭpޟh%eH_}H,p86!e)o|@<6n xTGrLKYԽ_E;?,%b/6 溻w."Ma p [)!q$N&>Gt�w6)A)ߑ R %eL}Zqu`0;^ 3a5_&Xe[4�'޻?6KH64w#eףsȸ|Ft^]޺i啿t٪Ovǁh^sx 5 yګ]HJ08r^Z-:${?=c?t|`k+$>>t+AN\$1h%ue޻wt-2F,OG/^ p +kd7W3H.,̡R ʸ8XQw>{&d@Mjg-\Eh/,CSQnd�dAr%5Hʌ7DZ|aˆH_ %8>d<gJxvU&}9$rR+R0C98+ p,Z*3AS(?6XN[Գ_յ`Hr_+7.[ƆwWuI84E/}5?$˶wv8q )s?g#e=f_T *)C*{U 0TNM\/Ks Bz;.*n^HW2?~u_xx�R Ui]gVq,XnaF|}l3!о 5  X/.Ai u/}M5kAvcE WgM^'砼yI2>q0;|۬tij(g@E_L.,Wb?? iG&G\D73iUGW6Cc .UE?/Lq0MR3E٫wY9`"?Dy?Ȝ˛΅3A\_bFD -D҆}0ۮFjigǣO^˜+" ]x)6-y^Bale)5&KW9T?=&nd>q YgrGu]x+YA-:ksa,pȶ3D68)YD™= v[eN rjVIwME'/gf/ϯU DqjHSů]~4lӨo?rASy+$H]ǝr?+.SDZà:fl^3:N|n폜>jH}+շ>IC7>nAe7.8S? <tD/ ޑg9]5&&!ޯfwVTLF5ΙAxgCȓHof Ο7zRjص$ZIM3;~4>-MnOUaӍPnQ'`OlHW7"5pV<}}iN;bغCg7!}rH)H HszET{3fQO +52o*R6G͸W4pfM|D'9^?suO,N7lAHUzCHGFdpքU~.1wr9ms1c@oh&Μ4Fonc^9 q㛙VZG+ pGr+ vqs֞xyc3wϒKK #r+{=?$<xkn,CZtЭHZ0/߭tee~ogv.�ɖOWE*[ Lc1175gk/FM^STe7IkS2~SrӗCƴ$Ӎ0{=q2H7k+Qn )5OWIpU]d$p&|cS;E9h_vu߉vdh$͗ %ft>lL|r:ReSWyַ#|mlx$fjm<>}.RՀu?\H� 񵟮Cj/iFG|ڥ ߞ$Y}LH"O We~}x9U A=n%Ԅ^c!Pvxb!bS6!ܶ[D޿'AӖ&s: iSVxxz;YR?5Emt7ٸkI }Yof{�=IH\tXT\8=dH18N<Afԛ |s@0riN6J<ety݉6}eX{66�m; 3`FBڋZ2PڇJ" UXsZ<1!3+5bMj}H?0{O:؀8X\)0cȎI4:H.JA$wŒNs'=ڲ>Z_.Lɿ>":uQ 2KϽF<^ޯ>o40 RxT&u5%PGHP:pmH O" i{I_dDە'(}?AN1J"ŵoUMw9uM ziMz09 7Y2v20'lx%5 ySQHO~q5HZn {cuF)p?oKBY|8L cIE2ŸiF"/uW2+H/O]i GKO|^tq_\$oR{'LX$ jGMK=o~LOI=zU[d)rDI\6qۿAj( '"};H#)2 \ m'[$n܃\'V͖Շ[`ձUs-P>*[ʟt>,7-q/@z卶Hxx<߬\�EZ1VϘ';hwT~C5HpNZ"ѻ..^w�gW9N5p>CUՓu"cr2wzJ!iXS1ZofOc$t }�Ȃ;k;Gz<tg+#πk $ޏ)Q #8S/ ζ#U>` Kλ D g[�?w3~߃[2`LA8;U;yE"1V&zpn9i7\ 7Ec Ǻׁ+ѥЈ|+>}h?XFFzvA4-{b6[ҳqLjHF"N-Yjaԟ{JF7 5( E/W#뎎t|M绻ܩk+?ia<:#"}uf֭yd BS;n>q ΩYdC /S @RRfwt dZ0Y%تn߷o^ws5Vi$P0wp '�2RץmΆK."IaHTHא[=Q1 +dGύاº1č>?2g3>}Z}ҷc0l˻w@a5s[~gw_1@CyJY}Hl"ӡ%xzҶC9 "`4mFfj ga& 9]~mҾ%G=zł T(w�=% j:h`r$nYMQnH^6y%1lqEd^]A:q~F2|dt;Qm. |aѳ# asVgm_Ro$j eYLkt`?j Tz"X"l5_~> Pg!`=V7op[>Qb?,"_m) !EW[,ꞡ�BN{c[@ ^uvZ[*ۢN= gr^}p.sg=OP5Hvta? d¤cD+?DeVfx!'\N6  wUSBhJ<0uz{?ݬ)ї'T-iiu%mm%F.2]}$L,Js"xu }]֬R i7-Nzʗ)H]- ūs-g 9LVv Bh'f3.LLmDt>S=/?˜޳i%[Z)oH]Y͝=o)u1Bsw2>=l�c i|ypG*M4hU:bav$]f-M(/Vu,_*}5 0B.Pp# 89H*|5SKoϢ5=#|$ |ʣDǩ*5?si&#Ëڴ_g>pu&HBrM=:]gƳSH]nvjx'>'=M-FC~dځLA<}/<5([_OE.<厑>!c˶K# 5KxB^ۊZ:sxc"w^#_G? rݰC̜}4Id!٨;R$$ V=Ǒ:= 7W~ AZaɶ *ӠDӜ NQ- rm~OI=x|;}xdv~L=m;R8 ɒwB8F"Ej['; Hȟ_]~7"E0Si_Ϗ hњ]$7+Im\ ޓMV a$ a`ZRVxv[6sd|GŧI�wc gz"m(q)Iw$ l{H^mCzNZC~`-t#8o cS?ZK[§")ko6=M7Y@8y*}3g7R8:'$߰Z]%7,Uk^*h,x ^[ Iq~4mIHZfج'x2\4`Lͳ\vi N-Ewu"Nh oD¶WǚN@;8H.{^]<xcO67j]5"=y[/? ˥g5H8w{lMb@3=% p!Gp{_nu 2/; D忝k@"j?gU<X=j luF͒;`obN ]A>}VOpkIYGOy-Vmjv~vb{yog$w'HZ;$~"Ok;ߺ%q>}I-P Iދ+wWzBT:aڪƾHJ;f>DqEG>W{ ճ>Yo5.E[+&du]+�nٰ(SxKnGE�,}FO, U9W$ZFJHVK[g[8sQ[w YF/d^K$|>$o(Adg:8^Zg@_تiU3k uAjQ 8xɮs0V'1{t/~cYy_k.J`sc6V[ͅ�2P�B=QȽH2-Fhiߐ rU#sf!PSˀ[v1iU+v> 5j|;*z@:=u`! ~feH):Jl_0a*@ɆhnD>ʠ+!k/H&`|}GTRٹpam|Wm^-4{ }`.K;BڿEFs giܛG mɎʠȌHu)H qINWp?5Y0N Np\ pd]2'_3]ME÷֥ҲMH~=]pxaxa0MV~ T oS!}~DojPvdi) ?}S_RE,J.Kl9*ƒ5s.*荆eYp.j'(|zv}^yeNU(@f{=oHj 6/xh}^�'%ro 낏۪{7Z솑'M*<l2b\Oxg(5j}DS?CC te Z7xj4:ʓ#\&X+�QeTZ 2MW:]m*pg8$&Zʩ,E ./AZb&Jfw*~:WlT-=eWn| W{*9?a^Nxv{U϶;A0=h9?8S-'Y juU�/g)IӼ^砝_y]G}O^zIu%f(PuHlZq'^:}=kOwwV p?!i,OKW1Qk ? ` qtz/f<p8~jAGF]cd88}axyHSuX!5{z25jUڒ ^kL{=X/Ɔ&"Iazdy@uf7R')Gt b>IGZc0UyO ?W}?My0*kU :9=6R>{�rҟ΂{0<>gb\A sE\.xwQn{x "7n--cflto"V"$-r:zsϾ+MQW 2UK2"Hn6?b#y:Ǧw[SaDM �FKs0S)w>a DK>ksm?H:@32/2 '�f dBp{N3z9\ӔyD^mZa 7?TW Ի-"Csx*>M#x۷9!la'S6D4ɭD6{p}cU$ND;";q)=Q]LЯkmc�Դ.#yݙ6j <ʄ_xV*|Ԯ"wXΤd#^ײ %nTTL%0gf$˜S&8 )7/sS)FR\ˮ+˭c{:n1;䞋 ~"mSR|q1 ֆelT?I'wഭ?][PTu9\wpJ:%-! OHVҼOznjQN1Y :3w/_eu~<Ǐ^"4/Zc_a=vľ=4y,g6}yڼ7&%l] yjY9 8J5a7Y˖ɭs!9c?bJArNiY!$KFӫB\.9~[lրh݆"Tr0S}t�/2䨼Nw\CE'& Nscݨ?6'ː̪O8Fv-%,W{;kKaNFqx+ͦ<CG#z@ ,_)g i jc` )yEv Y7ƧPdnFDʱ$Ox\HlAa4y:9')Oo|,c1ZI:&M{vbϹ?em7S|nyGW{.pΙl dI̐nYSv::u_x߾,-3GW6av!9E LغZ�'1"@^Ǚ6^kok0~o΂1dd&"i²ϐ|pښr83 = k )MۊCJ27%RF]P>bGOg­xG E שׂ0 /<[Dw 8sb[ͷXcTx| urѪDbqf,xr)2><tTZ I<[~J̚$8wIe4^r ^iO#7'nzlH}VUvO-|/3^R ;u796q}7Xp3@*)Es4yF_s[l\l<lEr;殺΅G3t3+ 7"mh#gƏn #wX)݀g[jv`sY�ܓO=F3t$<҇$QNp]\]e1 _v |jeTSj_@hQ۠t $k"�K (zw Eb؛t~d oӛ71i2w-8y׾@yHѝ{[&B^]F=XrcqawA$Sv h)o hol&*?i� Ésށ |ijs/&/|Hn#d=Fy']1W)5w +5rTõϢme+bZFLJ=a+ryXew3AK􊢗8@0S*!mZ?Rf-WN=%Lh7Yf;4kaL:ji'HʾrH<+n;ۥ zᯆn[/3%e5/۾D#a2sܵǥM>U0^~f)k+*w?AWN|zܴuEqC ;|iOKD_ʿpri;7?|tۓܠ[vNؐM9Lw1 }7澅h|}Lw}K< </y3e 1Wf�ֿ#aor6 }F3&saj%{F~=+^.[@ Y f,r~`w}., 5AǁstEy#x2I}zFG!޶$G7#ujqsNJGV'h]YyFda>8tv~d|<ڌ]_a\3[~D1qRAX^6iťq]Y�x3t3T@oJ7H)cTv3|~7"Cpx,$?[[@BCA{sWܣ~Bk-U)mK|ݯ>G$};'>޾ukjg/:dV*@*wZ\=}4 >ɲ _0p-&UKqm?<4Dj洸H .[﷛A3|ݝ )XmG@2ʲ}XEZ|[j/)浽Fjf77 ށr0fn`7R,%gޛ ]z 2- oM;jJ{v7R>8_s )ro6ۀxļ^2Aq|A|<ow ՙ F|]_>P�=;wiPٲH*M0<d> vj7'gvPrl'nKgHZEEb#ʉYGpk^VJ)Yc HNSդf,tg1M_uO eoJ&o ?NF BaHۛ[so°׿n\tos:-bśnH}7QH_-N#. wDF}nC 5UKǪCǺ7HO\KgD|ݱ;lA pm3MwJ `Q &>|<=|*e,- {Cc^dHB>քقƉBǁ-j f]G73n2[S\< 9v됹R.my+oݫcY(&<<{a{6~*/8~2nK Gۧ{- J0>E]9+v�j;#\ߩ|%j Hz4?{C{ҟs™c6H!ʛﮘFp_O 8]rfUk |[B\#c52ymJ%dLynq͑{g2}0={ǯ"`I̝wwU~gnE<aK=[>_E 'xrAF%]˴Bͅg'z5`"w!] b7Ys)C a?7,dqH-.<X.^mM] [I^_:E۽^D6d-e,N7E878'rCJg1sdr_Ȝ{}ۖ?EV)LhcMSs@jh@5桎w#&̴kIƝd~(hԩK XżF^I:c(f=WES-SQс5W1 <~>vX#E5H-LW ȨAplWz oy #!ӭXOmj|. Uջ/M3!]ooGe8 {[VL}Z~lpY|Ȁ=T h=*v8:>#~}6L\>$5عs" {fy06q|3R )l༼<0 7}y)rHNkU@\7޲F]׏`OO|qfkm g6oH3O@KJ}j\2�c<M@:gޔrU9w:#3Y}>6Μ");;,Χ"BV*D|Xž'i+LxRpE+gڂ-we mѹ ^Az@ܟ]i.w 2qR'yiת:ERj|L@O{uu ҙwW7JDR3#K pR9i)WՁCfӈJ0~$Zބ;Iͺ0CiI;tzRplkmGj73gXnE2{@``/So z0pVgXq&k9܇*m=!%g~_v? Uw4/[\'hK,Rm<)Ci5@طcw5kBfoGm[�ήHֽlv)\T‘yބ;IH[Z@H S,K)ϻ)*+#&$QoKe_[S c9a~�\=zsw Yf﮹=tJ&uHJ~`jc 'ɴ&>M "K_܌T}Do {'F_pꢎn RVYƋsx75Z%>p7Xu.&fUߨ) ?=RAc߫ 925M̿�k+S B*'HLҾ{H5= @)wH1_gօ~?6էB>2>I!k֤E57x/UmOCjNɏOkeܕ 9=iv`"1YH2]u!mp2}tK+xnH;q;ǀc,!2^$/%ȬY%\Y.2A4OG*F˼MHz|xrۄ8lX 2D0i}Abf 4!M44+w9].d`{5ʜHA+�c)UX='w7ӈ=y`)to^Q|8 ?3_8ڟ ĹEYX̊{ b?],V@Ҡ=T1KjSQʅ/]ܽ3d. a<J̶e̮ྊL,Ya]$ϛqwnD26 ] "SwwjOBp~0OduOkc^R<pY!RhsGS:%mM>mq xjUϴ1?{}Nx:jB;LۓV9(KP5XO/tRu FPi UiO@@ρ̱߳YHKaҾ,OL"7}]9ҳ;^DW"ƻ^~c` $Y)\2)<}=pm-E tOƁw'lJCFktVM?)wm+> N2<O\R͗.sQJv2^(\/R{'(MYO ߲o@xN${|ZG)EHdK'`&9 {[7椳 z#�A.wy4sCo'“[~�p!] 8ueRt!9qj_O,YgEYv y~kçH4DG xW=I`+}E֮}8R$ FG4_`շw{?xjo"XdCA]#[>bStv وԓg.YRp?_o!e|Q*Ro()"x>Rr'g`] };f "с5(wm4{# ^:}*5O"w,q<.=�۷~į)w#<PridʓZJnOOlH3v*'|hMJ`U-Yvҍ>%Ot(,Jw I%3{OeâPdlޱa2|c*rѾY"?oCܽCH,1o~^{t#g!y7r~I,lZ6s}ocWݟPS +8.<S2d<WJ!za &='E(U<#$ubs-1}!)AGCHZ̸4k ڀw]B]>n U6i ,'LE+_{ټXvOSg4U@z_d<ɏ!u>Wh Q6*!}dgO=2K @0)7N}�'oz_AF({`¿0$P Vsa"e0*7>!-8R"ޝ0vbʹ?0.i] $|}" H}ya 2w0[ x vk[!uySkӯ: e&1v"?`ycqV-TZ8]&=mM G߻L3DҶ;k=8dϑCV:{ Ig7eOU,o;p6)pLN#}G82804#3rjы^0N+: vՎ3tiF$"d-d#6 k(T8)l[ҧD~@8=C8JOE0Q,xWTZq_IoMNJ){5N#gP!rA$;/V{k ߿NCK7h^f#cQezCqɷ=oT3e@[);6UނIYYd=:*l@6mdthR1ie둤[d|-xcR'[刡׳|ǭoHWCH\glV>M0!()Rd?~ԕlcs ڱiF`>o%$!8п xWcko3cO)$xM Vy0ґ߁5O+v.߫g,X`1 &^N"Hy ]4![_ѝ;wnzʁ׵8LxsR d԰Nab-@F7<U@  mG*'?(ܯ\(n~3zd.c'w"xS&#Rڋy&n%ů+f[{7ks�G;/ 8 xTc"i̼γ4Ie&ں: iTCIW"IeP]Wr#l il$ʬdH;8 :lNިyrϪ rDGБ}i=<5^ 7旈+KirCycvqG,&NFFEW-;g鿞%,3yC]]ƨ*kP'"mxK_s6L >n?; b/X,'lw h B-N_gI~?*Cވ@TI 8xK 0Φ܎; V Wk p,x9^u/Qy7-sAh൏؃;s_o`Vҋ^["vPҡg[( I~PD/Wk{~ k~uK{(WzHyvF=_Ɵ0b>|̯HqL(!00.k? ]ܚ}0c:#w|Cmw*H|LW޳{*"}MnK6!':L<MnD~K|@A#<I]:3[,SA0>Rw e Ce]7y,e2֔IEU2AmXM{яu!Ld ^zaBy˹H}OW;V6Vj,9ny[JM߯,\}Ht)@2mf"<p,JX?;|ٲUۉ<R}N߉wL$q2);WEԣn@Z0 8և'&#ed(wo@|ڿtpVj)C 'xvv3ajŸ\ V/nW{y<8>7725gn;@;D˯˜ږEbt90AD,&kXϟ5Rj+S56z=L^ _;')nw^08;vg�*aq{p0H /6B擝V8`I}fp9 FźZs#$Ӑ1yi>Hdzx}]赃'['4t-aΧG`D& n2H/n}yO`W"-lu؛G Y7:}WȠ ~| sN|5nT8%`O2&C gV`M̥Yr M^Xk`J? Y:%HnPN߭+x6X9JC3=?2{ 5*-Pͼ[1Ls2ܩ jݸVTF!.?{޵UdG l =p޵�1Ŗ&ބ N Փ93-8DmH?K_fT?<?^'~[ R-}-7!KO/} u"`A$_^] iiCȜq59۾-&{X 9ʑ^92QArςvIq@4*<ԏAJU6c3f$μd]cr F.R$A RΫNDaoZ$Z?`;d ^Є.*M-#Gq3 ')}Ui:3O Zb^u\t"^{�ܵJoG:. \4 iW!?/L(͊-�չOZU{�Lq4fI7h?-ϧWYmsMؿyЇd~g.ѣ)}ћ'3K߲r뢬2$'꣊MJI dGHڠ4рd+tT#Ohf+0}c 1G0O._zh9#6~^Uu+:+;I_ [G yLQ0=כ]颒8MVb߂CŴV$_ىrϬu &p~4uI4/T"2qTg2<|IԤI*(זWmcϦO�.\ZܦK%baC y]ȉyqHtzzK5VElD#j62|{׋4yGA~]0t{2ew]T{*ERN k`b\|r)-XՓyiy,?~xԴ@8pgtp034SաݪSNJ݇"wzR89CZ!Xqpwܡ`ʐ ݗ\i̐G`fD.$Qdv]^pqfZұ:Z>PyWrK8v,8Cg9􎝰h�VJu'H8yC:foĞ_^bM̧_-3IG;KgS>$* |ֱB)GyOЋ|VEp;"`¢dy-/ُ h(.p_8"i+ ٫tȃ zš04F WC7*. ŋ[uLwƩ?5wL)EN C L e~/[c:U3Hr)?ֻH ]i}.'$ a. D>utCT[v#ҞͯT#q ?C`'g!Eybm&*Nʄ~]v5f?ުsy!8y]}֞t`MN?ʥmdjY?o#r'b;cLS2m@J.0t$k3pN{>\p . ^c2pJ2_Z^j hg0|t{I(NQ+U0*ƿ_YvIɫmpE oe~z`wE[L9 ;WsV<k3{X鄴O>'s.\].tD;:6֕D mH::7:*, N>-X-Aɧw]\,3l9& ,GmHiBb~sԧ[ #-F[@ԝ329?\lh/Ո<Q+iװ%pDm_}|Dyp3WtY{#O *3A+!um #A_ f)3~vfJu;{Vbu-}}V֧O#c}> '~6<}ejLA ?lNV`g^Ƶ_M٢ml@fO̖F>B J﵄ NFEw&!SsV[86xtCvDF̦?ۑsfL,d"pkW]O#)&2.d|E챧dEHM{If6 o @ygFj@VF֨ADv`n:rAر0L LkмXԣw<9}0I1+ #v>b>UKBfv-b^vA}{n}sE'{jGo�7"yAA߱JT);CC-SF,`4oXܾ':C4פ肨}IܐQHӐ)bJ˽OC׀YB wڥRxT!7ٶ ٰ0FZ$c\ׁ4e}VH7t҈59tqS :u~oRƼ:  n~vKբ& hԜ):{k"#,b LlXN\ߠ[}^3]J̕|cA꺀hr2Rå,]a%4Y(.֛`9p,yifnf}M$GdJ>2(\'|fm #c[/ޣb(IW=#E{wc6@/IK3ؒpz'T[4V7^Ax64.XOg~D/&AZxЪ5 `I^[l+) ټ/!e 7'\pJ띾H D[z`,~R$?x\j�?/j#ħKџs5D KRܽ;D2nE+=ộ6=>Th^V4Є <k ?!!L||IR誝_~S`l/ϐ2etYrVU/sm o!9xhS wFr}6: x.ƛL(齟BВȅnEH;DIMgХy[js ML$ö#m/36 yw>{v0s*DN l-~LAxzK6w̾-mCoZx'xdp&${9ӓ!uD?9xhFXѡ 0NYgX|i;T{_VL6*쉍 ]6r3`io.g GuȹiHgH7 3l-. eY yHXSS0fƤpXLGz?My~u2KT obWIïs:fW!7= W\y S'rᖭkc pd\=j 󫳜Nb\΋$HYړk i}ʰ�V9R'<  JƼ"uDAK`b[]aHYWgYTA,"^쨮ƝRPIͦ)v9?:A\M )dlDCs2=0\'j z}Hk~tn(#8L3YF pNL=MHCXH?~g#I[ĝNdHdZߜH:xmerkp_|试<Lu{ ^CjO`)Nt ٿHu-&psDS>)oDž0+i~Ɨ~ɟNjo%o[@0t = B^%Q_)�);&*�+[4} ŷb6!=L'[]ڷ_pf2Vy ҆]fe"tw^NqTߙ: 8.wJ_H<J_ch*4OV~IA&äC<Rܮ 0'<k^wL[c{WSc*L AbK)+,ǟ7"]S#ϑZ1> b)Y9ۓ X&)4"=-l4+>K/`,vޔ7~ BRy#wq¦q3(V`P-n pT[j6dƙߚP1?VZ"gTPݖLP[];G zO?<EW04ɫO8z#Y;k/篩b ),骻RH۝ RGshQW x{:xAYq1e^rQ&ZD'J2[KpN5,C_l3lom^�?$֌&8rONZ^L_?]\$ZU _Pa? Nv1m~l敡/6Tw8+tKMK:23<܅'Z7MF|Yg!kf8g-տR@ţs:2o5u m1P&|e|& ՗l]c[~`?&sHnh䀬kS7 WDQ<sʢzSWqO�GLQo*1AhH433K}wƬYY_@;~<o]}diI3.ё�W?){o[5"k˧HcK.~޻pr/ܙu)f9V!6ۏy<z!@.jF"Ǎ6է9!Jw,UQ.xRG}s ; a&\x ܣ'`R/Y3n98n)@ϧ̯G`bSQ_G J1HQuJW~SCl _Cey3ql o+?~kk&ξS뛶\?9JH*w9d.zlP*CZ]Ə )vuU`ߺ~& >g$1Fl;L_jgq'%Ju@XuyLy Jx"Hd·QcÚ]92TL/_6Xc_ڎH:?I L>t )s?D򼳵=JQݸmW0o.7-E9ܖ)+koC 9$/ނ0YtxT @G#Ÿ /-w;R`au .CqZ�In3xkmK >9P(}gW!cƻFa0z֦7`lWKf٘f9R_]?gO$sCB.‹(3m@|JK:iƗkd`|ܶ.t}eB.%rݪ~W^CvqɲwAJ,4U O�뻥wJ(2ʓyf)¨i^-8pA ؟*۶9\Tzl1́=^uyXOŧnBfYeI I3^| FuMhȹ[;6E<Ua�w z{1c3Y5T`H.ayVow"٢PK-7L܏o!R>մK7�W{wݎ5= S3fs{NEWD]D&9?+^k0SE d_Ύ&{)m9gqy <vek0th3#skn�婕k}o!2sMzM;zTUy5/.�O~J^OԒmDU< ]!Zdm1g.l7p%l�mrA V9z<7tw\ݺg`T}kLF8GrE].i !}VΒ~?RAl 徙'kN!M$b/RPy(l)݈T~>8}r|s`>B_0\$?Ip۟ohhtӐdVk,5ANo5du+)vL36;G\5u ?3 ÍfO{NP1Lsko,]Pҝ֑hUG**P ˞3/i'hO0:4s;z)7rԦgW]HcP1LZin^僓ҀLvzʫu h{ipn|GpVٓ̐w{R^Y`Ԕ-~�3Aܫ H|rVY)[񓬁Wc )}z#a@r S9<$Yب xNJE󱜳΄&o2k#Mc QrWF%s!b5zE!6TfyB:6+&/<Iq2-Fb2b>+ $Q{a9L|HFja*pz!EMWzja~Rn*<G%ĞrU 15F)?m^Iz~@9w"EwJ U?w @ꗑUu;8ދW_V>鞜ۗg< Y?m - iNww'XQ`|Be(y5}2Aڥ=।m^F#Tpu}x^6#;̀?۝ s`8i|ٻQ&%(NC@vqYH&]| yd�8ǪCHkP/%A֜03Ӫ,wYd`wX+=DCG kPm^Քnb)FN{ePcy#ӂ !R7踁r%Qr*碆͌]r-w^#N^֒Q`SwR�d86W ffMr"a<:=8 u@x< 8I/cf4h-vr"Ѧ5Klm]c >:N#~ZW^z[ آ3D}VdL<r$Uۋ mR3%I&?gGD QڝC0{aʻρ\q! sbsCtRR,? mH#d]i'ͺh(Ҕ30;>)=EgA.4˫5^=/_q&mAͻW}A<e}};i̿C{v#d׏O\۟Z5[Q1TPn%h]$}uwVGK0}^$0-40F.HQZ]O5КHKD) ӎx-w mW=$<rV",RnLE#)>Q@?/u͍�u]k{9kHuµ&Kڱ:HF4<Cfׇavܬ(`,mi2�ɲO'sv46=>s2n~A&FKF;ރ֚ͮэc f{9 VIs4[A6x擽0d଎[]OGfרY8o!~ aTڥ1HuVdt,uD~f5NAïiHk籮_c[\,|u<ml&u疩+eG{@{z_S{,f!<p//y@toX w H'GF$<;gKeH G~bf r͚ {MG++ɓ�J_*d؁]aM-yv@ ASaȬ(WfX3 g֥�U<zRW4A7uL d+^t ʛ-6;(iYy{_Zeo)\J1?p?Z܀T_c-|$-Mmo n/'؋>w]S݂s=DvǪG*8h}U@"7[jpV\MJ;|X䬄 A&Sz4y X~|7f "yt+&R>8nkNwb TĆm`V%m䫟`AhS߁ſHvؗ iGy؆qdDBu2(e$*E*$ICIZhHBC4TԻwoq fz޿AR~ڕxixLCj?}e~5_]Xd -<ML~Yu_o*T!+Fx\'jwGnGeeNe�+mX 3[$UN)þH{yG: mEڧT=$~<J -X $[q1+ v9m-el5b|9,1v ط|}ו s.zŬʧɽB ܲH:_}.u˷79#c$JbU9hLZt;~yn KS`l;!`D md Zjy`mdZ9�cSlbWC<|}C,Rgf98|EyӾ镪f@zJΛ;ÚȈ-: ڎ{C߀d~;!X48o ZO[c(.\i՞,[c փ`RML$X�{\6k<ZZZr Uo=8E�0nTEڇO-H>ʥV"dž˦:ՋĽɫ:bڡ5 j@W?|n#'dX"</Iݷ7I:lhRhE5gpF!{+oІ5O{y\|e }J)?yhTcM؀_.١Ŗu7ɿ H+S#@:v#H3_ ;ہv?Zu 1FY0iKPi.:˂ԅd< 镳<s+_/Svj}[CHJڶsUxl8dL`3y . l%fouWx \4#"6'b:p\?[PbYjvm=bJօf<}WRk 죳ttߟ'g#8R. '5!lKa 9D]0Y Pi ۩X^d+ب x׷6x]a쓤d/2!_GR]^"{< 6zp˙ )]/~ yb_`sO W{-ʅ@ҮH >dmQ ʼH]jTi HNt"/jgܧы/X!><"i8+ 8=NYgLO$/\79)׾v͆)ۮO[+.\)qy"HZFW�kpqu>$ !5D8Q Y{x &//?:|Ij R<pw]s|81'Ԇ[*̌Κ& ֹȸ}wݲ]+q|6W~1➄M{h"HYfTԾ'869oyw.I()�OW '/W;yV\2JP02n1O Dbb7Hi50fwJ0H^5{/྽XwNZk"bsv(¸hɄ}0vh 5Ȍr)L\@p9Q_TS ,ԋ,!AZ~k4Wz{hȜO~E9Ӕ$|iG|KbӕiN? x}̑T+.t{&w'IWŁhYi8TWw]  XN7n@vkm: G| /{^,M ~0%G] `y $ن)#I3F]Ӝ%o&뎱єc3<>>Oj5CaR\$1߰uߐ-lsv-H} jS)侤7*5KRAr>gI;oťv A3EA}:fu?zٿ, \翊?앒d22vw�_KT<U䃔o70N}* (!}ra[=*&lvSӕm бzWD&:{vIb$W<<0 vN8bD:yl "juT^%7p;}Yd!:w N|jc722с=:{ N 9,DǯX hn޶Rdp7.{.=ҁ3ݛVlS8+Cz|7E~;_CEDn"ܝBʣ'H>|ZRFYy0Ɯؠ =ΆQP.Xu{6p2%?oC%-i(wN8 I_<g'ݳ?vN*?+IvzȉM[n]DO{z4O8jz F/ȥey43Z{Ϳ x?ϏN"s{c`$oxQ'Vq{>pE2ʭ2o^I q�`N>]T 2-i~M3ζq JFڲ<Rkg#[lDuDp[Y!H4#D'<F )sƦ}ȗjH|KGE�}U:x%G @Ky,_?)MVHe�oҚeε u+F/Yq.D+;Ш-*3+7,aV -zqI:$N;쯇[ __d#rۃ;ďTӻQ_�Ir{B7R \b m[V|lI>TO'RO?9IJ] }~,'w/'/@H [~8iǝi] 05srb]b?!CEק{x%w'J�7^h^pˎcbPc 7'?](Ep\W`]gRdk'R RIo'bԉBJ4&񐐑v )+LGxvu >^D<) [q M#=&=\2{ϿR^y LEȘE{;t$7?E6 DYs2kAf#*j-S @f8Ck /R6 G z\<#-f!i <;k*tYq OҭݱkbT;L{5:Tt{5sj`X3IDe_%EᔿArhu<6<Yy<2<Y{ax l󾽕5Z0'`)1R~|1Ds-bۢ^1 J/{wzC[`ಥZW3J\$y*@FEN kGX"΋]Ȁ9F4l]]÷S?5rDڇV ̳C j\'99 _ >cR{8[B@p8CU$ǯ4QDj:g4qoRE=s#UHLW$ 7eg|Rx M޽Qi R-N2ܙs9Ęlx oM'֋KV�3[WX-nRWܪB$ NHMca<ik۶y3:&!wdiCaH[7VWM[6/jfF,E`E1p -M} cjYakuޑH2'z$jm֞1gtp(XB#OsA~OsdD}ԘȞA*Nz^^>;;zGr\_f=aEp',jHߋwz- _AaV9$/2MHz{HpIz\M!sbʂ!(G Լ{pnH<Xmr.!i7aԈxH5>j6)Fzg'"� dTƜq#|~tB۔v:6큱;[ M%O$V}YֽioYH +WEз"ն[;`Q.{mtSkKopL@ziyH yMA۷{bM#HɊ3HɶWe (L`"孟͊@whX`6?:iъYA<t R w{ut̖!$[pݎO/)8?D#=m垷ls{b4?&^Dɟ~F0HV^Mx MH<92iZMDӽӎ .3kHj8i[;,pq=g}# Iw4SEzн+OS+RBQ^;w!"47Jal_1 )Iw܍؂tPu0^s8h5~mP$G26zFxWH3,ĕ 7v\wkςEr0e}5NI=lhdT:zx'`L'e0<^HWXɊWXJZH0qw BӐȺ7,Eد,#zm2/q +/Fed]B&g/@JUkS7$sn]s9 )[> +P;;͝?Ն eRM\O=zteAPUϋVFJvOܫ #2- RJܳw󞂈ZN))ᔒ$\m)뢂Q 5ru$ om6'fa\D_["ks#ȇ2?U}2K潮Ρ7!ev0`5̔k YE(w=wf7`)�ʗGणfJZ߼A=n�ߝ/!i~[OsdIv5eI'Rڑr*tYd`EvoO#$rm ۾J5p:z|nF ]2WPҧ1xQn5d8 !l0} j$mQŧg͙Ρ҇@;i/쏝ѷ+?y%W؝S;;n <35&Q7,Er˜'<PwM ~% -9BA*6a�Wlg4f#);Sn;2#w,DZ__:Le<xsM*8t8&EF%SM3քܷDD>۷~|3 m(I}u^mgݬԃ (I)< c܄-A潰c}Gv \ KP,\f.=q~i<9齀p'%MiAK$%!s~%Hs/T>$S߄l1NXJW.X+O{ /]�yS YX#u-I {|^Қ{#LpRɮ&#9ԅm ߇Y3 %bv[36R^mXq[:sH)i*0YHgd**-례XM^V]&QʅG%gPo5^Ea823?f$=*8Go7 <}=�Yrͻ*Ap m5W:pPπUWI} -kT!5̾<-!H; Aɔכ ~%}$ ۶,Qx?_x#ǖ UC3`򱵶7">7_lԣ@uM{NaP >kCPtb<ܑG׬%Z^ڐT+ڤΩ(H|8}}d988+텩faOcZSGڍ>Sn0I2`pEX ޽>#^~FSHZ}m:"g~TgbD9 /0ōM Y 3i6 qd/h7*Dk}DyLwEe<ZQ>C0> T{c9kNE9.\?9k§N|YK_eHWi!)%P){/oЋjp;ڣF׿.I�Fyϧ}<P\1K;>kB~tVSM]ByQ n\3AիsH}AE$I>7eU.c]ۘ=u)ُ [pG+*F\k[ 겓'F Um;CH֝%|Fǂ,$tLyN3L&7ٌ<: 11k^w]\ozUx![Ą3H sl{H\g. {]@gq^כمݗ .S,Hɖ~iL}8ϗ- <W}PP:٩HGaKA<x-˓ kzۚ=Iώ($Gbv#ZWۥ~_ @r1όDߤۛt(Kޱڑo#5ߚ Qy0*o=>I~XME% xߖ*4P>oZ$~2GGO}FŁjզ *>q`JHv":08H]LeP֓8v O [$=Yـst2Hf1硣6}<{$`5lS'r;?wld74SG˸A!w<BjѢJO{` x0yeqw /ΙG[j*n @Kg9�R"]A"JqŧoBh@#pXe &UZARuoiwzDw]Aq{7{]@ps ]G?҉&W`lvt2h'g,e?DZԤ% ;@R{H0fh>%{. |.s՝4:qخbCIǸu,B2KQGnG9)#T7MO̷]N"ƯaC|M%[QnwhFv}iY!M?_& Me9q.&0$ w]u`Ŵh,�Ibpyd.u QN9I<&xǘLlq<W\ZzO8Rl1"W*zb#}q-EH޲}#{n.ߧݧ${N>3"ѳA܉?铸sOA|౽n^.E|FiTŰhQ&k]<c/nY2.:͍ e�!יe y 5z7ROv%pH9b~mvo, �7 xG9!݀DہWi2z #wIÓ͎3y z[N UOFCҥsX6iyh"elZ~ O߫u#]W]΍DF+-\*eX"͡ҊMpٳ)= z7,Tww;+ ugUǚWutAzbJ-CJeJ`}8C:?Nڕ']~{mӑ~{4D ͥc zN݃n,4ӔN_Z Jn5k"]l2llsvw屦["#èi¹CS�ɮz{6A-o+ˡltd;䆤W=S{Ԫ7Z]0ļukGpo |<t:㿶X xFڗ핪//6DVd1_ DŇ[V!Bo ϡ^{geAv?߼7NKD(ybbsfAʗJނ:HP͝ZX\w]B]ZAh%K ^w Z}cC>ex)|ǐ{YpqMO|2+ xt;݋@s6iʬ@:ވ$Ϻ;נxCHtQL zg_톱Cw= ׄ}$*ݾȈ_L&E{/*!eXiةHܵ }J-J/d7>qr.M6\_EGNݜZ!˱~f3?kFM>^aL+Gȭ�Hm:ik:wO836~?>Dx;`iA)rNsb]tS5]Hka?ly>Ck!pO{yt1+ N[{@Th?} {u~b" *1Y;=XSOQ2|%8ω% F/ 1a]> ƞ'HFmR+]nIH]:YKtǼ/ xԬs(`(H ;)zAKW䂛 ZS3l l']D[99*y{=�Q`үj5  tPAps)y K.A], ] ϤOW6CZ$d]pc1u+MAcp_$ z6 XK)�/3?\*iT�οgj_H=utv?ܐve$d :ʣLg`;DC=.GvfrҼ7 -#5)�#3V^Vv{ q<a|! ޼G+ ~iv7=yS`S_AzTuH}ٿFδ=E +i)IGjOT72?NQqEղ`<NC0xQ'(Hqf(sE1prc7rK#(0˧G*}En9r{ ޞP)z->m]nCLv꨼j"W+`Az^W/.ɉYa̬ Uqgo!Iv*|N%s^NM`'!?aT>wɋOf5f>< %Kڽ7W7I Zkc6(O3 ɿ֗e9P<YĪ=0j}; o.JwIq<h%pJ}lAkFGJK% 1A{ƵFTjG SaYFH}cMاOAY9D'2J]@>ef NY/p݆ Ǧ>$iO} ߆K`?D/?<)x"<զi>_Jj2iʑs? ${~3wGȱEBGΐ/F6G)24Ms?ESo�"^L_rXuH΄Ɉu #=jƖmb4ډ1d=@RR R~eXF1Lq9 2ow'.Kѐ mOܷ"m{ԻH|jzc""w~2 Qrcf)pɵS&}K4f*10!D_x8Jy|Jy"7[74%ĦzN>475-Dm?~;c*uv+6z +:@4sSK$/%oh:| 9 ܶɧdfEATHB %0ܼ۴~Ha('6 fRbayst@xZ~`~\d'hERW?+[w:b 5%H0Wf@cykG�kBkAlҧN(F}~%EQ^5ycM8fJ%  8aڎv$t "7_Դg~k[KnqUK*?v8߀Uzg<G>lcX�}EdL}wJJ43BUpFz;$Ƃ!E|-ۂYAwV3Y#}> %WZm*pߡF듔u=sǵ \;m ִn/p/ށr*=Gɛ=R~XKPs3x!rJLI4?L O i^?Bz|BT)ژb�=q ^W!hb+` I˞  ON02ޮܥ sb%øW@JKS<54qOloY03ܐz&?./npGW^`Y ς+VVU~*4w�R7b$ η9QRʂy/׷En _?[D}߸oݝ5ݱj2F,=;wP<pQVVmW7o;zg"p rAzgq�5U=x7^-ܽc9 ^_aä/LTېWEuy4w3yS2 50N!\Aқ; �o0fdr@t!S`SXnDxi*^NY_p<Nip@th^foN5n> O) u'㭱? &)H-4V_T #.x]Qn�AfAuClws6%uNF$ݙ3-q nso{ R]uٚAFv:1co7φ_(H/&XO "+e?QdaZ؎ $Oչ =H:;&v='|9xui>^{zPBfLѹ:?wr+2.:9\ 9Q"Y~౏/vX3g۳/.{3Lw??HK9Aȳ~}/\oJhcِ:X΍AK۫}Jl�|ͣy?[`ي~QAATC$\VU9[Y}y|>P'�okqF$-<> 8V񣌟]0\8" COjS}ܯ W8P|iٿ\Y)Q b281@(5otA:w:OTe/,=!+;eSYFU§Tfߌr3.4r@`bjQp?Dk%(- cG8'~!k5]<e9kW/|fϵ' 48jac>&2+91_K2o}"8CSFGфk?b]SSAk`@Ju: Hs0ۆtaa{JOm=_5_ Ns9% 8</dfx-n'AsҪ( \А8 ?uΦu'~m*xh l)/c Gۀ;hS+Sf7�iG~b/HG/<Gˠ``2ڞi|esbFQ_H[Kϻ ˲o_[%2+or›ۦI a|߱G#vMVݑ}2]0=_,Oխ(!8ez"NZ XB6ы:`mRB=k2YځsIxd`g0W&Ŕ,:@"88Md`aX^iY}V\$ ,]YaGw&GگiV/GX\>]C&kvhſסF?,aȕHYwoUgߚ&EfEݮtZgu*ׯyR pNnd!S|Pq,//sg3$FtE߻[D;i<\\r.yu@:[MvX/лeC<JHO=K@϶�[N۳gw~5Ue':tNʯa>{s Α$8z Ž7BݜKDz t|c"\җ|\Ѣ!7~$9]z`|9D+ڤܕ(w3UʹMd'9|\ CӪ߀2vl ß\c \Rm _h=Bjo @cB$skDw,_bƗ`쐂0u(AR(O@}v$ ɛ^%/;A٨GlzVh5$];Gm3-R- u_f"[Lt đGq\Okr=zyә~q3 8p#*i{G+Qg/S-Czl\ 9K$~xpz|ae^%qШoHJ>#^P`E#3G!yw+8tI{ gy,G'nZz:C?!iߴdX8FW'PAH?\S|EZVPHMN. aSO۹O!Eȉ~Vs~򖉤ɖQ~mZhӑ&nU:$;}.Tu*r!#3kid?D;_mj@:sەZ`^n[s~JG`PT}sHWo}x=;O?;y7 uKHpie\+"Uj!tqiH[uW9fbq H'0PQn xuDBRqg"ռ}k$ %%.kɧMB˚6H/?swis;)iH9ϱNcO u|-B^blt,c3 ܁:�sg߸0ʟcڊ䈳?vю$AK£(_\<$ DcOھ?9<h c-ja~Fcfh"-im*:Oр#hb)gČDW<퉤8ڬ#s3ѝm7Iu/ECut'.)e2G, ?8l]J~wj= `ñu@FAW AE~v0hR|**Χ<%A-Eex {Qu:Uվ�X} _:狐?ܥ+ԁ`FD~=l }Z;DYF7JӮ 9LAFF|w^)?YuX܋Yh 9G;DZ=G:AxM+]:t mtHi)@L@`4;ڤu+F(0xwL6-t fV@; DI^'Zo i+&js~D6~X.R]o'e.2|?#^r'=qbddmE#k﨣ܵ"`tk`R y>%cϻ@<ZKC;YXb;\˃pq$\?l?m.ʵw1�){^?<9qH{Q!gOm9<Ld +sI*g)G׳_Wqd_+) pXH>6s:a SOrlw$ek(7L7XZVȭǣ G/f*QbA$dfkuAxxoc4Ni_(-M ˆ`4=7A)E6`֠R%|H|s eQOQ'w<4.#ܳ$_qEe H\GٓH|P&MY@i4af=\kܦ#C<d2*xO�BiH9 =ҽ%m; љ'~S_{0xŗE Tv͚/\O|cW. 'd$ ie~ChοC wy(wgMC0N=LiA `]vunECµ)ܡh98ݛ^~%e  ~+x**dc]U[łd[ے |Zݷz�*X|罛H֭ϋų�y~%#Lkvpn|iݖ {1IR8\!I $G:ٻMG/H:u+@opw .܊G …"$.\WjcKK6$|a0`hK-U[3^!߯j|$?8ҌZ¸ƹy\0RIv8k-G啢'V�7W}xRߑ]~gWNpZz*j\yRyhoD~<n>Ʒ c,C դa(1qWAix?ָXֆˀ;or/{ oSbQJ,VJm's~l|@RyH3>$^0):"o~>i I7zH\Qq>LcLyqw'unR$_y7v= ȒdE}~]$')Qo[V d6Ԏy@xKRO0gVS!%~CBdL, [wf"" jRz`~8+s\wu.p#"y+H? ɨ<=.[04"S\e;$o &Z灭2{7N,r 'H}B!XN'j5ҶHZ8TTS}PwJ3 k5^r׋;qQʹږ .'']աHywW]Zz2f{.}F}k8:L_ 'χ >SyXZƒNDkv7.W{*WcT.r[<m?oW_HځO6Yz�w q!Z=on|i;Qzm \7Dɛ@ha;_RHGAT/|N%7+ a\ҝ+FP.N)c2ׁsľ)oy#=&BsWC!<240o<>ԛ=_.(H^;au/9$;Fq\{e,;lLAc*^mkCd9r| *:/"x֕i ygHխ27qI[ATf>xV3o+"]qaV mɣV4CMu."x&L˹7)R.ﴸ dNzr6* t_ӯZ_!q*bjToNU~BފAfx? YNGwP'݌UWy eV;@h50 lԌHJd)A pkag#ꑽ1\`\H7۞�hkY2Ɗg:j~Wߑ6_=~^yjb]Z$]u6Hd];,J` Sd4lgy.!=N"#̨H Q7 Ɣbm|8K]ThKGƔ=35CUe[& R}+:zQyǤH9xW n9v_UN'OGFu/{O^19M8ܮNOx ?#Uwp1wu`Lkw-#7*sw>_hǜĘv(|cE< Lً5x=QWDBT?(G!Uj 5H״Iqte~ʵy$\ލ4u<7Y5@ySFv"l_d^(icsn~ঀWHjӽ僜㗁wK:`}8v`M?C$+Y8kGCFk#Tb{ѻ;«€91)Zn\+�N8OAҌH\<3T8v&%?~#{ f�D=#R(;7i6t $!z?o@muA3'ޕ$s`7iG%J=<\|fB z:K:qL焤I TR�YQ�$1VW &UʐJ$&x6sAw)"&6DR:nH宅ZQת>-ڲ( xms~_lf&!%a{.dyڳ3ι eqb078ds�Ve7AGܛ;D󝓶A) x5Qy)z.SUp !K?[le6+ܨD F/>~V O8 ttTh>Hļߛost+GR;V@:MA@f[ 7n̤+R}x7H&V~-Βa9Nf?9 3e\_M.V�Jgx`}w�i76.Mpv[�~A)IH\gAw)u<8X)k(`di?̟Z8 xcTj�/[0VYpT}QfoMsfrOz&eYrQO-H~*h$oVyi?OΉҀ㽗g',MaHsM+Isz#Ro\op疕X\Ee(F"t" Eo{wf7N-`MZjKȨ[ n?EjWH>1ww-}A5k)fi0& \|707a;ƫ5;>9D_*hwǑn0/"NP{6>N�kYQS">E3 QMqW uI3чrc,oܰPT˕#xp5I'%羕 Ϙh3Y]Y@٢Ջ/ׅc沖(7QN,nm̌�᫳Y*�)>A/jz *hpg:T,sQ4G+PY{|!斒G:K-jQ%ngpPqTSγ ۵-u$ϳɧ+eo){3;[%|3W  Nz47W$;cH)":W$kⴓ06;~+Hy[^$_x (3䔼kX)#y)aH;8aopv Nv=ؕc9%RVְMC7$?~iF:,e?J F'v!t++EWE~oAc%Kou9rK _i&!ڒѸ ) n ULٔelvPDrd99k"zA$Qva[H93D\bd0ϩ<] ڲD:{Ÿ+6g ^vcZ$^JN z>gS+kPT6(8R'BY뗪aVudFUsZe8$dgoi /;۱v6M 韛/6|Aj&gɉ08[=LNXNO<Fޢ30MJ$]ޯ(?9bYK&e2d<9z d1OWPWĨw>Ϡ&nI#-cqgYJf{Hn %z9# 8{dIT?y1Em+Rr\P�8i72'N9F Edm0emW8_~q$+{NӇIZaӺTR*=t`l<;!`=05|?<Ayߢo#rη0ӉVMb~,/ wJ.|h1{yy˾[ <| ?*__1s>GϢ)\-fujWR!}?+alaT;3I!]{"U |"/ ~U~6?G$VQLLq{{Ip{# Ž\@?sA?U1}|V=YuҬi5eYPa}H^[wenM=K̚ NPgd|Ndү7x"x*}EH^ﺟN5ܷĩ΃ ɝH))~ǨdJeJZ7g^퀻}ljR`:E1lX}[\n8q%k˧jv!YA|G(mNQNZRp;9R&%N;26|<$/'v#5FY XاxJ7#~E˘]^cgl{Ӈ:tf X4 R6AsiӫQ260Qȶ}f`h y~19*gp/R\WxOɜ-0w+ _ֶ�^2 E1*^0aTg$(YHWz[ B?W>9=.*N¡@o7)~f}A˿Rn3.ծzG`FVێ<IJoWH)o 2`eq"]0Tu) .R ->N >qN ϓ,g—[D_3qyHz=6R?H{bkgL,0~V<x C; /!l\rXfRW\69 33ZBx9>ִ5* yxi?uQɳԐZwSW\,:8^\} pSi1?2; @xt&Sf; 'S"ƅH}mub9li.x+g(o E\ߟk$ _(\u}eR9 \-͆-H7?e? Ev5 .V9tDQ㔬$\tI:_ rLx~$?rd)׾EAg;^Ø11p&oOv,N=UCrчrAq>!U~0 M"pDq+Ra':`'_PBWkߖb| W.Ly.M Z(Q׆|^!(wj!ώ yaH_pA+&mj!_Y) ׻$cg@pK"]lOA $͎=IyiS;`Mѻ^ uUZàdz-(e7rQoG/ɀ;hY{vuJ>I ߧ3HlWWC#6_7%)OFmlGH<3 ,tJ)ZNjt4y<mKG cMmq @`ģx^?RC@Sޚd+ xWy];X+/:" Wݖp9o&?Xc梑V}鳨2`/1݄4&z|BF̲%JAf$꣭pKe!ym#%r7pT!g*H-g5"uaOM3\7S9~et;6"ݮ[0|!w}P7$hf>\�ʿ?`ӷdw]Aǣ:ґY2`JGN 7BrNV m}F:*x\xcKyإ%[`|a_ KD?K+VD˓ #% ii+o֯ΓQ0'p/gg\{I/8\1sM&rˌuHpq9Ҕ6t: {Qw.TZ0]d|fGYkI!R˚y<ͧ00F?XMS;f'['|tMž$+>LB- <W} V$Z'߬B+D kc齻(1d/- gD}yc,Er~_<"rb᧡wM]\OMA0VHE `>$`$)H9Ծ'Hna�2fk&nT{"/7[z=TٯK@T-Qd]4`l T!7=F?uA@7MQHpzo\l[_ܬ ϵ :0[M4M$r#3�;~bՋA8cQ:5O;+8g=YoyxgT# muz5m_ici}~ͷ =�NJ#R+|Oi/R7dz?Ƚ=VIw;T79HϚ{&85a]M6Y3F_6fH&݄rmD9-EH+nIC4`<Vb2RWkLĨ06ŀIby|GH2* |8P-#IV mWR7)>!8ϗ^ϷO@7~5ȆoM;rVz|BJIx,i. sA6>r0ӞX?5+~t6l׹EiA`mU9WWIKFٱ@z޷:L{]te<O>ysFZYLʭt74? / y!oN[4ƪ`3 ܿRjc�Oʤ+:EAa_9} vaÑT_`^>aL9y ҂:S %oi,~wTΥ!r#e@WYE΅1~QHnJo YX=;Pΐ8Y .ܽQWο|xr:[(a v~-*Ϙ}&&^ ;o|w[mpP__ߘV97{k!v]:RUZԏԞ 0?t_:>]x)>i�.g;EU?Rt`eie^z$k{j#z=.CE6{g~@tCڱG AlcO{V% ::l@ʿaW_wl2 įTk7]JLöO :=u 4 ܹl/nA[faļNh*iyÐdKN}NT.wY-Ǎ 9Hs{@;AHp/)%+ΓRX~ ɪK°}} 0eO-_'rR2GwO h"ܒ `Le|5_ty[Gbm`o'ptΚ93-iec׀o F* eƟR`g<wL| vwMB2ڋI+7Z6b({Vi/u[l(3R[{aH8%9;)HSpU>_OC0VU>[k%ŰxO3"UcSugOu 5_=,fF]|. ƥS&kɮ�SZO(JJ?O,ZzuPArx i ,w19n~?mQIƌZS؜ŅFdf6;ZvY໴)ޑ |рҞ6Z'b^xEdwk 7{pHE;G< [ډS2V䃿䁹 .7P?~.RVW/ЛRQPl)[SEʖn]bf_P!dYK(X7~䁨qOY}H[ubYo|ӲG7۸8Xyg $9_u p׽jk O;7Y 7Ĝ34{!-Úy~OM&ziؗ]P:}>2ݜ m~9vHvB9=^%}t)h:8Q|R#dv zX}:[Jy{5I_zo~Q\ep6xx7b($j;d3罙z 3�繋LTd\@U#Ѳ) 83p* I#enQCHo+FJseH rzD`kޝn܎&s[_Do P�IaAp8?~T=$a⟁Rsv!{L>X`(B3W;%g v,WIOY,ʞJs̷w/>t }Yxb /*k]SrINbC?˞Qb}Ge V U[#WX iGseznߋ[ʙҫ>!`J^|LZ_?d3/3zn,\<Pǖ6R;V? *;=K@z|~%)Mh[ iH:uYCHy ο mwosۇ0~jOᬲu@<yo^7Hw;g؜ \-+XjKLc<ﳀ-EDî a90Al Jt 7 gpr/f/0z</7!I=pj~5[ǫv+dV~e:81NJ"ցd_{vy̵kA|\T4z\MMk!%'@0?DotC#G*H5$Zɿ?a`yU k pV|4IRk??;#½J⎤ .~`WHq!66w`W-֍vqwvav5Ǡ 2D/`“M.YxCTTO=1< I<7~Jt\+A:ߏ;xك96We^ZwH=9Q�L؇boUPrϳsLi`FUHs׸'mJz'lǃ*N#IQ"s Ap?HhϢ\G.]Қ)s^#D/73\=+,)"}~w&N!|56adӜn imQqw'7f GUض )IwN/=k_%mFWY_/qQہ"}Bps2%uDpVLXş\t全Jcʂv0a}cdDŏLHO|>xǤFʔ&7=a t6eܾeDxAqsjL`un~gI`RyY#KHަl${›o�~؇,$vWSᮥ=HlZ%H ҍ4 K.+d"pS8lKLLr?GNg}7`: j˧e|D94 uQĴՊ͐&Vgv.*5aɈՂgxhR%~ l fV!'AWj@X^OM\܊YL!f3?QoC?St7sɟs_cdgSm ϿMC`;Z •;mTEB�Y(*Vʝ&; A]Qi8&}_(kY}R^=c5KzCكسUDOa|MCW}=^SaWժx~զ$#T uS#1ʓUb֭H |.�m% EڙV;6O,qV~ҶoGOy"_m[~uLv= ]'Z78h3G5pN]T2qj!{c) S\ZN7uI2hI&[d 9 *܃rA Mx7 ɇ Apad7(vk" F)W#?:@)xU3G'5=hp7 OZ9M {.kAxgy>1+7,Bw| R<ǘ v_GUu͝H7\4,?}AUHPvX7<ndCzWkW_[iw#2e&AbL¸Ս߻Ȭ}u%xTkbHXg'86'b‘AUن+Iu #dOK!3 ,8xXCoMZAsbQ7gmy6̦gTvY7>|2#'5߯rk d2 t76!}үoLDŸr}<tX?sWdFWyTYA)AwcԦGJ#5ylQf#st{s pBr#.**V29kK[Ǫ3 Nt;✼//Wߖ:+O6M8\ʆgk~Hv=<Q{�\~lԼV sM4�o|FE_{ڕs7g|JsTv"9Ɨ=:$N&oNڗlk+vB Z|hr(p^Nl9ۜ@㩩/ϣW{]k5'\wfR5WMF7ە >b-__ ^nHutPA=mT9 b2#fߝ@Ga˟Y*鷔ei^ą2$ɛz&mSƯ G=]#0�.MSSpXYxp.9F'Qz- %aW?: W蹳j,{{FV )gсu u)г;H^񬌐a=e[s10yXہ3_|AI#acvP5:F 6h -iKj,+H!?"ޘʱ*'mϗU@493e`/-YvݵkOSPKkft|vڏ2[Clw@P|$)0Ig);޾"rQ bHZ %5@PJp#vЖInP៿؉ޗ#'BS$8xa}h!*^yo{j>cռc{zXl~pU]3+<O\Fr39Ez5WߐZvcx:RU}ʈ\RD ׯ")uKgF=6�(p^)_<raoͬ[Ɖ#q޺iL6Pw,s`~ 0+KJ}7$ dݬCHopJ̓@ZQN H7\I@)fWF-zkCd4`,][_iH>lEvik79t&MS,A?2,rm;*x[6I@7}*HVx Ҕ/6mAt|mM; veHkIo1c\<mllg$٭ |3Q3U1м|ZܔA0WG) 8fk.�M#ߐTvzaѻ(NFjnV$Yܺ$۞P1R<uzZ 0*1Z'(Wm:?"u9/xOxW.h �h{~] /x}I}[t PMpGF,j'<i361 4tͅ8ax>xn4-CUu~ɍN~߁ g Y&y#/7U}ݝL8`5(XCCN{JAI93DΌxGܻ+uNsp' eV p?ٳ _$[$چv"՗?E2'ϪAU48kƍ"uPhbS8ԧY7TuZi*6Gy )[J*2Rek>6|fa ݿA_*@< nAuQ:^+p e<+]q2'9cH1~4f WVlTBs!|mK`SHˎ/-vYcO޺C1pndDʇ?IU7ܖσԮR x}H&(D?f?c%H9>/2 7xόG[&L]$O`8rw< :GTGL6R/~nbo T-T�! TLO.<H}'y߿ѸFE1\Cd}87dor8+;)}{g7?�ݞWwgl@$J! ^ۀ>m-my+ʦ.G`0y].ZAi7ACX#?%S@HZ<CJyMj R̓>69N> D'D2[g;);vV/)#ſx燤f>kPaG"]%FT%"R-"Y<2Ӄ8GWHKϬ^jho_f=w}; O?rƩ%AdJl[<`ٖS:_TR.58D=fuED&p>7U/6N$863,\Xw^xϓ<Mla,#4T#F0:Z >ǃo 答uAc^1] ȗH@u085Հmb0{ J^_'|\Mm$6FO~'՝ }\<8E5\NNkD / x6&EƂ[ Y!~2*u#睐r(2r!0~Ck?VWm]u i5.�V6<HTc�}=ܙJ`k ?7 oUu'~?0F(io52ۋ_?ǩNBXEr؆Hu&s5s|n#Iʔٿm$< ]�Ď`Z=AL+=\w<cWgZiE}|폷< m'%�ȑ ܳvoDZj_$k\|,^wwΒu;,>_4 ڙ;4~ w;/D6kf/H#f6 Zh wn7} 2vk R^7̽c51DX[g | p.i+H)o Ių[e 6 ~r9N μ ֱsߐrLO621'=]2 )w?;æ  ق} ߯_YH?5?i׮HTt #vÍHj,7sBf$<|;_(=.CIOx~~x@qdT|>pB)Yԋr;R|tG놉Sg=;@_]RGGL]7BO䆉Alfeѻ|)fԄKbhqX? ԑI EZ5ǑR5<$㸞`ԣhъo s~mK1LK^hGen.-Lw54i݅1HnC/O*UE_vmW5I{F՛ݑ|O!^Nq3R~8|s/,EJ]yC-A|НŇCsFwQ Y˽N<h?$ZAJdVי@J^a}U3@8p2eD*dd"T!6en+jT&"O-7gݥ-z@/>hDj'G`nW| G~m?놞XXC) R#etx-JOi�۲L|H x]n9R\kJC9FPBۨ|zti+H)-]ф׎hT)WE/_b�fqv~᫂]:/"I|s?@2o˘Z)3 }_fAC`1X79#Nc$&7X"`' 59%| i%U[ czv23<þu1"*ΝH^*RgZ)꬜ü- ~i2N5ZP {۠W2} w56?&j]@“0vyН<c؀赎AZdof9oCC`dk] s>Xe޺:3D~[b4riGY[99 [w }綜| `r ~kJ}nxe g�&uˎw gDOVysW[_ޔO򪭟.ꤺ x3 Hթ<- x 0z[.#rJ v ɩa*> 7una~bYܣ? O-bg)gVc /:V#֕9jA IvZO~Ҁx<0'yZEd]F2i THS<|NdN&ra/o†>ɀixAMŽ?k[RmH]OGo o|+5})g̰XVSl y|#ȼ*ٹ#[HһcvS0C/]%q-2#ϷqkOdO=k( |޲иL+G┥-<}Eֲ* YW,*G>YNm ՟pxU֍]DN}{,I)|CSGW+AcsU@R|Ǒf3,Ѯ'^DOG\1@:=S@7;} 4k Ad[{5Q\qH"kTxxe*ҿX9\Ŕ.d</>8bcATdkT`YWhuH8VsُAT3XɃc/րځbg&C.qKEVUq?U$ ee7«5<~d=bnmZ;8N=H-ң__!zH)L 8e|ktIU![ɲ^^y F<l:fm[\GCݘ!νex KVsM9A' 7eyE}^>c ZH ~ 35gl((9 *<V~b 8*ʜgdEpm1dޥ.@ʛzO52K+0D:X�Y um E- 5+0IEh-GRGY+ν#YRECD~TPzz)q7O%\k‡UL-7z%ֿ7߫u7R%6~�d+s\4Tg KLjj0݀J(Ҡ~AhPDIE IH*!T RIT4{[/ k羯<kCGO?mHA*V,:}2o̖uh"_S)qsy D<t٪|G-N Hˆ#^p]R,g~; "g ("DP5~sy%RmƘw0c+~9(mVo:4XpZC?m액%~5~ 6}BV$PrmOwƁ/_&1˴8J룏S^5ſ޼IZL V%ʺ0̐{#MzZIJE`h|__7ctEU:7JۺWì ؏,s(F^%n7lnu#W=4f5] ޺y SE$wNOYIX#R�//{.^r8l9oW!Ґ⭂' _-CY,D%pZm`LL$GDPzƒ+4dht$PS�湷*XnX7b=ֶRMn0sbt̛{.9pԈC$1 [@щp[;bϩ剘J<}F)B.,+v?#F/7ĸ]=5u 0Z9f2/ݮ0^�-D<o?P( R޳ )Q;l[ ߨTT 뷷VB8 `5e?~fwN`-u"o ovW@ 'xf wހb':u`ʲc;UJ*mYc@#~¯y]0o1/ά9Ǿf;AuDtJƼVO$Ru"]/D= 5cՈRs#/&9Ų08nS39wx`,{mOuPУC Os<}w?Jmy6[۾�3໘xe#g{y0ݟ۰}+ ?2 ɲ8!+[,_ogm ttԿH|^e#ym)V  j(Ax;ky{`$fyP|l;oe'9wݟ%9͌HD Q~!\d{,D :pQ/2%ߩ0a&hw'_VP.=Q!{-JK>|Eט"j#"rcnU̇5Դwh7;dio�nvɽǞzշ;ȍo )U~CIH3a%`oBT U]3 ETS=[>j:\ax'׿jXqde#17˱swǵ5"BLȧ~!l5P`s~5GU2(2.9郤33nUTN�Geaųu X8~x$J0gyJ""dzl3x`S<K\ JK9x#ﳁxhJ),~bow"Mp"a~~D8t&WV 10&;(MPAwK1x5j!7kSAÈw~/$"6]u~;$_B$V}KpDf Œu1޲?]UPNooe͸wwD1ؼUsxp)Ћ.MO ܝv},j^s8T'fFidS-D&uۭCICg@؈pEW#'.,VhlQ'{(=rw6EDEx4C\=Dr/tc9a;.d|m7>|x(eo_ "n- r3?yty+c&b7f:ϙ9+/<<qo`dGHB@(>omȊ.7Ҳ8]x=&K݀-!iko%m�'aSg/Dx=֤=̷W )+Y%�xcN$#2Z7O OŒ@y<"ݔ~Og\""JULA.D6?Iڹ$Zܞڅ%!<dkQrF\�1kb<Zs#Iw:(`wD>9yhD\>?s١�DɎ Fݱgk۽^Ww'{ә@MǞcT`wqtP f_^Ոz%],iF{j؁B9&]2[]6hv<=qz^D5gRjez�W>JuYM"C�΢msHFmt L[oO2nLѦADZgH<ٹDx4!42@/SC,bpe9N`fiQCbZ#;0jd(~lsw @!R[Ra0MoҢ\S~JT- ё){ 4 [a\KH^_ݿyȣO&wGԿ׃w�]29̽qbFsD8sg]߷DT?6-m7~Yjݖf\-{,@$7`ha1𧼍?wrKu AuK=/xcˡIh; ImVXxL20m sx'3Y#LU Y})=^J,K֚7\YYň򆞒�f.Hg ],`s_%6=ѮEUNڮߘp-^KN"9Mߢ %kycŭm@`qx[`ZjĤ2p0sϾ XhSz~ﱹ؊/<:~qZXYɲD8?[TAdW^r1fgꗿíCM`>ziՊ(B wG> 93Xj&T"ƙ\[=]_oJDBU e^viFxƹb+J`ieY>ߩ/0\ Bj[BQK#K`~ 0Uo2|z ?M١vu}G@׹|3gj':b-zSȈ"c}!7̆�/oEʂJjF'$ƐDDQmZO8<\ ZǮ(}[c\z3,sO0</P!J=AW۹B ^u97y 6_jIp]}kX8M̰8LC 4qa=KdOl+LGD1?u'D^5v�=|p"&"@`W ~p4`<_r/&[& >pn<3Fn[DҿEe0ŖV5&׮^+~xט; ]w0UŞ I1⩀Yԯ3 $%h U+.5mKrzߍIi#2Tv> &"KޫC tyNw9I;WDɟp##ED:dKUF~C�)%zCʇR~Lq}0N_yG- 7WQBĤ:CAܻX 'αA@\/#"NpAD nYl*)gQn;P L˽08kԣe5GꈴzJܪuPĞOt <`A^2D Iv*a{g-.Ū?~$C0rrIuF µKORK2` }^xZ.(y˳lAQFxi E5RXEKƠO slQ6" FЫӈ<~Vj1zFEvA.FKE}bXx [}m6"-*iBƍا!{p{>G^ݧ`w-gY+ApyL~zF Bs _DsYpx6akL1}?]s7˿0NH + qV4/UWOGہsUtD4}Tbgz.A x`<JW:踔f3쀈+`<R̀m MHJ%v^Y,a1*Y@{STa~b){ۈ(2! ;I-Y,J "oCf;ZZm Q X%rW~˂xj@W MGܕ wA $]0dD姀tQQX6{$$> ٞf+ > 5r7UpJGJLkո+K0_9nzEDchqv'$AmvݓqjcN`y8<tR1̬/Sz#$g).^W÷d�ӿ??n!˾{9#˅5_mByӭ7vKτjHo_k&S6y{s. ɍV?_~;aIB*06}DpO!0lFt6^-udISpf_K+ Q.p39)jPy IwuW@dlAK2~xk~+rW:xRǔess_7GfA4>}=Z B_ߥFDjqyi1ğ#tܗE ]T>Pg #G}ɣkfY+dlߩ/u('j zƺ@ͺ/V[Fp?4%.E~V<A+z㨎-L,y`vpv̇4b/p*bه6GNw@"_{ w!B/-D"ͫʏ%u~XD_K0ͨ<Ⓖu=,w5a=c29gm~r n><`JZRo'=DD2hq(�36" MEO!@N[ҟр'= otR@<8g%EudVS [oZ݅K" UDoVw,Q=~D1+Ȥb>d;/ xߎ9g,x쯀Hg^g#wU�O3Ƿdbp\m,Fm"KCsDܣtj%%�j"|PYo!rstKO Qk1#>,sŃ>_%^_q?mb;3֦{o 0K1 tْ65i rOp*辇on#7K ܅ӌ$ tPr$�o;2pG#Y˪gN.4ֽaʎlDplkXЃ<ȼ6IKVa~ag"?c4rr߃#WnBu{wi]dˈZ_pWC=Svup~�c5`^}=`w`~`}0+s/Е5v0y=pvŝ4[HimBd:E@pEoY7zW؋(UY&LnEЭ/P]3mQh`̗:F ~?0J "M{>7ϧ�'*\MQL;pz>DZT΀< [fv`yt<[a7[ K>LBy{4xfMYJ'\yps2?!b|a>n6Tv0"?~z}Z8/?½'9?a*o">iޢ6@oJsߍQU׏:`|*ǹc;0ؼ3J  ۸af{2`&ؖDFC^l.QmJHa(&a1"^ z@g/ ֚\YL>ĠCbxv58ۣu(LLf"v]{lC$R.q;{:>K7fSڅEYm_wܿ'0^n vp68k|ѥb+c@0~{5S�EZVj�\TC'K엉T, ;+iz»9$5Ɯ^t20!Agjq,79"[?1ΧF7?$!$O͇#0UD1WXR4j$Ə wm DS q<h޳>+|+W S>^{ٵHbyʈ0=m.l.K\qy g.֍𻏞.ü~c�Dv7e~`u*ֳSy޴zTD@_-h[@D }d9ެ?&➨|N֩M^X-{ nOR pj8Ax 5X(-ĸ߷D1sĄn;dlec;"^98~25n!ljn^{v WH-D< c Hm T#%+Ǿxflc)p11&Iq Rϴk&;}D9Xc9!ׯ^ļ9S|FnA7־ɛ /ّB՚Qy~ޏ~:`VTd.0o {r/W`o"q)·ΣTM<;ez(s%cjk%wI8 &Cn[@Y$i`^h{Yk)lE20~¾Euߞ}"N&"]ϖƥ3ƈҸR)~`(ٓsv+0\c5~pw zFyXƴH8D\<DPI/rTiEQ32p֍vUÈ3@I~�̣+m"֦G銈f:Qq ~m%p'<xe 2 s}̷xla1xl4NEomzs 72#Uؿ2t":Ğ6Z:6ra[Ol4̝׾ jnNcle Z݀FpTXS3 /?iK-ynՅq0*a̕pOda@; Yv[S w46#2ɒ SV1M)q]nظָB֦|Ѱ}\dq\ "_{a@R&Еԓms�ړ'I[jjR;bXxȝ(^no||/jy"c|a~sc9tme8"ɝ|rf/-pzԁnWyDYs݋\/<= љq?R=+"Eo!B۰ lK+ z!S]0 6ecXpU4]yXwT<Кv+25m @eѹGU0XV}E)̣d0:"4 ^[5?2'~Aw^_nV#RsYS %}뛋z\0hznY؜l&1|!"xu(nsv";{.�}n Xǘ[>_k�TdHM4<H1 nXo̔S#\YX˅,{4eٶ0ۿ2;$ycQ6>+w%Mpǃ-\B/R�5�N*UH:u3b `vaFBOGaj[JE!9o`0=ID& n+rt{ykh>hx+ITDD'dl F&_*o2t@8:h// DȑWҁt^0ιaQ'#wDi 4]z<S X}A)OG ml!kv_X*~PQk0`=z9ͺ:Dtγ}a-`f#WqW^4<,"0ۚƵ؂5 9ܗRݧt*j ,;÷HlVEWծ>{}R@Qq)[,:1"'| [o&+ұ-;^M´” XiG+&�#y(IFϮV\u3}*6b7C@38^.�akߛ3U-`6<4s=U앾7$犽o'9 x<t[#HA(H[> "tI9Ἶ@/n�JyI~ZH8%9=T 3S(M@s8e$3d$)IL?n; `t=c XJ灧93gyXCi? Iߨۓ Q+vۋΆf_2xT/4~8GCD54i[>z2]sM�q5KnWyrEv_WNlFFwiǃj}V!rUg8`$+s+az XVFS<% _ o܏pT~0>�\Nۻe71=ڞϻn"(Z6 <p|U4=-1b̎fZ.\m? FΎn\/Lmz" o*>}ߎ'%"b;s/U{~jTp  Dgҏ"W�aOo`Z/RZP(`C+7/. τ]\&VJ7!ćlXOy㿆Y>IXW}")wrlbXS5ݧj7< @7]qgK"İN-j|~jQklI`#>ܶ/X�\@bŪ(gXry~^Cr^,N|LSD~?s߇(qxUp9];쨕Mn㗯#xT$\=wLTp} 3T6%(OޭgH>^vSlD>R` FkXe'߿;;<sχ4_FxwѢOI_$ĀxٕЖ>@SeDs\Wfۂp# "pvu,o.і[3xC3ž \~~㺪c pf& K+<bݰv0!+~eǛXD I3CqmJM.FeԜ"P=(s:}|#JD;_Rx+i׌H)]!îeg$!r�C(5^ʿԉK6$#HOxU㕈|UJc-E݈h1"oXKQi k]zѣ}b,Ê�7&n%%_Dq'ڀ~zzvra^Go+߭7r ecDQ݇8p9N\:iEq-ly#b{s%4nًwz?7YC٪qE\&I@uY@`I!OJa~O˧`^7ծW]Z"~ލc`^s�wKn8tvj )s>~+"u˹<Jle%\擄M{a8;܆Vv3hW햽oyhiokoYü hh6OT]_ټ UL`U' KqfD"H\@ WgY\Yt4p$"aeBP3/,./`d} 'J/.5;WX Qt(^Z ̩;XH|<B4oЅ.z:uulN< m,s9o(k#ybK8KU[cQmgQ �GRɦ6~k a&ǯUw O<~uЍ- \ M@^oC`- zץ0'o 6kU$v9wbK6/C.Ͽ}ӃW</՝ByāNDp<�ܪw~T#Ap <Q2՜tq�I L�'q~,p^X:pU:0 >>лoX$W3|8͹{<OM<]^Hգ{UnG^d>Sݴѫ- 7# ڱcGDjnC A`F{SOT%!2&b;gFȽ8s!_ΥUGBw]@gaDiG[}X ·9X'Z=s!<$B e߽9) �z0*We �Ɓ?[{3H©@jqMh;�S HKCQX< 2ۀ[M&>�}]ޭl=9�\։&?'@0rDcc?hR˰s9d �̥f5!E?cY;i/J2ݵQ[SWC֣^.]>*;~} 5#sVD~{bo?+R?3ϟ"i/хKNbs_$uoI"$]Y 8~\2h-?@P`ld_ { uatx<\!85z H%.�x.p;R3u,!;G [r!0We+[]s/9DvoWp(Rv/&n7aFo;�[ 0ol}}DaߑKGdH2n;M68܁oVϏ"ҭe dD# իNa}+ @-k᧻!R Q,_$҃yw'#ohJq%rU,?Mr܉7@k᝜5&q_)I ^{$j<u+Wp$uܲF"'}'s͹=bb?ܵrx%iDddT睳[evn>Ge?݌L@ē_Y|`FjGVFlZmW')VoMDv՘;݈o kC7Am<r ?-#9o+ o,x$/>l?[*֦P6,zw'𺻳́m:{"m\s2DF$V8#z .\YM{lFKv"\?X| o%Áu.`S=X*F׽8'\$7 6u'!ț ha=В`<Da(mb; `a$$}O`)nǙ 4hts9kh 1#@w;Xen+Q,K7\pwG!5 D%c+]֧&IXprCD՘Y!#.F,ᙄhM$q^C<r1™v؀f6=_$n|9g;+!YͭO�3, W%O N 20z­:@HD?x(TB?(QgM?ū1Ko!| 8>)>s$q҅9i+Vm^o?D;$~{�|F}!·-O+ݏ5F7#t矷ǥ |<>5ݧs0t0Է/?jD7M{#"bu9 4wzecD_4Ӂ }bg0~Hi:򱜔/)- sF67>ޤ�`ɮgsgz[mڏdԍs-"sc,4U9@?q=;x_ >zj2)*5[o}an_x= F"jD^t/DOŗuGI7-ԯ4ȹl̟myUwfIFߙn`%xΕaݨjȉj `f# i&z b}!쿣WH,66w`yy&h{[.g#B\&7tJ7ցkUL'UgR 0wva xI8)2yyRT/#B죍SO,eOE9utD`$"h\AP2Y Oc88w<ة `!Jy+e?+WTRwXO'Q" RvȩDn�k䶭$6`n[2"=<\pV˅ZwW�y˪z,wliA 0k^7"ۮY B.F֚[~S- P_&Z$|S[T34Ri_k4Ț2o0taNx֎-MjN]Y=Q&@W2a@ n<Z5&]+8ELNko!5:ݨ=E ?XKf7Wಒo.^EL6a[^+u纛nCշ?ڷpdO"}- Q9XςXI s }*A3/w<sV4"ս+b!c_`59s"yi Ũy=&<VrR&齉潎VՖ0-^%NUBW2NQk-\di}VU 3EեInYjÐ}|V^;c-9&ɽ ^&n%OD~aah NgF&/T+?�l%)0IK|r mLaPu(\Pq7ea0m[]y"̨&bm^*?5t^xp!(aɣ:+ <efW? 2kr.|@Fkߊ끵ٍk_(HSLaqTnT�(! Xx:OF.ʹed+m ˋoC\{v[/ s'YYڱϟp^B #2 …kskSf[>U&_e+%e~ X|}ձnf[%5InDVy0K)X~Qt ,3舔.p> 0?D)<^LƂ3G2xv_)ӯc~@[V8[T`GosR?߂$QV7 瘩=D1ӟAăEG€?O¤IWc.>&:Ƃg;??ÜdR*G Ѫ?4#k~oZrWPwooHP^RY3?xQmHIݡ64[}p[e1e~f;em=$NḰ_.x 4sb0]njC%Tiy:\#*W!J5qG^5F3_"wb.0Wg-\$ 0ߣ610vV,`'g!"Z!Ey6 g׊3K/�=ԌKϾ_eӧW� lQ^Z͞1>^{珳:A?xlef)U;x<6Q{2[uqi?d_N<9Ɩ zvke7`% y usN3b]P*XG^xG5˛VCQFv,"-iysl_!?oڍ*!MU+j9-얚QX1hlbe?b> J|ln䓩]q"<al» ړ密#(? t$'?|VcZ˻`3�d|J%d\Bd9{Si<bY}ʹmC.WǾ숶x`Qk 4@YR@/;PGMu">jbsw CIX]^FUyd%?]zs:Mir`v.9x˽d|QwDYͱPz޽ZL'nH)NFi0>oiBH $in1\O{q'O|Qs`�;8%;,$IDf"]xhYUY}n%9J.?S^ ܀9ݳDU K?18lB@ >ߦTs<5ϋ}'�kHy 0Z0̵onm{]Gn璁EgL)`|gyYADlZy{n%gn?cV ٗ} sT=@#n6/h+C]rGRLNfUWF7p  gal0"]Z+n+WzK@a"ߌt"PVT <1'<'fC^n-%%8bS+N׺!`]-yk7fX crކÿ^%GL̋tz˰9>5G3N;s HRKޞUsFҶw?qFg</<jb z{cީsp۟H9 XctX<]?O&bpr.vE#Ȁ3ϝ-}W$Z7obYW^:Oh_הx8b3>6wV!JVӺOa^:h"o<P+ۍ,%~>f= "GDvĜwBҲM֯.dx3%X;(¤0c@ZS帎t6 -wXU[So Ἥ,D{Ÿ=&h vķ%*ܰm$_=5 fX\͸Du?{)IK"/ _@=ֽ[_!|D^<Y&}݁w<*118Oia, Hf LDR3r+ރx6g׷<7BԵ?{$7^ Ak.#ͤ 3USC NZ̏?ze<H k~`_Lɤ-S2<ݠX{Ϥf@8jF4Oc{)ΌAyR@R7gJF|XϟS{Z Un�Nɘ6;{/Vxa"w1s1}8DjNq4w4Zׁ $?> F?#钯Kŷ/߈,{vN >uu.?-UOk 5巰EntKP7fh#9%)nP Mw?X~EToM_{KA3^K쓍 5L`dG1BЌ-(l;nIr}.o�^3ؼ_#{ ԩ][,\lkDIX?vt+_H|0[ IşE#HM5i gl(}8:UE"0d;?t[l@ǝňe/VMeUlydm{n*s^friV8! *Q<'\l %w` 0D86ԷAAƎD||g{0 ӏYq8n?Ұ لßFUA_p\M0oux 8"POan "mV_V`|jq|%uZ@rnV7?{0仑\Xponǹ[#o_$ x3&Lf)¢i}1+b.AقH*@evΒx;D90В۔IG> ' QG&_FUme[emC}]7g􁽴pt9-?} MZZ@> 5"ת<z nuqR [ D\5`ǢAFplElOaVV#)ˠ[wFmH+ȸoARƚA9犤cSV٠>5a=N>0$w^V(e�+JZȉo^"|z4k˳~a~$8 m@d:_cz\G$fT`lt 25%k@<m�+@XA8eSXrV! =J$soo,IݜiE$]t,O { ЈX _@J4@58k7>= ,j0_t 6[fmZ /:{ I {�g u 3c~#UceSy!pQA("WzCmMɦC?TИͳdq*ǻ*޾ER%6kR}Ss&m!5�eWIEgqvz>_6J4#9͸jܘǵf/Iz}KS7ыEdKuq,4s!]qgY8Dy|?I? {xJ<0OQܦVغX~Vs}Ug|[4RCiW6Z`}d2ہpiJV@{"K/>Y>nX>wzZ3-s\׏(.?CO%.DbzXZsx!^DT Ԕ94K`=Ա!`]c{KE9A[ξ$]ز𤃓g#Do8}pܥl_Ka/wۊ+W_x q!ڐw�F_?m ]'kwl)V/(e!#W.xA]I\2:ݷd'=f{d fDZ"J~4]DL wjq(q |3ۗg;]E~HBƷ#-*ɞ7]T[4˟WI{^֪D)ڔUdx'D߳X$@/]Cd*ěja1/q5̛U<މcVza3B4 Ÿ_'G?g=Vg$'4jՆ[>3 Ǽ~TOg/3NFG:ia_y`px"~*x9R^8e60*!z=y QΞ]Z^SDv>81aҗ>`en}̗bUB8?`Rr,n_v% I} IY~'OSr?v`ViI?~4z9pdݪs/>#ɟ+d)qZ1v_FKU>}zc7? 梹X(D=?V["2^NXꔥ&IlL,JQ_:* tb!^V:38XIs׸OH8D9'3=RQ(o�Awyu.MMJEk$ U(XmzW:>M\mZ6 * ^ w2<᏾ i@p2*[u UN6"l-`=RWn MxJ5GJ10/�b^Y 5/'5~a?QB6h#ɻeS9]Z�"3擈2 0?\7NSw<m5۾oݚ'Z@٫b/pudzB ֋˓fGojEEx+[c.i^&M} q\"g2%cdpk W ^4�wfpl+Q 1N 8&e5ԷX.!RywUqo(DX"/բlqKSڸxsLAD!/k~#NF//]Y|w-)/7ՂC"Dݥ3<pj!y0T g \qk˥U}e%~՘iB}ňdc+:Ȫ3+&}\XgԺ_'!I<^D=ȩ07gRw!*JIA6RbFo{ 皝 Fm/{~y$7X 0qEwҖ] M64®&>jzFE5E V\;'ۗȆ{7I{AЕ[?D{R|bm5pտ-=7ƈg'8Qg/}͡v$}Y6yA"pkϤW?1GIUe*Lߙ Q̪Gs>j2FUB<a2)j@)CԾ ? QB{>n;FKewoCFm韑mic14)zlE%KMF$@TQe V6 C&_"DX5a+I_7ym8QO.qEyk4>.IX?(3>$qv= APp<VC aPZL0fbmpQ+vD+:?Ib8xkWMD$|0ԂbS% 0fl҄-yCd!ٲBD^X.hyݶ爰B>,w#bٖWs@Pee#({ffޒ%mHw^0oݗ*S㓑ݺgR˶@!acv@ Q~x̔,#{ Sξ ww(d5݀lً\Vٻ ? ?+ηTD-;HX/&H�O4.Q&\BDzo "|•77xUeUr=_Xn-¹>VQo+S$yd2Cy9Db9ZЮզݧ{Lb^jᩦzdq8ui(߱ԇ 3a9 ,W)B2+ޓÈUazYVm.s0~OxMKl3v9N_F5g.ͽD!gIq$-O})pTJɞ)z9UbwD\q n>.9fF)-T-i#B}›N[nxupS;:/96u23hw"?}_ꕏp9c7DMbsڸ|;ԡzѥ"N?; \KDmhYB tMH@|Nj7Y5vo S#dN1'T8vkQ6Q"u3{&+c_݉~x sщI#X ;}ǫ!810#5檷-t@y~}ya6/aj=U xw7땋 3] 9 D96ڲ�h~z+2v U֥l )WGq_GGVKXJv>µ,x;|oWӫD/7Zb1M GG]p|?D|M}?y0ʢs b㈻Ɵko6 /?N\sm;E)HX꤅Ո~lC .Mt>HJ PJ_۰ϯV 鬺]  ~[s?v2lT0uF#(]-Ky:ykw<0^m!m}RG_ga.V괹Obc\DIZcոf&IC 5ہakQ7yǨ.V}7|GU`'n{Sv0�ܟ;t(GH/nP>#w6KU?>3pm$/j@ .W_Ey1Yk{:pǝ5EZw =zw S^ .AW2FA[3<K^$5'v6WY`,]yz#@/M^ [䥲?b{^td'?�5^zL )DRSOka2$~8\XGc<\<"嚓{7b_ =Y.<~'j`R3Vc3:*zuTtv:\m)]bs.ǀMe/2tBsuڱG?nl菴�&-jzvh8y!Bw`FRexWWӊ ~SJbwT1"0bzRLazvi6 cäCE_42 ~ق_Ig=ypz On. k[0NG`6ިxؿ 4颯S ~` TzFXXU=뜈(l̥ a*#Dx6\?}RCagON(C\k zIi-%FcۼOc=ʹ0=7ps\&\AD~gvT96u;E@3̋EtnupLYEo|5PUz`(oGg/:fi 4aEo [M›7huқIt4plg?XiT.�y9ЕX^t1ݰSVb.yruGY D9;rOq匚%[b}w_.3ظ%"XiYׇpku\["z18f>4H>"XޘlY)`?9VNBQUX~ۑJ+"ubEtJߣ9~�j+/BhxjIxKᆙ�ql? FpC ̐iR@wۯ́X]f5?!aCǂ>im)ƲI OضP0 3/c>p$`n6<j]yZIH}~T TYEM֥"o\/۟Mu+T?{g%R)ǽr൰_S+S /#u*ڛKDUZ`\O,,hXvpQ&F= "lkkJ@_:̹~�>ƿqN;xpDQiq7TD 7^* ˌ)h:f5<@Rr.߁W$,?F8_i͌b2>UKCx%֫Tх.Vz 3=y.$6݆ן la{͛.wHwطcyL摝A4dU.(ü|;'?>YTcu]lɢulBC O�g-={oy=&D kIι7X^8)i�F 2֯A!i8tm-*4ӊJՄz*�2r09-w MɪDfFD\'}Iۖ8ܱmଢ| cVbYsΗo /yWUب�<A2}G#\낻KRs㟶#7aև;XQ I@l],(5E[a`x̺8' 94qہ\wGsZwe|FC-XO;/0\nn再>prS+UӮUvDۈ|婽WK|w3^xg>2No<e-nq7u|gl'ǀP[$. I[o}c1sؼ>89tƮ~jA/ /`3V}NS,$흱*|n@[#L¼>$_T}X?SAx:C&lG{cqבQU߁Gzҵx{L?> p]/̨Wv#1n-덙k%%;޾ТoAR!GoVe8\w "Dl,y{W$-FﰣZp/_ҙK]2v*Df}8:iꙈ040_WƦ"cdDhW| ̉s2Rq>%~VH" ߆HSJjL\=MO:|;":- fkkH#7@O]v}wp2ƀ<QF苯 {r0;7yX ꕰU796 8Wp1z7 WHd'[k4X^FD ߱[&ci yr#%I-,!P{d`>Ǣ~'ǚqf'pOx>՗,5�\-pߡ 3~KNM]�&C#cv.6eP+i[W@\h p8[� D,5<tڹ*Edہ>uzoʥ d_Edٍ߷ fM]ӈ|#I3W~^}p\ځU^%/C~ū{ I4-^Ѝޜ $yy_MD)ku,D.vD9`[!xI۝& |Z3EwKfj|"Y?Z /."gSw5i }kZ ρ=l >:צA"2x./}Y˗!fi={F kk[D69 W'N+</U@vDn\TӒL } V"6�N:χd+I.*œޅf^"۹pR m]x > xS:[="ܗ=~Z0~'_I9볻K :p1XU|+pjnW C!Z3+xFY`߸2dA�V<Ñw'|J%¬rkn `>pGQ$AyEӿAݟ~xյd+m04nE"ڹE%B:DL;|#B>G8xޓ]py!ݞEHPt!߷W?2j (KF$TEE6𾐓8Kp-Vub}jڞc Zs ='rm5՚hoRv\̭m_S!noZ!{uu~{DP|k:"eh:+"p^SVv8ڌ6{.BD 5SJ-0V&p '1oFg#Bmmթqk] W!EZN=xK@4֏Rz;M*F&BU;SD䨼0ܻ$^ X|tΣan]颻HBMyi<HUY.}}Tj{FQ9L/Q '/pv/=0ya*5-*8p&#5C5y…e62KI<40x"/m?={U9td, ɑkw$hFoC>0kl"QK+bDi'd3&DϾkF~#<}U< m#kk])�eiHx14`7k`.p% 9|M=Ɠ[ Hcc{f( {S5h Khg+uԭ� -*HU/ ܱ+'5 !rUq?`~VmzHh6D*:}?2@@.FMv xCZ@Ns9w."b~ `鑍VR$uhId{c+/!lMvqu W')"y삎bR4WG݉f^Wg)i4!}B%Js!JD>Ifc w!/t:"zuv#Z@<Pk m~ @{Oƫ]ۧ/k! -+p LA^eDkq@i?Tat<0ccۿ^=S6eb.nX yD8pTbtߜT�ۆoMaöKXH5|8Swj`I~2[a[~H´ "eGVVlP GMasϡ5+w;�B'cKr"ǣv)rx" BCA{GpG^Z[%RZc_0ӭL/hsczu oO+%UTɀ0m>"MG*?T 9 0|p |F;e m0\:56[6`y,l~ f5̾p;-(i7mW`�[v {IxAD(?۝Ev݈0}8wK^8nDlWuުg\2p$]jpvuͿ[ys*ׂȻ~A}ϵ :m%;]G#!۱ KkL}{|xmG^ (OA- ^hD dm?SVk.^h?sURÚ~gׄt=\ 댞 fs?zD7~B;j&`_ݯ&|i6׃|�'ۯ!BSyئ_OtK`ͻɂzn-k{/ 9d`-һpB�?xU qdf<l#&W� *mDLDn)Q62>=ȷ6K[g^v|¼" /?]i_pasXjl o/Qȍ?IZ�{m#cʈ9*XCƳ:ED8<':xuO;?@g{DiiIEo5$ۓࢮKko,6Ђg ?::4qֵY֋JIVH&UYc$SM4Awy"j?csvE?ƹ/oӲ,xǤ:Uv#iąeE+%P8p�M!:;;iւғSAީNDxuCg`1I#v"RwґN"ƐX߾.1Z ܸ3~g=ڭf"-Iv(zVY] 5ɕ$$!qbzjF@b ϋkg1FG7!vehgcZm-æ1*6@E ),h6gya޶[EO7X 7n"Z}PH7v[ck#.}lWw !3~kV<}s7Mf!iy50/[|M>=ҽVhkoM-z@(Ed"%w?I@w5eo6AxS"@I>o@R]q̇ll6֧#W;"3 n!&3KC @7Z:B'8w%/DUjV ԭZKH異,z?svYȫ3q˶<f 4\ YPΘW0dx^D)Yj':ޫe3C}y" O[(o+B;+|*.9[!~a9!N<nq[Q{["@e}s䑦]iPw?>OڷkzyFѕ?9:b'"VtCD\أe\xF͓jJH\`^tDlRA`kj`+8n os*<% Ad< Ge0,8n~^`(o ;!ڎݼ`(W܍L%젳ܙ p=:1 R#lK_v-z挬_DK9?�75]XlutOʯYb}cY}п?[5u]3趍V; |ё3X-D[ _Ֆl�:./G~^B>Fȉ]w m&`~ճAd|ʆBz}K9C BFCT}ru|2p  WۨxDtXm 5^>fϬ O_@T͒ʵ*9uY*-LG9}Ԓ0e_!D1~?v||h/},#0�kvc%"\)ёS_Hb@`b!RjXdHe RTlۉ&D[un"$Zj́q$ Lkzw0Ԭ@p34 QN `!0pyQj븲q'_?y Q܍I+P 0nwIy֔XrV^Ec#`I39Q^뷓G.]p w=Dһ ) "Pt N$#t 2+K G \6ޘ+o\ AuU]:؝63yc<vK_#4Ј17E'ĪB/;/<<Q'<jGD!"Mr/K v'N ؞k>k232Dw'wcs}ܫ _+#z:y?uHQjG8=S^X^RX9:lt.\rFƮ4 @V\kؗ? bϻN>Ӳ=׷@ykuŢwd9k|Zh "T8 o�3Ȼ\h 6D*]@*Ufʏ@upoϜ<Pn 0`o3rߎEW~o<KEuym);1:~H8St@E�yꓲ]{4=K9ݡƬrry7Dذ@^E ~G{5CJ3xD~C$߼w?=*�mNe` | QO/ه>Q7 TG+>\#\h'k�묷➝0' ‡6϶=O0>L_e!K?#t7 WAtܩ5Lnӿ {DK֜GK9iVlC4njl@l4~[A6h&$ Z/{/@vFZ3Y@sw1[]/ i\$_zU \@X>.b\GDŽ႟�"66uCD* b$OkyOv7(.IfEe�fSHbt)"W˻rHuy`.}nXow)0ԧP!p=[Fvcw)|{Gᶹn*"BΝ.2Ox47:%A#o٥nHXvD'Z@d^5ܿDTQ~5Iqr="f:ؤ &ZK~>Xדݎ$@hv_^w"Z\$-I髃=}Y¥8J&jwho^9kAS{EEU)Q085}i_+x9鼃:Ƶ wEHa k#D/�=kW@4\Xً0?8{ho*!<צoj0D蹁I'q82YS[nY*"aZLL;"Gfg3زv,f,P>˭x<Z�PD<nm#KWm O\ KVfZ'v�GIw5c<Xd?`%? ܬؖFg_,G!%pNINr|~$,68ESy6%oݸoE_ L,.[ Sẃϛ㉤V\�+tWB7g>$y4;-e(d eˀqmK؏^ڴ0p.J|{^GZH|^ -ܓ> !Y;m99X"?Ka%Q26<wjGĂ?ہj~`m[V�exs%ĝkcHn,Ҿ<|ڮ}ͱNKe"Yګ 3E@wγF8j.|?"7hQG,׏կ(5nb)GUQ{>DΪѣZ&=s�vf;vV0ztC5ܓG8.o觯SѿC73Rhxb>cj ݈J뛟aIA!$o'[Iw>Z+ 5!IIDR\DqUnI[e(7ӡE QqcU)\bc^R> K[YJ^~+1.q۱'IM}c"u/xm7]PX9ڨ۞" [ۋ�?U$ eŋ�\7Z ;tԶ&xY֚ +Dk @AN7hݹs[ Q|"\VjoCzW_C$߷aSɗ!;(ׄ !$A7l7!jx08o>? #&2MKAG4ĺ@/&k>k]@$ʍa`|wJIͦwӊu J+\qJ"~<p7/Wk̖<`4o"xUi1^[P11/2f`<Ya: =wgo".>=8f$pPp{LN_eTSo~nA&`.E]~6?6)0T?~x )&ͧYJD9K)Ǝz`Ns}(=%]1+|/�Zn5L·\fbj%nER@OJ6GU]ذ,Sy<kg[TJD$yɖ%-ȒT(TJR$YZBf9tybf, 7, y=?mmDL?>O+]Oc#e|72";_TQ'p }sT!"6b'DNEOYh�R+<dS*�XA6\',͇s٭k!S ҬOc|X&2d Ӎe2U94mz~:Ďb^{'x5 dܣ�OIVhKP-[tpHAݒ:I5$>6w;`vJyF¢M ,R:eʊT[.vaN_Ir"l{O"'5vCd}rDY;"+HbcQvˮD`/p&tc="tM?~"Byu2l{ "9MB%p1YP=� y}\_]qkJ~O=V+ѣ�x* 6{3w6WLs י/\+o٩v?Cg$(<;@ķÈ~QbK.|+ 55!^֕4߈Dd"9$vs&nOk^Ğ�Ž3$z ?IZyI98~Y) X]96) qBbSHv9?C " >/×ڽn"|xA&oߪur14*Qǵ.]6E†[ܢžWXU] sw+5" Hq!6H!޾ O, ߼~8cMfA+JD.9CsY8ޕ7x# V2:^m#VC<�cHe;-Dn"9``5U|)^vD$;ۥ?c9sP4 lխuUcsgXZN"?RzVM#H<9]{<rrĒǁyLr}3pm2~żc* 08dTQ[ވ71A0?EXBKw?F戴LTn evsy`'i.q%i l.~{LM�] <pyrך-=shb{"*0&tj`g}ȺqyD^ B\`y�gX`$Q:"0S4s~,u &1.ena4蘓{t Yg֏Y GK"Ң%7Bü*be�;YPb e+pWv�_VT`ȵաGk0fږn\svDuP[F.?N0v D ;zL`ԛ!b*D?шH^.?_)#RM&f6`[m0f֬"\P cFQr!" o :?e_,PnɱF,S ,Cdؾ?R^No) Ce @][ ofq3 [keCx>�v?"~] Ls*f7 1r]<P%~a,rZNR Zx/M *و'&=`èwJ ]ښ5:79x:x_dv@cE݈$߇fum"_WLɀ=k0of{Ϋĭ<K^mѓ ¿pT2C^]Е3[I.t7xfSz֓* a.p-xX~7I~= Yl0_ �GqPIDz[;I&X;حlqvSu`uT a=%f^<7GCm'c~fG <4,{HԷ~ATԿc_w.B$0|$No]"!^k]a_j'<&e4#cNt`xi܏G<[yĻH"tŁAX{aؗClrٳÝ9-pߣ600mۋHkb#뿂=hϝ^;s 5?Wpϴ|y1ؙ /@sO^7؊Nd1ˋٮe`mt_dq_۵lSmBpÜF"}_.7}wP jb=hHySU*#-'Ľ�]U⎮FΝm^\fʅ DѝLАF3Yw?bph?)Z| fX7ӿ'XJǹ_N}6ßlK9!�i6e�pt!"!pe^eeb{HVl]#�E:fvpm r>#ԼqAMX.y}l4 T"Oӛa(ǿd%w-f6# "zeiQiuOn�~A_t I(0Qķl̳Bч⾊OޛztWeT X`Jq" 8;/z$|]'F،UC ?ps0/X�Ϡmwj*nE?C/|-/vA]䈯$"~H9o)β;Q.VbNyqv 330nx1nI:wnEċk_@౱[m6 嗷y7h]3&g#'n�wGD|tvyck^93k�fiXA7vM`X;Oߗb&<gD lkXpC| ` 6mjiQz 'mlo_w1ӛ-sqwwߛcBG. N"B~vC8"n{2&7X(Ab1Lh0v�w` V.;rXşC"�\e>vc9^Q9�gI.=}Xw",lSO<hƩͩX~ {XqNo`<8DWНɔbA#0KM|U)r5ۏDnt`~�@gv˗ aRDflO=); LюF嵈Ȍ. KU(%[/y#&6,;rt)�3ky_DXg"|!¥zLji뗃c%1*yG{{l ޞ{hKv.^i]D<X~YR2֝:rdr$6 6A Um(0\dW# i5!\0/ȱzٍ߀`:\P S0u%}3"[uUk%a4~ic1~?%iet |ջ6Xn<Kh}\vАiՇz|R݄fۃAB#R 7"1Ych*cF9ޗWLD>5޶O<,\Dvj]Tu)pNû6a4[j /CXn1nDG:8E$)[XlR| 4/8r"j?V<zդfwËj0? ԟ_C(/;Drm9_ղAޛf^#a+I՜>QIE:1{s`.Dߗ`GƝ` >-ef̱-�WuS#YrQ|%\v'ۀ9t{V턱B`ޣg{ċW=zp ^OF'4"᧲%oɮxDӐ"Kٞ+`0 S3/:,)b%_c1ۑaËMs� _ʛ<4"ypnƬB'FD<ےe{'|?۽ys?>t y{lFAP̷"SÊ%# RVW8R+nݒ9y,X lv"|?eޑ; g]K)և*>C$yp%e 69Kh}{yݵ"DH0 W;љ*SDz=B f9F )struf7 * l`z6^L7,qvjR 5_pE<vᘜjMD1Y<30;r 5NpxFcy&߀p-:^gYU% νQer@:.})u" &䯱q} 0BwInXO+Ak!zqB\h弁=Z Ul6}W㋐8wuqLȤKXpo-ɐ AR-&-}#dkixaX7 0| �?_J4ۏȥbѼS .\Dr\7晎޺bgP|p k nڛx`>71񭡃u<`&ڥv g|]1XBO1cytQL ҒX~Vbq.I"OVę"僚&Aг_&{sʮ)jmp~RГn=:AEwW@i4 Il>ҏJoOmAx9aYYY3p}k$~@۷`^i{sj母erH0‹h4VK OeT a|xϏz]XX),2L|{%L1 yeo,QKfYggdz,yىR_s=_ nSR|I6 H_F>B%DX8u^ QtOԇO-rhecߩg|$~ d<Q΍׀o1K꺀p<pFRzv�V0N&C`ua0qsO;Uoa>wF`'ޘz׫|U} [Er Y}A " ѹ݁:3p$�󇻏6@O Emp|*5Ѝ]V~Gwlko4o~L:9y3|;5K%\w| ֐M7w"?U D~Js&]`͗!"J%&fO`&VU9LϒgY0) !ۜɦB)t?ƚD/;nJD]ɯc>hv9Z@GWLDH@5"$D}[=wX'rz'^D0s-�CaYT}> Խ~)n_I:e9'1sx!Di )jcy,??y8(nmEe}K{z0oS)D=6v$#yG<XjrvK�o<^ڹVF`*w¸#cGU\ MۋJ_#B3}a]|κsB'C)5vTt{" .>7zӔO%}ޖB_*6(D&_$'m]v6tbF9\}`|ic9}z|؟=\Ic)L%#)(\b >wuö&+b|'xЄH҆u}^_V^#wQW>ziX_Xb[܃2Z#wkk="i^G ܃[W~zX^T;m -@{(I7v{X"C>6xGC~"pNkX#NىHwMKNj!wT:RWmuğ۴8k6לƨxs�XDkya X%Z|5h =�;f-UWZ$Zb^(irԵK46qX��e z} ҍ'2ʱ| >plsr k~46SL68]^p:  j3-T':Z`sU'>iVÓ1e26qݪǗe};zmXst㮠{PT2f6Uˎ7D#"0~5b>"ߒpK\ `&kg_!b_D-UZ})j1v`7pOm &R1@<l8rg{�ӟ ^ 2LV(k-9 cmNWoP&VmBhWi$q59eL,"\ ^y<D۟7x`2*)KNY焝l_yW9c/0p@ҍ]~ו/t8;a{N澙|yet᜞}rϯԜKFlqpˊr6=�{9"Ҽʭsvت85t4ǵD 1�Y\l~O(|e/|u7hOý<R(JƝo'"Bpso*"V#~^g%\pҷIAj5' fi=coxP Lv3S@SWi&06Ɓ%f1DJmM(WCGua\kK(PȻ?Pjσc +]4]ƶG�XG5|A} =]}@Sϲt0 ۖ@OX+zm+Br7*#)6K;o.;"_[i̛+ǒۨM Siw] @䷄#^r+SBo8vfo˅"|s闁VҬAc5[dA~zdIesz/+�~7gl3^ ۆ?͹ 8Lk@UR?MkzOsfΈ*F-]U{=od6H7aFPdrx pG#\4uk?52ٻ Xw>EqXoyY?t 3G,�掃` >Xv F$ \Y> fL>]amӦ~/uYB ¿ujjKaw)BNZߧi(PF})U{]^"B~yGտ ,- Q_5.K}ͩ#ܼ|u**ٓivdb/sdA<%~x.Α-k#%"&u#á׮Gd۲@b]]ʧM~0:\IDnb]]Y<s_O\RsMvD(luI8 JW梢a#!{7)=5:{x}[i9}N]CT1<+"}S8uHBhcwet"|tK:l}?e¼am۽+ SϜ l# ؘ1^ "Q_?_7sA5b{ oc7N|_. +^DT6Y"M\ ծ)! 45Vz+DFNo#\ݧ%EwI=aa0aeX_"'Kӕ\tV2@GKE^beN�&EֺRƍ?_cD} qݭZlo^v`c|9Lf8x0_4Efc׻W(<hœ:kcj{p$;_ZԁfUۋ7 |`1vM|];p>^v1qA~4-뗏T^[J; Dq/U:09?q툐mBD1cZ"K" T'?M|t^ǫa@od{Ş.Q6_ WؔMf;9^H޵I81 /;N}T4j9󮳞 9spE)�nyC0y2E^}_b<3L#jQxwjO.T7;m@q,Ңաn6,D-GmB`KU:+IcwW` xashe{W%OI6=À3b+A2Np-u )kXDz@9b}fZqcy\Leȧ8?vgIer U{ꅝW,P({*h�uU7DTOB$PSRBc0ڐQ^8,oCgꤐjoAw+5ַWcǴQzSݤawZy ~|CT=w^']ݿwC`R5{M̻pWc\uwɇ8#f|˨ }Kor7"S|H"?<r70<uaD+H؞}ۖ}&Q~HEe9xnNf�$%CZ?X>)gc\F~r+0[5-5w"vg;.eK#bNt(Bᓣra\蠟K#"ͅ$^FԵW.6E'ぷM$$yWc{@ @,c}nneT#ʺ_f˘Ga#>z['D~.!v#DXN|Zǿʁq,C6W%A Mdbpܳܫ|~EOBi;"wA$q<W''}-0&Htgv`|�H*Q= @u,nF^u>7 ୎jBOv٠R "Dͨܲ]8;}/2ekpg_,b+e␍Gw܇u@A`[swV#\@￶gžb='n&˂@" X&oC>RԿ HboFXe07z D Rm&D.жXq<B ̭$fƳ)Ro249)m1QK\ <өd*I>d6`Q w̖/1YtRs$[a9E iinsEh~`wN:&o]ۺ=`V{$Z fwڧ5W&(9Ҍ:Ad)-<HGcN#N+;Ad Plo+wQxzFnQ1e <G&rWA4wʹ˺pس{`uol2a#L)#6;SN0l ;O6G.kI̯{rϚ`+rD-#xʜvm{,"~/|,6|.[$&0)M76_,�ީKe ~sq:66 Fp } \ +Èn'4jU\_c;"n3лۻʲG"T^.x߂<”H/sKx!fk/πIe 1pVM= D%XSH|o/f^Huy< eWw%Ҏ,E}�"?62gqޕ9%J D]j i_.^rD!R&JqphyO0!MؓB D/)F>Ϛ-ϖg u\W 7�LnW1ԓ<yQXGb/ܳe0d<cӸC0'>{ۿ"DFX><L'.ptG@&"i4 J#%/ʑnnYޫQ`ԛ Hn3;'zGzNYڑz[QHly=yp5xX bZ/^|Z5H?pU p6$zDAD r*"ݙlT7CK e^@:{NzooPc{h9nfZwFU|؅p'ӬI9D>bʕٛ4Vs߈˖gLMOUj0p[޾AI?k7]o!f|2鴝ۀ;,�ΞL?JNW+A=r »Qi`w{{}nݏp 8.; }5Hĕ]7sZ`ns}X\a`RAJ xo4ƾi^|_Md {�AgAg,vuz =w{M׀PSL?۰�sO\.!"z*"=(&0<nx;�vmF Ӄ[#-DRK'^_CT7fχ.q)oEm.UHmJ-^_@RǏ0ZU;/.AǾ\aR(JD-z,0_=43+ mKԁ-wߥ:D6;p^E0KO%7Sg%]R 7${$"gGAv}GoO'o'ċw* ’;<|'3ɥí1}5C@ItH̨h`XPL ˆ'~ImUNY୵޲Y/FHpD4 kv'#nm{@vY9/M'^@6F!o![]&-L$6F,f=&zF=Ұ`qgNBC+$Mzq 8oi脹~A)yAJt!` |{ s?`F 춇9Es޴7^�l)L/$ky햛j޷B? >-Du >o�4.0o0Kh..C?/cw!�;}р8~C[琀WQ/߰TIMR?�#)r,>r!mhRxĆV{E#cN`:G1NZXa*`lND8;d[X!Y~}YS.,&# ՠB|oJmZK|TQ3G , m&o/x} "n|X$~6wa�Gcjpqo>"]ITlk <άI`Wll\md~x̾3>(o-Sَjt!HءccJ-r<pn{ =+b�>=! 2"ya#Ɔ0yrtK`.W; \sY,{KD)5Yg_ 𗒋Q[XH|+]B{/Ic>}[PV4RW@N5B)˅ĕU. _7_Q7׼X8 DUk4+Fe ;3v}P}i?"hvV V$[:}_A; "|v`R.Ӎ4/|ő⛔THHeDc?D%e0gW~V q"q_mj, $0QF<L3Qdw+6byaK?p?,az WS w)#)97F$AO\`_)5Yo=;]_о9wʷ>Y5ۂ`n' Xήtf~"bGϵ7̀lk}| G8 b.+ }ZO/أ.݉uEԖ#q+LdE""zץ' ́ ya)*qhs vTɝ< Ԕ i;pYgDB~LVmǛA<p'+нEY(fh;/ݼZ_{". Q:激@j^aZh%350/{߾21/ȸa5p$pέ�K~xPHkX9c~:>OU+`:$K"16Й0/|گ�{>*<r~9Z9XӟL+haN(F�~gHlgS-Vv,w@Cw@_{Vj/) 'q!4}$ʮRG88$yOfu`g*:~pz~!^NMDgՀykN[6 < )F!0gnQy-[ +o¬*D2z\xro1^-V ~A=I$QZ#t4%0tL?Oحvb yM6VnngԱR cf.y/7l Dd }Ü<p:\-7!Sy|3'(;Gn'0iFE?{?%"tK-\,3&b@HI$y{( ;wʲLo ZgŶ�zOvu·khz<uQOD(O\Ӥ؝_#`^;Sw>2ѓ@s:{ pr"wy}ٔ%"m(YT<�GRʷhK�;c3@f�uhU&nkb94y2b/j = *vouT ;9n3in:Kko\c0Ðx'< 0p/y^|ۯ]z܉%Ƙ/k }u-4mBTjyGNW{3 oD5cı,<af.vBl#N[\GeO7yf_ż*`9.WܟsOM˱ҽ;z1l84%@_|3]6$bv�^aYٳ_z-(�~ӕ ؋@S_A;n+Dz 48GE$GY[W^q.'1$nwdRsi1~4> ܎IۚY;d8h!bߌd�ӒS7<!*Ƴ[vXj#Bzii>Glja>'D+hV& 9^ I:b@R-R±Q,i#e@X/oxe۵|'懑V hwMo?Cma dE-+LyT"#w%`n)oC&.,7"C׀uyy )b~fr~$!~h>f؆ w]]t=/ ^x,x78@R]Z(•Y; L�<0~=a\i/;`\S!}W^o{&/ԘJ״U{N y=�<U\Ap+ moΒmW{�PKX?Hc4:vdV=d(\ϊ�>փf,(x?b7I`Ykw۾CF/2`vt,r,(ቆm8{fD9&T_h3+VʿŸ;{Vyk2iLgH&6ogV1̏N3Zy}Pl+XL?,|I}n#UC;X>i1,³{ \aE]Z*mn3;ĸսgE'znKSo`$̨ơ׆,�aeO#ʗ;g㝗 #9F$�GLн/�fhQZwѳ;?"JE18wTޕ{lݽ*!o>GWOW!a?Zc@ L_&mXAJ+?1rXxZ,&˴Gx|0]= H7}WwJ#x͜#93OkF;K;؟&0?� i99:D~�XΒ˖4.UVk{ J] <vB'?{ߺ;XK:`{iQ*c*hŽ \EGή=K>ʮNkv!V"(*:5>}�fߕ\eDɊ9^QT>_8Wl�xߒlөnoc^窿.{39&Ɔ}+f2ݪovf_!6vZI^ns J6tWGl1XEozlp27Jo>Zh~8gɫa\`�YoQBz9ԧXTNP0USյzi?eVz78"D^c^GM ވp~w`s<C}˱tJ+קmje aD2}?^ܺ ~ŸHN7BF`"~~߁--&foGn Dw5Qm|# #}$h,)?kGyXp:vK_Ē\n* qSqہb1d~}|Z'ϔZ\Λ%wӬytq;9l+R^jD}8R u@(#KV`>N:wy`n[y=y+o_-OѯW`~Iǁixppi4"Fr>_Y̊c?V=AY n\e}Xu%kIℿg2/%k{A(ԛq`~g TX sAq?c$z+/�(ۑOr] IE^Qf'0O\(xzIW^C0F̜QB"[>ᗿZ�Q2*E\j ?qk :,%p,[*)NL6l Ddwu`udݦoe`P䵙ٸb\o-oe?k*':9n/ˊOS;a<lLaۦ1NogGicF-0 ^-%\[n0(N ^6a@1/kz9Pt#D:HDu|f)5M"}z%C<~sm,g;N ɳ6a3`ڰ4ߏ_خߒW^beRG^"M0̳|Ҿ Ab 6ve |oHF<YNs..nv!0#=0؎?Zjpj3M˞Y{RYwa.1Z@) ;I{G#W/]08r1>"1]ɔ竿�O_(#"s�F9|0޽`l lMg0."v^T7}Ӆ` "i/:~xP'RC |^s*b8,n\F&Wt{ҎH^MVxp4#a3^w@;-/uG$E4.\r J@]yl߼+65amVb n%-NcݼDDU*VrǝS{?DM#ScmPcD읖 .sb!K,?D5iKͣ 3kHLAϭ 0 sDW`w8pb#gvէ1x8 AK青{?.jKY9A%Bsvnj3�̵\!9,A;wvX,x6. rHPQ[HM0'wu7".:{حY߭Fyk[Y={{0~ձ8hO/D8J2Y qe_[]D$K_u va !/NOB3-̧/9\6 "3W5tUoa3]N-n]Rhe}U2"E~0*Iyrc+Sz]β+2KkSriXrz6RXF&K$#/bx˩>T\Ung½; 9^"ʊu‚YHQ0nJo.@O%m F_MZXBWzSXE?K !Bq{%= qWCԺ wծssQoCR7$;)}5? l}Kta)[B %g_[y(uo9|STIrV2"VOkEj} dY{ ᪏؂sƣ5Fr9W6:6.vjH_khYWeo"?!̿t$?g "}ł{^GyX;: Bm~&:X#DFA:tmi6ʴZG}}KVjpW`==wpJ]q䵪t*DA58{D2ȴ+4 6-f%_-u>/̳֓0[p+"浽kdtK`.K2l@T;$: vM\4Su~A4[�湧F*?{޶;} m_  1{F)kNtѥ5i5@-[fW\ U*/I!բQuS|7ta*jEfrzp^VHVwﰽtTO4⎤CY;;$YV70w兵gY Ruiq)zrRmc~qBCQ&aSK_a_NO5.ԯu;̂7;tMNAa \Wz*Qv4Z1.I0nj{m"̯tin�K)g'yFUIΌ׳rKhހڇ֣q~1@udP3l#F9ӲEO?{l'8- ձ8\؀tˁ~ w`mB#.<+W$üᷪHEbW'4k!{V0xqzm'p.)f!+ڗ!a}>(}_”x ;ר Wj[# >w�.^X#TSъP%򗡋Jj{zƒOz� $?%UY:z?_BCP-gtQ49I'tY˞/ H3V^n[&"DHdN!lN8c1rk=󯛯ثd,Vb9Tu@κ%/wC0ޯ8)-|pN~ȘјKl^+s[#n +z*0I. ; x9cRBSEŴg#R@�Kf_#+-XG* .Jڗ!.u B'Ȝs0mhqGƯftG/#⿜FL{Yt j5 !Ɔo1ߢ[_eûzs,i\JtnDwgNRsJ`n;x0{[1hmI]% %)u/�gyd' (EK(KGJ0/=8+*#k/ k믶>nO敿#T`}p kg*6*,AwҺ]'᏾wV?1MP."-ړ,:d~,�y ?rW|[1I5`~S/qP_{?0V;� 8C�k2/~&a\O( Tf- ŝa !R|sص#:RX)E ImM4o7ۦŸ)-];-ɼ'8kkbyLsoR2o͏=EąKٜ@L BL6,tDt^#D.Ko(3A8%SAлl`&l 9pBJD1ڬY)u aY`/`77\ n#En`&`RsVHQ?v?Ivv}jӈ=p΍D<}%8,UWW?E{!h#/k~l,HodV~GĐo_1OGC0 ;k_ BvbI>iڀ]HKrKq!}-ͭFqxמ:ٻm<*»~^)"Nh{gE8wZ!5.D4;^oCLЧ?{~r> 鈠k^v0^J. N۝Zte/Xp3w8+ ^!`lv_bb]Jbm:p 96LN�;ڳ8#>}prlssE?$�6{  3?,Oa@}LkZM7om,nF#w&[@yKkK"u-چVe1Gw+m\ uT/<8L2`bAHU5l`'4ǀi{.gE@{Rt#:`[Ĺy6܂7`ŧ_=DE*ѹgb%}^J)_y0 ^ٳ `V4�jϿasp?}U>YQ;V�ܟJj7#ȋ*OVwd> '[J\za͜hWoay0-ơF#)]O˺{/u/oPg+ "LD;Ͳ xE/~ K"d`S]J1x繧.Akfg;`_ݴ+=4q:#Bl8ȼ6NHE%^�/Tݒ `ʠc=dT-yQ]P<\[mx]>)PӖw.%@%u+ <н?n %p6eTdb"xo4`#5b{Oj%ܱV=H\v0<lO#67ښ<" "J͔׍$9շT8;* @x>F8ɰ[X_|R(06V#h\7U`0d2RWM͵z~:XM`*ߩ'~؅0>/QYxWXh{V2wBwt-iq]-45?/GԴSѳt,VM�Az}/µ^>vI__^ݒߞyʕ'UIz Em_Jȟ.XB \yCDdk*@dY=�p<[cܲ237v؛oΫ@׈aU/FZa} 0TVa ASHZ׬e+N^-I~)?Wd^(M#Wү%Yg={DyV {p'iqC$z|حmi(&$!*F #1a8·\^lj1 <)K0yR*Wl|Yo|WZ0_r8{ہex~ iڹ`\+ބy2׭Հ e᧭0]|Z"p7+zΏ|[AMD&)G$O�}\|3 `<hF'GXk(\F6 �;(財BJvaq`$V< LNӛ;WFUN�oS4qu7yzgGպogx3ٽ z 2}]hsF3t"+T$&uEV);G'vͨ{ؿEF:z/ '~[e :h#"sXu:VnG-Ѵ"}y#�I ϗGbW-pG t[ukL|YPX cp?a &$)2&a>EeK[2?ּWF͐|O۟GKL1.;^ c=C[>SgAXΨ]H4Y=`~7gh"FpiF{0_c\c.?WJte@WM�'Xn=.h5C}X1N5 v;-w>)XtcߺBϓd$.'tGT<?1nޖ?-H쬵pc2&fYV*XYO 3Tuuz=>[u$#%5Sa;|0Ml1D[:+:sݾ 7ï,D$mb70̧V|\u],x= .Z uUEk׶<޹~h�ޒsr7�U&z] HL{iٵ>\s~d&ӻ3v7-Mډ!/.m-"uL\Mvr@`DY$1_6pG$g"r`:ZY<mv|_/kj9GTs(C<a,g$]p6GBw#RXۀM"v4�-K4U6p jW挹u#p%7740g29xa4=>҃rqx-%!}/+߾n=49N_{j`|tkD~0flo)8v!>7@Bf`]%^l(ޙ1wAH+湬]$ iuB81)U:'NqEr}Lqd0 \易3KD7Ry/%O#1k:rboz-'riߌw=̪!�`ufZ e=À]cI柜&:j#X1".�U0^!]T^!K _l=,>t4ϯAʈ䦴dfI-ZX~yrt 5J_#i|^ugq=G;1VZZlA Z$fٟT$A+EFw |Ƌ~^g9Wi $*GZTZ"Es#ܿsE|qVLQ!>dw_DM <{+~!$Q<kV򒁿?]z]Aiw'"=秙_'"r]#]8]/ϖ ҡ>{_=a78X?Fgp:-ӚXiLq}V;̠] z#Kb$븃eU8{ L[w'OK}__9=o{٦ ҝ/?-X4]~ W?Gx¯ݵoU!weiYro4$ jze^"n(N=vO.{3^}CմA іEF_�{.RduDdjM\#+Kͥwe=76{V5,uf?"y~<@[391itRCF|ݫO;umS ZC[DB{sG:g2<8U}5ԼI]rx$eJ�l_ΩU_w=p&%L&K,YԠ%Xz"wdGRa-=g,鵶nZ#Ł w^_z c빆OV@O_*x C-2i_ֿ{)a]D=0{p5‰ƕ�g"D7t<H :qvҿaһ 6+η@2C"$/ޱnWb8Uo"kLҒ61eX?[n"dж- X5ibkV"mw!MOө3ɬ'k_̗Z!del2WE'b=-8q>~! p/vBiy؞Ʒ}Zs@o[g{ V~/7)d |Īqq؞+;{XfLrQd>pl @X'89È`>d#B Zi_}Orc;4"Oyi$!7֛_waDVY"u7;ӈےeDT.�06Ȼ�&Õ[_T%DھVHLwCC"{>= -brNe_q›o? |VEi#_tcpɂhݳ.Gf.p,'Ɓ5<}R(lV8oΤ!Ɨg#?߆p63;af+{KMrH9wg.`{Gx7,*֚fbgH$Ȅy[ї4X3{<B1t~t\FushRsX9u K'(v�g{R^p-0N)}f(6 jaVK�̷uBیܼT&M/j{\w. C1誇 D[U�k^OGA%{Q;{Ot%cR g+\¤\A;)Xf"t&ḅvkpD:=QQ\Eh Z@n?66g+_ryx!`{>+L`jXYWs4~JwL|ho^p_֝}�X8AGO:$,^ deTݖע0, x/ &V�{27߸Jc~[qLO`z `{7 Byj)0٬e lwߩh;oWޡv!&0r>W1,4M EmciGuXzͺ&dg#H˱Jw0^Q὘>;} |b<8lgJ;a^刂Zv>N.i6x*h{Ti@Z%%e:"7oɵQT鈒#7@�F}J`e҈+%NJ5 U�MţF4 iM 1=X}E)F8vW}ƅY4xbC#jS`Q/GV6zR_;;,iA\g. eXءB얃՘O}k>><M�`q>n}[%:Bҕt@x.n?}OVi|8qTܩD:MJ*̽+{'<9'FrfT)/":MÝF4kP3A4Dؾi}9`w|D-_2F, {ҧ6p(:O$m7=ac@_]arc"=,>#[˶#\VJw<p6x,�QfzVs',.oƛJ=@0sDJ@my 4ndJb燋֗8cBs][o* U> }{/yt 07H}i`,xyEQ`EQ0Q[f1hl`8`~~l>U- WQx*vAPM9k -| DRG{ٻ'ٟ#SWu0C$akj؞Lmd0_,vHe&!xcxcvrtl@Ϗ ~ȿU!J0<h*{+s0LP|GjmH]6-f gF> ZRKG=p6Ғ)ON!�Ԟ l?V 꺵fhCne;Z4W<&s}4=]y/|VRAĀM5,4  ' Gl̀}Qf ist K K6ax.1D"EvExς#S\w.Eb)7&"bcdR$`M9 wT�S8kk~ե3G-m~^ O+#-cam=)]Bɜg[H? "߈قfg8}wsi6@>"᳦[#k' 3׳mYL U?y͋Ǜy]RC=KzJ [k"w8{|zj跞D>C=/]w"1ϠW!ӈ`~o~*")GK!qzjo!7spx!`z8}ВQ<var1PyGތBjD<}+܁SԦ߃gQ"ٵ <J, ϏSG`>WJ<|\&ȕb>3&M/LKg^oh3p~]Q ?s3; /grëmZR^~ɩntol5E<%C7 'O!|$w]c K:zy3}eƜ7;3]]o^bX@+,Db_nŗ{"_#"THM rN\ߊ~}# j0_wp`"\3]ƿI7bsc~5\3rU9xM~7/9#jZ=wG3wU"~zWeasXs˧nf^~K"ݭR?ӳ2^>tD\Mm8]( |ݡSyE p⾰! ?Džo۽Lx#-i#8?ޔ\ˬۀA#Z|ۢv`HvK2pdž>P.aw.̅<p‹bliBC qocne&-ynLM)xn;GOz;'DE*?F ZϜjȀmdw`NۀHBԈ! ` |"2q$7]+ OɈ(IHe  5 ?gq6}X+Gw ǢZc2L}29-[+ B1Xq}޳Z#C`Q6o$ UpOS *` 5nl0BbBnG<QН%@{+ot-: ٻz=ZwLj/TR@X?6"qD.c낁gZ8H͖.4\Y;F|b1nN0"4Qcѫ"j\0[1f7sKT\ߍhh%0]& Zvͷ;.�3q=p3ƼSL]x =>egY"/WW] lO$=z3 =qSQ+*!qǺ!3֚H<jɴ9V@?ZKBoX*�zi}oo"Ӣb`C;9.|Q&BFwc|؉7]< 8$+Qs~s?s+X/V|/\- W$H f!)/pK>q Cq{u+!ْ<ul_3SÞ \}X^Dn_RdW?O_c&0~r"<pܾzF<Fv*ikZmB{Ԕ _).S,G>xRiώ"84.WN B,^S5#˯Uzzķi`V%X%{QӲ(FLE7 MۇM^Dxm}^ɗ sNo4;o=TX7pUfnG>KDu,, |nq;˝xk=Ob<vZ 0ɋi-5+y D >-pnk%=TMҸw/~c+>O Bb6OdAU'뵟nb[0_x@,e5lOd!-C]wu9I=Jρ0fp!8zښw�IK!rɪ_;s`ďF RS=zrÖ[ͻ+t8a>vw] D \T)̳]vnf|Xzu2_d sT1M`Nnތ?կފp<u Sh}?[kiND>]W-z;ׯHr@x VPid rKaQ >+H.Yo]^?be\�+][#oVK+y-ȫIUf#<gRVo "%0[n5ii707 sf^c ܉icqH̡+"^t]o;F AI0XŌ[C-߄Tmc~"LxUH'zy {-U"\xӪ՟Epy~*3 X4K`&]yQ~a}p psҘO]<_>%&LY-;TI:nۊHriqǁioql8ο d^fxD*{`Neu-ki? KFGCšXiEDwo4fA fRXn|,7~>җc#ENbJe6a޸ug[ɆwZg:gL֗)RB D9w&Nu^^T@ ևSiȆKzoVDMߙ r88~6\dP,M(0i[{DXazZy< `sh {I�sǝ@�ƁA !e(0s =�kFGCڌ¹بe\JDˈ2+/Ͽs>']r`<] £2iؑO#*'wH*p/dx d`E0mp*0? uyK%{)t#M_eHf˭ 8Gn1ؼs'N�'doJ'֯!A@b4DU�Sf%AO.j`g g`4pA<DSY^5 ֶޔu{i("V lq6"C}7$W^]x[Yv\HLr`|6ݸ(r[;"ꁸIEm%DJseYsv;e#�_ϜX7sCasT3$a~Oַ45~.HO瀾 CAb; kE!’ó]d)vh�.jI!]'@ų+̀!Gpow9폡%P+$2jv;_�nӃ]H9G Mה!|F}"=8�s6'#kc`Fy j=z(+nA@뤸a('{L: k+5m֟?`oP#܃߯x앚6Li+!UnjˮM-"Hw݀%#\/A .tЧ\G qgk'ƽ; !{pX> k[2Oݶ) 1~7YQjj%"T'L[4Vdh8?`KP@>%IR[V-GOy7z"&ND}7~dl*F+L"r3óČSC }g8Gb>`nS\ 8Ǔ+0ik-wS۴I2nJV}eWU<ž޾ hozjT*zo)m}Ye\>�^^=1^ͬ{~<;Gh!sH`jpi=HLEFk&V׹/ .{ă|xtib.%-@3}H}~KG14.)sM9мD!RWNWU'm}NG{D}No۔}'i`vo7S1�/})IDNavm fMU[0=Ezkh~W*0O?yOK`\n&.�6o]46Sk_nyj{0n8|}/͓ϰxl$m+pf8�s|{6j 3p۝Cmc55Ew-VMه G{󊕊8"irRvͶX"ߖރLU$px[Z p�|{CM B9%Fa(;`+x^HbEy{/V/Vvu^<"=�ƵE[\dk}nz cV-`[[`l>8C{n{~`/|C^XރH�M]iA71x(F" ҵ6/ޕRKD*& Uwi{  T33Q3Dk!\%`٨BDi"ʟdZ*I/o�͎17tUl…dZ[8\Z @ޣ0`sV6: ֔:yÂ�`ZSV;? x#*s뗡F"U_hmz)_ ]rJzdx;vUU@l|XlvtQȏ ^YyZ7mӆpa3"2Zu6`>R,{@8,_0G ܚWN"[,pK 8~JL;D|>veryz$uأbXHL]L"ca gw6D_@:sC0YM;˱uv[%"k~3}E 0͌yV W4b~8vz?r+a{%dHLZ!\4CTmx3PjQj{jgH^pCFLc8"=EfZ~_,՜ _wC w آ#+cu^Z9p709yf&KmLFeA"r23:[sd"¹D=PGz:yCw\96\$A0a� FOf�g 'ht"{- ^7WN[ם|y A_y`όζPwt_.fW{R̄_pDb%*ZfknLnU>l iOvy \ K^Y~푶o_un?U :}7ޱci`68V3}OZ8KtN.4;ȍ-?tߖ_wl!k8&onX]m%mL.i+_�.Yl4L|u.Vz�Ƨ%.D_}cN!&DkUbϕi L¦Uk~`]XܳMzEWDUDUc^5w#kU?Kk�nУo|=_9;v I7 N!bhʦ)(:x0? %E%YJ(u!#*P!$J BBT$ H%-eo^y|?u~/=#vf!` ןxvyt2H'r"rlU3H9WIDU/\G zGK~A枻DmÁ]xB#xty_kvR7L"Se;.)B9?޾$||93-t=D'^u=jB -d OXh'D8 )k/x˦8y9}`R7%.IkI(sir20 ~nEj2у*fe1;q.eVXK^2*LWt%>{)hFGr٭UM\-m.I:wzt8e=A2 ej超ۆ!+,w>;>o}ɟgSާY0A@S2oU#)tæO/ |-Rz4*̉x5H.!L@jl|AѯPc -Ieߐfk"FDORCi ĺ!&H0pURjWLp󤷎]Cp9 l#5[AlwGYE}Uy`<d7(5/tӪBj_h|{>l~WZ#Kg)knrXMb "n]$u~O6ILH~6^1u/ok8KT R3%2g5[@W7Iu~#j{kH) gD"b<lܠ:!5 c2suHO?D7,9!s??߀{0aiv$]%dv4k$) =Df0 G:/z/�vڮ\RƖ"䣀Ӑ2YXl'f?"໽=;=HOAOwΤ YLO^_YV,]?8:/)4a<.57d Y$Z{dpadҢ-[.])e. xw+e m~�j܉9:rV8hՎ4K3R4|켕'W|_x V$O"^iOP<Rm_XD�)}E?۞s֕ڽH] C!zLY>{_< +k?NW̙Kh \l/;B;6yR.'/Ek"v(V->HŞ&Oʦ>3ZRSXҟͯj26/7{W{DrΫFrI 9pBW7_r֍𘊲wj if6MaH K�4~enL|mLBm o$V �NŻ~xWd=EiBSɾm ȚdI5A6U -ڎT5 %jWy9!=s L&搖#VC*ՃI^r'TL,mF]?+wQ`kN\`{XShB.]w-V#._2ſa2i>vV!΅¿mt @KK-ۃ EX~ 9D~>}YF %>읖oF݁hF"F!=Z2ׯ W6_zs7sz>,Eڂ^C hhZ8CW]auaA|\GCAds}O\͌6\ s3.ܱ~$YQLIoO$ Z82>0JWK ɝ!ϐIj[e2Z6 kH]*4B9yoJ�Wms(s5cC$qg3y%g nb#_ CӨ][<9^V26FjOmӯMH]?R܏HFK#>dYH ~LhjM? z,[r0QpHxe:-(2ļ|l3=R/')';XI|?5wV?2Xt5'EKvCdIu{bƩ%yxl%NpĺE DX8Hr#"2rs+ݝOYV%bt3 i֖Q4DbWke 73e+|�2 /!Hٓ5Z2|y4/$u oB†s! ^n qc&W:]r Y8XO5ۃ2rߣLߑw.PFoI^@ܶJ`,/f%මqot\{T&w0Cxҟϙ[< =)[s0v%ysM׳)CHù X{>娔bՀ~xdׯDQolwu'=5# X6[r/f2>5R6G`X u\ ٲCdQ]3 8vYC'qrzHd_9X#[Tcg”lFp?dF"j4k_6ʝڙAeȘzsڿ|HaFx̝[o4pؖςi7'(8mEM2!V.Dդ*i0jd<Iy<Ȟ(ӡo6$sW [9}?A>*OOڳ$ȧBNZȸdryfO!n^ "ɑU/B?7ퟺ FM6,iHT%j,-7Cm/JRW\YP._+W˙~e{Y ې4үבVQN,ܼ t]v}?* w+d'|*ٞM-Zҟ&>P( JJ%Hons_lCߝgV; #oadj {g˟l#ke`%^XKQpV*Bd.M,yFm͢dza "AP$kMmND_.tLټ"T{ۗ|DnOYL ^�&>+#^yIƑ%<a}} {ubiGs>zD퀀ޛ5g9m?1xPe ^xjH;`U|o![L3-{G=+d+S PSC/DR>2%?՟*/Q1\;#<8==R\.۴/4s w</M-oSނy"y'L ޚԍr ^`w6$\1`M;&->+"HӠ c/'&|-uIĹW@ eK]@}geS߉#x{ P~," Qf͓&P:ܝ{DOޒa61InK2atfUӾ<d-_X9 c̄ oNhlovA. d_X? v!~06tAl 8|5wfT[;{V.xk/ ! !U7 Q6Um.F/*'?# 7Ƿ \mX1 &ϳ P&|XM$~Ȩ(%O3Gy>y=IqZ`_e`\^[o0yS|u&Á9\D^OkN M5=0|Ҷykk)@h OdD>*Fk7|2 ʍAK3'VFO:xVf\$NEJRgpG]z?'V 1.ˣj>"HSu.ik]AzkgHp Ywh:e&^P7>wy")[H/k\\9.#Y"W7TW^\T?ݴM8~uL Wu$1;kbrgڕŝj؈dS}Үi+y¼|T^zOyk[w'2�[6o,a3_Myܕ:ҥm'ox(2?CYAkːqbW6C_&HyFe+p/C%2@XJ3L c+(E <Z8^585Y@p#>4rd Jr)sz'_5Goɟq�l ]j|{>ތ,u5yD8~CGG@}{F'үS@T*`Js^x?w eWGcO\;:{{~4*.u_||XMLyY]Ң.u`^/x5ۄ&#ufˁeyᒒokɖ&"^SEH\V/3A pFJND.nXCg`Lssߙ"⤄AqOէGIi;҈w\hւMkV#/ư{9{ƻl\t;5Uhx&EZUu!6Gz'PĞ-DZ?!}]!ϊ!̦u/փ_ ;?'qxrEaO?2 [#@#`=D֮(G 1޿aLBfYXGƒAj&m_Gx.ZKa >Lk|8"#yܛ1XZr<~`6N)B򽩇9(S:iqg/Ӌxef x#:L9HD162@NCtRg dmh 5xڏ'#v Yp \ux=@|:m8 iO^PЮ Z Eh(3oWP{쮍^D/}6_|36\It<PgD6 /?jUCcAxuNh\ǵ!"Wڛ-1% M(qws&/j@, W %L Rr)U̺bAHo@fSZmbc"q Wm|~ J<lySWI{> QgXnx׍n|DS WWPߌT-Vf<ߔ=`"uz`Y4| 8d8Wr4QL˻D7+,s=KWKqഐYY>iiwzOյrǯyU ypҡhI <2N�,/ELQ2Jyeͺc"_l v|�&]!!w+C bԋQa~)o.eMUCz=l$?i*i\_&r&#^[=sO={Y7}:@ғBb=?-] IH?e 6jo2S)֯&)hLﴣsa=E& [O4#աd=㺎k+j &w=H=r "u(瓡>2Lg[�{b(zߊ1Og_C'Nz<N7iy=7 IHC$Izf!;8_뷦ޘ  |^(iio`ԕ~q`%<l eOwqw$oei<_QB| f|v#hڼ2Rlm8$睱ƥ zK$2yce~lVڑD~?-ۊH ܱݝ]AǂB_juO.5_߲)omʺk%@G>z5J^ő)H}yA6i_Ӑ pdea_vO>Tn`,OK1]+A4>Ve~,^}0^:{h d7zW}}]F9[ n:i_m?wNòMG>c<+KHޣT %/}Uv2wE<P!W]H],xf# -w~իUSoI xö(p"<jM zjkGU?ǿg4l.Z ߵ\^j/; kh|p2R.BZDjm9 hs\cMRW3K`}r�%7BO'ü~7Xx`56֗]X>G)/[p%G^#=2eb"Uzߦ2VڀxR^M+'Ᶎ�v˹@$L/#Mk>pvٯ;;pzldwVyoHݼ %ʍhܒgH35=&psCSw~H[݇= (YnF?NᓊƵX0훫Cȗޟ 8l s7<uv~/SVܝ+Ɔ�N=,8J|}z_%}NP>\�$ s`S[_~~Wl_'WRn1{_/ܴ]Is\ ~NMtIxH~ãZ]YE  C bx<TUs l9jrO1Fv\ypܣe?L"z|(HI3\=6q:mDUa2`%utFB'47lGC՛j|'2Hfϊs\ie>YɆ#Y:W.\v{HeOwd$]i Չ_�\46"Iwa7u >GTa8]a|*^>LܰI_޻Ƨ\\4+> zq됌SufҽAQ8!8Ng<VΌ/yT}AX&;D7R5WMͽ3|\0z}D/L2Y,CLkA~X33o׾.GJWP ֎{>^3Ǯt[O=AAO$eJlWCN]Hk[pU;fn$;wy0Qt=C9O~9|uU+RI^z kn}4îl?dR!acIgS&DV$/߹ȃ9UX_O95SF#�k_kzΟ]tmxQ.P_0`o c 岿N ݶw,v("Emy20/։zmjm�GM^;+g L\ooF9.$IMaAfFr"Buݫ+3P&Ժ-$.R3PG8/|lUWe.Wz #Z!zQ-)mZn1e ;O)0{u~ȏ$I]$* ubҵHoOg ҹ6W@a<Oz:eo>8p`pM^[|z/GxCHa#-;DUq8}=n+IqkȰPhw ' >6%ehBJ[]EF_'n8lǍwA%K8%"ew:r, πȳ#rPCo lKCơ9%FVZ^7Lx9cԍij"9tGĚGÐI>pI+8&eڲscHm|x 9o6/%cHU C12?Ӗx |Ν6îp R{<!>]-`G"٫7"mpcA%uMm <QXIaFy'=7$zAucap$d"|Lr/$CcݿjV'43aRǸCsJkW]/i7QLm$A折J}4O#�cn^XZ #wIu0[}ӹ }"h& D EcaH=ZzjI*6ā 'صZ60ՑOo8sN&[ &r M8Vz0 lԅUascV0!>ΠFu88-g ̈QsPq:s7�w<γT+x$>|e U$yR:s2``-i ޽~ޟH B�ܥ$çUY 2ߐA_\^HxE:9 m1pYx}+T!, Ԟ;A96ȟ..z}v1ɥ.fJ^wU`V?i\~N,-xsZd.,m?JƩ[cKKN&Z"uD$_-Ȝ]�r'N<o:B^;zC@xH_Xjϯ'!e1^+E0^ #<p?ݵoGU}H2r!陙5@@ō3xjW_DڻY_1$Ō_=`C8b2fԛ(;ut6oQQz$eU1V3Go"i^g$fSrC  <a|2k^g зSN>{swFchVw:IVd'7`9anuj ?ڒ c]Cu{? %Wq? rӎd3YiGaLӍtնwןAv;ٶU*BX5jLTz;\ BRL@b3ܚ ~Z: .+&pit/<5zFGSZVq3)q'�'uD{j2R?Q>u\2+uk`tF|cpN[)M~^iteoJ;$kLFd֞\6n7l 篜u7m<& Хީ i=ԸȽ˶$zYi_G%_ 6kakHvU*Fϻ7x2=yS./y,5ڬG+'FҦNGD1 >(6o73w1A0o"8c|kr ɩwBӳEw:"_>mb՞+"a`*ک8?A#J9yMGdE~dǁIP-iEF%(/8z+ F!ֳXaaŗPfF px�K QF_~yVN{rA>M=Pз_�d:xȲ3 oҐ$]l;sHn}N橷;90x[0TWP fΛE9z-$*?Y gNmC3kK`g0T4Ok~1q]JN_2jxBٜudzí0v}O,XSJ?Hzv!N<\ 8X#IEaWT<v_krQGln_eq2 v62㗁4K"%ٱ�e7^+l1I J=^zqN32|K} 5#:o{jybdvv3niI9Mp o5kуak{9YHAt7i($p9`UgͼhcQ~=�링`t噭3g`xRɺ\?[4F 4am@DNu8Fq/޸8PkSɵFa# +X<Oc^-c=G8i_cOj!cUNdk '@s] )sl}=i׿q#sσس@4̩M (4՟{7|d!4). B=\imQ_[ZsIT|YPuax?ܷƨNC vݰtl%p:)%?MЃR$0Z+ez(Sp`Rn_ 2B)܎ֆ뱛V)Rcx%ׇ!iҴMu_wcy;kcXɕwW)3n r#HPyVdFjgkZ@*"]eq~q‰g|n?)5ႏF`O^ "=%r|ci:WCE2nbڀtBr譞Sԫ�wITjY:NZOSnKvJ٠ZUWR  m˕eŠj # CQv;ol _PWe:?=nާY0")a''jhZ 9xïo <<8=GQCn+MN;?VKNg exʶj[(tN&`Buz;Hui uxX:c.&e~.?նz)$u]B^wVEJWiW@uRCcFgfCΫ}EPJ�c?29G?#"V?�Ê{>NsYDym3Ht 'F<]oLMݱ/` XL0(~@Io\kk[##Ì9zH߸p )|τ!ţbfޛ\ٛb26Q|<\?m>R^돫w̗on&VH*eNW.!oOA$?`tC>1_T-sV+�PqO zØF}""vFG$H8;,ۖ{@lb]DgK^[8C)/c} )GM}V߈:y/>sRVM~je|ªZ�R7BuxQ c3LkG]k?$e-E2Ű7],HBƬ?u;q9eU2mf"cΣ V_OT5p ^X^T2Ю[R";p&oؽڸw)YIo*+OYS&#|byKVyiRd"'o^U=)WdLo(8|RΦƭAƩueh͓ Mo.R4]& { Yd5:q Ķ3&uDgEW_"d`̮aa5ޕDޟ_wRpiIFZ۲ -5 <۳;0Rgז}y1oc=h'1G:Bq{#*$i:</\0RXdL<d c/A"'0�+㳁?y?o= N>5xL5A:}>Xmڇ{ߘZ焿^:>2W=肴v%EHyMW- DAKz~g雧3^[Hg'z!CT9~3_+�_3$U:5ϒaQ!2W}eU'K?Cv;= v-jf" 90Jb[H6Ϛ:&v+~$cqoH1Dž<N&`t洮șyxF-K+xa0:5ʠBUI]HOj'!e$PARe㌀ox,ɺ7]D+m!x/ƉԒ lׅ7HzGu1' ַ^"QQ^="vLb8ز͌_]ohwh H22`ʍkjx0v/@x,)Gi7Y8Ё?Jz�&?0`eFj OU^r^!Vc_~}*2-GUvapDa2Cw9}_̵owl8?,wO *]OX{F&]DP޶U nFK:H^=pB<ahr>·v/n.C5K·RhTcrBzb~H]7ע9m78{=_ɽ%f0pϟe*H;ɚw_ K^Ǟrjۦ}{ʘa"!ANQ bsyy8.U>=nV3Z X/pYH6H-RjNJ{ٌԃK<Z8r"(m' @uKQ|ߴ `y#qCj֎;fu)GVd<=dAY/@E# _ kQ"-+3䅴Ɗ!iݝ'@X=%sTPv' p<t{/:YHr9kMzi&|/_9r?1x3$[S6h I]ÇZu\P6x[Tq~nH*|2yCQ@9[7X$!=ިXa3~B- ' pQ!k/v-4WAƲq2HW74h~k^ICl=n�oE𘷑 CU<qVÀ͡%?_n}S1_g훐t̼y PuRtܲ,G<丑Qp2_wpMS|uW3~{+ɇ){fH<?솔'-(݇?W`/|Q(R<_9Aʁ6[8f;FrF\H(UuQG$UEo"OHY-{@QE]Hyoc"ص<*,'W$ yZ"ͬ�?;rsJ4` C._) *K3A}i5_K; `rsSo}Iv\Zpt+SzgD^k {Pd{6v+\Kx�Wd !jYm+ˍzu'@lW.qw!r+siZ[`Ajϱ6 dِA:'z$ǁM~5+&}|vq˖H03v| k.yQl~8VO u¸Ft#.I-N`?n�~ e_i#e}twUG*IK{'[vHl/ÄJ9$`ýaKbf$13 wT:wH&#eS@bsG^Pj 'Ȼc;/} m=脛/2^z)iYӨiTkL !~xT)*TR^E<](^d~?5!wq l^>cS2y)?NYDciAj@LKQhσaHpHqvɕQ0^ohLBֲ`,ċon"M?mLm$W>ԉsW?_@ɛϜOA;@긼O>E A1wN:kBQ{Ku8{W<_& ӷx$Yi7H02v;l1Q\+]MnrR-Vz2Z*g5Z3?_G>gMR0&>ЯXs!1>HÏ||7} )PE~ \^Hq߽62 ɅNv_ -fN aC,S5X炈ToGFCk;aMFv9-hԓNCꋡ铻ۖG;{$ 3&xmHw=bTէQ?dd\[4ZAM&wF繮LxyWrΛs$S(M~ E{2VGx~4^Z\Abd>8!qS?R7mJθ>n1!kUupf|DMDۃ`_b륧>{ɓtߢ)0v,\|)x@٩]`tpwdΓxodד͗alHi pt>)ERzkC߈ROr."i}/}y&>/r/^ \֕!w<b^?NK/�M7GQk}+L #"MK폲uU{q, +j|QdIx�pPEĹPG]gTPH.̏-v E :9%dV{NB(WQ vժS@3^0jXo^ yŞVJuqknt_:E)JN7A<ir7H=e?.z cKW0!N<!p4kHgl6G _e22D�ҾLJMB}CczWKw;ka\}ҏ&o <OV�ǫ۲6&s 'hiO|vuAۛ__S,7'%=Wf$?u~j_ `Bb4 Dq0aG^F-H~$(t R ~<jvR*J>^H=pS@ʩstgJqS胣nmӏ{.+ WTuoB׀ U2URk^'Ie%jH)hG}_Nї[=ا e[,Z7ܳ (J~nC|K. =^`y.N0/@ZN E`W<~'Eo$FcY|,tW:'drޮaX^~[Fx}${`y$ݥt5=\N׼%kJn l~a$㌑n~4R7~`OÝ^ 4xgz/BҩFדx,w|Vx!(�ŏLhd Z[ .V^+P4=wPO8C#:zSOGt jcO_00- W`DUoݻHN_ܻ[iѩ&?=M0 L;E6?np!Rv`B9 2ߜ= c-[&R`7{ja;ѻo|̓ݞ !Z7F{VGDviY,6,2'8)ǀ[ЮJn YNȦ:"0&_E"Rb {^K@f\.y8 e @v8Nksfs-~o2&~3`2ƟU:!rpIoć U^!JT)Y}/_w^ Blp)1EU{ >y~8:{khn#-C5:QXD me ||6CzJ/HS'}=ۚa9yo@F|~ʙջxTNb}o"Cњ]MQ8,7 ~TMeAr=h喬(Ĕ[ NT#Ϸ[mce]Knd(GZˆA[I'_8ˑ3p(Hʢ>_}uAz[GMPE,YASd#S_,^'LoaI9)nO<$eT8#rS;͟K4_l릔Sc} KY`AʛH_F7f-q_rSZm\Gt!ɜRm j),GJruVvٝ |Q!eqv9Ԗ )nkYsW#뚔7 8~&Tdˁ֡C(*ۙ9_TP-^~?qV>2/u+0oZ 7=Ϛox: WhܐaZ 7D?q#v:}<6p8,[&Gw4u#6KQsg Hwe<K› t\z]: HvA G?aC8. f_}~ | aAr4w}}q*B)zWnDƴEßg*vpKrcy ~ NR۽Y \cNr ?kϻ,תi ojvVg&ݗ_ G}/[kvx[gˡRH{ FuwlʓUWzU@P%Rv y~oRre=A⮔v S8={@a ܀Q4;n7&X_.ZR ^kv7 8@fLyֵ =܍-!H򝬶$})_DJ<k ᢣjM͉eJk@ocC#yg;KHQvYsK##"1 D抁U:g ‘bM­_g:GS`ӛiceGSG@{+ҕjcfz"7+B,DrQuP~޼y0ԿoL6* EĜXSO�6#3PnLCzN<}<T:R\[܅dKN=KC'^|SV"=5 'jaT}" Q�qv'ij1)_l)DvTQPw8owOm~ʓhA2L4/ >LHEalC0/\Bҁ!gہuy-7>c(;{Yb 6)ׇL ү^xJ܎NůG&;Hٴ5-3Sȉږ悭 }4 +*~,`i<$M4 kSe H�?.8$rDZ:JsCzf|p_UL"9d{y. WTWJޯG*Ӫ,}ۭ|;`®^_ AF+0߾i1˛7;> ,ǭka> +Z7 RN7O m#:.D`5Yϋqm=tX2 {1X<6HI<؋ؗKnU!:mHhX+@zE:4 I}Z�=w(o\M~F#XNl!EA[$Cx&Nr(9)ߖ]~scӣKA@U zQcɒIm А"i@Fam>H}i~`Y_5\NFYͫF=8&>;# mI}&xub !g/9 aStdF߼C$+O>c? 1s8cx Hn9?)-#ɩ&DL=s(N2&a0q#"7̬)ֻy ѽܶI3^cWX#E}-^'Ze矊ǀrnAWFyxŌ/h\Gǽ ,rgeȯ*Fu{ȋUw7jЅyaU>nThvI i 3n9IHY:%io2-/y&ouXAt0 I~!8yi> Xp93E =>6y yj^lL`l8g:VHpbzu@i3FŇ[JmCIin�CcHr+T.~ MK#fnC,?d1&gȖF&7UQa $,=_:G~%=TK@l#-F`וjN%^ۉrfd_^Fo27E#Ž;�Gy8>"sm) X6u d~ $oܥDޛ}u{K?:}s:H*$|v*e/ACM`}lr).zN2H N�t걐2#К>iAfm`DaγV:Bwiu_!sTT;dX$;*#U"�[ݼ#z]BZj0QS7xW'|]Mo>oqgnJ22Z s_T:[^|'?oGe2g^tt/hVV!z0Ud>`(^~1ZR0[A-XZ#ryg) * дipv:UP](ɽnrx+t܉UK𖪜R ŝԴ[<�Y<G9ڞn$<Hy͘H(S?$-Q:\Jk7@~zǫ0w'R<Ԏ%`>TP_ ZE iC$. cAG"yȃi*LO)w)]I2ېjq XkNϻS'tWl0p(sZ t|}%f.$}Caa&HI']Nrj#܅8O|c75 {!F9iH ~ɆB{uՁ#VIW5E'}X T_S-x=jsTթ1$~֔0z۞Ȥ__)ƨdžX} $E#^%}G^k6N]RyO+/?.`!H_G^87R^?%:^=z_! + 3x#& ~(= CLaliG#Mm|!p,VwA[|2[>}SHwuD,`d�oW],{^vkN"WD'nhԐݧ2oYwt^]&<P}EA7W]+&=¥G$M'#yhg{`4p>R6x[8u{6bꅳgQnF۩Մ5ğY۩(g9 v0=vO܁z?_oЁd{Bk zi"%է6J2=p�礪2A5oGe7ow6L\QWܕpJ"+`yަ,5Sv+GZLW6|ծMxy_zr> Ԥ yVQT՜i0aY5R %HzgO#*<?- LZcܘ6[a—QX*nq{m?VҬ6/?gY101So`mԫS!F_\"Z^y~KL<ܞkZd3=̃tRR*R/mnd olޔ�)}],KniՑ zuQ]NHkalҥsIW=ʼn*p"CYm%I¿Q qkolL<9dBtҘc<=Pũ #Y5~aZ3~x* ~RQ8 *UXķ1JF 4^)2n_F5z`]A^_ ӕʴ'g 1K a{zg!luͲ%͎0T 4vb` 3)a�304[j>[M�o;r(RW]Ƕ"rw?nPc>ҶmrYf Ԙ[r:u LƩs%\`!OZGpl-3�V׫7(s@³ʗx72S_Or'pjƮjQ3-ѤQJBڞ{AƐRNôN�KV`pЄ.^S~} .ϙV 7'6C|C`-Kޗ@ɬ:|d f&ˀ\J%_)9R"e'?Azk\B뼻A˻jq]QaO }H>mvH3<2 N!ߟ ˢAͩ<6;FJ&Uχ`[uA>i_ =l|Sd>N"֦ ^> k!} ZFhw}I7a%f;/80gsK,ryK;$3Thlgne]~='⃴(-8[}(/0 <.<7u� k>%:Y LQkw0qт0ާq|=C |v(z2uf4-8j[#e2ck6H}J1Sԥ{] #urSArQ% A[}עdR/7LAaZ$&Fh]HoY\Z%=]H蜘{DhJAY9u5o~K<XBm$)y9X&" K~W#=W pgaS[ N-{x �n ZwI[yFf Pb$6*`?/h|{Up[ ?>ݨj{%Lx\Xw5KP~byf$\ů Mߦ^'#4\FfGƹѵHV29$Fd3#+)LATHXiK-:AXu&hS<HU,(45_Q9mvR "E&4d5H\lk?0"/B bm<N Rӯ vį׃̔Ǽmqڍ=KHʲ4X0C`lduV F02+PYPpuMfjvXā9cD ve 8ͤ`e9&׳ZyOƗn>oߔ_5_;n!aGk|<(gDA:s�pOd;ށk bpR+ /s)xI[S߁>^s+eW-a@+&u n{hY U?\QONuvzdqaNOE;iQtӵ\=v$ k6kmkprnlyȕonŀHmQ:XiCb7"Cw *&88WnIݎ;z nXff_.Ftt$`}y\UlזZqd:Hz|xRok"68*)2ʏ=60]an7R¼r)yzvRKxx=k|> .tD Et.m/[Dˏ`60.nd *wQs/dX/4tD5kfeS N[~_#'PfzfsD/$_�~ӫg 82 XFI!^wǫoAmڸf[+uC?#ksS(&`폛> pRyHd9%D控 ϓVy!0%;f%Gjkp=JE%GT舍 ,\/ $O7c?%`;knlN_7�idMAZBΧf*җ{8 2,j9 xl4km*зB~#cE> 8g(+hďjo?]Q!Z~[b־zH>(̥l${ngt * o1D{//) s|uƼ�KnCq,_`jSQL)v~Tv ''#?{6 I3!ۿʟZ/g7R;d=՞] GSA͌QUؚFo!v'?ig^ސNiP�|+ A 5YG gOoއ"< Ifm%z];4d*~NC- e#^r u�tenH/EӊAP@j2GgO}&bS/&"u#mFv7 \ԭ1Do/d`'C+Dg[W~1}: QG_ mYa[#bބmkAtz埐_ϨЇ>_F{tI[ } R pu+7YoboURFaU j l1v9,uN&,|w[KB9+|T}^MQ3ۆ\º X{59+ZA߱;LWO[ޅ1c@\;lĿDv=S e s]I+CG;hH12{7DXD61փ7q?;X}sfoEח u󟪦AxZ9`@:H[Q3$ S6 z W+{dq1ӈs*f3fn[ό.|~~.|DKGN}Rx$Q/t/~rT$Vy; FG?/E'G8p/>̡Ϗ׆\טMM=`4wT_F9ˎ*<v4~|ԟoM9LFԀ/χ (qq\(}ɟݴ]AO]ڻ7@mա"MG(˦:(`2ۘYKWÙMAZ}$Jnj8"bnV,a4+/(c!d_ނk_Y^U{ ͯ0>u4e(5*LL7eD7ܪ0mzHw~ o0Q/ƕ^~0*|CRr;@5k8B8vg�?]tAw#}Q_=wA0z9wQR./}#�S͹0ZuIŕ6GB2Wt&nNA/euƦ{79$PO'#e0~}kR?c%\h ߼\_׀oYwA$=x1?G۶BɷjK^4O&8c2hco`u}Hӵ4yZA:53یI%*.( 7-DskG`csε<F~Z0"N^c/OS|\ v<"$/>dgkWĞWʇGǁnޏԐ^:̵"x!.=允/yz&. %*Zv$ fHXrݦiFbs[=#�ԍ-ZeX$߯3wF+KPC:j>lKާR6ζH`u>c{azӀs6vp_wpڸWAԱm˫O ?;@\7z-i <mic)Gg$M+ωW+ӞonW lR#h.jim9i;g6?g]i!-_*`u͂:ijW&-Be@r[@pAAڀHA$[y!e�1hޙzl;}O44TlGM~ۏt3[܌AyM_·S/Q=ʜR"w7(|$՝޴6D蟭v~O@%dk_E rHdN)K. a 3v%$u'rL`9O-M?Tfvvć>˴܇ Au "GENCJRتf.2fe~CW߷H^DMgՅ|"G@b/v WFe߻e/tHR]cg ~]6"T-Lۋdy-hw4 MMKh~&3}*UAtd|H5Rmڗk5(DCWS^]82 OnH_yw5b[dv#?mr?̸ңjd| فr{^M]ћhl<Y8_9&=6l! Y/1kߒQRoJzX~sr^s" Lyd! <"__#Ӣs/]}pi(s.r"K4E=(>6 X-Iw*f!9Bb5DF@c4nh FB0NV[-?׀7[fJ3ᆳrk@KQ`$' -2'Qmy2'+AxdK\7xm`J_Z�³o[suc2K5gqvyZ~N;Æ4? 4"@ef&!3?_[!tۙ)q&TDl&׽ t?u@fe.y.Vԋ¯tiN |<#!+2LkA[t90Fog-l n#9'ܡ8A>qf#Iw:@gˆ-w=2#ӲrQmcOӯCyCV,ȚmYmV|@室=ɢlHDwH(7r)V]6&US9nH#zō["OxܤjJ 4PZW,/sb 2 { 3W ' צoJrw%WGk;jZ1V�*W1Ed\xJ?#釕 9KDN`]NNʠ+~ DrR@Rq/(sQK^VGOȰ#0I;#Su :=ˉ<58֋O6]zMdF> ԏ)4^Q|T [5eOE$gO* @>ϥ Z:gBn8xKO釱¸*3}B{AiДA<ѳnSꊈ.TX8o\fYLG{kb 6oO j+T!u g<(.Rf?3α8Ư<c�؏~ S$oV)MĂqukE8.H`<.[HZIOۘc Y=CA6DYm7Zy|Sn|Zֈ$w9+cH:ݐڲٱ Pb]J0+Y?6$ס>ޓ =O:ҋ ߰ xF mAH33r[r<xsԗ/u|= n\%onU fLxߞAs%Fy6!xE# <FWtܝ$GCZ3S@">RTB9I[ >/8[X f)l I%?$N�ǽ4녁7.1Mi_"eLwf7_gilu1 Z5`h 'ꢼ9rsԝjW8 -}Z_ݿwE"XߩYiR~bG[@C^|Amۅ$su)݉ *yز#ri!(tnI a[%uC'K\SE 5>!w餑H}ZHs ׁq䄋'g#5 hY#ʟ-r.H%5=gvwUf/ͳ?Խ"8kA-[VHFk o IMgO;3x k)H/Y@h;}+p۲)(%HoED3sH+i?1 lad /KE7_gjM@rG୷*BÄe?lĉ*3rCi7p}oJI/y|d|d.nu8L0$ZfC Mq ݦ7)یn}h r'Bڴ"U`H#�ɒ,+M^D+|dLF#—]>F I4=F^߭r' w2rNs`Rq s jdAyiQEu,rף澩entlBf`lܬ(paOg SX w,z@2=%mDFd b9pd#ָ�y_׃8Ly$~OfzJfbeMUHjKTeǷ'?q1c^T`Vwg=K Kګ<Xmwm[OP~5�RJ]jZTp{qAs-}N} |֩r-=r΀NX~RF<\4mKtINkH˵nX �3>͇L-A|}8iBc(nGZ-kX K_<)I!$ |&2sb!ݜ&4&~-HN-Ejy ɐXO{[u>2dN].]rI[0Wya`ǮEྀb~/v0}r3 {4wo3deiCDʽ7RPF|CVd*|xuA!Z ܥ2!)z$}nSqR]ɛ쏼'CAtO9w0R?uƼ- -v<9'6R)Z9Q6&h+3zz<?է6=wc,6RΌ|kyӎ c5w<jC&dVs ^ CK!}r;{e` .?ӈYUw=nu#|a]</8P6JBg׬*"vE허˗sf8V iWɿj(!bA+ҏ'9/Qm٭ r)UJ>HGM6Zbu'$]%L}/z7:ӳ+]]9m*%jUiCG{TsW8q@,l[v�džg.k"ۡ `r5 Yrc-y7r<30 HgᡲumA4>onLԤQ(~-ҦˇW'իVP4u?=GcD4Y ;mvzneMeRYv=!;MLI)qBDn j7 1jӵzU˘wr G? <];q§FH6eBzL;b>'o{>fSKg{Z :|4R^: ¨ ! kţ l ^H=41hS/Z45W-gYBͧ!Þ^$=y�8[CZ;%}'`7["DZ˄02sfwVk(Zlf%2KFϐrk!wu3 s'kHS_9B7g2o͈KNΏsôrJq . wC[+m{\"ӝ",Q|̑f8u#5<#sm}אb»O 䄠ܛz4M?V�|ӄdA mΜ!ӯNx鑺G06h;_WLڳ92.\X&Uc&UD<Vъ?S֘F%f|�f5&`%\Tfq?ߣ̣ϨKp:w2bnBr3v`0qjhTϕo2J?un/ny7WXJڗ~:{g3W "Z6I͏^M#O`p%AX!UvqHӜ*+[~}y!iQILK;`JGnsn rܴ-8vsHGK(H\R*G)Oۉy+$V ǿ'#D#Lh5فj+}F P=D Dι)NkGkkd^p]Ym6R/oQ՟/:|C: (>5# zLLjFـC7pt̶f U7A?':4 {};j>X=t;!b!3V= USJ*[c�}}2AmIO]7GӰn AqJm$.HAB2fEH!ӹQ.1%Ν{D} R ]dc݁YR$Qf=wHV U]Cs]H}>&^�i{H=LCku ˧{ !U9I-`)굷/g\-:?Ho%)s&!]I;EE%g0ɝmT[̰HQ&ksKO7mF7a뤾i/`Q8=|v"Z]wqs?'Mlݟ>o/[Q�ZYN͋{-{{)c0_lS*#7|| %Rf'ו S N5?Gox=8;΃9Ls?\P#.ssb~w>hm_,Y>:iva;^_xpV`q,vM/dCc0"Ͳmk7IPJJ? ?mz ),avFΜK;ON0řx!m}O޿]q=$3'ȣk5`or yv ,]R{ 7(ZO ʶ[iS-p] cj68i ck<qq(>BrgXHs~Lw19*>..^6XIڭ̛񜹚ԥe~?8Fršr9x=ۆ|x5u ͒"6uZ ӼH/=i!N]�A >M?yO&OGl_`eɟ録NvkgX1_~2k,Y;V9% &^CI#z)p1!MS0Q;|6oBnw\;P..Xusݟ{אqm†K 3u|b$ywBk_m 9 B]Q C nq훊*e@;Cb9 ?#FJqfw {+jJx4 `:p O+5bJ"H9-f`GMc-*Øk{L_8z ;k<?)dpe8`tZ&gY6A҆G0Y$.ᙻE6̘Q& 2qj&P;w|q9; xuHxԋ䂂T}Y u_�dF ųەt RTt.Dʲ+T'Oq $I BW#YXBLPYT@`d{LQ~shN?n{~Ě�:P7|w:w�Vц2et^߽5XgODW]d_BW6| u1tTӥHڞߡlYf~ V+/[^w vMdtsmP# ŷ?<\ˆWH66 RƗɷwH~errG No@13t{9@+j '#s%MsA_3r/ [ ?\*O{jZ*~Tr"< w^6IH]:WwGjj_5I 涧>Mf'H;02ض'~�+cH:?;w5H~g&((JZPiH ("DK*3#ѽ#qιz?9HwgeuF\Y^Aq<?讑L{nV'Yv~ Ziz6Vsi. <:Q)ج}|yu)5/>J3a3\'?2!L|HOGƉ80rqgsKJD)zK|st@ X5_ ߟ̡~8,Ibqb@i-S'HBymHf!){{o`h,! ?^#G@,o}照U |?K/0`ye7QÓ]p oS3d㰌 ! elUjpҵ^r[| &=֟[FrNFC8&9+{M!U.>ІR^_ߟtId;.l`E5A&/9Xxou=JU\~j"92ܼXKLԁڊJ'v?#Hq~b&'/Ϩ8iYUS;A~;gȉ /[kw[ĩvVkW}fPAHVݚ4ɼ ` ;R}M+ݟWY Љ>!H[oʠ_/ߠAe?�wqEeH\? !rɪsr"|_wn[`V>u^GOA+.<RHLHi<LRO~أha8d -*GyH1Z? !06ϙً߼?nڌ_/y*>~ɳKB lۿ [|8:iGNΠvgLQI눓G<KHqu3X7=wJ1`rB1$45)�jZɮ= Xckx,i =?́o[ى6 H8#F*ԔM[I]Ϊ]{$SLɄh8t)W֯G6NPK>X:Ϯ,SC9`$K�IsʒeUcV;ƒ] 4]ڶאiv^1a*0Ue{~4R\}WL­EWQ67i??} C%/Z[uΕM=!xH,[.G0vMkxݶro"c60եWZԶȳ#BqE _qKF$e{a Rڹަy~?I=F}!zte79\s-DJ{1w? Q-N|Z|xo.L_2ܚI6ng/~<Pߦ$Y-?}/Ep/RF -iF~[ lɯ*5\dcM1fL5܄j`+}2>3g Q= \pֻ0F3)z)䨸q)1{pLjH f9m ٝX%h�;T6w$Ey 66;w[rCx|`֝\A㜅�voL2ƗK3?׈vǞixSw&5Ck'iY6QoVd;?4bW�/;%89KXyODz^S F?T9W�f:q\>%-i>UwskD)ѓk yP< eiyP#:}/>Lpݶs0}zX:ytM+'PE =fH_˻lk2V[%d] cmU!=؍u0e.~ZtkR�&zu\`q~_Y?M݄,|u<дw~+M'"f i#]MOJt&yC0yUg`M;= u㟆"*dV)9TSBL« WY&,Gk~7ߛ/G]қW q_+7$/S-|š ȷ}}D|ysXyF#/"eOApZߛͺ@?z&)D/#)sk0Q*ϜAW` ߘp� kHnrb[WMZ"Co~Ld̄aJk5iM~CHz, z gTΗ }Ƒ.5C LMbL;;=͗Լx1&#^,X-3xu7R~;^֠64Ms߯ ;f%3abr˥ H v_vL )R:?#~dW Xve;uWbޯ\3BW%zF>KOWT>7"wTP>2fxlϾh,yYf0T }/E;s8!v~욌y%IjFwX↹,a)Үl^7>xɩW\_G'8@,8HSN"__NBTQAA_IM%ct% H`TXHJ:$c qjRGe*U:r~mZ$^ IJ"^l�qaՏ .,v&rݑ WVPkFz;ME~/Ǒj2Qq#6'܁?(96_Xg?U&O"uh`Hr~tj%\oд#M+Yp$OY0W-3m#IG60WS" /i (5]=IvG~ JP$o_Y߷˞m `p~ AD:'3`х>:Cvǀg |BM@ȧko�dݹ |ң37J)�ԒL3@HWp)g\+I $u޶[FKZ-O%r]OǑhܺ %x'J'eEKԧIFjDD|tRԁ!2.gQitb&U܄H{@Lリ.8̝FiP~5i!PYu~N}ٵ;#Wo"|xѿy%0.^WRnrPXzHL^D[W~'xyftǐa" #|#V!!i9HlX܏[dX%J `b{8I~h11-w2&7vE(1 =n /2з_)v:ib68"@:?UsR?L%| )oد(Guӑtf˻Y.ʺ (Qڵ�i;]uJ5+▁4Y?Ƣ?=bUaۓQMd1^8L?*͐?R><AjcӐ}dzY-[9 IQ7YU:L&9 `x:K tXrL,2~ՠ j,bni-rQ=|`e<OB-v󑪖 we"IFC>~:Rόj.4#&Ԯ9nZq8F6!9b`?4VB #?*ځ&u(Bq8p ٧7I@yC/&ULmoW2Ի*"tR<A1A1= Isp(HI bS΁g/Czs;zVsF%r&GѩN!98tsn_ ͊P[`;5F>^ #`{H7q`T#ڭ2CjaV!7 ԰'#uV'Do~ca.O"*Lڤc[Tsֿ;HMFK.6ͲYчAҼ,V*+k*w:uf^W^x#Us 7:א΅}A iSm i[ԟyC'WTߖXYOoJxV⨳(+\tJQ]-Iw"u,{ɵ}|^giZqK}1/V)E{HS`l74U,6R0t.GSNK<$7U>z�kji0Wypnޱ;ѷ܁u^^`>s]#Y09t9E0xsLqR;BfHr^?ՈCZS 7i\!ɼȃwӇ*'bn1RvDk Rq>--s< x%i~�\"049߄ǎZ-T;XMK[`(8t$g?M<XFuF3wy7&a:ERf .HlxYĂؑ8I猞qŗ|¡N3˚%r#淭Hgyv�ʝ#<xV7,dK7 nHm ǟJYNU~${͋Bzmn嶺ڬ@iTWq`ϴT"|-3Z}?"Q 'w*'<{|ơ]euv R:[- `ٚ eğl@5g'~Ä̞%ӁՏRx0xC/9<PNRqiNZg!o'~tړLr &-:FH{>B+Ms1~\>Q7,D?)*Oh3Nȏ3zFct'sEp,D><X#~'Fһ xل>Qp 0;o2fq9אrc\^z<a iܷLKVFǐL+U~#śoH]#)My\$r]!믾2�lJ銙q o֏Y(&5ґԚ Rǖ+Lit yPwƝ=W�fC/fM?/XTq' &ԛssfz+`nG֨ S5~>טǍ+Vgr7XgC~k~9_H\xٕՏ\ɚgG/Ҫ筁B{A:﬿h6\UudlOou&QSH#^xWBH {{QJLGjOV3ܣ+jxn~Cr)“ͫ@?vz@psİtajR�)qaHO_tvv<2ʲ#'�/4bc"Vv`|\duII(ۚWS@xVr1Lg,Ů!~[l<s?ws `铟a;t$Rud>Eƣkޞ;.؁ob2_aZ*L\<}| ljI_G`?77xw˚WL,67Zgd%u0kd[Z#yF�8)Hn\=T+I@B^mFѫ֒(mpfz$ɞsy N*A[#׵=�_?ҧe) H_{jMbF9|</4;}YҫcA&fۿ07\e:źV¿0A{7Uׁ\q@x?~<F;Y6`իKW[#C~>x ~Nیfy)?7-~׮?9sqP)HtK;H/"ѣu}ڏ\ e$?NǼ'DF+QCT&[9Y;w,+2zR90pBp\s&릔EHߔ7G##rbo⴦iϖa!}^s|&pM8I TV4ǒz^mmA,3XO 0]%*-JVtrwhBy e>GX'cSߵHZ M5:K.mؤd lȶyVe |G&ݼq$&C;?SSaXz˹{zƻWRO&kE`"{VH]:e,};HIzKFߏN{>"pCK~|#NVܪL@$͜q9b8Fc�$ .0=GYi� , B7ޝhn1.W�E~C`ݑBg7>[uEe28�l% (%ԢAO4|Eν2\ "i Hppުh{"mb߾H`dZoY1SӜ_؇_zCɪ;2 a?ݹ4]WthiRç bT16^ }A[5ļfp/MwC U.T`3:@Y(˭,&p K><xF䭝FZg3rZ˹:)^aW,DzɎ7cFpO5qJޓ5w΢ mq[ ]L~պљH%yEוrN 8"ۏYH^1}S9Y0;H.zc̘jI[ <|p~= Vs]?eU,dkקWs�bnX_ц }(r`z XO5B4՞ V91pN;zR[lס"wVl|UXc]kB=YI-tWoϖƭ`ķ=(y]8խ^Dy櫃Q$OgV, ;0Lƶy*j`.#> be_)!5 y֩?#M?7] dG>lXӖXG#9EaG篟s5])CFLDÇd-EzUFA0q1?/`l}EeƩ@QcgK6p}8-e#a|oOmvD1]/q΢srθxyԑ%G`,ƙC8̙ `/4XZEoGxn-D,~dnՌڢSH[!:cBy {.a}-0{7ViSV%FRT3ߍyh#Fosܻ +m s+%i[٥j ##7nV#Ϳ>3޷Uڝ4ߟ`41ƣFʋ#sz[fW`zV|dGԁm} nKIu  ^ʎҧpdajV5H)'o\KStk@hY:#DY@}F"ƪg>E3pO6FJ]C6(}U;Hf=Oxތ#i(w@1DewP3y2] -A2eJÑ�|9Squ(0|VypX{l0 GN3�W$El5"`M~A`?=Q'XT6p O͒~2,2_( ߉|ރ> H%{x^jܬTSBI#V<I|z{a"K]uȽA08&0*wkL=EJ⻗7?"l5 `X:00<EBiW;l<0Op{X9g�ޖĮz4*D ,r%/lz 3$ Y[8F>Q':S?>Gэ;[:`la%C“ū!iZ?4uY>^x:yԩȘ;-+G]n(d_u% ;f#;en.X)SJAdn0 9;|6cɁVk=YLP{N> |0ޓ@SaҞC0>=h棯 hRCz!Ylvٴzbtt{Z�l %MH[T㕉rJHʞ_y voj iߠ~.p7Ll?< /DRhn;\ͣLs>�V`03Qp ?蕬3h<o^`o>},wN?Ҙ7JV.E ֓JH'5GkP19ʨ嶺P} pJqV<`%M^ةL IR2j9R2f9qϑ107S(3{w8>l!сkY$"15 `V5NDJ9,_h, eN ]B2NA4;)" U\q޸F]'תf(yuD-]#bHՆ _(1r)>X Z}v7#J@\:ڊaM bu }y"\UJD̉Cڱ0`o`gyWFE(5RI#Ign2o88fIBÔU& pt6GR\`+(߿{Kmn@ UHig A7ى܌U p`z8Ç:7w~G@g*0*2]#(0Κr1_wnByj|.|Ҷ |M qQm͕Y0bL;.gn |^Q$}d:- ^Ū@(:(G5g j=`p,鷜U!ZyMMG"%਩p[)Sܗ1jvqo+wtS!-}"$7n>۶DKJ.ӦƀD%/(i H8SNuW]Ґ{%9]Dfc{ ?\twhzal ~0IR ^s/X+l)b"~\ Lolw֚|sj]n az`$7绋H5K??5Y];Wv6hKOI$޴} pKC5OuKWHYc8/,4̇胭tMU|Yg�l٢Q:bzd~3zԯpօz;aѦsE9piU_eN!gr[s^= L!eHTp<z{^2>2#]5- 6Ii:Y~PGbv\tI,QX nedoLJ7p:\=9ky$@nŠ fJu`ʻLp rpw⼤mz~JWe~w8 DJFUC#o:Hu'4K 05UA0i yӐLxlO3ui60:#+'i͖neѳabr r8HLL~ ExpwȂ@k-CL`*+2V(wJ%/u ]2=XGCUg=kTƆg<ZTUWn H.Sa4?<]3 BPjOgژ*Z]i+3?{Fx;6k ujϡu >:/&˾ΰ#"p&Gh+@TizE"+E3 ݧ`o,ι=8'"C{ �lE?s}&jQMM {7 s$sw_Jrwtgs%t>'एm7 AR@|q,$S>KLov7_~ M+{*ҟβmkFzKn^!sÞ '2}'E D yasw=kȣ{R/Ew狁L/9}2&>~;P"#"z.]ZW!7>(EPd;aWN[KO1c&{k(I6bIG=7AE4xx:oAdws`o_mE-E);׮v\amJ?^I@hV$ۭJɆͭk /V_ %?@(8Q3> &Ǐ[܈I\S(u܇.Y|,'2m>2w>7%uJ?_E;nуzzcv ;{Q}* Gy;-8~R^ڈTlPVQeF5E_;p'L$?mn}I["R'}0lM"`+G8=&7?!fn&Zv*OԮ[VC(隵HmINcI`/ѵ$;88F͆i,7;Le fT_>צ4)Kc3|?o<ӥ?w( \ I(.xF$Rg{|E&y5Gwh&_ݸ1$_z&Ot%Z7pf퓷q몑4 #c=dWV͏pm3k'p.^>!ՍH~3gh;RZ{·l2oX> 2zz'vPtk`-g>.pLQcouSNX±+iTK*0eS|V2J;m28)ߩbW{G^V[cɊK6\_Txn4㗻Ä]ȐI4�RA>I X3}4;N9!}g7eB6IY6I@9yLmLp]#Dx}n1 CPJx`e\Q}�e_ و@a b^tn1Σe}ulHV׼&8=[d 8Ѐµ@`+`S c὏S3: ]#f#pͬv݋!(fwޱZ@yƓVdW< l/`Kd\0Ëջe3XuxN Qi?K lۧO34YI;D`15n)ilK:xIs#J߻q/f蠌R!&r 4}e}R'6{s[~Oއ+HOypϟ2vCۅ_tצ2=o`|cɽؐE'է4$nOxOvNdɊ%# (gRcqQdcbh%CxFoCd^P'RW^da 0Cg]zONJ0~7W!4k.`^ql3Җ\5äƜ/_u%s}1nEo:HR\VS�Z/% 䣴r֢h LI)~C퀑M6fl \{ū_#]=2C(/:q[(R3*X볣~FZʕ됦@=$Ђ 5kqkvhX0jMz('0,‘}R瀩1m+RQCx۞)6(:ch/<_޲GDo} EWYcEx"65`n<4h| LJpPer8}w% ^N[t%`T4'byd$/I,D]Og,)܊:R_&AiJuMˤW~$//V�gXͨanmoE/>C#cǢow=*z48zAM(jjjJY Óc> 5r!Lo<ˍT>4K7#UAռH2{lo I0~S:Ŀп&<8jL-HVZ]M_$yVey7J&i'‚eW9ucSx Ũja)?Y(!(_.#�Dޫ ~u9'y,W[mz cJ\Wo\<TYd,ZRkXk(@٬EdDXwIu_d}rsvF*ȞKCҹH9͜VEA16$iOW扐r`H(J_Q~R<|xs.ݩ c#woFrgfs R/~l߆;o> svh}*I5~ $͢�NQ@;ߺI\ǫJ*GaL1G??0bAN{D9.nf3*)H<S4 Wz|0%)m )f@8@1995b$D949Y>@h9Rj5 Fc2Aa_XNA)q0ўgSrQNk].X9#ցh)Q/nDaqO۰͛i OխHˋ8eH*ڽc'^9z[>>2{E}@j|Q&$JӒc& 34PgGīdj7 n0>kG;49}y1\ ?~asefY"[Jr(;xM1ۯ(:6}X "ƓYbs R5ZlFқ/ènopz RFh5#O" >,@ZFA G�P!qg.i!}1UNMn²[@r}m^7ƿwoNˣ Z)jS%+AX8ۦRHUZ5nu G>?V0<�҂ݛnvARy`ZDz(l}4CYt3UfR~? OJ&Z>fH#綅1B4}Xz5=rYLi?I!e?Ge/@)̚ӵziV{F2 LV*-^&o\9IVxuI M c?J0T[=w2c〿Mkk cZ<k�kX,Dpy˪X̒sL+ g)60?mu&ݳtvj{$$ @O>N; LO6ɟs% ڛ>?TsB_JKdWB>X w]o_ Ǣۣ/PlHмf <`hY=f$>S7k\ev~ZM$/j^WQ�&pN\\sS;n:.G硁n$zk,K?yE =2pqKM�y+|(`6ڔHZxwZ'U6 ck6ѱ4#w~ځ1$U^fuqJZfT<֮tT erŸ=vE^=�Yo} ʞ:QRC /8)ӂVHx�'j9q(f.R(ΰia|#r d<*/wʙҀ>PnYKUZE¤g.JeRR)!gP! k9L;L ڷ~!#5bKGvWVg}y v"*+mGCJ܃,-`)194w#n_}\30ةrRI{ܑiK nuk$a(חc|TXm>]Si3drHնt׊[`hmQRJ4<WpG٥_믦#mD<Q5%V% +uݛz;]ץ"%ri <cp[/Qʭoy97«U"` w ZNCNnd -6dVW3a&¹" )" 1H1Qx-O˓yp+`zsIoix lŅB/~ XY$[6ư C)婱#cHa k):Lr&0XЃ/Qk `,=\Rdxdo1[&+G{F)7/bkȞ02E\�-W0w7pfx"}U5 pΔU@0٪y`eӂJ!K ٶ߯Pc_Q{Ϟ{!0'??9[*_2ħli',R n5O[ nk7{#=l箅<:]2IΟ}EO�$yn-. Ρ׻x^0^}AQºXTɢl~pDmOK뇃xUċ tdy5a\`rZ Nщ?nSohG2:T~d9{4sh4 f(3Y!ݬ }]Jӵa0լ d\vxr Ce<22`j/0lMFc༫+\<qGhyw3X;coZD? cWžՌ#ݷ} PZ<Ȗyv7H"unko)Pj#ο+N"W8tB]uU1XЙZuofkAoQE/<ն٫Dp[Wc^57<*hs<bEim-J\^ai?;ȸEjxzcn$Mk#rj$*9f :S9ǁ㯸sRblurCJW1|u($<E;WyɊ/n i`pP&͓~0~~8鄐ȇM^oI_q{e7-nٛ4&pw<1L Dry2HYnYեJ q'rm|/H:4+R-fCïodyACz:O+/d7X u{՝n=2sV3h`oaT$ZGoힾLq/e6p>9\p@0"ݘ<4/ Ήzzv7t}/�"far2(vl}z:W»ٮJG($qˤ'e{zM7LFW̢<ڑfL !b ~/ً{c,m6ARF`28wGYݮsּ惄09H3} 0e|6Ͻ6j dwTL$&Sx.XQ'>&+h)6jgmpd:zo$9x`I']Yګ_3L�_b4l|aoc}>xeӖHx|7-BjI}a#Sa9/*J+$WAzgb%\ Xށ ^d:6"}6{vsy~Z q$VjP1oStR80l`Cm;2qڷ?�$ oZQcW d@±mAji}mY H [-jG7O!ڮK螛o;!m1պ}ϼumSvs9UEHbF<]@Uu޸F(mrmߵ}i23.جg,';]RW)|{[@�Lfp,@g{n?W\&Ӏ9֦wKJ5tw<jwp=yߺ5z"yeL1�XU4UH9ՂҔoaR5pMu T[WƸY0e#kRƁy.1e Nך}Kk aѻH Oh;!_ =`H=%rH9PmkG'h`qK4v1 ~arņ}AdYZʀ#i>G{_rLV["*r!h0(ȴh(i-;:=#Ϧڛ1>ͷ>Z'M=?'Q650)R][UsQɟCX/SIYxobr(=ls2u1l H=e+OJPsġXI͔ƛW@,7aDw䩼QT6A"?wddf*?Z{=|]_@IM1(m%x> R|&,L^Y4 >7ngv3 z[?~ Rse w4S+QC<i>ab bX0MU 84_/"弹bLaR9/] \ ʵ4EYsg1=wwZ/UUI̹*b.j0Sk]61ju3{i>9ckc̞.CJ !<x $Wy~o ՛‘;؍{ANG@{IT je6><w Á]bv=TPqY&fVgYH븛07` ]jH{l- oDwgCPY&�RD~;eC tL5( 0y NTx!]xTӦD}5`Exg =!UinHb`jk~ҽE Y?+H&p"p$2D^x_ulYH- J/ "Y+WR#/Qd$0JpATuF6F>8a nC+YH;oCP:k90�9ui;(3uq$-zw*1w%R*[�!w3<f(PR%JX8OkHqogP|q|x^ fI_ mՕ$1DڂSNM01tEu$pV]49<v{V t7iV#ELVç X䆏jk OL<)sGVoګu]˗~CQ=U:pZd]kt?k^k-{)8rɉ~70Vrkc9L;c%)&g!5h\4]ء`k.՜֛ $;smq)oa)ܛsp^>G5'%QrWHQ_Aכ JnweaHX.$4vXFpkӿ |60j0wqyz pm8)G;6ѭo$e<#fn'Xp)QP~0ʴL0|$L6Ltmq]TΡ n_R Hn�B26R׶T}Lpƽ'^;^{=sj;x-QM6lkvm͜ xLc'a,Jݵm>J_}[r }-f0[x%~q`ykw7-]ͻ߃ZK@ۅ9H/ W*0DKM׷efW>'$<@iϺ,rw)YH+>Ba#1D>wE)K_{U`SOri8 8jABcH~lyw3&l²]u=MNqce3gQ̳s"d g=#WU}aV;;/xȣsw^3Ϝ_4;e1 j͂_4�ߚƟR`d\)z熛XP{]Hdq%uD]v}ZR~k0X NLAv 9{A|'{MV4$]בߵj-2|`v(d7sNhEfDBͩ ʍ뼶r=T!k9ki-#޾ACzlS#O~]DALKB>*$`߷nj ݴeJ|| JA#vpIoGE!)7o_1\(߉m=ʁ0lCi:,À/`"=8~VF_�CjW2@RKZrA\kgMoɳAQw(֋i?$Vy x5C=S漖m9~0XRu99^됺4%:o Yz4HVSJջWҍq G4b_܌mZ"ͨ!fTxCuk p'=-g."֝ Pia%{a}_#*R ;\Nԍ[JQyH1:fh]d3 ϫyؑ�ɸe"$~AO$Q.x>|"%e{ Y>Ý iqv:E02{Sa&7lZ@<ROIvMׁ/;x$1'qeQj=sDnt_ .ϬGJwHJ^Nև+1sd<k=;ĜKn\~8_%I6|SVJ j]+5ɡ"^GOBkN_-:zQKe`=4dc~6 ;4(Y>CR0I9h#2|�QW$ur &Sv =e %(y[SQ4/vcBl!xhI[p˜i'?, wz,Gu^ɾm}7}--`HؘR>򲲫fd]؟P )]ľd~6 ǵ6D�D1xzO}gtҗ~q hk!X9&%N{`ӣ|몗l/]&FmtmգKaBHR$7 Ě||V2+f~Q`ky|a DrH*O4BڇQ )F%S_ m9o%R[*0d}.̧lKu'at2šŶ6dpAbܟ̚Qn!ffE raA n$ZtgBu{z!~3|LU((u(?]8-n,2tWs.�ivԠ~Hkފ?# *8I"yd$<)չ`xOH}˾ݪKxvԾ[nz!_g@pЮ3HH,> ,w>0b^h~D15s\'=ft7׏͒Gi `hHk i$ L_K꿃 GI߁2a\U7sn�7+6Nvz5#'R 8q|ͺKH3Yg`'o{_%L.x^ g_Kȇ;wal >/\hZSsT`lSȸk s<r>KMm 't_ByأʓkTnBү'γM:ć8?uq-A˜y|QQ߫^]YIp9JD3qǁnpBk2rbXdi~Sƛ(oW㼘WwC͑} yαHמXTaD=[dh;ˀyU$g%p+t<z+a2ԛdUVIئ9$y{Nnly"5|uZ9і!ժl iܬ T= Am doi}6 G`WcHΏ_ݖ`*97~RhfP0=�S5J:tFi ׊zpäc6Tݭ(ZR[-AF<:-=C^>u!M@mg] 7S=g%[/WYQKʏ?I7Z2P]*ܸ*pޅ_׷)v5yWyd maMriliA@Xds*bhcH\㱕w%DV{M=8|jIWyӬ[;a=Wi˩&_yd 5exR9�p(~_hVi<[:ǀ31w~9vZ9 >C]dx>X !dë Rl:uOuտAƖoz/r̺X-y~:>x{-]9*~X~X)Aɻ[ͣQZޫzjB|kkG!_jwXlTyS"m4VJ _i'FiC v*6l0RͱH<d'Z'z(ڻHҳKg[%+o7m܄y.<Azz2׊ATzMɺO*ޅ95Iz{x9IM?b7~u� CAѢiHF;7Ӿ4-w*A0yj{'8B&p.퍔\2]HvO΂zfΪsflsT[vε$wGH{ƛ,%{d˙e_u+M|w,yJ_R==3D :%H\A8iEe)w&FϞ^H69-yemf7sv -=W5W|`gk_X`P8;K&. #Isl= _ӫ޽ ~ #_~SQ?Z}&y߭<"֩ϗ `5M$r%g ti~&&̹WN]  =+oE͌6n:R:'v.LCA8R{zF?m?]O0KVg7)7COW{jptOxWCzN0;QUz`HP{IG[-XXꓙޝ3f*[y'JH[ۙ6̑gĪ$Kƪ�XGg tvu/2  Mt^^vDb!-|jPyC1R-Xx mDK>Y7jx.\h8g'zqG_ؔqp:mczF"== ģ8 ^cUjBn9sA`zhTi͖%H{2~a vKDM!ry}<~r" v^~Ij#싾 )ͬB˫%UHL(ҞgB\5Hh>NUw]q[5Q{||$e.^r[ L-V&-qPv80CG5O+38SP9IYSwEۋxSabҁ2 ~pA)AX .hr^5 OֿI"5l ZפwЙ\E,_fĺa :H2&W ^kNxjҜ<`{<pܻ%* ?)7KvŇkRLwN|dskzuHma5-HëA%߀~ǟ!{Fˬ 07Fѯ19]qt_{bm?&>9Qhg' vsk -Rɦ^U'?LœQf]U˓'yS"#}$/\^'qpa;ɗl?T\[(m밲'd HN(/3'xPvZ'/ 0riMfͼӆ$[H*VX"/miz[/ʴS,JOؿXηþF\NU+"ㄮkY$\g}R<n( "M`ebkެ \؄6#] WHw+6e*>d -ܓ"e0oe8`FXgx<$#L׷\yw TO_ r)ӗAw!m])D{kl@YHlA4RNwJl]d n<tX  \@xʮm [8qTsRfoZ'1..7'kȜqHUl(|7D dݯKjB}Ns)G۝4&#][G_H\h:j X l{~n_21C ]r=HRC W,j3~@pui}yx; `EXǛHL,9/žr; ϣ>7D&'R= lc 'v_y(AoX8ʏ4ׯAc~slﲃ=m N62LԷB @tn=a )? ݂T\;Hʷ_Vs O 9kfEu6Yӎ1|BrPlvI>vcb9ȵƝQ|}K0gyeOUelL)$}=#|$ͥ껈`( yqW'9\ f)tFG0 pnJǶ>_r4H+ް[X+r?<|,7ׯ<5$m=t i}�?+Xlz6v6흁Y,[s3Z@ERg .ܢ}le`xjtN쭇 .!5(uF%yUwۏ@u&]UEҵlq. Vvᗰ xԎs �W0R] &?kBpݫ8C${sAVz.p/}lW㑭}=HJ{#:}b|}\ _~]{m`~߭�'}{"dMt:|n/|4\<+l;=JAGI̛!g}b!kԐWHӲ^}n?]9%[eo95lČ;<?1Uv6+gRbQ< a6?WpvԟȨW*؋n[FVN qQ Wq t'tS ;NX#\f_g6SqAڝ+<Cʕ˞�g_Nϱ|Rhx3"7th= TOuȵ\NG9;Kfq/M5v]P$\U AgG'yHPMUiK2ѯ@oatiH|OH-| Bx;b?m6_toӼi9*?c W#2ЪގHZm G^٪^GŖ-aP:Ki #TzR8:q]Q#V}|+sI@y+z*X$9HU]c;{T|>쓻 ߐL̓>#,[�3ܾ7O]⥄2{zNjlFKTYG)ex7$WzBs/` 8[U% Y?8;Jtrto{zvG&Xq)?T~{E "ղq0dyD(Hz,r`uL,WvC_u=fESY<:~/�Hn[ &CRq?ba;AWNڐ ¶߆Zyۓ-6+(.iKJRd,*�N=/:*\&ZpW!̨WLS הStpK9`ivih1)A4b9mG?QZ,-/g#EJu-Mq%ǯdHWrW3"\/]x>#}Rs4 OS oa+XJl Qrw(0&}Ѕ׈6_}9w,9L쫊-ˏԩiXltOGm(a؟}?01lfbc^JYlNqWU;]Oׁ&a;JmP;L̓8E[F#w�ރY#IH?kq }a)hE^J9ITGD>/# </ =-q"$;A[+gmX l''C/U$`HzLJɭ Pe ּ.`\S]gw/! t%cw_~+?\�:$4U 7?0i霝>R֭{JsMw�)V%HIAlθ'2X{p,3<,`zl9zp�&7m�7C;wԗkH-@(4ܛxSڪ@Kt?bR?yz487-zuZpFW p[rHy+/sɃS} uIdyEu IfHlH I՞τo3+9|(4mGuULL^MXUQ={i.H_a AƖaI\<1qP:S&z,۪DrBFMdL3t1vcT^ k}7f4R."YoEePq. >X88`VQ_x4 ^/<t-)&}0^|ඊ^)FΚq=x^)c*[/4N%wu'x2O#$g<\*k~2>$q<[33w #IW%|zٺ@S&R8.5BuCO+ix6G}|ՃП6( X,VDǍ vI_=ҢoRGӐTtGv^`:>X;m"~T[v~ z|,.f12q8Q;?REr{wethKFʪE[|(^MPCwa`gb JJ|m2\-uBsr�k? x#v=,FT .0|HE0qj RHh< ˹ R:7s tZ=|k$3m8F9 {n^vf!>_c+.2$mדܦ:WtIm͌S LoWa=HiTC9#"tv5;}i۾?&(Aoe~\n2QU=%HbRVmqܞ3͑:v${g=w&8=re-u Ҩ|KEKiH}u.`_P'Neu@w^?ʜ;zXETde3HVب9mT֯6+<Vc>~-I~>".jƎ̘b&kSpǿ,Ϊ:@-13_JQ} >2t?R`Fb P2^ ɋgNMOBi#\B=gEML8 c(Y au�Z̼&HXi1VFDu؄ʘH?\o`>?aDŒ_<t$o&-y&u缄`E7ǦvLoA3H=ngxهZALo RI£]/9.#뇨ׁo3Tu"?|-:- PqMxŭݫb@}b^ܘ`鯂iˉz+)-7^dE!/V =e^;\aUoҁu/="u-{`4cNޖy0Ⱥ0vF!f K]A%sif!Q5ex9#Y%TX M {2VH&eeB{u/T+~•!:q==\ 0{lZ΂MH&*Ы.!#jg!pZ?EJe -#]|m e%v>R~�5Y}'?<<fo6ɠTP <kn3+nnm=u!?]~0꽚$#33%۪4cEq$ͱ\ e6&pI - :(6OSE=(J=2z)0 LD߱I i0W5'CԽSHlh؟'&{_B끽~T�z>^ɝ? ϹL%E}'Xݳwܲ<y pFo Xw 2lz *Q~;9(,jdgAҿQzuʛ!(n)ʈÕ'Pfrqqm#cßz<A%܊{/AbY24m A@|~,-_ftw|/;)K7!oH5 x@z`9LVWlg {u޸,Q &6U hzn{.IޕSX_@S{>n•OGRO@eC6@|^%Y=ZN'ܥi"V$ٍ&T8=wC02H;mYtcCؾ= $up$ʱ!VS I=Pxo\.} -o|R.H_z#UwفThY./sܠ.pź5SEZ_;dMi_AɦWe M`?KlPK)r$+7H^EB%w/LXOv\&5 k:#S=HI1:>NcHm]�F{8(c !l\p'1w no{Uf@�ǁǴq`[<x:o1?bc _?34{Z* )DaEHV尛xQƼ){]Pv c7Ctns#1n/U[KuYm<t?ep>{xf{aBu#O?+Cq5{/n49~nO0 5 :57Ls.o!SBg<IB*7FRL_/A2wHTe-yX~ow^BjB#`L*G)4k|.GG(\6B+ܟWܲu[@^^yrބjgl~cDԯ6sݍ"q|�ؑO.@5C:Ԝ.T2pyY:\$:/L;HGh?QHztPUqE`k~RɄ1˫NzxP*žY1 ١]\ ސIx0~.cאnF[HM]ذ)g:q[ #N=4zzu fߟ%ήDLzkjT53^kwֱ . ]XW]\,';LA1yVh@t9S@tybOjwp2Jϣ{0Y+r�މvV1G2O>=dn,ƒӥ[D0sA$-"T) VEAnB-Ԇܖ+=F#%v5W=@}.KΕ4OljX_sd�GkVz_O*Y'kI鯦|S?s 9=lh&ÇQn4nJk$T܎بNE 9RoFjв k(Ԑ"?S$LR3Hek SQZYSUnLқgﶡ?>ew ٻ^@'E ;&Y|8HNr;kJB|de!VOMI B i$m|15 %$S_ArK}$+ Q"{IY1 0htvS fw"`=;S7R.T)W(Th]ρ7Dkn�!K> iŇK>'r4s繹,L>@#|}j9ko,d?Euu}G)&GƩCKڹpnV|r~Rロf-WK=?oa_o$u_UK㇩ `<"~g$ [7@r0sJ/E2; T`|D)C#[l $<~_6H~ IN| d|s1S͒`\ٖ;x301-æh]< !J7 M/َtѽ:R}>M{8[6Nؒ:L쳉 Rt1͹3R3ܖ#xi8gl;𞾊 ֵدoL#vʃl›垝H:cQ9WaaѾ &y̒Mh-9K<g #-L.L0R]'LE3AOrwGƗY8>o7N0Kd0^bC]τ{#mfa ȣ89$E.6;a :mi J3 /\],E/VOA~1xS+G9:,mCY ?ŴsP.o}~t\AUtxLg!}&32f玌fݍg:s.>wx�ʱw&[v.D:5$HR<դy2<?s8na!/,du(P)Not߭C-4 %]=8ўHES$%E B+g ˛�Ε}S,Ϧ{Hwcz` uA"dS'2/Y\Oi}zH]<}Ϭ (;j3`^s1_hW1V ==HDǖ`o|0Jqo*kQ?{Wl F+j[CxPLqN7&lrNK@iǑbw<w˟IJFϼQou> ʴ,U"I^?6]'E/u9�vF6UnKXP!Q7<N5k+d8D>{~q]7<GJH%_z)Yt<%7n 32R®V|U xmF-Q%w<->uGɪy16\Pur<&Ť'H4c!81fş6&n1zb$stpF\Gx_IQ&P%(;Q ODF#H)SZSS%<|A'G{_3 (RELq%XߛaYt_7$-sݫi)U+ASCQFSU3O )yjdOe" ?6R>~)3p7">UE0nKUU((%N""*IEPB{${_z=<羯T$YbM\m5$6IkXzhZY#rmeIk>zb}:$qfgXS `Ja:Xӵe&LObk)9b؋}vo??Epҹm0w[0|iգ捗~bn0LxCkB&6 5iQѺ5$̿T*A`-=6NjM?k%ӻZ10G*r<K$󿯏6hȢ)*y'0-h%,ejɧ2%g^w.qzXǥ'KWVS@ʋ7yxHlNl> v"n*si%7Lf9DŽg yd'&~�/]'\ bq�)LL/] *DFK ?kv|zc>w1{WNJuLW4G8wo9&+,4pb]v]y3Y7$ J+'ij7\DŽ_|J-$n{1x뮂f]m WqO ca] w"7SYS/KSf*AgKmI^]tg[On|1u s߉ܹ=F1<1w1e2iu̻rj8S]FJVLWfnoei0,&;'_':Zv}¬К<15MB3L4G.J6ۑ]ʴW&c)9ݶ03w=++]* $6.+X4q}L0L@[p]I$nU#Az{V)d;HژreS%<u>]KZJLrZHb#}ST譞QX*0+[�#WVsL3q$6 w29s^KbSi={=fsX|6b98 ~b 0#Ɓ9 Ik$."^&i*J[6?6cnOZ4bһEأ;a19+ރy1K%.Q߅a3EVUΆE^ËA^"?-dz[t/ELz%FF=-ݱ%q>Wĸ-Cyzt2f8+N/%z{y#v5wXna2ʑ$Ob">`}4f'4=}PFHmјj}"f{ߞ~R U%$7yx7cK}{zIlFmj/섶Ef*tI 5nو֫b3?0SOCOIGoA+es_,UW|SP/$N"v{s/fo*0]i1s$vegb6X+^̲Y׎Ku@gfeLZ}aw|{%$#gc0^%& UWlN^?鋝DNiGHb*BHūy]V\ؾ1]B"vpٷ0~]֫XTZRڃEH&R.`9Ȇ@$|Q}VbOOb.``2 .OֿQ'< zKŇa{ n?Mb| 9bl|]$*,gq8ݏ_T#cQIP=uߊN Z=Q_$] yMN ^ZY̽DdrO$VSwciy(O|$:i1:>_ k -:r>'o ŒXVάjt{wq:I_޼ q;gaڝ$ܥ-:;?@3_rE&O˄3̊E~ b|%qI܅(7/%h:KP:EĢZLLgؙn KK6_IBZuXS2XHsJSctH']آJϰ&NpNbm^aXxh41Ok;xQH<V^&q$jmּoZ97V%qq,FF}#zF,$L.`vv̘~+ygog“w$bf?T5ȫbsmw0ϱlՕy#\$rq$7n'`n$=|z$N݅6ۓ8%t ܌Β/-}$8]o>x8UqӠJi;k(,~0撗‡q*LVGO"vMAGJ-١o+swcf|38ɷXCZ7sIl`NnyߺuX)v2wϮgI.o~4f [R-)Lb99LpMQJZ}CH ,ʄzh'cNYX7K|Kxͱ)LlY$Ȍ]MZ%.ϊ.&77in $+<ɹ;0{E=KqNf *[D?MYKbhs@+"vgMQ1,wRaiE6kL25o?IB{˦t 3Hl"r>w@U/ߜ +ߜkR xR/z̥+H\+SH|+d<:|0͒Wt+Gg2v̘|Lq/⹞,:Ii~ją_./i7f]0:Lb?Z=Eb3(nUZBz2Ij!&RzH[\ivlAʎkVie 2Oc2?LXss;heIya6gX4l˭8ɍjGe?fݥ#15[1 v`? Hk{4]ljHs( qNX.' 1?[xH+ {0ކm)X_0եKb ]5M1e$SzVa1dKG7;H'⼌=ZXfT+`%`d2vϱ8iU( 2Ŝ aeݒނ I*XrxXI,os"ۉ^SAp[%]3AR$IZORYzϙF>I&5Fw$q];8ˋEޮ[k ,痜y$Y*nGs;)Bf,tޫͪ$vGW&8QCZ.[I,sǶ`3uԧX4z /V_ڧXˇ~zLtgP.|XIc.? baaY*nZ. ƜjԎPzG"<JPx2lu-dw|h@kvWqJ&`, ˎۿ"shc%ѸV+# ݥܟ㷦Eؽ*\T-@͇"X>w"!%ɚye(y Ga(w}o.EsQ7E# \Gk1pscF%ݸ*5A>8DBvq(ePv7z?AehMhyE'%E} 9ͭO}{@g8>*R5(vJ_s{J=_^kׅ4roG.at_PQqAgKTDe~5=+?;ԫ]Aan:$-ٯqU�(BF{7@$n*iבB@]|Hv7yU s$<J{"E+dAMf>P u rk{C(q v 9OP?/Vl,�9ĥ4窐h|2i IVg."cW8)qU`vEw~aqEuA3(XDvEʚosg5cBoRgZoXBm[0-"ꖾi9c]5;1A3(ͩ�cCΖ (/]0?{Qly�?yո%gcB$P%Bѧe2>UESNߠ4~duҷTWakْ5l~cPM[bXtS3j_OD`5.i:Ŷa-fPx><]l<!MV_1ID`?9{+v#GCb7eL4݋+@+_dwQkrc=*~9z`< �#T^:>Q@cFV[PtqBjqK~RWhu S.xܾHMH?ks7BAJh^w4~7YQY?3..)Ld<֫W ]D౦ w?"x3r1{y< O hĺoeJٲk_.ND՘f^5 m4cPళhHD9*{PU:砗ne*Z#=qPc]v8kܶݚɮ~`:ی=5#C&!E41 &k/}Y1EEj ߃IyZ,֣tߟj5K KynށLsGKmg7zhԔ<hC9Gc?3v >D>q' (bٜ%:ǫW(h+԰xAV;(y:F@-TR}Qr}8j K\lFd,QN30–1W�J^&N84wb9ʭor~4#K_DɐϠ[Hdx_bhWzӎBxHOlm5y:LPBYotD|HfxN#Uy_FȤ7g*z B"Q ~v(ه &ݍN]7ߡ?E!wQ02:J=d ZVˆ$'>]C a'}aGTC&:v؁o+_2Fzd,}h#`Hh'�T�MjJ!x|p'wUraҦNg^NϢ]Yƀ ?} G32Oq؎s":i(|z�\ R5PޒX^׿k@`ޯӒ;PB. Bc7^,ݻّ Y0vl'i3GQzKe*('ӣ3)ϳY2ni{J<k^dX|Heχr^贵ç[(w]^u]/a={Il-u1j5n"Oho TZE\z7h)w&L6hW! S fUnj ݖ(pUoP]C M|Hq{u c|d ~4uECYEتA1$n{54fD`6ݜ/@z`Fo$rWRTmG`#V*U _rv:h{?Z` Id)j>CQkvvr=((EryyT ѽ^>?]BlɰEVWo`-hk" Mhe5LW?Sӏ\~h*5 7 մ>Cȼ{Ncpϥˢ^xq d w/D#1Sh;+Pƹh;m/.y $"3eU|A\L }lɟE$z\*(TK]Q"nj<ז=vQHv}UηFtÒǨԛ$!|;Ĵ&^1#]KBŲ.Y9/gIPӕ%b÷*GWReJIm7K7"H˪.gП8% `y`(賭!‚/lJ MS;m- ۓE㎁6jۈ 79Hܝ9 IBnm; 㐚# b/^92X ,gFO؞'Qwhz5%zt^.w^Ahl1~*XM&ΝSG7\|sV9Kw,\L|a>t!76z]?瑼vr;% %ܽ�*n\rCU z 4I~ȮNVMED7Je2?TʋdSיqG^Y(Ͻb)U0n_`C1ww@Y#_Ȭy3x * vjcxNHپ|$9x%Y|ĺ@~ ? SPr 5Q#fKUe-A 6@̘R1BC+0u*/MƯ"ō&| uB"t\W((6IQlJ Qj{bx?ɹO0H̒ua<n~exGt ɽ@@ Kn{|A\ 'gڦ-Ԭ.K ]p"Zc n7DL 8 -0ʕwe=JncSBES+WW[b-Lbe\ANz!3#mP4w~C%%!dD"- tQ ϲA:ʛ(+6NS܍ٿj7{!O_iSEG]-Œf+WATOel<2a(xu[wqCPulhC j! kI镢u`>%KaJ*J3 )+O^-Aoo;Y#-Xe 0Q]hNFO"'*ϝM9qכfg84qc@y/[1O" [PkPn\y ZjX(kcq_yVM-U5~> wC>~ .ovͻ8#7{$娥d7M)C4ȆD<}4(e3мihwS w^C߽*PVI6k=#32oJ }Wn-#QبM MmcЕJ뙠6):>k{ 8 = z&ڋ0k@/ZK`kR͎6vGS~יH@qjWKT|}p}3^Σry|uN W#ld*|o#n/ϻaj}\/6\&{vhb폺{\L}~o GrG<s!OhݡS$x%2'Fc3҃=/)6vdE=ow{yɬjVlqgƧ}8='N~%hOzUP}s8 fdjr^ _gΫV5yâ'sWc ]6+J;{:HG^f$!oN84y ~-dsp8FpY؞"{?z�ñg"'K<KuxAMqdQ O\BI\ѲW7pN m!ySN'?uň$(hݠzу=vBB[4<ni3 >yV;(9ϵj@m .[A_y(>JE/b쉼J%!Z(jӷMs{!A^\w3J}d>-8s`;I70겝k-wqѕA݂~B/n|94.xc:5#P|{~Q2lDӨjo㷍J"ݳ]B@R8,i*eܵ1i T ]6g:(+:iDϷ6{6+h~"ktToeڠyBW̦R~$}}śOW3>asvE mida}r6*?K,F>9J4,]iRVi U%a'C` qE'/9gBU>y*h  zlN$:p,()]ȿFA_ZY�5!w5Ӊ,Vԏzg{q *\%zFyDCeWuͭxõ`md-2xW(#Vχ! IZ9:Lr'dӽmxp3eYa0U鉂rT0&Ygkk tan`Q$?ȼ Z:YI0> _#L5'8/ۏIK8qe`DbDNUO8 Δz`X*Slr reTnĨϬV"/5J"P iam KYܚ_#]sp s=tà2 q2J#V0ǘ3-(<T,v^䫶Z1" s, s#P09r!}>O:\2no}lWrb>r+f[ΖAWm9Pl%߻bD.s+ȹvsgi3+_9d>nN 5ss@cjԭ5;49ϥpĠPWThK Jk}P๔ %,i^2<oDڴv,мϦ;vzBͷ?Tyta  RU\qHOajA_'Ahcj?-(pݢ2$_WO:Td8;Gs TE78`u 7Wi Oi ?Q}6i"_K qO79J;|%ǺO_hBhTwoGUvKu|e72Gm#γ4ʞ?2zV#m."0oa"` W Mt1~)H} =I- Ze2`0]؇fP'mSw&Fi#5_].ڵW^!,Tiv?}YAw9Qlb^0DUE>GK;sZU \ij DFk&zĿCGZ.]}tbͲd9;hoH) u^tł|g=2bL8~iXPbW_Eٰ^]ћ(*KF@/ NEm`j1E|JNP}2|ZuߚZR4 euD$e[ AId檒FyQ)aGyS0EAN@͑=3|i'ᐷ.y!96Tu[jvs<+?!}/bV5Z>_P4 jICfF0x7kfP1K>5:'EՋ~5Xv- <=0\ڎ[8)i3L5/ɠs+L>-'�: ? iٷW{@&F/9l"a^+j*y-0PM-Aǧ9lp ŹL;;cnebT0td_ʯC;E3Prs:BW?EbƐRǓ(˵ƐXgi"յ*`HML_^<�w7TF]_H<X9Z>O#SCB՗e>qrhҶy l^:瑮gx+̏%C(eS(Cv['iF}BusKM& tPM WAeDq,O+k >n=/Gs럃z.[ tF=3? 0bû!YuT-u|@L-!r{f7+ sjg}@թÓ:.e>M_%/7EFY?Z}@}5K|nlIߔ{#?9[ ȖUV 1P%;:., |#3\OQx0tgК" `*s8QOPW"4jNAGr;$-Co;N 5挩hX5(;72F0Z S'c8|l(ʄ.[$yߧ*%0Z<^S<GyV`~[6T;RݧyPρq?^ѝJ_c =y|0Ɏt ·/.AÉ_@CgtH(!73z[TwK.Nm2CƍvVoEAOdܘ"ӕ>Fy8iJszw`@#rYEWt~3/YM;Cr|#OӦ|<k|ưvսh軕lL@JYVᩓS/sA|C) EE2ʉuܕ8 .~&yd;X<{ӕ:-H#5.e) KhQc3}@Z˭ _*K�)jj$-bsLlH05F$o<DoR(Q&8PI欳" =13| RPt- x{ls4ךp8<i_@|c5Doҏ,kȑP'ۇ0:.=!p2;# {P{߃ +f<h s~Ɓԇ;wKˠ:~ng'wڊYW=zaCz\> ﮚQk"~j'P_В!|K(n_ᮑ9 Z"砼߾p"~3h/ʧWЖI>`&,}gʈ%{ 4]TΜaWMQͦȱ.-|u"gR8V͢f|34#Yl=fkbFo+. ϺF5_ᴱkFżZ)W؎}gvXB&.6%f =GƵ*&ޖ9uƮ O32c'kFA<ڗ@ůܞs^Ws&V:t棴ېR?[fkN--}nx* TF(eJ̺~X4<F }nlB{AKl 3DnWpqظ=jUXr A}_Y*&ocn0(eŠUoSP'yПkN5fYzu.P) qaT3"p*$m-ǚCrT<yrёy$9H @b O"Z90ݶd؁/hr;,T>wU'3iDRϵ]�-e6ԛ;K@{\O&7m׀\/3@yQͩӃxr DR衈n> so[0!4GtDn&J�uK>WWؠrcX7.g(Uh5Gns}ҭoICں׻Lm]uS<#<]`q;S>"g}o 9~n<ub<6}_Au(l$!b.Ib?hĎBw};ًv2|:h?b ݷfU&'Lp<dd[_^GM{Gρv#\M; U{?:׸̺6dɀoyPa̺:#-IzQDXd4bw_BGu"Q=*%)?&SB,Q>׾;fȊ1'gg rTB~j5҃i2`>a%&~Wnt|/&1j6ANDs(خ ը>]jvxRϩ4X^ePdo<-c~o M*<1Z�(OJp/ﹲXx'2?lcŚC?1ܟZM =h&2 ^DŽdG!4emA8B( ޒ?y_!`�FWIEPJ� -G iσ "sۛA>iדN RQr t+ IynA g~">tɩ\Ns] |}M,Jzju.ՠ%u&5D~?T7'(g03?>]ۛPU)o8I.;Pcu#:*IQmM55)﷬u8#RbcgS|9O頛Hw}okXP|3i/Wz?A㡰G+qL39б*{Upw` 0~X#V)ZrPR>P9H5] ZF"#6(Tލx-\sC?j,yu'mNAA{Ϳ_zT 9='UqEI%l]0sO_[Z7V)9L/Ps`5 @~jꍔȹ#c^@쭹*`\+.Wg]èm[Eqr’J-e"{S 7_AdȀk;$I= ƧMVyd 5%~a͑,SՑ)mҋM Q|Hd<|΃dpȕj*CT檿Ȱ<L{s[;LgoUJqGȠ˯Yz`= G!}-(SMdsyZϛ>ZgLw&ى|PB`J΅X5^JJ Ԃ#$D)0g>ͪW]4#vY^b[nk 24^b&oأ {6JN1Q,9ܝUҧu0Р%Fί8BVEH�TV{& ;؂>̟#cQf4!Y?y46ԝt RŰYc&}?>~߉lď KMA* ~v wnXMKY$ wNڎԞq<S%Ъ8o aH8[̀J2e7]L_(!]^@IW|Lo&,Žo8-*"[zKQmyd}u$5:zSʿ!wG63?kY/"; "B !E#G_93Wɋ tr,9mI hm^ϲZ{cJK'nv:ݒ \пnTNso1UQ"F81U10EZwDa@rK]P9/qD:'*L] MEɝ/ s5W0hemXD@i=W *)hpR$yń/ Ʈ|G(=&OmjV MͲٶT$~ 3Qb)Fd[)OA|x[ yiN*6l`]ڞ ~Y7E*(!Pon[4ȿ}fO4a {^0j"it *gT]InߧC?Đ`lnN�饌ܾE4 t7 !wЎs n#d2OYP!Ж47o0`\*[wj6(݆[s榤7(b1V_ӗnlX=o4Pbڃ:; aix*,M p{=ʛ\܉>hdF_,fͥş~B z(8?<F=D<\rך#g7Ir{i ڟ9$d@֓ux) k)E=CBֵHR.p(\B &z?n;"/J> *wأ#x8eM?UF.c5[zPh'%{nNg"Hnui0|Nzc,βy'<=Co;r fl@uB5M.ec$xGb;y<M 8F?jE,.(, -K&!o7u Ǫ: F߈}:% q jӈ0vii:NfpB]EG{ZU>@Y2!9T|:R+)MPtFנ ?y2 d3m,h{ېo.-gHޒ9g4Ǧ|7B!v ,qu3?W9*} TGF.0I& 85E`(2156.4@P 'ap]!9J[>kӷ/_g#R=26P%u;k H7@I|F}tc5Z9p=t}EMA-0dC^Y 0UQ?-nOUAޯ{wܕ2o"LO(9%U }[Azly'e\}d{\:j'Lꮥ](C?[<g,-_< Jy(6oX!0nhۢoW\P7.yC !²Iht`do-n?7e,{ V/_{WRD(} ts3JF&xd2؟yTh/ǹrDEYoF.US oϡ,ooR?Hz./,ؤC۝plϺԏj"Qx-}V}q31:"Peп(בּ QɏɅmH}S5b@HYYh2~Х ov/uW FlHBw~+eo@{ m=QDR˷"/KbQ|/ fI o:Zz!0|W:M6FOɉ<x!AKk [KN|56r~S[t/"6J~.@_VɄ�g$$Gtb5ʠ: 8S;-6G_[ &SD0ѓ7#OFxuZqcP-&;$4m^Tpze(4Z0<F/ضuЎ�^ԃ;tP-8k@=ƷI{'j&9Z!foADŽӲV{=下D"`nk*٦>} Wa)|m8A*?a"v϶_VZF@ 9} 4 ="|c9( <zdO!ڞD?Y_8BO5QYl/ zѓ0m.(�7QԦ(r+{�czLcZ j宓E{(^#vaGgbEPXHgj"|Ȏ^F1`?rhm'!EfD ׻e#' ;.;Ϟgl3swQ$nXIGC`\w�qݻ5g/ H=COkM`\\~ۯDWДu02x8=#X;Σ53g}2?wԅNДe_omP=tw1H xPdԸ唀ʧ~ UO9oD@u(z8|P&=`*ݵKא\kx 1[;}146񲼐! A[+l=RљD÷L3Kdi 5u 4,.(/{" >?55f ߠxs!F/~ *ANCߗTg o #o2tdCw0s12k ϯix]Los /Cà Q<hQL4P#SoDyDסNuIօ"q_I| Ή¨+2Kִ$Ɖ!N㹎[VO$rt`;FZS/캈,ܪW'qrYDG*椢 Hu積>a<0v^;8@06rz; A2.jaZc2w1xҌ ꠼b| IAMK0P_p \[ƻ`LsM[("Y~:مǛ|@mGW]]~\6ZOF[=<(8#s[ZP~~B:Fg_\ b.45A)\r{wcB܉PMfb=f `爸Z0 9< ~a)ף$Se*/KD6Mu aGܳ"NG'rcdܐSŏQ:꬚4RBoU0PS@vxy{5hg0?*�Y90Z˩'eB0je +E=D Zqe <ݫ1dqr~,Q=iZ?NqB(~n [;ƶl?N|,x(~]"[QVsCy3Fˈy\ y՟Έ^@F^{G$@ݡړڇypuOh[A}vu3hRloQ$hy}6;0<o&|45Uf˭ Y1RgNU Y=ߋ?.!ݕ],5<)kd@ ?=,i?-b)ru&; oQpɮ<-n2+w /huh>Mn _rSP~ӳTuCAwq2Gz_5_ _ū;VD߭= C wک8\nW)$[/'y|CƠ;o0W)rB^v?X׍Qbߔ*(ܓQpr a*v^ ޅZq_g_P:k8)zu{H8.Sc 0:n5÷K(I[;ꠈm[? U.Ȱ`GZ-k#dHC=).N9H8!t܀.kEװ˩n0ap9 x"O,*ߎN/-㚉z1F~8e4} ?8)"NfyML&cZc]1d 9?-fCO;bQ%/97J#9@A�tmA1I$βʂa`$97Ox ^-Ye, s l<$XKFL{cT Mh'<k%ߗog;d@rѬFs]$o݁2= M=QAQÁ-vX~F%]_q"/4瞢/kc4-xNȋl@)Znt{my33~<<>c"l|QV^Ѽ+P:F FbsO%|99^ B0^0ö@x}IB~~M\s ":o"GZFr%?hJ8at盟d΃~BfĨX|oنy] J|@v# w9F l$}$[% Toy0׌cV1k FӐM5!o[i�}O+U|s砭/_3�8hN�e2*0v8|Z|7I&XlJA+*vLNyr?/zy@{h;<}p|i0˾ #XT]�ۋ{u_VTd؍c쾷dĵw"ۥAI'e4ȦF/\G a0o2ϕ#qtt9)ݣ0XU1DW*]"&iMzk{ z_*',.n%Q_L uᏺjܸͦ7YVϽ܌ʔOxxN4_@TOu0UWcyM^aPZ/djD]ktNLY6A7`Tw9AULyA!$4*5NTD֫{14[(]95Qͪ d#Ő`> 7[Qw~T*CVng̈́Ǖ0%0,,\vݕ+ ù 0?#ySkQ1Y}ZE|(j~lEM$&r>Ŋ}mv` \} >s F{uj6,wP_9=xStTs&gF {&q evR/}@]Mhu#Vm@TBj#Båѐ*7x7v"1ܮ>q#0hP چRw0sǗ]NARK.Qi_hMD !-&pn T3-U h4ۭ@QX|#fNKmκ<xfe9PޏZ q9\rz#gӑT4yR^vwx6j,WP_Ji뛷 5rF.yoc8qOE#F3~XG4];3�E@zVfDn!rt{$L4J{wƝ8.|2`.<zʱoKك"ѾkFj,o 6#eΛ/*zk+(_|c?ǀx/ٌW<I^q򺘅ɌʼnQ{PsZyPC߭h +M\y0-F^mXO�U)Ŏ/n^gCqyT�}awY�ET)叫�#-iu�I%HnA ﲺ>30^^ol&la2J;QYFh?&2yMα̱4؍ij I ֲE ?%kQqxo hVrlg_ _+u_BvQ ">rC,&Awb8GhcUQ`4ZH_RN7 =j+EKWk&״Fzn`Um:&~k GYl3FBAQĈ,R^-l:nJݖ-Eu:F͟YWYs%.{uP#N{>g!hkNN8$jU6W@Μ\OЬg-sѾOи2M? oc@ cbϟ$\ZWOSכ3H~L9oQBIi @:M4>!UvFY=5JGʠb0BQ\xZ@ Jܶ+~0T<rd?P=T>w/G5O; =1: `n_9AbolA$I/M]@j8XªkӃ,{o}?ۍkȢÒ)0|8/x<%o܎ է #w\A1?qPߎ|!SqR9_nEf%.PKAggw!J}"^kyCFGK"Q?uÖOwZD{?>=Ju0*0B&_Cr5H*:@CW&Ϟb9 r);AndטJ}|i҆w}z5vFTy#4 ֢o9~AaNsJ9LVyЇLt\=d:Seqie>|<H^[3dmXr7ޭ' NR7R,/S`>jT3�]}P9^8~k]pH:\- r~n6_н}0=vEH>=qPZ@<Wei߽29tPwܿ,d=hgm4]ɽU' 6{Ĉ]^̚|9:Ezދ?×rD *Πi|wu7**Μ51e Z;*WQWAki@y?K!AaoֆmOJ@;!e4Wޙ T7MJnHy4^Zf6Q}+*5B>bdN\./]/$98sw)8Ir{a b O^Fc UԛnZ0"4D0t݂ C0O,îOAܯ9t))AQ:j8M&x䐮%2~~EGv+;ʀw+d]{|0׊eL1.s0 WLUE[#+8PT:(kC3"KZ mTsd-[x5-<;g iv7\_ ZLX~3_D#c(e//HE¾hsqPq)Uk0|=`aB ]jPeXh%3,EJ0Y$ 'Iۓ4E0JrQZE�/7(WDw:oɋ}A}$'>ХH=*o '8ԼQk.R~].ק{M\+Ց[wwI\k3{$Sq}(ݛ@S 4sjѸeu": LSԢO'FPۢ "4$+ǏBqkn)6D7fo@^gXQp)+ _=%syHuow#O{MP v(O^/ug3J{9F|kSʼn~>J wXm@ye?ExWH;lQ"#XAIu(7D7oHÄr1_3Z| j=S<S{A,5ߠJQ,w V#`z$6$!3zJ_ۜGUjsxsڎ,Hmݥm8c_à{tK8C Q;Ejʫm?Jb@H,'DqmI.B#mhks?zfS)3ʬ+<@k,>t <F֩1۴)#O ePEk !y.IVUD{l ( üY?u/:q'!3u'*#5'B慂A;RNhبQzyL,Ti%S~ټezfc>IR�w!Iٜ_XkQ_5.(D ݫBަ_иz1r0t)J =?҅a:� -uԮ}V/=LJ{.;6o7{z] KfuL"ʢ>jǎh|ωCN%' !ݺS I%QW~`g%Ȼk`s%1r p%ڣ=ac6gQQmSUhl- zXh#'IXJZC €'u &z{=Xe�Sc* V)gu4F Dv[X VYA/Aه,[R=+R>c7mπi.{Hm_jBbq[^ 4ghߩ.Gş:̕AiimB_Ř 7Puo,(kxDnm@�Rf. so; Z(2~@Q ZN6@;'7|aC҈�w->{,17/RNeJ0?0!rDSI_t7wG(x;Ei}ں,9$Nz{SY ;O\!:Yi1NC׭XkfJlvuQsFPpͻ(Ɏu9`Yuߜܦ'Q8O(sW60͞.WHt{J+]Uluyۭ-WbpUJNC1z;kk"c)_P#eKZK?uQf_!h_PVpT'c7?"#VAw_d:ScJUTA;ܵtp=6r3@<@G tc %l (6|{>'<ysҥPU n`t*J$IWۈ ^oz%yۭ@[s˩)_y0sأ۪AAԥS{1~9JZ4 #uG ; fAR NCvqO1`}9F뿡#5MW폒 ӧ8%' c9gd?doY ^Pksn1t4Υ<BՁOE-oQBJ}dϧ'ׯ+eJ1nDT"A49)#ty@T{^`aC9nAqak>82.}n+.G�d0ݹ&_-Hpt'.lM-m݅4S6!}_D8o:Hxa٧ȝy[y,AxӰr>=X1dѹLi3NDAkjԨJ%bb<oydv gr4*y~YXgy\'_;K ']]43۽en..\iHo!mQPU,Bf]t~  v>|̗ooQRz rϹQ~-F~ +`>cwFȠO$1/z! c~!߀ԃN?aR fkUݐ l>sl|Jm lk2Q԰1j{YABv^ :vӑǯxmeڅZg+y1 5,sȾTc}(mS*܂$Wʩ#)`rz$éA j2z֎ɨ;\4R=i<#`Jި7jmii[$q7wp$r _ ^V]! . }hW̉m )hY!5ϫo'\/kV0f`W7'lY92^,7%u_;�dgI_ vzi|F} 織HtKx2xDP@e9(6iR*D>.ػ{#kǐXĻ" sAZvٟAา=~-hÑ9p؃tWyGMmX1Zyfl Vp6;V'$UT8xN?rʒ\Ao+#5RJȫtiɹ?J?ظ}?R/kT (:ԠWmHϔ_F`HFp!3#VY0Yw%"$Cr'~neԟb ;١U]e8T ("ӟKwM‹ tQ[(dYTy&)UzhL- ?{I� ,Q^[:IJ8 &~]>?VijOO cn>RHF~I-RqB9L߳!!IK$K>;A ՞;2'^[JOsQ"L %;0dx�,]Z­oۡۦ.5[wyzξ1E/ͩ*:3{n o[NXvL Eӑ~ fU%nẃTA1q&kg^@s#=Ydy1F<:zy<BtFXO+*Ġbտ+2}~�_. ^1mނq{XSuY^E P? ,5v(FxQm*+؇"yM苵ylݦm*Yːㅥ|0LEay6 Ҙȗ+֗nXyl*%ϢW&}C?6@_Ǜ%џ?]hv}+sf_=|8d0Mb`\FJ;ܯНLQ=D72@k;v5G (<.׀i`nx=V<A]?!=:'o Ϩ٘^ntWs~ư=Ok8ёϗyP3ܳlFȚ+ӘMՇbrwo ZQvaiS-\7!)'/WV^ ~7(~lQ n[Sdiw;g,ϤVY~2%*O8م,7 ws}+Od(1V@vdUQ?{yhYtvv3"HI&_rRk;ѭH6O| ?+MZJsL1]f~tAݻG 3+tU_NGUĩLenT; ۞`9 vIS Wo[fЋ9_Bgl0jP`yaWu3߃1^|; XHaDEƷG/AutiD;}oY&o-`sТR7>2ʅJ:3i骃ǶsKBoM/OC*!ɻ.?M$ Ԓs5Ucs&MnEE?ݻ{$J {"t6=TKA?|:q҄^j {m|be\Dr0:.*D]jප#w$`n�/ƎkGߑŏC5uz/Vi߃�Y;U_7g*ojpy9;{8'~^ßN<.Iq$젂;BkC 鎶]#]oUX=Ks.vrYqyJa>lw<J :c>.<t#MQz?kx]yע_ThGHoA"'>ykk0Xc  g+$(񂉕"@/|vkU㣲pcnd=6%n;A]~-[Ѯggv ۨtF'/}\<@?E oq+vY()8ڲ_x0 벌.[8IJ8! -^ݮv#y.+ΚaO;I󌮕l2ھ4S�eK}?!녫;qEmO^c|)Ljd2,g։̂̆VMepl#̗dX1hF}Ԋ?yc?H=cd k.#o}49LgĠ\Iqߖ!l0V*ˏ �3ved߂oTZ Z`);~M&흝W<( gWm¨j˻_#)[oabO9 &ᓷ+<>3 r\CzP0.qG&Gu`SFƍ1cw8΋)DVwAq[" Y_<;]P,e ]h@lW-~#Yv\;_͹clvFCP{M%zv}Я$ R ty"+ &am6towK%׶[xʵdkuW3Vt6%"s,01҉DGIat}c3{|2mpQ>3W6-6 ȷ!UEfFc0sy@3||Q.72B#{>0&eF-13/V uӪ_,{Z ))RŠ/vDÕkA;y6* Py:[F剪*Ua0w xς.yR'w5AqJTm/R[|@zBgH{")V*뮃~i3IQ9V�sы>'0* _3beqUłz% y <Ao:w#%o=Qo΢za$FVen1C7oU�]:lbWb;9|e)u  o?B(hl3GBN0ي.<DoOӎ?M F_K靰z`.NčcůRA3!NO2lcAR-?>Λ'm~{r=,7W@Sm0VZFjΣDk-=8僑8ڜK^3Ȑ:KWJ'gw?c?g3aw&knAa< uAa I6\ ?.9 5 Rqސ˽y?yƠaދt}<oBֽ˟v(ґ6e!^at@;D3:a5{>{ ڈ}R@5K6+-#Ц)?-:N߄zcEbo800ToPU#B)8&rBn:=J9h}_P_e Xk}2BKHw7Uպ-sdƱ6@Ǖ;a݈4m.c+Fx;] Fe15A/y[0(_$NUG#_Ԫ+P܌S nޏkŊ#˷ިFw1D2zOS%_i..P_I3SCڥg[ }<3ƑwHHrȁF&T W]IG,X6Jq*@4z}wC>Sq}P`l "Ǣ7^0ymFF$=3ubAٛ'GnY X~p 7)3£9>֘8˱RSW,Dܗ&OԜxZ4ݾseq mngmlBQRqɢꥸ u<m"}Rb Վ)_Wdb$x˚*&/l^`Q<@ܳކ!$O,Nu1[V n1˸cЬ/)IPYvbpݧ_a㗵H<QaOC /I?A֢<FO`"7 νnØeOH")6?T@%sFsAGޮrp]c3:cueJ[-kמ{| E%CQyctP-f .Tݽ x}:>P[3(^azvZ z{U7TG_QnhFͽ_)7z`8J*~Bަi͑b䲆~GKH~F^P #׹k *홿H|bW3D>>Ųpun1Qn<iĀ="z_r<NW@ϡ(Д}g8)SKDl@~Mq{RB<ϠWk^Aا~|1)(y fի~IĠw(ܚV!# W٥oA}kAli0YtoHSt^wSB˿FTU>#�jH|{" F%x|Vss$+4Z <-mK4d=+'-Ll9;K r\z^ ۋ~c\? Es<yn^dm$~EΆGk܉hͺ-o;3_h%1Ź֠_VXc0Jjђ@s9i,Ogô0>٤<'D=* h:%!$쏂xG@98F=(B\0<׃dï.2A3 E~Xk@ \Cx֡5ȑ=vR R~%_ QD;F392[y>s}1!~2n Xdͼ.YͿʩ:>yP،6{`lB]֣\8 4oW^D|ٮLq ߁�w; P++<TgLl~ѵ z?:s[nQ$>yT="gOޘCCULW Y<xt+O<ưz@~z0 De/ts zmO~>&H`is-f#Io3׍Y+t~Z堗 <?:y͞ 09Q) }u~qVl:Sn#\Ȍ{G[:cAfzp3#Bh5G&Խ!rRߟډ<yOm#h 6| ѹ!}o+h9^1I KGƹ1%> o;wpk0bgni?UՁߴ Drd{CÖ#^$2 ۭ3rMVv#`dk,TgOxS]s雳4lc pp9cvcOL~LnIEosa%9P\yN?-wqa/pɃݷDʲg߷a'n^]R9* P xmk'Q҆ wxu۷]C?:?r w#+9{Xd-PnUs_c킷q;�Ūm(eԙ̵'voZM$x7h)WpClKC|yΉ֮eyxW*zoJ49!HhVN9Ox-x),vHuhq ?TP{i:1+ۨ+`R ?0@m96̪MF: Ԓ 56|fٟcߥS^e0k;Q/+%8JTϠ@&|{]cib4!l=Y~$B1Cg[IH[)?^TjA~i3b_(<f FWR0ON DRGt=Ã:S vGMrfb,&N}rǥYo_T/u7[^IaW0ω8qE EsB tD?cE U(FgH}ħ;dَIk$>-j_@}L24=UvI`vڏmAA~vT gY>m3xi(Lm*9W:y̢[,o$yǪxET(TH%$e5$R -IQ"e{{gYyr]g|y b*؎ݏA vv~ SX3jNb웸j1c#3Z{)V*ge LQȟxm4S _̯DTNR1*kZ�O jc4.:rmC6u"Ii z叠XW`*s6S Vk~fnV@MaW/ S }gv }rYtO8S2r6Pxvw]CxmPD3P-]81r?D6iz!,VC$x423l^rG#A[-(- kP|If^ƕVn}({Aῢ ũ}=Db*K3˱�\!c-)6P^q$f)gD^z9O { 벴P0`W/:Ai�Ig*Ăt놊mVn=P*md}:n�RLkg1N\HGNDc!4o'|IA\5G6p}k ,= ZlEwÿ#E!>w3zFdm >gr7aRx. ˯ϗj-ij*3W%B8/Wu!PGjl.) sEӂZLI jdXUϗ#AM-T&>0Oe"UQ$HzaA{J=h|M+ s w9] ѹ~}ˆA9>ѿ<?hɶȑԐpۀB@Q=Mx(&x~>aލ.yYqIf49*܋+fC'zQQyʥ3'_A.y�߾Һ 7oP OUp#-9:>ky/:P,gbEv{|KkJg"ctGlw"Rbg$W"rC`nNn]q]oو}gPΗ?%& [l̒='o=p�:2>5Em-p34 )mp1O'#9PXP.Axkm )xJEeő8D|Z<} 녎HiۗFz!Y9\z&(;`eYKPtfLYxJxdLP͹..'gF9P7 BL.H\݉ đTGiTk<VM wN3:chsJAdC>Zo8>Y.Gyx7zatM{b}TT&4ZZ_"s\8 Aeٜ,$;^ hC*Jm@lC"yJndM G}1 ߺ�M[nCLtµQBJy%ܙyWS3Hjhc!JV#:ޯ5{o.( I;XN.*BysK+SA.%ҙG[jJOQꉗ=?}`A:5|Ǩsuy_a\A\͠3|w<O$ /%m]cfVA? /i*,Ύ=6>Aj[ >z8~4opx婩0RmR>Vrh)7͚=HxLi10T5'S?Ogҟ+c5 PlzvI[ԡꙚ-~x=2QELRn#C4|-gxf*kCs(47 lt))Xk .P:DM1M6:|JHI + Z|v LBPѷy̹mKN!kԋ)ֹޠp.gj&U)fokׁ5d*̨EIZIcwGW͋Uo/UX(! ̈On78ÑM\aPK{_C‡6 Bm!CyfAzu#qcx@^>nHӥ|ĤqwXVg`2H&jl*=}u(ޖձ5z o< ԩ\ Of&rgs.R7UU2]:t;2@ɳۡ�JH02E :0k5F=xҽ?ccRU 61<;r]p 4}duD-u8"ߏ%#5+ E^lԣɚ]*:H7߿m{8zꑮP_t6nYЮbD{ *\zy}ʡXYdgĎ-Z)_QptOoL>7UY!F3@ɾ> u CJ *ZpdPov=Rm7ےrApk/k> m o\_=1cSRGOK wd@ǟg"_ۏ-\;JMƥ@GGyKr2/Hͩa 9m8+ ьP2il0md#\Z ;8]REbK>A >I}SG̙{-Z.A0sXÍќe ^Q FE{0c=ܜ$7!=hoG]Jj  bOϖT+&]nG%^MP1ËpR#!|ӷg?jwnh^m cPL9\:Ư6T~LTw ^`GE*ml:}ody['q߫Q4 Fbvx49Vλk�"fgł\w T^:'vIxj@|ԛcE> TdU^*k/ε7}?k0C[\b0^=dJEu([>du3C'j@aF ٟ�iPG)Lޒ~u)iH1-!HNݧmDS@^+a߷#M �vJ^4QK+^'f8F_l:~A1.,4vF 0۸.4 c Ul6f~1uk#6!Ar@4R_poy|~;?€xw,g@wuwAEH͖h}cb=BH6u%Ӈ}w@ }PsJuNnE7J}Q Ug(W1d:MHWM.J]?偺t0D]Bzb`?c9i1yhl4T O geљ(ݓxAuEu|3uPcYr.4|\OAhr,~/Y@Ajk$c$ǹ3y~ЌAziӂ̀v~pOFüٰ@tI^ H|'Fk) xdBAޢqZпOEo=:;BwaގALΚ0qOyU8̺4 ʭV=Ghď_&i4Dv΀^RɊ>u&h. +/U(buFECOm=Q_P4=|9iE;�%w>F?~z)Ml Bvlo]}-4p=wſWY.iݻ>xJXS,3UlϰyFwv*`x^ r1wcYe?)F= VZ� edѵYfE.]VOl>w�m Ҽ(g|7IGWaƈgiH¯ߋ|rW+`P섁*}OCw ?&ӯ2i~ʧjASY#.m&Wr;q#!+;=:Z&;R#VڢϰN_sy ͫzR^Hu-{cZǁ0t䴧mk]tp&Ҋbk13F߼nrCoǚ}bOԗW1Ѭ; {ǧ+Ƞ �e_fKnwc ;k1f"q\ڥԮRE :#6:{,zO8ߔ3"31Z`X*h=d%'Wf@ 醯>qh Өo0Uv%ErQ/bS-)$e?קRD(ʆ m^!fi5v17vhVC!,>ٵv.:, Rj%#ws D<< zRn ]J艹h,_؎ѿ߻laV/એ)eymkL !qYJ.*^gG9f#hON(| p ĉ^HIz;u8G]7f@mDۍl/.8) #ꕔX1iF?=Y ѷ�5*sns>_)M?$#OZ[>Օ?]^@sMRz-l]'/1Rz#cfނ+O kL6vEg i P/_;ny WHT*C߫Z:M#Y|oq;h]v}²qASe.G0U&Ruȶ1 ,]^oQh%rNroC'q� :nNXA䣷HFlţ5נE|GdGSpMtT6k^B⥦!h,7yb ɮ$,OGрyK<Ge&%1OmFM)@k<YdP2v s/s2i[>:ҝ/~'G m~z*L *`Sne6Lnz~iG9\P<on{ewUr3d[qniovup[L]i*x 17vB2 $04܎싂VQbNY߸ю5w>IJK1LN׏71! ~2wM# ł֋A_B0BOQM_T4m7+2~J䅶K(ݼ9u7H[ϫ|,(_3S4%0@['au?!${q P_ΔU܂-,Aך~ r![ׅ ouCAsܸztB(h桂hvy?W5Qcr-p.lFy_1xj%c"Wb?*H_MknF@yr~ڑDž Л+/1BF釦Iq#"ET;P(kZ&mrӣ=QL 35 Q~OCrB}g > mЛGI.c{hqR+%D: 4CZKszvnqHxPh9g(j4aS;mNVaق^OT'ׇ:}\~7^왋}=ʇf]}ӨcrPO1S'1TZ\s ѿvCd}9#G[lBwvz63sӂĜ+69{#vZ{+An3ڃ�,K}kθ;F<..i̽#!S$] *bY-ѡKryij[3x.?*5@s~Iv+TO�Wf#/l B}L"Cɦ{n;fu%7}T`0~ӭ??| .s9 B?}ndZWN{{wypWW ==s-6is1^k(R// !uCDu!-"h{1׫wew&IT]dDZ[f,;ojVmBwR۝fr;TN[mٌ5?>xe#T:d~P$Θ(|᝴h޹̶=,>u?:.o3GvscZć69 >uEroy؆NY.T #=ypjG b6?j_-%h8-kܚ䢑^~g [^š~z/AuuWdyW[{�]DDs+z!7"&)dh MMKԲSЋNg K_0?w bna|y:lqm|ї[mZw d2TOn\C}L^gҩ}r惠3ATFV;-׏DR-'EՈƛyŏvhiAv`S"DAЋ=ٲڛdSfG3K9,/ۆγSx/۳Dz1bt'=+-]C1ufVͽ9.4<=%A O_:ZU qD/w 롤l>T=A;].zI ~.j�jYN'F}ׇcسB] <9ؿvO=0j?x)ťo(*}^ư9WX;;$|e^7m@7 M}r1N)�jW^~FsJ`*Ks?؊ .RHxo .~yհ%mg"EPȞ/$&Z/Oe4D"٥7P!5˙Jbͅ(~:>nQ$=U O;Lj/v%Z 7/}Q-.krGj7^,5U孂ãKѯ6& {IHD.תH4soj4:NFr̛5cRO�)୤!L]cжQDłd];v"|8B,]ے8Zt^"J*ZA#?eA,vA@qЏ:7JN<?1?Eh*Kf1 KJߘzdi?A񠊷0 Q7&ͦ)CMww:�KNWqHUv,XJA}n-}/hsIIH P->]{AbjQN1_8dW 58PvW+K+HK96?x -#@W(5_^~OM-0YwB}4B7zjͨVNR{b!4XL\VEeנ]Mv:ҝdsηwC7`GRmnpbc7oLmԃl_Nx֠fETQPw?r'^|s`I4uΩUcMɪ$6GԘ <Jd$:>mLBy?hU0mZvxp{5Ҽ70(Hۊ- DBz&7"xu}ܼ+ ſ~F.k..Gz]?٫pF|9(ӔZп7˕U Nt 7uj=ky\eE'_OG%G.Adn<+S|ZuьA]r<Î7oVD3Lgyew}PD^ǚ#cC_+SgLSMsYG) ?uv|I6:'@dgS-H4sVʼ4tO FSϠ}/p*v;~O5A ġ4k_Er1 3XuSyNx-融_l0uhoZ,~<z9mo fM{EV�(*OU$ɚBG z1z=V67ҿƿAv+G.F$|Mb:D]\xj7DsmPQjzxu1YM P_BYEzпtb@-|k34Uwhxu\/"g'Ƹ?P3P0pU0rGXA}\ܿ. wvI\ղ಴:�bn7wPPv3 Ɯ9ͬ@o#f諈HMYePP߳xk2Lޡ]ͼQw26,59]l4v?h^G:4A־KU?66zo4)(~_:ȑR z1F: XlpDROi jM1ĕ[9urԗ}ޛV5@x[z=;GFxhduD给\s/ΕV,t {Hڵ[) ֎bEܗu/w6uʅ@gضs&;xG(?>0ZxGz­rBk!%gߕb~CW1ѺDދRxhW"ʹ3 CO k&BTF.؎! V`6 Cc Bu(rZ-El(n`J-J:},cxFu~ wͧqTy*s.Wo ^r.6LvObjHșw)>dj\jʍ PWvE#@)ms?G J|·xN^*"ݷ;lATϸMhS,Nt^gThyZ (ZʕLN6[D]V j@�g'='|!Sy Xp]ʆc|i'򳘲/A]W9$> r'k'&^IMMKH;"/ԉ>Jn]V=)Ǿ: U/׌P!PCWEŮ1g()i@}aokJ"0ZO5i]fȞ?t qܡ loUoj2+Fp˗"ptH /*.?x*qT4fc;@s=1Ք9&D4?uÀ쮽ʟAw:;!zXUR 7b�_-S/O&-@^"!/<PD!.356&˃v[Tc:MV [֫)-<nt7v"=Ar#Ӡcb NnPkϛU R-�)s#ٚ6_MXBj3+Ay&rgzYB ƱHK1ۂG_{:mc/ } 1d+"7=}@jWG#立[1vX[%^pBwjĤ#(%eo]zto|C̲RrR@Ztc_*BH))+qcߗxw$9;TYA04:G^-"IFJ}&bOb5>m|1l01fY-6?-Lt*-/mn.z9U*91u6RY\,3DnvX~ lTVԶr2B| d֍5Ec"s2C@^˳6-n;_xA[\ 6] wGT|g,*E :"h"1%^<&8`k5S"$.?@]fpEKLlvg8(1uɤ*zh( EOO!BfE4t sQ-y 4y'rϖBh5qi�rqz7jq( 5^T;GL@v58z=<�>lhY8RL%׿uQ^WZ6L*߫B>>|C ʉy[AJ>-FwNNh(h!C-c0Iˆ3%[.E36C-?~$ ;(Bj| i v_mv>.-"x)AgqL<UyWDwW?dGQH9j\}lߍʫ:?fTT +4)Ml1[:^|z 4iϡ)N6`+A{/9H5J;<䖤T^}y0# d6l>)Dbmԩ#Ytv)Iտ^q#xϽ[=:W@+Ka݌򦆥8rJOB9鏒( _0^9[4o *W^ #4&7gf{yp#dJo3}bvܶ͝`] *j6kF9M.6YޘE˃7MlY}_ $q@ 9{u,Ȼ[Sܠ�eYm,GZMԇml%ZtkHoތ[ Ɏ$ڴo”6^1T913&f!'dJ$Ĭ-ݡ/1))̗9Mt]6UoY>XL;Jw?_7R.3՘HZ*fyϡܦ)jl JD{-h# YDોt@yC}Zc%9#gs(͒.y*}ލH PB3Ez_s) uZDxdO5} 7fوB?"aSKLzhKj8ZM&%A~v)?F~YY-(a\äkH O8> ˛V"{;t= 6OIW5Q+0>1n3m![v[Ne\z-xς`Ϟڱt9ȃP8RCQ, h >Qz5me&nէRA*h̓�JPGz־zS" yL>AAO wcZ~Y-F6_ݵRܟ|E9fV .Tغ]@؏KAHA=E6VN=Fjԑ11<QPS7cpwiP ]gB_3Qy)u7ay GvEiӂ4&9AZA71y9-Ramqwg|@#'1y@زqLPN8˃œQŽqƝ~@JĴ:֪Cv}>i4׷ "o$JG J'7_nYoQLlƀ %o1/whY>LHAW@ 2s�fG44:2^lX1/8efD s(o)U4 ŌH=fq9+:K׿xVOϡR`M?#:7AmCE)~d6n FgdA upeIԕU̷hR)\7˛0Tqٔ v<>/hal`jvÛE 8T5GpzФX(a%bͰծͪ; r^a^a5 p;C)ڢb+iH0WfD3bZ$H~od=eis^gُA{2*: jІc$VijjvQOM}Dܣh}P즙*jSh\ܮA 9 }ԭGw㱆\(ݷ~KFݞ"|Ҫ{ԕz'Đ陌U{~Y+O[^p;rzGw~ KP|u(零7PʇI +ҖnL6 3945o%(}>P~,g1B$ Mn�H_rmAy)!C,O#N =z#=BOJ7)oKK^Z3o#m'Zqr^HI=0BߍkD~|dfP)w֛�4VPDsAbEB1leJ _r>3GA-$&q׻`xak0BRvzIc棌 <pE Y0NN>5}L o͛1*+q0(2%_bF@\/9О(cH/%4pgXf8&)z3s!(8= Hv4P5Onbcvaʀnǿ%O^-գ\NeE&(˃=ނx=0b�m;kcЯ8Ω_vD9:-~4? ;=ɭLPgTP jNK5_iLF_|k۩$-Y6$�: f(6zuҐw$IPۦ2 Y!#7K8=q>_n,MGImDZ.+32+fh UŽyPXeG×?b1?;S[ bQ]s=[c"tF]k>٬lh}&Feϊ %hk{UwB7Kr?'[}6r3jOjVikAr5z+BH3.]w|BG6\ˆAhc6<nV˓/,Xa^(J;u}sM(۽ږcɾmF06,@u QGenX�e\2&=45lK:AXV"7�Cr_l [?t|Kݠnpt[r3G+xbYrtc{7-nmFD7_jhzSTOy7@J"4>[Nk-o-؎*q+g<`⟿6wx13{bbN ];:ۜ0.dy#v l,|ٚh'ZOB!ntZRZhF~A;rj^DY{AKX݋S[xodԓ^{@b܂{#;\ ~S/B Bcŷyy~`ыw?Y;|6}u*-kMj λCCZv&^!ÅK[9܃i%At"c]] Π8Ϳ0sՑw蘘5YgZ!C\(|) ԯesnT XG<PϖpFӜQ8v&ryR5E!Ѻty8׌ >꯱^ |%wJi9ܗ̸y.3#>(a:rǧ^ж!_/DǠsWl1r\ydCO"sw'a;]LNڀ޻Q*VypB==Ke2Fi9BVc*J}-"Ю^9Tg99(EhÄTV, +`2'#{3qby|SOe>nA•ypJkX|jfR0Ff"bte K#lJ%mq-{t&6#SiΗyJ KOJH{Vx<VtCԠ\b1'ƸDvizx7*%F0q+\Ek:6]ZrZy{gKA?i2g1q xW/>hYsҺfJSp!@o,Kտ;ڥ\R w'k],br/+O 2~N0nҏv92hob ڠB�-[C!qy %EA&ʃܝkKW֨vh͖`YI$Zlu#BlF?E3%Sς#8 ^{m/jv:+rtkFQ棃H/&zF<f�]gQK"u ơu;ZgHES�= *> { uO,օH^]RR΄6_KrRrH/q@^K,Fȋ;|`P[H A=QimBH~ G'F�5:u07ONI2VGF�ILq :+E.08]{o6U!^feA{Ó%0Rf4̩(GS ;du1؆ ? 1eķDt=J®ܺ{mx\zȻ}^lASKK]% c]ؠԠm@ H[W͠ir*f S*9Qg|r[SB"v_G<r@E7yQa\|}U/n&rO }5VtgSLf(𺼩&-X<+~ccCn^j7:s5y^w.=�ѳj;lRsO2_t_w-1$/~F;IN5W-`M:5$i3uv(~v:9?C¤'&;54@w O8 !$k T<I"xU~9&J_ Qtt 1ڳ[Cs ze:5&7~ I˼}.ASe LC#_KJiP˖7ywQɲ'NDzS?EBq]lViʱҨDG5l &zaR228y }Pqh=M?^#;I5-ڛ]f}k:9=j%qmue 2.o5QGZqݟA3"kk0'ɍΝQɺ>l,Ĩ!%}VĘW):Hgebd76bkcї[wSE9w@j`\HL~&#mޢfï'֊O{e(;V:1uhoF2h7Lmyb ߏl]Kd bD[5{qscg;*X$hˀFmK\hO}(?t._jwN E?VX81A{dM_ux%8ze?=JC^Oe*U<0T>VGb|! cW6KD Yӌ,vuBZ;L94ѧ#\+Ax,UYVvPvyHaSnJ+x9r/&ʗnRUAӚٺҤ J?0:bUIQ w *(&2vȶ|4NJ#<z@jbN7N؊I\̓<LԵ\X]XMcƒe+GM6TV'Ƅd[IHSbDu(d+;p<J*B0(Ġ=HHv;9ܗ{cep@$k5f_FvL`8'pW^P=>]b}IsF{J1j|%Z-]bv5={A4ڑx*$db@ːNnyw$h%/W ָL":'ilߐts,nת(R2\t)DH/gY}"{RK4.Y {(t崡X9xYAj>PQ(]:o(L|lqgHSJT^)!kmi!OȰ8,J E.E(>v1<x nw/DIhQy~3:Y~~st+[\PT%C߅rH/. jø�oMN 渿Or{GIَ(ii;b.PM7#S)cBAL((ߑ}d\;"Qo!YBk 1>x4$6O$G7nQ~M~EOI%2et.S?q'T.˸t;&;f^C}ØoO-o5هOG6((WIyOW5nKXޤЇ7 %k5,c Q˘,\xm "3-0[IE~ O;x Q.+%~x39Exbʻ6T Y~Ğo9@ruoha}pM= ExѴU�h &cޢS S/(M$sI >Z?陜zp&� ߶'G^N `-?MߖwTx#),`1ft?MG3DU- R3Ai# W4WAPzz u}/y܈l uSVZfB#PNtk7|Giٗ].`P=V!1|[@C|u:j pӍ(I$8cEP.}</^G"`Fwln+}t+cZkA 6-3<LBk19sEj6+[:ig[\O-~?Xxҝ13i8&^G^hD: {-h5CV.0�Ne%rbоa2Yԉt^6NT%~ j>J�hJ^AY%B0j`<(6jF@gK̻M?o /w4NJ>^:BXʷ~Lo0K#D3qFI >ܛ[0qՎ3"n*wpsolyNDx3x+ C<kPe;rn 5b*Ӻ2-aXE\G-h{XcAc L:&\&d]?̄'_~Er9 55R)SOח(l_$%}@b4:LgJm;,urgGm٣rD^sumGa.Qp/(|lqrh[[j||ݐ].e'R@h]V 5y ymBѪ3Mee*=NC{V됲%Զ9&p]+f8i[y%e`XgL9aӿs{S0C?^3GRĝ^3l[i54x= &sjk0Y 0q\) aBU j|Aԝ],0ZCu&sR6p@p۪Nt|1v,rWwpTx~D]y~g@tbL*XDuÎLVܿ֙{$&̈MRSAjQFqiYuOOedþ1cTu_37MO|oeP3|k0urit!҆RAUg&:f>YJ!'/;{6݌٨:�R'7 VSj~UY1?#Ay+}{'St H2hcv>W>zz?ϛc(}"LA٧leϏt rA7K'JR\1TGcfw=?M}r|!)`ņNp Xtz7xVdw@e9B_&TPmhMAǫg$똤(=U5(rosouI5sV]P&#La;'{4j>z ~lJщ#%ۇW+-Ӳ!߹2ʵ{\( GルVk'/_t/,rDvWƕ؃N@Yfv3kEеV2n?IjLJ>Xo,kE#TM~`;W\hfĸ󾿷.mM-Ux  *vsVsZDi2?d@Yx1{'%gs'4ẻTN|LءoDàR;tk4?$*R&ZYZ/>b˺:œh(?ͺfl;w1/f]�]VLV "̓G(VRϔV@xڬ r_{IT)Q,=v M_(YA[F>C3GcyGrʣDm@ˊWjW㿮$ sE1(8g% ct{CNA;F Eef.C 7/Q&Kz7A~Z~cGSv{(;) 4/4}>THՎfGFWT=o h}\I+2NY.7Q7bzg: /pU u],*Ko*M"ק(YC ra7 ܳv>hMMy4hdNj8a?(g=': ZI,i wrfTЛo+|ި\r잵X8LoM2bQLލT+Ӷ$k:_IpŦh1/Hu^\�Gɉ|{u3 ,Ti G1KfM<Ag(WWAɪWSQ;3BfUEvmW!oc.< n?̝Ea_*Aħ H wxϵ{|Ժ:9$lf ԅ qF MBd[sąMh{|cstސ\Fѥ`ȻBqBUDċ]ί:c'N8Qfofn 7 Ko/&LiWGےҊ[(ZsDqN vc,d<Ky~>uܝ;#9-Oo /m<kNR uRы JDP+,!9;`u v12s&Xa윀991RD81+]6QGA? fwG| #7g/>ڋojaŨpN2]#Ԛ*`= ?i r!?{@ $f:CeՍM@y~ITȠ9\XQ,} a^T}͉geofw_F sq8W8tַXkR@ b8rn;ٰbX=j>->p%&C ;wR<0Y϶>f8ե_aB,q/2骝#kEB9C(kEFjS�LWb{w2JDP( j[_M_AƟ~*Ȝ\yO =-ZHU^? ))IKk1Ī2ltC0g…Bӭ]x0|7[!5*ZOc<οCzeA%- u7ɶoҘQ#_ݶ߼ #KNT؈o5A;s31^Ѕ6*Sr+Dl9_kz|b8ۡ7^KLDϽO<RLɲC֖5cA(xx1"׮DJb]m Jt9mX뻴^d|>fD^ٞc¯]DʹXۙOj`Z""MR};4J9N|Fih]8>?ufW^o}b'v0d4RjLk8̞B׬㞛~s}־O{T4]ƈa skĕN3JcL]iWP ]~ZH9|E'q:|]hR1P@ߞM)7=smf*a7Hƈ@<$r=K9}mkRٞ%}ԪX' N:<ɺ曁kA50j4τTk]w=́!F8nkWDr0tAq8Yg7[4}J.joʰ#r,{ (n~T726l(J/O57к(:x_ 2ctQ\:RJ/w3O DZkZ~}%zHj^Goz_2 RVLasw&5 ;[u,ʃ;z33^)&g/ݑ]ǖMzTFR:D]Ӥ@>˄[_](FYp1^9@yо~?4ykY08Ra}Y/#ómؓЭFZ@`<7.譃C%m+Wstd:Xׂr 29M 'm7uNVÿc0+@S# ?6M%sIzwxTqzk_KZjFB݋5~oБrW7᠎_`|ʖwgPa5R{o@IZMd,6;?ZT(ʈs Eޟ YZh R%봛 rC)6 ˙(Ҩz#KbmPT& _@SXS28= G˥S{T}U]:v?rPSQD/,£s#+~A3(Le@kMX*v(P_MYG"@p+\ӧjCγi&f.OiᠭQ&m&k.=n3:p%>FP_I;&|R {<PHrǔy{ !ۻF \{.L(xtg†#!4q{hrD 1Yy$t9/QMEv(XY�%b˞,O }ǁ34 C1UMel*)٥%mR;b}S0si- xOZTJ5/rz *Vq!l,rΫH wag:z>/@G\b6 2~ؑ {WpV v϶i#|qpek_b3 Rt<-b"eqwW>~_{Ee ^b57̍&c0gg(ћ ȿQR*&X8g? E|x|!rv&xz I'һкv[WN/DF~p>ʄ0Խ6=e| |l(tWI6S+l(hhיlÿ1+P1h R:yݽpEϋ<Q9S, tE2~))Fd~X_S gE _mDJGL_h/rd/~>7v&958@EI9].KǎǸY«UE}|Qɏ ~#m3SҬZ1(ؚ&<�7٣_.{ 7#`sN1&#6d FC6In�dra4V%n EYtR|\^BQ(!?Suhe' Ơrb߳1L˼(u+ baC*X۷oh=Z@ :  M ǝgb B!;'Wц@uX?:Dlo{cBa<]N!;Фe2m9P"zw = RN~E|x=){PL_zlФ7p%ZLDfu~<P竉fiI #tzrATSvUJM{@35 {#Xi} d8D_AluRg6˩޽*?<)F<Qvۏ=̀jy''ZtLp W3% \* =wYS3H+tuԍxC$&Ӡ;#͏IA1L٘`9 R+[yxn߬|&dž>DŁЮh<~HYA?v&<^1&>}P O4c Ǡȯ๧O3~Z[o@ݰ ?:e!Ԗa3i (haR2Qx]L.@1D1[JJ;z8Rr^Zwܝs|e2_iT`ltMtsZxj[g%M΅\7ďw5^9pse[2Y`$5#${Q g(PܢlhVŏM-ߝ 3FhtVu)t5"C�r; |\UCB5͢A)ɶg%s1K]c28xȷ\~HY@c?tQ^$6Z8s+ @MAϯs8yM3FoPFȠԯ0v0_',(d[Mx7_^L m ~z)Eɏԏm}w 6]q'{Y2f<,7=Mz te,;Ɠ@WpJ TyQoC~n~u@`8<y+,mTḨyM<|^.7]Y5,\_x큍~$mNE٭lKyg Pi h, dEٝsu~ZN`L%:2 T7r絽[!3z medN-i}ϟOwN%\Wb)_ק4+\0Siͨ dM*h_\@yg3;0$.MG1Y'aLdƳ[@ROpT;+;5b(V{yO(.➜2@/Ej6Tyn-g; > e^r١uJBQs1h_{U%QҵP>t 7Ky0бKu QdmCx%/QK8E$�鷏$0vZ;:F}Z*B3C-oy/= -*Y)QjvsN8t}Bcq'oEQakA8pd%1uPp 29=ًwAgD7;fXsj_|i 5C%N F<e]±xܹw/ܺMa@"n k#?QpI!,>kPt`:PRzh˲ VqUeh6Y"d`iALTY<sBuՉ*B֐u粽G{|=@`F'}T媢6rүo2V:4w�$ʼuZFCJJ z( O|R~&V [QV4@zFgT(;'y2S8 +0gv"}E٣';N.9t,ߛ*yɷ-5x_HbÑ4` xvLoNZgE\A2upGHPFq~Lvx)Kяs Pq;Znճ麬^[t8Pq&<n[y< 8mŁ#;·%w|n]G+ uy."'&~;V[ߌ1.݌HF%ClԷ IalPk;<< ޜZR^d 2% `FKCW3-b>_|oG [[A.WZC IA⏇$Ae< MqA4*0"_:`P9>#h Dރ{A~f ;.,4?Lߛ_"T7M6l ;j.bKD'lKk)<LMw-/ LQr 0,@ˊLbnodH]pQPG(w="3h`:Z-}h|3đڊNorQ}(g+EY\@EJ͗B@yZ9n"+w-F-z1;-<3PJQY!уrC'8gI#:YL+A>OS 2}4W漨Y\?@shLr| Y$3:HxpzljfKm~,B'M=dxzu[_t|=QvZ>ǂ~,[+3cߛn$7qE5sEBT |72} HEx@xU]'SN?DE3e ޏ2h~afz<O;NdGQߡX9*aI~ rZ;v}M=1Eg.ƿK^ԅO-QϣW?}Ƅb|=MTV ?C4Pb"1W3{PS#|RErǎET&>Dnsr >)q=[]+JzKY6)>zZv ә1v�bh1sb⋩hbBLe1 (_v(ԏ}@j§vg?ԀWv,>uHFgJ%hAJu40G un<1FNwk@vw'v1yǧ8eJQk8;r&<{w 2OcrWٻyːoh߄3/A|?*UegmkRe:(:~5[2ȠhFfZJA+4߷lQq(Ґ1 2 R!18`)'4AS}_U -ΡTЂ':==߹{@2{VR(8vP6~�sb'ѱ[42?MYx~&<Vja;VLPwsQ$]/ Ƴ$iVy\CtA\ cQ$ԛNAW3(>bf^&eM^炑'22rGөξw&v#<!yP?f;(^~ >;y?|h4W7:c0ɇ}W)p8DM;ݕuPv2IcՍ*& Qh.#?u+v씻+� 68?Fezߨg?+ Rvx ;U*vx>zbT*|fJ2cjo>KԽ&ŀhuk$9^N啂bvh bz_wmC}L\V"cB?)>dj]0(%<~M6CdWzJ𕻀[pG]7J#Dڧ *{u-h_:geQ#L¤w$U$ʔ W;JZ^aQCMc/ ;sI\nbjgbI PYR'9]uh*(FN⳹ . rb+bQ<KMѵe8;z 87Z<&tF ({㫙 2gA]{iP:=BDo^ՂrO ` ԻU![7BMs]> ZSfi~T93aV9m'oT}_"ZOO(ژC)hFQ\bK2(] ^DYmiUP/RogԨx.]Yte92VGأE%<?a_ V`2;j%MpcaIJlӍ̉nOހ~dS[bFdl2oMxs06>e&o#^ J5M(TxKI |Wfڅ'Z{_k(DnOs3pYy`Jcl0r~-"Gy{T_>y$h Q$^!#X'ɤGګ1yфSvOyL0[oc>x _h#-ށ~zT$)u5$0R *y,Gw뚶Hh4O(pjDȏn_u;AHlDDfЋSzp[@W\> {ZTK*^#|}[:ZƣzùYk#Iˡ\mOvȠHsA9\Աkn":5@-[zq֦hb}Ľ{<wJ>T@w_,<Qy�#(m>΀f{q!ȼ_Gџ{iNEoARƣ1 (n6cBC/џ)_;??;-v6O,PwuܯxU<+wa0@%$;Q^I cJt74 Cg'=(5=hd_lK1FL ^h#?i)Njjun+F6})VK1!%_ct u/g5ݩF0g&ȣJgOCZ[&;zj* F\/XA>>/LLQ{bPJ?mRkV/3<xq6ہk1?X#VdُS1V; ԁ4q7s% ~.J.(~ #wߣqO9L=٥oPRCdxzYc&0b&yt/ղ/yrٝXh2z{Ojt匯]y3VDwO&*5T~oTBƭ~DRRQ_lzAQ;Ÿ=Ӂ|vG89/gI;둝-`aOAٻ|3ړtFo M~yꭷ[GEQSB6*zӚ]c7)5${rkFɭ$eAb+ֱ8jƄOAy}ޖYy[OƼn,8r|l'}%;n#<Z^2PկLtFpJTs<v þ#ߑT.9i XeuپM\Fk^uiSЧ)b"t`*w] gb�^sַcC 7z̤j,[h{ns dZ{iMZc|9ņ^PloNEŵ܃r蘞#PoWXub49Շjp9nK~T:Ǚc>Bklf|wg~{!{= 5H EI /@E-{5 sh`x>? 2Ytǹ̇n@ WjE>PV0Y-"6 7jNιqT<f9\;8A՜ ع#I!}P84{ɶto9x'AK45x>ӿAD Y;BNzO L}/3NV~V=;rdmK7 qTKàNvt7uʇY +JX1"}b0H)7f #3i-h ;q0E11]{N͍Z\@*6 EEj069;#汶#Dv7ⶮI e^/' vew<{? B#̅8h$LOnggkC՚gZńTvL>>&˅u"c01)!Ă~}AI$wJ/M^0$o"Q<bdg+: ^8} go _{DècX5  DF{A MnQ,fXH ˽_A x;Q/CL*w &t0؍Z|Pɦi GBmcK4o, Ɛxî1FwJ)8cڀ?Am|f~bsDu &ˍ5bG/vFby7XZߞ((ܸ6{?R}(-e̍}.0˕ArgxCP\;Ro1b̦G<51j{@,oCK0t}>@7r ӛ+Hdy>D^(BF+)M D; bxQz3枧PI5—RPr.t׉L緢q DXДچ!q( y< (!GW.\5 S m`_k۲ c}ݎ݇PȲcu|Hfkۃ&7v2;d]B״ymV G\c*4Һ2hj~[qv .$ Ih}r4R#%h P%w_³ѽx@w<ƌʠHÈ Ǚ}tO)]2ST+V2ކ0!S IлtnG ԩٹ=#֭rמuE+XWQDb09 QebeqZѰpkVLB΄\u4 ޠS֋LARcX $g\v4kd'k1MIɋ`ĹY)h%zFq? _OuqE^+]:(k‹lHB,T �L;q5uh&’$Ys[e1G"6lD]"Lvqy Cp( z001G#=|&:.?w$G=A߲[H%[vC'ۯ#>Bu� ?W3D_իKG#5`08oGdwo(@|_#~}1t^sƏljm:㌻}+u@=ټW9+2nq|fo/X8W Ntfρ~Q 3Ik7=j ֺƗ?dt]|7y HP3(璆@[Q_j{b繱9kuqqi?ZijU㓗ېxR]{ė_"wYyi4hx;tJ&asf2&nP\溜QSʘ15YC. *kL rwm̨"촽6s;gJ}xbЖ ^]?{oť F^!d.‴|-@OL>S38AoHtpxb.2ح`2_ WUn/p [/>G7tP~%to8"Et{I]7ʶ"7/0q!chBH)B8wǻ}(?pC6wkr)�mfi i~"4̴cE K4R@{g]hUii(j~^=O+L6L חEUAhL}T Qzdj5tR\P7D*ʔ䣷i1&S^863+BhO4z8r^+re U؄"?l%x8>%_j3P}̏uEҘcKkXt ݝg'@.sjr\Fk}1x}KsMZ`y.Ro]'vG?S*L b7<oQqrf1<][5&riVYhGyca2*BD2T,?") )IH$"QRDF{x( Ǹ^yXχsFgh˻bnã$@%J/dz@{bc!g ddTl1ڗ~HBp1ຓ_Qu~fntZӲ yKc|C :dFMt01bE3;dAWk8sd9Nv}V6땣^.}y.6ae@2.Ci 0:iX=hĸT쵒6(o0Fuđ\PeѬwfzՄQa~weaBB]Yl*=f[$g39Ouէd? |5tmV ҔA]x:-΂h둻?^ԙ\3ΐL6J?P%m;ZTn=nn?bc}E--@_λ:xp}t!Ln@ŵ)g)aR8o 47>>o_gP1"St&oh'rs3b>a+Znx3>GŇ;/+Qh^s¯)3u&Ak\k fԾ|M k^|W&׫-aA\`Y �Z[N _;͏Zje1I=/ZČr!K>aG wx!OR9OTT~!\+Y9\^໔LsmBB֧@Szy|#;ax{=Uܐ$[KA7}z,S-4U7E{B!G\Br( ;~Bd߱Q 1^@=aT?tsgvЗ#m.9f*_HGFkn},& WS,tC(ȡ #A>sLTF% h<%Rb@˻ +r1eoF:I}=1#<ds:@_.gYGcB vDB*)K=>tOO- ISs)kw2gUsRz`RH[G($7Q7*qwf* !N dVYD{ɫ%o).gLQla|1q`8NTޭKp+Dy%=!)| ja3I"NLOeJ j$,޸!GÃ]zs ogkN3BoQ>OؗHd\v4֗ȞNbH[C1b8v^wB)myUu]+@ ?&hU %"獖'OFE| YKI5h2~"¶P7;@KpcNQgU߯f*H)/hʠ=e[7v&soc0lk> ( ӑSںӲ/ D:SXU [)B_ rXyš ﭭGȳ|YP/Q1iG SqcsTPBà8Μ<kj*4Sga]TpM Ͼxw gF#:^>ӯzל(_Q|]glsʅB/~shjRo9c")wif"^V-/ri%FyN [|sef W~ޒ 3-oS!__ȡUaRGT]1kk&Ccra ZeQzv!=gZ@0S9V^Ӫ3i$@sj9|SqEqJT⵹jӛe0FYKNj}yEwH34 K먓gH2EAz!|. 'I>B!}@J,`=Vn;i`qۏMeXq.&2lEFvk/Ar}n*&:4(_Ɲ Y(O7' "{WWPu/ɌՇ5ϻA ^3V4} {3CE{ffz0q2>BlJͲ3xeN~Aƭ2s"iX<,=3hY((nmG1 RR8|˕at?~dC;ʣmHQԃRwi\yPb9O+BVut!H! Z}j2Ro Ǹ\y\E&fĪ>r�iY_.|Vw mV5FZf߈̃:.?2?JZ}G}džT_oDɁ2w5 ÕAR7#2|Y:ʹԿ_Z J=BZAx/#5Xxc5_X·#γ20;wmvG*hȟ@nb4Cg nR1V76>,Ɖ+rpCy;~M +՟[ _nB羶'!'poi9nO;8Ƞ;p9DuOa!z J t:%{~(oq'EZ1̈́c򡊦-bt5"w\]"xK/EUK(9>\0|z'²|_oz{p|ݙ^&!|_K ]^k<f̝GW/}tƗ5sAnk<E$.@5|EHHkθ(,z -$kдqcʆ;+L̰[g`ܛ)m9 +- -o*Nj{D0T|3&(�4߾kky6\='{\y?kB)H" ~Cd%6Uhzsi^z*izZFIjf{{^#G,Ϸ T/-eɝ JCԹ@cCݯ-{LiC) Pu7.i2@U]4FLņ7 PZcʧM3/zeY3G_JĠ&*4yGlUF)}0yQi<u29Ad$r IW0<K~*^NoڅӘ6?6F?wԩPېU6O}o{Mޘa:g`u1+ߢL.2@Zʙ%z4y:TV_/*!&^)֗hchgWG=hb7ͅ^]EmaI-ĽQ(L<X"M?i( 6 ]:)ۗ.Pj<t/$ A):)ir#,l LuV(5PDA239'g t(qEH Ҁ (B:y6GfN|1`澌*zo*a :9e�cZI2M+:0Yx W:~Mt 3SOwbFE(n.OEX"='?|^l5,N3yCӽYqd9iߙQgr" 6,5ʓݨSϪ˜<+GK`HehlBqY IJx%$ jŐv= sgh«!M+ɻscdƕ%=z~>swi҅vFPeQە/J-Yi? 6M@d;PvPnkq:/z?w_n%aAf!?�|}7p_GUžm;~0#˽?QV%XƽKޠGJC]sc2h%]#uh8DĜv2Sy7-<5QftHF{.˩Ȱf +AQ P>ה_dg* tb"h+S!#=Y[dPǹE2gN_P cEP<%u9D1"eg-d|ن+wk,ucZzZߘΧ~ÔIyn`*I$;X'N _iۈBKo?]ۼVcF h]aN,gڐᚵF_&^GE㍠)`^ͰuLВLWУ`r>]LsohkEro:0;v1nJlC ^lBm(ׂO^mRQ=>wPZe0;s_hjn9K:w:GźEMn:x b 6H�-9GqjSؖM=>o(xxOD?jBE%{W. h5CU-* O ${< Syکр _\1@}w!"OK+'s]PU`d'ʷ1z)ŧ﨤|KqBعs 41!rCl(W}t!dˏۏÕi<β+La*11~V>IG(hcGA׶1Ip>OŐkឳI_Q\Y f^y8s3囼1qt ԚNhvdwy y|D�9~F&o(cRڔP_6LjΝ) nvNCy٧b P$ߺ�}h]#Kn4^\:y^a pcf1rn}�=σurk߭-tO]J|$׽ At{|Mrk~;uvљsQ`]"#61B(86UW"ɫM3+w`48 U-ݪ P'A䯌1h&|U\eNɜ쳢_/=>ሹ<u o3zn^Yhu3uW@w{'vMKfAZe,n0LA>c&ظDѬ1#H44nķQ+q$øJŵ!:wΜlϤ*x@2Jڰ{ mOhB݋M˸ܑ}P_Chj ;<ͻy[$ۧo:UA5m7}& 5@|]İ=0%R<(fyf- jeg@h`D@Ëe)2ӿR@Kf$P ~I^Rй -(d9 z1.go${>#H#5i%<k#(/j,HuN0j;(HTXK܍X՝q\B%.5d<~շd߶iaP,3sa 9I7ki ?]qVglVѯݵhԯ_uGWzzr"Q8P> H9S4 [a )2/)uK5X@hvN � {dSdA: ?PAI_>r\"euKѤ#=)zZ9bH[ΉI=d^D\4x_Ahps+SiS<!1(ٴ[h7zbXXm1?;G*f"$lnP0Gp c2kqآ+Ԥw=|Z7wlߞLŀ[x-_jQA o1:VXJmW> :YP9yz A|5ΏW/C9W4^clݸ Ҽ#T]ny`K~%{X푁gQp=f$ZonF~iׄ~,{+ v'!ۑW~6TU%x"4CsW:Z$h*2UJ&oVc]0h\FYi0)G;>?:{uUP|02U%*}^N8,Y_Aw59Zc2g"NԐArH/XVݐNt�ty11b*Q1+`B7Ā- 3 5w9bDM$iϯ^1jzs7v4d<�G^u"A2"®D? ځ,n_ؕgl> >P:Aj$G{|rEg<q+H_5xk a5_g٫eXIT/|ԹNⵎFXa7j=(rä)dO8S?FCD0wͤ1o�%!+VXn)}dR|JcGZ3r9ʶaa%$^ShFQ9oHfq:_t.pu4j$U bb@^ϬnzOyie241ƴ=r8>&}$P,[{P\$ޘ t*4IwB31Q?:Tנ ZAW9PZ$m�m ݗ,F, x4[u~+_9}T ;mh:rn%0Զ'{]m~hW bMٱ#{1v%?Һ,h9n ^UMijX@nqw eF2'xGAen9yU�ABJAz׶ x!eQYmljyQ)]J%0x;7hy4ʀ`1r?Ƴ�oiQxt91ȟRѦLϟq"YϖJ54TP#\Fnb,@-5rƛd۠VR/r Ӛ+"Mg[;{R;,p_>@Iߛ>h/gk3!dh.hZ#I|1b*45&9z9U!̓ߓIM:HolLral(*&c__}lV!|+hxġՑMӥ&h<ƹj Y\f}@iceL;35**AT܃|/0<l/y`:s!Lf)6ĥr D';3Rc:5oDٽsou#˭;25PӒ!̟[ԿDr"@t^ޭp EءJz_H o 쯉t:<L/Cs'oq#<H.9~b O\@bu O;6g9ǡQ^ Q5˪Qq֭y#(Fk5wTOrԣ!(D0ԱDA>y, OۤT۝hS^9GY镁'|tw=aot|H4L Ka:t.WBûB ~Cr><oaoiD)du;z[faFScVk]-CA;tV#gSҺaڬ9+v> ZtG ;�Y^<{ˀ) (ed@9 H*:7Lg{> 2y̫�LjwFe0F jq) r@P,Zo=n0Gw2\k΃}eK4=Z7ߙk4LTJ\߱ ע"=k EuIe~i12'|ҥbPd_Bi轥toQOYd[^E? +ߎbƖd.PS/EAjX6|-bh{X.or nW~e?v�—U'0Crh֮*1%>IRȦL E{J}?fcۨ,=~g,/|;lex]*jI (k JpՋiP[\d݃x]C0:/#3[N}v3q- jj͕Ch/|4,:8hyZzK]%'5A/SE\F'_!;W>eQsJx[4fǙojn_:H*~4?;vaȜ]cA; &O5ҤPԝ8U{3BBIAt޹!Q $bHEW+ZC}-Aci. (ay()p\M9A)Hm -;6-(׏:KExܠ7zzun[蒿tT,+ 8&%dOq,ߟQuu |BR4ߥK~Ѥq/�)NO3Eۿ̫^]P[f]8a_sJ#W]1JʜG׵B@(9pFǚ}0Ҭ K{M0q]b{d֟m;8yl;Kk$G f3[47oO7lҶNW@Qxk-Hj>XIb~P<iU"W:)feB ޿,Hgyi:W Tsd#*8ͷ4mO4(͢*do0VK$%0ypjz؟m{ y7x<NDOs A[.ai- m}N5 =~0um=>'1̽gܼ:c^sS3pX;m,J'K)LYf|dP_>[uВ tF)QJԞX 9@ֹ bՋ@JYCs%lD{&/$ J#K|~]w|-_&nPn]q_Ro]vjAռee&it2S֧2 E%k?^WS'r `e*F4}BC?vh4|7¥iԿP+#C +@}L-݌)A*qSޛ/Dm^ u (ŒgqzخF"}l AS*/;Pr;2<Ӝܙx+(Dr"TwnA˟Mzv(SSMA=Hs?idH<dsZ!݊lgoDǑ<cI[69.!v{Y5) 9g(bg-4c#n ,Ĵ>L"so Eկ7Sqp ";cz3zΒH: _{KG|)v [Cٴܰ<ع#WE0pYzEOJE)̔ܫ~ꉄUqr>Zu|sb/POh2_�K\w(#}Xٚ6A-Ua 1$gVwLvoܤ̹JTOP2w/3^OCdkE)d:n[u zωaD9*Xr!;ճ *'A ywϸ/;b@fbW˶Zh�hL |BIo[W苓z/ϫ|4,p)RL,z&σ|sg%d#оߋާl/0!&x(.8Є (?ߌ ƍ|asu| 262\趣?עm״3PԴ1|i)&fx^LDW)Pį)jX/E8Z7t{lYCK$R+̞J+T>[A3majoXmE';A%e@y'&d=NغA6Q8Up!h׼/wtx(7Ubv.ʡ* ԕ|y:"ED^:ZHIN\[FGId> ytm Z|8Ϊ|z:7] WAǠ:u?go_<dHW3P}>bL;poSy"f*}j9AJ|2*E18/^uoyT91* R{X@:v.j\H߻փ3{[~Zz#'hvqj$laI| &UzW /05Leo�u’[5rY"ӹ% *.OyA;~WF.o:UZO+j__턶FJΤ+m0ŤLx4F=!A&?%P᪨ ^BoFb!4)&fVoC\DtrPteQrH5 Qtw{v$T҇T)Y׮ĘVM\V t?^N<R?W{&'l=n G>z; tiGQวhs:B6ȎKNX9 :p/([@0|ދڄ}wr$Hλgŏb<Tw5q^wu@Iܕ[UMF̾V7LǨI~"?gojf-{" 8禩0>y [?;9}YtoUU܆ӿ6p ou;C1I.z va�s.&>{/}cF7\y )Ut\ 39f$q'"`OhF'q Q]_|^|DLͽ߂M1᠙.؀ ɺyIoLODbʝv1챽)<HuJvNj" QY}�:;4KuB_E(jrt"ȧʪjs~:;tnRbBvn~lfҜE; ZݳE{L.(5: $EKOD[AQM0| 0ݺ_QsncU(V|cҽ-Y՝(蕄/߯ +1stgbTUIaZչ0sJ[$7uRr 9<K?'WLz 0YrShP)j>eb\H,A/\uy?~DІqTmThrےP@9{*/[+W^�$P6+x{@NpK>*'�5K�jv!X3Pg"]¸CtwqCv  u>:Y U=, ckzSv \ſ&jSY@̼�GT$TWz>i-+Â6~o%UHe3HNˡ e3-LOhSq"hCPХw]ԏe7O񡪺dӳ}R^%҉/嶌:79})U^ׁ/t4^O#w:SfL?@ZRЋruyT*JyvwwK&ٍSB;оbJ.Z?ׅ="ީ ׃w;Z P[}o9jJ z|]_EPڬVLs6p[[[q eW?SR uO;1eraw#o VmRlw? _v9[obak_lh?4[Zu_hB4j Z=y\y/Ew4PE{0}H|SmJK&K1Ӫ;.! ҄/TL M!n R?ާ"7m+2Vn,:<1a=`<!%roO=:> rgS t˺Tbɏ4{nq ˆR Q/C~L_ T<2>s~QwO{li՗ʹ'7Du;ɓV$v{-zA["Eίm0)#z-͉t/zǀ}C2֏?Jb\󍘃˘f3HvTMp3]Ի*kSihF &Voo]_eEhtP4AZ#>vlo_X|</4�ea*K I ȒLu TZV u&(:jx? u;G, 1.&R(z×.;LAyEtHA1k<Β(՟AA1}Gzj]A_U1q)nI |'ҋ18>g'l-{:G~0:JWr"Tx;NQ^m|/,>Ma|\OR[G0W\Y|i M- K[.K"q:JQ=9 da5:zc>~~ c6dXi' his [^ѵmb=cv{%bSCW5ΗhK˯ @j{;yu"=,W7L 6عrʙߊ fb%gg1& 9frgY5.FmK^X*A(P5K:JHs_tKY1l5 ha׌\pSt<mPBMBo D^}~~ *7v؍Aލ=u5#y|yȮ=)wE=avUS3WvU : GZ0r\.>s|~;&zN'@juB\\ Hc-:ٕs2<.8iYjη?|G[yuLji4aZ�ۍ^nEFN\-'F%CI5? 4[ ~' 9~sp4(lZ]J<*&/sP+Դؙ `XTEW@5ar@)#+LoFy.v Ќ>bUvĭupF3!sUBdDjy15=)F;'?rdP[R4Ɍ,އ_;Ng?ç470#G~1hywP#03FFEޅK:wm5f?ݭYMdRxmg916%qP[fύD3L!X^<r21oJ kF  8/g )=])"y~J~ AEܖU"& wüA)#̼'H"&EvVaP%ø\I:8UnťSȕpdmz_#(ͳ1Av;KKOLckшzK6uil]+ @&IisEdPiS$y};؋6mL4yj $|Q@a.]s'Ai(?{[@xE:x'&:b07δ9 Uli遘;6ju|֗sȊS;@F:[mW]C<wn AYl=l)Pyi5a3dϢ` K6܂*vHUocLq]6: H }1;h+zd'~ 6}f΍,;!OO~0/JFhMߑjw(5aEK"\�Zݔ3~^ d17t)_KEH*w}+UBZ+<(S 7]JKkF[;k@Ze0~F]ʾ4٥タ#3}@|eYֻ Ѩ>2UK.|SIJe1 no4Klql)媌a{5x+?az<]&oXeQ̊\zwqgqI19 \} Z-ڳrfIa?e@;{eL"�vPwӤr?*x =ثu IBJpjXKO$ƛ?ԍm_[8ҢWUd`e_Ys.^Pt01zU^W6.6.yhUDm.k2>HH6t09'sR9dBFbҪ{F?Fmr1Mw*D|Ykdg(l2 sܳ\4yh;X;Jt Վ'4L:ߜC]~h+\0ϝӅAr646 lOW՟.ԫV9kCprz?�u˙.Y?oO>b Z#=K0'M_XS|�#i֠̿`߫"Adx_m1C'٦<αZs>즯cqSw}TzVz Ĉfn@# ,ySQb+* ͏uҕ7I.~}FV`So-Uܻ�q(:x'ȝf/B|u"tK>^2B]Qx,%QgQ^9bk;H57?؅ g0op1[9?Q)8`d:R߾PZΟ0V?0?O Yro|BWͯ@Zie;֎G٣hum{ujzLqTߧ�AH$5;hsenG̍@͝ށ .5{5#M>)I Zbgm:N`kh(B a߮fiV @ <v^cA\)ynnٕ: 9󟧣d{*μu}Fl_he .:9mT*\k 8IBpU~8t.N&5PGZՅ DɘVEѯ_RU_`eNT,A9-V<1f;2.E\.G~G~+PX]Z~ViLQL~gTvR O~fE!K$uj,@qۨcN2=K0-Bm@ZXvf;G߹.?$sP8T1/e͹×U?B%^G0#u0tۉ^ts9؅-<llY.CdE!L8:-d狖Pix&`'XC(rI&�ʓ\@xmeQ]"mx"{(Ts}AwPێ8~,R^2Anyl91 dV(h"΁w Wsab0E!kj_Uچ٘M6w]?Pϛoyx)jߚ0:u{K?1  :POC$>DŽV`D)44[MU!ʥb\6ʡW-9q55ħcN\9K`cBs zɥZIW:$iJ;"Y t8dYFg ,( 7{٩u_@15@_v!}ຕՉTIJ1P_Gi~[!X ^Qu?+t b"Z4԰=LbQ]K�MȴAb#b06ȥcx e~>!AM k"a% YGԣ?~h[:'0tO:l#"B~ Zbnb}&vB L?N)M٥cw ;"([tzĴES?T\Iu/[TL-0wƮxֹq<(:\#Y▻spf wȹQy'f k # e "61EC8<{nf̫>gۿKw3tu$m=Ci}gZӖ4p9y$[@O>z{@Hj%fйR3:'^qٙTR/@H <<^Oi35>X&G130ATBeo$|Q2 &U7Jg%pqnC*8{]ƣj* 4bij}o@ ۤ&4Zl kS=۲(Y?x8``gQW@ژkƬ'1=A޼Y+[Yc[BӦq<f߃3f̞hs(̪ϖc蠺T8L@t^q& ߆x+w6 `/ xˍ }řKP\rğ'\v"K-wH'.5IP}lTGm }nj.m@VԵ]<ߦ2Fɿha$J%Ol9C y RT8 Bٺnh6(3vЫ@t xlS]7.QJ g>TaN ~VyOʲ֨:qN%?0| x[A3E.\?MO \+E@Ȑ4>b}ut>c OCL|EXV>(aˏyy@aРmKPJfYۘu *R41L P=_Ðۥv:wUl @ޠwQU!0tkf(~q3Lj2Hݦc欔t]7cb4<6ƌd_ڶGEPFgU�U"Ԓί'Ilqn_P5ߨvogb u [.-{/.ќ]ZQ2J5&oMZk2.ڜBr{THIɝ%3ϝ]YC:sWp+$T ]j6E9[*n]oB0{W؜֓Z(. O=xKe^? <nbG\e+N_W|BYpW])m^vߍEc<uȒK ӿ{vo!S@J1,Q#Q>d)Ci`S@]%'Pa/e)T?Bv<fg鰿hzF],&f.)Y5oS"D 't}nv7z,XRc`IQ*,v,H>qNJLj d?MD7}oo1E5c"Dגm'/^~-Ľۃ]D]>=+t!MRH{0Q' CZg5@ӮzaO1Rm3Z{9؆w];aY?@> f^!|@i LVcs ON-$_lޭE0iN kS|7iԐh0๷]6`F*<3CbC+(YQtcF!74F ҢT]~KLH8+#pm˷؇IA6);-gÐިOXGehOӦKy�m&ѕ~&: 9vK  MxcsO6T~\;|8aĄKo ;)>3Y<!xp{FDbV۠(3ݾp/r׽N�}7+1n%[xau7f"m\@;ώjsi]ԍ#Y|S$}DمꝠ2qx�$qm^f~Smd"՟+e2x1R jw%x 'ڕa:k<TfG!U22%Y[YP|J)4FhmCb<%g =7rBܚ3&\ ( ?ĕoo >vrȓ6)ځr$)$x1I~4+R4u@c ʿW?|ڣn٨=u6]R$xĥƴ޿(RnU# {krYv=xy{}Rޖz*L0Mev WdƯv5o=p(- qCo 02c1Y #=_.W_gx(%#Yx{l}7Z? e %~X2>߭M@YđcqoUxb%?ͶBف3"PS;?S󠼍mፏec~ ]GSl@tڋm|+%*Hz<R^#)?vԊR @aY“9.ohө#Ga2T<ag'2^1#[ېs1a>&ESӆ$o4w\&7Ka7\PNޓ׺@y*A{HKQV5+j�?y yl ŞW]?x׿~1- !Al0 cb߼ukÈbgo r CHÂ(O]#m"l2 hH~@.=^QHbDYƸەsy@d̸ r'35 OԤ:-Ć2qK߾ձ<*} 9!>"A of/Y2'`L$ uQǫM:o]rCch~sXiϳ1%ttnZ@bu12yyI tuɋy::7MW-f<&^ Ȫun}$UHAmvm*{[d0@ :P.&^gi}}u'ڮ*ߔ�`ɬ-USKY9í%\bsQEuѐa<}Iy?[r||9%(EQtU(s ՠۣw=t`q%$1D+w/fg^؞1ew4"+e9LйK;'( )M;jQ\MwcvO؅ hcK#g 5J(kPN,(zus'3<siE] GM:3nm2 бHwQ9S@пYiL@}rURSF[9"Q%z|.MdOscyas!я&ܓA'fO$c&~}0 CѱL'Ծ~ٓqA0haԈmu،Oc!G`ޥ~z*1|YOоIPv㾮 sl2rGɱ<n"(ADH͍w]]sΕ`w<NMu`VQPUo~?s_sS7rE^6\Кȟ]Hb-F"RVZ'gkD)(_ZmvdׯYE˙E71JׯU F2?/®%r&d¨whPpԮW h, Q) /X:: 5Wl} 5׭� lG&#@\e9z^$hNcV`_?[9Ҩ{s+<N$~2zW^+>v?4^5*y쫜0 CװEw) ;:G|&-}=:4Nרu{?qE+A1Bw+5pd9̎joLu;d{e) L_?ދ!A:ط7iNz-,qa\1ͺ# |N̟,%WA~1<mO'xBMx3X0Ӎx]eD+tD8t%1݋mNȫ�T+bUAny,*xms{m't_4<I@ ?P::^`R۳t. PEٯYFj<ն5D>?? rSy9w#otP_&?̚|m ĸ~Ŕ彽Ru'TseښC Ŧ!CjA *8'޹ApGy:*mGgO3zlrm.\V䗿f]ڬ`~ 2wUzR.l"菀/yZY%q퐫DB{<gyq< Q]]l5upq ٕSN .z`_Qfuh+"2 #5uEzRr/b|ԯw^ ]Nb7䍋& P#Di ǍJl4$tkDl9i\Sڀ\S1-2%Ld{7MA8wIeB_^o@S ںܲ@fJ:SujHQdrCϏ _J@v"m?{ˡ[A6of`yf}IjQ$KPTT}eyQf%pC'H/ 3f[].t")5:+FufЂ1-pF!@I$)4֢Y! n=_A1={٧YhagkT L^+4 =-t~+!]#F C>oyT:T(:@o~lhjBkB H,[l3MFo0UT+?nYό϶M2{z*Ԉ#[RAް4:?]"9J1I,q7=&,E K񶆡U曟n9Ər/ |HtSBemS4QT=7_ 7 Ρ:߉uSMbRqL^ 㣧=lo N@ysE(ΓdP*(͓A`HCoOM<;nUKqwЛ\Oy V,'1u<O ƚ[ tr-# Jݧ 56"$fUP?YjyDÎ >g{Øp(y}g5[7�ߎ&YCK %_ZAG!N�UQQ9,^:o{*pl.ph[W+4Se+aEڍ*OyQ!wFw <otn ݝ&rt/7; |o]IN+'ޡSlwP>LD #O>WPvZ^^{6+0|G91ˎ`~HLp6<Ôb ' y9 Q'.# וIFkf؅-ȏ\{-쐝dl2ߟp;ifk@Y{5u?"_YXys7dT:w<(C.ތ@1h<MVS%P A (sW=J_;lWP/3U+}E=zd,ߗ@]bF =F7~lz? ޻Ҹ,c40<OSvj4nSiOmIg^ 5[F}j~1RJtPBKޢ{KW)]WǶ^B5[ F~UL1@؆[l(!M3ڴHٰyh7zضK ZYk'|ߩpL&Ѷcud`ZT Em@+lOo'0JLDW8|~ҹ(r:{ o} :|ܝ/ՙ nуվ-9-XgV!|7m#EV6:^tr^ T?{[7AIw-K+ޔy4b ZK%N}^CB̘80mC絇o[2\ t뵐N6H?ST}?SᦎMg]RV1]}%UE7J]c߅.LaBImb&_nV%0[z_d3C㤽5Г+Qv N=($Vlۼ2LؽKvJAI kn4u=ȝ˨?qMV}Ѭ9b=?؎A HoJ9p'%<[1x;tث6S\ QP͕7@:uB-*y8iCO8^#ƣx 60r<¬ďk 8tٷ&o:Y;]n<8;2 ry=fUn(@E wY f096b- jꡟOe37xb>ss<̗/2ʉp#Lv Ogk|CxmǢ?!783 e1yxBӚOm?$i{ݨ[m>hibIv붽Hz6**#t@ld9};isz ð\@rE*}y9k6X4ÝP? = wg@wʆa;&Z+z; ~TU^GU*AJ8]Oρru&;Tb3>~GR1]/|a3i؁ziÛ''Yd@l6U̼r9F_ U<v]a=l4tH9 Sю;:ay;ka}N&aR9oA9vH7d tf\ˬ<@'O6`ZHn,a(r YblVuԋ{^!Zyspz.2&nyozHfKhiir P-7 ATJ~6zwӽUP;o<@ !͊ D^G?ഩ] +FPI!c7@NkN? ܡs>m~=vO!- 灳hٺO-$y|F>QEF!zRA8(xW3}=)+c3rIJ#Jo66`@Wg)B-l{ؾoAͷPoߢ>O( I!mϡw6S6kWAg7s<tbK4*R?@'A)tvvrr.s w`MVhEOv~ƫnMK+9W:1P>z$F #FPKZGwgOa_җ͏i@Y0gw寝*P;5&#CF4Dl13kf,>heæ{U je9 7`J\F{w(LOلsQ?cн>ջ2Ș.1T$9vY!SA57;k^)ҬS#s JW?op+.#mm$0=>)#ZQGi# UD1/! #Oӄwܼs5⿺(O˻# [}iDv4(ӆoz Zګ-fQg,t>7xɟ\:=fM]]C=),d5(vً˝%1D㋯@׿{Fh:!qvd1@* ?+C[MP,#w9_F[=PB?+Pc:tH s6+ԑvA^ Dx-#NUm[�I`YE�L96b`{P9H =l[7+nX5�ns"3osZiKogv. l\. y)g}D+a(r'([g~A ʢ kY YmmEd,+?J"6㊼:wAeCZ+-;Ҩ/Bc [6<K.3:rn7Z@8TfoC霭 ߒ|w$vOrW6RUãQ԰Ԙ٧zR [ݣL71Ax_ 3ov2&\gәn)P_*E!Z܎0<,ՊTBNfEZ#mۏ@)L/~J;) XR#{\иEYDz Pu(}EezΒ6G;*DNcjV4GB>ˢK ;*|fFoOa?]yZUOb̻*ȿz·z'Y&TP9Ă愄%1ѳ-o1mKWD sw|wcTIC5]wx6T ňoA3/pD[o3AMKQ4| 1q"W7&~<@zp\T* ϽZ�8Yna(oy+8>};_cNqG^  @P r*FF1W%LR(A=~vcb1@2v4D\w?`<bgP PjL8HRV~PPۻ/;`Ǣz^=8}ܻD 43shU71=H>^k.=B^/7 ܹ__i;Z2ѿڲ"&lnin?H?b,B%振?$ۍ5a-ۍ{W3@߶2+0c{OzOJW' .l?-٣K򎻯Pe{3"hVmwdO\Gxy?8'q i嶉&Hk{k(˯8dӋ}]u3'k*%=ds$mO>k6wb] >8,\@Uc1<E , :srW!ДX!3k1D{n=jR07\ 3߾{f .~tX"w1*[* UA9Rv!g\3t]b< ؋7EAϝ<As9ú DSyPӊwf�:bַE;_k=OyN„>]~ &IxdksUmrq|C v@zG˜ [JmDU3 9M Rsճz Duto2f̬�E: |es +ΠLFu +le~O߇.8{]&KԌ D@8Į]Wo0]qx�O}|̽q#h/mREK7/.z]مmnI?D]֨КvyfHܑHdsko@ zTު]L<S s@AhvX:A9Åg)LhWΈ2 �% )t >a>8RBӖK&=|B.Z(B ITN;ѐ7Pcqng}C{ulígy_3*ϑlP?0b$ٺU#\.(˯ D^Ta|lu/ԹBL=x(K#M"Aa}_|(XN|F+� IwW|R,/ 跢;+iL6~>ʂ~HtY89C;i'?N/M|7-S^H<ä )>pFݙ?EBY4~|9i#P̬,@J}Z-yОWlRMBWXQsy{~h*OX;{_ 9钯P$#oOy`#* (`rHEg9PX +AᙓhI~?QILtkӹ fn)lg� d}yW yWC 0TMS *QobXv#L9z>5<Kϧ *Q֞<u=M[j@H^DrWp8Wlȧ(<0T�h60yKS79P$5chؐ,S<1; pA~"{ zKpwQ@=\f'+H"ڠyZ S=t.ul[>> l[݂i(,lQU}A]>�A@>k'(=]h10bPx\;CzS0\<vu+9 mԶ߻cBAǵ~R>P]pg.5u[aؽߠ؈o1CԕK_ }f�󽜶ZAGG!4%lk_ -'c{0Wlam̵iLAɕkZ/7_}R՗cY]1{Eia6ztort6N1ꭕE١|"_u{}PGn(-c/bu-f ښ\ϼgo9-d@z[$MJA[{ٳ \(�ТvWk�tCcS_JAˮb AeN/f:'%EPo+=RZvb(=0T:˶׀$v3>.6 Ϝߠ =oѐG  j̳~o:CvyfQAb#up濹4NJS\]6甂-;|j<ZU8~ި'tBn _ ]ī5~H \]##"̀ ffTXjL(;SVCey4z{>?>w;%*Ղ`<^I65:س{R<*mw]O%%bʪ5ȏuWb+zo3*EǦ1Zu(sWØ:sass-OHb2ӥA6P*4s0eyGvFGզZ=_dĔG&zVoAJ|YuImJ«i76kfXF MPH~cxڍAkvHxӛ R[Zu>-y W;ϳ#gaoQ7<r*]7\1S}ܨʉ6+?d@`+b a[cm_cN%2>?%'a6s 6fYeعXtܕ8)ю#cߠ}Ds)΄܆A~&ĤyEFVLd~!WG}~4&yQMTոʉk>2]sHGO&aJfutdK}QI$cA |kq4߲NmzR{e~PpG)J愕 FU-$ GO{eh +4B MՏ$AFNJ~)h3.1II :o89o.]#8쓨H]>n$5\0tu{ͅ oAt{V?zԇcMebW ĝMͯ<ڀ&ojudt"-gOAPm-L[_bHFA{l~n ΫET7)$]+ )[ڶDBsםk ltb#5B#]~ӽ܆7tY6�ekN-u(o ڞ f: -Զ~y^A1gu )?@'dz[wF&;WiT;\-fBI۳t qhW;b4RoiQ&e{}P+ \ҴicsyE(>HT\;(C s<f:vX`6& "U6q6rMVƫ;Gb\(j5�U[fQ'laղEP>yGBڐpT?Ho^ `or`Sv)Ρ*<_%QP(V 呝_@7V!:K6ʔٯ.(55嚧VJnnL?WӾ݆K_c%ƭ#-e*">9Uiso1B۱ ]|1vj[ rUdkeu=JEg6ϛ16jXǔNۛP=Sg`rYZq+^vRg6(}pѠ:X$JcNCϑ3cbZw42y?r]/sMѯ:IKpm貗j|ň_YQP73Tk@<wN?wHɱۗ1Wz3/u^WB䙇jZU7 bDɄ&*}x\�ИNQ?2ysN!6EjvUD^]|7 ]ޢQ vY R {X5xYEyr*911̳*=ڱG@} Uh i΋I*.I}=1sCH+&2g6INvfE|NQR ngut9d.QkPνVB3Yu@ &"vU޻l<~W>EB~W.ϟ}r61LpY �M^<ʤBK%A{2Jopa|k�RC~Ԗ%GvwC̶>6\3<GJ1~}{vT}E k^ӹܫ\'~8cX(4<qܲ @=y~OM.QQn!;_}/9ZMh:Z{jwݒ_C2<~n٢)>Ezc/&\B w7(;#螵l:ew]?>h7U Ni6FO7.{lY#MW1zl.P0YcڌoB< )j}|q#(\z@w!Ųw9Ӷ#v#kCD1Uyo=[+LbhCI}méa1^ t~r/yt|B/Fm*Y(<y͊ xq4ăt)P=hJ}uzLʣsq݉_7L Dfn3Z4o<Gsv![S#Ga*fP&}3zL2p~Ac,oS1!Mp- I~h=2`LgyZ?#4XԷU_àBN`[>rg9o vp:&L 51ZWq2(۵yA2`.>P*,BÕ@MySC=6?qw4EtJH⺊p@ӐڤLsn;B_,#r̾1c1оH4+yYSq~ ma}I_DP7C|`9Aɫfnh U}( *B.m$@q;^y<݇m AYJ{t$ޭ ,=L )N\gLp9aA5X|c1WB'@:Xַ YG,[B: Apmq:W˺/Č]]'Q}{Z[=m?6mowqzbל?Ev|$Gc<ae8$LV!9T0MυjeL8 2܉.]-v}oa*Vc]/8l}S+q:V**;e9|pBk؋uWQ{|M5}Ř3^9,G "}gu v>~Nhp>#錙Qtq9qVh 4(H-I*B)T$  %D%ijO{zv,=_>9zs] nu o^:0ƨeA4$;o_뀶g|WS0ޮ%cjmwD0M\^'Bv!:jHK&w]2AwHF@y|R}7Bweljx}>=7^Dٛ?5_3'62q68m#W`z}c>6WY1T;J'ro&@UX[DxP6+_Ccնuh& !>JQ`&j'0pq״ihcjx mNOI�K5Ee7ooh�׿0zȚk(dX}ǐKߧVHQ61("o.%<°uD<c~; E\mral,9'K?0SYo-pj3бĦze֣|p`caP5Bƃa|qN'p|2B ;k1@GkTw/->m?QZBBM9-k͞FZ?Q$31<QsϱEQad^!&D@\'4$}(@wz f~6"` ,A)\޽)ov-4'[ѭ#Bײ[$᭏XԬjۅX=C)e\`ߦ@=\CdeG|l貍*q<rCʼn.v*qwG/Ƥ:0b?jzm{'wf] %5p1PC/W3bfGc?_)_#[;޵@3cW-7-0sML8>2 [t6zLo- bTAӵѿjߒ9>9y/vgoȖ1=v1[\+37 bljG2jE:DW$s7ގmr@d]n YV苓 \s\o~.h᤻M07U%:%Ӗ/ok1an"+H+AJBjt䭪Ksow&\=]nŇgF :wTe?9ʏ譕&π¥(eę ND.w9DݾLt*omY룃m1ZQkgW2t1PǦ eQ^H-Ƿ)A{sH7(GȠǽ3ɩ I,}~BKQ/VqmF[eݦ:p1E6qE3p|!VnGLX"‹6Ƅ^E8h8m|Zi7y:d]H~o$[|1=_ڻ MH>rl@} 2|٭<^٭.oD+LϟQĠ4ir}}Հ=Pu㢷I_AW/.{m"/MV>-d;32z_#4j Ӻ).~l)r8t\=fцnZrkƒUHv5Ü9wA%X - n)J~ȹ޿–<L[,1^1G e\7h-/yc=ۆ;f ˃^}TGm#A^(}1c.F1;S?"y6Xc3~4rcZp;k:8^,GFH7W|2aN咣-ۺ Wm?{~Gξ)^^ϕըR.}o=%chYȇө߃zri?(9}Ͼmfjg5WV9bG(qfݕrPm;QU~k1#^>h2dEX0TkA]{_uAt-=g_nh7Duozoj$+b3AMS5G@*;jG19FMߴqdDzde 1=9Y_*>oCO?-t)we9^aG@e ^t\\@Y!y(3#|cٲ $}˟vimO8Z MVDݢTZ 5h]k3Y3ّ #}|~=T%nPu7b4f݅:lEl2dZ/0ՉcDD`N;(MP%6>kޙ\_Z)k30zU@?ߜ \i,r^*zQQirg}8x%+0nWs0ig[wʙQ  rٰ"ľ⑙z F=9C\DNM}H~=?vQ~iGpǻo*sS!)p!%b#֨lTs~a܄T/+Ht'tNԔM7#~p.u|j)*:lR1Y RaCi^Ci'>N=r?Wz}5P?ܓ5݇ ّݽTg' wgp="Yfbse5( 3;p֓c1S0cbt ˽@VG.cj5+0+kJۗ鎊m1"p{m FY.FPěPlAߌZVnǍ1"Pvl9Q=(a{6G|gmhݤqJݔ9=i*GzwP\ -rnO+Q msEhhg᱅?U@3}AN4.ز̟8iTݛvk\Iy. T.e>Aނ1PN\ry74~ڀ*:34Sƻ⥌|idz}Cze'ɟ#`vlwH>w$8gRht06|Ѷۣgq hBQQe*e׍:8({ 6c]=IխkT<sdE%0fʼ\('se]lըa1Y+ׁ_69͸l.^oJi.)c V6;0#NN_Z0{~v8~tمʅuhi-:~\[(+~b连8/nYY0ȕlB̴ûH{#6?CM=^u2jr^qS>`AYO"J.`8 60pS΄LvXl䞨EjguմgY#D>4"c~){H6vYO>V1l j T2S0y31QYG}/Tg '3^8j�t唣ѧ DoE0P˜y]oAS^{hVsz+ߥ LeD]}0!JN5b6qBeg0K|AU\2DZOQȕ톜EWwY,tYw58Z {r9hWiͦ~4f<N6*tU{wmc:SD$jJZ T~D[H|cXqlΝR| :mSmJI1s9([h|=>g.SFjH%݁Ma0m#|^ޑvpwMV:rR_qR0~0*{%]îfbVx&_!k<VE#!eןkBIVӉ;>`CDžK:v1&3Lț|P":o[>B~{}?7.+`G8F|(nr9e5#x&wnYk: S q!VMɦMj31ɵ:(U!Bl4nH2 N>FHM4T%}N SHwr>Bك|fAxéݣ=lPK.bd^MϚgz3Dƫ]Dֵ Y^yVW/�7/K TfP~w*- -IdžY[3{*~?VD5 ]{b m-(<.tNþO0sԟ^ 1uCIS9! ҏU<j{Jlj1kŢ[ݟ6H-F.bawep-携F\H>[<cˤbBΝGrÕݜC6V=NneČѭ ~}αGDN<b2X&48Ar:RJ)h̉ w<QeMy;^{) ,//oѬs{Eƶj%*2dq=;e@vfA~GR= m71!䦿%*?l`@ӻnh^, &#1q6Jϱqp+6hY�+mo#42q=0>K;%,_�w[;$wr!ظstdX?j".41eFgY]YRRPA,JOn,VtK'oy-Z_N`-(: _A߻_/mB甇ª"/|s\-g"Prc~D ƮxS#|?o;g75nfbqbu |2*K;pې.2g bޝ+\"U=~/Z`:P~RK"۳; D3珁1~¦=IGGL@aSj 1ޤuԞnr~j}N +,5`3P$kVIA]lo[ 79iob@F;gGhbPnw GSl !4~MQ*ix36wVtMuD\`] VK?Q H)^J'r8k9ѿk m{j7+@dwxK\@xAe-.HG̣:ή^aZwoG6ΐS>A[;O)r$T}TX[LwD$ W *GM/!Sd!u<hZS8ۤWsUwFVa6MSE!s(ayOB0VPk 9wA?㳭UjTkA;fM o<C{`l5&۞n@yDwU'4pc@ke#|~Ug9VX+^.DN >L%#50.#GǶ 끺J=o=I'6㙦(lvC6귰7C 4bx͵A;*]ڈCL[1qJr,H#춷ed.|#W!q;I0gT 0K4P~q)Ny4#B=;"aH,D;ϯ&Bꦓ)5A5PQ/:oF͉8i1lEHQUʭ-oޙ' sمNgѾj7tTi }_$JpF/3-o%~)XH *vߔ33KP{#̈́wL<U@,4\;Vg6R:nengoϋm~ȧ\#_8ɻc+v|¬JX\ ?STVCx3hP5լ Sԉ,|Q+s4ּY}/&h;D}1 -b}(yù>KI`>x>; EODRzMt߰ :?V(j6-$M_ma_I:9* rdl;5:,bheyL[N5Bj#G'׌,j̎JD\`s-QJF2;5ASO߮]”h'oC;w,<!{AzLI<&ӷ'1 E'7]y[BWMZZĴW|qeOKȶ]qdi<[#vݍ?rNgBzH菳ఉӚEa O<D;g^(0hnߣ 1CVȯe; )}JIli$pIҋL Un;\O=bN>^5E P`+3/e[CW~3@cOޱzK ZA~o,ndnCb'D!cQ܌Mi/P;qWh"6c<vN56#a0-GIQ ulK<y]A݅=NnǸB]N|E5u!+={vd~9KKh+Շ{A|b祄\HSE}2vQTP~(%x3:*LAVT}uK};]M'~d &a`pfRݧPw}VR:YGV_tlk9 ">0LgƆQ%3~4~VJ dmm+mF0z7Z=m:L]j?~p_}Y=2HBRXm(5دLZOΜ/ [IC'(|_mi ^cfu{͞y1\V\Ġ? _?9C2e(6ډJwFkohyvj#OxӋS}Uy H6M=T\Q&[UG0A1<9(s1 =mT(G)'P==j5)/c=*Hm];g0v#H!3;2+zNgQ1}sm s緡[ib4||S)5t."G Δi|$1{~[u(5߿I3PzU gG:Lߕ(.1ڂb׻\p#UAg%'G6-T#-B9u+8"kX0᠅lG]l.) DD*m٠z%@Q.w~'8a+DvjM%)W F[6mO<HFEo|fM= {VP- D2:x Fḣ\4#qY-&иReЏ8^quP_sV> =Tz�(<cP46v36&D;/zwOjq󍇺tUU &:xXGѼmSrgXRHBqs_XU8mޟ m޻Acfٔkӡ{r>Ǎ9Զ9prq#5ٗQ!y.V/jۅ.R[n\DvE] Z8뀙WKbr-P\2Q뀈3~t M Md_A;Qs>/Xg"vze) ~rS7t߆r]q T|P#wGxvFtZW|+UVF:1߉qLHPs hfGFԬBVv+ 9ȭCЎW,ȊTЏr# |׭�LJ~[u!/ [۴OC:.n귘8faeMzl9~CV燐O!摢S%j88}'(<v$;J}Nv#UA S g"->;UJz=As]eq>'.4m[ oP03ZÏ%Zfnduc@jYYbJO$=8t?R@Ɏi i؎xMy/Q2 jw$@4On tENmе$_ [Ý1ɚ:hD&Oݿ-QS:Ժc$H32A:9d—}3#ֽi//5j`[z! N gǐ p+YƱցK,;*uJ1'"DpQ^WvsoВþy$(sp~Cڦkuj#+obLuYϬPWV*XoHC{�ҟɾ}c 9׵GP>8l :@$,?+ #76 7(b�^"jci,(Í h=`3;V>]UYA QGVL#h[ {Ցm.`a�d5Kd-i1fϞ<Ҏ*c"y=V8TOhy#Yc'H,R@ۻ`jBUf;SPj' s R _-:Åo޸iۘ(|T%CE^F,_^ғ=q1X}/"yg@5 ?<gIy1k0s/?35 yRGUX(rko<G0z~:Rޭ8Ǥd֡5^ HYT\-s_PD>Ph~톺zDJϬ } PkDRA\SƮA0xf N HmւZT<~OEv&fMVv\ eBH\ݶ [.E/okw~@e֐LF$eaÝn-<d@ YQ?`º%ŰXj_ RNss aw4|NTEƅPQ䖱;n1j[A= ̧24'gP*J=&aj ?]Wixg49tC}[1st0X'ÑJ.<#Mn�>LoXTG5hVX?BmnC(T,߂ lϢ&A=^ܬ3xz~3UGAQ;tTd v7adq҇3TV#o4j3_%,ѭτKie2w=øNɨ!v=./R]�UxfGO{}=o!<zix+ddj/l{ѨOvoϼ5 yWWv`ڸnM ۰RGwt_|K '/ n,b?V4tv_Pd%T\`;t;u}6_q4 ̭Sb#k$8~105 ٽ+�5/broX7`oАB@0HF 6pY'+I $ [,KD`LU!bBe7.fSB;xt1$kyK'T�ȝ5ٿ6?qHqV4}2|o)ٛ_ђ5Lʟ\ {ܝ51D̘n C;A󤝘8G .ny'*o*3G^lܔ}bm!=Y0j>3Pw?3sDJ"k?T O,/JߏfmN,uV6@@k=`~eb ڿ>E9c0{]@lC͋ J˪R�N&L rM|K2Gk*yrU/P$7-3A D3Y:Ce"(+8QF1zb.^rF853F ҿeO?c"<XGzf~I y; z˒Uב6WCDuptgCM[ɤM=mȉ\ꆌڎ/#|{'u((v. kJpD uF/t)Y})ٝ[n;g2:3ۻ} 4/!ǣ'x#\kV֬ZgퟛA9FW{rdޘL:)(kh\uWLoX|*l%sfΙ'x1հNA5:'{!jw!i s qL۫Gx>Qozg a/ؔygAa}3>Or$aߐH:"u 6Uކ-'X0WRvfr|cpb5bs0ħH{;b(7 1 ăj̕/9l(vLm{*Þ?Ƹ\@lN؂]2JVLV##/$KQi㞹vy5S;qB599׃)uSLlbkE!uڥ,9%(Z|KI?0x4Pγ.wCؽz]&myMAW+ b7SnM%qGڶe >IgEЭEwD-GSoֲlnxRJ%|ԋ\./Gߡ C-=.*&b&9kʬ#>17c`΋C70!BԓZ^A0֐[\1ͅ#aeD|u?L==tvp~Ο⼼ɯ;٣㭔O߳='Eku'*@^ -(vV X't3_ɹa MY-b7eI۬ 5Fcq FʃS;ج\AMmy־XnYqwT)d_PE"ZjP}QճL씾FJI~ 2Oo<O]Գ˝An*ZyGMM(Go0*'$1k%k s] J"Zb֞fIk|Np(TGghcQu4\%#nKCߕ%~Ku,*3U-˥Ef/-ѧoY[@|7gN~ jY=[r;>HW ʹuadzbz!wͫ_W 7�Ţ0M!d\~]\<8\kT =s YgGl>S*W/V_qb;O@ENPḴ9@-sјz޿f5Y-WP9v06=dqʹVcj߂"1IڣW(>?X[?,Q^?yY[n6#' Fvz'wx -}shx]A =T-+/d|g'.ux.bj|BoۃC0w:"5K2_H`Moj5|<~Lv}i3vrvkP0Lg^0b9�Ήn$ L]`{&;^{#ޕd|&P"GB^o@+[*t꘴ؕ4S}4ƖI*dE J%<Vg /6$Aٰ*hwU<js/apĜ9o~YVɱW1`O"G#)}~B�J'6Au:ZИYª`DM#f~2t;G;I !Ui"`U>h#5̯ SZgS 1rŝAcqAX/`qHG7zk̒5O'R+ǒ4{˗Z:vh+g&^De uO+&^E$f:^ZZv.*8?G[3h !g4{]mֱGq/9i Yݿaz%9~Oצ16^yOPyuI}dĬe_ *v4ݕNcVV(wө89>_=\ܼ_M5O<R<~MDb~|8 B)ҥg4IJh 5g$I8UM_bdW|\Eͫ@A-:KWD@(YeyjӕP.t)Q<pVDLL*;@sI[oS[&JNz(w2ٽΘ"rTuSг»@ zEGֶنDovy-I_YyQvFPdAu&u~C6-s ׳�tԽR‹Y"*gj8rujY=Co5Ar&;jO9"x~x>И;cG@WAo ]ZZp Dv{L-MX+,}6]mL*piƐP3mNyLo}mz'О/'+|J_ٟ8/꽟1 ww2>w 8%UۭOlT`j!^76^Tn/+XTC4L~љܵ+c/о8P0pжz;]^�Վ [VX_uj`+&N |BoҶSʘ5̓2Y>%Q](R_>m܃~Mm{e]sPyc&{A!Hط5 ܭ>h1UI@C §]OW>\rJ AP7xOQ@.RXem^nCEEz"]�UR8=:ܾllqK;)F qs=#G_YܒޏĘgyZQx (+-AgolEyјtMN\"<ju)dMaaUhZFɥ ܳ7AOVdb4'-|2hTcƠqg)v |I?3[e^tLǽJaMhɸV|rsD7/n~X>,)b #̘0! Y yM{Dϩ+:y )w{0]/zr׮o?4">V$Vl"�P-“M?v-"x#Cn̙ XZ J[B8j-&'leh[ y==LNҹu%Ƞ_~q\<kQ/J:!x:sۜmT@ӰeB+JNЯ_+ZlxE =Gr .>+crO:BDL*PqM"RNaĿ3o }wѼy̾ص1 o}MES[{3/Y={%}T>6XGpN4m|-OP\]=%wnzيOϗ/p} s�7 0@Q,s;JtA)u(XRTl=cZqryY1D.GsgTrsȿiuS�5g63߆9c=lɜBO488]j9:nl&EUF-W7>w%|"GZKd&h U_/tyb>7rc]\L4]—s|",mLK˾Q$x~m͛| KrXXܰ}h-*UT6/GPபVu ‹'R)Qi5=L%b+:}哅0K{kxvho6}|nX0 +;}}j (4_;-zWJ ^R҃*WDG:ydZz11n/]\7Aј!gDL[#Ps^se]~!`tz)(?:!{5qO}[v"gKEK'Q}]8I"VxX#q?Ўڇ^0|:~7^G]%8M$T綿Z8=*Gb΂br_^hSJ7T@< B3]۶6Gѣ5 @u>i㖱DvDD'Mӈ^wԟˡ?ΠQ-T Av<s^9G g}PZ>"m*/إDG$ U4r!]TΟ4]5B<(T_Dϔdc|xnmՖY9c a5Z$Xl�cʒ1o,^ ,e%0W"X#CuhKـr7;(42RU|=^ӽ0^Bj ]2Z7;ޡb͞ۿ@)vߌ1_ƧDbP.Dx6='KctZU>];Sm[8|53@ڏ 7w0m|rb*,=B(A_wwfTCybo9P'삗2ݠ:W!<%;W|[pr(+mj@-yjL1Ib0i[o@r/z*T{GAsb*e0@n=ʏh4?Fy ;S~xmfQq6 (ny]-/#e9cl�սc{1p#Í"oR1(41O*) QUdjo-XVY(R˷ u㔷cОTu#Q|KM0ḧ́ly"E!ZqZdcb7(yetO؝xPtgw4D;}2b6"D#t΢}ii4,}wN–A1>D7g]'"[#9$\Ay)~vT}@ 6KdraŃ<A<)B h◆ޡ ?wRŻ@.vk#>\%;6,޾61D>ف4yvzLoȏ g Jsi)Y f(YpãYA-6$Um7#ò|Hr9Z5Z \ѱ8p=ꮰr"rn$Ȑ胢րvڛhfa9Y;{L9ڲ g]@;ċ/1vֆ5?1.psTÓr*(ޅ@׾wT5_,8$ "x+':"oyw1.Kٴ#W*|v]2(;BS[fO_)gꂜ0^dAo R9șl_\Sp-ZsH4&2Vs57\-Hi7\i+N{5mXK2* [j!wǮF-9P돶z&Dn<r[L̪k t?Dx61}7.oϕ]Ü7p-knBA1>OO$Nx} ʻ LNM>}6=D(EqG& a%* hqHҴ>TU1aZP'?n֣�g7<+핛qf`1\Ğ}e0[J]K'@-[+/( c\+>1MZ�fC 8mZVn�:WM$ EGsiNΠmQ6wF.5X}Q�}֯uBF{4mVD<{,-rdP|L >jFq P)|I]!# An,yCЪ<t1[߇Ҟ O< *>rtYR/:ᣬp͠U &Hcݘ;ޝtY1ΉpQ4f|gWҠ?NvBy/OP/ _3)hU0f�}ye?l~q[E-esD2)QEwщ(m~zkkv5DvJe`?Ea捻{~1ȩ)2?-0<orOxοVh _-VQ;^`$%;>Ÿ{Lx k' ~OPVatg坿flyO4ݻP޳p$~+jNe)MCߵvAy_U ]&w|;@Ht'>Ge_zv F(ߔv # 8z u׽['JS&r <10U]݉NV+ fʜFcu&}d2}<j_|::L]6xWtl1hwcjQvzL/^=^v[5.�_/?EÀ3j?YWy[k|P<ta" 2SxPPn0㌫5"$Yۂļ&EZ"R sȰ`&.%d_xOUJ$*NEdh`oS^ӏv�P2`9^B0m kcEf0lx(^I6Ѝtats-|8#; 灬~}}W:~NҺom2,MͮA7>TaXeLk=61oZʣ5d2 =ԵHӠ^ e>Ry'Jxq͝}xΨ]?bNoxZ0zA&$L;:-=Ъm2RAִ9,KPjڶ(]�]W?(;T>\@}I*@^v~'VѿK&'Sh M^C~u`{O]D_Wш1d'k*_T+|{剢p_N0vzu 6'0cuP.J'{^#lZWedz2mh pvIދRS(jOYD n߱awOX.۵Z̐X0.8<N&nkv嵉^Ya#t&_' hgW؝5GX0>˛?oasyt>t2Së́\8>ve؟;bvIn.:_Q4u5ejOk1TWڹӃi}q] _R}u`{u~fzmnj*gJE]<u+ߥX\ȖZ⠾.yB`<Wфɾ#zK\A~mQ̘ZEvR<d ׃!"?t羭 o= U-A_]Op1k午g? /~{5_WKc,Z{\$dDo؆[N-5~fd/կ̭ほ%a#C7^ۺ`Ȱaָ3W\A(g4yh[IC>5IaP?.Aߟ@e I E;Hr X&rJWR .Ճwˣ9 GFsk-~g^gH4- Ut)$;~�ͅ}@' ;>ڋ /}Hz!ԔA.Jvc]س5km~A] nLj>]wUdw&"'hփ&_moڤZUxuvYyWwV2f +bΤTd Fz~o"YR] m~fBM C1^BU/鼷 m{"pkP(Ɔpz,t#W!pP:[J Pȴ'&m; ^WU/i忪}ѦC\oO(AwSa ̜8tz/GEه 8G|Q巛v+EVHN3}PuAWYA1WNVl5S(y;A:j. \3ڠ)D}Q )<f63MoYI§᧨e 11'6'dlv_"r+ֹ}wΰ%w ZŬHxA!RxiFy7:f?/ 7[U_e5բv"}ЙΉJ0r :R1CgԅtETQjڈ]yӠV:ld8I:~rjs"@nT/V fSuh2q@S5{zЦpggl,l]Z f=2+g@߀!7o^F3$jWj&b' :3F�TB`w૜F`+ cNս0`~Ѵ!>~22=fQfG#2brߚ)M/.](PB6I{] eb}1>ɒ@7rF#CA?˿3H:K#O%yG͇.!5_PћYKAUM sL|]~2IILDqǐA/>8v]q]Rrt)0>C !+5rww]ψ~K8<wXX6z4 Eu6 \|pdmG@qfyg:QWv]~{NuDzN+%&ga:uHrbUR1 f�ZS\:=-X'd K'2ả,Dt6ly,wn89'wz]0l:!|):H6Jga z`_ ^` D5v R׋h԰~]4wI,mع MRwUtjkÛ>^̥Վ|#(۽snu2,@ݸپm={leí"P- Q(W3b5V5ᢈf#Av%C YE%k *SE6aڑɓ̨W/r/21榽^ >5VI!:|9 (]xځY1̕苠k5uRr7f~ߊqgu9SaVZ/&.!G|T-4 LJExbٚKw&8k ?sBlwa=Psy0"+l<Y<oE5UL]jk8p_Lo ||jI=.ОY]&09<ؙ@{Q{"Wӌi^V`t&5:-mͩoa>d;V\Q@+" }}} zgT}P7'0.8JZWRo'(qkQi.F8?J"w(%${6yQu| 6No ZLV>(Yѧ@.t2WU׳.)j%|rZi& G3K 3 qs9cGڟ=L$ʔ^J'I.>7Qli'~RYȾ"9W/9XB}ѭv {3edp+~gw8<R -gJ.{B/qZDDLP?'7宰Wqz} Ϋ{l9koEE-`:D3aWħe49Lk0wD#=OVyii6uQ߃@5莤m`JkV% @_v@*yXzc j@#_̿"mTt~U=dJGUhYIƪu 3DDVaV;@=Ⱥ] Y5nߍ bZ[6r9==m~'*275`_y\Cm^׾]AY(@; F֟v'_x�"d40+r 䛼bV9-'|Q3EPFoaIm ?Ps-P6:ꇙ] G0N ܧ0amF!0\j-]v?~J~>ZrV74Y.4JpŽ{c߫# Mqx^*LP%_|O2ؾ,( M3;Zd!y 5dqD4-({ ghZS n5zc)DP1.~c GFfC4US]A~J9"ίzϞG[n1P06a90ЭOVlF7&˙[1wߜ#?PZi~049 +|}F`*Dsq98  or:9W s$Wԑ6ݍ kf|4Vb_WO׿lg DxA!/-g *fz:_8 tJH) Z/-̦CjGS1Vaz<G*($7?PG&ఠ ^(Eʳ/1PM~ fzTF}iu ]�ExO$(vl$r{ ۞Hi I!)717:8=FpLCPX k:FQm<LdF w}K6A;{3 vPH,"TYp(ri/[ J'+73jJwN@YR(͉ikށKiC/FucA9(ms �UM+@ԇV$4h?t̿_ML'^KoaY<&:e A-30'7/-ý Eo:ٹ (j{ F罣|;AZWsOֿ{<X>:m C5?S~ >%ڥWߐIԏS(CʐCNsCcL>ϡ !kP>ż5ڿ"@Οe,픪ԚS\xrf@4_ Zb^u%ōi:bt?K/QHS5F̻~8-rb{]ĝ;ΡдXwAZw&&$^z+ ^m@= y1?%8_6[aR{h1uܵ f2?�xW[h">j9oVsAPOU(.M =zF¤P~N^o{y9z>֥ /xvCڲb p=?0פh_rZ6^MM |("FSʟ{-Dăfh_^(v`֏=}:Jŷue=yj9_@7H64EcYPPyp׼4*gYE^Ý:Lv_ 0>Z8ڃVR F"L j<LNŇ剹{3NW\pzNګAv(IKYcgΣsNNp:k @a:uzf} U12-MaQJ ]׫1,oœMŕޏy2@GSwеww0qE%o]XP΁txy@xIa?!WV(lhy;&"Cw¡׻%fǃ aiGkZk,C*ruw@Q+, uSV}:k7ȇloE@UȬzwEBf?1?2ATeto햧!tع GC;SK k㙴5@},!H׃%K^o(ѷC'~kè{%ԜY[4g˳c;1srT鞩`zOʿrc3ٛ-3oQɽ$] YI#QT쾒!iӢoyV91fڭE@dsA1 xW& b\2n_O,-/%ZD'_T!^SiEaǟ${L.?) AerL`gP]Fe<B5;|d M6hO0*V?iۿxN^E[N+SKP-X|ؒՐw 4R[(Nt,A?#rP.Kz"V=\ܢ-Z"cdyl[i ;}+Hc͊+v{0QJMW+UmQX�dzSyO7m ]I>'V1XYl8 WuN U>{N#%o0?B|:5]<G$jȫn_Φ jo-ݺ<sW. a0<05eO]/޷H -Юk2~9.w=3۰hu̔_XY+?{W!SްetR~ U8QI/ { "vDZNHڊI\ SpC[-q%A=J˸bYnTS =Œ7M8NCAm{oG5zsoŋ+NŠLYM1]O# ;ͨDUUu�].V�^ e &2Řz+ (n[]F9yxE9A\tz9BEmr/J+:Db~OnCMV ٦,0춉EAwGQp'7 ' (Ϸ~Ƭ/)ajW<l_NI;'R >!oC r<q@L QO=s<&/Cع7Mq}z_8^/1Amՠװ엝u ? u5/؅s9RDwK{C&?*A3ՇḼ3u{O},OPY0O-iߎǦ@wī1<11x"qUGwHWMxJ N!?k|ZO.?H5ތESŀAjԗ?uE:&ȣ>zS3)+ԓG:(^t$R6PA]s;TۭOcz=:M k_GӬҗXm OM@.}Av7BJT mxnA+o~u(ݿz l6s[I45K|8 ;A[՞trobvCM>&4RlB.b(>`LgnD/B#j5`x5|*!#7/ka@:K4fԯ>" maxgfqhemb/u0 +wDjek7?MpBRՎ=L8rK?mO)Q4\(oMn»wu9wd_cPәqཔ#odV}xQ@y[;n9@[}pGLw?ݏʅXJIV02v d֤vK,(z%Wåwz?U-P\/'ll߃ iizQ%z/F%x m:|,Fޝ "_W*Fxf4?cnAfm3|y#eg/*hC};0ɮrl`FΗp}-ƾр9yց~ÜA2fj)'~o$nI-`.@y@'B9z<M(Ç1c_u*ZPuZLheF܆"?;2zW'A;&w}7Nv.k: (k7vsh!%c$8V3HPR?]8r[kS `|sѿ=(" L�C淝(4++vv]S^�倷z}&+Bd[gbV{8x4Ϣ3_.wѣk3*lk$6RmhTiW@Vom(%'A"}}'dQob>5:< =fiERГ/xB(w0ϭ 7EP<D՝Z/U~Qlu /|G 7~Q-w5>0-VQڞu zZ;8ZCץOn$Zwu1s&:hh\T=zI +Ja0Ee9:fW 4D.Ż?v #_u(1J9I;$Ln|(W,+wԠ]>(W3/F^w'-vf-|ڡOª67Ytέ>y;YS_ǯHp|䵮mIE}e13,n}R#ѷ ﺧ}&qV1uSwE \Fu-A^g=G% y�t1]H_] Ұ6&L6ӠF|n9ˈuj_,1kwte0;rf#|LJ?.7ǁ6q5ڽ@Ҽ6n/<_˽~Sk++={Ϩ$oނ2'%õ9ESV3CycI転y7uw7h?\Ԣ&1޿.>;~p|oAcg>f/(g}x.İ 2':EFX@id?T5_fzeC ^od R5 S^A4Y+>'@-jEWD3 ,Y>\$:;c 4uXrì6B:T5DnnuPzR樨<.1#㺣yd+(s93Jw#Ggo-=@̉ o0Rٛ=+P#aǫ .g:cRvGS4Oq "Х~ZX={AZ;4bm#3b>ᮍ>'cyf$SnJo0s>(qݞ{u >QsG.]:ՊP=x_/z?%|ϝ tjDAZX\od%Qn#B}: n?. !K{+L- H1CpA~o(ԩ|>gۥ|펈)AҶ1sd:/\efW)@[Izl +OPuC-w!Bjࠋ>hyn8O+Da,F#GEΓ^!'s?J ^ BmB[ j ʪW0!Rs><{+ @&C_?EV+<@X[enH0oL01qS}^9GNdT #4f3nf{4=Z^Y?7ni8YbȮ3\8ݘ MVAHQ “WJŎ3US\jCY|--F61K(`=g'|:)J^#ݶ\(*!F�)1Є8fƥ<JwL3U@F% F^@y˵G"z.;)_"Sclസu 쒠}Tg˱{AUZlaWx fz S_focP~S'@PgZ&& 8\"!q>+9v,B =.Ug?yXD*N[ŝ EU_ܝO;tw۠Y9g;o <=M)VmݤB\O cRig )=Ž 2<*]h5rrR6~}S*ϒDR6P4Y Ny{ibŇ=1Yfs#/σS{2𠇂|'Ɗ\2HfU0XFݕ0B<Auo53)^+:ڎvS]a\cvi^ѽ`Xof^1EOYۙ0݌ziT)=N0xGԮ>E2Vk׉gw9˗"Ps/B*ʾ´0ڀ׃x;ig4J]߹&)2Z|P"ϋh p=Ho"_r['M0.ZMځ-.UӇ QStw|%Ȧ.K=2:W]9h{*ub߷Dj; z>ոu}CRmݏ̣%ߟETvO9 *OkPCOH儢f9E@il*wu=AOc 3fe䧘W R܃ˆ4"M׼b ~J �Ԥ8_7./:Qe *TGPRދOgYo`F|gEhOoS[s>`&zO3ѩdv%1x1s+VԩβQ剞T́E̤k\5U@/!rcig4O*mà;koD,{s 1V>:@+"+<NsO\*Ywh1ep/0bm Cs@% t50K]ŻE";#׊U m]0O~*+Y- &iFL]J0}H4mܿ$A!f*}*=(:"#m PTltWV̄%]Gi{ϔOly뿿zhkt(5Z5 O:Xw?ZM1up LuP-0j\&}NPSۋF:mY@ A>WUŽ*te"ZdbV`̛lIE ?cO4߶-qUOzJFF7G_{ ZCu:گ+[Q+T八 Y+]®jl@?^̳;SA+r�a Fb}1`zC5䐫mJmѱ@D4YОnq`QŒ8 Axr]-(12m[P-_Zy]j 3oA]+`?#%--E6[PWq݅E1[} J|4`z{m}>z}6Hs2{QYˠ\o:PQZuѼ;#P͏AN 0W<N)[]nc#aLA ]olu8GUac5+gфbJ Z Ml-//s(WD t~ػPh{,71MWx;o+3<.w*ծS`gHvt|m@[ꥈ R#Il ?c?-oid .ڎO 1'sz^mq$nwL?gyc#4@Խuhw8N<VʌuQJz8~" LEbs@{oCl( TYo0m S|+y>;FBxȻ�mfH *#y_P 4jjc(6G+nKۇd \?;ſu[q;X=<;<М=UdӵY?rp*ߗ3 8OMX}UU}@)36 z&.%ޢޱv;ۀzS6htiOl%#{x~{ HJ<Re2R94=1M�Uv [n HX�u ߝ"Y]Q,,#iO,&j7Qt俙׺:5F0/asQ#2)hzvq4+i ϟv<cO4訿?dr"j_>\RS7I{* H}ήsK/Aӽ{[q^;$tޡ9x(;.$`wGMtW~}#_m@6*}@Zgj7Lı>n.ǜšu_y}z0lݞ bCwVgtUW'D^J$Ue]Wj?(=F-+F1*zl cTLҼlp54R $|c_e9KϘ!*~ ' rڑixNSBhK3<ZgyMfA!X+N{ (r^w K;ϩ=״rSgDS> r"u\wv!}c&+.'ļ'au'F@*ctjLswt/F9%DG:f<2%րeWVG9hkE&z̐ԜOѻrѹ5k0(L;X@z.yLpkYށgFi8`^{c)Uw pYk%l_FŏkN y> H@-}ֶنrͶ=>[wj5FA1_LWi.\E5AFQXt%r<e?LgqG?gv}}ĽFE]W 63=1zs&TN7#Lz2y] }_ XPn(I 7AidQ1|`{ĚjײaK9-W"XۧfF\r/?Dxe*Ħ ݹr 쮿b =v{KYlW8f}zo@zn?K;Þ!hq1~CcyAody-zt/u_ Ӷ9}l(%i*Fe5z1yR6t&Y8ֈA^RI䎂nŹv64o4JuߥO=Y]InFܾ8 vrH:S+[as\Q@=T%SWW0D^Vq:.)="nquJc$(o95|Fطdz:5^Dq2T�jIs(~:ښK *<97bCٹ^IdOCq[;jZ7}~cM’Y KeVE}Os5蘻I H}=rsk$O5nP ֻ%}!T.)l|:u/툼z߱}H? pCݵcY2.@s^P&J,qz<gO=IE_ ,^y,26ڂ܏5zYi[U90ޡ/{Lb@Blc5UWd;qchr؃)kA[߅L_?/h%øɨqi'оD-n&e?~5AƖS6'֡RuBkѨvMJ7)%zI sl /bKlzcd)h,j}CyH +yʏnM?<-ύRQZ߈]-&(4ZPVvg{ Ҹ7FD=jįzQtT}'QJr)$%#IB_(;*l{>4sc|~P;r)~ȾH Pg.2]hϨFByj~,V= zmSh~z9;H@f: _Y I`<yZL?iI2e9AT`!tVw&~XSt!MT.y=ɝs_fÎ *k ^jL!b G\T ֓Ru!=߰q^1E'L(d%2|DTj`Јr-Algep;6.PCL猖eG0W鹏ytm`y -yZ<{ b*Mtɀя sġ+N4g^<5QZ}M ,x亮 =LϯФۭ5 ~gsGg~m-(Y|}_GV.-2╰f?m| T+n{//İfA4ֹ{9RC0wmGT ;?߻_sb5 #yԏjӘsV佶r]l,1_&w 6r~}_R;n{J zBHJ0ڰ,_<ޗ:_>2M=ޙ!_R?KTм_=tA͙8TuT_gmD (3̶̵߭𺨻y/{o&)ԾRn\ˬkdU)غU?z'4svɪ6%dj떃~'L eHPGP`.@ 3~ ~C|NէsK7GMfQ~ [A";PtMRnIq}Ncu߃!_% Ao.dNq0ǟ'Xփ1U|(qຩ-:HgU^? Vo3z<ܗ{}{[bÄIk9 hԑ`^AKAUpf[XAPޔЉ18h 1rTr(?P[068P0l{#] �"\ӷjW67~MgAKɁ@i]yrs Mz~Fۄp ~ ݢ}zfcT2@r nydkWUQֹ(?>#fuS2Yt'@-6)G׶7)*2-A ~cmpakEJfmldΧ/~'5{J7P^\چ}ۈJX`eN5֏E3M?i�ҕ3ʦGQ5e1?V5tMǟ)/EϩM#_Nbakz8Lv~ k@vuΰ@^7 ;8/T}Զe7P$q oy |/7:>/}ҙ* ?l |)I=WƵ\A&ȱOb_ҳ ~ )|2m>kAZ Ta"weF>:T|;c#Yvxb4&rxA/c76%tZNf^$rTFEd{ ^k 0үUӏݹW'C<#75#ԙ&\M @M9sfOY�EĔK@R2�߽{&0y`Ne,{jaXͿ_죔'<0_VqH~yitJ3(I9?PhBO�/> 3w36o^@; xm)'n $pϤ% 폜ƴCr�N<2m.9WU&0KG0*58bp#5*H(L} n^~JN SBA%g~.nCmg'[vL"qI&!FUhH}&A\4#DXEXN͟ #nzx6&.5U=&.٩lQh{!nor3tuM"AL`8,˲0zƥ  pD\+nCPMNa GŶo >0Xص 4y N ԖoZhsr~x}3a› 1~XMf*5p8DrđF54>_ܴAW%Nfuv{ ^$A3ME;fq5*~jSh˗\B? j~6|V)FW/~ ߤ;A6bCt^ 肣*s^;fv.Jֿ.BSߩ՘&fH1fYU7_s;tA32ʦ{ǂƭu jZKNiw|�w&_t?N|X9}|+Z}C#H|iPhBk잵q<(EVc(d+W4&<Xe"AmߙH6ecn*Uw^׾�XUkrD1k!ud9}n7(:>;y0I5rK]*۞"w2<GgϕVݙ¡O|0)+ű .LWDy%}<n`'zU8ṔK`"Gm=`l塽GKAdeU <4#mگgՏ<Iq;̞6xpfs&OK%,xTo r~пX>/~ƭOL1ҙt~L8sbb _GicRR~W4M_x bR#}I4Y7k]@x0/ B%ks{H6W,ZRaܳ_{|75ؔOu^c _I?2M9&XY5ʷo˯YJW H_'9Qx;&%zXHȳb {o+ӜO"%>ZLnn vYKeSJ9}&6ꄡj}ncFmo"D _FEܱo֨rln؅m@cqZՆ;KAk'�'p>u&/OQaB.t$y1؆!*K ,GPa  '.])4Jj%Zc[&<#b'AayhNBoacp]A̷"BJ`A nh[H^hiZU\ÞZ N^ykS®Ԗ:ɢ@e�>P,BaI] d{^}m]zů[МEUrڧ#oP);_ t燗<Pf!�$,[π!y7; ^5$ a xGOw�Q{qTMauv9[^B;�ډyL}KJ}=-= LyqaS;-%Ɯp:CoC0vgSgnp(C7K:狹uEmܺV=~kDT|[mWEBb:BH& hUy3gfuX޿6t 5[D`0[{?ÊCg/1x:K^,J8zꁠ$IC=ހ)1wĎ@Y- Fj`#~.@ )w6v/b+}$@-1?ikkn7F8@t&(Lb,Ĭ)PL5EU7Ah²1X(lyOEI~rorNz)Zܑ5SY]PV;KbgP\:f0\ѫހE@*#Žm8r!1efuc񼎅syӇӹQfC/ fIA#g0g-"hN%>F^u?7:dr]yeǕُ!AF/sLB?)'s7y !{ė,GI6T ]䑧1%Պ熞"2Qpz>d}U bX͌si <к Oe|բ*X%&ϣfsi٘\2V AR 2-F[폷GJ/H^4C_@yZ'I̾/x=jq ]ҲU xA JAyׯF<oT켃޹ T/KeI6tFںAF%*uo=45!Fh%|*[,%c[>f8>ŤQ:(lsիb@L턱[;ܙcxWGj5C~뾓A7rV6Z^aK;Prfn,XRҬ&׺'<U6It?l>w�SA 9:ܞ.O08x\Xw�DK6SQ'#YwW⿙xη&ZL݋w߬5 ʅBpSRK -2t<$0'%4Fo^V cg<(2NEbuvן|՝HGwT}z!'}NaZiTuĄQE>)6mh38w=`ewOkҚ6fNZ>qK6d|,U1G2j"<Pѯc?Y~۟eKu0ԧ[#B.QQ@%u 7=iggTz8.uIn7`p`NhεWUL9 /n@j n1YG |U~0fk8&bzݹ{}0Bg0ze:>ݐI.ˠ/ NMcS` awa\FѢH %uS4-05/~ZȅpۺcA9w^j)DE5YdV3bj91Lm!N*OOQt5!f_/aa$tR?[}a8YH}ʡTDF''9-4l?ng͘דߑ _P{4!aTEbژ'.Y6NfuqZ_$斈+#1CfyG^X]F/1YfQPşcOA*+o\8?~_CWwcؒn502{3}GY0-jW|~,qiit ݟT ʙr׋#]/1s2T1=;>^hGkWf!FU)Cyv[j&}bx{~hY5r4z6$O_>L/} - q  xrm'7@ܤYFuP*e`M-K{"R.Mg+0޺,TE\{v3h֦ztULE*cn#̘5` _? 5PO:CtF5ϧA?zu=R߀&vXTftOx;2Yo*QEl^JQ+G\]x1+`KU^EA+@I|L+3̫HGFԒ~;&9}2G/ގ,۪dl:~bO@of E(;wc~Mآ'{?.z+H\d (Og  ' `6(psI{̶6hѭ)wb]?%ODit[}~GRCU)MKx`\FHkğ^P?ݱeAͼ3,0u}|˷4tƊw3Ahw=<a8S1+뢏0?dRc}01hO"saB}'}۷O1y:KEYIiу~~MNLeoSnlie>Y^Ke,]V CC!no3Oֆ|xS]Z;2gwH7-Y7 k7afqVNО2ɈlQ't; WA ,kw"[cE^:+z"M"nviMixsPvO/f XMl?Gy5V c71B Moa) wW0]I#~X= u-?0AwW2@oSyVN v|lfbnAQqnPbZݑ+Uh,ڟQp=~L?S6o ]0ai-@}0oǦ},7EfT=#_ v_Z1%sw^Bg  GMYGoTm"O|@i֜,ƣ?+-1nsEtFq/<WGMNuB(U_$1υ1( GXyN�t_=پ'H>x/>Z s _qcܡ]sM/#8dB3-/ʧS3V n9'Ƥk|0]_:q {>D<[/.QR&yYeã mi1y=K=0VފJIwmMM%hVTt7 ;0WO(^f4.>~[L7&o_o SMJi@XRn7ƛ6n^nVu4V%Xbb4>6Ն1q?1k65-O@:uc(W7zdr?1S-$t]^+0b k|뛏m*A%LoE& +ulbxAYUb5*Sv@)p鶛YM4% ބf]cAj*} 7U `^>- dt wL]N OHx_[.?{Bz wgP0Nz x1̣Xj'7PpA4VP@qK'L00OSbWv Zc]M @i p8v`4HG}\D 6a褬$]bgmϠ1:a:_ Nٓs7nBnO ?qOd95*tףquML|†lHEC,"ۢU Z-Dϕp4q[0#?z-?nOvo̴k+:YҀS/)C`:ŇhodV5!.t}6r# <¨\mW/,(&SL*ide*NE_'aˮjЏ5oN~cDcɇ@v?k ȿU0;/<f~Z^oX_yv`T*_xUd?)o Zc3n@<>:Ԃ3d9g\ķfOM}' {M5X,Qo7@xH<v>Ύ}j4_: sؤk6hK8MYŽ}'cr; syoI9=f7.bߣ,:;j ?ŋG?0l~U\{__ʵy{Pyzl8ģjkD5$'TrGqU?Ij70ڒ?×*#o/xGRÐy[wg�4*lJ逢 Rc 16y_ x�Oۺ::.,ʝг߳3yo /.)~tKv4S WٌHEwKDGMRtFYK&A7xN"zƫ38I` HԥAA]z>f9bU{SsRļX}k}>/=JS@! 18u]K> C.P{Eо^N/gԾ|ih9ࢻ[l71g<YI%A7Ql$O7S.JkS*ePiSop <>W]H1K̵G#jm_J7&&bgEuKvZ!? 62z2@+1뎔hX7 ϊ2g+3Q |*V +[_H^Ꞌ nZ*D+`c^d?sܿ߃(`GkZcyAvq/6p@T&TVNj_W]^ju0PZǃQg??}k ԟܤ P_V}2]K;rUuaxlx;*-]Z/^mDaKdyTT^MQO>/K~v(.sc?;- smA1<0U|s=JcAH67V@}( V`^ɝ%_%syy+ZJo�]}w2)<|\�w: H\Df<oL]m?[3VQHU:rO[S# kf(TN� ݰ1<kCc6qZS6nLލʧ ޮBz'Lt<ǹ~3|\#Ov#h-UoagTWe 1vCԎ%g|,YE=R5^bƶs" _7eFÉWY^ǓF%܏ʇ@ɭ 3"yφ 3~>=uOҨxzB~8z<߬]tJ+Dr-ſ͠D(`ob;"/%v 0x|^q5q@cwt \>s)Mm޶ Z~F bsP)] *Œ٭ 4'Ơi”e~,$K-Ə6A/cEp4 ,6r `çT}7}Zz,r'~!maG)Or~^B^R}bÿOEG?:ْ}c 6Z?�ݽlS'E[,,3<V㍚?9uTKxR$"P|D]hw8xxHG0#⮛4, jp70#D>AR2I-bYFO9^t JNss=ŅwQ?ɣ苌 Qyy[sx \6{]}# :-AIۄުpTd{rϱ7jlk >{< A]56~`f!|%RTxIHwVZ[4okp7=Ekj3$PufHFB|USDv W( @_+Mmt~0FbBŽkosD ׷fc �}߿(_QJK 6$5fe=/1kI~KuףVr0&f"sBE-J黔yۣ]F߰$h~xG@ Ҡ-]5SDkoGߍ*r7nq1Ad7m+$[ˌ~ܜqdPvDoÁI{'!Д9O IbZn#9'1KV&mQANC8QS%1lt2Qu޺Fn= Rw~̶J(te[=n(y[EAbC?snM^TDT!mc^+N뱿2RH(!rοt@6xhvk$+ m3F _8kT?Zu!!.$i՗fp陠 L�O~Nt}νKxz{9f@ ߹f$QQ}^V*.4ĵS?*umM{Rc=2ٳ(1yp/{y =.D6 z ave7#&bԏH>k9AsPh�7'37cahNlbmJ@թfs.�SQݮ'x_ 9߅AO~VoΘO?Jp:c#ހg9P UfE[ Q82T0<Vfc! OPq_BA<۠Ŕ I#|"-&%3>z3L ʧ?QF&LG/±& 뽧" |x)|It2},:1r"g6J\@ؕGVb@K:,t iO0}y F5N�~ΕSr"H6^N^^BSHlU\Qq%c巜,eFnRط2~v-MWA[4W7zGu9H+A$;4S8PD\DRꔪc],!̶2t^&qC"87۷ Y߼&x=;6,s$</i #n\[0q۳18m_^p{QOZoGvG~VMo݃Gт(z|]Wʥ&P A}Tu 3BLȞ7u6(q81#'mnv~=PaaK$6Z�1bpeнwT! 5a o}--5`Iءx͊M|F0Ź2pc;9l@qڶDDfؒ r몘g/Ҟn{N.o,+jF"^A*8ލZGP&Vف@q`nWT_ҷjVzVFs^F/`AaW!ßy_ bkD\_@ta("$kk4Eٌ]i2q_~pmw 'ȁ{y3y9'Aܲ _e=jQmC4]6jl:t\[u;l7 ]:>mD[b֗zq4skA/̎"kcqՈ{ IeQeΣ<̫g ֑j0/t,F#k+|5'Տ`ިSv|:qi:v4>Gԅw} ~yR\6Zߴ!j4m!MoQ+XKVZ,�uGЩ*JYxZ"SLdLӯk0]}8J{8o海&Ơ]gUDxOxeEb ~[,1//gCAzb?~lFi{Oٛ~^l~{u ev_va~7Z\y/8*WBITu ٨A1+_=Bdۭ;B9hZk33E1sO2[/eq݃ۍI>vh:fEFX6P} % ٟ%՞thP+֏D)?A]ys/ Tr[^~Pd l]iz!2V) #/fE|Yi:fD-)/Ø޼!!}f&\`voӾ&8y)%%!b@‰ŀ}Aa4xV1,xQ 3Ö\=%9zc<ZgD@wp r@*RwJjGd^S9Dڬ~7͔_DM[F8^!8t+5i͘{׮z-jH{vFTN}|X_q'2'o�;u_olơF.?t EG㋋W}CUG߾iT/PGRԇf1>ǻ ORb>LWe#H B "@}wc.Q98]5CE~6CZcʓ2bѧb&' 2Ȗ((c4Y2zO'Adz}m=D^ EZX8W:3 IJJW J1봻2f$f}f峝I`b&@yG=)1ŭceZr TtYlw?:bOn _H[7ʧO+EѢ;U?wXztN9PB;Er|շ=GP'-qh}8ʪ QWc@U>>)g<0<݌6X^VEs[Nf'yJگWFG}JȌnr 2ԁ6^pR}~5CFgQwMw(,^t܋T<{'cڠZ2sdPK 9ӈug |dzHCrs9EK,ߎ:8v!z|3.H<ŲTM&bD DܠFX[G/gXG>_'.qL^Lg} VL2Ϣ2l3QmKG3-5gc4NN}%)l`x0[S|^v 绚Q)x 됦tQrܠDK=}>C!6!|^ΊyOQ6j%OtۏuU-On,I#B@ "kr𶏠\N=,_bL:fhRuiH͒=+rJ4@OV/7^C۔B|hjtuJ<Xz|j@[k(0 8ĀCYj;}+"b큠܈ܞpOdt/{ڤ9j%ѐQ:uz?['0޽ݍw(zo}̿_JZze FK#^g9=<gO9a ,of1/v1aYv'`F.|quC#!G OSg E8}'u`D<Hbַkk][o`jGo$e>^Ukc+%Qi UsT>UzMcW.麂Tr>qs>nל/6 ;qMqߗ%jo* zS)=WZ8wzqdJX#ɋ~ N�cXˣ(So-l̽GݶT<8>9J~ܨVWTGկb(ԥ׳} nMyoPyaT^Sl}!yĸw꾀"n}Gn>_ϙ.N tN5"�f^]16{KXM!PZ=dO]SǍܧUn{xD 3iAy$R/ٝTiCLΒ ]MF(hbO@f=FP}7'vuPj$/=_)k~J7]6kp@ mC)ph(x {Sۨ^tɉ\D*S>sNo{-M>;Bsdžo7|9Q԰هBL_\[ԉy@V>vjPԭS?8mS`)1Zn'GIM1^+4/\扪 [z<k9N >y/ 俘l{|,>ǙHv%Y)]h45%x}BkF^[;coz0iKȝ�֔ۿ0eKgfEj`(w3 &{ J(7' k{"qF2ǬWN8jW8+@x oM7cJ'.S+s+t]}�?om˻ǢBSқcWQ('q_cl38|<<gQ_rQ<(U4.lgnԚ=jm8ވ 6.my0 _kzɺԩXNMDotq*lwOtj0~xwUC wQ8vMzf$l;WŏD~滷AFk׌_=Ç/+ )(4/ ߌ'Q%o\,~r/#.71{5Re6-\ y*FESnNǂZ_dv%G$V@J/x3yhig;c$ Oώ?CT*h[5$עN]SwNPKFw0wiݱ՘;8he`ݬd}POL<�u QM ]zS %Sߎݣ8bB"H.RM r|ۿ|#" G! R iд O-xY?hc3jaj@$gA<jҎ#so9nƘOY燎|+Dag0`7Ӷ:D/vhg4tFS#% HI[1^OA(a15iext>98n%<Uڍ7Zmߟ<NyqfXcr1&"Q21q].>U&3!(]ki^W 47FKa\-MrP#H;Tߕ):#�x9_ nh8[cA/ `r$zӎ=HOB:E9)z;UAew+ep_>9[Da`}W rFTGΰ\] ě%{@\tFi]u( yNjMXA9ە.qCA}h?߀2KnP"9>BU=9|Сhݨx祅{]Vx뼸lGb~ [/q%1g/J+OLkŠ0M{ϻk?7 &_Pm]x-䷂WU$D7*P`WNeCϧ{ SՇ;7`>D d\%s7a󛍵4f6Wa69hyf~ pY:M*3HQ+nkȏll,}*CHC?cAx&gȗt}Y,HFSV~|H9D w2<Tle,Jo]@Ʉv@�}׸mXȠ6E. Yn?Ҧe Nrٯ 刮*W_mb?'рh:ɻp ~K#AdФ+&ϲ0UٟGo#.).вEɡL@UlߛOoܹ}_~"To<(.ي7ꄷ= bS jLlϲUwfty&.[X tV#h͹*& vH9<amm-y`&Z;|(�KgKhzjw)i6'g~aA*åъ]B'}iJ3Vѻܥݯs4oWnccq!(zÄ{dW2<6bmKJ p(@? (1 IE1?J3,Rb:yd> uճj@dz_J86Dcpbd<hvUdig0ͽGLB>\wPMnW7ZNDjGzO=8J(Ev!'+ɻ]x0n{Yt Nyvȓ4uh&\~Q*;A{ ښ=D}4OzT3&/.{l�-o:D̷luDzhgG&†cn{[_[q@32d\Aؚq1٦t͛.Y}ƠuFg@;ěǘ |ᶃH|@  ej=9�ʭ>lcCT!T*tӒ=avjErٞq^ؐ,"/ 7 GiHp"(M\,|r{9okaM;W;0rMx1.mb؈\im: ar^ )/5< P+c|G=#9Qv\v fZk y@о7jͣ)^P8uaݒD#R[N n]ߜeL_H߉}!PBm1gvneg?%#oV͂>g#`0j;OT�$-iͿck*KSՀ,R[-JI^bzX(^m5}s|A no+i5&T@4\~/8΍6xHav BȷCE"Z1ke/Fo^E@~AjX&Eo"EB-\b V^ŒcX3MT'ʡ`} >wdy>Y\h/CeZeTc\G?T ep.|O{kNdnݻ:\ޘ#r_`Z647OeӆKksC@9w*'u;&~TH"3#o̗hRo1c/rnvjnj}0Z\<;{ QMhÀL9~І-J99 㹍 | r"x/\A5nhU|�Gޕ#h';b¿uS#n,x zaPG@?(g^oHb_A3MDPZ㺇R[ni ={amɸMy?Źtbx_[f^rsEF k1YNTe>j[YE3;t̑ (%fS)yNNXw[?ظ'@}7f ìslXZ5g30P[JțsqTNlOkK_h~Vj_>)G9m .U<!Qs\<N`x/(xUtybJ dm<Ć.w_~-Y? (>eݼ} d\-tby�U nketv$Pxv5nacȷ0kep ם ޘ;{23:<@c=_ WOףhXl?�<=p[ 7]C%6`A=ahe#WyxQs zGPƴKVijyhc̭z9Ѹs65j! NKGzX.9߄YɘLsAӛ;қ#>|2 vq4 Jn6‚ȱמ*E~ZFⵦ9H|i0|yZI;ҳfP(z; ?;V]38}t_ԲQ;m+$?+ۊ|X-ܕ,G[u7k#Ч{H 4ٟVR8s7k ,1pRqb(2[\A9VC~Z֠9K׺,Bz#4F$!|j�>eVi da?~˭շ'9y.+Ɠס/Ց0bwQ@^"|@=ݰZ DHW+PA21*Ő_.ը;f>.< Jm #nU+= +P[,h`nDw/ k7SW)J  EȘ/k R=;Orẗ<< TUӷ}$<:$ff9}f3Ncj ~>toW05*yɍ}cLzAR}2/Jh ]4L񷿅A mЅ.&x>1<+ҟpYʦGl;x03Dvb>_继XI(R&QSV-IU X춖O5uލQy' TR/&бLZw-|^hƻi[(Nt %-F;0~qw.ubdtCT*8:U /fZsi *lyHC'łni֠fY5[$\0Vg̱K*(?k}\�W=0 r/@}-bRZRd]>_\ pj H|saj9`ũ %3W^KYg YNg7czjφ >jdimD;ϔ] H+]ĮjѸ0sҳ]zFHUMD ԩ^"fց" ReЊ1VCn7ͯ7|ib P"B͍;R!x+<�/;ׂGL>io^{}g tܷ=ekS}%gd>Wݧr!07proFٞa.3jR/ٰpl-{J 9~KH(Wք"jHuuϯ+K3|T><%WPe?qt C?x4MAVe;q'v1x*#H< <mմ@]B/aVʭM͏rgW#2tg,�g^B̍$ PW4:J%:(;95z P~HAEK(Yc)4/6Ds?x ]m]@1< DN? e(׼l> se 9.8~ Gc^ d{(y)7 #!(}a{<^r,%m׿_GA'CpS<NA{D<Á<]xd.lI(YfB[HPp= j{i2JrC_uWf`6/Us; )b!Dt^1^y[L$wUݛȻQ}5(73rɛF,|T`+E׍rx'ޠ׺BA-;/йH*C+[lAb=8ŏi5^ \WAZǫ>1ɞ ->QSл&FN6)2E}Wm/dKy9_utFDf3@}=͘|Wi2l`.P?�%ßs)Tf;yUL}VB}UDb@¿b=hc9e1)=V=P?8O×Ͻ H|:^$t#jcݤbik'.!.Sc !*Oa'yz9vJ`bNa{Ca) v6]F#&Mabx({Oy6[]=yT3otvr)L.J@]?cBSC O;_UC?|nyc؁ّ4R9J Gd 7+`2%`V*::Qs( jM DMɺ+TO7W^:zlIE%t *m_7}:1=:·=@et}=DƗw.VCZzU n/;r6{=kџew'^k OIkGƎ{yuI&E$9\+&' qY3/>{ *Gny:XA,YcW2f;/j"n~jOm$>Ĺ~ì̺yPN_ @(cw~,vUD5_.wdDf%Z!^a"toG]Pc`OS [K<i#Wп9\8|% @ϪÊIʰA m}`0`uM*x_0쨵^˾3VwO`Uhc\gWcG'<N"RtQ}J˯K>B]ٍ Of~<(v0ύsf&)m_YwkzQX&^^Y74!?+^{iz\חF.Z uF'{x0`j2b->{ɥC!F#q4t^R^(8Ss~ڱƠ?3{q,y#k^ yRx[6"j/BAt χr7|Vl@N1mh}>0UMg.6,rWcʌ=p3B As(^a]ŷ-*vo2xYC3?8=q7Ca#'<Q|~x?Z2t90Qw= exd)=}Y'We0>fV)e׭u3j3 s1&%luL�)w΅}3 $fx %"hr;2 Խa;`n)1 _»àJ2_͘y;K>hGF9lP{U:A=+xKc4^ARK թF72s٫!?x_˿-2o@ӻ2|H:gj łsx2DLeYx'^Q*Mmڭ!.lꂺە<yV?;nq͗Lhr&z*#lq7zTX\Q?rg!*5|y+d^ᛋiƅN/ T:Nݭ׌g_sQ:6i={zN ڹ P< n0xCR,k>o0}g xh#SN6\BeΦV4sZ'_6�>:'m=S^ַs@i8߅@4ރs mi?;`fK̷U E1Ze!e=brLWx PAEP*.q5_Cڄ34iir՘DzH�σAPoq>4زѦ&g~Ob GD0^ȡwcxp߫UYAI@}~ mSa(uvyG6\F7U5!+DѧڗΜڧ=EؼhaYðǶX1cxv:l [9#04>iچ o=90y/Qy} ldԃ~`c1.ʘo3rH'Øc2p ]:ڃʊaH_Aۮ樷c!UzfUm,KJ ?Ӄr]W 4~YzH/4n+ħc5.Qb|F;9Np @: (IG~?# iœNk\{s1F3X8X~0Y\f&f*�|X% nۜͶ1(NN; 1i{F5Ǵ8Bݽ{62m * @M~l-#WA}~(V~JGBpNKL+Uԓo/LG~to=O9;;rg;*EFcFiw4.Α_1Oxʉؑ7P_ՁmIڶh-`{v ݴ i |/ os>21j*"t?c(ׯ+�ࠁ3DGff(8%A>rq8 M\s7,`<+iwQOn 7̧ T"AA;O2H; u�Q{{A\|(j�[~- k8ey$8\\} u/(-|B~SmneBQnfզ^pT+}0:2+}i1"+)<}u fh1l ߎ- 5-V{ 3 ;|hW~mi@&k7>k&h59 ֟iԳ[-cy@.# Q;)iTc:3 ~L9~wu}CF. %܆ ipog-Bk˓@z`qhG_Lo׫۾ W;;J`$#ŧ'J:7{x?IW),%&uxx<u| JHf7tɯqe<GUVL]g'stsl:8 =R%&ZhHRY ֐sֆ*ވ `G ϟ@}c*^@BwehNQ#t?pJ\&] +g=1s.b o5Toԟ[A9pAu3yu߀w/yE] 7)m~Hfb#־ ^W,&GP<hK%-`j࿠A,tj+Raf ^�bh롳ҹm24{q{>ZYr?@[ OP6HC~gOvU et?o*z @<S\7⢓h ۟7frz!ʹgh|053jQ׵t+`0 y?oɂ<^fP*x}L/ ,5@uH#~)p3:ȳqc[Y"{gJ-@X4+m].uh!X7^gˊZJU>PV\rcgAU|Hm[r1ZrSByS u0CZarHPT΍FLv׼D홱)xT}p2pr]NWGَcBb#}' vb;s9FDtq cDM>{ !s rHm_dદ1<ɱj:  F3As R5o-38dIVYyswPvBu6mo(MSgJ0>qBQyP$.lBD]<M_QҦ۲Cd[l>^!y`*_W]tܺ/A{i(jW=[>?M@Ֆpa(f_ݡ`,"& OyQO"2 gnf]뜠;j;(kG #};ok#lotn;!on_7GCGAY۩̥:FE=Wc5W4O_V193<?n ]7t5>#3gWDoOH?fXap|4Y;-q?/@)gyY{T<uސ*c9SP*$B/G܋v/bemlb㞠Sy8Uɨ,k �*I&KXAG=hgZ!k(Vxawvi&Ni (tqzGS\SQ3R2a^P.qX|_ F_5 YFng_z Ծ=vW]/5,j NAZNHdg_BU?f@RRd)/]GtEg"`צ7[t;:d ȻͫI-c~_u(zw򀨚&sѿ-`"f USԁtd"h#Y7Nˢ>OKboTG؊Gk'W }W)\1}&.%̭ska}xìFڏ8f PaXR9CT$ d/DR_[N =oR: Bh6 mqo_$qoIĉ&/Phq4]ſgRdQPDOK ̡63;jz;&'Ȫ([b㽖tTwb2ɴ,җp$gu>ϺT6B\7nT`:Ûcnr1b]C/ԣu #1EܶMANRs <J۶m͜J?\u`�U7 ^{נlYڇ~h{Ha ]m@\8<⻭3+OgzZh%ğ"v>,QFg;SgPWfak"H oˁv/.↣](5,4ȊÆ_f|#3+r"k!W)^}=@}ӨT?{~ 9hȌ./G\ܺ'[fGW^q;a"/ \ꉘ'*_Pb}iڈ14JA0j d6QH+,P-4>;#u7냲'"J4@8Ŭ: Zs<%ka2`B\]픧\wtۇ9дĿep%c>>sk,;;΁^z"1Vn'4vbUP l_E VZi|4}o;MCfy _vڞ m}?vSReQkh %ɃoD < w2n%~ۅy ahM؁βA,$ H?4P޸e6r871F�}UjQV� k3x1-/G<@c9Pi%4׮֢2&�Hk8i:6cjF#څO}9Lm]#ocRer5HLn 2cOeJdSrl 탮Ҩa? n2݅Be4_ +d?ad]2<x rU?ETXruմwA~Mv,\}@|^\I9r}}i N*Jа>zGTV`U??}-~ɞ&׏00F}`+џk唐*9!bg*hNDKHʸY&3?MؓX Oz{v$E|28_|\c'}ob\{:7L-ՆYj:#LZNng1jusɼ YѤi'6bAc|&P&c.C;UUk &ʕ@|Sޓ+sC8[ +Bx3~n Ј&W4m7^賛bi=,IE!ہ5OT=iOHH:|"C?_^�۵11Wj˚*aaFC,w׿ֿ]Eʏ8Imƌtn4㽿FT<y~[6klJӚAzn71G&/!K5[c�+ficmFfK^qn3HrMυ1TyGW,u?Іý&XP EU(%!2xm'N{N4gQeXh& w=; ҇Mx1zn &`m逪_q'%QD~Ta^Mh#5혍o-  @"428YO܀I=s&Z$CbzP OP.M A 8 C'4,A.Tל1@Y ,zn%29ȱl#9O1NX;CoK0˯ }[D@&Fo۲ .(ͼpF e|O@]Fth~>Pv7f}U|JPY@3@#S*bs7/{3#S%=AweuRLJAk>K1ћAn*k4@m61RIs4s|M(#KLm:SV "(Su'Pd<ȑ//@i pJ> J|PieEŻj\/NyeZ(χES�ݺC'*-n^{zc >@Q[+ 8ՈeHB^W8x]~4YnSvCtZe5Hq9(*dл]31nۮb溶g+R OZOiQ4WFfBEէ [ƽU)lDF^xb.ėne )҃PbW*Nt:Og7lp8 s&&ֻ˴]CXi$i7 1|S]1 mR*; błѠYҺ d Sy{:#E7c91y?6gjҗVn}w%ۘ_ȉ'yڥAz#(}l/7 쫐Bym=APnɭJ~7ї7m@w P̺#h9/3ɜ)6h1eM)Zq5h9a Jꋩ-*a^1,xU~<>2܁%c=(>J|Fғ Av0A |tx u)iw:/#OzKwВ9E J~ҍ9!ְr9ޟF@Fg_mWcjZSqdֿZ{#N#|v-lJIgRнNeB#1Z P{%n3f~6{) =o &l{3=y.(پ{mdvW?E3 8M<8ew %OE753h}@}%hve)K]g<iA 1t~3UG g>t\jzG̾wbn96�o$cfCIP]sT=<wamh;KГ5M,;̭sGgu;mB잋pUm=@}b50 WxPyA ~.r?;aFul:<g߉<rrfd5d6t^i#ml0wO*#wCN ؇G\ҧ4P(<dZm;2sŰ|y9tb#yCеr/ĜoP 5e/ byڒr~T5%YYaZ=�t�i%|V'K;"C.0G=Lsx_S~z~IƂSy.Ɵ)9ʘ(Qn~6);I1% YŶSI8fqCƮ2(u_2{G0E|N_vUӊ~Ϯ3 nEPMjoR Pʋ40,nH.zm!=<[ b4~Z1<ק2TOa<:iTRtbm S|(/Ւx)J.QTh<E�}p%/p ʁ<7P=F2XJcͩE4F3qyw+[QVMP6;%A-kxw~ '@ĩi62Xs3~'1<f䌃� QLdṂ^fP96N 7o'8$e= /b0Yx^|(R$g:U0v3} $k41~lbA~EFhZ7<8o"tqHC{nc6GM(otm+ s(|ZCb@s*m9ElP'Vk\<[ړ|1޵)d}:]wGo;2oPC,b,l}Un_CϹNItL\.BMQ9̻ihhjd]y@~ӹqɮn11ar*;'6bPMc,*}#&zA޺!Nū֜Z0EH(4@syڿ{QJ2#@VRT } n TA7ޠi!Z:V#6C?(<]&Ob-Mt|ΏJ˴Fy'v/rT|kmJ뷂 +^d�Rs\ Ă{bv7y3gv λxҵb_jU/m_cŜEU>'\&0!yɲWmbW$]Mg'"?kA>x=D~TJ8 �u?ҿhTWQ·7IFtbZr_pQE-ȜDStNSVV\j12kyE'=O`azE:Op~􋯖1ܤ|y-Tm^mdVw44Ս2 ^W)͸Jɝ\&koB[9V^/Ф`"&MP>ntg @On~Y~�qQP.rVHȗ/\8 )|*3mޣŖWm x8 bC"%a*=o.;<'r(a!f&+uvŜe3VP4hIṊKwMcIq.fz5@ʸdy}Sw䈲kxU7m{ 5m#_6vʠWO [zy"qLJJ]zdI<*{_X/LAxN>8U (BM]Fޅ|ޡ [Nf r|Z,wo"{>ϭ#2ɋL9ybKL{S_% S+Ư!])2Ӧ�4~DvmC5Bj~_Fe{D4~:{t~B%nmB^r~󺜒 (_&"t cn}%؆@WlۀZ@'NTz v_KT#bQ8%u5ʁsDŽ("Кt�~XihzvkgxJ 3nZoc(&w1+vY}Wӏ|O\w s;(11=9ȋ3sdUh$\)4#e<8|VQb~UiP}DQ2ЭW<mMQUʤ2}]CՌAf8w 4aO>-)ம6b9=9hlԴPIt*)‚䟟,hޢWa~z fK`ÕRITkvb]DNVicN~[j`+2#ڰC#tN}^/QM <ݠ[\Ns:d';D.]Iǔ9?w -vGEZjG(e IUOl} Ҝk /$< 7i�ȦEZt/u*t4#Ƀ]cg0T}=c/И-TwMz쮽HAO|]z>|'zjL U+Hh#%rIP"8#njT7V2VN4kyuy4O0t**GJ꺨un3 :YUPz7ץ#ADm4s@d I {?~$4y )DTx*?ZZ_Q?kޮ~`"�OO TU Ph BqN Qr<wiOyca844IKHA{"EY*"+T e%3{{o|9CsuOl|.[EI&$X:tC}#+~w h$IwôNwaqK&.`bתϞv(u,4Qw ;lYL}Sd+V\sln~o>=Qk vDt})~ǸAUʚ܊'yێf^z0Tj?xwd$ׅ`C8}5`xzrJHYͥ m[d_֪rt/!Uȿb90ϊǿ>t9T1j&0#t#r0@w&&VqܴG '$?M ~>*'7b{BK]#Oj_ bυBQwwt~RNs56ߪ9+ ZkTJ0\-υq5a$3'nOF$|$y~TI&ThߟW;<kh0Jn_|%1y[nS[b&׎uu}Q:ȪG_-T0uz%`޺c]jB@X.m:/}�U5n*rG!E췮hT ,}lD-_P_qG ,:[(\:1e~O8Z7:uw|9c=5MjlJpgm$[ z_[oD8“1-Rs1ς1+ko3vN~ǘ}v@ 8@ Ju~ψs& PuX6*G&"==63 v"p;  +\F]۳qh޶^(A^C~E uЮW&Ε 7}7O9!6E*tmen:6_D Ze;DUر-5܃/*(\]Ӝ_31ք'ȿ]uG& }-D[ ~: _MPB6AbM^xgZ#Pgb9m'2lz6g^`,M^ZǡhRiP[N:71IDzcy0re3V[y|Bы2t'dH߲$<ོVP+^T!I;** ~+s?N@_{X1йDBVq^P;`8.L;^}(욌cni=`*),eB@os6^Ghe/z}1mw@G>_}UM=sf1vB@hΩ2UދwQ^ v'f{܍~L߫ra`GchQy0bﵘ(Lu0\l/6-@klF &_6Lo\{wjaQ�_ro: /EI9۶*/dhn82 ^+8 "W~ qЛenlԇGrӅ; eSY}DNASHw!y`&Ȭ϶!-Ʒ=?P~+mp_4-Fl\B9zhmHznA3+@7ṱ:@pO'Am:rGM0E]I~%G]d7Z"-} A^ӏ9Yȕ&'WQT2~iwQe}z`60t oFi0k;~w9}S;< }RG\S"Q M- +ְ|1ɇb,\Cڶh03M0nP.*kuߧ!׍(!7}%P(yO`~DqK06/9P*QYh&Pgw(rNʛuA&ܬmȏ%@6 $kG=&h=LMUVG>'͆"G.U9˱z&fu1LAY#% MW@ D&E/5NKUKmek)CWXPV=5ďQ)3Cè|̄!ɔ+h#'(P.gX>^h LQNȌ[j63z&@ 5 E_DȿnCxԦ蓯AU~!E3- /"8<yC^Bg(Ga9mHzspK_7a_4~k�2%dg 'as+ZR7D5c$~ ]ASN/7CO8:*Iy2dU3Z,|ޅ쐼%h{3 ]\33.+?H7ClybFm^XY=" R(L?>B6U,&NA3W]v}$&a/V9] e=̿h^Lsɧb%;Toǔy?6EbY>(tA} tM".[FOPũ ow۵: W8)v=qOMkP_̓Z+B\A%fQp)WOljPݟlB{Hyʲv,-_5e0̴|b ޽e\{i$ )l@:Tc|6»=@˅k:W":(}zöZV#tC04~D'߹xW�tuAΓp&wms2ޛmD9:wd¤H۸+:Ҹ?M@ѽ#?{P6/ZG[Q_<Γn9}@DWo4Ca9˕(P0R  8ͩ%dMt5EZ&_ K"}U*U)Vޛrb33ۏ -)k֓j}N3!Σ@#rA}r5W nf3*h|a __sꖂj03jdzU\Ztk==NW.uVɢЎd};иk7͆u@[Q|9,q%^n \MaT!zJQ! eQǴPHPL]O= jk- hul`eTaW)bҮ*/d43{[@FWKb}eܒ3|,+ŸLL%nI *ngCa攵/( :tt6*$zr{ôRt3z ]< KUW,;t_&Li f7}hb CM_XyRgYV[<57v~4x#.gE]bst6{?oqHҡ4E׎Ϗ?g:ܻ&:߮whڴy`.|sWh!eߢ~x0ސS|ʹLr#Tx1&#[dlQl[ AA(?}7T'HZgWfJjzl_ZxzT=Kf :@kDD4X(t[MIs)ŢB =C~y>.;C`gH J`٣nA{.ͼVm="61gx"2ʟr`ڕ"S9 #1h[WC8|`,h`dZ@{ caҿxxMFXL;-K;yO gd1|둛 `</<:Ri2Wn?"U[@ d'2G"7۠Nï&C.AZѪ4#J#NO|m, :Pt&j7ӾiJ ק_1f';Uӄt|]VFzKNъl{eFV-lQ!Ja)3ߜ:'v㵵 Pyz],M\<Fp ~N3ƹ|d�ea{02t PQ</8J<ۭ-B&DR4at9tH�-$ׯb+|ݧ܋onIP&*Fߦ|KpsJ]u)caFv[~t}.2I;7clvH"֪saAsrcqYGx= qL}ҟ!!--wR0fmÏv')ʜо8lԤdpؿ�!÷l{_}3|[:N SVu7 so VbCkcLm9s>Y62mA44oB'8sVkVoEjW HYS~X<4=>C*SS n:^rAYq{(LTf3Qj|Pw f�u4N|1Np+e2?&FONHZ7EIMߑ̋SLrՠD2I[ks#G,6*TB<HWWz}79 DqƎEf4j4";1: iiU. )VQ[F݉kZ(U-_ 5J-B_ևqg<Q]bD4ɹe=CF_$ٶԬw!jx@)ʼnvN[sV"لrA* /jr.&Z/\BV6ʈ}ϥ`s!Pz]@@}tKz9Ol�e/ǟZ+pq?_L=O-9!L|. WxF>�5 >kQS%s!s|y 9iݠ^e=tS+lQዻyJ&9tAOc\Ct&ƹg-7jwwJz\3E*T05ε'<{ג ǰ_#Uo̔*1#og'N] ۍ-ayy/)n )ܑEdzxoEvެyL$:KO5W$cq *»o,GSul5?d{v K!?0|zzy~$`,qnIA{(g0_|7*~ =Ӂ1A/2Ҝu0P;"F�C;ٞ#kAT.>j"<l5k rs�h=+9-jcP_ṣm*"}Rp*]:ql._\{ݫ{ć 5h\7J]ހїPTymn`2w�' 2R'=G&:{$\i~܌e0zhI8hJ4Gv{!]ΞGԔ++/h Qikv/B䕬C)[q[Vl|?uXTteV$>[|91s`g/ ݩlLNJge՗6^3еn7(ey>=k U{DT_FC忐UgzhZ> \|lOu AG9P|ͺ0ser lqoeFdz{RJPaK_3#Kc! ^do»%̅־DvS⍈yCOm[JDCw\6/UF͓ac#~9h<؂N ֏1;R7`ZoM cM.("7R{ ߞGL8-m.`QɔJAPZ]}4Oc4oE\?_FK*w$gfQ5F٭;cKV a,3.khsQ.q(ASdt R;ơр=Ϸ` Qn/ZyH|}hbITGc P8e=,7H`'h'h) 2RZ PxpfEVLYj])uHut4Z;"W8"he׶~(yyn8Z]-my- >UʹigPe=ܞX7{p ) AC>77ST:&l7r esm<A3op]HaXi=Bxή`4a!: 1H/xOlWHD|26iV91EywhSq͓O62GQ*ApQ0f`_K f1>ft8utv7YnM],ij#W6)Qǫ( _/ _}yǕ(9y(¢`==~oQy74!‘ 8qO+ m̞;|r2|̓kw2ȅ o94l$.DfL笡g>nA4HZ^*h_.XJ:M' [צS8_5WYkPE?qH<WO=fꁁμ-(8vq#^dyM-ڊkwl܍귤`jZc ݼR|5! c)}eOt^)p-8ƞq] t܁O}tà9c7`r7ҊZ1>~Q�Mt<$ k3\%r[y|  LR801Oks<NBjG@kYsPK+B}(j9Ў]yRp%Xj~=[<zI߬O[jMo ȿ C_뻄sXl6:Lܒ-8W}șk1"mm�fgQ>9w5 3 VDn@$ =A=5A~#jCP'$s6b/E,&"/Tm&@u4VP h#{8: ,Q&Z te@iT#pϰ9;u#?ByAUz-q-Ի"I)ؒ^ ltZh4#PC玉S1 Y)Lŋ/?? @˞v-65`;"t2L "#2PdÈק5A&:o&*Lsk]5L-SM.PzQ./B] +&(,ۚt4�5>ijF; D-?z #|,ՈAibv3_f[[YÁu) t~v0Lr&?.9^0BW%it>`Ǥ@f})/k]2+P%l?߶} ǘV -O"v @_JЏ?]>,y o>my0W9)M9쨯?3wխTJZoga|k?]@ 3�)RkkX51ʒ.G ¥bG] ~I2yKkA ]+!79-V [&@-*5yjY0۲kްf{ F`&-ϠYINtQ^y ybT隄*y)|CƲ q<ÞA @ߵ;50wWٙ觘T#J &s4nZm,d7~3ARbˑo]+_! u&/unVlړ;O<C`m5P/UŴ6MZv;|Ƨ/  J}h>c7 5jN#TT6>Ն鑲h(*9|Y'+B w.JPsucQ^t�M}k>m[Wʘ폋"GPf\[$3 W/1u,e-㔋Av>m?A;UGJNkH} f_AO0Q E>Z}<e|)rn|cž^g֬ٱ6B~Ѽ?ODHVMzD&"9`CZW(6DKKŖ ˣQIOV0CrӒleu__aiW91a vKf Ah=7*$/7?e₁y_~cgYq?r�~D僣 NaEˇnQif\F?F5[ѡ/_3/``2ѯW<&!=Tw}-C9I?t%/UEJi5VN568?:g%C;9{9VQ7ZÑ%LQY *5\ӧ;Q7#^h0@J^KY:�6FL~Tz t=g 2vg{יBn"tzп̡b0%>?ɍdV{\X#H<PlyEUO}6at\*W- ^^Ioe ̓`Sߑ3bx2uߑP6'!X ^Bn t1w`_IsmăAg)_,ۺ:Q?C߫}EfAӣJjϴJKΝ.>ˈyOJ^C1tT>vz~cb}6StݑPG4S\#<B<I->nMnVڸaE([yEyϷ!a!q甊<M%\7/vEծĈ2r^2~ nP?fy[U`d!mEcʤA'ZL&,\ &]3>kB'b BmfJO Y뮁fvuMVsʹnlV&no$ƁuY^2 *悬d Ei '",M@V~Ƃ KoDىA稯] :ヷ&L<<OͤKiVE<}l!R&&_}6!2~ 9Z#C~`(ڞéo<}.m9#LVWћCK@i:B[3_!a G#1}wzdUz,vu."w%T(YQRL5Ӽ\qk?Z8-|ަb𳁜^JL~s!ljaEi6ԜMi} *BYJVЏT%t `^0J##a m6 `ƾ/ȿ&|T*"<op; +Ѱ [`Dχ3q,0~scj i9 jk)=r̶ {*m~--x�~\%5|QtMP6GFS;>eLM+E, e^]y}F?6BPkt9&4W�\z?*VlaƑR ~O{ %8}Dd}o/ѤM#AD;77e!}|@߬=FSen;U~oC!{"gw^ʗbz3̪GOך 1ep(F .{^}w\$o7E".nEa(h2ѯyW~%#�#׮"zsi&:"fS9'/rb4PÍgQl*fsyYXcb3xqT׫sܡڥ^usHLt]=7NPʾ?.qWBْ{N^0v X l29܅ue $+i^5\Xoǂ"xW.w;yu~N0od~BN_1uÌWl{(ǻAND7Mݗi);s{Ï^7] 5`V_1S<+7]Q1Ԋu_pBƵ8;-ř=؊A`{00 B;21э|V[0oE&:ƬAsR9R9^�D / G@j;D/MY~�Jk^2FŎ5*%|j/ |pB9%TtMFTm?{w%Z+#aek09|u|(ys7O=LBϺ|g:Be<0gPsN΍Dڟ;nWR(+`usz&q0-^;l^'9qK#YU+#4Q0|B7Zѝ7V#{?M!R;U/ӲF筲%Pc\ G#H] FGW(^"Co$>=(oaAo@U"i]Grڷh'hZDSR 3-7W/~Ԟ/m]|w~<sdg]x`n~Y_Nɞ#Ixr}+#4joUDu$R ^61Øzj to&(jJ5= ִGdؽC[8?|uT:% ͟!yx*fcj@EWi@ơY2w<PKwSeBsN&5bAk&؉V٢ޜDJүvYG7וqwFPq}LlѮ-wܳi:Zj= &t ~R"Q~Q{3Fo`mmEi oAok|gODߗΛ^]X)]ַYalIGH>ct'Rw ސ062!cH>GGc;t#D*}^9-M=?- 樞$P򶱗@vAz˽^P|sN ΠkQh42y S-N03Fpکu}5?DLyy&J j%V20 A sᅖӿ -ļQ\APSqDnZkP!'Sc\u֌ ūOf?"˹AQRa ԓCnˆvܩ,0J':r#ҦPP--m_3Kv&qо3<8?BBE_/ X-'3'̳tve7+Z !{h6־T@=(]Yk;d�a0Twi1CɏcMhv4#_N|g l(<4<!F lQ.]MWjk24W>̇޷%ݘ?bB%eNU8~"Ϝ y2 R?2oAҽ`23dQ.45j=q» "A-7c,mQs0LR�h[mva$O>S{CnRع9}]{]6MofFA <n05 ofQ%<Odt"qY_LYmۏѸ% -(M R,=N>b*NjR2jM)>LxĀ\qT,11#m#Rr 釮:(0׆ 1ɦKxU-PT?ȱ/%Eh') =l.R;/^Mɿ^9GK89 *m׋7ji2<UFɒFH*7-)lE͐L)&C&J󛕡[>i%^滅CvD/UPNI ~>Fwv9yW0 ju֣PDS 6r!3!*uR-}@`L}/ŘXڌ3zr@jߺk):sڥ_$eAxIWGӠ nh9;s>yUf3uO{΋%unK1eo/PPE|wO^<Gm:1Y͖|6ns>-signCՃҽ]GfޏC~s՞bQ UZJy ?NVd%۫0vڮu#<QJ*My3lCB-b?NV*4'RBǎ8Cx`dQZ$;c~^#}s}-M]{5;{5@NWJ> <΍%ջ#;ߊ^շaݓ(5c/+ŬĔZd Y޶Cp@+܋m݁ f}R0C'q(q+CwAl Y m @si}8-/_תj>iui+S&Iտ ޔ.PzWCZ(_7%u”qEVj@wXܬz@4&*e]C/bv8bs*.GDo0b;٭)/<xVǗGB5ƝhrKjRSj-ud篎A,.m-F-jk]*RU3>g ˖Jb|gQŇXtIj5{T0)pkW)i'kP{_d>_)OrAšPWoQblեR uM"Wy/5(<x/-WTk"/\7^iA99ѻܫR>S_~k dssO-_<w~& </XuxfE• JJ{ӳw1YzZRc`-r`A#-o^_u wGʺY"Z[7|{O8 Ӎ( m)uo;2$ כ*?׆D*_)%Hkmifs[6t}E2O*Q2.5)tɳn)ØU=tue.̽#m6i{PPe{clE9̯Qrѷ(OQ;(S}9mǿWH D_>5I@手 ":3"z.>ܭyN\-]~7w ?W?Ԧ@(Vh7_JAD/ģF\yaG'Pw{ fPVy\܈OlcwM@U Ѱ<}l<}ǥ]:KK}7zj<E)^˪%Cjߥґ\\Ӡ}.1^ :Wm›ߦkY060=E ZxVPӊ*0 B-Ps_^A݆ѸPq9%BGw0f s]umFR~9Ŵ6Kj@ YUL\SkU ?m=)P2q9kցFwtR Ԯh._x;%L"J Z_zw9O_Adh1} ƶ^Ǘa(rYO@o>Eru!Wqһcu dcmL )hKۯkGgx, ɱ _�엏{I)R6` \MWx1Jտ8OJ1�W/lLHy,~>CgT% MMYPYxSdT&1.y h�Tݩ9oQiÌXmT 92Vo<EhOW׎&h_5Gbd8h):g0xtň8³LDMPnpCO^2b'+JOuL4j+Fך?g,A'A |H{<YVq mGYA?l%dngy�Ƥ:y ?f}O LMt9dg*~j5]+U~?l?X@IG⢘Z3zӤWIt傋%Gl.Xc+e$PJݬ<'6Ԝ(?ui'K QKAh]~&G2Gl'A{# e>q�S^b;L<VH^OCMmmVu[| }헂hwi=1J}k ;zJS c`} 2TabX ckXOEnޘ;D_WKhi7' !#OdI|+(ʘR{?"D&QmF>3tn ;>p=%B/n{أa}ȼ"}F$m"xF2_#K,yk8K5u\cx_-H^'{GhRHv$l(Kp]H?3D Qr=7[sAژúm]or dJ<-ֹ6@C k!ߋ+d9'F> y@au|{eAcb-bQ? BeF/t` T!}t\.Tdwu>G+J4tߘy:Iz7m[K@O{ԼcW<;:> DWZt{ه+g4:{IW'\u9fIJ6l?rQsf e;(o_{w?sb]1Q& ];l[UW K]>m/G LDPK{3Ke,c߂Zq&Pyg%DQs4/M/i1WÜ`0"/)�G9:WW'La80B%r*w!#װx=ȵ3<Aa7A-q^niҧu4fr#6&)ϴ K/§dAG*jU#!X�p*m&ޝ3/kcA'sm+o, EAz#qq5׮ôDž-;ORBpKGn|&g+#ڢzVZE Ӫr^nUBA~-ى Y5w\%R<(~C(O\}Bf?+mnE]ݔ{S00˥PP cw8Ajrk%dM 5M.DUh+];|o}k 0xPfnr~Gxk@]u',H6ځ$Lo#!r]ҺlDh*>G(=شl79-228"67kY!ϓ= ͠~YəJ3aQ*]h9Gyc} [DXn dOuHji7&jGAwPW|RO੐<2~[ r/cnd +zmܥ"a*;dxAB;{pEy%=xn8/B ^eG@`-<`׸vz<:;D>ϟhC?ȗܬpٔz~\0W-/Z9[z?reSAsx7 N-OoI P5?'UeRC�;e֯Git0EεobB[u?@YeKT^.>&1T_ q4JAw-g+hk*hmjL}<䈦�o>c`  tۓGzXb#r$ւ[1(]rb@wn6o~=.+G9 -YmW|'QE5Umѯi "E0xtH4B> ;KE)^[CNPU雜VPlnL|GE#~KrUgdwY3}ɼ4< FWd{y<mG^u6Ԁyc>T<;V-DΛwӀ̧vV a\Eco4m0Y- dҭ@{“�#W]lwj5M\:t|H[EƗ=o޻b kb.Hzw#h7~Zi!=g(Z#B)2O,FPyH!sew=|cXK@g.(?Tҍ= ߌ{<GFLy^bN/dyHi!6rw}_q@fPK)K JFB /B䤹ApȆowu~Ey~H;!036y`gwbTT1 v[ ~^305N"rЯ?Շ֫)g#r oW|8ԧw?F[WI9lYZl| ~z΃6I3r)+'rxAnD}5@xeEL=ϵ쁔Slq'/?F6GS fi2RG.ۂёt՚gڇw-OyNlBWi ̝ #0q`qDzy'LݒxLխWJ\@+T?7[DI23eٚsP–# s꒿l w-S g|Pkz/w#']D="\ػ @ }dg Z?UnKNjumH;~ehqwx#m #Z66C@K[NdϭD^c߈.lhNmYS7kT^5?$RDx?˹_{hK�jw7|:6Ag~n VOsG1/_V˧"Okj/VT/Ckz6%N^KG׌SZץ,gR(gY7EZ4㊬\#Ϸ#Pџl'7ʁ:)nQmR;sAmQύlc98\Sm%AAyn,RrF߬mϘw%=_ǯ(,\iRE-.iɮU>=qFn>|xRG-_A`0w4eJhЈ++4>ڙo u7up. n4ܸ*neN1X9T? 歮CS5LA={&By^ww^2_&j;f<.vF{˓#փݢ ex-s#Vi%0CAA:n`QBQi^n:D3Q6F?p,b7q(f1dYv丿zDr^Jbd`Jp (Zk!깒z)M0Z9.x=^ ~ʳ4򁹞% mA;0̎IzS=eP@sȊJѶk\^ޢYdӏb+BE:yUU 9 &nϾ}f"(<ԺC}ɹ'mnd}T_Ꙛ7:Ŏ%I+@ܒٔYv>A;gw'֡l%vXɺ_8c*Tof'+V-sՏkQqr.n{2SEh_SqP{+-@6b_:7^ Gdma݁iGEׇ-ç"8>SU}}Wr?!+`d!amvTo&r N`�R59ߢC.{e-G�%j%nG7jZ4nx<K0*>O5BQw@3r~Qjq3 s`.xƖ<(rQnL~ι먝+|s$56`Ƚ:Vutkk:gS^ЉSϮz$_ہ2#NBU!_{@0zw] J]FuVuliѻP?T%|C9(W =T[( :ҟ/wn5?@v٪~'+tƫxQ*siFxCܾ5dlCnJ=SݖA H涵 F " >�2(Jꨰ3 N "g *G*#JD=U+#}wxm> Wʠ)J5ϩ~DoNF'jV:I [+j1f?) xB3Za4UB::ڄKEՕG9d`CүAxb%8 }Cg}n 9mBMg~ D$"fp]z~,y^oͨ-+ y4ʻI(b NkgJڢ;#@-(L}1 zwAu]pF,gxGNJ!٥v[,A+ioA\ʧr 'ᡗX?l '\{0}a egWgUYeh<7YZY>~M/2jP%1"zUlj}}LCAQw:${m7_Aob~W0g?>FPnձii2)B5P̌k,1>-(mUe_AJ9Ҝ"FBTU#_Daq$_ghrJRP[rNJú{Do!B[T:j'XPiQ6Lp[`h.~I0<|'>TY,!*П {^s_V4y lY@:}Lѿv&-|ʼnIK_jul=SY/ؒ ڭDv@N~܌y^<Au=Z 7lDܫE$EX xnggh#S~!] torϺ@vcnY0/ŐnRMw4[Q!ʹN06oΣ1;jWDtRh KQach뽋mQNX6,H=wW"ESX5zO ~92k:=Ch<w^0wq%i:gЕ\pxo͘yӤ= ^J/AL軾iim8FH K٘%2` ԓ@՜uoqh{C8gxP 1+@OiI�׸SF?e΁eD0,~ve zKB}j4YdVmI(L@~[@fʅ)^'fL}fWsRӿyZ$?R6M|y[JQsLg8xY^4USgn,04<?v3F˃a;"+iw j{ҟHe |ś(_;8 V'@{#�KԥrkA0PEQۯFPq,Os8Rk co#E[Ѝc]/bKX3S雅%&3ziGN8vk?|xⳭH{W.-qjNj(6L5u7ʼncWW"վIW0nE|I&O[_^}a96}DoţN6|P mc#4JT쌴ϳ?\GC-엒RnpG=S<rIG@7ur8 JW;S[qB jQ,iMݫ3ݞӴ4Sh} #,a�c'^5SMF>"O&M#%~!Jv"Z'&;u#FҶcP_Fa'85' {]}xv$J6�Wj^Ges`8}W>=l{e ,w'&]8n0f@Y'_rfm{JP}ܬc#&eJb+=VM&wBʝ|1E!$cw?*ǿ+{aY fý(>\[pi~׽ۡXC*2VGVx1mz:J~Go$,_"6(ihUDHϯGcsŒ0n3NBݺR,E0|Jcs< ]'!?dGI[86"U`$-(p~6|4ZP`{KB>ѠrV0+/aG<,к~`t1Kg(qW3Gﱇ'Vq)f0˒,!Qb/,Jj%U1&grg w>$3TCک3bLdzH8R$íȪ?A`laE|z=JQkGs.*5βw9 Crw)S+^CQo]:9ا_hUۅ/./n![?ΖP=cubKH)tE vy`z3w_"O6ua1Ѕ]U狢f=ĽGyz~+2(t7x/3׺Sxz=SD58r5ucQhp`GZ>:~H'wgo cXM/-{@_c\-*|6R,DR;jޕLCgSzbQ1Vbn^IXgt#,{<I/5ile5xИCT>3(ڈ LE?E?>ܘk E/nx$6y xl? Ϟf fY@]A-7=nםe9騎S&h 6 U&|Vc#Qx8E{CKh,Xd L$ȕ2t{'݉ODcޠ@(Ggě`K_w9AGz@S滛%)2j|w�LbiL+wHedi4+/TFȮ" Uih9QԬәd9eyau#K`oQZ]#%qSGc;QV֫XBo*rU C WtLJ7 fNYיOeƭP]ތ,_ zg9d):7azOԿrMXM䗋?}2*?xDAgLgVL?9(]'UUauހ寄G8jFS;cZ8w >^Wo{s?L _MW@I`s0331ɭ**l3 }L퓻z Gi`:P-_fS͵NAXJDsn5#Im*:U4iEZnYtWZ>NPZUL9: ARLqDsH!Pznz /?dD!E, ` QCֺߍ"<`DJP l4f8}L67h5 z(%ZO: X uILH_=¼B׫9/l~M_Wg@c@cnSM/.*-աh 9ڂisiW%O]E]τގh1`(q_GbT16 TeޚGHJ|(ɫ1Lp>(⇄[{D>N^߄7a7g$X07$(_ގ*o! �tBY]QbVIvFub(?K"@ -,1kNQ6r~<-҄8I,0w[$xyg(nCI3`auCЪVdL^s^OK50_3.1BF(6(ԗ&[wA5 ߴ:r6 ]3 .^ J~G\#'tΙ߬(qVRͱa"6%7UZ+o?p##nȫZo εH7^v¨{ÀMެ9{; 1踖NEj{ϛxn^Tj;p�I6xh +ǯGp19tsH (j d%G a X'22_v1yϣJT$g 5gO^(/h׷ՙ{;6G 0;?i%h ySz1aj]s\`\I%zV#WdC|τeW-q۸ -=d֭X;w@P`/{G@uQSQM ݹg ?1% %ނw֪EF[d*Z0HJ+dE$V.Lɧdk$Awa=6{|.缍-\J{cTi1q/gvu{#Y50=H870ei}u%0_@iwT)-ZlUKX>gN\.M/.<1e%4Jk/OMެe%,R/MvAI0V\EmhXxLQ}7g'EuoSyqwLM0m^VE)A! ms+ڏvEVIwPoZMaUĪP46-~ 7Ξs9#rŭ mH[Ay7Ѫ`}^eJi-`E%/3Py$*4u Mbn1~J 5|K׀W30XCF%Ǚ_頿2z'xyULh5(} 4޽TGw߷j2湘uzB($ d'7(~"/)~{>(575mowdy*xɝI%Qsws<#ݻߠ(>j =vQ3s�c儐ykn=TZJz9Tm�ԣTKdG`(>yDoZތغ-kJO\C >P|B062Sh=~ewP!; S웙9 햹%ƬaGF*l FJ1qIT8@+)v td!B@Wss%f^n}?Z)2<%֣B2?V=͇v·@/:̏#A]̍kׯzb93妊naM! G(>?mHCEruT m2W-3 XV!+BIoz3x}G2ʯJJd7 +›rr1ɪ~Ŗ Et#'NUmk}k1 F2J~B Z;f:+e]~)ÄTߛxGMW/ g4obϗpPa9q8ڐsC@9A'(Z6e`|lyݶM ]=/%f0iGxLw{m-xjPcJΥu^o8;Y^ڹ@/a9/;xZemq& )"zҎ_fUU'bޚ€+6 <皗xb܎# S">1FފX11 C6֬7h/ƯqyګZ 8m0ZW \KR?o0OI2J >޿tG+ onڣ82])ذH0,nEc/9͚ʊށ3fZx�v -sw5ȉy]{F'&܋ ǻQƁm<vpózC]|(;w%&}oF)f{o>VInB`1C].CQrLyG/{ hჍlmlSA[ i|yӚrit|=v92t8^HrW`..BH.oUuUdݏlh\wcn% _%<$xN?$W-ygcԲzGTO# m_-N~7[@yG7kͪk28P}30rRF=N!Eɨn�c_ /~`D[D,3Sdk1-JM"+c 츃{G�ڟ/|B;:~IzEqPk!c5&ǴMFAt lnJ`t/Qugxu[u,M;Ne/tHq;w|)qTϩ HkCx;(^hh ,[.v,(bXe5H8ź yky IHI4H%TꟈQ຅/Iyۻy2`�$c T6U?2ҵ2k P?DisA)v6ڨh2*CWwD7kVQHG M2{#dHnx鲠*ru0>ekGgSRM`6BcGOoj,CMu镉{,ͻv jO|ȺX}1'+HjVnHtv0-Ơ=r]o,@{q+?-g "DT}ŧos`?BSF 5%+Z8]Sy<4vVTە&LP|}:W1qIj…ԥ@5iﴉ8_AIQKh ʠbǺ˨/ui07I^KbǶuaT?"_F*W܉@W1|Iޏܖ'cV["ͦ(_Jq[%SjMբ.]g{$׭Y{P[u%$|;wj"{Fqo0'j9[ {ޠDA>9܄3]_ijGK@x!Vv*#TKۂ ?mnJqhun %K[=@g`MZj]<</r#^QH ž/٨r<}DpƉ{k#r>yfrČ%m}*/$TcZвI} &f{bڑjwqmSkS^\}/>e2Ovݹw&mY.:[wԚ#2|(Ќ!zn8w`iNiyk aƹlewSW_ E:ۇbpKL죫'뒂+/w&P=k҅{Y>ȐޠWkS rY3-#T'{-.Kxj#4\0LD]>ZUsUoM%;?DՁ+޾V{oaGAzOK*?AK^-Ϟ!r9ue?9>ֱtr<s.(~-%h^|E:t#f=|"5#nFdo' NȪt{GR@^-CMyo*֡8xiaD'LO"P;u)GS4yf<91 wEAN?HQKrJC͗ؖ=q`?&zzhVDIE0^}/gqaslu"ggn,ۭc3bxU(DiIN+-:!)q_a'Z{#F.b#6LڭºL%-EhT>ֲS9M@n% 2xӆ<}c۪FnIG!׾/z9=YE5bn"h)]:Fܾ{1z\%YOP2GG]70y[(Lذ<>fUeA|snb OԓuYet϶)wh,*cf2z`y/T <CL*Fyq=j3@S*~e)a 7fˡ~cv3u =]ovZdSz> /<8 r3Gj.ڋҦ=NmFC\עhC> Q4}B컳+bz[k6ս=pgu9/*<:&`b 1կhI 4OrNS[0e5'z]:.ͻV hg4Ӕ@Ҕpt�]^32@e{Y~i҄G*k!uW"'XUxsPޱ+0EPP<:!q ,V"a+H:{O5rlbfFCUxhGiG"?FI~=ԉ>0^~k 0^[ d\F%#DW{U>-Rl0r)`ZHE{=w:Vm^R)y ݽtyjT7poc<1GtcvimQϗL?FrLOGѦ}&{D-<S +"*4P xt3 F~QKԍ/t?nGI߶(uScU%{1zV䗫 qLҮKoz$#ty*T{$Jb$\ ‹wOLmrTm)=yPe.Fk]_QCj/m#zꮝ-h:!۟ی?_^ )U*`lG n~e9v~fD>JxPRGAw?=FGOYL>8WݞhuIom1LmRM<>{EwbAr) Ybz Q%@}x�MϓX.:$o7(-ΓG^4 sW%7X!E?}h_9m\7@2"nBJ}Oz2tHS`U?c%`ruw%wʽDkiĆj"?dP^6=PtxQB>r!V Vgɤ/42ֱcOaB/Wg?ݯQU ɗ*bOz* &tK}jg#%%nuS"V!55ԳɾY>~7n H r]kad@lnM *O?i3xQn-$ꀑo'N#~nҡS0h,no%v1Cy # % o5 Fǁڣ̨Zc(=Sv ?!34,-/J~kCat/4ԼT+6$khc2#wCwwGlď3M/s=A.3f[f;Anyƀ`l4@x5gb;7˱]V'6T-d#,#ʏGcLMPbaa*仟>tmAɹeЊA9je 7!z{03ziL<)FŸht\ bbDy~tzj<jm")Gvu=͠ Ϭmo@rAtT>mk '&I@q{+Tĩ6RN}u럻Aylt1#aj׵A:mϵABփ[tEMit+x:Q*!;ݭז/a޲{ћ9A}+w ~Bz?5tP>^[MfyF>9tPw: |ysЛ^DKw&-7v} $lOKfRl(`XFs\u0H][ P#)*=Mu&<^-qBiYG(SMK,@x[Z@ Iq! Û]zvSWBϢ[6>V/2l}$\kiʚ Q.BwP_}=8deAѼ"G~j|$KzQgg HYؑMvچAs1% ;Tۢ!s0/yoRHJNccUNRs[91reu>Gӟ@g" ~4}xeHd_:w ]1" һoάPפa ,F4.z)Ix+\3?H%԰!#ns}IeV(˖}T�%=1Ld!]P^<sy%{b{~#i~(Lu65Q5[P){wmBkE}E0B^Xc]mL7Å^Mˑ `<Y̛@^�ߣQK^922-bWgמ|Z6<&Twk4[G-g*7D?Xىlu~Sd;0qc (N68s /d&1'8oEA3q xZuC,d(Wܦni{� �s1utoƇ@}Dd^5Y-S7@ W'䣅vm4[L >Wԥd3_AT})v䥠藳z"߾ a4H4qpê 1V;Ys>:UetMsR ~,RR@|-'.ai<ϧ>WfvmZ1 kŴaļ0t@3A[2< EWv~^@?A֫{r{|o5ˍ襨xtYw#IRH& J GA:|UZ|[«4&^ÊZYHL�#wC4C 3)`h|АFp#[S5hy:Iݹ8A9u/F.]ݮ$B骆p_T~0I=Ow ѐKxk)ژqQkèG~Lj 4Ô4�ڕ{wxzJhτ;J~ɬ3@ef`H s<Y'?\}qOOXS1yXa:8(6I_W!b`B,c,/䞹}٠U"Ee9 oM`K(v{@ԮC>KBoRiFxϟ=s.?y#={֡jXOy2&P7K3 0GQXN(*NhCSɼ PMei>x݅ ]qՊݢhgT FV+ @;7{:,SyH/mT,.+Қ*:-';mATQ)Y]QgO dۚAP>yho5woLoPV�fbNat r9U<6q`кJv=|K\č K4#xϹE=6 EO.Pt9R/Է }NPz%B+OV%0-|I(֋w Y8U}'( R ޾ʦx )5J_ެbT_pܳ7Z Uk(ZN0')׻L!b0 f~7ߘ2*FuPrZ&ʺNw2�jt[rhs! Hw0`b;= =p9C&GyaI*4)D$T%($#A*2*{=NgG!}9ysוsλLXVU6} +M|I6u4([KG{o텾{Me] ۬xh%zCC>9G| "L@}['î碾}sca*@mtsƞDŞv fHar`(Ol7@Iޟ&Z,}Q,߱5Fe5Y]xI e)=NקϾ I5q&n$ l 1.M|F?qF[1*֘ -D64g`Dʛ=lW/'b7_6v1n`Nj k[9E!׽(ױMHrFA 1Rdw7 b{qʙm|Ron~G-6mzYw(%15C=u "?_UZuS]ƌS^6LY厷ߌZ%E bٝ>y #ao}1 {NvZvW6 zl90blk P\t cs-yH볯> `jw{O"πC_w%ݨ\}AwO^j>Dh/|JbF!xL:|(*Hw8 Lh<~{ NYHN|+LjFzE-x?qm{=]&j5HC ֓NEa¤T E{Gb쵠x8V]dοɘcgE_O<&u&#S{|N0P&W0[5:.ӈ;,ԷK ?vkrE%~C-ț6;ܘXײľ+V:oWQ:vۋûvmR]T&(G*sonZ<H Q0y-W_0reW\0IiDsK ykSd=Iyat> *?LOz,[u+L0cҁ i,"F2.B$/gwĶ`4H#{TǏқU~α_OZa/}'^^ZNޯF\3Jx׿N,1v? Z#дSV0C׃Ja| h<.%%<1_m)Z&uzR]Ss@}O7T^:1 uzN�G1n O<"m=kQ63gVWA=.t 9l\ S[B,_Co}_ hߵ3jw@̥)?3~(~ZjQwLv$:j\h):Ss7J4:d1,XSӃQg =ߺQ t׶vWrKښ=#3F_z1g@N;˕)\b1V%b 6K.sbUON}P8ODzw;OjňrBk1# ^^aUߚovڷ}N9kFURQSVG7_ b2ӥQ>8̸񌍠B42j}_HG5&1 -gfw,I8onrkVqsF;#%rr](c9y*20])¡ [yjx0vZ@z[XVv݆hEC[QZ2F,ٖ;~ebxq4Muuߝ�G@rdxWAxB"?=IuPj+}>"ja[TRLݞDyͨ(&zX*i z^3!:iX9+ёݏВLС#`T|/ՓP\sNVyqcڂ̄7�wOOݺcՅ ݪ?Oл85oy^I'>`vcܚ (zfIj3ߣC\֜&xBcAjX:wVp}OLbԈoIzʳ#Of|4;)sgY2*[e";k#:O_ٰ9J݈@6g=26"mإ5X:F914�a媣/Q^[qi]DV#:"2ʷ8X&t.L7oh,sCN90^@sOro!|[~4;uO\LF`T+GhqHsz?*恶3- |>ܻ/>9h}_uܾp3UBH i;r&?""8'sqT鱂ɵh tþ&Q@RkK`9e݅ޱbm4| e~F9:?,z;;@ H_A p|q|wd}o6i.v>r(|!G;u+BaOrέzZP].x�y\brwId&t|ϼ'7a7R,73@Ņļdž 4L+MKtsC{ۿΣ2Wdl0..?By(={X2TRAR. Ewٷ+@R~1UwS]w=aed8erXؚx3|?Tmi5 7.{Ӳv5(4%}᝼VY+Ν4N􀺍h<$Z@&׿ s2ʼn޹è9\eZRxXƍne ];;50R`:w}Qӛ\L'HnA۩}ǜA[LA5O^E!41חK {v惹>U"g,yu?$Lm\iV eI.ǭ#4gs:.`(AI:[1H|Stb x.H1tt@%)YaQ6>(><e�$]4 +̚2>Pt%mhS7-u)J)ݐȴ~$OR>tUFTĠY%+7k@VXB#NiF#x8^yxh2y`.". rԨV+gm(ϻNc/>'p:_-Qj$Ϳcer k"(n3%6\L| [R~w!6YԝOq>*ꩣ @eE?.48f"˄ j{Z.7u}|ـ Rҟ H۸=z]9%oD1iCpхp6> }j?}x;S1^sjwb,z}%i :AO<h71?o'<ecY#ͩA5툹;;P&c7kFSѺz0b=ϡTjE.%aFn@rhή"6>*Q;pY>(^:ʆM^6 ;ܟGNLї7.aEUFP7M@}h&SYroc!˟ѭ%3?\@y]^l=jplE]evoOh8[G"tv):oA:oC|ZH 7c Uz5T|~UgwZe^jf}en+ԕ(c\6hO:tL \М k{<G7Ą%0^9l=>hnƱ O&-@瞮;8h%ouwV{~0!m{Gq.Iɾ9}8A\7/ΰ-nD<]>kv\>ѪKnHm]Q)~SW~ˁZ{ȱgf?<yۑȨ:yu#pbxlо:AyW{7gԨ<Bo$ȌOrKc\Fk&,vD^/@rT2~*IWDNM)P _7^-N`RMDV5AKQWw>4QsB/NoxWt"J1ȴNM^:2R3N6G[sE zJ>DR3{&j}ع NVПOY~MSn>Z$�?U@E r>AYj_Fk@pOu kįxC"Ohv%0(.W} ̫ٖvvFe0b $R~^3jn)щ�wDLE堄7 []>(af#HUj LOc?<Ie.]齉?nF̙mylΨ{V0 ',Bѽ9qXa4/Gb)&pMOc+w.I.PhoҫdCFwҤ$*5Enykz�}#^�TT#zj!#~q0 SxeP&ojT%QPv2>cPo燩S% wn0DVx8 [~qEH\Wt>/"0108ܽTaz,?B;?쉊`a!"@k-!7=b oPLBRqc`EK?oD-h=w[A:ܲ+BWH\ۉϘ՚MރuZ Ix )f(&O &VL//gŒ4ZLUdNcbZ8%U ݑټVr-k}/#Ы_8z A+bߓөdn7Uz.v ח[a$mxD{Gpঽ eߟ fh*w&g2$|7(̈́Q{'wgNlʵ%Uߜ JIˠ.&!'ՠO_^ (Wgɖ}RC`oLcs!"<�d=abTf& #xT|à PGe΍`ʴ(M-HJ=QEEiȯdg~Rf_5 [yK狾aSs珏Ɣ&KJ` Lk@yѽ z^<i`[ )fܺӯR_^+506+mluOvDSF%H*[0h߽k Nм 㵁>5 /mΏ`u dUɠ5Ө^!%>3Lzm'tɩPԂbU7vVym8O7;}6%x<#sJ6=xQCCm,YeUΫ~;;F~bϦ!rOZ@j Wp{.f!{Qho2n=Yb%(חkBPՋC+7v(*Li YHtVI|jWj fK+^$[A/ϟyA< O9DV) MUSӛM Ȓ71/@H<J9niS^|TtAJ5&C![TwAE 9 f:\k5>SgwvX 4J<d,%}ZOY+r&8tߝ(+QlN=9QG}O)~#Oj HE5&4BD˼$}h0^,NlHvj>L5Yn) j@˥[I֊<!ʳC)Ͳ6kMm>DߪC |bvx~SӳB)x1G 00蒩h-wZ;BnME?A5M̓;;>uh[. HRE4{owdZJGE4]PE H m(޸Ta trScc'{xd}54Ȯ au%~Wvh=Uo{֩NFVxC=BsඉQg6o}4뿗΋ր~TO$h(HgHFmѕQZ^\ CgF]_(oZ[g*@ufkƹG:/># C:#I7\ JHGCQ}Z{ Wu?oC=X}j4~ˮU9ܨ)zȖ4D9j]|>AңEzt#rVAQiD@ vCgfo4׀|R\[D?dn ˎsG0vJȉT U񌽽كGMU?;x/ ;a%wL"KS>?x~G?nb0b9+P* ҇PQh須~Ǜ g);a ؖkbA[u4GSAݣÇɻ?4yV9?t"w|w \׻\hUaHFŞ C@Q{3L,VCINrkAp\u6Ÿi^7:/*&Y ގiq\kt]7|,rJ+@:"�OoμvĨKI(X 0#ؗ\e-7[9ӰQ6;RʇO:k U9I oRN !A/(A6ڜ}FNo9NΜ ̼93f:ŕ+RzW PNP牵_.ӪWJ=l]v(&zk0vqA~rVeL?EN y4|Yջ|DzI)i"^,,@RۆO(w://A;uZQ'!eg{LWg$-]f8a̩"Qtd6GyL\s { ] {UDlF8)]G )>!ijEx-e|I9T_(YP)hO<h_=|6w/HK3oy<Dłc>:czW*>/[cE7OpaZ!r>9+#t7|}/Qm#�4=rL>x鱔s,6@axԉ7v1n վHMs a+|o1:{l4sXJ͍DCELegI@q6VdoK ^w{ׯmj},C_vK?~Z!Y5(wQ}wELGܿa][s>#W+<ƈ--wLsQ1}Ȕ~ȷxg|<CXoǁT{|P{XszV$5WТ>֡ 4Ad5FYg7ȊZG#J=<Zz b__!7y+ FgQ.a"7Tz,$"빹PM>?JH݄v{RƄ] ޺18'Fg*ҝ1)F{ګ6bgt@lz0")יf`-7(ckC5 MOPUHـ*cRa׎<y 􏻜^tq|P'»uyt֫Zބ<v>PIk ä偮wʸt kwWyHеqIGvq9<4aAgܕ5ܹA[{DEo͠(<;8ep?/e?!b0wHoP(Ug*@q{v<wVYؖAkEWXT>L s 7ރaR=(~h^ߣ\"-a=!Tp $y  W6XW61K$*4Wiwܘ/س><_B])dICUߙѷ#ZoN+鉂Nj毣;[8(94]f@o޶ P{+O)w?Ylo ci>0.Y j'}A߻V7ΠA#/S4>Oi1{{; |~c`7?5? 定8wL[$6u #ݴ^EL7Qyc**=rC)=3(}q>Wm5(im)+~e̎ `^[>- zʢS`8ltG]Q*Q;KwjD+nH�)g{Ѫ;Fa[4ի3L˝[j<�ZP$f8Csg.WZ7sӜgDiޒ8D607:9[,1zHgh9&u(^y$2I9SAm.s:+?P9+cu~/&QaRQ+L|2@iV< ieD?>Z~ #Bj>(aFV*LaU(SMLpH0{2-WHH]DҌbۙ*m1L˱ꆟ1td@f7"~"/UvVG|`h׭xA;42+[g1hc6M> lЛ(!۪>R@.i({|_'?p[+[{RuFpݑ!?@pILZoHdtԯr+)yIsi𾀉eYO6bt7ҠvDH5q ك7vH;̠z*и>G6&6V\.uoQOA1CG/y` tغ1a`34.!%G䕽^amm4v;C_)?OIWJ=@Jp4h/Z{.eǼQm  ?ߛ #y#+_@](WmyB[=>Pż�\,W-gWxtǗ1e&7rR g2g;"H?m~l>Vxms$9>:Ǖ67諽k&X`q@,AWG&Э~OI"]{*]cU Q8\]3YG\-_)j+%ڠe漫,4L_rr XNҶŢ1x!щ"nܧP+qFKs$nLAt ooz$6P7\]I6d R{V /Gq.װUH?4J$1i÷i P_g:Nq<Q!y u&.Evi *4 cZ0.$* o OF7:u S_nymu(h |ybT̼RwŌ6HU.c$ԅ?=`o sKh<QN齱{ػF1VxT۳[vv^"<qcFtcEd=;ي*s"O\8S 3#&:FVLlsmVD\$Y}<_Z:/Aɾ]YMnQNݫ.# Sx~hi'�Bz2w0E(xg00 kMFPnoCR՟81~m ۡMU/@U {$vM,-_مNھC78AQ=:~XuNJonGMmhz+L”*,}?wAx׽wzm}7|圀S4[F?eҷSa@*8IJ,-U#n 8~</wECv?H~Mg|sEN23߾]�sHP)q ^.:(>Aq<`XXzc@[.PjwBgIFx6>94j<Cxm>kG\'rz< Z#k>!kſ:ڵj'qr'<>_E4u{@iϳ1hqG4㜵w!8Qc/|ku}կPsb{Y.xG[Ho֭U/ٝOZ]&66VO"]n*$yt([^1ZwEs%@YcƤB5I>-`*2i˃lG/^NxNJi~Ofho]#F&y$<0,D3 K*_s^\T7Wjmm711. ~N3pupf\Glk/ 02Ο(LoҥxZu^Z׺eXdF3lht텨_(DGTHqJ刷l;w-V|qͰSJ6BJes }D곏Q^D=zr/b}e?0w0 Sّ.8Wbp2yWurxJ4U4B/uW6f'}\[QWڴ�uevtd6WDӱ/FցmNx@ HJȹ)>�sbN;V:]yTj4r#ƭT كew^v "U܊&/_Ȩ^(&b"|D<%f 0f۰ozM\4!==|y7 mԺ*u: &/QnaL< TZoEV0Nwu Ǫ,Uh ;9瀚nνS} H߱@Uȓ&<v]\w<'QRq/6=Aޓ'y}~r�)!3]BQ9u4h8F~.N [WvD/+㇒M4mLh:L7SR)bC;G%<`qIO19bmՠ-z?'Z|$rkFV.)YakCP+وːƋJߏQ{-@eoPҒIwRA13D׈[EflgBQ9wW}䏇 Hc8Į<qW(7%>g )0KHg hY.DŽq="b ٟ1j1R==*rVZAfOOb]3K+A\hn^;k}0YPEP)GC6y* y}/Vu7@ ?[o81M*Me>$!ek4Zln?EC8+z yQU< v#H>с vݽyfHLۦHCr"s̓%t$ S\m}D~*zt T'dV69eYݷF즜 W|]h|ض d;So:Pa3 d F7r9fxf0zb;Z>ն Ҟ-klCN̕ #0Om\Epג�(!+*cU2:v~aiU~)c&w6}{a>rAM>_k YÑvf/IaRv<W LZ֤{Vwc x"DHX;߯]hM $?DA\ªdZ:[`]i/3}U2P}('s,C~Wa<r`7pU&t] ?y?vʱylI&h�5rۇ諟^ofkzx>ڞGjy0!Lk(҃ fYEAZ_<hT;êt@� kYFg)A[rF@l6TY Ȣt54=?* YFa{3{i5YZ}ٙEx^EULuD"/HcR_9qԉ.ly ,ʒ;;]~YMu(8pw$`|턲Oob -vvg�HiPXcZ,?^!Å _xO:%K6h7 ~=J[Zzs ߇~*Mn?(<YZP ambe[@f|K$c|g\Tib9_nsD5Xwwǭ#AqR*Ժ cro:T)Hw\Z * |kj$H$yIA`L 5il뾠5$hfC HFWt$%kNr ׷: kzXD^m"*7{:3s ǓE@ٮSP0f[E0%3!x> \ׯBZ3րs% Kh2"Ԝ 5e_:̊]n5mX&Vq?c & FX^k0Jw*EzuF4jwn6#zVMKN趖^�ڧm�ZV&F 芃]CӘTi{N3Ŝw%+OP]/ ^AޫU ;6! d[TD\ (n(Zt|HT;.s{5We�C?Tu-4AMqۨ$_R}86H>gu kcO׾]3i|LrOu{JgAmXb7$t~}g&-Ԝę+q[QYE_vo؍ ~X/n`kո'ڢ$˴qϱ$9[Aw-<qC%(>ʬ؎ۚMϣxۀZ]tNNSw5́GKzkT�뽗Rv,[<s~b~ck:/=2HV|cm[)0"`M:9zլNFש#35EC:P[JF[ g%(y H؁|K]Ȼ F#N,CkE>99ߊ-M:er"1Cwt/vۂ*oP 7cdw0`P%"-k|@y%b4ZߜRsih%ytsS r)dz/DoVJfh=cSW$/j|3�Ø{FTs֊9)&\XCln 2ݯ56x7O@ܘ2/9>ÚT;e&ͼZ:b5)r*F2{k$YS7t`=2b8֋0}%LTܮvpj0o*Yیp`H=X$yH~ػ90ɮ_̵S?Һj ̰߾y;1?$%L\?麑f%243|yV#vw}>G$FP?L_F//L$siQn u_ڲ\KM_x=1.Z(Kc:o9&*{ZO7f;潿ѕSH_RJAQcN-#1-JI+ϱP69 9y>|Ig|PTƛ$u ^a9={-PUd.! Rqì‘}n&>.Ɔ?kX{YmiڷbZՇc}P}qt Ru+gǵC` =$r㪈J+ zkvBF}Htj 6dm9Br ,Jv�:gt FESR+Lؿad,U<SoڔmP)sI~;f-*F m#&c9ַD^9Xk^7cUFgJ=€2�?H;Rڄ'-LD?\R] ?rX ouNEP]޽dcb~EmiY�Y\1K^sC-vȂ1lq~֯Bˋo^Ak }uA*Akb�s4Rr8f=.>1(mk՝�NvM N{)hbt z؆iaEkэT~˦}`$>p�zh*70KaКF3Hw%VLkTK,.yqB3O/nx#NDv9%W #(W[D e "P)Ptqw>"઩¨}(0Z]a;;;q 6wt0q:<Tk DžQyTsA!B0}kPʶ[8f5Vƃ3`lQO5<ٲc\>5Z*=k< VcJҗwPȑ8Mئ"taMKd7޸(q_@1E%l4js}FnwP0(u"j-�eHоhOFPCƱ֍ ;[ DoO -ZW9lr�rdN]ZDM,`ܛSOPoHut ЏgufgHz Opڠtf(yF%>d[^׈FW ;I7coG~N}oc_B@\^[1.)YҰ^my_(84T{";F9~k _L1.GQϞTdauR1HJe)$+Qt"t[ !{'hBSrgy[1z[6:.0E g(lS}L硵(/)x3:OdYڅG+d"޺%Y]Y_En=V^eԸ]b3|WG5@t[NS,."*A [EeQ٘}PӴv)i↓":z:g2RYEm1?'Jk}ZA>q8oL Z1(+w&a'Wʛ^ܠhnۜzrW`?]D:JTLA"|\2{'Ȁu1 ?hwwqn`G4G5S1ͩ& h6ѝVtZO!#/U:怹3ҾaVo: ƳT&Wr*<oלGVX_׷qs߰nD3uz uQ4 `5UfA}L.Fл:j&e4#o${mЊ.`J޽rtL@>͒LI4K rD?J<#u?1J3zq;PmISen5[iX 1WH(OЕ{3EO@;n/Ewe22$dJpM y[88l.܏ǐj<"%orS!4 \PʫqȏbJKeB[w~n37@~bO]w1a%ƹW4?gw40<P~ܚ~78+@e=[ 3+F0:ɿ)pm*]`4y(]&]FQio+ޟ~ zU 8mDNY| m//ߥo}PΠW>E&]CJ"V^y["ꉾ:!Zilko `tGMXp$ a%h rvj*WݹO0]g5>+c4%(jj)?."oŁ$)d]۩h>Vd|�&6FPN0?-0e{ҲUnpAkF}v4?u<qh/2qFh3ov yd0x/dnAc3W~~}-76(8pOFT.B;󐗑[!]OEa o{ RNbjKhUKt}%|hP>F/9?,ф1;ԤZK_,k AɅeC_%<Ƭ+rJQpWUz^r뗁h|j5D_{B-h +wGRybnE.<+EGO vPHsg6==i*HTZX w0|!_<? "خ8>ua$Ǝ@1lk.{˯~)9o ԏl{fP'b"i?6�cP=y7v>b\]K5 䧑\x;̜Y~YۋKL[(J !x@Eqмr~R-@GIn?c/T~zVgX=zQ٥~LGR@ʶs>0^FЂAƨra =$(uQlݞ|m^‚;*SUN=\-^~qwL7ziċQtprr6h5n<׍*ޛ }(1SbDYGʎ/D*cЮ# 7A`YF'( 7ۻqIuY|� }F<9 jni/Ƙ# [}hw=^s%]vG0:5vRIX] l_yֳ3oAI8=sʄ=eA޲3eXz2|ȥE ;StrL-{?Gŷ1MRP{jkP^5=iDΠ*:x58\ Zӟ+uc:rQ%v)zevmG [(]R)yvA}I3j]ll8c?"eA1zd R[Uqq*^k@X)hIncɷK| #Kxl B<2mfzSӟUkA/gD1d~&na!-<`(X!=ꐾ ^=/ỊߕӘ0)%xq(~&q:~—\\v(뼿-c TۡK Oc < O?of[րS:% r Y&%ePaANCx̿9tim0 A(8r|)oL3,Ϟ'85,D/ggSiHGy+m[SL,w|1FWXwKY/B${?7zmbQh͊v78z'ߧ: 9鞡ޘٶ擻/Ҟr͆L纷oA~: ??sw|r\=\MUUg1=:gM,?=x}yw4@VdJm'jZlH`&,/NDـ^['1'D|b+JC ?j9wsm<j/䇨m?8pM nq|lc o(6z[KBe0z˚滐u>'sTl󳨑605.RPַ0aݭFz,ryV]r!&fh05}pB+CS7j9Aя7~!qb. D (scO ppV2*~! M]ota6ۊa;VrUwӏe뗰cc�>| fLϙ`<d11im&uiˇj$\/ ;% %Q7NW:Hmk+[ty%za]` k;Qއ0eݲ_p85˺;n=[A0,ۦujbnSѿuM\$a }_?S4PJ>o`Ave]2J_kQx* 5ɣ`į|+~r#]1 $r[ TvI h ~Ϋ؋ڠh{2v@Cc`*7&Oud4z>z[^1%wռQi9G< ݻ2A}jjQROaV]^P(=ƞ};- {0ڞ0ߍsqAG-QclI)B\vcpFnUhI Dw|TH/Yg({D)W5c|%|uRgs4A=M,ծn=&2վ_ ;K/ZgGZYe$Nxȿ5X9 CVz[%R~W6HL# cj.^^UtQ\govr@XJb 6ZʖݞPHjz;7km(U?G /^L!޷ht"΀.%t 'e ^moɧeU"CzAҫP$fE*зP.n6rrV 'H: n�%}ՒR &[4tAoc{|{'zwz-5V&պ^G\jq?Wn0&׷q|u^(X'\(XW+l&PQ>0W' Ti,ZheEwa/&<!Yq`;~2LZ#y&Tݴ2:A=b-g Bo.Q�VgBLUn@:w8 \)mH%'XP6ƪߌGCYM%+=,;'fY4Ci^uq/i, }n!)r2n ;ua [D1vmAcMd}/Q3UūE^۪߿s(߈Xf}n0uR^A ؏<}sUbb95.7AZ|'2K ڐAW(8͂?sWm%6 DafP (qTF_dX1.^2ӛoEuC=⟉/t^KWt%ddoVllbf�$349ޟB봓$M~n1A]o&J?FCoZ h⁶b'^8 W?iW[�9|T[{׫LczÕiTY-J<iWSd|Н ?C2 AY<N-L8u )ײva+Gw'6^Im)`~*p؁M@+pzߒ)Oqc('?'5#7TByَ@7O1*in3rSoj^<z ,.hKT;rjbeLf4&P?=mh</lEXwjg%,zrsМk/�]\o+gUBCna<1>n n71yAرOt@<V4Lٖ<f:0ew [E1}VHRby~j{7LΝC\C_ ӦF''4[ɛ@_i)NJeARs ^4 귾k.p Էk`n {`eTw:F{0ct8K5CzOw g@*v}~dYH=F}F?^"v~W.D/ك.҈%b^RQ,*NEׅLMqef#|cش>P^Q�ɈD2;<웕U"?XI[m& 9ȶg,iMLG~o~8>Lw/JlCkIBT-ݶzT3F(D d;pܖ](/)~rBA~c6'v}9 CN[}. ~KoM[So?G͋i該ٺS4H2(~ggƢ`}ܣtN*l붏!FWkLD&?c.CܱrE;5!#c~R,'y :$&0n;I}Z>EzzJʡObP*w [058vb_~<|ܕ(|r ]2w-`軈= إ`1x6ϳ' X_䎽d�%Og?&.k=O6 Cѫ e <)Jez-TĨ`|4R%:%@F^#C[t>(gs D&ru+rp?BrwPvW #%^׎wJQCSa® Kh=b8Th\B%s)4]36ֽ(0%8I)0LLNTr3šUԃ6Z\pޡ=]r(~*H aN(~}E%|U`iRx<ΨCM [5mimsR^{'w_ځYb0[JH[eF*!Ez_1O<ہ^^sRIIѝ]9o087Wx`|Z?̴l! kXV'Ũ㝠80߬9/w gDZ*>FMe]ӑ^9e/?f9=U߻EM.&Bl}6=FxH1KEڻop^*zU&)R* ]-zù.LWBUNVm"hW|_&΁=@}kpLx۷ltHSОadn&5RIA(7Ity,+?{!Q^ -_Eg鏮Ě7ZU󮘺!c-!/ٽ'(MliՐGKfȾV3>F~Ɯ;nCm Үu o{bzKi⽠,5Hƣ}f5}Oτ!Ggtd8܏G58WMa{RA|zaꞽ4zNݣ %!2HeJoIn܅0*QUq92>~&J.}@iGʶ"^D31\AV~Ho-7&H}'7v4A|E*ƯĩEvYoGQb| 2kxw!OmKk% |aUi)+ Vxw1*'ٮ}t�Scb77 +*aQݸ3:pzOtA>-~KUXWPëW8)6#˫7;E+c+7;y׾(ڽP9M=*Q&޵Kƾhr2CI-cz A;RT:U\HH1'uJdP1wgXh#e1Ʀ;:³Wc |3o[DEz9ݫ )U{\3P:U~3Z gGk9W_UvzKY,O IY4ھDqFߒ@ë0y! &ODx˹STUQG@ .Mۈ)vN<;K '[6 ]r,%xIԺNJ\a-+EWϗPu||uJOaG%-?bRomرKĹNjlQMT=<XN9ꅛaB pCe 6~AէQ#4/AadnFXĶ:%;!TӁwtmPFtEFZL*/`1v<-w>j>Y6R$C VmI?j>qN2̹qڡQeQ nޫw,V0jo˲yopoksnP-?SG.iIHGiI";Sd'jE֧2g/#]'1T1ڴ9&_CӚ[ amy5-n˞6t0Z`?()lh\Xa]F|/=A/?u~<$s'k%le<msZ1ZYp*#0ӳ5 ~v}$?U#6GYLϷCf߂jo} eĐCw8?޾ޑ/ٳcӤdK0^:'h35=xlݑshmH UévֻЙKʬo CѨL;ȥc6':de8;69oYL)gD:[%TLs.N;>]]S7g7 Ƃ!/s[ rdH%EcwWyI=qwwL?ƔNt_I+XjP^Sudh w"<f 5=ދ}D?b 0|y0oіFi.zg#jyJ">a9r 2>ʔND76@[ojeODh-'Q`_6( bpሶ;\ $Q]ܥ? +wRpzW Vfbobסr^P un14CCYI—^8{ ꫎Y b%Wsov@:"ǰm^ Gii'|GsԆ0.Y/$fAݕvC~%xmݏ2 W3k4bT}RgGQ=ᘤ;qdm`3S3Ǽ2`mҚ;ٞ~)=QN/Jɠ\~u[ցǯ&i7uNG.'?W_Fq5<~g q(r'ȳ(p9Ld+A;~gL;(K&ud#Y#ʯ;$j-\7W9psW WoG7rm֡ZV'vM3= LoM[g?mF!=\d~lx?DU}bd_pfZ5cj.*vu1~ѫ06cv-.{Lܱj4ŻV<J M5KGialEf2?lXLU/ s1GqeL6 Q3~ {E./9^耡fPï-e]6Jw[) #Lw m\ק bumݺٟș^㛠0F-cLq3[;.0EML>om/aT|uf-/5Q{tp h= dc'-i#ܧ=EUU1~z-~8Vc#}iD> YS*Qbk#R Uv qnfaZU=Pw~(Rw+Puf]Wv<pL]On/C[#) WnTEݨ6OtYuBe^%߉߄u;81ǹ_|w |ݶ_8y ("WM.d\(sỦqܢC%Oc2HR3BSQG^]G]o?+YC <,< 9~Ewpܧ~ \J;;Dzmŵɺ"iEC: V [9/3>Kv$�%'* S?FE~֞*#Z~TJRwp%2q {‹ Қ7R$Rxfn'n"In|2&zzSH9():Oj곇e`zgSN:^sc ?4r>6t"y漏 MsDVɁd~;2PW�o=`0>Mfy] O12,[#+ 7}t3vAJ U9۬:+v?[(C w"e0\ zH_蝔AiQi=0;U50{0车"C604lR^_\Lyj'Qg]vЖLHGRłd%MY 旡OVY I8T xC$BhFPy=Tg-ѹX籯*57Cke5Ws|P*$Wr0sw~fZX,oQZ˭bχȀeqEy޻|xVqM(y ê ?Că{P&MS{I+//5yLfP;|rkgnO4}jhlr݉h,M *%>QJύrx~1?Vձm\UkHT-R+6?(]}t}Us }7"y*%s1-ZK u| zc?=Uox'=ϷleIpdm}i>=<0|Ƀ :qF^EkC[0qvT zi6'nŢTѭwρyH,kctoĈpu0k}ʋ}aΞd+xԐ 0neR`&JE>SSEamO1i&94 7%*6F[yR yްΡL`vo{y扚vT&rFA "Ŏa@$ϳ2=ľ]߸76 sa=VU<)"a还\Sq"zj v^RBWoj=%ώ'wJ.,kJ(IA47\Gy:BF[�Vp #9o0g { 2D_UVm7wA9\s矉mcx2�/ӢIuZdVU8wC.#Dt3;n]-vøwۑN^3PʩǛ@/ߥ{`1{,vUldYFie]uRj�c<0߈y;`0PǢ|o}Jʬ(yVt GZ9˒ bA->;p SUZ;0zR*2vdܞz S&ۄ'P#D kT? ]1VŧՀ4]a<9vr*i3(FD{&U:AY LCLo3_JERYnzԕWBelZpXt|Q["-c.^ 5A,OJUn~7Am~|<ju]>`\)c9SD,Bm7O{7ak_2T7*Yvީ6˽?d'|J,GŽQ8Kn�d.7ؽ9^9JDǓ >rJƲttĠAc&In 1y}aa+#5<e>;w 3=zwhG Lڇ)K\Y&ns �fqöv`|3Q- |s,Xj#3Ki^B_od 5dzɀ~h'O熟n�L/a(&;Wi*|۔@a৊uq1hO%zu|'O޴P8q)#7,g&|1̓$" HFX"N`:,p|* F9+?_>Xc5{ФO# c)5@w1]p{T@AQMZA_1^0O=^ѭd1wkLj4]q5*s `x4~|If/eJu6eBi3n~]Bׯ3PX7 1\$k)<7@uM)[s!]1|ho+R(mSu8OMdpOP{RS+aT;RjRAœu7K0t\|c6|JxX!ro7! DGlRFEWh4Y;lFxfihCUq}H9 U) KAP?IM^>EF�—2dcdNWA{r8Ώz^7nZbq_W}h.ڮG=IC;!*s57VDۚ tAz:SFԯ |Q0#3 ql 4菇s~7B48[jyg+6\\y}Cr? $bkA;s.j\NLJRt)k CI~5%Un!xB+rC4+Y&1nEru4OeOol$F^ U|_2XV7V s |{mǽGNyh5!8ࠪO*z!)ԯ CAf:M~p^c?~n:d0n^!"ZzVeʠuweOt{`,P{l�?y$djZIۅN~w9|v"b_n^F T]o^:͉"lg2a2-.xAŴ9}`pnBSw \+ o!'S8,j{\ @nۆfP#cĽN,wSQMPe] WX~C*_D]MUWHO_U%!]Aq^x5!؏*99j7ox w.̪%c|80F/F@mq)hOu>t<p5 :)t'VJ/,ި,92v֝mzʑd!6/֒'8A˴ui6Ŕ~Q7?P9mU�z[u{W{~BeJGV- ?cۂUq`hr+y]Wj]rV`.{닑H}&V*v`LӦuV+~ާ[#MtgȍۤSŊr{Q0+ UxwN]BTur<�uq.<^R5}y^RD{MV <�=!L)3 .y)9JW?={3h+?yŮA}' 1u4b ŮnF>ċ>>e놊uJ?oIQƤ̔t쐤Ze:S>y:Vo*ʗ>[TDm"ن`J=N}O>WűzRʧI"1[|e1l1^]'K)q0E;Əq_mh1Ү|R08! yoQU{M!tP$(Jm<UL1u6iy6 Dn&7<"l>N }o鐑Yǣ vnϐ}ȁ/Jkz@lbX;p\ դU #afq)WltVىf2)'(aO\3$R͏<}#h=~*ч\['&0ҚAZW }H{&A8ihR<g9ߛe;Dɷڼ~ <X{Kj'Ъ軄G=쁞GuJTzv54jFE5'uй% -O:&shWoԇ |Wk$o3+F4k{LG>0iW֚ cH+RS( ]m?#6y_@r̦[{:I9].  ZznhuQ3`hQ # '$O.(B̓e Ywڋ/|K+7~Fk\@B@삮?s E߈=! ?!!(>on�CH߾9AP*/|:˒ ;BVTYBBhY<7S|n9<_rlдKב..{ &fχPLSrb-L{eVBhe ݠLƣ2idڻԬ΢N|m;U89cW:m "%֢ޛR!y:(F 7ģ u";'ȧT+^Eyeű3Fhw0g@}|\ ԃS[PxʡD;ٿ/$FNqGHh@ƹuwώɠz~). $L_ySyq SeoIF0N1]o]"`Dd_ʗ $:})lkvwQev[?U"͜ر}W:\qtRg3G#QLE9ZiBIH(BwS.[_kT 8=,NX& hQz u/dd}235#np5\_?8+"EWVQ7T_@q0L(m]p|HN 4aXߪ 9KsL-6sL*He*]vAdz,Doj mMTgiXDbVF p}wϖ7: Zr ($§zJ#|Hq7*؄a+JjިU9C{_yvA,%lF xuD_+~@::4zX!=\G0SKW٢Rp|: f'A))|`ХA>Pz6(;<HTHy]W<dA/;f5[ŏl`C mB׆ߨF́ʧ{[<o‹@psqLSvTtIa0 j|GEf%3G2&?/8"s[ K 61N!ɿw \ v1y2*4.؅~QvWT:ֽڢqܚN[kI/^V7D̻ٟ^}|B3-)dݚ<}#rB"{+^ȌB {bYTHuHA\F :P3<F[=oT05Ӻ2J7\@͝_- oi~t&^^|C%<sm/N/l͒'6|._wwYހ򩘧ݲkպq}(rb+K"ζ]&r3qP\:H76M%_7U3/iǔ�YH,(ā˨<[?<r8]b1dz<cwCPw]z(;\u25#8O/%3b5ҽQ3i_Q<1ܠd̝�=lϯ׭TSoR` n{ nlMH,k1 >ߩꝩƨDߺ*}jhZo&(:x*7K*HJE$RʈHDIH4ԗB{LR~zyܟz_0ץT\ _A~go Sc^P{>J?B<|=v ̀S(h?k3ww@9D8 =`{Rպ|PÅ: ̄иH++:Yq_&pypʬ4 Ivk+H'b;`3Ӏ qHqo풊)1<)PBæ⁍UAgfQ֡QȽ>z O4fazS /S^))YjL]/ 2gV c:Ohf"~[ `Pל>-nZ~2׺ OP7<5OǼHϝ\-o\UFԏ,71Ud{9O"%qL#)WV44 =HV܊G%{<tI>2=\>e$JnYL.oϭFWԬqP.|?5O<ZڬͿU�z|/^jܶ?h0Vpgr�(w Zش_`z2h+cJ=eI1[?FK#K7=(~}R ϏNe?DwZG~RP9>^vC >/{Wf?DIGy ,̃T)w=& "=G˺ dԵ[ O^ցsPѳ{Uepڨ /6Z'c~S%"o(9 ]EJ_ Κ17fL?)Gd>=ϝC֕W|P֬~! st=Ӎ! Y4%8k/"6].:?lvylޗ@k)Qg:qN4IKޟע~^?O[A\wPϮ۴jy"WRd[u Kz=V$) :6:*dEϣ-h;W%l_ 3)qy_VQRݕ"mw> ŢUkB ꨿ ni "z7ʃ~}m^6+,n):ifGZ i FrH?n22 sg:e.8fݰ)'3/C57s8$|{@E9}Ss=}1$2Og=*Fl`+|z~H J{44[)[z1sjcE'̶>k;.ʋ\myRbBf@?$#i2_Qq{7Ԗ̩`Fy<G~4`xDqc3HtU2:~>.o=njyHOAaX ;#TG;wA dz{+'%?l<S۾@ߗ-u@<(ク:{{chf* rdb y)]S6�*q?gꝻ)hs.qGOQWW}$yh`:ZwۆK@~YW뤁jvBUͰ]_ S{#yUwM.lu>{[[cn$6iKAr1Lݳ ]u)uEǀgKPr<f_8!a#&tX =LEFW9?ɶ*GoZKbA0-B4H2&Ğ~"C}M,ގ)p$C '0] hcm0QyLM<4uğc|Eyϩf蒮2^#xH[2>̓Lrht' Z{?i0f;${eмAWۏ'|ה8fRW#fsOY=D c�O|ӓiү^x5P]{XfM\M\ za`qWwJ# f+#'MKAEݣ�AL2?.bv/cz[ 8vaL':{࿌0m+"}9'dY];LR|epj;]==$Ոosv\(϶7ߥhdapE2e=z s;Y<@U]tnIʝ]ӎ3uQ-,^=_R)ֆFF4VYʓR=(*ִ>}W)\-Wp?L3׼Y;PkzɿŽ Pr130MEF6_8nEyɍ֡:ɏm PJqƬT*/ cSM~[hRZ]켄RΣs@?)ouUע>˰2ߒdAYl헾TSL=Tex1ZSWK8Lnҿ{Q֠T&l꟠�=!9y1z7*7aЂH[,jˌ+܃=Pݰg.]gu<0'5T9_}r[~xLg'=x7bÕArOPi#(_}囊F(( gzZ 3߃&̹dǠlҝ> zxmrz5„P}E!JI2Ds$_D#EÏE%H܈mM!\'@f߀;ZאdQ&u1 J <Ci2CǫW~ulN>n3oD𦨳k:y! ? FhSoG; Qԉn/~~y�5O7Fϱ#6%Cg@wMB躧iDc: h,`䇩DU95Jdl~q %z=`ߋ:s"3x\ f'o~8U>O H 羫P\Bˎ N?Y%<4P.@r[ډ(;qXt߫b+gw l]pCC'̹d=2 ӊd(@\GC iju%hס^췬(CٰYZoi&d#@v5ZFm$<k'؝3M;c /r[wv)YןlҞKg@$xO_oK1BBi0 /Iº2ekT^rd3db*: CnoQgַK:ٌLnڠ<Z(�G 7f&@9To]]j?n15=Sڸ1)Haa_AY?O;qCWa8A8kd{<[veaN*O"ңBg~@;N@_-2pαD9fh#VilAmQiI;쁼js=&r{lhY厔r<& 6e\Pb N;. ߟ#3 {/lJByGPd EzڵЏۙޏ><cGp͗6Rf䫶jzmuv%&4*lCķ^> ]RqIs7La}>]?r<=`Q.,6sE|.nG v ixk=~Z1ۓmO=ΡL7EоlIo-C$G0w$t}r3@Isؓҧ_4#}}=(z(~w&JlŐ׶ {7UMJk#m.c;n{ڌ}4tݛgc -Z:4zZл`%=tJ+笣[ Ƭ5Z5 1kywV[ 5})9R) :19"Jc Qs覵=\p}4vPPC>;GpxN&oxj W5|р @UH ,@t~3}XEĦI`Db' 1Kp hbVwj#3!ĴqV|y_)/y"]އpdo9q_]ܒG74fNږj/0i|6*MJ6tv5t]}2 ZM_9_te;|\}_<F)gVܘtn۬ xќk)1)?܏]o~9s}Nzk7@.<qJ(7n/\-ZF7<sKȫ<cva֘H> UVޒQcR{Yv[kB 75:jRK ]9YfwoEc/b?פr$Z#: nKB+n@R?4c.Tmn|wEd�-Kun ˽?f <<f1<hP 4w,̠I7UrY)C%/fCpR!G^كSCfg4Sپ^I>ZS6Gig.nY䇒J&j*ķrh[Дa0/E5bB:b&=}@s q/1=5ԝֿ>Gn~t䭭+Utr_߹:2P0`ow,ߣB-c 榚ucа1nm4 k7ILݞyPT_?2uV\UQ橗 _@4V#>ƒt4YzJxMt3Y0 =h5h;$^YD٫ݦnhb-ڋzqSA9f_9Ā9ɿ kwL(^$(dԠzӾh w9t3lFf <.ԆU<%Z!AM<*X&MN#RBv;,;/ `#TٮꇶPs y~oK61R}~m>+yG~gA?>\-9RsM>Gmmh% <|f@�U;.pIdNwsa{r.@4E-de@hD3;}aY{/uĎ]-m` jD9PP`)XL8VCƔ3oAb9&57Iyޙ:-?Qwe&H~ n%XW"51ΐt-}QP %xGQe1iǚ䃶je sO4-Pf@<vO}118�v~ lh\ +"泾WjǰVobqP H$zV)?ЕCp7ٽ(z} VқA0LOۛ&Ԝ<u|4F`T'?N,g }OӚ"H;WD+wZU˘(j/!-A^\T*;S�ZaeVTu>mlE/(T8ٽ#r7дe~Wkd/(p!gx5 CU ٱEhxDhS]?K Q)+!shܩZ64-tљ15#rXL늼ws9tޯ[FU˵Oؿ[ <)vW01nJ.bd 6c8yqpQ-1ޔ G L}4Gp$=2~<E9=^r9".Ʃwg4Ĺ4ސ2%w#?]>%yԒ -^qCu-s*AVӑnCaS>ƓQ(I gW56+]"H=_I= JpGGН!Hov{/j)Cʹha,w(#<χܳ zg{[mD/sr[M ^.${͢KA,ߋ(QUH{#1%zwh=t};,@hLHm'ώD@)^T0% T9nYPm!hANlcd<Al9~oS%]?UQ[yŻ={|6K=a�_~`ŞYz赻r[ | jQ)ss9ԕ2} 5G+M1N<3[7,5""}g{<Zϲ`蘘^jG.Py^`Ns-P;mW@KC1Ӏ ,~<OlK!kO6M߂Ks\2dƗfv~zvFDi72àPo k8MQo:FJkOb`J-,R#Q8&n ~YPUV%fj+@2I&vroY<.yu 0j%cjks}2#xĬhF[oG1q=~ s$s &wo]}~25#21Z#|x #3ug? -%0vۏmk^T )c1Q_Wq,Wע~v9k M +Aafz~G׀$_ݶwKBSlѻ!w`P\-1BEKodQS}a:mg0[akS%Ba氫zoumG[A ETqܺKg烏ԢdΞl՜oa-@C(y?e΀~xESɶUsqEQ(֏ %gbEP_F,׼=$6z-l'3@3?Vn b@O߫Q4[>[4Kuӧw*3ǒrads4߾7v枷72bz#HWV`)es}xMƊc6ROhj?P gysGU1gtXr %L ]7z^7ſ<^[`n.kM:yx\ ý6>TJȧȳiďI!T.KJ;s *EU3S0v[|%Z?Aq,ќEǵG?:QW;uWk^6nqv=&"[f֡_‘K;P,y  >\ <e9~Dm:uȣau3ÐVק \7~rG OƢfl MU]#~l+D.]sA5c8xE<JB$T 8E퐰 O}BUOiu L>�^[5%*=5w:(_T us W951*b5-+;/Tu %:KN#=X[4(gdw`~ogBqs3b 4͊IHv'c"G]K^?IFթ̔F W_ HBnvZW kta?TJއ1MaP\q jO7rc fߩiMOP£1CHw!Ʌ~H |,>+ ~XO 4@v 8XV_ʣl_> f6�cϾ\5تGo<P3q' wɡana>c;<Jnsÿ!j;>΅ɗDߞ6c ilzRo5V r1G>`,wmR(#ne20U0M;P#_^O$zvj.w"(s5HYw;nbP?뷸 cvlA ']It:BS0dv6z+dVU Nj({/wtG/MFFܢ[-{ز=Q巒vbhvb׋BuSQt'׋iAT3RCxA(צ`.+\S c{@R '(|*$ 1.{虴*b8._RdJ=<Vc7w gf"R]*4rZϲVF0{1mĂsScQn"0xb}y 7ƖO`%Nmk*G\Έ~8L q(s0s%53cD�C7{ N5 s ioY+P׭" t+F"Nb{Hpa,׷[@URs2 |ݦKYacCSqnw6sm#{Q^nr.RߖQ= qGKg܋c˿eM#ϛxϜ6S@ӂǷk/(j&\ =Ьa~ZtLE&6JOAM\_oɊYrxxKPs:\0?ԝ8jycxC\蚿 J!ep3ccT3&ڮ^QA7 S번'oeguK`<˰<7J5[@4낌moǼ܈1݌|፥gmA5<Aꛃ=~i]75ѴA݉[{+2/uq2b6L3֞XcA+ɝ�501_'BM!CIaѭ(:pTHv(qOQkJS@1ܪA4Q'%YgEC~h*['2eZI葝|ca\0r10[6q]WCOzh{&30~ ʲ\凫Wc!ܬ?mXŘjTAX$CMB`|AZw.",3e%7vOQGqUU'Y˻kv[%Boݠy"j OA^<竿']2Uڞ㇉꫻7]]Xfm{|ޙ%~Xl@yfbzuI<>Q*" xTHp3w'{>ۢP)uikA|t0=zhvhc7;pVX +z|6 %TqggѨ$1D $Vw_ Ŀˬgق6*"xk(JܹNQ7/L]b(Pa(zVv-w+E <.VJɝWhN jkbݨF۪E4~QU;y~٤1+)8vi1+ۥ05=zRۻUHs޶J+]W%ņoǡU?PN5ת(n{D*Wګ@ruO,a\%ȗ_=�z]hc4r_vc*Ρi2?4Ꮰd_^{"M^\GqAo l+>qNadDǝNYeqI<mG^ykz=(~ۿ(u!j$Y({v3Tn σ K&) <,(</KlwjEO=G%Yߥ51na�Rh &~~s ?QzF#ڶQ" #K8@B #8u=DYV 8$vھ9!ME_x&4~CZ@f ~# }f%ŊD\@׳*O02|S ' ^~cۧ"s*d (j'v6竷@y*h"_ꢔqI] !ONTl=?5* | R\cMѲ9*n&pv/FM@xW~/Pbj͏Rh Tꡝ^0ryZ{Ff|ʯPNLhe ȷrι ΈuuDac(*磙>meVQgLPVaE—eg;rګzM~Gt,%?_prKO?tx3Lۘ,u`05/F@*iRVsWK<߯-ԯ+R_|mz_3%Mh?DŽ^@^DGH+uY-OAһ~c\m6VDbUi"W9bP| Ndu?Q;2q1:-0=BF4X2<nBX/Hp<&Pj-yvU I[rȆU;M{Yh5輊(i8)i{> cJ3)h9fO`xy1R*?"|nFeeG~ʮp-bw9ѭsЯ{jO1&P,=7ԏ4hH)Oxyb/*^xnZ”aQ g<Z>{}T&7ϙCɡ36h癕RAgOoiWJhi^DH*FP^a샟ο:POє|yPeL(�o[kT1ЌĘjP0~k#⋫ ~O˔&D)KZL \�::<|=Ӡ(|)µe0~ʑ/C?V#>O<-tE=6gQEcJzݜA4NZ_8 +6:lx]{S;m#cP ȇVE(|7trM(t^pA5ҵZiYdJdm(*,/wc ٧ l/D{>5[ m"jLk e~=͵ݵ@чfAw#)&z9?~ޗ ٗMTL}Y~ykȽzE| @aڟٍ̪ZW>&0+uvʿq 2V&1,'SCs+⛇6r�e,ț꫉}ڽ\w5.BΘ^@ņ 0.+ieR ͢5G:t [r@IűkAlz }Y~vi/r"AN躸?ܝl3Q~=kC'Wqbe�ʌ̘390\)Z4+jLڬSˬ{ꎬdf&dJ(m8Ad%{X__J|}ȿCK P0ia0>6:!#iF^bG$)L_BlXz73޷{YwZ^OhZ%ļs'b0}{8^!8Txlw=T}L(O&;(^ BUo 64 ZEyy>-KAW%rz\ܬ{"/<GmM1Q2^@xVB~Do;iQB_qZ͉lHX*Ap]}C2.o?tc&lVg駜ah|K8%|�%uKA4}7|댧ȯW6; ֈ>*S,U.9+YQ,͵&=F =*s":ցҸ%)9v9�ӿ@ Y @AG*S /@XH*,R#/Aj~ܥR_/Q3?(4Y:wGBolP5qiovkc>-PX#/&"tL O3T Ck+7E:8$>"/|LnmQB?0w+^?߽.-A7ܷd'@9w\xLJM w9HfOTb4F0*:2Azwgs҂<fZϫb_>/"bJ{ a*qgh瑙_:AoȇPɕ*i<߾˴TS(Hs/1ۼ0 j̵@~pĿ0׭wԽQPೞ!>MGˠ{Tj'Ϡȧl;rWʐc** Yn=ܢr {)Yr~2Vx-qԇmfQzf9y#Wenf]7T' > $mݢʆ1%|&|9pOIByFwc n9TsE˭Q)'PzjG#tqI=Œs1wJchwM'WcPm%Ll ct:v߾Y+~nnCfkŭ#f z6u}^B#'͚@d=uL0}m[;o <^vO+3Ns9pT$H"{;a](6{$f1Ѳ})r,5毪m5qKby@J4@Zcudu1CP&7y,�#yɞ|θ8< 1o;݊4)O:qA߶rcYYrN<]AKkZ0L4$έ = @n;Eoj(x1D ?lH5Vм$N, *[&1;ɇ6w1v9{ \X0lv}a2PY> B렣$9#[7 <~i,$t{W. rߕa$|s>^wvA>O"Ac>u;i7f9Br$o3);![u#kVpf[)`gG߀l!ReB4J˭$&ѩCRBwZPVSvaY 3.AxK0w 9Z jV)GAcr!UO3fݣr/ef& T+塝n&2xXvq6v]^f*+y],|0X?)+}ۉ[^4Cr8iuDnrmr7FϺnoy} 4 75޻:f[Y07oWzx`&L,ID- }seVzsHgc2ԔI }?Ҹ ԃsA6N DRӴY<6w=&vyab-A'L�mowXa杻ɚ3f71rZ3fw'~(ݴAqԗv\@vh]>&.\P<mk q6^AnO_2#)Ӕ3̄7Uu^qJiA̛Uz߯DUi21?G7FvŤ8>'E$)*a۵ct y6bԞt/\:[yP\jĊ0f_$4C:w2ߎX�.u' ӽw$= PFȣ{-04Ͻ$R":`, 9 i1"jzк~d~S ebu]L]pQ8L@UmqƖw(ژy8vWGolqTȍʓRTٖFxFx0qy ДO/?qY {X@uiPq*2KT9=x2W�[!1b?jt˳pM <d9iخ%>CS_ֻPRkh@3zOfn*Y~^m#Wˠ\1˾9_L oDk o':Hbrfuu�RˏMcP꯬vԳ~WGfM  0^@tZ9<Sʎ&/J ~pنC~KTgzCLȆ:.:EqimuNQ nCS> %mu2@|݅BH <guP9J+[phNhs#D&T7hmxts<B?fLēɊ*LȇL^F}TF1¯n5k0Ł$S?VX?A/{.bS̮-7V/B3ᢓ&8)`춭F8ѧG^Ei۪?+a4dvxu= n!QT[^bmîF"dmC~Ok;46T΍{F�WR-): V.<ܫxy?Nճb`h^"ف§UMAo)>7k:1yc mʬ1c}O=jª_OZJtto/)n?st{ H+wMo#c:j Cpj' QL-Ar=ݺ˗ໄ7kߪ|tot݊$)\9oɒ+ZM#K;6\RfJm G"zTt2kILܶ!oel=xUzֻvcn/>XMGGm +K?\l= r h6g  `p7ȡ kN"mtfq&w5;'"$&_ۑIdVdHl)jq)7L;(Ϊ ?RK9ȊFfQBz Z:Cw�Y1*-\u$2 cN̥1ǫ~J,N^\=W WzNVU}]:!5/dWӝ0I0 Q?|0̎җ8_&V1bq9<mfh0eUX.i#HYȹZ5O HNC|2hͷp�xĨ>Qgߓ0S) cv-Ҩ[{ӏESb߼ o{b/qvj'}אTe�ڳ/AQU2v%햠WhK*Ac;cs+je1 f,V=Ot#I}q4T�U`ZvOsm+E ےGAZ=xd &Fva#64-J%n<h[L~ A:pX?<̀ 0L]K2:٪[%h #+o}@IywLi>xR.i "X^Y~,/êC,َ yϰ}.C5p/tB*i/(T*˹] .!gj}F#Pz%@?0d>^)):T8>V.FhVK*@|!=·{Nn*|Y̹mVқFJ}2ň!q۩zc:<w܁AFYAMMRQy9{ŚY!W=%V'ڧ|]a%+:ޤ%<Y)/cAxyrׅk,#S_dj ]Ȩ-eyޖb :J7<xĸxfbAMBcVPKfvs+JcZAޡKSy0^K2 w['ٚ7.,E#AOy sSk@=gQ,=b&ʶ&dn"vIO@"7f|]h{dsk@:p?5Kޘt o׳A+:tucۿW233+0tN<uMγ¸󼗐x5:ƒ+Z[ Mc_cFG*;2 iktPiݗUB6otŒwRP`NeL7`}71TopOL|0f(o#|ɰ2YUg178ч%H3hwfר7ݎ.aؠbHeΞD.=8!\}4Lm!in -VkG>0a׸ׄF즾>kE֌gPݔ#z^92FehZ䂿zw8nOEEIA1^X6k|wt[ENlY,jy0GH_{_nORA v_2yjZvnҔ>{.aOdܹXu`@㽿-̣绁#T\l;Y;5;^"s.�txƷJ)*6R_ C?H67T*U4?t>f-UefÍD3Pj~/ )Q&W &us!<'{M-rOg:Qo:sPT eYc&uϢ*hMF9釪H{^/D[adm_>HΣ1TZI7DX/Ƅt۫?"rҒ]4)?))"\dqٷA{)tĤ S.i*;Bx)s@ /v=5#j}Yf4u/4ǤEIKO$UU{֋0xN +(Lu7|,Ay)('C 7=RΓi[8mԚgKMGOҥ%uܛ%+6eǼhmWASuh߻^i:<D'dIT<|D;1w]Hq6#nmyc>r;OpE!o^T(.P̍Yw9;=y%{h.!;|y  5gP͸I ԍ#x`uiBLbdY.$E~># X`(Li@.ZNOju: ۙm- M"g) -iDWF9:v Y㡵AfI:E\Vt:,ɡ1z3.!E9o O;2Μ ѓoz<8Ji]<TE̵~ f.!Ym ;88:Ċ@'d}"O{?}H&9YӴxF]`&S~Է27αihMt&cgrk K͠Ư[<GUͽҌJBKz-OهTԸ<"WY6 ZN\D/pT1\Ap~ж.l!+ȱZu <E~:sNDbƉtQ.G4'O Cik<;%7I^]JiuHugz!OڗMނ0�yfybT4+”^:B]|NeQN@f;%x 4.ĻGtڨ¼ e*3ݧ1b2Wc`/(3jD;m*hu/A#1}BI^ZEA!?efx'0LkbPurɣj(5'̐({I?ys*f@!6Da]I,rO9̸"%D=_)<?\o,Q#󕭁*N*On6 *+dcĺ*i;"$$WO>CG?S9bK+k}'TĬNNa ڼDSL$CUe@]V[n>.F]xڡ/9Yߴb7`ۈܟj=/hŽ]f\%4ihᣙN8=1yq+j\sFըf78%bVd&ZD$U^} 9$' M.)`? sg$dYtJ+WjϳbϼP2 II4t�S&D1J' {oǴ\oƱbOsl^"c܊.|-`bvk&?|T[s.&o)X޻wuԡ T4 oA=U8Xׇm6Mm�miDLR[g@3V0>+-M@<(L B.)s3G*Kcf*xS{t>rxC ]M!:R_uhPDٓG>ŒMӋ9a6LvUR374;RD ^R|x5Ð^oԴRVAjߎ̰�+W6s lC}AnGO:JL2؆j/>kLR-S2FL>u:,`[X:rJveD~bV;FE@#kP/:>g1;~\އo e]oi*1<̵=ukdUH9&o1N)@"/ (5ƀPE+PtL d9"B m U}}h1u0 sy؄*vFj0!C%J֐Bs<2Cmƍ@ԛ%B0s<jzb3(i~-V9?ɦ#%'x'jeo8|}#a]ڟP d!f1CW@ymݨ֊^ޘKѾ.L제!V U݃R0חFozn(yBa};dr!3Ep}Ѕ:ԕZE.J\î[vo0mBLú݉Y(0$wM"MulP>GY-h]tR6+;ro\¤Z<6C*@½zT1J`z^<.ؖ翳/9> DrAMPQ,<׾ tZ_6o+؂fkt+߿7}BftAc9 hC]AuNQA21kvC~Ay~FP\ȋӟnH*ݒƎZhxwvL4e"{,P%<Z7(۽AS^eC =Up; 3dioY/#пVOW]jyum!/3}4sNG@f'S\-u~p}zI4Xf3d:~z5sEmpSK*ei]m5JP\Ǡ}0^^f?$6He :SyV`ݚR MOM[7Cfۡyi9ϣ{ k /70vGP"Hu(OœäwIg7޻bz1,ɊF(<3KY*uhWsW/.(#6f bZ4~12DjA]ɸ 7:;S 7喅5;Y{&DF7+ #>/*(z >%~rw |i}z` #~9\KCYpf똆|-G Z{ ZwwR:p /^ {D+'2DfODH$f=D%l3,'d^Ġ̏uhozc~h2]\hU3\)c_!(`FЙXF]/-LSM<@o97No'<2[ih {R1ҵr.8/sNn-w^,m9+02'5;ʺU2,LF[J+L%nZv@xf wwQvYG2C;d=0s;:"kԾ�|B({ն0:s:B4ʫT%]F35~^cyUQɱAI1qg:"0eY£B6 $\E0s>clvx4U'�6{?&*! t n_)AhPm" d=b%q!HV7J$싺1Gewrn[Lsc~;ѶK?S\jRO,#l@]6 Z;/&$<QC At[oLIǸ's۷a&]fPP(7R4D{ToZ̏1(?Cy1c'MQ{ho1s3FL+n^9fO/@-kC~U-=9 Qn J7 `*sogtn0˲r? 6%>eQT15:^1ԀF7`qn*{Нr߅ C3+=bv$ ݳ(E#8ܯb #w)/J]G^I*>.XEClo37앤6|I}C$~f ӸŏW(ل6j$⾻ } ) <V\%yrH6h{MHAs^7fhߴ-p/:fڳA<I _ZIݯnͣo;PEKz cGʤ'|%C/DWz#{22lMJA:<O BK&^=GIJ6hwh}c%W.^儲 rrv|ߤ#j-@MYX8y6ߏ^@ɝvr8<dmH>~=[/5,{!POްӀC1<LOD6T㻠m 剾LHko{=7#怹@^.Z,myIa |j{yd'df/*#;Dfb^ԭ (\#D%F_SDɇHyY<9b6q,nzdFTи>8/VFF@ShE}Az4IU΃"WMb|JH@=FͣTyГrgD1w VC/+7fuchF;}w I,m\'§ՠ7'*|/HhتT~57>{q}ue#٢٨vINMs~aa\τmZ@I܁rߋ5vGh$T>oV'E$5*t6ifq]^m]G"ޑdv"a^ZPy}={8X<aQ ds#P sUsZeFkh]}mb\uF݆;~bd=,OILح2er c<gm36yL<ceْZci61R8vd*Evיݠ㓌扇&ALZ0\;tMR`;/%J7j2Iv_}t6SDB?zPYGVmu&u<ĬlhKLJ-V5=NL'ss]\fcnU8Zxr \@_%=?__c|FP_*zL6Z@ૌP>ƭ~*/͹u#~oʐ4Iy?<F g%ZBRۈBle@A"�N:(⠐$/WzEd#j7-.,}›z-B)(J xַb<S|m&_7\7Hg*:ܵ}CMM"+?)陧cSΉ #P Uj S)$rCcCK:3nkZ*qVtM ՜#r=) x;Q%/jљa!)b* `j[%D_Usl <–zMTow9r-;vD͞rsUU &sGQŞyV[ PQM4d�!b(_kAm-҃q}ĒcCZۯ#dL j,g2 VĦG4OűA{t);ݾA3<j[ Kr\M+=Y�-f s΃" L7wLU*P9Z#3yq57ѫWtL8[X{4`>%ТelX-m0[n-u;p7LA8&۴?>kWtRק4 gnDɅOFP֢CDlsՎ@Yލꫛ&#~E7-w2Hߌp(a99u#w,15jތ8Ru[QC$PTcB֥V%y@c0yAі;_עzduvO%ȵ,[kԎ_i7Q|rƞǿ|M]0YX6]5ԻT TK^-8o|?k+)iFxftpoKU-GE.( !y[޳3궡 (_z2[sNS� )e}#=)|@=4yĖV/ iMf*rـNa$;iU{'fC{ -NbZ '>6cZ=JR:_[zYBɒ_`NoFG_9Ova܏g^qsV45"L;{%;w &].iYl1Ha;aHɶb. >;17dO|5o+\f{V2׭+ M{Eq;7$<oύYP1<g{,?f|ɚ:  oYDmm߉v76/!>e5qk8XbtT-zBڑuh5'T昲s$] 9T؟--yl(v5?1?*c?sh(>7,Zg^{EY3:]NT}п)l,{w5"1# ^<*BĠLh2x+fgyrbA!yQņ|'}8Y7ѧï>g&20^Gd]7MR_/^:$(Ǡ ۯ֑_2;T~*J.gS0|Zoi~\Cϻ h^Rd炦p?[z4=ѧ?_x4m, Z?gM'is1S/ɮ 7u@-I}O>3Ft&ti{bh)ևW|Q],M6s =cmi�]}w+է{A9Poz\^b?Oc9j+;%!\k.z)hCE PO$.cdJr7S)?ܛ"{=Aw|d|sAwm/ i}@{z.H}oAy||u6˴*|f�< mTlfjֽ:|"F ?zTțZ zD}aEhf%`fv~kCCx`znn"r0d8Ά갡 = -,ܑ Z^""536ڥ981Qq_5˂@,C tU9;BPs|v޿Ι=@ ?O˘𭘬뭌r'asTlV<%LK}\Qg1?Qf[?#Y}з;& 'o�?eW"oL$~|y_!SͅDV9H u3j6pnXUtRe9={s8a3I> 1u`*?Kt.b0+Pyb2|YwQ%0Ni۽fcNت᜴:5D.^&t4#- 'V+8SF~ ڦ 9jܒznl6SǦ#Տ3(P{~[ QQ"|;|Asj~Kq*s3HeAg tӲ Ft1A $h>&c_bTN?v؅E7 _4BΕoAO+QY`@j*P]a#Uk:9@TjhHmA M󯮍kvh]TEF"^9WguF.24~/m 2"enҸf$U>+&4t%@/oyzd0e|?UJ/=Qwܝ5/{_L't !PBCʻ:?�it6X$ {m(׋j+ǔRu_P%z"H6&~fm"9_[0[pF,R %Eؽ1>{TMR3<ji^eKQA(.rãŒf-+=}/c춊sDk؋`>LX@vbU' S-x~;.#bonD9%TԴMGؽF5}V|S!H~^<"K3#hޜYB'g_'84 TJ\'7<OD>kE3 V.`jˠE\BrfOaT,? �ܓ%Lg|I𹴒g2폻K5&b')ۄ/Iڂ.xa1 #\Km%0^qd]R´N혒xbp)R,'D ޙp[ͼ|nyyY[`tf[} @y1d7^G_U+<2B7un%x<kaS8Tv6C'Ri|U^GA' Jg=uPŚ#BEzݣe39?څL DsUzX)7;kz`7h;m_ǣ1{9]fK Y]Z$wxBM0,y}s0*+΢{c%b9r G#wP!^e}}$Eu`އhQzɝiZCimCU~\&T$ KrZFxUqoL#@(YӰ%FUp<w[l Ƽ6NY^Qy hAD<=a =vKy TFVcst׍Qإ:f?-J[zxXl0^G -].akS9g7~C# 7% c}|5AjOPfɐ+?:Pg8o{F^ nDb}LUAݸ'O+@ގ`_FDv?}krˁ%G1,?VǴ}֖/ /#ۦO1L:R䁮"gYS/?(aI^ީϼ}mL1Z?; nn%+p#219=^33Jzo5WdoQd$9AsCzm~_#Q5{bTX2ﴁL/e蠒}u@_KDGl2,l_@|ʏS3F'A\KOxH+<j]ۋ@`:-q^dPX*&ֹRl>rCz1pY;dz,eYwَ>,uO\z+}8T~[]Yw"6̴?G s'ؙ\"¶L̠vf˹Ƃ&Ja,ArJ+t|\_[z/eY1ko/m/We {_Qr{4J6l%N;ހ*7="(ǔsΰ1;Uhk:|#o jxr\E3 ܈h<BaбwN VNE"J^@~8ZZ`Fs ^U#eS OZf9PBC3(QWȾzѐk881ğ,]= C~P|SuדhUoKL %℟'Z&"QXUqCRSmm~uo3?3/rYO <# ЮsJB 4N1€i<o7-irP nA!JܾR="on{)o ?>5ۆHk @wgƧ.؃Y0?(Vk ӕ-`Rƒv-(aAv(F^K| 9l1�}#|OLh{i<rY^ڈ<].%c"/L]1B?~,eNPw$1-(q7 9]eҠ՞?|]:*5@cܛvCt^{* Y1A_Fؓy:~fif*l`_9dew0=ӑE5&n $ñ)_u3kcW5P -?LjSϷE<Mv=޷qU-_7}kWv,Pi;bZ }vQNMx3aJIg>_͸Lˠ/{803(RĢ7<v}[{SU^O.zo]V~zY# bFo{xdAV o*Al? ݺhtK2Po81 [qӦ*A"gJ"Ale;CF! %STcƈ3VaMmP˪" ygQ ?RYpetse3Rv~8IEj;?-@~(.'\FyGX3h ᷾:ӌ}ڞcq-k9jM:TV;[ժf#/A:="$@y},HMY[-A+h7ᆅv\fy8GL 0n!Y[Ĭw{%ѕ-D T2O+kyQKknNz<9aS헐wQMOUltEy閇d|gYŘO'1wr_>[dy0(GP@IeA$9޻k,C(i"G*l0LIa OӾjӖguصw_Ę 1PW/G<t@OސQJ Q&A4xù;?2~JJ*(oCw.H(?u@7NŽƻ%6 ]&wbb=E2nD?/u{o΢ScOM[3h|:k29ߞ"$GD>;4"$1j=V!6V(;#rs~+M?@=ޘyr!bRo'_DjM{F_cpC\y/O?@VO"^n/_5x bۍ//. ?]IwO/3 sw@ٱ|Ǝy@NJ(|j64`E"?gl<Y͝[} yQ[Qro8q~7FMNP kp<丿�sM.S䶏Xُ<k:sҸ68rPq,1_eT%nr1yu(+ӚvݙZ&'ƀ|G3py 1|AXb~"Jw'7>aeϪVNo8‚g5m$z!V)CLLKÍS b?cLWEd&LHw(q}A]@r>;vug@Zy;mĎ`'uRM9>n)f[eORW= wbwLݞWQOwH .A6ᚭS(gوogQ+~aqí201FR yjR q7NϋEw5WR@~{$ȷg he0Bw}W@x)1o1K WmhcۨN!mJ0mm*(IZ=qp=|k8<%+7ڣG솯(/v0:BxOԼC&Ks#[=0cKo]i'<ٱv*Jx4 l8PirԚKli *_)jBh1Zkn]'r\idq"^Į ~2σUEž;GMՏkZ!F"׫R,ӃhO禡%l ·$ږs ̜ۤT 55y\nemFŞōcȣ+=69~&Tbۄ\-h>wQWqkbxi=DVN&x+H6ƛ coA>z1QGbtSs/qc,>\R1]p * 4Fa5r rjEWu]PxCz-*V''d:3|OnE>f Z~h)5A+;%_CEDxX ]^[?Hx1xx\ dBٿ26[-9QۛZha/u ؅38xv)ѩFneMdI3+5c?˲3BD3PjlPsJO޻eH^^ZT$>t|"�ŏGB@1,T"ڇK͠H;wX{^ݧR3`,?{Wm�}q: ==Q/V銺ո? =lHЮ_@aۜ/0ޯIMC+ot89 UEtLHtcqͨO�W>;!p9Y�I& [-˼DjGS; lqj)nd)6וgV L7 w\F-_0̾|:(vAjc[q F3ў6 `G7M Gkf7,"m7*{ O"#|] 7E&)BP J\JQF>w0>)*hߍ` O`z_ʯi~ h״f?z& ,*bXOE!5qH AnShWNAi{hS8x =ï*U[T~舷Q/ڂ?r\ћY\b&8|wyq`4O]Tť(cĜwiڠm2U)ŀ1ty0raPJ>TE)r\SLKTZ^c,$FsK9Fƚ@9[;6*ӭuß2y7 v_@5yLSmn9&\C O&=mi_c.Q^%<<h_/95?Cqp휫αF'n_ЌƝ\_LqYi,QS#rGyaQ ")dHFRTdT%ْ{wgtU9y*WU-, U}Zi1ڛgK&9ڽrY<ҿ%'0x@Ϲej- jW]f~c#*.DS#OQAztqw9vϰ_/-ӋGŌ*4y2ȉ*G/s a/P_ʃfa.avdvv5^Dz�]ݥ@-eP԰w5.=R<[Ck}JlaAkIA ˫"klN/x&DG6-2O]v) GugzGeg ;< fiQs50̗& #笔x^2({g'Ms;kD,χ/~q|zIHXlfb7qgV^+f1Ǣ&0FYT a9ǂ$b?V{FR6/fVZds||LA?DjFzj_m xGG?fP[$e6-ìDӶ"` Jk4.kgŧ-Ƚ-}žaלc@8 $o? Lt! ƥ(;א8F_)~}LJARdhV.oʨ.m$Yꏄ{dU�ҧPDñ|cMa;ًͧɾFWN?/)G7GhS7P% @+7F7{6d֒b t.K</.Y A65w0PT (BBr;Wtd6 x_W ܦ=1yf3Ѿ0hS&5mIɽ lU}Qud1%a 7ak3ren[crq{\i7!+ȖDQgWwW~.?r5WhmנNxs/,?SnBOUC цcMsyxOûhm,.<B"݀k^x>XOVU@\yfm}6I[#.Ʊ?p:x _&.yJ#OafZ Bꞧ';f? -ߌ!yvh/˗F=SKkŷ'A}F-"탡yP{=ν4#'11]7&E<zNNq6 rQqS9iۙ>۬*N K@:r˄Gb=zkXϒ1|p6#Ӝ ed`Vo; T5czao 3Cx Lڴd'>/]R {lx T˻Γ]fsPq .7r (*,q`*.]l곽 җ�%TWcCKf[ȚSLR+=Si(eI:yޗz?eyY׆5ǁZiy |ލ)C^TReur\:Aٜ;}An )"{*S|o?q$ёdgco1uovm@UE({c' @rj4Lq fyeI-f#XfQ/qso[Pf4zicyG9mxJ_k|0c'Dͅq]@^.sL@/'dm)g{T6 `;я/0r] zu)}o69tYLPaąTWYd*WXiS-gl3yjષs/T:bx mkqWAs(v 86:.WzvV>/x`$? ΢mT19_He6zNIs`j|_*^wiyʿy {iQÇ :�qb 'raZ@q>3yoJ_0Lݦ@ٽFR1Z+Ff }:,菿^lhJGV5'Ӆe΢R3D#e G[+?yOI'7@FZ :U f"}F|TR6P-24.Z`ʿt] @ WM0-8ԣ OķFZ,<ǵL5'Nu.#{Y}߁n=Xa';Ǩh?`$ݱVx)F=3zEo#N9ԫjC%o[ޚEGỖ&p^⻜}J VV_o+|@yc;u.6ERYYVtd}e)5mGѽ.\vqJYu*^Xa=qދ:|8x 䳵?Gv}9(p; ^eOjNQBe_tć1Y!2h' ,=Vh GNq 204 BF!7=CoG8 Vujzz^cԜބ{Nح{^0-P~~L:kp麣1?qr %*k5ր;]hn^;+=Gdyzsw.TAr?kZ/hԽwsW"B[TwtE{�F'"z#̷y;,DƆ8}nÚ,Oh9`:J冨hLز ~uo~N  i޻6Y7D_ܾb-\7bIAB._zC 5!7"y{YT2ȿ,ՓfP"'%L'UP}d&?Lh|[~[<֪>(P !羆#'y]>ns-¸Y+cbSGdQ_/P : (,Zɧڻx'P4xcN䗤F fc!e|*wQC>怾6g8c~9Ԭg6``ş/SgqPGS+P{ ^< Yd,&Lv/ C߯QkEț`-BكWWw8iaߨ6Q35 %yPŚ k67Pk]G08sgh,”/ 3qΟi>#(V|,r|SjÆ!60/2i_D[\l2뻇:1!HgΘVTy9/߸|uǀnO%jfߧn`kC0&lI}i>�ή6ˋ8@[u{Smߢ3UܻT'^ϧ ;lˈyd Jޣ= Ч43.rf&?'j"{^-_xON¤ \ ]-Ϸ#Je>% 듊o|jX͎m*k՜:>½# -Z- CۺȳqIq\mU|cͨI?^6tXceJ<t`JcK_%'cAU v?5A#Ӣex8;) /D+@K 4ͅ侷"Qd显%KZ1ɛPjʨզ+2w=Coq%ºIu`\~ŜZ_nYStӱ;+ )A$f%S}rZR%}DM<t!dfs0 ghC;F'6Ys7B6OSKWz .ik4 GZb'>ȝLxؽ%q:I_{~V 7fݭ5-q onat,}F]D_4"7cI'"i�L~%Ck1Q@MQ_v}"f{񼫌�Rvݰ^_mN4jit9B7o~ݑE$sgWA QpGdԯ7ˬĺb:a{7"د} _7o;)]fU4ߞ?Ԝ/ڴGq|3.P~"TS\<WYyJ>m੧ˀ~?`2Hoy eRQ$zo#:n8J܁Eu@R:lOjv'#g/4-"RW8y  C=1xM*WnջLH`Yo܇؉5=V~JH8,nCִȒDpˋs`X\j%Kqmh?F6|AM { Ӧ 2e;1FC;YCLR>9B Qlzm;#Cb~\ HO9b^uA_* ^?0jaV�a=0#c݂ E=i0Yhl3u&IZ %`<}4(,i{yFh 1=)kYq鯠֝,濵!E[(A`[ a͘ x7f%^ tpSSxAWq}E[̿K�\)me=ў,,܁UbRDpAnL)ly "=JѷiS 1:K DQU.nhoJю9DKV7MX4'@=^r%*J>ġ=U]x9cr_|`u <;ܥ tL<mq QHK#qPǨ.˘~drQ#J5Gz < f=߈h 7kT-Sߜ5=@7?a@\70'Ɣg}oWV]5 X}Ⱥv"C9kֶiAp+ f4÷:fO7 B+w!G:43!惃| ,ej'@3݅'_&C+d;r^!?Y920{JOd)\i¬ێ5GoAq1RC eԝ~sӗg>yP('D"7O-"xEv)qrocXcV ]J[.mUS}пplST.I/ TE"^Qw\|*sAmryq1ZywtP0SޢG> nZ(Gع-31Qw],jǿCYXRM`}53%s?<$S@/* 3 ./^#{xLA9̸ɼ7*M@qϰ>-ɀz%}Q^]QGD˩4,=xk0B͟]i+^ܦ Ƭ*0ڳY/2)vv}H<3Θ˸'/Ic=id$& wO &Ԝ`]ڀU3ZgxAb?XՆ_`lYu6i`%դ gѻ][qDn#hUOOj313g@+TեrIMaاjx柾~aVF@RػA[ܣo?.bR5 q3 @޲4FJ/vG̲Mg=xu[,_/>! 7 pE +?=Hf{>L&þl@Umۜ~3 2牏 m=q]g/+qGX6*0%sED_-~8O,P?:q b_vN3}fbv=KiF_#-Kւn]dXZM`CϾW]A`Cn_{0JvP;*z3=jF37KA3@K؀LHm@~ᡃho}?}3ZW,iA5 *`Lu~)Rӣ׈gy&vNn@DЮe 4=V쎵BS ~9ϕi7B7Ghc{k<-I0Ek#n4>ܐ(@6 wS}9]}ףڡSZi |ǸܞýD"$JK%eF= V3C6vѰ(ƕc`>Ӌ\\VΕ~֡Mi-[=}-ݸo,`hdp*rp޺,ƞ&yiмc?J_&7fw.v P8d~ Cۢ&صIMYA{?͛u64^)8IꄏYl|mأрW@ŕJJYA:K||DoVy])1AbԸ1w(hc~AK\t'CۀQAodDq~oJOrEcƽ`p}z{9ESNRRPAыnniX:3^>),#֘S"ƫ~FpިWYB+c6&,|FU ɢPrg5?f8z^LY+H\s%G.| k'qق:C9t+;ԑ5`iͧ@}ы!ԲZc+xߘ%9kmLE>]dُƾtyr>!C-~?0nw&֌ eÕkPfMl|,?070�Ƃ]G~ t:%z5)M\FH_[_Jo5F-haD?r^\qA#{ɡ~PMPl JlNy9;μcI^\Ex_K3"AM]%7?t"_E C~hz/dC5ԝL`EVT;m).y_+:r ?"an!ND] (836b=(0Tz5I#+^/s;Z 檁nXݴG-@Zouʜ|A#"6d^ѻB La gNu\]d#ն)`r% M@Q GӬm Oyݎ7o"a<HVcVAh͍sbWANwGZ@ :Ix m9 -t)(cvIEʈh #r7hbC^ IqoI̦N{szW%̤~ڂiʩd g\cP9*WLQ'f7gy|9aԖ80wLGj$IkOlҎ!{G4|0[ϼcCk}lt=<fw20>HO_Cgu֖`$Tu"@cNLj8R�Rd-0wdE~c9Q߿8 ߽ 0fE^Z⭱1Λ*nJDK 5DQ|4rb?z;>6׀ffuj朘Cڟ7O>iœ;Y9{[tCsEߟۡ? o}yiZ>^tlmrBϗ{̉XNxDXLڅzd? =۫hmgjyG'IWxdm"$X=H.*/?|-{Q> ^\Rb$\)�OESes_XIh-1ډsw Q:橶)O7"ߵornJAQ7g?FJF L3 8p->ܜ~c# ‡43gTܔNjfގ?v5`!xߥF:t D=?&T{nCzT}wS8?d|Ӟ\wrɰ}Pf$/Sfr<z3߂0+Q0k%=7w"s3SPق͊R=5%0y[Q]XdI*9v[ "V`@Ҩp-4/S+=Ќ ["$ڎr걞3oxjqɟD]gf#Rq3|؇? Ȼ9H&.~ B$@xh?| ӟ9f j\`ݳec2Ϥ3PaK_evW|??!֘b)D2-1tNK2-O[ %ITv®NK DŽ//dow'fY{A/$m̌܌[6K>~ci m|geU轢`6_K8s}=F@pniLo=}sHNW{%ƤQgS%jTu`91'azJDʍ>,/z/ >Q1V{D`7U6B_hWH{jWiqi隙5<-*2NZ)7_ |jsW&7wivx gP_ ׌U|s.ݕpߏuDOla^(,S{$QvS@9(Y˦`v!җI3A0Sk v5i L#{ݱߐ|v "<(EBץhNR5&?cŭ^Tk{tq]6ÞI[1"Z8R~N-o~ϾQ+cR$1!}zTm&|jjC]h`zyr}Kj7@s]0G^O}8|kPKXHn%'+62JDYƫ4I iU6"U*ad >xS6RSa PH/̈a` l_7m˹(HA<b%(P-e^~Or~+wأv8]D 1Ƭh{ΣjpO I!5ͧ߻>$*K8`JGvfx>x"E.`S~ <ăP5[<n0pFŤ UcVLl njj ̿%nSʁ4/r:'V>iis\-s;*W[}U2и? zM[/&;q]/(<P)L"-$'撣m?kn|!I_Yݶ 3/X vy|a0xS\LRN9S}H-])tY>xk<kJXQnx>!QyIl֐(daEgM<<ˍHuZz!sE- @ Δ߶/ff)o"yͯA#^-ߨlE[^VvL,s$=X2>;IC幅Yr=PK<bB]g%e]CdNWNocx<ۦuqw#MeصT/5bϷݚ[v+}8wS% fO9DT8a/Bg~$t6Vs N 8>zxc$36 FcR}xu{юsu.~XxmfP$ݍ͠r]9=@*eP'-mGmoyA?3y"۸MBiUUHy&T泌3Aq0_$c.㼲P'~.$G)=㿺9l@nI<QLXÈ)Y 1ŒϫbQ+kz2BWI'8z.3Y*h|]Yq.LD 2}ۨ4nxؓ6 ּxo>nSl&ާu[T{<U$5<,([ u0Ի:ق/%\emC2s^8ςBǕq|t,& ϝ*?u.F;r?5zu7{S eGUd0kuDw:Td]$403G1{ZCm'>%hȋp =IGN_<0THyƎ÷vNidc*;%.>8yV+ 17Ck` AY4G>Vv3Ɖ*:ھJp h7]Vda4ξW u ǵAxNϔ=\+QPA�tɮȾ{ص Kà_K*Qĸ<5e)rO`(_@3EIv"}goժ$.xGq OFw#"Jߙf2.N�ϖ+<:pghV\F31DCIZtG*'LAr:uC:bĬKL !%=;65sCsh({x=Zr4!`dE({~d #-GȊ!w{G;vaLE#/ű!rNK$"[#`+_'ky‰8F-jWO!Nα~!{"&Ð:ȪJw^  r uȫۗ _i\* ݟ̐Eٽ }DF9Բvl J&/f+xo(4Ӷ\ H4ȭ|v/e$tm鏹Fnr%/>s>wt-߇S&XJ)P0vʒ#P8l` $BҵW?r [{mR!~ˣ`&hoNG٧E1S.d?ȳkQ.%�".vzT7 M'?p!['eZQְu$']7/Rbo\ 5RDݔUnTHl4"?i"fs>sMĝٳtT瀱JR H3槞4>7UzH5y~D➈*cJb\+ZsHJھZ|t<dd8 9['N [V/UsbͻW9&XO$# ٭5]MS8hVրrW]Jt#尜2YMQDtǾR `~Ӳ^DU7kT v戞7 s~0:w 2տ6zn65CIr%UXOd5S,=}P]yZ4=!ﻫr}m0h֠\B&0FmXw6_&zة }1MCͻ0kl ui$q o)U}Rg^I#0C>m'2fY~ağ' [ł30ַCz%ν22veo!9ܦ=H;[Ha6 dP_l7dE#?bJ|K[QPV >\?@~mt'L+<9C3H5U@!U{ۀKU$Oo, &ee߂),0"lۥLQӰ8GiҎ~̢;xşV=2;DgPf֬@k=-GeABRCH{o<4ڙ.: z;ј똘})Z~C " 6>jΥͨ31s_6 cJ@}0\ O:kQХϜWOaE+^]J|`l/{TJ,Xd/$_LyJ䇕e4*QwO |h3׏dB72[1ͪM>ZaivJ]$2kF#~e$( _ @  |M1:vd� ?p=bm?#3Qxӓ$R v )>}3GvGQþVnAxڭmDmm-E$'%G~NFe?}{dF^u5^`&=?"K T݆T߸<FlGu9;MJ|37xJ O渮&LZn\x$bdc쩫T޿QWȻY%ZSMY lgjwygLj!ݴy].kO Su^;oqyfގm !҉fI;U+Vf&B~ 畺y 4zvBPWSgS+s]kRߌNS(1}]Ga/@kֺPfhZތ:|Â/:@yKMn{XGnNH^L;?f1/V@c3A^I:.U2%AMr=#T5YAenC 57GQd{ho|H!2- U}Y2{km S0#FSRLۦU;`i'~owhh.Y-jO�؊:za̮-؂jwa_;5_R m(l_s ]rl(i8D_<GY% `H% yz<ףH.P%%xHC=`]P :Tߞt*GLt?Xe;҃PRU. E:'d̞ߠq Ko5#kߩ6qW}T;eTArNmC`1O},mgŘOBzNx F㽭Y״_Hj};~L%tDXtppF(?XHC^i; nE)KtGh dwbuh#Ɨgjۃ8ia31=T3:J]v_%hbv}?)_L�壬#^4/6HW~�2s`h={S?哈7J,cƶUi`8`^CQzP`m9tw0Azye7|OF][`1ְQ=)v0�N9#m]psk8V`𽻣[AE#%ϵAx hO VK!+WKH>x,+imG\NӜF7"2~8VȭGK3<:h=ߖ03.8"܀mq蔚=E ÁrH1UlR'0# I7ŀF_T+Oz S s{XCvPhl#rcUhP_ zEy>PclL\/ިgѴ+T;}mF E<5vF+mN ɹ7/akѽaD᧐0h+GcW۬NJi qN:9l<Hz4GPxTܦ)Iԋ8w`lŜW (<E$!=OE΄}@,y9w#\X5ȰXgK4ZzjEZlnU>)o1L96sן 6p鲐p&e5Qk_ā.v|xz tO ׵mZAv%MzvTR\ϕ*2_t <!}0~34@|g9*HyV@|}kV-#Ⱥ`ެ|? NP1Y+n8Ս|4}Вku&#m^ ݏDZ >[F>vtZpJ'Y )J޵U|gUCWEŤ@ķ9xG܇nȡ*zE"ߤI0e9zos-;1$w M8T Q1F~qs(T3페ߟwkcMGرOõ (Mz uo ŏT+zF_h;s6fM B{~iR?qU .yƹOhk}`מG0~ğ` džEbO:>=cPc/g'Dq3�/c,C 9-eG{\t=;OEz<0p"#Qy�hw@ZZ$'78sU~9hM\E1C[{[E-(/jJھ?%_M>wVDmZmxJL'aL5$= ſh V=ϺAu\#Y:=CUz@['LwnD w0Ucr|/Bή }OyK,D8#tez<ޒBuA64b5^BƭCZ(h9wzs SM5_| '.wYX~?>5y)|F䃎VZ23]Tϫ(9~$'LXr`SCoA>smR�)tg1: 2څ^^H]ww8yZ(99{">ז(7ڭ"zt޹>=rXUiԈaU4V>EF9G_,̊|uj>ٖsiu }ϊwH 3iG_kMq5hR>+lZƶdVj^#Bf_Ǯ"L+|\Kb)X:MŶC0Ӧ~@-6fq0oKd1}ߡ~Ә<x_>wvZ|/Rs,n'xIEilj ]o~+(}wVsv1B'ҼEɷ)B) e}h&WW5&jul:1!McP--KE ~A#}DqgLS|O$: Nv$Zkv喠Jpՠb1GGRu'Fꅖ[OdԻ5K;4[MpjI _{7 k!<yl]590m߇gF.;}B[(_"И)J,~nyţk c: 3~`hS~Q;+ և~vH٠I>x# gv*p5(qv+-*;XѾ‡'y,Rj( ƍ,cD۩K"na =촭3ѹƽ UEF=Pԇ&\F_}ƻ\݈IW`d\TW8 Lz׮ CO-7r$|S<:B{ a?#_CSqUo5Ʌ(|ݕv^Pc@0AD&=| [V :%Vow09XԬ�#^(@z#g/+l9ӕ7zS%Ե4FG )0YcW<U+B s#\sxoh@!ۑ kUii糡x@[S9cAN]}GD~|ڋ&\A\ 4|ʱ_/m�YK;Y?J%_K٢y_2/ϧnCL$!TEқ [.|StdK>�fVéNDDncz _۱swI &)(+pvM .-)Mhv73<5i炙YN}Ea4gQC\^ ٠g/|Af9$1ʯN,k0۹bxme1ٷnB.ϟ�\`[tRN2̮A9DidRz~jq#|N6/=fUWZ;Dwĸ%l{F5 ,rԳ€ho^Ut[ߢ|}j$iX?@<](Z<=䲇t' -t!l7<*< K:`iS]< }džΟ WLwMhw~wcP{ ݊:U":Gmx٪[ePexs uWD>iZvmHjv،M|yE^9/n}Zam5@-T[JPͧ2AgM86qՉǞɂ._up-/Fo=ۧ? sIꦄn}Sz Mgk@W.֭`Z0Zw~Mj.*vۦbEQl0Tl}b́ZQ6b453{^L7&?^x H{=o8Ϋ%dըJ_p=7'OnA0_ϱS 1_4+wq5I oHL'd$~ןnR9@tJ15pƌ1<5eK-Pl x+ڿ�R1eiF[U̡O$#BS(j|DV5|[/TڥNJc+SfdOK3̷]�J?}z@gL^}E)LU_K\AU c1~g>@YqfA?DQ}cȎcA͈& st&d/DeڪyťA tV5䟍3'.:V>FKb"e+O:N'Fhn>Mi3Nf4w}M|1,d8-N bAҾD6>ukfҤ zkLo~G[9,Vw`A/(.2 *eNկ +v׽{Jo,>VWB@{S%) 0iv:'{7B;k(T7JtGncH$i <^/"w5)St Qj7.ڣƱ+m:nGTum(k0I+JO^ǰ/`8x5"uߦRJ^Wg7,N,`+ fHSPH0#gln}Ohc'= 4y`H!e0 =~i4t& DkG4 lj|,5MPl-Z}HnRi4'_3tƜƒ?1}/K=캳>2 &2͑K܏�tټvd̉&^Y揺&R$1̣h[3跫wlG' wTf-aPvUq P_n ӊd~ Dcutw v^QYq 1/(Eu)u>P6<{ՄĤOKtfƦiń>{X qNk},aJDUņ D-&e dJOlFK>!Q4^K0CVިx6BŌq+Sfuq4W:e/!T^n:ޡSLĉ|3Ln G;}]I HA닞TNNCs¿~Թ7BO@4L Q"7L3:\F[AϽ,1/Lֵ;TArj.IBeKf:(DړgѰHG7R% A H@-^3{ZZ8uoSk<9GٝE2v-]~<$r<yWc$6bj%3N <R^ij?vD:%EZI>K`> Hc{\p bX` mFgg6ihp=/{0FI҂ 4 ^GYu\rH*GY=fuԖ[ iL}8A s9ԉ, e+w=0:71OH=][D{Pc~iD&7ۍFM93roߤaoܱ#hͽ31W='1s䎁-6s_-GV*K_V`8vʏowQr\$7+nD V.կ$קN>-lDx2Oó`Ht Aut i[ -"w6 ḻ3GxX4G} 7h}7`wؘѮU_B[u<hWBoCb~*;YŃ"BŠ)\;ys< :YhR-Cį1$G˲ }AOrl0R3L1+'WpPoHEwH(NdZ} OI=ApPYo/ :Mf#GC戽eGe,BlYc֒>M̩5<c~$\U*Ipy4:~6agN%O\ŬDI+-/=MA-cBֻ .5L?a ٟ!«yJߓ;Iyf`J(v[ 桿9.hҗhE~3jT~#Ҫ{QP^ݴ$ Ƿkσyr:!~m*h>.Pk}a#>ܳSz&S޿z%T zK!0r YD{~6?sL, 9(;6$v< Bzp\3}WVaO`@5>e;տe MF k/?,U<F`''\u/VlZj̴2k@`s{uϣsmntp}x #]h3f p/00 ~.' umF{դ\R538Gr6ڦ[ ZD3n^x3*E{[WWi~'i=r Ch:`F. v?/`2-Eu88mN�;σ>f1L(yyc:&8oV�ŝ7_&}>kj0DQ51!ylo%vy'av"K;LkA}zL])KAէ `Cqխ(Q1;Zˮ8~0]㳜NnGP4f:hS,PlWzozd>xcb,=ia)H"G?jິ_Bk_.ʢB/g$ W'tpEzGWb|]r>Yn;6۶|/EYvZLPe7* o *u2u7ߝGeFQc>(boԤA>4NF7"ʩM5HnI +0IJ: QL9W. S[ue:./.I{G<)@s`~v%,#<n)bnSK1r̪A,H]m ֫GƷV$z} hMzYTx4mcHfÍ|~w9`0b[A7X;22 ؁76*Uq Cj8^Z/c4D闅0*(^~WlE܍QjpZ!g&GDfou~aSs=_O%vu+W@{yXNN-WOES@S כ D6sq^PdITRyjZcN^v?u[!:Pti'T>[4?:ߏVa@d_z9\7F;&w+zDV7w�_MQO.4b$蘐1>ʐ(GAʵGea/9 bˍ7�x'Z'P\0|J/H{� W[b@f=iMΙ1ikvs猇GKQ|Zp'Ɔ;oo2V~73` M1)ȔP,MFΟj FyM w[QPFSV!A-sTj:  Xo=Y {X~=6G=$뛤 xhL::Ƶvv ]0 Ϯ:2ѷvoqJEnHPP>ts'Su^В&<](d(ܝc}L:_6s3Y2) A-^tۂZ8vKۨǠSsX Pżo$!�2wJ0;,بn_%~Lx�(mKQ>SI3ݝ+-]6ѾLtQM@=TO:~uhf.brsjQ*XSZ(ll*GD$i 8Фm]vBVo?rX4ac㢨s ܊2#[[A;4BF*$2Jj˻O|y>\~EAb{h!yn>/-~P@[CIt0,)zUi]hW6Ld`�hSbѾ ׾GU5_-J9d~ d&G=[hw)=(}?U%w3l~cdk^)Ȕ*?&*{ ̃wNn>bB6[oW Y?iZ/G;.e^_^)JtZj 46:I".돽/_kX&Q淕\@`IHǴ m@tqEL< UߧkQye'kwмxy'ex!z16 [a}Hk/rZ5LۃPPO7w{N`mVv{@K*1j`SU zb$Y?|O| G핚s:LP7>h{/>^g0ؓIf{#vSCx[j0fv{[=E9;}Pd&' o0No ٱqꩱ"kg i;^`:aHj/ʛ\GňƗk 5r.8Z`#x[jv|m|ꚃϸ}Dm]$ g14|qI AgmrUKHqYзF Kk ~v?]de< ߆AcirϿEe A ̔jmDU4)ӗ/&ZΎ~S6 %|"J<_,(Oc +ܾ|ޔ>RTA< ޼ 2|+azS❗] 3~\[NeWu10Q-qУ(5vs3 |1߽Q6|"^hy<`"q%S<O AR^$J}VR߂Hڋx97 { `&!{+=P|!ڏ6u>oH^ ݲ/?;U?ޡMf(uj.OnaDlEjt\5K~^Cb-V1i|5{*B02IpF?^p'*M{:ȺQ2|UFe, 3\>KXӇk%e^\ 3| AτAݺXl4{=u_=ڻ=@I}}=\re蛒.Y_.>fv /c/_9? rR¸9_-&ʱԍz%ڹ)A[ږH*ʄOyha܄b|>:*(Ky{ؓ̓W!WnQ;p7?zZޅ4U9(IJHzl%S(x%9bav#hzOξ(SCdN7w}Lk(, lkV1owgFO 1w']si( @�l (  %~І[?kژ)hO ʶoGW;}iOE0X[;,H* ;~/LՅMK6`xӺ1K7PctS + WrZߊ 1jA+x- mmj G55/c۬YWJZyxn͡軯-B׬.vm@WV#2k(L4zq߸5Zfg0Qz] ^-d{fM!x֝zi4qG^'`c9@L\2C?{'':6,!L$p|Me0EjmEʙ,M0:"nPoPiJq6�êNdAv<鶴gSBQѩGwS@9OK=QDn:] Dɵ7:_.Ak3~r μiٟܒx-gɧj<&Q|яw^G}EB: Mgn[ Mgt'd<ݿ'=gs S~F|3CӚZOPaIr`/O\RJ'o}}hLMZnB JS9/TnwxP̶:͏\MxbEoD~kjDW{bGwwHCn4J:T L|Ik!SmX5ƍnZV7ϧQWpI dU]DNJaACŬ +:<~7 yGz!r.Թ`J<^}"EWU~zU ͟~ҿy>0Nߣ"y Y:W{<Il$=.9p[dj9YQ2@pxyޮ3lp 8vWh{m}̰y)(蝠Q1^ĩHc(FE|scn8s>{aW U'f-̙ֈ[S12NZ_U46>-f = zxF U@U*X2C`R}]pLsGp6-<]` C+̲]1EƬCGz@6H$x?>o_T Zz饨~wW3\k*E`/aczL싘Nt߲'Q>O)o ^3Vpʧ-*unԝʤGzߚ6r'bM8Ƴs,hNN׀V_{H}PW#Tpr~-M\=3O>HE{S>+jya2Vt2Jw@c̬ҍv(:GZV>*QQX2 GY6`6iAЅ侎 gv.T_3wɊx;H 1IZً5FzT~;[.6fs-=c(xʭM` K~-GSI_;v"䈥ZV COY1\%݆~$8ffWFU#"_.!S^ԏq:OCxڭRTN9ޣΥ5OrcQӗcOTҨ(~6VkPlH¬? ,~УGQ4%q�uLZלMATC`g\;ٵOj?͂r}aTonSc^^rAݮ| 6A8Npu]NUoI�Ej"HΎdVV߇h:cPhrݧhy=yd ZU%D)4bCǑo6 =~$G\G.'j5b~#4`D;q/(|ug8 !.9id/즂m ~'#}S0=mu PCq=v)](^vrŭA>抸9k' x0j6L'g:AљQmIiDt ΗuyD@~E!;\{9c3d:i_]3OY`kOdsͫp`֝#4nhs?5W}§9]:fEovo8L}mMt~o9-J#X1TkNjl"x}@#dW:…gZwj f~sZ)ݖ eWeofW|GC}1//Kǀ"{{&(*m`O*1gk~D9:Pg^~UF((ABgafvkX僦@z1:̪z/^"ZQy/#%lϗޢ#Q/C3s?< ,8Pnj߉VVQ,"~,R?}}!_(-=s?(�,hWGVQ@ajKdMlF<b׿QqRj�TCzk-fnwETK 絹|~ 5O8`NM4~) hZ6)7flcP}^VsgnOr1fѵn/0 G(~Y-EY̨>PllDP٪>c0vq騧!?~!GcuCh?_;56- ]~Z&Yw\YDkw{fA[w,Ty`|G7ʣ;vyWu3h[s#9KDfmu%Ct1+CAihQFUvZ}J;Xͽ zxzt2U,I</}f9 8_F7;ʰ fJӟ@7S6; 1^=dr w~`<w͠;%.ꋎwl _|4s ޓ{:hCJEb팮P1”!v#DoQGֆ݈t.,`CS'QB0`$%_8|V"uK&%Gbb@GXD$>g 8tv=vYs]nNx7fNGa`^F7q3rQy=G2a^ {1B+#�.P)Xquԧ-b*2%ǘ}QgA{8.yFEFe' /Q>mՎ˜5t ڇ.Eڕ.m\$LPPR1eڻePA66i R|Á|THSWP$,! xppz>4ି['E6L8a,#Ɓ\?yWL%<9A-΍}>|Q=} A'!gqӥѼ8kIbV<܁+hYm+z'VY2iz "=ĀL>h:1WF@C#>DHvN9_ݥK:'5AV ?L퓧4Ejބ_L`g""(RW|1ek_xOW2&b@z7 ;ؤ:099f5H d(-OF,"X.zmư9EyGY^+wAMupCqE)]rv0#[AKծx Jf Z-czHEN&{)=^/ &mg|u}2E#ODu)i[h\gɟD,-A-;>-B~ LM#ZM�" eh}~e=e<c}I<\R?mFֺ) 뉅yi /\1;<Q/w(ύ3Ҋ":ܶ,i{:xK4>e|@+ #`nx{T\�R%LAx�;#T_xl >746oڰN Qw(ݹd:i5!1C7ԀA'y:rW 2 0T]<-s >g0rbgB rA}U/a qF{FUULEP/=>z Kq*DΫM9ZM1F!K{71_DqD^ ZO&*#8‡Z1布L;>ca {p۔rQ#I-:7)6= S=[X <N!W<}µi/.[!P=:zHoO B؉HLx2/[dC׾ys0t{�rqsp[c$CӱN0|,"'8>58ǎ #u߻Cq0&*6_1"r,ˉ`r_ }2л0^Fk%I<}\hϯ9zdځ֝\ݓ]6rr_=&M`>κҐ4"[W+ֱUWM <4G+5̓6xyLx'p�/~g"'Sky1>w(^z~u^eChx^#~lIOܯ :*8Roy&j`֝dHT#O zU`k8r WIFBck*ִsZN>SHp7*g_xARe Fg0%^MupY I.s^Y#0dEYn> `.خF ߽%=2yu\looj*]^<}=:h)|w.'U x%މL0Dz (tȐ"ƹU'vQdm?2ӪRr|),g SN.jn=P~9LVe3*lM;K Lݝ`rXmzԧ']?Npv>iy DR:<FKvwA֛7#\'7vVsܢ`V;53.|E򝼸hVd}l|{ɦ3Ƨ~sW{G8zyԽ RuJPKZhZ*_/|5@Aj`d8} >(vDBߪ(ykx"늜0)wps*sw.=Fڨ{'"ūU ŤLȩ}YD•؝ha{Ƽl7HN}ZjS*fPtuø(YOȃn]&sdGPSۻ5ȍ6{PZ|k<'?9싼k@xj{#UvAz Xa3!TէrK5>N'0݁D8],*%OBnI8ZyY~'@=|c}k]܄ܨs\?4, 3'_UcvRQm.譇 y#c?y=*8EOGGlyS0O8`:RR8pA.dcjՠ8p Z&FB [;zeL )=mrbYtos40vu0=!FTצ%-`T]#F𝛭 3!rvP(CYܫ =Ǐ,"w0n2M@5IxՂܳ}¤JY5!|i3O5m;ȕ;-$'ks[<eo kv9 Ax՛ <3qim] [<8jeHI>=6>pv*{p FϩG?yx1q8291ZPMNy35(ػ,^yĈU)I@&JFCrr9(S遂7C]{ EE":Fr]g,L|YSоcET=Iz 9_3=Q!ڗyt dU3NbD0UFg{bFw1Hag/5,Yq|2pYds 8묽A (b>۠%X_B^�/zG2_!#0_WfT/GNG ^̬G:X*d_�}J@x@r6Xq 6 { ?Q4wq:$;,KP c*4 M|!a Әl~Ļb!i59?EU*0:$;]O"UJFȬ^KqH0@]t/4̷_D5%XS [-%b_.!ꡪv0>cKՕ"9:;<+ƿ"[~ۯt?:_SAk:% i>Ƶ<./VCγGX_u5u6!UvFVJa:п}Mkl"UĖ=/PͶU�ㆬȾ /,)6TTH..FE|3S ]k[1#q Ubo"v�;e1r?(K #W8铮1~hurT桫n\3y%V]p66&>"~͔D*vTӉGFv L>oV` g|ٿNplGaYgPWHSrcQw*<Hy +~@Q%hTj/sQvq-iEWCn=߿E4s6{rLsUj@MڎA[PX؈Sݺ(`;L>׆yY2jP7#Kͱ gTN1==LbY $G7>_|C~Z0G>}$Aܿy)i^*Vv<?M3A]+=KL<zU|UXRd\}vdV|RiMAe32Uqyn~U;_Ⱥ>L+OMAK~l %o;d^DG҈ ]s1}i2:'|(#"["zt5s!]nF.v4;Zʍk5}a:"%!ހ2p`4?KA`jNR#1}Co&3q 1GlY}t!wި&N,3RAm?<˳)c*FZ;LǮ8+Ԡ&1utҤD1_ 7GJ0yQ/hCu+2y5se=-f%ysry;DOha]l͚=51h`=<<KɆLփ`t5&d _ts-(}k"q/2 nFATyV"f~zl-m2\r8Nᚸ( FFyɾfE[eпO䯾o+b[0qeg:ՙ;< eAiQV0^1A8॔FɂVxe){ zPށX:WH[?u!ӂ7N s /d̑w%U$L!Ey</$u-nuiEGE6UHа22:=HICK̔BRJB޲{yV()sn|8o|InSyD9 wA ?|Pf\=Nڳ$1Ij-Ͻ`ݹEjC;^}ɸTueJ?[x,ij㜚%w'W*.!S;4kAO._wGO`s{}r6ǟl MS4 $ÍF y` %w4k~!8UsMyN?H.-3G0c>4ͺig<N9h}C#%5:`H̻ kZ'Y? 102%֦k|F֩b(>oW#{CEu[O&nAɿ",1!,}.u0tyf.0\UX3;2ePA>X닂{% *Mvl'ρ,zJ(ƮN�k\D AaL; fYFl6..t "IV9h*֝o�p߭߼D.R(z3?_ N>fY]19n1FE˿{7}wYI'#`saf?hAՠAĀ%8\9hb &ˆVUD;~N6OCeeA,zy Zӧ]mJ_p?>Z]?oE 0 ֍�O-(yA&(~zm}޲0X&\K8e&`bh >VccǾcFFiޣvH>E91 ˿&;HlGqi!x݊􋴊|g=]x'Nΰ�u* o ‚mq%i`s `>l}�汻<SfG1no X+uPf#r #`zcMOQt^4QLѶlI3`36څk2PjϞ}.q<{[Q#}F�>7'^\T-.DLA  NE羶( W}U]V 4Q-ޙmT)OW<QN+ȿ샨Uj<%M�Mӏ`AnD,~y3}kΥ$~?6 .\FEѾ01qې 1AKqP'/EDﶨUgCu=|"wV͹upwm o @ @"GC4s4Zsd7:ǥ1ʝD9B;*{ҚA_(\pdtމB{j<ǁ!ۥ{{!CO`K&}MRq<y0KW^GΉ$Pc vs!VXtu 0o!'bPv%Ln%蛫J�jv?,zZ<}m/J2@ׁl!`jႪM`, N([c|gL䞕RõZ8h'6pg׀UzҞ?C _VNg`ozl{µms_H&qfPP|Aˑ~AWdQ@wnt9.֕ w]Pt_Y~A34m\)5L!`#?ցB~j[;RsN%|`=H"Vȵ(xÜKG-^0� `9ZkU.%e-Qwk`Ϲ%To)zz=^lt<Yg.a^PU)7uQ<ym JwF.a450nd o# ǟ%Ls:O>u<* ȕ@|~sbT0OnW˕1 f@s0#C&pڡD*^.:;Bph;T|ɤM>99w'>+ ][Ss1zC,vb6*z9Տ"Gp{nٲZlXv]{CR~X?-;SBΏo TM0l -~T{ܿ(yȱm/CצZ H;' ;$ϻvx[]9<\@։ +1sru^{mj0TgBOۙT렶[#uΠT |##ɤG|au 4Lk&.zaA-{~87M=gU&9ԕ<lҵC0jݼƏH>m+:$n ^[w}O >yd| 78w\ <{J% ?|>:e^EaѾazHa:@RɫEC \8SryϟA#HP0hG8V2ѐE"@R):;:'Z"St)gfAJ L6H]ENvk|+?v01-*d  _n53L;_NdUB]0 Bx<jrF k3%~;+mrީY>w"oY$y1Gh*_R5A<~D_ҦAʲN<jpVex5s@٫9۟JWTT7f|ޡ=ިV6|vK" J#.6h9;_86o;}꫘дV1vHG]Z!:))ZR(0JGbvůZ{3Qc-P"; 2̏wn77cg5 1so7`ńNy1:׷fHVAb7A[($ÄG./�FЃ(6B~Gڹ�0n~mW хZЌ5j'%�k½#џ^Hc03Yk-㒴1g»o;,Hԓ<!G ʮA3= F VH#T>`Sn9jh R{ƐZ\\>5L2u+]�C쳃5XZVAP7 T2-"Eј8qaKi^<%ϣ%bNqJPh^&uORS*͜Gۓk/`6nI7{i*ܼW^cR^iXWcWu(A-/usbY.sjPDI7>r O}-f۟QA.6BƆe% NS 6uBg]Zy_鄥!SCg�+m1al_d_̓#3H{Mny<JӯYì6:Έ}}} 7<P9ޯ9# Y`/h+}4#{u`p t^z]c 明.hKE 6=$L:0Oi:cb }}MŘI~u&iDcq2\:Udl9xYtn;]}j--,yt*"aSppD13wAcy$:"eInW?|OnAy,gF ܵO9c�1%^= o/bF׹4KJk69?&q'*4~[tt2Q @= e>TDkCk{_hw¿`U";l7;mw_m0R8 B쪘uoXBCF":j#UN{AI[J']iUSoeyd0 wzu*dGo/DᣮD/9XsҐQVGq.e1Pr˲ apI/O�m`-`Ʀ*@qmO2pU"ڏߴ}{`oi{I9V_@;:舦KD~/Bβs?9,87Oi͓rw0vR LHZbCPKAUHKxnFD_7_y叟td#'9w@(W۽&AgSKsDiض=,s'*oIzyZu$o5z 2{20)j?7+ƃ VF*W%G}+N8Ռ[&>|Eklo$j9rɔ9t񳣈:|_L݁3iʛP;S ׽ croV(w; F}\0O{D3iJ5$=P݅I3FO1&M M\u^`-Z悒8]SSLfBӏڅC{}2]tb)_~^K TMa~UԔ [Ճ/K0ʳ,V]!xXfXjvܰ2=oH c|K)a|) ,˳yM7 NJ`35Qz⠮lz6XxY4X!iaa;f͊R׮n E}�zggCf$ۃҖv\/i1inĜ?q}Ơ{\]. zţ71GAi5P͉<u6/1K #pW0CXG EپC`.M9m[!5[}eMn:и)2`:<E;%g]x}9~ǜ-*'&s8x"zezPZ)2h͟0Vi|贕(T2/cc 衂 Q�{pZk/ub iͥp5ӷƬz˱ˣb֒0à5;,uCB9׏CottKy飘6<P‹o⾉Hg̰i;99)ݷ[@I_p rk(= ȰcH$anud]2ӎ]`PW�}!~R'=]<望bbRpD Ҫ"j.5R,\is(:8Y";@qo*`ؾJВ噌;Y6RGW޻ {@[M54jBq(DYͿɊʠG;>MEיm*v0Ǧq;DKț9DRMl.V4+?YnًAu|gȌMR`潯_jȀf@%l_}lz#Fbvs] G2j5w&s")ϚXYbWm'bk'KLZXܘ@쟆DPyt~ 9kO=D}UF?%jbJuy.us$ dspu?>K ]f7^p-\{h7|jAUZV2CsUEZ~Y+att]CVʆ둛'l'}>o>Y~ׯg;A5zr0U{BNBwh`<|2e!< Vsܪm~pPMM/g~i?'CD ^}rx-QGC1BUUYLӹt*Ef<==x㏻\AX)]9ĉ9Jfߏ7TLK\C:`b$[o�멛R&}hkcYwBlʋ<{5&~n)x lkJ^chUJ4RSJNE/i5ڎH!ӳ}ǧT 03}`89*S-ǙjBK?%rguLo}9Zwy.er9I@՛0<+_,߸O3e~E͵t0S"4em8$> zJo{Oʇ Pֹ[u ijQ6udm 1$+U']ΡE j}wAEp"_ ơ| (l2ϿK P,ܲq=ԧY4]fUрi7h?gP_)`YQH6>z}oX;O*aio__qr$v Lݿ]~>?Cj5tA.?671Ri$�~9ZԯzuuJ:>w 9*ɏ|{m�Ft"&gZ82 ݿ dGe{f_qڍV l1ⶅ<VGƣZgP(?;9l(٘羷<BAb)4u~~jz.9`߳w _ Ed}9Nϋ\o̤oᯍ$|/_WӉ DUN u<O fCt^F2U._z Ss}DM~_92Y ʊzއ0Y*f fťIJ^ C V{ zEșHss/m7P6<UAŸ=Ey6<I2p#ƃ(H/[DCQ>bcڳ'x FаhÓ+ɾzM&EZܺښij&L<D  `sW|Ɉ!Ϗb{"],<OG.c0xu4g^}w22:wENUnkSvM4翃)4 nʠ9ko7@r`<Xw?zElԙ+Ce0kh-a w w11JcK]"W6ꇹMn�X*C'o؀Z:<t u3xmD|t*IohoposRh>5&|;F\x#vI9v8zD ]U7] A٭[XՎwi0 g<_+NGPZ,$|% w6~F .1|5_9ɏBێcK2eT #"#;8Ԯ=$$9@=_3{gn0 sNB̾slP`لs~osKK`*>?=Dٙ99PJ#u t$6Th-6Ԅ!c3F.vkߞY.O&[/(3jks,Ʀ,"v_dq8$u:+N&fH+qΖemI3Ԩԋ)\;blۯA5D^hn53|rBsh#uֺT)S@G\Gr~ۏ/u~+PH6g_{Vʉa*Y*.T9{F`*G>Ct ZV 20y%nԁUy8eo~v Tޜ<Gmx~$(^?rGV^TQ|9wWzʾA旚%@䳀>e#oIe皢vWˮ~,G=os۫R3MVq EV*6m܃6_:W@N whҰVv:k7&u3MC&9hWǶgj #29�<+P*y]EЕʛ ʛ;ouЭmbɹ= ͷFL jT|: Eͥq]AL3_-Rvh} ,P~V2 ڷA-٫>KZg\QT9Z'JhsI5ƧW5*`XM}m0#"Xj0SJ >mY#/y]\F ݰBܑ3';`{~%H G@)ܾcd||c گWs0!$ t K=.(H9>�g?&#]6dGvsh/ h_XG#Z[H [xv;% &/VڽeAFARe YDmzG ^)ڄoX�9wˢas239ΥcP@+Q$mǤjr,HVe;z+.R!VrL4}TT/dyh{+-1yTV|Ғ2=_a&.пaǗ?>W`{iVN((a$HK[7_BKv9]_oH{oL+T~|t¯dV h7>ƍ~ۿA^wr{o$.=OB[@j3;X|U1AևCf= .eXFEtҞfo )v_ 5%245zDX">0W|K1әםryd [Vt޾HZ"*ygSR L 0t>8S2xg8U69?ӡY݆.V/_&е[f3(Gn ~Mnjbc'BrφK,^/z_ ] B+ @6WT-'Ӊ˝ &yyP>89pYr<vDmycjSEFtGQ<j+S'Pv ].ig뎶yHF?nχ"1/K#C4 @_TS}o1Z0]"!,)`Eg6mlAϺ̻?Wb,O.@=[o;@]o]Dj|*R i K}l*diW>T]ovĚXd? ?/~E>ݎ6,bOYLJ0>ydA?ᡷ-X1FGPC`3ڎ;|֢i..oz$9k0l^zn]G?]˞smI;=@qG6<L0tGo +`u\bLV/>ƬzK PZ8_~�I ϑ)Wm9E2I-#i&*<1h= sHg>O{<je'P/bt4 y`}ݽ?zq)O) TzF}&l ͠}0؜3=}>Y||Ly 25%'_ c_!}ߴͲ0 lWBwÝ~hz ޮꇑn$7@r]dYkNn?9>VKfƒm`$-sO*Ubֳe+Ύ hĘ hY?%֢0v^Å#}jq]f'*N˶AflY DwyQF-5_U"dd0,]>GK><hk63G#o=a0ݻq}3Navc^zesv~baU)qa荌f7vEaigʅ|D%j6wzj b U_2kzjR9;~V3tD]YUiEd0ud vκ|`m}5"WcfTzلkqa7eo} )T0ӫT0F@\�1CgrgUdd^aM�ׂ:7=̣/OU~PnWsHy nP랦:Ўw<9c=" oVҷk/̧nY:*.{Tp oUC]{^g/50ٷwwPg*Z FSN|\u=R9<OlſЁw_] qOdPBo<`mn&g6fѭދzꥫ~ /l~B-c;gO/۷i(s7Dٿϵzpj'."̷9NLj#K5I5# �#TT1ȁz-ˮ'HaR#q- uUjO#mO2h Pa9ΔK%E3z=S"x錤 9ydp9l ۇ=cif>Y%Uף<}b? ,e31qq{ZԌO%TOOi V3d4,A߳aߵ x"01O Mx~LFȁQ d0Pt\\$hev :Ĵ-}&A0폊FkR&Jzif}<`6d$p`GM|q=e>ZE8>A,0F[2e0wMn>Xub<A9$_1w6aLI=K TqwA]\0�&MEI95PI;یUM ^j7uX "7w_c*WM|~0͡WЃD5 Ƥ">1bJUٮ.)J-;]ɠZؑu;կQn?h:%b`S:%vs}w{~:Q3xk)FCxAa4rR?Ƭ9VL5pл[l%Иl3W څGP6U{cҀi/9F,T)0=To&7B6oL̛`'ׇ/ %醏"t521Ϝ£_ɃJfmG)J<VQ\]mh5|U@Z3ݹI޽Y F9>e搁mK` ^Ӝ Zwzf|tR<l}03f7^O;Pbj:cR~[s=F9Aƕ^ܠ<rc|'cQƋʜ?7Ix|^֐vGAw0׻ װx r\`e|zjWC.pg4wxQ1IuNG注}/�%+=R);1s>S>!v_&9T'"㤤/>Ή%"͆@ #yA .a*J]П+|xca)gQp3<R" 21{Ź% gsLjvg;&i*` >^b;3ğ`\=K 7Ih'_Гq`hUѰr)54ݸשj{. [%ZK4lz2cu ,oBY 6{e^~5}vėgWBŞZMc`]u~{ZQ%% O|W�_^sj{4 2Ά7@u (/y(:cbJd"PHm>!4:?ouSztk?A.`|g1vY󹭚рM@:ީ`I�cukշR\G/ţ k=~˃jDj.r|**d+? :{wnSh+Pedzl9nodlXyJ_vw:,1hGkAM~?"E}T`j}|~MnKz _ Q{w6;?ӿwf^ '3`߳%c(MfKǀ))Y;\{V9oIǙ!/iV*`ftmL|+l7Pqi& ؉L/dZ}-oV5khڷ~܎l\�ZKzZ<%]nP'fz{ *fQrs8AZϿAҙ9%1JnܸuZ^h4{r`qҕhwZE%wWiO9{Ժy\.Tsleq(*v|VFKqz@8pgX$T<"~v3ZK,Z[}Qy߿͜[7 � #O^EiI^H|H\]pJٛqfpHp1=TȽRaqoAW:H~&_K#@KLrp;obE.؀F~] T6N;~ Z5o"9xl-/<|,Wtu˒6*,DRސz͘;f R^w e{i>P>ȌL7)P.1 ]'Əu`Bqi@#C3'?<՞+U~sya=Ըy1{Ѯt>|EpZ{VӞGPz&$"jL~A;Gλw^'t^ ?%ۺ_6AѫW͵/t9>O_oWKXLD$>eM`JWH{͊ȓĵEa_0xUZ9E,&|k:HMJZu jO} f)oQ*Zc:X^m‰OmZNQق |Ks+NUGѿI_<쭺@2OwOxtѨ3cݧ }Q+qjN_bC㱖Xu['"oo*B_mMȩ-6r7AOuӞd><j } 8@"#";rݷREjg6I0Y+-ep,G|5PrqhJ(տ?3HuϘN/fG_�bF§cY#?Z$%{|7-Āeg, b0xȟgQ)K¤MuE`ٖ8�JBg05cӖ!NU5Q3mJ{7ʫѡ6l෮ݗvbXFW<W*HωND+ܷ^PJٜ5zk5^&w[!)�^~ya9ȹiL8LwZ4v9]]M /ZcV$IBd.gY@.0^K\*9pMs0sfπRU6?k@zowk4bJ(͒f$|wsDNncCoEQYj|9PSj;~*$`4mO(Jiw@SqBvI-D.;EJo`kuEҰ{ nS%Z}'!p8pNs J0BRUdbbf52|ϓAkZ;$k@ QVl ֖,؂-W ÍP.cQyTc?PtHع]/N& k꾆a`,&s3e1oN ۰UOvJgѹq. Ղ;ObJsY FDެl~V$)| #1t9} oe?{^uv9Ӟ-Z'^M1YpO,Yۮ<ZJַz>FG:6}q4Kuge<tFyR _Ǧ6: UaB."{Ac ^P>Y HA$;EՖ/;?.qh&A{gQZjpu0"X%BaAY7݊0פse0/L~/ac~Wm-3tRZLGی<07>jGgvd:h6g'`q ]?vdpԞj7k?kCteged6#wqڇo~ChUGeˁPr6-1~.!G8J`G}+6gYzpur N>g0s}\UʋЭc:b6Ԉ@Tr|We6~?n;]9Vc-LJ0Ol+ ~%ƜGReFjuoxsi)_O^9ۈnE(J8s7Eຢ( Lֈ͛'*ЧP)<TvdCv)T�§]rjjݓ,P]5+b#E՛`M^j*hA *hEڻG&0ոyh PFc&; ,\B{c#gmEqWl8F󆃞/?]҇wv ;rfu@>[ƵP̾qn2][Eيb˪GEeJvn"Rb.5\\/;*NTBSL3x2qްK79d&JbgGh,oO}:rttjn: mAe|W'yT.7vo9^'Od$, N4w"J lZ-~4zۢeE58W&<]m߭O6{~`]l}oAubWW'Fx`iO-D#ɨck|tu5H#J۟mP˩KOGxa)~r)4#^rGu(' Ec ]7X4%tnŜKpr?1椉 GC/9'AtWjaUP~vBGs4H!2j#W E8|+DM\],mHԬnvNVa~F50k)CB@sQnxE%6X#ZM/<HScW_~V΢(iچ૳熂5I%ʣ2n3+._蔼i!5[C皉>iaN޵kTdvKL6`SuiyBīⲋ:e ~;@E@׻A*v1kgDC<Dw+KCx j[)w`ܱəZP|. 5}C6ՅR@Ħ5H>K_”}1D90do_ &'`ݿo˟/Zu#C\ TU_90%{]4ݰhe\;Iu xe*FzkT!N߲u<-SA}*pP!qN(u8@ G~_V�IT)VQy0?}OE[ހe?\ ,eieD]*uu@m `JX8D3}@U>֛ f›U@+:&Vd!x Ͼ=0.)|6NТ$l\anu{'BǖQt5Pb#d0lmD\KA}\x_CF(H>1͍Cy/_ mikPnpQ޸]Ru g~ )D.ܤd*hߌ#awEb ؊[y&lq ymEt3|unר2ΰ|ǧ7i}򯲺*'(k pHEuȁzdPs32jsh.2֩wq>ډ,2Γ * ,l:rZ/֕Bm1@Ԫ�JJ Ѓ?AeS"O'127I }7=|MR^0X'[EEg@?jVF䍆pR=e:u aJ հy,\N'sexcQ<A'0'ko(=wtG>3(Keexl_5t\RFa  VM%c8fu�&.}Z6)0: I�6׿Nڋr;exҠ ' oc@Rh>Mu"@ww6j}zۄ%AY%cw=s@Yh"qoQ5êNO^p.}ISO\,R~~v,+*P't2 8^= ݚ>&Wz1s". RFGʠ`kєϟ|;Kh|O_5gZR]pG#Z8GEG2Џ#GrM+b}2tG`4&L9h 侙$'-ˠD2 Fk{G>'�zknP,05V2^r) ~uD3&G:>GRNꂪ~zb-T~|h7b]xt)'b^=kdr&uwo q_ OXy'G UZ& QpO^23eֻ9fM(?u2_u=4ڑt$rAW TXmHäKPߔY6h_8٦N~ĝ%SU n:ل~svɕ(r?,ySb[#EdmZe Fpӽ ش7eX-&0`DϐȽ!ƭMh~높F*جz!buyU<wc;ݤM DjptC)9%"z$NZ/>Gzj$ 6{ʓ*q}M8U9;(~�yA!q}R|CI:uf|w5SFnɖ%t<7ܿzfϽI/G@YPEn j!AMԧ{/gFΎC%-Ozrkv^P d)+ۜ4zm|<-iEHfA.|w9-p.z^/D$ӮuwsWT�G4, N@Ƹ1w)44PN-d}6JV~Awۮ]yA-B: /4g"v.LWZXc:J-tyG0e|22oo}gI _؜Acs ~?!.XTp@%-Own6/ACr)>>\Dg44 J$n2JvOb&R{%r vb}6-T="φ~SuD^ܖz$/ZUV#)o쫰f^i<ŢtܙJQO$0_ɛmwDw!j~.Jw5y b~ 1QCn ">@F`ѣvo@Xt*<R].3w0BܮFqՍLִ}߅ؕ{Ee0iwٔ+42f.)ȣ=Ck;Xg#q{&j˿.*ja&En?翘Zq?fWya>@qt5.iZG^T}ؐGb?@3iʈӋ x[)R|F'5*b?Q';;d7zv],dހ*n>m3Fx !)u=|m9`=(%%ķ_{+R_7mEU;eꭹQ~ 8}Y@m`RúI0j1\όr镌el?=aisq۵Bh-/q1f-0Pyh/{*Z6+1~:w<0oU܅[t#)GLg ; οC+}!xoP9UJ453+S4 s-5Ǘȃ9ʉuX(/x .~o/&5uI+%_}g-ȮG794>p�ogkQVЗv @sn]/yyr1h;Id4""33 \򵪆(&s͟FK~ռ=5鸴+O�iuI+EPשڟ5w99-(` ڌAhIJU< φߟ F}^ͧr._t<UuX73 tl36[d\PA j|T%8T }?Vƞ7G3і\%D^'}Dˣ&=@on&a^}Cxި&۸/9?Nf*>%cz2:4m&ųm]!s* 뿡\<'OY {|ߨRMkE� Ut_.M eq8 g `(ЅxQM]ֽ2f${Ǥ+Of0zNzUJ_|;WWTӕac@r@A8HBrA^#/b9]~7)cEYʩXtsXU7Tv')ko_RI/WAUs0F>�'_;^޾niW}`8TE<ډfC sL)I\Oǖ}`8V骫8X]y&\-> M |6|':xbf?4w/Ɨ8jg) -+\ ;~;ƙ=Ɯz ?Du&lɽ8bj:m\/ӦMA7Z rH-SY> 5<[FcS@S~ACM)L͛yHl}ށSeg w x I)I&8}L";o+݁N O/qwv]!wځL=*•O=@ ~ yUʨHJoA,+Ÿ`jq_+?G)`=l'oG.i[q}/. ^aΕTQ= ³e@֤`Hm*j倱m;4HG}OuD\|WQj6zN]nD@qgwmjUGzJ(C0ٻ4OO~\(6 OP$�LD*R}l[\)<WȹՑeS^VupIODt*m/~z e{-;W;M8YU Bbߢh%{?pdZ^\[Dd)<~(e/Q/_.[yr#;1ϭOl@_0u%u s|\q'M]] tA=;MҫH}s+|ƳwA.֖ExLm+D?X7Dxa rIe0Y^@ϓ+`[7 RWt63QzN&GM_+&4t>i\/lRIv7S>H I?bv.T77}9m]8t鲧-}-= U6ޔt{]d|*Utjg(*xь@dx`p*V~ycVԁ֭`io4�EЎ "gE=f ƽOl4/^}iu2 ~PEG1Gr+W٪ԃָtg?H}Fa\e0 6#ҍuۈ`n:lGP@x-*=۴ i5o[9?^x.k0ÿWdd0w&m 1~Uj -H$ `r`F>L)XM'>KZ>)a_1]P%ˁR@|#]V+F^I;(Ɨgjo*+‚kq#ځ 0 &qE r4yw3v4׌ve)@t�2hɝVniCq&_ͼB?h~?7,{aFJ& U~gk>䫦ĺ|%zAUӀv}GL{Ubj+=ۥw.fwՕ]Q^ *QpΐS S.lvm hܵxl)dQJȤx|{FBԏ~4ZW&zzktz *-n+ ?vH9q;o]* 9i aH+Ut=_bKxfn ٳ}c۫KA}{P5g7*//3B]燪 hN57YuԲǔzt|>~NTMp{(W3^^5-s__Bo\FgQ!} g3>FO((NCh-%dK?Iv?χ30j̬qcR-@Mоv/*JO܎V ['Ph~$&Dsc늘\o"xj,JxÆCkVO bw%IT?st'aōRnnqB[==h8Ot@ί; us}'U@TM)uJHނNAs:7L{a4jA]9)(5gu}[V̓9fř P=| 1VG|lhRbZv ~ޠeaH 6L;zӘ{_Pz#7UGaFh `0Ϲ޺mGM0CgD.,wnwAU`F.9q$@u Kk[=g*mVeb3M N''UwsPw,/z?WF̽chӷU#cslTbl[<*^t[E1fg.D@>sf_Yћ7U+/1w^t*NoJAfKfV#}+ zhMO\ G:}'*o$G,/sҀ 6)EBh^;{gR2V'| y`<Vr3ZE}P$n*Z\Bq-·=ͻoFQpq_^^ًNU5mȳ>ez`Tb*)(.5<o:=<w-7qhXDEF!L(->C#E/j$[�$Qǫ_`bGu? EݍJA/7qcr,s{0[rgqM*ѓ KT?<yMw^>*MpF6:6_�W;zAOѨ5+^EݞG4; cc ?Zw+j ڍ7U_ "oD8SL݌y+y}@cUD,VxGzXk=\ԍCtcuL|6깹> GQܵELP +Lv0#EQr#+dn͛uT tE]az8/}@:=^~m}v 偙>]A\hQLPv uYo {#Ֆg!0v{0?I} ~*'x=f?WVN{% TEcw ף%[ ?">NFGĤ[L47מ9зt5K�}Gd)qP6Ց[q0_NH3xg^AÄoɅe uⱫſPy_engZ/D`LhVvk~%t}8[MpU5}ѿU gimM= /q.m*/8%6 R߱(1E%D\hu*(_?�JΖ03 hR0ZRغmUלBeP!t"tOFC/ [۵QCRc'Ȼ.n}^ r!M/^@瓺&@:ty%?~dy<k6lyYJ]ѱ$?Y}f'^+M[G ~!Dil~۲`jymD`Tޑ>ٓES_#'.@*hn.E6Ö5l83g@M`fVabT@Ee=cY |3}W &8{Vahe?@1>FTy@ɞUnp 蒒ι3`:jGǿZyKH4u=$7 A o4VS{ku~vnϔThf.I2 qGcjr;=@E1Qˊ>,z?Ktt و"JwwotY!5TdO)7lGėS,t؎JQĺ0k8w'.-?u90ӢRqZ>c>6`_=- hbҴ _'SљR'3TgO$[ XL"R(.o=))cuL0jGߴˈ3H%lv<w˻F|L|_3:0rJq#gw^fB NKaz/ʓ/ qBMZ s&mI"Cgb#.%`fkE{R_ID9UB{7!դiOz/Z㛀+۱>PK(Hu(cm_*xՎϲ#PҒhs tΝ+ Gi.)>bb8Ԛނ϶D폣("Z˶thx6lyõKkGK7 |Ì"ȗ4l@q˅/ie`Xl~Y|+GD9Z4_z*7DzonB\V�))e KZa}ubh?9vל :t߼{_ &cxfsv8D i(*$bIbڙcϮOxy#% r5$W`bz??r3VgcO^GgkzJ%)iB^2S;Y㧊&{'Hry+̯U$ \ƌ{n|gJ05Ɵ A/6Uڱ^>v+40|wGt,f$1_\(PsuUn̢iKEꗗ9cF}QTVHlR5LcB4c!, דѽ<0 G+e^8.ZKq[sLPY=�eSH b~a ێ(ݯ`n5z,Q 5n2qD313BS”fq `Xؾo?P!$9hJ\�Yj-ѐ)rgT[ʇ z& ;+vAT!K0/<S2j,u5|UKNj%4e|ɟke0T,sr()"asCD EGqwhb@q-U )&&U^,ٔY?붟b9BBv_7ƠU@Փ*I|jבLk,%?vu]4}cL;>׻ZB1ּ�{#gapºh+Wh+%<K/oK3+l]RɮS'OkEKi 9um5*Uv$|@D9"L-5X># ,L~Gʅ튳kP߫8T %7eeٗUh0R [3e4xx^Byڦ3*r ~Ӓ^^kK%2$gՕ{n>}wLX.*ɝW3P[ӽMĚy6 -JZ ?A kF1L=-# 3-S/u�ùdD"(b(d{tP[V(6&ҟ}G{Kht_%xd?wQ4^o v1Pj{EH.9zڥ*0ܽ/O*5/-dZwd]u qCª _z+~֌TLsާqSԌ𘶘2#|kjJ!`EQ!%4jPGݡLc P5+_'^U$okm4j1JH'b;$;~D8D8%E{͵[W >]vjZtP0fVg+S5#z<1}%s5jΠsM&# P*^{WHMɞh,J{ JRd_b>~+:Yaw8b6Lgb%>nFkaV{壢 kZRA[%zFʙt WOv"G.st]Q^ v(zV.4=q1'dvWlU"GJ(Z-+>Oho;1Z'n7}3FI_dx+hXl}P~q9ó]tv$w@ O [ k/n#oW-L |b`דW,(xfUBGwa _3_t0_z }t.i Zmw@Q+{�nTPfAݦCk|1V~zT?,I'h}G i2Vh c~I5;{&<}h"D2PQ5n7جFM["tUp݆sW͡trwrU'h]<i {k͘:"|Qb%R:ӧg@>z*G92LgoAk2(YUCiowR.9lhqv}ZvG߿jF{Z ()9).h9 ع M,b>Q:?#`$RvWERv ]Zw|;^Nϩ!꘧k\t;X\9(uot'/3޿̣U' 4zQ_/Pz;gկ{¿@?57rڴrV䂲u/O=f /!RQ35!*4mȢ}P+tCL!9ax mk�Ǎ!~9#_Lͻ`< 9;Q [8ẊE? ˙d}m4|\  lٜg4G?ڟ$vdf=t9+2A<t3FPh"=^qCh;_rt ut9ajS*({JV ؂A%ݎfڐ]Mmϴ(@<'#}WAˎ>HQɷQӜXFZ-FgU^VH pi@(k=N) Ze<i| R7r'&ڎ*랼njSz`IF躧 ?W^)dO:o{ȅӨU]qId^5;D.6xP G[-kE'X $O-c 0~E<:WNQd鄟1bA.U$Ib\Xa9 \ d]q3-Ƞ8F_ўFǏk;C~((Z|gCux JƩx$׍V,V(|@~�Az,f%:q^8D E1s E_! N/I\'0r"tv-ZC^/K~w6ȶB͕Ơ<8nL?mk;Cj ]TlF;˛ NZ$nIm;1(9N1^P]Pq)F [es TO_1y4^䞎/>r-hL~p*,YyݖcߏiC& 5{b`1' PsQU(O>(ƃ?I Xwy\*ZQ岯=ԕv\ô|LDݝ&D_i~?G"%' LGErlYryh-Shܽ!5pVO:wVЩ%Wk`oU??vD" J>G9W s\ jhe;Gг#i?P~t} E?M.@a.9&,z7k#5]joAĐ�qfRygP=5V \SD6ӽBg}_h3,1Oш'Z%ח< -vu)U;ӯ~nqlv@L\R8&>X-/U+Og>oէ\_ڨ~ʕiީ  +{S{5x?`0 fkV~;]d?<\O`¨ N3"A^p3 Ƣ6XiEܲzGxPrw*Hef+|k(O%ur?Sɯc@Z[AncB>}84?,߭nrV2(G!\q�fZJ"5OV=j2~aGz{̿騧i GC2'TP'Icjuma%(q6U_6V/8j9S*/ZƂJ}4sq"[f4ٿQY``ѯAPrVrO'lsvu0#>o'+@DbwP(5 4Ro$USZ�LJ(J엏ۃD/p|@ R(Նn}LQP"_~Z>o`k`|ڨqxh^% |hm:uT!*~ |2V!ؤ݅ _sjESfـdr?Z{r7o+交iPEǣ"@*<O^u}>S~ZyǚU-6*6/*DBڇzZnCWHmJj#ox WKEct\Uw[_NYoNU/5yAq9>c*]ՅT(( Os@;*|0 N">b(Cx8E9?NeS!fgWUԻ}6#?49򩓲!9vm4}՚-Ю..3nѨՎB[Os#r,Ppu v(Żm 紌sAcf3f=l_@z̼ٵvo bEO^{4 %9t+yX~I#m?.i7\Qte(|Vw5c2,{^k/C5ナ:l G-w::X&fQPj'RWV5w2c377ʓim3)@^{TǛmk9ǝsGBYLav#mNåEu@>j 9L~I:ϱJԭ|:ּA:%!Oy `ܓ4qޭfetX7# uo1W9p(#??VYQe[x5Ws1x2Ɵ̱?; l/qX;[c.]/;|>r=9 9nUQ&՛0>ө@FƛU2`KފnXFն+G7x^EÆ˲`|P. gs %IkCѺNx}S_snoOT oY$aPp'\o17WHn ;JwoD꟩`ΛF'#gLǭ+<iZb|Q%1Ȏ=蛟PAxc} . `]ˈ ]_umP)"w!Xbcw?$PK{)F;xBMQաMY (Y:ti�Ti]`.V&LƴB t1`|309+MдNL* @Kվ>qHHdUݷb9 tm,,B?s7t~yLL Ѷ^`!`g|y�۫ǬKJ&_Xs fCnӌ>U]j/_Jr" z"i[{@rp"&rD,,vaT yG Bn&eQ0%b.iQUf"m`aW`bѭfRz Ώj8P0Ϲ!֯{kBL8ξ B\4K^] +$uSIE`?:}=1KP[7rk*=ڋ/;1U7Ȑ)굌1r`|z$(ǯ3'7Ԡ{S e1;Z6``~g{t:koix431:u"/UWՒYok:// oKݾ`R~w߷-Q�r:/{4IuJNtNS-)GǸOp+*Wl0b<HW\c;8)zGG0ّ�r%"m|xbW E.QzҶ-m.'�=RD?&C%*Ɏ2`�Lü=>ʀ30z@C7Az=WU/:&^ٕ`=Ú3ɛǗ'vVTUؙ Jb0q<hݺU5$?m4ywzD'5F_[Q.{jްqӺ?uO]mHUO᡻2`~s_'lR/*,e~dVTtK&+'c̫ęiC.Jsnٺjqh<<v{/ M xnZbY^DvH6+ksz:lNy1զMThV�.ؘr-k>)ؓWc늻[#Y#b1̮5E3#ҕ(w;usT[nC[{lhF7ݬpdVcSc[ʪzP~]+Ilyg7FD1Gclh8TNw_ӫw»$hdea8=-DݽԫB㠈>ZOݕBٲ%`X1.%yTc/blIO[; 3;<Fɪ&K1#Σ ̄$v߯%i KF.5HF=r=~ρ9D2@;|Z >\O[.l[ o`HC5J!z^&t^{4b?{kqa*֒�=qL;fbϺm_9jv70#EGrߛ9^WK0FCSl^qlazqhYr2S{ Bwk9C6bR |m7v@&v@iD3NQXnzBHMb# [F>P >+oXUku0vCط#/*f>{|XhM`8q;ؙM4_}p/И̾hL]"MzClv5�]!GVzkAiyyLm}+FDi4ݺ;գ_S0~+γ.O, FM�l3axDǖh(2k\ xU?HMfAO hym`I;�bAj@&.x f\}Hy^kσc/[>8IBxq34F)(Fw6P_<ˆ]og]ݞ>$j=R]/%QTДfӷew8#d% ) IItK(JFєJY$#Ȉ{8[KH;?]WxsߟOm8 ilm Fb}}$�o&BkΜ /c7S+&r+/w›ZJn^%.j#}?co40X0mk];wkUkS"@nِ.܊EPVg{ۿ˝Aw[7qԢI,kQb4nL*,fr9%n-ڵL#\}.zky `ɖ/Uac@:}5-b\Wh 8 |NG}0hV%!څo%^{$1#U~2ǝ0 搉V3Beű˿1^ #<U6cĿ[y0Wk{T{EMz^d)>I7$.&8-쑒wTx?V# z=_&:֓)?u|Mfgȥ]xd`{u nv؛:hW'^BU/sr?{%T�= )WCܪ3'ڶ1 @wz|ӶjUxGƘXs/_{RQva}?w@ӡ!/QuI%FK[J+;iN:w!9,<VzMEP~U[O�[2i }1Dɏ扭]%S w;ł'.Ӱ:< չ7qIbDpuLc)t36 F1x=4n(4b̎u뭛}U]b(1.X.lLP8;3BY޾߿w~{,90yvL|FURȣ!O8<&,A̓y* bÒz7( ,: ŎHeԍU]jSŬоwzoܴ�ø|ߒyM&!EMʁ|C%+bgեQB51C]9x*]gt\ZIn;.dj]03or":mi JRIFGO3I1kfr˯"S1+:1q*& wbr}0ߣ:ˁܸFbd^-Uqu%OdDTMKʔp7Ąt=# Xf‚3keUo{|6c*vz}"~L%ئn%񣏘du41Xy74"ݎєGCu ?/DohӸ֊uCd" G۟<wrzU N_wa҂'U+ebv6IŁ.~kSJ9Nr= wE—0Xڒ>lJY1ɘ51uE 쌚/iPgU>Epr f^6x/kfOX*wB{&]ӿx0ܱ.) |,E�;fwu~ʻ(2X5Xtet;0-Aq| S ЫzM<u%vҴSy+-vBZ3 NP8~^ Cu#[Ǭfiq52eDj+"_vL(/3pv4ΊWVeRMv7(:ŮR=RO X2~`.&9>)mE[6MtkcrZ_&"fp}53/۹iϋO\(ŗJXXfm{溌֓mm8a_TČm A@+<1rN)ŇA76 =mʊmJWAGicif5|a`{56fQ?P({ 'nPΨ70޷e;ꆯmM'B@lCT`2CB/>:>b%TTлkZ*ylm;x/߰][f[N̈xoLgʁHu6bw9r1}[`ܕh|.7ZsŌ|B<;y֙3B|>Y0QyfuOFj~3-yV S5ox'fW]mji)K ~1|sØSCϓI!;P8J٫(:##!ґ3(J>e+GMIS|uiu9q C7WM~EQ+?1sk&cK7HYd!e(Ct^.4[?֛LϒldWA{'9~M53srPDnl=+lqAܸ~->]D.EDéDn`W{f_Շv!r}1W7cq d~}u &|6'H@?:ݏm% ɚ<iLˈ >q81vC)1Oq8!R;f$&q|H2W.#g}o)~+PM7v袧¦(]I*ʘKeߕ\>+v/Uj*3aI@}FN[> а,X(Y h:/ޣՖ P@bl%:ގ"mT(dd{N1[٘援\ 1;G,1z>` $W0&@d.(oXYu Ds|˜5yqc˼iKbžO((y6+5? vQ~Lz3|\i8[390 %x"9ku޳~ ҂.DNdH۟HBBmkmu|xG(;UJ2uy0ekL)<yۋjf*=42DN6~6*Coؔ7aD>jyoKYӓtŴ9X .x^##nB 9 LX1:@NF0.xg(Lޯ W<]h܏'=ă8=( TUǙrJ bƃ[L_"v}3~hMe836_è݌J*W0lU{]L:dÑۚλʼwE$|5WZuK٨}FM ԫ"Tr( E*u %PḼPnjhʠ-$EwY!D0F٩ SO ?fCׂm.Ǣ@g \ kfAQЛHXÞK02xZ%wKFSyar`_OW [i!kNq ;Fcf;;ϝ vY>flkQ&?$0aXj$:P47ߙa^r!t&<P[1js+B_0}"ƺEqzaQ&G@]v.;ȼ==&dnzL̃ϩ'/b%}x \=`GĜN | ԎKdA]t<mA RA^xZedP\O$лA1䋏\xs e:~{2ހ!5"#n q̤D}Q#*~faHF} >W0 pO0f +ב%ıDR:;Ϳ^>ڄ"rAL"U�_44_LLNCak|XƝ=<'2v$eA#}j7=I^W8BMNJy|0x7hA୨n´~!NLCl{j@U/MyvhIrH<ѧV te)>=S6AO  ւڏ1pId߱SEZD3S4ܵT(fMV;l/džԛk2TlruhU Aq<9 ;Kw0+¯cdGV(c `{yg b3 gEĞ/hXJʙq}[MȾL4Y#;11a UKllы;4C%_lե/E_1Ff.|VI: [>*?yS/Lbۃ8$A rBQ쎎�m>#ߡ0=8SQ]zPQW\x t қ{1n^'['Lu1NI crr�sxw.d/=YZZE]°Jf9~x>iiy9HEF̫BE6.S[u0{>`~~e "0hW=K`UԿgg۲_]Μ^ (S?ܻ\;^s"{zЈYWE0f[[^l.RB'yJ@>f5PicjXm3a=*cȭw;; OO0d ]!wY#rsPT bzO?N'1^%Q[h9(?{cx 2UarF(u϶ }-7*ؼӦGZ.֥ Oh}.2D`(\. qc1ӢUOuĢwx=&8&UXVP3<{gk}P,]S-@}v8L1G@*A(ZϽ9* y} #d1Ϲ!3L'ms´Hם7Pwºe r۲_tbmI0*#0xfX MA^+qn.Dv,nt9 Vo]1H*+#/r0E&Kw{hshZ|se $\f1ti#9VzQT6K*1CVZ*v:tˮ9yTKny.` /I *}h,U @Mą,c9oi2G#1&Qo #-$]E6LgJ"]Xja VsU玄ГLyAJv Cg0G̦2sog]e>&eiuI<)?NT/DTWygB9Y?<cӻ(G,(fa ܗ:;3+T^5f?*\`r9nۣ·/: -|.LׂqFF%]kJ˹rӂ%A˺N2՚Ӣ `0wE=?6<͚GѸ~@.,@V4"�c͈T *N=IJH$c`FfԦn% M{[b='T9 bk++~<:Pc4gU?2?Jq.$GD9W%K36Q;4~ćPr[%hzF@>}4f|~ R#;H1>͝A1>ǵs`4fK~39ӑw=v\E$h!̅!?h2m_3hl/_A\c so| G~a#b)gb[0y6D%e|b+">PF(lCƨC'|=m߃@雷E!s/ȿZ(4OMkmC2wM`| j75մj UӇېS)p"yCʿA=no 'O Ⱦ8ejA(jO7Eô^k_)3 9g2Qfv[J2%$ɺktKudյ¸HZl$iwֱ -&L@At F[\0Kn{іr&c_wd;o[}zFF&u W[eY~qзd1A܆A5.Yu>YR FI^L]b`jL<}ws4z{O]HU Z"1kwV((9}'o}bw+@o|knXCM}H{QclZP3 -@s8#1 3l|mAם5j1G:T[}s#&ZR&כ<8S)BON̄4 3ғ]g�y Ǐo`$ +/@O;?ǿ]m0qrS׭ *j t8r dgnWAq.v3؁ApMBTo)&ZJR+J ($ зѱ; uͻo7Qj!Ymy h!T}++kgrA'mc0p~w$z`JuMJ~? U?415|7sW:5AIuzlal [̈́/J7~(މj5ṿf R 2N2=qJ_|pz]9:>ݷ Fp/d!zo&U?Au g`kNk"Q&Zrw$gi\LC]'ΠbkI˓j{[#D }އf#wީ3r*"lW̃4y̿n>>{pxNk"\azzͦ>40bvf f뫠*_mA(Q _۬ e}2EL{-C3*ﮣS )LcS&FICC" 0RU zA!: *֘zBvq&Jve..ǚ?1r \vBܳ_=2{F\9R{x VwƏv&j/McMHO;1ֶy7d_j?&?oH<4q>}#fYM~a[J< ev*Sw EU'Ct߯*׼l㎗} ^&knf_QCU6 /o:x?`Α{EHtθ"ڨm҈*[UM>#O `|52bd_A WH[ jğ}(8ewui OӯJ עn@J¦{f ;ymG>�J]ʕ+ Cn ꜿ| Y<-,? k}z3}(tZ0cTk`&͕7 fb-O e\d^'!dgGA"w#mjˋOvΌך0ij,?mwN0Jhpqv`o8޻gO]hf*.݉Kkx晞rXAn!;A0 kލ^I0!Bs`MLص[B\HٹOy lz&n  7cԜ wټm%`H睿ePuݢ L0F[0'Vcް^a" 2k}򽲔;o[pCrqwypOd /N\,un5<zAqڄ6a[dN V/Fh>I&Fj+W-LU3BHE{-X^;mp[0X:ApRx0PTƅ|Z/j\$67z j'N䎷ƤP;lr cGA\HC7\?$Hi}_ԇPPF"W<< R7<A {w)a}{`RYp}%=S1=[tI}>Dn>6jx"5G81gmhmV�]dS^6FjYKX6hE9V/9$A\zzYG~U)du4fweE_L7J?8Fҋܥl n<[UQ쵉Vg^1]*F]nX\uunN)]ai&2fI ڎ)W E"Ѣc'\э+EvkshʙrQpɉ] x ?'_@eV[ST7_bW>c2OQԚ{I,h<׮`UpsO6aS?W7Ib8x]e`9IriBcu@}9÷KYdõ2ہPxQ~z9HqIg%~]sORc25ak(PbiNR%=S*jnŨnzU)p\=4VQ-WwP`9͏G ]x9,U|5\cWvf3sWMJ+H*.sˎa=bʇ1qrN=fEg&\)*Ij~c,'uD*_/r +r<"nm1>z)k�r(,T##A<=A; g U8y5A /=qUKZLXͼ2(*oe  W2 r>M-F+( 苻߽[y ڑ; 0$]yغ#EzG*=3r?rozŭZ(~j>-i[+x}d FPm5 w|h=ӟInU'>`$ jal'v8%OX@|9qӏvVy Uw1Ycbdm[ +6'^;:wi|l8 LlQVU-~347̗ M~ԘeK3sJo:<ugvSqI' Ls\衖OemϏuj򠳟5ڵɔch^CT_`W Fk\oQЬ?qܦğиIu'M8p.9D#{Ժ}F/ܐ{w 7nO�E^[NIǾA 俈NorTڢAd JۀֵQ[$/g5HQ\I7FkK{-&po3Yg Aup _ڗedof[1$i!O-gh8֣UP T&S'LT` r*dlQVreǶyYO0?1C?~FlPdl$ Σ ҉QSG _1:+rZcg :>Bm3Z1yuF0#1(C & 꿟a+PsAoZ+:jcABf X1;MyZ#Pg9L _8eBiЩWE_EٝMQr|mխ$ 9sBm' 1p6Odʾ%ڃ~G `♖aP&75wl�ceu9\=p6Z͒Uȸ3!&δB#͘0(L8Z: {Td]t{K䮝�궏ϭCcVy-)m1:5.Jω3m@~̼3{:o2t33C?3]^]_{Fk0 ^ϜngAcar̲ATd~Lj2AO�nu_ ([t! Oz<F[ԊȞ?t rme?q!;8؎Ăukl\VE=ct Mzc[Aױ�4"$^Y1G0Qtht̽] 6kӱJ\π[ Ս~ H ؍M b4&ϫURVćd" zYY5KpeqFknW=S<I0`Fg_97? qXAńMv6?nWl=1*@4DyޣYT}/3uWR׈`V=gT}Oˏ,h˄ON|ݝ JTZi~x)[m�=U!:7fsm|: [hl}49)j8R$yוzďY/&YDK.MI.۪xCE^{(h'PQ3|'_*!?<gg؏÷f;쮂J-n~W2е 2{ CgqF;\</_t1;bx_1 4]-QROu^{WEOEcX-5@g=cJS_Z}*.~.|xw%x+.#.,Gp/:d@|Ꮮ rߌHoJп*KUFE0( +6k `}I1ݍv띗5Ny}mcfJw;wyQ:q>f[hX^R6:%?"6uJY D.br旎 lQiYK0ԝ&2}/<LϷ5CKJ):NO@a8B"j_FfPs$N-A/'dPY> {/*Mf&zϋ~hw׮ EMh'?򒦛7qRU+|OAr^ K|[@}^ qhtKEd5ܓ#MXټO, @|Uys^+[1mv(?휕dCf$qƠ)O^zK'A -|*StyݏL~Ac'J'w Zf8Ѝ} k>ԛQI�[7^vLֱ__f>#|w6灍PNn(LٲǍU&41DƍDT(܉>G0kбh-[5\-w /J$HP =cf:ᏙvK&Z}Yd,r@:[~}8z_me(USboc:wNmҳʪdRLhۊXHj~R̩G@>l[�3Vwׂ4zF {ih\7|ıgCuURKI{Po3ʳ_^9u׍(xynL?:GVwn σhF;2|rӃ@+tڹ3e>nۏk,2At:,>p} k{F`Mpf8Y@j s-n"a&Ӟ35#>p E=t´ϚuwRbTMAE"wˏ.br˘%]�bTw5Cǀ-4~n@3y"(Qqdťe"ymEM׷dUk?v&b +l9$Njq PtߟvE?ѽ5O|@R+we^J;7@Ќe')q?k0HOS~lEmf14.Cϥ97"DWcNsA<>5e̬]hu]&uZ݂O_/ 4=-�'JМwEsTLYD;ۖF =_4v4+d")U L/m;GeLŹ|pEAt` i-nJto@1̔/0$|OԘ.n`iZ'OtIw ك~eO dX"�Yo}44! r�]|R*F<K |`_'K4xEIPӅO|ﻗG^T}E;קȮf M/u [01E.f {tqN {F]|C~Vy9dH*o:퓔ySiǓ_@I 9^1s2!Z7%_w.(qm V{"SVbV]Plxew3ᜉc:gA~䯓:w7+lYe"QM;"_MKJ8P|@ {]-훦/߸z 8~^9b"9W-Ӗ[fr^a3vuֶ䑞| ʉ0.c&s3~a~ؾiB?Qn4်Ho:n1yvW)j}ן#4ΘSޏ?S!V&b&h_,Ԑ9o~^>7fb ~OJpz GՊCh�K2k O&.H/_Te]AQa`l^ބKo\ Fw̾5YₐZܙ>ȴ}zBN>@-sj6zUƐ崇޵'<]}hk:E-A> [>rk)i;邫w2?+!ho$kz2& nг~bPǦM4&٠LdzjcM{G0]T\֜@OC٘=ZwtI*%#2,u;Ls5x[,"WeF{U=5'|)<jvI19{^VU<՛-1.1]o!6*Ƽb1B0}r>rS_J#Aۿ(⳧mTEz?pW9S4t"Kly1vd^&OTcفg3g{PgbrQl&⯡ZC_C#$0lΖh'nnJirӞ9D)ӞaoL0[V&).3PB'EyTfn?|2W9r _0}S'HrgQbSXK=qA?'6}~<<g#vIŦ5"n&oyvcd Wr<gBD]4UU}B`æ 􉵼_5 M~hk;v7rh?oŝ#(<Y)&^ ů.;D#Z}pW&rvsml~1[ LvsHscW{jX:YY4P3?;Wpp}tEH{f7sIMO`4݂uW3X#wOW1PYvh &5YA*J`@ ê&imbD> m {Ed>[~?>ei/LSm5Ej8+n('u3AIՒ<a/ t4G'A*{ 5rİ&X@oSaʘLV3> t-'iG:;_LQ;n#To'vl菪ѾkóOԚg]Kʞ}Fw}/w]fr8fN}Zɛ[M_оSvh/r.aԉ.VPZ5>V.oAܔq#5ri`bڳA]<w8tPaHTAEW=յAp Daqۃ`3rfL]sh[Y50??͖B Ѣt0ֻ)l�å*>�.ԇp|:q'f>l?ViwgMPx]xZͥ8tbmήfgbHEvULC~~:% ]ĄE4KaOs \*�Aܷy XezV"neڞ۾#>j&ծ_V/f=:/I񪭀[gf}\*~=^=)EE$Wwsh]�l7=w//S:놷0ׯ [1ar<bVhQubAڱ^S{SQi~kq.v nbGCr1Ld1Y?eoSUgcUM trGwȦ5]%$(,VTq#*mY,x\8z;g@U)CN 1k*}_z z;ށ/]|1pNA^㋷)[ՍD%c1Q0~i_VbǠRiLg3yZ}+(ܪN�1Ȏ<YdX&'=8ӄRA'y9NL{,(G|Bc-] h .`4a`\K,1sw*J ݂†="]rq e[t|J+¶d5$?`r8fvƢ pxG4~%䋺' ?`bډ|ën؁dq%oLQFiXnrf;~5uit^dY=ʋ:>[ ƙŌ1Bc<#&(a{gTV>񯊙c~'ѳFEgo8H 0x99 ʪvG󃋉9L/~Y)ZkQuJk"(ƻVT 1ћs8#XӓhRRX/^Yxmok9Ck~s [ƫ?Ig)LPĠc{{@RO0U_m {*W7>}"'P݄#X 3_&W]c!Adv^u /;0f$zFN!3 =芹8{ Qt㗦L&kj@^o8gH3Uor~u |e_;>xym gem�MKpi5<agePA"LKvF}gOZyj ݇9ϏɠZ'\^ @K|ZֶxqgA/uxb5<p[-t՚~QETukȻ {CGj ɛ0֧EZJ<l bjyO>C;NJfC^Gˏghؠy.kH7ZӎsH堠eӪk#h|q|&gWDpyޑנa:ob^'Y, cG9w6 ;z*%3J0SOu&ᑵJ8ݻbʛp='?WG6z2 O.mY󐼿h? ݾb*Qgнc-W-%zWƹ$eGmdO(uJgyu�~é4W?:J|3c44O4DMq k?m h7N<Ķz1L3rG'[o}`̰=Z}7Rb~ EoAg0Y ! Lfeʏ վތ-|(ۼtDv" ;*ZiK?&Q41%fmUȂ"!;(nsxtڮ7v'iui,&,JTS6KOH?U'@6]lwC3]mwcڨfFf9rbHČ5(4ۼ@ŀ [)Ԇw-Lڿ?*6 5סaBv_OWL?湟ZhI uD4@k ``Îfomu#C*ha9R]n..R5}T3r.{I#&. <LQ;YsLo4v):rE jN2E蹅! ^pu+UÁO"s=B6\\'Q_]Vg%>u6bzQ`F7~j} c2Z @(-AmʚԷw0>Y{Ѭ#$ona{|1yM!,`+q#lyYߋ|Gj&7B^o)]XA'd9bs/B?/?\錣N`얢LC;7Z.ȅJ<wdn{A(ݵsZk_bsUg0xcv×ǓsNVY ߂tQJ>p3W9uo}ش iVH|Qm2= M}N[ X8Zsa0}Y}-C7Ͽz.TFFW(R{Hs7׊鄖^/ *spkɢ#76 K/c\;l:л~nm,:WB{+a8wWwLҶ̀}uMf*~i>8VD!Aˋq N0hZ,U))5\D)ҵNv=w^$pBUpjIiPΆ ܑcH혨b^G;@2⾎4&ɸ6Q\<7@D߃ȶ^>p ߮p: Ґ%*Ci/AȷM7>3{瘟݇=s Ө fl6EuNFH],\ (D{᥮*o3 Rd c P9JBV쟗;SO:%(~t__Gth m[+ߐ%ANJ5d %X&a7=,"s(`k]ageb2ȟ/pUY͎DjPxw<4�UFx)+nXUG?`cQP}OxPzAI{+JD>]h>PSǓ@{<C]_#e? /2yop뉁 O x)uۚh*H 3~ ӈ8#Fu38E@3]@>|JUN2j ?p^ҷ%7b}3; k|܅Ix+hg]WncL{ߘ!YddO&ni3uL P<kL ZTuhuR:P{u ~a3v;ȃ.]xc]GRF$Ŷ O}oGӞr׼O*4@`s; CgD™jx+1 qDA16ľ>xp"( 5ͤM1kG6ף#󨘊둶8gALʸi.x׉hL)) ᆢ!+|R0~P UJCtP%8v^ZPvjY SJKw1fа&>L<ڇNQtp)&^zG +DxbтOmA737!uSۆ΁s UYhk"(##9ȩc'(ʊsu T{O)pĵ~WE7;:Fw,o/*w\qn>7;#JkkG㒩">wy4rO+&.!.:*6⠩*J^~k*XoF`l4}RFU9Axw!? cc[p].h62ĠI?l#P:^OoNڞ!o@-tjW4A@4p{+]sr[.cj#JsGp]ZȘ8<چrssJk[NB9]vc{+y2dVMѲ= kM Y+&lpyJuMڎ$ԏ>$zN>?U~aWܳhS;lnK4˕2tv ^NyFG@J>^фk(>̐mYk^@qg5kQ�;-4֚i1 go| r14@KKZӧ*EVN4c.{3$W\3H~ՎhQtٴ k08hf&*C۶%oUA [׳R2-Z{f\j ƒݑgr#]e0aok*~NP"cU H=]h%tM&o(|zEIEflTl6Q^1{A7/� Oc Ьגc$11bč<WC<u7:;i3rZ Oeׁ0-R@>>_EXa| )rHAX~rK|$Ǟ>~yĺR,;oS{@oCYrc 7a-lrj/K o*2GϖC.}=_);cP L|fWtNM_,^4["3b]Ye6?`W8LE13oYJ\!p`zX 2瞼\ @f`/0tq~RFS{͝E!d)+YeeXQ?7?`H\(UCx{e7Vܻ^vUycgLJLBrj60 632~S |$:TFzINAP˪yZSvilEށ\ٚ]kQ?Ǩ8 ~6^ H&Kꢝni@(dj2퓛0{ Ƅ<Ԝ#gDPX0{xW +7vtBA=>>chZ9'5*Z5^Z7AypT ~T2�r^`WKZ8ʣ=|NNCwW!CO.o7X:b}{B6&x8s_p>XP+Mpke/Y۞{UߟgY3C\tzy Z;@9R?+W3rnY`T7lCg0~׽S> ^,;!i)LOWg;)fx&&; (}e|L/?7jxSJvV%r1-=IѪciaciHqi?+܁w.`Z ?_xxNSdfON3ӅoJ$QM<k'JV8 S?;Sڭ'6vOmK[op:Xj# M]匋y <|,REt%Atw:bFL?h_�9ӫ6=`=`^أly< =·NwgX*fr푿x7HyE5 (y8`ze"]bȫ8TZJ㓯Y{-׺iK8fsN>^}-}KWZ1wEs,YVJmB)�yF "oꮠn4}qG?1ܰKo"@NP@wl(ۨ򽶬B]0~k|(v[*<@[L- !ÅnFv܏V> @1w޺$ӿ~)$ Vi4\,SVS%?̐k.'f1[vH{n~/^KdnKE#WL_ub<'л//;1fEobFHt6FGb>*s+e{G{1=$BA#l#Dw]Jt{깫I@|>/t+pr: $0$/F#ȼ M]T9&{ju;97[l~1:|BlEmŔ2z1PS$_Y'bf~p9&mo/ݛ:?Qogo8w[Vg"Ѳ]N|"d[Kmz%ܢq[Z>`xv:`hhpKeri4~ny<k[h(" */Eܢxe厫"%)c)C׬+Oc&V!71ݕy Ǜ}DQih:Q� )QėX&JGLr <{̭ShXǟjLS dao{7ab9H E礙!ڷ^2Tu".>5U0ŭ[[#2]f3CM.Q%mˋ#d3>|J!{nj~(GC9 EVɬOUb[A o,OAĭ\0{/ ,Q6;2ꖊif_'٬YQL}kxvIrPQ}^e9Y(.{/P"֢t[0:*//2#buJCdi:x|Q uSЫtܹ IC\BM<>ݘQxF{@:{hn`Ia-d7gH}A8ҺD'Z}j3ӌY.% й9Oֆ{O@۝An&jQ_0<oP?K_,{tqT_N,U\ :^s+`]/^RJa[/qZk /9v;~ukHa]ȭ]? E~gכ0E_nm ʅl%CejEJݗ;4> Dl6 (M24w^Yvz`~ '~ xje;'tmjM*N,3Jn4m[e颣{]Uah _yc-߻v$12W&2>dkж8<&Şyh5KC7&˔PŹpZ=ƌFKq?R;G侖5ۿa}�óymvky}PWՒF)ըH| ;-P/3p\9rj1x|/qOr\+ B6!CBʁ找A3MgtT(yi^ W){-}0pSyy݌e >=h_ݾ~&~Nv'KFyhԱ# ` >l< BS3w=4t)8pA0}y<5EMկr@;^/[2 Lj>q)ve v^Ti51Wg}M[T.cܽ&%L9>4../U!S;觇/ Cdམ&ٱzD[25P^j[sgn󃸶|xlCƖ/3f,�?]tӿ2b9lPe=Ln{iҾ;I�Fh)7L~[ݽ wRJ#4V L-$?S<"ia땑@?hp Ct^>y)Y]!^;&~U`j>ˍ}Q~u^[)zaN^21wv`/�0moE7a*VG` !r դ+y/˙YLk2c~#Le{jZ~hb0*+<vqtp$v7F&@vr7{ <FZҘ5f7~HM~%! z(FwdK*\@ma(_Wȅ۪1[ ţygۭvށz'N?{4u K_<v[v1 7li8P0hͻ3oA߳fhH٦HƋOKP.?zDu E?zڹ{vUb8xep5UFL1,O75`xS{۠я=ڷ΍on`rKd(QyvPm`]u N#k>ן7Imu}X.3+ߛdG|6>9ˎ^jEד:%K)A+vg0!Pkaz ShٟTHv r _T6 [Y'x0}](L A[y,/D O师_*gTì0(h,"N̔s~a=kue˅#Bf"mML.]m]0|Wz%D Q"0Zt4TWFnŅNkuL^;F#صPUJ hPL\}7+=H=52sԢtV M9] rG OlUƊ{L077m(?|PhB2A\OO07A;3Z`tP8 E/c'R֩IFhkڭea {+q~�\]mX镱 9�M`�.*ǁtV!C.1$t</Z%j'w@fn&@ɡ'>nu-3obb?;J~Y=GNֿG@wEk]3pqtŦw%?F:g<^+ GI+ >,Da [ L6B?1%e~*8rEОs]ة;w\Xɠt$KlNMW"ݖw Mx޾? 7m9Q\jhp,9Dad Vzo;Ƃtu\?-IB^KTxIAŏw[Tɉg=Ѳy0 R5e:ѿ u~;1EcbW9|nAr[>JyfV *zD<ytl U|뺻tI(~8](B w<Cu_j6}Ū=[]얿ȷxՃbv̝L,~ 3.3Ōj^70gۂ˜H?OPgnaJ'&Ȭ.&)9bDPנG:V`sZt;0$UO\G}ϔ^0hgJ@Oq} ]6 aVRC dΪXQh;6{CGL'P ?ЉoK zJZNSd˼k scc|W?oD/c`u;+}(137cJ_1~=D%k?R~e,݋Bsyuh;_.;E7kN8`#-]0pgw@ʒ**U kPzSvШPU-NP_O]90gn)]j;A=  &Y/弢&kOyw3(.,Ggl⠑˼n2|[b@H9H?}Sބ|=Dٲ'2Ǣ C&!%$_SiԔMQƷ0YKo ZdD BPy/zu@7u#jG|I d6[v^?@f/╊ U_om 7y�:긒_G;mDYnT5ė#|UjG~ϻm$C`Yy#;{5:+MHwyl<7QetnR,xdLn~?4m;ﯞ$b<*´GV7nmӓ3]g61f= TaN5+yTEa4Ybe 5a$U%ǵ~bQ9 >m.BШK)M fJw'g)ޥ!udUw/gog̶G/c:`3o[][Z*PS\O}}:I -pc^+R:+hq7$|~Cݫ%AXى Cb.v(<19vC=wa$TlKyUo,٪,ʧ1Mi/:TH4y+Kg/Ll"{@ipݬ쁯 9h3~Re6:ǸSDJhjqS)nSm'H5EI?bĵ{ dQ}*T?]GvalSc[RSO)^ DZRP+rq75Q1QWd׵^+@.S@I(YU?.b{SA?-='oIurT(;G{e"w`fzAvJ%F7:7<J8fq^G4gøA[ts}:5 RáR]w�3O뀇 "{+ϟ>i+DڭSR$jz]h.xa)uqy+g.Gۿ$]F| TkǸ*ڠ\/<U*>(pXʖ^4~v%u QGt,u@oL9PӥkXA5;4S3 P4+WXkx0~j38dퟅȝe|6W]VQ{}@qa_<<9f6S& !tEKbE;b S!;+-G71\amԾ'@z <LOz4δ&^4uP3~sydz@X4`O0AxGoHyUyI26VDSCN)Z6atÃ#)u$r <ƾE+k]13%.xnɼ 7n_ Dٚ^q ;;Anznλ=yVP68lnGrnrk'{07V˘5~<Tr|,EݿXLoeY!^̴:Ecո�ږ,JNs-k-tn@ma�vt7rmv@5?}toA%jrě%8kMAqj @&)%nP>MJGjnjKLw't&Q6M)o q*ZzC{UmB֊G˞jԋjޅ՜i0CAZH3e~]-@ɏ͠,2΃kfO`QHƇM{} Z2x1#\}; 麖>٠{dP rc*:&otyh@*'`ʘD=bm2 rmR#- T> qrMH=){ %V?^=4 @P*ܧhn2%ȕ;1u-3 u';}1rv#wUcc~[,ybn4;yޱdGˬ ǮtqC(?UO>wGn `\jkO8Õij3vFd葘Q[;wŜ.\^$Od)=wpw:)s=R (Zu�#yh-q26 YqEL0X ]̮)oPdo"0>]&1^$!Ac9piߝmvs zhY*fܑwN.4L7կirg:wUpE.EWL/_!#3ÿ T>odQסW#o>Ͽr)=tPJz6ͱ-*VL˳1umwltmB$4CWָ U]bFK'@]5-~-q_ے"~j7&-.9*btOW>Z9^qnwZ18C|n*GA 'Pl,[0h*KzւDItU3W@؝%™L+G;#4 C,g@K`ϪWӝѾ S?~knPؔܒyE^ ޾d^\9A;KVM:(_/iC. ֏2s<K/fvWu SO<Ջߢ]NETkϷ@<$ԕen'ZfAэ\:o?O/v;imǔar<ӗuD?3o(RWb;߫C_$+AY`-ʻ=(#^.s Ӳ׷7C#/8*noFo:i" ߗH_ƀ_\9fL UП] ΝEMoQL؟Y8zT ~ܖF_ (ol7/^)Ecf }E<t{бw/tUJ7.7&L>R_mقp v}M.Ŏ +{PH8-'H3ˠ [$bZKvɣ-9_|E7NtdVZɮ�rMӇ ?Jc .ibhfY7*@jH2d1SfNm!&Դ_(b柄pзnbk0d" {MOQFu7CL�>ټ~v.P#8QYf|@[o|'CRb |5vVԇj=pT|@ Ai/bܣ6V3q_FG^ͨ;!| MLĢe\Ȳ?UO+-BcV\<=1]&&eofn)沦1"4]}ciq1~0JkyLʔ?jN٩z `d{0?]|rΡ^]hڍ1,tN':wmT>o4&OlOrX}6Gn`F%P: {<9hbz:AwLoԇmb6U[PGw؋磛ЕR6e,H9_Ifa#@r繦M0C;Uf3Wb@?[@HJ(^BQz'ml A<$קyZo6z^tե[1S[̧t̗B]Cپg]-[޿ǥ6Y1ٯ{XwS0&)&{"2|'VV:?)`ZL=XmxӃu1bN4:2*??a,1Z׭y0\~t95~e gYeνԇP`k~vMSOWYV>~ F%3=(sALoД4ݲ d=ijQE[o{W9~5ďM]fOP>ڋ%Aek TB, Rd-f= qҤ÷m\u{qӻF(Orw 䄞9th͆"r]:; Y,EE+gg$!)?'G*55M:|Q5fzxEEDQu!e!_$f"kеfwۼb1ALU ҷ^qv[:vN}CkҍF2))FU:s读No[.H>gu &yh+ꃘrɁUAe* ̬V�F]g!T;m&[s0PmhYS oiN6$:^ԨlZWHEc" FÒ{q=@f0(~+z;:R-Db~x$e,D?_}-F9mhW6 5Enr$П+c̳փgׁ^yش8/*N_ΗNգpI+h~dF HHÐͯ 7P"hѻrCPMs"#WWn0՛`98k+}߄UFfAMȏQ�mOj̣-A27K$(Yr>"t_r4'Co~Qα à/8?;{NTX&fUT '`Pn)W &Q$ =_ d^fE:g{e*ճ<i�L`2="?C徧uT_u]!PD\D@Q59`#HDy2 ]aDv<ɳg{:W[??: (UhȷDuF{h\[1Id?d{ah~z?E(kmQ%UsN&R&a`G_1)ϙقq:4U;̾-Kɰ.O5Eֈq Z[zQ01ҼwZo%lA:*jiwP%%rIiN=~: \}kr>j' ͽK o :'j!6c} *_e=ϡc%/Sr:f2m[ 7ŷQM_kr4Ͻ͊hNSi IAb3{= P5ȶ>i,:G0pr�|vS' ٔzsP\P_/4}\:型ZRʀ�zwe>VԠޝ̽ђװ1crѩ+'ק=eT.tUt˽í%oF0()%߷JJFu&Gͣayo=H첡Jx/3ZR!E&+9Zv޼GO"A5YWO;i۟Ϭ'<w ;^OrbzŐgtח_~ YSbXE5UG ,[E:] G9k˜^C&0Y0C 隡lmG#e%>|0[YN9\X@[^L?a\!֖ ]6mb ]m0 JBFS&HYT)=e~,A?h `%52R`,| DuItOMC'͢@aC*Gsl,կIf @s ^Kr&-/Crˎ1/onPy !]=>pX4^Ť[ʑ&AU'`wr-sTP3a[XW{/E\םjR$c|#~{7ɮ9e}rt*=r8gKbwހŦh3nL+7ߨGӌV0{vY154 1qW@v//WQ:#X1a̭]zIHbjpø8Ci8+0ziQTL~Άi{aU|7(uwa2KU1#!j@s 4 +K@kv^ 5mūJZfѣgԇn{:@_ | rL>1 rEmC Z-QILUBfn^ MNیg .ɽﰚcf"hro8'uJ`eٿfy2:�+.2(ڭ> _|td&f|'Ԣ{'5ۋ 5{=x.xNZ~γ�k \ѹlx$}nWcE0.7iԻ[սD@j_%p+j. |>g^KG7(/I?ykƣVp 3 '%3@۱CE] #k=ģ:DMg+P½M(FoA:׬5Fՙ{%6\n_PN2]0Bs7 >:uX1xu` X_[աہg e(RwZ#ӶFOa|(f9zзy-h0.lKA^ɢ[ &XR/pfӊQy0.T(ww ʤ9= &6i:49)GOqeRIQRɈ"+"DH"e{sHH~8|zs+UuV+`FZhZ<="1y&tzEODtYt]1 Z5mF[rUF&硍_Z:}5]� H-R8?T& Vvw=wY{3Q>=nJEq~KE#d,^ )37�?Y7<W^ Ānyl71=.ۏ̸2 }/B $CAT~PZ>F?^-.߷w}َ>[1^0mW6{oD]]φ<WTE,kŜw09Nzt& .joLW|+}CͫOҡBU~ g7z|]sonx%:[ csbTo:J #a@:H׏6 yIGC�Kj\G'BPmYǠQi(<ՠ+&坶8)f+@V="�-7GAG ^O{ltiZv(:3j oYzG0yzw'tYDum !ʸ]E$ut\]or[mUe6`ltsVXc=*'#K޺`F3G + Wj7@[9]nEqFMo%m9yW^QF ]7mBcH̐<|֢'O^=mL5׷g#&Z~_݂u92\h)Q?u&"+Z$Q)Ai#OrQ-R*o~ i G˾%fx./3겘Y3dI2w#h&�AI}_nޗCOIEnw.3{a P8 "߃ts* N9ދ`ϿJj|[z_"^G=@ݿLb6"u4Rr*[C(<_w.Y/'NhC' Z1!هңN#ADVn<fꋩ;՛?=NT&cۼ>Ųt~Pk9vZ/�hBoy&j/,;nJ\1g{S0ى3+A-fJ|t&a:~D^]0R8Ӳ9aGA|f Yχ71~m&C R,{d94OóDAM&щ?@ߔk Vtn  ᄎϚA^sQe%2ӟ\24~㸮o\QG]{D<\ 떿߲OYnnZ?J_ PȱV^+�:?;;y~r:;ХpЩ(aVeLz1"r-jK0)Q#65m53+u1a-Gvɉr'- BGð4&":>\!r.5 $vOkn,S@DaE'wh5ܑu)[U4-~cݦc9,OB_lq<@Vҩ6 NjѾ�9]ef'Ř֟LRCXeNB- *h 2<P<h!F> v.A_ZU7oDi ѵsT\oOv(7ض(>. TnkeavHwM:_,Q#k#L޸Tмx.}'TtZIkAAuAR*κ9ٺВ3 oz&c@e*vԬ)r=n|_ZOL?`,= &>ˠxX@>o�gmyB@  b.5;쩱[і'<p>z?=ep_�M2cZK!nTk$z % {e ?wFߥZ҈ v�uTbW=Ll?25Ķic.;װd:Ƅs2\| V&tCgF~w׆ɨ`C@fo9;Ȉ69Ub<CSI^6_KOױ(4ͼ FS.L_;>T{F)l))Lʁ`y))G`bE?p2w B<|vQ79b<㠓;ΌI<BKx>g؋*MyoddM3=J]ߴ3EtyI2xlJ+ c*CuΈ�Z8<PUrfʺA{)AT_`wȖ=O"<GB8Znl"Ɵ|]vf_ 6Hx<,Ww Ms19nm3f˛zsVPBbcoχw Z='!asfLF$SuQ9u$_)Zfi)H۳~`#PF-[ o"u銪dT;+ )6hq:ͮE2mhN+dn#l#{D2}pFŏMhB w)0zZpX]Z^͂AݚG#_ֱiDfXH8 eY c$zIߡ䧩$2Y>ݹ{GNԻŷhA hwݜV6CIskv*jslmAXSh@^;)$ qPɸsRtZL=)4 قB `_8YU\C.ߪ`ޗhuNdawg"+QrjO ?^w] gΞGԁ߇BSCD&xIK0g~Wd�{GEFhjPvp(x? F*9sׯY(Pfzϯ/l+ <6{hVM"bkJk{~dG 칾.GcOppb 9|gmSc҃z~Q,s@ScDJ}]nlL'ݔhO^KܻP;UIiyICn3Mrr, +L/FGrCoŁ{b5-C C}[otjI 믃< —z~_[&Prv_0о|V�z\uW6[^ o r+iNfR.zʹk,ۻ(7{b>0}?_r[s0Xd 49!Rlh;k;\(jlb# cʀkA[PԻ;v=@M˥^HOpɞ�fͺFhOs]v&;(κw&ƨ)U`CqI]Pj_&3r0B!*c]fn"_~_LIv$au;cqP'{_m Ex ~le;pSzz\-~7ZL8B^ǝeǞEitU8{2vd4yt(EZp=I T8Z.h.I+`7wC1&+ղ[};(.^/ӏ#&ge0Vd.>A?}zXRӘ+FxƯi<BQ8 }oGj'blmکͲu@a+h2:o#7W ˣaÓ! OҾ#~b^ n-;!b!V`0[=$-LtkQJޠ-m)jx_r!= ;3{ު E;yh:#rLdS�)zFT3w*k!l[0co4_ &}w5|Z5O[NGfFnF{[j`{?H@˦u\5<0ݵ;oPe+4Fa W3TZI3 pM:}#g[J)$_Fn;TS;&ke(+\#A?@Jfd 9lG쪔2AtuD؎k+'h*/v<C}7INſDV )܋JFk p~*"|p1m.@DJnahQ+9ن塊:PQޙm;| Wmx^;{.Iʽi`0pZɈ7~'9޵'hS/P:>YЫ nj~03w5'84udq>7x}u+[Q^<~mEphts v D6M)A]}w"EF+Seqd5R٩D,Fj oJAm^wK )\MОhO&ύ)j@3&3!q<{AKgRL"őyVcXo#PLeG0~['|R'>?{3{E`H0Ʉ}^r~9uupnߑ nS{<A~v%lzS;ҙ'H4; !bjaRD.ӧ;@-8 ycS4D¸y|%wn7FΚ|1Cߟ| ۅ\ջ r, PX=0>#1|pxPmyFwȼr{疭{[೭T1*stXy$}< !1,*Y3@}6*Em:/b(_'5q_(UvQ9=/qi=|lM1:42VρOHy6#0!:i9?7Q5&~|_l r~Qۛ ?e)1%2ZOs3 5S_1rWzZcgok CU}쉴&z UY1P :}K2Q?l?_/Bμs֠m/5\n}r_ +;Aϕ ڃoA91{2[;P`O 4ݻ:v"ΰ.%+i#>ԝqd(nD>l՛taPw<7Yr>}/:]0D|_~N+K2A7v4%N}akZ"r9W;FjY/YGA4c;귮^m@> iENd+<AWةL*۳w"8݆I{_a wQOD֗A+<%OkrYBZ`fUϭڃϔLEv'z!;`~*fd}m(%.ckUј;CeL ]}>a>p> gAZɪPn~ 2+| %=L=_*CQ{ y9kj$<Vw*(9"A׻ VŔq44dҜa(tO1(V݌ a8 QH N#(?:4o-emn *DEVN o h^BOxGKݧQppx7T5>r@^ M0IAeL-jģm\}H 7}-G}k{tM]E롣a|9Gޫɺ)?r%"_X[ozjK/kO] e�M1zΪO@S|i9Y) w9J_Z\ ?G~?a7q zH(F5ES9Pu#@ F)xÏۨvkg9~h6l,Ƨn^ŧ�h#s+кҐKj2G>gGKFsL0 V61MܽLA|^i&mh8s}39�jOªA w'#<0T*)qSg5yK:@r!1Jr/jm~,u~4;ǜDЕƇs3Ed'lIA 䄂׿$6fF⣿Wt=g@WW+%sC]@v磨 ]�;k-hkco(_EnK_bd'UǴߢ:),Z<̝90^?S2 ,1~:VB0 H06^jzY΢lߙƕOvDMf_oﳝff:hI_W@j5Q!}E_7rrxy|DUMc:a`2jmu1̿HUI YEfD+xaI,ROS#pCSϗ@[cv?#]N;-Hc@a0Z\֢8l {MV cﵺ|%,F%1 `lR#h)롟>t~,$ vb8!diDrRPGo>6k"po]g7!oܫp2Y(Y̊D2$ʢd}+0YՋsauϏ{p#sLor yY)тU;•#^OMiW* *=hfaw8|6rRHC *?e>a'{?m嘠QJ.6>yf? ]uOe[NdK@1v\ +.ׂ5hW9fO\jAޤ3 RoHߌUV?#f1*>o_?Z;^vgjkM*F[oF5I6w4Bq[(},REސb6 g:afԔJ`SG?~9{!\JYoԢ5@gu `|ϑ1/"RPQ0Ej!P!:l,CIǜO*dyp6]}YNISF%+Ջ hH?;p0J86 h<3=P_wYu~ȗ 2 OQ|`O9X{oDoo6wz VE`9zT,J6yk/]nfՠ]Xޘtub!,l5W>c@wLmڂa?`I["Ӷޡ1;[ Si@pKkHC^_u1Z=ЋJ7GhnvK3Gڇj7肴R&:g6VJ߯^(]:xZ'Vx?DFh5ydH{[wNPQѹ\*H&/_9y={<jŞ.wF>O`չY7cqhZo~j,f/Pi!m}Y^20P ÷ch!Vz0hԷt_&~0Ru֘]^\d5? $eH??3tVާ`y6&>ȜGK|ч TS"{uV @g} NnrĴHI- y:߫)1d/g/˧Ya]r)g0KP . ̅.Ⱦ@wPDt)sTu6$rHxMҽ_(PSXM|!>~^M\u0l›lf0Zj^bfj( |`=|Ib\1fO!QV8kۏ<E_uM>z$8ң1 W0TEҡ 79GZWL^}ԕ_d~,,k| c.u*1ݡzTTMܭ="сwܡ4^Ծ!\j?:JEm=7׷w5&:n@"*b΋IMf+?<~h8V|kJt#3vcԲ0cm=O?Du{ b$kuz2O7"72dZdkV Ybk.,\B%A <߾IG&~st%)3~s<ږ~ ߣęEgH򸹍üL"1 L:-yRjV~g@翓eQo:N4+¿~CA0vẌ́glbxQ*_5҅Kʓt8 +OZ 0h('ԙB`.jO!Ϯ L; @%H?e ͗>'h see|>;"b,p;L=7K:qM~= x_+/J8#˹whƕ4殪Nq`-Ɲ" !fR&8!ڌz?jZ#S7GN:s}"Ϲ%vCdW0HoEHQI߳f9NJ6`)e P<D)�Z5 b+U5"ϛssv<U$قv6P8Պ2cf-,j0%ZKDE2"?7To~a$rOckyJBGE#JR/RX!*d}JbH^<qL;0s4WՓG.R04Lru'$^F>u/<wyx =I R:Ԗ�3E1r56enGc%K%9C3#x! m!\:Y;Aun̐@R)tn)+fR!]b6]"E[;0+<IV`H|~9[R:F@z\<Bw馝C݃KYQ뛨hի9:#Ff2><=U@=sK3Hlu>}3I"z*ӊG%{\QFbQ.u~4 9\GseFd"]ܳ[ԝG!ͽF`2+/WAS_ѷ˳3h;_ưh~)X֓LPij_lCMnaJ N<&&jw2N_ \Lod0[U K]e8:d7Gz[߭GPOZ{N#~gf@:k]vxMT:bf: }w& 談¨"I,�?oI)^ +_#hѫ[|Z9`4}^ҍ%K;O �׌XEW7MZքRUPެ.] XDs.*_}Du ^&Xѻ$U9(*^'E Cibtqgʠ ao183A}p J$]* <pe }?;mt߿%9Bg.>AR<;ߛQV=z8ϙVr\y\Iub q Q>J h5P?ݵsa(7渳p**A@`]^KL"`m&^=s?#Azih 9k_[޷Ł<$Z~)@JyLO)|r>ÕJ [xdo/`Rkyjn>*uKJ @z^o$FϽv^ЏxCgh?|>oF蒓8yB49ft*4 kF Ӌo"|O�ļǯ3׈)o!Ex޲ZG/qJYtw5yyq^5R>PѬ{755^` +;H6ѾX44 10d#^]U-l(o8_7&ùKgZ81fzf J$F6|-9m#i5-aWC9q@ų~`1Fpχ1yYR(x>vF UqdZ/^9 1@( Sl|;T7XFc_19F<Ѧe~^jѓ'@Ps,6Am(lN[ ;WMխD{- _e:j]B̷qbhzXR\oN\$ohOg, w\̷s㼷ѹyϟ6-6X=)z~ '۞V: g%YBo#iآ$VJ0ȁ(}q( eII;&W1 |.5!V@7:yOKY.n3z$"%e[1Ғ/c!y/BT} g@:~F!! MDwarw) 9c70pQ-oT x aZP}8<#9!DW%EeҒ.ڄwѿEcˎW)wFmSoPZ!r>%oh,rsY:MT9bBVch]W۹1z`Js^BA"Q'da`L2u_WG֣g)taO7U'Ғ^к=.$3нRZ`+V>=$ :/Ϊ6>WoT@ EyF]qe&bʨ<x+i=T'F1Unx∬ʳF N@'r GjPT K;'-# D~sK:qzSD|F" 'Xbw"VL[(Cu|ϤXΧ~9t绉K˃rOKm'JZFЛz"3d|>Z祻P( :9 *P|2%SɄdi0V}?s4̭u5i52dkŠ粨$7vA tm;z3`vo&ÔrIJ~RTzsL="''U{yбOh^W uӒgr^}{mhZDgXZLי}h3oޙI_[T{?~J+p7&Z? '.=6_|J&LJ@DR˗$cJۀ qM wbc.%:%kPFr@Qڈ51T;;K?ߠ_g}#<o26>s5H$W2* ^3Bh?+g.|7ʙ>w%m6k]Jpٳ;-e N6 =.BH㥏1a rfBs9GGL, O˶T_j|�s^Cѝcv!Pw~J߅FΝDQߘhBx.Q=X}~- \@u.W ߯B=9g@9ۜL3a$s W(fP0-hPn6OsLsgȇ !h@P?gq挕FcZ0[h Na{Pt׈nG$Uiޅ)45`=D߽8@3P~xgJZG[ĉu:AYdlC)VLiY6F1)O1瞸YT@Wb1Rc>G,%G_A*b*>~- Q�mU`tf Ѩ]nv-y&z\EB1KMON=S L]D\%tĚi@pM~!5hV<*vnR'0 8PwE8/PR j?]"|s`OT?86 d0R澉OUҼ~+3MYjָh}ݍ^Fϖη'ξJVaZʯqo^ _&m{AY=79^yCE -RLGy/Dl5hWli0ϓh;R(sVAm.jM/=/v hE=>gz0ទeg f̅W(|)a-}c({I~';Sw+[7Sx%&ț.ĐafK%tʨ%]h=z<ەnMS|kZp?Ӌ ֌_Fԟ_%h/ XtF uΎ-)Š9,\ .%ж_$+"}Fudؗc{þ&+#*Q2'EK;)b__F]jKmbvh<!4}?@q;3"R<ԯJObx]eۑ5~yJSoږ;#/`nũҮaidܯ ڼ]FiK j[ s&ѠwdfrU-SƐU-W2F:BB;VzQdmÆ:fssf 5}n0b_76M`8g]#+5􃺝U#p͜.@Ap:_L}sn̍VsdSn0ݯ6zg HGԮ> #v<axBl6h>B[.;}4&T/g�(}) {QZ[Y8q|BJhl)C4fJ1=ޛJ@<g5޿5z?b?#jb X/X--J&f}eEܾFDb[d!ѯ^ {^ddH\h: W|5#rʽ|O5Ds~Uԭ6-fZZH*V>$[2蟸~t1Z ̒:X<]wg0i/scMV9pm-C}r{P{#:?Aw|SkP,1fVuW($4t[@ſ˯<CAQR�('_1wuXz sv H-XZ^V}:gKhX\r|n?}vh)1`WCǓQLTFzq?߬&rsg?#-5rٙ†ގMq4]jў}|]fjr?gu۪;ҺÝ(̓٣zkM(8 6I }YQ0c}m`̮Z| NT^]Σk".R ?NP%ʹG UFWKȲMYYsI5 4|RmPP)㬀!f-u % l1c_Ary -h&(d7k<Woe/IuFBE9.?_3ЧE׬+~�|4bH+4K+<G%wƧ?ŠyڰJ2/j0j΂~5(.[TM`+sfF=`n%`#;uٯydjZm:gSNProy#0w dFQ+ h']s!"?M/_A9i&[sتzUea42HCFե{qFޫ^>?X1&j!u,*?B< %QϜ})ݟQu$YYYX,EsZz`T;n6h4Ƥ"φw_} ?SI/>!?;mGp>ݨmu^+TY\sHSwÈtq uom>zD% 4.qDp 7WwBAN]aW=SgmqC'|w^)Î}nް,m4JSe:A9hG1עGv|%*8\x5ۍ@,8{yPl:\g}b/hk^|ȀסPv06ﭱyz}6v`Od ]<zNj)ka`?kk�% }uIJeg`j׎ꁒ=%QXU* ¿j|*3U<Tn"ȜݮndŃ*It)[L02fol R%tSk_tSRBOAHqT1DTU7Z1_ON_>+WJ8E\"xG\Z &4N'\FFŖ[[E54%/;-CO}_j>M%sr(kgq{cs-s|%ɓgAPolq.sP~݁uiZ^*BVcB/Me΂fW1f{3g`$?=5ִ;Zݥ6~u.= Z_mj"VQeu}̩PD`"lBZ~%|5FozK@5-m x3`'\M\cgZ˭(Kc1eu^aT [A-;柞QcQe[Q',C5a7ElEvf4_r;2i>Uk]:\'_DWlPݶD]R°ltqjH{}|r>3ewjw gdѐsmzbO /*8|{Q0ƞ.G-_%WrFS=Oc, ;dGtT+nq->b>d*i}N;dә8IlX̏=uL.i#CP=>TT}^�sH0/9cЌ }(raHa+C2=;r6.lSO ~O@Lr)+UI0%ۏ]GﺿOg!bm7Mcmn,HkbrĩTqcY_ŀf@n�rg,p#0rmml4}o+(ZA֬6ѹqќ Y?hյ+tYzEӢ}#rNRg~?s+/Ot{:è_yFT ȲDt-x8qצ*`.z=O2! 3Д7 ١N,XȱFzAG~t�y߿eϋ[yʩ`n9Lo-H'c=B{w!(<ϲ6{VmX7 ǴxpUyْѧ2.$6dX'h|4z猣zO&J?Ku{�Ko{%>_PUGIUm|%k@}-] [4}$r˗ TmS29*gW ^kW:\AL Ğiq[�=t1;F65 H od>Toai. wOE)}vpQ3{wM~ -W1$j*C 97sɽ7o(n4ޛ+Ά1MR+:p ܁N-_#d[6Zvj|nbj["уQF#{0yzܫ,.Mق2o?%%/<*Zn3QsGiw-e#l!.wĝـ 'qjմB+墱uUy8vs*fxT!q[S\ƫXz1�('T)yKjgM@9WY?5[aa92tPθ;%;5 o_U�5j͏(3;=߱ya~$2GcʍbD柜o~b|LWitjGmVճGr-QVիAŵ#},ȂPGy]?5`迟 \ 3+En[_XW>x;^6!5$q /߲- 컉IKtLѪ{)Okv<uƠ&3֝5ٻPa`n7&ÃڳC%{[߃Aa߇Uqeω|aϚMOm}BA!kEW_"}Fe{Rŏ2\)H~G /;So`䕎ɛ[ޡkmnnJD\ߗQ}74NQ̗TIC])ϷNHq:Nx^qT6T}v5Z/=y!rHg Eq~(\f*@ҟ%I/{&bA`i&z~*SрzgNUV]ws7z{b"7"%Ħ߹f jDn|DȽ&| :Y!oK־`5oGkSUj yqՄ?DM4FV%Ɨ=A]cꋉ"27 ,C;c}(H4gDzЏ�a#iIhZ)kVdC5"ÏnF- Z [ځ$#?]$^87FF+ ]D9-W<# ;bngiw ׺4o#Oо dW΃Pyp+]HȮ͌Z\I%giȿ>,4N;9G=}Yd?H]"p11R v׺ !q!`mO|ՒʼPt{VhiIL_sVǧ]|R{O/;ףO~F%vʎX|V cj캈;Aq G7vAlQ—~,gףE& _q bA{jWb|ٔfQ^J~˓{$-zK`榠fm#h{ނ+v]+.楲X/lE1S1q(šȿ"J$or#_Ѳ ƙn!`]y,cΒnNz Q~~Z um528sIՙn.٣:=Ը x[e+g*7-Rڕ8TqUP%U-�Us\Am7Z0iiwV m?,-@%nP μ5>` },`:wUk #ŻyLNI klҏ+~dnkU'nA8ʵ>,q! w9P}\qM5qdAk,3@C&4Z,ك.qeMWҸ.tWe<&r-dr-I_=M9C@6r $CBzC>-owΑHX qkvfË$®CD7޻)̇?ϟs謫F\Oe 9|vڳ<;:${.cUJ/K6anIus߰k?>5%<v e_-"Sx5`2a?#M< FPS0bX/O`s=cumK36CduJy˞l7PW9n*0a7<?FqNa(bWۖ�~/ұGDC;@Q-B ︓fgՏm_11l&GNW >*JP1GݍsI` XSfM.ʁ.7,T|ǻ0`n>'L!}h\d :SbB㦸HHvR踿B-o -HoiG[sUxP~_DϞ0\9 EņGtA}w2(|'1dWmM +)fvV 74`<J|kCYL< =}2(X/5ZR.1p#@aK/QAԛQS^"xߛHl`q569H$S"�FC`Nsbd6z?2C"E<K6j3zxFLL{t !Jou@(%$p5W4}93lfC#1磻$ Ag\Y;kĩ ꁫ_Wyg*hĪBմgf^3: fFw< g:W+Ӻ1]?n(n/; -G푐B<.nKG̹mwqJOGnq-[ʑXisB9o=PԈ&.p n t {N:V+xlJF$T ^%jM dAx4 1tI&-rlBˋcTTOӠ}Ma^@|툀 h;:M$"5_g=q=Vu=h,a/x׉}[7ñ 惷_e((FU]ү<`T%?Z`ⴳDq6[ds,)-@*͇Ɔ`ܩoQ{5_xo2W,@ձܱ q\v Z-Y`6֑??ˣ}\J-Tʹ?ɏ5-t0nѿV#S\LM\d'g|D $|>6ZA]d1v6rCnqmԈ(6 -U?2* Zxa!wh|֭&[Swj^ˆrYiLH[~_1gC$6KbRƦ3OO{ !^^Vu:ʕ[=Ͼ$(9Ԙ>K|TX;;xjr髸74G9edžh8aFxie ڜ[{v`{H?3TzΊݽt U!1*I# TZ;N? ۇ( c'lO4 xx^N/F.C }{ {_/&SaVt ›]b7dw7k*Kg-~ET"N}<dYorcڦ\&c a-b^/6 -'NV/[[Ka:(bF9Ԝۛ`}P)BEoēGu\ƛw綳Bj_oor(=]Z{N|gZFU1 |! K_FwT7)l^GP"+]V@aa$F5J?GC <{_59 Bd˭ˠ=T>ʖh>sH7L^ʞ~~\d֠�|C'?VqeI>Og.Hئ#?\!ߕpT\]#W~�7a=_%rT$6:54׼Rt J+n“nr37A0c'Xt;zS-S|c Tu`X}n|ۯ?S/u*)h ɽP82yZ}QecJgD?%jj_˘ŷ8Td_ӲyK@G־ +KSGA}AN%2[tE‡8M!ok7΁6Q,ɲ{AK|[YJ 0Ht}ST CZ̍ͲQ~Q=b -|8Oʉ?>9 {Ӊ$TrGP"DR Օ[\1KrGѶQ�<-'%!!ԸQv GW|_Z5=`<FΕJ@?%(3). @b!>vO@Opqɫ? zU~$6(A1.N^KF-SZx:w=f)t0W T38:cR7E`4>[k1qX0D<ĎVnXԞz*~壛z'],9Ȕ"b(UdG|=.o–?Q'(ݬ yQ0׫5IxO Rحe.ؔ$Ӑ#M/U}F}PW<9 ;vA7ݦTZ|sj@|Bx[.]ujj.t 縧[8=ԏq#Z}E�mGgAfwPV0)/w@6 ht$(|fTjC< dǯۍϷ\f>!4D6Ü2D7`H4+_Qv'D uS^8!1&vy^EKޞ|PgcBg#P9RLjuᯞм$ -W2x6w/}{!5W%x>u ߹:|{JncrU<B©rҐ8V%f|Eh95qE0u#B,ix==Qs n tT\p-:s}5nn6/DX(΂%*ZIRW*tR{N짳D h;,6c,q~wF^Ea@D)Ϫx6Nbh\S|7 U,"ukQz}AC-Gm{l-A=ꆭҲW|RN#As}и H|a yjFo'mZsrW&M, lAnEeBeee0L'[9:n0jcVK.ߠ:]S%#w(W[L1Ҧ]43T9(rB[9]0*V(q#[;/@s&}ew>QtMЕ'o`@h`9hWĤ#j@J/)eSw:h۷sH2?%yvGEPlH܆B˳( ژ'T_;?~ EMt>~[%:GQ?9 Jz)[kypx)f'i1AG\0d_]( ΩM7 bX=ƞz[rMMaTz]j!U{(Xc@=}:hHU~<qvqr؇+qo ^1e+ﲃ#B<-Y'+&⧷YRf?)N RHz(yїL0\]|Zr C+b !mQrC0E">8;֫ZȾʩhvoyk]\kQ:y[(S=]9@/qnh/HerP>j>_io=>5;jMі-=h 3(r=R`1v):�ͭTu6si]Q YTsxHWȥO]7A%˽ KRVxU5-3]b` ңv!f$ЯY<ị:n X[~/OU) "j^yoB<[h_пw2} УO b )8EW6ۥ}_ڤOhȮ95%^e: <NyM?yJ[$E_/W?Da,,!B/Õ"zO6 JY7j5:7eo%]�mO7+e cgAg>!2*lCeߏ +Qb~IW\cM5/Q,yt78qhɌT* =FFd49ܭzH\K {{Af6"ՕVGGԾ|d ֎PwGxe'z?bR[A/]<? V_GiYՉP)՚"SE%%ʙW$Ձv..ޝ//k0 *c-k7<Z :>c-} Y::m|o%2gcCmG񍱼`"Ϫ&l(z Byg"Krũ'_1sV t;aVpmfm1&>8u@{;j'}n!HO{cpy@&ϕ|]VTD0 Q|4h?n`_^Ѧ,0y. sh9t켽je<9"/4w6,-o>fU~FO3o=yee *>.�ZK`!!joտ_nmwkqW4Yt@<Pז߅Oel7{c_Np+h/4G|`:5m]0.?P C"nmKOlB60OhJ�3~'wn46FOбǸ ̿ar7=ɸN+PVv-Gdf@=in5Xg+SN ޛL{xi|:VlYӇU;r]hifɣhmfL~v<~9*uW.˨(QPO{&Z!1o#=>mSS&g1P<[Z7^`ͳVQG|1v[WT{sĂzOz xs)ZuYE$c24_$|d#c_,0c<>y8Jic`+Su3ͷEQsHņ?i57KQK &u0Y޶z^{co-H.ID?LJnL?`-SU7[g'ˀs[ofzZo> C<?9WHpwn_haA0t\X{JuHbPu  x*ϣvr[ȹ6̇4k\1oP1Ɍ;ZeUtP};O͛BskF,\`ӵD9Йza Cq#N-;ʭϿQ{H_FASAv<[oI#4)ኸk͘:z@:RsGŀ,g JiZ V46D9Yhh=$<SAOM^lDb硗9U[ܺnm ziĤ$3Z܍@vЮ sA {|zHƣfKk{N~Q+g`kR-7hz'ޅ^Mmɾ# );0x\b9ʯuBz69ps8'69޽Rz3kxN1&Wv~i8z:mdXyOC[˛n\笋&@{\GRI7$s QGwN TsGsI"c|]Pu][]71斳=h~|uwsDZ#-ҍS԰DUL| eۮ|�Q5~؇vqUhu4 ] /_~E|9j0FҵBCU]W,S\ǔsNGal[lZ O}XBNM"l&bP921Lf3ɱRP:Feݑ3gX&\ ̎D.w/ r 5tH4nxm_3l}v-(s\YEK䧘|HO{'jkG c`{/%,fQy$?g2dUˁF쵖yfz#&\kPӲ}aU0j m;i ,Ѕj)d%8^G)>,: V&xU 3&GaQ)L,]ANm$q.")( ߫Swj[[.jPV[R6'2h/p1 Cܢ6�K6A/{аO%|9`R<rNkN_$vY!U4,T)ZֶJE0T{aAI(+>*Z.%έ%uD/*_^ /@FP{m>ڬ~I:,]=w/FKgT9=vH-џl5û9%AѾy,Ʃ,M M*9Ыbˢ6oL쯇?"Jۻ;~- Τ9'X}0+GޢTyχKň} E=#*??7 y.͟>8ro Cc):Jғ"Md!Y2"q:vHFۮahwڻQ~jŠ+̬[\oңRZ.`[ kct߮vi0Yud>^ZuDN<rb;F Y UukΡ!?KyIfnQLdRF> BVh&)[~0{*hB0UZ^d{־7r~n]`#uj1z%e;\|;A8}xtzy=tDv-3�zs_٘2RU<*ώJ5~bfΝ^%Rh2qE 'Yk$o!cW:SDEjNN*6nM~`qj;+IGTG>NU񶟦ѲwMpss Nݡi~qLm]8SڧA*,rdo[QlŽ.vƣ+Y`eIͯΤy#Z=J{]3%<nb‡ k ?l]�q84r50+p)EPVb)Ԏ l]y2,@u}9j^߭I6(9=rDhmZ cwal!rձ~ZSsG]Ds佇_FIN0Ug|h  >Qpc^4̭ꬊԹO-W?J5Gtx߷^]pC>FmE}IjըeyM΁oc?ŰrW]lw~V}xq Cu9/գr> �Ai)1$.޻M_$=iQx{qN8T<O#b#Ac/JE8۷.uR_]njVsؐWzܛ`j^zЎ&4{'zF]@*pPJ- LR0$mBfGgbSW9htɠk$x&D|*LhD�Ҷkҝ̓%,9C]] 9<\eX%pP#GH!/ͶW;6B=7T߹mT@F$>:ح=|/U:=PCs 5WL2*8 P<Pjb45]3 MF@[|k0g擐V,X wBIh9dZ s%z^ڇh:{`&Wu!'> &ɤ1‡Bo^>wζ0ReOY,[X<yj/פ o#^G!;+/| <7*~yDqF9C'dIFM9jV mUŏ[P~H$qD[  z N5<<<-b)k~g6 JӬ6 ZP~YVߗX3̅05!e'z{. =Kyz< /ހ.6P5~B4+,o$;XR-W ay˽Q ۗr A!OK.]UśFV74=yOu+=`hJ*_ )Y:�&7|f߂ b(FۮAjV{tn7][Z8@&$@գOKOh'-J]3z7}<`m7:Aذr�74悙v{GX៮l0a>kY eo'k1!"?!̂JVm &JI,\;z҈)В {׿8s(T0i c[\7-wD+޽Ҡ덫5/<G7RjW!uOdVhĞFR7Σy韥 w;HV[A6zZ/^CW®Ӥz3K-*Xwb \}%.Ɔh<fW~#oOs34f34YPqoPF~ElټfXFA+Fn9D~  R9�ڳ5W{saMm (N}@qcfC5T= hD,iSmyMB2@:69n_le#ᕲ[Lz_5.* Lwl6:`,�-Q߯TG>z #ʿq݋(%i%WXgœ= H> փ K懐#-4.e^AnB(c8P}w§a1ZNLz姏^|o4k#UQusϚ![T+Q ꉞvC(!dz*R1i#. &oXK5Y^FHҮMhW^̇ɯPFbas\ +*>pٵ/k$V.;G[<abcWmY~Nj!&s{^1NGQzsWݵ y9[u!N LWo|,HR3IeyN]*y q�º4O>.X$ɘLZ 1cSׂTZKoKkg<aPˈ]t^IIU%@H--Ve~N rλ}Wjcj8-{ ^Ĺ5ݿ,Q<ѦMɬ0`4bݛoUh +L;J+E(_1Z"2Zk@5u%߸;bP1\!&g(mGlAM3 B|_^i#ueVF:jT8VO^(>35C+/f߿ ~YhHT^w{(}Oʆ#:APZ!qz`[ kn|}։{2\nNbb͠ z=3(8jD'?wIU_^sHhm|[PSCp%f8sep/=a^R6r& :duw|3kc<gA˾V6D_[S3}$ z|J`8J%aYH{O2rYG{R!jܽl;+>~oE}>߼D?c[0Un؊{Ѧ&܌xu^9VC7ʃav0YNx+ 3kdJM_ mjC2q4-Whk&<] *{^PB Ǘq`@h?>\ mc}]yߑ&=68P AVꁤsOV.}fiEǷM+߯4jl6GEw.{8o֌Nr+{1o~tgS|c1D"?Vn(Z,1&wY /ut OQgPS|RĺT'nÛ40ClLx GU>U{Hr~۽w޹60;uU AkA+ 'fð)0%55CIVetbYP+@oNC3-L~z_{sz{~+Ʒ]nBLB7G;/]Cy5Hon/hcJLrSPV9 l})X*=RTJLIQHO8<EH�mtpXw6YĖM%Se3oe}{7)n ¾W%&s7"^<vcU+^UGC`c΄:n{5&`jo0.YISefDb!<4AY3tt}i5t?c|G2CO`v^LmW9Έ?T "&7!OFY<0Q8mcd{PHά^ \@;mqO꧝.jE3$vYOmgso[cdޘ_*0.q`1珗-"ʑk(y/G0w9tA#f`Vl/VT"4^ݟrg zxٸ.O_"UD*yuI-IH_Pap"\m-Eil`w'?* mh[MːBn`R{LJ?ulc ?ȋ*\Ps0L6oLڈ߬mA?Ճ|5o=)c 6yoc߃H9cLcv@a[Z+&ퟧ|S!h9~}vPm|0T4bR>Ʌ[1ôy)H__f5^­ze0XςFo`Z6VY bAQ q"c!], ٻ2@cgr %7D<[9!9s==hw6QAzђ6Ptf%jWhkM[fM0oy]@,}1�(λʻ1mn?N1y1G^]0 sƯ'. 98-9~9N#~wX:d#ȟ>=Bya!Q}"z>K@7bJ3Xs䤽@)<ǸqD>7Ѽ^qZ¼~aR @VZՍ=Ou6.8u/(캋{1zԘ>9LMv4o8D0ɾxX>pwݎ 9UДk>!h^w "ŋ̹еI͸ mӬoC0ufڗuMj4}J =߅ORoqa#*ņ G9+Aj I&]=ϑE3^'UdU@gH-W Ê l nܹGJm9ihi Yr~^ZHkP4q^@C50ˌ,Q]sM?uNLOF ^?*ނVNEɠܙ evN[ 0A-Ko9 5%ݮ9~d;]4­ר?9U+XMy`0!+p$WQH 9q�7#Uw̚:'G<4Dֻ7ꒈT <S:.leJDV.x>V4έ+�{焈svq3}5 'AI6\]n8#fué0NHQ(B4Ψd% )#_iH#{HTBs>}߯q=!-݋B? \3T=ȼB.myJCx2sGL:6_ Z;T1dTuٞc7]U뎄%2Q 5ZFEnKS:)jF.&"uIUpn>^}/W."/W\#N i["glʙNFIYMZ'T,~@!]dGdU=52$|j<�r^5_{=4ddgAoyGAI@,HV]s@{|5 a7}d5?v-˒--N.YviԅRwKDn^e= 9t;%K^B㷆3'cIq~Eiϊ&ؐ|I*UʠfIqt,׳<$eܫQ}& _^a{ TQQo3ZA<4W`|si/}Y+e}㪕u@5 ~sUԭ٧zP45򤃹c*Jsڢq-s z<۽6]cI_CKc-?[҂yƥooK/_[5m&7x;&Ȝ>>v^LeUk'(ӹS}b豴%99#D ܯV(YOC[ M~zSw8ϺMPߝ`dk�9�=^4�CJ0H& 1b{5_U wV'KW<[-]B㙭sU^<[*5628B<z5$:#zN质~¸�藷*Z CAr-jN0d=}䆶(跟kyaYV 2+W|C kq@j^߿]0Vv j> OVIo2Ҏ=<ɳMֱ[h{\4/Z(60h$U9W.!MQ~Li0?v_ECrdlPㅱ=޾J]te[UXטA!@xw9։+u^:fӫ^ mw0T@}^+ ڵ}L;+ |W]f ]r]Ѻ 3|UJN 4g;J]f[`y]9"8i1 aj4a]zOBZ+СjbUSqj,kNא6<0J[gEc2/зG)ЯE>' ~]ڄQ֙{9=/V$%ȥGzVmGuG28E"̤N0B wُM` ňF`A!u0\ "Dtsr:ͦ#Q{Xd9"X; 4FJ. vÂM<=v2~-,IiZG9oC坵(l:(I󮎳=FXo༄)+6=k("@;} 45nlGcDnt3V՟6 Ipt[uy%UFaϾZYyLS#߄:[o�c-ߕH yv-< V}iz; -}m#oC峴g;w(9n 8 e(X0wy5N *u,iWPn+HWJUZ_u@fA<r\.?<E.]2]:;T> \I5LoA O+d^ LpJx#9dTP*; u+7y;{#R"Vr"Ko﮵~wohy%.z=vEf`4SH݅31>" r?B *>#\C%/B yҤ)�Qb>$y*.!ߏz\>? q0S|'#tW;zrWchѫB|3k 'i(`@9Yab4m5�{X"`j0M[7,ԡ?ؘwnv~g=xDђs`u[[ud_{mzdvb{i+H Lhzc}xߎ`_aRYϕ>o}2ŽwO`/P;,okNDJPjlkiEy s}kPWGR* ;zOC{tK<# L/K_mx&R]0Y/hO{W77wƸ|RA $7RG0BYѯJ")9�\ڍȟ(ivA`9`Wn-FC*dh3>ÄGN3ܷ@lAĹwNJg&G67i HH{ρZ}r(W7nY5[\C6E eM-A H aX<*3'6 > T)GF8]G"Nƭ7 o*11WOrAck#!% (u(+~w_ ?1§J9nƄ“ޯ~!/nxmt󲽹 (\O")8b Z ]Gw:SAZ'K\֑>!%bugq}aUnTG`u}2z u=~uf=N\RuT%e?Q-A,xK[}z)"ή;5H?cCB-ѱ@>)?w7ߘ+=9wysԟZwUqX~n<o۵Ѣ�y"}9MvJg;Gs~7i@ֿ-!)QF':W:{3!F͍{WQkiuZ&[ ۭZc\rItn"hS͘< _)K. `ZQ4#WL.5%>E!a/?yՋcUȋ҂_/rV잷 r5H9/$S ]}[C[3'N`:#-Y )*sa0 5FلSjB vUC^0t/ZjOՑ0* ]!-fZ7Tr'H2w@㺦+(cM3mNq:(j%�O⨪7*Z?b䶫'tmLs*ރ=_F9 uH[TVaUyݼ7 *%ȤkzcDHw"�;.5i VPI_gvaE +smKm: ;8]b}kʴׇo1K?4nݥKف֗QToQyGGg|O=}$¬NNB ƻ_@gnT E22 qalI5@ox+|+{u^o#<hqWfx]2MO#I*RM~ 0"d9ct]4:ZQNA]$C10j}=i&ikEy8Xw=Ƶv)|T(J(&z4ܩf؃ns+*M5xgЬw+RX\{"e/~0z2`|A12dA@<R ;ASLjXV'>a;` ?gbr\6n0Q$j3k&.9<҇_F_FЯU`*a-^W}Fz>m])✞#73AM~r[cthN CE& ,۰-シOxUdq}%7{NA-\!ΊneNqz%/xl@ UG璴D�y%-zk7^}sETv˽hU cކݍ<Re=aj~AV1@&]`?͓3`rbAT|ʭjпRn |kڿ =_A ʻkFbٙs+UqE.h".tn6,o>?3h1\y> ğK @ˑFꙄ~l{[6O-!?`i3هJgG w`{5C:D.mdFD yz -G4ʿv D)u*fZ-;灾U26>$$Sͪ}ˮ E+ oM}&:\3>6:yT2M)z[Bu yj*]D9n/]FS4uq\y 4Eo+Kا ?_!I>[Hwh;0 CwŨpة*驿.G~@M )o+E $yD WAKt4i*RPayyiڞ1jw$05EJ@0˟^iE|X0ou:D3$oG'ZֶeĴ06%fL v|w)�ƀwYStw} k5_nx$tɳHRZV. [ܽO—6>3~}/ Ie=ɱ]Zav.`o5~")(-qs m%^p>gj C^R� @>r^~3ak (=ÃZ0E`^L=E7Kren,&Ι<7#|ӿ[XH2rlOH~'Zy{ݲadؙtS7(1wCkx7XsZQcb^()6\cLa}qVu襛Q&K ^GY|B7nMcMŴrLJ?GsZN 8ֵv}:=h48g "Ν*x+]ʚCUJ cxC"wXٵrٳ -v-H#'t!W6]:Y5tQv'aʧ65ɗy'[ N=Q"+agW4AO=Ńѱ##`y@޶8U2<ISUg#=7߿<<;Puԛs<(~]_l}<?ahkk $wf|M?+>TRe'[w#]o ynhIV9=w#Ц(.0h7:+ u~W 5. ºh{X$M9Li,^n{ji'Oqh o^w9Q}mxP KY oE⿧^ǘFxoT='m$+,4ϖ4r1&b{؝`{(vphJ!:[^s;gPEgtK{Q8I~}"ۏuBM ni=DQ7 侾 `DN"[[nxr/`l%}@v1So~NuGn Gm"露W hhJԭ?1̿QU{V'yzQN:+s9%k3|=K߳wm=✂mΈ+fͺq ͔NC #%?)<=?N40PoC"oJc]t/jCP'\h$wL͙uYhTy?:'Qjc!2_5JlQm;~樧coE'FB[kE 'c-)r8ߚ:An�U;σH0ټ߻=o_@{C4sy8c\S\um}.؊7s *gw1˶#{tœ`{Y䨼_A>܅8]1f65aFN'h<|'x?qr?`h=|BTmۺ|J],Cb()|yon]^Mjm!U艜QEO/�#@KH ٔڧ;"Q*k?ޟEB;]@? Ԓo;cPABà ̩]"<Fje{CIA02Y3zg0{Uwےx\&vj~`~YQ=)z{[og`4Kµ%Pe$mnbIy˩ԇ{=hl: `$uymT %‡qyVg~âa{2F^Vd {_fd(T';ػ_yg̏yU\A^|dq%9[]u ʊ EnP]_l|&{Jc״~UZt9D+A8 NYh{>O">|1/E΢ Y~'AS xt CPwotAͿw_&Z uZs09#sauDȆI AR%=JILe!5ɥȮfZQ"#Ȓ9Zu5K=}7ՠfF7 |3~1#=}h3I f|ⵣ%1 ̲Q+ <-͠!7=v\sȤ}0&XQVL鉺~|Rn 좔3Ȭ(I SdG9.]O6wD [L7+iۿ%x4I63gR@;xQ:|N #&*/b|+cQ7;o}?;k-5 ?)Vԛ;VsbcUP\qL,!yŨ$+mu UDtlОH5Wl�ݠ$0S7gЉ-:mO^ ZnǢ}f ɇe[aPc> % wbԅOK E/ikmS}Lp[AWR&o^ګ ԃRTn9�ʥO�9>h(пnޚƆXJn2E%!Zh0{7]&8|BH \RZX̅H`V7M@J-1^7\{| =}Պ+. aJ󢂦Sg~bh<hK5_8 -oƐ42 :By^,;d&tMр7aM[ҡ?(+ȔM>{V<iz()ȾGWcج$ƫ|*v:@޺VAm5_DgW3d#PanМW]Èc;ڱU`u<k{jfr* G.q>lGԴOSO{F0x|T#p)PZoXJ_r=~oGzL6sMڃjYwXzpet‚A>fA+{yNI+*5=lʾu Vev_-Oj=SEI} G`$QYOUՠ0L^L낺;{bq]` YD)g0Zщ@$wΥ-@/;7y-$%wП&%~@Sjdu<6ASU(72/2w>j_H];V{16%`f]| r-ʃqAX}~wE‰~\QQds7\5x rzDCM۶>%Ox 4NX&zp=|mk飅Bz9(ٻ]oT_eXcr%(IPݸDդ7`~NDccʐ‚/H`Y E=S+3~"P^5&dlxVl~:ebLW:8C14.6!qJg1QA^mk@k TWaIY.z\{ah3Jl.oEv]n.M 6>{׈ ]!�vPJPvv;ek=[97O^#d+ �IWvQLl; T={St lQvG d޸ߨo?*+eyON<%AƵI|!Q>#LVh9Fl4ߣyqڃ2,^.ș+" ReВ5Ā:ЧTڦл¯w>U W[k -BX(?Ux_UAΰ/g1pbqTԦp?[(ZX$PJs0ң=<C9`J~V zZQ%UK<=w3{ºlv! FK;0"e^__Lhᕻ@ {qF$y$%/"˷M`LQX*)i-%4TIl+ Fr("_GRT@x#QV/inU=jntVқ-$F*7˫!O?(R AFw" ]mk ڛ $P-k>&+F3"EV+";ar"XV[V ǝ 9&:.k @y-xK/H}ݫbYueNDZ1$JfotYs^9{t^a *r+7w=(L!j͝ij=F֣¥x|۟&Z|D JhJP[8⏺b0o:5/g#{?ɔ+Py:{#IVbBS;nU1Z6m֧s_떳a{ Ip+�+=U$W9ض&fΕ`u 9~Gu&/(suuDN5}5$*TWpgBPmi `}M4f +xX6od ѵOW`8kc9XaFIgFIss{NA3 *-JJ7.'fv?s?0:mY^9ȍP!0 [ʃqM H`uگPPˀq3vGK5$am)Q>4.*YN m6ފ?}mXKz!F+!bSdC?O'K'r,T߸ FIg]@u3ƙGf 罺缈(ye3 dC~~n*ax{PW2>[yy=H7T*L)%42H$xaBڛR-\`8W":K yJ�kW:t!hAgHHzEkSUߎ+޾sU2J"oޞMQ戮'Z$bBH5 {%/MUׄoO)\pCv[7ђpCmGBa|k04s׆nT{=k/lďfo1ĞOx]3Ho/6F"7rCk-L!F?ʍMAR3L<)�~c?+|b 6 RcNd%U{/N\l}U_ BVy9ӵ YP0vQ5AePٕٔ6"صe<rjN?.EWW6al�t$ *DՕ2`Hny:>"ɺp ti&^so&OBc0 oy‡ `nɨ=ܘ#7{ŧ薶2>.MSΆyh3q\t{\քζƣ@wй[y4w#4I VA繙glզ?uOSW0MBn3{p8'P0t?3 ^FmPE0ƎRܵ3Έuc)`X Kl~ W& ?}B|: lw\ݒ5Ol ̟M r~_GtP?FGHYxeg0p_$-\#3 :9ܐ5jmJN]+=ƴHPK؛|^ygVbs?#`?mQKQ@챇W@:]^| ن}~#Ҋ[f69]p̶aUjqY#bl=e&d>uxfrW~EO�SH'VOxIpb9zEmcLY Ee$\Tf&̻6 o~H#[E If9^șyQ鞍f?Wq#okv -/hJ[/ c~ܖOQ#ujdbDŽPU/ZVoF9ѓx$l.oF>Æ=`5= k;дgwka\(uAer(2wc^^\9Z3 ܬUbh` y(hia䑍`6uRmv(deͫH@}(D8¨AB W]v.:-ۂqHMZ'/AM37s?;Tnk+ '~ʢ$3=k<3Ba m-}C ǁ:w͐?b 5F_+A>}M{'9=n<+C#nCn!DƁW;k?]=a}sg˭4@E'QK̜3胃{/h`OZhyye˓hm\\捃1o})LH*C=Ǩ^q<ܩ &bZȞٹKl@1 U]mmډ/ij[P=W#b.B#3/| De\Ջw3؆vY@>ߘ)`#“֊~6$iw3H=pTy{=$Q[jI<kZ]sP&f'nKڕM(nnN Gb|)h@x\l4/~]KT4ӉRQӨ_ɾk�v\}9R~^H>iB4zh I KG&U#uchHY]Ũ-sUZ eoY[yY>~Ľ{&4ӛÔgNꂵ,6xH33a\[WET[&c #徔rC  <mbHs)xR8~s4ǽcWmnyԭ8or%s\`1Td0/w)=Gx&mAb'ςQ#XZbyF (j-P߽툫`^̃r}8XCs]M ֏t`,"M(9#H}rn *oٮ<zY i8A +C<tJe6a^.PVB-]剕/>p7EnEd ]̏ڑkw@QCtTSWyj5=Cm{J̻ 'keQ]h6v M�m} ]8tqu6-_,@vh| [™G+IoW7$'N{P3 ,0L+MW1\6M2oZ+K_z =юQӝR̞UDf<SP]~7U2ŎT'i3Rp|ʢX57N"G'\HmbM֎~P&?(w{PV=']j^l\.mu:d` Mք_\4< j>یh(09O~y 1a u=.ԡ ǡQ:V]%$XE3+{Qj7 W8�%?e=ه#gAѯ�!ү,a-3ÏZvkۆe0!F? [\Ggq5YJ;+HWwH'~UN7p*QAԽ7ihPLv(_at]ZjP_Z)?4]A}$lZ%@ĐCku:'GNZF__wкM GduH;`c!h}fx c#&Yo{;Jbx萴<e&^jq 8's9(n'ցַ{׫.ף\5ʿ˕Q[ۻw'r)$j 3FW]̘{ǛXӦ؊3$TT* 1sD.2ij`,GZE] /Z/yfqIhi4FA:osFO؃/K:ƚ+4pM-v[%ho\j.!baMxT8c C16T�̇ۗq)Grezd>A^Y%|0zU:ވd1Yݲ< H?>7㠥7T{gbqS.ޟ$Av<G\zfQbZk0zx2`<ub=kOJ _Jՙ_9}*jRbi mҠ3\nZѶ"2Ɇ>}]y%ch˯ێ*e<~*G=G7[$""GO?$泤g(5v[2dwH<0.l;^OjUGRj=1v~]Q#*iѡ\]Aۦ➆ϕ?Vw}Zq^uC</TB-@?9IUkk^Xw`Xl:S9-{׺RkŁOD)L3c}Fh$҂k (qDp8X>lz z`>{U{EZdMk)+2%Aˆ&RڈGL;y n8tłs.>[@z@m0B5g&"3r ǯD=PAMEC˄)`rT M?ܮe =&3ÅP*:߼<Y=  r6Wl]nFJ0Ҷ88\rnVį=5fc^ WZ>VToO׿ j~LqQ0}6Bor^q :HeU5xw:\mgZ.06??9fY|s:bxAZgd>ػ}[A7.>qʹQAhjPG^E߳h08?>y j]<*q=m߈0+/ 4@xe/{v<7G[d 4;4v!,4}= q~bdb笠b7䮷g3S :-ӫV]<M,q#`SOڊ`ǃ`/By+|:0,{EFî.0[nPDߚ4wt^ dyN ֶui84ՙ2N.nMMwic(I>N+ւ}={گ#y"[0d#șκ*Vν3^20|ėhI2εi32](rnN ʥ = k}_9T '<KyO`Tb۳3kSy,U> n(+",t!%O^N%gc Kn k ;C`_g5ZlX_ "Y@Nz#u{5x-I>j?snZ1f`M6J (OUx[ l Soh S;Aq`Xѿf>q U=ڂH^/^f[B +y#g^:1߃=VR`f  VF0_IoZ$ͷW�|2Q,pc'e]op=B_qgb(.>+_uj`̿ ғ/*_tdgL!l`TJ:$_ٙCƿ ?T3BߛώMmzfg1/w#x.X(#,Dt'OWGӚ aٟ `lESq Jhss;:^{fLaAh5%26)U1d*|-&-MͶ^[-# ۰0r+#/cxv3H Pr)c|)!ZG[P_fzsiuѭ5"YN/ Iy:3c7nfI|Nࣛ찝`Ud4A[/UԨo{OoJ*Ue<k6B?I4#!Wv3JIF"̴:S4{_L$/;ϠT=@#_A[?1lqOԌFܩWPx;YP˟hEYE#in`OAqO'XۖJ}5O6?ۗQC]wD&~ +f7,ц9-n߯#P);wM ic#BAܨ;蜴; j.gɭ'Q'֮.^cU]Hf3%4Ž PW)-12E` /$P};n}8UgFFÀMڸC<?Y?,֪Sݨx{Tǭe=O-ߣG"V_oB{>&Vv:Q֣o6"7^:8׆6ے*cmZ'0>~V(Ao.B)ڸ 0=E914 hl=H{R?$Om৊3JM_FmDsA`ܛ!}. "ia9`>/$->ZE-L!|0-kDiGL^^}uǫ"`ּH�Cjsl\,vG࣡"yU~AyKF ,ϢXgaI-+TQd| b~Wy.hfdtMـrb0s'_zWp:կ_kjQNy=b_D.YsG":gK60C/CάG:c.1 Q9M(4VE9dt,Z?ͱYiH 9.,fi7E =YvȲt cV*8)U_|le(פNuRs+K6qƘ+F"g?DOR\+i{I{<'& W3BIz|?~AS'eZ~jP줸@< j: OWmRd s /t#:7yL ս<F'f"?fݣbQ㵺cHq)N {O\!G}ߒx# o@筟5^~Ql<񍌐92Yk}`{)F[˧9+hЮUE!oޡܾ:۪c-QA^ȕ�?Svc:*_EJC˯st4$NMe= ƃIv(:5R-DY\ļK~]~~S p 3MI<`t>`w |$n;n㛎D)4; y>~L>W6JY\tWx~xn=7NsOA^ ^4m_[9Z{cK%4yνti 2$g ZOܲ 4 nb9f&KmrN'|+ m<˱N cU(J䣝b<A.$kXlAG <q[~/0C}46.*M NYEұ>cbJ1F~Uqz,__ː}RaZϙ t$8;k<`D)_@[5Ơ3Ymct$HIG]bѹȺ|dN:hNk.{zj ]PD7:{@U(FY)ԆD;}U4}Rqw(]2m#XFsPVm7a*ɳL_꽹=2`6F N;j>go6 ՓJI/C%m2w]4�%-W1¿jntjoS|KXWꋰh:ٹΕhe:W)j; Qj~^z,a~г9yEuEj<vy:N:\~ ߫}C㖃F>1PR4QrG·y`pT )tP-Z&7"k3�=iA?}y 'D7?HBN=Tդ!YR.ѯ%1UՓ9%^Ɲ[@˾trlFFi΃Ch\?>))S^y׻@id§/)d-F# 鏡Yh~A* ʣ?;^gTb_~`當KT}Yk!j^,CE9l,܈Q޶ y*UY 'uP~aAܳ�3tntpODsRZsu.No;pq1ثld֟* `V(RK{RχAz&ް1CV2`֟xC.&1Qw01_?=EA2K[Av1R#.0!(k~[ ZUꉉtd[g@V߽B�%' d~$T#eTՋ;[jX1Z%;rɻ2͠_se<.//"wOM{/,~:zc?V&SIo=W>>؅l#HUB}>A= _YN ?3sb"sޏbd9P mv ;jh_FCS}܀�wWQ2wo(vțNvݟL!-sqNoBv: h0~m D]"U; .mQC�ڨ]hzq ϟ @2hSBhvQMXU>'ݦg'Uy:lkp\KW|%Y"9Ak;7vd%sa5FDN-CfV:1'edL b^r^_N۞oZ2a;?w;|&4(^~?G0yA ys-Fz$T9~ݲkQ_Q0T?Hߎ9EiRנhWyPTSuڟhڠ(rGKY0Z7B@Ge5LV-#rAyNU,?Z2⃭6w0&yq�kҽFIK0KEjHn[lAKIDnuo$ڜD_^xp2'ȩcZܠ%8xqv1Q-ކ&mXKJO򦔿jD@"fl>V�tZ!#D(H49.5{ ]/["h!&2ּkq[RlY~�ҋK4E_7>L1C]EHx~/JYo<bfMmwopv/jN []!Mٷ\ +0O5zXO0GҲnݶIp}xꥫévo@S8w 5#E|ml)XZrQ[FWC})BO15|%Z{mEeZ~(CU~m˥O߳.a4{s!Sz׸]-yT fT'#+Q%fà7;~#C!45WYK;0.<{(飷k@Z<oB@]uKL<]̱F"kŐ1#&e*>'aHǽ vdY?B3%l+9]FD dʅPђ'@qתOC$L+)@=>KEC ry=T]>ϡ˳5b cJ?h_Jpk a qt{x6?uR(Xo`)A*]h+Y�î^S`l"%#~rao`/s\N9d3Of {۵n\Bfsf$A9<IsеH8vu*Jz<hѳP66OE4%YG4= :$97$cTL9*0&{wg ^;9qeK@(&gzOsW ZzpZ uH#ٍe/?;_8lϒ<tP/B:[r*`&tK4LD*V9rk&�q@uY,C/@S@y gw+n`I||vSF_Ԋ~ȃyvCŊm0>qf͝ki`ݛȐ AURk ~ݭ# Vʌ>~Vw Jֽh%ڝ!JoE?lOS 7nrrۥ{r( / ҧY-j-h{Ǽُf٥UPa2-}~A(@׿*;`8@cڶLϜhL/xy -uw2<D ¬儏?@AOoÂuәj48ǫ0+7G$~eWT[*j&jl#'}K4F-ث ?Dy^/&|vN%7{$d7/;K+~}DYgPM-t!ŏZ^xc9_r48yr(0uI&;e|sMAo2:_5z܌ ~o:RY I`V3jhRd;0Vh_s @AZg@>"Bg10!4$Mwq S79XKAeo?+4j@=A<>h Vنu>`%툻[~+m#9[b-4{O;�ڈdwS Gh1|*�ߛIO:~acnMFqG<݈sڴFTd@­-^i6 d ]_ *SaWSLPvOF7P1zǑבc.8qRoƈR׈QEs SjU,bmtwsRaoQmRQU,K.O"f uiD/MV_>4 &P@ç⌢Ujus x |NS_K@_+ӵ}mFCB%m3toܻ4tL,A9b z:ϕ}F}ũ]e|==ڥJt5-v,\ׯӤX҄'^PK6O0xqk<UcmG-l"dW0|gҏ vЭ~!V.ZBѻ VȽST}/|awdOtvFNM"e0f&A1ެ"_ޅOBW;nek"j,JD-?ףIe4=Ѷm3nuN-k'/"-G㼇nlrSw@  ޮ`w?hJ=/wIk :ХµAy5bkY\_qYhTSQv=2\ܫVݛWCRN=\SB WVu-я9OPʏZ#Ry[xhگR(ti ;ЄKl=4kO,ml8>Z)/ P`"JVmdDHd%=$u^ Qz^O{PaOܩXg r\\cz._[۟=.p"<˜mEtO svUY=-٥&bЖeo:@on`-~]+Hrǻ~kþ0|Esew U4lD{dž*y;�j>-|RAUޑAΪϔygV~Nj2e)ݥtf /э~@)s7 yfJ9*k8WՒMkE{GkxZY w ]9l yfG75Fˠ͝Pq\F|#PNylG!vjCzŖ)ߞs}W:/6?鉉4Ƅ,$z1l\Ș;هH,<syV}jYXUۻ?FZNW-jq|CZ=|tx|0R-u`yzQwG[9)wwK0 dm@J~c[<̓v$<T0,N)xXnn_ciA>zl;}lAy|&-y1hSu[k@KA Ջ:д*/'WsgPv%ROOdӊe}1>6 .٦)=+,D3Kht,E|;΁qq4pT<`Ͳ=y@P$3ef\5T6 S~/�U&} $m߇'N;,jsk0Fݙf;3ЕkWZ~_PcΠ\}ہGQzN=(4Q (;Jez tlIU5V: ɫHhzm!F.Y�,{)miɠ jȃ-ި:HBouls5σ0ogjFB|qK(ۜ> 3L9A[W^ Z|j>~όK3$T9艂6ɲv$^2ZԷoAߝSVjXeY!=T31%Nc%U#CByd=m@p̷k]7X+g OT9PNʼn7|-3(;ٞxj4ܲ#|-/\9<osFsln^PNk#H`,R>Ήԇ @R|k5* Uc!>|zi cuM;gL9a跼Ȳkt t=E_f.lCU뿡T~_ FOА(u=gxJ/`Ş$s2rT+WLj̅*`n!{v94*t\U1YucAT9BAAݶ6G,p)0fGЎh?2pES2CfMY]4E.(ݚ9v_3N(=y뾄j4H.5_To6?;Wlz#Shܞռw9ZIԕ`J&ˣN0qsߑtsݓ{02xT^U,C;%uM$oYCtƇY&̻�˭/נWQ(l6ƍu+סT=xڒBLyx_;OBIhgPI?Q,֍$_eաFˌv20u}DB/garow/ nZc Gb/_qC-ji/t% Z߁oTѣ{ P͊ :{gG3Pqsz֫ʨg|\{򏎪Dqˢ\<YDx/_r{iT>VtZ;hæ&4yh?Ӆ@j^y�[sSdZV9Ƙ&:, Dr#' P HE2) O3ڌ*I_ owŃg=@ԓ1è5l1EEa_K5?Uڣ\x9c^etŠFS}>,_ntcqX|Gǚf # s&=]6^'Vs5a"h�;Uʋh|ciڹBv@ҴX4\Z+W Y|3i% r)tk >}%T_|6T qGDTk(HtHc? ԓ(fVh|cٯˡSxz!;IޟQ濱zE zżbh喅A{њ*%#'ق +i(T?z͞ r&xۤ2H`x%M*B/].PwljC`Y'g=Jd+-REFXiH AA;ss@b{b`~48xO*А0y>zmFr@w2= ˝&`IH3` MյvI2-Ӛmuq/UH.+&x^gWG'=n{#7(WMC1MТ=s%1m;875n5u/4o.j 0w*r!8ŋtIg|Y<wĢJy<Db!XHN:S- M>Zs�g?5-GcUzt?#.ݘ$y _}xjB ȻkIJ+ 8nS�T_A ca9RO(+ m [nDTZQip3Oܛl�Ji9Ҫ£^LdA2u9*4G|y,gyΛ5 s#ZE{j޳}(bFAH7:iur$"zxwЕLl�~GAK`guoU]z Tݑ&wogh+T޲Ňt:vib(U/`˽>ҶҁYEaSDuh|+\Z޽w#9xJ vc|gio ґLД/4. n:a͘6P u @ s7+SoS[>TqMw޼D?@)V;P=-q ww][ьdfTݬU`ڇ.˾ {=;߹WRN$)Gm]vsJ?%vٳkrR -^)g$xtn5J.*@ 3)?n˿cJp1_?(x7 ,�bƷPhEyk~o)|y8Y$cF)G0mEyD]y2h3ph: _=eWGu]A@ʢy>R(v4:>'4%w#u)C03_ܤ5M /h#T}.l81$0=\y?"YMͦ[2X-7`]_xeJK5Xpe6ȩrnŏQOߟAk72:j_1zb@i)Ar٦V` CyE~?8#XԦPUK8;)0mfvXtR NyK u&2 h~㟪 /Ċ'[ h2vCWIYS']'0F,)9]k*Bǯ2s4˜8Y:?BQ} ԬK9q{\$;>z{lCt&޳e.k%̉\#pQ #>­h5GV qe7*;[ <eͭl7|g� i7e市if~l;jh#UX= _LJ^Xnx`K]rkx;h_S DMJ3JBV9^2y ӥj$rLZ_ Z^N83. I^Ag7Zf{.iѬH"hQA^r?BMO6^&,bC?v[ pJۥ%:aהԅ)q.=Ok\@n:g:2;S_D4kM: Yj NjW2M01ܴ}*g;u>f$זLTt.0- sL][ |׋4C04y6["6Z.Q#U@h^s'ld_%"ʌJT_f7:( WwA:/>Y~NJ%,T<~MZ ed4|z-B)[ w'kh腌$X7ٿk6X<B߃vfI`gU"g6NENڦT|Aj=;/GK]krF+>߸]2Aң.ʜ'߈1b/EÿGDNzE sՓ@n({ `PMծ~U Y0|2/H2D*@vc O"FNmNl}Dl_QQDݔu) 3[W:ʲJЏ} T>3-c-�jz 煋#+Q8ZpUjK^=1]/h~(-Q[wۖ{WesQQySM);A6@ى` De;M/e`\7Y{uRNH #SWh"}\쉯Ѿ؅VtߌY(ʸK[%!O`*)2jo;"t%n МbDP]̓}? iE~¨PP"=rDo]Dηn7>C㑐/PY`^]Ct4j+hEK{7i}J<읍rEqf_D1n[ٰd?Prq́ef( 4𬠄 ..\[޽HLsIGUdUs; ,ѷ+f=ؓOAqҨ'O?=@峒)<;=(l5wu,t[Gewug _&ZŦӚATTCvv{%Y{jt'xSg3hW~mq,IUUZ}t9ƪ&~pChQ:Yaz#vcdFU%u]1,�L4 `NW+}NyѾEcM ^ ʍ 5[Eܤ/Vw_kiq"uec|^7 љ<e(#)7Yssp/ wz!yc=fDp9S`xᶩ\~\�Co=?knvPlgAm>{=TϗliH:R%/ E^'"c4{j&םseKmP]4$zk/,ZKbѶgx{1 枥 ;A$8R+'IޯFZEΊdzO$#aqXO<1][Xatur餓"I@s{lW2e0O&(EohڭfPud?0\5Pt[Ff 1VzU4X紛\AcM[WQ6"Beͧl `4xG*0wֽ.<},g7j<9u+7í+}yD {f_7XǓbW !K;4U L <?8u0tP1[ 4}-k3'wK'򺋘T08iz4ʀ 1!>(k KŲG6T5Ջ=;k͂Gx8ܴoե>~Gt0Vۿ[ǹ`TgRz)ǟP Ĝ2kڄrxZ<iQ4<)>rmstߦ * +3d5od&mwuP@]3\A FpgW~nz`7 IhRjk#ÿb:uRCEP9 =Fܿ[YO u@ ==ZU+cZϷsg+QrF [_Hʉ%Z\! ;`ߢol ŕP$A7SP0>ap;'߻ >(x1^n)=pwt#o]<%Y'L:vKlcT,C\eJA- Z3#^(54"&Bzndd1On5&?58)h yyZ1rHG&Vb$ړACnϏ^֊nt4*sck#eT픺 n纑BVfC+C#DqKa_<1548tXPe _J4/OS)Gu0P6I08^۠zᑋJsm~ ujmAҙ2r>WY~uoܫNr%ֹR:4:3Pgۼmz+1G`$w-s<΢OY+(A°ezA#!9z;L? D|_2I<*04!`h$MZP}(n1kFgni_P͒uV Ka/71<%*6}l<t^&%TxMF-"#كw/ߤ-w(WpkU3){?\JZT-Z /S~@VlF*6 B7qM>F֗MTc`_L'{%,-y>˽xh%Fc/V:>suBj͟eաp%5gv?{΍{z L\Ϥ&Z":q,uAy~0%*]q)LwOn6"_>|vq x,q=ҳflQkhfw75Se.G0 #]A?w>b_+b|GoVHuW" AM> cojY`.>/G˯,?84tX e:f yy_e-ɏgC{6wƆъoxājc/Hi=?C̻[[pQ0Ah;S hoiQqVK% FlL8 #ʽ{g1p:9e75[TT#'==F9o ɉ5 f΂\c>~#+:ˋS~'lP|}]:FxFjֹvM0_(N4Y5ݸM90N ^Xz-gi <Z܇˝/gAm "&ƸA>8U*ﵩH/ܻ<UU%>AͱZE*ar/?lӦr~~GxYrޜJx;ZzGz(y Vh30xɒVIuESF>27@r֍(VԌW_VT`&]j}>.&AcLT&JE߆Ix%п\e}v6 -Z'x hQCUF 8nϟW"яMA;zƧMyo170:h5`fv2AݻٖCᵨ)}Y;=;flQo+ϙxłܧC_j[h Ys/l Ph[|Qv=z#mqδuDU 0`v\Rϝ|]5J>0n0{5 ?y[mXot=߲߁#e{dRs0Єȵޫ1`DLg ~!1ԏ>Y璏Z{M9 "+6bHd_S4Nۏ`q.oDs UO, ;jDkk"+>;$ +˓"ې}zR;_Z_cC2DY ̽e9`]ݙ eg(!Ke|}nŷ#}̐"PsI94v*T83[eGy: 19i=ϑ`6=T>mzÐU KDÁXz}ެ Yom]ܮc -w%{̴zіNGaͧ(03=ǘMesuibLgfZQJ?o_Q|mCMYIEw"+NdtLXDܻ3hJ|Kq?x@ruoٍS?VhgL/3ok@y1أ C$.~~5ٮFDl~eF`?΅ظёDԍ);v0̩5ڔuQ8Q4{W7y~IEM@s|'D}zT6?9@25nxdT|�jwp(waVqU5ovh1H.%̦ oL,x-ʏĥ{!c1Èz%(m?8f*f1G_ݟ}󛑟|2< Ɠz`ډjDqy^%vyb1^t\+Ͽ[zb�j+X ?mt?'on~B䘷S]J47)aw_"1/IB"3rGAqgH$ ,Ɩ TN>|Ed`bS7۹dhDFV3o#rcn@ +ՊC:z~YH[V bdEή,i@E֋o_vr:J_ G(JiT/*z;6 Ѫ%_"KХ+gxu�h _؃ViNg5Q! 6Vut_ɁymỤ>=0Em]f]oөLeh=2hI܇GUi!{Ԟq;*8=βigg%RJ䠍/3}REQ@m:I. uwO^qy2 ֕*ft_J[ Fi7V67:<fk*vrEs~aE@[㠧 ߤas.?+>dv8OQNQ6TZ_bo?v; { yk"Ъ/%OŽ"%C[CGAhwwFٴ໖^~6r\/q<sDWT!3^zAkT JSQ9ƩJIQͼ'j.ED$t0(:/ JKZ})wx]5;r԰EJ6-cӈ95/!M e:}9th2Xu犃9H-~pyh<޵gCRsF)E.# j#uTC?;˿áPT.$Q]$TPR~-BHѐTH={쇢(~8:~?:ϣǭȿ>H ]tL/U9 e(<r{Q;&䈻=<A34ʠMPwLyqiwC]Ŵ}aqIe''LJFՉ3 Xl?C.GA Vϫ T6O-5>>"&kG,0yLl qF('Z9AWay2W8gtu@-oPJ?EFDQ<ܜ +@ko+.wle=t=ݫ&W('* uGa35G6X=:Ѣc#�-:O}[IQ}mK(vGA:X%9Fk Q4 Θy*x#փrgj)x�^2I7z8OG[ya<!Js0iˍ\xDMencv} n|2S^7[b"_})<Gxcs7)\[-AD}Fr y3@u3mlW4ߊ5qoc叁_iTqI;_�ޯDU "xO6E8+?%|)9mO&gaYFLXoai,_(=zs<L_57ԭ3$(>[a'+mYӛsyRiu|z:_UɨWaFbb"~-ڔXB_NgX:lVƿ8Ϙ*s{z<& L:u3W4Z 1g܆,!U7Pm۴} /֎]"oAcOpRG@t UKܧLQFr)0wǘ%z_Yׄd;AI:<( 6Qjͻ hKbovF4"0 VѪx=d jTYC{\yvNdJxmBrv!KםX7WW"<'ŤS&Bc߀}W~ϦqO_"yv <P\Lķ {0-ʿcÃV Lru'@1_(ܪ 辘C)g?9#CÓNW?bkUl{]W*sձ]{x`1F~?҃tg!T̵F78mD x xI7DwDlkHy&&mCĥBA=uvl/9nˇuW[/Ttʯ :vPn%sNIqW%6Ć[ܦHc|Fѽ^ރ-Rā C.輜jS=YK˳HbcqP ?KzqW`$2m bwe9گqu?6j-uUVh{$)x}Ϡ?^ob׻-8,0(cS~1#/4aPEF޸DuO0y*zL&w]Gp�]& {2<ߣYbo/< xEb53ևE~ց~G)l˴UT�fܳC81յ6jl[V_`3 hwRc4tr~m0QDկn]yu ^tK1z%Whkc~ +S󫆟E/mqOGr@?j\e}O<|@–>OM:DO^jBʄr =TA~R6xz産"(o &<>h{lł=1sƘi9w_XbP94,&(Ն%DW 9T$A\ޗ_-/hwW`t-*cݐi%&<E�)Sp9&!S7$ۺ%kGМW^tH5K?Ub {u^bT<1| w=TqwSAum30=Ymw^ZŲ U-O_ [ۑxF9h~Y4}qLe YG80.`(fS~vimP.)Vq(T,O=AӼ=D5/G%w)TSq%'Rh30[[>C?nUw?U>#GQu̬4'-?%I[@=d#n"9"hB=/~<7zx݅]YW@ĥxDY܎]˶ bhn:[p>?!RH\z)2u9{V}ű O;Ģ1Z5O<9V]L&*?�3|PY9u<;0~Cybk,^HWarEטO ;,L&A<(b2WmnU=`z`w;wodQM EۧD/&&.y<7{bG4'5H'!z`/"_~&{E Q]>dظSW<Pew0h{bQsCS<ֈ&1h3{H &C)k4e] &;@M+[Zwz<6}_FS|Q $* H[5hO}GuV|`/&%vݧ_}~69C(L5',e~->u:ޗB*yd&]Dz*>=U8"SFﺹ{UC`UȲtiΤNQÛB2%߻j3w^r*j^EE`ۦ>t7zKij33jv>t~>Fa쓿謦-[|){6He{3_XHFY.Mxx R (dCc~d9P4 @qx⛊W 3|J;#[$e 1|=ctUTPD{G˗oUUTVچ'֏m:w0m9&Mxؽ>3h};˫&Al'F1-Cy\ɽg(\7mƱWVDޭ�H39 eYzo/&NRISdNļH?Xn3ÉhT-U_TV(tJu Bꞈ(9/9Iڟ1~u%xIȖ50 =֧սzevAf?)lAwa"i()9u R Q%r Oks~3ˈ." M{gYhU ok|V)agiG|xGSG\1: qn8r__tW]&ϋy3ς9l#ǎweiu>e�œw-e\ɳNv2;s7 ~/A{ᓑ mBׁ)HwNV1tq?rvi7)>!hBʸgMLט$)עxߏbo_VäWzPvt3հj?ZUy h X]طQC"@/D�jV(sήZ~(黻l o[`.pd57n;yGO#{uʪ-t 탱8g d> H|҈Pq;6,ckV砩EQW=RLa_~"߅q+h=jTd I|}v-V˃*Ԛ664$]p4b|#sbk؅] q&}S'C>swYyퟺ>C�jc I5a+OZ8ߝ 5xqD3O`k;.Pd|ـyZu^`/eig/w+&%nxe~d #Uzf;g+[5% u9̇NI XUb*(u--NX)RMuGWˁ>$֫gR! s-SQ`soi Hz+JK!/b# Y1mz'AT U@s4?*猁'ܳ Uvr<qe> %_}_y߁tNV!HG -cJ[/\4W* SNh{~uoE�s>G:hJދRp# <\NU D_mw]_\h(>92HLpTATG$o,݌Gz}qbr0*wFtezwM#c@2Ch7*;a\r<*{2r<=/|s);}tiV(]Zkx9H:$@: y}q7A{[ՋnM0 V5uܲa:=Ҵ C&A_lt I9$x/&ĥv;~ӝ fu\H;ֺ!7;Nj[!)#h mrtKLl;Taj`Ԇa7R(/F97KV&F =?Z͏.672} =:W'g^_FmG[Ib]H5 9 ӳ[ CFC@#:eR hZʃ7@c}D;æEzh^wcY1P(|b(|ʑJ&rU;t4ZJDŽRQj_ZC6>8ro7?.t΃Bگݤj o#fЌ _ʨ |U>| O_ԞE84gWZNlFs!,|<(z�ye5VՂ5v?E=_6u\~>C'}i5A>gDv  3*lF/f1ɑ ۛ1@1?X)_AٵHe+TƔ/0"j#xFn}TqeA7۝|*Otvp 04EYz^!d)O3 tO+�Um/1:.Q>m[]10&|0k['\o0>&~"qXK L 0m~ ʯ2/Y UOݒ[< _ʴ�y//cqW>-?=N? SW,ɽ[.Cϻ#S>E] 6s-ōx1<VV <cb.X~oFtIEŻ[Pp@1N<6P'ی-"t1&c L k-:NGE-*4 0F?k<[:#϶?0aڊ(7xI+Y=(<{K3H ;>5!׌h?VvW $C_1w>Zj:NJ@ }CP v1^~e٢)JE8k)%35|Pn&u#~IxʍyW sf١;mm$j |b\GC#6L]Kp+ 5v 1:cF~󎃏{]/VcK:^ueꆸW.#}꘻`$ ZMdS(qkxsvEU焃i0aR%EgYA=etqӨH.?'.+,_T|>!-K"ju$;ߴM^TF?-ǵ8g+*4yaڷi03'[nFDˣ7ؿ [Az[3A ,BP?A& %v՗ Lؚ};[l-Pu!JbGQF򈓳#rW] &#웤Xo\8p%aٌKĜX_h\^v%; z\ Fy0}x`SS쯂R1o+!F_Ѻ| Pދez^&& /NF(@-Q򻲠G݃ b]) HaPsUO(9k~q#/h|~F8^X vCY|3ݶ*m0RP. ۴_:O =C]#aU>膞?ƒ,|u˱Z7A<pMA0s0=b!'?fL`:QC")!<M{SX=1=;w,W6pMs4%m/TnMI^y=2ʡ&~=n$G.J|߇u=$qv/Y7h~:Ҭ DUeqGB'16 Wl \J.Ch-KX)8EUE ܉&hRoU7ncl\;҉yb>5w򖮏Ev߯OGCjh>Qb[ #4WWI^L~fn{SF%l(+0XtqeK~_*9(ӏ^R \K Eaz εv?DXo'8KPtaG;;Ȭ>+ZLQkfcaޭAUL6T'łV3|a/aƙi{ma; `QD/8qrռg i&?(s]NE RCTTawyK07RYb'@8*-:@~(b 3_ gD[Y&UpYB�e<܌ v<4.>(:Z  a$|ʘ4g ]|v>?”GA"Dߧ`* "N޲$zMm(L]U1Ov\±J{SԽu\.=`5ܰ15iO@]yxP0Yg9~΃H( іAN7>5p㣇#mԍ$e45n(4RgFکmKO˃1vPu}4~*&aę0T$n ;ۛZP읫P%] JZ,]BNjY nߡn`sSf:IERmhٝ%]h8fyٯ-H샖ZSz+A 4MFG enfOKťjP4{IRZڇB1tӘ^1V{0rC3k#vdY'$Gϗ!,#՗Z7c0_cbG@3s46^݊9rx=(YKI_/oy]_qF4ohۑ6s{x!9#NKz ʟ\Q-rQ;_Ch ngK> Edtr8/#.IxCb).7 {o8q%iHy+;u: "=)QC)JI<uo jGPEՋiJFi2ú2`0}sn>$ De$]ۻXt P2S]ͅt]EiLfǷC%gkҜQm)8-k<fAxi]ktѧm.C㷘7#{Ky>L!V_jg3֟=P6ҫ:t]Ϣ7:h\"3/s4(L_gua?RJ`-K&vh*SG!;jyj1,3w-~'<'aIb(#[GP' Hf}dP{a6<ik_m@yV!*ȯi mKTD5hōe+F!l)E_-%gT{P/}7kaQZPL ~R!BKx=<*u|+T,Ðn*dZb~sU#7:sۻ{PpI][$RL@~j؍(qqz4DEZH YɇhS;#4D};5ϡŃmv eyiG͏QzoXbt{ޟGQkW 7d\H&<7WPOoӟʏ֍pV,nEU)njZ6@3hViJ㴍MaVEvCȘW`}s-yZgT<hrQ ݘvw=Oqoc=mue*G>ˍ{+N`>V\^t=7; ]A {sc^@)!)alWz_TVä{?2pExճox&-cC\$ЧL~4'=?#8i60Ds꺶ȉWi]vȑ[u6&-װlA쳻|M=/l]\A6_la|HǩAFv\!>Eavb%DjۑNg�426CaN;w=jL9li@g)jUw4kwR@+c_!H_\ϥ`{˷C$[Y`(N}|e;X;n)ctqt)av=l-<2Ixɱg"`Ϥ3J] Y`{s(n2Zg"T,/ gvn9$-%x0E3 u8%@SF\/P<G@-CWlhQYkiC\ jQwCbQr-E]noG^0 Ý_|LS(YU/Ae="du /dsc*zǥSjU$qYQ=b:CNЦCTה2ϭwVF$m޷hLX1gt>OD'ՠ뚫(`nD]|8tEj7g`ٷ?̯aјbQlgK _`1+UiKpk\9*ZD1#2KC 7!0:"W1Ւ&D~=p&4i\lj(уۆQu7̨'C/1ى]>pqh0s׌"L=TDlj= f~v籸PS~X>%+8tP٨URtV_haxL0~kC(yl ˆgxsqa4}OP7Y ZМ~_A}^Ωu"kI&_9`jtscPBx=r\=}k9~](_yˀ&i9"w<1Pq'Q‚ڪ5JE+{OGFc |YSOi'"p~&_ux vH(" "`R<bIy=tL%Ro!Gt_nDFHZO>j&[:natAt] wNTW1ξ%$ˆ.W*=oV'ˇ{e|]ӵ<}oSSxԴ Rz[oNl"8˨y]M Zgh4ܻf HlmzI;'|bAk/(w2eԣp~/L`c2Ϧ{1p""|Cޟ]eT@hL䴵s!gl6ZqeL2b+s~CVaT3uCp4d0qVA# .<RzF 6U,6V SqbeDf߮- U.GMkAYoݽwՠׯЙfh+6jF|Bl$- y1<0# ӵU m!MWAiU yhI?sS,?`7w"5_Q3[MRo( *][ ]wogWY-&mcn71sATnLԦhxU;F2LX<rcKxowR`~G9?E鹔=}J<CT(.mU'xJ:`6.]߂3:,kA;-ɖ,Ÿ nt.P7vwb3>'Y9Q\TV coFCO;44>rE眛> [QЬ{(W7wtvCtGC˨LM5, foer]j>{KAdl59wtLm,F19Ⱦ{aj[خPֲO4}c[⪑rgNśy}|} 8zGߐtމ](Vw^ srBՙ#N\u6b{ -L 7s#1& 3(L{4J+h޵Q^"ܯUiv԰頢=`6Npv㙺L`YBM%B2E1gW)\o}vy@*7`1U Ps۪0BȁVeTyLz--4z5Qg A?~9*Wا; LZ` j9?}ֱѺ0Q{UaiI]7꺝-{7Oe�Y()E2_,=&Mzwk6=HB0Nj<ttT_HDxkd(U_wE|ʻ!1@QBmz3vJ(!ܚ(;j!wNB睑?M%6=9eP% vFCW=9n~jn\mΣ.}=RrQLq[S ={޹vu~V(6}(;/=3A=# 뇋7 )[8rY%eO@Uf׽o}_(D PE;k0Z gzK&&mJ WCngYV!F3bn6_ǫw!c8ꕶ۹0v{7K<U0}xR9nH &=>G昪 Ib0cz8Va,:S?gn|l_YqSF|עUǿP<#7\EqT҅V%_*w*<.AR2Ӭ@[??aUuT9!)Q!LEr;U>FG]OV} < `;#/qm̳N|0ͫH$~iݔ%Qs+Ve~TD'g+q?<nosD E4GxS?c5 r'8v1qW~ = Wn*FUgJT%Pr?n#<A ]H\EÌx~8ހVj24T4W>Â-4At1)7^1PFN\uUĥc\>|hS}xˑ>M1Gv`睙H`E/b $*T?<V%c/f_c[Ȅf*yQ(c ӋUb׻S Z^씗&cSj^4?aGWF;]=|D߷ډhp(,OK4SI1?= 23H6>ZR+)퓵QW},dVX±2U/( ߸IV@ÿBǭ@|K ݛ^mFϕ=B&vg]ekXuh/~\X>B}}9]x/o|)J6(?3?L]l}+Er?7mU7BC?a-DZ(4{*$(͜\Pqv;v(q5vZ?:zhش0WzIXrO0Z9f?ƣJKw9u|Nv=f-:vE%nȥn%kivS1agA-ݕ0Sb*@CW_njUms' T;aw[fƪSd 1;xgƉ+(5ؿ ׌c>59(;fR׭ՇAQbB3`OT.߇Oͫ,=Qϓ7_v$*wdR.Z+ =<l3k3^~YutW\A=Y{|UrK*z0fZjG^j%+bh%. -Q;aiTY4z}~X6M ̣d1_.{G֊8a<Fs>7MrHD y}? ^3. P}j6 q-dYХMGM8?f )9{~<&zhASq�m Au<H"/@u0x{g=OdBJ$L;֘w_MS˪?23\uh)P\JaXT6ȹMxQ>SFw-(U_]Bqk4KwI$ mOEу/d2/]iIL8K o-jIG؍<}ۿvd/̣]P#, Mծy"fSq6`-Q25}̲Md~o^U$ 7+ʗtjE9#h(iUMZ0yrּsCQvtG3gY(? mR;\=N>D[7JS$"WzGUܐUiʆ h8SXB&tU8X0uԗ큙02bV"_ mX4tIo 2&3D`iZy&A7=fbQgN{);u߀Ζ|eVu ߧv3tvEGIRS_cJ~,՚wLZXQsvk6ގChyU3̾XnEm4cw =AJ_&(7pQ3IW_hIyT *g cL^ rEm0p@* OY¤ǺH ] סN5]x]^#!`7_?r_lHś5ȑ iFm? bzEM#il\djQꍛ gV : 9a*R}jsǵ?  d9b`k >DV2 T/,Mv-wwz&_y-;w)ӫk l`LO#ϼеO8N-懝DgOhrL�V ܆UJW{g`7*̣٦9ТM*>CCQ<?X 2N-ռ95o/pnn?|2ґ]`)5(lچ3C mT*$Ly=O(oDnu`?L<I-٩HyȬ%? z3VP,$?{'=*OpX&t"{J.+s0ay%G;s~ D {Q!g3-uLP)t}Z2nۺ'1�hbQ?{A[>P;P|wMczXs?s 1g2mUjqUǣ)֨)}ჲbK(^Ex(t^AC9[=E0^U =r3On ,;4NGfo:_fɲ➧ǜ~8ofM v2`.z̥^Z}mϙΧ0J*m{tE隆`jGżT_+Xy"ہ)* 1y"{�[Tkݦ lo-q:yA:Bv%~491Dyv59;3wM7+qhGsM9I=rY8w*.WhK.C+&DeNG'l3J2>^`{ ҿcG@+%H|g;}#hJѹ_(L+0Eky}Ng@bbn|<Y8ryjPIr?k-\3"3^<y]n?%a߻Q.,*}/֋^{OѫAWnk{*duJڨdI/-s{l@7`,d0rOL=slǨmXL_/B~ l 57ΝZj7=,/z oop[9ҍQp3wu;yvkݨDi|'h[ۉ%FKX~NFhUec EQju߯ۘ= |=sJBi ӔogF!N1R/MR.stï}% 8RxnTO6`rae>< ~[{HGז#(mu/8j|ZB,t1jFF-ԍ9Xfk5}^PGlJ|DȑbI`iN,zKbcIA%*g{(t�9iި?3O@S6ُ0ᡵOx�k6 Wg<ïP7h븇DncLq0t$=Κ&P>n x0h<\g0ݫ߉VGvw9F^|2(Y}ӃaMQno bvhX7٘>RA%iz~]Г{R=ph?~IMͽ j?7bA<1k71aR)-hGCOT!̉6eH ]K$ˀr!깏e(|JƵ0~? KPt>o $!rp^VF$=~b*fytKqPJ-|w$Uy s  ЕWyNހl Zȅѷ PO\Nþ~R|8\k-7;rR{9 ˿c蚬 wf7oߧ7P5-I,Wѯݘtdq0g){Ehuo+;ѰSM/FAVRw6ivwaLH~:x>y]Ɠ#,Rh/ɽZ!R4 |'q'}ۉۚ#غ+:ݳˢۻڀcmEZ 5 _�%R1/ ?GApzIQf)+3 &h)<X9 zD#mH[zd]<&P=4֛ =D%.CqE EE;w5o"\" cRn7>.;;k""JD꬯Gٹ/Bm0t/eW[}hRo\}�}Ȣ&OQ0Ҭ ٘u|I³hRAR#1:z1B -⿚' 1˃Sfy6Pd=퇤@fNmqHMCIƊz-m tӒ:R3xQZ1e\r[㱧kPnJxmSko"B=OLޓTNOMN{^j[/@# _8\44@SGˮuJ,/Pwm[Ĩ]~i.GgYl3HEd ls?画Cc `} |+-eC؉+*!Lk s[ɚGѪ>opG;&ʦ`\;6]րQ(<L};_]b鯐"S:%A{+#([׳?='Z`H^X{ӱ%OִrnL޶/r%?L x~�8m:i 2([hZbh u7o)ԺQP˔Nzi*Gz5mSn`Z7ȝGc\:&_zk.-0y ?%ڢF6] Et)] ~]dlh.I-[V0ogV㎲y]ݜnXx f…he_yhCFp}O6vSW 0EʽQ߸gwJbyݧkyL- F]j؁Ē5^lv h{RGv*dnT`ZvW/쩗bou]:\{Qب)goc'hc h9 X_?eoK}b5l^.HhByè_h;J ~>cro+ڹqdѥeb|(xKBNBH˩ 7@e,z AĔE}r's{<@Z {\zmn=jY;5+D͡Қw0- /v֎|`XǦhcu/4͖kA:7HcC0B:WK*V7zw sT1jZ=meE]%b)_t`*vl)F_7j :YM}EJ9qOzF)2&|@d.w λ[AsX7}ւR(kY!@&&>Jɷ /{&;$ p;e 6: {h˦@3OK 9 5.GxvK u[E30u}wUbNGxxHes(?4).mhy13LV#;g_~__~Ǎ&l na`7 kk?Vǣ9 9OE7_e8H)b1atjׄ۹So)N.MPCaKgf,ٔEx!Ota*boy~Ƀ4T"_9^)lTG0\Hz?u֏0jkh\$6i~nj>N Gݴ`̴y:{voWyf>1]ߓ {گA|߰2BwɣV";鵷w# ^ i蔺'i -644ް*.4( sձhu~SSm?8Yσx@+J_=x{Qо]"jҲt j}xcXyL%3S<Y41u0x>97 jT&o*ޝcOvcxLV<}PG 1cyvuyF0e&1z.-Yq7>brH pwLS:;h[w~6Z!V}o<ߎoK#0UGEiE[Dlz6b-Z}Ô`ngH6^>>tܺCV#&+7u8.tODelGuqfSGo BTQqOՇ~$oL~-_FN];<9(j9U{q/p kS \C /H^b(M#15\ܺ E=0ܿve Cs&] V'NؘjuNc㝴Q90LhUe4 I1'n+xO9]:jC)):/h߭v �o(YN oP=vMmbُ"e"z=ʼn^7њ6r?ىʇIfxMik[Fa(Oe6wDc+NtR?vv7Oj@Di?Y ʣ-joٱ7eA6Y7-Kd4FSS̀ ~!C+MeTаۅN㶫[� ܿ Pfd*T/5 ˰\`п= Y}` &q~A_~gvٜ{UcDQ-CD>mVػ W֠ӭOY:4r2<6L8ĴJ\*07J2%Ms=*Vq {ES!d%*^VʽSaINj7|ķWlMQiok 2 g6bzIН_a4xbɹX Yw=RF/0iӎxEYѵ2!5gU>{ _Z"&eȫM5wG`(W6TYlz7i5GHڏS`';O*n@4)ZʇMڡuCr`T̔F^$uy_묙K{TxafXIF4o)Hӥςѐm]�|qsc vPr@+ OZ~�rq?E1P?Ωjnˆڸ,<e1eM F"(RTW R.0â<KU1Xg\�o"l}c40سlo|>3*,…6 V^˵h̜xys qǟ pJ"r0RϞV0bVZBA0bp!C%gxMr}ҡ QӰotGщuK# 8VUaoʿF(k漇1e0|,7Y#ϞwW'uՓ.OP[* ILr県]Dq=:V*Q3mvD3Sa@*]NbWc[j#Ϸ +n: iNJEPL >=Fkbh {4rvdn&tz{(Q½*ro+CTl&`/Dځ>pP[>1+ўu7W�-457YcX&Drt+ʊl4t*n:*yZL{޽ ֧]g=asN3h^e@'3p[8ܙLR"(*X0=O ZŴ΀6di?O*obgpl}ѱ4+<,WyLއ<1%&T9}vyϊ<muAH s! 랒;Aʓ jC˅|+ CE?bWZj"\9~gj=J5sz@NN=/d[7VV}iS^O~+Ǒ{ߞ�;zTHbMo0 S~Dk$Ż0UՂF 98t-dr9 ">&m7O!o.CPqR5?̷gɀ_;`/jbn9sywHR7T9"so}d;;ЌnyHn/^tHs1B`|6q叺 FjWb03a삲RtI~^k|K_hW[<OVC I #YLj"%4bհS;R&W?U5RȮhcY*گsV79i̐E,eyeHڽú\ /@}=.b,b操X<MAᏲP~ c]ָPн+7~6P*&̠w8ۏƒ:rNi#J\#^o˃z;<¤gn ؎??\ML=w6mFlJP[.gu)%cOpF}WK?,D%0ExOEYѬl&k{V퍘X:)H10v4:y8o?=VgE1L|vJvBXo _L/Ąi#C~Ө7_`DJS츐x|Nˈ==3$_) =t>#\uތ%HQ9K&PsTs�OM 5Z{#r2siξn޺2w]~q-yg(eKk^%L5mdVWq` *"<G7ݙyя..iX.n4~LA;y )ZľlXM2Goït(\Vx\c]P5cZ n,qkcBDn±NLY·=7ἅmpI0,C:6ޗ/wҴ' m6w_EmX앓kɨ2P;Gfs3U.ͮk/@❋zY Qq|A 1䢅+@ p*+DHZjdya;^<6�E;\X<[\9˭sb܍Dnfkt۲cVt \ ;F/ R^~Y_[6~Y[y+G/]Yz`G(#ѹEE hNʔW舿'kyn`>eݺ) / ]R(TI_G⪛ _w% r]Fś7*[pUWvr[Lj"𥥽j55DS6l`v!ؗSP�<nZ)߬9ĿGWo] \lO+f2:v ZaD/-;k%gQB[#qk>8?-`Ǯ ŸIw7Ţ׺q7ذL,u@s22Z缸0*'r1x^@ރq->uֽ/E3>84i/ٮzc3}3;=Df0#|Ğ~xl'́(ww_Pg~3ׂ>t_o(M5}=eݒf0b\| 4ŷ%Qjp{c ̙vy(oL]LUxmstq6Лswo#i֎omJ.ѓ!)aTh <PِmlY?yc|+ώzI Vml11\^˱ '4ދߐ ,(ESg6FˑG]DNT؇h̷e@v &Zdw7Nh OFt߾F9ѳEj`4gױ!=gIt>;'5oĠO>4&}otN̙2/qv Ag1-dMYPr[+an a0$&mn:sX2MF mv 9G)EPgm&15䭉8hT5 YtDտiFoR1^nH2-[ YLc>Eml^4}ʀmD$yJ^G oϯjHov53PNִBwtCρcozc* 8]0x[Nhp[Q4=w ӁO e9e"\} UCD�IDkO.f(/ w 'hΠ+Z*i=n%ztL= zĆDM=r'5?As'PquX3N;7M%䤻=THCӁ>9*k/d#@ߨR$b_]]LP~3ժy&zݵ<`p<rϷ/7҄WVw?!۟MhHCyԹufW;Hh[ \4HKg)uW+><3E> O~YrZ+}2$`vu{Qw-)ynUZj <rXi wh"koҮ䠻.+qՑ'T Eo>w WJLӲd۪{OŢnvGP j$N>Ћ3mY ҷRw¶&l_&*~/e2&5r܉ ʝ<P u闟XU SR:Nx}ķaV>wHAlbe\$1/@2n9`{3*ᦾH v<Oφ1~/}Mb 1ѷ4;c}suC4pT)3֜<wd+KGw"iċ+WB<W"=O`$㊅Q3cKc4{HqzZwP9( 沜~O-='FwC~ؓ`Pzv[:aԐdC\"ZIEO7hr,)]Ѫgq6 ]R1:o+LS(4n@oe7*.mV( JA;xytsԊ4 ]덅z葽UiD&9bwyLߴ6=6=9AuI)Bg 0N @ߛ}yА9 ZYN"mջ g�y)G1 nCk U@7[=&�VQ_6PRu27zjQ\H@}=v OʟzSnˆbr!;^-+ ݠ+Sq >} (@lâeNJ2q%S߃ϪU�-4 s1jTg̫dΌ6&ЬZ ^^h?b /}#y`F[(BMV:/:?ưo ~aO䎝=55/܁%(Dnk%cḴLzDƨ ߩXzS;|@5%}ıև@嚮K޲T=h9ziVa0uᡤs3P͚c&#]QhfE.{P|}m-r]W'9cO RioWaRXҌȟYɗa%OlFT|0>*bCPeӘި00(:-֬2Pl݅H<Q~,%@O0H3IS/Ȃ;ԊKJi(>Y72i+He޳ [PȠM`g, 'ba�=ˆ %05c-ODyQ-RdZ0z2W#O*>TcEkK('t%q]u&sD8_?~nT�04y rзWWP;YgziIԑWtP~Pe$֬ u؛ 1'dC:.R=굷f/Tr#41EJٔ=OD._/gI~zsZPQR}Qm?t6ɞVڌ};KöxNlXkM45@,هݞ7cN ;p%nvG{u%ȩ)*i0qj/WQU$Ӽ\h}ͤ ~"GM3`P,zj$Ga'C=Ltk/(?yR~Y pYP'/ SV̴Rܹ^ͰPsO+7a#@F13Pձ #"OCbn;i.{fk@h-DŽ{_x?Cl1/Z4wB};<}乶*`Q}t0{D48ބI7WR2@q3{G c0.Kl̨*_:-y'?BŕF0Y})r;6NqH̰C˯눯Z={WJmt0}zFTN#ԭRQ9nc?c~WNj 3g|x7bOJ){ކscYq܎Ai>9L߅;)(uSTQ5t^9VߟMdn ͂pBZJ� ⾊N_I.= [9iEGl/Mcoa(kK ˰J 5^їzSܠ~~'sQ/{ zdSdejJ7QT{ ۾ݳAdgaۍQ߾'K5X 9<k]#M=7PqVoY#Pi|?2 ΧbAX57#O|c U̲a+hbV͠+ˉ(b"Չd])͘v>8U|L u1ɬgu̵wCΉ<{9#XbJ^F ƅ(5}yipRmjl Zܬeg1ٸj—/_KOo}@$GC;4p7^- .汝 @k6O Gu#Eˡ SgDw0xKMl&X{P_P)2UQȮYm8?ŭ|h۲Uq혌{/p&OI!!Ǣ"t d+ G@&[%of~+"_kEwP[|׭:&r FdG@J434kcXŭbLlWh?$wW 'i}njd5zf+A?E~tߗZy9!# 9k @Аi턷M48Ado01m ~s8ʱHEA%/AQ} }5,-Alk)"PxSKZۤne!!|ɳ`^Z|(]̛O h!eݔFR "ڼ\ |q Ъݤ@-f c;~ϼPO`oSqt1 vwa*oQA;q̺R7④3i~3].lAS`l#DxpWkᐋ�EoF5MPP gb fe7/h'Lʟd rSE ]'n3d&-\#?΋_~Wtȕ[o{D{40QvT:}M/"ƪ/p!}{~eS1U4.b2@Lh [$Py|g_ʅTuv[㏩5j@ o{΋x]eWuoTWzD5]Fx-<tp5Xɝߢ/2$'qK!vӾWQ#i10uo찿sK=bAKbc;x3�16SҭαVU<%E~#D{ڍIjy\@Out- a{G-[;[_S~Gs(mGIGn}4 gH\6՚%ؒcPxyfIQà>wQjg(~ue&9 9u:(#Dl"zjᱠ)9ܷG)J*tLeA+_AhOI`}ėE|@b@pVkjv)ϑ/AR%L~k?J6dbl6"ESHWL٢\?[ޤwGi(޴ޞ/ZV%f^oy1aLJX5H(hÉջymcZOXn fv.e4xMĽاϾUU|;B@X:W޶{,@E-0_~N*Įd-g/ 7]MA/Q؜9C󜁠֍Y@/Y}LĒ$3,bJ?oQ\oz3r6v _KYb|Un%h<07ױ^/l &O9ѩ;cQ>\Uyo˨%A2%{֟pM7D![ց)ʺPרL'H p xrR(foEI uV2肵uH!,"oAyM<"<{ԂV~txPÿb|-3k~ =A}s^sf;m.ȣzw/REtdڃ`D+] cO b\(lBב@ Ly PyK="ײ5=s #N\Gy-;یQ:(, ;_@ɑw%諏p"{eX#Zg092SPzX-C:>KLJ i^,AALr0ozǎSOMb}ܞ1hH@{??(L-FC O>i?ږ!Z?|?ld~F{PٞQ _:ToެXўʍi>91@ d:~ F*tY1$Z#-O Mғ2tCbZ@X u@mmݖŘzʠ(1:3a>(="7n:t!\لhY骾Ft=7*Fm }b[ @Ooj>&,R~1Uq'z* Х}/ FIb+7D峾w1)/q'D6̭#{*AMMqj2y 5 @m_t; j]D۠fu?+wIHⴏ9YWS7Jbw92tZ3qIMo%j;"ܑzL zH(A㒶b5՗AKPۏ +(r]Q~; ra,νSNLT:ǙnC>Y1 ۰pvU(V\sBokOiwʫwe~v;0 a0'ʏOS@tnp-|Je6|2_ΟaSG/Hu+J~j- Wk|Q#9'AY/_d?Ca̻̿Ơ&ux-!TB*:t*‹A]]&އ^c3 |x9ZC]i?swlȨ2klu�Uk,w5h_@#{9S ՛)eD8K+YqW#B;tOq0Pde2`<* Z:W*|0fz&qHv? R/[t`>1\'rkzؚ Nu"LG.NZףo'kDƒ^39oW_`0턜1s\&O�1F)Z@#<H2w0~ƃEUbi׸64~s&W4 ~BctyDBzo ;͙0 :qkP<Ҙb" \8@ItHs{Vhgv{|~n|HOsl[@Od3JZ8˔&?7v6!J|rW'wGlq,ښӆ J|u#sAnmƹ;#v-? wO`zu̇̓fH02 ꥣtՀT<)5~n<h6у*PhNΊH_+AonhLuY0waӹckU2:m~t_]>HJFɘW"Y`v'� Pj$| z.0Ѷk68z +g+&,Կd}W{ {~ jxzPsPht"$Z~o!g,|_D[% I ڥcۭuyn]rb]x;=ѲsP5C n~}YK/OT;cһ|1?mTQ$\*B{Z2H [w 50T43A?c5r lm_bB-ɔ၌[W:A+z=f1\ʘǒc4([=π+m11?G$;gYۣm$H6l/ J^I>2=vo0y|5|L5>Mns8\LȂW(R؟šGo 0v.rW/4U5a?74ɭS^N@>`܉тCwPuD2W;L̐ 74ΗAխ}zAV6<Gaߚ#SZ~'ϰE-înђC_\ F:G/:!9`oЅ ?T?iMf>"<3j.`l]on@wGu(-#\dk-ܤ>rPB]/7$ZbQ_'5|,zZQ,8S/W{~TpI}~uT0X;zF#%3 =. $_1>P#wO_դ ?S 1TEUq }GQ:c9[ci!3ꎸI!9ݽ?k>-qal_''T@oa#Aᖝ_xqzәБدRq�1nZ#ɕu7a"*"hL m+Kcۄ�S%y5f(6m$)h>F&LePh\ d({Jj>V6s7ߣD^칎I;Tl3qDf3 o0ҾZpѻ'H Pг&51>a`)T"~-`lz\!~O!\(o(Uy#'f<7޹7 |hդ4Ym:CZPx+YT _.=DrLDlK"B /xa3Z﷜;,_?'qcV5[sߎiOh>E|@Ye+" .pѰɌ/yCKx4[=0c=q@H_Bh% c_To/[e_((èpO6ؕgR_ M%g'1zX)Wh{K|9(=r@;~Hk/HhnߘG\7]0ȺV zFu9Ri"Xگlig:}C?JARq*I tʌSs+e/'\CRP_dO<J_\A2dgdrN'NF>5tďc{vwݗHL|3lQV 20} ߍFY`y֟( hp- bzK~`W;駌IRtsV::T )v_"IPipc2J=�)7z9[itл]CcA'߼- ˴_AxgQ)Wrv�qhKswwQtXm_$EF!%eYH2R$%BBBFV${=($ '^y[O&~Hg.wc_uph4gFE:ѡLTJ qo!r)Ȧ/7r=ş vq,%?^q0ynR-Ta`dȮ`Y=[6횛o4_+|{Rd/km]yMͣ_L١1ٳ7< Ԉȩ-?JQyR_[gW8OTn=[^=diR&v;Owe_!(>`J*0^*"zڱb>*.^ҿ2wѼW`I1|T0ʺxϟvݡ_}{.#1{Z3nh|0�M=x| o[EȈei`ּwEu#V'轳wiqP|롢Hp*~w#GghZ;i mJAbhM:b:ʀ;im ~A m}˳#k<RAzOQ hO\kJs Ϩ#]mZ2kTbwT d0L_]$ntJp>ZV&2Ĝdנd=} h a)h*ݎiº#,<"xWU|V9qw r}ksȷS@xa+QgY u碬@#YP27@Dܴ B_֧oo!:B|I|3: 孢cVcҋеOe], jըZi1e뽵{ж::.2t vscJmvY۸ Hj?CIO³ȱv'&@1J(ZT `>H`d-AIW+֨Ւђ}BxA`^ۦ$HHf4EJkr%IjC O*/8?gvGTʚnzTǰ3+ Ք<y>YwU0l=ez %`.C`Ȇ>0a|hb@ _CKS#\#{ʜ\]ubK)~֐TĈrݫEHkUbQ;KWg#ntX7/-&_P$Sr|8Avw*H?qĊ[^窐lt8ר\+Wri\(M/Q}(L+ྏ0aX ă@x(ǞYXcrGЮRKśXnɁVLKuN8 ͔l-~qo=bF2` ,TS"7}=topev2@6/0 o°'7StI/ ,e7}Nh$4?-{N3EpvM|iL0hcR)Cݼ */F~ qyg@]5h8׹4T1M{s%/5|K+%Kn߹=@)ua4m88?@<ߡ28K\\R;Ax]OAi8$m,w'%<Ir +suݠϔ<u傕`)UX 75w̩?Wk{螕BY!ŭ K]l8zKy#=^w焴X sEI~R'ٿu|w59L+$LT5q݂ҲM;(KLO{%j`D(-R5 32 u/-Gt_@~DZsg7`8z^!`ܺb!sv3h1ߞt~=wEAAwv/!OABSv13vd2)Xڠi/h)P6hҀ:cϖWN/ e&(Z ?7e I}/z-}ة{?ܥcFhj *QTdO oV;{1t}Z TC*&+(7RWuU/]}W=2g=umְᲾ`.3yR Pc߻N=J6n}9 ^d>ұ3Uu9<Y0Dګ>@~YGD?~@;z9 9pqkj2O|G8 ub7{Nd`_\w„P7۶ܸP�m֗(K7|P7\="c/(Dz77/~&ӗ?V gc;d_꿟T-zwQ޴^$_xOcB hexztC:)֒HZgB.Ƶ́.vhbUTF&`LR'2xλ_D\ۊ2.P3^asᭇ*`Ӑw~?F-JޅlcQ|doDv0GG8VH{MKQٙJ.tt?8�W*N /h^Tyg;Lv>$ܛf=V< n:P;9ᕰ cҟ\�C\ECi}Q-+Qz<:{i 48ޠƎ+?-ttv2F>;V�g_ (rƴkG@|w0g1tth�M_;Nxdx0x7ot bؐA'na|J.t:Gvć/ Vy7 7O4|Ca}L) _{M(fv+�},T1C#/ZA' U; :4gYK}ϯ6 cv`.K U^r4R[_=ZxmRh[@LyO]%Z7(OVp7T旯Ř]D~-0Z{м?b%zr\7j 1rlKzi2 Z@M(2 pݥ?u+5Ay4;ԶY\9r$gq,yOΡ[sL%s&Pj":E{. X Rh1<#MTD3lLk*BR1.h}-W߮ݍ5`hH-6 %mxnmKBůO>0 r,0%jlgs[=;`<4qgt;UI.{_b? $&HnXY܏yϵ] 6COK? K/ɫ9Eg?i`ޙLy`Q3-52_HOt18t́.fszX9}|N5F >}niɻ7kQNC(MT?qPjgC?@rj:zƾܑZY?B`k0_ gp6? '?HWZ+kZ=`»k#4y׆ۨy"1rR4*(S)b!"fоT(ɴ$bg3&=,0B?-{@K|aQN^U ^ӿt`#,ZJ1CEWoȺ99ցRίzu-W&^QG'XV;EW^{L $:*ɹ%9?3Ρ/ʷ%N:4x~V3g<҅ 4-!Qo|挠ᵨ||u<ƒh̉t&n_{ UϿv'0WW ,@YKx0>Zd1кT]'1ny 5 W�nMs=w!W* #q=j]#1Z`@&!jK DĦ 0ZgRH~=# 2 |w+tO^S/#U:?Mݿdxā<b?h*WN#Hs[@m|^o+ qhl ;q�8kgDu@}!9Qo~^k de}m/gp<qc#:*3WR*$lsn=//?"pj<C6dQ~r6w@{?JQh顯:XQ-3Ϡ-Jl0RŮOٿ\]>zEG6*:^$?AZ[l=|Mwnбͱl>pZ+H4pF {ES #o}!1~ BZ P-3<v{h{ߐ/mE#=[jH#xR"d~(anҡf<?ỳ燉>^$-kqiMf<S¯gjIA 羒Pmr^?[)]5yNrO"9 d=7U3ܶg@|'OT%|乡l=BJgn1Y"JDRPWbڜ.JX%Z^bT /eI Dl{RʊOo Ys!H^S qoWx 'iqNoĒ#썣gW7VACF3/醻*eZ0iG6 gGVv'Dԉ'=((x7r�7Ão{ŢRhNBFJ# w g7旅yB+:xIT~&-J32h`=_A\sd_`&oW<ԯG0Ug'0,E}BUEI'⽬̫|׿y1ssi065+%cL]s>y)hxi8m wg֔:KN)͎ůA1z{l:FO\ۆJƤ.hZ .2w2h<N,d6jy(BAdC`Ow3@= w B};ѲSNx)[0EmٱB;tϒf?eA|tQGF=C_0nXmiCNڶ/\RBOHv'6rGtj)q?)ލrJ4 �9=8aK ohȠ=sPIlT9`Կ.,SGBE?oxa|b8!WHje2CPK* e?c׵^]ͪYh:[r' 5QҬAWnP /[` is ;1ߣ/{8H)aa=\Kt 5pkVCgL +=}~MyV̏vVm9b~կ2#wwFV2`o^g]aE7D. Kvj6..+#逪%Rkr*J7Պ;rջnS*t#䦻(7./GOϣ`hs y}kn;#"hؽs(|F"a~_/سoX(q]r៊|G3h؁!01jAC[Ky5o }} lɓQM+߷�eI8ل#(e"nû 0I }[T JehVOV<VTjR}cd'�ӳB`ƸʖABԷh90 E, oo_TG'-;cTou(_G/~ زi{V'ʇRa{zM2vDue7Vu(-(s7jg;(/byI*t_R{*7([ˢ)(o-DEE>usK-Nr|Iizտz~B|y=W=F3ϹѢ+_`o:=/ ;DŃz `(nM5؎(-s[w=HT }sT^(ZZtdՍG4AۆRL!8[B�B|1g~b e@m.i_h7 ?]&}&*tl@ϸzDl|clԌBnCE+ţ{udͼP6K@6_Dž[]G9!0 w/E{I(oZ78uA'eqwg'ZU-:%mU~'0LU 2Qzisݏ{Wn*$f~>B&:ħ ׮xf k#g:@.S) vLy;<u(qx1828ыg8SvJ>K߷gFթcch7F/lU婗BlXPtTTt%(c~w .޵ͨ[<rg|]-�jIK}y.jgMP+C˖U>8YmEFjEi0u?y> kՙYM~Wh^Z8bV uk6kŗ37wv8`åVR*;c|GVd/CE#<:w+ۯ㌇L-<%jjAubcK"6_3l0;jOU?�K!hR^xY:W Ёna^M4y͍[} *7=x%hqwy?*D/G*"?D1.ՠUW%©;/S0e)˿l'ƹ6{] t=6/fyRtO-%@/uk]Ղ?%u&t%;c zWCI,.un_sCp0h/gkK@ 2S;WⰹN'=NP0C5?[o~Y5;l2jދ2V0/S"|Uo0Νb%Mj<_ M5a�wɋE8&Z" ^ *Km4i{lZUt% -i^[ۧ*͹JW]GuYNTATp,ȊfJ_B6[ijt�Ҳ=ų& ;&shu9s4^c ¸'T^[_c:Ӡ߃v$#ė|K5 ?1:)ʙF.2UU[O+GiMsEmޡ/ր khp]{67~UvS e aX~$:OP>)ݶ`.sHYK η5F@2Us4aS-ګ+qzȗ㗪A>փzS>"V,%UjU/PW(s4FnxnC ʎ(IB*(IB=`up&~o9uPq73W-فPt硌 ])4+!<tM1q }ʄa䇓% h^&>h+eOEd QNx(Zv]~QlYlbd]^?ut=0[ףksps;DF}D<e1{n%6Z*}-u]|z}<wp;؋f[_} r)!F≅י`L򺢋=)^~U.ysUj˿[m NZD䙉}ۮ ?=.ED Ǫ@>}\H07Tk+9x}?6,Iuo_S{ i6 %mN^y�:{SO'Rczu-iw=e+v"E L$qy~h{W_:1A /Ux`5jbxIX|hތέtƵѤ6FĞH`=u$N4*KO~+|XM˂dǽF|3w پ u5%m!<7cm?M)e˃ vQ.JC`}yEYܒ[D8ؿECՁmux.ox;NEir LkL[{sA4n&Ce m7}\~pƯrmE1v`}{ֿ;7$Vk$=N_'xGدt@ƅ8~>v0^yr~) 2.7LR7' ܩ蘃SY2<*嫴IJd1;0vMSVHLLB <"{xc19#ḻl6 mZ9kԎ}UeA:Y1wϧfPZ4SFx_sQR^{B7pPlŠow1r�N d]�pax  ٛ=B`/ [Qh53h <7Aůo|J|b5U7DŽ:s&Sc#%pj5=:>V|~lu(o<uJnn(�٦M[l1s{7vYOa;i틡C`:Dx;k148.P#mI ^5_v{V-uA}3;@0E{v)ʛPwb8/ �^1؛ H`/B#|V!>{J\e0J.%>Cj7Yj�G }#oT٥=uOtQ–DEFH76迶P"+KݎȏyϿ`I pY'}IN&'C�Y5Q8~}EdJvpmn.zF'kƄXuyZF<`&Gsvn*(I}:*#nT(Mr5u,nl>ƅ?n~s/@"?jt>/U_w=`‡`[i*OER~2fԵ0 R7(xӦU%?L>DIqzeѡ1LkY !eMcf/?U}.C(tr'>9~/: kοKForyH*h- =b+C}Ubji&n(-2\ԯ#-l$?�Zb*,B!$@P5<:Y h[v\֢b=ބ9ͩ 9H~ iI[ikl=swl_5^sYʣ_< N>8rM+\z-ӱwj;߅nƑ璨W, J98;d6N:+ʻ}wi_C@^Q%~~6E$"G햂-`2$3n`K@gk@rڞ69 F:o0)kkk6IʨmDoB=dpFL)7K襡;EU"EÑn"a [z>MIQ#rѱo>w<;Ixr` 4?;Z=VJӋx[/-Gv}j`D ^ V?bެ~ Wn΁q{|v~h@v?;;^#ܓMD_E| :#h>czX6wwJfSTR{dQ^e֝tXK\V(aϓ=l&%4/OKO?BxBcީ`8> t0&'mi4Drlyr+hx'7@?8& -~gi~#`8yO88[^{F5 5GL.-mg]/F'vTDn}khvqGy*ӨJtqG݇C INx^#Gϗ* *sJP_PU>urݻ6h UpR.};<Е<'`&ٟ5SbO栫kY2Ond!h%Z_ tUl,Jl494歽LI1vW5*Jv|\lѧڠ=2֤7DZMˣmG(y 3#"|&$,Ϯ:OQ8M;Fbt_'I7O"]Y",qE�q^fn3:1(:+fA-يZ81[GTS@Ֆ< ̑/}K-v$C+,9M~x$mb9 JE?[m/%D&F8K=W}Zw4_ Eي-6`o{4p_x݉ ɳ)nRZXwu? ޸10jqyvUVSSPygm5F^:]{n\qbTC6~H+&>F Mߥ"(W۸|CT+p>r~+Ҧ )N~GK04//C'RE "ê$9zEr8 Z{Pcf' \6}_qO,w[py 8[/ܒo6]*\ÃR< `KG S ?:q _e6ųt5/sWہTsI'ǂ};/g-ZCF4CBu uoN*wh9vS*_Zo*vzR4.. 4j3*r<߭%5}'lwJx~ ;>JAړ™CAro[\xP*! 5bwGwjW﷮syqiR'kPv5R7:k-%P <_#-+jNG$V]V�PF< cv ֯`0;PBNb|mHw"$]@uEwco`-f;uybY6B(G\�əs^w:[{er_,:a8_b>BAn>H蘉 p枂/E.D<q=h, BKDB;Ps}'û"aa&KV-B*GGirހ:KB R:(3;>0#L)XVǦQsdwX?AӉɛ"6g,FϧhPЗHQdYҹ^{K½eI4{|m@WΝ_U5uk&u`4caRsj^AzMRU4 Q8t \h^%svkۦ|Pkfq6?:M Pqv2ڇ}s-l] |OpSވijC}h.�C'W%1U6#uy~!g*n7m^ uS|̟LSOH:erCʦNPrb>B4ux'r:P"`US@NYӨU΍FegޭIxMLؕ`gXY7o\A#4&o30e#ڋoo<PHWo*QΆJ \,bla}�{qt ;&j6RQs,*R"wt/~טzc/Y| zYkѬ,R"GK5qBQtI( {[8CpT~U>7vqӄ`݌k  L_%+ڹN^ӸGh{snj^Wߑ./M=c=Rj`PTNO7i+8s#A9-RK@z#> ʵfUzD~Ϸusm^ #UѢ,/&ׇ[:ChпFWQJ]y;xޔZ₊@ktR~>I[ɤ+]eK ۃsk[lQx ^$U0P,UjTumOFI|́hPZ$DmButtk%fgޑ@GAn%voEXV&ʣTٹ l릓xaCq0J sF>|k+.ygmu+nK{.VǮ6وʌ)yM?`\f {ߢBthVɦrA<,a69_Ȼ[v\E]T5qZV Z>UN:3'fo4>Sq5M_;!6Xy+ B>sar`tۄmF׉_Q\'|Afrw'[^,C)قŸ=_>: at}0I; Β/UFH* s3uv1Tiݴ,yʨI@& Sv߶wgZ(Kc^8:+>ZfP$ ];Av?=ή6#U;t-^%`KRt4ܦ:sk]xbA[0w VU>(&=_& C?Ex\8/wڻEKe7uNN3`�SϪRtWߓ=:H7EwR,}4 ^f~�O4S5l~>e{[JT?B#;CWC_H^�rbIU_&i88bpEJ^Ƶ|-*\0xt{n V"2g×cQms5neA_OǓTN8Ո;vEKP{FWW^ʗQ껖bBvNY8h"5C|lc?<!gFc$L<2U%ﻒh`m |O3n'mjҾ^AsDLMyPgNW`{K #辵kXU\PrðEq{y7;`B |@ʽ=H޳Y β/QDZuR÷HD϶/m�Ƣ4 y%aU b\hVE %s%F!4Z; r`}yĞel.FˏlS/pafK:ȇ϶--Aɞsi*lAԺޟ9.;+_(K\SFiU-\mauQdܠY ʆ> =YϛDwe(~L;FE}SuvQ)o[ 1 xvfO Ov{Gt~<)XZĞR$ k2 '_쬼h0?GwYQqdF0 Ԅ/ڢbY^PGY)gh'́fշKg1(s9~"CΝasvY`H? ͌eCw~z?JM熾?Gw'+~ha^3Lg4cUo+q[K{{˙\+;8R;teuF{tТ X85B–?sM@m #&"nxW룵hl2A4P*,]0~ _@øAYUN3yp4 wMGs[UE( 7twg=�]OoGTE<(ˠ8gy&;FBܡw[C=?<H?aIlGʇ1pxFj*e#qeu/K! 8_3w;< *y$ ʗ`k=?F:t 0g& iJ?1c[X[ ;n^ WI^n(z ExrkӖ{& =/ENbBdY5\SPCzE^t:|P Va ]8 y/%7uZbr[{JOe<m}(yŏ VQLsOnhi}B>JOݨ.V+zIj)6s %۩r# y/xP۲t-"/R H١0s$ q)W ,13=: Lj'>!?#Iʟ= iޑx})X ;b< W"xCD=H}[<1"2ٟL02%f— ιz\ILvTp|>,9ڃ=}dz ,6ݎ-K,ƻ_Dž(<wJ`a2I u:.BՑoA"x92KMPOE~>]`w[Z E 99#0罝{\; aZuo 3З.(cmk&%ˏi}OAʕYm/Qr(,c$5|]jLr~*ӛ-V ro;GtEC~Z2h|gsׂE=hwڎ|%|?Yc}T&^IDԢi^k8Z華MY'*-a 7}ah#~< e!3i/A/J%롭5x٭KhWti�cSM3%zΔ"Uzx~lHQtWOu)\iҨk; 2}k[PQ0Ϻq?(<n ˳P=/;'aCʯ<y$< 't'v&?j%B9h~] ^[PPSgtei!ƭ>B1> } !ʘ+*IM;`k}=SaH7eN!x~n1͠d]ߊ\[꣋M=;% ~n`PY{l-Mѿ"Jg8Z| G[h(+~J0j-ۆjQg&X)v[ra|cʁgAuq?[+rSTw|MgEG>+70uPEߞRFOsV{P5UV>CmX`Zp?͈@+tC[S6W&mwKi8M䥡i _A8zدWŠXT`75VJY/\,B^eҫE}T:<IRA ex>cEֹ)QI k^-`<숷 1~O|n"[biM}oZb=t ;`~*hJS.Pҥ(yrdJ]`$Z&Bno`¬/FwҳSZ=Й~QɢZIW DesXx YmK OI{Qa\&p;UG/_ad-(J|Upv@V--+Kz�GRr3?R]?.9Gg7+Cŝm b@5'-n9Sy2:>sXV+nnxB\G5J }@Z/x;|ʢ-'7FUX|_.v?J|GK'T'Z1qj e9D=A+՜? [>1{Vb!} ~ |),cqP,d+wtd*�ڨŮ(SyYO?e]h~ȵL31/W'M%P/nL?רzۏȳjː7]T}ތ@#i<^ $sD+3 : %O [H7UQg;)Zl[nw!*AGNmc|"?HteP<H/HbęJx^? k }?1uι#,uf)׌|wooS0`hӴn nPk{|̭7иaoҋ^nt+\z+ww9}SsI My44/{3b&V|zlOE:|\Bp3 yg<A%~r+E*'wmWV ~ůILa[&yK^G<Z=!)0fsƽeѾnǃ]q^j{mBu<hc.8E\7A$|-2FvH:K  `z^add,+p 1 4^/qi|4T=h>+BÀ7[w;h<i/n>LPUnDօxka�=8֑%twJE ZE̬*JX7@s^M~z=/.Q)z4~wKhhVgw`UQc 9-O,L* r ䷥mQi c˶>:H�ڎ~Y}TMWю@Z8t\?ȋBdCOQ1#q5#"'1zhyݐ Pd9ANy]K%][3&LTӺI -OCY8ܳt2<oDafrs AQ7֯ [15Pgo5gkFV6|N͒(M9}Iڷyw.O /$D>~S`: OGA~VC#Fo^~Q٨٘މŶK2_^<a-+{-A kp{}I^LOy~ ZL;okhZ!?@IS2| >ݵO^{T-Mn ưa/e zW6WqPQGOlPl!d} 9r|v\偮"DO4mڜ@sox.r{CO} _8UZcnHzeԫ{{D|xf_\z0\?[WC/y5sgK)A{L1̚s䖽3t.~ul@sZC㼳gv` _q6rL4?w6M-vZ&Zg EX;z4Ƃ[E;חՓK.ͫ[b#hKD}g{L_ȼ}8uHjFNf}yV|e.EriRM gZ z@z-G&>CI%Af*rA|:_ZY+ȤU "4p ٵO?EK@eoh{f%dS1lu6X:z%X7xA#ļV?4QCIsO[QWXi 慁uߙ !�u}];gx&Q$ca|X~ ŠϖYXpu`&XX)M#']#ͫ %y<R5"R _[a3uxew>VG=8jF_B|A!tG%%-ֽN9t[Y.L).EL¼H?_UBgxt~TyGN]w =Xgney5ڐ~wy0JHOROS8Rfyu' 3Qكn֏꾳sH8sP6;j\)DsDmgW؀\,غ9bs;~|XčM6Myԛ ,@Up?Ƈ5%&H}]|M)]6 {G8%v|o_AFpwߠf|o+]0+5Gtz!ӫ T0񨼟۲q,72n+vT%PQrUH%Í@v=_Γ xno9Z:?J-C_~HΥ�m(.d Άsz޾ CUGIguWUUh;<rnV[(/z4U?-yN[٨0\V/w^[4bT⒔!]mj/QY"(D2vA\Oڶ+STn)9sdڈC(3J<Rd?\S'~9627Q9k*+C[`ձgojLoIr-nAj-y!<Џ.O(:74N;~0G՛>jyʋxW|38 C&>񗎁]oqupjێ j+Es+~Lj/Pn'd?cA 'UK$G}YӴzt^E)rzY@x(E+0"4NŪ)Fe' , Jhkw"L(f+Kj0$%% ~Avy@4x'eʨBdɲ?H ?_r>GB6R7IGoIiDG/?\+Dm{T# Escv2I4=ndp#XY6yWY`]nqF3x mT1'+Y0Js3es ,z[�:^?wr:8*J3EֳwS"!?*+ri 2~عQr*?+{KWNA9[@P9`7bŏ6בyuγ/nH=.qK0̵fԪ3C(Z=%# [9 <y1ӆ60vVW) N*R2@Hq8w!\s8rz.s#?] xԼt tumuagZԻ(p$ش>U7v(GܡЮ{Ԛz&4]̷?4m;Y$j=h_ ̸(,C~ǝ\^Qm {̋|z|Kv3yP`kԇ"(v3Xbɏ B=,�8+u u i_2ht|4A,Ú@aPk)a6ɧW.�#TCƔY s43`x>^/'xw&uA ?=x>ʩJ= ƅ[_( ϿSgk7'tRh/ojslgm$p:rJ `皥Hi^b#]ODX_t,s>:GRC"M^ˁ4k|(d !HYw8X&ě=vOف7 Vn^m([#?0|lFB ~&aSsƵ4.癢$46xM!gxVhZ':Ov~G \+/ -;gסld cm5Xy^-֪ܥȻ.d] '/9qr%ܟ#Nb<IWfJQy=`~(I.xJXԡeعj]P]} X+oKyO)50E%uBɪGh+ɂ ^IQ o.@Lr3{Ar4wRf<=tS+A=#D>UEU﫴C<h=/ 5I~LxAF5`|Fd�tӣGZ# 6Cw#oIjknl7DԠbot!o3w<Dg7}~Lu`ShqoG#HeJDM(7Isbg\1 Ys J/!H93V.w)}m%l:DOWLw^ ){bΒk&7'!PRתMQ]w9㄰k|y'0m c$$ި}?|K̗BֆՄ4Yy %_+zOz8;]Xf񬝣]e<UG^F<'*7>aɐt!݊Oa&9zJ`źR>Yg-IPB}׹m?^Ųr}~?nhg }!^/tPC>7m@<}!|p[QW-h6LyHx5p= /*Nf^BףKnM|,MGl۾rAV!ţnG0_R_]u?oZhkx<h-<E:&gE@Z%,d݂.*l0&*{p|zj4 p>6/mVֹ.5DeotD :7WLb&=Utʵ<ةE d0.Wö"1x8ßgȡsi|`+i >]i&LV ߇(tf*Y5B-,@|oWܑ@|e,['cbsm?8-Ƒ|h? j GoFT34lo{6Jm#."cr7pD Ǿ{\D-/0Q➣]pJGpnCNu)TlɽWi_\sGr֤sz{d=z`\" "ujD}!،'<sr= e?аN{THs^6쌺Kxc9+<W;xov 3 zCQc4  _'ݾhU۶ ]?.4Yur~zf�VFEDžл`|{7û_\WƖ|!σ=%v+-&#m!|x,{s78ӯO\GA+>ߐW+ e..P [cTa_p(Q5)Lmi-Z0,_ϣTs[n.UWea EL 4(L| U;5Y Cf^C(zf}{~Կ@Kgs&?s} 5C#}_ ObĂ|#E}rVo<;aަQUIRoʗ[ ؾ%1XK$9񣗤#=88Ň!~/%+3fI}jtgxa:m'퟈BeYh1:-GBlw7[$(0k^؄!fۢZrk,-xo.:~oEʠq:{Vlw zƔ/Aޱ۠0mAsx |`T٥n+βU_ms`ogj O|u=k ~J:6>e2 ( @^7N$HJiؖc^1a7;I?X8|޻ƌBkwG`dԯz0S̎Bos;:0m;j5ٖ`M'ܔ1ø]~6.jѶ4O`2N}x_`&ۇGt1?+VtH|t9;4&h+0r'؇&~;-G+ѭ{yqn}h:joXX;*tXNȱTQ C6 py؈ J24f4F?{RAkٛeؒPqgF^'4?-%ɺuVn6evXXl'9⚧Чjgn/ 2")?&+4J yL(xkAZ\h~E6ZOP3Bu^}y/~'dȽT;؀W0$K-OT%MժQfP;Rwa5;V`h,7:4eɿ#j^mCQC<Ԉ6 TȁZۻR_t>uX ք>'ݡ<,|]MЌcҿ4мyԥ2^Z>=AM6*[`T|#|k7&"su5`\."$Ё%i\{50 lBGtwD XjnU�=,i=8cF-3`mC1xCNx-pq i卞W.RmkxL A܅٧AzoH!KTR޲dR@o.Ke;="D~"EV\ FOFɽ9&l.2�s'1lkCx{^JoRG >zi}`:'OE[ecY`dW4))u \d=h_04g* c3\9]"P.{fdz kQF4E ~3I~kf%/˝eG{G9[֢Ƒ3@LZ~ϹOnFZW._C&%/0'~U-`]K8E YiSG@PX: o b<}CK糝&%jvʲ<UK& ]U<E_UIŒTjv, 4K^o:H|]P^cЇK^nzZ{1lRsf(kNx}'Iĭ݆>jȨԂdr$wQA0")O"eS.3BpE~ӭBcˮ&CW|~v#;<SᢰQtЦG 4B;A..u[1jזޛb�u~ԳǏmQypcG8ʋo7?@.77'McmĴ>8Y!˭mst`O.25r%1/0w6q9O}Jk־es9[f`K}$,4R{Ikb6zorL}/w49lFެNX) vZl˒ ^Ԋl/<<Xc)RZ(:YAb[/f:vLuj *fӎ:{ƨ<AH+up3 Gk^} oh9ڮd2٨ goSihXHr>~2w/g`hMJRAyg2{3m0x~y,q%.>~cayցKz #=K>KK]hg:˃gCs(m Y=1 C_/ӂP6umkm@}{hG̼7ف[_�j2IGsk}jQ'w# ҝ 3pZAx)#*FbhM}gqzxޑ<?n4~*Tԯ#9).hGzE0b-٣L̴̅˯xr د.DկĎ^y,uau4(?uvMѹSC»fY40ZnU)9x{ VNLzm-:wN Ϣ?чS ц>k X^!qo͌AuK h i)g뮕ka2)I}WvtF$z Xvǂvr'B^ $PE)ߌs~="zn=q'OU(akKT]govkRCŜZ0iSx/t_Ie5%--X<w{eH ^s^PnMjeaz$j~EQ Y0Wo3k!<5>1)xԫA~�4wT7eսW kdF)6Mp<?V`]Y:u+OlX3[R`P%<:v1Qg7fU衪rв~ipYϹuc<CƅZ39ycHHݘ ."-Z!}q{N-y: N܅xnϗuwZFR0#v5kE!0.K{Rhї֋-7:G*3)lyØl}FM2 b`dy`f/SѦrFgDZJl)#1A敠/u*| ~ ,Ao3ାVC9_+GL|c ҅M\x*DD {auV a (YI嫷e۱ `*) ci{л aJ/VBkt'R]',{N.w{%Q'K7^xGz{ kKJ7 1CLτ�j#ߵ~�Urɠwiw $Ē=;3o=LAk%{By-x 8N<xζ/GsDLTkپ%7gCOi$]Z+7+i݉cP.1Tz005?nN/|MrԮ'Ai>>Qq_~-[4c>F %kGva57/ap{bem-NXCJ1F2Dţ׉9Z<Zρ[j;b=fe``'Dg$\1g Fhad_5mm;g[P* RWߔ>Mz19wb\Og޷2 DX,2Ed;o]̵@s_նf0=3b]4TTlyˠ̩4m!nL  Aq*@+ch5W ;Çnm8(|N.~0a<AA,OOԠy-_QA]zQQv5P!_G9(wUyukbr+v]*XpƆXb& Fy %< {f sPL^9]TM;W]ܛB(xE4/>H{^@]oRmihK{V׫{ ¦9Ey( nH}nPq\¿DyLI/:{8o=^…~Χ[;"<sAsZѰ<hJ\q[O>.�K_5d 1t`e/koxd4v^EEpv?;hGRE/ kHjh\??1l4 *kqb>)ԺVRL1qG*gWɂD,AWbk4r X/^ET6yz_OUNչU.Ճ)8!dj8_ꬆW5Zl;@亗W dgs#X/#R]}{1nb u[gĿm:*O63; >Խ^,ΘGN^|^͊Y cod9#vÇZ߾<U{ ^A(Y*t5}:Je&NR(v(OMibae˫\CC8P&٤*ĨIj_ًneނ,.)u.u$W9eiR"L&䄚ժ.s{>e/`r <EѤr49.&q&/'t`dWԯG g?Bx8xGoo#!CZsfcZ7,|ԏ,7Mp26(꡶V'TxT0gUB^"`>n?߀YiQ< u .kQ&A l.w F<1fu渙N-w5Cd^T2`<p oL`F53'2^:ÿo;z �)Eu{|H- ɨgBDTZkT}ccC0XU) X.^?zP\WΙqt/[?ӾLA; 7J*ru0;EBɮ/e䬇/+sOv2Y%%( Zr v߷3=1z[c^?^[P.c95˿y%|Ҽ]:rgPG|&ب*`#*'a&e {\|A.3lv!q71qs&8u! \UHLG[-"?sdy6Ơğ,73k,Q|\޸!={vd1ԋ47_Y<XZ�i塮S}$6g^h=Qrۃ@,Z8q coT*^8V  _n`6²w￑ȖS˜'̕&dۻe&rt/~IxFBPXO7d tY/خe+L/xZcQ}d$#6⇅o^ [m׼$u'+N&xS}A<Z"`FO,ƀ^h_m Ct}\v $MB2A4Ux/EUe,[ }E ȴoPҋ ܯ$6!a7T޹4t˝5jkO"k%ͨ^En}$oDo7- d=tm>8PztKk6p[Zvc-q)&vde=_%V`dxY}0Dqu;t4kMig/FnG^Thyho8`48<~_㊚C{P0QrT1L~iEoO˥l~q qk${+|hIk%QyTt]\h+ Ѯ`>J LAu7B&aEsίHC=OdS/vz9Kxz27~d>X9#aEEeE;\.Sz%cwAEU ԍz,AǸy϶?≊v [y_Wu=[V*}u#JԼЧ8+eut5Dٻ}lD9r]X zbW|hz1Ojp4&{6=£%(</4g:ƽH\UD5<#Ui!~v9x~u1_&p 񵖫Rqd"|q =$8&aSwٿ&uCqwbQ_}c"{ާζFMݢ@e=ԟ6gji?q<޲gbt5-H7rU wxmȾv9KǐņM`ooL AMGڽC趓j^uhO`fy5G A3B+Y$tWPEM;AJ,x;6#|=JL-�?^٧hc!յv)F;\pCnqN;57scm׺'ghg7FhaSW-QӺ(R;(}T5A|K&P.4z+X2|"|Qcۯ\FC)F=ܳeF(f(^ 0r!\qꊱ>y6̬`izu׬m.Η]V_Z߫q%8:۾@ ,z!)#-nr +L'ipNIOQ#qR0_!0it#T&E)cY¿)˖@^`m8 0+ˏq1*s]\ceċ|4kM{Бy$%p'F55S"_5R�%W mSҾq`0>(Bw$ ,3zd/Y,WBbg(:yIec \eKZ}bY[:EK 0K8nz\#jV[e&% WNYh.us<5_5\?uea=CnDX[^=ۯ Om4aWܾZ:"}5(lԍ ƅ9Tu~xOB<tCgVcZAg/@I4xŸ3\.Gz!r쿟71櫜>s=z,.os p4B ?e_�KK t;kک؀QPt.(%'<r-BnMъ_�yU`%87+*#wd19ׯL fmяѦPm ?^#f)ݨ'Ȑ$%azm#$e@r Ω.5>Sʮ/wA/"kҤ$hW;#\/R·hfG5ekSx鲢>ְ>$z!%)f ,Q?֟/.l2&UiIJAG=2hjF#Qs[^Ju>yǹ+ HyYo҆NmE* h;atm;UPz#O>Z_jv>VU-ۆyg5er*k֢S<vPwmگFJK}ct𙧄)1T{ 7YT؁_>KPO*aݓ_Կ*7”5$BhD d:ðhؿoޜ^ʜXۅ1 _%{tR|)_Dsl X;b35>#+p%TXhrS4Z_ tAyPQ^++Kb@]yp.RmUXHv̿%3Yl)Nc~HcqВH{;C>)%rbQV& ۆz_f] <THzAle> P]͹u;Hփ[RLcvAz:`;dBk`>461> ^]RsS㳔3 `[4 Rյ :43۞'i2b0ά)ngͽ,GãB0td[ph}JXxonZSi6͙ k'Q|ڂ3ϪJ>_0~>CFͫkO rݴ+94u3 \�VТR=t  1ZĽ[9xtO(JNeiG%B1(97F|FD0MQU!ZAM[C$Q65"A5OcM{ݎ{QXMAܞkReQ N~y.Dat|X ϑʅ<%k R/σf$^ gKP&&YBOECsL$Ėŷ_vTߡ'dhƁ*5B2Bz6">OQJ^8c]C~ 6ɨEG<SI"E$T8 g r辕sd>+d<WlW}M 72mK1dU@˞ }@Q{'FxϽM\|d}&{j.-x$|r?)*`q/Iqf52qZ ~WBM`֛rg=C0yZpEɿGyRՇqi4d" Ii$Ie7)UR{^w[ERz{~}>{snqƾH/dy>4J`g0S o_bQzNLu=LJگƻ:D^=FߞG}R.}胥m=^)/$IaZG'\ɜQDst].q΅M(yYcryl:e&t̫Ed�;3ղir}re7Bb>)R~H&sAAc<+fZƬa}W0:,Ko=mDW-\@̱ #z<~0cdk>`3(a JsF>U`Xs[=9k]`\cRGƹ{b`&% ~]`=۷[ óR[ޢpڞ=*52#4P>GW*}{uZL?kvҠkcȺ(/ԭ=GVee#<8S|8_Z.ǁ*I4 \4 2Ur`e. $hV6]An M_SA_Hu9j^-*l;GyaU*US ߰v ѯ.!ݬP::fW< 惘X‰ut{6liC;=%FWl[p&ڊl~ݹDqV+0/E\l+Auf"&~=q㜾)Rσ)t=rTlB4+eLT˜sx 9w 杨@0ȇQ#D籯N5AgH-{l<oְAL+M$;L"~_합O iNo U$x;)*Ifshf:{\tcm[uow~=5`\(zbʂݲjnrAgAT_71w?F42$A^/{dBV^Fke-hGt1\RGS k6jwÄJ|I;(v{^~ tۅo𵂶eK.Ho] . >zx@ȗb;PKX{Qͳ0iy--y%¦6"$s\QIF è&TF՝GMᕼK&hO6rC[N(3.濃G~}neGp;b=cif5tXPd-'Wq7 St^4_f[LުsY: g^ǯAx9zQCDxЋu?e4ڡIp&Uqðv=zfsnZX2<Q(,ȾVʡcF 3g]zpO| Oѫ,څ'֎XRRuFmG-"j9ЪtRقB1Rjv-o{/ɯ0Ie^c0攭ۖl1W n'hǧM.ðމC<9{Fuw zolrk4 ML/ґ>ֆB(0x ޗ7K^F<$(V%Nc!KhGIU5{~T K1qk Eu$7l~.,w@5傾Ԏ/jYIWjJEw߉FcʣJ>֧{I┺:! (@yyE 횑vmFBeڌ("tЦ{!yC£Co8ׄ_YV7Pھ}yX?ur1ʷs' = Ӭ@q9\h97ecQPuZBTk꯫|-FY.YO@ڶ<cmMCPXAb(FJbb|)mOxl�l=ÊqCp%|ny_.l\S?y{}ٟ/(t.kt0TQN]N,=gK&DבU_5cޗUw6~2Pc n֠3[,ᑿpKxDڀ/ctS{t0Ȓ,8<j)zY/VbqۃA;|.IY}Ţ`Nv3ZDZHqsHU +_'('JKorO jK\AyhE^7ډ!~,#i8+\@o'u]Cv<AkQycFJ>'mN<wYKƝ~mЄv 84f+OkG $~ 08W_~Sh[8a!0^TP$ HAa9\3< Ö>-nTFSo!Ro>_ŝ6Md0o ht?YX5S6{cCSYN1PUa,u-{מ6 Mi(5/,m[A<>`ril&#вDF7ګ6b֡Mwߕ8P$.,Z%{ܘ/{Y \XpE4+բqC'hTߧũH'L嗹p o1%0/S<V[=Tpk?:cl 17L+˺KS�%{7Ĩ3,4XӲ/~|fqp |҆o><bw:TϪ79=;oWW5N\)PV(Vw*/f ub =k;`_Q4T(VK{ y3Qℯ EZÅ^@yyC7!{"hn/'btuΩ)(~m?ҎAچ5 Wow�ctf'ś>@Ô14X֏ $8V֗5@d^/#/iY{ ɠRsi%6^Uf}'Ȏ^@S yh#x4D2uNPw{HbbX&wnHFbF# Wx]0doG@+wJ"`BYTDNUGXoyJc$TGQۛ9 ~_?@8t3?w+ya`YOs~~0-OyY ١roJ+M>@6-WI](0ݵH["Aq@-hjC4'%^*3gKߛwP/ <cu/5NvdorwЃ`/&s#IiQ0 󤮡ӈOGby--jʕ2w4r-啴N*KǛϿWiN"Ok=1]A>Z~-y\\f-Q~ł6k #vɤl۵X<ash{\8p_d{2h|7ш^MB9t-ṫ}sV&&lPL\1+G}p1N 1i]б\8k{!VT`S:t@ =AEVC˘I0?tw4|_m5IsvbhvJS/wЦV#+C;j9I\>"|V3AEx5j`XW [``-m͓E[Gn~|U֬՗P*ˢ[3'1|H.ҦgA 8‹SZˁY?L^>dSG>!JM7&AtCŋSJ["5[#T=Ewˇ!><X׋+\a/(>T,J뒫0}Jf rmw-Ud~gMs LM'뎈6ޢq06D]/4?nR *cǞG?CL.(]#luw gJq %<jutzQ6ǘvGr\z ܫf11Ƿ J:ԊCEQ|SiZph F'ty - >ֵ0MPGL><&@^AUdjًVh8d3cf (6#7z:sl1i/.<aڏA!yޝʘpL~D ՟CA`0~�?(TC*Įo%2?lYb |?3ac;y8Ʌ)WAǻLUY[kFƄԗ<13ug?CZoD:]? J;a$Q6%:jt8V D׺ ;Л ۨ=ܫ@=}e?݊P4TgUg _N=r$4%n]^b xg_0Ut�ul;ٱa:xC|tN.".种W@j-�wŞq5%w.;TWi|>q7M fe}JVIPgdw1cϦuV+jC6Cœs/Ԡ œ[=Բ3Ҡ}UѬ%/~?eWT_!\3.=@΋[eM|1A%ۊ[U6SyM0av[VXl{%ޒtJjkJ]lr'#?m*t=W5Rc* 8o78UtV[4LrMt39sJ7@1}Ww(x#�{iH˴_]T?v 9,o7_hYH؈I!(Z1'2:#3U+Iq%!>h?ZbP0W+A=Nbg}@*@ dXTel];ζ̋Sae?mеƵGD|Ū+1{e]J'Ц3`ͷV(7YIG`4:tYYrut;R'qo?ONܓ,KK@{%ط41>0y=#60?) "N/|;)ΡZ\ԹޚoZhx Y&wIhj0kIb@h%&'Eƽi(S1/r"q֩Mh h捾׮$0MT.!H=XY J*'ڶo=AP~LTZ|!cMG^^AK+�]de�{ʧm2|v�M+UFf;c4+w_lsC_E["IkGA4(C`yR} W is./&T Z1nj[_vGAh%R@md�4 .!y~Y$E0{Qe/%FnUzY\hRk"PSyS;XZ]t0l^IӽH߳]qogkR=Ǣ1ZѪg963 ~oua(z\|ۉTLJم !x@h"W P]Fi圏, {f"qOPAV�Tjg:MȠsٗ|g Jۧzֿ1jxǺ.,`rFI%y<ڮ o|p]~(KG&{1Ⱦ*Sy`s.3GmUCЏr.{\FSP ]&BR_,w9Iv:=rǽAnW%CE&}0_WExxz;uЦgm腫r |ʼn~obdJ*v4ÃN~ U.^qQí{PV^,AʝO'Gc/p(ڻ7Z_$^f뉱yWsGLt9ȥv#)Z7JkZdV`LX\t q޼xuh5=G1ש'H.] fx?m>Ych6Yܳ1b5F}n/G(3<m1&^phgfDщO HN콁GV?$nid{@{/.ZȖ~A }Y ϡVjy)Mb;DM&0`J5ph*7Gc {ՠi)|co!mݿ O;q{ qOW4ET{kjڱ8Q/:Vc/%{eR5- B#4hs,5kQSs04rFkZa?[hZ Vb)AtoC\˹ -%Qd+w&D*^d+Uvyǧ` fLn{K(w +?֗!0DkusSz3q^h{uȘ~9cA Ӻ QlV-t__ J~DS1xZ A{yk̰~0ȧg4P^wb֪}}g3Q|)*([ށړX㇢'KyyP$v 3ך*?d寵0q!@BٺwZO(*e#|Rb1nwZVse^} 9&Th#;12&4O> }t/blO`Y?3) ܩ=NܗZ?Bm k lZ뛹Br{O4)y˧lYͻћt䓡RhMaL+|En^Cp7)JcPk_y$ֵ,'MM2g̮ LG&C1Zm7yW;Zsu:`utaiLnݚAX`)9EFg?7l^EIrzb5i&T)o=hIt4rHEHq@LJtgzZ ~9 2pҏ3 ֞qh]#7*%ӦhK/&FExSL1=8구<՟>@t|lBu109\JO 4(T]| '1P#,*YͫMQ\EU돠tghYot}-ަ(ɌA{hV=7귲өxqMzvP?n"s{+{gP >)GSLfkiW} $^9~Ϲ4)S)ȾU7ۖk?OXDjbMpJ.lCY (Ѳ6p-e.XE2sex&쭢vGaS0\JkPSC@J1[{cPoJMF| EA-{Tn>HGe, T;Yh>=,"c̐I7_L~b >cT՜|{r?Dɮ?rz F2CDˆIKwŽ(fެV=J8MCVv!unQkrI+Ɩ.; c^V)�_bb3wb˶ZOh Q3?,JiOz"э2TQ{5z6_C>sTCwuyi +)[o}40`.؈J\G7pkG[l'nlr &Dgo-t "mHHh�r!Erν+(|le(jO6{<fEƪق1,:憏<@y^MzKӾC.2q|< ]{ANxNI K4v-{aѥ`$J|59@([&lz4&K<iwJG{ ȋsT-9qV`#Ӎ^"~_;`h :WKc}زx!F7:ϱaxRş v,{hM";i8I} &:Z-5k϶:ksw/,Eڝ-;}=,%@yj*Zs%Qrq&DDt{@2 V*U1[>iEIkz7u_w/>TAV}tD_rmHB1!mk1n`8V@W[. m/䊏uue*.=w(ґ[8P`} ՙkXs XZZ1jp;1KxO2t5+ }t?`f3w<c˫2J8_f�J,oK>nCrp܏?!2Mőm?[HؤJ6PKH$mӭEԝ`ኲ=`TDv+)|瀡$K^~>/&3g jkȾZuk 4M]$,{(σ=6m݀�ߣA9ND)GJDŧ)zdWoIzDfuXχbʠr`q-GV ķa+&:~եO^Bk:{w!:�;Na /AuQsdɦb d8:U_H(S-\Wʷ['}H;M #|hDPBo& S]7�iwVUT>�Q}ڪwD?5ZYQuQ5v=I:EnhvykkSkp$-E>`C-ǐm` uAKWk1~J!U?n+y D@:<#1/%cw!ǜYb՝ÆLH>Gjc\](#sW돬m6#O}0 _ -4k?ƫ驏No@1{Ѯ/V--^=قJUW@wHoz.=L~9HJ-<0vMeJnK zN+eA Ly&ARZ4}KHRHe;T÷7Ih|JyA8·1-uI3_aW.hvCWf&@ oQ\{_HpQ+Oz& >P1.l:N~{xWȋ_~�m!‡?~AeBk64ݗY`*v}<+g5}"(1`5u"mo=�ӓ#v ʥmwBVE԰/5هfß]1֣[G2m2=@t�(\nh7 (ʕxi@%o t9qΒmFNٓ3tV ;kCO,lx矫/+h LYa!@dvIRqNsKqCQ0mG,j~/ qw'Z\J~/Va_ m،7W0lJ *"ͬ_c{·E=3{o/LJsR0r2X\* Ui$>^ <,hǨ_N4IuИ J[/h9lPvL` {ԝQ%-qyiH8o޾`v~pR +djiA V4JpG$VNtdCSv`= :IRڴ8&? j <+nɊ)>s`t�:iL|wƨ9TYA77걄\QSZ?2G6]4ФbŕCR`<=닔Z'71bT+ ykdv x4=4?HڃOV-. ]L%CB /*<"{YeMCQRE S>/ oiܳcUQyi"ce*ZhȲR,,} w_b"?Dg2@xXK mBlz7\'??G=eu >T=zm h?ƃ=\~8ghhxK6jG:}r]W4ƀY|[? P#B%C08I:MǑTseDy=bQ{nj[H=?mC�0dTvb4ݝB^U eU~Z+&|qg~3ǵf`9j1p(_�1n�d ݹFԖs;/1?]5cw>VuM36.|:.|6&%6Wd @tUP}ш\~ +?AslH1ua;[u�зypgHty?J4}rםKPrN*(Ǻdl"hs˼Mg>ԩ*Tj#w;N##ec:0kE/{;+Pfz�u5n< i0Ji+ 250<= *;lG;^/eH!/[#FOTm$JGNGJ LzzWP _wuSb4/O8c`DHș :>ny)�MF!45v]GD;<SȊ5)ie|`,,a>{{OjPw'yv_S )]Ͷ̳^I9CD+*;n ΂nɍu`q}_?GpћR(<xF1пq[᳍g}{ `fwծ|c0c'ec1Bdt2.4G^Fꃥ=l@ߨOVP# GT^}Kcoe]5{aL䜗'"._q czaP-y<1L3r"׊oGAirM`z.٥'AI#uI ` e`|cHx+PU]_ 幝M찰hv;hˎ];a/eGzj jp@_ST׿m{Q]K']E> q4q x|Dk~Q$*/RiC tRvAU/wb-g?Qm#c1f͟I"HL] V|h]vhU=v7咿$4s E+>~=QP\Z#U6+<å*Qy ^;#߭w (#'˃A|], 9n!rC" Â'H:3 C]Gu=WTR& 5RchӉf LOx G#rԕ]&0"ҕ&?|~ e,)Ch[*Vuϝ4786n{ۣh,HĵVĐLU`ryh㺳͋^Nt8S 磌 4PI.!J]Et֏'nJ*Dvz"F#CwRܻ@?ޙPmPX`̣˷uɻz6CB!HّWu&N�a1gZ@%?l,r@CɸUDƬc:ϑ_ ׫ ޟ9߃.|se4kbhyMh'/vgOIxtu3YCSר>S= ej}9ӗݠVZq&##;)]sZGb}*hMrV֐_HaR_%g}yS/{$ "e7 ? &}1Ng׼9te9U_DGGWBdTx(^$ lJv@nLw"'`mu_ wWNKe _xD<`*;_J-lcfNq~9j ̝Q3P`|zŸfZ:'>h =<G)>'ї])7^wSyaU~N#Vﶖ{SGEu0LU=yK9/+5: �&{*FMdLk7(_ea_rlm³S5e#+(ETx-.,L~AЧ&,ঀnOJh }T?4Z· B ڱ/(y5h"$+#kLz0;uHݲV%DeUZ{Y'h|pQg˟lB_XY!zVEJ7ǎ6"$}uh>;wc T7 ;핃T++Fڿ?/LLkSiWOZ'QNUi=ȧoduD~rO!=;hgZ+UPp?4F+5_.֧~M6rͣyOͧ$B!n{.L1M| /sc,]J6~  ඄k9T^K7jCMdtkzEuhwQBD5`wCTu(i3g486RⓟkyОJ~c&72l "C_{]/^:?k0V TͅtzծT\:5,΃ay*mB}d *U-$c|mRZ~u6ͫ}k4&{HH߽.x Jnz: LL-kmaxBm!)8ՃJlƃ=u 1~U TH΢)fD˻<@d]fOߔ Y O8ں|m{~>oig0߯CQA 3{k VA`/1f 4] )dbhuۋ߽)/ š|GIh J6a?Lԗ\ZV18)j6{zv33 |@pvH7Wĸf?_=u …TR͑W/TLj]%| H>CW +XwwwcLϒ7-a )4A`٨a 4AQjsG?W!<'a6gM"A?IxB_g)(;_KTѾ]`qL5]1peF#@bC"NRlOiY�%'?đ۪.,a|a|Yʥҗ_b +_XCğUyη eLG{U?c~P:KQ~N{ vUD fǛata<W?rIG^~WPj u7rƁ*U@ r9F6gkFQfR6!}rRi K*D  *NPd7/~`\n>iY]7Tmةك;qnw=ˌ '"uiJu; Qz% W?9סƹ;ʟq[@yOX W0*>wycGjLmua>y0EK);zUy{@Z WcЊJOD`&^WٌҰy[ F`xլ &5e ";˺' @²n[@e*Jro~{ ȳ{skƲ3;01~H_̤vr";}`s_ WBBusHVef 2f9R7-[|[:RJ l&kC^(pO<ʔZ3涘iƃʝY(_ݵ:A{[Ŀ:*tqFkOy6C\-z:W?1+4^ɿX0t&ă0]E 6}Ftm8ОD0Gʽԫwn9y;mJwK{yx^oq!YN]}k00- M=e"1tW4u <F:!>V(!-&A>MEe~#@,d|#<yozjUŰnUDUtӔ�OmJsC_4_$@IV `Oi yOl_npKkO{߱fק~8P)`4byX=Cع[d_n6Q"+8Vn""Kc:yO͖ǠJ|NMU@ͽ~>]]F|21Uل_%3A98 (񉠾l:-RrtK4h_c,aaSM4Yo0455{hg6D-*O__PI_`ߗ] M_[:ĭJUmvhۃ|]1;y*QJvȟߕZ=k Z\%xII o.Cx/t#}v/BN3JĪ xXYЋΎ`A{R=!Ǔ2}p7oFaL}/JىR9>!@}#Q aβhؽTYVnW"z7cR{Wl8d-?Pmj uEY�ߎ]-Tѧ_@P\ TCϚY0bM{0zK &l]էQ8+C^= h6fz-ƣ۹Qj#c7ơv?N̳߯Dbn_++ r)V=J*D{3 G }يf0[@[{DU/K/$zؚcR�7+y!&h"l&Iů};'oD'1hVfO\Ĺz&%?i%5BPUU|Y\�ݦﶣ`ih3$odA>Dޝ׿ȿ*b`)H؊ɷ%PvF$o2*،W`7RTIx+ԵY;,Gnvn�3 K擊L$đ)Qx1>xC hN ^U1*2)|F9t7VBD^GZez6e FpCD {+MaL/I`m6i{dukJV] jͼ 9&dO9]N:dc^+ӤJ [$ R�}8!bcLYSC ʸUК篲a{ j ]@pY6FQiO{ki|꧜(5iu "USTVeՇ90 {>;5:>P?F:4^;/ZŎ$N06yX%fEor9vn8H};An8�F8z4LrԜB'oG2&oC}(~$}E_7rzӽgYЄގݦ;:>A۲fhn >M,}=yacgC.cL�4ٮ-24)Dvd~"QMy_t7\bzOd 1_n>wN_? QvK<s=w;u2ρB{Y' γUa4{1s94/J~V#L8qGRҿ5偂/\w|:R&{rvI"}̨mPʼ5׵a_آr19ԯu%X QP^2HBe0MBۺ5;K|+hBҾ"mO!.h$Yҥy`KR <k=<\Cfb702A*'qvK4d_V;!I۫�MFoi8uBߎX):ǦSrQ5 ion>]߅vo֫]E}q7+em:^g'<k\(=׫21, 廧~>!{qOfkWk"{OO/>sdiIP*:pH!))j$_Hvŋ}d|\^V㘔pčłS\ c?D=+H@f"k*nF5&|X&.z2g%'aa|;& fVwdMn܃z߬|^f*X;6'?K~;dDl�zN:O02Qfw,2^X_Pyr�cߵm^U57;vy(ۚ&nc,TdUlZsG6UE]N.nXm) VPRrnQ. *#~T�X:ۂ1߂6T-^G?I+uC^qu7k%DMQ쐪<[SQj2:=/\}2}ţ߳`|Ԙ{ <D}_Iiút= e&|3| �I>cO(y|<2">|ʋcvE 7PZaB%V [ /øk *_u oB@7Ð 5ns Jg4J KZIm>o2&ܳ97֗Mz%Yyu�colPP;uqZ[a쫣L,0)Rl(;MU0$V z$8 v=DcA|x5b-բυ##~))(2Xh{#]|F47c=:t:ʤ 'c1އHv%8iAMu˹gmu1Q~r`$ƞ-K"wh%Χs!O]ڇVG[x{X<V/ Aj1z&"{8P\B-9 Ib>i xĈ[6k:K`b막:y}qŽ{ݶ&IyY{:M7vP:f֪`wɢmkzˠ}g<ጛ 1iQյ0V"y[F1vZl\|nnFT A[3# &N_M{<dznGB!b֑9\IcAr;t3 S cM9߃jb_\j}˿R=E c$1j=Yb3>޹ʗ5ߌ_Wo 9_Oqm}7W 蹽E C,%!]ڻ.󰾸I^.FW$Ƈ8MuVLݥamoJߖY瘝󁴵!!'O+G˺=Bo:ȱZ FKFpMܺqC[@tcx-SWH4?D#'ͿTodBS$b%KXuPF1-$m] G-0p)|ew.6_f/y%ЅBu7ϢQK~M}GTޅ\@a4'HrFa#O?+5Ҡ9v'1;1U=R }1&%�Ɵ!&?yxFq>/X;h o{ݡ(8O4: [0a7`8#OR@Yk<h)' LP{zMy웅H,(ĄRΧ^Dwkv I"FN|4?QPpS8TӮπn@p] zL/B)}_tDjt"΂&annZO ZTi4Ŋs7@s&va0N|q¼'@b?$c+7#^)cՅ" :T*#!ݼH1COoWxcFcz=oXuS3貪S֮_zoE84~)˵`L#7̢s?XbihaA(/-(FW`hTkGn5nipB2 <s 5>@ǯQUr<]= j'E@zf qSk0Wx-i#{A)zG=t}贞nt+ a/19V9EEoy^U$I{ ]KR"o4~~LؒYo.\MDBB׭׵Q'Ԫ.el$?f5w#313n[oeݧeu�̇/ lbՆP:e[.C͓LP(txljԒhS;70Xѷy6桏/f?)+1)MBߥK1o258`f0XTX>sKv8ެ2CW /\:rLd>#PF64<sbZX qn0}\$?}'55oP+YPi%n_bZ ( .|C B0|d=a-ޡ_;& N$;^0^`cD3տQr!h}m[Ru3vxoC͋Y{o{W_2X&/Z4$׫mi$;AF ]_"B Lʌ:u_"ȈL(?O?4eFq5y!uMN7>! eJկs#fxTO'1P7Py|*-|zmz=jub~PiZ2r:I1o/uT Å{~"|d9"NQ"8ݴ]* $օɺ -mxҭռޡ@IڣJx%QRؿ4llv@UhD[M5)~lJA^گh>4 S.kzQ9X+E"SY3ںRK),"O8!*]ŵ㾀N vRwzI{(": )aIM%kiWT)hb }{e5||yEUڰ!.i;v=!|c6A{j2@:KVqIw7cJ./Yȅqn�\a>؆*0xK${]pqӐhQkڃU^~!}?Cױ ~+*xs`ʜ,a͟"޹d"+;!o+;Q OkKߞu.d nB5d9]4ٙBIL0Wo].茱UYڳIfs;gJXrM1)TV3?.|Ŋhru?7!'N$8YfYs)ysm07:zփ{z&cE檾؍;*Aet1>=Ж ϊ'ğWgj@C獝;(ļ C8T&kFоSE'Ԉyv=?QҊȣ#k )NG8{a]W"\9thG+Y~4-lbTR>^3npkwEqwr_(x/.5"v4; v}{sٜ1Z;Q~҅~1~7  tc0Z] -0WH! y4(Zo2QRTꅦ&c2H-=cX<|Gʜ3jD3an63ם4|4=0䋦0evg * t7h\PzmنIY찔QDj!s5S08Y$)pF(3>v]a״{() iJ3/WxѸ;Q=}AOdwC@\)u*"3^oQ3sLk4_EBw@S9-tԢb(+;C3˒[+M&,mp|* &i[nu%KG{eSe>PFB-Qi4j1z\:c^9es@'S%@D[";G¸o/&&'XN*@? LoN^}G<kWfW@_/h|z#5,~^oR1_ϕ/@2X~k$kLA= pG19ְX#FFWQ :l\).tZ4$69Tp{@;hҧ&7"M ݦh?cIT~}}c"^>k'U+CmU6kkrB\g( _ YR%J7JI�LYAdh`dEĭ*~]oՊ1 kxaiLTS֨8 0,iw7PVT `zYVݢQɶ<�{Q`[φй?BKJ 'L"@n?o c_hF2:cpEۙw{@?@I T}[ZelE^۴?}ټ#ar0Y &];51ybM>\{4c~,ֈ? K=hӁ,J,Q{b~٣ ӏ@1 l;emy'wPs� r<Jϝo l'~qů�iػ3䍴E7)|{\1j]Ť,H C3cg[\9AƷtMN{d{ 뤥ȳh.NE@{7X?GgIf _ot=օ qhlw<$<Z4cç/,|­)y)pe?oqm҅NwtR?ghA錠.} u 7v,fju?(ͯ'4c0X'' ?79p-9`zj>v0.EY*AVū Aj<sz wӌ\AiWw踊 .uh{ K=~\½O0*j:O+ӉN=ReCǔFv^ڎF{ŷ\ =2sUzuS0 #@mtm0y/PNNjoVy쯱wU:`z=jV7GN>k/(xeI~ /o< f;w4VT5eaT S9hBI{�IC|~ZR~Lc&xKmNY>{Ԑ7#$h9C @x*(QFܪMZ<nʞ]ɜf >Ar%~^;"GP3HF}u&[c1Hq<*UUlA1} 7_0\%JP AegK;ٌN9[%<tͼՅ8eѮ//Dt#ÝA"Frՙ">$FOyI~D_D㳥K`&0v}IcJ=-21vri) [򿆔`m'yעD= f 3D{4bEcx$J9nڽs?v4B"g|-Jrh1\.x 1p5j<#pL "h8?(%v{^bV -#(F5 `ym%Ƥv )7QMsq_?^*0ɺWqRd+<9c{�F`Q뢘s�틷i|%-gx=s=6aHnp7_}-(4z:@],؇vrc S} *Mn$8}Sn[.+YJj|!<vpßZf'Jn]ZqE!*|zQx iqf`Ԭ& S I6<rPՓINٚs=im$F0 ]Q4^aAxݐ?zld[ω\}wǶr}p%s3ș? ~FߚӶcb=_\#v%OƉwWT8Xm` FY0Q6Z~ö<Ȼ^58:Or>Iۈm1/ڴH*ik客=1 $8k?go)٫ٿUܑS׺Vb`̾є'c?\sqqs R&&A-z?Nu^ N 9aN:'m:W*V3?@>^^<#iUGDZ ]W35|` g,_/cCT]h>;uq%[Xo!|w4|/FGzO7$Yy2jݺ8]0 !ƄgoO]u_{pb*G¨4Z*5Ϣ-"A9z'> DdgEWأ\ni|1t5(BNރ5/e2AKkKkv̶?hT 4AT >m X}[<{6daܛ2"/ o̰8_l<$ Kw{FDFr G :e#XQawmNMawIОjTlfu; +x Q;Nt6= ;!ѬtN OI4ׁy~MAj)IG\:Wι&Q>`m=#Fx +VptjZ0~nQMAE3O5/$NC@k-ZwQe1'cBs8}έ=^hV֎)6vOFio1q쉡_4qb1^z99,h׿�fa6QBV)BouS[sM;礸nd!75]&3#n')\X,s?:\a Ry:GAN_FޑdnWps[sQ1qkۉː7AߥFa:_Qv ZbعT:^Ov +Pƅ=LT [d36\^A#F; d[K̍a=ƍlkʳݚ(|f5@Y&k#7F] J[y5Z=| %CW r|\cLjH/=,Dy w!IQaiW3qBC`&G yq1�ZMG81c-h,}=TPYs0ѷ^ʰZIߐPNM'Je]LpUh\:a04Q=boNYg*~8 Ʀ-wl>i8 kf0܌i!h\[|9$+QP?!7Hv $(GF,_g#W]ʆ:dj"W2.X3;v0; Ov92̒XϺU9ZͻsR}4=M **X|o`@}${;_sUXbEGgA9~z pqޝ3RLQ78IO:kAcEw`iقQEH-tߧ7X{8^$C�5i1Y"w^0(7UԳhyX2YKؘ5oO&'^=d�ltymb}?0'}u7Oes c^<Z ^Az'P2Diw5isBIOk&|4.HCe׮>}޶Z!-}(%ʎVᴓg85|Ӆ 2jT. ?o4>�aWT,!h0N v4S$zErS0Wy>'tGm#Lyŵ2]Ú[Hu)TurڭȔ[uy 9Wr`x(dh29$@uvna#;'Y({Wdſ}WFG|-:H1.#Vm#ļ;NIIe;+8cҦWSd'ND->uux~^CEvBݣ9e]bʉJd0$h;!?6m5AͿe]H~H疯.ʃEr./~Ͷ ) <HVBP͌ZöW}wAgWYuy Z^u%XZkLh|Q ޕ-1bONy8E~>2'~vD٣gZ96S 3u ^NI{f0٬2kes: y.Mg m:4y?%+\r>YnN(جUO[,uhV{Ӷf֊HٽΐݎbӬdiLxhݎ+ (h:0O{؋NQͧHlֈyChS~�,FGvb=1`[Jtn R ɯ1CYb-fJjqEϚ%vpu~:}zY`F;9Q_*bZm@o07ݙEeDBP6=mMPN g-�Buec v+FSu ,q"r2uL.\GU n=''_Ib? Ѷ$|F  ,㊟&7s$8-ʾנ :-}Fm]FQ^!He} ٞW;!vG�᧿.RmМGΓބL}Ev6GDdn{\̉ߝl2Sך#4~rW^:RYҡIx.= gZHTG ^^Ր\sB 9"0 WչPJ46XOSƄ{CIh)esy]EptYAmw1,j-I+hLZ[wh{Q ;h&WID^%Fz1|lTtb tPTWO6#TmGis;k*ѓ]xgkLnrn~߇w VgLP9dn0 C1U6棌Ikvr1)QyyR"z]0sC< eo ˎGԗmh'h#J| Y(iAAC/BVž8Iљm'\6e>vi ŏp?ifTbB{vxT<+9~b|>=v: ?p\ѭ`*]Xɯ{ѭ#dͰPr=.ܔ}}YV`m>LY1/oj75pʂT!硤zrR4v0ţ{ R \_fU[]4"_P|moc|>8u"wIzłi2ʋ<0>I_ soy_x\x\:n9S *&u]y ZlziDC*>~o2BdV|mEg`v�4tZ -ٮpx$ 3-OcAb>$IV8ZxO싂O~\ ҆etik b~<s3,?u rV|`J~ri'XŜm@zes7hףvĎort?HlWs7m}aa۹HsM,Ɣȟ!)h{ ΢'%P3U^Sd|rDGmsEQ473TiG5K4֊&q$<'uϗ x+QWuOiR,']ᚍ up\x+ q9қoVn~ȉn{U`~{<7t%V|%$ȼ3,DųiP]}wKf&/7cU Nz58g|/ucQ1k0֭H ~|?'V@r]S7D,1`E`ewH/h:%0<c񱪣uk|*uLb0zuմ8Sؾ3b&ulQ޷률XȎ0D�נj׽z*RoΘ,~\o D9G599>:AIrvom&15"#vh;ZC*ϟle7ֱ:CTV\E,K.&:7{+Ow'uP�><FɓMR1iyo2*2շg|; az>I"WAX??nDw+⫦/`>ߢs(H˾GqK@o?-Syhs:F=A#yؽj(9)*~n=zDvn/N8pDVGMm$,0KЪrE_}CCH.7䦄3O_|:@X*ro{u'Wrmt&(L*@i9?~O]D+z0'K|D]oL,3JNQm%g{s3i5~17 dIZnyUW`n% ?.y4ZO;bCHbC76U9s$k<\+qMO5EY {B{F]wndꋾ uӆ(vbSp0*b]Qu4VRgv0!%zn9EWD=)zL sRڷoEጬq}u*TʩivČĜ&AʩM_Piy;Eg1+OWLL9gWMߌ^A&כb)Fʏ�AyPyh|pALzj'j �)Anͣ7kOmBv$lGµX?_4\ɋ`dxmT!+*hW�['YG]ݑ0TLZİ苔wbZ}ueIҌϖxa_ֹa1hPКb'($֬K9S“:^79Wי=%4*v0nOEŊKZu mc>w5=Cڟ~ވv6_(E|-+->;N@w}ܟrAP[,Ae5o:x~f9͊|F <WnO^8Ȇo{_Gs&L i'.G9;)(Sr7|Y&9 ygle13>{*Mx0 JT[P҆}c>omcT7 An) 70P=my4KpxiH6nlCa*KDB>9G |"fڵfEz+xѽi[/WywZkQG;[]"r[ajԼҒը}A7{o }SE'2.*\&OmgO?/<aMCG (c]=lVPSsoER&EATuxa6(:@%zFhށBsLJJށBқ9KE7 hs68WmC2^[�9mڵubiqdC؅l*\u8qv.ܙdzT{_Q˶g\ p/\W0V>3?gAsg~S� GyAA]hQNByB̻Sk{FӶ OF"?H5(6mF'1NipL.uHCS}ч_g xTv_slPz]6n;#u P"-n�˿] |=12g+;g~e FPlH<c;QBx倬.PYZq`Js Kb$ri'J0 iEZ4ێ<+ _^^qX:BQ?QZ2ޥQTDe\Cp7^תɚ:~qTiwYE+WYoҾY;kXZ Rgʐ-dկ ՛2\v؊-?^sM z4ןGC^L)䠒J`&>z* eׯW<ËVS3qD/X_<Ǥ0ѵ)Pc ce=|I-+fiњQ*2/-u6[`m q)*4BW\4g?eÁO=MQn!, nx*+sz@]5k d͎.ʟ@I"栆owUdsCg>ܮـC3Fvw8 ɶ:h_G":#]s1(kUza=,jPeVН?A~.Ըd#*K8iGh^;Fxݝ+LW  x .tR.ύR?n`)Ճ.?u ҹub<# %~/-Y{>=L Jj٧B7 nТWO*/eD$(wBU6$z 8H 3SnߋN]X_- fv`d{Ək@- Vzכ-)53`=֌YsWA@0L|S(O Pcǁ;'A\ ] Vfv6 BR{)E>6vBfF-6a o݆_[YRVز %`(=o>Cb5v0afpI0=d;~cA%iB ;Y ֡O_1PI'e㑿Vt*D{ ~PX"K5 2O 8t9S%.Z ~IvA1:8@٬qH&}˫„ }h-u<#z!/>ǽ׎\zM"q'NߗV{ȼ-G9>g-vѿ`=?k΅ޯ|A_~%$L~̼*deQ>vC׵Dt^~M -C|jln)p4ȫqÁ(g{w}1lmc礘Mnm&ڙ'?}hϽ"@9>/JxDc#s:. &S4H5ȋ٪F{jw@)7 C Vy].F7WNV<:rssݬ@n|+) A hLiȅ:d+˱ piH"u&QvK!eRQH(Q{{{?{{:gO`8Yke!uZy%A>5klv[peN[]Bqeˠ\Wjzk#"|َ`jmZZOt&} *WSDKd/jcbY ext 2Qp87:AA{~ zDtr<Lj/ 5TcL6V; J;nrn佽s%usUv|WY 4ikLgl 7Q_ cAhb:{e H ʍz@mur?sb~06fz|A}G�~mS }sG$u1tU[kir0$(,1^jgy;q#}(ȳ u{f09єaF?o'_H_2` i:qbY(O'gqa,PA7ſt_k Ga?*ynڏN# h03_#:(=u\X8YY? M Ԛ>4X 4I5U'A ?? NIgaP ̊C9'g=L/bD•44B/5D$ 2dLk׿jX.VC#R%3 /l2b FEV\�tKF 7?X\fP 78"-.٨F%SE\l]�9E˥. _ ٬}RS+tLiӶ?!cy9Li˰܆.s& ks-EK]xbw#Uw1Pwt>Rs~'QbM6WhK&aQ[9'zXq?yF5fٸ2п(Ai/bRk~( g8E<-PlA: jjdbُxt#:c +ɍOS1~d_j߽0v;P4جeS}|叝F)zP7&~MZTP!ςu%HJzjWz )̯%wO oz#U-7WҽZeRc?ݏxb*Ȯ?"?5_d[_Rw=*UcB  Oz-mG1d"w fکn= lΥNh#r]wE{OOsTţ71%@{Ncc)Q>P}3:&<G$m)Ӗ WƋڤ~0F3ݖPhwM^P]dwi d: BFw#ШXp_ \MivL=Bm!t %`t/ܩCۗa c/3o6ۃ"N~#X -((tgNXYi0?T+9/wkoad ɞz/ 5Ǵ:"\| fC~PmFLtkF [ѫ@oUY>ĘgAm߁(a:[>3v`Hy4ᓧj iVdمӌ?iif3qk .v^R~!WMAߙ9iF-Eh_t4g Z!ȗv`&^{@YqTj?aB{S !cm {TԠud'PN?L=4?JF lvցqhum#{4B?~LmEQ-*1n=*`3g Z(ׁCac6)6F TIA^Ex3+_cq#{K43 "HL=B1Ooy;y% N'41Dʧ nq߭?p0 )%eSU43>߽q~0XcA6g& /hW)z))a{qєksBNݏ}Ze} Ѣ}NAm ]5Shs?y­gץ�&۟P:fnIe`ُ1ߖr[~؀XTO>@w{gKLlZI̸J/MW)؎�;)5%HjsMv9*IŎmC*1 B[M.[B7 ڰ[ТXa=ĵŤsZ`̏|߽ornN:jN67*q`X!d~ݯy*r",F۪LA0a/[.?o#k%Vq6{lftRw`dHj. +%[}w]T*G])?w#I4 dI71'Y[cݭD_=W"韚QfoF!(ӻ c!~@\%` AaI~f b27z2H9\AMW1]ԯ['WNoɳawP/r4urvAAHmc(bk F`=q^&rNӠGoǐPV> ƃ+R PC L/]dxs(fSt~i"GL\|AYz((ԁ(zGmգOOַϯi։-<jZى;T0|ʮtknbک!0Cw2W4Y 5sז&>mCBqiq H9ɽ]TP|O]]H ԟp ЧPvz՟߫  h.;p dêK/7aF- T)d9%=Z3&z2%˙\m8"'{Vg@! H>qaJ_ի %;b8=~1m70jACmyu .s)[)n< rsC H{ 9% B1ۂVo_u)AP~jq -ݫƪ91t4GԪ(?>rL՞>n0'.̿aGб 0/\6؃ekQSiE^3mQ5~(fBn-%X^ ?O1cޚ֩Wh[+x03c7( _Uaσ>o gU,;51qSgAfE$ PۇQW,>6}-<uC4F[!s놷5{֢X[3#T|f3PO :]nȁ5bs[#h7]TwC)&P㽊ց'r˫Dž?~ i\15?ݬ;ր^q]ߴm`{\90OjUѱw.P:=K(jV˂&?s8_̶}l Omd`MDo?s`\s7^@]:#S;2H|u?xB6HjG1[Etk(*[oUESꬩ@G0ضlGV+A30^5*a1QҐ 1bNoDĕUόcTT,ɫz$0^GG^: k-̎toæJE]ܽ7ST  x9!ۯ0|J(/B+ 3OP|w6)nz]^s=dz({}IV'.Aᙌz?DGE}#iݍght,;ҿCBIڭ$WP(W:iEM@w3Ό[@ |?۠EO!:toܣS)=i>9ΣQfiuvB Z_eٍJ9>+L<h,={<&kƎ#<) i5]]F. PFq NdБw JnD{}oJWXYݲdµ+.4;Z}sZ]rav0+.B 2{ iJᘏ+LUnCEMUgӺBTދ+oK DXqjt4,}<OG0^LؕnNñ?9YZ{Qϸw9u"_}<h1 "Y1vUW2VbZ,KoYֺ FTMLΏi-ۑfdIݏ_EcP߯ _Q~Snj~#HFsĺEx grazZԈyiaQת~y*YlZ";ɋSӮ@9=A} kb|^Jx8:oQĄK~Lfέ}(]-x@_ra|OQC>64TR@țZ$JG66`XG ]V-΃ח~a&[l/,#RHPh8ghoC뮣S5Ҋe {A=} _0 +ÓWZnχSA{v)HAZ(p=ޫrt^JD07Gn"mt+\3Sv7ooE͐s`KL"= |lw=&O_b녾&/d>h׉.f<.w\nVWm;[1LLM tc Ey5B`ݾ䂙WQm|(;R:7k 1$Ζ\8P)7.[x` zOD7>hȼGxTn%wMقDB啇Wޣ<$qm儔yQNmC,27?3 WxĶzK .d xTS:L279<vE=`Ŀ <ԕYb(ċ]o=kYD 2g5s\AJNQ!Ƿ<h;yoIf ڮ( c;S2 ܐ F{OuziйGJ,4e@;#tGzM8j1>"e!vQ7PYfcJm-q !ܺO?qH#A_>?t'48Meӷ2ARUӸBǏFyZZ@Yg"ܻаu?"_>v<իAʞWDmd3gs1:Yr)N \ _UQP5V!騻8jÂ.cN0so>PD Vc'S5 􇼪/S1//m{eeOF/e5Yҳu9p[k?^zگ$<'xU oG>DE>KB /ܜS ݏ@t (ڳD,—+o'} }?ɑ~c:4!#h9|k%/Inh�jkֺۣi&]]="W}Lz6yTVl؞l߮t>LnH^DN1'|R waAMB]BLsgo4xۉJ)a~ ~ L_B~b _qC$3..pMcpv@A0/2 N'cCMtU?4M~;(ֵcW!o{u*u+߱Hj5赒j.qB j?pQԭ>xJV켫1{7ch$S? X)^G5gӼ,48:_GOCC@WlRj⺃0^m~-j-ON7!S\ 5C>}4Kh8ͯ|nBSscM2O~m EM~َkR[o. eaܲJ *#*c©3@3h]F.g @%y6hXrG]d Cv0~z?VA)lt_դyRrAKۗ{%0 6(Z?PqL {A[y?]ٮHķK_д>f0fi|Ekv;[‡ERDչ@YjE uϢ*\VG) LU;\tDKwcFzߜqL}g\6Esy:vyF |`s&8~he}[R(a־ 5єt?Ց~㒯7V:SsD-, 8v4 ==^ jx`oq�KOrgI?}h؎<L iF~׹5tGoWu95:g])I9'b(u;_",쉢"KN(a9Dh3h+nj@ӷ5[ulnYEK9) LLyw`5ٮrnt c?AE~?MCɡanG͚w}yϡ<b:bh{ov3 I,@s,tޜkEjMP �{tSو9ȜC^N.̹ٙгyx1:<eoK ԣNRuzG٘{r7ɎA39U كOY\sWX_+>CkM>oWT|9Tk޸Fz}A]5Y J"6= Z\̪ӽ<96L=�2KFGhuW3S6-W <z|( { 6EX3O;ŮE/AėQJ. =x\B 3ՔMX>%yo,z5T6 '*0~GXM h7g7 팭W;Ptz< ɱ=W0Row7VU/),_5>س:F7g }S13}x0" �t茚 mF.;%" Vު~fS􀫅<ZIF S PTk)gρd J{uz(]`Ծ8*^+tZz\(MXUUƃb;-׾d`ځ{@e .M{@5:&2&O߾x{8|rϭO$LDG-Ѵ;?n\!(ZPucrMݏo^o2|Ar4&SzJs˄VyFqhKO8-C_Կ? Q:{ɾѠ;YVن/kJA}ѥ{K_k؋P*>ǽ*Թ�n[ =5WBV2&^QBǩ%*/֭yP.7>_y^;4@+7mBɔsQjZ{_P)&N0u}OD[=mjbKa3۟t)̒~4׮B/&+X=qg?sK1Ẃ-?Ƶ]JrYƺ ~(*}n?/>CžzŹLu{%]ļ-Ȱ4wńeS`7:z_W@0L,٦ϢWFXcV%^Cg*LT>gBrwX{q #wӄ(_V7g8gӉ~}opE0 iP*v1wKW$'艗꬚fйs Kc_pD%Rx.Ke2=}4E'(ylp6>SG԰$Pj3L CT\;Z# 2c>ҿ`L)򈨤:ϔh�Sa qr0mJQ>o~ Y'wmAw)Ynձï)*(:$rc޸z 0vC9T@ ~ydF<'\.֖/7pT݌kp3N QZFҧC./\&'|#6NDWuQC+_hy>iݘ&V L+sb%P"'ض>Ml(Ȇ1I!311O5~QWtsre<', 1pp~~uk!+/W!~Ęg`0Hv.~P ?2 5.* Ft<PS>]AmeU0F~{L~_ З:l }{Ԛ>H'9 8.8\kvGq9V4{Vg<M#n+6~0axVo&dR…ӈxwBz6;/YgsD-*s#P~ˀq5 a*Ark8}ҏ@S={Fp-nɅύ[`^r$L3[8K"Y‘^l jDmaju,mʊ 9a%ȑ(3oW-y=bմK撹9]qF$r:rT:LxAYׂAr:f[GVK!4^$_%->Pk hYm}ߗqsUh;vq~6_IJm03q Ӂ 6<rnL$N?g ꨹EdpFxd[nn͝o,S�YZ`L>s=[Ɔ,y{jF8ZmlwAw {bhv>8Ҩ+UOFg1hs',m4 U=l29:􃨿ʸfdMzqitE̊S_ o^bwbsPiGv#l(a_?udu<OzvRAi:yTʎl%Oݹr@ckA 6V1d_׼DƟ #^l >#]I5s߷jT!9G] &o*&-[3ɠ%t_wɓu*4tڑTU?֔f6 ?rAio$1%~[m{h}`uoGM=G3QI>8} -g@M•</nEN}gn <4x"L#+XaRݨ~�l;;}0:BU ؂>"8ƵeiԻd jvEjeId6#U\#n 3Ml9l7 FsڗT09/y=os)G- Λ"h\gѹҩCy8l,AڟF &Ϡ^>n=ROA.9*-$AvN? ff1*=q"#hudeg掆[P%Ljl]xV[70vsVpǩo;#ayZ "b&GugYlMy^+^q[+-wڕ68qLLԳ=7'L名U.x ,<7v_N};TwK" ~xPELP>Pĥ cldA+{KI 96%eCѻF>hWVƋ^+C1Sbn,wou7eᗉj#\:;;(gJZc>`v'i2<{Da߭TէCpaq_FIvI`9{O ۡI*njԴ8@zW\ E_׿@{`er=2z3 Q0kمӜ|Eq._O+"<5Ʋz}Q:֓ɱ5uˮ?mHJHTd wt08$]gċT$Ri5<kA<8Pt?&!sHҮm Y-|8]�O=x̕W5hgpV._F|0XP<n"o Ҏ6~U{xoɺkcxi5w4(OFIzNP,,@p̴Ou澫V:ܙ!9.&_ըiuӆvy3ˉl9FˠnPu+)M8=B+Bc�90c@%m^llt٧RtyzTw9d>$k%,},&NFuĉlHUT{mLI#yof>Ht쌽0O1[y:U!D[aQLv-\Z1^FuuiۤQw5>͞hN[8<O5G:7 k+Ƙ6; TmgyxZbƔ;a2j^C%'Ud؆*[Ctrp{PbŴr[PqY۟R<솟wQQv&eX?nW9S⹌0)͖h+ΎA;d3cO#Ae\]sWG9xMi<Ty_Xi/;1E&&:>YV|r.{9TL�^n&ueqeT̐SL5jg0!ڣ PZ ?>f݊M[FA+~%|ׄKz&V..A^�z|r/1xp?ykA[b< F+0IaUJF=y, n;txfHl3_[̸K� O%hCh'k-< <j=1& Mh) ClCUz2}4<ViC=gŸ΄>C/&_k@Q{\5Rj0JƠ4)ijd<}\ʻr@w[@ ytcy a8Ͼ[AY2o>@7fظ 8'n3{^3ڭ,Ap^*t]Y*m<gg/JeCJE99{$U 兣hptW8Ҥ1 etJm|dlD -V L1 m RE%p50}A~䄬sgG:9n,GF_*"!znP=Pm&qмqblӻYvQԖY2wQSWxPwPZLyQ1\W<SRCy-9Ţu;qŭBw^8r_sK%&m݇i4ߝ+,0Lp<@})c(<4QpCMguD4j.^7= ú;O3~T6|s L׼ jة1|c%#o}f.s_O5 j9,(:HeSKP)m13u꘬7hʢD;JݿS\X1C<dgr#i3 5tmJEMAsg8:rwzɻ̠C9"3TC5\i{+w_Ŭq(P]r.|;o[-"$3#T~\ijȹ}k2JחD:Y5qDFoMA DzuhrS4_ua$9яW4CL] gM41uN#Ӱ&TM*. g,tfns"~TmӠvsHr5!h`Qb[I{4u7Q4Ч O[Et+(R F1bG jV gwQ#!ta*yig@Hʜ{+7tH5tw'QMD?𤛬ى} D?}&d*I ҠQܹ[2-r@ݣ#v%m,[@cv_R޻$ʦaڳM9Xc0zvLJFElAz֘8&g}V,AI:6Fӳ*=zNp) 8ܾgyؾ-{f~\|X-ЯZ_3WZ<]ӫ޶mF`Tv5-yNKO]vإҮʑTl  mqK0Oqy}sܢzȆ 4_rGsƥ43Ze71J܇(y7eyOD[-((ϙ?0FpY_g@oY>vK G.ak'4&7]:^of}9VFQu=U=Gdg%&{Flu+_|Ol1&[>`>mL#.G^{nnhrS`6rY|Aw39sZ{w5'օ?j Ly_ڧFo>L jb^)S_|RBeR8 &Uz̼T;N&9FL ]t~rdX'O5mr9֧neVs g^j_  Ͽ!g�ZmP0&bk{&T-dʚk�kv6:-ŝTJE24=_UƋ>=~;瓠lSe yY*0ɣ峆b [΂js׮y =^R$jv52XkQPSu:LW?tZeZŅ!dF+pEbϕ]3q|^|.( FJk"@&+UR[l+PYZVocPrF;,>ȉbSf?t3R@>qJ͌ mWm]k ɼ_RYbom=̂ 7`kYś`ġ7oS*.PW##GGY`@hᳮ>^*iZNKm*!,#ǞU eB2: uQLʪ-ۈ9M[d�?ۓ(ܓ_ ؏U`?0q~.<y;VɁVznoj}Or60W E{/c÷AtVe%l1�{Qd@o+_�|QkuLNLɝ̾s�F֟ ?ؘ?6l;֋h0m B[K~طD|=chok\a$} Uֻȉ {:tGk}Rj#M3+bїo_cpyulX}@82V7My1ScQ(1,HrU+X o*_|;Z~n]c23,h{*դz=+*}cK GƮ9~ *{eV !OX:Z70:4ZWYn~ӌ<)Ȉo1ec,O$@3z _خ!镩`LoF5T[yI;l)a_t:bX(<s LTȶ惠.G6ĈWgo֫ cZ:c܉B;ALtG@͚}i8 XWʍ\&z ӯ! ̕w,IZ݁fh O_X@!LGTZHnbT|r!釈+moH媾C0-$mIB6AnjۏQpYh TeJF[ hRa/v u-CW''59MɤvxY17TNvʿ#6&p&8/zpeף?Dk2߸#b;Mg>k fk;~ߟb3 rSG4#�KJoGC;*$ Tn.05$ߠ`zsR'SbZǸQj.=6Y[\Q0uZ<Jn[<=�Zn;$-_ Ԋ;1v]>}orA_ȞUos:ϮWnHy5,7A*0BL3Gg`w J֥9 bhxֲ8~)P8DPfj1l,Tp׷�*mUVhOlJ* (>' &v)q@cÓ#`p<y`<_v:lQ "h;'w>x51G?6= 1|U34 ڼg,N/KʜɶDp?Wo>̺] +Q%*oUx56 O90@:P1[OKA;kLS U9Ǘ;$CQ.,i z U9Й"ԓà.ygb?=v)<Y}R~ } ꢤ!Q ż/wwTO!L>p]2}+B@,2>|4߁ڿ-vm$mvm*rgFv={qG{Ǩ;-AꘞC.hps"yz+)aax Ŏ*y W}{:!Mbc(gsPxS=}>  vINdAe:ּ[mC% >J*)/wӧs$hgȆN4xMGlз :-:9k* R j' gi͠lg׍fEwI<s_"xGWNe%>G[+e0{3IU_<'`uuFP˟G[kv&f>QS(L =qy A,oԖzf±3k@AB7(>0G/y._P&4o-$1k"nNjйj>aRt%4]`vcEA}&EwbT^Db(e/"<GDtv * QX}%r@&Oizyifx삮N;9ŐYᐐt]Vpj?NFu=# _l"@iϓ:e|y앎]VASbJwm${7%_8GJ@w~~ U^oeS !LoX 7QQr0 Ӡ^ui| ]˯QsᆭQ&r!5{E'iֶ,(k${4ٝ,*ڹ�υB$ݫtBzl@ѩZ\W[&wФ\9Cs 7W91({�16}ء$SCGP񗧃"OgaOms%+ tϙg\@3/=B 8{йsU"xN;Xklvb&{-nCmr|ZՅ Ƅ>ݑ $<>(o;gv&dIeԘgd$"zW'Hc1&~; ڽ#OC{@ey6g%E:k?mFf a"\&`@su;.|_ʙ9$ Y/Eq+]C/mFl{-h-?2 wQԳmj~ݲļYa$-z5_F#-ux΃IۅgoX6#cBeE(GMAceQp32f"cdrm^c .[817R/"W<F2Po|g>1|&,%Zj*8I)LFP6]K#t8Q@( L9PlDΩSf惯,no1vkv2�'ƞ'mY] N&PJ%^;ά}|OCwx EB拮 &|nx] *M`re[??CcRFF \\OO#w}y-oZ N,Uƥ^0_4|zu(2T_}kltkh']UtbZ{]YUJxkniyKcп!U/&_HBns_zO+H&eoAZqvu;B\fryi)NS:,T'?$ۧ҄)7rp9ܿ:BV|]SS^6O;#qqAN}"ȸCNٖ>ω=Ι_YdrGT œ10ǡ Na p;HC:297{XSmPa+T^Ř�NoژBלzKD0.{W;;N砐/be^m\ +?o ª"]d\3ڗzNケP{R@v~솠ET0X|S{W+(B"b`dM\u)fܴE$F]/8^6n|;gM=Lg_?WYZf{(7SnnxfJCQDt_*|&uBe(՗,y dzZ6 u5imoHԹ1Y쎔 /ok0es\Nk*B>kTk/:Dk(;b㯿 7ϟX=d;օFH@}( ͥ6\A?:BuwBOѤ]ҙ ˘]<ݯ8{%wSb KNN:9ōfIG4x;Ou)+4}Z!V߂RIQxyQ>۳љ~l(rQxW ôugMKǧV&|XO_3 Wd }¸b?1 ng5B3^y ^<r `\}+ercZVԥZ\Yu3d4shiENtbf"yˁ>;|Q:k5:bDP k7P@imu(*Nv^<珴XU~J)bje4\x`rUգ*u {s :Xpno[QՒd39:NAt+rgO{Νz} yqX&r3\=-Vq<79,ţ+`w(:EԄ$S;MZu/GOKGT>%S+rG6osڿ3h[-/q۬ ?q4?ܚ'kPL"X?e5G<zݫ L`<9N``3zsW%�ɗ7j;*#ڒzfjtL빋Jef[4 Doe;v Hknġ3c9>2Wܖ.0.7r`w,:@Ft-~!.OE "Q;(NrDUI.ULDmm+_~w!Z;1rϏd>Cmʡ{Pٓd 'oz%xoK 7{y 5GvrtAIѱ'[: 5}kOq؂#ѲrΈ~CU '9Lk([.-A[jOL;RWњ_ͷO==_%=^n]?"l~`MzS4ϭxV7I�Ycj["?2>MګYYSm:E]h}=M.l.[PLkߺ Rw`rvE;])[Ug6Xe"7v]ʾ)9{>O'1AeI!ym[V毱 _Gz'N:o\FrL7su U1f&iq?Jį<$ҽwƯ1P|yW8&mNp#o<0ԯo\!W  Cg1U \Oբt6f6db4PP޸#jDЙuq HŬ5Vvjr X;꣑yzKotLy+΂.x ցu ֚=#<['F}bo bF;W0veTL~OxFC{NQȺ)ǒ=Ey{{ bmݓf71}։]>HZZ,5+0ͥivЍ#0Uk t9n0+sDi?ܕhQH 8'ZޮU?/u]L'8dGz|y0m=pP1\_daY:(_ V`GοbZ(?F1&Zd[)ܮ,@S�WQ }{eC֖cmkOɩEZD_ZN('q;}.r*FA-.Gk/x+JFrPFnu�Rz6qzHS[֜ݏMeDU[xW&ymvzV\c^<.obF%`lδ 7^COua=(D1h.N $V>T39tМV~YwEJEŽQL}߻3w{G3Hb(W%=&?fFFhN HCJTu,:){YuibSJ Kq+`\{@*!x^< gAe?g'<h=ױe;H]$ՑE)' 8" %L|Uu[.hjǡ%qT{>4TB[G(|o=XO[;'uU\rQ>ԥl_^-`k8iG(}5YR݂\K_()V14A$߶)&40:*jjOG+ҩR^ahϡ6[:o1I!STozՕNԖqf|ŊoZi Ԕk]icJ Ӽ %4:ʎdT7wgDA?v)AԴws+@VVz-a` *WWl*-m^y Լ3T@lz,M]SgG/Lt,&cRKП-3&T@R8*'Ъ4Z抴'xW|K&,Lq`3աumQ;=~b2edF�˘&+Hr#08SUkp D`_ztmT[GP47ef>W!r';z-qHҼaB݈+O`8rC֌{{Y0ɮozף~䈧JO^LsWf۬`YxtSZSnvFư. /ݕW�_+:1S$&Z'͢޶_z2(J_ 6-q6 H:;3 й)0/ORF?)Π5>zX&U0:,et~ 1Ӡ}{|&̏1*DNf#|nxe\<Z/yڥ>P^  =LɻR9=VhGdo=zfՂatC6;1V|o/jvQgx/eG"~\C>1Te mQziy[_ Vw(2>&2Sb4@%{xwʎ5Qt1μ6J2t<y%q^ kӳD1Gj T{Q<[6XbxXV; گ};ILb8,D+fX,pa zLE@Ͱ<di;;` #r\h/\僁f٩aHu0Wk~^ZXѨNVWv̜-\ѪU7f n~/~u1Dο δ}wWI΋?axrѱNTEN?lGi:[;/DxM ʼnDKDKkU aUZ;M^]a(\,BSJol$H7[L{6J`wzΑXkTcS¥ }rCgJ1eS m=~Ⱦ$^ M @B 93 z5_Tq|Vvm^kh^x{.b\VL#&NO)GY/<rhO. j.3MbŨ<' P@i>Z͆(kp8ߥQuȊ#yn. 7s9 ֍<RECotц@T31cXUܦkċR7}B3f'o@ U/mF^sǾQC{r(u*+|ItWKCPNlsk {uGE>&!198*wؽ R�A@0E(1ە8h R͝-6`H-|<}UwrLBgqƯW`CAƫuzHR(jAx<xdFK#kM$s0NEQ*+fYP=7!;Ttw}?܆SЛ_*i~EO6o,�ql+xY�tpK&* Σ>ҁ ]Y`^x;h?Ȍ; М5E04jVoy5=ǬNlvM+=ImE."r9uS?/ZU.K.ґ<a:~~{W5fV֊-rh!Y$ 3]޷MF{e&%jgYToǦ]SqDnK\K- ~]~:XxbP펍ԱkϨI_<|?1ZVTL3@o_)m(M9+|k/ Բ[hB@>Jp/wĵBse+FɇL1 +4f$ϫSol"T^x0?mʚAW˷@{S=�43{� dM]UDsu5DڽL@"^Ӎ@al3<~vxM/f+SB{gSy)R߼!"?8F:ه<n?BzwP}'6F _~4&h5<90u/ Ԏf@?TʇK>0|eF!tf$Sg%3W }gI%_A+!FqOK}6 R#(?L,^ 7a"FYB , As)g4oZzzJL舩cvaD,I;plGL=c<? UXsvo|c�u`^=LJJŵ|J>'Vr~1PܑY ϣ?rFT~3 J٭}xpF]_/r[m;;,15{kK.PLSAnI voBUaArL;+[ኩȂw8}+L[; zUsqy5 6 oO嫹OQU:}&WCisp+ N燠gӎK6@N1mw]h[ըǺ'3W^naq[ny0Li  G tξ'R֘?N*U]8䇩g|_ߧ)o :cw|dmM[X~1uǿIctB0F8uy0tf(讯 _V坼 e)Σ+(Xm8ź=M x`e=yX4,Az6]f{z 3[6^Y6EUCrIJO4FLj"bioA1»T[/'|BbNO^/[0Asa?IŻ- [=Ǐ\1SX[__7|:Ie~;ݭc&0tId|;J!}{p 6LѝK_\j0 Zl!o>|MKDGm#Ëa6xg+lۖW?>B\dd Poq#7x՚n%fȬO}9n?(;u3+/ik,ǐyAznC6=LAPu{俉G@�_Kz:pa3g1rܠw6Fg=|.<"Jrul6Vaz#n\A(OvLBWGQ+r>z1TVqT3ײ Uܺ$ȑ&\~}40O1ˏ^wj赇ԣn6nX@k g+ GDm2.&ʮ8ZhF zF{~idmf+j_6ن#uG&~(w`}tX/ U c{ʼnzKzxv u-yYrmV|qfK6<dvJL"oHtD4eWF7Cҩ�?5x;Х힁YOyA{�9GPqkT fdO/]tגŽ!zVM;Rთ}ZPϧ0q�ۯ>^u 4{/np~ )q3/*I�;WV?@2{yfݬ"ʶ &4l0?q }YMr֭; WELO*&׬X tޛ56[UoDc7VXxak`H`T�zEjb:ZISNJA[`K"땃Wxh<o>_u]bM,;;q5D�0A'V?_\D={@wxrmU +|AM˸>M^tQ HAEβ5 zCbx׬C!훳O`&EƳhBgGJT ӣ!3)$ߎ%@U;x D�ZJkAOFҹ(Wٝo3v+?}I̹Jd,˯.>ܲq݈6i^dw$?v_4Tz=P͑a]msO7D_hZuqs|}_rF'NJ+">Hs,A??,:+t4 ߶P봖Oɀ2-jqT =꺤֤Mh}p :Giͽ !{Wm f"-V+5 9LԌ|>,Ry6łqzLm-z֨^4dіhOq Wl9䉹%7FFdmƤhYq"zo?@]UGaT:3е ^ؿI5NI_~J1 j!ׄRywm_>R5~-jh[wPg ܱ4oex} =Aik@+013mۙ#_lc_ѴSzsk X^hC>==x 6>g0x9qi60.6\YmjG|F]a幽ʙ&پBG rn3(?Uu765Tfԟ$4_<nP=JNiLgu?PNpZy$K$|r_`jtO Phon#܎kj~}uQ,3]8˫ 8rNo=ɦZ ΏEA͙&/I,'?`qii8<=_O&x UY1L"MnjпaTI˿ V{Y^ *~lNyN|j")݃ϡ|R-*FPkv Gκva1{${#p7.6G}fK TKܗ\stʟX#R&zDowV-y=&6 _2VkQ|[@{IlqWQYu=v&mu{5nZݫQqucOwW&.&Y@8hٞ`FxƪP}a|+Ng^& 26kARAct>D\׍u?@ j`PI:':{}3(vۍ]η{s =6)9*V ,.hRTs^˨KvSױ1Vd^٧W(-I?0>sfq5Jd#A+UkllQ,MwLX_ &;x5ͬ/Mn<xCϲ[6 ~D%y;|L+ţj@tGcQhKӏ2vzG(w1@/rBx43M[%`sw^c$=3<w;8 ږ0~XKZp_3yŠJ F<A*(%qzIeO9gݱ97f6^GB? !3uo_NjFŮȖQ7J N(C<K){ZbDo?NpQ%ϝ907ؿ@xf}?^ ƘcC ֪[dqxFO乾m��-N*"=ޥ�YvNzf=V#zD6]u(aR�:%+@yH%`:.1n3v]awztd\_}4WZ 2b _{y#;`_6p۪ǡ<Hw1%[B%?x\{HF5ZB\|AJ)Fnnph ޫhR4oSƕ[#n):F!Zu\׉~ea<0}⹄,mn g>tA26>UL!GDsCMp=ɲ)̘"B w&렺,0f>&c`;dP<1eQΙ(ɧZxPs8zz6cOqS*W LۤivJfAۥ';q;+ ϥ*=H9J7A}m+&@Bnwq[o6SڽkveI㛏D,Ҳ\ ~ÃyهȹV~wyShNdsDӛ;[vF5,@EWE[ ṙCN�֡{_zK,x6EW_8>ƆȊт? mX>6uV՞n;AU3thOP&)0`D9ܸ #1qw̢+@ Tߎ Uv<\< ρCx&/֧NF},t;]Ǜ߅}YL4>31݋09hfjr\íif sg5/NqFLCo0.ZЁ}-t8Zq|SxM׉:=5#8/L {ԾXo3|i+omM^DRP;6.5@k,eR JkJzH3t> t^^zLD/e7ž4VK4r )nB~42T'NNa:p~ĕMՑb-1= U5mZafQh'eouz%lSuz6B_rޯ\kI^*Aѱ7ܟJC볊~_0GvsA+(]BC7.qmr?# :zu~\CŬڡy7[<{|%OHs#x49rjTV=R|%Gp阗@ #O=>pSW=VKo :.ͣ&y&TrA~\�>LZJ"Mjq>ES.lHI-si[A2LD?7{ F\ QFmi=aalhl"?]v5AzV裸?3Uޯ.I{w`7̽;82s2&cԉ&~vd#5̲Qbp4[;AOkG2kɀmxy_9_E;3@*(V1FH^)t9%Gl)=G%ʛ{4GF1&|%﬩t'D5̾cگk5E^잉ٕGY5(tGvS4(:Lf}ˋ30*8&u湃k H>JgGa6x0|N@,AqmU T7Ixi Ñ/[$(v{t"BnAVՃأ?+�څ&Di e%x%Qc?Rz~p@^ :vZ!MH#,זs^@.?~ ѹ5ļz{>j|c|1m['*x {4ss1+ Nt{LĪ1r_-R0ZH#.k;Hrl vnFFd|ce7+5NIF #} (p]v@D3D9߰塢;OUot$5:Wޏ9 Pg|[i(ȺHѺ,hPgL$rMЊg&?AVl1?mzV?Ze3qW'g.ӥ7'zQ6rQ�z_` 5[?*4*,'rUι5~("Zs#F܅XA*k,YS˱i@1T]_|{%K= 9@N:ftd@+} � mf_^W+A6|yKM@gl>0M-ȴ>LDshv0JB La̘5e"Bݧs8 [?ٿA-|Hehjɫ2iiC [DV'a{t]|~ *Q8]1�T(ZS`CGʏNmht{6h}nh )֭?7b#) mm^aTu^#-$J9g1mF%c!\aח,S=_dv2ŜEd(mF_]\u9 S,ONUWoOP0#t&,7rπ*),g){"^:mZ^٣T7{=JR'ZB@MJ+KAz!} t(tl9$ ^\:~t8 8gmlA+vp!ޣ' ?@bW 1r7^NnLH=^R|VF̙6ֱ>4Ju/sAg q-r,Q? <ڧ0I4yI\mX@9{:.9Ţڭ lkyU;fF| ȺS'[U k*,u::4|9p3`LȂ@ZLqLS-+<Hz8flV/jQl;naʞW)vN Y}u2x-&{T@bU,̢}2B.gw[MT{UU)`xJjNyvB>!bmX@ p6j-&m{Z7D̕uIfY WRY#;_z(ƕkj]l~=[Y>=2߳?=^@=N~4\{# 9Pȏt#˶@2NRM9vJAv]FoPe@qFܤ}:}s KJo&FטNC[q"wX*cPD4w.>9k};h a$\, Y 2kc~aM٠xrH0+}iwvX~Қ=t,;pd%G~zSޤЩ'u?e 3'@Z\';cRM̠/DU '~-'>IoCeޱ59^a !O颉)1З66tSb|oͳ[WblFǾ`ĨD'_P8ޅpv`(G W?Aݚ3-`(Jo]A5Zwcar=qy:T:nBwk[f $Լй@L ) ̤M$x#0v薙532H]R)n5 ~myj0G6̿o:P%w.˙> p-ꡣHI 8䭃qvh8˪Fk;b=)je(&QI؍W3z]�5O:{Ey± 0#.o\KxWNW<"VYY{oP0g? cbfmQҟ&1v^]ǩҍO#au2d!9:b{me䘒Sy3Qf}|A^l/ _TݴJA_|ǖ>& W`Bi�.Xjv@ij7RC٫OVp|'9S=9҇_ yon(' ;t6<>2. +bAyv?&}7G4HBWN=D%[i EjܘJ4WP2 >W>߹ P~L|4Y[]5Vid;s"E\'vm/AǥfH;2rs@yBf-5wrj`q0C6@:*@E ֻez%ˀׇψGs/`Z mGt}{1"ǧ[M;P0= SO`mUlfw%.ajM)⹛+g"}0A{{rZ+޶s}CL뜏]Dm4;p c-'M'{.?f$G5؏z&hh|?UiݧϬ{J))⹯ĩz:p`xU2ogU~@*5q`&e3D*#2%sPtHzQuljAg.P8tK ca*[@qTNf2<'LZ)umAiHN+`FqPwL\HzNd}@Z' �iL)swƘuZCPV' >u6IU d #ށ,P.+:nk*U/~ ]XLڤrۼ\Qs_oDcm>'y:V&(H40{v�(:x7ee$iuJBl +{{c}=^N}_~?2v犖|}*tь'cU{ eF88J9p ]•wv=t P{~Y i.WB[K43<{|!n~ fߕ\fDi7#(ϹW2ц5ykn[pUֽ\?aŧZߎo̯yo'zzP_y\OL[˧]i̛Þ=%@zkAc"a$(7ξ32[dI(6JT{'@_9}Vy..vJ~5Ld$;)(;_iaE<Od0 |jZ0-jjmcY% @Jz!?0| a MWCi׼_A%f<#QhB섹=0}pS0ԗ<{ep=2IR�rd\#X/S'C0ΎJ/:QQjߚp{F;0 Á0ut̋I Wg7o_2.| Lyzh2OBƵj<�ѐvr3PrU? 3"[2LsM`&aHb<J(Oi`.ݱ;!miX']nj%#=Uwy _}RlîK7IrXWk9̞k </Q`fP5"gS2p�BHc\ٜ, ԆҿC,Ӎq]w6m7}UW/Cs�9a+Lsp?fiUQJmmjEUx k3^0ÓEgO7 ߅A,X^?�-0`ޯEԣrK&08uMFޜU)܉g0Jo.]3!Yowa6o|ca Oo}G9JD Ux2C_xIf5̽HB>Hu#tPvT(r<loJ03$_8\:%V>C l'&ܠ †h(\ó9]cG54!^,m\ {2'`Df,0j_3avԞ P#BCȦ*P)&X,<ǰ] 3E$Zi o̟;Izl^a\A/ڒxmM.0((CDsl7cOx[0WHs7󥀼sx>~zt#tܔWpc\Y f*r=|c>ބ2o?t fk֜v B[#?;3ˑ=_*ɡ^<$9|GT@CqDY0MȑjjAf vhlJ=  4P3u0WƧ>v0 Y ^1Z0r=1k4t;,D7>2챖x i3L2r+cWdYYfՇ.(4uZؒ555{n a?s80}{jQB t?Y- <?ɠWnT?klf%_V{ |&C C=:Xo[ӏbwe LwTބƭ>ch(~c% iAsg:aͥPiiq1a)a©8ȟ\-1#k3pV+iޟSC4{ga: 5k kŸ�n#U/'U9q Х߽: z-024!ᬷ C>=n0n51<q.y0m]$Lo!WZ/7$P8ya�|j Uw(<W/.넌=;`mZ@ydoCgnK 4~x s~ć '96A"5 1Ba{>0[ʄ$rؓ` W(s4&XM^{!/ԊW`mOȭLAa)%cܸ-| TRܱ�[|G/ RL'\R]Lx6A9iw5-Tf-<T9`V k4{; a[?Jk䂴 `WxZ'L7TZ /GzC>^ yX^T(zayp0Em�4BZ]{KJ%Rwls#`` CL'fq+'aEׯ-M~@l.l=i:yH0O'ap]{哯9VDװ[LNe3BmzT-Z -[w_aN/2c腬'! B3yz7u̧G.lzø2o”Ou[JʼnQgT >5_ [ߋ0H]YWq&~i85,mfPuS##H;;1:c"N`ϝ`[Toa?)9MGOB5auk0%rHakPqʋ-T εn�?3=2r߄C2{U\w)`\>v# 2W`Tߞsz|EL:^UC$yLP*euođ70sq$Yc?[&r`ѫ*(zAɣn0 J/xfR@ǨfڿLўRx92z(gEm Wc_R!0t^5+̍,?e/{TPD%C[va�W״Q#ho3y*o { u~d =Ch#,Z_Za 齩#dmJ}^@ ~~0 ]QZwW't9/p;yC T1CGK7O_tVdo)tn;6%&;M%`\n.A+`UP8̞Sc*%б[!R ?=PM7PR&砱C3Wkm%"/ 㶞'מbޯH | PǐH+% 7Z/esBiID:/L?}uz2J^_nt>�_xj'f.{dGFf$ByëLP4sEuMVBȪ*</!{XV̉HmB4 P2 ԾSmrP}IA<PDĝ-ԪyJ;xnAR]=?mh ˟G_Mǡ37(=ÄVa hMD_$Cm%{MMȎJ: ƚi@6q<NK̉)SW$!vFwJԼCyۦz*P9%l0~SGKO-RrmMaRz/]9}hHsߩ-;I3#4tcԌ sMQ0j2v(okkU`ެxrFMRI+}0Vc s3lJJK q4a_00x\ݞS0kU8\p9M o~ cQ͹6iX5?t74srkiGb0L}~yILDn. |N! };LS:GT-ud-`6~@=[,ul`vvL+=øC.h y`j'\YxC8`JysN1q{ ** I 0sC,u&DGCNm,Y'^aW0n/(|l0/+cM2ziի>6pI[3z!Q: Y[ꪐ_uTV1}7cΜ46C%ВSZRBfjD_SxMġ&-}KjեlޞP)CZ^:eGu Z+av,bjʟu~j c^##:`N>C}mĵ"8ݿ㗡M~ y Ue0BI= )ze0v F"7U2@ċg,a8m18)z 4J^p弓LGc/m?0}]NB-{<6;c0ΠJ~C0Z3>Xh0yYC^>%3 S)Hy:ɲĤanB07ntfQ55P:3jgq97l0 4ߠ>=޳+8s=X?rS-0Q?=TCbY%@Ew~o SV+L5~60Tb,p3ɮ0x4xELAWa_x|G(R1NZ@ӥW`ҏ :{a[IX ʙOـR=c 3& &/'w}wϯߐexK_w1|q@@x g0y`Ed8㇎@AP{K$$%ifJ9iA迪Ev5__{yK4;Li^e]%AsiLݩsRxJm<~A2зB6< w ?BI#yhoZM>|- p龪g-_E0~rݻRroÌ]q P>~R%씒B0G6/օ@q y7<g 3=`lr]S wa]r\es 550Ww3LX1@ǽIKHį I:)6GaU9rJ+T9=դ]'3G Fzb3ivT9̹ճC0cpjQ+9f];(5M()IXSVr^*P*a"&$F L{pd(�tƁ%Ogr ރۙ }XIfO Tuep$,(!N>LK]F.4?'UT#x]5�3K<LHCۦo'g2 : -CwғaUK޷@Ye^Q(} ̨y�̝+s ygbϠG6%wap ݉he}BaLVc\/*DVL^+ͮs܂Y;/{Kؐ Ҵf7 XU:s=}dRk4\l&Ȱ3 A_w0FURLYh/w@fw E&<d@kP{3'Sh$ ; 9/LӾ+exM!G/le\[ɋ ӉץR`ir<?5K R듁Š^mELJ{a9}i{_5.v\ÈZw6O@pez. Aߩ 0?p> cqYP \ F\tDP3KX.17 r<C.PB9ɇvƶ[pS[q3&OhÔU+-ͭ';|hc{of>h`w2a灱hTqaQuO;2v+?SSQ*/ ׺Sֳ3z|˚fCJaqڦ01&/´Lż;;yϷwaNizB,U Lp/ yNmL[n|Tp=L8[Ѽ@T]l8WYhkɜhnV -oN==&hԡ~m�d};{`N,(+cў3I=г̈uw|1V-ePU7= <^ϓШtɴ}#!vaVi# = 惂z3@!^? T:[Q+Œ@)%{*u~Dvz`>lj EO*؜# Jߥq7m0Rzq|)L,~2/BRr(T'r(XUU↥`.ơTФn֮&>ZP�}ď/Yn0]-&\8 zӷa3\ ͏k.O$_icH'p ?CFs^=PW ɌiVJ�Zf=E}%$@b#cFǦ7yi[6P,㫯6zlUPνtfk'o a{`qPfPC&N1iA_H|Sw{.:( g5XOϹ[<je/3T}C/PyO%3hav,IFh JL>| ':ȉŒő^w`%z*܀sѫw]`8rݺdg$\ 3{&<$Y6ózw`&9x&`L=ˉ@+-]4ߨIkfP]) <'mŬr6`y'jGN_k|U#)UP`VVv: 5:Vu~%%d77>? fv )yi0%|=LxŽN> øER G3PF/.HZʅʀ a+3{ij@ Gx5A[[CUsy( ˡЮm=w1;Ƴ8_M^Pmpj)H~f#b (f˟s?,+k!B\GF'hkCԴS'6;zu`"HfS_-%Ì_L]p ^o-N1Pjˇإmz0 (^MLF[d1UvR|gXzw�T'y]y*Gӝ+Ȇ`>h>|;l.Pppހ5EŅ yQŌI\0Kh~w*:bTjr;=Am<ȴq9*'Tj9I=n5P/h$#ͭక:ƿ62.\"0#=jD&2zJN8PZ63 -[*6:&�&\` u@J4@&sվ009yš@Kn=0( 1~"w9#0{dWQ3)ش&of-ȹ{Al}E(qקY zohx$q(YӃe%jA=St=i9 Cx(%W 9 fH/dYۮ� hŹ̘>wWƎr@X኿뼵Zw_;%݁dZGk0[o]$UÏ%Ҷo-Üo0%}8c[B߂筻o߷pVIqmQPq|;b?.* GiMA$$ eBf*ζPעwKbXFOӷaJ랪sOIAco<2U9@Rm>R$e.=�3j/3N-A[tkRj(FAʏ{Õn fd`rˊ &O+ɧe/LtUK^�Y<$EsW٠ufp. j FP|?wx(/J.B h1o'B>dz@ iΆW 0/|?U 'W8ÄZXT^nI@+:>Z*Nrk/K~nމ?<%Pm\!;=䰧rq]/ qA;>Gh[dvӃ|*N0a^<ܬ` dtx- IV )'_i.h?MBW= kBI0b?h6A qLphXJ^MkgO9W0Da`)he Y-9?CKxd~55Nд1bU l;'aI][U?bjebAp(M.#LaN"03u`/A7ps<liy /.zYPc.e.v붡h34Ǟ6ͪCءVy ja|aAm�T_[ջ&xOu+G;j)z#0Okr/4vr#fûVI\I:a2>H* =1w?_XtܪT7%6 :ww%oEa Ԫ韡z|)X{z}/i%tgWЬ#I: yUJ!|i&t5{2Ҫ_u)e ,0q!0,? *_L^.>:- .x[-յXN^^mڀ2@fSզ\34]fޛXC\g! _j*,ayې;y t.=0qAs rces$`[& ńE|&F8:MdEP|}s{nNp,4핼ʟ0f-T&]0Y]p2_ &Cr~"ʷ{fB*Zw2|3/8TF!UU>v.}(W/nI: [s0_ab ͻ_~%BUGv'}j{g!C�G U`\[M+ @v.C#t)HUYClrs 3Z}{^YIE.ր. `4od)%څ0y6nkYTbvLȷ+jꉋPW$S2bقuU :.CS`浸;/UH[ }sw^7 mSRN2-  -#lΌ�tkLGT[.IڇT!ὗ<pX# TigOŒѡ h-8f,s۠k\89l> &WnčzW'[wr�y2?Jd=�JW8# v$kEJU 1wa/H*,ct([ ~]s:JV DRmaL-ڟ@WmJIAmϣ:P0xZ/uN~J*109s>h//SɳO8b9xƍ37؅x)0i'T .lq0p+zҏxR)DG\+jBI7Gaݚ'0i -GױL܄3E/\ObC{q/ 2VC;gp_y7d|W2i Vl`TyCu0zT . <{haʅo0t V^: u|vYKZ_KBWv(^;s_ f\<YRm`| ;cs4SAiI"B[)Ɋ|ݤ *-k0þНɢڟD.ŶLtKގ}#dA_PnN_gCΪO]"es)a=䊮}tum(2\ÞccӅMHby%~e:4|v 7ӑ^/|Ѫe1yۿ ca&!d? |Ffa\AMO3FmՐ 1PT{Sƃ4We7+{$ hfPsf'v+uK.`tdly 27M2ZC֚+X#H&ׇ1i`tf[,p5LBϳ`A5ۂ<s]Bba:=˅o0J*_BK`󻫎'2L@{N Z_GkiBQ α.uNy:LF$Pgx[\(tn$|]U폎Pm8/}&,qqO T 0m8Gl̉Sأg t u̇y-o LE24pBQ!@T|>. Mďì'7I?<xΤ 9@vYZf D="Gd4L/2s î0$~6]&i{�ݧB| 'o6U~S\TSY칱p ew\8�Y.mL^ m9l ;MqX5?,LqrqȺT=3Ab0dZEeކU;D>WE.(=tb2~-y6Ӭsf $؎Nx]ypؾΤ& 7#hr54r1._(-@ 3Lm>I>%&@zC +(ApœlY0^tj > Z>}]whJ(^Jt Ӕ2ˑ02tTTЊhW@[\j=nƻhɪ%�DӉfx^H()>B9PTkoPo6+ѓ-,ȯXɻg´ IȉKb i-m¬ƀ4e7}>ev(]ɃE50hK~\?zOK<t L<B+_,6 crY2g"EOVB!&חaa4W; m 3o)=>_Z&xbHihzɘ { [(R_Ӵ5q.[B\0lWj30xjx)} bZu11WzezTpo"Lt5Jx&l·3GUCȫ_u yq~B~1Oӗ{0+rQs6&5?PbzUbg?n#r귻W-e"((s8YVPT(2>ǝ"`zJe"9.|%O #:/?8ϼ|xb :UF*BAP0f3hX}Ț\c'UT m3O0}^>U $3ޟRĊ0^E!LoS.JtTG 0iYٌlPWdH-w1G?]!6#8czr XwbFF~BUBP>qL(}zFd˯D@YeٝnIPy ϧY\NBȗq[+ AQl}QV]ZyX[ &>7 ط_C՘[r2_BZ%;?>wO(~nRfN5?{ U&(@#_,+Mri@5?)> Şj^h=yhF1̮gbrl8vI4t Wy/e@WA|K4hS2 a^Ycb-,s.}Pm6|y nAQ.YJ<4\a'ª!bR?o/؜*/)CՋ䖈@ossb%jˑEߘ{NA愧A)T jAg0r: z/f0}+Ds9-0;~]:^=PT<d2mC( e0d"b e9P>yw- zi~7M`zSpyƽݯ1A%0JӻweJ¬ڡ<"j| SgY|;';l<bKM%7:!\5y؅o߽_X:r3Q;z= @/M�\6qB4󒞁Wa) qNoϡ rt7`Ph4{\CtP[^]U.Gq~Lz#6mis ǷW ڎ7s?&!\0 ӷ>^ b`{jLJg1<կp(Ԟ4 \"BeHMO8<`II}Sw hk:5Fco9?U„¹R}0Ы$Y _M]AZs0mg. `lhIOrwfoG@Xv5>ݥ 3S}'_`KP- n ew*_.&t8J**ʐ{/M.@ّ'zw0wצ&_E^)] FKI8@7Of1-b13_zR..he#PᕅvA*#?h+̿=S{/o<a.ca# nHBPc-d{ Ӄ+@ mL=fu|Z=Fժ nW(BG:3Ìa#{ Ըz!{xO)cY#1מo8ŵBeX:sm/s %q*&Kk0N- ڇ=Y߂Զ,%(.PW@/@f]d|c}3+)zMtLRt!1`z[3z'<ozØ5s< k$?O6䆝ȶ}>g�þ90{$#CU(gY(}V`}6 XKወ⛪< ⡃}Pt,␥ 6a:-0c}fpWa= Scvbś0} Tq #kj8Ws 'J?MS�S3.l0,Ӏy`b/0v[x= SHY49|_ngXp#AaihxxCӮļnaPb u ]ҀZF??oӢƉt[|igpZ ЧP7>1+"w@5?x:3s6k n039H i;i(b~pbS&>HYxt"h@{R?oH= eI[B04 /_A{l$ݼrOì.ݫa`iT3f+=sZVU;- ' #;Ic2K q}0c\yWfM_!I-#gaS:pرPoBH0#?_�sK%QN3`kֳ0o.xܸF B3ɂRWyJ,%Ãp@8>u)'y_6BXf7u/6w݆N*!?Lէo*nj.'l_Za6nܵ fei-2 יJa2fLKy*@ϧU&L/`j?q:y43;m̒,&F|n+N"fB^x{3eq`~v  `yԚ\}{:',yR IbšUP+Nn~% *L]SچҦ Y1g.MFJ`EM2pD[@?$iJ,u!e3>N4 j$:bu)ARna�+&B`S0Q^E$:e>9:d&9c6oMo0Tx$KW8/'Mοʞ(Bo{%i?Ne؉b;fo< V+ھ~A nly mS3~= J^^Ğk Tg Cc$,)%ӼU�JZ[)'�4+}͂E~WV'‰0ۻ,Ȇ_kySNW*L:J_q3prη||#*vQ>|U) &NXY྆+,_Ibt C s{9;QnC0AuCKUA§+[ؽ d}c\?g+NA*2YmmC_=c TeH|?@bm3T,Uƽ,"_I` yk\\}G"ZʁŞ>0vH%[¼_~]Qn%dݸE?J$(V([x~^Pq܀^m7P뮲c7Y2NBXɃPfKI<OGB~Ø~örhѢ佖u]` 0UF/,ׯqvX>-P(|l԰֏&*O Guڞm۴/s#> DOs40&7"a)S˨<K'!Ab2RFBx_o8Zvv4rsH R̐SK&6Ɠ a_OC#9!N"LLͽ'j50GBO䨏y:p&CS">]ƻuJ0[gPGkmc1/a  v)_Զ?Dg?T]v ( ?1~_mֽ9.VirEg>7g .ֹA} 7zcU*e? sб71-1 C|XAy{c0-tM*iq}AC 闯T&hO=Ces[}9W�Ubh@4l^3?uufo}m;�0J/ ѯce Fɔ-LJR\e9vP^.a2L_J 8_r�`gM=d+}ڐ)r`xa)_L փt Z`U9]aeI%3XAhnO+ 4KȘ4z=_E#.r5Ƙ5õ}a,FMa@~* cjU|Rk0bP  aC/`80G1=f$~)]t~JVطPY{bBß?܁dvyZir0x_Je\^GN; z!<eV g<w ԂlPz^l/OH=?K!K=Rmb U3e-يzjF {v_(Zt/(0 '7I=)�Cytu@Φ͠? #;t{m;9T^Jpus{19jCsGVOPP/#oī>Bwku҃<.{BױcT_@! tP =Q}zOGk#˭DyAs00o*-(woC|"::⾒Bt-S]=oOBZ0ű6jiӉ48U(L[zӀNߔ:(;_L&_(JIb>rF!;M,wK9wuSߑ+瞂&%l% dH"Yt!ECŀ=0g 2s"G`ƇXϟ]ywCp~RyDz ,[l(l=|xZLAjYzli"Ő>0uە>JdolQe0jQ9/ GgBÅ _E;`d<ws0\iփ0;\n�2liiധ1hiySkBgZ O§XR<IY)v̕_U'�E'?YY[ fy ECq!Pt!. ^Ws, W09ܵ-i:4TmLrlx/Lpa].0`_{R{oͼ&Sg= JRߞ� %H-la' ,ӿ]Z&igt@-F ;?E"ZvDzw`bV$U&@fۄc#K7`Z*{O=w~2&%%U`JG?w{Q9lfOlQr!3D*Yaze1qԤ UlIE+Mp$`)po &{Gab_ ޲hRBޟ -J ] ܟ;-l_pqdfdgЃ Ecu`MX[W0#s SoLq(z/Fؽ] $td2Ε;Ɛ3D> K-(),9t6\0<L.@Rxڪ+lmˆö7@y)y! z40ߟ^ Pq縎P:_%i*Bi`,jI^S"�^QT7\Rٵoͧ{N| }^l%0o =ڭ�]Zu`4~0~ GYj>bZ!h0Pᾗ++S5%0Ͽ/ii;s»j[LIj ޮuL7a<;(n7^-TAΞ<wI(Q=�:QGCS .vV&AJg_wkBny%&(;εU*A[̫:}ĕ+{y&S]<8?w'O#<^\ '>w0np:غpa!e !~Iy;*g~U XX]֓z7�hct90|K.D_$"lQWwH':=Y߆Uvu爦=l 4 ֿ2G۲Ljn_哅x;.N6.^pU0q 8]+h%luu]߈%^9؏ *3i}`Z52A)lڏ] 2p07wEg[^OK!BgdreF4D<k$>"3PÅwW4!xΡZ�ؙ`_]@�c)I οч{. k#o qMy>ʹ2lui ̼i31D R/CxiỲ^Di9H6YP|e |MľJFFGlڝw Yk;CD dx nS 0("75HDM9o9D�>1Gx9+g@ص\!Y. N ѦҾ}hΑo_҃}WCC4Ln6ND8C?ꮉC\ `)ƛn<Ri8v9VFi"|?l}|i7FĢI&{D:|cV FGL4"xӔ[ZkaNϭuLb] .g('"bw̮Sǥa7{a jCu2b:ii]�O;#BTDYu2 .=Ok /"d[kpoecۣĖhNqmDHր H*w5΅Ա(n\T+"Sha1vsڿQ?W>zkLjBPo J{,rV§ uHj`' эoqc|W>h?MoHMRž9nŨM"ܴhO@tƁԦ> \:p2E̋ Vyl.;l>d@,z˭}o u`9!_D {Q<"?bS@r/3s1 KB$a籩O|='}Gni0fV7_GKr0'] DɅc=eVIZk9pYؼ"찭I!y"Z"Ǘ)G 7"+ʱ"Z{fOz"u Cd]Y.G3L< %FG˲7㖉GB?ESomB A"\Q*"ؾh|aH&~?>41fyZh۵F+4“~D0c5GƲ# <9HQaX؆Dd;I<ӏpQaɟ"Fg^p TBoxGI>sM$zF"E˵ *΋t@txbY\I$ݭz(g [lBX/)ܗUFG5n*>*,mHۈtҊ©y_yt;o"Z2!m-.sAnMI-a�"8*oJ ak?<{~+g̿<h"f-7oBv�"7䝱K:p4XqXc�jPn =F[qZq W|*Ffq@DcxDgx%g& ֊*"s [G0:KoUlVy(b=k"+ ֶ7?p@V XEr\ ԓ?lxa+E[_{;'RS6w-q~loy2X& ;9x!"=٭S%>!<:'vWϗr`y'>h-wh  WrklSasoY 5^Oo 6_0P+"􈖬Lp _aY㕥q7P$7?pB95o:`j9? zAEGa+X&Y ۛ'Lu /Wtl7{ uO!fyD'd]V0D f[·~ RCp\g?xN)Zl[W¾Cd`;\T|!Sޯ =I,ry!Qrd8_M{%6r<~q^!;Q4JjWn; ܟanﰱ_ކp+}J1,_j݂fqMs{ P9ɰ}d18y4[#Y"g2w>0k%EϻW[޺^[4ĩ4B$7 ^p3_ 3{.SX7^C8oDzTO PP{D<ѡsfBGu!Fܖs|9p ƒr'ݫA7yˠ<9}yf}oBskw9L*ӂDk6]vD/[xo w߹ `T?ZsR"zŀD6g5T??`Iqp"k=3š%9D*s\xkbNlUWDc؞GOD0h%|\E*lڀ_:ɓ'9CE׽ձ7yg=w~X"TyFD3_@$D/ţjoVht|"lR/6LPa(?<q= b]EȺ孈H{QY"D졊*W[{`-"p+~nA ǰUü>"b̏r5޲COc}bK9޷pn n &zDs]qfٷm|λ0- T\6[2&6Lsl;#bR=_G  ۗ ~%,NJ w5f}r("Z֔'!=eAqE;W7`vG,>qϾVDD+>ހ9W>OaGcDOb9RNnD8dYNVjnYƟQ /lC oHfu`,ؽ0@۟IaJ#\Ϳ$Th 5΁q$^;O:jL"i[:p!H¤~TKXoqvZnع\;j_iӹcK :ci rw+=hX%?8'ͅar%"(FŽ]>xءh*|2&1>e:"ѯvp\?Ʌv1T<m54d!v^+l,D&bËqUS"_MIc{vV,¿k,OSV9ED58ߏg!~@h6ĄsCx5ҵ/Gc/\#@m;R`U6|0\M[ >D?׍WW z@6-鿌pŷ]üefڐ-t7_aF?$":y�켗ݷ--hsiة>071\<gP?]Co|#{?Q@'+v4 b:tG}G~1Fv 6g(x,j0YGKq$ZWv.k Zf6gWBHw__pA>5Wbx³. j0|vBɤgҰ@Ly_9>إ^xHK>c6x^aRak_ݥd؈2iKYڇ}| |P_߽:=/W;~D't]~G d1ϘgEL?cW;u?ayWg"Ѝ"Cvď"<w#�Izs|BSOLZ'hk`+v[ ;%E)v2YüSO9Zb.?}F4RꋥR>@,#0~Px",<pj2$!Un=" dFS=`kǛpޚ#嗶ܴDbYy ˷(X']Ս1%}moEaO k׻Q!M+ǰ<~o7vo?NEeqw Gh1c"I+< >&KkeBIъFҰ-`H}bU t󴿱6ˈh\I4PO>~^](afD WE7ڈb]"I=rY]7T7r]-"~r5x0f~ "҅ʕiYAAgs !75L[Eل {sf3E4a; )s%њXЯ􂭀fØNܘ_F#yDy'1ʜW^Ÿp�rNxYو#UDsa,o,~\Dm(T'�Pİ|6%Os?RFVn?Z?s_{mݰۿ{Ѵs8z® omg!ooZ`0/в厂3F߱:}",1i#{_D3<u84"j7L>OUy$Pcdg8~- ~Pw.]AR烗0?N]%oX}y>Ur7^Bz(i }3lwEWG~bG22^tCĎWv^i ;`fjF&jтc~xIWcLt-"_A4NL´`ɵ/LS'9#;:HfF/V¢DzoX>@P lxKF3]B#~l.^j d/]{|޼B W6?=OgWJA8;/�ձj0Y*YZ|,ûԭY\rO<畬9MMrYP[4&"NqtDW95[�"q=i]rT+Po*|\DWjrM O�eax$XCO kqOMbDF6'QDpjÉ鈐6lo>i7j ܧ > ]qm Y BvX }mg|"PEӮ!R_E6މzg~Ȋ`K-E,> <4@xߋewAxIHǰ9X7(<p(}c~"%oDR;Dɰ~|dD8[R첥'Վ56o-lŅSGv#jfS3+ՓZ,/<Am {L%29R;760.2Bvޜ-*eAx2F H,wK]^ΓW ƟHx3n__vY4WVG;{}L/tN jU^̋ZtWU-Izwv%jxH]4|]bf;Wx,\ ciCf;jF®l=  &[9n)iܡ[̰c$&M2B #͖KT /ٻ\>M46?]5|e־#$%v w)Uj'&+0.~(R)7 lj¿b9qv˯asȰ!+'>ؾ6^+#DPm'<loW_{rB#A8:x.tbzlO[((S^\O=H)`IG)q0?ۋGb=8GF sl<Z "{!W?^u׿ĊG=5~9ne+6˭&rrp#cmnVwc6߽)GDw`{A?K#)E�u5:?)1=o[˫#1k(L9،Hot~{ZL#N'Vn :闈h*wD/"BF1/鴾)w 0<_%dhqNhlNe ta#ws hcyc~wdⲀ/vL>;"|ywXU{1Hɮw=^9a9yqA ,"O0byQr�O={I87MiǛ]ywאػo Z w#(q~}+|*H⧏p< #ώkVlC$S"n1" &?lsLX"}j0nO}epMHۓ2(wڭ- DO˟m˽qV^^a6HqRE۽;DAfN{׾W<c?ˎ%IDœT[.^z~ /G@Dua˟cO`^ostňhګrgWcuWPf,;ioM.dVnA9~mtzƋV΂Hw=#>r?^}/v!Pϒ `_ U"d]8@Y<5HcFGFO{!{k%hfvN|`e9AeΏ߹wGæ`?"j_G4,Il/DP<>?׈f&O~2DA!lOG>$lCno35)h+M [Wn.ö+ޭleq ϰMQP|WO>E8Wד鑘rA \ryIݴV<fiYpmp,%uiޤg# ҄vmz\81Z^DojzQޛ/5u]0֡Y#RO.;ivl:.FF q魊r=T^U=#lTz;ciqXC-H st[j̞wCiy.0­^`ք5㍕ #baz_ vFO˜xc'|dXե&_+ӎ1dxҠ�ԍ #Bwtf?xOvc^ݙŸfD=;׍aHlS힎ur'GP&E7U? ?d:(:<u;S9?"s*jton xq-b~<}-s =a{WH ƩF<nr_l�xW?O*eۯ]J߆c5ȍ+̖z XzÎEA4d!`؊~+-H6R&PL" f߀hn^c?1?}ϻ %]\xBs'*`f/SI&)E%R*.dQ$"^=yN Iy؁?obns4T/Jzn'�ҝY[[kiD6x\ǹ~9@-Dպ%X W0,r\9<".XݯL&$so9ۜh-č^5>ob T5%]6Ds}%մ!tud0lo{ WA!qY~_qhҦRCDJ/mZdχh'5N#l=$g(v?.G6C{`9"ar~767äR3̯X<5^^8 uiGG bzaaBoH2+@4,g>F)wύͭp"}mQ3~ǽ) ƏDU1ofҤ�ոjy<l99A6y4Kg6WĪ'YMr"Њizp 7bbyvN}4y]k6gwGVuC>+:`ۂqmloo<ȾN3uUp_eDةz@v<={tu0n9s6,izɋ=G?<2a]6s�lFkouG|:euAh ƣ;ǏRad6 6;\<8j>H*16#W/[YSuHE.aM%sxs-vv ?<!`kEc͙`x D| [f-7�H O3J=s˺;6ޕ2¿QL4d D'Fx~gE~JP&(*W)2PsS`sm5 c4SعL`8e"? X49qD{g Xp` aExn߸'DxCۓ/9ƫC<S\\w^"< E!6۲~>Zco2ˉϩNα%_:Y aiTVG^]4CWDj37p|fQe:8lQxqtcg1>7u.dj:圶0sA1mݏ"BQDؘ׸  uYͰ>qk%?a~Ew6"z)>/ {_ʤK?٤8^=x+ $}MϼFoDvny ǰ=_#[U5hWga{G빘amغs4li{~&\}D$ tW ]No'YJwNF;ߐٗ_!b%$Л96W+ΨGc>{cϥMsrLjL˥ACz}DDn>u^oOa+LCf J.ɬ'9V2!o2K—ZC8ƿmBlKwh҆ Ìk2v?O..!:+NƲ͝@ h^5cuU"a6?ؔCmNJT19D9^.𤜲q_nn7+ c݅k [ F#7ҁ8ڌ<FԈf<ORV+UX|pDڟA gZzno`ll8b_WM̟ba-໵T&"H_u 5 4 [;? 0d;Iџ^jpA[mE~߿=8JPdv%*V}፡6l> 2xŽДЗ, ;y[J2m|’1D\7t6ov; >-B ½I,xQO4&019^nLNlGHEqTQزȝ䀭 =[@3S<Yx�}[0;EDXy LUCK縃akUN ')cp<P?Qg3>`4V|;SX︛jp׫,c>c]h3Vo{ag=5"ض)NC}G*wɉN:"˕!.>[6UZ-E29/Kƥ%vt &`Hg*`S"]7yt?IP23 BȂmj� !_aݧ`yqݻw?="y+ #D7Xt~ v'<ʹ=^f/s2I*rv#uY2NoTR1{wlu?|IU`pExKh  pVV Ң("2mEĜF|=¼vHNv4 523"B{~ pDʭiNDEx3 ƱH~w[9K9Dc3m+Xr<{pGW s+~B /ka=`DL-=eSگ mlї:Nt Kb'"wag|9wPfaKkU0^[Tnd F!sgXڮPnv}Сa4ڰqܖ<R g+^_J m-~>[J3,='`[A?}^}C8ڃg^r fn>}3\yKJN<-z;&BwXY*b`czU4FZX\K7g=ggh`kGH`j=9%7 8.?y>Ȟ~ѱ)uOZE/KX~3rG4Oh`[ܝ]rUaxs`-w6l_t<F E=!<xv/K3/`;Y]8&x>?y?{{z<oYnɔyC?M&r6I(`]WG~M?Fg7O v 7r*\+E. {&2nՄ �Q6W3ZDzP9 Xz#m:vcԢpVgL0n[Sj6MDSIQ^\0]C<lkUhƞK'a, iÕ5Ma{%5̀_9B#6FfnΦ˅˲=N ȷ`6yV㰁"]MXgկk{DzO,l-e}ɝ2@KDx*3"{,݌L_'{ATlҫX;~D$NE;3"l uSb6aϩ73 =U@Uᮽ clpH_.QL˝<}gz6߷ҹ]]ᇽqXSz1"~g<HN16σ˨6[P|8]KsXfg! Dؕou"O,!k#S "-TC$w60sRz>~3}U�[T>#|KoDzG<4mnpU]{?Î#%qX3<涙'[=u89Xw=xNqz#|A4Dzv J|& vo`ɮ1~;"u7o[3͆a^i#H2HA,_R zm6"$>9ĭB_3}+�qDaXS9n1\ 9ϏmDho]~ cp+ɉ;O \^'ۗ]\&#*.UxJ´`AT-|,nW"AL 5E]Bn/ nq#G< #髓Ph>i-2l)ixw<uiMf˪)t =B#~^o]~3]5\@xzN!DJsKT\X17|n ;ă &!>)a NEG.;G?q܏>!ȡ)Dl3>/%SY-猰m ΅sDAId׬$6 a\aG׬7ha *%#Wyd<_9gܻ {Ƣaє\ɱs ݎށlo; 95]ġhtADͱof};C1m:Dx3~;<'0_Z L`m.W/R/EDVfa+.\+j<T3r@S^fְy'<E r0a9hnn" m3~,asR_'"ΫCT_-iYxp1uD?A;m/<]Yw){ʞ".*_});.jYWhgE+9Xf 6('y =%[=7q<]w'Ē']4Q6$amS(8옥jS~(^`6_97Yo z<c6gK~Kvg+G(x -K򳰾ylzCr;ܵz ra|:sys}`-%Yo˽qAɦ ru¸q|q$Gd`SL\ƿۛݒI12`!lw۱\6ݑ2ǼΧV'cWT/v&"LǶBK_Imy^?.} a&aSH66xbɊH^ʦ.@_1@mxH`*[u5EsœU_AP|<?Ϥ‹ޖ !%Fb;KcU_~jly&[!v;;IuNz~Cw`>(OzW"V6u<&*}a* qcrX#Σ>,o|:k4=; ҆lnviDi]|['6<|'T}:DRк"Ѥ@4w|E}wƙa;ᣏ~#PQl!}Z e c<P='}/n&.UwB3+[gDrS"> THrF]oabƞ<X }xXߌz9"\zl##cg|U?2cohMxgL"")pRFGmqMDAW.ތpMB74~ JUXe<Q.T4hU} vNæ0ǰ-$ʪ?:=|R7z)r6'׃X^]fe3Et;A>b@<3�*`,Zw<Q?/RV:kY=PHyxBdlP\:] OE8ca(OE$LMa-I]s<vvNum(LzZc٤cm?_G=;{"u"8_k5Cx)!`ˆׇ;DPC?#d͉)q"N1=)ίGaK7`o;Gm_:<31K*qX!b@\=ϯ=4ssd (ٌkO %4c}u1NޅGJ/Jli+\DL ٟ AsNo" xbs_|l {[=._?gS-$4ٸ_GD'>=^^~hjt\p'.I#|]\?_;ҍ6ENwwDs9n툅`#X>%<UAt.FĞdj/"8G%yN|qDxDTW ;>gnnZWvK8C@8y:xԏQ)*w6XS08z/eJz&`C\Tgؼr3�4ZCzD(Ow<>.""MD{U$#U-!($JRaHJF)"Rg9>;g@U5B_c݁4K@K<Y=fF�~{YB3LQhtOG*z)q2ƻ[Π)- Ȟk# f3/<j2TB4Mwϳ:at2YCA A6⌘jf6A'BZ�S.L0Ĝ|Nmm^y`yl~Ki$)>PiOuӉxˬ4⻽Vc臧l8m`^ہsY@a= (W/b$Σea\6EF@QE-9T~@>jaW4nl ٟ0> 5Z @I@Ei(M|t"}|3t^fN9)c& ΑDz2Ut.›`k�|+whxOy{3/$�ЋDYvDG[`0_LȎfe-Thw!ޘ5ܯ&@LC@0bc_@s-;}?KmY ൜݆0x0>_=6Tuc털03'zG?#Yh]U Q'P'e3nm0&XHm1ī#K;z8ϞM"w7jZ |Ҧ@]a7hSFnX F<'0}Ee `U c`?mP| %4ûk= ~`vЧ֋!v'9gWݻ�#ίCFRoo 弗ˀvO.\4'د ȆR^`(0TT"_U^�Iq^[z6yX>˷6$,ˋ~{b0޻0o $|q43bz,qބ4xC0T;kCwead-6zfF NO\h2ׄ]`ո^RkG19ِuͬ]%R]E,6@1|Lde YyAYQm8ħ' :fuR @[=:?u'^:-h/%J7F\گwV1uIqK3'_Jǎ.@KX*锴a:?EqsaTqo5ٽ +Į EKŕtZÉw/9 v=sH\<øg`S [Qq@^N5kT내> ;qZN|v 0WƥKoI`v qK36%=e|ke4{) 02ڄ>Y.f#y>f$<?Uayo)۱?>nN&/=[cқWauozQ7["NWRͣ}77 JFvh$PHq}s>!2Pim}zkm7iO -|еG{#Y/̥KFG by[u0PGOBq`8 hN_>X0P$FMյqIUϹ1f UFmn ֲMV s+nbn=ȚB] [EžmS|J݈Dӫ.|K z<&9^" UUW#þf*aF6WzSu^9:IShn殺0o n{ рJBnzV~a+!x5m0H@#oduQá>.4ޮ/V*/>ƊϾYPuPVMez2;vnU0Fc+7'CݢG[+h "OьMx7][foo%P?\i./n9haEhTA4AoOlZǏx$d̠rI42=fP 7{C/5MŦ5XE:,t<6@+;q?ҩG<;$4\A Kr0ı므>nlvz)#:9 WZ>qwWX)4Nkbkf*BmGonLC>HqO )uk4vbQ"47"a33@s??RL61Օ[ܘ}q-[`^6?Ϫۗ vS[:.IMg%r5۽-*sYL[4X8g뷬O? 7 E!NէqДR\wP{В*q/ #?G�P:4c| s7~UeZ^$qŞeg.@y EoV W<ɹ,g#H>`QK igڲ>j7MQe92sw󭓺Vx>/B# ;|{ٕd`\цei5ޛ&w@<{iy ɝxK^2g3շw̭UC�琱D)4{n$}h))}2PjrqmÂ#+Oy<=&lyTtW= ٗ܁ȶ{n ϟn2ރ$Hgwvm ?_p b)ڨ&)2UG?/ن_c&*k Ss5k͘-4<Ӏ?mz !!‘/Vr;0ڝ^g$nmE$Vݦ|&ouBM4;+a^ urv40)Q'P緥6b@>>Gw]@rl0$l@SG&/f7/CjS1[i7~u ʪ723XLX0f]RĂWNӤ t:{₰Ļz%'iD ~ڶOR_6 dṡN3 NVj+}Xni�;M}_PbG̪@ _%xQE3TFMyE˩:}^qO7+xßoU9-ۍ&冭@{SQ+s1އAh':Ќ*^7`,|-):uFs>W_ߒg@v~3ν:sEwP"gM_^ֿ4*^~ X:w�Yes}w|Lx !)ʟ[Gw`O~>PZroT}>{c`苽ʈ\ Ԃ{cZL>eZnE�Ĺx3c=q`H 򯁬Y}i$SyvƁPIrHB,l!4ټ'I(MןW~I( SG;_۽qcݍܢb],Y.}y.v"^ϕ/ uiĩZ YS#G2ޭgBT ? K*=թul>=qhrzuwd֟Fu'c:�Td(Fcq*@F2KGBZFw-ufYMc״YĖPc9*oDy@b`�%D,sGBR^�X80}+^su|*'V/j3t</>Ljkc^g^Z.;ɨr5_FY쬰d_a[~=PVuzH>/ZWK @[C6t޳=4u}s@;TC$"rߥ& p|mǶ[�aW^G3 ݃ ě,z*>ogC/NMg%G|TԎd@ƖG5Hv7{2RRJI|?fLl̀^䵛&Se?]e{,`H}Q@,]B5im}D͔|&9Yp_H(lc �b[3_:˴&wظi+>B`i;vI7Ѵ|ы@;YЌxOS_^a$UeiXgZ$tA'ti" '+&_(y+J!:X-H*=o;aDJzE@`yV"oo b=|/wǝwА;}ߎ{)Z hWͪ*a"!Ey5 G:ܕpo`>n.w!*2pCVh{%fLS >]}LYʼdĕ1Dg _>W%Z' <")0msV&qZ4oR3jv9e'n'o =lgSqO_A|j_ y9U&U>}AY !/~>b:7b9Çκ"@{)s+|Εu:tO/-g~>:1LJM@SnϰG"ebߎ@rW7ӰO 8/̳IBq_yP d϶x`^Zڊia0 rg#'\񙰎0Sk9H<潰cy'zz݀|d *N@fva/8?O'+6'Xo\to/Nm_-~<kٜ6 cCS]9rNY~Put20Ow]۩o7B\t)C;⩈mzs qL= 4կ"9@FY&;`q(k3;DqS%@;AH6bzN |Ẅ́\DWGzkR Isփ̿*xMBo;N?JOl0}CJFx_x1؇g6T9"2e]hx cnp!nc5@߰hak_ie2盌ug2veyv7oq`$f z!w Nkx e&<?>/+e\yg ]d)zAo4,E<4if_ m:[]x si}iÙ0;%O7D=g4 ]vF}y;E@*k][ 3�c[ ?qϾn@q2C3E;tku6h+_K^[߿uҼ2Tlg+hƙyf)0^ྨ&WWUs\pf5L}ׁ.y(,fݖUPoXo#'찼$/Tp5f*x7C<%W4j Wl96eyt}>Oۼg}fVL:8!Ȅҝw�J@`lO8_^G:PoڕjO1~ss/SjۥD!׆a5ۺ@Z,#P |1~coq_6Y:g穊q,иB?x.>ƽh(P%.@ߋ4MSj)(Pz0^aRA'=BܙN?oOz@)vⳉ>@8I]8۽d7-Y* u9}Ç`o z}4A4\RHRO:<8 [=s@d čQmŜlЕTďY(3q'2IG\WuF5kbrd^ڝ81}!w.C<Jo'?u|>C=+)x^G�ڪY4rĆи@):noLk,)xsC|l53r͙ `, h2uM=b/@\~svWYEٴ/edklC~}Tiᗀ~{]2W!r1׺Η0ɐr<J0dٔ}{}h˓sOAiuØ/Ž:TÈv(\̈Hy ^ً^Ok!R̿i@mU\ ouz *e))�nռ{]@ˋ|4SBlޝiTq/4 {l1߀ܵ} }J@uU6o$79Kx6^is>dA:{2 ɫЈ'wbM'[ h.[b~Y!GnUtLq/p5hH8:%xnF?h ,˞\yi}Tb^T"0hR E@pH^?wL,}%@cZ+ Ι_v3D_CAF6rK"v#V+ cNn U6cDRS4e=[?H@K@^B*[ eT"_ڒ)4ˆv9>w >|�FyR#y#Bc/AWX >[^}(qa^z%Lޖ*= !M/6 tyA- [<s^k@\Yz{[`Q%2j}^è$LO*3> 4~yU.d o׽+}j{P3S3G9 q'g7<~k\TZ7G~Sd�cj�۷^#8w+<O\zW/:W9zǹfz~)wG VN?@X7bk["ݞ$֘O`["g{?.id>6p T%@{ n O6$eNmǏcQQ`̵JZl!ޤy@VmJXˉ7"&@Ϙ^7X(_Ɠ,W+WSyyVHŷvx-yb sb𜞡uuGx+{)@I4ݿ̻j-/LHxV}T=k@r;n @|#Nٰ Wmr_V9KswRq:q3 сRI[oxߴg|AˌۊRqY ۑb >+h`wn;o,I󺊴u8W~n]&E6UּFr xnީ_agv!yyl/%qwN MF܎ 32NTG_dGw s?yŝ؇VڀtSDxV3cO`e}f\58֍H )w1师a*!X/>9z~j{(^ߡk�1?EL{7t5n0MHe &% ̢U9ǟJ+s=yO$: t n]:["cf{Cz[$`(xK$"]x3LWio `p:@txו VՈ;'xtQ Fq%/7!ZDsb@''W$ӾzW=jآ|yӛsS/Ћ @*68GZf|x@۫M K?Y[#.Ig0$lcy^m2|nц=J *ly!z>|y{~{w☭>;#ۉku8 ێk:9_TjAoa(/S3Xlun h_6k�Al <CyOP:N@ƑZ4nm_3fLVJ$쪝k@\q; E\Ax7py=@ٜ_/JUƶwsMƫS0ན^d C>iCމ$ �t#Zg Ě؅8Cq_<c#;Phv["e@,8=z5ȍ& +3OoZxhϧj9E)#}"pμ-<$~N.+яDjiݖ:&vr3?kq9o)y:ox\/_^c]!k[`.Ӽc_n@>K )B<!%vJ3Z_{9mGޔYR+Me}Ȟ8EԏeȽ n$VJ=bWfz۷Xyh�ȌhJ`^8}('m${ \Vr y6nn~i~0 lMaΩ_VN s 19qpEu<뮊8hԏع`nz-{!`3@2mWi"[)w@V~]~mI<^q= 87=s]z!?~un yqNs}>^\6G "o)@-߼5T%&ުnSVY)H eށXf.ρ#jg}zЌ-@U*!3 wx@o=+Z oxh$TWӍf<@@s`.v~\DRnw5@?.)9sOnn 4wI?^Ao٭@ wh dm@|>>tzkŨwTE =!ڼWEΓEw-+(=nSМi+!J{ecr}c^co"zOOqV<QHu:'" I XjD5c<C(r;>t 1ra wtO!z6�2<=HGiput:<CӏW_Z3/hn*)EGU1pB^^zmĎEU@Y3qWG^+u?q]"o|j-]bﻶwkƛ?DsJΑ ^_BsEAƟ)jm=9)yX^c~Y[(!xaT8vس ݑ $TX {ס>|Fn*[U@jj梊;_7IW"w]ELmj.@|~;f bF/yQۛ7f}z&O:@#?E-Z`v�ϧѮO}AhZf`=ُ}e&ez;^&YӸ;.hl/NFL 0VCq7{=zK5hv#v?<|}^.?xr?ŭq5/پ Z 5^"h`w__%fPFG۟Ź�R$fכǻ[�a&8:whguiQĒ 켆ؾ1o\s\=YX6Ѓb @Smz*+7mSng4>}YlK=.M?' g[G#v/ITModL}7 _mľHh$NU/CϿ&+mK.<NFTl7R6q`@~lpH弨rf `T><2_K|m͝`ZnstE>|{EMYf�!>m_̰fnCjåJ[i@)<Lw8Gevz D{w.-slrO uH q麁 و.Q{-bNsa!Y9Re P_OxqM?jͿ Tw:f4T"W[ۻof~݀gV{ bdDx_4y .Tq{{_hNП*lk/W9*x� 1i Kez<~|w_jc@&(+^ݍoӀ\Ѹ-L-]fW"!ւh q2)D3+Κs{{;1;�*eӱ @I{#<1h~"J"`<;0.;dG.:b'dq^-0jbnA%^v� =r5b[&՘\>U E5K=gK@>[UP(9oIP=Bo>CkGD9>U"dKSWf>vbx͢F|XqO0s5G-MG{g50^=1Ľn03GypnIG<X4AvnmuSrE3Ga6y.,뎏έn柖ͺ'Ӯ#&4?FH~zg<##`׻g6 Ň?JxeTd6�NV�|]=5 J e6<=05VbǵBh@.ioDz~Lx_]-ݺqr7Y٧RA@YW^Ct{@VݩQāIhz7yǞRVǿ[A.:qr%tNW;] dJGW+N ZOamjtU_Bu7<4|)96<.kmꜰzecb <9i:M*[34pߵ}JBQaŽ$4>vuN/7zqs.hz r=] Vuux~Bl9LU ЩU璊ݩ*Svn9++^mS\ ں.4 t[;ه ]mAw'r?/XN2n{|N~R{ՐIoQ C5kJv)_aN7c v_}0t{қ%@?z*#J%E wf}wknܻ |)W$Ƭ#y!c'qnbHFɮ '}c_%0|D>Y=2~ԸC{t>+aɢKв ۇ |얕Їyt"M@t[sSκu [Q::Clbpfڋ:j$ϊ[. quU"s^hovG` Zsϟ=hVFw ,B]FysčW6X >S$c9n wiFBOu'}ь1.hpyyML짓J7os#+�u5:h}؅ @YmYXָ\:8.kK PvO=W~Ui_/nLox4&Ehn=�@W5盜QXx1r:sup$0iR fJ@#YGZc埂;o* .\&4z P?D.9>OIEy{O0uK%H|~Z"m[BTg U+:"GF@`nu;RS@u-:lXtyg3oT,mq 's >ܗ}7Q h9y:1s!-k0o+f+/vh>+?{Wh�bkPe/ߒ7`Mεꕠ� r=gۀO?Tyu$Ʉ%6vtj˲hPgwIbOϩ=^e~M}>Kë_Kס;{&X{_q1VbxYYi0Vո}*/PRkj4^~bM%n\]Xfs2rlZYd<yZpuz߅EE ncUQԏn]g2>h"~:<b:uzt jO".8p\Sr^ mHBV%GkyGP>e~mvE;b^<Ƿe]۱bA=TgXc8՛Fs}&�%p+{dߙHݦ?8/{\qyy4{�ƚ ]ˢ]9 ;PoݽCEhOe؋= tI3zFMQ)D%̑C?Zj{ yVC@w>-9CΏ/ ֘ЖB\a'ˌTB> !g@ PynU}e5>�tukf}5Mzitu ";WEZ1yf@%YBoElݘhvyNe<ϛ'|e>(7y-ػwaų[u@JW%hZ߳?m;B�ME2#uѬ�߇h&h`:,9!l{V v$C:|z+O"ԋ:M{58Y#M5#κ)tZ2|`n_stW;̉/@mcFϯYF>@,yE| o 5,e_G\Pyszc�o-3'V5ýu[x#owxGgďYSڏ'\Zb,xF-D?[4eZd",͝z1Q!$oz粕.9?ȓt!l/Gޯ2us?@5(agr="z=AS䛆zEm{ِwDZ?>Y! {ژqFW"Sgvm#5?~m@=qܭ0Dɯ.a5^댸oSv{A>|C;}L:j6o 4oH*TuŞE4NyLT#@iH}ʥk1?p1k.VW,؍=}Y ,Mc2Ӏf/ ݀aVnyM tYeF4 <-z V(S)!<ZiCG?}Κ*o!Ĺ+r\ 0L|%-k |Vd.zBux1yik-ZJ?k/T}m YigN^ 6[d ~?US4U&00 Cl8Թ spAhשׁ'K  n^r]~̋JKG1`E?^f^w hZ2oj}Tnyx>nPLxJ}F"N¶C^W?<J|Y+>1s(cO4}9Ќe(+b}m8x}xq[ݿ .42r8k5]l'cj)S,orFۯQǕ< B\|Iehvs@O&R GGj4PjzP xe7{Mŷ[[͇)4L*cXR;׽O7Bg܌Dom@V=q#? ˩`kWvts1In; a3vԽs`Q,k݁}KϏ�+ǽ'\Vxڮ5x'7X 6U kplѹ; $!ܯ6 #1~yW>yb0 !͑Ы͈X{s.~p@cߍFÀqj纓oJ&S8OTDv\Ϗ$Qb!O6~x(N֣wձ4><Ezr{ ʠV&7>ӷq_ Ag4ܓرyfP 5/vY{1Σr@9DdWS{Z~0a &p \\ۻlܟoeE!V@xt6b[_@ƇԒ.X\cVeh7G>#p&0dV �e۠A9"YH-]\8T;PZ//{ MU_MWuz1 ׮ʖA,omAExP.ŌS:![ Nr/7'y> >{Ɠ@$l(H>_T1B3uG=yqgLԀl2Эt^ fb3R^k qGt!:43+:.m[{]LucxWwWe%=Z2h.A /b_`fL Bh"bOlK*/hNShJ#uL<)xA܉/@lw9`)c'^ic O֝q.@ixĩd|;Pr.k0Wj`Gmt7.J*Ƈijo8>~8ͽ{[`EC?Y=U݀f}{]~YLڞt? bGyߵ?@#I ە$ܗη3t`S{r9;W(孫{`[Țwٹ#^F#ٵb@JwDYl̷<f]=|5[^>?zSU<gúz/a]XX|<(X ˂<mHw=|)>-lփ䱗{%yVmsQ<q s~9-v'oB\ϥ$1>c8IVаv@g7(G 1\xlsk{jw�# |a/,#yw dzKp}{z r(LC NA£IL_h#3P{/=yYX{|>}>Bxs(ne?!v\;?;>V D`Qbb]3})P{ׅ[Dz~`lj:^Ĭz[R{S3jg @}ؐvqhvjAGȼ ֳ@;9I])u# g{[R1g8^FEiY3Ӽe @^}_<O9y ('[+ zĨD`.#K &ۅI4S7e㉸$(Uho#4\IKD=  *%>S<'^~9w 5{�&RSx9p.{W\ZwEȭN tIյ[5@YUHm݇{؏d]_>~ /jN\:Kl*,;*he53:iDsI'7>kwO.lLEPԥň@߫VٓU9p1+;}ieb<b/UPNg} =_< ہX^[${Y?h=Oke0ۚl�Hم i8B!E[C ӓ50g_ ]s}j, )}V�+eUx㪺k|_EIKD|&3ϡQ8:_o|ǂgWL,5 Dk׽<˪[[s[_.~+0~X.: 4&l::_y2sԫ'6/s/%|D!Q/-P¨zÓZ@z"=#ݏRK/xi.{ƀv=~FʕII43(l~hHܬlP=ա ݵQR3cA42A�#IYi)Jf")еJCq#Ih3'yyKBk�ƴHmb˺%�ti>�Y8bc'yh6N"3hx&{<.5?D >*UZ!WAtB0MG6S@eVBml }l2K% t0_w}!8:/GoSjh&}h*6WJ_vqKF~'A+wăhb_f7u;zcߣ/|.^C=@y9\ yƻW!.wn`'K۟<=q_={)\g~uSzU)#(Wl |`"hS!w~}'N{�bzZ! a[O9*m8>MoTA2P.)N/xa>˸!X2x>{6EY`/0*EY :)ZF<DۜU&̧5p/-9vv4MurBfJRm??~�{š$)4[4:YuwkoIZ4[%?SW" "[ؚrq»^;aⓋJU i>Mt7/}MN=%wFh~.:pиǜ(g|cw�3h5i׎KkϤNf"^hC7 %^>dXVV�G&^ _]^ux!Tm@kUHvPbNI}$Sa~xy? U4 o/lloBUV WVۘ!j W{4c1Q}suo bp`:zTzBRq[14Bg5@/@l7Ŀ#Z\2x]t�=qe`6N}T𧰡jY̻"{aZcJy7 L4Zo8GM_{&Xiq+JK뛊hMN!&:F ~5t=ڠq^% Fu(4Ak&uTS=V sߓH][hOX8*X+7mFB.]2W9rh~8zwAOR59Ō=b- Ž_jن}W_Cs@T3"+0O*-u* SQ~g81Yܻ߮p�%}դ1?Z*{a>w4)v\GPd#=h'󯋥`XĭP?^o2c- W eE#/sAӁcocQҜaxn98;5JBͳ='(4"ff6[}_9*ng/zs]A= bvaN h�sgkq6=埦qww=~6Sa90ilyd8+ḽzTțC$ylu1)'k˧ӏ0 f N[%FЈțmq Z1/5]f{7xX[m2SMOBb~5 >q 30uvKKm~aSǜI ^s!5U@c9 ,r2Qnʔ=Xu*9, 㯵ixW}rk` <bx8Ή}UspȖV.Bߖ ?EE~h)D+)`q'ڷݘs-4Ssgb?+RgL<P9Ne~YEV!5^a[9cS}b>A4/<zx/wN?Z@\>*!o7kpO|aᴃ'<;7/4KJfY" &,У$9�-m{b0� Y/DBQq6ut_"%o>M۾2YSqBh9�5ua 4m[W$A@1#8$=8{X-!q KQEN^_~whi'87[Y#;z-΅ ]khئst,Pڜ >g<K}x΃V꠹ڬ&hy mtę wj{jnW}�w}>;eіEuݹZ0q~,ڃFd8Ά:4xRضBԠbʹ_@ 5| \51} [׹`64acݍ3XiU=/Elr4]s[3Ϫ+`\qR ?C*%F4\7\CqUB�PV8@)l+vjF'⤞ځu[LÈ! oAk\pEW@{,[4|o vy>DGy2`ɧ>C3[)37nSP 7q~"b:4SǶwhGZ ^%M6Zpx-/UOr.4MC%16sU&qz^4Z z1 m+7LЫJH os nȷC\7,pS4Bsr 6畧qDyCS|w VlL53v�},Ud|8Pι(̵Q͙EMj%T u>5 cNyqi~8e!12ʉ\a؏3~,Y}`IC8 LlÌ!Gv[ 2y{]|@X-pW7;yp5dPWFf|ͱ@n8 ĺS?WuD= CMՁ&jp)P?ĴRʁ(=tekԖr3;vۇ9''Eo|j8jִ + ˀtkmR_Nҟܦx$(K�+mb "\9gzCK=@s׉f\x*U~ɴjM`D4έ/i⻀I 0 > Du6Zpګe^ s_YAժ&vN}@{Y,̶l?D|{835HDrwў�q8GZsWO¹9Oi)8vwua[ 6z;MQ%>*\lF@_V7Rf)3w#rqK@OmQct�FVV.4j\3#o^)Wە5us;&gՠٗ+knSr#>gEas#vEάs {l?I6vƜE~~ dj,}J D}*G@%uu)xt #Gg#"i⺈'Yn)Ygvivbr(SA<oY#B'y04ɣJ+^suyہpm;߱ ;ˀ&68Q؊ޔjKN^H4C@YgjS%^z3b-xyVrnY=YlnKn[)CeO!Ϲ)hDз]DsĴq>;3i*@T&qþ5Ton63M+\rWh0]]R}򞣛0'oqqtư 1O}>2'鈵TZ/ "4#|qyR w^hWMI=[H5ܬ�V \/ ޗ3j@ l|]Vu ܓ~@}rCK.";aͮ}gG}* 9@d-vU̻nD< zK.xO φ@=ͻEYT1&2/Im{xr_>s-5F &DO|4G6[0_!3~E< *^Y4E[d`:o}DT9a-�|I +%v;q@7ӏck8wFe$>>\/?yhkcЀZ$}29gƓOsY9κ $]/{�Moyy=ǯi[dx8f[vўEĪ~D�.#qϗ }nWzs3d b+!^ þa{:=8/QKPtrM0 *|/cS(R0OnUP;mca6.qmہ]лU<k�m@az@YQuz ɉNv)C7c׏zF]'?{hz7] *;fxK(2Cst{΅�zp[|' } Gւ"ľs yAQ{h.hN'՘:6=\ϹįЬa|}vlZ! dӦh3,2o m2(bߒlތf|p[fuV:w@gܼz֥@eLZ29; . nNg9(Ԙ@^=$8#_oThfv挱%h1wylx_fF\=ݙF@yY4]!>'5O:&Lm!Q5I.-v{Xj "?i7'K~b l//I<43M7}~'Di׸mo0zn#.g?q(bUgJquo#lՋۈ>~x':NF)Ftu7{(vM~֣ ]`Z3+55{>xq.X"U&F g&ϫ4|�ؑC(pU9 CnM@~ ͅ]Ε%g Π`'Kj 0'6ݜ0Cn߄@}�w.!^ʯ3:@ TxsIŞr_o4{`4"94pk>/GGsCnm{# nFu) tuK ϱu56殒ތ@7:n}ὊE1 h(l{SqMsX�{/ӬT`<o0ʾWl{7|uAG.SׁJ f766Cyu&l`[6Ggkby ~=qIkb gK=pM@*K4)Cz:4 tm[Zӷ=YZ@? U+vmF 1?ﮀyԍJhF>t XyqS]ùgӺ@,_+PΉS1]E)Èח�YPԽkM_]o\Bs*bzH[g}Ki?]m]ϷM)K#�<ooP ɦ߫ sˮrk5;t=Ȅ[+^aO<FCK7zS@)~jӼxr#@y>`QcssY<! fsHB9ĝ*@BϭKC%p]s)UGI¬$>,G!4a~3%%_ 3RNmi⒆?,�=33Bl^F3wvUY暏^)HGܚ2%}~a �YAE,i1ܕˎB,='b]˶jny~@(oz_2%?D&]>e}>Yeuu7r>b$S0 4oQz}l ƱHލI]idGm/֝Cl C1o\ERF7=>v>sA/P7<۴�qL[]N{v̳=2x\Aw/yz6ˮQyT_4:]( {Q<!"OY)*T^ſN3U16>;0C/f1;e}9%j^jd�RJԩ 41\%ߝ5EnC;ޢ9o2`${7/nrt2K sKX̥&&NW=?|3)86#"^7w+~h<bԷہ, 61fTȼkc8O5׾ȥ[b{_xqW;Z"QSa6,kj 6f|mK@O_>_'츂@@t]'L8OvFsIzj8Y:=hϖy'u[aOzbIh Es7͙_rRյ4 X9P<b#@%a̺h`%jx_z(|L݈4peb$-j#d^;9xqAG{}"ӈ˹bTDYqt lxx(JvؐNXf3dgL &Dwti P<q |, ]F Kʀ^Ö<o <}S|VU]:Ufu�ͽ9a >/Ź/^-%؛[^og}HRs659 ƧG <]>-ϮR~؋>Z^ vlf[n&+WK ,l}O=fwE 碽hv (ϵ*Q?}sYKf==<g*=/ZJ}ٵoqU~HV}͋G" W8}ʳ쭎kd7\pSܤ~{7P|)G+|?Xї;cn\һʮc?rQ[ ōt 3 ԹY@Im 5qMn0 Vt=by\} vo-ޞl ɡsߒKg\<'JoF, u@?QQ@!�ck-@w+ (+|\.k\6�qr%MnUmND|8ۆ{>�rm#W롙Iڍ!nWEsU .!nK[ oD5hlyypW 4ykdYװ'^^RENur@ǝ@=/@Z OQv@=|cy6ݭ(|.eGkj(ϖ ${9U6x6V^ybe+`SjѶGgltMp){zvF>kTɆ/8^Ѩw;AD_f;[e؇mvI.V%.:s g!vѢf~qj5/ݼdg`|ܶiE E~~ˈR5{fN6z*!>Y@OV ¡%L (Ωp̃퉩&4s]טwlų@FVT|u0Gsfs%}@* PiT|5i,|6-s[<W0A[z K剄(|j$=L*<w9v�q[� h~RF)*@GVB0>7~Vͻ+ Mr7db>e"~/^(* X];pMP3:~:ltGg>5~P}:n赯ӟFQ & I~ ,X͊^tB:_ !`SU�uںLz痁+q:p  s<~c[b=.M{!k/cnbKk@5D+9sn=҅se\Fƻ\b|b^?zHM="@MN߁>a; SV9*@,Iyy%zSI -t<E…h۰d idN-.凩siܓ5o݂$+Lc5f $̀tĵ?2~QnܡW^M8Z$5= {G? afZ`,Eѵ/\F}pޝޜ4�ąSz^`ΜwjW퐳8U/e�orw;|qZJw^4VLC\0!_ď nMSΗԗX�ŝt<8L[=mnFKB$ߛj_,ËpO{|sA[{t$cHGyfSP+pJ>(CkkmE|8f:#0-;\*jqaWW /*X_j^<4)gQ}A8P7,ʱ�zɷCh|~bĪ>k!|QVKIfWhiT?6*:&˖IiU㚿Pl|{~!^Q1rBrc֌U{ʏFR>Rn4xY|H~ ~ &W�7day'X loGfε'oh7?_{38?MpU' GZ&5E4{Xsq<݀=@“N%G7؊'՚/~1{FWA QPA4vb?�tibTyWDqe(ZNjBl)4w2dgU))ŜvYdw.s34{SۦP2q>u|A zO!qF.5PgۆU8+;:9=*[3`3AN?ьS'&hYqe/N6uޗb_8/w^` J(}wiCh5yxjLJ_ƃmepGg pd9TX)@=^ߵC< 8MqgwsػE -x `\* oBTѻw^~<#U07(=.j=ӫ*{vR`<Ҕ8b zpO;ua-ᧈvGO+W\ps:E͏BSgw|7~^\@UMߗ'r5gp/nmim@ =65`1'E5p"N.5&5mUx|FXUb9-r1ZW/܁V>HF Wr!oH{9* jv疈~}^ɗh`lE5 V6_UMbGfͼq\x?JiĒqL C.# y5,\-shm{m60\~]&ǭ?(ߏ抦^U=ƹ8s<4I6U9uy-Nߐ{ʖ7@<rѽ=&$UiUxfmAVj0Em@-i[QU*\m9 pN@qw@,E.mcYybOݚyhe�l* m)~_uSYW2 .+uA15fкπv^Ʋ�i|xZ J-cw`N|6kn, ?޽a;".ѯ` Vh,Y d5@/s:8G:!ߎtC{OhoE>Fqk*pn'.<f>IkxD޾F']uMS؋S ;~2o~xn7/|We< +lCc^qp;Pf&mURsBaw7>B3&5f̙:V|Mv?uio,B:{݁|s#z޳ 5V걑@v^ao 4/#.Թ8p ON/A%nwLHGaڎ7UUӎMs[H4giwU9ӹ7cifo<y˽3-߱'ʖ%k G?MJ"jJ[ h/i=h?\v\x=`fK}z:q;RLzk6~ #;:m17{Xh:a8UN]-M�g9S@YIV_Co?eaǖ-hX͝Yg)C'[5h^ᦺ Bxb"v�xdk+uӚh#<rM@^ /zH�]Ga NbtB=o^ ̦3GcOA~ Ⱦ֏CqZ@۱Z@# :aO}"c;۸x0wc&qjĪ$s] Y=,,9p%-JDsN>],U^a  jIE3 Ó:po5pJ1 hT]k95^ܶqB޹guP[G9_X4qn"M]( qоcfy6X HU`EhaK<*=P&1ÇG;b쵀6L{ L2۶S?"/Nanj�ߛ[W o,0+ 0J�~ B@L hHOD;x+߃~AߛHG'@t!;8Z<4Z\3hp۾/tn*vċ/q;EsCUwùxbGn8yh_5ize[(MߛUYC!rv ySy>9@;A0"R>`N+�MrE_F' ۷jO// ۿOB*cġ)w[ :S/9}jZj hPXt(ٽOm7"+0#ʏo�+-+z.'([1j3b@я�_m>ӕXdW!V wx6z�O/%a=q�ϟU(WW"~wsS|3~SAB#ƘY-x"ב>dym#0U6fсI$c|Ƭ<n*|&PK9\G׃p_ $tJ@"ZZN 沎a{j"&^&8O |�`֦Vn(%@ont/�9ty*~' r./:8KG ] ,Y߽zkP 0Բ^MvsVǚ-t =\w?i"O'w,0iq[-ad9sFpI簯Mo|Hݮ}+;@ݎ(X\齮,Ϗ5w8]t Ďڽ>B_s}t b 8hJ+\76vM>ХSjGc|tՈe@z? dI枻P{7@7ا"�A5@><`sv!֙%=2]dl/qĺ0Ui [d[ҍ`V9uUzu.@B@`ul _]^;aҁY0a>q= h[0??8seJ<Wf\kεəXYسI24é+> @ =ޙ' R("F�q {=*KKzWwrlj}@L??+%L0oa ;`Fr45uA=2;& Xv냃ZИy-2qp n؉h�jSM@^<X|3Y&qK2oV{d!Ӈs\ޥ#o4fCx<XIIG@PqWJF' C8\r>x4XP/q %:80eKZ\Q*5qReV:]Q2*zơy{ekeK‹{qcu50 zV*@֒ J4hǝ챣>@�zZ+O;]ځ.]ٜD 9|n(Dw̆N"8 `H[:҆1=@U6N>qxf 6,Qhׅ|TdOf[6DoI~[O֘;~(y,WBTI/+LklJ`A հ~34+_讲W0ٍ:�̧<?L}K@_]<9#+lGOg ve gQ@RZ; ) ϕwD\{])exw}9;`GGoRݖvq AZ=MV^fʁޏ 3ޘ+{rXkQ:B~G+˄C^ @OKFl[Ezi{6>9v6F{i#4e/;yq<}4iE3?�B3Ex|`m<(Yx:ݛloCS誆hi\@sܹPQwgfjZRV.]Mm[W/tCg(_'T_ Ļќ |  hTFb)MgX*^̉ڣ=шv0-#r .b˹'iuhNj!Á]:wG8-<,*u6GgHzDUٶX`BV!NB'n?dpn7.L@Unp_YOšk,zڦ9!A{E ^b?j_�m7ZSlpţs@dǟ0pBMu묀WFZ̵1kIGxcX뜂8Gulx;ڔ{/]]{p}`Hv8⾼Q*sSC5̽v~|_h~GnM)�>{?Mh{�1/EՀ8vN6Qi{Bm|;sP _ݍغjEsx(^,lu\%<2\z +$xF +T!Vr8-o7?m@>]a^Fcj=/{M3]ueaA)WFmc'v81Ou`i)w|8> -hyp({z3& śKϕǗq(ɽW G7RPf]d`{Yp]M7CbBr(%9^i׌(?u|RLnbl"Kofh\VAa@(2oWQ@{}o?E�y}yF[TsC_6KFn$�A"<9h˞8/n**xל7ؘ ޅ}yw{^J}B <kus7&%?3|_Z&>D�ն"bO;t^V@,}Fq)@l:yāC_JvM#@p>9=;axx`b'_>U,p&oy#-pT }rh'w߬B8‒ Xc}ZdG!0׭y#&' q͝d}wq]}k>�ugs=TBGQ1 .ou.0ݳsD:X;ˎ>?we1_0P7.]a 77z#x@aĝ= %=$t-2OF+2ܯ!GAo+-hsT�B3Nn%P^eS_gWb}ekqbNp�:ziG2 4Z}{2b<vS܁TkC=zߎMj{#m#w{lj؃CήX>;fx4E>yەxMxi֙Յ@8;E {u/(;ï:rz W.+mY6 ACZvR灴}]0OL<U0F<`<60^i[k@,ش0/iChT^Џz 3jự_ 7Ӻx5)uK"\u@.: r]ROLi}΃8wzj+γG7~kqo踖TB’Uv9c;jU:da ]P=dˍ@?$m7-@iZڏ2:0Dǁ?گcnzꁇ4 ]Eks鼆QtT~qƽ׎HJiHRuEF)QF"h)E)D2JS Evw~y5q|>w9=!چJҀ|)Uן\x,S oH؎ŕ5x5WYH.P{+!w. ބ@V WO/'iġڦx$Xf[ 1]҈Luǹ>xULYjeRkH;K}?&SE*\.WN "I!T]:hxpS>0j:G   "G6+~A7NB'<6^~^&-Δ"MȖ[ rԩz⍫ZK6$p qc%0>ye|3঴s\aSєIi̓ Msl@5Ыwx`G<?߯50_9v9V9]U9ŧQ 6|ޒa-=+ :+`}K6 d0'jN:]w`cD/&&�X %d{45<b;0M¿|z" wVlZms`NmW_| M癄: "ŦS=zi0fIN߯a? xz0y꞊)o5uF'`;FKjֽ�携eiw˛Sr.DqBk 6XcVus K^|TIw(w x�kzf]71`_ߥ#r.{Xmm{ҿSnm<CvGI?Œo0Myf2y8ER=n9U?-3Zd+4}Kת;qs ;+z(Q{kNa과s WRb X]9Qew~Ĝ 4D\%G8$W{?B92@<}e0-z&8ᵗz#@s;|1rX"Ǖ8l,ֱ@j_kxUC^s� 㖧01E'$_n9zTVCNhxd7yjpp虳ˁisu@;\w3B?T{n:`|ws_5cO |7eQQχ;[?Tީ7{ *۞4՝p#}B;7ɅAhxdWޛO}h |_CP&I[yz䆦wȯyLUsT_EV o&[#'U<3Y?v՟ᜒ%-,spmKIM _hG:J$W5 %Y KC?sG0{xVkAEz+<e{bp,hίY>B�kq^V9ZmF<uTɠ&ޢ傟w(МLMxK v�2 ՗j&ٷ/<bܣNE}hpb4m8< Hm 4د5S@7,N4*(u~W+/})kk,[߱w,4|Qt*Vn=8k&T] #,we isԟ?`~Ibײ*] Z8@:t5zZItI`~xHO%;,=<Zoݞ("^+@38IJz#9W۴H 7ɱBˮH 8}76�Yp_KVo[s #t' [x֖hJHNL]LѾẖ='Ed])7KPi3NFD@9n;%`ͅ΋]gw?뛉x*s|9uSM>2^_s+Xes;@RJ˓ ;t$j*Ɯ;kP)s7Hn߂so\Oy /Y"$m8@M9,|R٘?WƝxMf5̫am՜+H[9 1mnv ,g=cߥ+B+}"]ʖA⏎Ϙb4;k& {k"7jnI5w|Qߧ>gg T!-GJ]wjh̼?�1(m6�*mwՙ9o)sXvX%&fhay<}hTs`{ʀ\pB͌_=g&y)b&/+m7|HľPkB"OD>{+܄wl0* mg$o'!U! H57%uUJW,aSψB o g4,wpf ȩvM؂}h:#պ 3Jq0oIjfن+8'Ek'\TN?IovWJ-̱0c2߮iٍ/0d:xtX 0x3_A`|S/:>K;dYZ s^^ AHo:qp Z]&n9)a'~1SvfNx] @4/0wAu6E3!*W%k ICQ^f[vˣєBw3|ڳb6(0I+ݹ|@e`ڊU碲iPx7' 83}՜5X&<  Ͻ08e?|C_t#-z_d>hujާvا'ND�i]<(a뜨Z@]Xl *޻U\xC0 %6H4<,նǾsR%cՀӶѿ (o h^&6\?|˕hn:<y1[n ~c5[B /|7ˌo6 ު\+Дl6y aV:88Z9sT:o=ƾ? l^xO'�OnbQS 4jTɧ�!;0v:'ʤ�-d!?'&n=zyn[j;e9 LWO>9! >4F< .cN]zd�Pq/$gb1`Y+P6Q]8l7]ox| "ΏGo]q^82bl�ΌtH)P+TNJCEVJ^{4 o2$B(eHaY, T,zbcq Ms7<~;:rrǿ@ -vȨ]OdGn#0 7S;}h.q 9Ϝ>"sսaɷ~ }H0b}Pi^Hi \mҁӖM k̵98w} ->o [YG/vc+u*+8=q=W¯R3 ,6<r J69_\^|qkAy«L#^V)N5}3́*ǻ}25NM[̇/-=@?0 ,_ [9&IN'%٧gl%'eLM<DfL5pj_X�?kj|xy^3weE kq(V{ &|bg>i'+o @#zp&qX; yN:YBCc_據>7gm~pNԉ#no}`(608f?ow✆A(Qv5 ^ꥀlڪE(⦕a^:$J͛v"#k0_<@Ȑoxپ@x:o_2;\_f$)JqYZTJ[ L41,;D U qEh,͵;h)k:Z'ޟk,TyQmXBnEP" ’U{_ fz Xfek�MZǞӝW9Jycs!ヨ Y-4@TMHw5mS4➻lcLOEwtsAXz.JϠ٘=xFNt0iXwĽv(Y�,_9oY<5_}#rln7x>g?G<׵/KVf.(55Nj|Э{핆<XJg`~qUo-2^/S<GAYĵ,</DT(h|CwB:9X>>q^0~/۹~�Ο-R5[2\JbV2P;f%rwvašCCqgz7{ N+w|M ]/`wD<�YRzI1uflj[be4ꚯy[$rqoիރxbO#ֲK5^(m{z*nh8Rbo.Fߔb EnM8C@%T-yяC@Tc~^be7q5lq;[Q2^}>{J5`Hww]e{Gg'c b-Fhu_R$?y{DU_Ru~ē)] [L+Hdy^n1;{i: %K*kLU;:@҇1;F)2@tXי@?zjR -R!sF߬ĚEpí\C=w=uvm1k~w m3eSXuWI8ģqyB 6GE"{f Gɒh'@m9Z P&V!{nlK \XeRD-|OOqrVq{?4%Ew_biK9`[#BԴ E&N{bl5 š 7`16db0^>+~x3YA۱Gt79hc˾;Aqn;`Bc)�}4~=tB4kG04]ԍe_i7aoҳqaFLآQNy45Oשor2vFݩ ?tsn"˙@&Z.%6nr>q]J@ە -a~8g 6K*izݝz@<:ti׭hraz& N=Q�=-x m3 6|y�ԯZl~C.0}jb~0=,yrzk a do3�/ZIj6rE4,RsVs4r`JW^t"ğfv3p~J)b D !w-a.:N mgߵ <Fkw!{yD=v!F -'^ex~t6F:&)14)4m�1ۣg|c5h�|*E'-C *Hƹwz/cZ@~5\[e9 fe{@`; 4_mw: r̵6!`4#q׈~Ӌo񴃖8oƈ,T�Գы. VƄ3\%@ ׸@,Y'a='uk#YJ!g \8Amxo9g#|ϔVay$e6;[Ѹt`˓#ub)�ٮܺ.#4-Y.V8+t4F^/+Ĺ{lۀv[}VzvMco?zDBHԺ_GAd*by=!;8,Uz}oW"b?)@>y+Y=ߤ{@5O0/h'"u@^Bĕ }tǸQ$D(*c6<qv-dGFg s \)wM{󀮏-V^,Ԙ8POkLv3 CbJumtS ? &[Y\'d8;q/ D<5"~d R#- B'e /N\Qr^(燌5Ġz$Xr[f1O1̼PʧG&^)lGu;Y77>5|¦e'4vO. Ӎ?U8s%n/Ǒ;k'0`v�!~lS H^-q#O c d bk@6twCӧ*@7 :ݏMy㳶@*(US j3 mީg2futbV+ٽ֫B_;#V{|z';>F%ߣ1dZ?T-EUi0(;v\+ tOJW("(۴}9r={5r2Ձ%{/Qy/ ,^-gvwՑӈ m_!ACuWfw+|?ΟnFo=۟_+mǽOK4R'+ƞnL{=!S[wh=ڌ9%-߯kd ^J ?~f#ndݔ@|6ZDz/6 w76lʍ+u KP`gxòz _mY9}ry,S3B@~עD̕vz"̙ :Vany/q2W88Js>h 8fs9;>~|@o/MI2pA앝wx[,{EOzc{Lo \]6v�qzF)tZڀ޸S$5 jNbR ,z.x|uD"kx]@TJv챕L8DkۃYK^NF"NTy@1~ ŎA$DЧ߀z1\nƲ"<)ypx6{RUc@mHȜEq=4/X*`4_5aya ^L4}`D>V$7+p~ gp=.v�un O!Q`{S@wR(TO!>3kJ>v۴ /6w$6M .7nQNs?cUie`-ы<Pgn5`L(I#gtxq@ dIx\=:sR:u=H:~J |rc(s K3xxp)FjM"]KpШAlH rğmbjF+모`?:TQ6W3C �6b?oqoˬOs-unL]B: ^.bJî|$D""LNd^Wj3>y! #(�s\ticֆGwcJ)*DCB:Loy7$l<V@~qr!HvzmERH ;KڹHnxE0upx|Ga\>ćĐXdM@/"%&z<%0vjw7+R(!{aOEkn"7?}qdV{Uy?Y kK-@5^A1͏b[58 d94*M]z/9m b,SDscr4P;癚DOݗ6~OD=y)J8? *1*`.2`_h>V5o  `htjszY}[͜Gh?gPu :z1V+4O7jDv@]+Y=:"o͜+@΋F;C̅Kdr@8 z%YZD=-@<t?W~ {!2m(c"wWf#[`17<J(^y@HlW=]?!&\Dq~TбM@n{4 ]W@|ш_f t|>'5*>U;7elr^y$\ǜ/ܸ7PHePwNM4 S?�Q Me^ bK秐ͤ}%'иע4#aFevXx5&D|#{5P=6_w6# I@%7XUj>kc0&=}>.'}_{ I]-Agō{ґc H?S{}A@v.=* eėwRu>�ҵФ̊W+_8bO لGӁH|y[BVR [$ƞ]o ]{\x}53Ȩ߫.bxm󉹀x]].DOf�K/q`fD|jSFS-]柮jC;a6>,qod| ~r`S JqxG@_OЏP(SUcp$pzs)YV$&*L0g<cK1w#&__`qsRvڿg`<(OC@fU7X_╺s{2ƯW/8sKvS,<oUO ׌o }Q ( `z<}`,Gdks [wFw@- L}mطfV![gzJ<&i4"wqr=RΙq/J>XAhoag u cWXn"GJ fFXL>j_1FhLl9 Zn-'ꨚ1z7cNH>"jUonctNjN(l_s60o2ݷjF _IVeuFc?~Q�F{` S�;"ZDbz`]']A;ׯ;� Xhd+9[Jæp%d]Tr\2p?`qF 0Kn]I#Yh]'&׆͈/2wя˓ ;Z`={q39I h-"@=7mCEK^MiwÂnݘ9uOt]}hjG153\/E}i#rͣhED<O]U{X܋~\:L|&s9MK�k^$ٚ/A-'%?Cg#sF[c+qyNhwˁu/ƮHsC\iKsğ*]oXdz9�@M(謜w!/VWv휪 8~WB.,zDz@߳:ınƜ x=س5$=ld~t Pg �構ïkhnQ ^vEՆjq;UL-WPN#KwlDvvO%ө][+ 'kmVJXdE?K)DV6~Z=30Ǜ?:Po\f?G,^,X{Acx <M%˫~2GE50\}/KI^٫ TյMqw(; }3N]QԬqXl9os쀄rE*Fk`ɿ~j`(2M7cor0=SM'p qRm\* J@r҈\m$߆sN;?y4s2GO"hv+`FO7Oz�qwbzt1`=#p.To4۔Ž7swZY$++�a+Lʽ<&51^zP V>2{A+·Ǘto⹖e o^%mK־s ߳#ڿUtR 0O-߂ƋEw<KanP kF>yT?X@*P>Ž@'܂ #Nͭ|tk/ˬ?yR<CjU$l4Tԕo2#=M?1e@| Ӵ޷Ÿ@+[M]=c�T6HIN!ne W_]nTV*z)K *&460\ZhF1#=pZߛ 552y|8|On @r#k=XOmln=-[ ۹و!th;`0 .OsO(pcɮÈ2 ^井ߟu6>+r ]vď߶E@v^ >S5 s<L2N}SԺN5ꋋ[# ܑn #&eh[B앫AvȒ U^Gb8ut)Ce|/ 8}n9 0}<Fz%up,|s=oX|E/)}^>޸'26COg|y|Vjt6Yů@8eB;wN^P9X|t &/"v:!ﭻg5Fxtht _#=S@AQ`\kVhTnL۫]s=$Ŝko p0�'z~]KԢiOGoE g "/c.;Oj|Y|3۹r'ss㶾sumwc6ГKK bYr?\Ȟ,cYa gyN C{n¾xFӥrS`FMоW(pd βMy?/o/9@UVXo@4Q_ymzl^5^8Vz͹B˽_P.+(`:eze;t4}Fvϻ8ޜX @lýpas 4cٿ끚rI{*vC?5Q'{ZMo4% B6П[;DZqT+w>12kP?SQz/5ht 񎇊?zKnC=^2d/ u@82P-ɪo"s_{Uo ĬC Rd_.}4k."NO? "f ĉ.S <ề;ZkoX#xG2гl5D�BN铙R$^9Sds0k](/zlD a87!ƬSC,K@mVr¯k̽20CA}׍d _/#}~L$gWZvdm+ʁP9{F<5B61<Zqx?g3coq/Uzq"G4~춘$m2-Wb4}*G8Kqs`4O=у /D`Z6!_?}) Uf 5EѪ@gYڸ3Xpn\| w9 #?Za>=/M�m"r.cԬOcǁlpO)UV6Y507ҙ'dw|`141;nO-@MbNmi9p>X ,zIXr`V ڏs|g{a7^ t;S H`W\zy $7yFc ":_g 熿;kЙo/.aHmc@;I?_G/?~a]Bg،=¹h 5CiT>w9NGS%r(0R}؛ fFv�ڈ͕*cUAsK^(9e҈.v]쉛4 Kۨ2jkѴCȑWvG:{ kcJ*⚦A߀z[,~0 $լDZ>SbXh4P7?xޕ~Oc IExWuۮSi)7v\ysPޘC&9!Kw!|T8WY"bW_j\{{+>'N fZ>!XGj<@Y/3쓏 ;1Lu@4r8NEVgs$6D$+c7yqC<9qVC)-/ fu!X}^m]YS;$p0Zo<U\cbp00Қ). Bo̮u2^E{/u;g][ga*z{u8VsϜNKQ*]NR@,;(}~+rTBSA͋~9?Ysif.? 9}RcO2=/FPyh[Wm[`(ĥo'bEf�UU. ĶeѬnވ|h W*A%[z]:s5~<42TuJؔ !IBhꅖ]Iov:yoʐ ~ e6chVq K$שզa(\</xSg!9 ={<_?i\-R'tU@~ENN[!bau/{ 0楷O-::YTYSDܚ.ZopD[ �%vkL_txlҩ@_+lq7N<.w@(E-rG̣>Ou@=K>Fm)&^*O{S{@ʎۀ(j|9Vx/XZp$߈uq,=h# s;-@S&#xY҃ݭߋhpXM܏ͷŀ,ُ{u4Zo:ޭeػsV;{pHAدO݊'K?�Ȱl9W7qQ`,>U{w]_W B ͨ7: vɵm~撉krj«U[v&c*[}[VWcn.(OX># <TBD|K%KҫI�şSaZ:M{?�!//K܀n'p| /۫,׽h9 d- Ku^A|}>J?Hӌ8?!H.gĝ񙑛=cMXXFɰ:_?t|ڒ$>9llIσKy5@T6. v| bIe8Eyooq6qש:p']/yiĕr QC+;=ƿWO=:Tc7#Ʉ|1U|s"B+m b3$97c>}MggsVPM-~5PcupW+Ͻ" Z7�G<{߉Wۚ6P7G9emkИo-vArE[~2?a#C#? r+rFerm<,0n{yH>v3_]H_b,�،߉@)<c`[uwS> {~{Z4U=VMW`Q[l�}lۖSQv)u@mԬE+d]5s"WxCSw|ig4ui 8X<(6ԨEn4)}Rm)C{~d?08z$|Μ2!@'M#⵩%t' ;w@f"Gv9cq Mk'/xIWm(:'n"+-sw<@[jl�߿#޼Krug2椯l�g 㟕ݽ>_T{ r þ6aaCP PBV}Vzv/slv qfLz&Bß2N�ǔhdg)w$vF0q9QgbpW;V c@ff96 y"a! <q݋9nчې`߶[�Q8;P 9oWN!ݨvw hbӹ^2@-[Y &_MFG6+D!Uv˒rMzot}#a8kh%3__p$Jw5Jm8-No{]"u?|~_=) -vMF+n6[^O`kĿڕ|MJ])o�浜4|6k7g)@ܽI1Ub@: Y| ۮ1%$ ʹ(T6W؀;_^fyȖE~+B 1Sy@ۋɲnwYPCRKw,tF䖠;Ӏ4VwIY2R?�۲M'5p9k7CJoK/Ge!B_XIe+3pyh,-}Gq;v@c-1ם?|SƧŘW6.ze`q*mA9]5Z`ع׿Ƚ˫).,ǥhBzDV -#N!~e>>gQ/DӃa{x_ g/<|ٞ$}s>Ǟk"bӽڇd?<P]b>\=K()k@*P ?1g.:?c|:UF>B.16G}J볟r<�p<-8VUչ5"( Wgg*o;>U (Tak\ :M\43lݟg 4@'P(3H#~g};tD_ KIu@|ӛ:"ɾ :&ĭRElFHerrWy>~D/@4cVw5u3M5Sxŭ{}J;3m6;<7s{b4j>7zT4)N\[cJ<[2qJ#^ቘh|cgE\#Gu08ن=*&z[MoQ;I @ )K95*2ij"Z!?sA>7'<N<m/IZ|j~};)Sit'ѡ և%5D*Û)k STD~f"O ƶ@E 񁈔{khu={[*8__eA \fFGEhlxTu 0Ϛ}/eV ,�2C3֕CzSaRvWϐ{ngOW}RG-:EN"<}OoN\~qިN?xR)G,Bl ,]DλOkrl`)G]/ }(=_\U""C@MH2:MLh\uF +!Յ9Kf] ̻W~=-Oqoe/LHt.*7tfo ZsEma fJIXL ̝uw�V^wJ$S/q/Ki^ zD.s^4+ Cݫ8z=\\ׁ9%[`DqlVVue̱R`ni=Z>n =Gw5 n=da jo bJ\D,nJq:!-w^!܆ĝ| N<Z̃=O?fM)Usu/]Mɟw$[v#ST&FmTÈ ʖi/,xÿ#̉H:id%먧L) bwc//~nm0Cv7Q'{͕Yzst3PO/}  EUrޞgqx9cRMIe@tV¿C@dF+WF.D9X.u05�J|" rKQt(>Wہ<2U|N̈g{t]vOƿbϝp"*D@u߬ sgu78RO>G&?MVnK\yt@b[%Gt <q^qe?u};~.Fo[w{^;D&aA,P<{Qv(T7x!5K ߉{ &JQ&'o%?e!vmco"Sw{"A_+{-|޵UlUlE ZZCN^p�UM'WzgX`9i Cė>FC5Sܑ18lt\=T\P6{ۄ,]ЉEESZA3!yɢ= 73{O@@ɋD9Ѹ(* sVqdJckK#:AJ~ ̗^|ν=޳*Zl0@ˍ/㦢hA0Q�gW%|<Zuhgy4tpIQ +F4(_!(6R\<*basxZqiX߽l(jQO?pDc)#AknuQJ@F c4-~0U Y<V2  ?C4pnđ5C)YmM XRz!>)2z;ēsO?E ]2o%'u~}�Ci9>uǞS@g<7]˿\(.7#ׇ}{tMחqcq}Lxb܋xF}f-2uhƝG9s:v[Z{ESاiqn+25j}Sqs*v�0*4i^dyYۀ5%~U ϭ]?@lαLZY-k\cf?W/ʵ tյDOfg_b0Ro-#yΌ)t{J;- v݃YL=SUIsy<1Ɩ$׾A<n+4V6FM܎SkG"|Cמ~dyꡆ%/{m�RsVUHpFS0QntıIjϻb3{%}}ްZW;|n.C-Mx^/uV8nV`|#_{ =_SyhI_y$ve@>/z}G4}S@ҝCh_!SbwYR-Mu oW!{%ul3>c/:?7"qbZ/&mv~s,`lp[䤉[wn9Jcƌ=+W:&kY#;}5HσL>^*4jЂh!EEzܸG=[}aǗhKmǶ@7?v< i`0UW- P49HU/u<(5,P{@4瞂4{G#A̝xO?�ΜI9ܓ?JEq`, IUI\(5Ɠfو8[ XN}79ڥm<ۡ;eOH~5_uۋr˺E~/ ^1yTڜMi@D*0' )#̋W4^fyt+<Й} 曧.kmvc`њܫes?@?-2jK׿J;}TΊbU 'ΈP ūouIk5MV}j1MƴTʽs#$x7@mh)FIEphilXuňH&[q3>njH7݇c M^lqڄhn ds$ZG єa_ `lbam @^غ?ӃLYtxA?uz 2*>4@vŁ&<s[N}@U4hb K` _$ɞ$tK ,Пw.(=7@OO5]=� 3Jq.<0' Y9Sl0ZECxy-[ '/a^>HF-p?{ dԫ2,k ޗ4wAYZlee;zc@Tzue ΛBzUث4 TR`3EVٿAہ @Z9_XBe|g+ p#ʵGMg3t:y6I{ Y3 ZjGKEȭD^Bca `$۴$k]|кˌHq4̌C%[վnsGӷV?=sO@Nd"MN[|n?�;4,^4?^,$ ԙo{3g.{mUyW|J=YBT-fZ~(?I׫7:}6]I6‚K8ij' Z/_H+.(IpZ9=uL-/LUW!wokxcZ\ᕢٞ?} Ŀۮ�(~O).[ݫ2F',1U 3˔ S40=ש&I@z;záGH0'Xwr8&_)RbIy sWݛKTeJDztuY6sϸOCwoY*4Κ}f%Mygtd#6?B??4b^/Oeks;,* #o`~{KZ`#_!_vR4źgKf4u,[h&{}#CKϵ wM:@ 8 cxn_Vn@|%CI"D ȴ_��sRwDL]W_?j^Mdygf\B0 Ա8};(J/5G[yB[?5yJ#@LjCXLS;ɀ{!-(#ǒ܀0a7 ۂ༪ﹻa'~m>@D^u6<Q>zY<wje좀!ytnZxk>`\<Ľ4?Ɓj �zǕk3W!~jh:9 i% cKq@<G�FocB&|oNe~! y1!e 5g{a.x, 1/L/T^: "}'p-*f) 2@XN`1٤ FFl%^)gN5 θ%xwZ_;;*~vNi^d  7\?IMm}ba�TᬙxmFu^�u.�ʫ`\̕f_[q^:e{ L~ zogZT9! 5hrkP U_ig5͕@0'_~TҞ&$8}LuZ5f%˙9$oLLM䎪KOV-})S˱$`iэsxŹ<`,JLcI'Fr[b.:|q7YFʘaSw^5GB23q?}( ˍnuga,&o <rOg-DA?Ce70hμg^1)iOx?!&Z lo7㹫z.nW7`Ef`" X(m0q4\)g~bGlIׯUy<?Kk3oHY&>(#oź6 >qޛ~ĝq^N'- Ss[vOX&L �%cKjUsMm^0& WH뮬d?Z1 z]>"h<g-`|^BsIoO]"f`M3< XWӟю/e',WG˟iMS͎;: tH%->ϳF(pG ^qGdo!;}ye dg-:Z>8!AM@q@/*}k1Ed.oa+jw M~�f}Go2<(-ٍz'>ƀ$)qĿ9063>)m<>k¾n@y+Y5/D֟$6ͻ:" j⁘yh ܂R1⹈Vv-▯jg<ey+P Weq NDGg@는5XjL. =޲kG _,>A\FP9)M&9vmbmΟ d\фg`4lxZQg;؞E["/}ȴvw ?Sb2آmwx2)ST_`Kٳ#/'5p#g}CP^C%o3CD?S>IA}ySo?ь7qUyQ7}MNF=1ό^Gyo sE@,*u?# <SJeyO?rƜ2fz(8Ʃ+q:vaE;lrCZj]_CO*wL!f,Χy tK[>KRzb5qsSfhuz;ͺg/>vxMj rb̛wT'>* w^Irm![Aqn>?n,ƾ:9\J $xp$溮6:8ט>u ͡C]h!@ `YW�d@2Q/7uŌC@UZ5`,F5" (k^m npVPi̓*˕0',N__}xo1(v*$\'3 /Xq\i٪hwlmQ . OBӿO6=f`s]LjbifݻcV@>_b7 "Q۰ 7u@U(�ᝦx?O_ NAZ4㛧!%1,TlPmRsCFܫꢂZ�T7[;Z*oyPu;M`(pڒ"~0=ZKjT=@Kyi@|+/ĀaH{ի]"L)tYխ"qx]xnCG7 a%>Fe$ >/‹Y7HMs+ OZq y_ Ԅyr1|`sVZs}̖w�9cƍ"{YhwhۺVJ5= ?QDiBӜDˈ}ad#^avVoV){цCr=BpsKW 81׺~٧n`–3*ǡ$`WX-{*P{ň]İĿ޿!BVPgm-#q9G<БG}<91]nr6D:] ۤQ3?QoJєц,z0ny.EӻܫZ':} %2J )_ e@z.ـWzxgy Tq{/`OT"Π'܁8{⻍]~ Tգ`op<u=c䬌;/SfLSl Sf? 87XKjԪްŒ0G6#:= ~r{gS5P{llEܜ&`()}媬˛p 4=P ]#Pu rl/&׫Gz`TEWv\{wD<r/$+p/j=N%?;mȓ@M9g*P�c$_eӭ(v~56tZ|p0ʢ..@wީuYޝ-{bur߷ys|}uh 0`g c1F</mVA%3q&Z0?KFydh>րQmN.]E5+'rq?m/8 D 2+DP4! _cnN㑷@^肽pq4P+<+047q}U 4~8^\<2~ϥ{ܸQ0ع¯H''Fo\4S,Mw's_ghC[CgUp9}{#у8EfG,?sϴ'0^:s0 T;Oqw#:i6t5c@ln>o~اuH`|!4m t{t@fe{_օ S1~p{])YUyl4х~Dwi8횜Zlރ{>m=1e?iӸޒ@YRVE_y�_+h7(ҳe9f%_Ѐyē+,_]s~ ;>?ĞBswk.iĹ3s6@o[[VM/]C\Խz@ozuw5Vge|.zZ䣩[uwQ[#_[yuTe KkyKn:d fW \lѮxJ-NP'XߺX9.9Z$<N}\v '- 4Z׋t6vN}Aɽ2z"䶣jfs4RnXS"Q{�WD_u8]Zxj^?♓ߌ`aMS@+Nk|km5AJa7&xxkbx5lds# ΔC6A*/v}Zb lM@_yüb&MTi016 ِY]y2$x[g~H{�3Cߋo0cbzo|Lr -ڎv;l|D{,kC u^0/={M~aSW6 ǹAf5|zc+ 7̭) t#q1`;|NV(h(Itǹ}ER5?t)m6ώ>X> @<(RhNjߔ0 tbb:{bmudzrp0 N3`}|yTis:GPGq@9R5=tr(זm~LNWCR9@U79;?h3! ORdu8 TDk*r'ذ \]8WJRCz-h8뭦? jw@+nC\%\{|f-;gN4zwAM$ '!޳^90R~-=ߑ`T%>3RfsAT�-M)_r&7ng;'n%'Xꢩx?۫,Ф|a`,ِ>8jRՀMS>4l֮:}ymRQ@zjנHw+4ڴlH~_g3b9ݓ^RF/]<Y=j<g /^qꦄPC`.k<cu%Re9=;zaudgNAX1ϹWTQ4~ "r݅7{Dzhbۉպ0H*=x[@|ʭ m;r+c ,2OŁyPqpj5fs]u4 {#zk `+.AܻRMiᙏm@kRJV; >,"ߗ,ޞ"QbG5s~��٠.n;xc4?5hjލP쩞t\{3*>O2C@, ~=*٪rrķ\]:;.<mc Lڏc*,BQR`o>P::5֪i>Rv 7ӝ�ᰪs`߳8רCfa?׊F?lñl{#[SaOEW16᾵E鱽72 ˀFk}ғ8R dÈCZBNM|iĻex)$rn|I*qwzb( wg9 {ڥb2,2fm2{u`bz %]suwú 0w.*B֯@{~9__V4-p{=(k3 )zn�S3Sԑ#Ҽ*f`-{R [W񣙈<*O qvBSu.~W{_K)OJJ*H6MӘEko 47'P~V ܏u'Ӂ!ep*q  CxbN^U-`YlT?ūA|~ v-Wb X>ND"4iyxܷŜx=.^JFy)hur V)UjVA՘?]U$io:S 5Z[FOcN=ƎtNb ϑGI`,o}[r CCvssJy˹@Begۉ]0T JήJt v&^os0.UQ BtGYh"! p^ #wVG%Ӽ,|$v<{<s$| 2GrA-[ q?jm~~zN% Avfw{{${Tqg|]ӟ�M-뽥{2O.?낯+!Ԝ2Vޖ!p/y@!M!]hDϧV!v 7y9d_0;~~VxoM!{7}lF ėsW-<:m_Ųx#d-з~e$< ܗ^>8 V #^G:>x_u~B\U ‡yε B%ql>ܚ V40Ǎػ_| .4\XĚm"ͱ7l|HPښvjc3Bfyj5;}@ō@p#B"T{@[Z+j,<zIO�LڞI)�Q#=Vq/S䅧k0\ /!m;Ƚ4_')oOJSĖR퐚, (v_ǿh"#3s["56?F(Ώ4ׁmpo .M=v1BbK:vyܥpq>N A%Adlx#˞?Dc)Zj[ ,oZg IwpەWm{lْsz̜u\6[+:=SY@ X|~ҊL-kK_O@59=b^k?GU$qFs!Bcxx D=~(#ǣJv,`ǐѷ+rXncdvAh1S;!qwꨝss(l6]k֕ v<'ĥLj:3-5h_'l{{:4fO}% #4`\H+_}^dR灾9bpUrT"@Ө/Q5 _ŜYx�s͘'{fc3`Iiap^Ɍ) ssD`uo,s,_,Ɗ[h|έчBP\j8w6܃*WmY6! }F]ǗXmoe~,dQRTtHE WNiJuvT=߫ 7ǽ̬8d}@!1OyvM=h^�k _jgpsFFc+xq;^5 L"AXԨm~o~ {_G 4=Ӕr]@fQm N<? $Qp%h<e}|4lI|űB4%U;ٗt�cxEbHxcQ@c7�a٬k}sP)y/}suUq\k[.M`D hw9QKc":G1� On ]V_>([qG=PFoZ Bw7wei[X0oOFϙ@%Mߋ2qzy!95t{X>{n`?S<ö!ކ9Y /CK髣{:ƾ4+Y37 ӿs9 f2qZ촆(!& W8VFU@KW n=|e66H�kcURhtqP5w m<=j99 tʱJ7lhIk`-y مs7f2Al2)g@{pm+m`=S?c? j_MÐdIޢhY4iSH먱]@]S.q/_]^}Gkp/7)5y-U!/|Kk_w{v jDjMٕY\.Ɩ@\}FE!nw#? Ք$ ~g!byq緧}q*o9 !_ ^gu Nzis.<s?~/Dۚn;q}@k~K̺ew 0n8'9,suK[^[ӣ=gAK|u.y{ٸKEhZeR1<{z/3.W,"r/'3=""[; 7J°X6'/ +@adRGZ3W<Z ^*vȞKGc>6}97D yۭ,tol~Ր6!Ȫ%mnJ 'j빕]z;2AzUРuO;5/0lԊvq5q?==/<&?$ɵ5ec)ui~DHliY=0Lf<>t�&V6w/wG^gDzhnfu[:3Ns Zeꠇ;$ػoZ>T{x?4إµ.5-էufƖ^|6s*jGyp(~zʿ\6|Ty ᅬF5;Mcf?~AkFq1:zL*= oTGS[ @>e.` M]ĭ6MͩaMqĊ iY] [u5E_˜x?ZvGO"AX7?'kG{ZzoNgEاWfEp$Sn|�3Z7[T1sVcǙ0O4K<xa0O_X8(Q>T dwuW4ce2?� q<0AHp`$/sFq?\>Z3S^@tm Ҕ[Suago#8C_yG&#a}h.Z{IL�tE2oM-HҧAEWI�_o~ ̃ylAQ$? dś7k^KJuL8/pτשS,o̒|sYkMG.yb4S/wR!X+g@OE| ݢ'A(glq-h|6шv][y $vk)%@mI4^8+w0F ~*9{! ~)V&,/5st߬oq/;h�s+]/MѕЄ L'ЊB+ǭJ@M$ujx}#ȭ:1x.*<>΅?lr\ J@-l5͜.�3OA15~ Mľ:tyA@VW(]9SBhb cH=wt�)-Gou.R{,SpMsj(%n պgZ@~R+#<IK} )e`+bxgr0_kgy X,[�eˎ* Y-9/^g#Y:p<6LL6e3}PO$0d@Z(|7p� $CΕ^bS޳)h,oA1!1 WY ʣgU*t~�k^{hծojf)FM@ xֶm&8b7fa{'ف=?TA\2f5wҦx �}rƭ!@P:naX`AӃm٢:Z%tǙ&)3 ZGBL~ ~EF[7=mZHזyW gإ8g0mYNq.tz%95b__gs{a@lN;C{;Ѹ?Lyu3e) D$g1UlsV UfDφlSP!wa#E hں]yѝ4:X&r;Qp (Z 3�V'F ` ј^U Ĺ!~Mn_T`%{()Iv=7-^o7oVASB 㫎b窿 @7.j dHT98Y링tw/4J Q4c+<Ot!GsKD޿%~s3#K2Pt2/t`+x=u܌A`�WU8̪TeGܟG疪2Qm<{KוOqqL3Dh1}\,^yUEG82ӶOOdYn)_iiiwu>P{;͡薇qW@zO�yk7|\m+4M{a|\L'!’85m@/<;e9Kw-}x?X&l g_b.\l"ƼY[gWל@8ם1Ѵ7\Ą!k^&W:T\Gǿ[- ɐcNGyh %I5a@f(~]6:6hj4ʿш##.VG�p}5:+O3% v=^:�76!Iv\9 Lsm0VC2)QU xA.. ~<Y?aV!zbOX qa~gLEp~W"0zą#^Y Py,34…|Ųňg[װF?.K6TIY!W]b78=Y4$)SvM?p.~4M6}ZľY@ݙ ׭W:@~\p ΕYsE{ʳ8_4vIysZn&덈oppsQQĉ8dT|Jʛ"Ӊ,y:mnr,܏811Zؗq"7߁Y^H �W|6YNU瑻WZ+J+dvu[Yx $^U YOi.�irM)P2U-6(b^؛խw֋f$<y{ݪ z랤"n\8Z Mg8NN0s�*੭%fy5A=9ܶ-E3 []Gj H`N$s|"jPY3Ѐ︓"z_&Ta× Aݧ3غjb}iQ>UR'$CK$ظGD$CsIY4ucg Pڋ7%զEVx.S� _;5 _[xAs2xʼ\-#muv;ވ>/bhE!ڞn V'9E306Fn\yNtRK,FwG$`QqE5G_yxdu% [SΧnұM0RDUhzwFqM-J0޵�HK~5'SNfUC9,(:x*0?sJCr_2*IefdEDI4D*(*!aEH*dozxs_WX$|˂GCz,0q`}�ʠL:Sw5C@ b#fزVn+K390B%-z4*|+,+WOYyu8ğ>˻TΏxO"^þ{tr&mRFvah&[DGD]/d0Ĉ];f"^?^=KGK� @jSJy ^~g'B]@އy<ʴHhE5)@=n保3? u*>N;5h,z@?k-9X+U;gw*.[|_;`nF@T EiKG\f.@v5֗wD܃UwȻp~ް{Ld!ozzXCƽ}JhVJ7MNU\/Ty$\ͥ^%%"qҁ>YyDsq}X y[WvÈu0< <^X"gS?%{0MEƹC{6Kw`iMx'o D5kGl5XC,PNW m۩fZ;<1_Y^Oޜ%Q+~Mb4uo`"2"Kx͑šmt1եh7My8Wg}VFmJσ%hn窻;o{L|n~yw[LjЃP 7 htdW, jw}Dw-PUT.;eeJ\8?7/ν' ֻ7F0Mϩ`Se%{ _ԈsB MiZ}Aydh5떪h]8M7*t5sD FCi$::Yn2Sx‡T?Z�@7|0!+*J{{Qr/_E`~_)W9_ n!5QīTn[[wM|.3ޕx^.퉈nB20^Uz{cдE^x:{H Mz6 ,D6U:.yR&#/ln.7Q#/>F/%վe/ #]ꎿM@={|K4#@<c3\JVg@,Ka y·"mno?Ooe[v/(�b6@K!P'ܫ!Pv!a6@~AQ ˥zO< ڸPni:i%@RĿJπT91p;\Th.2$Zڀ{ܻv[0^7v:z@x;tOzr>m՛%o.ny5s0/.7JUElKSW4�ό ze@}hv4 V@0oGW�Z{ uE 2gV :x|~ FfG!6Y5ett4Rv76Xnتx3ƒ ^b.)fܫ&|V>RYD=Sg/P;v&FFUZ?>@j\l~dZ[ O^X؛ңNV}]pL[�kZ|zܴYh:xҁM,0=`; # v[o,S3{~pkk<5iv[lB?@xsyO[>P"`1mk[q;.N�Pݱ(16@.b٫ #I%^h.ۗ֘O3JsA,7zן.�ˡ?{^L;5Ŝ§;hCtq@[m %TV<SQy֛vv7@gf?" 7!{+vuow= cG/2%:eBq UUY?@pYƙE|o Y@ hl}ǩ;ҟ?tvv+]Y@s JZ:j5�%@(j~ڀsuXs-q\ ċ~"y.;ܪ^ Ю.8DYBw*vYCɈ}0{"bQTdM~jߙ1n<}B.="x<݌XER&z_{vSq/}C Y_;FnsjOډ- xt6]N~sR>?wTdK_{ 9,_.$KNbr@}|ղF�Ω >ͦ- pBgA }jٝ@]z49=k5qm M4DF)yq`>4\#؀xBF1vtâ@Pkr[}8 @=>Z}]3?G W?f;76K6C݆e2OyՑVU[PS+rˏ]9zS6چn+Rv>uWO�MF@}\7_H,fi~:Y[&;>'#Ԣ<ltp1q(ʃVN-W }=wbQSuLХ$qW0hb3烩@ddnڏtCO@ 1<gM^?Y&_Y8ɹq! &*+udb^lxE�]{ 5[b.ܮ(KBFY6ph$ KsSՃ;[(@>v eKq5vRh8&f?%�CF_PtwI 4QC>3@Wy=r[.K0h _ApK>3t q5U]~hA6!w[>c| I' lQaq,,cMe7-s!#@X7e_*6hyxB,$�kK-e;1l6[w`Nl~)}/\b-;˾ ߫im 7q.'yCl}NL# Rdo*hqq;?ez$ l+NoȆE@Y_VEZyqr5d!˺h悦kg+Ͻ, _pˇ^ n~ \ C9޽zU<ח:3(i {iU4n`O4Pj]E1Q48qMfc|sboF\{"6jKh yW OnTKIkm0<^20/?"xU7IY:|n?wʣ�C޻%YyZ{:|&4P5؟Tq"cR!@;u&ȐVWWYb9hYDq44ᾷ{=_>K!2+tW+k)13bKv i@y3M*�̽.Z_"5-l�]^xFTB]?&JWusLQ=*⹔ 6D Fhs6^bf=@\'2s,܃C[^ %"ܗ=|'"�y[!, K+|M#4sR ]x{[ {&[1g$i1_|T V֫Nf4Z={A{[6%=SjO�u~_BpOh{pV@ܴ /wށWkp~d>aNxq| 0kx V3hq[1W>ZI)t|FtuV0~[}rM/t�M*fH h!OZ8d|w�ؖRHk93aH-K!V�j]+ ~r I=SNٯ?1ƞQs14 ̈́qej ͘y]Áhhq={r*o箴E?M})^.o;->_oU2;5]va~KkKk_/̭KfzV)rݿ4cShK=X?}mreD;Ƴn@t*U/Oz ^N"kIxnp!|u@2$o.s�ϵܧV<b)6LĆ4݈&8͘H#S#oz>>`gᇧ+Kr@3O� I@\z~rN._MOߪ]:Y (1q<; �cfمҸH:*%WXby a4j6@dA_P٭2wS,W>!I@^&ҨfL]mÜa<&P6o88wf.*~Eܧ|@nWE>!o/0K~BM+Ccʿc6<~Ź%6-Q{ uM^a%R4I4#e漖UfM𢡄4ĺBӏ�CȆ@L.?G ~=rh旨.] TyզSR"$ Z Kw@nIU?t9ހ=CV8rs~{!1fU;"k@sZմ]vGuJ XN�r2LTn~ũOqWWyWt*@iMSIt>Zwڳ;0ǟ8*÷�q_=y` RR8>WeC< NG": >?y2}  Lv'/ˀYK/{ x?t㇎-j՝|flC@xN~c])*7uœ=hr&~`> siqwbj&p/;5"HB}d ЗJc㾨joG~3o}8Ej?ygcn} hvorBx߽ĿH]ĭ\i( ɧf٪WW  BE_{B0vmDCZ#e)AKyu Ќ.Vh+ih̋A6-Wc3=U�Tkl\ԧ@p~\@Gѓāv~sXI%p\ڷmq5T[Ĭ5b@,i*aqW oɗM̛Ve Oz19 +lt{u<{Ey5qB6~uQ>8oкtEV  MŊ8NjEw7"]2O!;LH'1༷=!@Ä9P@oegW[tVRy[^ʋ@?hMERdtD؎~ h'`lBn5S 6!RG'ĻVP' 8C&nvbG^4ݵ;'W&r!ޫ=E0whi<KY 9t2ĉXjb]_]} GfsM}[Vtsr!Yq=ek f VɗzR 5D#],?5ֱ ;/v]})~z1FROr:Y%ɖgi@|} '-j! h&0KI*/mT uFÀS4k%P76>S@3MDܑgl 1 <dG}/ bn;`.m=wxnϗق{NtdoiC\EU1E;߮[j2wO'W_ݖ1ZJݿ9{ c _@*Vr7w9,9мWYG} s:\�U'Q Z[=HUV?Bi׈(mn~ܯ@<8hXf8]2ۢH6P" ! ,6Kü2:Ŗ>@X}}t#vm^i]m@9 Ew#wGwvM?nQ.Vt#L!J@x@|$>>qgԀش -ڔr=‡hi}G0\U�(+yhP.9~hfۻ}βe_|L=,(&C|lѽ7@B3?µsػ}>ޣզ׾%%f>`/x9ͩ+K!We!΃+o2P3$a m9"Ƒu@>3LJ|nbT:h^L P~@(b}\Y`j ^ u|F[DiiIle*萈bE\0]! U+Ckrw0/˘¢KM9`d'[|z+Ͽ6 G,š*QrȈ_eq^Lq{ݬm[>qJfPKѧ uiS}R պK#@vH-!e7aH@,UaYSp{uGH+.k~BW Q#y! ʈۣ.rg2@n,R3|֒5@LyX 4]S:Rأ$,oOY gsy~E*8:pe"߯R 8 oKRT{fo457;)){@k\b%tQ(4?oG[TN?r,܆Kg6ϗhڋ{}D ^}�uB7M;Fz9|߯7O-"l@S!5fc@r<آK[#v=,=?o8G0h2[n\ /\'/欝2w,AlM+Hi[~B^1?,h{zC/\.} $i~o[yZυ_^BDֈ9p}k`ؿ}q=gnq6�I,;m @>]]q.#ųϼ أ7n&#zDA<)r{ ꦮŘ[/!e{7*+Ȩ|ؓ}ӳ eݎOW)-�2)V%{V ngʾl-H~ t"EpNMHxA3Z3vU Ԁ}w3ꃋ3~M>Kn|޽qKG@y#9*;>UY& ̣2]n'ALљf_IwڇO_ }m ~cx o{J-eg7~HtϪOOs_͛@27^\ s;ٽ'uu>K_N0/ /O6 uR rB0W<.yD^_ 6a~<S/+0Ì؛rx.cK̀1\q6|Mm,IU3sjӷy#?UC�Η˳뽲 P!0mOw+8 kJd(_xg bxla'Al؛قfk2@dUkX .s4Efyy%Cc�Ԩjp1c!'K[q}rȢȨjp/{ =yHk]d j03EYV$􉡵8߭zwGL Ļ%qsP.S_oo,߈f߫{dҥ[ؑ!x%BG9tgv)>29T6U_rt&.ol/ 99;@Nmrހ9XdO~~yXʀXf: /u-=*>m_]M6˹ nʀH PIdz;e@[f210LZF:* ϝk.F/orG>^cIrGG7a T@kov:.ׯ_| z "ѠMuw~֠x#N<vpX!ۜ_owJq5m1w[uFЬz߿ǀ\`dQ"Ak2 nֿ[![tYI!< (yf[' cٺ@" {# Mo)@{N/\++4CZmC@mȌ=Ǽtm/\_mJ7`jɮ߱E7\ zI/F2:tBsC?b>}Aru1|ܭJ/;(^<g ӱ.%٣9Rx_4#|#̑>P`)ei1ڕ3YI.@=:léf:/[qzLH8ԇ9(!f7[i=Z#_|=YT7_ItNo!`4ΛU{/&8o7$.P{x Omyç3fK!ĕ80FK<S}@4m/Ў0FXRLOi&4/鬎9lѨ:41&i�XsUx* ]I%LoLZ-~ ,1XkT6u�2˳0#G̲ފ"WzWI4dSP[?.ۋ6o�ľ78?5: W|g! 16Yvs/76~wĞ(޸澅 w@؞sf|'wkϴSmq>O5}}wsOK`W])� X&{ )M`.9`q~[sIr$d=v69XfJFʩ{#2Us58P93ڶ|OC60ZL=GV~<16i끢&ԝ|0.ܳ/ ouF8sm_ߥ (6<|6g"]Fn#}Z(V)r%́Jg?;u <S/F?/|g!:7R %&us#<iZSS"؝ )F)ajo1?}8#nF5j-}V&=hV@|Jz-1oNMv A>\$z;c}]ofz#z>#ECc~ueV�q,Tc2|lu9u>#IU�4QIqXJHmA`q?Q9-ϱ5iy~7QN8)=HTE+]cgKću7�\VR=PD5O e&XMG\o޹F47[Jx }iǽ|y4z87iGܘ �cQ j`dzLu�Ed�bm^4݊{ۜ/~ҁOME#B(̔i@Dy˅mN:/+\rX|}K79vJ*>;Cӟ\/ʍ -7o1G #笌:lb '?fQgNhL5vV9@MݱG{>V7ñswmX:v=玤?`#tEˀΓް1qZv-!RA!,L}qMQx?e{N0鎫N~9|ACqn_s@Y {bK 樶j'?a4?mtO@,KI|?<NN:g]@x=Ğ8[}h7+SJO9@q=-)Aߛ-xumxmV^Dǹ|H30۞H {'>0l7 %yLjmz,% 7UZG[jnMߕd(B|GsbJmHR!X{bG0OnLth8J<o^+Gy8ջ|kl@NQ5 Px/@c \|/@RquX전gġn 5%x/YQr*\4ȡ50%LU#cp.ڽ[)udhuz^sߧ6?ĽP֋BдٔQO `;tFZw"{asѰ}ҫ#4J_h ᒞ TYԭ t2gb1u sN6wпq׀4s^QFG<O_EcV&7'J{{3܆J+\[{qm1f^'MW#é{Â.>@1j-q>5Ob=I>ν4/1/3Kz蠙/ �?G(wF%)ĵU2 '$`} L;PW&~Ľ>lh56Eݛoiq"9n❎$IR},ŮY7 n~]4~:4SQۗMUpɦ/�ă+R̓M ;[}ﳅ�gH|u$ W2:�o538@'ud+#HYqi|>] ֆxkDEoC8zx݅:N/")#֤f#hkmgc74uG栜H J<.lJU b'4~}{ qVw~/7<j@'ݯse-R)#w;߀=3"Z@{)7 6ヤ"=c W݃V|Uu4wo_܀37,<s}`YU y%?ӽH;䂣1!IBLZˈc-82ao~|͋1 DC0:KWE>loBsOǑtڙl6@ PF>>mň7}q+hON}=[�*~uA/P/<럵W%bV i[՝A\EWJg·{{ѝw*VsHޒ5zoO1/`Jkc0,dRFo�\:j H?^ Zh>ӛxGN n;/N]V=>f=U~۸2ySvxa(o72wˊ�e�_+ĜМn`A܍q# VGǭb #lf)= 6bPKB3>ǜ >f+P7^q�>ޝgW׭yK.7an~%T=yFw]VOBS@Y/B/0q琋K3 '\�9ޜ|˞8w基ˡ++@[U?oW9K\_0 ҷ "}ǭP.iRcTno{ٙS3@lNRx@8fLJ+Ba7P/ : YeVkJ޾ q;"d6@Y$ZO�uY)I$;҅"m@}v6m{~Ċ})Av&je+n0\ 7G5yp y98nt._k܀Ekfiywƀ<KӿONI #m@ ( L8 "w#Ω[{ x*օ91 "Z@;{~5k\WGdor?V<lZ`CJ6}]'6�89c%phvÞ,7r hE7VjdQ,]@q5]c2:BG3q@ĩW'n?{nvs`Xpsrz}@m)}�EX?񶮽 =:h;<w:tw}ш%f[ ho -}z5D@ h1&>4nѐ[ oG^U!Vx/sϳoaiڔH WS%_`S4xmӋ(`tLOX UK+ƯDo&<f*09v6F 7Sl\0ZCJK=C7x6opzlZ-qsE:3aGg:OiÉh}p_ =r\&ch]ޡZ`ިL= /p=Pނ>2y @QD`\uS Mڑ hBg"^iggOgx߼EbhnN~j5χ "ު<>[lG!NJpIĕd~@!Ir\y; Xr`e/ѩk2P'a]p<'˗/v}c?r/#xf$?�cw Es d7@тUv9Ʀ8 4z"$ hob^VgdQ_ 搬? .,蓁gEC=eYN +~ }mZf>%OƱdzW<<$$/zqӞ8J~9skhl.0=fʽ~m,HډT9ǀ> hɪ/hcQ;`lˇ!ZqnӬBs>{f9)- nxfia]'ÁM=' L}~[<Fe#&YoźOvÍ@${!9Nw=mK7Xق9Xwɗ\zOZ�y8Ou 4 -Y_x5+;Jvz. g ]ܯxw5z^{ ";~yO!HMOpi-xPM|˜3+f>)Fɥ+)r۲hbuso w(.}ĻUW_󂉈pگD(X~oqE߮,zLn$Ϲ6[ENE!*W   7/hs>�&ЏʣW)k<C]׷ÇOQ'S Z{>Uј˻pn'v?RoE&F?O'ļո]gC]hԊf0; J9Znu3o~2w*hW;nOBcŗHi!vʯMh6R>>l(SGu/9鯎=@Υ nj9K0f鏱@Hڲ,P>n̝_nkZШ s|}yˠ2zt]r4scc.9#ւl4}b .8}nY8HYB,uk96|{ЍdYE@ ~PCܟe_o9)i8]h9Z.Vauo0z`48B.B%`߈=0s1JܹےKY3\9?⹸?ֈ~j;f 6lj}*-@<5;K^_:4*uI"34O>S|=bQ߹PMf)M PiB@3Q@]=]*~a" 7KTи<H _~+>DW^$#~QJ w* i?sďC=fϒ@| :PZNRMt@c vܲD&oyeY挨ňyfarBpL{źr8%8 ho:`ZNu k)4Y͟}y9/ouH軼h+-MT#3ht}mr4QJ)ِ!Ǎ/L_#[{A !ΜYP^�nE h0\O!ܻ{JA}%_ ^3@ -H僨fe7qOVLfysY4O}0hװEmw$(J4)%MoM+im @hafc頭8'<A4, ֞)q5X*,u"{)WѲi+☭o {n~@rx�b7Nc<>ڹ<YO`J{\W^_xE< F|.2E54>up6|K>=^}ڼG'~~@bA )\)=9y?,P35C"Y@wYҵ}T1 kxi8&7</kGUQ{~y`4P+!m^0}gK#UXa> L@ owfڽRyK{i @ah,mܺ(U Y$rڍ)rhfw 0GUаAVU4PGujizUv|JAAH* @a](-d/_ya C / s%';}#0)2KV ѿC&4KFm:EK/ n+%ˁ-Wj霁4Kmh_S ԥAEhfoK؏mg+<R͕=1} J/۱G?g,b iʐA)\ {D@(/H|gA 3�;K֭Mo.E;}Āځ{@S+Eu1₀v& ?^]??TȄpz^UhVޡ\5;K=8We R"^ Rj2ko鸬D<1-_l3X[tTZa8:%عtxɖwO1O%u>ITy')[]K.L)^pn4'?D-<}ƴq6}E&;< 7<:ׅ)@!Mhn^t6nkoM`ctp<1)M<NZbX [65z*3&5bwd3^^b_`{qk bV^y&v<8<q!kN_+DŘ4Xn+٩, [q䛉d<?ZR f}ȫ ͝Fe<9q2?%�LJc}։k@R@E^t2*P}3󧃁1krRuˁoe|80Լ^Px|:~5P71O1E~p 0mޛ3 ɜ#/[&o}[MkS@ʘ._|_ƳJT.% MLWXx}?Nkx(2jkF=;rZ<??ZZ8WW'ոYސI|}{$C a/g v@@}38R3Q*-Aݘ_hN,;Rg^ @Nka^!sω'`x﹊&${8ϛ@$w^6q8˲Qgx^Ho=Ϳ/x*\ <plK uǀ`V9y"j@ʷ4Y>�{.>>UF|4ǟ0G((Ú0{]Z>{\7؟77/?yn-~zi!NGv_hWNf/gp-3&>ڧDն 3F{ ݯCl+1heUF!_SI%g Ny9YSbD^sC43^Nć Vq4[VHGs"?n}V89#Ko;{q.|)2'o(ۃ9phs)<\9}M�PpHc99X}|^ra b<qh 9⟹EsjbWL2<ZxCޕZpi׀i8 ̉TA?6دO@-vۺq'bn*^%�8>ߟyz/{WBakd{$f??g/]Nti?t6ЭWnʶPk2{J`ۻczU~U<xv5Σ?g&.anE3z㜔*e{XA@Я b:n�kwc^ J:c?ChP%?x aYu;nk+#~ E{}U` !G8N5}4+-P%ùFV1ߋ9gx4"]x"NK.p /zM{Dp�Z#t*rˈhp"ɅV4:? %$UqT|q7ĭ]%LwyJ +<|T M=7Uw(9$BōgڢvhnG[Wө*ԛ2^{*IDv)@]$#<GHIu"|:<2+#^A%HC\GbU@<2PglɃTc1qk�eoD7w.*b&f{p  o%7ͫz444w{]g VuH/t1>sMrD[= f%m8ǿ*"XčͰ2}3S u,=o ul 4ot@7v�R#ǀ}^|7|mWJoW`. @\V[EM&G3<J7*azwMYAG`& 7�aMSe nHnG"{@x|ܷW֥Y /jܦ'OM[kXo9L=<ɽ~נ=/MN)tйZol -p@!S{F�oWD-ZhL&;pC mS|'_窰\pY1@j10J4VQjYh&(=}2w\v:y�4ƭۏF,B@}:݁Wh\QRĹ*c]_0G(=FG!Q<8icwtpY:o5bJy_Y{PL[Wy?TU3Մ'sklv]nX&!CZk?ؼ';wVظ7oxާ\2d]Y^~sh:rw&-N [vQ{hN5ڂ n" v8'!Se`3ZFC)94=jW+#6%(BQ0* Bt?.KkGJs/@ډY@>qAk;V[Q o^�s.>jBÞ7zq~5-?isakVT?yReC-Ks_:R<oMu+ؒu 4e ثC^<U@*:o SXſF]"Ƿp pMFo"z?k/W;)4yW-Nr[w!bFi?B̍Fn]7Ey$"9+Z-~i.5 b:<56tnE3X>hrA,=+woVOl |~<藾 4җrhr_;17SKxlO{: pJ<;^iNj>o$g Ձ{db/9{ϛ{qm MG ;,XqoM19ȏqC@')u!͋c#}q%o͜<ͱ+iҀ<&v5Z .%@cpAg_|*\4^TjW&nS!>w%ϻ[ ~8Dښc_Ve{*9*A/8zm`85!eewcUѰ7_z+ݳW3: Ի/\N=[޴Xg$Rث­9:ͶoCb \Fs@O{^k:Y `?EҌv@)8ojA˯6[@_sO&}Lqn4F38p{隮[hb_|\Y?xjo( }^|ukS9'CĖ@o/E!7Q*wˋBAeSOB)0Ǣ]4 aMjZE\ +@.~5X'UټEُ̖[ t=)k]>[V#!K_kS`:Hܞ|[�I=ODZk70k<>;=8:4:;hmvoqI%ۤ+ܰg>v_}FSK_m�aS'Ac3Z4.ͳDg7Ȧ\+#fj-M;S_߾q@l:` d3Ԁ+^-GG-Oe>JEW-"/�& }5g�y`Z ${҇Q8梵y3fWvh0mQQ@ROhu@܋ B3Ѵ[ߕ- [) ˬ[ocϨi ĽDdw1ocZ@ׯX#n|G5S۴4seIs<ZmĦI,ݐsw sNH,zsT>oV�57 'w9lΛz> }ڷmM}+hC U⛩;ߙ@^Zz^qJg"x[ҷ{7,s7qz!YWFФ {EW{"^5 -a{{;@_cj?+HlE9;ӥ@ q٧Ղ{' P O} `�kS| ;]p-|Br*"ʂ8P"ʗzovny1w3?IrZX7e~iZ! ?}.(g `v/7MC3/I(-əC]@nyx;ߋ] \>~{4-"DE6>k[ D]'jt! _O4yZ@ݽ)܏9߁GfЯ ~A44Iz~�ހO0%\?XRCa/2r.4+g| zlDkXǰߞ~_o9vLgb?ޞ}, , -3 MV]5+{1 �A e=KLϜ�׎(~zIA. Hy#E-NaRiI{[4`4|/C%}L`O?xc+\mxw~A~w>Ew;?@ma0|BbamE<阫j[̹A�/1>W/p]q:~W�0y_=5|V*mbt4n0KkTyN^/#.TSv V7{ԠaCXW{Fm{`UXUZ RO6,WS*e6Gv/  ~U'@TUĂS08 |/-X�vꕌ\y</+ESt ҈Β ytM82m­d=sWݲ : Ce'N ֙]9԰Ob~^ڌT0lTL"x14{v٥3B@4ǔ]CwgF(}*>l^m<B /�5|@u9ث8/;6\`%}|ȭ n ᜈosH4]o SOtdM@2BPXs$>l^OץSK�6r`F'E\g)@C"֥8zᤥ!X„'8\@cO:Qŀ r ,Dz>qYv)懔uEU@=vp(KE(D=u@-y[=@?YG'{f#WqX6,}TڜK:4K}kCl~gl~b<G 9n@ Mi<|@T$ Ǖ/׋ca% |s|,Ѝ#+"n`Ei2fLd#NdL*&<ý6຤ݢOпc,@, +%t+R1xߟۼP4#;y ?7WC3ǥ]?x6Kt٠/ADR胫opGV^8A;7/}q_c?MnmsA4,XJGg�swneݾ3<.is /GnR xY4msEmBWK4k{o6X@Oҽ0& eXMV,}MHA~'m.`l(Svy\}+R 0 ThvShF۔-S@.(�@EK9yNm [Is/T!ԗ)4*B3"/k⬓ n+%aDžx.!MY4]F+O| 뀞_qTNwx_Hi_ UӘ2Ю|ͮ^G&|(a-3r2@9eCWmc`5g<@mitq5Z'W4kru8OS�CUa+H +MQ͙ܒ8GœI^r!2⭓můڝRĺ{PֲxP@/?{g |/f'76(g[a/,-ZuqJ1kL9ҷ)}v> (Ch<}P[q<As/頙^6 ֭7Ѹh;e)h'kH9n3b[7�;0knx +%54EMEׁ= XpVP :+v|!|>.MwOu 45,./~jcD) LX`/>t3t&ky@;�%3<I8u!`E7tŹՓh\#1 /1p)}>xPBM^2JpsuA\0%˪pF\n>f[KA;ʯAHcK(q 䭛Zfb&gLV PN/ѷ[x~o#GV ?hlb�!#jz^3 u:^iyaWrfݺqͿ돸"Ch+y+r?1;}8Ͻ6ƙэG$./j(r`^~ ]RY#7 j rدZҀTnX#?>;[KGmAh898,}_8-"3GtZPs'h˽ SQ1y?(HSo֟?\{~7t[P!m٠YO#I'ګ\|Q/!DDL堑.uL]^/8&Rr`_:?28uY<\#dYu]}z!;]eЎrFeO<=jof*gʚ\&tZkr>̝^{�3, C<3 Z; NB77"a-h~>R ޵5ҀTBKf/g\È㺨Vb:o/‚2TՀU(i72?f |]J]qX4Sbwu^-P+ [Kx9vmFUv@?-CՁq@^>\nHC@PbN7=H} VEG,}*7k"{ќP?]= i->c[z^G\fIN�fxg>ꮺp-};!ԭ`z-NxX۵K4YW-[)Gǁh|s|>,`cqh'VѲ>~4&>ҁ᭾ SbL)S5M;n#^=1|zQ=?ye刭"/O׀;ǝQ;0P+B\|) F)~T*=a�q6Jo87 �Siha ȵ+qo. }isz= 3zy~x.z7m^qeJ4Tgk/3uS~r1@wmUĭfc@A3 v|:>L͕%?kɐi@<t^@/[9> * &xC!h6?:bOVc: W�/k}qhhK4#9rZܽ M`rw=o7_oJ@F+~�C.z*PqyqaH?`yGjޣ4¡�sY¡v%ж \үAGIEtk+934|K.@ ~jo>�9OƤk@H|>g#_ו(K8Ujy~FVGEA Yt+k-a#-Oh7&?yo WoeascJi\t/* !G ,\zqodyLl۲x,8j@ ȗd ՛ڊ8<tb8w@M+ LɂbCrNbU| pQ=y9/q$X)^#^/<`\E/ ޴3In| / ]"u_.'f"N%Cq:qݦ@oyxIK!;YsͤY]pb4oV5\-TC+eI�>7'usOXKy4V~XϹ[4~jZ ž4TIh*ж>WK?@:4jic[  J\o bwheUL3<<ZsD"EO-\496YOϒSgx2aХ˝Q\l!צmnvftեS"5k)2 Ex3%'u1hZ2$g~#ΈQ7 ˮg-fG`>N=*)ڪP,|ĿϝeD7֒"uuICR;V`];yA55q+[ $o`xlF|b`4Q,s.b�ʖ3s@uc#ގqcR_C,Oz8`Ll* C>L,=a+- L FAa"Rkغi_-h?EKbfx3>.nn:o^5^~}vʚG@fG sheL%ok{d 0j{|1SNCs#cG{%!cRZ? I 7ߢSSgzx{}XB DYx&ohz՟'m&<)Xx⣫&#n]#s+) !kUwEn 4g60>2\UvGrO^.aowֲ3XDcњz}ߓԛuI+uT g&sN_4{4lUd1h'2Н}'ʯ~(ڳ8:toH"v%c_-s &2�rdz,LNm쵛*-Ĺult-86bn ꢴ'Whheiziwsiݹ7O0e c3W/=ΐp8cs:Qp,s=g󹩪,h93Mdہd[Rȳǣ]W!&o `Mx9̬+<' <ڿɝIηn[[t昐( h9?W >6jXn}V5ꉚ&MQѐB3iME_Wp?yޅl7؂ek篷Bsq^5x<OܳhZKiAC@jk4 kŃO4g˛ |X1 פ &dA#YedW"wFN*q˒l;_giT⮭xnrHۆ<#Ͼ낉U4YM6ۇj v dY!zr_7Wf}E<y5˂A-ܒ\vbM3|K-ͮFMeI V>Uf")@W%Zd}0ǿˀJy58R&yȥ8P-CrRnNݏZgkN/1Bɱŧ?XJ�q.e\2<ˁ\>7ge0B܏&BSCgWؕ"vMdRzAӞ]@|X9q`[ϢlubO>*$cq~=?(MD.~ù0oo"WQ.q>0W웟FM8-Բ{Q/tp?4Yٹ }{fR_M},ܼρnh5JU&�bTسu?Aiܑ=U{F8[&,O\~],W< i%sθĠ-*RY'_l -HbEښ99#{hUq jn:=$ Xuw4 ='9N \s͝rv~'5{!Њ.|7h^}gxOĜ C6)P7eT2�kguN~|;m~%('Z@?>mM}vL|*|rx1 54[l2k15N^̗Tֈҁh\%άxWU:q*bܻ�VJ=ntWft@3V/j%0Svdb\7L @I鹧O#C,6<I|s5b<MVGǾ#"9 O(f1;^"n#"?O䔮jl<=cv >> \9C ,0~/esEޞ;o0C;{X\1#nR[5pA ߞbB{x+uS hF\=�G)V dZ gi"�WFf(YVpd~QB <Sյ@lR*X:SGf2@WtÝ ˴w@oQSx%o<l Y[€7um Psq]@Gs0Bcg+N?9i=l;;-{'|q.nzlĆ+ۺ=ڽv�.=܇@ S=ۨ㄰P�˂ĉY5Υ^�N4!~ZF q _.7 F ;UO|@틳q[_ jZޒ bp .?x f?\6.o)oArׁ-9s N$mZo@xsʵj( F/N| xi>c@ quOymnˏf<V.< (S BG(|gYyo򤏉Pzkh`r]DJ0A6_g灞f=9~$[cz H[eXg?m8o4¶||f^.*gМ܆p áNk -oI /IFsOyvhm?"@q!νK4sp tu=&z1|: N̊x? .y"CAW2TDMV>FlϏb_ZZ4w:bnW9IhbNC|Zӈw*ss`͌S7~[kt`\W/?ˁvB-`? 4~ܺ!(כoeETĪ0dv< iV鸝 Z&sk5FIF_ӔQ&Y\$ !^NyRyqyx!F<2@Ƃġ/ʯ{4yͻ paħOCj9?FG+�uU<ęlwy\%+h'ǿesJ4k;"Fs;s.nXs1?:NvHaFDW/}f>͝]K>XQ[-TV|C\ߞ޼1/)5Ѽ@SF@95 *?-q8q|NE3~29{mi .+�1>hjtT^{FmJ۱|Ծl%PokQf8%i+ I�m`J++ +395sG ok[syh q˗E|OOj9Q*]o@J N~}<.z7`^6y� e / sIa%#6o ±a*y{#G S,LFy] Z[7S]zGT 2S#@q2qOf$.9q)&0ͰJ$ $|nq ,_3).{*ͺ{xLŷDg45)Ϳ}-ވwGP~kӻ3Mҁp{mxלݼ3 (IE$v σ!8/h9WYuhCVT=F8%@jg׬v2HIdVIҒ~g24)$G6 q]qewNa1YZ65s"u'vmb?7FGGld G b2Ah[߾b}-Y}nq 49h5v M;{%6zF$Q.tvER'+m[`FμM'xRevl~>PÇKM#`a6ޚ xjqKT ޻Z+J1wp=Utʹi7@_ n=k s܁۱?Y >\|!l5tƯ%!qC7pTu VZ5 1_`ͫ-4u17v-q =<F]N m:Ş0GZskAӍf1v|8&8b Fܤ-bu"hMh_Ƙ2} 裆_d^㻧X xW#@[-T+3}E[a"EpZL@g_cŦ@ N$I�tқf*yx~RR+5ȏQ7o�y?Ȑ oAӭھqTvC٣.˧1cNGCz|@WP~|󝡛3=ߍX[w/lu>X}`1VB^ګDܵD3 n0Ekz8hg}?)�!{f63xq/XG[9<m5>k7A'G1^N@ ěZYL%OlZGhZcẊH6^_ by< .׿gx>2*qX- so5@)ͨyx9o/Cw7i0To=B(-*^d qyi8'leF} k硙o\>ݿ'tsjh"K]R]Gߦz>UC/ձk[rӲ@КnCEZ;1z/{) ckR@%% Wt@3/}�rBI|%_ yxE8I7X @.I@\'UYkΫ/GtO.򛔒mߗ9 NԢߏyVb)ٗzo%HCs9MCϞYg+K5Kha@֢;W}Vy5:+*;Ngy�l68r –KZSzi~^$ ?]pY3-ώ|h0ZupJE.~yq;??8Eo:\tuC; 6 W4-[,G2^A;�"@XKam:1Y$*_ wnw`>9 Xp~T^cxgq/uW�Z] wy{7d/5@KT<+޸{hlL4wzrλ]oԶh.чqhnBAZӏmy|s:+�Tk"mx*k=<|Ys𾘌o0a׿d7Ŕw)Xw=`:o?DO=tU9O]b!�H|KtW9G[Gsk_nʵFM_pxbِE[!/P=¬ʞOڎ} Ԫ@-"^yWxpϟ2js'o6*AԠϢւ{+ Lb_xPf=hKFB4+<>\.ݣ�)>ك8·]{h'P?6= G!<PNsTvWv#ěXznbWm(3Fsw4||?;r$QP-ȗgVݧ�rdUTK_g;[ v]kwxk@Wƕ hꅆydy4ig/ߩh s!I9e̩-0wT+@'?_A 8GAH~q786n2C3uĜXSRn-ȳ;X\y{]5MߋK*D̸ g(}-rO'FZ@}hp65X+TՁ'_ B :q$.}0%˭|oJﷺq3ɬ/>|<ʮ"O @kiXe�@=c8m6/@yOEc?qg*sWxAskGEE񬔻2ѷ<*Qc,Nƥ0wzg籏8dEY{7D5Ş�Y~I`e8 ?9H�a:{|;mj]<rͶsW]u># T&}' <vef7>-N(#_%JJMx1%*Jw?a9m@[J mmw\aRE ^Fssb @wZ#yAbB\ >~XY;by*#!_ǣ˾-Rb:qH_jT;zGC g frT;)/DO HwֽVvʊK3 m'Ͼ~Y1+f6M~f#c]Y3"ێo^x2=2@w4eմ褭5C<x_ 6O NrbkJ/^[U�;&=@ӌ̱:KySEs_Y|CoC쨄^x?&jۜM/8|8}vU5O AĽrVo}0^[}=(ɉk^{:ED37 Z<Ǣs@3=+{@IH}ZC[@L\C dfqE^I~n|> JY凌04<f)) ǿߺU ̫צ&N!n` g'D3wZ~YPq9Kw)z{rx!%.%qn*Bqx[!h&HA6 %a0o=A;=MP =qO9]>E[dw' 7}lWBsS>x1i0ئT/4sEo.b<):<Ar#D"4m>$΋G,R'8KO.NV{+o:�JrIO"{\f=us�2ԫWQtTa {R$J)$+!mBVTRIV*R!ٙE IDCEV^gWOxs_:94*' "NuMyw:}Gƞ30'x7`=6 @2|1>XHA[I=G3&<+ƵM םqcbd<ķ)Աw9sz7َ/_D\T寻 UZhΥӉֈ}JP>L܀k zJ>u3Ls33h˜-Q{MrbwC%D7"^ǔԉD4@&Lm׏fN;x]ĺ;?0>̟ bqV+J؄hGY&~| (H{{8YL{ ^m B [O5?Lw5bytNT\MCW=> H<M(0䝊3J`S1C|B**o NUxnll_lzEx˵?=b^('-^ǽpYy h*sG|d<bBSq y�ȉ݁<Ƶ:G*/7GCh0x͋yO [%0nww,t'VhdqsqO.*D!@z_? ^3GRVv3a>Zhsh¨0}?w|VGvtG’޴#kPVv YX:hK*v_נI :$!wKf%}8�qh09Wr<ON͸z* '@:Q_oz&4SP0'=t#ЄZ8{e>?ׅF\…)kBIaOO7՜D,\/\yhݛ xNl,R["؛f9ߚ Mb>ujn0& h )huDž^+y4.Q[{@}fdr @s{3Y>tڋ+TA! H˪~sZef.6zۈ}dU_kǯ:{ȵe-Y#2 XeX[o?zg|kewą$/\s'}{Z;"ֵ-DqCW̫ǯ}xd*]`n9}lK*.c&u{QrXef(ѽρ)&nMBut`h}Ir~nŽ͐)׃g]̮]{֘%PHĭ][]}Pv/NJ3!㽄V&g£~Ew!>s?W-m~2+GRe.u'M1 Uzfy:}lJ$R:@Kxc=ط,/?" X wnl B\>ĺtGہ3,|([}> ̂B<&o>E?AheOߡx}<\-߯ >w6:(!`d,X�@ _5撚e+jf'q�9 W2;!Üy[˱GJt`Zr 1WéU:4o7Iꏍ'4=z_y b9gӕ56iIE.t"aXK@Z#t{Y= 9%ERYQ^U{::qV@$?jHṏd�ޝִrR<+>Vǁ %z'@q;‘Tz5-P+c/o\b<z͛=u 4ET|.T̹!4}&?~ <wڠ@9] =Uj] @QC;?3qb)7vU &bT_L͉ش"[y 0{u*]^E i_++뱸pimuWjk[eEy`ou? syb 4-(z%M@b_i�DC#)QJz\=/z_Tqe[a+m6Y|UH&`J/4eγߊw4:W ̒oyj \{–AP=#Zԧ-H[hW;)&oD+s5C |be"^;ݏ_o &9~gCl4YV3n>fEE�1nM<bl,tƾPSB>*:�-'J1+o۷6, .kRrks[nCOa)3T*%̝E1w)'UţsَˣCH{<?jMOuE4v V. ^/D%Cܿ'ʦ %08{)kk@^z#L5+Msu@cyq Z=&{Z$z]ur&w0<UT@l+F b{7Ec/@6,]yYsojR?UҀ߯?}z:4-' v]z68}HM9ZJz$:iFG#3#sChCTÈ8]{J P?+DH h͇wFSz/i=(U 1rZ_B\-wE5aGd`H_ެwz`6h^}~UkRuig3. -g~*_7v84yiq5n W#b ucZ\6Gn ĭCFK:̿ȝ:W�,­dm% !~a9фsXhKc |j;_M-7ܹP Fgh3~)4e?wS1i|YF5RtA݋7�T5fL m],X:Wr KR|l-)Vr WA@؟ kAW\:fJ*F9eo Ok/ 늭{P͙TTxĻ5*{ُNuhvp-]K@O8Q 8[= 3F)4ozT+#./&I< SΩ0 %k wYF9sڞnۅ8x@]hԎ ^w@ U]VM镠]/*O ص, |q)LJv7a+9^lڨRxV7kx?0.ʞ]%VVثͯB؀9yVĽDĮ[V4b' IצE8;A!F$nkXk;mC' #vq9.d ;Q$QSB8 :ש_{5_S *]f@踏)}(izZ Г{\Yw >oi=@,ːo~qVa,0okAc ߓ%yf؃Y\1OU(["VCT]] 82/Zz^zuůZg4.Gk⩈{Lhеs]5 #@ռ?TWq?.[b Tyx^} MKH-hJ*>UhK$ſ@hmu<g}<Y4 C\eiWwtvM-%$\G|):7oWS~~&2`> T@U:KVH@jJzh ؆V 3m #=f#^?3xyw)zYzB| oyj|^$c~Ȅ>⟽eZ}7H tzAտ374ccX&b9"Vm@/4(;G3eKF R?<[!�XN>7xw^ *3NZcUV6@,PQ�rix`i`ÙcosUEbBٍ#o%!Hz.+n% ?;#N]s}zPdӏnf:- "g"ضq= sSKϞWFGkkO% Om) sEwpӈ+r4cͲdsWM эx>M\L`"#W :[\ȸ_%溚;^{n'bn ďK"(2j~َ�p$X@ZO5 0 r:KT�)T/ _5w3sMmǖa*Cԓ$%1[! 8oI5Ƙ\䩫>{ebS@Vt' !s.y>h&W*[y[}/I?Ss_5/{~z:^]7[4iS;D_>4,%M FT])4>Q DkTHP xj1a6mt6{&*,6`g#w]#/Q|6<i?>(^vk}GG"36y j'85%@]\s%fVh6dKx9?o@Insng+ Tpdg bٓ@3pOCi`{|D_+"UmM>[AlEWĹL9s=-Ӹ6 - 4.OCk &r9hڅ#[ W'.@,ɘJ#lTwObA ܇j*;$;Mcv"^Qor^l ^ZՄEsJP k@}r߅&Q .J_kp*N烈mG4}45 fzR- .$}IDqNIfV&ZTkU0aU{OtݘH_i)IȭdIwA VE= th?x|>3ǯ @؞f} ͩ( ooX_.ư!h$@[ucjn^>f/< hsÇ/cYo#}|fi'cE+ z_=3'hb_rTϿX{@ \O*Pj")X~c^qfvާ|zq(L$c_d$Ilm60b62p~[J/54gFY/p@(/uȒ AG>_@ 0C0:I%.:سs�rho(ʄ#kNdB-'7}mE ًp.V~%`g8???yG[@�"$}g5 Ĝ=Osܓ͡"A@?kZs^@&cqn.WBvkXMy}YSpfpn"_3'apM~{_O< Y; GÒ3ܓGۧzby8v{9hXɾ> _} ]Hm 7ƢوC@Hw7ƖwW9o?1^]a+&vB]&o�CAvys(r8$ilFC׊YwCvInFA qOJ%"g8-^Ae@]M2h5sgmV"^1Oj|UJXk�Rs d|g3yڃ/ڱ_Jah:n+=ewek:bwV?WHJ |fVrč^鸴{b%/8ƯJlG|!.1&�'q{pU*`f^]sS@kiwh=7U;ҵ7=DG?aZ{λ/&km 6<cM6i0; @ѠM y>DY _1^7ľ"W3⠬g <LZո^]8ʁxu+}h@}3o�6iy,f*B^c fG}ϣ/3WEls - o~ J;LL,4K1W[\&^h>Eb+@S6jݶvUv]m>";ʺ4R2B Mo^̌qzk9<oDf4աy"% AFTx->" ͼD<qE-vNNϥċb< "I%{>}!Or\I5=#n�;wʽ@6,!ݚ2'xQByR?`^Kͱ7E,ٷJg+@xDtIQ?նCT0k] *2}1/^2ZRxGB(];yo(n�GɭMW�ySkG.PW41_ߚhzxY}A q~/' wx' wSӸuӅY%9Dv~}Ϝ1@nKv"7|,t+ZSCPkqoOB@< o2ˬi^ّ58W.v1ق7-Ɵ <2WZ݄8\b 0z Hc[? r4,d2<Us[9KJ'./ی~տCpwŏ (R3G/&8q*.rƥcljPBhoFc?N.ͩ $OFi/s^Vzbݸ{Ą|]xw|05Ȅ1foHUhmګ颡"[DUg\ҨG ÕMaVہ`YY_7g+qz;|zfG,M8ݭx^(* lAtDl:\J/{5DJ Q؏ܱňreYM9!ki{kY]iGmܻ<OY(.`DY4Ơ.@pz9'}hZuk/O oBjkEsq.}Iz#wW82:Us7( |lLq/ܧὸ^ Q[44?Rx9aUu^i6I鏆v /41yuk`Iwnē%x_k%3Cw@mڌ|^]im@+o�3 Wzj|V3va bH'`z\\<H9å=EuEvS q9K|l #oebj D^z3d:NӮ]5|"h&OO Ho@n;u+jYEJܐ|G2͓>5ge2RO˥ UW/BLQۃ�+.ՂoTӦ;t75$%d+ d)Q;gn;|Mk?{&kop@5t=8Ʀ*ݛ3W| j7_8ƭ:qO5޹yXoL@QkUSۗҮd Qs�1w&]P8ZH !ϥp {Y :\WSoa`1hm-`�쑨:#/ؖ_˟V?ܹ !:@yQ zgu@Gέ'j #av3@) vnDy5Z{v{+<9G1d)/J� avWzxAb?[rܸ|qEoy HhF9|A#7Fg4ؤhC7Ё q *7Ζ_Wl5hĒw]r %~�4ocUGb 5K&}SiE"+#j:<jϙDMՋE3vQvoҁ/]ī.Bo߂1˥LL|!:V6S~[|L;bۈl:jc L=F 8_O?uƹ̏Ӎ4'j |-żWu%їDhn"ho%b9.;0okT@PV)g&SyH E~D`=f�bYU$=FU~o%ToQ۔2KJHDI̽.] Ԝ/^A܃'uGK;i=&8E�U,1g̜1(ۂXei>!o|1[Y~g:q΁D=+ (}a>kRbp~7ѱP\GҔu ZɓKo?)_y=BF�Bow}n A+e ߗ5w1Gφ>]P\aō{Ku8}n*USܸϣکW3RZm oj@ Zm Ms!aY`>m>!ߗ]A#3 ?c[mדnaO OZ)wםVYsT|nT7CGc\z<3яWg:nk<a:.sɭ/5̾AaAx {%yZD]hZ*2~$M 7@7n�Y`] \w]\DlЭ:kN M߀|G) !9NMenh(#c}7Cq;<afbSBt)FxLLd eyvR*f-! 3!e@LKؾ?hc+1oպCaql9$Mg,▼jȌ�·:u"ezh#4I#=,|8,>5L-@ŮYe!bUuhc'"*5t׋G͍x�`!Ba#JޗџWA%n Gc:OFX,}rݲ+ Er%ȜRJh(C#;jIݣ1aqhuabm<ĭ >>.Bqc aH'0d<:@3Y=�oXua+@SSg:Ӏvgh7e-p>j=KzgZz?LJ{JѴr߅2@T.DbY?Wτ4}|}n1B\SfOc^Bu [H%.o~9,z&6^P<fFz4vEzcp,ο'Wڐ QVwE!#r88 c 7{(Bͅ-6l?oj^: eE< N![itk0gE D's:h]e#7"ި<>/g݈L!gęxD!alWNzH퐎m_:PXxNmb}!WUt60V�?ϦpFMH q2qUϒqȣ{\\L_am}/I?{gꦒzO5�ƖX1x)sP;c/Plmxi37#~oO_Eiߑv6fkϒ{N(az#8O` u{n/x,><#VXy+G:}n]*;[J>AaVOc߅AoY&V8wlEnO.�t?Ѽdi`fTxq< \�啙N# VwA f<Wm>~X-7ЕJ67ϴz udnSBpl>thZ>b<#qͫ8--smuv}׀$x;6> DX;Rbv/.EMeYCJwLS@7}*?Bk"A0sruJe0G|eXe<o+걧nP؅_yˎ<$4*OW@SvUc|ީJ&hvrCG|_'ZB0+z!nf?-3F`*z<\ T~<,URPdd 4b Z6"^@,9+T)xxkk^~s&3%hZxn=yXmm)Q˿Te'Tcubo)rarZ _߄G`T7'}~D9l2/ՖZl|bxnjFhfѥ"{r˓vcS+aމ=zmYiWєC= kCsc~w{]x(PmSDo}B1p h^Uc}x0�;mĪM]Æ�Ή_'gԜ?rΉSLFcCwabJBԪO3Z|_W80Ǵe<@lgM?I>ܟ3c'ps^Zh#: 653gqRZgȳ7gɆ;X؈V YυQCsPq~]57ށ߆yBF@죦KB, t?dz }q7�^~�"ODKD8?g1݋r&m$u/&nI^CUs]Pkh_ki2nu*:%@t<P./ =cgUZgĒV�‰-?_LjVG nOWT_4rnO]Aoޒ ,FFnZ 7׆znjןvAl7[f TB%ޖ@Z\b{iTqP]ȯ 6 1JkWS|¨LUeAOj݉#jtvCǎH =߲͙ "Vy)_- FmhJҕ@ ꘍MG\碨#* +? ֭#GDCQ8jFn>?T]Zq(67栙ن@0<(:n@Cj?oVmy>Gݏ�,Qȸl4s{y,~#Kǁ\x H+!sw>Yo?�HK")KZu¹{w 43Sܻb20^q~{@>Z&}+ނ)sav~n \~5=)uoEfA0mS[0|dѓ#A<BnS ]߄9o978 ZUWmDzZ楿CA##\ L#y۸,>y@Kqwu轢w=<T$bnڦ#_4sůq2''AJE@X9_[7#q]Zozjs)sazyv] or]ƍo@ޝ+~a !xޓ\lm[e'J ?u}&CmL-KE)E[d؏^wM$e.-#=%+ U]@+-V1P4F;tg )㝀T{3b͙eы9z&C٤@-w31y_GǩCN@;{MQ4vE<w&쀈bJ!-+Bn81qI15irAr{"n (Wa!sO=Hü4jBdž3/"d)mU:A[pmGh"a#;Ҹs?-P'Fm]Ĭqz6>r+,Ƌ^yoxB'c@Yjoo@ohy\ D\i`3}dh2G.7ջ-"?[�qv@4_hُo~|Nϰ1/s}W*tِCEcz|R _3<Fl_9]2MN?w,f߱4ڲ{+ea5o]AŦ<}}Y g=w.s݈W&OkC0{l0^ĥA]MP)#a@;~R{ ݪK|7;�u왳yE ):=^;ATίbk' mz$oQSPReN<ي'Oj<�Z8p+ ߕ8&t͖zUyuu@tjm�BClKA;Ozm7~On]3ȅ_zZ4G̡3~)L _0jz1Uj $|_ -<AT۝|'ﰹPkJj2tfoSGaT8 N"6y$]W%co'|^·Ӂ,) g.;*b=8+<7Ṯ@lNpUR4ek=bn~%N._\ec0Oy7~X,'팵+'e~= V |?,׬ V_LL5Fב@kLZDۧ0ēZmOP~ �'Y^c%1Wڂ7wh[C00sl\K$z ĒoK穗SHpp]헫ŽrwA~`:]D¦o5i<WÜ\NĕJ\|�[Q>7 k̋ M.s1Zt#_ Pwwڂ RہѮ\ekoR7HK?T|{V٣ ׹%hн]f@y%K}ǻZC&3~ьRT^`(3 1/: KF3e@�uOxw*ƞ~9r%b{ &�5r_#]mHF�]UStԊ_~_[̪>.ЎQ~!XwlK<\hrO? (}._tGCa=V 4[?T%\z2Ush NY7=Ш㈕r}2S L{n> I  X6M ~"~"j/³APҼ+@Svoq<>֓2/E?Na[o*6rI_wR\_rIhRY{8; |mA켖sl5&uJң7FR+ʼ詶rC;>�Խo hic<Vi7t!ۢAc@xȽ h=vB'Jhvp{]W3hus`s8 t �Z4^}auoXs=JdÛ8"hZ6!\YD;z ӳ@~8s薀:X<T�A L>1(y?l1kTrAp$~4n?C<1 CxWF<EeI9A`1Χm 'EvfzV�S6LpNE,ۊć1w}1xŜHB*vy@gޣ?>R,Z48!K=$tʚz�q{u)K.>u{'�U`]xQ h"1's+ K^aK4mwFy<C&ThC/b[dqjh``%/3Z@1"3ێ�mڜ ѫ7aB;b Tykog#;Cb~x9V4jͼh&nԄ}%lhKdɐG�LgW>zX:hyџ#wʗpN<,3<q ~ʿ@�<߷"}/gܑc1Sx[݈{a8e$Eb_ݲGl 5( G\5U9}l`\U8(!\}QCSĵjz>0q^<aM ݽ@;ZzPy?Gs6Iޞ3sI};_ T޽ zf# n:$>m@ :EYO"rڟ`jf<C/;3e5jK:Ghz=7 ^\ȱ6 {o[6o7|yiєt޼ ozY ˡֱ 6 dG؃cbnoKZx 恁c@4cۇ9s/ 0:^DC{_: onyDkj_h*\-MVC8$m6#7u_!ym=ӹhƴ*|VD=ߨwμ[듅?5v)NHJ}!v%g:b7~ jW۰ltȔB  4d̕<_ C[[G/mz_}9^d}�d?bXhe'U,Pn@͈)* 3p/Bۗ!<ψdl'Q~G#T^ 2xM<40$7ZƂo:(b)(MRs< >hʼ10 *N�5 >Vy"!Eڤ3ŽdѓBQY3~Q}r$ŏymg^oJ}o&ᾒ~#w3=;/1zv17P2 T$gm/)jod7\)~-V3RxQhE|}u^}jR9 hBx_)>=؎^_/xx# @%{#]&>g) Dr=.G< ІCsaUޡB xWw#/yY6wie!BmwCݙ}ۺ F&Dj}50Aqf zW@` ػF4]֐�jP;⚲\𒹣`-ur]v hr2ǀF̸ $u:%"2۾FO#xbW{-Eì"F΂뗀vznJT܁^%~6.YSK@wlp ͞Z7?*A <0Ll7j⻾`$,3o0H�ıoHK se Gt @^4=.?<9}F۽س;oSBM~/Њ= Ԓ "? 4V!n@;?_}iWu_wIyħT y#qa*?* {|b涎9؇F]-PĤ7F|崬 /;79v,ojV2Mg z/>K3 |·}Tnc&__UbدMoa.Se7]B쁝-Z1,-a {cv([TjTjF'~"(@TwyЦCld3d (�2Z<!}.1Gj#ƫ=Jyk>afݓ{M~wR(0>s@,7Ggzז-* PZ{n=@p۾ _b�rmJE<'^w9#vDco/U@%O,qtf[(ʀ{~?J?8 Ժwe�aEx&u5y4c%R$}uUw{Ta4?q94.#6Oj7&zB m.@5?@G/#,FF*%&U!h6I/̨ A`._M4_M\i)N=/Z玡QU)%ܒl" Nƕk!="h| >{ӼywcDH <{>]7"ib] .Κ.;f<xolR Ƚ7"ynF"kZ;>Ծx/lH`~AbkaVz+LY!K@ex{ U{1όa~UI CBO W-@Su_9bdg?@_tyLs^՟|K@]mQE=k^=juQ{^>)_=ZyPBďRgL쬩@Z3ob=^~h@w^)G\�"\^M)CFs_g8ˋFƱ눣ع~oy ?Y1NKZ|ߘ.فf,;I/hTQb 4gztك@u֞Д|Jź8oɢLK۹;/_cSZw[zq(<z)} { ƪK |s*n-䙏|X@zex.c@f[�Y&MBu^<~Ws_}Z'&Kju;~-_{w$aZR3XnuH11b?7Zj(Vvn0cp4u@[OIFӶ �mn>nSJgtti_eOC7W9)ʊ<s<z'Ú eҔ[OmXz޻.W '~Eč]~gM*qIC <Gc#;{#BIq//V.|dP-R R뀱jFv Pce3 Puˬ[TX_҉i->w9pvldL@|jƾ Yn`(hMػb+tKMW2H=2.JphoR9qKtwDex8.U2}mo;mDO`T32xNUAoJg00MKJc瘸-oRjchfᒀ4 6ts~Sλ A՜QŨbc _4v1 M*/זC躝s烰RdDw#q@ f|Twf 91 d�v^Gӡ;ν|+ #@^<qoS۫> o?-5a^c`**ݺv՟ϥ={nHZ3γ+r{#ˀmaNťB1u.G_ΏlSlt{sƉ} O뫜ф&9m^^M[h&cu67g9wю?)tb̄%x_i&S jq@\zF{xJFL� )Z`3�M釷yswwtDM.Ćү+1oÈN^OS"i啺PJc=.BAyW pW܋`C^aѴH~ҋ=-͑H{X9?`7FO= @v})'ﻋfo>Ce@ q<�LImVF쥫~-VO&c?l ZνZOeGVGxsZv؅AGs%eNA& E(Sjػ#[&Pn7blj^,֚@D!ޟ6^jH#jC[ĭ~✐xwx?с}9 ?"nӳ4h|[e^[:,3kxYr[Xg @>6xQ G]K\N WKxQd~ZI#@9�9aQ Pc)bq|4FWʟ%g<nX"69C ďV2x/6ƍ|Sw#D-{-5¿]Cl3`M<?4N"^ⷫ7L!^q =_7e+'VqJ)su^a!+BօhDr<Kvv9!C֒ _U\Zb쟃.nEbS`?>9uZݽ H'C53MO!} wm)͇$ >!Mݴq y{UxN-4KUKe20w_{UPwUl g q^rj!m :ד_v4Q-q4Vh-ghcS&-Wy X]vqruY{}i(} nJ7~laG#֦ ~{@߯I7ES\jxE?F/uNo4;&Vڂ%~1;Є<{Kط9jX@KpRt0ZxαOlڝj^j}WpbRb@-y(] XϝܝTw j_5LI P6KJlGy>@t2Vwswݻ " m+9h[_i@}@K{ZmcrYZ ed=֒Kz@G;1_&Z JUO#ˁU yk 6MrGcqߕ, N8yF +=sqw,;cO<\%I@?c7+A}k0NJ.8< 2v<Eff#w?,9z-ZO^,z.|]_7g516i ZHk[co2�y3!38G+h#EwP#eeg`puE/J^Ë]�LbAݏb)~ 椲H;R=9 Ɓ!𿽾8bK%qo z?`Si*H#[}Ϣ87W+(MpBzD/PMеL"望sҀT 8b{xfNE G-ks}y'!QۃBa[ [e Ş*2z|3#}`&gbZ< է?)v{c pbxc<Ot"PZ>|owŜյ_|sHAFپ*8kf zG %w!h߹֢qvB8~v00^h [ǾZCf xeׁЖ- ^@*܉wʎ7\ 'F-FcbؖatKf՟/3B7?3Υ{uD/Jzn$>8<, AlQ(\(88? 7IBf}~mK�ٿ w�Y>~-\ PY޶@@-ˬ5MhnW[CR/[>lYHg <Sh9>اFa>Ofzx9ˢHJP>2n ؏|h<v؟>^K6юThB|K.|%A=\d~j_T:є|�S”@lUk ?Sg,86[&T8D!-Kqƻ=EE&Ͳ<j[`.yUZB諕>9<BռJ .8,jg wzE4뫲2b|4Z}:=hڎ%)ߡ?Wao-xbK>[9 6v$B 9.q9f)-6Pq}D�e1Rz%U_{S-ۺ;jKL`^?> ΢zB8?bbWe�]X.f~'^ae*m\sg15 >HO9`oЈ8eg<)A?( 6\jZ|IN*$G4' /~,_g ~ Z pTu]TǑF˺Ƅp?G_N�]P#MWgUOzYݻuqty̱ۡ Mωw{^L )h/Z4ܴhR@uk0䃯ƍ%)cھ=u[x)J{bn_D߃}ojWUB VׁH>|e2wTJ*jѸ&Y(88 +^9!"q[3b%1\K/~>)F5@.$ WWlb|=ܢ/U(܆#xuǚ[_<_ˎ< ?/*#pΪ9qYW2=\_RPv #^՞瀨ԡjq't(s [b#ӈKF h2T&,F|?n(/T0A<r̅ {,LC\L]�%О]84j#$,5r]ĿnuBFԺ�u6Gi~P~{o [ gs1RL?\bLVކZ@< m7#~T#gmZ1iR`F\|?׉G"}[Ե4ER/{6$oS2ƀX~&Vd9ǜhj s? tN@Ym;}AN~D<gS=6 !굺3^,~Kw*UX0wwsu b5.[اU|t�-M/wj\]QsY_ZqarKYx/NŽ`~f+sL쯏u-T_�#_,=G_^zօ*:9sXOT2848)>#o7#&xOakwݖzx#x/[Vb _51"m+9HVmmXDmQC k@xh}qyV"vF0yxtBQ,u}F~ywM8RzK e>k@}?IEhG}Y71Sݍcg_.klOwR@k*B>!V3 ZX4{sBM~g@ϡ@l(B7b))|4f@]oQʼnȡ-GҒ7�!5w݈z'b]w:[M- V dĽy ?θ֟AV-wE\D̋|ZUwԁwraυzو~e%0>_)Z ΧEw(oB_3^ DQQW@6 btL63PɡLhv _]|&kc#$X9u0~N_4WMW$v6n>3_E*N]o~_@䝚7g`vJD#Xo<wAc.Y ݻ2oShI?@|&KI968 #ԧ:Rއ[0O)F@mYW2e؜<o{xtC!n]ѯsB4Pw}NYj�]$FSN4`0k`35;K4AYփM@-f{{rjw edK6 8tSPu |,hpr3#,?{2D᯳S燶lmrM578U;Epz!MTGZvs+A6 o}&xhU>gn"#.|'pv`sg@Jr^ su*E#lgG} b;= d*u|׎r1G3jX1*7Wi7 u3yiNո#~\UycE1Rj0][ u' 3<r5ז@{թqhkq>|f ̚_CC^G]1yR"8`.py<d>?h64�e[{r?QV}Am+ E~B�̿~MrhEK @[ppfT.8ϖ)4B}ԩCÀ8*/K¿-}?Ajn .x.-=s;Mc?agx&°\h["RtjAђ7ۘ,0ȑ, /-X*az >wꝈOӮoB)Ѽj'c{rKG{0~)WM?a!v/[- t؉QaN"&YbclFObEF(=MQ83<i~m^:C+Ahm g-j|1jO=geO[taW;v8/:ZLZ<70:Ź;!?AjɠLnG/̟BS HTc|1$.o=Fubm(Y!f>%-R@m}QQ yD (/(^9~KQ!ʍ7%ځMw6T6yUӗN43}σ4:'j}Tt=[Ni`غ[g)nZڿjj]AO2o[=!~֧5;pOr} R6_oː9(%+̺ h~v-=T`Y:R<mY2󉚎Q K.([ʾK q'>Z`fÊgj~`>R?(]�TVySr<O)52헰^cj} $oi#Ů Gxh\r"Bؙ3#9\)ծw쵣54cqZrlD ЬÊ"˹La= o11?z9){stiޞz2JFaM ;zh_BtkI#++v?r}1/3�q|X#V!4bhY&>'#]smx8j8]BK 6.ݣR{#nkdwV7<(ߟ0|_>Y6;Q 3]4E܁+"[�}ހ)&O7(d^+{oƖ@o[(c U@A犠HF7W_h1D|w�!r\?OR٧FE9@ֱnĞθ{Sg4|gu@8:{}ŵZ6LäLĠ�u@9*5_rE7P;_EsfV,uxՄxNO|[g(Pm?ר);4u@*np[ V~Z/`L )Z=|^ą(?Acy,`TjXʈ()yPw hTkU)=4jiy1Ǿ�- A`ߤ PM[nN@D(Tx;'qF,Gn_ο�?x~'?79_w0VΞ[u0i@]9޸DS^,nU4B,|~y,S ;ot#ST`(|Hh8�@:i2Ndnoep=UXcܕ<p0v/֥ˁ>r%4Z-e-W6&vq9l 6w?3.7{B}`J?"~E@_>=l t`)c Ի ebUd;ns3P;׼W!VOҀ>,L}F?% oGE[ooM^F±-%ۀ.#FkN#% _63 U~.#[FSlt(-_cY@.۹]y2[r-@ #dq^8=3XfXrZxgb2uצhr'c|[f2rY z`7 2 ؠy>GSGzp0u? +V]tĎrC@'1<c&ˤF]:{H#c7k۱@^1Oi3wW|w.|!Ҧ͑@ȍ6.nS)oB3_oGثS5-=0>d/koP4 (ZRQ!]A#taw.|G�'Eh$0/:, j&C; VqW1Xkՠbdynmv<i _7"T>R>@2s�rRb 1 vY3krz鎷֪@ܿ9'ҋX;S#0*"K!taR=+fa�:i]�JRgޖ8մ?Q?5*kEMY +25bvԫP_<4C~`66]m XW۽嶭)P*oS@z}H\gWIrW;w1KnKsx׆cPM(׾7\pGx tpZ_U F́]i`dr"@.l7&u+ɾYxgFJViL1|_X%<3x9혈yO̭Jߗ @ԆR@'jdiQ[l?b"-Aqѣ~TRo$)q;Z4C3͂@}\@Cu㽽LBu @v_rO~̫իq~M< ~Kdw deWğj4=)xqp'$|rܟ<v)7+Cͭo@*ڛMLhGx^e!"fb ̥?}jRm 4]T|<0^qz}5Qa]?Tk`^0 je8(Q JGR 0$&#?Vђc@ΗN�71vp3ۉ2a㿧@nd L)u镊@]OAj.!3T#uwMlzd I@Uv%:u'ED@dZ֣@&Ϲy~T= j=�Y=jq@1G}`=P1Bh)v<?Ӻy_ȼtH]XԻ%˒l泩 ]@j+HBM}\ߝDƃ?6zے>wcOz-.;rj 5}\sG!oˈw@;^P2o=k�QsMhfW׎mG$ ]n|@ֿ?-̒i D}GF rEf&0i7t>BcZm7mYYk<ϞF~5ll@>jUu1Wu�"D])&b}:`5Ιw~{ .=UQù:A=92l ڀIpf&xOdPC 5= <} sFF\ 98zIxo[-+*qy@ǜ{q4tmqі:-*T_9\k_n;漣8z}3[5GFck{~>,}g^<_Vh|u׺6`w g7c2x/_﷙].Cliחu{=W{C^K_;wk@_Wvw q|%܏\^H)ә'k0?,?hrdƘ#x6yy_B4V o@Z3g y"4]kťy 5{|g컸@s=ݛF_}۶Y͉[Hק$Tӷcn<Z=d5</8Zɰ?Ntgt1eTm*Ͷ'Z@9B^Y9 Wmg9cR\# Fc~97T͞%{�{6rXh 5hv K sYŠqJtv^0~c䮼԰'E-yqd3}sܟtpeO% NM~EЖ+[j 돤/ Qw]mNݛ;֩)w7: q\fDZS{3{rRq}im <3öBg6Lvzf=j"&3!n⟸9hZQP ȁg5̱ڄg޵~GC@zBs悰ڶ"wGn9lT=C.O}ms1@^сWVC=jPB6#R52n2ЋNΜsܹ˿cyK~@{n6ж)YL+T,~gd蓢ǁ^vX%EE wg0G/x ͮjriTJӂI¼^;Xc:s/iO:Mr }sycߊ' nN1v҆Z)Ͱ;B':"N$Pw|�z-i'#tK!9(bc37Μ_?1onD@"k׷oZoJwEWۛ=x=M17W=+hO(&H v:CAuYW83C0Sv 񧳣وw<#̗KMok�C_NEܓ%*L:veuoc1>[ 5v@D^h֊݁n븲zB akl$6\]~n ߼5 \Tz)΍~]isq ᶗc75հ e{hby!Csמx)qt*?{=BgߜiUN?(j -mo <zg/ukn#nM1,`xԢ.{ۀ>"޶Єk"}P&V&8n?@2h}'NSJKe`$BHwB \rDC g̻&_qU|xs<nd<{b~b<>ڿ A;N=2<\F([!g 5V1ڌ#_ՌE_&1sS쭺D_] r؟ꗡIE~N+C,  W "^^u$/ WhDߵߜ/_[̫5пЮ]}n<X}XM.R@_1}_-~8w:e:mKhCG.@ܓI+Yh$HCc06{oq#VK<1Q3)Ui@]bUS?Łʋ,l5 s2ߎ \wa4PZ3 }t~C{bVċߙyH|l+[bZs8F?BIǞ#&c~s'{bv 4!i)oc Xrf4^[\OT2q2x'ĤkG8&c/HWU9:9wpD'l`4a'^,Y|st t_a)@ Nw qRo(^ASvlɶ7GW*3 fr鉶#Y)*OqW|ބ+TbR~ksÚ{�QqF跋,k?LZVnfǟ[fٗc?]s3֬Xl[8~?P%Mhrη@/ӛ"̶b؟j=Y ڽkےp/}zֈA_"l_ٵKJk;s2<jfMa x8ofoǾtⷹhjV̓s^F܋T=G7n!mkrU.sVY. +oPW=#vXQ~V 'n�sIϨ;jD54ܱ�s%ݼJ`gvH>¼6~]06v39S$_�*qѸJ{Gjbz%jW v`J::ŀwO_ ȟ1v}T<bmpf)Ji Z3rw-@0G +kȳ?B`Nn/ |<Z׷L ]NIc`!6Ox;U.*~eqޫEl㟽U<j޶;@`!W7]Dk,<QjAnN4}ꄀyd|5'zZ6sT�_%x(hx�h ه�+d]hk6�Qkܶw})T%/aBK=X3-;~FgTa}E?Aұx Vth+}>L4|JflmD]s03s)e %/Psǖq8ЮNGʹ@Wr$pDS;w_HQMxToYЭx|,<R! D]Z 9tgzB.WjaޔYuPCʁ\N(38af~AϚ&A@23<])PόL.mg>hsιsxW"KͺiUmg4LU{g q~ygXjُJ�#)HVdǢN\h8n!<Waڢ^`k jkkz{DH҅ @4 ;exN< ~g<q9 | ٹk M�榰Z'/RS+bMWR!FuxJJ4.S+.IRg8io@<<pc;P1lѦK@3zi:Î慀8GX^?q~_WZ5Ku@]]j3T$p,xsgl$mMB|apz?Vפ) ~mr}LQpM-Y/Q DJ9@]#_\MEww> þiu݇кZ)m~3Qځq)Q ث & _7؝U MMר$PT o?8fn 90__b{2+^.'^q# oq p?R~8 se=:h /2濭fwr ̯V&~G3yɢϏZzk?-B41417|D?__*aVЁzk$ =~]@~:ĚSh[wMKy,`]M}x~Ļ؏dMozTr�=j>,=뙂9@M+{J3A�f��w4x´ʁZE`wLG+nSXGCoRߟI퉼!h_r|i kd<upIW6_L@ zžDC$NoAgnmr`6�cFm5Xē<yO{rPĈ>Ǐ#@/*&}6F, 4!d+0vEQ {O�`= #?C2:WE\OI/A~qh9)] !H?'1ڼXiGE=6fX?uUL >xjoDlAlfǴ@_T&(aeM_8 �y]uNu&+�85֚_ YQ@lW3>(֓q A3hm�MQRhq\zQ3=GmmxhYfSyKTs@[[V.P-Za]j,6bQ3Wy3&5@ ySٿq3 )3!$ !JBҰ(#EȊm%IR-3~){_~''a⩈ݎx#}]s+%wޯ%Mq?g{6- u<3_ܖߞ &>OJ*=YU@Hg2?8bEw?9(ͼDdwEk>`Q&hDܝkscFhpv[,bߺ2e:qFDn8aܗ=Ϳ<ZqҚ֨W3Ngڮzߙ]3G#i%$Pn`d#woQ/4 _/:m.yԺ)Pp*BCLY"=g=d̳BnU#nӭkxKobp1| 8M?"Vׂ»G2q\znqFE̷WL 995vZq?Sc&_h󩚽@N8�ݰWp/X&Ҳ_!ֹgZ-@|A10<EnbG;{!c T璽찷o$1?x> v2 RHgNS-t1ЯW>R&حpX%_oVW$mtWon,rZ(tw}> ̗} up/9aO|4Xs^%r{]EE߆y`{$`cKa.wcVE۪@y*ұ (ev�]rt1s{ )C/_QzgB,p'ګ=u3D3߰qrh owls͕ax'>4y6 ~!@D<ڧۡ"LN`t> T[hV_o*ŠK){lu'9^`6M_VB?̽�ffz9^͉P{4̅aҼ8&iKfg4nY{Ďy؏㷹7Fqym~Tb)0RP|}JV0.I1@"m-=̩纕~=GcO㧶㼹a{6\}Eܬù/ӎ�% eBB|qtkn2950 5OԀ~}}bKI~4>,$͐7Q ~�¶;ا?,Zq-Q�n�ͱj7RX+Pw]�ГV(_+biD>}?zM?٦o}^?JZ]L/u D u4}5YկiNG.+h Ȗh^̅ݵ{޽|V= hӯs\E R&R Фpۘ?l4G=\/PZ*SE?"}ˁ7Mž3gQe_@I~ڡ؎_� =7'~mrP5; ^yːPӎ=6Q4~zL4AYgӶ̙3x/sߡZ`v7ѕ'x^gϽ+k�sŽ rˆB)Ω|+r M,#Q S@]ײEjM_Bnh< -vQaQ⨠Rl4mH=Gڦ&`.ROvA$ӟ>}.j=w>GgSdQVh)Mw`/"vMMΠ凍@%6ww![L0і9J?'-w!NOh+!hZ`a4f MewyNxv:ET$@^\q ۀIA;u 4<yi?t. X̵JIМXc;7m}!\0ߪXNy9qq #ɑU@,-Ysi߾DY韾蕲LAuknoqĭKnWF e"g#uNCD:|G ^ ہ)Kܿ)Q׀`ɯa@pH>T&X*qf g^&ʑhUiVe?]K0nmvi'bԜh¬{2+s[; ޟ<:ax5z=7pV 716'|]>g2H=o|mݗ@ZQi4Gwh [x8Y_ȏ{SڀVҨ gU0m{֣XdRz"T rGs7r"z yq0T 3cr mRc!,()s2xa} x (lG2a&7͞NnФ:mWCs?>Fx [qa1gC숤%5"r[M @}ȑ{/{D#'=^mJcpiQxY*?4~d@.06ˇqʀ@jE<itp1�޲O-!@[yN{9kѬKw݅U@~| %nĽpu޶y{Ƽ'U_\s7~i*s:Ќ_tL.j3I�JL!8oYP[467x*y@>`vyۜ{p$,0v̐?/f = f""by8^qPi roT~Q@o_D sEzu=Dݘu<Wck- xHUM2ēoa?W h3j@[5)c'}E >kNW9?Gι%+"͠!@?9}5yYGuu 05!:Eu rVZ�큚@eS7]pk}R:9twv;|_̅watH0 [^OomSٝ5j){ qsv1g9hfn.<q &7cIYۋ=C\.OqS։en,}Op|4<DBb nc@D StǵE;wP<,1{h!tg44+<0rƓxNzZ^΄|׏;}^M9nhh݀73.&Qt'WF3#ChaDbl(m 'ϣ1ŀu;=s[wv/ϏʞFPH_L暝ZOúd b}ޚӌ$c:boמ@R4/"UejKec5/%&_osYF>g R5)50:[__92w|`G%ɓRJhV74-UWX @22ϞDT^@`˭>gvO�>mE 3ڜk~抇c .]X@_.+gn ;>?8&6ovk'}'kł.wO| 3&j90d ̋T /~V|zV[iD.>wx O1M}:Fkдk,W�b|_B>~xپگ#qO+4M?B?N?b+|*qL>{ӇFyh x%fI:Ӛl"3á*h~Zجw1;jZ~ IecY{}i <7E)4?4w x6XQy\㚻xO;󭮝,>H$>ɋ>v@1lX~hGZ״̱Yǰ5p/k4W^dY{ hMh>usqc" վ@;0boҲRlra><>3wr 3\sg <M1xpJ(`,Kol@طavS Yم}Fv�q?t<yq(0 T@1Qy>h95wP,e{Y ;AKldslz{�s5@gzׅʵ뾳0:YK}z4h窾:n. vkW%`zD,I[B/m0}w{osDSWAnibىWGlClYK $fVy=k ̫N@nJ?[۟7>9vٸm:`=xɐ�ch(0jBSO=;<2^I6;^-G=F.xxeza/?\'[? ΪV7A`)e_IJ_*]u"ȲĤf /]d˷IqFOV~B>d t]g`NK߉yj:<;h2|C@f,'>~bj5Vb4`q^90z' 9vIo JXz&AWe9+'0s]9ku눣dۙI&1O6b k}' tױn}y"8Gt☇8s _n-Ι|-]6q=C,3`H Zˑ(bz�(qV%P@jO|εni6ܔ+_/GUW^jC708L%|q}}mh6D" (*zO͐_*@"ՃW<8.ZE[7P]tg%:$Mar? jm\zR8W.S�板yǬ7}yUľ~` *>d?`l=qW޴nʇi[&K-Oab]9G�AYψ^J]!&E) *qm1)cWm:3'hq{TB16Vü~Z=%񼟁kܽe L=qXѱed%@H exup>K\֩-ea9܏4 0֗S@7̟8_ ̫9`, <[y>.h?rWlO ukGjfWLjWy8W9ʐqjpb >;MmG2٠Yw@�97qh2 .?j71pmvY__F'5V E{;9(ʼno0ꇽu3ږs+v)bJX!UGeit s}Ձ%]yI40^߮ @|;I) ./U,y3/Zf4<+oU&b=ow: %YOM˼Iwژ2,�Pݵ$"={?@SJN˨ԿK1G7|\K;aƈ?qUv]ǓW?4{U [cس kC9pr/J�a3PgV?A3v�a,<_ۯAsEgk 6 Gqx2J� tvA._׺=и~u*E9_En,&% ں!VpO5*CMWh켜գ.M뤦zM:oFX`}}zr~$@N%H�s@RȹG>�*jE#[]jH`^$Tv$kc'|.G3N_4Ili-PxiAS+4g ߚ�&bfĽ(\4gj$ ltd򺇙:Qk$0ź\6F˹; wP{9w3#~=^|=k2=ΗB= V"/Q27 /�~^*bg)K+D9yx@uC duFm 4:jLSq9V8:2{WIl@p?T D|/gfR^w)b1ߌs7WP|:" h5]oZԼMi@3WwC4 +DŠe\ nĺc S4p~H뉦&k‚+yPsW=%:"@z>Yg/KmzY/>_E>/Z?7ĦY)ġgU/-@swcjAUE-�zuEdv3b?ٿ;[qf\&^<,B7MuKn[:\ @OYsf[E@N{toz=Fvw<cN $ow{3 ́;%x&mu1fMuwˁZ] LE7؃.Ulۄ8WlX,=H7+f.C14~4jĹxū[>/1ǝˀBGջf\M=mڣ%m8}pAXrz '{[% >^5�gFY38iάFsyz? WjH>~>~nfyKM4*zg"r-+\L3l ߩ-NKZDQ[jyP1nˢ灦M[e=uyo4W`Lf[7pm T@K cibL"n랩Xi^=bh?Bt+/^) TWbGM o}9[Pŵj4׉}bu+Efb#7V[^&ckksߥeF@+ŃV??+€Vda4qU6_ L_bgYe8dpKzY9}u>E oJ#N{ΟqĶx|,= : @d5Oƒv@ /|ǢJ@<l<5@V # ' qB$?)KLZM�sKK(+nfK<߼ T[Իf8/q:?ZTbۺbجqѲBf^qnᡡs:ch~㺓jJ~ *s75]&<Vy1 g AC"@}V ͓cQ[wKwsZĺP'bώ|X%XXMK>|Zu{gNG}橫['E4oP[:. {jGY`{B*bե )#yq,=40m߷YF_cAӭ1{7C޺1c,oٖ9 ޺P0a)C4#3Mvpobr]<Fқtq+0֛ujvxhaT5~h"q5@ʛ+xxnlj^d7[*-)Q'Rg(ӗ5)2eԃ/"iWw9x7,�oKeGÁSͱ鳭Y<<Xo-jZ<u~: ~_J]礧o7|K{M7ίLo�W|7Wo?7p LH69rv><3[j*&{AipQ7~ tA_=Eơπtb C!+A`C&+@LȟҬn,^덓;׿_C2H>b !m @o[yHmsO@(^=3D]feiat4w{㇜5@z^>]&x=k`ѠDߩçt6QӴYUFW 'ḱyq G?B,ܹ*7`ĖУ8''DJ+4b'A4&S1ޅ#[ZW7bK{MsgXl>wA FwrTr* ` v\?oJ >+UOCU/\\#ٙ:ıˡ? �cI[ٕ1Z2Ap剿hz(x8_8�J@Z06;"r!K)|X幯"irW8 VwqWǼyso?'*ˍ/uVm_7q;N9hhhwZ0 U@j"A~_c(2`O\9ՉKЌIuƻhӚq̸R4w )Nq~?�,}Q  kr2rus\Bj` ꮸ`NPwnp%yrٸ-: x}$}T:Ӏ odtn(hC d\F4.}&_ǙJ@)N}�wG߇ so$^Ȕ-% qs왪l}#*W q=69j굠 }{eHe'!9 1oW0*+l)W ΞA@? Dshď3ho$nBaĮ}x/; ՁoO\.K_57Y 6M.t_S}p\8;Z0{1 x]b/J"954tbE_;COlā>igfKV d~X�tivq-0qU:\/yZ5H"ޓ;O|O$8kر*,O Z7)5<7DcF45 :xx~XF;q.(|=[CFn @x8tw7@HvwX#NR?kV%YA`<v b7CW^F[ytT.b,C։|�앳"'"k(迏GW]zL5\AH DRb*~t5~ 0{z xVE:0[O(Q1D`Ndؿо2Q' 9,SCnjA5@MIxs(?D\O9R txXd=/~1AcN5W91TW<Fzo)@$ <L^Re^E =a*Rً^v soUG%;sIg7@iՓ|{ʼ5q?%u�]*{_#w. < k|"DkxxMȽZ4{a~&y{7bynww@[1*kϻ*x*Ԡxd0R\D�uNP$1`-ynTz|}i˳]M.l']&p_5t[T( #l_G׏P/蟳]M+Ŝ^f~fH,QB[~Io@šEYpr٪]?ЗQٛ>> &]0e uї|.<0t9tU M<[a<(lL{KQz2YfmަM7!Μ!  Gܛ/KW8K*/cIdqZ#~)XsD5_c\Gܷwv mk R[TI??813ٴKE %]Eѵh'5$3q(ij)" $&<KK}5r3\UIiHjFb%Ϋ!M& N >E- ז=22m~0-{. V͐[U/x:ߌ&+ӁOŦ\S7w #zh:GF%sľꊗ ʌ4>ڏFgT~ wY[p8:V!ιKł˞ٍދ7�jo m;zqd~~a|Ϳ Qރd_�y!7`g4b~ }@܌JG+w8(gg16 �OS)xM7g53[ri9 8q ^b`g!Jm?޵ ^Ghڪ8e'dHO_Pn \!Yr)I̷"Vc겁*<Ь 䕘Eث@y~y|9Ў,_Z ܲ#2g})rQeG<A2.EaN |uG3H#]*ad]쌛V%�&'mŞ4pv:uDj;&~;Ji]pr:.3�c63p/ty}uq=5Z`# Kw#1)DmSGۭ9`xkyX}<sQs_T^Jtx68Ě4 |k@Lrĉ-J6lNW ,V^Xzuhn+!v "ɿ29.,9:q!HV漏-4ar+U>U;p%#6(T䅟 9YX\gȗ3/^tq?p[&巠s>'\S@&V&vKCl4UMn-PFyZyP1I?О`*ȝ=!w3jϔb0i}{QW6̨#RK '�Q?ʓ&,мp] 䓁ZKН>8X-敔sJrO5ƞߑƻ${oU}fP]jv?~J=jԿ#A}{4[_D*i@ mLFǵI)UQo>W+t]ďZLǴ%zy Bok:i<_~%ח ~M@ ;}ps@n?Qh=}4E4:PZyL�PwkٲMA@7Ԧ`d; �}rgbnO�D{0О. ]`y?bE! oit+>�U12(k u@p2x26@կP>Q^{{Nb8ݽ%.>H25@^UDW}|s|~"t(MWKLGl>S!Vm6�sT{fjwilByJ&&\NCLq˃-_ 4S&uAR[P hb\-{S T/}یhVtܝ) o-�fc4fChϾԱC@t/rڡ.3yWL A!ۂ:Dž}bV[?PHEmSnQoKmJ"Ѭ{%M@.x5$ʈxu&qv.ZR$S hKֽGۏsF>nGFKdzy4xu ̯ +gǃ9u\48v WGpo\{zE\t)`p=G,_�j !9-L`ß %el&m<}]k! Y7>k =ЅEVߥjx*L<W`d>C7bS5 =Acg/y 6Z G&ʓH&/@?!Q6lc_1C#BdqH0ly_0?bKk?^=Fsp7k vw9t 1 6+8(>xs `d}>k�C:.IA|ǁ:Y4<jKOЩ[*H[c>|S>wG=wu |ƝŇ =�Tw %txwk}C775"S|qHA:k|LE#mRfK'4Wp 4dT/_.d5:�էyr͌NyƽPڠڲ-+sdk:g,틙>S>cwJh}s ] :w̶1<Fq!"OIܣn#_�^>S4Sb8 HJ?t�cC/-k?-̚> j u@[qh #4̾@ ޓ}\wF9mk"0Pa?C슢NĪ, 芼?j^JHt>ԟcYF"ŌBgc)[ WwoZd^וl! %J.8@yʛq?{Oq5}:@:% ]K>{R<_g`J 9ylLEܡ̔17t}n�r` 1b [㰏S@Sc"qhc)LV׻wyP;-o̫9ϝ d}MT$ J4Uwv$!o;#ĵs-[vԇsr ׌#A%At~H/@++QG9*(ghZZP(z=rRYhS鈕}nHS@=R|�yQ> \T;߈=[ޛ1`{r-)09'ܯZ6@F,Bsa..=&??E/KGʔD-nx>Wn 49:~+6d,�Oɜ~eˇΑCe֎ٸ'a_bׁ}iSo>7n.\Lo�mH%_�W/`o"bhW[M*RugFbXbOݔ:f_9Kp.-x|Dc/}-k.r,%H߁9 qjmˈެ@/`U[^?P>*UZ/jޏ}_?焛ma_}ʛ㹮K[F7x HmTuU6y ͙ؗ&nE쓩%1)@5T<O~@?4}X~ߘ <;&1/Zlmаj6`s0Z}g@qFڬ%ƨ '輐[|H)E8GUz`ʚ7Zf_'�1Ѣ1`qKkq%d./-aiLFDZt4T*ȥ.k_`3@Wh=NG -fWAskΌ$V ]:oO=@ݴx䍽qڮՈ]_,N<w�sΔ*{U}ۜ0s뚶 mZ;w<3z^]X L}JogKl7r:O@1&0 g|t` !clsc,7,t�Ƈ7_w)_BN[$ychVo{ANCE|bKT!ܕ[Nb3%R|饋8c{v8u#VQͲk\kiN@o~33-'gdyܦݒ$7O YR<@3};#äo6ێ/;Ӱwl( }Ÿ@hWvʼnҵhε|Q}D*!kqpZ{ O�]^<8h8#ށ@I{ @5Ɲ`tRyЀi� ` gA%@zwD:^S|%bC3s*|{' Ű/*ݝl&*]MqhfDKSj]|." N|zbb%GgJc w7X=/qC)b5[B М}C C|1§K~;@3cN x/7V֔gׯi�5!-E8 Υ5V@S9>XWuwF 8=#B?q&HwZ֧8#m4tU8ﵑƙv@n6 m|AQD#pzMuBf}|]~}V}SB "�3'U6#Ni6'0? c|8jYWDڵwF4'V|d-@L1hr OQhq푭b-3!%hӇs,4v˷@߻ EH ;C٘sWƣ&<?92FEw)_hNOrgM Moʥ{"|d.i5|o:ȗɋT`v~!33|GI/ȭ/}a.ԉRoօ-j0? εx4I~upO9R ]!n븄4's>Ou! 넠q;m! |0ilu!h9л,7MOm2?+8nJG?My+0i<<xָ˥LΟ>5f ӏEbRp E}S/C;Ċ=b6Fs y:*4;c*K̉HYos@> |w7Xd4bm?j]|zq vW{Z`>L1y 4Y!|$sçVJtֳ-\ |q2DJ =;_ 代VI^9l~/jI|a6d<bm`n yǼֺ(U?]Q|wR5{f+nzTy9a G_sgo fY) 'RmCV&S7og?T?I>a#3gyom {ۉ}-1/rt@6dV]{*c@L#8gChA+@Q8yhǓޖ_ͧX@ܧj q6}p`LVbmb (;q-[q]{�dxb:؃+n '&x~;]@sx[q ~콶PxwKL0L*u%Ѹ�e4;4׳_gqj={ڎ ~9ε`-Cmiݯ8Sbjn!nmzjZ2b{2FK(Rrb;V⡏1ٿ jD]]P`MdYƃxzH1 Tk=\>!^_wTw"_ڪд 鳶KDŽ >T= 0欜)Ҭ$(>M1*F%{3L췢%وA{@xfJ@tr5R]c] ЅoG\36Ax~v?]F~sO B^}{Q/_U炠1׷%ZT٢]@f} 3GTi@w?'FG@n�{@*x\g*}%t΋#):.Q09u{?o69g,c7~ei}̯ |۵6s4$Gw;94+4e${ O%l6@<ly#b.@OGK_Oa s}VC06x?.) ;ypLnajĩe_E3c;ͯhK6ڕR3a__c}$&G$n=-ޠ ߫y֑pbt} "DC܁j@a[7t/_Vg3 ns(rÏ_@)Ƞ;8=ڢwþ\wJ5fc-fy␋<l*dw{O5ZxTN?K ο3м%Kݔۥ.ov�q \ϿEcعsrӋ!{“y.phM?J|L#{Y)X H׹գwX*Oh9�* G8O9{5 M@Kzg.eǀuh];7 df 9CR!&^ǀMW Z@QY"rbEtGw&GW+%0cߊd~;e6lK{ [-xm3VTG e'V*>Jv#a=:e3{jNuV ᚌ@B*hp 陏yVO`&P[u݀4~Pvˉooo(_U>RcF@'!ny 4[9|;,`YI%+)h[zk6~@m[}A,E=W YEJ {H~y.L.m2j@,^!yb.W; Pß淋 Xm#$H SqǫPGRIYmWGiYοzzX@ Z?OY~8}< EB^~yo1$ZBxR$<J 7@ϬϘ׸M_k'-規?Gsx73o!b7�jlIw0BO,g�ß8ۛJB|Pu;׫K]['^�ݸ,5,Cpm>xnS|Ȕ͝.oD܇~dwMP}t4wHΞ9ZqcD#=^-ӎq14Gk^~w/!p};Zb2@8wVe޾ĥ{hg? 4ҏ{*}еa⚍L7ܚ} Ks qo33Əq-t^ z!vfN�4wfO�нFZgf28 B4y/~[U@=Wq%C .G{/`O'h.uFKψYwtpdǃ^tw٭DU9@۰FA,3_R_J׀`dW(F"\+ћ O�]HE_4[nlU1J -Ĺxl#X/b1,#bT}+P]0Ĩcس~ی{|4gD#@<C|*YSĵ^W}_hv}veGV̵:;W4-}3i8BMM]_'�ƑY҈k/8` V{%dqx*ufze!;zštV٘m nQU!rj'=6*DLbYW)zkzV`24]ׁOzIvI0}w}L%+i-i8]fHKӾhG:b-Ek|E,ז;͈F3ni50k4FAF_sC-;U^L-uKФRRs%+%1wFһYKPD#+kܲB|"Zep1={H!AĕC[j`ۜ3>g;؃_xlGlЯ , ڹ]6VGٽoD�YRka _ʾ1*{An K=i@bݿ OGIhFry iY+r:9MetsKeR~c_-co eˁȣ}E0Y&܆ib`ݺS@)8SBs\-u@3dLm`޶:ͮ?۵Ulѳ*gfoٰO<Dz @*']Xc2h^a)o}܁kضwV slnh擁UĹŘxCqjgE2?L4a)' | NǏ{uE3BOAy~(۳}J I[+VASR'י+�5![mD}̷ksSȓ2z-X O]c*5a4} ĪΩВ,`⾿tk�_  C~oۀ[Мڗ k㶧a;ӡpV>/Ċ(I9=e`Y$*^ۀ%Q|?�B'u?]A[WGNi{{wm@p.^O*|SØ7V}Ka&w!V;@o9hyas@T۩ZΝݖhܿ> w/^m -~ZNJEH.Th~H'(T.�myҞ \~/D vk<{4sy4Z3!/tYO7u?O. r\Ep8f(ȿ3O{寿@\jt(Bwׁ 0I91{n4s=]RVQH-hiŘfǯ ,oygi4tSf^4w/uS)Zc7S�KeӁ8s: Wszse@*L{S?j4tn UfPCk! 4yB(f/s,/ubw9T6O7,zME.`|^�g&={**|hIM"g͇NsZ_ `lǂ7Ͽ4W 꿤FXƞ Eܛk]M?s;cC3bV)c7Ϻ^|\mع) /tJRݍ׶i: T<bc}CX`yW{›g!֎" dc/snqƒ À> ]!&"'ܥW;X#{&2!S  @mӢAΗ~\+t$@_ WQb+?pku~4[+p^!Sh&2=J6cyg}TbiT{+S*;[\}^ W N瓝zc+Cc,J:fv͎i2!n`4-93E8φ<:U뮷KEсڊY']8sy G'<#8 h^[oħ~iz]㚚C1hVBw{{3<tG3s6) NԽv@sdq<N_wO6OFÇj$s)UG&0ư<9?nmj}P rE}"vI]h嘣El9wq8&1o٨K�ywA@Yu@|6h^yHkf9׉@x80\C|^}~nʊj2^h|k̝C)zއ/Kp5{2)*wsVE kmt؎]ڴ 枿0oKP6>7Yy>#z] DZe\<~u>Мhey#fy`܋?NѶMRr@cOu+{ $SP b |b;YNZ3 vV'(zQR{T!4}7m\͙ ҝE`~)$_S?ZaV \#LlmyM�Ec1LB&D4Xs4Kr߁Ն`CQM;;n-jZgTiP<̄ӗ|-OrO_z]L2r0(8 MQhZ|= }+ }V /ζ#oMDq|KrG;4nl>O@<V١߄ܻ$!ҽjЛؿYk. QK4SmZ_bϬ1MqOUZ@SrShP<*&9=~4@rԬXgh&% PV`&Lv4>kY9$05܇d[sIo5%z4кEb۲?%=Ӽ?8t[<ַHCw_ޣ�owK@59,WD䫯V#g&PQW,c,> dc8h6k>#=|е�joEفCݴ!ݸPm?g4o~qJLz~zb8W"7f5Rs,jnLq<M(�ҵ(Ι Fh*cϲ&Ģ_tLS<Q4qCa(FNk}Y@i' XvH&G"٫z7^ˇ$X2QV-b_|9+O!@@]L|.x;K ?#a@{Yum zvňݠG?P['`qgJY hМF:^S+]hMZ ȭهY5!,H:}Wӯ 5 4яi uNMctX;wcϯy߯ӫ߅4�@4cđȃˁ,=R 4Jbio;ZM5Mۡ=@?@54skşw >rb\ w$ Ѭ!cx`�@Dߋڄt͞z3?<&Ϗ^de 4`jD3}LU2t ͉ ,,>'x[B0WS3[U [ RS/t4# ߣyYn8fȾƽqOMvyH> ;4of`6'@֥,IqN#uK_yq"5?sf v㊬7<rmY}h !62R^8'g+卷qzu EXi\D(DGߑUc"Q,tr\npZ\ ;'e 5̙7@=sx2�CDC%xNܗ4vFe/xHV ҝW9h{TANULm0Ta.{6 ?:wUKb AaKFg Sѿgb1 # mja@jJ}ˏϕ;"֨]1C?CG8b|XZf=:0w ۣP;2fL<EMhni<~nĹQ-# |3R蒖7i#{-}Jv;v&"7;7MFb1#sÕt\=7cCkR n-<ySZ$!· O'w�I^EKlQt N {'u=lN4:!F烧`DZ%{D8o+T-XGGow\5끶pѸ0GJB7v~)sFW_j}f/WLhfn^\rN T4oД7j>zMEj%t*h/\W$<ߜ+D@?ٵ9ȁzNaR4B4VĮd9?jiN 2p}2 6?QY{,s9[&$�U{?6}rsm2|ߗ ҌXV% ÏDfʕ=8Cv va*=.ܴ):wD>w)|.] rCoB,=@=,ܠ %-/Xwys]aalZ�j]fK+Mr1k 6BޝRؓ\ZC'Jm&Ձ{<]@h'~cq$GO>Xd!؇gm3-)o9Otʥ�bZ7˱pqh;J\|ťVpMM?~e-PrfΚ{bDt49shK] d�5h~xqQ~`>Y{ (QV41{l8C8*pB@הީ '`pmR<Vc@;]G7ƹE@'t5/ {oueyA@6O~bS{a(+"?g1e;[8QVBsɀ?p 7kaX/E [}u_@ϊs@F-]5٧G^b\ ?"A aux T@Q+~E@cqbVy3Opg* JpXmr#NnCT 0 q~tlBցklۯ;4%lva5f=-UA |ΏqOT"{Uˏx_3R"?StK$shv2<7?R⁾vwkaJ C~3saXPNݵ)qb+<(bm%GW4] c~ΰ:}g;3Y')&n3:١I4),!yc~cf,b&~m@ہnѬV6rBqjd8 \#}x`8 st^ǴLeo34Qxj*4ס|Siַ =d[0!iJ8atc)|-ERx.banHx(vsocv�J~rQ4uU DcTb 1c7k&O߸aVgpm__p5=/=Rśj|%/#[}Qts.,TPy6Qn M;ώΗ~ {܁bt-,+;PzzaJdQ&);< >} T^BlFYV}_E)U@Iuru~[_SysD\h.5eRSEd9)o*V&,XD*@9 }BL<J/}<ۉf-#HCݍ!+2!GI{DK{moAw`\C?6m@Wnuo>:g8•xqy>L-x!%Ӈẅbӻ 2ޑ٦AhqH"?W=}B\݆ċήrMK4\KXfO^ˀ~ŹU:@[u`Ro 1Bui@?K@KhE[ H5 oKf8NMi]mJX�xfY{5:~y/ګno C16eAPX3mwA[*UbӬV_ 1@pz{S*̙!_q6}j�dsd^4].4ew Jrذ君eυ p]۶ Дޟ<vMPx~:bmYKЏ}X8--Vae^yЍIFSnӖ['S,?b#k\I ( C\u]Yf@k2:kUǝ7wC+*57�c_O%[+V-s Nj݀.rR,ϟYx-`^ ]-Ay9, Ć-#n}B`x/2+tD\N#pct[?NX,-)fݳ>> 6ɕrt l4~=焃s,dEgJ\cc^#ْ"a=JFqJ�w[O@Q7*k*Pw=-dҬՏi*v�?<x6f(b3{ Hu&& }2}-/O q{E ]7\{c'VZ;SA+<ūϓ[h~atExv6ۤtwS@3~/[j@4jپ @Mc|頬*q#L`[vB2)ap[bߜ=>1i!@Eh+5bnOΗʧތs@|چ~%?ԛkv-! (5' `ﮟ@tXWĪcmM|^i tȔ4@@Wq€(9 `оb;u @wz8'2س"uz鉘7/P^䳹¥Wqλ.}` ̢+`H(sU>'_C.ER)Zx_/?# s`O<B%gܗ y#o|nFS8<EPtn4R^$9kWQk@9zv?&ޓxU-X e%ܢR_-< ee]@s w{ۣm6 FcQD"]W{H3 -6<G!x^iglgp[ @[@z0K?ŒQtbua@zZ>rZB~B ucqo>4#腺*GeS,4ldٵ]3k5@Z O�=gW;}8o*^㠉E6?Cok)BSK=px6ߊ=`xU혫y~'~u{a.սˋ! 5~tצ;A@lYez6hꦕhrPjρ!F1@&+(}b3aL] (w"4/2۠0=8JGޣemUܟj7a.  U8o؎scS*b9TCo1{F/b_~=UHՏ&L m]7A3# M_ {rV<r.R@0b[>^zU-<xk]z1)pgq6S7�qTJwELmfG@[-X>~,c :rHN[Wqh+blA2Z0]<qMp~?Tڍs*cOLܹ^dJ\h@=<qMf^([z{eǀV]}ٜs͛*8*?F"^h,Hk՚9u'h_gqbU\`az-2y;8>( ki#4|Wf{v�c;oˑCxmm>]~LKW,VA3Nu@L ڮB@-{pzrٷ&acꏁ6w'Zb_@[wm붢s_"VHs;GvN|l?b_^m1B*ζxwLzcgNhv %`^vU=GzqqJ@ (tUM2_]戾:~D5XpG@V�Stbѣr ;"u-k|%MJjSg>!dkDC܆Շ@-oȂ$Ϻ&;p7'Kfm@?{uǗX+vNj}lCj[@lq:+mCAvAPm^KWZ}z{)j/ E ]m9S<bmӒ_=3ゑ@|؝?px%qymz `~L +[ԼhUdmk3SՒE@ʦZw#BPBrׁj)jGuWȫYUZ5@]L0;?@Fݹ #-_O@HW1|eD`PARSG1w׺<fUç=}4:Pp˞~ inpۋ?O{(`][`W{r>ʈ2~|kJ 4Cei)?b b m/rC ֑̬29 ٤LXy2{3R+g,4ZnOIa'~U/bN[Oy:Shv[!x+ؿ..+}U Ý}_2(*oDnK}H?Ӄ֩XKi >iȭ>aID=f >VJ+rƼg ͍Kɨ>Tv9w~nghB[s=oBSCl׷!Z^>IJJ~T hggn,`Baݘc\ @C+Rmt0?GkIw뎄=zJ*}yt0U q.U svyG\rx&;4g@ 6vϟ 0X(^^B=J] o-l 8qR{ PrULPtשJ]<q<<^tP=�tFf`3!f`q{ΏjfvP{>)\{S1g~{ĝ`d #{f Nm.~qEr;7=;zz -xHaZqD72 Sf'L]A #V x~.5MCd v4iϕx wǖ3*~`yh,:__wE.xVJ3H}`�0^g_W`T~rst{15|fqIe- 6_-7v o c(4bA;x^$jc7P88nz K$^z:Ur>2�SCY o'<>{$f(ϧ<nH#/*/rth CEfFt`%PRT_}Ӄ}Rx  2fžssL Yk#3A{ <|Eў !"ĭ&öx9]Yt'PU:^eQ?&<rsĭLJIc7d gvlc$`R[?/{ x. [[GG"e]$ OVVqj8žmN>W]6m8 wowQĒؐ球}0Xk<2Y%| >s?Xk foפ2iˈ%0k+]{3UiI*>'8'GKmXGc/Wzp�h&w>yk~Ľx5qۯ*Ccɥ!J9!L[p1{޿Osy #B=W+ulEsI-Vw$*o\~ gY?ݱTx7̿BqRn U`c-Fڑ}xd msҮޙ[.]泍tL˔O㜱 Vۃfmy .F= F/W�#g>8(:E_BOħɾϝ-hw M"괘:V 18;U {mQuWϫ2.m߫yXSO7_%y7?U뮀vɅr`*Z$bOmk4/yBy'q 3@%ňdH'-~ugλCtP?ED]~/hGo"Ns囁ƨ}܋80G܇W˩#/݀dZ @R,x# <P ε[ߣIlT 4g3C#|0yd>\ bݺ\дha[hiMlFJx}6,MImw*!25ǀ!g8A3ͯ[0_Ƴp!ڟy6LH@?] | #;b+j�=6|;^̳yjRh^O}hU qZa4-мFi}dsQn';^%m~Qo֝W�f㗫}wQ5'q9h%5 �!vs纔ye hv"`S@(Z1,sp`N-ֹ7ZdY@ZPlYUX'Υ"n!ڼx-j bTk5kN4| y"{y/ DOyrP {>rŶ:|~)@qx;A@p8isY<qE:yRherhV?kAƔ*͂Y`cY̯'9;~lUk-Ήdgu1/As$ߞk"ʁ!xUcpe%_3lj? #wea?G_Cܮ�}a}i_h}MM`nm_#, ݶn>N^vw?蕲lm?/ІFU^EwO*S tUa4׳7xNnD/u|RyqHJ3pk>F/eg{,�MǻV�@P~`ԧKǾC&, 8w<i8s- Nmrɕu@qIFFjt=P {g5#hu1r)o~Z6G@]Rp̳@7bI<4J�q6zEOړlt aio ջڠS+Ift.^o y@y*;l9֏fک ̵?"| Ql�q?䂌B'r7aRhf!EkiP!rK@$1 hF늛{4}2ޘ1Y <9_Z":pC#ĕs [f*]LǷ;Ц?y\ وadbZ>V@\-?{"mZ+ vծyѲիZdih<bm<-l9 |e3 44Cǵn L 8W�dUU'} <L�7_3Ѽ@ϭ{k~/^ &ƫh^=,P8/-7{){\= 쥿wNRkso]SM*s'~ pnvI:#Β;{Yo#ylބ=WqtGq BsBhsO!{ԋP jΨA}Ҽ pN߷b_~@IEˉ:s+٬{}:B@ O߈ޥ ߉N3x.zX_HNbYpwϖ8sL%G/Xqd8ewzM@$v0EtS7ּv;Pvlxb ־,J>zCuHhʂjt;$0?PZ 7 z!dπ"H@ļ�>|%rϏmhZ?4Eo^DBy+.o@ܧ3= ϣVwk+m8=驺r}e-S6f3uŸV I+Ia4b Fk x؝߁ouh;i'֬ܿ zɍɱ-пu*&ڴg,0,92xҥ|\v6r9 k#;bM, `ܱBu]Ǭ׈:-{O#љ� h# _d>f@iOoN'Somf٧CWS)2ρ쟼=З9 :>v=PK[.y`lFwh(ȰghJjN@S ?�<gʈA%cUukӁAL_vGF3g{.(GZAҐͪovL  h&,]?S =z+�Y9ߔ.'ow %[N�sVMݵ4dSk%㫙zI:" yY0*.ˣgU x:e算F�ߗ{[gxVahjzr+\_? dD}@6mPާ kns5<hf%=!7FIe~Vj�v/[HPg0fؾ'WLL?VV-OFYWTщ+Yfhݪ9hv]r:/cӔв7fd܎࢕@>c48/i:-Z6sf).u%I[kfecJ�t;rsGĵɮ:{YZY hkX}҈;:#p￁@z|9ng#_t Tţ#z1Y@?xMhk�[)s$uWcхߝ|ߊFu\m] / HYևC3'|kWӷ@e]|{Ѕ{{ZƍWt<XW|(c0x\_%yǀnezXw-00uH.Z%?< -wk_ +5%8=u2Qqtq5um{Y"*EJ") H$IhBPR4QJL4h<[:sp٭|aJzzT!i3(D!C>cTp[ TFu0=(U9 1& ̺+W;6+|~[py3o+%'o*P}+k4iI*T+6_@/wOɫ@1LOq`iW<}Rg tB<TzѸom%>H l#NSJ`xc,DCr22`]w T�!{Ԝp_S%zgOhnI t9|c+[z2v 31Zuu';+`r` @y2[M 4 9>-Es6SNVtB\~J\x{ķY~̇i KZnq)4n0|C:.D X:_3Pe2Jw?riUz~ht_8[LB_ΗvPv5P_]7DSk?!nx!(t4{-q 2Ģ+;|�KuR<MZTШk@b`~?vvyHJFzM4jq'�Z+N>B@v&}F(k)h_PMT ; 7p>8IpP!~ϭ'.oCk϶%٣|)0rX])}^v%CpUXNjLC`ug HͶY4#. H)Gtz5-�rk'skh֮U8 v wmBɎ×|ή ڞڀx SnlŽQ1  o êUm>W-}@diҁ\Yt_sQ*D|֝Ix<OZdp }1;)]tc`o{]1Mޖ\zeK(Ѓ/}zCtO/?X? ˳@J\|_䀛_30P='KxgR d-vh7Wn; Cǫo?+dدU>XK^^@\pmwdFfXWKC,$B0r?D< Գ]<;(\ A:<g9}Ev0A ;Wͅyx?rMD `b){֧5n ,S57fO?>2xOq?-F}[,mғ>-}0FG#>) WE1zi'U ?[АyD=铆kWiƾ᱖9=hLO]jU <LGlWm&$n�oE`0sVj@ έ+6E8oL]C(;3\}9R V\#ck{v36ZbV\\{I~X2&!@s x8($B)OogR <Vps?*,ŕI?" kzڿH3ĸDiE}uS?? T揋.ݨN |ҳ|h:Y[kE`r @Xd4\b}4:|VsJ_wLZᵂI<j4#+*Ͻ;+B�1ws-*ClY0CM mRRh},~\;?HP-٬.ٛ3Oq{E%v{\WȎA3+/wl= DZuf[Q4Q]WN`o(a%%rēӰ.2BA©p/ mYKǏ^&{TYד@>w(i[ ^h!}C1/:><Eوhݵu :>bzi怇|�0,ߚ�pQ=srYSn3TdYG~3cx=]z2>�7/u_gzՂZ~Aeh*Y@w<d�ޟ? bM>sg[_?ƹRR8{`*bk{>ZC>=\ثCYG ԡ3@ |s@C/>Fw#Ahk_;6?f]G70$ښ^B#_\arF%?FsRm9~]wo2ā 8Ƿuҵ,\ql6 M4+{Q'_%0j /je=9V{5pQ`F<ڿ4nU}(b5A5ҿ n Պs"/Äj![}@<>G7'-GhVO⮰,�yf9նw;t$ ق9Ms 櫀/ɸ?k%^`Xi�XXG2gdfc@�{]{h?|AX⯮^ܜRرa5V+uX\Ķ/=&S3q s�5�a gD$�nZ ?ϙ|5J!~{s j+^)(xNEdy sqj^qO2g�PKI:z ױ[<a[_my(㮊|.,}{޸h 95oC }%}_ w[1�!#ߊ* :hvAϑy>42&;0zMzm*_NU4d-H?t.vUȣ +} ,@Ҹ!x*>m\dwq#dhAxK?wt鷞Ds<tHR�silhIǿ@|ZBB]u_ѫ]뭈03FI2etċaɥmG3*=wyAa.Q`d;jQؖS}"v]c-Ɨ9l + ^>T4FꃃA*/.Kj2S쬰JI}I3 e=.}y}0^,9 TڌT1cY9S  Ez:U ois�x׆@\L]}]w7wQC!)q& ۩J!U<V_>b/se/\ %WRfG*ba8봿t!Z7wpC}_~:0I++a/M?N[uoyji=.ON%UO n3BӞzy FؙfE $lҎ4s%̋~@{E*G5+@\2C_>ًV�±}oҰ/gRh2䫰Q44[WNo=#tױ_#~tT.: ˥+ϬǯgASB ԦՂLv? [#;)_[%-0 NON:ĹO4` ǞgEė Q9z=[,z@H# {Q.̟M$!N  :9 L17J >.h<8G3�{{"J X=$2ޕnY@ �Am`zyp'QSN !pF087�hA'@ Oϸ Oj1gH+,�V6'woW9i.R;۟ա^2AG_eh8_lB G_E%!tqwD\^ ̳/�ʗUhz8g|殬[ Gܢt7=@[3Ϯ 7q-PߛuJE^jۗ-DOK\nA50gu^Ys푫Kb)�~Kd ² yJP6 4 E9jvUO{iRԺ~a;osc^^;][̍75bSBXg]HD/Qɚp4&c 4]W>!%^pqlJ9;t1Oty2h fֳ)/ ElvQ{޽s)R-+b (}m@5vg;0I�o]fc,ŭ񺳶:[�B}qI=VOh%[7GpnY/R]nS3/x=ՕF\oO0I8X P@_w04V) }j&~P B).E2�d>=EG z|!M_ + �]nv>̳ -3@XIm> {2*E7)nO\�{@)eƾs H̥&i@J[38[偢\kڭ}~GzyWww@ue=+ހyi/3~֚P~ n_ &@{yp\R&:xoS_o\|.#΁Sz̶AC@U*nRM-wD4۸ t>l>YЌ5(W=;x} x͊d'S\]NĹv+{Ȱ'5f/|={q\*w\�4c'Ism.fmar .i7F۸4쑧ֻyP?θ:T7RČ<f@}| ; ۙu~[#~Nx^ ƻ̀y@.2M}>X{;�Mg]m~aEtSV{Le,nнkth+]}e.)�h ]F#C2v_fUL0pg_roSo9P3> ڵϭze|˨Y:QLBG~]Cҋ1R &]gW'n �#>L/-T\6s㙾_@,z~h苻\ؓ}} ]c+1?Bv pw֒ @V ĺhv6^g+ch;bije=X׫4-iZbR-|x| rpވ2.bJ/ <$.L�ׇt嵦9hJ^M|BnğOB<cS3{=x A mە=M'GR~5@qT^P:@%fM@<ىxAfXľV[]wxbߗ_g;b0+fTMGangew~nO>{_qŪc9p=ؒ!se/ԫh}"B=Ɔ?oM2v_Yx� ;y\x/TThcd= M NKyzv0፜@K. ܕfY^Ȼ3ۃwGJx~ҖkqZ@6|4m?>>B~bɖg: 2#�1XG1ȩ^<=!~U' jy(/n ~o.M9�ahy!@H(Ӗ 9r,LPRn<l/=2ت 7&K�d k5#Ι!:*sJw\ /-&@Y(SiDKR|/PTqHl;ϟ+߰$_~ # MYp %{A|SrB>sϯznju)~6QB/e*8&P%|}(mƼKs֛=@4,m&]FQO#fo6.Foo7/E@qȔy ek+ \u Xn<�?ܔAc&k$:#v}܋*18Ri_F쨃y4E9 kl�ozf<s(G[q#fkK"{ڽrwV[D6_x$=|nnj B@[֎ZH H�JݷҐ{;_�z)�0eHZx_flz@n|Bm_)hK<Ew]fyq壍| ضɯ7>5܆}u sBҝsϯR1I+<z0b?7;w( $d5cԵ9L=@6%q <{Ea1Ѐ[ޱ\s`n E;)xTH!PyWN_z s0m?ZX{J2^!cvrho -�bl7ċ<ZLw_xi]۞m7 0L{s=:st/˺g݁ih@ Ll^eW"g"_hC}ڟ�TQ9WZȝ= g{yo*cՕ|Up5 Rht  nu1"(ΨL9w{!q,޶H{Soi 'FtT78el'QfKkG윬@joFVa7~C3˶Db?LT[ [ƿjw 7! oң=/; ^EϪsd4x%3as ;Ľ($${mG8f�c4TZp�} ꨭ86V'|]:4TuYh?O,_ Y|kUrUCS)mOO?Q7z7+ondf#Ό\#&~|vwBSݦ7W<?/L>�y1W ۸5AˏC&uu}G#@289$/v f k V;8﹇oy9G-?ݯڬ XuFӁڶ؛V~?x-ުE8>w m!"?q_Xr{�k>amY?/ kST0we4f\D:md =w<bwKvܸ԰ iS@ !EV80d#(H><p%&u52) >z^`\F N_#T�F}[-y/8xvCEȧB> i ۶GN�0qІ+?pln| G#hfuw7r3N"|`}%{s@xe@ & Z31S(\]ʢV yN&LYʹH_D(` w\84VCy? <av 9F_EGj*O"iC@>8Aq9cGEAkY^`Q#5~TżhCx{ Ü[?F!bzC@-5f`˅Q`!;h@d8i@_OplV)`ygˡ Yueףּt{sʑ@H<Z>h7g" \U?gC<ߠ<;s&M*ƕ;!KjB4wd?/(tQ%BwCp^Bz@@{pmS~e<}Pn<ʱ{Cj!Z1ٗь}ɪP? O(wrwߋ@ xkG f >څ%8N,yb?'w(A&/?F1`Y0=x X?}&InmvM^6_ٽS( Q@n9&";[lhΚ C@$כ[Oy%$(J`"*x/ Xs%z S€۪/KV9_:Έ(ǣx\<}y\ kEq;Dw '#nFsK?CFej Pa?zvpr2s_7R=3,й{Zrpr+WDpn.{ Oaad [M׿e@Sh Kbboʺ>k~ _H|h18w>) \BWuE|'5| FoLEVW�rn̍Zʆ!vA #nVK.'5ރٳ: S<}Lj v |dalpsE|O\�ҬǾ? o{DQ@|wClS?ooSd) Me#e6iW'ǏsxԑtU @,?wb}w7 'g MsD=7zXN5)RX@xⲴvS3,x3~+1<UTذȯGH?uY=|{z:0"DW&:Ĺ5g5obA4%oq]4&of]' Yϛ@߮=͆nDF= 6Xˣ H_X_gsnɃXzfqgg(A0 [yq|^^8}(.2y- rgCpۜ׈cuj9jS ڻO^<w'O]sYQa)!wn!ILO00e<Nj�:b`̳KbQCHGmy{m)z|{] ;7U=][KWaj)9[sq.t-m2z2/�Ͳ0[ԇ&my@'dPE׋1{{4c0C<܁,|ܕSIxΝ2T_Sr.GAn4}TzF¾wu<6Yzu-ORgzmI&41c?m'(NNvRLYx&Ԫ@H;J} dG%ľy8Eudvܪ9sĀc %" /o]{3浕Z@.Vi@6to[V�a_޾&Xq{{Z;}5/MlNwT�*-F._�YүJ)Y<{JS(+!;'.L2uaL{Q_h҈?uGc:IH_$lFUlЌ"?.JMhqj906Z"{֞}S9Kg<ǽW[5ٯ%eÁ=yAm.G,R~ (0<&Zۀ);\a w؅sr*,އ>&@?uH[" 豫O�ZI3w5 cm/S6P~pʮ{V#EGgKdpbKq}�>/%A0_mp :ǃ[0:-ɨEaߋD:>/5b.@TWF՘>oZc֜ D}B\_%e~XR?=>]+̧uā!ۘ ׃*vnGرs²ǀqe2лsI`.0&[aU7q%z.Aym�a;| kݙ[@zvтogǓV+ėsbz=&v42u6c˽_"£Ml Tv{Rh=;_�=},u>-3Ў֙*LēupM2vhhs)`mPԞ_K"o@T�Q $+N�]дW7vW=C|{v,z�d ueQ|O?] ?E?JWgyopoY \>Ɇ"GJKˀ_yēq YWk .4 kg݀8U&N="׶l07f%[u -CMWe`kb%b y*47o8~<AF"V(T&KK;[=ω#xUzF.]].'#vaC}4}B+M׆98[ȥ혿.֛A|m'~d >_[4o첌(О Zlh*B=dчq^0~(~d̺%/\9Fһq 2P&sEVGV ߆ʜDSe*QnN7 Fܚw◯ %_>yt5[HyVw3VbGRFR4b/_Iu 7"<LDk:&Zez7JRZSiT0YaG5@[8LhK|.mV\󲁶3_㯩,)Ķ}tXy,o# ȊY-l4Sqfk=?5;L H d�^_KOSqD}Oj(q;ƚ D  l`aq-fB"v*{{΂8gnT_X8.jco9.Rq>Ua.?5 t\[߁`:|/f쒲)Ӌj\)b܆ ~jj7&Г&oW�?hf,-E3ޯ;_ DV9lj'8|peEo婀{3@?QUƁޘ ^߯\}Ȉ47w.?/n}VqGC˻ 8qNq$dq7 i;N3%@je* s}y/9V muӭ{ p56OVqeܿJϲG|<S@E]) @J 7$?M[m&h<s%yie@7r8~?V锌Ûh&=O]qE%oU_4ty^Nh敁Ѝ㸷aPYhǝkva~iQ 4ْehReo}@ǾkX=~� :9'A溰IMdr.qF'T 7++)h6^}pi#3;E>{e�)xy~N ТWtՃP`'ǁ'6φ/6*/}Ʃ( ( ?N{L>B+k$qX4sl^ k3V Yc,A{WÁ|)}FZyZYK�mG̘yotO3f&0FCw,ԕljr^rA ~spt0YRwu4cnQ3wsfYMT[DLݺyv{Aڤ94|ռ/*v~==d؋V؟< v sGmǵi=ʮ[{ݱ#y݂9EONvR.fl}m^}񐏈WF=a^*!S'#z|ݫf\}K|.<\Dû{5$#\KO_/Fx8b JTs _>H4jFG3WHܓZگp@?u->LEcW4q w4@Ŗi{aP$-yV}c45⟾?EU_ݜrG$ ژýHw s @}(2q8,]6ٟ䚁lyR&4c $& JuXvbR=7R~NjfΔxԱ Ujg|7,ءW�Jx"YZ4p4iZo4[E Ib(�$i]1N-C`&g_AS㙈&<5(Fµe| :у{DL 6Uy3..{ (ԯ@Ϛ/]Ź`2/816>/b+-Ⱥ-@z}e(0Gx d0ed< aٽ�˜^w6?G=z1&qrB @jwkrωcp ĕ}PHnWۼψ]rP9/Y]F!GsѴ>@?q~ȿr6@Jnhl)ud\؈w؛~-zwn+Mbskrc{<�b맙}5ۣƎN9C;y =EO:r?v#/h';3*~Ox7G^>^J^XuOe{� _bʸ6 ʯ~pp2=qĦ 7s3?ʔ|:wC@+닐X9MczqxRsp pz}WպRJD\ ~pNW> `~c(ZfPFvf5W8.�o뻷!ژֻ@ftɜ><\l=BLa*6 h;<APڿ_DĽ߱{O>.<o@{)! >.y_}KC+c~:6.~PFל\!xȜEw&N*RꢃPMC,�z4({BYyo~fBgvs|Z `&Cn7"פD=Yj@6E}bf#m++'gPG;7.._آ"�iCw9ׇݓ5mf^>;ͪ5pNysxP\_lEkJl`Hrxþ@c5ZF $Eu<gѫ b9sЬTqI^e}͡Kj_b`U.)w#�P Ӱzy4)E]ey.|R>cJQםC7}BfQ&!P(;ɣ}68| +,~v>qX}!~}YXq52Q7-<Egc2CAa 4ģz6n>ip-w4][Xb_U >s= م΋SEGRUnNu"2g�q[i@ F9s8_'*. 3GDPVΣxMM{nqb,rg �Op.hʹ= *@u&`BL{#*oZ;+po*|4bs91λ:0)" 5YhF[$)n-�ΟHZZ-έ.^A3<ūg2.¯{g5P_=D#9xyoKRi}gM8nVL`bv ?XM=CI<U}J@6Y7w%ҎX"ΘEr`T\S/4$K:V-sKs]x/4y)M>V3D"l+^ a-<c7,qb毓"3X?`}9d0{q' _3}Jv;x@D| DSU}:XqNqÕx=SJhuU#2qZV [U/ {Ү.[om1o.,a)2;H !fLk=/1ϵ]q:8'r~>ڸp}nS~,Eס3*#' ]ϙqz�8_ 5qSnY"bK~_~>Oʖ`_Tt9ܴ qJdHCEOsLA^a*f�Ajm3ӑg(MRƶn g>ṃ-mT*xhxH×#{IR0 V(O A-ϋD{|fc@R8wT6&q\%+ ZO}v͈]&S}+0\^,45Ao82+spl|j|DsS=cOV{Nմ;;9>5A@ټi~�;qrĕnYؖoۡC+g>fα Z }# ƙטugK:Jد(蘻k+qR^hɖ~O#;{w @괋ľ7E/E3g_<O(Ź;n&'o??첒g�is"RZ @XWO6^ :r7KL 8U`R0I@>8,*ݦ~vmgsp5)h YU[} %W�]q:^>5u?�7Sljg_9i2q$J]@AL}7ĻqMZ/ҸҶY(X8@^8Uy?hꥸw;u@cQ@-E9$^G9؇#+bN|'-f68{Үl+bw|Gχ:V�ڻ£8㭑ᮢ:4#?X "^wW-Ϣ@mz#Q18ƽ|Μv3뗬pv�AII߾αp}WSsd^RUs'.X( sev! Zo@XМ =O(@VY`̬<9q+׸!#Y_"~_Rдk1@[; ^H/rkdl0 _?bȷ$/+ǁS#yb5?̡ i:7tz`qynгy]@^ESSvaXx7q=/P6: 73Kえ/oNlL9870_X<OEf(}QlԨDm=Ah?!I7D&w "oMMےh<IRЬľYr9eVo!ה̠a&sq٪>@Ջܝ!yBا _x [t43l>9lS&χ N2m&~{t1Gv7C3UE.Jϛq6;,�3|sߣ&}K4^?$o1HOD�gA^z9.~b^W./8̸'z~7ͮ̿+0>~� ԗ6h*/->4'^oo-}m |sFZm@O[ I![̣_L) s/ s@y88|~i2@TQ 0G\ EYޟ} V -E/T`O[{j*MP/W9GeId&pI Χ҅ODl?mY_)<�d͏i,=lj�^jFFƶVh -M+w: ]! x?w}Ϸ^;fkvNXrY/MI4m-oJbo$쇖?Yzi hwU0?B?ˤ޷T;�tӇ6h2 kMGv2f T`7ifJ>Xk/Sv[z e>o;G$O1Q/V.5.}]hS+vYv]@fMG]@O^@q@*Ipϩr]Qͱ/-URͪv>y<sI? ){ ۤު<dh7bD@l!ٛo9?#c7nnz> ZbJ1%@g +݇I[5D刟X!x]1R?lZ= u=!%T DljѺ.7Ht ܋Q[F;8s߿uzert%dkmZELrVL&�0q Έ{S-?R%a tB.ТN) `nix6|;W/ o ߇yw'du(i0!T`k#F@mYhD ıE?[ڽP} :6l^V=a1([ZC<[Ŋ98G;3}q?~)Eٴ.�Rl' ܿ5}ql0ޓMmqv)4v4s:ۦk %=ڦ5|1.pF ~)�c S[y@w6qX|YMa@vN_&6FnGla 9+TqȇhB{SwK公w<&rK50wk-h8Xy_t)b2ԣZsWOxZ3"@V?`?^TĆ܀ڹVܿ~y^&3ed5 6U^tF[@>J-]}B$2EF_c]v#;-d"g|m:~}R8&nOgy iVEWWK@d^s Asf!޿s6IPyԈ<ۛo4ZtLsؗfvz?4A@2\XZM[9x>q=FXdsx>Rbp;ʵ326 Z#ΰ^p{Z;m׻Y h~0`m}ӨV!❸x"rsT;lmO~C�9@2Y4U?"{0mw0ef ef[,zfLWC5MM?F3gs@`ΞxK[?qn3B\S_i%og -;͌ۦ$ 1 \V,h>йt  nx &B־Zyj6sO?1b.%=mQq}#}q0Qh֨0!htm\G[@= 46odVp,0ۛ+\Zo?9.vk8 b7ϵ*wYc_lTs5ԵΝxC{"cةuM ^o9U}n:UtdeqU1k$}laWo6\z80͝¢܃;1F? N<KƾL_nC+`T>_(O'r+ם@Ӝ1pD7dNu쁲" <O|WÜSfr\�!k,mqGLX m v[[X/ьzT\ H^ } $(_49]>Ŀ& YӜ RF /'z@~ ˝nTİ0;G٢N梎SP 4%OK~jXoj3 wLdξ8]{Y g޺x^6Yl2Ghsks|tk�u?p�p]vN2{o;U.20$ί]fj.U%熉Ѝ"^Y ו^n%/dо%@S={ݛ" 'yu_˽ PҢUFquؽYhG֫dHjd.ԕ|IOBq80O1VtXqq7O/m"t" J~"|>76�.HEIo'\{3@b8 vKpO>79j'}whv˲ߪ@n|X.+*5$b;b DǂMS*xuf[X/"ni_/4k9СToy`Y&}⇑f4]KzWď$.Yv=p ;_E{];Z�%_~H6K ?*d^!>P ]&V_9ޠB"U; ,OE<mۥ_uԏa3DFRE׻DpV> 3@H\ZͧJՈw@)/Z}nꐝ!Dc*umGF',}qi.�JӃ/ΫC45KˁtOޖ ~1}$oe~j%@Yl|4 i׺ x4SoN~j@MW -z.|x*喔m+@t]u-sv�=$@KI�ZM jvpVjtzR'@o~*oI#^`b-`4jE@=R,__z ק.Gkj2@Q#/m?m,דvfNPfIJe@YuԆg@mˈk01%/|#_]~CI$ЎSSgZqsD<[>8{/w`=l}ë|=Q 7zW7hjf!K8ɡ}F@76TJ >ǽSL:@]i |y5/pW͌kl4vNϻOYgz teh6٭5 ^nϡg@~lk8+WܒyztU2пϴ6HZþ(f\Zr+h7sňTZ%<D/`qa8(|Go|`u<z=.DQ@lҹzw +{]=G0uU^q}WV,N6 gB 3r9ӈ¯hbk"v]SUy v薽&Ux>d S>Djzs[ 0*<o3|nQ N'pkD'q3Cl'gwc XYy@Ma3{!Ptc e!ޢǢ-cQ439E g2^#2?NA\-hl+IHxsL#4EBkDci^usc>Mxs9m<?e0ĕ@Wxcw80SB%@ݒ}fH!O\a{|.{EVks_'P.;nW*cf듈g2/W}3h}_'9Ujx yT._M\v9lu " w�aMnW Ei Ł*N|nH^Zӕ#gxRw-_zn q3׏ a�Nm! wkl<swtƸxPb0N6`&iI *�"[m׵@mA #f7&Ǝ,Wp,Fewp_+]=9x68sV;O]x5"ߟ�l;K/�9R-+Z_X@e}72;p&恳Ma\ofV}xK0/t@|/ɘ/5^2lwUtwo.^t6NIqA5_jč Qp#?iωT!+q?z8wϙG=~؃Jߍ #A b/Z= Tc޽}7~ӿ~uA;8`^OŨL 2S-t q:<6Jzog~ JGA(tIbTnrw1_ >dŐM=m.^M-h?@@ٱLzmfn ?ǞsSa% /As |'6,x {mE@i-~wWFSN@Ezq|9շu"nIrD$&ϭ݅]h^!?8 *lTy1Gh4V@0_B޷sjgi(Џi Dv Wn,wC%<Ѭ[M<p;Fcv2 /e<Wv3{f`G82с@7 g 5蠙tI1.jTua_Ip:x^Mon'C00\aI! īs^Gn<>-W[�'hz@CjH Nmag`oSk?h/ ((VlS76}7&\J`F@? @?}ϝᇟꀜCmx_8Wf>v�JI`Oj2\n8^j$bhk@#w*aF?t17/5Z�D/i 0w hꅀR~PZocy2YR͞ZHDžb;�O6<�'+d� ?zTͳ GV/O"~):?< b+g%=yJlp?^~1Lo7lHܕ9rh/ķ^rykCg;"+ց@"=o?e9u|* cԿ/g 99eQBKw'wMI`C1gY6 $X]f%6nVWdM}sݯ Žwt(0RnН!3}DXgSq ) ۏx lo6tl25%K}vrZE| Ջl|r:]`AD=ϩ~K €q<I~z*⌦ȥ1'pP 4[ܧ hi.<Ni=L~jRgR"[>=lfB:9Wz?l~Ж$M}s-b{).a*{VwlE»?g6Sq%:lX*-tB.}@)In<G>{KĿ(kh[{+|YxK b)�0?J=C3C%I4qU/LƵ�S/zHqoWOG?ODy SNօyAÈP籹y MMG='V:t(>ss֊cHq<>_S<f.m C9rPZ{`,u[M%hr{4󕷷C}/3-ᅛ~u0Xnq [@3Xܐ&hyU+^r;&]; M:Euc>=so+۩ )m:z 9CwGh}Sk%r­:K�'PmԼFe]ڹMkv5l4_@u] o{l'~-TxS1!_63R@K>yq$1*ФMˆEm% ov!Q*iH]7Eۀkrs h!ޥ]j ǫb;4,Z(ΆṮl}6ݙSRRj>0=~ȁ]x c,�@KIWc/ytP{'ɼҁ|{VRS ]|WYQv] cq/ ?cݗhz/\dF0Ϲ.d 4<>t́zĶ 0̻t}G ]h4x4@"nЩe@\9U}s]ʻu]aL.EKg/.R |}<9;�ȗ8\|Ϳߗ4Y9km|*SUJߡk.8ސMRشV9U`dOb\NЎE>?bfE<džy$`Z(gCO@*fWݐ4+ {^OX eѴpkG*%:!4-:PhZ陼{:Oo=qq$GY+s Λ|7،f&odV<H>{; 0/94}_N OǼF37i8e<�%͛Wsz+UcQէw"*s7m@Jy]0<$s!zw9^Zt"XĻw\FӭW!?tX, Vcy_N71{Fh]o4ղy@?U {. ɝ0=fT?EO ګ(--# L.<uqϥ/6:b/>]9e o4G("`}~^YsDcd_jbha okǞ^]CЬQ/Yo=ﭽ: Kž)G׭69)TƹZqE,N$=I~1F⮯@xP@~8 arv)8ֵGJ{| ^W3*(q|<erh?ϤWJD3cmEk@4d#vwzJ[sߢ<eEu^XƎ4{6ػj,C| @Lٴf+;W+]rXRˮa%ֆ_imwp^2G~`?Wx2wh(M؇݀;.Օx_FhɼpDR-KCQQUE.Y?v�S͊7WC'bN};W2ufM{/D옹I-z-'WhẊLsHbnt/1Bg%)U{!I6/V9aD?3|D; ޷KYs_Cy8 (] u^&VEu *dWr[M΋@m8A 5/>DQ&ww/6ng63@V/u^fB@Oj,l^1S՗t%�4 +Koz}~QnѴRv@<0W_:.n7C䖑cxTގ &3{Wq??NZ+ su Xx_ϰ @t(!S\R;_ |5%YڭФkj Unoً8rie7];Ʃ&)@SjR dMS!@={Wq_DkfWE9`b{Zl[@1#>hy@,_x5jZ ,C5ņьPǢdzSt}pٕYE`h$y�1acwyb]A\.j]ǫ\Vz˅ugKLgxW>ζB=>9h+}Wk̢,2:,[ܵpU}R=~p!n  T'f0sۻJ! ŲS偵p^Ľ[p\\7FTeȌGM] /9-#͚_w0(#m _.-feF6;]zx>Jgn@Oc1Uxa U Mj@] Vbۖ^ o^ hm4:3_.2@`]Vsr n|&*_\p0ſql* =/ Nc^_0汬UsSϗwS/<͔+o@]Tj}@)\w6GnbiyӚ @uu7i⪬=s|aHr1~-==JHZВ'B>u9uJw#4 ?s7?տj?>gS?߂xq>h]+cW!nMp!vUvWoâ;2/ldA=;GU̓my�*}!T+&nqap;45w췚8;_UƧO5srFFmoz? 'W!+EZ 7Z ٽ++ �jҌP/L~ ԡ*'y];Wq x|'v15/{fh Kjhm;1`8zQWߗ?W(]+"M]nJ MR8?]mI*f s.o_ tu @zN5_$}=d(m Ǿi[LԭSrYY}yͣh-ܼ"yE@>Z4sRzlg@Z<kCqhx 7S>w<(FՓ7�ۻ/jZa} i Ag/ޟE|ϜC{9@Lz�"?GGC9@4sF6trw\C *|xJOON9M;u~-*Wds.0Ks#@IV~o.bJ˒ȀXh%Qw\6rHݡbZr ϯ:/R&4 [YL"~hR z3nJ,YNꥹdf+y<yks8d U刟xX3/8cƪz:C |&TXcM3>(sĕ=u~r0B4%Uqrw+mkUrjk' Otv>ohD6T(T"UU _%.ž߳I -0!WE s'e�o3s�hg݁m1q~Eְ\�:e`̀P= y7`~ͻqެHhfjxC>}ؚtt1ܪ P z^@|l[1sd<Cq{S{$CҺޗ rAaݲ9&.;> OFݶ- |sl7 D̷_O<h!vhE@`d= Gkǔلס?G\T5\VKxA["˕,BG U(m[ Qy\ oi_#)3{Aݚxhoł<JBͷ/@N"JsuN@'KJܳEh\[ wpVGhb*>d U6 qfWYkqMj8WՈt`ۤ#Ĝ^�Gr[Χ{q@0vC85G]RG=18Kuc1xn 5̻j&Ќ J&dϭjZp~hTC/aWK в8ԗo,y:?㎞ `@0O<Ek( Ņ@_WFHʧA\Z3G€d}4f%#;qw鐑%451g2<uoGmW]ak=`͍:{ыS'%MV^de`{#¼s6Z`mïg}B&*'at='&zۍ<ab ?؅;6@VI>4?~kbSkPy4y!W{I7h7K* {Sztz/�mnqU8X0-*|v5|:cp mׇ[@ON" |MLD<`}x.BNz V5 vʚ?q;}t ޼x4zLi脦[n[m[imClZ ץ1QrvMu}۱Vc=g+I~)0lƥшud+^r!눿~Il1ev|u V]y8܋N!1Dy)O�=D#ʱ!%L4fD߼yŌ>B nb'cgx3zL)0vUu�.b/u(5窌ѡ2 (Y@ Bp!sMjFR6b?x{E?oz#G{hx7]M͇`=dy=@8]&|?0shf̩pj`k29+PW׵n{xo\gnXv3Jm.|= j5@Fr Ċ~N[ n_:{0};R]]缛πs; sيS!޹7ח&b P.n-ƪX(З݇IWL_LŴmsy/,5j{N✋{9bc%q~.2hC>P˗Zq. Ŀe>5:yl�wBº7DƊsU9M@>)<G_4oE۬pսqa,=e 6T2H�gR@ 3G Td*)~yJ=G,@(PV;w& t#gݛ@X Rboا͖kbm%j\~H`)&Y�oh6po!hay *L ߒ>&۴iKt<Z*dT? ԍ+BiG|8O-<$$u̫E"~os?wNy@M[wBzmմUD뫆bDɶyFьg-)]ؿ'.~D州X䣎@iٙZœ{}'z NDۻn`6<iނK%v2s~tЖ=&U S@hRGo(V9%B|g*ju@*^"wڷM2d}}&Q@[%.OO7�q<q`m#fjiS@;8]kWY Z Uf4eUh֐[B[Z,~!N4 I+w">9Sh~eמ. _r8Eb)?ۈP{.ak<4? U@w=M�њg'>z.0W !hH9Dt1iX (7l98l9ׇ{d¦cAov*NU_0P]hca& -d<ϯ2fy"UVfo*YD_;03fya\etP-=c;cwKYGwyFQ@,lj^Kӱij\Cϩ&HOWw Z@$ɰ٠I7ש KAը/ X0m(؝tݞBө~'Iȍ`ߚp,kh&.lS :m}/6k]t;#n@)* \\-3<ĕ~vC-b: +kl㈐c@_n5 B T[yf75ĮO@Zf[z;0ˣrmLA@L |՗s "<&h8q'6⩨n<x++-҇'Kd@YoZ>bO|k2v{֗1<uo�fg~>}PZgxhG[([GUƪMog"qvf^�Sԁr+F-9]/NmRzw�q{:G]>#@?\{l o>9<a0,e-/�}e;α?p6*Γ޹5Z%t\l HJOۈw􌠙T54~#潛{SSqqsb{7-z+}?�_w~<Q F˚R<Tzǵd~W_ =B*]t�4V.Y=X6~6OGq |^X֧Kߝ׻o#�:u`ФG]JUownФeURbrU&hO t+a?1: h. dP6",l\˚O\sc1ENacO3G3:[Λ|A>2&~W[ڀyE~e N{ ,:o`s`&vT~�!k[AGޛ`O}}q+BMLc-zĕ_Tؿ$$Pæ=6]n6%ff ?{IU3`,ev^fc??JPhC4WJj֢A 0dD eXw\{#g)s;y/LJ4<&K04fg"jvPne{!؏y쇣f`7 žsp>N"aw95VP;4 Y_hqȗV@3LG)o &VUL ~ {9@}g=flS�.ȯ5Vs}@jJY}8}nx^tL%;a}Xbn_w6>j6ǭy~;5�4Wg&bAy UI6%@Rzy%vVzT s|\~ =# s oiCܙe'[-*D\}V[VQE䊞^` =HB)sgm.O@{u`6M2JX]11:,i<27*Ztr bjgױsX?,00EHV qg\i&,>B Y|}u Pk Oy<Z<' E\w}*K Hus!~򊨍}C#,'sgk?9eZh<TT`]?rdb@ 0ӵS=-0YaslklyؼP}˽f?z& 8> T}rZ뗙{I|BD4횣gڿ{[ 6-7Rļ?P}NT}n!P)-ӀQPy5п"{ n]FV@lGZ?v#4<ߣ3}.=�{8 \mTg%G[MoAWuetR6Sr"?}G={>|zS#z�}}^rmmRG\ g ϻx/Ҏ/#kGNdz+SfA^Cuc@z?*(9( Luq>! $;{tG*~2:]?ޛ/꤅b9Z?9Nۮ,I;@"E ?Ҝpnwd<NƳ@5 ڽs.0\}9aw{)Y-4ВO?ѸbI8E7?sG]O4e=sNYQƞb2ޥ"~kT]J OE#JѸxߦPUbthdQ.ooFv׮8 #NWFj]=z: պkt3�#(vu?[u?_U03Zݦ|$,(E܄~ A`\e`YvE ֈwf8h,!o^~60ex :?cWU<=ʹ<˒JoWΈн }̕FuHD5 (c"`:|:~' L>S(h $']q:8Hn s'n!6�ENšwGHzBS /x/`kO}`{2l |Oo+̣I;lC|mHZ/Wk?TEX ȱ%@`B:lq}.t678涤 \Vk*M?H*]oy9P^e*&ܖ!b1ybnG;R>}vk ,S = ?~H]c>'A:)'R5.ΧyJKٿOXl .ٯn Ud1ĿqQDnCܶ=J ~VlA>cx~'Cݵ@hw;0~|b±agL 03%/r+}7+3=h4Jww =}V.D@_c;-Pkμn�gE͚hh[&`.Kx.r@hO^u`N]<)_w,E|[w`Fͽ8/ `!Zg�3]-w,�ƄVw0o<h4PmGZ5! w<Uo=w-%+(vR)IiI"DRʈ"JQiXȌP>]׹t=9a@}@8PmIA� A@f �Cʢ!8(Pн i*qj?t2bg u<B{܏n]7b(ݺj~Q$ jCܭmW7!^ hVMN;Xp<(̞0$|<:@9.5Py( () OHDhڢi <,~׃xznn`8j9晡;c9AT�;?C?g1?n1#~5Ǔ6#>g_cxYG͛'q~S8zh|ڵ hg6#@^e@@>P6~?jrHFI57&@tZv?9t$)R4&}^ypbO.L,pC3@;gfo+wCyWW+cuypR -ٮ&e? Cp>ށJv7wHǁBX~e\ Lsu}-ƭ'hF�BE[d楍_rv,:aeUٿ@!܏U>a[d,- awYZtzGfz\$b\lA.P>t/D,ՏJksdo6bw5#bݸgjڍP)I%UЃU_>Sx';3f! 4] ז'Ā#D>SYxGP>Z;rsUKc8H.vؓ>_|o Z5  na t][ =z<`jo½2(>E7EsDN`]ƞĿֳ>gaYϹ1 VY*�|&` &0Zn4T)wBIe4ntK߿ Tֵ!@}s8,:(Mi6n?+˿t6㼑GZ_1gɇutIL(_`nKK9gXQ0Oė8Zo@0 lA3ub̥he-4m(01 Ůp?;2F S3hnM01yʾҮ~6`Lբò /mMW2@>p(Fz2(Ylb>0ꗍDAϪ Ew2B,A@-jj 7 T^YV{wvERF@$\R U%@l#lE*"x0T}`3ďkZ mR҇M @&,^3|)hP['r'Ӡ0c效1CoޚNA�m1 Oz숚P|6Z'dJl極+o<2taORv@<rEp>P-&h/%cgQE(q1,9J�P^N\ E\T -/4\&i:ZcGT:m3`- E|ҭԣ 7/ڂ*gGݖ%Eqe̹w/EuGyˊ1JS*vlaJ{i _׀Цk/rŰ&TkL9Egj"~Z'DA%n'wb8k.hwvJ~ H/ym9\;삦\y{MJKj875~x;.*$v!b?cnsX?}1!^csRq zSŗaΈKtZP}Nk4e\͊<ltkY]\wOr/=/qt8b D q)Mmnً J4j•r~lr˭ZVyU)J#;Ӽ4fhwg@mOD6ohL&-W >'m]ԃwtW+5-NRĎW&z {eΐ PN҆n[y:u#֬hGhzIb)a@ӝ[gՈ[0s9AtOgq#;.^u P,#+݁@_ NC qi?gRdہ~ Nz/zh`7 \uV;hA濅lz19W js5\ο ?W!q*0|-q)#J/ǝUW1Ď=~R: ]E32{@nь-X'Dy&6(c fC,1rwHcv kC*͙X^֣ +bO6򔹍xz[Dєn@`%-M4f}U'*G]DV>DZ;oCqf+\^ UU wmFSYZO\UL0fT}0P}2HwB<9ǟit0mES=V   IވS ,"&Eͩ9L"TM/&[sh7}R.i2'}h-kߋ YFZ㗒$3]Lsa-hGy.bynh{.k_q3=?0-3]}Q߿M (1e $yžESșk@!ؿf)"Nm�_ baP!&' Hv.F/, ;%y37; Ϙޭ;O�mŖ `2$fC~T*@A=? : Lڄ_m14{R5@;J;rJ񯉟;ԇ]*Bgfdwաq5/5qq^t%v l qY󖐵+>Ki@ 7�B@3qDLŴ󺍕D_8" -{ah\0`>_)&Kهor}%08@1j=nDrUÏo,/*bdEG-y_.p+V 63pngN.|A b1k]cy!ʅ"@R�ER!bu9v!vۖ갩0 T _�3m*@K xqK'poB&` :f_rU<o\{Wzظ*Mۜο=KsQ3 ^I~v== S#Ė "I)x<�4raKO@ mH1y\�$:1L$`o ZZlZݱM'1zh*̀T\e$ֺ) <п)ԣJ$36SPWYe58pM}宷T8�H?{AkڍRR1d : 6NE}J]@<RE(Chr<pFdM=P1ĵ!JAP \ _8PV}Y}j$d$B(!޻߸@\6KTĽ443=ꚍ< BP,]Vq|h]4)CJpx؟6Gb>Z.&mB^"&ssS+:F9Msy7[dq 7|ݲ&q|m1AGh 9:8gGTy56nCxѫ_.a>rO"Y&b®fTz|~Moُ~�G,Q߫F y9#о.cOv|hi[-mYwq+ntYݡ_q" 4j c ˜[ ,zLɓ_&n5B9At?3 EV} MX-~[^٫fE4 V0\FU:l>"y vٽ<nwk\`.* W~\|K;q5)i{vNٸJ4O1+Y(~y*�[E{_2b ݷ=`49 MG:Ղa=ïh6]R\/:A`tg uszovx4Gwe5wی ؍8 Y )7\4sq讯aB3aRd~x |Ru35Q`64*L̫:Nhj^mmn ĺrIO&nz=@s>sErBJfRge |4(Y-|[<⻮Nf-Qnt!lo�F5 l Ohe|x<Frl՗5o֫~>T73SU6< 食{~8sZJ+jRbA5⼓z*̗=5J㯣1?<V 5##dH 0}6�4{9@Z'N Fs-y[0H=Go%"Gfyē12�*ǯ㻀D9#X nar@˛$fv<]e)N$,ʣRю@=u�( +/AThiJ9z"vDٍ\IQ jVVG=T%!n@^yy=ϒq\sUM {?~B3#CW$7Ud9| S#58#}cщ9͵QsֿH״AO}c9o:Z43̽_oc^S@nscVN= zNBsҚ1夗HyrU)A'3?Op_V\f PVJ@< o5CsÎ*\4ڈs`� e!s(ޒ?86UHy敵o#Qif: R=Vt�_lNORH:潷+\Ժ@W#LP?=S0%k�W z=הW6�4whv\#׈xF_\E>6Q@wώ '-_/x\QH0V; �rHK$ 5{fBWRhΣMgw!n܂KY@anuS4ٺ ( mR ɼx/K~" ϓ=@qt}B k>El}+;{ 0V~d*?7tT@ۏ{tM0vXFc{%%Ҥ*)Y=sFډImmnfid+NUujnλ˝t 7>dXh]ȑ~W"8ʯʼĽ(ʍ 5^Ț1؉X>~mSV@L tMSmiJȓ{ ˭i@+rm8x <[ >>hhF!߅TiA |WL_9{-s->*Ѓ_)_sJczrjia!Pg1 <5YT:|(PtԌN5AM܇~bgXhyځ a�ȁmG ~4c-+|ϚŹ SD.[  r焁Νqӆߋ!׏X@m;v^+nh!P}64I~yh>bW HǬ6ޤ9"|^;<~"wj7 *RG=m<֢ zSYNUYѬ�ڊdԚa8Wد 5/J>Y3_7\M|n9* QF_'aK@y,so|]miB7]yi?z$SQLC7�S{*4-ކ o4; YǀZ~0ɧ$)]4޼ԓ楈j"%_JeV~^?1icPKz>!U㈷^(⾍drX*w"coXx`"*im}l#>5-'/;,>_0{)*xeڂa 9}F{7d{k_=QX i$- _$nL24'bUɥ<�}7%V1͌ h8K,OF%}:@ lq:XU=7A`s 꿌}(;{ڷUi/@;0g?+c)0<E'G\ir/Pn{Li{/ԺyC*[0Α(3?jhj骧t $eJWEyvԗ+ =EwD*XÛOHҴ. N@ .CׁZѹ=1@pxh{ c%8V@ߩZrq~̛ (rZ'p83ӳ N)'swuc&[ch'u^1 4(3J. lZ]Lm*TJ#E[p]"5ACܤ׋9hn*stkR"0ק45ө}JipRȲGCB6wIsL(ô@oV ;1ԞxR)Ɩɍ\w]p4t+VgEC'LAϩ Qmm꫁<l?Ps {ؑ 1ʍ̈ƃ)w@PPwc?+8It\<wFGUvAmoM%b3*̖#X|!JAHmʾ7KSRQوo_}L & /0)_.dy\@;yoY P5}M!nң-ؽ!}:4Yxoϋ~4劧%U?I\zv 0)Dݦ@;K~gܱM ȿ=k7!-Zyv>󞋼6aO' V1\<vBi _2Cm:@*ژ[/юg"viK#ZF=|WmvǞ&Rhy34}VO/}՞1uc}ev7ʼo[ys2 \X>rݘӐ7G@-\ ɘJ9y(l׶@򖹎] W ~DjӎV۹7s? >oa ̱N%8%iM6sHhke<_LE+S :({+ tNg'r]PhF$l٭iv'P8yRC&k7 UACلWGY>n ɋ#kl Xuoӵ7 1S~uY=핏$ځPzR&\{ڢ<y:/z|pvw[AY*[\b2j=<B6GhXMi狠]a*qD;xm">7�01Vf%^qPѿ%c@V< ?Y ݺCΏ*綇hϫVlK;\T3@T}{h@5j\Ŋj AzJhIy@׹jr&*D9(g-0!˜Vj/_|"q+[9%Z 䍑>eC<$79Yma&ffS EU}Y<#}#OsëZ! kMs`(P¬ r&\#WD-R+X.u@ s(׈gsſh5̅c Epj"za'߸i&~BvZI#aINr>۟"^F)vSB*zq>]u(ʖ9!@1A]uh%b2DqNXDɽI6| Ț5.];k^Ҁ6p,s;9($' (lNE^f 48$?fmGkby9u]A4^ߧ7 ]{qy~`Ptq[=}>=;Pײ:mz}N[l`P~ͮV+O<D|:7 wY\ r H{q/yY7vY^gNo?uYZG=J-{mXl w땭ٰqqP~hٶhN(b$O^Z'nwP}�N=*.Mj1܇Y6'z oA13A?4+j3Qn'Nm#<b;)b`өZjm^z82F %;-w7?4oy85YGR<OkV&P وJ8?m$eq ׍v+ju/1_ {iKpSG+Lq-~,Pw^K3Bq:#& Z~Uz浵 R4p8gpA z\xV*)G/@<5x׀jI} w;]'5ԣӮ}U's{BM '}!>^9T\5KFFk  .ĝٮ̱724T=_@癟,0(ml] xDį?,܇d@wmʜ\<k?J [8<~ȭ cughC,@h;^u t7Y'oq/7Dj^RO.ZM4⮷]9w64\c\5%`xe~Fs7沁u¹7qK:T#6r8y=~k:bzt8=¹}Iʴ}ob$]0jGo!O@6^qo\ ēr3T}snہP|3п/CGF%HhvfeŞt2XJn DΥ%l(yb}@ 'ꀲlWL5,Ў[Əo|A<Lk� 5q^>PcFn-SCm�2q^ǫEܧgvӀ ca E=\׿~:in<8/)f& ĺ;TOWsPwG^I(vB΅?Uưң-@Z _ʕ.Gs{Kbԫ>q߳ۊӘ۝ޒci9|+xXv` xs 5vE 2_ʑG?c%V]ow?@cc!$ޟCN@^!I J<o[�EuC q7˼y뙈[M_7_I#Q@YMxOkW`Ϻe܇</E*펴-wf' k^=/6X.ݭJ^QEb>oo:Kt5uC^ /}ܵ͸8,sR}̀35@؝ Xg툗~/&?S@q.?i|hZoJ`Mf�&䠭4Wg*- ^ "=Onaa/^ )ڌ8;6;].R $Zd�g5VU% ^A X>D C7׸Dfz0+~[+y*6=uj9/"ĺs=t]~-Ftk8n 'mONp<*Tȍ3E s I"n{M_ _6l]ҽqֶt�{Kߔs@=M#ޯj+�ZtrXN1k Ň=r2$V λ+UBse<^;9 {{}n Pv;>/] K z+&=Aѵ@[2q@{J"O_9+4[yEo/jck!D3/}̶_] f^ROX^B6:MXKmIJ SS�V}+Ğ8\7x|JFRr}Uf񱻀H9ꃸZ]*~,zjqWY紪'| ! .zG Z C|K:2Mr-{Ozt-([n]XqA/5ܒ֭G1'tA^}YzU O=q.Pb0P>2^*h=0a->J }5W=Ns~ n#VWA 4U#0N ޶K5!ZkvC% s79 iD_v+P;z}w^oXGnu荎g[ ?mޫmm}Kqvsn@ E!6@h~z=jSoo=go>SED)G__qPƣwu;,ki"qG=@^+0X??ug %a@?� 9Unߪǿ\HWPo^y݊=u|FrO)[c D׵GċV`XYrv\Zxk7D,O:4T s%-?*ZJqќxLIKx6�/T3.[n< h@|Мc :e^qo 7O4}H]{Wb<k!9 6k '.=چ)u=Hj_ H9B&@ hq cOG`_Ѽ@' #M?<<+N眡i]'s2{GL4R K2V23Ga"<ę\2ᜁwa~T͊G0(w=?;q 5@ta�+CEx?SVLYjGGV pAdw%u3 ɧ@X>*}ef ΃@ɯN�0""ZbZ枆X}`Nt3YD;K$8 * @&yM\SR4tT E@<x: ņ�@5Xk.Nʹ&>!UQA챯xv!'_zAঙ6$GMwxͪvsc@~;cs˴,lP;]&5zi[ |0بN}6{QaE4w]^\ MI#Uq3ڝ؊XջJa\Էql ⟹uxBi|l:Ɲq_`n-x}<@s;.<w!Z<׊ m^LR+ Æ19tk]@r}!Wb']WJp܃M!hlFM kUGV5г%#5Q>f[x(]5 iV&._~}9q_/0 cZA{Y0 QvkUn*aؚ@; r]dOmֆ@x]I^huqgmkd OewwK@񈞵^pIH|N^}97z Xf +<T\Bts-[x8=(�m'm @q^grX/ L@^ jv;#aQz@O5*ъ+V@͗}r% ?@lQCqا~')sxlPoTS69W Wx7 6@^/as7M8wM e<!47/kr~p9K1P/6vٖ_l'q~ 7mft^׀v[?Dt¯e#o/Ȣ~ �c@1hNO,]-`U.689&ڛm%Q{ڰۀ0vвc==,*xf?dv�TYBD$�ۇ[w ?svmY?z];`G7MA@[-QQFm[ (.;n Ys,Ӗ[@cdͫ. C |UqUܫ2#Ļ46ZhkYͻ1wtU+RyK^cΌ+d~}o@,\͈iی_bp~%l ԁsu6Z a@d?ב_w RzOB& <gG[0P/wwd_:(_ l<^Mf"WM|av&E)nn90y`Oܯ\AsFg^ϓA 89=\6Q1P2Ƌ,Rheď Ny厗4 ٲ ' zLzf4 >gKݸyܠ͢G0?MA/m^<A<k;>5`r.M P*+n6wM2Nhh4`^$sNA_"x _S}-_<jTqYw,T{A5 8%a>R(\tOzn?頊MahmUʩ%KϢ Bu1)An!-=lu3͸'Z݁Ƭ{D# {:*8vxF|wXWU}ѻ^Ptl0PBvY-4˥�d'Yzc;P{#ͻԻ˿'0K~Pm8%Ws}|J]?q n(stң,b/S?_ܗjO쪑8-!\?[~^KzTx?IWĆSw>q_mx+Թ~@U>+5k<'+LPb[`~+ y+ect,>灲G|fEdӰݐ/.,SfmΛ@.YwLЌ x^|SdnZrDhڼ|7I=0O9dwD@_=,-Ы�{:*S_!cjo6w@(>|1n?Fr@8:1w/B}u<?Mk M"Kģs؏=YiPbo6(�~y_kr|V?hD\ɥϿB\i*̇i9T -T/g|y4w2_B`á@OVخ(ˋڅ+uz@^b96ܩt{%@韼F^ 0Fv_uyo94ٱ4^N<\y }{|37=R/yl 8Vah_ V"vX gubM'�cYNMDq_ڨ}/.Q yBao ΅g.1 =hJj`x5x׻7*Ͽ2D'r~]a)p(K6~r5e%@|-ؚ*6Afϱyf:d[|YJ<H'<&2|^3boue'4/k8Ka];[yϕ /WG+ T"]BAš_3pG/jB,YH[ sDIq4%ɣ)aZ:nRdson}:{@k4)u1!ȧ ʈk\lESOF@l ᐅ_F[G̞(CQ'TՇA@^Kʲ=%uh^OEgn n9OU@l.|~ixz}~Cs;͏ M`򻖳qϮr-ks;WJHBP0Ti�ڐiӗzzO4&?m [ e=F}SBJ̍@{E2y4++"^ 0. R6mط ߚ|+G!D?rO@>f sF ҽa5u}|7i0Bg4xGarr@P,x7TQf2-/kO5W݅y s,# >C 0`i[iI^@ⷘ), Gr�2󵽓`X>ՕX=>K4O`L=-hfq HQt a~ྶha䯯\C@/ c._u#%sc2Є]N`HX;/ u~egg_ RvP"5zǷghrzDͭ(�n[7؅,AVTjc_9mXV,VYCSQ-=�A>L_ Ĥ `.:[&醉g,YG̻x4'rok4p_:eŵC49;!ag!V1ϢkFGo kX lsDs#cyMR@- _и+>>y''Wm"@).|пv*BMh.yME qn:ڊ9FY) W@5ZP=,'ɪu`sWB|4.18~MMuT񕌑e[K崍Żt'R=6Klf_I3)(13lyh=6`�bqFp>ٮmȜ1ܛk#=Y//>n2փN@~SWZ;Q鱲"Yn#nJNÞrbqK1_oroaLgPq4/!3Q-~y}<aubnpӾ'RK.ONl4!(YgDWx' (;]w/ټ {Ĺ;h%E6e 4%zs*n@_8| <OMpe)t8D0�%-;Hu^; H _ncI ݸRYjYoV kstEGluѽ#cE'~v[Eb}4jFS᧎�@ݖMOB,mixvo>A/BD޳@YVG3λQ|4Eo%&1,@3G$)6) ,Y&e\dzG?bX@W%5(+?eMȾ /J/JՐ-\H{nċU )6DW <_S2V @Q/9S?_0Pn-[p* ,5sIU6E4M~Zsf&&> "r+I|)G Cl2c-\uwPr6f{M*-@X<}v"vFk^FO;e8R ~t4֛Հ?K0iMڵqH1?]!2O{ȑ`Xxd9GaD|o0ճwqiÉ64F\s2%gK<36WZ*rayu1_G Sg_??U}I7DO]ba*DZ͡�gt{ B8K6nۿ_tjx< }q6�ʪ zt#zGu"Y %Z`M-Akʼn?c:v,b̊T-@$>}\dJMCz|.{m!^Q}x͞P Ϙ @>+<Fp^y@mj�{I@AS=4*ghĝҍ<W\sIVU ^>3+nϝ{#^o*0b.Ěݲ| ,ok)M Lu%{ebUw@\@ݜoB~ژ�[UU `;w;4k[wlCs.òa|z~4EIz<ngUBٽ W{w.&xONW3 Sz%$T:( 7%i1 ^lZ"_Ӱ֍Ffhګ3Kpb hF/_xz"vEhY)n J "as\;ZEcݴ* "Pokl[]EIp{ }F3{Tn2Uܸ7Zr!|<0/峰l8,/ptgJGy�J/O33Ҟ矓?_V#O{Ư.čݒq#ޫ>nIg8o ) }d:C(ǿ?y ^}h<rPy[Gz53W?\ί룇B̺qiM k)b_,Y'wIZQCh:.=:,q^,gSAh"[j@M)T]m%k9?GS6Nq,c EOV�!*t#¾vT>EO5,لft $F?i+?ǃ3O?w1*js֯'ޗ(h9[(']hpoMK�ۣ{]'qnYnQU8Kމ1:,կَ^fhv x3c?O2 q}@epQC&x/{a873q{NJ|7><�Alq>R2,~^lL*k@atXa 5?X~[x h}"D]@^6Ey xn"Jxz>"C+APLպ6@yŲڲMX]OI Ĕ KE]kWBU3ƀX&V wqĚ;8� SKeO%~܍f~Z; n7dl5bgW$9EQ@A #" ['t'枍rWU ~=+@\Űπ42C?Fx̨g'KWƙ=qt=6>-sH؅[Qre>97K{n|6Z�ŏ"wO4 LbNnzدG*Y54hJZ}OtM!Ni#oqfԀ/2`0`V~�{d_ }vs]D wt(%:ThfQ{k8ߌ< E5?g�{ WWٕ<)-r/Jl#SGޟݲyg?#q෫@MяYϿk }">er;0O>:$PےW?ב'P3:#_K@f,M=mپ2r5 @_DUˀ\Y0:ve+_'FhTa4LnPnҰЅ S x@,lK46O;d_47iYO<B&QTʗ @{/<b)lqo;HR ̵z_#nOζqQ Y0եTI!^ -Phgn<8˖S xmrc30&9u.KUEd[TcǀZn %J|9mRIWCxтz6⏶&ylM[;%{۴%�ʥ1 V@ ^ wQZM<Mώ}=(b?(u~+]7׬ >~B-sfT$ {];;1~"R,65\gVHESyH`W1 ^)hS-Фبm9g-\ PɄ 2)Oc ̳zBقBĉ{0zKp'Ɨ(^<z=mGh5PItsO`;XCս睹ݛ'H=_yv}^.@P?w4~ {zèڗhNy7e'�Oߢ)`s C|=4^8hanK,ε\2+ȷ?&̪Gv{e#P >yG~ 2M <Uw/4cUgXoD]4X$0wD|+{ ҎG1\6zM(ww*@9W5db9Qg ?p'X\fF.4ul/}5ƽ˵@cĐMM(?�}zl~`ܰZ7UsT<s( ]'U6FAЋ(ic?L/F@-u:q{}w8|G³�Rec޵I ЏBv@yx�.r_Sb3La_ԏ|tVЭo@Ndk[nFKTԹiďPx}($Z@zȒ=Ip1W{P{Rg}G1Pڷ^׊k^\jFv,zւK2ۃe[|׏QG9Imhuv|Roh"Qɤ+}lMS{gvFCV]yQ7v_>m{-_8އGJ]&| q5EKN+w;~d>oՇYpZyp9o mEy^? UbW Od7Kbo{0((p^R󉦷%%[O Eo 淜߅c1͋e�WW(_ { eWl{/ߺ@-I/~OIP~ö8tGbH1w~Ow \$JSI>@_<_b$.go?Ё:omccu6"6 qNz ~IOψ nY!2 sO9Y"R7R rW VjuM[m6|{=ā"}ݪyѴx#L7'J_拭Cک-Im;Mg?X]l#0>. ևG@zQT{?-Wߪ@0#3ؼ)] E\.;֬)h\xlu.c6 E}fѬ'q[ /ۼ9xp4 /B6L}U-@9s|mVP>].&"�@o b>VNZw/Y5}`}%bGRD(Y'+; t<^c߯rI=EO~ǜܯpeǣzOjvA)A]9@S\)۫Հ.!rq+_\TB%"V#q?v JzA~@lֹsٵ@J?1=9RdqX,R Y)@d5q4=p[n\d,! <#I'0i7FI̢&#kr&Ϝ^`*�(adC@]|9ZJ)
*pJEZ! ">&Jz",08ħ, %4qMQ4m4`n vd>njE'f_BFa@~<0kfLǤ~4fܻh.Mv7p\ t4]h[aDh4X| c T}HWJy zr@龙}; uh]#%h$reP8a[@ީ"8 ˁ/!.}Y;Wh}ߟ MOfǩOrk/N�%D*oCb{!,7 [7W1u-F� 4YUD܏3�99p {/^< 4XNh׿OU4Pοs)EaX{<Cӿ#,Fe-}=@y-Gmv@1{zyv,D,n Į S?AVh8l@M]=0M-|8x</E[HWyO~:8 ߗl 䧓B ,z˹1n Rpn욐ǏxTG!n>LǗD>|W0Sy> =/ycs([6؛d}8ceͯwbTz_:>n#p>5m}I 3ݘ@dkrnH\r@dO'.V�2Sc\iG1N_EA7< w/9C 35ēN q>� k W|gB7oAh<$6gbv߻j-r70|kǘ5[�/r_z[ hw9K-@ṕu?=jۋ@x8}K y Ei͘o>}ˬbi!kX)PQE(Є*^NOiL�PvZ'/ơr@DjQKU?Q"mWDʸgIcc\ceغLsՔY UN&C>|~%I=�ިbyI` hR̿miÍd r4W{@h'=@{YmI -؃Eh*|PTR\b m}|@6[V>¼5g~B ^xԪkz4|ñ7C-U{@/VϏ5 ^My=cs)-T{HܝZ;Lӓi@{#.i4==l͗ǟ>k7PNjz�^Pn?Ts86z?jD<?) ihNA|-jI^vEYX fb,yy1ӷe2@rڀIk>Tማ~GBgx?؇m}@s5yY?*#Y-0~-y cdJ;hN~}WG*#N~4OSV#?-/mI*.nxhz#^<'@(;͙0c<J@tSK�ЉGC6:%oxfGZzWP{CE捄u߁"[s g!<exs7Z*lmB�"BSz4šWUJy }@󘽳[v׿ x%)$c-yy9(M__0I̹1^kz^3ã ׶٘{T_^ ~�ڗǙ6*?qG_�V(`^=:(op|h?VJ~Q߆043ti-]E NZb1 *vL^5*%{yX.7vUی^vs*6`<˿cgC!@Y4`0bGU}ޓ,O/e1Gižz2qÉ`l"3seF˺u"Nq?4Ss{.!`Jߧ2}J*0E頻t"WyB"0&SL�+mhx$>o톕IhzTIn[9 ^~|M!AkGa֍?:2~,b0Ԓe_  r &_3|piut~g?Dui IBܶhݦʆ{j +^.>%p=Y~ǿhkE@p7ž:!xa >HFhF˴<W(L@8[f[8#oҕ=wK5/؊"+/MM;vA| Mlt`-{/ �27=*{QJX+{'q5] b~ b7$' Vw]xej֭mn|(#fk"׈ϡ"!SE4+\B9 {<ޞh]刻XL=-Ľ6(e#Yz{v#PLU\/q0o۔=T\u=bmX]E O*b W }@qGS cDZ?HG\w`wfC7>ՎxίO�v.+yԯ v?GhZCP4@"K'k䫦VU?w<3LO6-Qtȋ=ETׯeN`8/ ~u:<?>0[lH60vլ t??WwgOO=5-_{ 'E^aN[KkX8"uPH@=`¯\(76չqR|t5ѝ;ۂ[sNk DvǙ\k4[[yP\OE7?GdklЎ7vy #􃀾t}P,Z5wqq>ڏˏ%+#LU(>ww\.m+o^}!+ ^xq(mq�{5F=hS@?wv;f^Nw+(fܞ5U0#IOs y&m74g\cP |Zı,}hqĻ;BԚWG9ae@U[p#Xa*C q7wtXf5~ԧ"oӰ@3$PK b3Z29B+jnCe_y 6VA _('ɡ9V@wF)?oxf{?g!ˍwK#[ Zux%2Wmi}4f^XMwskh@ySЎy|/r^[>u4콀1~Mx]8O<~' Pm Z۟F#\ghtET<wl?&۪;_#"Lݹ I;`l8yUl8㳖9@}Yu"ǯ, ‰ j{= c[r qD>@\o.{%֋8>omF;׺ob�Pn/D @|kԥ4E3H_8WsֻJ EsPc�3#<1+ʖ7@aNΗSF)wE3K^^LK.Įג9r( ߆hv";:9O^~@`f*"H_M,o=�E&@-mzЌ>><|fvh6~R-ϧsM}v$ кP[?PJ !'@0^~qL-p Fݎr4gχv +W1'zo687kU֊G*II46t/>Wv7x MK~C}xi(gp ~Ȇmswa@5ɝlӗҝʩPR�Ď PxU\m:ERr4UݖDSw+OBz+c}�ⷑWʹ8ύY37 y$P{=qN6Ww9噻OU ],?}UswULAEbTAs&4v(Ϣ?\r?%7fט^A\[Î^F8oOy"RE &ȵPzt ivݒW@q)b'G^O[o\嘇uߝFLw/r>rW<y~xe�eu;Ws5Fp҇D>t6DϷԫ+rJ^<dz1屢[Fޔr7Y9OY>~5�j/wÀ1>I\)By. _(*Ύ@PfMzuovRv eM}]27GʽRhpDUCO"VCnyC8g["G ~Bx<dCr VhpRC;PD<"n1ug=+4U9٧<3(ws 8 21]W{wS6⪱@.rlQI_-Ur?ۣpUNߋ_*R>;!< hmf@k Y!~|OxWֵqoF\;?b/YiV7&>NDp~!{]Uhޯx%1UdW�SO]% CUw44^\%(G.&ci<Ԟq)r7=׺Vq~Z?cM"5w^EnݺF`?@s=W7XmhV0}){v߷@mZ9r KE/!TMSUTxu䫫 9wrK ׅa'k w藔u,g6;Q�5"rCe eX"Q@ N[#^샃<sw4Jze z=%+DvUO\(ބSY& tnuI^Uq7R a>=)$P<h2̟clYcW'Oex#; G7;_R&Iyv2J sѪ2k"@5Ef焦ZS3a@YT,,ځ)7p=aawa9E kGeYƤP &[)ohi"/@wxvۗp_lMCj 횪[ܴh(^.e5I`֕tm݇xWW#db/Ka3>W1mڢQ-e\&EN[d1>  ̓4崗Y}f/yuFOPd D/7\{;{vho`=�asefX._ 4 MuTJI$( ҃f14?{-[^GȊ.<o.;%P\AHWZ6;L̩Ğ} F#@l?Ib#3g5Y$5OR\=]Ŝ+{s )W9s.N+fub /ٳ%8`'0_^i{H%WÀ]NL>43[o<8PSG4eR4wA.j�Q Mz�U+қBU(-C3b;%;xNF{_/A<aP6dNꓕ=�5]@-3&=Zjvv~!;J߉X{z'ն?|b4r%9[]{=%XCk4wVc^1};-\=kݶܢǻFZ@}E_랄 r$'؏ b.WF<c=>tQD>/ւؿRu34&xSg5b3ix!OsㄯK1ҍgN u=@,1> Z:44 9ے/hյ1R|{GT ^SQ(7 b b.e8�m1ܤi`\y}| =RMhvK)rqsbՀfGBvw$,婼m!csy0,_,>hxc>oP-</{|D<ۂ5 R[g>4JFm\i*PL#ce; x<9@̘e_̋uSQQӘ@}&JFeBhnaozdyӜ{PWr ߔشI,EC>b}> 4bdKďJ 1* ȒEumCXpFg :D%YZ$ vY vݛ;NA-'GJh9j'm33h-0-S/L5)i~q&/myMk.A&G1e V=lfjc/?Z o[[.֝I;>fo+rOJ~0i%7W{*?Πȣ/ O֊p{zq}4ȾϽط 8|YЙ erX@SR'2U/|~93sI)eW#eR`ۉ{n+4.8SBKu^vZgB5~_@չQ[qg6u 3eP@ ]: ‚uy x?rI1dU&)y{7� OK錻UkB榼lY33c->h@vI̳?ZqYЎO Zga"pX6%N7 Ĝ-\xPN[t&=qHot$_s*47P7;5?=/חrvE:WqjZL5W|gr0XBaގZ 8k\-Tz{壸6b^Uz/- x]5ĦU$Ьo 5sw_NW <SGG@-7uLJ Uj}NFs6=B|ot@o}�\c7Rr2.!`p³7K/! Wb)6@S ~(W< {xH.O\s?:9;KÜ]aCJw؈A q'qËV}\^ *}9+B]I<pl)Pdk/`|?y-vȲNkR;ğ{{ڏ_hnULjJ{63Ow|zs3 2GA3Oeو7{Z!qB vʎͷ2g_%3#C.F=+TIs#P^I*!lVI,j>$(>C?;K`+}}?uPܘn�WS/oz -K;i`@{ֻB2 @K�@y(lM^P't=׌X/5/>'92=D3BhP*ĭL:3oEPvɗ1#ə%5T`Z1{ (9m;z�7I|o4Pt̀~|Y)B q͔[Vh@{!3oa19 |+u:oq>DOy#~ZUMvXeفȔ@*:`i%�ٽ|V`MAk =\hqW+-;-4nյh2s{8Pn[ s%YHK[sOch1* 6jdz~!YY;;/c0ςb%(I> xîH~3j5[!N运xEcim}�L؟{Q8e—8<faNvU}/(b:‚~OWLsՁ@hZ<^^yd43]FAE-NƗ;903%Dx]xD>-%ˮ<Ln[gt"֋@{A f\޺?7EJ0눗(j78Xi,b= :QQ'PBKߥ r^u~,X^m'J:b\&JL7v1MvH##.Rx^X5M@|Aں Htv1P] ;e:7@:!.-HA񞍚[ybp,Rqf^,8v6҅�ƒq g K>W#oIYmp'fUmXPDs n#j ؿ;Vxe{(>7o#NcNnji0=<U#w]Ӛ 屗o8 ԋ1ˎ)5+gI沷$~sE!c"~r㏻)rwI:o :G'7IMݘ4Ld݁&x.yzKKM4^_2Kx>/. nx_ st_1�_l});R}÷9ˢCpP"EX<v|Û<50ٹ3ƦiIJj>,R ̊~ kay+q@> c)#ܒ{ W@{8\P%oϚsA;z2{o~f6~ `~<q_ Bs];Ҭ(8{e6q"%!PR56ԍ23vN"y0p(P6>D͘j*PXsamr7byWydL)ϟh6vfE 1Z ^؉쫷*KuK}D:$:>W@m nլ\*S>Ltg�Þx|~7|kYpñ{杒Bh#0Oͩ&>�݊PSO8:t&_c؅F=*|(50Z-C2aOvnh'-R2ܰ)sO#f.zc/P|+ZpViNkf,Nߝ`U>ҷx>ϵX^8DcEa>>zxIzh%{?ftpK%UjhU9k2kd՞@ L咚+/Qܳϳ{ۈ4$Qo CQ5Cӹ՟d 7k b8k "Wd!؟mn@?�BPb K@GttG$oK~?.H/箶"5雁_?uK2^&Siuc69&l+==t=DiX( Emq*Ob[ m4\x>~7ҡ8g)`]qZh!g wWD}J]H1M@Huh G }_+@p-}ϕ;_͆ քn=�tbޓ8&5Nw} ]Zx0`E2ow|E< 0_hYPu͌]Kؼ9OܻNvb* w/\wWN|-~5U@Cf8s~ h -z˨F1c1?mnD3jgSe>9=hb6ߣ} Sk5^.Q)0v݈Tdž5~d[_)=.Fm]4WVk}}jie(0r$>V~uFۉֺGP>~VI{1'E}Hm Tڽ<?S:W_k>\|I(nqK иUm@X\ (] 3f#!@u\UM֜}$JԠYL?hS ;_D3zq+?[)(-󊡋P,\mCwYx̛i3@j|d´3x=i}LY!Ù]fqܷۻ,ZVN-=+Sߌ掿/WtFBk/Q ?}}'jseKPTJfإP P*Ffގ&mzx*m,׀?^=gf_0fvio~aJN@yq Gd_\+rh57S2 u+zNMiE#rE+P�V^[9!@(\l%EGn r :!ѡ"O-kŹ]QosQY8w^"7?Έu7ݸσ_Y(#6_C8<iY)*2K$D Q iY (BNSR iw^{s~>wxyv>qg3XR8ϧ^ W/t$mQ&uzJ<HaQ6jėFYs�庵dxdeSd]_R!&`պTҀ1{>< @ ˫a={ڞtDGMG1\i] 3TʊtЂP/;TZϷXXk~9b+nmʺ 41ZLL[8^| xܛpB؍�aa8{֊l@QQdˈus�A%!Zo`}*b>iDNfBVN+ i>Lđk7RzH/2h!`4<wG\4`߼p9>Oe/"'|'sT,C3[c)Zi bMwD` hsn4SaQ՛ʷ|_h! B2>٦Xf-x9%}}.~^r"{)eGӊi&0B6/|j VJR7BnfP[ބnA (?TEPE׏VlrE{wԲcma} ׋J$/kå>9.i_E :~oפYQ` Wi/pls8^6@XIyP07i!WβRP8j ϐײYwZo*}�(]qvN,1GB."^K[F@SEm+/}/0NT%r_z/dZ ?ҕswslOl33B22<uK܎_B5 OWi_Kw�cd&*`&>{0u h)/̭*[Ԏ asn.u1E_@L RWv3K ]oZ_:8։5Y` Gz.zhI/AҜSQh{%a8{ ^u/00^Nǁzढ़ɽO<D#Tf{YQDM;`,q => $4Ic;rϢsxc ;KatHW-Ҋ8fjuKHaw|y?>0qP`28g_Rkr^1@U#oǜĿ,O=,jrQֱh6Tuھs@~;7 <ZSgFW43vg]:|ͩB\c$3Vnm|z @IޫÀ=mj#{qxX*+~ h7>= p_EF)P Qk|qtѵkv@gU8>/Vsk$ސ&3/{u-A}qO'k3@lf4W#oYFڑc8JF_u kFm¼h_}')gK"zmXx-x_:_ k|8O>u "dC=;V)Ψĭ̍ܽJ(1S[ܭG:i@EW<)(a6Вw8& 67;#~٭{@@畯<`VgsDe?r\4$ޯi@џqYLM3Y)s`Ԉ@֎d?~,SANk+vQ (!C~fW'BSɛ::E{|7T>83 s+n#zU^ϙ`ēHK�ab PK A<ݙ¬ yX�YqsVľ1-xd23c]le 6:!ܛ& L k\|o,c;%^Cӳ(4YQqj9/PwѬA A`I=mf//rSBi&3~żaC$S?;� wԭZ79ZRv�q#bUG@`ns)?),b<63s~;my~�MOC )8_a1=@3_�0Ե?^2Hp{o`tT CJ=v Uq8rC3="c`pc ̻:~ )MB&ܽR #O0HrUh )0�썌�JqK_Ep6gs]c`76"y�񘺻qnsW\>7 NRQ^m`% IpsZʿlcXKV8asW?خ+<l\ATEX@|ܿb[-u' ?qUmr} yͻi'I>R)[o)NwݳqL9si;6k'+ΈWE-%&ˀx'#/}a+>F5,mS< R[rOqu:*�e'ž>+yD4�ÿF_LJDRiF`W3 @{J!NjHπPEDʧ>0…. Jn@<}z⸟ _EӪJ072oFdڃxbM_dkxNHqBB@8䚟B|Ӝ&399LJX@[k-_۫2沊x3:{KA%޹@=?!DeխHz k.Z8ya7wV܏YF9[b}$MRwMF*cxn_cyXfx&DfF*(c`v8| :y^K{ܵ@_y̛EZ(Ru& bb<|Bj¼0 U!gvKו硤ȰR!>mR?|+:ЖeAG  WyKgدv<xkd{/S{X9umi~b=w@2f0\/$;!Q՘hZ }[kG8oԸjَbOpιzO-$|:orsN*gX*<؄=u!̋YF9#Թ M^l{נf+VÂ~wl΅6v 9IBq%쉥q`48~羈�纂*;& yh6sM�^;+nY(ܣq~d;ОU\ Cp$G q,}4l6�So6}|yvv�?U3`?h"Jk{d`a_Fcnv?{?{X`)Tq?qK?Z28G$b+ԦG]v>@u>([.{nw0 uCq*E-ֱQ 9N7G ֻh_Sw*&Ӳ C2OW'+ƹ3,0_A3=c w!34"N-f "c\{(=vн\ʺK:͡J7D$n;6[c]]svEgЕwټ�<3R9m̯oKX[܋GAدÕ䢩{)!~==yqOr(þȱF3ƴ~J)mq/,u?I7I"/!("}F?{~#}7q e[?ڔs;M(w@zT羜5H�*{Yv nd0sϤ�ikr*jˁV@nn(z`,⩯h? ZR=<<`=%3{"4oyE$0#uM? RS8!p%\cʠ/EzsED㼣@Oٛ~IHMo޸OwŝpBD|yU|X&w4%["֐@p;s;3[C%)z)}1sr&b¾]f }m9ݽ󍸯uxuz#(VK=HX3SiTtm-G�rXN-]_}# ǵ9{wU,Խ0uZʝ5@^|AO'0OEH*”fv_{qlFXkig8薑Ĥ kr>qׇqp]Yh>NXZ cܿwO=#Bu{ 9|oޒt+fEzb|9DIR -yucp糲 ǁN4q[ t CAW�{!M."lmaC+sx^OSo 3Y绉B #ǫf6ıB_sӚ؏ipIĞ%m,Ufxdz%h*ǴdMx5P!ztgIK vnirc_l�SaM|6 D`x悿Nj-W_ |Uh3b˜@W\1Xt{(uZ-g0PwLВ^ȶ"=>@?rOhΧɚ M݂fC-&ng#;qEt&?�t^ʙBUzxYBo^S7?&\`G�>|bAzKy: {@L}!-^B+7='v.9f帟ⷝkD9@je<މ>͈l "tm!I Z/� :. 4^A*d= $ϧ|ճx~8&T 0ןa+/>.;ŜأrT'|Ӎ%ˉyGmzj@<qn?8==2 :$uk4 q�qwko@ISbr }*~r�7rqAA42r@.9t`7wBU+0':�ψ'}Zq2׏!12#Ějrn-X֌{ OZs. 5ή2@K,4;_熸\<4݁v џX {Mo2STŠ1T)k yT`c-FbN6ޡ"_{F*xÍݽ4(OC ++Jr[!g$ cyR^J(=IÏX sO3!U1Cs/G?> 7BfƎMkP$+6Q=3 v = Ҙl?P6@+80_nۏsH4z-L쓛>׻ļ  ߦch?Z ^<&W"kи=$ oED%;}=x<qٱA#Zl&{M fbΟ-'x'6WAM-]VİsC:ժj&N`7<OZmX9jƧ[Oھ+^iAMC~� 4V@@]VM@#/_PY9(E[[*d@`d_s_pl]EP&4EgS&Q4=8<r4? eϭy1tTKǞ6-Ă;</pjA+>[?qA59{n9At y.{Mֈr@}v)񕟜8vMZΠsԡ/ GJsqey4obx9]WW;ŮȜ0ZLF'|e&iO".~B,|C,w߻ q_S~@s}$Ov=PZU[M] w�xfr |;OOLh|Z&";/~mQo'X٤ K4-ڡ�35uI?5iSZk'@d~ HbQ쭇ty�Pɟhuc|rR`JXz+y6Bmq["@8|([p_O 8-@l)3ʀ\f{OeHqJ?k0/VsÇF|=p@[#hʍ+GYinC*4!c͚;ؘ,yA{ЌjͤoV8{+4c஋9P[Bޅ]l>zMJAܗ{^ Ж=1`hmV\QYOLnUKKoJ/jbbI a疹@{Wᑉ<2!Vz|WZ&SݾoFeQ-~o0 \^хXR͌mߚF>s+ 5RY$ޤ<�=@"Wi`G s%9`Jڱm*@&*ixХt2nưr7}mu]|tum1u>;}Mttv>pQ: 9 hj/+YAX.bor̫<o+�m_�b?j<}ۑ]/'q4?푒sn aBWwnWCM;aq{V+$^F(;@O4G7BdM?X";P]a1 Xƃxe+=xS T_$ߋ_ `  ڨ�cH|b /s;,,T21jd~1o %qOc>;i.(QP7{ 1O0?3Up3F|'GDq~08#d[.t>0|}/ MG#v_e@#|'V>_[.6j;{?Yoυ]rrգ4w cɽwb\ZHyҋ\X[_|wKhF !Z΅@ muyI:_Z@Uk|< =4+Tf/>)md87O ]^軘T ~@^ Y{ {.D+Czn?#G"0$|jo؁?b@Z-}isght|%[-ĀHA b[ "<1t3b4{ܟꗦ�+j{v=zm _K匶+C @8f䛰_g*8]mZsl:pH| [O�c 7"mӤ<k~;+b,aoxQ T|X"xxUeb+fW /C쁡GKǗknij3@|xFϹ5w9_STjkw ӎ-�Z{wru3Ӣ\ sgo\uЀ6bۻx9Fl* p]f-HKu`ker]h?dɣˁZwcP&p5_:p')i3yXcŻ}Ovlrok0麻hN۰9]q2;#�KW㥿[5wm)9l7;ix�j^ҁly|?IyA@Ong/uӥhP :{D/?q h6joF#'W!5{$)}A(O+h&hw]FNg=:Bo.9Lx>}v$oDL&/4{0Ѵ1ЇmG铴 � )E9o;Vˊq&; H;ߨ\} f!Ff?3x$<"),s6K.ڧgQ9ʪn*=F'u@)>U9  _g,KO\^3p<ZЋRei;]3@ʷ;,ĵuύsSl6ij sH0PgcމJg kxK1#Qׂ̆Ԅu'y cW3@{Qp ҏ6(:=֩84]�a(�G10wrk;.<&,{!~8z/ɦD K"E7@ZF_ygz};j[4o Jݘ;7ELy^\tJ7L̷~C|y ȷ@S}<}y֖ 7JϿ44ݓ9V򧈗^Du0vR=;4+ߴ jtwuQ@օ{Y|4@ON[j68f7W/F_v#4uFF9"QmяGx>hy LKBhuo/8 Nk<{ڛ h=?/,4N?:4`.kb~tvgkhRZ7V!@?+2P Z|& od/77h*큯( M/)ĭK^|Dyi!; ڵEs,UCI2x*_m%hsC:Ut.8[Zߏy4#oIA r+-4&TTN]R*s'mZ hlHķdQׁShJ_4QR hfίǀVDcՃ !lCuuώ LڇC3@3^ao> Vm\ι[Eq7sjc3P_ I/5 3Bޢ\B;w~;bHИhv8y'�[&.e7oXi=%4�R|]RJ V| kAc{j<]qNٯړR�yj?F%fޫih晻T:ޯv6*É?0gRy;#?o)! <ye|4O2KwE#`tr=. \PvQ}֒#ƓlֹфkN Cm07n<혂΀@ls|OA5:fl 51F4K]Z%洓'~b\$av!ЍBRGo/(GZVos$|]\Ƌ~/?OA`ޫ,(VHmZd&>{fhqM6⍽jq#pͰWzW:&~kC 0"KVtwCsM7?d,W\ m6�k^G l>mӀ8 !+1*X74yҚd~jZ9 4g.xɓн{n-#%�q2bx?$R:C tSJ}9Ot,w=?*'̠nSH.Gai߁nՈmu[Ud-9n~<&5R*MQKV1z4y(w揶�)o37CSxws۩[{G,QP9Eٜ*U\\ >a?L}ڟ<6@`MzvWv.v _7itEvM *MS,"o}obĦlR-Fb+|ܠ w*bmeWER5q]m@k D۶9SJiڒ&| GZ&-F,Pe/_;K<Vnjѽײ-P_~=KrϑosASm`TS<Oqԝp8hɥoFgҏF=@ŭ L]0h ?n Y6]\g8;wlf7E<ot.C< j˜ٕKv�ZHO8'3R6)ܫ x.Ou.`3@W>1lϦU,eK*j%I4zP[ϐ—1O7j61;{]zkKR7_<JYhQ6h9 �xR}w (\r;| R*hwgGdь kQ>@$Iq^,܏X2ܬ-hа9@_'/w6ָEEf}iۆ غqu JK.oDZ?{[+L[Bo7TMފ_z>uv)Q,sz* )Ŝ{)s3,z G*,tа%U87#{!ίnJ/}CGoُ\R;sb3R謯J>>?!\;M8�^OBwze\#2sq,IJWo/zD,+Hs%qQ)hSvI3f N74z8!?VFUj}Ȱy Oex"|hzjWĿ7ǹjq n^kݾ`B 4{Dy-hok #^w?-q'?y&PB'na>iq`y̟1DCI C,oNe?3Z##c_|>253Nܿ b3:O;rPYyGyԛh<6of'xhl]@zsw}`i+z,׭{JԜ;)@X,zsMoHeR@jju_,"Ou:Qg '}lC8j}M< .8Z&VeOȖ3qeK_ I7g1wh猈x#VYJ0@䎧0/PR߈< O7- #*s3h<$;e|o^hd6 {A܉{ν@Oݬ4cp.MO§A +嶤".<+1Z( }xy uqbVR$v t"]g햤t44Qwvi�ѝ;0#ZB!oQ1.$^<FyjϮ#&=JuH 4!r^ ;hvbc@6ďxGRxOwdǜ-C6*PQ?q@6>^z n㘝Xe{_v�)~lZ$o0ij.}hGlyOI-ؒ\ɲ;G1 h^0){^X 5<&Wa#t< v=Blۥ{g1Ĝ/b߱PWS8 K&+\aYXfH߱{=NT,nrd7W3\pp^ νLOh`,pcc`<\;70Dl @@~%ԁ&{[,"P:w>\+qn50xxj1{??Dܮ-2G׺\pTAH|7 7;$bرRDEߖn'h B/. zVMG1Z biyV@^)owV: bwC^q-h<2_[�PrGɡZ~{uh[ݪi͵{拳k8,\T觫Rsovxr}YW~FhĞy:cUPBv(Pߪ? Gybفca\E;_quxu6悬ܫ.,4< _s`c@9<` ̩gE/z0ɸ02~�~JbB a=GCI%7~KJa!?RVqw~{|;]J Ն!`L//>u-ύُuο�o@ۺ�=|XOMUʹ;A|:h d'ߓf|_Xo&+QHVE;Nٌ@?6_꾒41#\5dvʟ&W-+;>8l%hq*}h:<ƕ,\HӧUpV_M*hHڱw߽ƸhJR+91 Bbe,THĕ_n57 0ߎľXz{WaogWi$]y/} >Q o-VY h 륷2v8(6F@?<>^8)yd t"Wf#臧a5k}K(gPUA`&eÖ/  ){7ZZčWw&q߬- 7Vi?_i-pbO~7�;^_s.-gYi:y}Xd [O3?ι!ч=Fhf@G݋s񞻀Y/m@e=O ] Ádݩ e>: &0=fGɘN>o8n yZ<V;f?9canU&O2:g񜫘#twѵt!1Z{Zg~m=gjuC_$cTIa9mce83n\ ZׁJ3/ۊ— {}K]>^8WXvM2Q^^b_У{?7=]jMt'`&V3/M< f8O>u@f)={YnsN[H摶ߖ7R m#֖ݔ$~W z+N^3<kXrB\%qmck⾕l@z Oa\tnG[\D ZiD_Dq;R,3M%\Z םJS-QĜ=U{f5~}{:bEHYk;UBIB,:nc60bJ:7"SO!~WCRН1[ۍfZ> _|h>~? }8;_W SSҙ9F'BŘ+SUuԑ8S0>v!ww;KAB+Q٧My|@}B귏usr:S@]yMXp4?͊52{srAqVo493gR&1c%Xg'Ⴘ<}>~" #a{˭ &(*X9¡GE% l3Tyl P>6 ;vu).pK0F|sՓ,>ĈD˛YZ#Xwٱ1WlUfc%"wCջTȈ@4 O|go<čYg'kuIv�5[[K+5#tIoZ~/Ρ;&(y 3f3 նG<5抛r7k@ %cʼnzuՌ4qsb|�zUQM 4$KSJpg@NF9sԵܳ/Zq~qg #}֣-@JҚ]5 h6C 3Ĺ;(7y,}C6s56)O ꪎ\G4>dyK<oiњxC**YXج35aqJ#86^rjj ~ %oYsCe=ve3ȭ\ӗ  ?i䲺 02+';m2֣6 KE~]*P!xU^Cos T5!/%Ixxv:|.YJԑ-∟{SS+m?:Wzy;~߼z]~󵈗}@0~-4rGCE"T]1 T.1 ⬹ <$/@(][ q\BS?˔ޢw@.jtR }DO7J{)<P6;{envT;wl96͝@ 6 kR1> s?Фߣ7!R™+RA0^@3i0 jFcpfuM#H�Ȋ\%">[f{Ǡs ЇλڈmM@G/x\߭* 56֒rgV&I|aW9 ޶TsB Q ђhW߀;V\�!Ûw^ Y&ml#63KbVSi|o{k?X/X?n9SMWQ̻єOgզ) d/ N.2U ҜkJҀ}կ_ݠ ޷/MxDOo2DcȤyq *oD/ Q9]e1cn08ebňwnE:?^<۝:Wg^[Q Z[mO|MEÁbNdsÞko벒ݷC sݫt4@o{'C-$j? Y`i45_. >߾&n8 wA!K^6AUz ;0"ײwWX`"ܧ ̷bݱHy wx՟,;5iieF5x_NуFKrDіX3`26V�nua4Q`xdwZ?uxUZ}4:@eV}ߌ6_(ECjeWow; Gѷ=�(UDXkUB5 ~hQb U#+"ҳ ļVI@홣0 {۸ {ߩ>IJ[oh b% @t/k(G/~fՁ@GڠəqNʾZ~- bZ0z#1c~(<i2] n[7 TIyC&b|O~Zk6/e^+4O*i K-{΃ HobPW$D4~1Ps;F!nvV7@\&4ТV.j͟ɴFo,o]T_Gb}&?Nœj9o.mұKnRhjdS@=_ !Y-@r[l c97t_3!́ꐿ77 ]ys;zu^RORcV`|vrjeq+;D8}{ЮM.٨Ҁ=2M^$,sI٣K}½uvtı% V5-S\z|'ӻa.yWu- y ȧ*QKCE:@l~5~1A-qO0_g8G6~y�b54؊>.Ҽ b-֭({ccϯo[~\?4N< ћ:@L:U{A㋰;:Ij̿qVeN _̷hdk&^gy9!'щ,~z\V5V5M/-9&_.z R) Zz,L)[}R@s4Z]RV: 7w-?'?Mm68K]`_X < 1)%7xɞOo>'hh4}3@C{ p\r'Og4.q1[4x{_7`:# IfTY Ĺ1 *z Lw.'܍?�JCu`3Ɠ/ \l>kqˈS&&ΗtG#ҀPlI|(<RZMU }w4 soFL]/xrN"0c@-Pecq.s[3Pz> y閷WbS:[öx`%ZJv1VID3Z;V X2sMG[WfjgLj8ِ s>_rGݣ@/f =ZćU"@w`7AI/A,(%37?<zE“,[2msHekjy�^׍4޲~PP:PC`N>r'VDV]zزv@0nۃұ(r% qCep;"tQz7}%] r=HJ[ĮT!h}pE@r?8_;k ]rIw]DZAh}\V{TGB[孴oMEIUOcߊ]Y ɚXi{|fý/V<@M;&GcGR3Gw!ͩyqޞV P 6�U' 7 "`x�v$[|~g5/[y+P]쐍KaR|䚀Uno@O.8u:}h~EUɎ�ı?tEK6�H#0hbJosSOxym1ԥW6~u 3صw+\qyա{TmI#~׽A=3f0h|VT=wM W@}٥Ҭ* ͓�/S:o =@(lD+C}ڢ~5״YOH7\=yPsUQ^&<`O~9? ZGvCPC;]Z%-soS[Rg.<9 ڏ֭Si@8ⰳ N;:B QӤK=;\Q,V.kt+n 28yOO�h[We|Bz=ƾ!%f?$G\_FSƏnG~eOIi`w*!^ׇ@+PaS1dE|+q0.XV휢@TŹzý =R#BS"/Əg|LEaqiaῪߴN񩉌#{ T @Ӝw܂=>h=GiO-G~ov>g|`J=� qrk _Ly@=w ۦZy~mE ?]{0w#0W-`b_X.\@g{|vg> ^^: ׾!7hxmw&7xT_џ !9II=/g* =ӤzwJE0KWyDT#+r5Gg^ηv4̺:[f~_"ķY(=3Њ5ެK.orj A%^9]cl.wx.:+1]m{E!ՉT:hn: .M1}6?1z| PeֺRhƣb))S W@I3~?9VtWq<UZ@οyySSfV P:�h&w*SH9sP4U9p$: 4tҢR74-Fw=W�ma:9.sSws#b_p_q ղ?G;tqMw&}QU)4~0o @F./odn m"e+q! ^썆@'w�)Es͜b1hj ydsRxw=0z`oA71 n"[(f.U'wz'PoP; o*ES*u![<'%y =p�4ݹxG _nXv0|b*�]hZ7[`~ E�R!FK nef4 İ+ď30 S~EΟz5S t@bfFˏ,)]`.FܷnƷ鐯Ϫʬ6 |Ѷw%,->7m\>a?</~#jwFV.p)bo]ւϽSMUb ΄lCNO`Ջ;ve üHC@3Wo;:Rs{HOp Ѕ]8 jIVRNGvu.@O0szy MƳj7@(~8TfURΡUA lg mr bK0߹| ];:TDל2//*ί5@@kv߀:&Ļn=?WeFԍ𷘇2lq'MO`|V^djMzڤ?3uAt @HxC7Nt>kB3W,nik,xBo;z2sqy=U=2{aFp֤ 0scc7TR"s24UF�0Z�D%{<N2ȡ)Iөf${flڄzKx&*`]0x W"�=Nz0׽̖i-^1i+.Y̓,9v Mi!P;t2^Ƕn>|o/=1!eZI?eo30ڡ4Bow|o<]q[gw\yeG �*Bu!ßv >ZOڵ|C%sN9)OC7[�W-?Y[8Gȣ@V<cHL02ܘ#{d˩)澸/q ]G;dy3e ЂiRy@+oJ?[X _'c?*{\iGWKl)`رX 78tۊ=Lʲ 8BϪ:73}e>8 dQ>"+lc[иOӘ#VZ*}yX K)O9xnkW`_):ր58�WA,75q1n)n 9-R-|2R+VcEV1Oo�}sUG @˸`$4m ng8Y$z8qNX]1~7}YPzic%@muvxb͜Zoʁ +',to%wǸ!1ؿi&7"Oz`ث&wjӫ\6֨9s菪^`]S=.s 7hsNŞ"8/Pnsq_Cl]hfpO�jVǀbxkf"ɷ]zU@̡5ʠ]>r|"Ϛxb6 DԟV) Ua2a3"_,PWaU6y0OF~Ki:E'j}5ýyww<NOq!_ G S,L؄gi@WjgCςvQQkA nmhSo ]u])*{\B>/E[fn-�_s>jIӛ~cN(K G[[>#"MjDN }5ig-)Y}G󯄋qo ];#  c`ߏ/8%`qZ-ÞޱG@>xo$4dy@?t͢@oQa\6ƾhT8J~lv 0NEʒS@kеN;;h&,NMۢ{=^߰_(h!0>Ľ~E۾ܿdM^r݃ת~+*8㯫zl@2|>?}6m0BZtySOt3)5y@\p Ľy#ĔO͈vq۶n-{$GCa!ֽM}R�bpw.o!e"&eoS#zdϧt=* Cޮ]J_dЌm?y<ΟGj]0oxpHpC@F{'̱'O/"^ @<!SiKvF3N e^Ws3 t@0WNPu:f|t?w7~Ƈ7!/_sc q+Wž A3*p.$W}f<v!!muؓ7hAvod"`mn\s.2}WƢV^jr7?7q~t񏟼ǿ>3_GƼ�H'>!VyU0Vy9V)GѬO6 ~9C؟)=D曖6h<1bfw9x9]4%y ޵BL#fثO#`uF\>W;8O'XQg} 0~'چʄ7]Iq3MO栙R)'ǀ qjuJ\ Z-9h%*:fQ/0E&ylz&@\ڌf\m07 Ms/ىy6@Ji|pnYrha3+J6Xd}0:('p,~6'XAch*4`d0rhMn!' nEė \#95u~ zxz~O{:ݣ#U!c-͙;o= _W_{L�205\y/. v^mHޝS@nmA^RG?&.t303?�á@|i\7tMխ.ڼWȫ|8m(u&@϶I!n}fc3Zv_xe4+gYsLb2ܛbSWy?8?'8G,{E=z /p-&c@7:/ S?XЗ1ڏ?H8u`{=ˀm9qڷ4rv>ЋT@E8jjIJ0<¼}Jd Hɭ8:I&$|dEUV s{_!ܬ7-GI{DW5?d^n1U32zFj?iڒ{;_^n.ķOiG3'.5'mv:Z;P]%4[blѥq[@Wy̛w풁ˆAҾKp/q["Xz@%}sL ^mKq3^v7*"^uUoQ@[1bn5;l`ϳ%W/ LrsZmdf-Rؿ7` F?+ɟ:;yITg"6yFY C&؃&rM -s-j5}4Ӵ0e=ؼDr= ]ބ}kWn4:h5E*5oQ =) ķU;wדd -*5gO@h ]u%�Zn/ƧkW1yn7  x"3]z5Vļ�;+s?toE<?@^qs>5&ef{,aHu{ wDLEy͸V1$xcV\zweh[-(M~uLyU$Ȯ_\Q4]ˆy/́Lj[[Iy�^s^˺.(bHgM~C3 .fL{}qxO@xqR1*4V/p}MOۻb<M}2A~94#~W@48'˭*inhr_[^j4%> '-gFۯ.HzVAf"Tg5jb_5{zsh0{wDk0'v4{;|nMtBh+fJkob^4rt#Dm93Y;Т\䢞<" ;'@AU|M(/"@~2|3ak] UW}KY81_+$"x v]k864qoT%}]: 󿭰rA%gY߰w~U@: G z4s'${G0^߽:8Pz;{Cvէ t=d ӁxC\]Mj鞿pxjvI{%ث".*JЀ6y8jKH;s櫚@mpuO}G)ځ�5qkhw_hE7ow}7͵w*$3^RR?5=,dEg`Z1&|-7Z*T ׁZ$/ۢIOz i,;, ҙ?�q?GFF[>"5}\ o@Wu-@dsV!?xQIo�^Y@S?-; ?k}@~ԛxZLs3B~34q=TxS͘{cy@=ׯX�46s JˮFEa}枫2?#įQ% G<z /Hgİ5gM'^7ۙ3G\O+a^Vf bL5y$`P^VbU|{K6y`"m_ r9#1 K s쫍w,+w)R֤ kqZs/r$fq +:'&C%�T/ιg* ybiKsH=?WS0T- :WEc?5ܿ=["ֶmܑ@^%G{^vÛk/_ ɓLRXOC|Rb+)8;Iao|0sB>|%W'ߒR`1R>xħw!Np~xx-:~AV~!Ȥ}1D(/>؟wfjWC,47qPhikL8CwY)Z/B$ z UK<ZR}v<_WrOqِv<ē@|K >GUzw$t,�s]=0Xsύ[O|wW|n@7덻 2X|VӌSG :%I&& gBYŧTv MS> •wڹ.in S.kkA49RCfix}ܟ7/vی}}c*´=fQə{76[< { 9}I/Zl"+.-ANt0hozVs̳#|+up$))ni> $7P|N{|j0n23 @{u.q5Wx[u~oFhy{1ѵoZƲ Oh:\ָ`P_r2Z@{򣇆bCS쫈gh61ڭF>-/dfFG0i=K6"WЬuEayRW%J+H:#^҂W7ح8 -/ K<W=?@f]Osjg0T+0}^:[;$P=7yqO%ijqu*(CâMT\{Hg^�M?hxO& M [mˎq[́`|斛K̹]c&?L.<k_W?Z-7x;[ ֡_j1,_8g*^=歼p )ٽԽb) ͨr2H2k '/"z�,V!n-/wprsoPۉ@mg+4ڀ ~4W$eeC%^cDnr<{e|=v=t9˘~LlR2q^cAe _/z /WX'y*R}'˜) jF"E%e [4wyђ }q^N:~xd0>uș1F-e@:+3yϊ79݋رz=9wio 9$ZRxFt3+r7آ`أ'~Chx&b-cpִyTJ2e*/-fšDiF::2H/NxD[n+"�m,[;2 D|d️`w1f&ޚPϝRFX`fF^v8<.X4) ]Uv_qW\\ir ؾq A�;&Ћ;Ru1 V؏4].AlVem \=mb|d BCn7}*sS9&Wg*&܋ǼAnSy=hCwkdq{p %](AOy_ij{ǀ~tɣ? ')tS)`~Ԫ7{OP鹪9vc~&)˾y 7m]e@? b‹9epWTԮbuRc&[&)ڂVGa1 EdD;!ybu@N~a+$R/`O37gn1u1`�{OO,ޑ-_U x_+s}]^ڋ1' 8rJjG0H5b^g Nu%�s٨z`o^2U 豕FrZ UmIGO??;S�{[Nc~\去;[e@_q75Aoixߓ@ʲf`~;qEh:~](@8hZʃ|9H[s2ǬS P2#6<a2}Sm@F>wCgBI=>%vuPw}`ʫ@]okf*ӯ1f4zaسo2i<B?@=|ѩ+\'8 v!W_#c>@T0 d-_J\ct=}I2M'w%N }# M_.Q 9J}Cܯo{N<ĥI+pAyq0G\5D_@6Ւ4AR>)9` Q`�Z rA4_$R_l}֨G@H\Fۇo~iDžjǴ ]Gg\+{Co,mLM~|RvWJ篌�N=ﷷNE@f}m9 PJ'5rC^؛l4 ,׊~w;Bxo?4|&J�vwO hb~Rc9*۳;B#Ϳ| x]k%3W+m -ґ$ԚF\&c1DS ^׺}$rC`}Vx ({\Ѹumh9QFMc_F@3;9^lsy2H%OESL-K ZU\B EX=Gz)>PVwZ T_GDbJ .ğ DЏ3.g"G>W}Cq}saޑN ҿ#^^98{ʳE l IzyY6^YxU5K|DMk<7Y/,$pq6L-M~4XI.GKI8':GCGN(/zn z38?.4S;[ yş"4P$ ު3U$_'<1b؃}8*g3ʭY{ڏs"{ֈon1\O_U$<|s|]7XA<Jӏ[kqut�H;%M>zE{P鯤A5EssqnP?3sj߁S]J,m/# Ha{C@oYTV K1R�r6_kr΅Y1иP]W73q|pQ 0ST1*>0Vn-B rk[[rᷭsؿs>>'5+u)N~ۿhk\Ϧ+7tٚjZj9TqRؿ>2E/tYD7u`{Q]}Upg XpfkN`/hn/`૱,ӮÖhJ>ց�Fxُ5@\s~</?Zb]m}h+lGw Gي@SXx-ݟcu@̙S hµs{O@be@oK[#VO1w1J ݭfCtcz+R/k{$=7.{<ma%̋� 2 sg6=G+A4q,9:D!~m|jUNwJe< UF^h.ܟqZ`nF 0X0o(B/7 |>ƜvT?A6߆zl'wۻ0v/vހ @zx}Ka;@[X�VAGW-Zº-K;_ be) P!+j|?VH5mA>M@dyLh<}7q[qwwhyǖ帷{Csvpu <䢈 #n$B*ţ2BPgeot9yM/d͐ױX$V1_V/M݀s{<ق}eB0>S#pBf/f͹@߇yX7~mu|H4_hu6S�Ү+~I?RP:BJK%->8E1oO[h /#n狟@;ͺ5!~u{h*njSd#QGf <( *\tިT2+*s׵VKr>Ts\ h`ܮZj3@ᵈx˴�CB(0g1cL?=VwR)7ԋ5}V>_|ϯp0 x4S;6 mmثԎ=�򩝅~R͗E-/y/C3 n$:p{�ѯtVx=/&WY9K@8-|*pqۦh*HyL=YQUgu7@5+^rE˜E[aH߲SwފxQ CG|k#G'uwQ�f!gH*%*'2�>Q2H  Gu80?{Vf /~R[ Fϙn1p0{:1@%K{]n<0={RpNZlx M7.jF[ϫj[t+֐򭎟4&vCx=3,-Ēw׎1#PgE@d*}'x()įb㱇}zI.n܉'>? 6|-Ck�Y.\꿞@S3Uc yPYڴMo9J阧)E_+A@!Hvu`>5sHzNrr^6R4Z{/In]XNz R:jׯ0&PE<]߁5JxsA 7ԂOM]\P aDWT9󌿕\Y!GBb t! c7$Pv讟1lX{*s&3hFm ? ۢwWų߻{|_$ 3 ihZH(i}<8�{{򧬤q8ť u c*hzܶe l1rDJ 5Mj<7�rkI)f^;&7ASFF~GꋀXռah߽Moľ,l=@8ϚN < 4s# s?#~s �z̠4v;o%6jJu&\xX ε+ophhXPYM_ൌy,io4>[>4SVc=0-Q LLvBlW [ko-_Z|JXzppt"ĉT(<WqF1ŧ&ZWFS ZyQeF&rw#%�^oqhA??u 4UZ4% 5>XYX]fԒP3}v0Pi ^&֯R6' N4Y膦}EMJ0/~zU 简8J8@,&^1=s!,A^m¯� kLsn E=Lz:w?E�j˹mniw>e-P}K)gv}&< C8�94<`3' ю"^+8~ToU0SۿyQ,֠B)|pGYo9_@^>m{HV%',⪽+/�eTA9~|6-'5﯎ͲmQ~fߊy1z@z9Z:G(c11:�Ax'U!~N icwCB2]u\vHGB^#LGmh}σԄPf{)ʥM(׻>❶kn ՟S+i8]1y%4+/ꤦhp|.}snު>U<[4"g1 {3Tb4-g*2u<L i~Z{N9#ۖ `~y� ï\ 9hڅݨuף߇?4P* dңo= Le)ZhR3اF2kA(yrա7: W̷G3a_h!©pFt; N7XXH-mފŘBrTj^v}5g u1?1H0Za8n^-qX8 r#h`W"ؑ#@|hg6ap?y;,~qgf=O2;𹊗[8, ͮo?+hTn"}^0E^]K ڃ?*/+iAsEx.  j?Cn'$P>/=D *дk.`xQC G(]!o_GXw~/v IW\oGmDݬmh\KmB3ZoW={ʬG:bd2'b^z:AX3x䌶Eݸҋx N n׀TB.]҇x,'_]RPIݎYcp w3vs3V*!;z4sڄ=aO"aMZZ'+]8Wg5hЇL[6Uou�1 -cD\@@مZװ4\ h$GH:R/w3d�MN kS fۘ ䷥~4|/ hrUKTM_hްMM*>wz^\ütqDmO:g4Ni ÞP,zO-:v3bVrvtY^ۓ M]hr@Dn r;{9q;*\<Xlﶖ@.7]!Cނs6 dWL”%m3kw�c 74x :G:'ЪH␻Jǜ@tV#g\y;ZmK7|Μ/>.4VGܱv@芕]Γtv,EQtTm}{d* (ҸT2&$P((BH22E&$C2g_{k~q,F"A8A8C=Ot|>;6[UY#7 *)Mxl]=]BԶ |3AF9ty2'j5ľJ)f WJ�dqOD-;*fhfk/O=F\Ud/V @ Y澖U]h`U}f?\7'GЁ6 n}@|gug P }u82=q 7Goq̓'_x"hu`ś$Z'#([ί g]F3Zݛ;BtC3ɓ=Ia@cxH&7.o< /Mͼэ}R=rm{%%H<ڻ}~$-CHyěs9Q$y Ӳ+h25 -nF^0]qq?~_.LAGCzm/n�H0--B mw^@~ cG)F/pxtO_ _]m�枝Fm!dJq5{A85s(umf{O[~YJ4Y@[x߇O#Ao)HF2S v AI]XjX"1ygY8k̿y R;k`]b_RfGG�O2s42ᄌ�* Աb-qLՆ&3:e玍hLe`t"vq붡+AZ6X> `MOKN,n;;:%sEv=D]\ 4~wt4bK+/eтD= |@Y?ܭ炽E%0 NSW"AK˗un8eS 67G�M 4=\Y".hf2 VDB@߫tCj'bYr)̎<4bH_s п('EvrOahj$.y87xw}Y .}5oyg639z-bw J.t||v¡+n:y0R#+ vɊ؅S׀N.G\^3M<LqfQ8_91] \h{T€۲#e:D]*Zc[Ʃ : F :՚LeS#睓mWmÞ.V. >)ƪE|5nd]k d+4 *@l7�zǑ 9%<Obg85hGjD}a7PkA@|΋ ӦVD>c?+l$Zhhf~ټ7(:Sf/8 G[IޙA\0/+ }D7$8k6]oȒbi4Ӓ!WXm10z*w(EҾ~`Zpw#IO`QϦ]@o(;[t ImMZ\w?P$Jy JPiօ7potn0uv9~]D|TVsGy@= ʇt]ږq@gOOX�Xc}V굱'\%rE?>CD4ݜN`8z8P=],�jwnZ3ӥ .otR x\9fNsuA?V(X!nۂ=.ES#-3os;!d) :?, {Gvn ·74MZ,4U kG+ɾލXHsy�6LW!c2/:ov4D&.� i{?|lbbѶY#X:qt~`p_GSG9d�nlﲑfܿ'w n-.@KU|@ěbc>Ճu_w^mS]$}|M~*P_:W=> {a/h!b{.߯DaQ=ɘ;6^E@aCMGMqGy2%0=ĹUK|/v/ !l=fdgbartk z-zI[(?�`@\|=o:|lr|Qd3$P9uJLPwہzZzqL&nk*-`=p},:g ^=iޅ@*7 dǚcB{+ Z FbW"imFCӳ&fm�˙N:p?Nq|(XiWd]<z9 a&,:Ibnó2?ӟD @\ss=^_T^bѼv@OxHɋm~9{t]V8^i[bպg@GG/"1Oc#}*Px> νȿ JÑޑ470Z(v%ɩ@_teOoFr#a̽9<DZ�uzm6�9<;iS]4@~tDȳMNk17Vcl0U/ujx�Uu6àJdɏh̖mמ"C<HP0(ъ@mql?A NnkE?h!Y ~t!:˲wԊE s%)[DjE1MiK@{qt!}b̉jC\Х5`=\ :OG WʲnHo@DnH<ZWoq$s#H4%,\bvW0']< ߊwඬ>3"Kgf ![~L{ni}GE;q}VvvR9O}^Ң:6~b$sk>q ePZG/`;} s9h>6Mۯ1u%zo欢E}hn{ĝ}fd)i»f1t Yg ĴU@~ujM0,U{!k֕#}V<=.l@0_k8TW+?jݱb[k)ǠȝS^ H"X(=2M ѴV$fk4a{8ߤK[c_Ƙڗn,~:WOq˵teIl@,!Ɔ^.5և,{:iuF(�F@ ${CƧOhڗz *Oܙ\d҆Y@𛣦PeGIaaI6RG{zE;/g͵N y`Z2k|W}?ZRK_!,h:yHIz/Qp9(M[�К w$�Q2A#[#~QTՆ_Mڽvc/�EoN@WY{r%8 ' 4�QpryoB3VڂТ Òa9ziaz-Pn:@κUa*=Z ӌ{񁨣 Lto=~ uKe)"NL>)%Is|3^qN?Y9 g³%k^nϭo왥yFfY<GQynj)Ӯ5wEє距 |Gzae5b$-ME؉GM77zFu~X\Q1ĕUwzB4DGG3$Od!geA90θXֈAKGVYKkDڊƎqC<ב~<祈�a<$yk_>zygͱe@Oy%U[Կ#*{s7#diaq> To$q΄1{&G~ FB3nxTI[ZQ:}kkxWd Vk�PgO <5YЂđTv0C~ PN{_wA h 4A[�ёc 4\Tbճ3Hr@^O|;K7MrkYUqo;$#О+f#AO�LoGWPS<o{yqTFa 9+x"}B5)@~}oui(H'բިgJ?_1#>Dzkf#WTř@0z\%s-h ?ː ќۅA2US}p>[&؎}8?=9d3[@e^|MJ+l{%#xÀbzH%W(?ڻd/2W�*3+Ī-7ǀqK@*Mw( R4qTV16ɒraZI"n/!$h% W6hm'ju,81@Z�ßf6�+HD 퓹sQ .rK^sŇSߴ|[ϼEމo&ȣ߽>!##{:aH>bׁOC¹:~u#@ȉ4\}YWV1-|aYҖ ~袑2G<z0k~0sL^$?~Ŕ+m P{0xƣb#aѳ@<}:'@,j_=%>6CyU-${"S |i@LI? H&'Z(LjO˨R-Flm aZa==*~9e͍@Rڐ90Zrw-4f�9?7V9Ͽͻ" |~ؾ#ǿ o k|_ϳ#xc# 6L9Va8߸ts[B3_bY~.#f`pJ>:&;s[<aDA HmU~ӊr@^I X ݊'Wzשٓ~Y^mmq\Yhɲ r<OKJA\Um=|Q5!Z ~Z3Omd(o hǁA=S3+<3 EU^bSfBYV~lU^o,0s5{"/far܇ yo*#$UU|BC^5 =^3;<?6>D\>@$_�6rۂsPY~:<K{\ġ=ova-ΫW rIĹ%!,I@d)J_-KoU+n* ~%e.7E$`/N\ e'À6f<w PY޻@q}R9хډf{y nP$V tU!R@!h5 4->8Cєv hc4% mė9gC^!936HPxYƽZc@TvSN2:&vFCs#a. [ �6sV$ !f&Ti@K`kY@nчcV@|vpĜq|{'ah "NSkZ=N9- bUe;)!wF|AWZԕY PQj}`1w֔H ۙ$ο?E̿3B~z+iJ 쨰?scݸp _-rϩ@Չtzb>}YOuΎ-eiU6WrS|++PY@5 pzk?;P3 _Uiyq$ "Z5Lz>r H}Д%ʘr\{OޤIǤ瑻\-]H(0+]Tw zɺQyG%AxنB<ӕaO⼏q1de]0\|uAUM!!ż{htMĆ ѧҼ_שWKp}qԽ/�"Sjr mYӢ�qf#A.Wd?`J-w&6Dn/kFߩc>])B25l:{ C!~ ChG~g�bkxΘ6 ԃWSEcN9Uԕs(Qwk9 3_{raY55BGuY!yIa٩!u5OXԣê@znK3 ވf%u4r i9ϩT\|AϺWqn:hXJ3D�mɶhoZ7-G?h<o_7|HQ80+w}GW7*5|zs[^C Kǵaٶ7/Sv=BK 4XP&{IoO/gR3@3:qhx.[^&xRtgϟڃ0x 9.m)�ٛߖ@WIH<܋3 ?X$s2>fPy/r_ &zOF.$0XP!  "¤[?oޟȗ޿#WfɧHMc $8wh&{+6Go@3(`;ذފOq 3wClnnyD{mCgjŨ%[Kp?[zfO] +ާ;{ظx{|^uVQbt /۴ȝ\ڢi}A/Oa$hҕ2}h*n =?w4*)sKRϘ׭*_KkKIa{ ^ g~‡Hk$8qn3 sO,{{Y@5Gukjod�<H@ZNl^>?)_u ؒ3h%n"֏A҉kqgGp^'9U܂wlWV 53o舷~cQ>'5t-&={l7ǜV!}Zϵ{( �5ehO߽t}Z-^/On"E#חқ@<wuUywx ~WaKCR%LoxHG4n򼽈>Uᇤ`(i(|W(׹j@1h}l0T7u*ȧe9na]Ľ)W[-]})K:GmHܹW~�qx)4<e PA{~%Ts~`!x= N@r ktї۱)lDZm{C~dMFrdO:,>m v^^1lפ><Eqؾ&鵲Ih _~UI8sAޮ *Wt掻ximcgMV1ˈR; N.XvEm[Z/c{y~g ƞ. ^nž},(DgK.n!7qI\M+?#v:7C{j'@yo#ٞVySI rwA5K,Is`NjTs?%!.Qah ŋZ?su9qaPK;z`NE,oœSiǐU_{~"W5͛xޔ0[ =8^^kGrAG#CwG}(ֲO{ ެ鍯vrO0*El2bTI>=gu@6Dm/С:?la4vSKa:$L5e\)>nBspǾ3`P'2$xa=amWOh0>/ܮ^Cُur>!_gW xow{4}:E4~m0,Аƨq@_"8"vd{@>,xjw7~S¼(֒@Sq[y=1ḺUI[sQ^~GV>;N[ 4?U huB ֯AgJ>kOQ8 و_ͳ2a7KM|Зo@n<pA<Ina@='{">>ωZ/9!M5oiP.ꠈ:Лy\|xK8P+z%%#YEo}0Ydl͇ք_c!h&4"W�duځ9Cdٷ3?Yc~p<;du.P?j^>$oܾ8&*^ZFmFi]d.+Z6@[ǻuHTՏ\??{-s1q�u\-9h3_T"bc ݼ9c# 7;8ȧ^ɋcxooC̣Y]%2{{UW s.L5 e�1/EߊwF@eLR[igY iD ̫/Vthov)~eoG<>c~%5w<}Q71h׈թ@H/, 4#DNA6y1轇kϥf˲ }fdmFݲJ@ݲ_q{=AW_*c6y 7jZ̀l1$-e~=ҷ_'se40F2s�]Ñ Mo�n+]@dm_uϿe=8|e?}hsM]lk"i TﳠH@)SΫ)~/"q@gnp(Z{ lR8F@X s̭Ρy"tK6^F,N hl]Õehf/ Ɯ&usIjMŮe[qwXS'ٿ_ [/z/<Z؟ zZ{[{~^I@W=0~6fYLn~Z#C@o $?4 +n|ZuV Ψxu)Z@oS%Rfvb-EC+qKR[:,3L?a_eٷ1xB'%^nIH5U@Ƽ;-b3/M4 -f&ܗZqSE)=q˴=aԦτp٪1 dLL/Lqɔ,У\wiu:sqޅ9ts;Ȇdz> B'&t^ 1ҕ'qs6uAu>8^*j2'dG>ܱoE\^홡yo.*_x*k~,1O%72ccxk3/"gw[u"h% 4^+p1"tVNySsʮn_<1jZ4 dh�bBqոRuNT)k<]%J9zH1hJ06{�"g62D콹>u@X "j?hYq_% "~9bazidfXp&7"֟v6@{%{ՕN >?:K@xC,M 趹Jdه \|'Y2<ּ%OwhR,_Oe}+w{XvlGJڵeƁ*u{k7TH;@/E\Od |&5ӿAV�{+-Lye{k.g.5'hI><-; ${h)gڟ]ƴxi?) d#c[İj Bc4ֳh @}O G4Jߟg_j=u,v6� j∫Hy=o0+ {>ʭKPַfG9C#S]zUT E{Ō;'i6W)0b8n̽ *Myj1߫e$WuBVns*[D(eĮK:TQcW)gr58GN>}v!^I {pb)a# D4wUD�)u((DطU׻pTm;)qSD&�CQ╉ P9gZcI21}Si =OPG<,[Sh,fY^Ry H#|~ՀVri= '2^ypse#8T?>GtϫW=q)8?$T$3B>>5EC 3j a=bn+I;?#eZǧ@Z(AŅ@@T:{6C|WVo<7~.j@7ĐC{7BO'ɚ;>O%֍f8\"S3{|޻z06v4 ta%HP2zrő�}|ґ˝bsr52c[[0| Ĺ,ub� ]@.(}k댣̱ZW).̌x\9vhշ(^8D9q}ݽ~=U9wD}[~s5 LT a~]۝;9nޫW@\{ȓ%E7ڞjOStr8P@{T 0VAw,{=S}6; 柫j:9^P5|T^vE͊<p>j^:v!ڡ#^Lk5 ۢ7=*159;3, N4{i@ųDI6+y+b aW"w4SM4F3ʟ|[|1|c<߿,ʿU -͎$svCh:~e]rAjH9$ߵ�C;6J~}dowS[T< i|G?ij{ͷs?D&Abh zRa5}? ``/K՗=ZBX%1[wa.z}Z4q֠>+XEE}:+4ܳ-T?A,Z?h˄kF.FO56SA֩KGq=7r7qA]q=3TI>|Z"dZbyyC%\sg/C!/taҗb;;%/WymvEm߀:xm]08{| 84Qv`}jcw2�}w\6m:Y_gc9X6 4ioWpR?% EeF=;.x?>>:'@?0hOFc]+-KՒJ꧐_ {cň'@4ʿAܢ6.wč<.穔h6({;olzƳ[J)fw9[u+]#@Ɍuo\6\c?b!ӌ.{ |\<qO7g\_ C:UZ|zIZ"^&Gc*AQU1\Iw<8(ɕ+!Ҭ@ozݎڄԭsc3@4,xIBi9Ahq+ RGɊ{aM/^(|œ[泹hf涹]J{sn7ptrͽKK[ aijrU@˕�K 7@k=؛ JnĮ Y)p~n�Kwo f[{Y8!nzO6_بrb?hFľju�js^VG2r b.X[|c3vw#Us9h[/tsb1Ē߯c�3˱4M/0֞#IAuS[csoADrkHTPG,OaL˸<mI0t: @y^ y Mwv6FJ284ZPy +N Z!γ-:7s+DL):{Kؑ9zi>_ y)9@ʍp*Rx=빾Lq. 0\mHFUf_@:W?GW7sb5>ɍZO7H k-翓B5@r6~(M)?ym-O`[V{&?v!쎾Y@NUܾӀfJe_f~Q8ua슫qL֮A_W\4}}Z熥Ͳ@f)+js^f{Umq!z;/e~]k# ՎQ[Ԝ;@J6OӁJ:!*b7>:8WC݃uH`y]Èb.Kn13}<w,.9g1!}0Oe4@8 e"6?fSXĊ,‰'=VyTMD|5xiJspOZ5.>Ѹ}I'J_e{?~~wI.ɵ|q\ EiCGq[ /WK=B1x#>cPb ou0ԗ:!{eǁ>j4q, VF 3 >oI)·1/0s4XyY.�J+cOI %՟bNۮ Zl}iOn1ASޗ1y=fFҥ@.ԁeֽ.~ lfzkEɞP<7kzHu>}iK-0/|pys'hNC1@{ZXa3V|SmJ\u{%q@zu"oJ>9&dTHQz=14oӢGoytK+P?$u!.e {(nЌاm0Ah;0O,\~G"#" M?Ĝ|T{.B_rt}k-@_l4B@;l)^Vst*<*w;}E'XT30ЛHnмB%?^5<S:Xyzٷ\J<,shg<HG XcHxG(OozqD2V'g~hfEW*yCA _<o ^=卦+ Vό005{s<^�Bk ~4tF(Vv{ =yׁù @i ?B&FԯG{/_L Jk&@]+iطfQ 3'4~u# =_oKCy?\J5s97<D|[K#w%uv/N9^�-VπNJ]wK> n@/Zz] bHYs(4%P;9w#І;_tT|K?YJsmU~x$<oQ>IwmafwJj@_Y\% _3&}L^A~9%9qmub٩"quu|f_[楒NɌR){`169ea^J|!WM ڸM#|ވŕ!C`d ?F�),i'NvQi@k+E?,vmExZU`x8a&B,6m~`ѓ9ܝ`f6[$a_j X^[psee8G94~3Fu;a{R+G\b&Ќz:dzmCۋ4E7T%`r;1b-xp `Őgfa`c5f >74C�+5 *ѴyW 4Z3|;\u%Fg  }yhw:\,l;L :oܕDQ.@>ttJ4=`z8Z ʎooSŠ`Ek;'G푻_"ޒ.̹mFie E9ڔ/w�eTP;Ӡp\#x(X#i>Ӂ1 0G'&ūY4"$!771<gWg }L 4סOy\6=GlF&Ē).ݭ]gbae_vII룆 p^l憝�B{K^>'fB{h|*~;? (q]bն?sul?ܵ�'vew@llԖ~6k!,#z%.e[_jx H݆Ŀa!eΤ;O%@̗YT,hhHǷ@ ]yV *UGf{}Zc 4Dx| X=A1o6|B35Oմ'2:v҈o<M,Mr|yj 0K]v!9@\\ol{㔰:x sf<u ~2D#EXf&zi;rI)@<۲ >Z8@ ,Ľښv(H?̷ r0J3*E1k L+~N~Qֺ{WQ2vNZ _!ٶ<;4~Hթu9^ fN L~\b#}0,mžNGq|=ZfnIw<Bvɕو{\1De` ᅽϒ-o'O> <wTލ]fxMĞ|X D3y;<X1Ha= G $!n[~.M]fI.yX t/c~LzyPH 5K~gwnM,w8r'c>~10!DuT7ok';*cr<<^䣄Fv Cly ^aϾ![6VW;!?1;.Pڿ?=fM b}X&B%S~c MݹTHV+qB^+Oq;Q܏lю款Ȃ/C\jݑ^Z,dΟn_8Jqo">' B`^%ɐZ(H~R, u6| @F4{�0"=?kͤk".~%bMHC=VVx#~M79@{E'sCw4}k} 0/0@}@jkhDc)yc㗛_̻ B5Jhq{/Mb#%PĖ|ȅ^Nކp 8"eWb3Ԏɭ#XF F?Y;q>ݪeƈc?SKvs6c1] Y|>Z!! DexL-@38=CfO /Bəۡ^'b)_N)qie,K *@.a>PiE9ьћlGm:*!3R1^y~?gu{SP[yp?I_(Xk >@%j_[_y1д~u )w_'$ܤ[tCS'�A~ߞݦسc9MA0,>y)#>L1/ES<-j#q;͢~ Qޚe {6 soY+,,rom|\$cD[aVm}@[#89 ?I0 4wzO 2ߵ::굘9(@lIuG�M>hV-+"c. M{+{3;ğX4ʰ (a@X{E"k|$7ػ\ .`G1^mż\{IEk4%Ztc]~W/v<{R Z,d09BEޗD�= *~tmrq{4D> +Z�aᰘ,#qe,8|  /?}:N|>'Þwu[Z'lSan[uE73{wN,%B|`YsЎVre>-op q欑!}+Фlw!ĩH x?-fս}_8>DSmg<rh6&o\Y6ht }c2@-w�_oɺ H֍ׂ_Bksέ%a p2ߎagEnڱ !2{ݕY#~i%C@Qt> ^T"Ao-yU_-Oڠw &=B3;eq#;3&C:?*n7gހ2% 3 V6@Z qd�©FqOk7!^w1 ..< P۟? /I͎@~{h C2Jn]136&W ݓ=@JJ,*1m>ќi& TE5n/٘ 93@7.a4RO2>b ֊+K0g|V>_xfv!mk DHI(w@|m6*?�9Ogi"}D9*; 9Hf@s[{> D *LVKT 4sa su-޻E"RhNf/ĕdy>dɭ7co_k^i|^eMT.kZi@)J{x {&o/9}sP[{uq1gkRo-+yJݭ5j%j(RAʧEOt=Y mGWo/҆ĪӚ�TYx-v@\mǭ rh.j@t5?&ڜcG:` fAC3Iy%]�z h%{p^X _جOVވ=R'%{Mg Ow#UfFGY\xH ػz'm)thP GiB9i֌E=#x>$(zKTfÆ2P:VMʥ#6; t>{Bŏ>H&za Нx2kTѫOq+ϊhê'?q_o/_Кs&ֲ2P5*q s ZH&\G׋h栋 O@}yteN];g>_SBYZ +G}pf 1}B >wl>D^vn?vc0`p&DrW6~Z[ h~!9|Y'i\~+{UH1:7<ܢx؇G實1!h u{մ4[eC;8V5#@sy(gA?Naz~R_@>}!&YwacZ/|]2ùr|yӚH,}03w{.W't=wK!8oqüT$ݾ]W h�fK&}$ UL ?T }oQ\p8J�]y z?i~K4D ğ&MV!m˭ f7H<$%Yd c-E|Fy)Nk\j`eG:DW/U̼*@m\ qcm~_}'@-)# ȫq|kR;M\-µ 뢻7E7'hŞzԾ#�䛓7.#6;i>ō@G2aoMͿ?I<~W<j"ac<ĵO(RB< -Sk? ϕYު3~ 74\kVSoEē@׼8es&]̨NBjĽ9PU>嬭F~w){e'IϱjiH NgnA'Ws<[<yoݭ/W k/F쵋66459{ QV܇}Գ1蠹L`nԲ2uYS.4Z&dof w+ ojbth\;R!H%&av ػ:~l%&FÝJ`G"k2/זr@)?+0lz&׌Aك~[ys,c {mѺg2i.ڴ}|hsĻj!9\ząǗ_{疖|SF#"p~,s VOxV ὗ)b5 ɧ^˳(A[I ';[\9$CQ]x_&=.?睼Ou#+&2f$E F+4MG/I*׽4i?Y!;0GDخL- T�tvsF!bfG꺞-@ Z!05M֔\y뇟cuZgB'iAZڃ Jo=3uM>5E|kk̈o瘊{p~ꯘ<&QUbw\5th~~l:N˴䥔bk~�#ٞx g4\D qW? 7 !>@{R1l Hwhwwu!~[HL9M>GCL; t߮vڢwd@ȀLa5PZ,_a[1Q uB2(݅}Z̅_@N6-?7Ҁpܱ)S_O㞵 ׭]Y0f ߭ȃ7_Ƽ$ G]x;4x%ebo!tGm@nhΗ Se/EC5K/:8�sLXKRu@vlY he;윷Nh_i>ϽR~:�tpU6u}-"p'N@^Ԟc1 s~EV@62T{d 6(~T[ צ[`\ɬkˣcc @l'3ZTZh.; Qe?yYKMnWW;Jϛ+Bq+v!Azp`||PM`GVeD<*Z}']>2w`�ޭf=\,|ٷ|Je OKk&բ4OUFМ%_۲=Wz^jVh]:"l\ͯ.ayt</< LKu])= _B]dKUyIOږ6]WgxN čԑ49htv➜* ?5r"8@:Ǟ@O醍N@ىhl)9kW\oz@DzMш?4]`�%3B�QwpEm10z\zGѡ{@Ju:>(в#W(Dp;f;^11W b;,lxN['_aip& @o`8ߣ?n[ثxfLM"8!.whKڥv/q$u#}U_ux[I|M'dZ7a^Q)1Hڔj>Ygv;W>l�uv%εf8;|~~PUϱ%/a_Be"^{K14m ?�Kڌ�@Nx&*qǂA`:|BօU |ׂxgW_ݫ %&4&8A?� k:qޭe�C]+e~8,zGh>K}pIu1m |aФ90C0X;=kmN: & !3#C~ l}#AUr>lVe8suGֽׁakrk̮G<[>DY[0v>gN)ÐÉջi6Ay9h/m$/ h=5>ܠYxPIx@on!nY!xVg3CX$D%޵^cQ'<=un|q,ղY`f&q/*߬?geKw~z.dp:|ZK$e˷nD@ Ysa=,iyVm߇Mh|X/K }6c2~Vuc}$h*Hxe/�齨&'{tgֳ}~5yhh"jj__󮐴YsYV("~`|?Y D8k[iCU\$z0&pGg1f+7N+w_1;bRz^:բs7PRޗO<٦^V^#H_F- N& ~GJK8.H<5_I|*tpM՜{-gM"~ݿj5W}{@}dyR9�]Ɗd rϙ @%Gk\OAc:@h~9y_%1l}.-}-o�LHgT˽ЄYgfd|N}fDܹr:;_n%_�œR@H}y^EV)Lj0挹l8KKQ=|g^?jL%/jY馕A2skfBuzm�:S)As[s<I܏ 4Sz7ķ;'E!(߽MGei!/0Fe a yY9T6-sf+2Yg$xn[ 1//P43Lo0)YfA3<H O4Yq7vԄ2x~ {Di7<gr~xRen@_J\u%AH]4>6Q@fE~LQ =* GS0Wmڰ3gHRLɿ8b/]] ajI7|u!%sև/�տUOh9ׯm b ċEFp^?qҖ� C߬ ', Da{p>t59mkYwUiY@ջqh^<v.-ZmbۚmM 9[ blԀP49ģ{zEwhrAi l9eA>_+;c1|J3}~!,OZE@UFy>qӯZ^_̟u10c(Cbw"(}U;s\B^F`$x"GTץ ~`XUO} ̩Sg]p@ S :dz#D GĹ U zS~TۅJ '39+l,`"CϘԃ pτښVwUm h5v]iV9'~-b_R<z̕g1T}Yu^0EmWח?{λ7j,3" 9>^l A\Ig$|Vل=T3y ukܹB`SZ": R  o]'h퇏t7wMO14Z[hG^}< &H0I*퉭r@oX~e xYkNQǀ] W?jth5btg4as[E`8;4Tցh \>s-"@6Ŕ*NHՒԲO70[j BA#OUDPN07`#qAX0F&X@*_Htۆw܂鳃9Sp=85$ՆOp۷H4#E k\0Wڷytϱytf4}L/B ,$ٍg {p|6 ^5q?[[a>L? l;p<^Hn|ix LdLm|̇Wl xѪ{�Co hO)gjЀ脭_4eI˰>_b&yk|۩|n{C Pko93oufck~QMj,_.W+nfKs'1K/�ݬł |=/_D/n7FhKQ͉Cx]̆,FG8'-y 4vtlZ簈;Y@5DxUG}/g2֎@Cиͱ%Q&k71+Nw�6o4^9k];@.-Kx.n@<{/9sdm1r[=הė+ AㅂV+vb|ևjè9٢"թ)wqmNt8{g!z׀-Beg:N~8SCNmGT> Ⱦx‚O@]zz-)Z?mg}@{RQe,=I`(W~f;eq6+M_m{͞^:9}mޏa.<X0;uSx_]\2#L_Qd= !W>?mH"^}1}YAtȁV,VR{"{ Xm;FAbqP{4q%ےg$ =^rTZM1>o9\;#Fb4�nGWaV<[*L{>Ɯnr 7 l5tqϲsv%-D�>MI22{ /Ǟz{A8Ќ&g'0pGBE1}iqT֝@#q~@Mt5 @,X8сہgA?>˃NF;sߵ3/l b#L m@} .Yv30޻I4soM#VƏ\-qw ѧ;{q2xi)퐙o : oG|^׽cwHp,޼_CF<@~Y&o]'C "L^>N~D<s7e^C<KhSYs"G3qMh8w!\C\@w ?@=trГA}\JM ksϜ}Z ё<b'g"ϲgC!@|?LSf_e4^}i>kۘ4s^ []&VRgs@tݯOXg ;Txq\╻�*a>]<}c/|Sdko))[CcI 'Z�̆إ"5ueߧ ļ/SN?BU<M')fǥBy~zhjrSYh{@(p �DfդZ'?DcնC0W} Unxߏ-;ׄ"NZ^Ɔs -5@U~ߜb4a=f\>H !c|6}bm+gܹwOFF ym1}{&+iN2h4YoHo&C|sqP[ ̼mO؏r[Kn]?c wG3%%itQgqQc ?_=ws!ᄦwSy k-D!HM]:7t"wVhfEαH>츩&]c 5.!u q^ɳZ•7@$<P־Ƌz0dwhLgmLnJ5\:Lb6N7>g#@ߜ_%M- {>%qx7�co/́U&$ۍ_mq Nmt/Hv0Mh*@ ɋ{Ccد:[nm~G6L4f|V}!%s^H$j ُX40$&vǮ.e⮘Р!A.h %y&Lp;k|EWv 4-0h*S@\�CO~F ~ɍ=w+&bY֛"G +810&7|VfY WWGOn}M t/;գ7Dyj)x ~~kmW{XҦY,Gv_8u:M|KVؖўu <:7iۧ8c\>D>yKIOs޸!YqhZD=g#߀Xt_L.|۩ jnx"GNU-$|Tݛ3)@HjFrYw w  w7~22bv k״]NWZh@? qv7.-\y~)OEy35.+I.yT"/r'6X usMdQ3iLZq?jW_oC@E/wƞFO}4bi_ ޽ci?PW|2E!%۔R|}qCzR ;Ѹi?~2h|c/oFwnvMi=@&o.C|c,' V֯* u,K" O4S 2s]2It.ml\[u߈) 7D4O~q},Ո'վZ3wC*_uo{ooD쾉O]ڃBB3I]^}@2/ nI?oDy-% $|6 mY֪v%@pz=w[ꎽA jsxpIq4[ThrvOT)~:䳈xx}7</z.@>׆ Y:Ɵd=^*49mf}1[czj=fEO\ЄHؖo,y!v-@%(w K ֟oO"L?c"`P=d{>}p^-fu#ޖɍ{kUJrЗ>l偦V N4G3}EUco>/0;-@Uag@8TJ@ߘVq qE9'7q~DrpnmejڀqECg~[ LZS)##~3O&Η[Ws K t$5m=pT-1Wa^N.uao۳6I$z{x%S4.R";yq)D,s?2,Rk@GN[`}Rܠ]0Wt�WFJ',Zƃf&/]#.jWgkڋ3}-ٟ=|LhZ#~zϋ%\=o HeG, /s,8`Z*.uaٞu0,4}h{6$M{m302/uע#/@a} Dӿ>Cx'@ܮuM]8WJ%{ ?sj"sFyqi9lM)vH`WVy2Ȭ{C&a. FC-8T??gFwYoszw?֤q^uαA]U#*֛ф9qH۲rCGkHp|#:ҼK'fڕ@LS/y�Ű\7f) ޮԢYBR*=!T |Ur5jW/Yq5d5=B# *ZpNy{GnIw?otq,zx@u-Z5TtK]m:{ _Xϟn}J+vR Mjej L/=٭r 2&Zw w-BB50>|/-:O߁)>-B vp-ɿSj\J:cahRi,7CЇ~&o;FˀD?#!KY5@9 VoT(CJ ÿ+8ײܵ 箦q@G_qאLF]Jdɚ^'6$o\aBZ4a<UYb{4lޝ}_1iTfd|1 "ܓK񪂧@2=ҷjkJV}tV^$ZrW@;7t4ql~7x;_~xxso9Roѕ8ߤn6'}]Y&Pr nwO!,Z9@=wĬT Ƚ텷ugPfCH?5r#{�bKVq[ݢ?[aDGzl`.xiq ,i%-<Ἧ@3M~m%?Zʗz06&{\6A.ɒWe -;JC[ǑBm',C}Ŷ99hy&;1''LsXrސB$zx ܏S9 kk|#!nq)uyb>vu*1?.rD=p[ Dyfe_BpH�BQ!Aqqh~97Ţ靅f 6/Ys-<o#VJ!J^n^4NI>ĺxFv~m_3ŅF盒 ;U#r+@LG@JvziO'xo Kw|pj7+Ŷ|�1ru}:\jHGsMn ރC'V|</_{`#mv[*q42![=xMV=FN8| oRԚ$8{ߜۇV{I%ym_d�A\9s Mōn9x-Q.Py'Y}`;A(on?棽1W�SvVbunĪH8nȟ\0F\rpON>W~pzjws?k^]m\|4}g nׂBp U dəUJH^%~M\]\Hp#q.Z3&k!A>i]GZ{4ٻ_MO/bgsg$hIY-^Wetn=!R!Niz$(!* 礧!sbM-4׾hMMZ HB3n9ߕ oܩV?[xkW:tuԼ;bo|Q@E~5cZ&5cAd}uSVk_<3DZ]f#7N ѵDO*u@�n~mt`,>W(ۆ*jR<nrψ .7_KȻ|<=ےӌEdy aҦL#.ԍF / S⮗ v5d4qtgz k?tƜ~4@f{ }^osSSDݔ:Nx 7rm*}%s\EۂNfq b[eh}lB iu+(D2K QJ=saCSy/5]= IJL ?a>D$4YL O匝뗺O%m ܎?KKUSƻC;&YO*kR8a=дm/2o";֓hGʁP-(@3 7zDoB/�SV?A\sǯ�82G|?وUX?:h�w,=ӵ՟!^˭ѯ7%o2@!/mj?fR}Eӑ@PN%ϋGa={@ ӯQFIΘ <2|> ^Y6b|yA@/_U?fog}sVo0J>XfԎD)B,#xcO|}-U_h�hKsLj1u**cwlME -gݶ0NOٌ`>\S9~ [en(ephu1/b,"U/�4bb;}I8Ua1 <}F`EhzH]!2OŖYwu$0rżb&7=FiGG.46Vg{sqƦy@l<4Ϸ 5P @ +kyB @*.7G jjga.V\=CcۆfQNv>3ZIzVSg es~g2_wC_06fMp{5Љss}rA蟅tS :uܞq=irs#wϕ3sZbΐ52 ,ƀvʷqَb`t( Et<G\kd==) f+~ zHh|zIZxˈ0G(N}0�zF*a-L? <ZK@9^b-o x_Okpο߁p c4UPo4Fьy'FQ% Hm?܏7^%ϟGِ ȭR g>/r׳FnTJWb>:y5? D4_`]y#s ֖l{;4/Ry*GG.G|oq*n]YA{pߞ q _ȼV @'G;K]z9U eE3U"՚?H%~?79h/zoĻr "'vJ98o/!fwB,]?(5Tnbxp] zzEue8 bfqyO`Rhr̟@]cSF?M'g@^7?yϧս6%C}:�B9{w V}B70sjovvTm?Ef{Dr$"n: ےKOt%o w2C /=_m 1]J�}/WAU8}|P4I`nzCMaZ3{vŃ *Er=rHF@/I3xk:yZⴜ9�M~ɵ,9b}'6hm6ܧ;@Th##^e@z4nbwɖ13ZpkH{ 狫)=&HO@t5z4Aȏ'V@f@ f?γ-@Z8w -]A:P}<3)MLC<{ kMoP=sFn-8}O <"*4Uq�uG76PcuBs#NHuxP0"Í@[ !%?Bkk9-I, Nj8 �mLsy5Xr>PN �SbrP֏d։�`G86}T�DrG^T E{Kg;.}项"2w k}E, 8t/:DffˀԚ[p ޯ3 0 ij*EʣY@ضR峞9nm 4/<Mbn9c=49[}E5X2f yHd{^!՞?FSgN(:7=f);OԬX{3+"@x+(u%#�uH:4wQ<4Ww6,lƹjrCʄS㋗y}sEV%tǑWPV $Zpb뭖-7|yn/iw WE- !Wٴ $H7S*;m6kҀr8g+4〬#1TKyGw2zs7oe4ɺ{ ݶt nF{`ȅ1}h'v;Ag';tѣMy8zU |Ķ4\�hZ56π,3&W }�bh&$ԗ?-D'OR4ʼ6ijN2\6> .^Q7j@hf<|^_SeWl9C{RM烺_h=>e*fHM]mu'$8ӱГ~T}9× c& M(_={<ϕ�j$ҁ 3=2D~3Co^oy>Yq)gW/fF%} M͈^ n(8ڀcf6mɷQx jL�ujl]<tN-h" j:!XO7C6pIȾcaSb+-݊ƾ| eRQ4<wF!$Q*HBC eT$U2%RTDq|>{ZupZ�qp}S'{;_95PѮV''g}S[ݵ眼0r!GQ%n><==Y&_ jڗ-݈9wr$Y.�s"ӟV~)h,`,;}Lm 2KoYq=7Wl ]B-s>^^hd瓩ؓ4C@Y{[i8e&z-;#'-."ƙ{넄 9Um+.Csy4yscY;k@,,;e QqGxbI.Hyq{J77>T-W"AQv�{^ |"v@ UF3ܳz#@a,;#.*7DWZ )b}8%9axM<!o H1nHRK7+AHI-QCSZo#^9HTˎ"7UYa4'[MЩ)##`L>tDĽaw}xwhoN;Xļ5SZ{4_NY{_Z+["ÉMoD P/Έɫ~$ x/ĒӇ2+{'|֏G(Q45ڽdG <yrW%hH+7({+<ފ=C\]'17mF#Hӫ+rnTzG3~n8K ~μc' AP{zΥ d5ʷx/F4.^5 @|QFh+ǁaSs⛌yr |s+1PF칉q,3v:qW"^驞$^4,8=s{o(PD׹ž|*f 5ķ"\4ޚm| dO: Ԓt%LPC4wăg{_^5{ f MzU84i1'߽5^s#nWh) ^Ţ}s4ȇ_ EF}@[Dj7'#Jd|+ CPW^51 ;=")ʵJMx`B'OP VC ̣Em ĐaZq+E>"xZxpY`;Vlˎ*dَXw\V-:k!h׏`4}äT&Ю.`!qi}c`BkkǓꡛI@ R`S@NI|&q(竅@<s=!zW%uoc/VSPx;os2E/l{C%&d&ĕ ꏵ<t e;~/"գ~%L Qc�yJ/z>U^�E=T]AZu?rܧWEk-KhR]ڋPq{ ewZgu,f;\s;A [fu:h ,eg!fU/2dcbP7*KiBO"Knlƹ[ G~LeW\ZT*ACz˱@(9(rMhq{@|ҍ9n %]eTD470Y_lA>Xe17=YZ{$5z{|У+6�E0o{{ V_ƜnQ1orw!o, 59aWTd?1{`]BU4ih s@d鎕a!+wRW \F ܣs)ϰ%G%9 Aok%l&}_>MF\tze:wu-Y xq] 7ͅ=k5ǯR_ ^jh.ԭc=bM@ply> Ԥ Z0KÊkAhfǙkl35]@hu п4|?V (o<&%]qrFw0vU.QdBAJ63x^vh>7Ww Eásjsmu`u;9ާkL*ysڔ2?F~5|5܋^$7dDH&bxSd?j`s׺9\\=e#(= _s(@ix]FAOTZMwT"`A=U/*�Cf <o?Ȏ{ dxd5 4ԆXt?ѿTX∦5+~}w)&;",�bލΜ~'|h$n be<@kx&? fF�EzBhG_[\T[% 7")Дh݋m RW</пf5�/>"^Mjl6 -Qn\KV@m�Xd5Qs+\О=֕ %vU_OK9@{pbo&]~|M!b]Pce^u)Ĭn~VUZؔ%htK֒[rEe^5Nļ9;HpO%.횿ǥ1^.t dh?֊#^A&Čw勿cTV�4c O{ "^{f=@>({yԌXfPX4Z<" Ǣ#qގZ[;lY{8KgX|q`s== m VZ[/wuǭCmjP#k{8PDs7LϬ9c] )wbQڬ_ZVx͹^TO1v]{~ 3CnHη�a  36~&/kbDei~ ::> rmů- fE0)-+ 4Xf(I (ΑI~@ xw\Wh{rGpij\ʸ#vdxh}Wŀz*4@&Ğ3\2p mPt!P$F$f@nwZ]S΋A^% ya%XEpGRsgOJr $^|ZY6hҫBaFQ6s43=[0v|a׃q_ |_LuıZ/.'Qq@mw_l GThԘs@|.uW鰾f?͉6onpX*f!wM:\3r<Wfq\ u'm]hҶ@/;ЬubGן['-�.TWd$f`Ow'md~a7J^YsnN <p}q<b_4i>֕lth#qp}&:äqi(?\Չ}Hnݼ ۺoy+xE՘m�b,N9q�ͥ+=cPKrlT)EI�ᝈ't>o=8F\MOtؒpH4&: Gе\3c@g<Nr3C hŅ}Ui&t5MᱻJ ߲5= 7ݳ(3SxUoLD<>'i}tφbPXQф˥}ʑ#N& 6SDM%jO(uK3Z_Q珀H;Z~ݧkl@ܫ1(A*= uhUKYgŬOӒh&7plEq4xwGw?V{~S$.$ۄ.+<x:ǀP<ʳ9fo؅_Ohj&wh<||4}}2~(<І$-".m/HX<ģ\ǑF|W[<x?Eܽ>Ƶ_tQ}xMH3RnX]Im5`x u%hb[ח!Pũ+DSCxѶ 4^fhZlʞh&beӭ l5֍;ihzc(kM>Ywuc1eVHlAܗRY-U(gG0i ib 65|;)Ƥím"~:w�풓M,:ى&?ط|4:yqZIv"Vg ևe oh&huF@B Nߖ}1sxJ Ҫ3`zhVN�9?q&PϏHWyn6sCFmf2Fڙ =x>f~=)M6 ppW4Qwgxs*bR=1Q7WDRT |ߺGKxizixs(? O]5DS9__m*"qy Иלs?̅TN=}xSWżRV(_Gc/ޱXC/ 0$vp{C7喉o&.)El#-Je7 g'qhk*di5{LM^0n`c 4WMsY*qjG L̷b8jϸ!yw+% v",YƸ$f8G %V.^b]_ t8r _Ls؀fve~^w81r^/4ed"h:ݱx|4=2xJwķ]6 ťu@>,:{{�a-[.ס۟:ʈ_LLHf;١ 4c[^f;և%&y!C⿻|Qy_7_a:/<1k<YOͽ`?>8"@۫pI;;K!{X49/޺#-1o=#x|CH'Xh6jMJa' :N"n_떵m?5׳>nuZ)*dMh| f}g^n*+I>Y؂C~́ sXiL~ @xDo�͚N{?4WrЄ"COlCSVX{zCc)3h򉯘oq+ĕ?O.s ׿ߏoj9/cɃ@vZ<&xf>e;̼[<ْPLdGսlu>ځ5*--$ Ǫ.ף y6 ;j sVĮ@w,_<$va%cwmuCOn/hKS.@z#O"`RZo8{4X}[uah+5yG?\tM&W+LOٜMgq=bNB+Ak@ 0+l1w̗Х/Nkw14q#?h\87l]Ic@y]`m(xF11sZãn.{A{4s$YmՈGFC#0 W&wFK=)>S[Mx'^F-oyWi4ltg@@8sl6聀H8'~9w!Я<d4!<~fbFT]M4gs\}JPy ;/);-eƐ |.i'h'kQ' #4mWjȥň]%<&8o`K0_.bA]:6P.jyai,PEZ`n石HWUO @_I{]vn rϖ!V{-vM=b|\GͨЮ]ODN#ZxI>J[fc#^<@ոqem}"O]s*hϾm3Nw@N?&)`x;4r-,F"W/+EJHGw36tUܴhcrD7iklr,͵8PN9X@Uق{zU|R@۴#+el{v| ?+y bVUEpaek̿DTNod>|퇸=^@[*bI[^GAL-Ͻ1MfqTr}*5 ot[%u,@F]R y7B@HW8+l/<Ϫ \n*WA7?[u VW጗9AekS0w_sa~]!ܺąG*t(^\W SUWď—hǥ+컡a/GC뷶Bo 2AY+C)3bT5Y]T! "igA�Jƈ#xw{N[vc<<}\ZCJxVVt1'|F ־F“uS&%Ap, B7q<2rfZ(ߘ1е8܊.eų4{ f]ʮx/R·ywVF A1y\2} {Ԏ}5ƙ %'p?]XXkrz UjE-Gסy-@s^메`0el A>&a _: +U17O}<Sm+6F39_Ψa?(?*>>Kmqzx#ƁƑ) o|7R#Hׁ?~l Z$]{c]o"FAHqކ@M_GHS?U'2k*_Uem|~%E [ BIzT$\/;ccav}\ N0W#&tRn@X4Z^$pq3P?+(7^ܶZ3⬧t{.sّ4:l=V^Fu6wc~<qsIğπPWT^W}Ϸp7OY?BU~퉺i#yODEhNAf  ,GiݣW-Cn:Zg,ݰMzJ<\V2-+t\n@qy96׌;<kk3[,bTGb$2޳TRFAok~Bnj)=BU>;Ӄ9#@f6K"UhNDL�KPl˟6o`5M)EKYM R_M4un&4si`c[U;pؾ6<6݆O7/i/0gJ")b7)pa/AuثYvx>jo7?�_yEVҀxuGH>ɃjvM%9s\I^ x\[ gm9`jYQ{ϮW !=`1vWcĽtP�fٛ/g:}C|8Q|lsZ58gP MG{_yT:x�ыc7>nyًݬxs ĻXqWkwuz(JSoAGIYCA&v# V"ϛ뻅g_/',zܬM/(F?館1CB2_f4? yȱsoT8po, N8Ϟ\TyWq{]|Oa<pIHh 0ہBErr j&uĎ\؉fǷeEl M?Kg?!Csiⶌ[%ąK/01t'DQ! 7D"_@LX7=~H<F[獜@KU|n3 uWmG[ЮnK3U `w]x˙]/N]<3_ˀp@l wョVbuxAUvm!03?7=GS=hTA1[rx?M5GVzɞYAE~d< g.@^;:v{)Wt"N۱h@7~&oNh=L@ ?I?�MڠfSz@gD�Q=煯g9McM@HF-er#6,zuTx:q*Y,X7հ]j7�]o}lz!e /=i¼UqMZh`d y(v7޵v?qܿdBʿ̌t ƌ=>A$ӁؑВ�bɕCne^N4wVjk=Hj~y͘J@^<s绫Ϸ(T7�^[&C׮|v9:K\.K ,Y 7s PBf)@_vA5 nkHyĝo2O (ͤ9tbgJ>_A`+ ub7|\84WdJ%!ݲg{eϔ:kٖs@.r@~:~ъk83 փ wNe8f3oo~&BX [Z zXOF(Nn�r+Q qGS!E).9�mYl8�Ƌꗊ)3qhZs##/M}ajk LA:Î5.&@YC@WSOUW@,6h,ܵ(C~˖k*QV7%n͗{֢w&r-7={o |p1v!I~đ0ݓ($1/¼GviV&^/I5^ 3u㟺,ըJւ?ePEH3#"tVJ^q1(~:CkSi`D3?q#jDI#7I9K<*De#@LH=fEjg@4jeqbg'{0]פ?߄ء?vv#ފfhḪ+yD{D}}uMvOv1H;")=׵?= 􉐼@7H jklZڜӦ2cWg 6~b@5mKKCzmM@l^_dz ~5e_.T(y+Yq^H XU~q_~%B޳?QxҨ",ќȁ@hBEĩ<w7ϬH@Ŀ`0F[:7jZ<ֵ" %L#1?뿲苎tʽ⪑dv0(WGsE%�/g޾vv _DDO\Q3b.B쒌@7@f5+?r%@xz#O~DW3l_7IvQ^ճEל+~_` л3{4 !ŹhF;Ti­Ei埞yb0d_~}kpx/; SRw[XP~l/fB7߂@b- nղmh:6+^nY,qkj$8;u ˙uk }m? (i&w~ Sߪ{[@{SjQWø7OiوC;}q<Y@3}B�(O?`_btX yOMGsc3}RKYiߞ| HoU+vQ @e J{"sȵu$v+`82RKRN;,+KNc@p#] J(Qh>LCj''4!-nځ{eޙfЬ_3ė|'RH P<S6R`g<D[ru<7{ټwb̎)uj/ ud!nh8me7+2U,ۏe_S÷S3'x)TI*>4wM\\ tMŦju){EE* ^o N 0u?V#N%@os@?ǓD�wR'SZ)`>]t\p.tAdf7:}Q@M8Gζo{4u,2Mśh\km7iS_9Uͯ|4fn^1_9E_=4G&Тh O6? xJ 885P{dl\\^i| tK>[ ,[S+ƕ͎Z?Ѭ雭Ny[&wc^ޮbL[T _W�4cVGXtSٲ(q <zZ1%??=$qQ&=%̬s~)]nMO(;7Qa98cUVIeE} 9Tp!A *nHa`^JzWk uQOj` Msۀ>RM.ܽ$8{]Ds/վGA竳V'@x۳;1Qf_>B MȤrCsԭfc,4S0,\K�j>OMsEELl<r4Gj1>@fg a );h}~.YU{ N@^ )w<oW=W4~+hG)LK4pVP56}CL;y@uО]; ( VoVZxxkێG삫BMU@}hr.`([mb=:dة۴0q)?8|蝂1'Щd-lm: 8]~6@Mꏷ,Kq[3:ې:xUM\9Wd\JΗ:-E|78>\|D6E[zPj+DUO˔:SHWo}_{{i&>ug0?[ls�-!um_tÝh|J/#x8?EI�M9I!nŊ^՟@efH}Hq,2eg"ޡ[hk@ya+T 5;sOJ�ǴnU.06Vf$ăd1 ǽ1g.ON$PF=U!Nn5,RTް&PoT^6m";<ݵ2+֏BKWz\ÿ@knl*&"ę|zckϲaOd~\}+c[ezqJE@ʭ<e :&-(DtS|K=xɩ nʋOjؐ>Mk: 漃9i<]^/j+4"~\뽂jnp` 2>ߓxa>z`\?m;W`{:|3jG;_I`D\YP73LojcC={8w-m>ǏYt?xDRJPhNǞ#μut!eJN+^tUD=l=S ;{-='4ՁezgnQ[aTOۆ'+iud.r]vԂvѢfuR{77[y>Eֈ}og.:9uzψ]uuc=by)"!QΪ VDtZ /9v ?2: zqFeMNT =OE[,}ᵬ@M)% ):vx! Xۿ*c0hhv[I^߱绌.׃wf͈їm@5YXYlznVħ !fY 8^x М۩ϛze6 X%A8vfhn3;?oiZ?BE~Y4e 6~)TӹoѴlJW)/ v'zgTěԴX rX lI@yG 3@wpo3yPCLjm#+/qmiDW3U^^+i??WyCv@Eq lD ]g6U,@S'eΤz޳@?aw[xek^*ș}4XX "Gܽ`G.b#(֌9 _Gzė㊭F ٓF_¢rY8/v\X ԥJHLo;@-e`;m]"@ tgsevA8"6>�ysL$غN[Ig_ق z.Whh4Jvss^iΗv?&aP2v NBĽɈWwE!(-C70X8Xlh# ~>@_?k km_�fr++#%p/m3]M?]|b0Pe#mʶhgdy?TB٫TM<s۽ZO0O =�4JX\}WJj.~:G\5)_kǼx3(gY}A<+J܏/& wgS8 C8 njSr8r{ziv)*uPҁxw~ F{zZQ# &$@.>h}ǠTJM df6r18wyj?y|DY guE1h`aоȳh)~7I?!Tiq f$cOܲk z?Xt+_68w;s*x_~Ь ވ[oUX$yY Nxexqn3ya U\cntpqfhm T@pz)Fl刻q,⅞OsTy(rq*lݨ�_</wj^kds uxbM͵@(~L>=0o@{%P*RDf [[v#vsT%P:r_loĞr^E�P^tH@mc=⸙nq;x4+,CxSLj.h*ҸZ/Њ<vKI/?k+l{1g:b;S,{цY2@LPvDHjjbqMk bc.*y$Oc}s7zJ"YpbC%S=;rh.04^,Z(X0 + P<׸\8 /(sIY Kʈ@:ڻS*ypLZ:eODFxW Dz KYQZ= .w2㕓1'C1ymyQ3 Qy+W$eEW;@bb�gRn윮^<|?]ިt@�0ܚiЉϭߑ`%0'n?tw)'t67=J2\hHʨ_?q5PO0G6]g7N9 @ĩorR!e|-Iňp}E@z*٤ sw�Ae@U^sVU.]mҘ+i^[wWp yf?�cu}ټ%V{| nMgDG^yb V/2}2|}k<+P#؛f}Y_*gSki^. Tmg9W.~^ZZ1o0yOk/f,޽y}t jWIŇTpdp|]y(?}/ ZO5R8o"އ x+Ϗ * fZףqg_0ol>SkGjj,ׄ_vl?ك&7-6 p;IH%^kh><&�0vDJv G|(c13T3#v@( x3Ԍث֝|�K}e 0{\Cּ~)/(>!l0.\`6^8!FGkx y}SP)j> {0G-Ccǫ1?fbu? ?я+I[&|D и C0Wd8_ǯ|X {kRw/MF\ ea%l"0.%yJqw(·y:4_ib_ٞ%YG"섈pu?>]D~U) MׁzBt Ď;ԈFeG�b[yǟ@ۛYծubn´z'`.}gs+k MrĀa_B+ HA=ߏa'I<pwH_s#~ARm,@=m Οn;*fQT/0{ro6e쏔z.Ω"[9hV(@3K[`΅Zkj6x(zSٵomř~:0ܿfyۥďWCK˷h#H7!w e/LLN;j3?L R?Q>\{PG p~t z W|Cgk:bӻ1/L$O�gq/maJP1"gCj?kl>x>`Z5:с9_ wY;Pkcžȥ� 04^ *+ xK|)]xmM_O@Q쳳[c5՚!}ᄷGf[o{]D6 ,`;P%屿;>3p>^10N'f3w9^,O/&;~W"�P3]Onk<^z[BcT|ޖIlm.N4QqM0-/_ghvv]R :A%}Co'_6 ^�cHdx1s뮯}O=ADGwg4W)qWUk];#Ob~B9/;nRDEBU[}x}wFC=  DW]qѨ8V'|gOc "q!?c$W΍Uh3߁_[k><dۺgG@[U|%qrm) hK8|pv+i"eu LڃYWeyo.;_FZܚ̽v]'@TG$qZ۷+@_x<iuG ~!ls6zQpX @Pg&ld@]ا.s,^ ׵(G־7 ѹ[6CU(}O"1?r%*s_>O\nH]92} v.A܏n"*~Zswh9d�֥A=z@2 PJn}a$/M Pڏbސ;pQxI{ǀ%p (M@J۱8bxio*E'<IPC0#@xs=z38DCe^q@iL[ sz*| .q;󬱝! n?k D̳}M0WHik¯/+-thX###{ w}~v-@-9|B3 @wrEDU*KU]#b5?B{Ԁ+$# @f}k#R\pKxFlsV?Riy B*ʎG=|r=ܺsFu6;e ԝf{qj W;i~ɍgZVE3@x`ם_?0>ә@Z9.{Rg}mPn ļm|R ɖ#x#6mݤ;n1or_Ts4vF <B3?_d!;'lQ bna' o<<GoxQW~<dUx<nٴxxɈU`wңƘr^~:{i��÷{d:`$FGN2T1|}{!]=4wiu0iĉG/�uG¡4u2ᴑ'Ђ<N2Нi$Bx ]39cY2e` A툗8O׭4{孕@5M:nRZ'}N⦘6@xhVڪaNUx)^'YNczLqni{f@Ÿ7QՓ[$y4WZcB0uXnV1 :12mnX Gq B*WWYY�]yf=;�swMXhbSE`9ԚxR^Mh@وj9N łioÎVF<^|r>9^=_6Eazu 1\L^KmCQ 7Ƚq\4rŠ1N@9V}8=, Lc/b[eKfZrd0&k#PmlvVzl>z'eaqxV sjvĮ#GbhKx $Ej&ڶP zan͗d?<?JJYX]jR[y dh JsѶހ.V/Z vO3LUCwo9.kK殃V ?j&Ь} Bf=8ˍ�,˺y)HF&bަ0i^GzvI-4{}IOQIanGB%/,z=J<X/^f53%ҿ"{Lh[{A<隼A@CՏA|azOc8iU>"Ʀ; ~[(A'P>m;{n,5>w5r<ʒ.yYqw>}ܟ&:P%z>| n)'_GX5+l@J㮯g@>1 v�75b/0~+Jڽ@pm g!)y hFXԨA "M/ rHIk4NU qܾqPł] x#f < Q.z(}wX#Kf95@=Z0%)] q{ #! S]@;x[BMP}[z.$!oěg\* ]xsR*;Yۏ&QĽ,p: bldi*h?āXu&Z*W0jO%G8!j", <WN)j_Fi(1 #'t{Ԛ^hqp/?=iMÞl;[yFFc캺<m)@K\T=-{Mc"+v�X%TB?:0|2 %Jݱ l?c1 DËOvY˶u=3A@{lɫ^CSr}@[(%؆ L"f!wgs8S'+^.?177Y{e.*ݤ M?&4"e\Ƒh>v]s؉|ig@d2K_?x|Coxˬ;^PIl4ܢ^@Oչr8h󮼗2wbo@0#+@(k'E<bg@^!})$M6D�űۛq$淝7? UEWi #5=y  MMIzq}̪ {;ЦKg[d0ߥ6֠z-?[/o#qW.<Vw͍nky~YI5)5-AԊSLչkr$VQddkg#[ {Z/(h#"vJu3Mf_�իixI#KzWlz(f(σq?GUJ.*ܛ @۸E >R p#O@hgջ{R_I7U[ܺ P VEl)TqצNZ !7 rVΝZ |p 4]܄s.?:zf/xn erJ{"<c0;NHH%1|~?l2|/_}ajv iWF=x2`jU+Λ_s]K;:A`I {Z?{XYp,L2~O[Q] rh'#~דoauڙ|y,m\svS/? ^$~ǹ g@YuNe(0Ž4(,�ʯY7ܼ0�7 'h#{Y)nSRq42Ʊl#Dw#1(CקO!Kk0+3ZX?n^}Ÿ"^xR(: a𗖘 ;7_'L_" K0=5"^T2:UuW{gojj5(dىQXs[~&/xn=*@J~MB{;}C2/Ҁ;֟7=B\b, ++^[1,^CU¤P>z pzO̝)=3>TЙ ؚĤ3R<S ٜ U @X"kn EٳrL߬L!e{l ͔lQ݈'\C ͜s9w?n"?7ZydENRirԚTT.2ueizIR`H Ar᷋ dSwǽVU% _a'XGr!Q4Tb{4)rI󰪻3H.Q )5KCsi Oq..];o`$rRpoɏol; ;P=>WF7+~տ�N9?Gc<h;?A8i|s_�fA iet(htlǹ]Cnc|]w v\@g4na K^S\C�q+d/M6l0}C+rP\Y9bɾZOG6yQ +�MB37;a~ v #霵vF=8oD^Jާ {yp 0QnwHJ{xmّwG!Bݶ8O_;].G o|pPG,#sZhZuwP_/\1=Rcii ۣ~v (}t6haW[,i�Թw}E(?g99| EfGMٽ,9^@YhRtq:>oagw@{e2{amrE_ĻU8׻\Ib 9q~%Y�HIхCl*j@X2NAR̃Wb <|f8O΍&!WaiA!Y#ge"_cWh:�-yz_пd fŁgm֘!Uu9QH{\.rW țڼ{qs) q$>[ G"ܟ �ܽq1ӗw% x}\F5B:_, B%_#Oe�y*4> 8?eZ'l]X# ˁyOFP^- d~y&C'kn^mnv"c~|9�lFY5z&Q\mGݴI4 ony`8":=J<יJg#NÅ;\o؟gg*< 61-IA^ Q]znr�;.pE7{x#b@9؟\ZJl?b qӃ./GsO h b\1GR~!6CYK=~uC<j}+U\3a Hg*s_E .%?(2 m^pCqOѥr!+b8bv{-mH췉u}hv͋GpSA�p?L9 Ck!uH=g*v. Yk- NW[rW+/IXm uGFBcry1ޤGhGs1+}C<`*譀]ϹxzR͝PM-ZͻTߣ;f>ohwRELc07@RJ9bO>"Voh\y: 3<?ϖR@KƹiI</0[("V0bw- Tn: L'/~[څk籷1GuYJ$Gml"6c b3r#{"i%1@-�tܨX <,D�Eiv5<'w{G?2p-lg;_ ~u`@|RC Zq~ܥY"TȢ:3Q6 J~&:'<c߿ۚRetSG'Wc]܂b 9w 4@.3@</:x'WӀ^0<n?fOfaW}{ 2W1<p=S<ENk]&w|@ZuPz>{cd(?u {S ^P>x·Bo<buW2m bmT_Ag1�`=2#;fcwK@XP~�JM@ZAs0?IJ#WEurc\8f.(UGgD~׹0Z "ۊ(7k"Q#8=9i^Co9=1PRc(?|񷻆^~jo]% E=؇d3ދÎ/Fhϼw^'NrŬ9P/8rĕyoܰhﺿt v6>(7f!Gb<k oMr@sO Ǜ28W=Uyz s+;٬mJcqػfd?g[ZM5 L !>k5=`|婃v&@ _uj ЅwM 9*ɡnyq@>r>v[e/LZR}ˈyRBHXCy`~10 jw #>|mDm$c}=@lVҳ�A٩M)@( ސP1^LJ.KX*BV̭ <<+D;C[}uFT!}h7@kJ�eʅp6t (Tj!6]?P8y<uix�7ͪA@LUKOWخ.m< ~ sݝ1wyl1QbQd%?" Te1V֢f%5Bsی\;NQ-_E0?&̛X赪cox7(b�u71@~(䂆,8Kʹ+@Y=X]-ԕN#Aa8?<s5xwՂؗ j1}%do`8)t>ɴ_yeڸU-Nyg= g` D|ڭ7g4#@14r.Ƞ7�rOh-e?P$ۦ͗/V1$"к fӲxcA_2.]S6o+byqyE ]4$=q:n3Ds v+ٛ2n_Dok #V}FKҁ<h 6GukSn=b w{8y#,v^1v<oq;iCG{?]\AH9-~8^ʣ[fҶ4<B_U3tȅUwxx{9۲ʘSpfeW >*bfŇ5%b:YF,(4na~ ?PԤKk-ponq W77boi&2 |dw♜֫?}.4|Tt7{8@0= !IQӈSo 5W"ٟ3/�-qW4{윧g1}._Ȓ%7فS"Q~3Зj16oԿ_]i*Ë/G1?r| o˞sGNGaZV6ǔdrC0XG)#VfY7_$7&T!nZF^){llaŗN B]2xEӕ +}ލ{:@yVy]dwbH)_~2vυbEũT9#@uyz]M \_^~RYlMˌCKZkW,,La̧%.}mC[hmB1s@P(z6XBk@B[%Q30o]wbٶѿ1.yn|Z~�h /�m^o8琹OQ jP2ȭ*b.3{'tux# u#u`%SV 8;%A4뱌od& oHZTL؊G7&jP9JgchvH,c(*]c[cEs&]{МT Nj@fw8"- hIPh" }&djr=*讑F<}[橩e *CEWK6@y{R1bnBw>XM>ӽbЌ5uF{Έsvĉ9c.thzy(1@+rv Or3T!bEhKgg@^,<3~^(ae\ڻh  ߗE Y79ڢGc aX2†hB 9H/sߤl֬=q7tv};8?U{g-qt7+-w*{\}q6�e/A3KٛᕁMk⣁)n*G;Aۧ1G, yG٩cBҡommVө傭}*__}ī^!9 K*1U(ߕ6IzUx 6($?e"dxĊ1;(#wI=7�dpA:Å1pN(]އ�5qOB5Bh@L:6Xx𱧦 ǁ~x \~Itޛ[wu<FcU`o6{wuSOA Vu[ޏ"z 蝺dh ⋶0t<cK9J\!T!V3W([+S{z`9IC{ +[|v  iyƲF@^svY(e=oG<tJqۭ2+$zQ ɔ«(�(SW;q(L,ФNW{2|qvH${{}U8r b6tYވ]HU�7l~nf8u}6x1ōxNgs/a˕s ._ژ_KkεJ l@YK7L\[-Htn~F(Q]ʻp^X?2@0{ɛ5�xlS5a}҉87=Z ԕB[0=z=MZP~=:hjל\rhW&V8ٺ":bT2ń: VAoq ҧjtP K ~w�}+?C7D"2qԼ5 j2X8H 4 9eyzﰕoYiPf#$e?E/} 6*;Z) ud'@@Qo1_!7LJz·MubۣZ2 ywBB0'ڏ`1[ gp[e KX=I͙E| i$EZ\p/i''{`lAǮi@ +|쥑!7u٪pRļaXtT"Ώ_P"+ ˈ!Nٍ5 @oyACou5ݕ*.+BU'nr&&.+zt zWR3[q@fs̸m@Ve7ȳ~ qϖe#؉v{ӬjCz"PV^9ntsUA_nEUO�Tb:J4rky։P bm^ t֔Z|'i"[4K%=T.an ]hnA5Z"A'KT;?.gL. @<GE%=5FT!nBM7xp~2U^K NaP3 [o%4iL[8bqd8["&j3ɼ _}ƪ{fH[,�Xthɸ;<6v3V@mt 8;m^o%E0_~:hg7+@՛>T9p8-(727f�A[ųt>ՂZkIX-<Ļ:AMoW qhL"޾5*~Йyqhx)cd( ^_8rA~+c|2Ƌcf@].zfv?ⶻ^\ enBE@g6?# gcBS= ȯ%'(w /@t=V|@v (G}e/6{Bm=%4_.U>g<HPHڛ^${.emӈ(]Sk$EcR^ jr~ lK{ORL\5QhZvbK+"My\%5ݼlu[ ??ّ 43)GMnľRONQ䅕kZv&KI+@:,1zU9Q#нfv}.gm4jo}1إ $ُ,_X0OHA/⾔=M(U#en.8rTϛXB4l(^@{sg"PCrMԶҁrgR7ΕKv "iCЦ05,y+۹[AåнSq%-un该&R@ynF#@w-=XZfTqmZy@`a/'uNESC>y.PR倰r&w EQ)o3qoibOSƲʜSyyO@60o UT؄wGH=2.*i=B3xi̓w_ϻx'ia.iV^t4qTXÏ; |2g,xr:N :eK",bwNr:Da'bī{h{* ~D*p(YW\-iH nZ $69`=\#ĤB#mQ'&Pc7YVѺum@6G5@*r K[M7^|a돃873cV/rSr碍?ˁ!/Ty&~ أTs-R{=�sA1E"uB\}O⊅~A 1!i??x" Oj y{H9\G:U t2ЁW۪DGA,]K?@Wՙ;7i.:eCuIw"myҋӽW7ş?=*]*0~ܧAb~}y�3 ;>f=X~n!9V4.G#vW)<ovҎ%qM1u|hlT+-:ZHMJk]b^ }w?U)@ܒ P&re+,5)s+3Ɍz:|�Cg[}>{pM@|-Lpu#ꀞҟMɢ\W5]p%Ej@>:I 3IbO+{ ZVO;ΘY ~7q/_ �mݙj/<gF<;>/2+(X&E##SҸrR)@r>ݵFҌnb;_g3~u[2jxGrkmT(tJz|ja F' !}@7qEbb.i1;]sL7J?OǍpHoմ�B-|Zľվu5/} =pU[_<./ڎ77@V/ʙӹſG-`+PmJ=fXbra%ITޙt{ѝ< z F!@%vW1�ŵ ь|unyY9q?(fu-eD|\c cFbWo ͪ{L}V|30ㅒhdv(_~6'1-s8?ތ9f+lf`O;J2nB6N Kf%:;3;2֟ˆ[Ohh-쐺CjQ4y//nla:o;5?fUNy_{Sñ:뒦þXh~/T<b=8?a^˞4iB֫z7 J4GHRP4X2T[9@1^V! Ux{}7&v~r71 q|v*JI�:g{ĿxEEc~ q_;F#Owq_%\. &Hug�]س um܉!Kok uދṴs͟?77Nz"K}sy D-;Rm'&7b˰<WΖb.Xu< KB]0)V`[1\z7%m@W1=`k0VOc%Zr d'{n�zg0w=n8kI,<Vhci3T?nZto/žۿ ϖ_�B\c4׸Ɂ JW@|cٸ74(&Mby#a@`z(Ph _Al+z1e@?֊3D}X 寬�A- 7rv�ȿ1 8ɍ=,Y(r=v惐¼:ѬwbUU# rA|Č @}?o +U+s~q! C[Ƶ}:Ĝ)`\88/8evt/z ~KvcO{ UZ ZxY"sv@3RҰʣ$o@:ݹ-\ryQlK(يRGv$(^s 0 9&LE7|N*~^5l+|v2( Tq/+G0zk{%s^+oe %DZ1rXn\R0BT>P$g%y#LwssdjM�y o*+чe:$\_-:>z i�oC<mtLq_ b_ ❛)!wb/,PB?e1_^:O`>um9'K O~BD<UBQŞEؿgNv=vzkL2ћB*^ tϟuT<J. TɏKoPOŋ;\i%YLK ">;[ġe/fjx=OYuߧ�~`ܮ.MBh@)j܌xycwෳf}'暢 Dm''x5Df˳/cdlRzF${/aͺpr \C9ֹ(R '{@LK[!ό}rkXaqxtcHݽ,ԻcgA7?8bR^x/+/p˒z&iV ^yE<*afsfXh&ZVi# ken]ŞhQ(PJ-ݿ=#@u6ւ'΁Ah_hǤf,b̎;Jyw(Ar8N}H\H\^lr~ش0{˫7$vf/gk=0mycW$=>Վ{nL)8n O 6ǍSJ>qNq~*4?m2Q/GztQeq[TJ\GWϓL�2MD�$'jM̲Wg]@}(h!rW0\oymB" ou�ZԸ�nj`~;gA!*-A8 ŒC؇D>Y':%4*ʪޞB!g{SROwӇbC\?\[doaRS❊@ nikbgolFdԏ |ڸ-}NsL4crE@?/֠h]9c=kHg^+k Є`fR|і6&q^n9qpb>s q8ùv8\_ ^&Gd(Fm}Bs 27wmTBrw"*;K>ДT\_*Ԛ_N590Ϫux4qJ^؟×LסɗJo6zeףywr д/)J&qru2Bz.�ozRw';@ җ+cnGuK0r7%OwUnqͿp_}uRM+*yY4absFOX:Ĉ!W9A@jgZb^< ʹ/Vx% xU>}zԶR8n=:PدycN<wOh`물Bw8T?ǚl ?Wق85@ܐśN9}:֓u MX$h^Ig=eEDCWR?%7Z툣WvH(A|_//7NϾ"L&>nx(eZˀVfvXG{z1֭c4%sD)�Y#A(R)wuHCVQ|27En9{�NjQv&VS/C>{y ( Oicu֢g Dװ)4zק7 59 oKqu^(q`ߦ z2bOxWcu=[2G1~K 6)Ȭ{*I[՞mq>N?uZWSȋ'[ȧwb?|o>v#ӺAIMN}^� J6 eV0hK^+-@̄3řd,ͤ92~4x9';2:PGF^xc;oP@:$LV#gXC9[[\<or'߁'qp39{'wlc#kpJ]%Ch]w<*8{8$X_�"rAIqYZ`ԬSvRE@x EC9Q|>BR~uSz~](X^'W#F@Eg6(ˌ=hzkȳl#! ]_Ubk;5~OLb4k[Do| 5+=%7ĝUȧo)"c@ӗޓQ써/:Ü b@93*~w³cw~E w!՗E%1{6Qx0x}a8m ! t?v.ͱVbn|^8]q{@S/W�|]ԟS4p/vF~]oe,1SfެtӧQtTaljI"J$DF*DSEd*$e 3BKhXE$)--{_}ޏ_/<ur Va~OFƨ~}`Ne4eY+!K˅w@n0Gve/G'NB)؅kkH}=W!> 47'?Bl(<{bgFp>';"h&EOhfrex@ol~q2֘#k֖ fӂ$_€f= G#Pa?ӀѺKd\ djT[ᢹ\'Pz@l+, b/"~d?_"!7Pv ۉC<ǜuv-=Ýt(%usӞh@*.ж=?70P&}tȩЉ8A wwa/ZxOMsxs Kߔaϰ#VVxԝ +l[i s@c;@~`xC�y֐¯l}U v:}K\!<E6,uȘ +A {bXįK xJdMo?q\l_ {޾gh'^&a}OBUsKMeMvhxu;oueBCo84C\$ۼc\c[3?Ի/|VSWeHo@n*;_oj[.z$9-qwF?:$7Ɗ[@Kig*'Ux�秓R mOɩ%y5sL{ulzK6p7YT {{Kz�1U"i9+H䑀tIJPad-FEf% Ľyzڡh6߿}zV: *뺆pG^-: X3v Di%J}#hӇ)jd|ǒ+F}hnHcvz0>@4TM{1}Ӳ(ݫOmENh0nPz1BAUpi4MTxXVbu©@`@߂i {/FLhJDA3{ۺ?\ ԖsS'0W4>֓@] Vmk7xkBMhYlļiO 8ao 'J"@ߋ,gR&F ?ًh( <:k8shVCoWj}ʟu1g_>-1m/1hTi;cIN:1 DOa B~*8iz*U^(`vZMT*G߬N�BÏB5I@̞ؗohV�O'qk뉝K<ϗ~&u7cn^fl|lG׺/�)}p߫4�ey�~Iф@ISi@L~!h.M|6_![ƕ L [�5c;so 2S<t% Nj#"vh03aΘS4XBΙ{㊽AR!�Gqhks{ .@Yya$l 8:E34d?@W;8Нx٦HYrF G_<Ĵ| ;Y\A)uf@~H]$)=ĘU[tV!sQ39s~"ZuU_"^zӈMʼya$I ՍA\m{X#;'#n);v!rۜċK }_W5@z,f2<#@8yĻ~bL\][M/ >sŽ 1=jZ\(zcqX%J�]j`z#YSk3tj& B Co~� ԡN vّ`'>(NݷPJh+b? /,7GaZs}=mKTY vR|Zҗ vG*@@ ^Eu,[eiiυdun)�Eֳ^h;^],rFr3b5ڽgV>PQ Xg-o /۵AdǠp ZO1 M|c!Mh|<dD|h\arHZ"u75],?&p2}m&>仰Gc6ⴈX"Bߞ_ ֔%ΖM 0d{9neK]b@-pLt92޹7Neh9+vY~ ӓzLʿ Z Ue]l *'�5Sb?pb 0:\5Vyno eA S ~rC~jP QvFqs/;owkT1{I"4u) ڲq{@xnqߧh v0UQ&ZqN??a*mګ.{=]~%A>]X^ޮ�5-lUMMom D&ۻu`)P3ޚ+Ul۟8wQ3 'cg'j}&8h]@w0Bty>{(blsȞމ͑c@Tz$j!^0>߀mg^ |]U(u:ֿ=pIyݵRa4@PL$߅m^v z_ GrD�i+q-/A[ߑ[Hy!y8_,: ZxXxl(0 l; Ͷ>Skj/Βĕۗ7m rGo9`8Z+puT#%Og*@Jz$czz hLC16msssnw!V7{ m&25ɐm@Pu<|kE׷>D@.6xlfy$y;-^05PڇY?6$/ZVsZz=0s]ak8QQiVSS~%FtQGd4KpW^SFL Ȧ]7DDZ+~&tY :FνY^D@=y$Q]+T὾&>J8/�b>o~BvF?_LI�ߓA'0a=0dO3j!Wovǝ@3&22u#;b|ej&W>Er/C?N]f,M.}[ f=*t:S<o .i0@uCq4cFv| TbL;Ώ{>-G&La 66bC綣Y5l4 .ϩY!y0(~'ͽW}Woͮ 5hA\S(tĎ65}{�;,E>:z)"LXuJ* gxu t+iZao'A@t撟O_@\ɷ\/y{ q-]5S4ǧlDCȸD nZZ8G;"!Gu7ܽ ~se%y'-@9sStgNïe&ƋE=/=.5`O5ԧ\ӎFob>^D*}\l>Nm8 MB2\nم\{0< (KL<i]ᖭgrL0]7O~�Վe<pJk<W9ՙC@v]kڌVk'\Tp8D+^9Qx=HQshDž$F$qlZr10Sƽا,zj�ZK&P nUy8c:2Y/,;F+]z@^U/8QUcVe[*@I>RȯJZb]ψ(7?I _Sпx6@JA͖ �-j"0΁�-lٰ9 q3"5 iӃ F@Kc6\b-wF#bkBIAu҄=hZ�<}>'('G"nn,UlxW2ߔ�#zt->_+ ݞP&lޙ+̷ u.ۖxN}m{vHja\ҏ@w$~ɶiY3ۥ"(fUmAJh眗;qȵ1P^X4'e(lPC-o ;rC;0W]Df@SN%@ks t)Ǽ.I^Q hoF󷯶a8P˟K.@Z˒@]bo~4b-]K'jCw9OS4AgE;y_Uto`/ xSow=>rm?%[nވ8k6<9E֛=zZgq0W\ NST .:Q, !L*{j\yW]Bq JuO̿Ƿ.4 & Ps>' }$0*pL4�%Es9Ǻ{ި].cxa6${zb;>_ɎԊʯb�]ciMA-s;r/))` z9:ٵ_iF PiX@<1лӽg]HG!Bev.jh&!7qQ )z"n}ŖC?BberP:NV'U' "zpʸG!׏M~gsrn KT$g"肋'=BSi};0Rv,Blf0`O+0QP?X7359[!h|R|?fK_=M=( Qt7I#d~0Ã93�l"8'T2j^u@=!oŧlBM4v+)q󗽟-MkVs <w4q]n} ʹbheNǣ@pnJ4).7tM>_;,ԦWk]ќb_.ڱ_"|Ђ #VELo1jk}uK_}[9mKo ו,N'cl%z7gcm~\$L+GpL[WŶVZejg+l9)!zϥW*XlqjE"DSl.D.hf4ܝiDn{/ĺ L_ WMS{-&Wb9 ׌r1\\[Ê{í+. /qY } ??z�vcwJݵS\v ֫5if@\{З@񁫖coۇ{ ~2h\$յx}_ph{cߚ!j6WD5_| }f'KeY (UѤ7 qe"Z'yͳcb!__US#S@4KCIc1T𔂶o /1}z* #aIP<\ܦaX0\4 ܁~K Vtauj4tFi}FOb:|a41>#U^"Ǧ@$zGy ڎ!aٝ@Wj^].aDWR}fЛ+oڃ{q,2{{Mά\~fg4XcͺL X+~? aS7ifO]Ӵ;b?qP< .I󽅈j{sZ<eh5(8*S=d"?(  VezV 1>}*zJ'Ш2 rtSphњo֔�B{t]4cz-�#gsZKA5gܔ| h{|2@vSo@[ M-bWLƜR XbN6 YHp K\''{S<hz^-y,{u?lYXv cᡌލ@f5{]D8PhG;/`xNwҔbcfEJonK6[mmy֕|Ai܎\ 4*Ĭ,4�s<(Af^~Z_7'䐙<ޟ{;~Ź{wc m6r3fuW{kqjy~8yr{ ūh6(Md",|֦k o$qT'yv bӽ\ h'c˾ޱtCuxNAㅈKȼAp ӀpQkarh<)b9k떸iQ7=@-['1rOo3RL�;i@[O/t^ _6\{ݰ_ �/h4?1|,𙬦q-$۲_6m% u} 1c!Q+E54+-a"nȿtim조$9.Sh&{mV)0Zblt|z9e`b 7y?#$ioVF͈5,d~LG+޾'DeGe{<nlˎ>!W%Io)"\-w RlͥKcb!IMq)G"شҟÈ}o1ğ})0|/v yf"ؗGG. @h+ TkX18PC5_hϻh|_6MlNkX@ؿp4N+�j|Xz3)S}]E+f߽g uh;{k P "B7ꡟOg r{5mN!ΙY#ueNy`:&NS~l-C<#*dg%<$z}h'mhW@֮BB@]#TSsҙ [Q/؉Agq\AI}|n}6DsUO:F'X}<aqnff:b(U79Db>S>./D= u)9Çp.|Ϲ [?5bF ӂP}'"ª@h^xrh!h>پ\\&-\ "W@Mrbs>콴!S+z tm - [a C/�B/rzN,4GE =2OVbǮ-INCJggeljm[rg[j>VK.=Ѣ'u몷9ځ<64[m%oʴ'&2K}�?<ĹO~zi~]g>5=:Z�`K5b~$YԒ;N(ؿ!S ZyQBu~@-pBK\aQ>{g~'2Kq@ive2|OϕVqhb|׋xڢ5[zv@~3^y7 ^4P6EKZRw@95ɸOߔz`|0섽@9s.^0{qgeKmYN7<N=τ?n'(P~ @4M8�mlt)݈{B؟%4Q*gF/6V|O *Z].Պ>�DyPeA+~ 㳛vm]j{G=߁<v2Es|~_D{ߴ@ߵA*q.z0P}geH V_xufkF8ZJC |TFv G.|W &|XexN [=0 P-Nz@藖 Y~٠;v,M/Ȕ- 4o"f6i; p鸙>7dT{؀.`(8{׉y硍Lm-̶Z֫Oel)P>*<Ҫы/h{\ܑePSY�1&f7P=F=gsB"d v^v-ORaC\hǏA<YX&J`. n\o@OS~qi6{bNxqtg;g֖dCxl/Xp8rP)<&YFCON�J*4qM|f{]]6#AhFqU!8oNBa2ɏ;~\Pjѿ7 9dJr--H_]:"s<\ WteQ zX&t)k{ˎ#/Ƶ]]`hj՞GF{i,b+]7g Cw?-oS3՝/91!܉i9EU^c#UQ  ${a&r+g bU<4>껰oB9as͟?y}I(jC޷}fB@yֶH橑VIs/6EQ6BSҥGx~~} H~ Gf+8oS@:b\f}ܟ_C37OB̜wsp/hcu8\Rqӥ@<dF5TwI߁4=~&._+ I9k. E'фuCV]ݔ݈ث>/yeͻ)@6zG~׫H 츃#saMCh@P(e6wmwݚ$ EG&n@,Ɨn6f(~"U쟭Cܟyr3 לQ @_1j,CO<iM�ZI׿e! umդк5#֏Op!~L:=w@&-bSci9ǀOjsxu ]G6*Xy�{=57�af4N\ߟDЅ\ŹSJ@UҲj>Ah|}~@.QOFo׭4/w(f萧 땮ԻK%>.޷ȓ #?_ �3޹_ǧO%�M˄9tDxiىU<\tLF9xcYFEB_Wm.CL˷K,Ե�x %m9ׯr>!mX+?v3@\Sq>W?8hq}~ 躱@RZ耟Q!|?wӇ^\1zqc?O⪧R.*Fv炘[5-!Q8{~qaG 7>up[ 4J?йڇcn-S{9ՆM@G_u|hBv)CmĒ}=PM;~ (G>\.}BmS:b{֬yn]NU�m`xR׾݄9N^Y&ojl۸p|?"*:+h'cGK3r2Kk"fb۸9$Cl7hʢ%V�Ux6q-?ӡ .]+[qOS�WI'b4Qܥ2 ZW0J|yc]yx<~ӫ3@>]K @ }sϼkVa]'IVh;8=q${'Cϱ$_KnO6Gxr_58�'W1Ӝ2i {ds'++d_|ڮ"&<P>Ў%o*xrpE{Wz8q59{ק=G2%@^(ŋ' 4w~ Կ{ʮzR+#Jr"xm;4d{40w{E3&lL=rd *ؿ7'T.})yɪŪ߸y?oٻTC3ͥw%G4]L}-k õ9_uw<mT%bKjzV�~-̇Egf\Є{Giľ+ʹx{>גKR|Z9}s‹@4\"}_7X+SlPCbpװ7B+AeZ'-<=0w> 84o!fjs@l!@?s[Rov YU#\pI~Nts5lŹ~NÇf ̳(81(qq|O‡U@FX x\nݬH vڠ߀ ]1}WlF̧9@l9m qOFyDlqTo-S[41wIjc zޤtɗu@>= /W^eԳ%#h_@8F=Ўx�yə_X %U?G4O�]OYd�3@,U>&tVh/"&-b SC@6~=a?WPutyEl1W{>5"sDѼ-@2$/Fu? 3@<Do^o*P??m8[E?^'M xϟգt:}#b1e$Xۢ 05/Zʚ,jMoKu'2##N4Gȷ=z'%!5O_-ɦs;Yc]5@Oxfmtz_�P;vEڹmOP" >[XuMR<?9b9lO9j#΃GdJ|#kU 5<UZϸ$(x]؄f?Eožyw^f;|IP9\Ih0�w>T""d4ab|u63[1}#Zqh iS8O.h Jͬ 7hhfY-\/G,[l=4qh7P_ ΛcU$ Qьe^g=smx4+LuE2y9.haO?Y|AބyIJ{>Kз#N x~$_"nK wc O)U-X7wG_}n#Wk MKfFN~Eν-+J@nt2kaZ).)�tE~Gq"bO Dmn|Jjbב`Zu:yh*- e]6M(y Bq%՗$n-*ICzp [kl3ҋ[. Ӭ;>…Kgw,ʀijLlOL*~MZ]8�}^bPy|B-&6ɮ*oKZy-kլFK!W/ !'u6a q of/؟ߕ ]V;`ӖB+Ѹ�o66uf[jk4%{߃�ĵPs/F 3|(άO7='Q&�htvsK=ZwZD@)-xx W~Fpq α9 Ժ/Ly|Q,58^Ap=Z}{bx2X1sPiW"N~h//Y\"]z])@z9|Ĺ*v$HG J"d렴;h,;LAZh6ClB}&^)!n_'_<LmnZp_uau,񞕯rHܓc'Hg`i=�Ŧ*@ vk-Gkh*r >;?mF=Gܣyz1/IBcA=C޳7_?- סG2T3c�߯B}@T1:6"2s.yiߧ~h5N@hV_&؆@L}[g J@? ݷ1 ol=逿E30e&\1Q'dq~j܃D<@^1~{ɀ0:-?sNC4C^rzJL ^>WFp0SGgJ $bkrd_iTqNSZFMWRU VܱR8Ot.-=& Ħ=/!͗屍 EfjT{sHn�ZYad*N@+?Dne|ވ=ZjX"^YeU>f$ oՃ]U7tae9J4[WC qOfLHFke}ػ@^x06Gs*7O8Qd/-/0KyZ,A?C@[1?Wq |6ۤ Js68o b.]%x<Pz 9; 7yFə}zѼE\ 6Z~&PU3`B?N:W/J`uz7Kw<EEqT? .FsB�z!Ό˔#f{]ֺ;CЍ3J%^bc@f=ыZiH4aJ - 5ˌOA;?a'->aqu brh=*,1h`<.~& 8+zdi 4 q<X!6ʄ} E0E뫿 G47X �0D(2-@VF%;$sAkOnl s6\F榚 s"Ӻ7wbzeF39ͮig_e-r܃@K.ϊO-6EY=\)P̛3&-FgࣱSMi�}l?sM̦ @KDrA/2;//+n Ǽ0:g;6Qy@Om *tK4K'ĝK[xkî2ݥ( \M= 훉59+Dn|q^&L]>y;_뿒{ i jC߁RrΥ@n9>z/Pt ®wnu mi7Xf^CtYxz۪͠ʝ;:\�=q5ڳ f͹o9%.DH(EcEļ Gg}BL[c+MrC]+_^>+UˀT�;[ nC71-wyy 6sZp92R ?vRZp?0 "G4"ޅԱ9pC^)$>?E׵}�2s6'c+ܶ1l'V~-h�ѩ]QyuUVw6q#INE߯!ΨȭhROzk& nd 3;>gn4+*{۳y h݁0y/+bWٶx `Z;=9t[Ԗ#@ފz^ # ܓ6&c/uqظ9| ܮvbvR8Un4zC*@Upӆxo|wX{p+{H1 O91{{r}?qikڢ@]AXZx#hvz=8+x WLfq>D}hxsov<_e%L( |}@]SX̦6 Q07t؏gҦj򾶴N@zdEVž\ 5 g.5Eܸf@-U#@{xOuuMyF'2=%}\HWκogxG0ʎ9IuCStAJ!x 2Xvm@vv  ;^WE8"PʽdK: se%}ۯqY'2KE>S\ ͖F82.M#]R#EҊ7RC/rIIjxn~^cԖv>ݶ@jt/8_ r9Y _6xA#7{k is5'P7w\jȾgQX E(s/[+o8G$"^FП@]'W\Ӌ4́ Z?w5D+hyŌ,8{j<Qx^;?҃tLhYDc=rBaO( G|s0"& ɠS Ո;jzscm�G]{{o+J`wjvm^w6x0s+!f|B?#CyF ~ѕ/Cn#ѐ @\Xsl)m;W^rmz c/O\X!^r"EWG}o TsFwݩ\dQG ?<*f"1/@sHo^S˓5%ް{#0hhҳ@ou&.eW?D؟o\ ߗ~܂ڹL̕evgp^>{ .7�uG,~ ֈ-\xsj}Z@qH*>Dӟrcj]#nkz1/BkƈIB 0oUk;j<Nk5#/.[,OZ'EsDhQ~۩{1" {)oc=#cJ%b mJt=836"\ 3e"~qP8{ T7?D̪`s\bsF͍J*�BVgu|v~sj-շqJ\+aп\Ҝ з'ee@P|| -OϽcnЖ C<C^˃EN:f{(6SWht:pA(?ۣp\ڇsD:4}{$6P4sO- == F!ܬ@7;4,X# W49u 5 y*2n@_ox�yj_R2\6 Hl. �НJv>M>" DOS*b{6,Px6Lk׾zU'X0켗&Fo5e>6mZA/mf KOޗ@SMķ}ӣ n<k�hid�Pbq+BSKV�݈WQM`b-d҆{kNa'  |~~tyuVtDM"mQgq@#6_7^- 'c�NT=noF5@{$NwV&r盡B"oKʏο;i0V}?DӇڇR5]"~�͓/@W2a}zP5T^ELgU:;bo5v^FWg26f!~ G<[V1,/4� wL8b٦ C2@Wr-O ݳ+ד4aCZח"HE}e %GŁ>Vv&}@*a͝jxf|#ك8ZBأ9WݩB)w7m(.@ |p ߪ{ 8֗xNRǃ|geAG@~RuthT5i|dhJQaρ,i hG&_?x;;^X FdʽTq:%_j_4VN| N'AtFqNgYfx_('\8x_?hlFv[X#$U b%1ݽO Hn/ ^ d'E6b.֪@=CX?0,reO++:zi�]i%x\u%Xt9bm_;f{[$zw(KR\?%1`pex PTV$g"^C>"^2Y| 0U)HB;tf/bWʖvy )@ucA`Q9 ǬpAs/e9 ٧%0Xs&>J$&�|Ë}I$r ;B\ 7U twE6�b֟mո/v'漖ivP߉x}vOh O>w|:؍,AXh\{@/8ם=#Xs巷2huն'v'B\9^<5k d%m'2tSJh>+j`AqC ȔހCi 47!�-rŀ+){cCsIĖO 88K՘G06]oE -,',&vPEZg ͕U=H\"-8b,M=GmWI�bٓ@QKS;w8iJsW~}nD"ϲHq-ߥ.DJ RМIe,?m9-n{N/mAZSA`z˴΃m嗯}c'M@̚Qn\'Q*4" bIڪW+8.mzmKc8 /n�J8`<x:uyfYr[݈9{꺳5V_9N[tv3Cq@8g /=3Tj)NGUY]_v�WEIC N^RhB_"I%_8FQ kխ�ֵOa>¸s;TI#8 y;nP5n!AuMڇ~Cq *dҁzX[>^2iJ T? r?J#jm5s7M⹃v̏#"緭5gjGcoFķ^Fh�b|m4EY ~�ʣݒ!g?ڹfP[}-Ğu@̌5m/mC D_#H͢z,ܻ\e{|~6Nj49hl9i4?VrW>|7Wp?HT?C܃λF _8ɢ�Y*{[oXM&mq/&@z<Cs_jʮWOߊ놰$LfHycQ^q7A̵7>^Ծ7~^>j'ԢAp /?sr2IS̏�bIne9:~koxQ ,- gI5Efh?2Nuyځqz-ocܶB;ٗq6kY %bwgA$~hP>z~Zr9 6:ډB}Lm<)}g׵x_]6J1aPseC[Ԧ g\o݅f~w@\jJ)Jw1aR^qV/)=cݾ1�_zփ\&*3C+ZU*k$WV}A3=$$4T^WhjEcJ2{x@̌EuG<weUyrF4~yo-, 4ao㌯،Vd ЯjHV"fQBtߣ3/!%hzw״nO'8︙-6i#x2 Uj$<I)+$,7)!{**q@%w'*H؉' k[,ko]C4&cP^_xvϯT%o~W@[Pco#7PDjk/ x{w})½M}I:` BG w\Q8RA%fRTڦ #J|:h/GC.=ZzB<gVVcX��M|il /?|u<K~»9G]�1U xbjli痢)]_eͻXU0V] bGX*3, h& [sN㳸gݣ�ATy |Rd*C}v//c=@oǐS}(9b#haC@(T8w0WO)!لcTPMOx눆Yx0GQZ)#|'+󟭞Lyvh*SWtnʤY riyGj W(Cm4qQ7!?1#sG^Wq`i)9R@I ?%Ϝk:{ qn2 |y7['~z (wwݻo0M$sf>n_N٩]#h69Bk%kdcolI�??O\>tYSіKbt7-G]N>gi(w%py笺XΛ,y xC73cWt!e % 5kzSIo `/+oFK6�KōMEj@垧޶*mJK=P5 o"vn,bXؕifCkԀO^rM@Lsu{ʱ{w~ il?@J7Hq^ċa?=A#g%`h 柾ⴽ@FT�b[Ebcwq h*zۧTy6[lx7nr߹|K@lwY%c!6)Z1S=5< ^57&.mأ޸ ?.{E{nԏgo:ât*K' ?ώ}3|}@wlvJ?<9hлB]@O9?"=-@'G=x ӕ.zkp>-Nqȗu_ەp*EZp.Լt]U ;^cةIB-.ԃ* a7c;صs(:n9l:2 %j<Er= U$>7`�To8Ǜ@7/+qL*+brM7w4<brbakiAfčKOxCOhʈ"xUč_t`-UZ@pF@la/ȚA=}[? hV87x2ϟN=ݜ6Yԡj\ː*)b\qjFm+)ӽ3)?/W{??M*FmLZ&o;y_<z8_C ʥvk/ o:Wsu$|?95{_gu!g B3+ ęNn.u{l�ha.2|uwjt' x)4\"jl%GnɌKw gU5WVY8m;x=/4=Fyқ+Jn!{/HABZՖu?H!? 3އj Og48sf藒B~]P3FoB#\Ք&*0ƒNلugZ"U^ˆZ5 {Ca7;ri #<_Rϣ\A׳zP7- 45R)AQ5ؗ N1@GOkӁ`|z $X ם�ٽ^hf"#.z R>%Ά"K5!x}"7D.K?hzdsK#}|- ƽ5@|0;f/ͭzLY%57?(qyI-?z,)ʌ8jĭTruMΰB\jؽ#<QM4<+nc.,ygRC}b[|$lbf|w`}|US|y Qѭ33o9kDПS|ՈJVVDȵaq;gNJǷ>@n@_i<Rׇyy{uwfNanr{~ryK)Ay.n)s2@q[oVYdUU{Z{[~mwړ@Ƿ0ժ]qyGn&@ږl4{nHoϏ=@RzbAaܯ@1'U*qo<DLɈ9 6gyV.&WŒ8z69f6t͞ ꤧt~ n)x q*.:y r}�E=}moXZ*$wE0/<9niHزs3@it;{f鯡xF56[y9|[v/y<8JNICO"(sך#R@`@ 6/٧E4%zˣ4eV:isވ7Cž ^P_Zo:߉5h{[B3@>R5<f8ǒA Ƚ1kTt2rjE}Ko%4i4RP߆8[ѹ;m�Jej韇0>w/`ךF2 pU-{㇅Uh\sG 4yt }/L�Ztkk?#VW_GK~M~{{e<V6FuuY�{[5n4{{%eqn*/[l]>#[U"޴,v+0.4Q}S界=]xɑ6ק{9k�z4J&wb+ߢ-DSwb>#vV`϶Xbs@VSOR}$rX B-3%sJܧ۽򁰈zMCa ہmlTϫ*H0.Ss.K+ӇT qտ~z . . G<b3bz؞ !s'K|]r:h%75*W|o4~$-+xS@9%aK ^ChׂowFg!n> TcoR4%6(_ϏM 9�wq/ \I>;ˤe©pK,7}zWsz\:s3N¾ab%pbOGr(k~q3=C=*:YzkP^yBN7mZա%h6o|VX Ѕh _}*/ܥز@XD { 6wМ^ :=”z#?L4Ï�+4آ*ǥwAr$]iE[K ?#gI n/d _-�ޘ˗YԖ}[s3@Ϗ,'<zRlIiX6z٧,W0m1g_Z�=U9{nZ\#=+!vM^sфGDÐ?KUdHsg3Rt ӯi>thOw MDWju6b߰`P Ş}uYbYn/mN>q՗(aOktY.t[.w43mйP�|$tm?D#ߣ''AC(^*O]@k&k}¤/,<gv=r1ڮ ѴxęFl[GT 34Tm~my;?]"�Tpa|qY>[>==1Ug<;e;L<ϟ 6n[Pvnq%F,P G,sΩ1_9N2vy^fgWŁ�KW~ -muI\/(X8buL1'/pur a̸߈Fc7(__gJqG%!RAQf"6IUbDBfuRN+nvaҺ;(#[ p�wPy\;ߙ\]䡇?}]][zj%׫@9x$(MJ٬S�QONo)044${ [ XZ<#/)tI SE>Wg}xO #Ӹlz �<ˁ"c7J\uS fj w($TLϓF>?ĻaToX5Fш{U*3?4.|uE@6̋9\~ ΊEwb.B OE<]U-j9L(̻ V9NxxP߅PD݇?}=y/^ۭㄦ@(`ϳ#ׁbI0['\WYp;kwF_Ks0WtsMz<-<eM3Y{hmDžf\Әp빦X~vV{?Ŝ1C2 b]Z/r+e@yNbw˗o4N@Bg*c҈&$ҍ%_ cy W|\͖<dHlќ:jnb*f'8m\ڼvO1T"zY=^{q>J5"~{3GE8zဘ ʴ4 u^!ѧ N^j?:j&xke| s#5׃W;@I}dmGLp~ z|٠1@K`E<?T#nt~ȯl D1{*ph>[Yp ]qj`\?`~t%K!K)dA,u?wȇ\OKy'Դg3V81 ׅ1Q& @/D1|plX5^b9&@!.&о,II['zJI-W< ;sn(K)!)JEcQ 6ֈ+NLúF.q |2i7^n e2a &ٚU!Nƭ+~50(;lg4;]Og%1pbHm.B̾ZuT⚛A)zȀs6tc@ͭ�eՀu ^ ⥄lLFsXeE7 Qb·g/B<}#A4>pOL |{ϞQ!# (7'"'<X,ׁ2oχն@1}X}=7>(߇OW7^,zd߹cw/s;2qk9Ē8'&3}qÀCScb^tBs$Hgש nɧW}h/UFqee[lEz"t|~R*1[M8MK +߭@|@(+h~q>}~]mGd氈Fi*<~C[K^YMf'2<ZA_0ՊGt嚞Lj>?޾:�h )m@ߟaG.cNDe/Whdžr@>7[3Դ <[qy)_"D|u3 ؛c#ߔẁn߼iP<%U]W"޷OvOa\C%6<ha7@L ܝzw6f+A{/2"cha4z%D+Pǂ8Y㇟!v=u@(4-N"Β#o;><xN'Y-ߟ]C�-ʔKyl9byXeޑEJlV.1=(؅=/ q~@-5|IlA<H6L`}(P5Dzcy7=Q_Oo;3>UhAx/0FL|U?ťM@GI#^M弃S^.wMEgk,a!U{ohi#s P_s"/}(ŹV]v 42t 0*F?X5KZ"}O|۷q#)Ѷ@p^|Ƈ~eҗo\p.K+seM]zkhRx^y=- Y_=$<4m +XS?ElO ͏n`:]63hGN�Z'B4]fRRBUA7NKomλz;8v4s3C/6|܉J+@ X_#]! hqH_Ϝ>Ma`+{jP]\$XmR |; o~T; ԷF@o߳}qbÓ@Z\x# ýC7P[O=)yAYqCh_oB :�)"(>}D(W7fui~vG[xc*΋W,KABL ηf[~ P+oNxwnkYXܖCb@}*:љ9+nybZN̟B(t?o3 4a/b!@uIP.b!މ@:v 2Qxc׀Md@IT;龎|Ău4cf.*۱rT 1[ _zR /p"?Sq^myuo8(jO:o:`xއ)ma76Pmz8 Kr@Ux PŻvrcµ&@sSoxF,ALk{Y ؕpνa%Xhm6x g�Z|+3F7TE"{\וǶK-PT]s3FVc^>H>fjP D:;l�G@UvA`CN:݁=EmT|yh bY[jhvdRW)wzhH˲M0%&%0yl O S@,8<X*. |Jf@ 3{o]97Ɉ[`vV~{&a@oz}zmV~UO9C_%ߙ/o2Mmeݷ2u'b} �Jx 旎CWB% 4=@tΉ+s7F}qвH kk1AE@{ծv ܧ]`9?Rh~h׵~7�v \XV5gF~0F_>a(sb7Ь嵓FioCNN՚@P]q ͫexzHI 7XH3tes^}iGJ1χDž\Ϟ `=vHٽ1}@vl? $LS6?F[M%t]bN;|olENnTz`Gc~I!ycSP"PEbl Q)Gz3c?6_$. k}^"1ת8�~;p;bǼJAfg @}?s:V{ɷLZ ͟�b~2qtj�UeYVY "!WoWhN9tůrFI֮C<u'ŀ"R)d8 {a;=Lݓ;y._,�kVמ_24^k495Q C\WRc.o~5e![WZ6/ Ѵ)&3^6`@Xƽ>7j,hs:�@XT_G L%hmqv<ES ?G:Ώ jsι 4 7瑈=+h d\|:$NHo9ejҺ@#wu|:�Ԋ>dXsSVݫdP؟K1_,Yku%xz{_<G]oҁ\[`l̒:O=gK{YEq/DLs_*|;md.^׭7tm۹hj-wϹq<J͢eYym 7>ʭB<灰Kk4 ζýnc8qLAiq)i�d2b7DH ̆x /.4 ViGS�5Va5Po6Jn&os[!h æ^(uy1b ~c /B@1z$y:~bnB̯/>#*1m@uqD-ͫ$bֻho5 $gG\=Dմ=ܙmUϻ7u?8QZq)@l}e#yR C_mv=J~})kFӕO [g@`h&0N=k/tjղi` >)^/G!w[#\wFg@ie+ ƝR, ]$9؃GFS/T{ zJ\ e-A س4kؙ@KUkvX"~Fu(o{T=~bYA͑W..ؙKmRUTP慍/[dzߵT`>DŽ{hMҵyCby.\8y=[d|Ƌ@  ຫ(~/ps]71 v)BS5]m#'1hvM:%y4+}-4oN} +۝Oz n"x:͎vJVhO _OWժZ:3}_Ŷ4P$QB#?mP;N)zE&qt~켍OQGڒp1 5ڵ'kؗl>||"Pk@A-[:Um݁~q ihvy، 0zsgKzwqLG/> Ym[|ߤRt9I@܉ZǘODM|ĻVq!-w�QOm'<WǿI }{^Æ7İOah2E{`+aJƍ3Vaǟy=7LEs G{"ma€HݗBݟͮ-Z Խr@f_,Rn`PhUF!XKPU iϿdG\,"/H/~#vϠo|0!esF&#]+X{nN ;4 {@C&vb-f X}{12qFn^[;';OjBm;gJĻ+7rD?fuEqޡRcNIܤ2ټUKW̙I@=9/͏{tKs蚫;|⧏.D|!ιzx- c'F@5܅x |` A:{pw ДUD͏6d]c'shi[| U o0_ E %U'dn=/V&/ _eo&VޕNطO>W1>Edz&$B:PpR +gȏ3s7|6SI!9H�b:|K?֋gKHD챋5�5_%@ a0]-{8}C.i^6N?z}e&S\'=Cꍨ @?jnC(*@ Y+dAϿpQk1 @yV}BO6K!*ZĦw j=2{#[^p--G`âsC@/ ۷"P -@ FEe;*]uu7MNj٩(Ol%@<{-SDbsliN X q.6ZՎ'bϼy)-6кB~Ŝurem@LH]tߋ*PZtћ߃wO C?n}s sY@71]VJ-3Y3muF@]0m@a#{Vc@YL#\`$C{Κp)>:皆,{¤'R8iUVQyD@43&{};/Bڀq^s˃wI]/߃L);"@K0|jܗӻ:B%4Ws4E#/͟iZ=gxSVYg5\Ͻ Ĝ[B:MGcT pH�~5:i@="'Q[@:kp1wS ~lp @]:t|�*O,l:W߀98JMvʹ~(f/~3@4|y|4!ܩX7?3qXdtY+˳w 4يb�='qy۳Ł2vW bf_`Sx6ܧlӝJ4Eb-ol�l�bnyY+<9ʪi 5DFI#޹]Ubř{Լ D\=`ceA[iz ?ߓkl|ߩ9灭tF]ZvYcsRuU"g#PUW8&}lVf?H~|!G@T1%^ |YmsrC=~GAYR4JV po^U>{5agpMY|m?jyzҪK4_WotƽCJ}�璔`GYܔz8b-o{Y5ǩǤz|j{ڴLhݍK7/^. HG@Y3Vϧ.U!]W/tEC;tn@̷paTsx/*@ CafdHX<:Ty⎪ F]~w=xkM=2w}O|beǼi ^9v̑)tZO5z)BhnqWd< 4_.ݧ7 KKzRBXyͮyM a3Kî< &(,kNcfZJfe m拹|^k_lKZ -hE;/?~kbVf/Z>t5j d 0g'=*t[@%mZgF4Jg郦֡U{Zc?UФe׸؏\:|ѬN&$| >G) A@_&L�M@9:{DKeg v}_Ȣ23w(S^qpbPBתt4Dg>Cc[vl;rv yW�@6<oA Ю=/?ci96@[g {ҞV1 {rRF~W/տkѬŒ|*2xֶW>z8yhN7@HlxYDuGq`%-B\3˩@9}Io F_y3YѰhLPIy%b0T�0ܛSUf} Wz]0WȮ7F\1Ni @i ov=!HЅ)/G.Rg�s XvFӯ| [i;ڀ58~ɯjخUiyxNm|Z eB=27w#%p) .>@ F"m^ Ĺ=JKk�Vsj36bn :y]muWR=U"IVc/QIiߋ+\@ݜ݋pfS6�bʁ :2y=?BkM+|GBW IWz�./g;o' dXG;W;A> Uáo񺲷<eRW< D(iަtZ`WW䯌jO|,שv062o|a|'_Ò6(^Q쉛c _w@ &ʬVF/]NFG#ȋl6H. ,JTDb~hHL&"4Q2ҵ}(»~  JO{uBe^+tڹ 1W)J|mC-mGO9ά$BKRJ+I.EҖJBBP2CCR=_esñBJa!t6GGÈ+\/2vIK|~6r'~ eh8=gyx'ʦ{==%(ѻ09.CCHwt^*mً؋8 ȴw}Og!sޯ&x$5-ҍ ms)?DiBS&~""g;_g2\cwe#6 jb$08?2rtXX[ctGJ1cr?0 [ ]נxAff Xp$9WC_9:oe[~wi9GJ0pYWv!uza3{3%|:7m42%__z9W) ז?2ˮE|Js$?XDA,#i8c*IgIM=3Q?w)"c>62]5yw&#7@͝$R5CdaEueIՖKW}iIU>H0;W"SDx!: N/Khb@jp(~- ,;#}?4 ?Jy=Y5F?rjtޮ5U5nrcf0X.dy<dvKLQwnDnozT!k_tLނ:˷8)^g!`ڛ�eR hZow:(#h$?F1 <5(m䑊]�މdgǧ}DK/-0̛o#wF:Ur>]׭H{St+}o(C֬Q�V{ܔ@ On5 G^EDp"P1i_&* {܁}ۛ@$*]@!c'e4vla{~uhL~c/>i1_IJ)joE7/E7r\exMDÍwL =9MHBN̾=CvA״v d?}�:B*yH-]^sL0d-UEz[LMw.7Vw|דvg yE\\&rޜ ݆ *W vE)߭M#+@g]k mTwqEt^j/R[6IŮn[=Z~KH\_%xȣ}f/LW2}=p{E)uR_H%zdD%ՠgI~S]eŕ@sڵq#Vy r,>EOK1ϕ@rJ nxJqؾ]Rlz;َ0~xЄR{\NAqȉh酜?CC NuOCV/ KtGNIH Rzi K4JeY6͍^C犱Q IsA&M؀o\dܜtQW8G~૛AdB KTH~3~x</fj U/a=?y}INd>_-2~38rpAu|,}wf9KßJA^]#Úש5 HjPGj?}aJϪkO;IRfd_L I!\26F;E0ZPw8,qd C=@dzrF oP EaכbMȐ6/}gw=ǝm_E3z2w-=#cq5+6EWsӓGSo<g 7,d}p|+;mCqt۪WPSN!1V5}aUԮq h<ҷ5R]O^5{{9<'v_#{RnF1-|Ɨp-)d>lGcPZ R@8v;#(R39MK tFI(x 9n޹ꅟU[5 kEb75g^6ܸZoF<,V'ȑ?5u ُOJz]Wu cL{qfpfX6lG͑yIמxݾbn%"uUd\ϒM^Sk.ps,00Cg]H=L)UMUy݂]>2.F-3O nÈZw Ub|2Lij!vP烜FK1;Ȩ_hk=ED95EvzݺGɟm|=R6[ި.~_(U!Z!:h@vE?_*9} pVsRՐPnr]޷`n:}YDBְ djJ]H3NC w_JcGV[GX 2漒h=xCť3$?~ВzKns"=- PAz3M'ct;j@پ73ArV5 ƨy7AAv"Mӑ2^S-H arPZ%7ep?߽l߼ٺ:fcFidq~V#mU×[w>xtDRNdb"{ms@)lbUGH^M{nT׼yWn-SBVַgayпj(q8&M_ƺ~'ƀ[3[qx-֬m{Hhd`p9_b2xy�FTc>DfքwZm:O\ s͉&dܙap ]*N@VUi04Q!,@0su^e]o!{14e_Z#n5xaUoӟ#m,@ɯe۽_s~p7R=vnq) I c֩w憄чZf#yBbG,^ \DNد#{_=Ŀ_LϬjMEь'ǐZr�s*^AX2dąT>j,_�/Pv(*;qocg?balʛj33^.}4RX ] Ȓz'DUs"nR2R|?*~kL2u 4 _jogMJnH=ϱW0@xuD'/a w?g åeO m"¹ƶ"m|ΫG^={ډHqo.xvS/7ijct>^ \(* i{H+;U~ۑVcK1V|8obΪ̇k R/g(qxvE,Fdf_lT-۩m d́ 7,K8XƧm;a*fSH8ܲ VŇW$|?d'Ϡczxd&/&j?}~F~Go5N-LhDHiZEa0U0"^t!uֱIRЙ8L,BZ O\�]:64wBR{yޞ4\VNע?"m@هz1\e 6רGy炁km˔4 $�*n\vŒowEi&ș D[$|;e 2ĊM(@ϕcޤ4t2aNOWKwF.F=iI6({ﴬ'ˊ!,rz;@j]ć%g@iQhr }ڔރ)0{%!zfׯKaӡ˯h/~V,ekDDE~q]j͟4}ۑCZVl}W-ˀHNLG'N^C9g;E پ.{[rO"Ӧ]IxBB4LgTPlkII0(6z6c! FgH="UCxQdm|jVEg: u:.*~ZRBz NRDz8K P{70+_tL:oeKf3b.!Ӕmw+/GqP⧆T #vvNgSXH;s:H\9uV2Qs~dWnb=ߎi}4hJoΕiE(dgSMre[u]�֍ZȐL`>(=0C[)۳[_$G?d,YZkrG'oBo =gls[y3jZj0xl ۰D_c`jB>8%_޹N<w&rR͑rh]mU02Dn ! mQ| KU2gG:9'rZOcΫ-{?:20.vX274TYHdib̻H%޽@m4=+K3u['S Rv"'}̔41Rklu]id>Lf{3^?oB!+}ʨi-M_@fl߂by1,2/Az&hǁLlQ41dd^|Z,Ǟ;e^T'~'zҳb8bL z=\C:?<YiR@x=}bdVvUx-ŶCaۣ^҇ˏf&٪Wj T_ #:%3bo=ѣҥ[bl)-]yG RomK'Fr͑m@wt[l aj'HOwkݎzt8K(;'w~Ңdƚ)#36ފ)VlB9Wo":YIxּ$y*wt۟�O.]A:A]Cod= [ {0_ʗ ћ !755tPlaӿiݒnaoCjǥ$JlK_W,pbsxqm_E58񓀒$GC3Q̰۩�9( j۸'<AsZ)3!.#/k|AZxdd[MF|u'wIMC-+!]7 r:w/WR RU6OBJwa6S =2+av l|V_[hQ2dn1sMÿ z i]vS>ܝՀ&m@|anw"epf+Q-Y{ZR`瓝 �i7H x'ߋ:Kfp[WRU{/x~,`D̴ɔ p./TЖ^+O#uu*Sٷb)iM ,cڮsӂqBW!cpjAaR>围;e6Pj4A x k'"wM l[e1}Eny _2܆~fddgMO!x{ r.NہX yXb񇉙d~i'3[K~�AHzjM>b |7юgw'%]2] ϮлH<O܁suk `xٮJcQY['FκmG4(ݷG^%9T6x?2_MC[uqqLA2#.oJdIDĬ 7|N^m qI<]~?Ϛƽj$ϳO0$Ų; ;ѱrEr!)ֳJU^CJUN(ˏ;#xL5қRoG1KV7ͮ{~pEeߊJW/ ,A'=r$_  k^$s¤g,"hK \*G1(v dݧMxBy@{ i 9E, :kK?ByfJL}T*(pO.vn}Ig>{q3@Kܑ.mu7M @'Z3Ka2e&yǙWS!G3tMAֿ 1f p W@ݯ!]hTH;BTxh"] Y0 #xseSAĿcRdNl|U1O,*'6"|Ǿe`gu^m.z< wQԢ7(&ySGE5BΆm7&g͗/?mM MqݳW7?n][WHy~OgQzG"-w W \+pF1 ؙz9um# d,߿ vOǓ{<&PJ.x颦kd* >#ü$IFrcTBL^FV rT4}0%1ZD, Qc*չ_m݈쭟9o^%e "aeyԯfAwxi"鉛5"Ro"3vj˝F]A%Y=Ȗ4&[ \7.qQc65_/d+f'5g)$[,6"K:_G<wODfC ė>?LS]-{(ϖ?BO~?\_(g"ZD{=͹>B5'"'WNR9 Jwp'JޣP  T.aɶ[%moyK"N6|�,-Q.ruɼLK|X|)4y/LEƜ A5Q/0)\ ȗOTSei7hA茆YȼE-# Oιk޾ C!#{ƾOsRipwyQpd,??;]Y=@<๼7&PʃguAvCV'm|dVfSyl5 #f!s8ߐֿR۸1rqR]_CH_9S#or'Nd`phLurj? >Ga`I?T/~%Ffו&ެBOp:24&`ƞ(+E 0)2e�wWU՞?n|~id@^f aFYdc.h"K6ny{*󺇑xi\2U!P75&I�r,_{[DGr'Vn=l0jɾ-H2oAز'$2U׉5Q1YQ®DžN[`SnYR[#9'Ue9 \{&yIk*őf>0@洌g�/_$ɻT2aüԫ6 <>`Ɓ/؇?lDU-x;e 0ZL=- \ۢ햓3`x x/d_qifPW @yަXg0?ni%sl#b[}k&vt{&In F@۟m%sL -7C6y2y̜ Æ=nCs/$*QƧ1N)g M|cf6H5z}2>ժ&w.zGN~`GZ\YkNAܒᕅ0b:X#~]9�\ǎC0#;FS?LsI+)78/0/m Z59o'5!||ٙ_%V"#`=_<T Y-/C ]aFnT_ 7ux0S3s )JD6+'a剌I pbZ>"ޑ;Ⱥ7bw2U1.Z͌o@ƴVp\,qSy>I+`4tMjHz D?Ou2N(XC&s~BF37Vtۯ4O/&X\m'n%Y0]qm16x=M+㻜똧n_7 c�"e/n�VO=x2v*=5)_[yH/IKgO cHv!e97V=|:ݜ6{nwQy|}y^pw\މk:!Y˹Ax1d+%Hgl]1 >D*TteIhn~mΩS#EE?,uTw0ʫNU/2ᣇ9Yo d(>B6ߤw5Ԓ Wo3#:E ~HhFQf"^ u XSe!gɼ*p:o'\D�/G".okX'2vMeC0u!9⓬ J/֚,k:FcSvKCݙHo8@f s(|/ЎB\AZ*WdokP厝ۑsf1d@Zbv`r䭽+wQ޽[M}tp7Wdؗ <Q 2'SDfяH0[+57m5ēVx%|ܺD7åDFp#HW㋹?l}| h8甩V/oD]3}_RqmKv ߭�ZrwW %'(j|)]s6?CꢿуE&QlqƧ}Md~<jM%#-O3Ӿb&na@8aW+-ٶR_'(!vxp}wɣN#+L)ގ]v(UKf6</v~n"~>=ט50a_Ngd2ͽje}hiP@NX[m]=Mk5ǎB:J{mѵ0@Qf}\IڿgYԤW=G" oHGfDjGXx^oV ޓee6"_dRdOt(B%5 xsFNcY]Q [caBTyUEhY'95~BZo-^U_!=zI="cUŜEG`tapdL$ ?%y{r)KwVSFU-q8̐ŭGw6~.͔,u�K_ڞߣUkn�~mn4Rv-Pl uO7U̖FEn 6#1<=+S-؃lætM{(trv d=RA"2貐Co~WY ʏg:ZI Ȋ$F#Wdi�}w)NT5gjaW}aMȴޡ(DUրv%LV &(sHQ[6 %*OKOCK4~aĶ2 iHux[̮ӑ5=ݫ{ ~;hJXlI%+oƶ2u+'^)AXQ.G{Pvɰ&rn]oE_R  lqidf#w}NGOٔs[]-yy`;W7p7d'<Y\臔TŬ0r.hm ƪ +}Q^do^uNٺ""Cvy`YqO%XÚˑ`Sb0.>2X7jXCO[d.H _2 |==`~ 2wK"ƍ?A =`6op.Cu&d h[eo.?Bz7~)پ-HP8"^�BKs Ϻׂ3{<^#q0oٕGYCL2i W]"έ7̑Z2x>ju[uCFzfqGO:v�<a݀ r;aJ[2]!9Ђw,IiTp%<~Vb ; fe%e?S܎L㣫#\nt{kgֿ|{)7r:߶9nI9n HDwQ+߭޷ax%@ngnCi>)7ވCqN^q^| {z Ți0^} 6< J<8бxã!Sbdԗ}Mp׌+ro(PT@{=mR+4%qՙؔH=9u$X i^qk g{TH6'Fzs:ԕU7"# ZUS~My,ƏX$ͯ2O#ۨ6naZhgmsz8nNvAzt Vҧ]{횁նz ڢ簁?Tn15X/hAw+"ciќa#-x1Ue巈W]<)dl~~05_=aa\sgolaQ]1KL.ΰZc̣27ߖZB̜;= ^P"Z.p驷 H\囋A9 =6*ҵ 0Y+ozǑ Gx\ڇ <;G+4 O$kG!C8{uKpmDG%7]XߗAhY.!+yΚfq&XiEJ4; Pluy]Hevx#+ R^I^=u=zg#iEH]} 2L.9O.r,=jTcHs6eԫe ..9SĪ䄃3'St}#|U u#=(>ref~QGǼ~ /?_s/sCzǢD{I^rtF= X=7޴ezM9ΎSEdaۮ+OHlUz&U·Eh-T yL~|'n"= F7$|S+i42eO.ӳ;̪r n8 *[@p*(5>ѕaTo+_NFlIϝbnlMz{ v{lCZ |׷a;+Dה{HH^a#vkբ71l/>' ސq۩�%vyZrɶ5O=|͆U@xl{܂1! \_ CqT2i~fh+4vU5\d, W9mjb5O$ߟhS'[N⋻BKݜ ׭'2AhK65{$j\B~VJ_˛Γ#`{﫪ivQK*8vVAڽ;؟Ȯj6cT5s<aɷ]&3`DIA/|̎yK,{n%"W e/E\Zyig~)]? ,l;o}_< 9j)o5]S/TW2{ "<R|r~oV {@)o.d &<ȑVIxn,*W?;[dBm =˨4~io0qR22o|Ou.>+pvė lm=vYJ6壙 Gʷ#C.\_k.G:k{q/Tݾ?2H5;aTeT~hgOh@mqԍ*2! nnvW}ߦK_]FJom=d3&r2{[@'ҋLɢdCۤS֩I%~xFa=U%�>'U߉jf5(>)+ᗫ zn= [~ٟ\ωv(n]9g} 2 <~7"ޯ~gIG An8x:FգHG>K +VKK<\ȘO~6+Ey0zmg �c'h rvNtlĤKw'VDw#'|_#)ǑmNkЌ/|7>Yx%\΍F"꺳 _ݜ$&||e`Edd]9y /0R_,ՐTٝ C:r;Ӯ<vjIYy :Nap0;fkTI~DΞ>7 [FyYt9敕'Ĩ՞d,t3GjW+WGSzjЁ|O3d Mh&^*]@rdCk/翘̺ Ya$!nnj{ 'ؗ{ަ'] V! V)T4X I!x=(x:U b"j;Nl}[^ݿ_C^]GHIw )Xg*{Lt',¿ט{ʺ~4qT€_;-3?l5rSF#!z+eIR39 Qfk'Cem(7�@Αz nŴ߄t!JW64p 5lO]:i'_ݑ2#2:AΟJ-Sn12wշAtFReg)Ñ/$+<D!bydJ^ 7!.,D7/AoNfOHɎچ"?HO2nS#Jg$xʨ>scd^ߥUy9AsK=v|r2\9+#M%So۴x͒6{7'Z0Hqy'vY+pqa" [>T?<_]8HS!|tKxc)'ޟ\Zv|8L+�1kiK"t$^B=="IxWgrʌmܝ,$oH%-pm&Yudyb Kg_<;r Ij]n`[_{z;�=fK"m~o4R x&29y2l<EQw7]nxNҿ(MԆΡ!/·0Z}n5cTn. <E%M<ƻ$ G c!apan4+4z Bm{/i" wKu t+X-2Le"BԖLlw&sgKDccSD['EzF(Rd?iA]gsϚħ'WSE Ύk"9[Nz껺 YwN. nmt+ڇCXy%|sz<zlNMi OwN*Ӓߛ4*mG d6yua 6%V uCȜפ rGN{\ 7n4C`a΋ρHRY/GvJULp]G^PK<6귦~-0FNhNfur^D?/sr>kT%“;1ypZ a@<K]z!kN:(g)ߑyI#}mms3ѳ`Ds5H. :%gX,K@ΜogFC,DK=4OH[]�\=a6-;2?# Oå/H56#SW<@po^ѮN z)]? ;@[90WZPŒ7#{}DH2LTo){)Z쀜:?o~*<0U+jV=REZ2Jai :?v:;}b= 'Uk-@1e^ڳ1C]gue=o+DzkUHI !{(,;�[:I=BFpمLY{E>}w&JMYN6*+@*& 옓6cc_!SBid\}0сKG<IFa k;뛨ȅ9'W1ǎE.YqEI}d^g|E 7ǑV  G:Mr)J-8Kvȿ2»ΈQeduDdI>#*#)MzBy_~U1%YW ^Ky-b K46#Eߊ2,$ɔ >!$}:>mCٿeqZ�SYJ<=^<ZoW/Oy {ߋU7AmcM:yY&z^nS9wAn$dw=l@.<N8+Z+&p@XF<H762 |11_%J_- #{ 2' ?UI PHR@5K=^!?W̐oJ  9qQmk=pT)oAf? +mڨ30>)}!ҕڍZƏQLlYw.MB {qJ6pTN�)_.Q:q~:ү]/~ͽrGF^(q̋J:P'DতzOyig|Hղ2udEWreȩ"6JV R*e9u42}pZS52<w?"K^(: U06ENFzZb6^_ZQѲ(vޢwov1A]߶u._zz'^a ?k&&9L/S{In4 F[C+M>5LZ/XwIgnCY'<_?߲x3GZ~k)rV6w&"v*5&SEy AdsosEya;@^j%YyF+>_G=�Y=>y"r^�ӮdGٙ6>E+yw@R%s {yɷtZ&Ww=}&?M^Jv Rn-5-N,Rg 3j4,T9h8l2]ר'!o7p 9 JD:|2Q !j-(̱7ᨗ aE~]CN auOi>h �AOOvNnJ;#]kۿTdE œ;`Q1˕HULӒ=ۑ*L, i+FVu<DweuN?+^J|%$DS2/EV摬BS_-ZS 0Q:&ny^|C0dO~xppBV\ܧ&qf% Wk ۔T$O8}*Q1C�a~5rs K}y#^9OyedmizG M3RDZKWAd!};ToNx6{ \Ype Dx4ʥ'JݿSSYF[*kǷHut,W*$e|:31#k>|S/ٍI^d\`;la5tWo7kIEvS:(1=,$#}L*;\ԆB$7 .UeKWjAad\UCk:O!ػ JE{=Qw`1W]&M3#[t0i:rƧ^/Ư&\{ԊuTu:~0hms# YnE V\Za q'o'<.\[T_hԻǖb^gB_"Im<Ix#,Ʌvwg,EZVsy\)['|vFâ>ݻǍ]H_\+GWʐsh` C<X3 !]dt>ϻ�>cd?u4^[e'  _U gմT}';q<x2(Y�U='&b>aSnO?j@xkcnp4r�Ͳ3+}Ҋ'f#񾡅sBfdfKoCvqaP|Qs2\#aCiF@nNJ.A_CjK=i#<́ 7/5$o5r4w-|z 2mtz~Q7? }S7eu 2C,^GT۞Cq3!,ɵ6~[P4c ph|-~eydܿ<AoIϯ|9W6Ds,טxWr P;6KIxOΕ'{t2Zs|Eѓta%:meWnHl >HӐZ\ 4wއuVJ,^Z<n)[xD0:7.޸.29<y=~*Ȗu\_:0i+Iolz6'5Q<@ɃHJ~p `㬽/-q6H>*FZ',}"7$B{J9Ə2s\yp{Ÿa#::)&Ծ*2t; pCSY?/AZx֥{Rߴ_ 9zVҶЕp{k7 Df6/x7+0*z?tT7I)^zm&n9ar ~8Nj?mqo3R@`tH.݄ҫO9H?s91$'RzH^^,"G(ӕ=*ᬶ+qȒ=R )i'F@xx֝' ' (Pz/Yߙs'L'U:OYE)]%!_ҁy j}y"2}wty yhx27qAԩ:"5`g<߆Kqv@k` {gz5W!v3ᣩ?@6\e)zFμlM`Z'CW?!s{d7vðރyO]`xos3T…\C}`^$5ƗO 3-!g7gY KG>4)Qko8Qs7Y Wy<= fU"^ɾ#\Y6y2>BΤ)D0:d"^rtz>_lD32;|B^y|v1pS(pg\Y _Opiӧ0!3>U#cGM <=>*hi7j~Tf΄<GO1ϩk>�e num~P0cCWWҘ̳欿=^;rn6Ud {ֲQG_Er[TAu|G92.U j3+fɑ yr2[./> c-g@V# u/HGQs~Q3uaI `o= }sZ͜Z#澻_Y?e+ϢO{.}1Bv&7)Ԅ^|-sB».~W!c`\x>mO6"sfX~:R<$#k⑜`#sXWk#gƯٖZ?p_cO}2's![2\P<K]| Q swB4dnW~zomw�wz6.s4]x }s33{[=r޿KAaG/"[7t.d|\?# ^pT{ `LEVGH.\KG.2nG-G&*C^1ם+HOkiD4kFIcӐq/԰+A)wڔi-X gVKv0|ҧegHN߳zC]1Aڹ$v?v!bdsEH<Uȸ!#O< [ϡXd۬A!#k҆vn˫e'{㵥$/VS䅇~p>2t眆 )9Ȑr9G?#RJ#9#s@Ӥ7at!I˻3`x_uI LxEVݑW"#=mw' Q|DvrGgF~i ;o}`vc 'ϙ>zH ZRT'.\kQwu A`9Z8| :d5XfqL"ox>x-[ ,ӎF~N:ѽ(_ C AI[m$^,^`/ γ7gYe āR]h.yW'x=o/X) #{8ը;9e\E ?}ҫ{?@Vb] Ԗ z ¹FBdHtޭOA{kLہeduL%Ep5d a(UݎA6Sl|3=IΙ$?fd> wm^m {Jlj<xYmpBҕAPfTRlS#+[h)DdH>HK-T!9+w"To˝.R>+~#عӋHo3\ QKNd~GB5(F"hUۏ26"my|'3KAy}eZپ~5J*6U W$>/@{c}dٱ32WI?GWxJ\TEHEߐ?F8&U݃BQGY":xz~"+{D##9J~;mkc80~ryM8^ oGŝ޼80LuGN(^Z>SJ"{Ⱦ)^V; F۬(pfFؖॄ }T1:kJB/vQB:KZiR 8*'xقHvk"訯Oi!|ZXJq6K񆧾pP9oCzRmj 5l&!%'^QiEl;2 1iEQt*J#h#&/Ꮄi7ył9˷-tn&_W˳EorɇռZvnY?6 3X~^)GNOˀ>+}KI~Z&y0&aX;!χ%=%agj![U3=|Ԩ٧pZ- 3kjwǙYlve(T+g%N�Qy"DlշE3B GҗFeNR(OOjd<th#g}=:DֹMFDgJVz Zc~BO5'=ec ÓoA 2o[,f\}~ 2ErmH[gVn>" ۘӋj ~Uak0j~:& #:  l97: >18s)HdW$0|*N7 'n?)gSǽީ_T);uowDݭIs5KVzhjXTK# k$\[1٬Ʉ[׆_E<$[1[3ʥ̬ʬ'֕P~wW5ט>]YpxoDW6D|k:}1wwONO~MlLQx굝; ʘ| Bƌu)9ķ=tS05Hu5y- $�o7z>!nˤ'p%3b rR^~xVO.cy|K~֋yF2@J'g}1HϽ8/C[ Dw>Ef֌K(f* ]G gpp )#*0q6l7{&Ƀn0hGrgc8_KeUd4VAJ8t 9{s'9gu� H]z'/ OZnɰՄ%qi6OOzNr%N߂Ȑ;=N'r9 \V"c.$oބwaygSY=ڒ#]6F;c ⃅aՑJڄ؂HI"8| kkay(~d^($AE J^Vs2 yY"mS}e{"/e;9OzZõVrU\qҵ JCNaSs2&}Nc4ΑhtCIwI>(rH)ߘx[d~XhtEd 2??֦)ǑZv2C] Puld,Tb<u�T&ާĠi(\#?ķNrgL"ʪ} %X�7,C"zƽJ)1BvO CօS6ZŦ\C•MoEvcA<%vtD+R-%0cvrHAAOa=jMoW3Pss $1W~9DJisHD84Vu 䟭x \Vf7[硘O*)088._ѲB¿'!l풯qzn r䗬=|8)U?i=ڋGwlˁwMbo|斻X 9<ncW<AEw|+3d57,;ԏl ׼U&QO>?:peFc+XVH9d#u:#sVb%z>,jyo᳀omd1b7?/_:۝ }!2u&V>5=ӗ ø W* xQ#GPker iܓO@>1ŵ@]]sW'J 8ԓ .AF$WU"4ɺ:#\VCq/C<|WyO8bۛRyn.Rɵ ېy9*-j{$~1l iEo4@Q]#GڔN_:Ђ ;cѫI?<Om@bS4 ]Pl՗ x> ڳx M)=YW9^`mWyǮ]ck?҇0dlΜf"76OT@"uit撺\ 0x_mҹ!9UȨߐӽ_KvG =?/c̀e@({_:rVx2mq|^1tf1?9M]/z֢͑T󶛞 5U0%_I#*5>w/ �~v2WF-;l=m?NV/ZjϞ &kX;0OK)iKBج>[WLk�~uAyelXH뙼igjaHm_AgWYH;Hic$MY< ohzG75} Kc}r$j]X(cTkR_ sfRMtBA[Nkv#/*~"WKUEe?R;6;SjVTQ1Eޢ |sd?۸*+2]rͅjŗo yay~^+ D)p %1sӔӿ`hO ?A4˞]xUzI:-A(9O3/#!\txD?E 5^A\vx! w_�\՜L0p<L[ |gbȨPؖSe՛qQg589ϣqFsH9ۧ鹁hNrNݑsA%D:.c:S^,?d�_ZQ L i&?Ҏk#=t(7 y95CVlٺ Oe'=:s{Yz[ad5juYMHecC/ޜ!ڠsRl޿_%LD\12+ +ޫLd9Vp bMYYSU%1`'sdVw;24ޞCҳ&`DVs$'U8oXw0\rdҲ1ݛ;V#s;Od u@˫u Sׂ#) >iߴ2y8fR d,@F+5Xi}75h:Ra$5BV?6JgFN lu̳=[2#KKw3gNrIvA&SP|u˴\j .lV,Bdz k~꩒^P[ GV00r[? tH7l Z\ j"}ڈ' )0j#t;ǣ _v!-z}/%`{l_j W>}֐pv߁޳d~}-A*`eyl^GfR O,jSPV5 s1W"'";Co\M?Y,<wR G߫~:)בnҮ\GS5,x%៭V\O+?g+l f55߸/:(VRmNS+h]1,Y Th]$_Z2"{Yy)$^FVE?HOx4 mǃ@H{gip–)mh~5\ xF7J>siQdxv{�V** /"m&J0Es==~`,kNG=cjS/"`;7?1[R_ۑQ-'?|Vx?kd'țIWln"C9 *i︹֖ O z1߯=ZorxzCl`y)З JKL4:MSW:!sEϤ*#zw5IgERS5.|O<Sm߷xe?rD*FYCdDj\| w1}5Hbd?x+ =4@`@^(D^~xCɿ⑎C=U2nDjRP?#A!;?QdԔ@-W G93F'x8# OOQO<AqiNqݼ.ey_0CW<'Q"n.EffYۿMoejz]i(N9Com1AA-H/8ƑBJp^w} c<j\\U~ R@K ={)ۧi+詣֏~'\ 8$ﻩUu،؛A0˱ͦ`Ϛ3okwyjw~#_\k[lY^1F{Ջ3wA<l@R >Ai=/!?y5tD̽oo4FwY)2'Jox#*Bf8^]൅rmn"uy e-i@&U\c}^愌a9*]HiRxMg !8T oGaEQ5C"FHHU:<5dH>nao{euѝຜouQBB5pY1;Er`tO/rAT{tMspy!H!l'\{ljòf}K#-{`ҲWN;Խ7vRZd#{f>OOu00 ,�Ɠv<%+Do^'?Y:|6F@v Y?\Fɷް!Uc]^UՇLfFd~xf TmGP>%<d?9ۋzmEy>s0޶w% nY G|}ܺd*}*Uceewapkǯk0#ߗ,scy!T09&[nm~g<<|6{/L+uHM>WݓUGu;8]Mj.1`s:JdW0?0w}S\sĭ撃Iq :}ւ|sA)g| 7>^6|G[u�nez^djT(Z]̉U=7myt6ۢw #3ƚZRI-MEH^zſ%rO#CzђM`p1vdIZJ#ĐtpE2cQ_;Ujgjk"p臣=2_ ds )GH/^ۺ #%~'8\YM¶ T%[ #{{ (S~!k7O(u%QVsI?r̕6 APH4pMؑ 7[E*(!6mkdqw!myo܍lW2G+u\J+* G3Ty^Uzp4C[MzYID )Dz1ڹMR6^I1gT 9pQq^dΩ3=ֈYgQ셣`bz S7w#œ-R~QpE)H[K4D!%G֚UQ\|sPָƔ@ik=dQ˹<Dो~.=xp*Sd !ǹqb86L3%])-C3ol�(WFؙ4cTz?9>0|ww%u' %ӳQlb}eZ2\ OOGQSQ=tz9+d7>mg=#cIVwLyYf k-XZtq)➱B]fM|uqF>UGjUS6pXJz[k$kT M.d̏YSeWC?%2N)_[P h%sПnxe.pHrP5W -G])Cr1V t?o/sq~+=,d6B3=G>@{C(̏%n #cHpK'iv% {׍Y?=p=!V ;{9dq?9״Nxp4G'C9 |4zX+<^3m Yf/  P< g75)(7`<3e,ByNn͉jό/;Br/m;Ɔ,2 @N3rjjo]fX/FyK;c=~4maHϮoVn&9Vr2F r47=^:2L̈BV-v O{}M_0+L%|`Tu<{BOk_'H"%wv][Y c(Hve~gVd]4,⑜/|-{5r52K ;k$翷z $ >"ߢ,C'Cr]9$'Fm+G|ka.[rBBc ?jx%D6߽^<6gݲLDg\BXsߔoo#%}[&e̒c+L9-}`-0 ]obASF<g:d($9~vqRӓ~NBzM_9Fj)VBi{WZAX_ksroiᄐWЯl ^͞q$~xòޟqoȌZؘxX {ZuYVfinjpx9<IWokcQHaDVȔwy\~.Tn3}3"}r,3& V{o&jM,cjAs+꣐5}$%ѷ(,>r,wջܵ&IScǛkS} BǺLa˦�˧w 3?į~-˜_͐y~ .g#qjvʭ FZ>p1QD'zv^z>Jd:|Řim ] Ry!RzXE^~[" [l c{3=y k &~v,$ǝ"U-sLn4?XL<KqZ4D$W"#ǜ@迹gJ!Affܲ=@|,SuLiJe3HlX/N27MK/o4-mA:/e#ۿ>!+.5 I.l}b1/t6 +W'Dz4)d�FT-"r)yO7AYl vNGvdtdmI|QN"m:;D1Ql@p%-ptK# 2ɛoC^#;n`h%�RQiӹkL@p^U2ǎ 2wUxkf#oQ.o <4!Y"./taAqDGH?(NU\cȎv>@7W˺ZC܋^=ot'i$֩IŒmHX;U,Yẕ:e)2>ݐGo%;EU+?7֫)#^[B8LGwZ}3nO5{^pVݴXt O@b�ҋ?Uu1r(%Mf0 ,zR+#;v4BWkwECV~LM>d57۟7g[%+*œ]9WhdxzhIؒ$Q|!HNG!^ 9K<Mm{ P:n:a}>T0{ҕ#u̦=Ƕ+7[ oZ݄cgyL ueH;{3_rŗKgA5_F)Rwowy@I@8*If8k}jVx8񣝳_[*oGJg_qVË5C'Aa�R w j|56ټfXЂxsAh .x oyk&bEeе<"}wc jbgк,) C+@;ơk<s}=R:'05?NFJ?x>%8b D##]6)t12 *lwߡバsq5 KW cCyQďg$Bn2g:yhۀl$ wJCȐQf"IT@&:CH}z);YE G,0 #O�|r {dgZ_-AjĦ&8Ac]wofdy>')ݛ^þ> J_Io@m7W5 ֢u{X;{Ð5}(~eJ(N]ʌH9[:Ķ?@*守^QU�Bɥ,-f-2+~w#S^$E Gun `'7%d7x22 x#۪\$':Xg&%Rs{170C9RHi3nyObiPd}{ /_/= V�V31AEdJ+<t%P6Gj#Ӈ>|4f#Kq3<&�t<`8)OQ R_>8oΖ[ 9Qlomua0ղd178!#ro_r6;FYEg3_#ыP,іc v)Q&@jr򚡕7 q}Hm} D:iZ;~Qq0yIx󇫝b}HHw&;֔!m~{n;~V-(NE ?c& U!N.*,yvsmZmG<m {0* ;yDS2.!cNMH뙚)wu xךlۃL^JZd~9͚BzEӡM3q$-kl޽'߾uWw[@8ux328ef0"s`+Rks5f?Jn8 +r ݱ%^ 3Ґ (zޅnPfrĕn UrH Eowq@~9wwƮ>UӦ 47ן'^߅t[(dsN֫v!\ 2Vo%\ 6t]Ϗ=i6>2;߻/]WOدK'#aT{tWE,rI{ݐznTKҒR\AxN5kSl}Vфp'*o|q"T.'frivA΄0.+V47f.DEk#WȚljһl9GРͤY/9~9]7߿;aaԝ0~`3>|?Wn~#?](z\BZd1_l׹ {o˓s$gxb[A{)#ȱȍq@ـyv]P _,?žnz.$qYvz"gtYSH{F2]1]d;.ϚnQ Boxqv wS'`ZW>f7ArW.J\^<w }!*OV̪5ap$3eS2=Q$~`%7_Y w:KB(mdi|&\<i"[[GgYOӑ1Ϻ%3!{Ɔu^[pU[Y'=KzI-8&R'qr36+ap퍞:&H[tiW!UН݇ǑXz;^h JK&wOy bw1r)rw4TPh`lVJm~g0ж'V2^SQ6tbm/(JxDV8\H'j]FXouӑ >;E!0% &riJ$SmI=޽v!W7#m7Q =cs%ե<|֕ 7!}'K#ךe(ѸbV+*CQs{~Q  `Chd^ -v%\mEH0ؔI8V#azJh%JB r2j sP@zRVdF׾eK ȈJj�VCю%F A/ :zQ꼕zk%?Dx-5tGȮYR}:-^$R)"W8'@n0n1AjAU<ғkgGޤ*HkXS|YC2/Vīng 欝#ӴF' /I3vf W/X: b|V ~}*e+W7(OA!%� p߼U{8\&NJvR9Ȥ|/2$#CMVi~u~ : P dGfͶ9 ׸uu?a2`%eu@x:S}x>Zb}ZSuۮ1zȼ+4tx~ ɉ1Q ¤}=g4X@2vϻtn"5i*j{ҧ'>xPLqٕk|-=/ܗ^!ʫrvs2Z/]JDO72 ~FV^Wʥd>6xI!v򇒼ĺ!21hJyT@_7@gSZ2d,[ 󁯔VGYb{uEas=\>#uz׽gށ]'~"oIW - ّps 23!yTRtA2k@dUfj//7=s~ڝihR囬 #v~ꊶ^lT‰*Hċy ޼G52{/yOF=Nknjq&Qov/eσ=h5{!xί˷EiݹHeIڂ&`0^|‬o|y�k* ݵ]_Owi= :Y<//O)5$/�JY"i.(Ev݌][_{Vx?Rl -FSF׊  N#wޫZ g-=)@:v{J{r<K .c?3@kZDvc(=۳;7.W]Cӗi7jnC5L0UV˴Qdi0zo{!dLq_E3 NȺs>IZ ۧlcYz{f'sdɪ'9Vz;`h4/VBiH \BA0pfc!hQ'*\=Rֿ}:['o]7-QtXa~wYIY%QHQ"KhHVBHH2BT(2*I 4P !4(l+<8zktf$\i[}O % g橠ӯ eG.yNV[ׅǝoQhH|gR{%mK-A -1XX_ʍ폶MYȏR?1|"Q~Z|}_= Q6}{7@�㒵lKzwմ551yNf{USD[?t2O|LLDZ9_ z.sl} _`U{Yx޷�g-i5m?XAxE3﵏eyK@Xl 﫷bQk^ duoĽZO}wP#Gsa�9:aF-sDo& :{YaKYX@ X㨍\N?_3Dܦ;#s}V N}Nm@lZmQ@OXϧ [*#1].{>ۣi蜙=H+a42!'=܈X?^e{b7s} (WzKĆ-EG󉜰̋@_?S g#Wә}@^=>ZId rzIhC{ט Pe+@1>ۻ`YvA_Eu_9SژGz4Hln/uSju*"Ĕkػt�]slj ޥ £O|(B6xxw&`\6㘷w-e;HS"Ʋ\tg6 qsb 4?wԆ<@F[O_V";JUβ'٫`)u7?,V�KHMPҒ۩q"][􍺦_3.-G*G}NiѤH91/_ЄKY-үN-W K[IP#ՠ^{\}pJ`5U^0X O>0{q1:\ LS-1܋A5E~(ɏG?*P V^挥+-xcJSR\.:ĝjɏ8 k ߔEG!=CAB4~љH@="(oK.$|E8 `\Ģ)oRG�\=D)f @{>w-~z} jJi^=}V0 ^ϟmi8稻v@>W[|CCfދоМK WPu!ɓ9:^*P͘yN �!X]{@ 9ŷű HIu.; :rvp@!w]ǜûCWץZoU@@;+P4_A yk7bu ?挧 v3Qڤ_bK+.,Ǯ3Y!|'@}*9mKlF45Fk^G[ 98blx} h} Cs-^@LrMUѮ =_s6V̍cXطZ0<.g޾]R)A l<{{.VʛTa]mQUfdlݐuOEh.!̗svryTYN`R:L[ ,wV Ă#VZ3 25j[/P'\{:gkɣ0YIH IJ�c:2:4ppG'F.6y΁[^@Vʴc@ͫ4ۏ3~1Wɍ#^MۘQ|){NN"ޏk'tja@zfy{$ɣM߀:5\f7g[K%ܹ sMqh (U9"%̯.lokLWzFe= @|:D{h~.]9yX -9XKkxt;`/g*-F7w01"D)3a�D`罠:*yM ?9Z7]DE\Gbz]Ÿar  @\{?tknK1-7hDV>✹fQq+u Yhqfe@uz_PNrߥۥˁ:Ջؖqu@6|-8к-Ӳ/@s>ԣ*dJczf3b~3&-HԃMuK,ހ^hyo[1i2Cl57JLe}8؝Ky+lf !ؘ_Fb-;#fUsٵ@J H<4@3K JdM)z_ Z/UNAρ_^d h=-ߟDj dwļ=r c*#h?CN4sN ޣ+?ѰD=ZhHɃyHVF[yhk@ө2ta"Vln}ivOcMM 1pcY  * Lo}_ }^aZ9u'|_\R%w^Ұ:|_+H}RE eX{nt_:876vh];7 D<Hro|у5^@Zz0= c"_(5YwD<c+x'yG0ZgtlFռrg@^&(%.j"lu=p )^ve g_>6�ӪZ@*foXpIl#qlY\ܫiM^@ͥK8}BȍtW{eљ'R=+a74@g;z^#@-Xev sqp7bD:<\v (A[}A̻ˈWXlU P u5bNxtaoIᄊ+@HCq.4?xOM ~H}HS }q~Ot9aQFq>vB6/JV"n]>|P7p=׃nK@8bץ/!Ds#k_Of]!fX^D_ U5_qZW &a3lEb~_. g@4P% roNtj)͟qXŶG ^Af=kxhK(K 8uuOҀw_9e"\ q~[y#n簋CBMGmLfu}R�XT?MƩ"ihr{*z:/f7:a=CkHJW8e23{K݀>rQ'Zl怲N])odUD0ޞIB[#nٿ (O3-?lAS4C ?Fyc?C0hmηGl6g(w bdF K xCj>*j [{뀲aoI 7쥫!@ZܟCyO+.wRB3_7zs3\3О$h#Ъu@O]bP&Fqv_f=i}"hJ@;=TCa P^v@3I6=ArR`ӧd8{/7 vO~ݾ"1e PT2݁tTM*^3ִ f,9_7#xK6Z4Wk9B!n_l�P|{XcWv6漅_njo7xv1ͼB|oSkC~FsS-#ηZ<4kLVy)޷ g>[�Uy߱WݢQA6JW*U}d"KwVgZ%ݭ�ݥoH=Gي&pj,PGSRoؠJu<Oy)Fn9[У>c@7L7h$g- vpu[~_̇J[Ĝ'pRGQ^% 1k̲'B<k_xi|po|4؄ߵC38o ŋRѸ} =|՟sҰ^0UlauSm5+҇R92@ Xy2$~p�.WS/}>+n_eGIa"scZ.uXֈu p3G#z#mf#}fl:)x|Ɓ'9n|;?8rq c-oE̟8$/R8ǻ# 3z6?9H[IAx!-+jԯG]-8'~} 4Z2wh%.A wz]X3PA?B<vlݦ}g"c`DϏ9 Lrƈ3sk88)EᷳM?n9Rq)ՙkރQ3Q@~."_ w<{xT)Ի_{i{mzuTկo1k9j Ã㩤=wGAU(M:`i3Ē]($-s([q>+6B<�_+-HH~\(�g wXg7ɣѷ1r?';8)< B&%lw zdBY3~`l n{]ͿWm� >,<?3BcG Cߕ5Pv<u5?00uuŀjz!/ #<Dq1(cn6l f?y*<g~e+�PwyT'َmi#>O877/8[+?kf!u/AE4P�^*ii>bo+bJ=żA3T/ ~}-+�;l _.b~�1r"tB�͕[xED$n"s'+q(]\㈘fGWad^8ljMuk4!*7 /'X,pޫJJ1fxa9z78u}1xwEW7<#ɍ@]{@\'= װdԺm-.^}|hsctdDgط�o@T}iBQ <7}wl4=ޡcW 7�]Bm A,#<KKȫE̍B蓕6PzuvJ~I#^V ޳@[|\w[~W7rSZyJQ={W=yB`u[ܴJ^>! C9cŖx#种7~Ù@x^] 276P>G 3 ŽaS>[hoƀ.67 ͏/U٠zݎ3 a=sм}߈5sϓKqdC~71gkR o>ýEܪ~~z -rXأ>a ꘳+TG3mx.&~fꩣٵ2wjw "8 M(ݰz5Pvx)�eU΂b›+\ |q[#V> [?>ynm '!e8%ڟ"^ܟ+PR<2_QOym46vewР1оl8ym럅OB-4{ *g#2En8%ݗ�ϙ?i�#Z*U tMzb̍8VQdĻ'/CJ[lԦiǙ+uQq<ݖNiȘ8 ֬k9M2N_$q3ޜBt#i-5Bys#axkA#В4X z6U+ mUY VwkqTJ".ŧ'=bW ^yS8ݹu࿹< $d #CtU@Ydo=b(;+ѽtʪ ~j3߀jXdSoG@R{7RnrlŤ%!vyzIwY~>dM7"go<_@<wt(ē߷g wN@_'w`P>/xFG}Al1[L\=?0ksqm)3"*F]Ձהg%O!%xr.!?,34t܏vZ=o]n-P_xtK^s' aܦb@-C9c.Z+zaC<n Dm_G}{ְg%G>Ŝyc?:gSD!e@:EGsWh|ײ:g5>.w 3^<3߳b@2_8//K19}پIľT$yf@~Q9rn-~8B7 p�Y{%sUoչb]:u;д>P?tзEP^qve=K#7W5<~Ӑ7S#DWѪ@d .Ȩ}jenK_|47g54~ |Y [6*T\w7B\jv]d9}h2=jD5! Y$+ToMy~h~g{_c񞮮'n4.M>Xݝf֢oZQakTX{ ZV!gMLDjEO4͍$X!Ɨ~ 6%A-N"*R O 8-/-}"!|+Gq/NoX  nr @|v {Hg.9u/srdq-=Lt&ǰ̇lF{{4-;<H7K﮴�jlR]KXuHvs<nI) r>{?<pLy.+k޷jM ފun"pYMM m>ew%y"ˬ2rϮeCUR##e@p{&bސq(?_žg=ӒEf~q!VsB:qm)Zh?gnlL $7uMbJx|^"MQ<boe|| ͕mޘ;w�3j@( |UÜ>?cw 3CaW#6 C qqw@Qh1PsξD\bJb E -@˾B]XDVy%D#1_ ͝9zU7Ooc. 7p _w;;Q0bNzlD'6ւrӯ"@=Q7# ΁?%4I\pN &4vA´{ȏx�>e~Q0,;%NǥkVlSmnPK~)6>%@~VQȧ?9xQ!NOMU{2% 2)Jh*JLpn#U^�M!0>0(|P+W1z@Y͘BKEW�[矤�u4ޯI>1.4u_yY;{*8ߏ0}dzkgOsmAl>PoU>CjRhmSY79Ĵ`yBɗs@*UMpJ?* S WY/1(<[ƒS[ $Z1E6gh4]p#=<׮$ѬM7JLGs =HXq~@L]WXR{?bd_l]j}@?">Y-BßED2J)w,s']qG`ld0}qU}ZW=n(f}4UTjҰɃmhZu*T N7Oqs)?/ʹt25WDgc}}c(DCA@]إ8 ;r7k{u:m*vG* ϚN8b-eF2_ u lxpLM֘3O?u73zi\܄Iɣ@\ڂx~>Q2+0w2L7X.^t>4Bs'4OCm?5յr#ɵ@]{ުK%9ѫ5 <3�h>odQZM:GWW@94fz.5G8Y\4뾏8mEOq/P"G2b=IOѬܸS@xKwRG^$+x@7Z S~ù@uP#=YzIwmq{߽T6)h"]Gz@ ж*OJmʹy @Xy8 SGsX-~b= S)[g.A߂C^4XmS1=|Ye *,6u wږrfN]ϩUw8[%Q~9Frtp>yo*RxĮ 򾙖9b'Z%8 kPNz_讛a 7Y3 QbpZx՟@;vv1vn�VsjZ$�u_G]Z~,+wF3 ?ET)vO_wRZG卺/ߪU+okهX;]u6�j6`䁸JwPpw\p@9K~ >?rq1}81<{D7x1_!<V>_~ 4X'oǭW vw})Wx\4,sB4O:JBsz6ƽ'-]}fq 96B/q*2}Iyb5!u3<U.]{(ݥY{S3Va]RE�P8gj PCHGLYZ[?ޕ@xrd--&T !eh{Ң@-]E@\U y ,7N8O _¹D[C4Ѣog_jӞ?H_@I|U9j"iz7J#o@;/5LmDj`2g"CCR"׀N:"R" b=nI8K,sЩ%P(knWTx^܂VE+jln6(=F}ϳWbkO}@3b.Mjb@+[l-}:7^ wvzn Z}g{v-? Y2f.@?r׶Sm{IL) q&&Pog C^ 7=ebӋZ4wq�Yl b\89Py,tM wu@jR.,ߍ nFѾUQK!4 NxNǽrcLM?5hQVoK@I[?QB< / 7%lqU#ORlgGGbmv{Zo?"'Xo}6 fڡ[kl)2vaP_-9c0L ,^(C_Y(L5 �mFuF#⹽oȮm0d.YTO{~+HF B].@<w|ϣ9U{}-ys | H_{g-u7C̯ !ol dIi q;V(']hW ˆen,?˔h6w(wu`mn]y$H?eb8[>qO~ )Wb1)U8\`爦,C Լk)Z#5hV.~)UZ%-fiR= C]Kv5~2 J�9;^@lx9tPq3{'7N;V"&~-{q݌\. QpXm6 Q.(Rz mxl}||Mx:!hG~E4#nYݛ֗gs +ʘSt5�\P+yD2vlPv@}u/Uh+i[j|}]ۜ9LY4]1�MB&|΋,儡?Eq$iO '![,Ω/E5}nW->yk Դ*hFnXv b~yMMv(ybøfZfS7y57Oq/"IP/#m{`μGu@tH(1j FH{;ˉD:&fzy}8(9b %jH-@DhG-BEO퍮T9rI#b["7Hf\Fܷ!/<f4E∻^\`xB{tXGmf91m�֜iM552pkψ}EOmsFg,k ̽}Ry%u){( >"y׏)` l)4߆x?no!dW?bBRA1|k:\ahGA ;Wǵ#wnGb<of\FqĵM6ahw~ԡ[.`M>Үnx5OI}�tm~n{M<25ϵ7Žz ?+*uP@_hCP˗ ĩ\+8'N}dj|@ѽfFѵ??l[inn ڛe]{ؤq3&HhHy {&_k MukKojh 'hdN$H 6M{%aC($T_~F܄ߥ4v!cOj4=TA@*y*"a/6mE0-CH�97ޙk-U^+<ӇCьۋ7ɝ@.e8~;{˶?@ǵ&k;d)n(y5xޭ~yY[,FuFנBD7O>' ||JG!7ӗRx{0bojQ@\竕5}#`ЖOa_?M٣�m+}i.Evż]H?9u;ׇhԷ 4뱻%w^9Nٽ}!r@/v) 4 Ny 1zsXOQC\%ﲙAU^L m+>)rg]iO?U#Ο821-yPߴI߹®'qq(|3Lc6=Fxdͺ D@-~= >XX_bFo52~8|w}0?+"u!5Q\Uݿ,>ju#nm&@V_|e##!4D|)RDdEgz*cEkoKU}>:a" eg؀`ęɓzRXK}Ѵ5R+[[ W ArW yY0 n٬}ws1̏*Q)ԣ\s["1hPub6BU{AY>6PzAʿ{P1&IpwͭVr-t  q<ù۳nQ U}|[r2bh~W' 攌s1+ @X_hSCrl?DQu76Aͻd;"޿/lg4/~L|?J$|' fg9{"E{1Q;pNoꎽZŴ"ƾd(k ^{@/d.r(2FW ڀnrnU,2D+6u_xp|>)u�N韯]5G׈c͔d~FTb4(jeh+c,4W(Bn 9V"޵9+?q&* ߶>v5;s6?TLds׶WE xd>ޛ@n~dann@b8 ?A*搝/ E!w Du-Ww_B''Vة>Ybh親נ20F!ˣĶMh惹Ts3VV*cx3s>Xr&<IXS ,MsqG%$ugޗ#G !sJq]\nK馻GLgPx`9QB,Rh0\�/[] rpwuZډ~HDL^D|}w9`}ӱx (;23@sWky{_ϲ@A"ϺOz5E $vh"zw[>h4P޾Gi-9zR8O)ᰗ2h:s[3{bf*S"P93n Ew#}W TwRι׾@坺T/_Ta"Fmw} i@g;"gZ8Ǖq9W^@oeEKfk; u\|Ҩ"_k߳4ougM +,%ڶ;  e".%48M"b>L AܛqC[ @t&b]>CQ<Fu| L31X]9%D̋ۓ9ɷZ+#TBϝw"V% >_9YvrSX>BƀDS&īWQ8zͬ،vob:}A ]-޶_)g�_ckↀ\ -F6?Oԡ~9H?uVAqsfJvN?|B ːÒ ATS�=˶4\b~6Zk1Wm8ZEw�C5U"bntb'ƲCD7>2{-7<cK]|=К{ |yںKBt4+b/f3z%3vLK(]Cǁ*ӻ~#b?!ޓStՀtYs~У'qKߢ N.RfOab(y:y-:+=j>B-ۇT 5sU_0jHў3{ u;**Ъ_,,3&0zӅ!c:@5$?=P_:Zx%;[X#|@E. g+F0Ћ 9!ުsY@u{Y,}w'XEK\^,oAGi5Kͧg}fiP~;NT7�#K;_Dj=$ O٪s6g&}O"^V;aị[k y hC+츌)}D#hJYv[Ǘ 4ȟ=8FgN*G;Ə~5]h0LJ&\j8�ܫdJ$0%Ω" Rˠ<e0Eo2X7 R\=дofu#z| H`Mʞ.Q}]{O92tԋٕ8|�|+=t3c #C7DΡ۫|Uz!fۅ{ @>hc .wlgॐQ}j10JꞤaĺi {k#z@$>Q0GsJe+Jg#Go+[ WF2 {+,~c?Uh+ՊJljhkC'Q_v qr7"gG5q}fy<˹ywݷץbwl,j-\4FEV<#~Ol$ޘ!JOmbeXsG t'|5dagӈfH/ID'@ֿAlhj2=@JN\@+9Q-ȥ(ߩV㍻_ľYorм%Յͅ%=˱Zgq|[Z I|zB.SM,q|A4ef- )[!D~\*!svHm\HR Bi'FZA,(vjҪ_c�5I#X*-d{+J0oYjd32Hz's|$\E wdϿ@>4Ԉ{W�qܟ咿o}܃]DG":U؝î9GRkVWd.W"&V.n;; T4cuC>㊘k[gpИsu#V+25-݅xG>fl{˖+@嗜MF/|lFj"sqaz5~g}^;U�wVZ?m~msJ\%mvLӭΣv /8ӨkDbr4WT FK|33G(aπrޱjѫtA9/PʾvY働@iyej/\dA Y/{"6H[v�-Eq U"EdDʪL4]]&ۚAe}$PٲwvC"yfc֛@{J ^\ ܧ5jqeg[g#ى@Y$_i43$=v| tOC%X Hwյ[āos%)t'b?>ood%mrNՀ^W>r<0_g-xGV!Ԕ{Rۚl(vvv? fB+gn~FX1bOI�Ju@%/Lլ;%jyu-87/MZޟ*߯8j]-P_VTZuv֪4yb+]^Zpe?ewmGA?v!q{+[~v:IP4UWMVLpeO9ץ?tBL'|HE Pg02--)#2S}(A^@y/x8U iQ 'ʠt" [%abϹпe&]jh*QS5zIhf }=-25�!qg^D>O4Nw9 2|\fW_W dVIFWokn99p \|n܇뵜ʷ�U /& 6;rm Ĥ@%{U.6y #^[i㸑Fk;ra-{| /M U R@MPBl9_+[dXؗF&8'(ǜBl#\D[[|5b;my5S8lJM8*/b)V@t<w2%�Kcb㈻A~X EfϽ _.uq0PDmg޷"'g鑓ODd\xhO'YD\Yߞ{ ~ mlu֤k`Nk(ُJyAG31݆-R:_;bW%87On@#Mņp?e׵%ƻ+�it`e Kx "n@Uۤ/u6FtV]񲪖"^+@W~@ kخ,] S<^+VTkB$O76wϤx^/&/vA$^ϋ֢ ;^RG*^vx PM/߾T0dͽʱUR{MO ? C$s,bKT?:hky!<x J p_u7Ω{(t<Qijȹz%mhUao@9&D͍܁ULUB"sh~WŽK.>l ݘz�/;LxX\#<6Q:ihQx%πᦳ >~Dq0PC(▚u=&C/fMw\R\X&먣zB=4-_Od-b 5H ۫wk%yz!⌭vP_[ 9qF/1qc`mdrc!Chx^߾3I7 {,\rn->%�Cǻ̋U%@UBB ϻS;t6qVq31QZd#ew3v{w~ca5ƍޯ#޿oOF+RJw-0Wanx/+%RڥLn6;zP [�<_\Bo=*q-\d|Hǻ|^v{Z}Q'#N&},\XQZGWq<>2v}?S<wRoAl,@[+F_ݱ5cjNL~.jA 6 #x V3־0<.Ż[00 cNA_w='iPCv]_Mx"8.QK<ik T^8G6(KÀ ސꀱ鸤3-G:Oh ҷzW"xA7gմ!W ec�b1;`ts.kՃѩt @vNx.ĹE鍏0^v<MmR(,\> ǼZ0m BYpKktO;MÙ)@ o=| O_ X9wqgPRr(eXGS6";nOUbZtyjkuYC=mheA_E∘A<N?hugr3%c<Yt\5ti)3O#ޅ}'{ TNnue y|9[FK?g6c8*=x @S'/5{{Diq }獡*@or{o @=X,n{/pp7ľoVc۟E@/_w &Xo0&*a)9l`s2ʼ!.C\ 7cY7[)/b8!e!sCt>; ;g7@Yukwⅾ0;鄸O_5t< qsNΈ]꫇9dr۹M|gzOM@LG C}{D~KX!nx,9+u(26ќh'x#{ qeVԃЦΈf;poۆh~&h4D sc憪C@,KJ`W@brn7sx~|)+oq+ȱ @QZ O֣iNhCiΟR36A<i޳ *h6P3_ 'my8!+Fy qn98d"nCf.g;'ڰPk#5D�s| o?j#@v:w{ۍnLG֜ |m5#Uu& !P*> 6q|_\ |z1ot6ҞG\?W!暷_ktCUN9}P,E~2D?D+8/ϫ *wf"!oۘ+8 #N@kίVXƲ}Yv7H|h.NsA˘KD,A^@oJuq,KT?*s;APIbW>;m.GPVT8x2sOro_ %wFڲ 6b/1e^}9k.xjBU{=dIɑ@~Ex)ؾ{@{sq?oC[\![s/>Dlk%J:xZȣIfٝg1_i93ԿxG~M78|OrN?$/ ׻끦V+Iז]&.n._#ˮC65@٤AC]PMU #ۛOh~]Vn ΏM@@dJ!`k :7='(*kmWY9K4Nl0 %y#5<A\L|q7Sa ;vp?Oy#݃@ Ԁx:0SVE@\M|('~tWuطYELx#?П|B87|J ȠOd|F,P J&W#i1+FAGx"o=!R;vb@lmo9g}fcP[sTzwR8U1Q6=QG<Uh;<wRzCՊ\{6icPbK'L%WVml#1]NmXOr^2[x ۽OfuՎ7k?Seh+?l)l]T_dAتrə-ػVJmMELbO4?ry߳K骿u}Z|GϡX;@ݻݜ1&g O* Ӷٝݥ@y cf5ltV~SK̖LgZO۰[OAN>m~d %d|K~ɪP{$"y=]l�RHPhV#@)J? EOʵY[@L ]+RªuU"v]^:~c?7!C Pϔz„e@kZl|S@:'A3Nim9mfc#mfb#7lf. C7PB/�%D 3_x2aPTsa~&Ǽy}¯ 7~t[)_Aɩi :/}ϹKYo+ G`)~�ht/w9(˝M<Oač{OZ5y!Yxs�mbv=`q'Mu: =8j'{٪[ZϴH#{P2_"~͆:45LU W}yq1ꢅA <OMw\[>8vw)3B;I~GŠ @ ^_"ɿ9Bgtv �\Xs۠9 ::(EAA]ۀ)QL5~Ga(ַEw2W)#6qm c`k4|eZкz]woj$k^oss}kSA'159]I%RX`$&[|Fط%ˁqjaީf W3d鎾9U'V"±G&2 C!,>d젶gӨ5q8|]r\^_ogwm(7k-IyicO5ٱ}놱.QyE=o: D6-oǩͼE5=iԷCJo|F]1ƣhvO rtDi "y O4*a$g (mW^!ȹz]?(g. s kپ>ĉ5lP^o,ƾ?6YO<7ǜmm4rb_7/ŀ/'�1ۄ&_MjXbKu^|˾g^n洠}-ĒϗBe~Yٗ-DO\ 6zuϋ d!n@ b^Vv0|HHbtf/t`l/=&_K�$>gSqYrqhmz�|'YB7 <rezþ)?v~=j@7<tu b}'($i[ī-_=WَN"uyg|V"q10AirӉ OP _(j8._`z k>9GG_V[GyyDEhyⒿB F6e}`ۀ8K@%|A.Nq {fnOՈ);r&/z빈{-D9YmESM"g*Q􀺠nb9s8#мFhѼH`}KpƳ8ڳ@xVsBc,y{~9=�>< fc;ۥD ^1L. @Js5 aW;S6-F͐wM4fx7?\g}t:篸z^X/94D7uENMٮsc꬘\2), >_Z%wm~A3=__{0eM& ozP 'kd)f='ڈ#̱v'TKϾh4.oWPu>}1"RTT^xٮr j'Pt >Xۧ8Y}9Yk߇&G?!smyRh9SBf�Q#'o _4ikShP=o[>$#A1[6gc}֮7# b }1@O9 Mlv0ER=w)WFF�)~h->U琿Ԥio t-KTsaަO ^jYFh>,g?/45˭ h~:!7͸ T=rgSĶ fn|Myu0މ뉉F ' I} Y!c\>9:j0Wٓ% J wx;)o pX90A$o5vRRw[iW2w@3w�uOD.Zň+h$b5lE~][sZkt.ɠ+lG uG[)sUî}X2d{୍͞=]r9e.3]tm9$>x9ޞ.9`4$Nx̺8I:j_G^U�u/.=7LJ<JЎ4,N̂W wrxUq{'5ma 4 <D\^"u Yhgs{O<NMFR:NxQm;PE76?WߦU}1#_}�mQP.`:;F{+EJG<F%9+~Cާ+)e[ڷ@9)&-H*]wr˻9_WrU汗_Ґþ~fCQ uZu U HdbN8݇X?>8zrhxsN@pzFb(N ;\2db L~~ւno;2[}P%@8۾ohQƸd/KDܠ|I+ RsYpдH4Pwl}pJ.;Uw.c[a}e:x,2b 䃆}e; z+4N^ {[3跕YC8PoDsZLD̨~>I@lrX|Ħ@D龕W+S<e'Pn|]V Z/w5 7;á9ͨ217X  N?:u[N}1ekZF?j\;#nj_bJ6SF(v_/Ciok.E4y2*@M c`q6Uee*\uM%\ڴf1𭳺j$+;iw�vg_%-] sO8;rFL=w&&8"3TBT7M J!^d*×.oRT>(U<b].i-H9 i2aɟ>~41DF,*kUC`3bp1hwkݑ s\ aN,O>@^;Cs+,&}׭- ]j?v*D$90+ܳk$`-*'DF[ދKjΛQNg"ޣW[u[˓(ղ]$Pc`"4>:l7RKC@YjGb?|3v0b m}3=&VuNyMYShfףW. [| otBF0|vx~ ~ * Ϥ"ɢ Á(ֶs\iw8n!y/9G?EFƚyoN^y2 b)zwbs ev~R9!}y++ڿgFݠ\U Ujߢԕ ~qЪL .Ŝ_s\(>'#н)Я^K[h Nа>}C7Vw";MC@Dw({Cc~"sPDRW9Z6D_ݹWlj~V&(Zf\1 $c1W/l}D'9$/ !{2:chHLRZy<7y%ƮAkrY9;KEwoEz G7o{ ħIy'8KCv˵Lk9=u@9=LsqP±(VKkh@7WOm@ q Ϩ9ݎ9T)>3"DKI'뜘@p/t#7#%nƽY wC?V"JzJúvjv,S=LaFBws|[\mȒMhV"4s-b\b22�l{Eke?qD<n:@/.8d@ݙ@7=kY.'  > dMeɗk+ �aïhYg ~3 ]xooCS+&?_�jeiց6+BX#rIh<}\_2u7Q<�3'O"nA+49qv=U TvLZKWHg'щq+pR@}p=Z/C7z[6?7{76yN4Gpq},><BS<W"f'G2N>x> M] >%Ϟz/�q{Fkn�_~aj�ž)Rmv: OS!?h { ]/V_!Fӂxؙ%/ $ g-R= {K| z͠a}{UьF}3ո7vy?C�!ݽ3Dzj"Jh3 Zcb\0+6@?e2;__>Zee0PtVGNQ4[PֵЖV9V\4_u{@d({!GhضIe柚=y%&m-sO rA=óhzC:7ټȳߥcn,H#f|aV]vbMO4?9̰|xs믯IV�y<|/k3еņD@ uB6s-0Qa !C_#ǎ`o\}-8{6^f$¹nP;k=,S5|~^O_X@?Dw {ix+ '{)84 `(* '69 Gzd_7`Q*g+PT N=݈7l4bmНo{ü|e, luhvd:kbkztWnW�hΑ@(�kv9:>pl^5ނ&O̲Ϧ<M-?M?!%8߿By"ֿTl_Cm<!>u)w}ߨ^=vif\O >[dTeW@;Z 52Soݓ|L@ WX�BX]]~9 $VPPF:dIUɣ'ւ)[=ɹXp-͈2\ a� ڼPE {uXZ&b{VJ�2 nlq i�ݰhRqhP|^<{${ \6ퟪ; "vR1g)ň'ʽOnjn-®xkg"?T~#P >sS{ϗj._ ]U*, g Csou!{P@7Ĝڐ'lt`\-p ~ ܛ;V> ^h|L q zra^6ُy0 wJ^As>M*=&-\ec ětSk%o7sC݃~z|�|)K{/Wٌs^* m'pVKAS*0"be_`owp|2Jʊ#39ˀeO0�eǞL^~TEsaِsR@Y|Iя$vM#b9x= 5Ok0* ,GS[=*yzs?ߒ?ֱ[K_2.7]$e@$IƏ4 #QJϾ<Ds֪�Is_R[.SΧxK4|Iɺu^J _5Jgbd^^0T?vh VNGu]HjO".1s,~ |DmD;9PeWpo  ,_Fn]:U8e HI+|lҦj7�=ٓ^>m}{'ͫ:(`S-ć,. QϿ5\]nΔz oMxWKt9H+A rrEX=к_-Dą"47f{meY\8@=y;PUT^g]XWS߮;ܻ,Ȅ`vNy=vR i/>Ewa>?Z'ĺN]g<5ƻ/+?$ssþ͟لK%YۨTSu� n�闈#@}빭AfI|GYKxna ɹWD1l bn'1W\@ywM]%/iRgݛ$4mp qg7F裱3}[0{&/bO`tޟc_~?}ׯЉ�~NISN Ȧgq@_0c=|$`=ᘙM+\!hK"Sw(~^dY}@i VDGP['_ ʎ-S@S"soU_~Niȟ3,גn~{<w@l:C=p-5>NtMJyI٩+&*\jAڰ{ Z\ qB[bpͶ&+):+Z+{I ?.>j9^( gPV&KQ#Vv'3~HPw(ƙ ɿ}HMͻߧxw /9 lEs@,rcno3w)߿'s0WfDq}?fNg=nc<YhR&#IZ4/asfK*juG�MGLFs]c5}&Z�R2lއz0w`1P,oAS}g= v�X";cfD?pxٶb.M{P.`#xk>.A\餷#bVbp>ƹY@yb6¾пmJ;^EuJ0k%\ub 3u3sz@^8xwtǨ uP*_}ş\Sh= l[yt?ob\2f3t?w(i'pJG7yWqY*GCC]rbԵY@م8!Y-1\.s1ohyʢ]'*Fu-*ܵ@י$׋zxbU-]M:b%Bp?:Q8x 'wIJ%D n>}/)VTy&�54i"bYou2؟Zo!A*mCk<ki0м$mQq*-Q, c˧w=.͡Ic޷v ;\o,,:C m�Ynö|ӌ}{E�^jp[]xqH!o4l>z#x՜4ѸM?W^W> DgMdKf򳻛lz]텮@y֖#rWbp#s`+ @eܷ ߳@%1ՒѹK qX7ޫܩ (U;Nr 5`\=`$Nw>1ԣJЊDjJ!leqU rCrJPkwtZc{~2q5>8xc:L: q./ u9;;Fg рM{Vg, iub\l}]dv EgUO dtGX@jgrV("f*ocTOTk_̥Um 14UW՛>lpcSde|X~4//DbmCA`>CÑR9@ZⶦѹCf6M@Ky'?X|R ݀x^J`c@IN_}<: D[/^\`eçAmN�_s@=whB['029휺z/lP&ЋƍBR|xPĹ$#Cb? nԟ-+[Y @謀x7}cE-v!^`N7ϛ5ue;|^ޛ"9?xs%yaWq~/k]I lo@CS%u@x9bΡ+2-<]AU/.܁B%Dac`0Pҫm�aqhyH0 م ˓sЛ(�ZμOu ZzqWS bY,H!ޞ|O2碵?c (fO+M=2Pg*�]^3 ;j<|Ԏ@Yg> L!@Si9(q!+S@.}nuj+۪V qwu\*z1B+?L9kyM {a�O<< b?$FK7"&K =у*oix{vq8\{8ܱ_{AMJ4^ڪŀbT<ki07{&<b7 O[<%=v?bJǺxEz2jQ$ke}KzSTӫ ]4V׵-Eӵ>mџQaGf,j: fn)7 R%0%hR?MsZݲ@^p*>_t#6|$PV=شm1_ ҽ;x�b][IǥX:Rh&U䆽̥f^wG?-Լs)P [$oat{d(]E(@mLRvfR[@xEjK@iGWNZ!-�vg 6שE] iG|J&(WO>^+خ%:giwÿW=j>ۅv@#+,'|y/4g~jCΥz65ПKGܙL6!Uhnǵ5@U+=߶&m3 xhXV6b6\7e)ArQZhx54m` \*DOSf"Iu&%8=q5xWدO@=6`Нr:p.Dc~))qxz 9S:;"8;+&�]xO{sh{ UCf ؞ 73�ד'@In4󖧾ј_ٌ&݉xs꣆ B #hxLnRuq_TUO#w߰G9ԿM6El |ݶu e =[3%0ĹO N;^7vxvϽ7y00L49K3b Ǧՠ/.|C+b>ނ_{Bkrghf<0{/bs?$U$۫?þuZ1P!Vl�P]puvh]gj 4<:V Myu9a\. ݂{#jYUx6 O8 t~r_#E3Ջ݁\g9=b\Nh>AWy2 fFKb ݘy8|!# $Iw[vio}�^-bu}d͚.uS{h~+opsIř7'^A6w5@6ۋ{_nշ4_Vdq<:W4xbnguR=k <OR�B$\5Ĺx|NlSS).1LtZ k}tZ,!}b2dx+d['' (;/bu|DܷՕ ŒQ7i.aUfUa(x݄ Ľx?LUPxy7PGxA'j+j n?0̋*!ntso++~ ^ÅO31mEsgC:_:] nqc@fZm+uΖ&�dAXPZ}{zеogx�BfmAr%Q D�}@;ekB@\N2�C}+Pv0(%Zo\yivl+^>-bvSf@8/z ~ͨ=P>Dlln*чWۄT4)N bަ>Kr8㫳Sd}XxeHcZ4~EZEē: dͨw=E[O#G3_cDަ?۩L ܉爗R5h.hFzMx!_Cx/[4ϬD~D3^?_ @squb?Qy/BC/˘;wTV( }[;9n&m;{'߷6󟧕bwmh Ӏ_bpL;\�&"iytc147K?u6Ix߲5/~}/ 06\7>Fp_om?�ŷ`T"54Ș5!E @QKU2yc[D҃=kWwlɉ wS բaA|=ĮyhξZq[n*[{T '敄zuS$= (NK/i|1(͝\g "+R۶E81̴e{ͽm@)ɳԇe'"EӢz_TĶZ;e$.eb:r$( !nذރ8 Uۺ6"vTCdW{:CF#w}!OʴaS*1:, nKQy/nuYYT\͙n{~~\g BF1m$Ԙ}`Meh: +,&Gn=C(QtX}q}=Z* )!|$!BVDJM3 *JfTRIe'ٿW=szvj?ӤSc+}.m̫?JA? φMͅ/ܸ.FqJ1{�{²KVR> vߡϕC@z1 <2n8iw qV{&4i T<58أt6&%"αan"T`GkrĦ칻hMO7/ޥX$vĖ{=ohVRBv.KX9ۗ/V-88Kw*+JF{_p<|TJO-'JMX`<{�=L| tSK򘟌�8xp+[C$.Dxt3$�d_}l Α.ʊ$GG^oYԁIT7-y@ ?e.O{qz0dqÜ%]W<bUvU'uO3S^|/mrrr5@PF̣c�a y-ujיk{;t+ܣ]~"0]q@ļjǛ[rV'd4gz>q*Vm7Jzw2s*p ;oiڍ8oZ>lG7ʯ b"&8twK@ +=VՅE `@ Y)fﮞBuQ@1O4@Av\MJ@nMZh]6Ě8!_B@~d韽@xl?щhKk笶t%PV,0Dvr%|ZtG'>5Ro^E;uM -)ME-фQD5>4`�4g5`?7 hSۏF;" >߷wG#VUn?=5z qdJ4%qx ~Ȗ=GG-"Rt,<`9II[ŋ1Gf;9Mc@pэL*XNseQb<HFo,yvWU'OLn5/7$~=L¾vqy̑K֪jcv7?AsccOgy]k/uvS6JGdOw�FρW[obҏY}ko�5bլ�09qшW>v47Z~qvo[snxkM�ՖfXr~zZ/wܑHYyk q׈o籟ZrҌ,?=s/}B` A{kH e#E x dR^ D_5ﻵC@W�}sF£\f|- thLI `$yXdcwM9Vo<ץ UG򶰜~a)Jwp/{v#Aowq|\zqyw Ь׳2:@kwy䜧iR&ށ?p.<\jq޳7hnZ t Vm %kv0]q^~ 'b}-_20׸ ЖqNxnu>w!6BAGIFC\J ީ<q4a4mbl�q&U8,ZL NZ]k3ȠcNxr=Nе7Nl~92,af=F].b7zx�9O;s׶oD!~Ǘ@*pu9[uO#2i|"1qNbR&~lYbY (@_O?y`lDw| 3Qe1.0Č=83Eb'Dl }`تM85ǖ@ĭOv׮h pBw!i)wNHv0K.<z<w ]:Fo/{S@o\S+oE+x[nEAp:{N=yƁ f@F/5s*pI7=?~-lĿyIP7n swԴ 7�!_N-YKٚb@ۍwYyƙꭈ> tq0"b/a^G| o^5ɼO FQ?Rp._&o6<2et+s }uzC[q@^MIq+<&4]v' J%^'Ṯ4ŏ #Е_wQ@giT8jkN|A!=(D2o=:cN@=fԂx_Zى?④aѪ3e[x͚@?(cs@Du]Ƣ?."nu嗋5 @~>ۚ*p-'p /iye�9x: T[߽/d ԉ#vEP\R#Ӿ,KLvIz< k*_.ި 0]rQ t qê?|'^tW`^y6mϵMwaG�@A?_ę;7-UU_i_χJEf@1ԫzr9!AB6g<cc?V-y=U;F_7R1e̠f݀F z)P8Eg�Uza�qn=? {0Gk5bƹ;,? 8wSU[+/],Yi_? fiBB'5U%{)FZ͈mp{tn:@ϛt G۞0 sեDv=;]r:̗S[nE#}Fh.Ⴉ=@ަ+loBwz-:Thxϡ+@uxغ-Dx:D媊Gmj>~g~Y""Xk@~ LP5ǛX5q|7]La/΁Z?HPtqv<T|qO4o1zE/C6;ix.?Zv<i6C.T᭜ 4-6h 9>hį0ażVez < [G\s@կlߦ()@3w %&Tؠo.k5�kMBlҽ t|]p44e*tUt-ikYp5A ֿеu+r~~~#_=J~D8[ .{x}| w-PO[}j*'0'?דDɱqޝ^%y 1]kj8s s3F m˚3@qi_w`h`#Ꙃ@ _/UbTcE^Z�A!ەӁ|B7!n@W"N_w+ fZ9лe7 A Ξ/=D̚ ɐĺuQv(( Gہ1TPixd@<\1cxv=^'- ľ~M#d'Ms0{d+♽o�z{Q질w}fuO,LAqX!yK1W'Cs=@8f Z)TԐGZ:A+4ݽHp:!\vʶZ@(n@͒ϼ?~?h '%='anp PmV}'$Ba·w,oEt#N6+I@V) !nbޗSՏɒ5V]/{8=]/:x;Ѵα]a k V[1W!M˔h1իAHBqJPkz&וCMg�Ǻ='/7HD`(惓g"~!{-{ B?c@Uz{3~]}|>W٭EmdJZ| ~p+Ѓ27ݾTaKΤs ƽ 6qxhu'jؗz#ߓo'?UzbsC|VϬ(;pr4wG*;79O;Qul\@_%@հ{ Nqr8;+^y*(:qh ҽ^al oG~Y@ٷT}e*zMB)фye\t{,ȢsaTh/풼 x[!3qǿ^-jTң{S=m1b=&qGZwţ SERhF=_v7񅭫cy^*p>>莁{KGrhsަL}'@5}y h~݁}3obv=}7:)KNѢf~Vx|= qERt/:9V7bN,(, s}^]! $ڕ-{>�3ܮ|\1Pnu ^<G|v peUR^_E5cֆYx_I_S2|X�PK@<PrZxcĭz�L[ÀlݢA@DydV*PzsIRl' E_>VF?GMoF"10Ng#PqFٹ!K8/z`N4%n*'X_Xa?6؉R9Ogr2m*O'tW} 0s"=:X@>VHjo8 Pw}#zVh3> Gvp,=禈ϥz\ħ\,Pպ ntCݳQ׸Up'PMg{&9j+Ձx1�oz�<3p (O*1~YT:_qs6<�rtߧ-�ًz YUZ6b5T(t[6^<- @Ww@t/4xI>]'={ M*g"[ǫsر0% >�^ܝmC3F92G?` }@wq7<d'_i=G{�͓bk'] įE?I>Z_;`X7U(tɯ>@ƭyBmQBP /4>,??,) <4MҠ#bޏcxE\$Ђd2m=OUM} (RBr1뿃rQU@Ijl%WO'Ѩ4<m64w\XĬPd,>hM�%YU1|/q-1ʔ%Y�a<zfs k\ЬeG@5ԗ]@TgA*b*:/ي *BSwyP&;ږiF%)�"3 h =k>sA3oگ9�'q\94L9v2_Ԕ M;y&7lƟ6}Bs%Y0׹Y臁K*EK?lB|`EZ;Hbzr4u7Ǯ+^b?ߴ)(J5[B!88n_ ޏ[9 [y]۟ ׬ CQ *0Ø3 %p9:`B>r [ ?lg▭c`GDT0qc�-9:i~Ik6?b1pT2,Lؖ s@5m= K/z\.k s7۰f:=TnQ5zdx\2bYqevɧ"&N�&:yRt;~_p#F^(Z1wWj�֬gq܊[~s}@~(╀ PJ}�B ^__D{w &]5 $|a?ySվ e`]ԚOe~:z_wqz|~ ͹~?V{ ?,uaعwz/{exGN�Y4ؿ{hr;RLt됊ve$R;Al-ʥ@gnohR_>R]A`n@q|u?Ī.^$(v&ht[ / 2̩i@ F2'sf8b_IJ ]F&#J>cb3VWęUk0(: ҀrR D]rt+Pq^ݙ|>t�Xh~Tm(x_S' @`W9%nyY+)J?,EŹ n7K>Q7>;EXfdba_s5 v&&<b_Hغ_v"է'Yq&D{HT bU9ߏvD?"ǖ#ޒq%?OF^�›个:"H;>@]5%= zf~Ī::X"_b-GVo <$0ԧ8"4w�A̷/5RĭApA͈Ӣ=+"FFMB[8Ѯ(3֪@O | D( 4_U@ ޻N_ d#mS4 n?�RYVr &r\Y} {!kp=E{ N9s .S }~N?CӨg0nǩ؋4G4T(=nޏNu (E-BSuפW{eyK `raPTJeJ'|CZ gW:"8Z"9D Ch<En*KN"q{9lb#^2[K啰>aL[i-Nq혟.'x">_KqoڼB ċXlD{U@qVzg.G[rw@3{U`Mi|0ڵ[ܛR@U\欞-E_L<g+Fb*\'/JELuj+3?`)Z]y6/ý?(Z=LyVٿ(봤̹*||u8T1^ׅc(AJ44#fYvBOL6>wOP"995c?Ku"^xw |~*v2\';0 y$OCiM-XHD$~PFs9qVR׍\Y(ymoy ;N^#G6꫖|-]AʂuAi݁r<ׂ j|*%.p> -2?͝녗uGc.>, h섆3]w7 ԕB+nUgb> wӛ8Pd^y$2E8JUäڌuK,DR+sp~ɐaoC@ֵpߢ DHJs=W|&fN^: W08Zqk1wnDZ~$;bظ{C UrfVQ:d A^ƨ_6c .Jg?Rv r PkVF`}× >Y#>[dx z V:wI4;"Ziuϣ!bWj ƞ,gC(Zf'nJ*ggԐ&Ȫ0'2 w=iu(so)7ݷlR# l]Eq?y K/fB:02;+e&$nLXooRvU'A_iǡK@w(C{ss j `/9\|ƿxgʅ\'1 [}9fa߁׹ ڢϏc� S@g~t~.9FO]X~Z;ЈqtRgG-4V{>=TC0=,f ?ł v6A_XmiE mq}o,Չ&!ą[6I'di)@=_I llڦՃ-w0ٔNڵ } c |ɕ7擋|'@|{#dM[-̃6_| 'r@"]vQl mndP[:iGj;lhc#6=˽b4uyhSu6SufzqٮF, <E" q\`T?RyAlө7� 4Ǹ~+OBh֝0Ŝ{ _0_4 hw+ޏF'kyV�<;473m&e~m@)RYXJ͢*gt5۳o|^p]@H]=p [ڒ!sͥۈyD4ܱ꡼r󷸥@A]BԦQ F҈P~x|bn)b7ͧ#/G:(OGxy -䣔 oe̳dlXܟ*YZru45w?:TLT]Oj{16huq&#L.ns.P݊1 {X;׀L-Xj~�0s_qhf'zY @2- .ʖ"~IJ^9b v(M>¶4hfR<UqXS N+CXꞷWC\Dp9ߎvk^`2F4pz@+=@!Ĕ+/pywÅf7TBUל#վ5| H&`9IhG@l7qu"VGܬ?yzA3`| ȭY8#`XQVoasgjvp4CbϷQR8/L ]qBl/9lM�W:m@Dj } 7F#Ǭ pOlY|\ L[qMˣ{NJט(O~`a՛{v^-)O͙w4%[(!V23gwݣޠ8"G;]Y)kSƭI{b4F�).V(ITw ^S*!Bs ΛܝD,vlB==y;nRF/gy6<̓ʯf+�=&!!R}eCC8�.V"Du +O_A<[+ܱojoxč 3USߨčmVŀxIy0v:4CfI'BxX g)ޮ@{Ssx4bn֙%2cլK5E@Z^{,Α!i};ԏ;yz@7ؔQg;!+a_+~m *FLp4rϝקh 580s`ˏT7S1'=Ȝ�Y@=Po8.5kC~^j<�ZU /5YlOڛ#f_By<_ZZ0f&kΔ?Q@xO {OO3% ( 7u 9omw@lQi#ztq T;J&,$k=[}_ tv"@h]/XoM#eԃe ۉGRl9!{'#sں.h:MKT GA4;oz/5q|B? ֤5FLԡV{˳* iO 9[J1AK敃bGx;p=dFs%(C~>@HftPY]N`3cvLm ?/¹6oab+L1wWrXe r(z)8'BCqm`iyRXt9]/f{ko9jF6=›@9c�4URrUĹJ&PT"^ugbk3#<C\vHY~J[.fC{kڎ#rzsQ\_wZn�t Mu/;ܔe7Ǖ@LQ[n}LN}_&Ǥ�eWԟy0+OUZskDK0r^ @ A^w4%ۜytO)KZ~v4?r* ~h9k^aX@UKȞ CYwyI̟wI_\9@K?>}Ֆ/nFio oמn9XP5RXwWW#򡫁pgT_jwu q-VZS9 ( z߰7/(�ՏЙ !=9یb:6Quh劓@k#^PKIh"C '(!dL8DNL<o5\`Fʽ"hV`rLy OhzꈕyMe!HX/aO?"!=ww5VZͷ*+荻j]C<E ķJ>]cq$\|of۷u֞"Z&<⏫7Cs*{ y;=rPrOQYo/P|v|i#EM| iwhO^XTw#~B5K_.4q'o3%}֦ټUgۗ<@" RVk8k>|d 9W4!P $dڣ}b{+SD}<bf\z "?"H`>HմInFmVikS{Y�O[<[)yow~pfP4SIx@mw8au[ȭgSGܘs?WaN9}ٳN^$){�~gX/oc�-xé@S90-Aq9<xb@`WeVӑO}iu|#<4Y2P2]o�}-Jbہb.8 Dtr]WDӲ'vۈGeN39ThZLqZ"3pT}o/XA@YI ScWY4H8 CS@{TvSe>P:\B%hv7@4^]KoyIx|WBl$*TE 5ȓh[@M9Ynz1e);<8W dhIBecR<~iJ@}1It!+~MzI=`&VVttYQ noӟrx0,#]R3 'Aiw=;:9?DܤV}bMN@%bWiFlSX�K^{R߸qb->e E{%`E,/@ܲ"�i} #P6 Jm@[wiHsݔ1M@@WCX" lyʚ: [w*ZPë*<QІ7]h^e�id3r>KB N,y=\f頥+-WX#jǘ'Y#^|^�֔%{n. 2½va=bjM bޕo/ C~w|v.2V ъG ҫ#WiPY(owqW/0hP4}UCu Fz'"[2@ئ_ rɐ gC2q+}nk{Wf(c�u|Z &*#g s^PP{1`<u:mrIqN7h6*H[T;"Cuuʆ{y[boI ]}R=@(wYNo+8|$c Zdku@8xjd/4=mab.PlgٷD ŧ^],þ/5hӁ,Y/r(A;2>~@W gEA@m"!r! E.s'֑@jqOju^\~=?yI6)OWl|,G.lj2f` 2u!vPf� .6,`�cG5v}_GNAq8,|�az@Z g_LF~x4�v+@w۶c瀾.>^}{=DӶϾ?=^_s@:jnWw1RZ\Ѥd2u2jC"A E fVu؉9ݸIpV, k5�#w#V@ u<%xf@ $]Zέ@wq<{o wb.-{�{WԃX<,h''(Hĵ|;+]SrxG? o>|n㷁RFԔZh_&;w=?Gp�Y̬:*Dim,{ \C h/N>r+^?;DleG jp!Ns1WIB+`(TݩT _jg{rho|Jym^Wr_,DnEk+u~F=][O;ڼ-|ee@75SX%չ[ %]:M$! 7Ӏ㘫W<YNjw^7j$oyK܀.4*Q\ѥ: d)tdiI)2gJ85ZVm]K@}y+InuEsQ擼 Bg~@f8{Ggc@I{3ukF'[H�A[ڎCl'8wB6:a 9POD[M<J {"ƕ랋:@&,8sN$^BVKwMy0f1ƙ;".gLi &hnN堹"#&di7XXLqp ZyIBiU̙?h;QvZ сxtk S67 gM7QTc8�].&e77�E!տ@ώ ; 5"rU<PZP] T:]S_qQ@'}`0v"W*Pcs1m4ɨ]4ۧ_Rkl6Xڥ'NZt|W}~l?Y{K\@ RNe�mt 1 ΊzI4^7 t0i }xpʂ :}Y8_߸y׀΁h/Ĵ1�h}A@sb 2:fF< @5v-wK}`xC3:-z)20Tui(zÇ^I�)$.7{Z@*?_@9h -k-P?e(*=~9KxrP~s,B?I1_Ђ|#^َA@ֵ6 IPܟ}Ӌx|l)r�"h^ 6ӐDosמ !vW@cQ•B-roGzy/>vEHoÏGO�=0ș2?@4zfu"4Z8>^IJuQ{Z3W!sErR\%y'n|<PrA^=z9~(?=S5RBPTOyIETy 73*DhRs \I`'-h]sYq͒5:~oH P`4ˇv s@V.*i)WqL9 N�{ /-}=53aDVBdkO!^S_9X=B?sE; F!Z]@<EXQ_m ,wN*Mvy q|j֫hZM+m3HDu];̀vС}o`'PV!3rgZO93FDY{OV!0DPLkj>HѢM0V{"}&$R.LùII;Gm_?' @G^[*f<h9-Vyw) V,ܵ|N(VE\"qLxxrO<zvb!o|4k)vҁ-/5}J4WvhFzT5܏1F^Y?W\GSm{錽?a<, >AW}|{C{P4{+PEZ! V@;+: ѻZ-ո.{zw}8o ;o:y5gei]gh^z~w:,\x9w^ Mdьk ޥ @_pogk5*Ԏ;#K`~&áEƘ*\ΝOnΠ찭۰ࠍ MKp &^cL7kxn F:?w�S[΍R~HTuƎ룂<N YZK�iZ)T3NpU՟#1eq|bww Bps[@{<yWʡ:*)yIx[o'.[0d>yKM/%q[,+~C= v�iʛͱ@O~߿j,nk~ի!Mĵ Ds= �!}6MhNz\TWýcFa1V{uK6ۃx5L#Y6F*A^@=Aa;/5XxrCIӈ#{{>|,ivC6qDkF~uji0a3콯�m [3Fc. �"~j =%-99se? B{L�yP4QT<ب7r W%w)|J=I% x�[Mm;  cM14mfo_>eDBdtW@;02W׊F]ލԏN\i yZЕ2|@Q,sà]|Dbn}r,%rN>-@ u!В?VQD\ik~ʘ g9ܶ{@9|wf܍!4;דAל9?'-x=b$B XcZeǛ=?|~b93R5[\]ߪa)|Lz:q19\t׈|U쑶L뻗À69TU1 cIU�c Ճ#@~83T6*kNd9&,B<- quu6@/?dzm@"Sg 9{gv-D#@:K\5P޽b�C-@<e]: =R΄[8?%?E|!�*Z7)fuxi}.X�Oi2Q{F%8OM)Uqy@>󘰬Nk |Pj V?+:_"_D.<曆hvX{ !Q#+VThnwN#@}h%pۦc∖1O^p)9pj뀒{9s-Y 5J<g M _SqivGrb )YX5v[#cP?a@!ē|F#M׷,x92b=۷|b+u\ h`m�Wqm@ 7a{�+O+ J}# GE̛شv1W� <r'S(�TmKbӣUh.?Psb+ ,USr^ dԻ ּ k'Yps_T8bU(܂y+[ɕh>G (F@T_�Jv]&.ŎzmPk6P6;K\yN˄M6;} LF v[R;9:!>{r4yDŹl]Mz68nya_,G|;<ĥxB\::ssJ?MC%џI(ψ9ֿ9ĝL}#j�dͅߙ@8ݸE4Pxd~>b.W<e]432l|V/81,4lZwcקg$tdr0k ܾls{@8%5Ʌm;lBRoi<2J*ENgѤǕ@Uy6tm4|N<J˵Q"\ra"$o`804%y¼n?OTƱˮۀz[oEз> Q⑽ q>|? t aJ͎s t qt1(gR[? ]DtS4k.:}n} ~M>fiA ;b~-dfɰ }g�ՄD`-BQAuW=sz<N[OFQUN읃*Ey@ۼ3.-5:< .r>#.7Sbt}s J`ۆ2ہ@F&w {[Ǯ~:8hVn`ɬmu]b톀h6P@7jq_fZ{nXU \o敡n򎩻IG,Þ6~P~/_<4#>t ^? v{ Vwsϔf9zhv2s((bgꁺ4KsC^=1tx/�ߴ͊mĥlK⣹e]RE- yuK WVFs.?j׋�fzB\jub'vzN@heϥ1kM+÷�7>`$刑YʃhץO�ɱ_~P*O eFvGD6#줩k^||b-:zoqhg;9g{@HnQȋH|8濣@Yy@Q*/# r樬B9lddk_ߕ)@@ml@ {LS\rhz:ϭu@nSL*BERh; 6G mg4%2,(58Om9/7yU54啽 @:lM, XL֬I"^zb9 +.1r_/lgt�[Ӷ�arxAkM=5yf~^@x=L}~Gޞcw P?0Z$T)!5|޽RM#?s#y*0Hvn짋yb{DBGSSQ�=뻰2 �mu JVxC714'wH}Wbi5+k z=sJAn[ N!˟2k~E5 mz} >Fi>*+2R <GsͱgGS* DCy5Q:W -MfR+A ݪcO V$ms@o8=>׮N2V-#E+Pv~Nz_a%lVip(Md{~$)Zat2k%uYďK[lhEw! "p%3@4 {Я> h6A2 c68}YYd1}Xl{GqKh*"vwwH$=,Au&#Dܹ'@]v>R Re&sJw˻Pz;4&`㱒0O,dIOA>]+#9Hv]8w -cm3?mKv)olyD_ǽOFͧiK `}"1տ�W);b "Џ{GnJ nȻy _Y~uF"iٶ|-%(`T1 ^Y\hc@ޙ/G*3?kЩ3GVfgOPo %m?(V͍qsrDADnk&'\3rrw E˹7hMSh8>ЀfNX#7 +"6/Ӊn@xsqf[8__{[>HRE 4Sxnx�iǕi췕~c?'7l TDx.1E 9>}ޠ$nq@vLRyZP]8`lrh B'7*TÁ"c‰XU!Ҫ. ^%6�WD:@p[p3Lo 8?ιѡs`j82>\oyD̝Ϗ\j#uJ@ gbC) I" v"5NEϥAH#,}Pv/.{aZ@\KC+b|>ʪF~DT6u."z)@ Z6G@uީd7<+'E+p)S{F;Mf/ʏ�J\ar 3"煇Lj> hat%C,𿿵2Ėpq԰O,}Ьl/M@9GwAP�V G^|!9h8C, `;@~O^<q8^PO|WyI+" gY1ߧ[�%i}R8] [|zf ^., dؓ+{ρ@UCShCߔ*ɊkZ%l98ylo6^&w)e{L#BOh Ų?Nl11(pt4>'҅E3ѐs$\B?nNM ƹ6U.]qr@`FWsi^\]m6=E3K{- ǂ?ùeFE?(28A*�1cb =6n�oW- 6ҤՇfO*0 @эGO~lᷕ_kNcY6Y=JK RmW&jA>wj2@MZG} \ui@ri <?ΫJkކؿ#vJ̉UhBdq8+WYx7wxfgBXX/L`m>45-@>wMmcX|ɛd77:}46ǧ-!ĹMR:bj5f{vR97?, Iw"FV1 W:>xKKT5-vpUFvO "-v~]3bEh&!�פ,Nڬ=�iEAY>N NU] dj?i<_sdWj+⊉ nx!P`2Na# ~/҅xm׫_z×uh"IM 3a}Sެ2Ax;%7yUx"d@4"Ȓ[I 4{ѧ^ƿ_^xl{$iI�r zhe@4b*={}e }e1ⳤ5>\yǧF4(*q4%V}+GӷnknqiJ)Jc^@>B Hݴ߼6ⴰ!G1'|(` CUYh') @'I@梮<\\ vG <EoCV8nc:uV<H1 |�ͱF^9'\{>rFMTűK)}c* :@R#_ƹ@4ݓ#tF:U<?҄O plEۅ S/ OXiր`y<ıxG>&P[{sͶi'݁Ýv@If'Wj_ل;-9X�Mfm;[ SFN?V90笋b%'G^m"hSbphrM%(C[B#[a>Ktkۈ%JgP k4ċ h6`႕ 2@ZXzm!>-kr.<G>R!V,R / ^Rv ܧBA`D~#,H= طFF6sd'b/c.̎w TE4i6ہɊ?:;rA8ΒP[xmBD<zU]C3c:>IamϞ@!vb3npah2 D"ec~U1[yԠ]Is_</0 ;Q(kn>P,ƼzV]v;voZٯ \t+j利}ah͝>({@NY⎀u<g|`m_;ҒOF�mC|7 $.w:@|nwp/hn *Mޯ@ϷNv�lƽzǷ=KGEڬ'ޱ7R;bg[ K7jH(D33�J3=/CxM4bl�Rsa_ o7E}LkG7wmkP Lwc?. X떨;v"ޱP[$PB _e<Fsj)-o.9oO4�(U od>nYVwg%@m �o9؋6xJh{堽6PIկ! V2p黦!y@ ƝR qtX=oh퍩 P\,խC Fӈo Nƻ@TՆM)1Lž +GDsxmk1&7m[{~ 4FfI<t%=oLRX !LowXȶz K۳r!ܮAĆ#c&+75}m>~"/=Rjxx\:(>(/x@&ҿ&{h:S_m=9kf}EI٘55ߺ�) 9kѭE�!9s ȘgI[G tLd\3vS{7`v=4C)86,DU4bZE&A܇ ]Po݋|(/[u:q% +F=v HQKc5@x}y *|$>?gcA܊x NUh<0 &q4ʭAIP6Ll9phu [ڀ8y>/b{$en˳@^䩽qk/G tjɓ~Lwi[ u޺䢔O@,>OM"ɔ-{.V1^%նU|fAʋ^=o?d�Uہq\>)qيlsg*$Ж{{Wu'q r]ڧS}qߙ�t􏘈ݘ7wf uS03S|6\#,'Cb*@=_rFW%@rr@[?�9?+qR5KU=SzҁFYoxk!vͼsf@*x:EsKCdZs 9f@-yl08 i%@ݲ93 -XguE[;ZU NwGb } E%e `3O|?N>:7&!)xzuІ'w{y_!åk30G^eHaWЙ8';k {c@T!_4dη_oh`e ] p3ksty[@ek>A:zf0ynb+oĭ9C3Ή-ƚR/PR4<|~0ݷt4Mk+mm;EF^Ne]9sGa5LTRkO_kĞlzْ*V.kZwD�ٕ'9w@\~tY? mC7 ube¹D|>v,M>ȔkL"Gc@9tg66rR^Z-ޫE솖u';O"<9P6؜ )@f~=Nwoդb_K?}gPy<> 9KvKLO; ξ܄Ԏω݈IK@jK1DN~wb_&7 T<]8m* s!Oy# 1+e:v~Kr э1v/ڷȤá_̜#xS=L&Do-،&΍m]9.X@iN9~'#_AA `ɫd:mU1 q%u<{z)&$C#7.:s#!_,?g_'" MфP Pmׯ 崢 Y?jqO7yڧ:-{\<<7D@ =$~D\=k߬{@v~n oV+0ӟUoB<Zɉk_IEmY].@).o]8xQiB#! ]Z؍ goD�kcϟҩm3)@~[FoĽ8рs-~ ڀB?=WA{<1m3%v<$oZW@Yah #lnWq-+( _PJ�ץ[q4=Y,b<֖>5z~O,4.VLᶝz_84 o"m0_!TNzTi J*Ó wm,2uU.9U5M2Ey:w;wWn>rm;@)<<{moiY|8-/k |(bݏ�2iݻL3=0WTk{v<h ڗ_u *W8~xW�U'"}8s\vks; 'c6+7倠ׁܽ4ADOU.:V#B[oc'Vydn}4_8ohv@{kun@ٳE#4Q+{K̓q+JnEӫVmE׫7?yOgoO>K=[_QѺz{ 3¼mr1+1[ {tb(z."]>(Yɗ' [ZMmRvuT\Hg{&S~T[鑨VmK⼼n5'tz(pHS xX0&#:1sm[8 G=%;-]0P?)⎘C\֡sxӖ [6!jCįߕ W<yǁo"PKFv>Cߚ g;3ѬMN Z.[_e~]#9;3$#oċ@ Zk{gd<"(=.WAoǾq:<j;+Ĭ]?a FyxʎHKW MZk:&~#n}U~ U3whvƦCLnA^5�]8>?^E nTɹu@ 0\Fa B_A Q}\7 (TnԽ>\3zW$X* @6wh!SM77\ <Lt}.mb+? bg1e .r d^F\: Qga_}FKtĆ4 LF=�:K|7Oy-ГOȢJyzQDGj ^+h:Sz0?Ih6. ^zd<o?ԈEFt w yQQZ BFX¸W>)Css<7QJ4 ;qo+ fltv?G*?]Мvsqf4ek!ϛN<,Fs4ߟA=X/=뱳B\דcWP9X4j臇^cގ {˨i`-Pw).(d"}Ak2?F_o=s$e^co#%D{ӝq)1xIgDUxTjW)DnN]�D~p0~f3.˶lsX(e-@+!v hF p&_EW%׬Ahl IC; 9�a+}+g:N"fmc5,2 #!x&77&^U|B`LK86}}jr ޝizDIp>�RxhX�a*r},sp՛lw};+Zۘ�l{Y )1<NUR57]#hzU̓h\GI@MKX6e%k2 l:s6rٳm!@+rZ}=ch?-~�;l uk%KA]NX% Z{.!-8ǣ?Jj/q>IoG| K *("t5CfƥL:[ p}"@Rir @.by>|S8yp7V ^!u8/g^)BFLc@yMa"VKEKdGS7z ZF7J B5rRoBȡ�<W^%{-.6k hMc{!n Y 药Bܥͬ纈VxZ=>O_#@E@+UO,пR̾*T k?%*ɬ<[+^9=zQ9%@~x}gc>Ueu}˲y/&YN~RoGlצ^:~B̡Me񦡓@<zϏYW$^'9}\T ;soaގYq@j~Uz@@?\>:x'յ}jRjg NyO�=~6GޫjS ̢u 8og <G(@wKL4 L8oy>_pguxS[#ё5끦_Ny_3T0[#3zp^>.9E8''`~ FBή@;4\w"�NNd 9z[ ̦ύ V^}<ݟh <- q}k_ٽh0J;!q 2A`sAU'ogXrȉ%mb<S.ݵyўUgmh(R�.@Ub#W4xO4\{ܼ@+9^f:wlc ܴ>SY@wz1g <B339o5Y(鸉 +߄e3.P)|@U:^{"o@6h^y.W9)\w�Ŕu5Ӡ3v;cJĕrOVGV8t sֿj UvvC9ȯO4~�t7SbN>W< �%5Ю: .D"<HyĹ.h#Lwe훟B;ϞyePF-B|ݒ;w]ʙ h/vbf2eϟ \/C LY0./pOf*o?I1$i�WWL >u2oW ^Ⱥϸkȫh<9Xw2c'n"pJilk$R8rYϼZܛ)iF{W% Ρ:BMJ1u/E SCvPN6/B<x ?A h2gMzi8/v"WZh\rKL1nl 79*QoD'_TC'r6PXDlo5,jk>&ՀxjKVʲ"@BV_WA][:q� x ꡭc5ݨ$/? y>;0Ѭ'ɮ,p9öBℚmstk#vB1ϗ=wm_}iz }SE~?T d!#"@~Ӥ h]# H=ysADEݶ;jҺN9ydZѾ1]S�;ly>e;a]b1{Y% s>m4U+o/g+{wxP֯hV[I++ bUL"gAdo)�)a&Nu4Am@vd{U5ׁbG-(ߚ^ ~}̀D-?>HEyN�Jۈ|M1Ľt)X5ȝko}^lV,@!S4wS:HZUaeR`=3b,ԍ:? [P쿟_?5(a>zY?PޓKby{R= ^yrPmr4cr<%߯׆9|)㵾T^Y],YHؿh5W^@d)?wYӒN@X%=/bpA\źCbLTU3T){5Cn/Fmȵ$S77ٿ]ę1M! * JHt@,ZVi[v &<*1źG[Ád@|~orE=t5ܾ>}fTgT(&V%3ߊw>+u)Ap-ˆϊQ7r&f%/Qx sKǭt- +Xe6 ڭ"}fU2o Ox;S\MV[e@s.{z~xխ :$UGSe5V'#n�1Ϫjm}xnʆ*v#ܲ�U{S{ UU|3ʡAܕmR=@3O]8"eޜ�Z񖁇78@]]nZ5Wz()'i.+ R=W^ɽ8  :ڼUXԊ.G ЧO&iA7BS?ľ᜞TvW|޾(4㴘4C2n�b5^{ϼ{WC*?n"st{@8.!)79?/) y3yĹs}ԽF6&_<n*z=+/q*^53TpK_Uߞ5g~@gQWtiB5k }u (j^.hE*1WzKNE' ?CiT 6/NSE ȶ_iM_k<n t�e^Q 6JtrN}n%΋[)ǵدCEćY@{>4V\�F-wu,:l{@d]�Ibi{El^x ]M]ꖭ=|ȿh9PkX 'IH)ĩ= I9yh{ܫYZ|>e|m% Əp$<~qj>y N#^X٦4v8a{6.�@iri@]ߟ)q-/m^#Un> >↭տ;&NHˑyYKl E@\ -\ u)/v;PDOU5#k'͟4aOz;<O+/"9'Oo=C*bEd@gn* F%챍C;L8YFߏNFO%{YX'm#{1rӪބĨl 4Ey<0c qb<~(r#d2KȿR&z}FZ4E>홁@<ڲԫ@ݼ)}1~~ۅ'/|~U˒ $s lŋESow8Bn4c*[K04}zl:�q"Ph bdzԟE=oiœؓ<E*^JSm~D#]a4 W뗈,v_EԍZV @hPfy@k֧'vtWl,P㜠?#}_ŅU9Z/g0b1UY eyH|Ȗg @Cܒxο"  bK\Η뛘h|^H6̽x=V_ՑD'M?z릢(4_.%y"^Ė{j?p{8%&`*k7!-sT#04mޛ�aP>+DӧYain|7:HU/|CϢEkDC.}zV1]8'gXi"̮5(9anyTa5TqwxO\ Wyrތ@s3(-hӤl4>ڰ(aYH&ILtULٴ?] vgJ pX_ p'#Ĕ_&/һv"o¨h,¬a5p] BEYyDJ2/L.oa1ek-+<s(*[�#B q#)h]z/\a;ĸ>?2O2t@."Ѳ]K B sI jWcyPN>l|Kcjg�U7@ur?ۉ>9ƽ# nhyL lf'@?6}W>6bn\v2B֫W#7j{? MXyii>:yra>qB+l/6S.A|fൠ G4\vNj2jt/۶P*qe1;4 t:esՍ6W[-Wxȉ_*xzgx<P[iK}6AGW,>�YuOIPy&& V+@kWʂ3Tn#udsÕ,~b9 Jf+@}<d2\Tqj."NIiI{\n_='iTӫ|:(|r Ϣ5sqƳ !הYϚո? <0吕i⫁1^!MJz\ŒpRsաg멏M`oTѠ{hbjl#F]BlC8o9΁rpoۣ-RKZe\TtɾRڻA$PhmmY@Kavw >u{!~29 @^/*w43X i7Gz�s~/-a5ӈvɜGA@kcζwoވ~1}.Kl=M/4}^ Q bEБAU@YI ێ&&yk;)zG]7cQ -MM܀N,_׾HD gj׹�hG -X) 0=O<:Pb-; >KB\#7Yhh4M dm{~!o  _DjfWr kh1ם/+׾8,Y ?g9jٹ@͑>c1껁=n}i%0 jbh˃& >s & uHr,CbV& h"-k@[c1NS>)g_R``Q^⡳@;fi7݋,B&-7x Oܻᘏ[;u/;^�sEƈw}(d%7Gx 3u8NX[Գ%`gڳ$Mr|}Ue$\'P#{v'u!Ζ% Ј4>Fs >c7jWGycGq~-4JsP!$ $DEI%$)*%TRZByq{]/cEW{w-W얬6q-r9#H3`}҅<ڪo$~.>!\aog'g4GZ=KVU\#wf?_}k86<[�!XEƛȁsM6 [)[W @ c`dX =-y_*1a;ψc ¼a,eUTq+L|r RYo3 26d68t3k]#T["u硔 k�oީO UGC w"V,q}68$TiSR H;LO~ 2٭C抩r͇ m_PT僻v.s+AX{p1}Vr*lB C5$b79]Hm6:W:A{O[VO$ZC&ztvHE}D+ U><fJM-NW+"S(ws[~ܪa̙ЎiQ覤{)T_ax)ƴѧ2,3 %I@iJQS]}]zo53t7}!jUۂ_{S)jAROH/BJqN7|%y0%mZd^n_٦=k8&zL�NeOˁPn\58\KdLܫR5p)֜w6[#2 H--_߿}+g:]$쮻Ր[mt W6!}Jdpҥ FzqEY[SFk]M\\L҇i8KGw&ې߬zpYމO#>(xi]4&( d|Ce6%jfn'ݑWZ;o o8�T#Ay{ R"5}n/nzZ8_kzH|%m{M)sϽ]Ŀ&_WƠHtaUW8 ЮU.(>i^Kte#O{ynD:wNjU(me^g{SKج[dءUL#R8-O k!3COKNJM_i[&y\Mi: .�铄׌ uHY ڏ7|:mVĕW_#e|},4 oꡈc`<餗(M1ŵN@f>urd#sR$?dY"ũ̓iaŌuHxlOKMk FVEt3N-Q&y7@jiKyި3'i]WM stH\\<A(cv&pO9|- cZ;iF}n;="Ӷ3 ] } ft빣0q*ڮFE6fiOCڡ;/eO/8Rޤ,|o"l҄bst6F^8}~S{ gdˬGM-H(.e=i3#m2 xCV*rOf!+uŢH{ BBs/̭s8 ArۉKsm˼=$.m [QuRo!yOB;y*R?}|RLxpkE0bxp+0@h\[V2SzAaֵ(J9OK1Я ﮧmEd<VG) jm,vS@vA2f)xZ iYqa3o�dZ!/>XUǻBgƆ?5)1> z=[F.Mw=: Y;ȐׂdޯEDe_sa`d255_۵IG]AoU' !dFEJ |y2ٲlNtFW!n's܁uUzfOiE'cZ^5]})5 Q̚F{M&u:+J!ZnQa)g D +oԼ5IxաѶiHl}m͵QAƞՖ.F:gnq׮QIH3B .@ Tl^~YǑ|[.^U?DfU^~1xoU8b\L kflG*gꐻa8E>G+޹$_ 5Y9^,r{4gȸ}(bI>() B1g(T2 9\xY288!% z90piz~yrOm"-6~S}#!d(dH7-ӍW2g=JkdeR+.(G1-KzfGw|d*zTࡄ2*5Eq汳Q?ȘktL^{4/k$yP@{8Cӿ_9e}{JR: 9%]BC˪Hϐu|| 9qH+yg�YVGo qQćW^OGS +OG|'<ϜD}!odi1:RW+>D"QB<VT ;|vi_?atfCh5I~,A6>8/ٷqήWPtS9E&["]-u[26$N 3Db[ۮkm)8$7ܬO} 1;uptOD 0j~531gKz"q24ЭSC!5}ZHzbm=ܲ0~ jO[TDcNOAHYZ] ߌG#7̉=<HM ײXVZ/|62>he#{vx˻8!zF( ;L2/O�gˁǁ/#SE"m}߽/$y~u(!|jܴx;k˄?|R)EZj mPU))*'ުpj,t0[t 0 xbLz9x3H?a۽}*0zQq(ֳU.Oe~ki(]aW##>dJd/ 1րz9E${|5s+_5OpndI/})Kmӻc$ŝ̔CVpYOlp:3:LO_"z➎<|[I߄kH,:7c_CƢuv&A#2Sc?G79 c7`W[R4UE ^HYr&c NH{#Y4mszr] FW ږߤ>/%},A_PyI+aU0.܏<Rvs3J!~?L:.zw)p/ʰ[/r<=I]Ox,9'"ʜo}#F \nA{:2?{ϳa-VMmtB7Ť78|TBrtÏaToo:b_mGˍy̳cH3_{~YկE> Cfg 7z)/m񃡭_r 4Z.wvn gd gV/#9l}Ϋ g7T8O.xvFdS!|y`^$lI<W,fZFQ wNr5X b:j"ᴋT_۽t- [,Cic#(mK~RȆڽ |<[njH91:_vjR Qf]AȊU~TzYaODR$IGH~R$lwtM?�3~7gI|6&]8ZC<D)d-˟gNVޔGrv@%LK}GpLzc'xGǀ'gOew]`6 c|#k4,(rp*O:j\>+CX.;+ ƻs:w?Ip6&{Y#fZ90jJ<Z‘K̬t'tg|ʤk /=v#s5]8.k {~T"lja9l4CzpȽ4m=}0xeju�t-eߟ$e]\∔?\Sy\~TO/+ ESVt +s d4߉bX_HwUm4h6WtDp߭q` <QTvݺ^JN~J}<.rgIUS0Ld>wAFΞp xp>G5: ;Q7\LIag%-$6~ځa#{i4o3R7S!^6bC,4>Fe#}]N͐%ra'[HedMm4uVp>urd朙SFiU-E(I@WdGv43dE=]H"= fN[zC|oMp%w+Ie=>Bm儯z;JkhᇃJPBCe[y& xQe+v\r,~Υ#5 �lt G^W.2oa!yT5;<%қ2ahGAċlZ̈g_.TߪF<=QǸM@mXWeW?-Hk cvsKz.x6/2ٙ`yt Ḙ|y "돩u|8t:.?휲‹FePDgp E7) `e(z-Lj\rh)[mLux$4.Svzǽ1U|o|* "nF#RHe6r3E$e~Fz`\=,2F+M#9gOA`Ӽ*96`2P2;`ﴭ9ȶzWtGH|[zwhK;#P.,4KYL|x7QM3xUL2G^)L"U"tRo*R8I]#A I.Ya|:OνGj0$1ԸaHycu%2Z/z=[4[sޫaak?iÂ#Yǁw9<&6Q(ܟZ01$؉ w+PRLQ*UilYۓjA3/H|t:,EV )R$_s&i> M-Br̮%t9%0_Nݷs)2X EgZNs@`SEifyviYe PAY`/F|I=v!Τת`ܴ^8wFi:RԾAрkL>XN-HQKϙY^ ">U#y>u9Odr* QLY@8d3m‹՛p@?ed⫕Vp 4ziLJO@qcLT&βٕ@6%aR6-w\g}yJI)d>.,#=Urg d˰;z G*^$=Z#\Dn"}s7鍋B\%yWM/IPyK?S=d꠸~l.QM 30>h(1`+<x s#}+K˝FH{xQOXKxcP_ɦ.!蓤iCO;l(Ef#9k[ ?w(!S%=4u~d,\U gϯK@>ÿ~^Ṵ~g[Z@/ާ''t`g=:qǚ \zH7dwwd3d/"N4}L }IB rjYIn$vvx[zcH-~.ДXNm/IDfNo&(OU!�7';#=R~ݓ#o- MR`0gʙO*G=rJݝ_ -dzfX<w lK@Ro'wn//SElz-z>[/VXs4X ,j0x)׹/l0Ws Y*jEW>V?LFC#(rPfyM~!3R*gx[  c6(}%8P p*M t:Y> 䜧9yn4#ݫ0ela;!͎: 7f>EV#'a1/MY4iSs."]󘂾SS}* KjzU݃4>aao52c/\?j~:ha_lA䬉T譖i4!}?hv[f CW v35k>3{_pr}!3d�/7HUp܍t{_Pl鼡td/+2)\}ʨx*oJ8{/ CIV+E(*^;jnXd//"|d/ 䞌Ii^Dʱ$%*]#mkt~s T|LmYa9NgG-:{K#W&50x(k8~G:V=a.ox֓τ3%LĀϊ}/~c"ld+xMCc^ '.>Ox$܀w`=vL"VwGSڼAeȒ{U*ڶl ۬4 ƜhO\OouU;�7Ioܛ GVOC<M£Z #Lt} u{)s|Q$yZ= 8՟aY22a|DφGagw8oON#5|&Hа1+F##sxho8 T4Y-YOsy+<R )@ǁg{H;a&Ouu)!Ci|oW*=D}Zϖux+W 0+ ѸLZ.\ZkglgyshW;ݲقrsǑ6}*X6Y1Q}*4!+SK#swbg |SA " J%jğ+';54c됊k2 E_|b,{;r?D?@Ƶk2oI>-¿z&Xӧ|-Kp@F_~obw7\-HIU L|zhqlV(ٵW -hW30%aH{\VEd eS%X;*享}=o~A>\D]vpq2}Wߟ> ;\|]Atit骳F"h2xks_l!}tc3VIs)#`A.C[&h#-f"%gWAe7j2 oN hewJ݁/xJ#/wQMe 36}!CkW#=uljdG2K] L/u}M GW.L {H)I|mϺH{?fS n[ˡb1 .y ՁϛApry /d2Z?ɞ RZ0`R{2nۜ"C3%/E]] !mv>6<S9q ܋oq^O u!|t4/=ۉW:j\Cr-N% Ul-_rAaN>[M-M{vGkӭghߚ|~ Y|dM#H'ߨdӊ&_ 7+֍Eo Ձ?$k7}nIFf4[CHf'{Y5S@8o{3U;}w} )g%|UwPH]gܡFw^1%ls  Z0\8=ش$K(6u(ko6dCEٵ]EM\IEkgɄmV^k#v@vDM}9; ݛ&_>=J1xJHi-]Sgs,DVgyG.?\_GwY/Gcˡ' ې{s\+oDȜpˆԄȆ/&禣iHɏmDZLwѩ0rayi[9K~7жj1=a"o~[)L8HGI_$L|Ve4lHx,¹H?<˗UFFjxj5zKZe'Re5`^^T{J[s|Ml;Y ߇g @B%J]Zڡx~rϙSOI߶0vָ9|y)g]=lGJF9_)74OK _Q|M?̟aS3|>~=:45<,yV NHu S~Q<"\6~U02|?R5b/dH!=SW yrӆsW!Mʜz-&ʐ>)EAu 3a*aSzN2'lFZaSI?9[>@F)o�_Enxcs]Y_ ?}FS$OJ9D#{߱X;Kgrab9wW)|W/D"5P>s.c#+؎4_l,|a{~Md~lEO} QdB͚"פ=񁎝ix%aT1ioIGfEż|URTXORӑrRlux Ȟx_:r&N2 'ݮfo썔d}Pr}s~ލg@Y-`4qVxb2B=^d =N=w5P(G (}蔍:|!Ƅۃ\ܢhMqx! koל=gh6UCV-]W{M;T}Z_6 !"w=qȊ7?:=Zp 7b$SMU 6_I?H}с5']SlS7 T 9;A|N pG 3;`Mk}UHg{O@vL]#9{ކ0ޑtH$p+Vqa³w:x2 Ҷ�ulߌ;`Yd pzs@r8LqǷzSv&::فktHi5E|K-0SBG"qI@fWq OH/$٘WMϿAz7FDy21.HN}id"\d?Np^d:jy!V3?WBg K^ Yq_[O!2Æ7B*K5؝Ae(uYx2_zҎ8',B%7[T't!w /~A+$ng!7൨יJAJzݎQ4'O ٠ znz/|<L!+| pmrR> h< ,>d֞u Wd0+i+3$9QV⼘Wx)I01,2J\mg=hvK H1Ÿ(*W{t٣7t 5'R2Ka6/ke7_C6*ms;9 qgvyegUa2UJ~9SY(+1쁴=,߮۫t#3cwLgjXoH.X'7|n> %gE䏟_OԱs+*"%|y'r$UHϽu|8so7&^{vY 7'jZUxd$cw~I#96ӷtee?ׄyj搜98KHKyE%']|[w<dهm7r~!DwgF(qe zhz0ulSSDv]@gljGH{a:pndD룩0,H _ -6!lQՉߴ[#G a5${n>H{ w426zFs fTs9z:F' _۾rF~"mױ!U QF(tζv`;.^tz>?bKɰYQUjv#;@'t=rv S{ k_MWc/<-2 BlWe<. e6C"d.ߌK~GEp&U ܷ"e1:m6dNðXKf ?[m&o; [gRn䌐!ݧY$3|cU17#HT:kOC]ڸ54i*op9c|T^Fkc  }b>o>!nܔ 7kZ�Λmi4׌,V؉ ~^{x&|Sͻ\3J2ԯ\yHjуpDv˳H;L1x'#Gu/kc ^J7= 0`:f'9)wd0ز@cԨMZG?e]h6WElF}W=o1هSNw="4RQcNnG O,:%s9aMCO /�Lk:h^ߢTŢ+(qYRB4'yk{m*H̦ʕ ZR) ZH+}K NoH["Y}ٗ|ꦞS*O9'ǹe asuDUC<Dp90|^O]5A]o3~Ҙ?uۡvx97m=r]&Mʅ?/ɓ}n{ʋH;)nщ s1Qdi[NCflqCR2NS@r5w5n;W\}Sl缇?";WR6#7p+ 3iX?P A7Ň(u"W$<*Umځo`(f7‘\Bo,^ɐҠ!퐱Ds )8;>vЙ|$AÄBtV0aóE)N]iǧ >+oY.GQX fh3ŝm&.[%hTg]E|abNгVtd/2+0N"C5?ZRԩH(}فХDz=w3VføJO Ai Z;  `!�N k,^DmT_�uұ bEpNKZw2IRO=~3z;wxH%v!hC[JC֦In]FOlu8nxx狢{+[w1F:>Iͧ՗/zSv xŮfoMnz-kq'~~>h8/[]3L^Wy4<<a ?>˜R;z/1 )}4gNP/D!K'3/Vx;jߦ~dL]_9md_SxW(wn-U7\U [dIznO<ng{q^Ip#gO-;2N~Cr캫$?s:{-?!tYsn=η�9c(ju0kɲ!ϓ~: c沣0!u2iͩ;H32^ߌ X\„`,R>۸+QLUSӍ72E&K *'MEK>yx@pȴ倳^ _mHui qݮAmQ9nǐŽp5|χKqASG<."͊=zdόJ?1ܲ bg^/ h2y~33O bFJCm(Dߋ"sZ{N {~}c90):-S1>7 #E=|TƔms2`qd˔zFjׂ@|ebҪ;Ԝމ!y}*ZWjd~nUȾEN\<xW!+}jGUH{[-!}pӴ[i3!&0I\3Tʄ~VQ]/6Qo5GTUYH52|ݖ|Sy;<#e8ܘSs)y <};a.j8݃HOUd75c+xHXhk䏝ˇ9^0=Y.yCjVsuGI/M|D2K"° ΋M,@Ցȼwjv'3Oci>ǀwNi+Lzir~b򜞷&fʤ4UNyArF"lWHdyt;栨f™'[][WvxL !jvkFwU9}h|<6E '~NICuF.Eq̎=Ccy\E/BJϒ,apa߶OecozT'҃њ8i�8HZ ^<g#&FU<|h#kl~n1\=Lj\8i }up#S)[ȨTyYd?s{|9')9C/}Y!]W!S֕s 3oj^doqA[} p(;yꑪ3inSUONQDz{lXd?QxS䵑5uQ묢H|Ե*Ѫ{X:P^R5ۃ w4MCx -/";=xA;BFoEfYi{Xi9 9-tZ풊,j8p&:Z{FE|C-Il&jx~yK$ =I''q!i&>5*a\WZs RQ:Th2/:[J taӽ8m�CflPXXgf)<zNܑ"ocbͳ709p$E]6?&xXY8JCFMdM?\4}y�c&QB|KYԷ@)]yM,NTSNꛡ&\ۗ~k3= nc+[:}_ʩ%"L81FNU^  #3Z~i]P=>b{_E­w~5~N!2*J.dkE֗O~sƅdIxx{ڰ*51#`pYj&2&RngF=w"-~i4Bbä-R;W g. U"m3U⁳' `!e\ ԽTn&E|) 7 |d9 &i`/]u8A.yQ 0]2e cR 1r Y?uo^{;@؛s( 6[O9U۪*  \ ) ^Gxg߼4ĽES3z5l|I1ў&̘H>G\dJrSy7VI;G9?6w<iW 0Äs$?v t*9yY4cފc6ߐS1ud5T6~OUEoze9+T^WmWv#2*/AJs8ߝץӀwL*kLf]Ww1*CpO!BmQT3#H /MO(X|ژs%C"hT,_Ggy죂(#w~Zx-&:5檙O&iF_ C~oݠaJs d6HfۙHU/Y*6F4sNz�zv>,X!<qق+'3W[duY٢')g[ZβZFi `xukgLp/w]IsE\@E/*YWe!C+a%fb |ASho =BYf8)i1#Rjw@vk.(RC 5p) 'J8\(l!3=EmMwM+Ya0فv wY>&{db<2~uL冝 x//HzK/"10z[~oq*�%B 񭛯%ru>&4 27"+J'Rt&nH-a1\S&ֶl={a=swܕLG}S4;ɬ4,8lR%as2 ]/V]$hc/C8~E�^KF;C0.8q"u g} ڱY4.،,Mp�GUd]s6sqV\G:]y;@ |>1i2dSHS YWl8=CG̔_x2ӗφ|Sћ0t9>$ O<=̇$ܖf<ۉ"rd%]̢z�Jkb#d|]dtנ"pVHԷC~65Yǜa/zyLbR= [P_dC%>@eUQʜȲW߸HQaݩa_Y4'ods>V'PB6ts ^XtrW;vmÝ3^ؚs6զ+rM7^y{lWFƍ򰧋HPOkuvO…WB #�8Eu9#jA}(C }T)m?0>Ԅq0oM5iޖ uKE`W!J/R9Ǻ~sځ*%R].yH%bWO))-M}ZLj-Sl~HBB\ UEAYEH%z JBz=~|Q=uĐ<xri+=[=I]^cJM([9RfGy|laT3[>~$nZt9#H}x4èM7w}R?Ij"'^ex~IxZts%}_$H>E>S*ι5J}>+"gYCQm{I2N)ߝ7w#B u3wwi![g k_v6|rbW`-&ʣ%JU y$zw;v}C)XHQ:G8ڔ:pٓgޑFfzW?Znk.Nɿi(YuWa?Y:pqLMk~^m)M839ݑ Ҹ|�&ӊYIk6 ϊ-@Ū)Hs2mYg͌DjW`AOEc㒺Mskl՗Qk L_~f{>ҹ Ð, Ҁczq?/Wf.b%1Y0^E72@GUW %ey*ѺUdmU!HM o:"qjt/dncDWT#t0pR9wzC JH2#HѦ~6{ˑ NY+UV&*P _8t"YDcoFUCd6O BV|cҿNAV@)Jj߿JlOx8[z|/9aE^"ނ*\EsD"VgNAC­oQ̩|!m!%* mփ`028?2 /lhA|AMoMꯏ%\Fyx~ud֑d@ )䩍38].)oNhSpؿ%&n?L9;�F%E|>g7!͸U0U2EB %q ޏ|٤iFjʫ=;r<}Iz'mΛ]JYߊ̃qwjNnjP?ǦKO%pH[-cxYF L7eQKz:";}mN0bHy2Cr_&PtfHS^kE\F}^Z:4R2yKF5ۀȠeQ7DH:si#ΗYyY@*7!-ל;O2u`w)Rk}C?}/T#o^`|>V9!JL!ZH+/7ǖ:z +{N]6�YG4".d<"QdWWo$a3Q:@0E+u]+ l-TwyfXE_O טeesS 9q䛎3p\ 8^ 혎isAOAjM 3t-$<)=\:~ P5F=˟Pt=1WR+ .^WD+0o|3XtGx2bK?}ʐagL,N;Vz!+wzW7:~i̺xid ]?f+PM\HM. G4H)rg;}dIK2=,:_ B~*a&8S]I<_9^r WeZPi3sPT|sHľG#{f ёyi�UM4@8Qf&Lu�OܳPpS+ud7*z@rhDWls3VqfX%"KJQ >RyO`|ئ# z'~'HmA-u nj҅IgWvlWH5<.2O~rDj/;M!4;]'vo7D].b9uCKdN)0Uy2Mk &/K8VK#~_ͯx&]7}&;<~ 罟߂ds3n{Ӏl+&pW;ZTp-%4vȨϳQf[%32շp/ि?j@g}'vH[gZNrd}|B:xE|>~�mrU|$>/>k+@y] |Zw V^,{Y7&?lUH 0k7-DZӴk0z2%A?[;2iIHK=0Y7鮁0CF7:"xG$o. vЎ_`Vq{ foBle L;Ki12:t=U@&#oJHUN1fZ@X# jwYs59*Mcj|7(:>ԁvR G=acId;ڮF=KAQ8{Db 2uECctJ{® Tpy2JӞa{ax#BdViDxnw3?o;>#z}$2~v �]NZC+mO_#uszzm}+ rܧw28I/5~,q'?q#nev28 H[tӫ Tu5uNLHÕ7/w> ;*##J"AWW}#~0ngh%t_4v߀7mI�j~ױC02~y9V#Z'N̕4{ B/n0t$aEI'fp}0 E&]; k*Hppv0qW[6'˔E*LꟕFvb14tmrEi?,ۈ w`HOIuyJRb!=NP _;z7ӳx5"yf}; Z(3`dmZ[e2_& #at!zH ,߾çמ\牢'"}`,d,IEO[j#P4Qv�g]MI]Dъ+S;zoHolxAxw'941_ 4+H r% %r<U-іAEGO|/FZ'@ص&^|U "<<xQaW'>+kmPD鎩O_9ϰ*}#7T7Xhף_QƖc޴ɣ(\7rEN ˏ_Dzw<t,ƚ5bӑEz:i tjE#k%Y0{L wΏ CwG2VozM0>c6jW%J%җu]%o|׍Vphђ_JNxwWydNYp i`(>KrF檻.Ӎa|\Ӑj9. xGݝ`׃HgZ cO/2W-eEvP>kd+mI@*o͋ 0u'~ R&!9gJݨ #֛8ADWdM@!;NK)]#]+=3Z5SSÑJ7rG!mڢe0z2V_1Ȕw5ŅI;-16)oo~u(v7wK-ҪΦb@xpkW̚._Aֳ [N=e+J$a_8 gx'8i!'v* xj3Z^[ZڕrRIU`èznnd3\Z H?Ziݙi mPXضI8?$[!-ZևQlճȜyQ<g%"ȾHʣdI!dҵHY9>s7_812h/ u &"Z?[5Cv yy&)xauK +Qx2܃׎$k}Qz8@IϽ0Sd YiEh%%/ϩ1흡H8o_"We3=7W}puL߇*Bls(l|2?cۓ�BIuEtR]ڃ%CqgwV$>k@j]/+N5p\VYxف#yھ2 KEjv#Ho]Y?Y|) 鳩;hd}kά]„ 1=r=xssZ_ǜiƏ]"yMGp ;j"ӮoMT34=GlեK߭Z w UwQzAGW+ 7(9߬g\QƩܼbh+}*Mz=$!o2oie 9HVP%tvi.ROHGջ֕̉_'k15MBa?Jh>ktDG}tiw§-K-j>k܂ޭzW?!CǺJYUAuzfзTq ;*tMHCƏG gˢb06N{J.2!YE8x$_䜧x" vT_?r;QLjAdhnݒ3|dم0þN/gyC0Q bJ_'wur^: _儵 ˽}Uk<ʹį o4Cջ`<wvcH;-5ptTYz֚&:BasD H{UZ� g4G:;I1rR6ȔB(VZ57d4w?lYdCcvwmRTxv%tSR,P;WD3]K^8vjpd=Fjydu%sy2A{dnJ4AOo]0>=<8X \ 0:җ'Ǧ.Zeү/$9{&(t&!fקϐqrX =EՅ.N5; &�_m#PS\+#P1ɋBAK gumx&F'o!?6QkA;{"XrRwf7ZM v�Yo.a+jDz7e ]\,Āx򣢳#+kyEov*#7IDU%<9|Io%uѥ &w7"]A=%ȼg_r E .oAwgo+WqG H*<dd#@8h2 G/h%R򵑁weiEIPV/J=˪ @vvf5\/<#--[ĤM. XZBBs8׿qV FsTʽOi'v!K@.nUcS=_#xd&<32K42Ŝ\#W}*LT*7{Z?AʶӇ5H[#mWCJrL*p^Wm[Ȓ:1a='w2~RsOΑݕje]0y=hgAcN,Hz:,Bm}.ֱ<uk,^}0Q ZwpjԎw~0뾗a^Oq\<hv*;5dZݿ]BY0dVx[l~݋u5zaDf@M2 S9HSu*u^ {f~<xG6~oo듡i!l*?w&Ҵ.TLQ?5@xIT-L~غ7wR!*ZU MA4΋moGK ncq(pޏgwI(}�$RD\]jCz1Ej".?' Юl ]U0(f7Zpi|/u u{i2( 1a4voI 8x+OSqc.0Ew_MMx7{ <;7FjbA R*:8\=ZW@kl4<&/H!T@ye sD, vԉf}>wR>y ] W !cO@erȨXxQz(| SZйOUb�/j, ^$3F%_EsRۛ Fo7 Ke_Ȍ~'!-q<,2{-Ὄi(2ݤ{:]+]Cn"=I&顀UQzj&?81τI)e3a,+0FgI}W,5*ua:s@CqȘw]*z&<ᖡ /ʙB$JB#acʇ<S- d[EL@8,50fNRwɬ<vp gh;,F&2nHV)VtrhC,5;)фǐY=(=空>~. 'FjJ#5WE69@jjō) qifg*CZe[$#t|»d.sjod#UEwOs 93޸!c/=ba%N(t[y[ۓ#P}g*d~,CQ{gzٚ=*&|`l3fwJ2)( Y 6?GTd7}>@6{3=E 'OV(DdtmL<AK{h:z/ x/R*Xn:P]W'2֭o^SKݔZ[ ҐYr"u<_ _C5Ͻq|='[[8-/Z?7" f%pۧ |2r4nQr؞렗q_ K#>^Hb7pWk z[ϤvBeϸP|???E֊[)JQ<K(6};ҝZC*3d0Qr-%jS/z?~I:*Z){ŋ.Ga =ME%"~hC>/0Ϟb 6Z`G}%d-f1?l11 d2Z$DyAT0\|<&C9F} vGyS6ⷣ�Uf2r?^OcUj"7=1}Od=aRwTEYY{KKހLo}29&tqIf+K }C}P|P{+_+#iq'<~꩒׎Tuvүj;q.G?'yҧW]G`~t6FB:i:gdΐӨ&^+R&-};ymԣ˗ҬkbZ"g�̍җYz _C (rSnWvgR2&;I!Zb|vNRA7 .S�w…)㻁ʻq^dw7)zt0yz ěBqi2,~J}oa&{x"+vᥚOlWkj}ʑEpF&LIuǼD}xJFPtTd:tn8R MOXmmUD *M9r&>$~^I%s͚/Qݡ{mf'LFJ={s5r&R4Q㐍+Uzfwz<*ZHO|{3E<͞F6>{D~ |dPOz}#gх|"OaifT6Cz.`7d ς]VW:#+%T-Ndlo~{W`4ƅN Q%gyFRG6? ߴiE[8?ȓHԙTh'6|];zEj!ҩk#$F'/8Fz eAgx7|pr=ǮV/iFV@c� -<GZE'xR /]$>vr7CNCZ}~E/UNƼO2JﳶJäăJ){N//AJ6LCqa9gדfUYcpIHyVAiϷӏĐ,o<!ld}|P"iIS=1+^< ay*B A75$# <r ܟY_&1׬1tN~Fڅ5䦡QM6N]/JR8+:h2ߌ_ro}܌,8mw6EzdݑFrɏ=^c4&(?*tm&Cu5>r\'qԻz&HBtP7G;LG#m zR/ϼ#YȌђ9]v{/jW,DjV:otO\nn upziVoSO!Y+MlLk^rC&%&OPk"aL}n ҟ_k~ U,%.I+#˖ PG[/npඦ0dKM'YJo~~'B[ԣu߁MJlnY|Dc,~xa|쯶HOyO)#aVAj֍_2`=TԏqQ]HSIM8x ϻ7-mo"?3#o!῾Ѩކ' >>M '~,󌻥{ ݾ J 7{E' -8WuAg�O~3~d6J\:w) ~vmR嶧mFs9Wz9t=tNjy {0q;HTj8'Q7k~6)1dFүx!l23arPMFyT|v[@xgc mDar O=~΍ًͿ=v>?Eg8/އmcdV] LY Y>iz%Ȏ(u JMEH7fB;}dK兮 "yc\s#n_N\34=Ϫ7kqh Sqnr{=L YO};YF.<r")8„$?EM'ӟns]%wYW*Aᡞyk3ʗ[h>5Ei7[[k[{c0>;th)8p3&ik|GÚ ugZd%4?j|/VA1Mq4gt~ԷoK#3S&ҋ̋'+w8p.$w3G2󑊌tO>='<SSz"(bu_ڂbd\~v�2j,9;7zJ1\̈́dB%hW|ҷsV }@ 'mKIouvd8!qOo|}5H[Mj�/SEҐU8{/ܭ28Z2T*>F"#5K.֫5 m; N!M`㋐:a :qf{I趛@vUzǑ 0zfR ´B[N6Ӑ' V?|FjGVh-™EWYG<KC ^){6~'Bf\#}-2ôvK| !5c얯n:3vQfNzPSW't/AHo~1�lhg._dx^3Y^SﭐCK7[nOFNyb/<O�-ah ykoThZ!Jn߃ivfHhG.L~h5Lm<D<RпQ%8z K :7p0BY=&ޜSj\GKNL"mֺ] xb_>zdl)5H p0ᷗf 'a�Eʼ3. B\De.+k; 8o+\/,xN 42 >z4 ֯|ly> yH Ϛ \Uzi0x}"SˤR.A#'v @hٽudv#~Iˑ .QrGxㇱ`H+Rk%2&ٿRLW |atl~>0][>ٻW=}>%w,EjHbd+Wٹ i=OEj**?EBS5^:5G6?CKL>4eY$L>ArlPT9 !�A\xH:TmR)- keroU{dn'%ȤlO2~1x-ȿ_Ӈyэ_d*=Q>d7_Y_h ۼu% iC& Md U(YCxuYkN|ƪ#[%GCmH?? A:L=h47J7 -GrɆYZ~߁ʏ:Yv|D*ܿ~zd3BN';1i?+ճ3]^.`Ϯbнc_yT#t Q0Y/$~]b $^ :kw"9Yp/!*!p);&j'aHd_-b*MӑyxMT\~mtW8&>dZv>vLk6gXOW?ot>FJ>-EzȲ5bĉ^OΦ̃ >hVY тZY5V/ fVy;.R^1uSg+01LӕHAz[H~R F`ɮe5a0kI޷@JJx]&`;ox ,(�ucaܹmペzd0 EF|eGЉoH,|?==5?lFֻjڔtW +Dˊ؍o.pĖ1dE,]][;}YVT7d馒̯(R?roQKk[-tz tt~e0>lYd?M ]^3B( SuQ5XRksg#Wcږ? Hȫ#J~]"pH)lUQc̽|pe;rR|aww n$#Oa@:pK+Eך6]' e  ԏWH&"X+L@ħ_ݔڎk3>3ȘC2i:2INܛ̛A0SwZJGj .+*f {eg d[z x lY;[3J,Spi| 3D/Bteden4I7d_ h?IcH6dk~:`fko ^AFݞ!uAH@H?`i&H;ز=p#ދw;VcATwH_,!h.^UP6=v;)茭P 56`IUHos_4MGsyxLL[&JK02 Sz!Jed X12,i=`b 57;'R{,bS,>8?irǼםwˤ/Q=Wo 谑"nxݛbjc ݾj!B+.ҁ+qO_v"h txʓp&DCjo }Vq{@n&a1w/j`6C{"%Z@]vVMӎXhpmzԱWuX(Rڱk)["M\~H?Fðfs`z_#mXVE>hViQω|MLlV%ɺ'x5jޱߧZ}G <NC5Sqix+L Q@Ə 2jcnSdmZz6CZf׼dYzW"+һ90\9 >w-溍Y </~pnMµ[u D_gdGc:s\/f~; 7ˤ!ed2Ә<i"J,6%%;{!&-ug?>u.E_.0?w7gpQѓ"H^_:KzY˺RWȪ WpJFݚh+U3z7 M1#t,pj<.}F2f-,ތ:!}R̾H_V9?dJv�)?gT$&Xۣd-;M]z�f0>0q)~>4Ogt6kSDYGݐ-v]ݤ|2{ۧ@y[w|!/ ><==xd|/DG5ܐZ6|H+v?x(9ы$g#t]m{,>T8Jl?HuqG8E.^3j"oFZ2�%Ʌ19k^z1w×CZXCQ Z>f7~0b#yԇ0߶"v%3&T7ܠٻ7n>xrV !WcQ,]Dkʪ`]^sCT=#@,pm&M>;)EDJu3nz!T v*SaYptLmԎ-w:% h psUM1lE| /a4jxybHtPҽLi--E5XRR�gbc16oYo FZ=#ͦr'0|0(҃^ĈП37b)ڎD0®'"(ACZAtE-7@#>~y nbT'uoC}'ףTGnTw/Ryjpb}n?x3ҐY0we [*:CuڍGd ~{'BeaHܛ_̎Pċ!M,g]1|TBOCR OS1˽IڹyfDϸ ¾c|dX+lAp5RIu4s| G{9sYyZ'qe.. 5f5"&ڣp޽ U=*~?4)Fʬ}ƲH3s[ nf~wJIk©AВ]5uN1R7y>*HxέB8dꪓG-K{ cV@Rk䐲MBUb|MGjZGLd TֻcH9)Fkb@)gY;we;PLޛHN q)v'6p=dvM{wuszo«׉kx'LJ-=I%H[)yKok9{Aԋ{?3{n/ ޞ̭[?D9QM7䐽nۑtpa)E2aeHf\2]!<f=;?GVEgD҂݂Hrz=a'Vb*p̽ g#c''A6zlJ}T&i) 9M+~}0/,&j͕tN߇C~@fkkv8C5j =vx!B/}rwI夙FJ6RV8#yd.o߼ K3[o0R䭌,ӊ4}2[)r8E^JnOh S&񶣤wGbg@`Dd|fc'wL;#)^FrwP"E Gm$ \[uP3E+]q~'Oճ6{pNiܰ;cFfs82,.(>ASs_aTevR LZzbJh,,k[0=SL6"yi<4 Z}NO#75xvHjOĪj=IOЌAѬZCiHTcsH/䦀0rM}ũ;I>lxa?9O]ˏuL#>D["YM8$tBjVWDd-ܣpxz{ A Z{_+WuơԩVa=mhd>׶C}IH.?oXf;  ҧH [H+ҏSxWHD!m/)':\+Sˌz}%K4!E $ ?gg<O<CwN5Z ҽz G6ԑ>vD :D\</.?zH_>xU9\:v2d(lgK)O.HMdXEm?<C LT:>,߁%g<JPQ<u^R=]^(L<rvv82i/D~" V#d~yl >xm4hmrtzܞFn+c(*Ոj"2'n}TB #4B ֟S% t/7NLj:܁㋽χ+f̀_;I'T@ԐG}W"U]Om!K vdO)'_<FͧJ("kޭcK`׌aMHWK|=\GEFdLf-q-($)9toaj-iK !W>xR.W_WɴpàԽ(wtrY* Ƶ/`yY5 ZbC3<CGiJ?Ot!ewr|'S~zH(tb ,=3,<"^-RN/+WL9cD&5G\kr_Vj,Ī 9ﲥPJQJR}"P$D"$%R2+DF$e+4TJl=ߟd<}]8/ҡLA\v>#R/ܤ27Tj1|Sy[+kwzR^�?z<9Z,+s/uD7%q/lVGq]$2]m@-Ȳ-tリcXun]u|X!=yqH>ţF#^R쮋ҧF//9~߇H[4m�)^տm zdZdeo"GLuFr5 Tu"x#5b-+__9p8UA.;Ȏ|6 |21__]ZBx|۽ɟ@~$P#+Nddl-,K_o7}[*/ [ݥ#-T9 FT=(yA3-|k{ Ê*Z7!:"&oE S7AsT'!e&K@Vfs #dzy25y>3Cvvt$dN<{vANgI|Z{wBƍۏY9u̷olƗSap5+7eC). f Y'] ;>O %$Al�\1@d:7/IGN9w QM7hړH f10Gb &<ӽdD΅u1ω:sgwlx"%Ho]rT0Zz 1WDp B <n\Dsc]f;uz`;?m GkXHQPO8=c$RT9hk"s>`Y~۴ (5cyC32Lp!_4oo%u;2#%TrCOYzk #˶t@߻|)dh :<%q7. ]ծaClw9c0K^(q ;RNdV%) Yr `W͐a}U||xO�юeOoAژ7|%0S puj۳z4ُo4x2zXM*K΃B8gǩ Vt;^|&G(ɻh"m 9y[_VDq _2V "{Z#3+tխ9Ȏ{L7wA]^.lj_ScpQ[(Y=) iAm&6YnVc%uwAovxqr*d1۴G "v"5Bn sg2M6q:G5ONd__ղC<mLnCac1\)f)]N<3;9hr-edyzAܶb9{ d F8L) ngh@aikR_u,n/ݰZ`T*g 5'W%ܧ(qAIxs3 SXUI2Y {.*29,ˑKlFF$gM~ ³K%S7ڶsou.A0s#$W5(GZ9}>CAuxx3P*ws`0M9 ,k -ŘuiFISg*pi CܠӾ{ ĤmU C&s_mQq(fV;,a~ ~ V%Ń,2 %>5OmLa:>Abo 7ɺq{x)Pze؄$iӜIM�9QpR)2{C-}JOg`᷾MģMs+eGW#g!nt~<#Qw۹A=U*)\vAܰWܤuԮ:UiU ĺ;S5 ب Ց/0(dBIƢ[Ldz7&7 Ec7,~Kz6:F<̆!j #UO#2|됒r- ,:/q 5x+/&K@7OWzd{4._bK0x3!X_Bɾ+oϪ9%m97 o5AxsiNFN _9O륕W^{o~d%IZZ{B!ubʮs�{'y p!M~^a2~d 9W{Pq?3RE-<IÏ-ߩ^wAdvZZ^ߎˢٺ :+\_oH|]vqOy5g.m?wxs4UF;~BJᮜ XuTq2d쪺l0ru'6CYbu(3tMkT c`V4 o**ß1J_|9q^/`txWkzq:2xͮ%!>x.u xBs1^L9 ڇ60 1CŽv]y/dʙk˙og 0Ӑsgﹸ%*re,@c4?%\_Mi�Y[]n\=2=Hoz*lT_yɜ쟟7͟p|Oso sW\]5zyޝ=[zh-(m\} ӾKOVm4:Y"-%uHet^©mʶm>" kdś^CK#s~`sm%||wt "êăU Y-.WbJAX: 3AT/p&gwoZZdU= ⯋C~,37Oө+T,k/3UrxnEt41-n Wyd_fIi[%?qhe}@/@.+}eHo1+[Gx\N_ 걵M362@gw:Zu)rzJnqx@<? 0`RZe?p,u L7Fk{˕a{dj2~WxoϮO%=pdLr#JMWM$}9~&AmNDId.'ɤO{r_yRO[*VC9;3 ]=}cp3*@<`K_/J}e>OYx1m—' ?S>7O`vbͣ(\ PRr灈ywvΚ(aP:#˘הMs.!wt]A:.wᛸX#&5!:VuNL޻ߝfnJ2BՊ.٪7 e{0Bʹ{א۞={|,<.>܈! MKolg.GPZк s!SykMG`qs@(B<QB}<z%vɽD{TXJӫ"'!2>917F۵al]^p;XR*7޾=.X53q<r"vAzªz"=o>0ZRy( \*g/ Bje*-/ؖ{ +9N{ 7Vpϑqe^^deȺ&n}@jv)ƻKaxʫCc~J63dM5wEf"|/}Hg:>8gȇ^+6ėaQo\#7g #sacӿm7ot^d/nh3"7HA暐@Rtr9p[Tf@e[H$zR߼Mv/ n?l!:6n$JxDdl6yqcb9ut@F(˱ ] 8twV-*_&r8LC"$i5�)@\~К5Y;ŽOo##Kˤ15E\o8 ׂVJoC߲gH:VvGݖDz1vW‹n˥r-ocsӦ{"}&DSJ8Ϭ2Ӝ })یF@ d�6�_-P:@1Urf<7"thGf0 i&9WT7Bdlk|x#Gj?W$QmK(Q<)тao[i?, Ϭ90(by!難Mid% ][2)�٥.)wØGQN~bW+,ɁߕTŖQxV M#|{&ᅯyȐhcsF׮Ajݳ&\#ceY%MvTct{( YX;zl9u60{Y w&$d)4Lً%/C6MXY-8s#qG)qieÕU.*Y)�Ί%}Cv?l a@Zؕ܊E'hڱ4M f^&M q쯔n*X=^dD8UsG)N%9Ľ^ϳR11߂LY &A Qq9HFlh=f_$)o?`V>xwM;1~u5!σM zo8Uu [`^ča(ab0#9ׯyUG&wifD5`6zKzz'X�cLf }e&]am f_$Y}^v UJ|_H6Ptt[O8#F@o?&88|U#k|Z(֬Xuc0W9 ]�ǖQFOZxvʂ]ǚ?zZgc @ =N{EHYxMm0yR) x!j׹& H�SHZړy=7) 7߫^XTd/ϥHl{@0F*Є컊ե>5o9`;G<7 NpT#|Dc[%zH/; 4چg*҈NYͯ-4I{JrߏY)0>wa"dO0ZSgd(!ouyMe]}/pD~W#Kq/'X,~ʚLˈ :ijnxN7CGgv ޔxz;8~curodܾӺrHX fnFd>PaO߰8rG:ҧWO>k#Z\di,lA8˜(GO9vF'ƃp0>W?q!k9(+Ft%!/dmd �yZNzǟ̜"Bid| ]ވȣO!ZnqP2-?_|҃ .1?ې!/ 6%5 9)1 6d.r h'u=W%c"%~#y{0fzwd4Yù z :NMǗlIљ͵&S$.j*X) ) )OgНAt"nB2d_M+g=gy(ha2ݿ&4؛MHJT֬Zډ̵t{�?vj#Qʓ 7-8f2V f-p t{5r4=O~:,GZɜ~-{Ǟ6~J>c7liBn!+7Mǃ ~Ʌ]HI(֊H?qtSȢ;/ -K ǝAah\)/!tn�ܽt4U86A&cXSnمss2_ I~XO(dle+'FumГak :5*mҁ9~k?0/֡c!вU=ik{껾!~#F1Ys4nDogBQK2=}1up 3w#ܐ'wڏzaepze~!w+4wzK˧A,h{{~_̓+QѠ_4[m|[Ew1]ۭ|ݞOB)/H}jD|&a^d6"zd-?u?:B$+hj= "9[ %4<oߟ�᷄WC@048{w97Zg"c?d؎߱<-HߞU :6,[ %dmq~cNEN%RKms;n ,fBzT>eK+d {% ?A-2iKf=X�|-w.P!m4>G97=m_G  ]8]8u2B&J]4OxeS#m*o�q٬s-jB:' e31g 9aAw\}H(@ݳ^Ob +<`݈I<xѮNB绫~n8ed/srRmNde# so 9U[fmQkY(wYdu*23#SFV]H/3K'osxՋ.-s [llޑ18ZJ|=IN*E wZ6|?D vgkQ%nQ+9<1/ #_+5Ȍ" &Χkv#$=%oyA86V4cr^rFMB~l?dzEho"vv(LSb R5/!.zu]A9E禒xe1MMm(`֎$'ÿ^I|yngܨj~ _O޿]tΪ$Gr@J{;a3όu@gW 9ϫ2W78HCqlѲt;_pON!mcIxT{bndN|G{d훦` cUҮ?FO{W[ө &^ﱼrʑ_#x?qח0:p]LR\AxV?\||b3𝭕Du³RVj:0x_g}FFʗo܉ jy0S9[L֙Oouz@|jr׻+ҟ~s \m'5=o@k;I>j6!;R% UTunad&Ӭc sd7dMaYOC(yh)2>ʴJG9 59:[S#.}.-"<8kyGd-' ,GܧKm>/tQd8=3Y  J"rd=}i3|1OmןemCֶݡ˵e9}Qs 5j uOH<˘+O]L5 @;ѓ䶂w\;wv [мuH}ptChb!{ŖҞ&Y($|tpؖ\6.�0Qg'H O_A[,yi9Sc5H MKQ ˬ�n)^1_õֲ#O%Qh�oYϰ'~x)z$2T PݫW#s`"z=y@J<||pU2Uށ; ;{U(1P)I88w`y0Nw5t}92Ɂ : ;.qPia_l~Ά?k #{d)LګW=>[L?hF)J߼gDa'oq<&t>^~vn @Α~uUVMKݻGAqBz"}::)QWr7S;EJ+hdCx&<4DaZ޸C׌c\0FCmrN84LFwH+F]t/-a͉ǐZak,>^LSNDVMzb"ro"\i#x|+X&ux�YrRNW2ٕu}hbdqCw�WGٺ0pχý$'Z{Sz@Td92+@"s'Cf Y"izĭ¨ڶćdܝ+a/n?nEVk3Pfpt}d}y˼e<=mɻ(.r<e R,#sYxIv_]E,^l&rR}H<2Oaۼ"d^J1B*H^9r&H5ux#GڶHk-w};&9Qz\? ?ԥTL@NV"T]#ѬEHXzcp_oJiNי-Eή3C nR;G%dӍ:sS(B%ɺdHܓFܙ'@=g8jN>DFo%XyDZvA@%03}g|KNO@m9n2j2ȾB3i4모(2 ;b"՗pw#HK2 ;i"WdUZRdhV&ޜ2[Y_{"TIg'DzgTqxwn.[|y\%M?fp'6Dn չ|jΔZۯـXl"=}ATGo/M -bԕl;oAt*iɂvEfΫq7Ю)HySFzZkx51+sq=}sk1r|/0uAki$Q mZhO3@;9 ri1 8СK粥Cy: V'^@ǢbA0woYlդ'GHT܉{ xIHšF-MJ/ܐ72KZYǶq;#Ɇ1cߵ!gP2ƶxbҁl +U-.(xЋ;Ǧk!mx4[u%2's*ҿg'}5m$|~i톪0~3\҅6(U<֪ (ީܛ 6t'r,ނw3 t@_ˮkoy;V.= ?ɳd>M`"vP`ݪ5CM06¯l9 {~%Zhi ӟY$Vxm.ahoHg \dXތwjA, [V1*[("9ZCv10;59?G2aHF”w,<d'>_MA?+`{i 0&xT8g,> F F`tvDHdN9</̡ZF' 6 n"s}6?^ ُ%;́+v0_(}<gF~3v⸷WGSCw(}} 4xb AA{e~%%7PWBohF$U^ȘDXP+\@sݥ7hbqA g4~Or kit\!rX�xޚC )Gsv*-Go|,\޺ĕ# 葱}$'Z{ad(6~^jQxȓiVaa-DʏȜ|C[béSYẕ_תpduXZD>8`3=Ooh{̽wAz~0rd p=ԓ9·{IȕR:l("kd>3X{čf%}w )G449xvh9Jw %ǣ|Ԅg_}ٖJxHN%0l/]v+'KySA4lAE"˚,dN[ujJKEs~NJUjO!qzěwn0AvDcIHօ\o A c5lW>=aiV8t㔞yJ YWKW x~ ؛9Z4B,9Ó׿�wߖ\ AƖ~dz_arW-[�?D=nd0Y"YO@zHWBR `$#kswȾ+AF^RH-{9҄k.ȿԻ 7Ӭhg 9g-dwgjM%'hp~ȉ[89xNUAay9[A.=) xU[TS|͈9625yMsmSpd \)# ۥ@Ub[MA>]u>֞축ăm3LG3;צR.涯:O,d>721Fη9er.!s',PZ9 {Q&wOMKf"Tꀬ.,> p+~ S(Ff5t]^JiHwv rʌ% qdNt&U ~|u=KdfDpJk_-|2%+6m%2 dV˹Pg]RvFz)�ϝ:zm K]̶į$HȪe7?|ɪ\{F?x ndY O b=bn175MQT%Y}^!ryN,] r;`:x=L;8wKg:",&J<t,'LzDeHƧ(m{|۳/$*N\)p3pEPk$m FjWGadl#wX LG]cA8 F~D$:ɓ{';i!>>Si5^clmDSy0s&VDs7Gz({+R0e/2Kޛ < x- tvc>i_5 ʺ<=cecѝȜ8ldW#2R{v9!)ZrǞYU~9s&߽Vf W˻Ӏ'|J2;&^jrCC1둭/rǿ+mT~~5 5,zf#,@Coo 'i󬧰\#+ {) N*{IFwN@iRUtG)iw3f:#?] :R]c9uń9m"Sڰ~[bEc[YSwe7oW.r!^>xnaͳR ~<xҟ̱3siif:r% '|Tmg#˽k o|clߝDcPdK24 \>ph J<"©JƑyi)( [.:lBҙww-H7mT$~~Sݗ ̺69qC:\f -?x +{Cip;YÜ">/@6vN{RzpaBcDdܮ.c5z}"~ʓ {1?]Ȇ k&\#o)>鴴pl9r0?{ 2^67ҦI{̑oZ3DaBekm2֎mg#_%F}vl$2𿂈ȺH y]C'^&\hP\bJދ~}x}$?/+{9 @֚]J>F8m\p«\~bs5ﵫ(>7h#翧ɵ*ҷ< oS&oFGgN Q- ?;j}"@%MF ~)EsdA6&?mr`λ3{۹N>UȚ8Bf+l/=Nx쯂ͤ 1~dJ0Z#9Hzmj͂ 8_kAfl8O/(-0~&<KGb96 Fi]\=([5g=L*~(syگȉ{FO2a3Ϳ R4́V"=_tTB;s~u:Ĉ\Z{QAy 1�159}ho`D;l2n/ KϚ/-b(C_= {Tڲ zcM|ԁxaEc2A8GkN\Yvگ H&>zintr/iȼ5]WA8Ȗ˞.pE#i7, <z 2'GɝE*"%GSZ"3O_\buU6!sNԝd5 ޕ WLd+4LEO\a#}9g'EAISDfa:ixT<G IȲszRw?'d/5 Yk-Ef]JALC*x;0*iwdL{y{l}3!*VyigZԭH)D)һg~|;{ [|2 4_?3>c�AO&ħWzˣTæwa:~uY;_72N"PP?J]_Gj_uU:<J '. gưѓJyޚ޷~T8(h[:Ȯ<MHo~ v7;OA q-.o3zI#ƥ2>4爒d_#@wO@'P 7ӬAΪAhgrثOU ; %뎩b}U侲]mӒ.RC_6G }0' x7,m8TKgE5 ;/tbl~7n=/ge#8JI9[&}y!}ㆫ *\V2[Q.F^u^<;zN*R1%:>cM#Aoz OQ�nP[G~|UZ2w7 ڐX\tC"g:cwSǤAh~w+.Aj_ /2zoQrّ1$䧇t D]R fwu<FrELwL4=y'Ăw6zEw66 "IkȹN~D05)[~w&)t@H_Tdݼ+s>MCXҷgث ̹>o�#_#bA ~-h؊l~~~;Dž F j!ᵩm�%wfR i*C돊[`Zw&ƪtza>ҐWH)9x_͕ ZZu�hJ;6ݜ"%Ok;~\%Wgsc;Zo~L<c2 |=;aΤudH~#}ǻ9XxWuW{ʵFvs >H-ϋڅ6 w^7mNW=RTN`TVGfM2/,3S 79GxWc\,;ʹks.}κ% O7.BXEr4u<;<:L] @ nPW5k:uNK? pSdfS92Йé_ěJ|̝ϑjh4+|ϰ&n*9]ϗ!z:2\<>-LĺD%3sg [A$`r4 !Ǣ&ho!_ [mQ{c+OyA=0̏i'7 °Os#'[7xY߇hu+.H8�IBUlA"*z3RFف;iW=vqG佚AᄡSB"2.maӶ;;|BΗ} io:V!a13g}x.05/ZHk #qtVMA-c;s-ʨ!kL_FKdߐ:ٺ![>_~A©/k�_ u I~IytTIcuP2gjۤH_}/ >̮<RΟ>&IDα A|Z;&sic!YGF]ԐeNoFZfzmca%F^=)�^q+,uF Jqp}3Zwxcvw45 G8FQⷾțAOkBǩHO1sQBҶ_Wapĕ?={7_94 rV) xly;!}~PYX =.s>~ܑZoo>%I(aBzm_Ѱz*-wnArm,A= V{OJckg9Utk]#UەP /P@+{b~{yUg? ZyPG:Đ3,-stdLJyl#_qWL>$,@<lW~\ .S 2Ӈߘ"*ݟ+[^?|p?pb!l_]rIO:Bڵf;Ւ<M RΈ]J|o!5ˏA^VqsG'h^e/2W8Cx|Y7n0s'ҳ`4~2>eE 'Οv9Q`(@q-)d숧 | UzwA3iv,d!;Q;Jmn637G0!x6%g._~T,6IG]q_v"JbS=I6ښ&,hC^i*Pv{ك 043[=>ԍ u6)חWN~k|[dmI^7K]i#S$Z7ohאh&2:-JjL'|x}9'>ns3_ x^O!le7dF)u]seʮr>A>oܓ J>n%edZ0F;^>EچM?fk}w}$dX/jslDyW,2;CWEUB,c\@决:Vj(1mW|}" d5^ FMnj4y-/\mC6C?7 e.'>OC%Ώ.GdYA d?%oE"㟓yN0o <9)&?cJVk$vAzgμ;\CQ&ɾd˒Ǐݼ tT]юbɕ[ccNA9~,a-?q^SG: G$R MEo@«vO%qKA ݁'w=MџŜss)iFeUn+@pJ*vq5Axe .(WRDZ}gaD_&ָM!%f=kE )f;2Z/T s_>ky5)>5JqH<^e^9_c[|փMU9X!jG|o 2O:Sґu7<"Kd#ևoRc07 g=.Djۃ񓈷PXlRIĻO[I+; jm*n!59OW7ʆZD)((``٘&__B֡12ezax~/H_(5t[V}%; Hn,pkC]wM^"O;(f =x9E= q ˆ^ߩDmsh~gR#}~?髯عXR:Q7J^r0>@<;,~ CMUf*xv'eN)A2?�HHܷ<&uW(;yot$+7lR.iLoOu@v[}]s.mJ-6 _#Jֽ yOi|Kz[9_;a,mJa϶<u[;: L@t:f}5RwsRfBo`Ϣ v9yd,MT1obڸ|y}śA|r}^h7"SԚb»¡˥KtBJ xz6uY߀}fJA} [y:;yҸVkv^A|r`FGīhAW_DϋJ2ΗHrƣ ];09[/wu<X!'@J)d<1h >`>r]T"]e\trSی. 23:h7}kJZ~'f WRwK[=o,Kgtj>? oE"i4Dr]nK*>3Mzo=prZ6[dӯQ/SFY!SWJܼ ˋ5H ]oCDXVMH]yn;^jXyE0x&dn_Irao#T{i5[atFci` J%9tXq/EH,0fFƲw\{Xc[ꇡ\̻ۣAy8tw/&Uq9 ӎܺ?ja~ԛndm̒/ǁZO׸1'u#T_gڱZdsO7c6#sSf=d=QyA## 1 H*;}!@go?y=~}ƒ_<i pMf 3F{az;]zS Nط{' !k,}'2Սt,oDJ1_od+sX ,޹i0fTwF؀W.I@2[2!}&7D1^%7j5uom@;l"w>i@zA Z̺o4?\}"5ORg�GO[J<Rn"FJGnȜtB<dPvO#mi|j??w< &x%_?+ӫw p]pW([wDJ9 R;)3?S@cHkh?pVf?mJ"C;*2Yq b*dLڄ8B.'WiM!9'wIބ/A]ՙH{m{HENF*{ƥ}Hq稷>>L?aR| zSdd3mfNB浻ZۂXu>ZKQ!4udK5?%o4Ja.<wT|g?TF:FD|Z1:f5-5y =$2T|GjI{^M1?YŔ53K#sAn92;3 NtCgȲt1 ˚jIW"] bj4!]\:VGJ6ߜÉPg\J,:ExvwT#CѶ n ~r{\ ;a$YCj /(_=/* oCLk2o>@<5 _O~BjCaޛ* Jp!WCdF^!#M tÛE>DdZdu]@U>jd.q[Wdz5TvkɆ3Ng0&<P9Ҧ Ty[+R ]&KO`ܜmx]es_�] <3/.<OAt:"yR) #gS,CCZM�#k e0+W=|wNE2n]Nި!S[óִP3U㖫x6vQw\BvW&_F=F .wN_͚#Fz ~NWm}4 )ʼnH]K-@ƖKBAykZr\dJ;RYr?e"kroMӦmaǁ0d"^;#;<'_Ђ Ȳ`s6 cL(4iC ??i�>]BֱEF}Vܢe48 ʋvg\xTd(/S NX W$wZ(e&l 3H.6E'9=h �nYm:yR^>& w^@<bjBbkyjWĦWAttYtȼiSXp_$!{[uw;Z݄޽ >*:e ApM Zf[ bpq4e?^0Qڑh2GV*Փ}7C_9Q8=fKlAo:6jHyql\ 4`.Hdo)A&!M_< '7p߽psz?eaŧGH{Wu4N g_vĦi^UR> Yyp4ev4eaq7mKYp#RO 3/DǢ͇ea-캈wns;9  \rE~2p= ;"{!Ų$Ox.!=_)-7CzȾ`Q v[XĻ[}bw+# l<)INzl.Lҿ*~r!ueޜ9KٖsOr}0t-2j,I`gu iYd>':2Vtئw~9)QNe|t2n/d͑|'G Ԗ&mM(]풽7k"gH~b]2k?q@N++{+zR C̷G-_{0$'"26;}9&ڿ-GǞ2¿62 ̖5z/&_u;ԍ|:swo#@<`iW\2pAzٯHa tX^-/рu ݨv*2 *e| ͵'^}]k˗5:<^)?i|M0gU°eCt|`39CΒҲ˵;|,ᛩsF"cʓ0dݮnb[_ w3, mbwUwzye0:1C|f %<ZAvߢlI]|b_]Ou%<e}w4>MxOhuzEJ3!]P8i*9+֬GA{ 2Qܹw kv!#7h& ?؊ȇ)Qᆬ̸\`�c!]z$4kll[#C*A'.d?nI~}}bP5^hV@56q|;Cͯ_/9vn] \vinU'|D#Oeu}yUt'n}Hvn 4?HVmX #R_Bu8D֚kTAdESuH1g\Y[kȹM|r^IOv$pg@zf?dm_*vD NHY^ YOxRGW= >b;2*bLC-#QZo{c\C!9E {F-|~ %|&W@3 %_|#AS-Ѹ)V?OC]Os/ͪU D# 'o~-ÿXF- :)8* 9;\ ?Y^] :.Oq<p )H;ā6"hPPW2w߆r= JLHp ~m7h9H--Ir|Z$W4>L{Vڃ$W]CrThҢȐXٟu!ϿuU hg%޸O+FwC_o'~l`#26hWz/�evշN9t*2|vkXɯ᷺#x 9KvG[]d̕&?G{sKYns>yЅ{Ш|4#Z~"B|L 4N򧑎]AKMo7LA}}!,."zEmp{\l)uwTE:ߠ-�*VO~u uN7Q~ ĪO ['@&P> *o{ >D:p7ua6]2n�#wT}NȯȜxad1=lB_rﱎAۛR]yeKfʭ>_#TIw뤊xo  N,9wY87Aad|X5CæNCF j?yw.p, ?Ia7gf2<%[Pk W7+دˊE:Hm^w=YC2ې+ wirSe7͵u7[u@R225LBj֒Z/\q^ `dT!Qد9P|B) 0O<Jzf]c=Rݣ_M05F;,*>UQ{C٢S 8"Ff{ZX(9bTpQ˜9ML w6YUZrȠGE?0.A+()t}$!ӹl U2"=?㻦mvN[UX@}e>snQ~EfBfC} 2>FA9 ܫE #.'FO!g(4#Us e7sтv^rw՝ނ cj^8[(S_)EZǑV ʷ,NxЖĢ޼^dHv&2v.Zrs3^2s B?MDAz٬oېW0WrxR1||5F }ʤIv 6 UF@vL�Vc"dxڭF+UQ4_.vvCN(qq0VQR<:D s0Ȍql%~˲ʦO?\{2r'T �od=kZ7/d佚qzEVhT5N30m>3Zv\Q \<F6akkS*s洚fR bnwoM ߭O[rr.sYdL5"  ]BG"ckޜj,*w}>v.}#<A] )iy̾WtXCt½64Usi3!l? ~Gf5&w=q+,+orGV#<@lP٭(kwoe\tsՎ*la뤨ƌ,=а{6{Tk"?h&~>duMj8t'2~oOa="~Y=g[cAhӼu>H:)DN/n<fۺґpg[% l,pq]0rWgʑtGl�04:azBN<㎛NYȨ֩ C ̏,)7i2sIߙO8tdkϨ ;78d cBrIgw)q"naA ?V!?wK(qH.8&R/x0z< -{1Ŀ.g]ʼnNJڕ&..qxÁ7A5[˓^"W=r<.ȡ̖_Fʉly uU򑙶:gˎG7m F:~]װw!RVI@ؑ,i*7/L&fnd 8.f;-{It=LXnA|P͌"C_`Sg_{e%h~~kW*zT,<܀mQR-é_.wwkP=_,y~n鼋bf"!=gF$mt^?GɋǑZV4z~=:ޝA'!`;v<ǝqqmN�(Iv$T3IxHuPZ ȱ9~zπ+Ax;d}xN ݥ zZoᴸ۩r0z<"0gwfĔ\A֩i([*d21"gs0vl:jBoQbKwD/ϿjD>N%|#{YT@z6 7U?pK`'YWc~0/-L#^16@J!ux4R-quSґikbч,Eo6mT2Bͳ! hoR#jkЂ+vQbgEOsz=kRvs3Q>m HYXl~8ck3irA춹kIXۣ-z8OGzBk)cYWl@D(6y:{%Ƴϑ5X?=#JUȸR۟59>乕ː|B bmpA \R > wSQ ;66(aX5]SK.g3yo?E|H;l>F|9/?IJd]q08 bCOoԲZȹUˡkmrg{g|mG [R]0fS{YwG5yQ{oݦpd4$J #RdgPIy_{oKqzԒ#:He[*-A)IN^cҥ .23IV 0\n^򜜗~ђtTtLY T/vtZ=n$yyhvDF8y u ,@T}L.iTI_i!#KW4j8C+zo?T Y'HDs=m,y`d]QF*O225b7], ۗu!%cZdglNDZy ]>sTZ<'42שfENE}*f n] #Wj@%d mxzfn0g1p Bٶ-rA )BL{nr.!W ke/߫Xe}0gQm۱=%]U`p"q (uefhmYuad8mQ 6R○k�/2hwj*m!vzs vgC*HH"ܨ90Pղ]f!Ex][YY[\+%jʛ7\N!\a_&CCm]G|գS{a?bne<.}Cg$~x>zg \F<-߷ϧ_p|=fJ6_[Os@4E2ASF7e>b-f; c.`䃑ml^S`[&QdC>v] Y ;VkOi?%jp#nNAfؤ .5~q/tVMDjk 2owow/ ˋlaѧxC+oJs ^t :dt~ .6X T;J[]iA -a/ԑ/�Ŏ*C$nio1]s'Gdyd~Grܽ\twYM]KBuKv osC j΃xd$\ߵC)7\#Ki%;o!=|wsB!m|J\@&ޤGHݒ;لL/?ՌejDF ^tj:7Zx1cS7`tq{ m/#zY,r=:e' mF)+H8PJujtḏoI󺭎ۑq̢ł,&n\}W];muAp֎K^T!5T++}nG #_Ss0l>R';Iz/#?~Gz/swnKdd m!KЩr[,۰vcuS!jǎ#]y^Esɯ!۰NYMyfǖ݋`㋱< l{�ICʆ%ZB}R˞AJ7kQtO`S \uw_x%2,É uOQ١;gh9&Nя슏%w920[:$DpMٶD8]X W #jxiZ]w[&8%Fɨ(@mOESGgř6ȿ۸,%^X,2a=?Wfć/t@d|%djx9ۊoUƭHt)xuĖXpjM'ȮD?Վ4%3ҤDm ddN?/sѕ_I=kecUH?'c4we#c[/dپRAfSނbm ,7Yr=_6w5q͋!c^I'*`![R^ N.L:Ns3} WVu|h< x!#JUMML=_]1ix J2_CM] ѕIǐFtW0_mr{9uj£I<CO.'4sg5H?9Zģ%A\;;CN*:?sp (9p5n4r| !gCĕ6ٵc|`*m)<\P\ bmgH0^λmo0"zpH3-A (O#uH}W#Cf9s vq69Uûn"5! 4JH}FV v| 2ކUU/S 0~FmEх@xLj$uVkxVi¿_dl\e8 K8HW]\@io܏GyUAF5 %"iƙ٠Z;w*ːrW;w3tfV";7ub 3<9d:ddPg>RO@^g ړ/hۋh|Y=\lJbT*�oNejHK7xufR:Ï2dR(,%*w`d'KNS3Zq?7T I ZsK#gnoQ s[Wd5ͫ'1߲ǫrC'u=x;d(]YDrco/76FA>A <wBx!Z98<'V9ⷀ|d%2wK#99C n6R]JH EMx]m'[\( 8XnSJD>?I2ϺM^:%fқYMk-s>')<pb"۵wڜOgW} iޖ, x']z9ؓ^k;졬Lz]mKS1@t#~]1b€)W>Qb"}d$x/ln<=9-f3N;4A|P6qXʝb?٢:c|c)[y e7YL[w!]tCY]kw�?v> hvfHA"ǏN vȱ�O`zc}*hs|z!WˏXdڵ 6vĿ~3.f=�_՞ 5._͎;iJ;)l_W[ )8j$ɍ Gu['82i'+oX8QH>+l97#eH_ṿ~:KssuhI½һf ýw'+h.a4{my7ZۣZ Ϊyy|fjk+2\_~ _ׯ3tSp9)]A&m0sSxrT3 #Y=03)yg 3$)gϒ>oUۈA/.Av<sc !z`TfWI}b/ܵ_{_:oo(]vYdX ]v$ y;?do3c Z#<[h Wc] "K+'2+ے\2sv w?̓afxN"?EeZH"i \ZEo-rغA33H>9w#j!; ;PJhO<4tx׋ܤঅ %=2HZÀ戛Ǻw}V"1,N~[%vA}�\q+=XN꯾?~ $'NRP,ʢlJ)Ԍ?vtԊϒ? SjTFrgp0xZ}d0(!B\1i/d^N[9;҆ Vqnp3$|Us^FAc3glч ;N} "ծ} r{;'!ӡx2N/XJ3/~B~| "而3~%/Ho#&B[%ȴk^Kl7^ܿ9RwNFtȭi^EBY0WAz0O9+E$l.傌}(+>d>{#cV< 2~A\\P.1a$i%ïzw_�@G_|/W25*ϛ:ȐF$Wv|@z@`0W,|z8H[$s@6 [pJBC6d5}Ȉ9ud#>q'lU>R\k}ž\y6~ |x]UX,=7&<6mצNFnܫ6&ɟ*`TJu2"OM^|?9i;& 7J^C|m]b\u(=BbfÆI`TߝW E^c/9'8m ɅߣOs^ài]șV5 #6HL�!}HSpb,Y~,h#˪2NMn*nVoV3EhgZ_cnB֌uOu$~i!w]yk 9_."5SވɗWMGLz6f=N0ur|o>1#%yHw\U]L­r7!5Yaz -㿱G Ǖ/ɋ1ɇ@ Mzp)2C>ť"kҚdߌqxٿtӅ&60z"#XOYW?ްz䴞?J@^tNUWt[t>W&9Ge]f;;�7yةg '__>0zb Pqy],8!^;ݞYXX@_%ojW/ܡ?,`}<mc6"kUDGν=3=vRYC+@4/Ԝ/g/>Lmf,.U1 x{G<[F)d8d6۾Mo"sp;,NEkt=@nvd>\!7>b'["JX@9xL-mfQᆉH9r_ .=T#=i|J'K$W^Eۋed#eW¯ <1 x! ]up_ѿOF8(ٺOaD{j'PjMnŤjC{QVGZܛ=#u2nml]J=>]snQ@) }Fa]gkL~:~hC+ko g/6[gcd;J򊴸}~].ڊqyߑ\=FzaU^?dV}ST|@8-^͋N"G?.-=~U>**K�MKPcԸ.y'נ{1c<__gbwuN\e/AmMe9iɩIN Eogc65YܴL|[P+LunJ7@x֕ }|9"%&.GT!vҗBT!3Sk'W.ɜ<kMxYH-4 y^v%!cȜZ.boT^$\ 8 Oo\ K`~I‰wF%fSd?w-FIg0l+jN~8cY m#}<x1bz-ʸIu/B-4+�hy'9Ց^8rvY NڟG"~rWwϛ&~Oz\s>c#ڷ@j,l2'y1{օ�R3GȪy{oT|Bƻȴu!c%j#;U=CKsP„Rk/Tm|Dqْp=(tz je99>)EKEXfA>{ȭXU4 JVe7 ]"d{`^_m Nd,ܹ VZ*#^-A#Kq=L"q-jDɉu꽺HNj.]{[5+eq()Y`2;W/;nm61k"se%.9L UsGH{- UcUEn1-9-UȱbhSYҖC@$0Ky[4\w)‡ɼWA7 o)s[ub/Nc q3-+ {@\w_ Q{k^sUNP:=fa4{5s ii%?+k "{H(_mkG5!@m2' @eǑ}f~aŻ}g[]57ƀihbU;\:iIA渪 4>p*Puw~d}ːu3;9>]D I݌ /bs0XsҖ~Utң*UdZF %/|AX;_$d}KK10Jǧ,wx6%ɏ֞CZldҒW/A4kJԪ@$}qRuHmdNGJ9r*nΑ!sng7EF6^\H9크yn]ROh~pW`bSiJ=gT2kXֹ�+Y*GU<UXμDy}'5<{ |.e5:4&88Ry_JίG;vbD]v74ӏ& U`7ILv~5pрu#^mGǠmI/鶻!3QMК~rb0{RJ3>Ɠ7N8Vs G:eA9'gœ+9F~yo":I(I8S~WyuߕIn-D-'_Gt0'^q##Ļچ CjO3ev7E:%Mkqdv72BݜkA x}/uAE2f[w�DCa H<F\jԳ*f.R^dՀKzҞ'_;2Yy3,KEfʱE(n bJ^A+j/~؇[= ˍ ,C/C99g8-H\F|I6xԪͶ0zb HLGzYΞϔ+w@Q=Qz_]ϣ;f DG.GՓ]~"פ_0ffǝ>x:b٦sJe0p{Th/o{ = /v#5 }0?pvsj]NknX \j9r۲_>)RރHBLjt7{-JG3[Ew;�ĖZįr_MeڹR#3\j дqK_l%Yzg3ҕoZrM +o:o:cg>Ms  NLQ`DSs:{w.YEG1/f-2J$me)G Vީeáo]d?Ͳ=T"Zct +@n5(X-day]NkʹcFwA$[Za�]RC5m2_h+p~J;\7#wlo[P"Qm�Bˣ\"sڏ alq -XB߆ z֢0԰}�N>({!+Fzw큐|!]^ꁥs|6Gycaj)IvJ A&*DK%{ウ^"{_9<PR`,¶d"NiVrd,V`c`b "E]Syp 7 Jh0q"ƭUGԣ>a426OO`Yb 9ݫS|e: [$Rg0pQʲˁlR{HW>EH>[)3rc{̵򬺯YR" ^3n&J 9^WD 8<uaROSЃ_r3/>IO=mt5T A0f$q7ha^ @P sǜޏ?7iD)GJD18dM _ GO[# t<9j7RDm(\)P0$z fo!%kj!+w dNQ(h0["E9rY셊zz}Ewǩ]IlSQc#X3Bl4BQU&"$'j`al_A^&A1n%Bd,=(dDHR)v8FUq;% >ݩ [\ e/;a8(8ٞB(l|Ps  jW"ag-'Y8kP^AH\nt΄i88{\/>/%<绅*Bz/[F/Lԓ.ebɛhxNʷmh";epp4krF\=jW+wQ`GK= Bwr:c=gyċ' &%^ݝdnަ xrOEW.߃CָEn^(ӛ\F(9`d:cG қ'|�UJp4+L۫v"&9/4Jd7ljYxT!-,dr']uI ٣V pOX3|: {zͿ1lqNB,ݶ*cGomC*la0 $XZn0 XQaKD0ܭiÁ�ż!ɌxUKNím8,cyiO+l[gX.yϟ+lE!o {;<P.PCkڨoG a,߷`p11VP?Psw@̸OiJcyRA/Jݶs99- JBzW-#c>iCHp Magi|"__&VvjF/mgԟoF'5yLzj{~'};^}5m[Cd BJ*�9poޝ FCr-BYY!s]%wA:zުy4,U#Y^ -GК,3>P-[8k woՠP]B>c+H!aG t)~_v?l /ak?X(eHƖ#$y*}9u◳DgvRFBrW&7;<mmwڍ,xA7l|e2D(r];ߟG04lo(VMmON 4,>$7bD~˖JGL},9ڄ4 *a#7Dß -sQV<i?CB IBiTwCWP1遽2}e U TVPל9&e{ȢrsM9m33ByCQNh!+q6ݟ_оypʭHHeٻ!a!X-"dApP<B`FX?=a!;ztO~dzOY'XcXl!ig\;BdI50qt[Pݞj8<OGTm/F>3J8[xQLvRؒX=Li%YD(,y>W̥EfwcXWt dtRQA7R!_]�fNI k{tl54qta]%2!YDhOƆ ե!I٩5ǡh:˛~tTF!'Q*`.,ELYNUV-_�O{0:i(Bt$`m hT`Ԋњ^RAr~ הWTӰ~WBVCڪ$Uo?prnh}BmU;Mm-":R$Tz~nFm$*sNpxgsG_Fhرh fCjro9i .Z|$B'Q4;WF_`+4ق0%O!+^S|uybfP1> .îiA,MBn/yN�*pإ-Gv%&z8/]},lt x#>ImU;c>;Wa7R3w ?u0O8ፐX@s ZBqpzNv,ސEOmWSuLz"aO{`eMͬ)m^#Q7r@(\rr6ov[P*u  1׃g+=Y'B2'U3g%B%!9IǸ& ֫Nw."$ kȸzݔ)r I}Cts5]M'ƦQ/]VԆ|QyU6w<&y=_7vF R[;!l8(I\gpsR,k>l უt}7 ĮM*B L[>";2A0ƿrkxک#/J` 1BE9+~ "¦b'[[%B)?|vn(O. @b9k}ԀyN'{78BFB!R8>-`0d`'a$K~GȯPψdh@H~TfNqOEA|NCsiJ*lgi_/55AfliÒd3vn(-s=BIģ1>Qހmf T`7si8 RCHjl)Κ_lPa0y? ڷ?waX8˩M?~ycͱIg8u8u1%aM%W !+c;N8Y=3_G=C%k![FНaDHO:0~.)]ކ}gYcyg͖n,NNMU+ 2ϵ]p}WJ(|P&Cl,$EU֮~AqF\>q2B$=w ] 1fц#_gVV٩Vt ОYsLrL`ewqee.}/6HFH%== 4 {l̗!TDX"u$69OmòpP%]ۯLo]J]8zLBZs?w} pӐ6Ngrw(F)C(ۧr12 fXcZq_?*BH~" 7ʆ𲏣5QyOaDwO)[vv 2pchRaCDc!M(xGcd>B{w!^I덶,<kdž0O]M>ݪ1n 4ȀioҸJpe5BvEO] }$w Nwقw돨BpuUس?Ivw+Z8/OY݄WLb*Aiؙ yO vNS/;+aIs!/g瀐nC(ĬwaO5!gW` 'e kgYTE氳PZr [/h1:iEH+?x d">kF0Ml^SώO0 S9Eh#Zi8w#/S�Յqt1Uc9Bv7*$u޳瑽pHvv ~QBHkFkטʟu:!fF/䠄/Bq1 ' L^#93iWCEB}ODwGM܉i)s6_RjGȱRs|QۯUPg-aaLN\&]mLT~\![_|9 Dij:#?f9A[5!j<)qc!y8e\FύTÉP4ѡC0U%Q.Mif@0:L^قa& skн*{4 뺨_5V!EL(`+I8<z GqsUw LniXݵݐ>D4|PS !۠?5lP}Ť弔)'Wbq(B^|/KqEVXG*n}9kkB{I]Ds_w ̨/?#eh[&ޡLg_LhQOf5z畀hyn CCի!ù&Pnnf#dlP~c{s {]Es9HuBp>q ]pW)Aȳ{Uߨ99fT`L6ԱߒEF}k==B}75ړ)40*BBKV|ݡu _|YTSLlLVf%;Dzz"XAq!`]p !'tykGRnhOιѱz(}bmBH=S J/k{'Bi|.6F9)kME!vaq:awfֵHb%a_<6jN^!{;w<Dnoa1 Fdʼn_q[?!pQ {U !GA_!\9 ֛us3>a;ɋ(h ? +Kp;YqU Fsu9־_[BH"T`q-jڿC0J[^sr #vF8g}S؆L޷nyKz7kBLGSJġd kit5JCB{|�O: +`mD wu v98ҿFpwit6!s?'hk/"4+2f>3W7Q~ʡCw 7Ɉ"Æ yU '8c:ϱ}&̧ '`_p0hN:}] 3�׳s>RL/5 $|XɅGI+ N+PjO"n[B23v!n7Y@03't6ǻ/P}n!Qfp Enf!G a_yў, mE0S'X碽lwNnTMR3flfo}mG`7Sm;\_.?HT%V)3P�llD@%KA.)Xa|Bz m trr>bG+`1}.62^s`!IX,6hChgʷê4dpPv 4GE"$ 6R2�[Zmӧk   ,*7}њOިw(P<4`=O`fgBgj8dy3!q» [GI|Tz JqpN !}Gvp-cGќx^Hǿ=D`:. $n Xd&2JiSUyv/3v!$'rwB^8|)ޤ,7Ty~vE M'3F(2YcZ'+x7Jj+|FΞ(|fǎPA-- R^Ju }f4K#Lͅ::3m ͅx 3q!0 AYCsPl\|TA(r)2y&.rx_krWP T|(q:X)՟_CSjGZIS+[n4ALߋG;к{\7qV&>]σ$ITK}{M}NuLTAe_Cד1+t/?Pp[}!?A2~am=N:O*W ⅅ?h1/چ ьQWDԽ4k| ws>޳<@H%oh=7EHD> wyq28Sz�VKQЇ>.\pM G}y_|^&!$&Wo69ެ:{MD}mB'p@:w{Cvn(m1|48"WH~ p$ +VcikUt~ϙO\(>>F4@Hg E`L*B.%}rcmJsEq"BAg7O}+L 7LD0Io3)z+(/[C:Z \l܇E3[©=?[iR=6>Z('io{|*ƻpdm*!u!%g7ڄe/vz㰣&Y-B?B.s]ά$`0=u8q ]UgxФEkIk(O4׭3#W*r5^Cgv/IEh_o>P.BSxk1@a:o^!՗.},QQdE ʕvkoⓎuq|8,tc!=&i!w>tuu#{ WG`~:k[NL:*7]I|G{˲L_鏺!dŕ5L#qoO&=ݫ^y8; O1\Iq16ئ8{( zyPײQ"[S;2RyCO.뎻SFq9vu*K#'gL';i~H2ظJp~cS-f<(S1ɤ`g'l::!Nyeg\ @Xq8ِ] CHl2.ULi,a97^z[קL.Ύ7jޠ%a+%P_͈x~j!u{ˌrtѫF]~w0dzWI9Bﰧs_JB)Q0TOR"d&7]C[Z8 ~U BmrU>v)q}N뜬Q ď$p݌G^xF{ s/aՇ"'B^먡`(!Q_~PJ@rRQjѢ~vf%x=n8BXi!]^EH?V0dKcCq;7C岷yWa,q- D)|BuY)Zpx3M*_,1rE֙�4XW5Pnu|G%BI} =?ܐAϻX9!ma4UEHz"K{aIp}HhzzڴdRF.}RPUSAwxNԋz8([NٍC(xWsGh/q^GHzV R--Y[?xJ[ eHúÔjklE=jn!bR)jnp/,![hmÁb%w5sW.?B}GTn(ғ݅[c=-O0=߂S`{E|+4'Y* =]V4G @ɺIMQB^jd/- G) 'rیiJZI%cRNڡ]q9z=v۲F-!p6hoZ*55[ Bdԍٻ{t3Rn__Q70B[P]rjL+E۰& RS!?Isl4R=|7䚓 \fj_!$NY"y_WR|1f3ZfSoYԏԾmpaV~+% |~!%1Bog !"t1"%BevO3fO BS|B!ERz#A|hV%$S:PEF #4-ۗsDYtKLRX8Z s֔jEA YbSt!ЃP\a}Q׍o&h4[3]@j xN.�%V\EeUؓ7eSF,wΡ.:E) a:lq!Ba7BIӠptwul!M*~iz} *=]r !& #j&$1!}8-犐,RΆsۃsj0:헞zV/m,Brެ'>?! B{P سQ)Ϩ"$\WRƴKEiT\^%Wy&s~\);qAa'CS]BZ3C&!qz6B?DB>W&ƆPW,ODȞ]E%%يi}PKt'ZsKEzPbÎXT(@o8Buw Bzm;C蹇TP.#Sԏ#MOP?T$_c&4>m s!d&/.#ΜHFȵh6J#t?邐 5$<̫ͩaT:z8mDoee'W1nC�`*zھc4"rڽW,"毴R;wB]^do!2x&/qeI? !=DhHi-|b3YT3Bh.~nCHF)i" 9_U`^>Bf-vLB&fhE0 ];"peƔާGϓ]%ܼм\}0fp\oٞeC磀zQ2~Ѣ=Ku ykMG6g͗eJ{"7gl9|zҎ_Ur5@H:D0CgkQ:M8 4TZE(?J1V%+!p]/}Z Q{iEIգpI BJoT`+WQ!Bq,LJPtF\'BRa%ߍP^knŐ#4A7_e}@yv>>@Px{G!BFd,V!T*SRL(?8s7G TSP0s,rXB+B֩7(wFIƕKhtOC(O"ᄂHX8Pu/7cZ- %Qhmm#7BnI7B^a*:W4l1P6Y= 7W!$NeyUlB6d{$!c{y;GYc4'凐F !4w|Hd19!:s2ƭz BQ!#%$#t"C"JwETo"ǵ^#/n"O8fe<L|*r 0 T,{X)\uhO;0<Wf #TN;0 #͙Q ̤�${ʳI+qLE{0)5,cۂ. q2}#?̐&gۇBaW$P$rK]SD-sRjh[b* yZ.&>*9?`N@N1Ou/Tv3ڞ|;[ !P ?&0?Gd@a% XyRE(0CBcI`Zzo0hexÒxVIXNs,>Јv�[{0%p Y5`ONs WÄ3UR( 7w ygG\*xMfl^C㩹24ID(t?YoB.cHazۺ N:\qo4Rp01=TcꕵxVO˜2[n�c?@ Ibwee/?x[Y?xW0*9 &\ЛS*aַg �8 c3;\aÐڠ}2E"˵?emovH,)%LA*.H& 0-CrfIr\k;wp; $fDg4aLU9M R�t\2"X|gFW,lשP("3vBKӜ;E%5g}!/WaIۿ0ň˃ۗo !5,/Q[x Ӥ;CnRk>f$z<Z πR|rJ)|;`zdz/kK0c>4r8WAi{6{X\mIӰ1/~{ag%<'#TVF àCm61|j,uLMAf\'0#i[i6mSpGKY*IN<%/fs18~+`ϕxWCʣL_o.F:onT1-? 3*dئ@vd1ҏs13]`r'+ۯ"n/kT{4$saT/?+P],=\-pG=,s]Ϭ)” #*}B}i#1!;춷LBeYKF$Ll͂ca]κL#y:s0yd%p}ʇFy0 kDC08a&̳a1,I@ LwJ ^XT0s_^>ӳ ^<}`Vɡ1#0r  ): ?NI SԙI^]&w ga6ĝޫ#LͷNÀP3/BP %)uF>zG$Rudz4~qXwsQ$M/Qy|nOO)<8`6?`|,ڡP7=plDy3<z}ەW%xY$/4蘿5M4>Ы_P;v̓u;U W04 Y疤cǰw) 4[L`Nga&MLveH�aeHp80;!&\a sg!r<|w~Az}7 KM? `r+ t}"_sW3 ,[ٸ_}Y_hZn Tegv6 t~>ciS%_ۮzB%d%I^<04Zy>ϙp$ﭯNgac kʣ `*>S9 Y�a\C;E< hIw?]рDgZ>\(D0DpSc s 3MdR`yT e_j7`tG|%4|UX`}6aF/`4,7(cTNf/a{#Rjb]EKYLKb�Ul~Ê Q*Co 5a#Ft)HEbXG ~ޣ|qg炉;B=P6'?vM`�pG\N| B~/5ئ*Wa{/t{sȽ ibqoD_Ed+x`x0>re<^]s!2뗟Ti;PQ01l0pvX5Я_}2m0ȍ"GKKKgqO7�n\!'$t Ӆ~K`xHӹ:4;x>dӟ^8l@ћѤVl bװ/ - THӧ5o␞OEzi #$SAdի@PY,{®/'` x9a".Y K޳Pޭ0|_FaI r"XT�IOPB D">Y/gXS0􍡀oh:wS՜$پ-@s`5Igo}azGJ,3& hT$%U @ dm(UWۑُ/>hrro0}2G&E;ÀJu_-T_Aޅ}1PLnT 6!k@[;e^ykPKi1|6B H!K/MeS1r2&v MN?9 bv@ {8Px"0f-!9)\6hsb=Z@$YޢF(Sss.~E9Xn=g-a69 Lϫ^ʂ--G?+4KjQV*p^'L^)mlܬF,*ipf,2$'!96$x} ܣ0wxi.eԴ@q2geDqƞj.8: CGk|1X4# 40? g۳ʟ_ jW-P4M\¯>0< {=� 0yB~ !u6L]k]gK[;KtjM>orww:NAԷqU }lퟛEq08d& cZ%9mĿ>qhvuʁ?"!^ 1;AP0~Gt+njP-e1Nzc H:%zߟ!#4T+8KIѼ:kͲxo55BQH-a%O9p'!!'܇buT<\PBa76`;)(};?0!z)%L&+N âo-)h&Js v!ɪ,y(mA̦dNo/:=lU�W `ô|^~ Ŝy}a)K݀VeU~hx)KxJVf(6~@lsIZVˍ~bVZ^^ 0UoV#9yv"[0m"FF$t]DƐU ]P>&WrY⋊5$X-Ѐ{o+ K>eL>晛~L> ^ҀO9 eVtgom!/Y͘.,a:+�:i"ea|R1P5dS_A˞Ooe=zb؟ 01tJU4&"+{ZH,m{ Zҗ+'a$OqV>fh~ 2Ix _qC]%ڗ`YA-ɽ# -*g e~/3@jPdQ=jF[!Xq<'VOfAr=~RDOb;PeF[􌡀|2<CDXq1zb J@b}?m ݬZy"J<ޮT3о [fnWN ٍWˢp%ol>]j9Mo<B?yiE ]Wd Z;݀?{$1wCa]BFd2X?s3zDt2R�wTnq^;St.2o> W [CO%ѣH2W"v+݂ zzZ+Ba h5;c,f)G0%FCō=F{oPeъ 1~yP oZt(�XHb24T{(ԭ#j?%Ҫ//m�374.P<!2o`<ӻ"jˏa&lܮˎG}гA~#Cpw㵟Oμj-=t /Y2>+PY-Pn˅挪nI8w^8^X$Aj~kQyLp_ȾfAy9QQn{@\880GJ; Ĭ3|h^q5 ԕ\:Li|kwmuKМ?yIZ͙ok]E.xREݹ`(4 qvw@-T2WWŁp;G}wHÄ(Qk|:>7{Zd %bͿחlEBa-Hu7'zJ$熔T9gL MTFO3.2 : MI7.`R$LM̥9C<nV�|*o0z&B\{UsƉSm܋P=hoEఏԒ$&*9؛_䕞駰C_ 2M7#S/?vm<^ 5=oYh9K J*e.br siMC٤ 6ѿcNݰԇ&]E{`z}'2 w=Dӹw6䫀o~W]|+9'a"`u,N_P bC^`Ӱ9,ۍ'An} w,­H'V*Jrs]a ۤ K@ꭳؿ Mn#ĀXtm+/5Oaa!`�I)ӾPy*=U ,F&|leOr}-~u6[Jo K`k3zjCE"k/NkIo?0Bćs2ԱR Sjh<craLXCUմ &醴,aM>}+:�e nдj \}%G91W&fA<eW^u6;~i~kM =$/kZ vYdCn*%/=�\v07r=w M�B.@cu 1i9 I0.POD6[K%㠀I->tFD85 Rrzw)e#b$0ētDKdԥKPs^{gFHSa0SB�Z5t`(|)ګAԟt+f-).@8viY?@`!u6q29d쑄{ݳ3x f8H bzT3n@dZqAi'tGf,@1H9qWa^ 8̍/un2˭U*{kJ ?^6):b|PE&yپȣ{%h+oқY.49 )'/,ޫte9Q*!E o &57!+X\}#Zd�tGӨ?O9Tݮ<0u `(;R:L@u=%#$t.g*E5:OZ+Ҵ*h8d^p|>Nji6[`;'c9heeU?qP@,1ii*Z_)%P8[ XN@h, �cA|ͺ@{v!$ޚchLyɼ܃Wc%~cq}x(ˡ^MUcM Ե""ud ZX+sH :}ip/3=eT]?S({�Da +<~P:۾۸h9KK4~@4GһRp۸J%==_Yhp|*~J¨oRhx&s7g>DLػC1aP^3"hғ9OOvϾ¤D60I;sJBmcFe'0VLvZ# B?�59Ki=Pb[}p|9*O;D[ asPNV<&w VBDaֺ ,S68N3|1.pUnFWBqbpG}\T ,b{nţ t\빥`Qh,hr-;./T} OYvz Br-5oSYO$ ~A~+%J/ kX𸕝.WL%62 OU7f5&P}O?D5#CcJtz3tgfP:& �?׫ mm'׏,rfrxÿZ P[ f DN?|(1! Y<ZUC=w{*Tؽ OS^v5׀O)R*,Pm/ 2tFN &.?(+iO/.i@M@8>d*yAyfsL&ĝrd9й6~/[mu"ww1\t ͲbJig`7I: p=,,wQ69AJG8}*Fўe4x}v`RL>܎"X Ӌs0Ʒz<#Q?VIT¬?~X% g*C}l9Zx΅-L.9*q{YӲ`v&/Ca jl1䩪[ AM㖻b.0pnW]~+,kV�Eg5DAâ!9Ot�ʭD:Fwֆ$-qm*wR/˽2v`mGfܙW_Ri[擈Yi2\W$@!H' l64dC*ʯh(Z xS̨4Q?}Y&JN%LNT\Tk Y -y@iZNn!v4frY}e7N $݃8N }sK͛`cYM@x~Xx3Si0l]DUonϧ;ES׺_�}XlI΂ڟ^kR.dG򭫟Ӕ+wJar#dn`vq8J@ʏQz~,|<9d$F:�3:;|Y[BL:HTD@rXV.ܺ}́0)6 S]6P<5x -dΤ4pw7sD/B:܎ 4LRʈ^8Lp:Ba<ArL4oYC~iEC_E} CQT q.w|)PGpיI)j8)n.@xƶ--/Bk/ǚAcs= g- fEQ`РnDVDt3%�r5 hUJ֠.< wXb⦜ jz̀" y}GB!kmQp,jT8L+oL8ʓ=?QT1d`"ǽĕd 9@)40v"T:m? x7]0N*c'>�!pҩtڜ4 4'cYK'g%MKo#֩  :%(% ݻE@{r#(yoШ7Pө gIaFA/eJUZC!_;|Te 'n=$0Ɠ' Xu,<m95mht@RB}gwTYX 9{T."sSU\zS;\Eo l?NbU]X  < gmqҭChMnTAI�o&`wUaTQ3AͅMaꕠ!V (gy1O4XJrSpr}�;KQsG(u(oֱ]K%ðiLN2ٟ�wx_0(ZX ecԈ0Qb$_gC@ӝG!b^66j-Bأ7(eMm>-YQhuTITŏ0GX+ϬxC0:?B}V` %g aaywy 3I/] e?^[<0tdl# Z l PaS {gQ:�X|;79U+>I؛ˍ2l`?Xm՟{8-F OSa:Kvk=μ%uqXWИFs/Xu-]7_ T%^#dOI!'P<w6v@V0a@'Lf?+b~_:YWfϲt�.e͹&(e+aXh18cyf@}:,FTBf9G:PV0FsT nGkq5 s�8S2&h.X:b�'4]kS ;ćA=/ݥy<qj`R| YtA}Q|қ?>qI àUNX>ؐ 9ng綆E;!ogx3,_҈bS 3I?[{>X8�vvFQG6 ҷd7>yE Hw0l,O}BOm_ w )8~Iu�B67^BxoUσcTC)�ju;dpKW[{4?^y]/P\$>$kh˱+U<QDNh;=.gNs ۛvc2a۪CL&έIrO\CCZL}9"MksAᣌ/=0<KuRnY:Y Ts|;+ :q4m.=Ë@жk<鼄kp 1^t2HAaye/x>\%i7`<'sWD'x"nAv옖p , (^7߁p]<ddRՀƼ79RaJ꓃y4 ωPaدh�eyE0o+sQr\(Po>9 oEn:�1# 4Ҕ6@1B?QD 1ci(Y2OuWTơ/!pc^EG3(n~OKMWWݨ ?우;,Q} qFw-S�&_.J~h?ٌS@cߘoDfE#:*7^{\lN̘z$,+0xbç60rfxL8!>Jfo ܼڠX{"(gm+aQdc ,<~vZ3T [ /9 d2`Q<'#҃0ϸ;&̇BKhO}X| iUQO.Ri߇40,A`tۿt:ȟDȋLS6r{ter&ȦEefSQ0L)Ip,B 5pbc 9>aݪ}% X"Ha(JsFAi+maCd^Wj υ7O<ސ.I /`qokGHI4M^/֥&~~XHÔ̯eRiPͻ `zzIt+Lzu\ +[rA@oCWwzao�ut/f hWH hRZjB{Ȓ/t @$ /NJ^r jo^uk`0ҏ:0)ѕ l㾸Ci= k)TG+](x3? A\-o2T4L<Huͻ _tմ{||HƵK*,;&R+0l4oca p%Fu>BL!0}]b E['(;T$0I nF @0N~j0ƪ>H1#ʺI`LYmh3)F0kX!_guh14FJ4`=' Fri oD åC0?.g5c6hJnzeA>N,n)ئk0BIߖ0o#탖_Zy\w e^?Ȥ}چ^{MM61Z⟁wA<Rp.\R4be@8Sx#yGq{*v>_YwhN k2m7[%ԱC�?L6+5m ’]aWP,�F<JťtaM'u'w. =O #&+=r fZ> U@"h6 ӊ=_| EyC׈+]bq S Sik_} :a?xW skI LY_I=uw\z}&H6afhJ L7A~.]d;X߅DSz ~<9 Da$]l_"kƜjN 0ixBR4L6ΣO0,݅*{~=s4[�3zh_[ ^mO}.=^C_`̔JN`^2n[/\XTQVo(UӀpOBYt[ϰ}k 9ɦW,UwNu45Q⮯@y՗<eqoDnQk +k/G{O69t"U 4C(?1R N{a@ IiFA*Y@m,i{C;+;U(p'o CJd\ >4],6?m7[-ۧ  �Q}mĸ ?>;K1f8e!-wg:<W)߰6]ĥ7aQ=?[)@ߔ͓QB{3vyoɕ=1?sH9v zCoGh,"iz;|'Z/ᣡˁT6gv'ٔ0nz=FIT4_`_\4LlYyAS`2ꓶfzazE-zjZZ߼\@Z''ڦKaŷ10|A "LX69(fB@1(iX9]Ѵ.0!%tukJ r@gM˼` lJB/~uQ* uKA#0դ čJ *_)O׎y:'"ӯCTF }F(n0|¶-t_ie> )gL�r &-X !WFƪH"(&mSKQ06sxW{V 8 C~",1?> j%LjVA li^p"RDryAI uiqROM|m rvy|2>xg '7uξ/CsW'kCQ 2{4yDؠvWz| ۽,q qjm[u'VBnKq,poR,E\N, _K!PfU9nѯ|QB24,Ս8|pks=X_6h#x)OELf45S-_WX ,ÜK=* 7W�>C: w哧8=SWΞ0I[5duKAONzd/h[Hb[4S;>gm[i&!.IZ<d<s>k̞h<wd# mzjf�r-:3a1%SIAb e�7U'SZ_E aL1A :tFOB>L?/Kl+G4=d+`58 $zjh)XQAV~HKQhq~O <V!7`RBTT6gDƏ096Zt{7aRl6%8! |^.b՞J">Rd9缿 ̈~+"+8xR/[ʜ3#г&L p!I!Jz ` w[-ȾA?\J:ڽQ:B7߱_܇  Ykw1ѹu'V%LFxh{]vd_:c|Mv<0:[ q U[8~yg-~R c! ؿ`䍐Mn+ QfG{`;"Wh<{J%;'B!Bw ~T|PV:TOn�9+ըN )i'[h9mhR}7>sLМLYj7bVVYX)cP$>nm`ipDݩaȼ*\0=8m_`8Ơc N@ɩY,T;Èӝ'0KuخMK $7ہw&/Eգ5v:̕v �W{  륡Ygщ@{σ]ːXJj] gqD^|S;o8FA݆;ϒenXw/z]WbJi89m1 ̽S)|Fro^d~ M/9+ভHCGmUZ}mѭ'͙;$�rosh2^qºŰ\sry bS{n<6 SRΌBZ&eǯoR+<P1!D_tpX\r6?DW�(cHf>vxipQ̻LcKq1'>n"kQ iKZIW:Ct\ڽl MVN"+˰D|c۷g#-{]ĝK iUz[>m% 4;븤UhW B'(|rXd qy&V| dZJr Lv%^-p۫eXX.04dЭUa) YR�7Hna%쫲= [Ti %L~ݽcK*za-񄺇,@kw'wɄ?mK8X$(W\B P+bFBLTWT,Lz4}cliBץyH#+S_$86f&*T+Q*%Ciս&,b5qkC f,vbCK@Ֆ Ske-duN#HeѠ}m:AҼ_YW{CW-CW?m)mXNnfJ>)/-uaֻ1"L]AՀ.GR1xP]ȹwmaiS5\il} O3o &)ah(d~ Lcl(zO!4wQlZ4 ʱ0mՒwiA腣O37V#*QTjEޑ3P~*y,ݏGhi/ǮPGbiezXʴC`OKCh*:r!^\S{=0}<A:T*gޚ@F9pI/hLqA%(tJ.DǍA=zz83"C%s>xP3z KQد6% 31_ֹ$EĿr<盀p#!H&iUm3 _կn'Ӳ䳨eFԅ/ 6}e@pj<m̕{wUԃڴj|Ť&}qXI O,g)E<L/^PK�b[/W3 xq9?3 L1ͷfm/A{|=y܌Taj9[b'-D`4=߇01x8oȸ/f<+(<\c=۽qwc}Q-^ sAN2pt'7Rex|wYNXUH$ ,$Y䓑$}P%xa|Y5zF"66 $]*D{fsY?6`iIE%}P(& ,{!mJcp_6o_'zak4qX )tQdx5`zwrO$_*^oD:ӕ>V raD*1?b ?D?iZ7(*?-B_,&{~,3Q 5_zќl>̕v*~Ya~k:귖~F2{g\ i8(= y+ οK> \@䉶P{٫Bd)1;K rל7/w%$I p[sʏjSvNj]Y?RO�仞0q$VU"9vaF/;oG|^|k کPm~GP-]%L.B~KJWtK2&N7�+uS @?/V 3}\ԟ5yW+ |Y"%}N,H$޻ndc#tf X>>Ub9@%2gw{b{⿇@xx*EU=/xE- ec{3wFanչ 0ZcSbn|r0xLWz&#K9!r"Z&o�]Ed{LQ_ &rGd!Ƽ(B=7LL>B^_<f_IW~zGg{F=Bpoz}7J~H L@,-&d5I W,rWLٺM:<ȁin:4P?G}?z[ n~:0 "^,ye9_v^iwTή#2ؠ=g-�K8ujɂ^ݰ a 0u'bRy##cgmɐ> 5uZJT̴l\?`g1i }>Ţ$]ySt\TQN3vYV`)[oon(v^\ܿ;/4H>-Kd6̤5n ~.Cc W.tXd΂[b!$xይQt`.zJ@o] yI:>ހ'qZa@I.d$H @?]Ӌ #&=$R4눌j9IQ cN60a,'45W�h\XZ/Òj'�.?Yl&ST<1q6IܞقĚI~es'^3MZX# ;`Er4 ~BMYG'dQf1wɖR#Lw\عr' Y]TGxaJEOԋ"σsk]mX\{'sr*`"pD, ҄/_#,4t-.K/<3/υg~~ӄ~/etf٨~XvfؐF3 D_{ D̥Nle.oWc=ײo0xm1՜i݂N[c=w~߬<o,Mif|<X14S < R~MZ9CT{!_ G#-L9+N%'`[ W k7^ĎV/`R u'Lr#?PsZ?P<O=ݓUy=d\l/)ށ6X)!7V~5 _2 iaԕՓwUbǪ/2Bc @Xp3v[ ꠰VZm%eۯ|!sISSPmrPEvcQ_+=s8sIH+<gT,F+ KF`r+cLO rvB1KƒIX`3I+zpa;<v>^iwʮp+fGH"xE/TH=KmhK*~.?T2[en~jet@س WpóW`cn2߬٭:GQKOP7 HԾO ()fX:v=?· M(.P$d9 ;B Bcf~~΄W�~<e?T9V6BxO<'5$ n}[WWa~~ۋZ>jz/"obr7Lkl[ Cى hTj C~HSa<#!�ãN (Ae; }0|yQ*Gfe#Ȇ ˤgphǘp1Rh9Ew0F7>,}#Q3CE(=r s +}ӁZHY1O7j_;Z~_7ѼL͏Jk0. ;:9�aDK^ b.w ꥥ/�6U6nh>ueG.Bi:X.K @yhG& tGY;#`K<~}8nSo$!ᨯ;ff<;&لi&US)AGx4/ө %s%@_O .b(G3)ٞzKmywʐ} 0AW7篝\>@[pr>*B־@OI+F ^b}ˎj|H'i6XN2U'`/3jQ ޭ 7iaf7ϩoafɟĮƛWpPzE? ;9Կ>0#SӧaVĕۄl(fqne@g @N!*oj 2C Eu0e,0M)9h�[nː di ag\pr&Sp0egӹ4Bm S?XsiR_RBD΋"N `q2Dn}+,t<;N*L ؏)E^- 5|DԤX,:k)n |P4} Y5Z\j1 %) j&!PM~,F =S D>%kЄ`azz([0^΃&4:n+- 26σ.8wLzjrM[cVPN fu\6"N $ fyס&]{ B=ɾhƴȷ曀=q|[3|= Zo{&?uǴHAN O;P2|-~敥/| <&[0¹]!4OɻKYl_}W9�%uܴUWoԪO3L'w~dʰ`)M:`_<Sr3 n͍TQ-Ԧ=S םPOe32G&0{fXg[+o) q컨?4+x $]x`*0ʽ [1V Ļǫ~*B¡7LFw6 $^Y<hiڍxwWw>˜jiLh9U;Aym [agp/:'*�aR D[DS&ӾGS/s2-),Nm}Uk*hoQyzZ, P>CW֡=M'0oC}@ჯ/|Fp�O )4 8;V$7v挂{3 ?jbw˼LimQ@] 5T;W!R_PY]̭EK3J?~z�v֡E_@dTmf>Fk-(~^r tpE}^։ǐs/w\=( f5)Z1[H |{߁*7Sd?kչgodDgT7<m ՟E q!6O<K \Wp>\dRM+Y�nt"~ICB)5*j�h'r4X!qO0Y r϶m9X(ury^&Hm!7(yT024RLCKji` /|clIWrֶ2N:_>\v/sNqt9FmjrsqK.z\v0LM&% ErK4aBEX 8D�LtZ2,gQޅQ'`rj >1;~` ~t9ރ;x?c[|uWs-E�qwk!:Ntcut8.dbhK� ۂRa<$35Q~\a*!yC^X`0*5{<a2[SH|+z~A6@PS蒧xhYȯ+,قUe[Y0WP iոA0@",) .Csd}'60^9|763 M7t-n$@A;G't.+8$_{@XqY!`SQ;0oC- ,͞mJͧo`16&X ItC6V_soFVDԖ/nٿs L@z9Gn#G(M<g Z(?ԟ泅5K)Bh_ Қ~ FƅxÔٻ[[t)PwS=Es t:&~y29RpADտU8%^Ee>L =`9{PzbP 0;\ŖGs"02~U $8[`1zEM-� ټiDwa[>ض펃΢w4PxqM#Dx QBʌ+ٍ+-lJIɠKm!!v&Uhw?fWU(퐐I:nI|瀳\ʱĠ,V<_ͳ@l[g'q1[cxagL>[, /3 Kճ9P&tf~֦Ϣ[ Aڟ<'p*]�e%_+@F2.4YRof I�~$sb{goװo{J?uc?l(aB킁L2O],vFJq ^H;ۑBa,uz](ţױ 2ܽ EeqBCh+[ T=LcO-aq؀ߵHlayWccGNR>x ΁Y eעb:~|0?mK$_ T?~ݳiI RHF?Ҵ:Xo;P"Yٟdm}CK :}8t k5˚d1٭m ) Єb)Yzx ga  G-8�kA K^FA SP'nGL د.7_e]/ (5"oYY1*JQs&ΡzrvsӽyyRu %6^Ͽ`jz4ӭO# Œ+;Mx_ _iG?ȤH�xMU�^8T~|u"<Sidf�SBQtq5all%RIJR!I2h(Z{w93Byssu:~&r#GG=vHcs= Gwm-HjzBC8&&?O̙ml#߱44{úk[^ru@Tjui Bfk!foPf2[P@eU=-�5cjP[Wh+9Z#LK&{=tk׬ze f|_NPnrè䍍4c% aق77B)v=Ձ9chՓVA`4\7CsHXn6T"u7=#z=(n/7U޳iԱVLVmtn D {Yz5n8}y~?j}F \XMڮ7~&&}{בSΣcCA6[rr"tmDV=ehh{+Dr*"`&m D߽o|D]{zS܋mOA^츨ژaȖ=2!gWS7|ū0mf7j$ehIpc%pV}b7,E1xo;S/7~H~^ JIEAيG7b7Ew<?N̅/Mjr*cuX.eQ.+LyXA|V 9;¾N*lpS%Xdo!mgFքlf b ƻaJB!dmV6Y"<<l5 b"n{ɔ nJj�ir{ǵq s(n^kadZj{v=rR\:箮ًm`\Jj-C+9>|HO&S _z^n k$AgWlN+T|vl[;^ݥ_Z1~( bo BK.=+Ao%O/8m+MBAvt'nVڝv+[@zB/҈ڤoXZ!=Y/k7&T;cuޢ)W=Su)2l둟p񘿎 O\;8С640 ,+>>-#ol6n{4Kf+^ɼ7N :So8\WvcjO|ЍG wgJ - 04q.SߜQ|V@Ǐtd4دES-3,AsI"=X9vFMK1*}n ڞP{3#ێ!ORS>DYuoAgmPco#}T~>78UuQFC14ok?= 335(w/H%FOJx?F xb~ EV"оɵQg\gFYm] G2e^HvLo`_{)Ln[R\yvZ%غ;t ^j3›'̤PmuFiiG#hwmJnV(\hK,/nuXr "'tWA(w6&> IX~@ yϡǶ:=)CoF܈B:G@~ ҍ|~k̖,B}^A|V0y")NWٽ'NK,ox-k?Σ=9e  (a5-0ߡ`9K<D#b \=&T2 '}%K%>"n01tְJDCo1 q0 ƶo/=_}fuB8o~J| X̤Ҧ; R?W;B(@#}?\„fPqbD}YJ܁)uFƛ=~̌_V ԍnU{5ٳ>8tb6:/{N]=tdb(M ɜ}e*$r ʗmx|~z'"&P&6gxy[>}.݆a[P'|fy"ɫ=Hj74^O|0dfhM0ti "),Y]qnrqӖ%N_53[`ݺ哈.X<㭣/Xq;|Ii; ͒"Us5>Hn2 \FCC+S16Qy&"_0hG7?DLBl@;y-*::Lؼ>t)ًDnSYK[TJe(i66 <R CWT\!rm } t0&OTȚ]|tj;0 5~+p7|NLo?ܠf${g0{J,#G+Soc[6ED٥^}`*} xw2ʏn%?,a]wn3}Ӻ;| |&rY~9arZL~󝨷Ucl{!Meipyl1VYck^�#:9eay*|ݾfo@0u}ר|,˯4Zg+o_6(=Sԇ `<C[(sӼ2~[?h UDRNs\-3?_ZK3Xnqu x!5=Vf \87A>!N) c Q±xnk7.߭7QȹO"s{W=sEv9gA=!w , Z7qxLTq܅)_6[ۗ)-GFw0/-"nvyۋ mڹl4*h+<~E_-{uۇ<<CG�\.Ii2C.9bZ$PZjy,(7v! |A.OӬxg-r=g-XT+36d ,Zv0OK!-Amr%O˷U`56[LսK~Gb,m@7S6a:sC+XԜ%%ŅS4zĠV-6,tI )R@jڟH=PAgP:I˓΁=q_} Bcw߷*qz# jMQrG<"Svn(y3+Fcz-X_V?ZZES}`KlEom؁>װbm"-^KP@7,apGln=FOH`-?-4R:e?O+cb-L,A_<ixd/#i f+|fFX"?;Zm&#ZNRn,-NC! +e-yI-OV>V!aMa`S_c%S`%騤jQ#�ϚgZ>Ah8bWC"q0xjP bkqs( e{3}S"I`9R+i| ;T/NtO sDw.^tj4(.;miDt^9Ϫ;5[J&Kt˻%`8x6'ّhܞqD~CZ{V>dJ!砄\l|1܎719Jt< Jk 8h8absF;_y4Dؼö,lYCnmQK9OuiWmF%۷3'DC 2dޡ0( 6 OuR0[PD_3z׷#m\wn(-~@FiU^ kjd]fR[Y}`wZ\~w&o8)1' '@7M[YĶ{|OZ s:/Jn;g *vgP#z,&oڮ]v[:[C,ч:~ҝF+zNnvwzLɆ.+rk3%[cl_+?=zD4>``ti^,jQC7E!Y^Ry \jQ|aҠxy& 4m"򻯯yݘDu|̘4:2uFc &-P0[HT/>FJ#G^;ϛȹq2#w̧So{$տm}3m Xzpt[Oi{V t+=Xԝ15Q4.O4)G_XƤot_]Iԉdjñ c U88ds!<K2]  i*AޚKL0<jeh7(gr-s1!|)X: ~?Qz(e/+և?DfobAELmd Q0\\/8T6HGta'#CEV}ɠ)\ DmAۿ7>X_|Q@ZG:|됈ٟ)vTu$ghc8H/\ "rCVS.nk,ܣXJƮÝȊf^Io7vK) lݎ} ;uC(nsaׯ>MpT/;`¦EJk.~_,f{P<E@n-&q RÊ&dc>O`Dq9s?lXS8-"yecnnqd%}SpQY͜Y?ؤ":R~]<jF⭥Kd<0g_8K   3M2޽*<rغh,S~M�k0kJ1PS<"7h>l %EpI@w $w=ANzB MWʯ{S~Y1n H/W1XqE'V|�cXIЋ3Cﷻc7՟?B;[@$,T" bvD7E!%}/6+o;Ɯo9c_3#4=!+Fak)&Ȳۂm׺RyZ^~iōbefPZ\O ?AQx#>c. Gã"dѸ.O`>z;1~Ø0^qt\Y >2G|*Lo.-'b5›le'4cyÊvvn!`uZޕ*]B}+msX#ߴmH1~d+tW/DqegsI֢/X]^.ҧ>W,(f `WyzF_M,fhj&F\XMWvÙePs $aM*}#<<U nص9-^yZ Foz=I^е'z:/K_X~҃ڇZ 'A\g6E~6|ź ,1Ym>9qg}~Puh Gt{;m`z~LM ;99:D1^L=lK.:Ϫn}g:"JJD.OD>ҍׂEgg#sc`{ Q;TYcn} bn1z#~T|h4,mҫex7+ W|~\eҨӍڲ<[.~9.jUy]n]lίAL|CN˦Ss`+7?| 8ۮpO}`.Kũ i0]̸0ܓxWjTȋD'~)n@DvlP׌vkK<6,l%HN[\tgbP 7OYy_==v*B`IBRPNNb \rR %gIM4G9 hՑ{.;kr\WNwMoyNl5b{dl*Jz}睑mO ( gףrTĜn;[.ޱ1CjGZ0ݟ?F>_mV|j ( _hiF qiG8%LV(t|<Ŕ g_|S3#g/hxvD%'[+aPD|(2Q p,:lI0%mB>it' VRYN# _`{*PXsak<2{nҢ$a@ɠe{zB援81)WO_nHķ{abr☸ nH:B=B ?>ķݍ;KZ sE/n-Tc,`tKQH|0}:o `HEwʯ�! *sz '=iAz1".4zp{Z{qT|k@>R pak{Q>rY v Dx!ˈ~~}>"j�yWXB/N^ы Nosj4ӺħcI^?i#Qte1%*w {MZ0)B^/qk<{] 叴}"nR܎-Q`EܯkTD0V_D|\6fby567<te7Kj/#,&4T0Q=(1mw\EFeDXF"{dꢉ">Zնm�Sej…+DwAŞb-_1ə|RG囿5΀*vD":~rS܁>iնohYۮ=Iň&0TGk:}ӷ/|`6�FBnQYt:^-r76k/2 |Ԝ> SA?U `?RF+g@HS6bRC]; IK-A8L~6Z,v,Ug@>mcX#펩.Xҟ+xy;4nZ?.߭a [[09Evx= ՒkMQh2I‚._F߶=M|׿K3^\#cB, اt'G7‡?\z0PW&>1 ӹ~rUCNh5Z[sl=ݳ 3?%e@'W6sj71mS*4k6v|hQ??WNi!z!?+AJۗJyqks6޾ 0/!85HS~ǷByAމ9­ eHij|H_,ZQ QUntm=&sZ $iTcKK]Z)jpFqE 5r薡{'+ǜ3' X֐{>$;uvWEϋoHfj@̫!;zf%25̆A>{|#F7J<6l\7/?^ˇOYpbQ5`_?WL?Q&>fk <ʟy%IVg$GSz'@7WZy:_|0{ zXɋ-[I.]*LUp]"Th7A}b"?L-zI8u|uڃn?o逋$#ٙ66ᴢgzG^-fi$) .Cr(ѾJQRwA}v'\uG>@oc q}겓GWSGӻZ@R[j iZpj=f~ߠ}\*IFY@6Ҍ/ #Kkխ0 ^W-#}aN[1 +OU_ᣭI:@ ֬ B<ϕ`Թx˂|ɘ[@s , ek0TG>4s?zfJtoxﲼnlW+najE^n)_]|'7@Ywk6"/njⷻϿ?DH^NpS h*;le (LF>>]s{, Q;.hNJ8KcxDGc9̦v: |,�{4m]P#MU<`zN W$I=d輕 a 4\DЫCEbHi9=cfb4Zy[A%.`\jt MfmdخF-u'`m{s3}2r?ϵԹb ߡtTf*sjt菿Dv uf,4*ex@qrY�WYt cN `L5KPu`Q:dr%:ku|5*/2'RC6 :i JγHQ^Cc`x7أrZ.^ǏJu`4,M=^Q;4YFbQ+˟ Wy5$%Hv]3\d15yіoF*s `,p'Q/ `ZU޽ gzfEM$د Hz9KA|R�&;#%b~|-8vB T,]C0C_7^`MpH&D0NR_,z 5@Wؓn)?d _?qejX$J`$yUC6QavO7vr$-Q2G:+cxAj o$aFo;be3΁$'5f;jdjUms0<'C/- 5o'(߭3C]~y*_| h{3)_E,щR3/݌r 7ЭC~a{\?Dsq[ oݘDl/ [ s9e\SO]@#t, cKEQ-Pk=/B-y(S vn(\x6 >jW +A&*ؑ>ā*jvH9+~}@o�ptzwJNՍ;s1r@|ͣ% =)N{GG4jwZq* {Ү.Mnmޖ&}g[y|uA_og[rq oicG@ܩ7?<pڄfmA;i,yOw5`ij\)` T,ǔÏJ(;&WLWo)ȕNʹw̋g c%dL2ZZRCfl\lXA/mXaY%@׸1Ζ`٨Z.Y!059ob[ U_\\ËlJĔ90G'. B<,28l>J>;Wg!pp.GbX*qf,붫JJl -ϑz`p"+"ӂ1)8yd?Ӓ]i!t0^Mu/E>;=L*un'B+KlI{ߡs ;J#7_Q# 94Ef m)"ucp~g!2 _3I # N Ee-hZһgGU+Pxֳ_XXZ A_4|!>`}ءkOy-W;F+ a|nSҳ '9{#KvxfH~Zbp0[P4*j|ol =MC ^_ɂʮ(3Gurqd[0MP ɓ镯Y|Aki9FY+m|U2ΨƋeU21>md)[)U],k J/Pѥ3;6 |< fV.e]"ýe0(iztM~<'9/P(^n]'<S)GfM EQL:B-AdTxsC jf[o!,O̟q69Pp tɛS^}EZhEqFU?̿KjP|2W }AIԝv%n_H$%mog1G<' f&'>EO u߳P<Fv$eic7ۿ]uJ jOQMۑ_1@L. m$q;@KJ#/i"93UOcdexN`tӇfdpISx21B9H3:o0\{=ə`}I#ֿo2"ۨvo1m̈́%~8\7RuzKv%{è.(I{ ;]㖽-[ւ9v5(S5K#=gqc,る v*uWncv5[g7V֥40x|6-+K?"̺ľ̎~s_Hٿ2s;:5әWN"Ϫӛ]Q bGƋ//xUC3E㨲;~IQ4oUeEܱM Xo%ŷ+; ELO1Q Di6Ϻ _w9`8)w2 kgy{y;PojPCfWkT ^IpaE+#âd{N8kZkXєQ^Ҟݶj}=$gk o__!K丱I�N} TlbsF^Msd\G Pua|ٻ . ]?>gpca!*> VDk^=.NT?2vhۨ;.*_{DJ~꽽4 -$鞰 ~PE-Kzji$8';5͆cdkÏ^ay3y%tLfM#Ϫ|cJ!\@E}(W7 NMBߧ(ʊ x+$[f󼥘7Ł8C-c}C( 9QO|fF>!t 6^}R߫HRwtxraP8 =+nRlѳ[ێT~㶿 J@ڽ�Z E̿ᓳ|nȷR?//A k2z-5߁q/bӾ\y_"wMS\}�B%_DE Ygyp?4rd>.BLj#KM}2m+G-07|"4W#8X޵ GpO'P`{%rwE(UgvJ4w Ln9Bv '"<4{ΛsɃpAwS '*aDyw ͮ|%/L}19 ]]w43>i7 "ckwYPu^o$;ϝÏjqNOPv=tA̐F|εKY� 䧒?I/h볋_I=f 8;h xyi,b.5(rJpjE$?_IL-]? e05"j}c^O/<-m!HVxޔیQ{ȷޘ Õ-K�'e;o~oa\t3Z{ ϑE *S^țe?~#+o)r;c,z 7[t];rvRk%+n)e!ly`x6տ!rRI;XoOl(&}KЙ[^| _DW�;DCTR v5$D`]K%b.$>;S D_&j~^&^gS $#NG߯dMHk_iLVlWa5`G78IWq5o}1<*W`^'nyn1 :Ӏ<;)G#>DԀBCs$(YooQQݞ`ݐjD*%ЫgDDG.'/z|# e .[/c2!ua_.N0gT֭uf҄X!S\&MֱRbNn9ƷB"iܑ e,:h.`ꈫƮYIxsGBõϮgz%`>& SI5M6b~WL1/'%1OؚL3Ty9 Tr]MCB'gN><Pu5`9+)@BO@;:r4d+mot?(s+ ],ճJA³]a,玚r^犖?v~`|9unt)zEqU*EzNM3gu{PbCrLx$z[Tߑ4O܄.xte%<LaqLa~sԠ~}Mg|Ij#8/5`TPmI&}B7PJY0? P/ց5wky׶10\7>,swhz`?B=O$b`uW“:R]Nʺ'w}XkԿm CH@\N5!s7`o =mM0ya |Z"=z.r</Х?]ʊ?`koG =^| bOk6婯1ᶸ1 {h|_ gIsaꮗ/^/0ۍtG_x`Ȯ@%"o+g(QJ-2KPKc)uviPkxċjA𨒃\kP:)ژ`MYm֚nji:, ć lMF*Yq%y^l(+7Gc}-@ٽ) zsOn2^I̵#7u0oaW% a Ѵrek3"$iWgK@{Is`9~/{3ǰm d�lkΗO!bsN0]SJzOkP$NAQU7Ij,򗍨p$"]?__~PI5Tv 'd"r_Ѷ@3vb <ᔊՀIzw�}Qc@}=:֤+ؗzl}|`l_Lԍ>W|<dU-hGZbD\vJ%3"xXMҕӮN;mx$N !Ty ǯӇ+A)wgڂ#+[^ܑoyKCΰln6hϓ1cKEI.tWUr`_>~cjo'I8IEZ$Ð2�'C_!-s3I\cxrimB>̳`_+Hq|igZEHlAJ;M(,طl]�ˠg0Od 69y}uWUk,]UG2_Mʁ@|ki au~Y.R˄42xr(ckxw2-sB@?; M^wo9jVZ�Kk!Zёӭ0s\ Z3޲ gLQ`˵Cjy+1iq =U/}S"0ɏ_rwFRZљ_:`=[z4j|9"ARv�H&klJ?Yw&hCtŐd< Ǻv6<`+?l~͗7}f7LxD?=ekb9(wkZ\1He+;~"Q`Uk^]X@Ů5IHU?tVßHF$=XBmb|*jNs"}i~JT9{F ,Sxѥ*Fݐ?Cx\,#({}r,nz\:{+xmòӌaHv+(Ү,ۓ /UJy "Rm<:ϔ]Fs7S+XwPAkݑ`١gCl{$VU _?IǂcegRs+.f5_PS>c ֈojM-L0CfY`9&?6=E%.^.BSכom5pR,:8c,׉H+0Wd9CMY0vX$o%tMKđ1BdžwCҐ\uz{9"N^S+\ʏM`ܬOLmYL!~PP=Ƞlѕ]zՕh4@}So'UyǚOsJm' Xuf?g^~c *ӝިRr"H?(-*E9阆>'zQj{[XU.2M%:j?GTK>y j)- =;ݦua^] S{h+|zYԝvUkcU.`gQwUem3}A$rYn-tg>by>zvVZ G@pff(*x %KԶ #/n� CkT->3%~}Կ7l$t ?t<J_g|D? 'lzy_hSd-/tC[t| \>t/FtyR8$+(}rwy*RJ<4݆|iѤofC1G1u?eNќhCP<3F0r | 4xF?T-iVVL^G �dh|5_gZb\T:v!nQ 1z�Rs!@>=FZ RgΠ/y9A(\/|h V -2"eЈ(f>`{e!ep(C(H?ztQ'`W?OQwfHΪM\ѽ8$/L}.侢} C~ he(D4Rq (*x>ԋCuejGփޤ0 Fnry]1P Iek9l, w -!BV%Ƨޠ,Ea!r^D[kG ^iHN8 ;Oxw+&m>±R: KE\]'ɜQlM|t㙛1̻b<ygDī1FTjEbpopV l^nGna؃UHX$:Jw>?Aֈ~ezہ>󝷟A[I_L5dSK6ǫ"#\w<0Cx$ubCK_t[>8inmcA"wF t܆k-ܗ%~?u^޷S>ϜM9B٠[tw_n7 ܇ Qakx^ƣCcHp릏]Y[VzlZX-da/ cOp&h.;e- QI,JTBܩQAW kTd,5ݍ/T9'|r9{Sq }O:A .�VjJr$~_2Ø EtY:^9 z|_EN*8Ea0Ӑc,uiՔI#nA?є<jb} gXy:^ؑ*@9`$A?7A] ^D ϑ;Nn.pPÌ@ZS ^g+;B.^7ﰍ[s[1r"0"%w5wf3P]/0<Ӟ@\:ȥuV+퐞sHnmȶ]+"١O1YD&sBM5Jt0|9l22 r` ٣߾"@kBRE,N5(  ";5 mN`y~.|܂+-s`9?l[Ѓ9T-%Azĺ*v?R2@{:TqUy@eYРs<@ H}dL Od_,]Q'&`r5'GYOۀ0 >J,ܱ Ge\+l9PfoYf/j_ېuU)~R{ʢ]~˓UQy_q|5H"yQzuX>{&DEo=]ֆꑩgݐea,EnڨroVe׬ݽPpgW X1/D׀9Yp[g( "ӞIS;JϽ̴{y5hCpԗKļ[ 0�VљIt%0>{:F+fDdks+֊'4N.w 5HK w ).o _~ Q'74Bڟ*_DX>K{5RPw.ZJ†̺~tl J&`_ol9DҽwPn3jw5MՄ>w\O GkW0=:&ՏzT?]y'!sg΍>vj#)nZTǼw|4W]V[8c^5_ޝš渕+Y�:?�|ҩ`>tJռ,`4**Y'/XS c%&vƕQIIJnd:1t` )�M;_crkׂCC^AgȖeQC n;dQs'70;#L漱(BZ awEnCH|&n>y |=tV4@*e{n'D:YZgdA䄷1t.7| ;*K/ 4? A-=᯷W !mCo bJMY<D© aj| 12-GIeɨ,"-&:d KU#wһ }8 X3ȐoMMHx8^V<J=y~,mω\fq:ǹTxR[:یP^ܛ뮌/z?fb^%u4C͆."j>EvL,m-.k+G^ؘaj]ad[O'i++3P«Do8yuOJu@2tlӯ,SڽoKɱSEίY3چ)'"@M]2P{7m�yׁ1K\%hoU؁1n澼ßx4k@?9S^<aPyJsvX$rcֶh\l["l|ee0{yj8mt_h.#;xtrtT}1úff\ʿ~+vZd0~3xv8_ş~'|`;4A*+t|[0ۺ~Z˜TP*ܚFW `m<¬f(L%/lS )3hd b/,|J;# ͑1K#>]gu ѧk{]"Gw3Xnk}H9 +-_w!)0׾ZO% (nr{ȣ`'7pt濱LX 7H3"Zȷ ]3?϶EP.;EZ1oɄd@v06-E(gU`[&k9P<?Xz6_]me֡; W֒1R}o&(#ww@ .?Cõ7+ϒSB釵U`V~/&r_s ŔV{>f\gTmx2KNeF" zp"ug{ͦTcޅy}@>^im*1a7"QR)`ږRxV`DZoEN;),_*F{1\fd ?QzcNE`O>Ђ\r>5^jg>:L-jDЇ{Obd(XZX}_ô]>~_tXg2.qm|ѳ <UrXNl1lѧkl`v; qnSe g}}\rc_GZDxh6+w.hN%(GpBwefRߴ|SKtg rG/W kN+*v,�C~Kz a@5jǎQmNbĴTza* ʢg袁P^ G{[CⓇhq_IQ/#Rv)>d~#L)4qj|UcX_i2/Gtb0 ~~J?H߉KpܮjP>͖?>c b(S|5[x9K7<*=MǮCq] 7k;Zvc}%Lh|.GsNAlz.zl/s ?/Pr7|xZj⒇UXUٽ]2{~@e?Q.dl[RA S94:'d|1Ts?NGMFu#^I bi><#g.Ǔ:iB|іY'c˝?cubk d"\tM#+иN7b3yA!],{cTsW4_*�OC l7:J>,rb#0{c"0)w1dn)uCnh-Rd\_0[{J0#יL hdv[6 0~#/iW9bbN#ω'_*G=$q<"M牾ǃ۬%_zRS;r_0T<> 嗜DBVnYb>ǩw>31qg!.ا8$ "iź~A˲.w> +7ףW>كf=HtHu#sS^i"G}Aꖠ=Ϗ�yآW3 yօ]Y@Qd$F n(&2~,NiAc9TzVѮ\T'؅9/ChPoʺԳ@ΚW;),G8ũK5֯rGž[=u=+ͶtQ2h(8WU-Z֭nX ʳ[PZ}:#KUP%32` X#ȿ/jD>ӗOVe8/΁Kcrȁk`v9 i 4?E}=s3>xAsAErO0EaAJdO4u*-w "-J7HAFŹ6-HTryb56O>(5]ynw7qse �W9~K~pT%h~ziЊ,uJ+@/bCUD8!s̬p bj+ 0 e[ZvA`@EP<(V4*W5#Uiya= O"!5ӱ(Z~t\K.CJ{u8u81Ou _\'S!}O7P.w~s&*k\kßkuÖ;jʋ F\Uɖc@"i=.a=3y@If5ٳz`}CrJx=}KG9nUo7r(w(HVuT3b٫qL?Y W}o3X\7'^FW,,/%8W^6$q`bݱ`[+OVNI'rf \)~D“9P~M,h`&w2G1|yUM&RorD֠Ǿ?9JkuÝĢ]V\EG^2bQM~LxkOzT ҴT [-r<[")Yq2ʭtӵ/cP^-L<QCWe*Aʳ. Z{�6>De|>;ӃRxJ 'AP_?5K h 7 _`PH 0e5c1g6Z dlDݰc_VA#uS}5 QOπ91K%H:ԏĎ-`h,&K~Xs<,#`ӏ86J1֛IKBm`ƌ<hBhArk`k>4qPkRY* FԵ>zhK~w#E`yι^p{IPZ ڏ/})jLټ'U )) G}9hv!xuKV-vfM;>.Zi[&xkc1F 2 aԭgQ~Xq�BKMpo w=掦fk/tܲ [4>KDf6jiMY vc.(hӅM`D F<nD ~:;AGZ4 N8U~Ʊ$[ט|&$g*ݥUM;Mr&d-1?Q}s#GA7%lwIŧ<Vuna#Z2F}Ƴ`rt%ՃEgU3 f<Ҵt>W2A`܉=Rst(}?{x#;6e)U:M{ytvh>!e /LʏR E6@c+8ޅ= NMKzr1;deEw0τWqc` h6 ːݴ Ǖ~.k tuQ T(n�FXRl�^]嚄HrrY/al}TmboЌ?[d=W -A c�S2,j%|Bjj흦,5{59 tڰc)90:/֛~Y7MG@E88r|KdIś fFHk4z٬oHB;գ>|¥}e Yϸ~ RjD CYZxOeҼk[?bѮ뾟)H=0%t}n`۴kmw:bvݱV$ؾ jBE,r$&@:#ԖHY-( Y i`v'|EkeGc4Kr!SGg8 [_8 z\//zޟB0>2-!jvJ<R_9ک ?q 1,Pz6'wT)$.XD4MP7{B�M׻H{:\S+c0pVb`vtLʑ{ɯVHv~~Q 5텢'P{-ziԎxM`\U13W+d>VxTuiq|>f7Gplg&Y vpd>Y$IGSP“CW~4'}:N{\ՄS$>e:<`8+CLE t' Yc]ضK>t(㶬cmtz\FFWC2|A)vYR8b$1_Q/] m%c1$hPw'`=6N\.A SYW+]liՊz|yn<:D#uCS kE[.<rd%^if@n IKB?9ґ'oꑠwЦHPn$?|(|E#~kW-{y Ikwc0o+? _�tG@O޴Y_EI1i\ֺϣ`P`Ǹw_.!аqn"x4v16;3m1le cm7u5^ftW6V\^w^V&b62c/'?XVMetrH[m*F?AMc2Ӆc.*aM\7(i3'Poմ&I_58u`J e$OMWj^7C `J sfw '=c1G8!g{�k܇RA.45NO5 Y`73_Fxp5S'e.kv |XJTsȲ| W%,lgT >?/Uiʴ*[>Q�v;y !a4ύn�cqḙ DЋ }~ao?qmR ̤1['1H=N~ 3Ut/߶.1WtJ>C˴E-CZ-܏6!uEoIZ S7o͌ixU 4+ƔֿSdP)W1Y =_@_ S ZϪDFϋ5h]4#n]xG )Op_:RG+0^rܵFm%s\\Xsr<Z][`|ɎuYf Z_SL|o Yj:$f\U ec;R%J OBtDH;J+<sg|[~(5]/?ǝht\ w9U6}G` ;\o Y7+&ckQPC؍= 6;iV-* +1/#i*Em):}B vT]Tihe;'P𡉇-h6aY OR*mUja`ը 3+E[vcAg~МN ן W/M䬵�u}[V+IP\kPRjy?&3IH=,n6;S][k䞿yȧuNEZ3cx2ַ,  .M`?jDm#z"=G>W5:,>͋n5P%EGm".Y le2h)vJ,) y,yKk#\@;Ь݅^V10(-il3.>s}H#sh50"}L0rw,/zQIk]Uŗܡmt6D \y1j+RHStōKNK�Kα`?K*m.;wZpd|xek:[[7Ņv)2Nx`{P V\:s+C@aOB "'AsΕg?v@z-")~<5Wd,Hb3_u*O:Fo@36[:͞t '3>B{vρà o!˯\w"WP{41fA:C/0w E#:J;|{v<RV]0D]ͰirʜwFfXFΤnh�;z6~L]m͛ܫ>ZtiUO /#?_x^�a (|J^U.sz|-r0^ꉣ#`Mٱ3(RǦ.Tu<e;7S&l#6kmCQ>FSq"GAy@w5LDeo!=i Z[AZ. X_}e֜<'2M;wKjބ;Xէg-wmIC##'˚4U3[{!Vt@q4@~c'`,UI{, ). }<,zw->+QmXqz+ȧ̮e[|п,Tvf `K~$겉Hٞ h5 Ňe*q9>9d &[!$Q'* 'bYu /-GU޽kPz3f6308įWGC[/"yt;hm B>-*MV_z;6 pŸ+:197^夹6Q2zA:4bDnV =ogu \XS ]jaї{b~'v?,oA˧OѬrGm\(0ju]M w -1\11$? egacefH{5tzSN,K #[(.}Wr?[ysKZR5HXkc@g3"pSɨ˸)dq;7== ʭM4޹`k'n׽%Lc5I~" ` VKmd wѿI9C7/(q#p4D|(T^X_9أh2PVLz;ʢ80r͕-jQt8X+oxWfފ gd-X9nrAc?nv/cLNs0L| JMmoC R G\sk[kp |\|HFz#JQֹv8>}YYB}mMCe];gXS5ݦbV!w4�kV-]W~# ?DszgWD݋ Sڃ7a a֡ͥ(OWaD=o 5u:ǾFaHW(:I˶oݹ io,!q wJcA^k]g\[tzdH%~l-ᡝ s;5 oS 泉/AaeDRc\ů@y~S= 5_7}"o(p5[_(H&0HE].q .O\C5)r1֐> z'<ϛo,8.6[9)P?=8O׈ (|JA _?Y$!_05ӡK oo迺~URψIlQJDž()v׃RO1ch_ȕ`\;W 8;%ʬt8%S A8@buy`ja+ÓCu?6{e?2h-a{|P^$.i#&GѯZ8}./v^擃(V>9O1y߮nJl Q鼅 /ҜyS׵wE{t6~AHG / rL#bЦ`Жۜ/?"SB[t][uo6~5Co޶;h(FxLE0QZ ]=ܾel@*)% 6@)c%~E=.U5ܯ) +"<ysQ/y)3_MàyQV#&u]S8eA'XU9ԾFw 3hf8jbrxO$s?ЧeVύ̑qMk/PfB_E=؇_ƐA.X &8C]P':=|Yjղh26 < shR(Ҫ{ Ҍ^ <Z Cgl109>>fq/Ez}g;h 7 }STj]o9. GOi^.Q^ZP|D*#"TC#鳘9a'w) |م{__ƇA` ~#xl7A <C :ve7.׿6͏޽5"_q-P's�ccP;?VrVХ6g!U}A%}!ѮW]PqՃ`8Zz S T)~9f7Ɓr{`@i;1N9_Kh2Q~mdǾ]> v́! ʹNU.!&|i~Y/Rof߇=0FuSgٴyKݭ$ xP#6$qr`#4of/800 tU*aLUHM;G-usWnFDW}Qs�OT |O Zy7xSAnQ6eק^i81xb( E]cpo=JT֒3{ړ%os6 Ħ $֕F%R E*ff! mvBiN= oIPsjzxXv}rV麣_N}+Uuʌ'K%. ?z5pT Ԍ h[u.K3,\B lðZCqL&0Ir!wQK';C+]{ ~43&>֭+@۴j\u89\l:9]L7%{gO$ @-D_MOPʰūxeh?J> <;W5B_9:Yk@Q0~ M\Œ O, q+Z8 YV˗P{_"&9;6 &2+{t* E.dԚ^V \Db[)U=XZ, n1zw`ILnJ&2ԇ"/ZA<f{\_"MFP&!-yo6kGjyk>=) .N Xҏ{tG >k$h</ HljE>ۈzJFpg֏'0'dt?3&r.^jݡZ2)jmhTyK6ȁs-ln1iOdi)<Ma<(T}FE>Evw r;S$J>%!Yr%`n+\"�^wkwFS2j~"ubY*uዐ vʩ(8dC堬lH Ֆ"Nk Jg*\m2x;#[0?47摓EIDl{_uݒʳyi@uE1] nf>hTagMq`<vs* l(- ƛC*K'ݎg?Pe|,F}eV�kh0B>I =sbC0>7}+M~!'3KJ4 :ӑV/gre%LSzlU= mhͲvkܠ2;2~eL]SOT>%p&*X 撂 Bw@>A# %#HHRL>= (y( .[*1VӇ~]VǑ?_tO+rSOK;%|pѭA}}cP<ֿ{i6hl }:Ċg!{S4F=%2lEU[yFj߈4Am*bVHM}ߟfFQH0ڏg@^"1¿}Z _gM-E?QCbfQi}/i>o:)I}+%lWXj ފ*S Y`WҵX:Xˍ,"fś ߔՐu?[aۋ* zQӷ(^̓V}<)(;&eqc|_ieu, yܸj.Xu+ؒC?OZRqc�lW22JuqfaT~gkƺ[<?ۀYv "'6I|97gV5m^;xOkxMJ^,T_:5 zgEwj%.߿vUQxёzdn(߼}?NJ;\2j�rSPﶋ׵e,DmRbH }j;_vgncgPL*><oHl Z38<A3f`*]o kZVZQg$4$57N0omJKmur g5ocdZ݂w4\阬C&e5 MMj<w?H(@P R/G%#cD|8¿8]-ZZH9k^ ֥KcerE;Tm *Hgv+@{LwA ٱnG`69H/딢Bn[3Tj]b\$fډiܵ&:̈]oZm}RZ0,>]o+96k[!EibZ(l!r<m}�FW ]B`VϵoTmgEkF?H}_x[ ϭkA#6 Z9[2M& 7{д_Q&X`{sB#q2/OY5O(}Wqe#TܟXtesC7IXڑր%'%CmwW=</X }eSv|I55X96cҤ犱 [.᝹ y0tkD/,-<'lj{A5 ( xԈ\~ rWkEx)d3Zڔm/u~\mKsͩ6Nְ]lQ*"VUbnjvǢ~;m"+ Ѝq_ \]ylȱ`;Lsm7B|5:& L&33vۡv&hxM-` DfM`.*w˲.xܒ/^l.&Ȑi,~w[| f/09q6G(J#c܁( EɮW"CPA+roOqs*+G(m1~ty+͌�þ߆稾^F3ܑHMN0-\*AP.6BYeMt azu.ɾ)վ]@rk8]=rq)o!Kax:oi^(ZL<ђ{++c@<3< FS<7jEN+F4r^a<.Һ@:3xPPܾH¾[ٴ;zk$%7(->?x;؆~,U ֕F=-mոRb P:H{`jJ]F[d\ɪ;ɇ { FMϻ0i;}+}SKRmyzg7m#旱 &S}o_);7R@ͭq*=߁jYU¤[swL,m zty Z_SrZ-O{)7U#|GrIp&&ncA0W_%ގ̣GDjE9(C#8p crO *j0)"DR EȌ2ߤ{9}V٢{~RyT eЁO5@\Y ݚ-\Ays&A<i=RUn!dk'i+۽9#UÛP0q'_ˆ.aS*H`2ϋw^ĈM/3G:cιuk,k9ճ?<CٵaaY2y/('Of_gT~(=i~o5 uoΝE?qF'B?=4x'hu׼|tYN֦`F;D܏ЋX:)|ۦ'"rPVNT Em-c@h @Qz*F+/F}dZD׶{g1{R#?GFC/wqCZ>/vv> 5k$9Z+g}7d0v{-Z_6+Ͽ+$=B*l £@/PtB2u<眿 WȕGc075M[L0StgO"џ(m`d΁R$¯CedS a_tܜD6J/2'|ԌoPrѕg:RIŰPqWpz/Y;#{G:KVhcGpՆ%쩘ZKI&uK2nx~jk[0tA QeU8 "_FFhSU�;@9 D|Dgs}ƍ*㏚c~ՈW*E[5[.'.E;==1YX0{|[NnFo~R(_n[`K=v&0.CT u7ׂ՚(JlY0 TZ?>ΟB]bV*jv]:ʮ|ثG0x&&)NGU)4ڊ8uԈ}Eƭ|??*:gᅀr*U"R]~Hעi[M:;t$ ?^*Au1|GмYϫ Tʲ|6 %^ajĠ!:Ȭ{{i[3HTܴT$r;\FJc.0㟙H] s8cq_PSFy0I&/K1 ;-rJTm#辷)#Lޅ`|xH]TuƏ]Z@-�[`^RBvJG۸{5-~:ZѯKA |9ZC5Pzd2Ѵ)%8i{AjrT {{ʠ|-צ'$=s?ՙR0pQ6J_||IjQuDCֈsUAsd~iN(X4]:8.D%f"bU(ZӾPpF\s.V=rGƆ5 /+O>]`6 L`|/l.<4G?7h`ThroKQ9kZܶ_^G\ҍ3/}g:#dGzi4\mL ~MZ=T<Kbh" yg@=|Ծ3;@*9bȃ۰(_,"KϠv5{-+(@鏠1V} a6u>|!H0.(׀vkh:w%�[5[BG]/5TLnߵEy.w b[*l ИY9 {2_CIo GY+PNߏ!Ҳ#KI1fyO]GhFbn>QC"Un߁gzo|S(>_X5�s|vb9}^Dud^'Mx ;Jj tnh4иf]AU ]f{հ9ݒ &SX*}UunC}3`T7[]Ahѿhܑ/ Zg L=:6@^VySd~!Ag1`c~g>3f~?aPe#;Zi*Tv^9 fs"ᱞv`UI=1q?,5&A/um6&r"kR^Lg}/,k )\ڸtэ:RfD?`<lo ^Eףp[ΪcRx_hc JlH:U@0kf.WLQMRՅv];1oϛ؊jfvIl?7 ''Z*GQ`;5[1[D$(Jo8]([.uP-+ikQ1Mw 7NN_DT@=.-c.= HA21;afs; ]hωdf*UEv h նhT5yWPS Nzƫ6!};yYI?2 P@K:!0D˕1\ \58<zףL) Bk(yT9 0^OμGj[S*M<0zDHQ}#wRJP-ۗ ZVLTR}/Q:|LȨq}G3n8jL{s9S$OkBEph4(w^b?%#7e`n\aZWAٙ8~UWC܊A-VOCt]Jh7X\\3۩M(>)v'(_O\zF`":_R gnD\EY:~y=tZ\8Pe'U(i~TKJNؿ珽YgݵK`q^g,YI7FDϖH<9i'Y6}`ɷ^(&sv̟\td=y*|1*p Zc,D%F;rQgXAcDGcO}f>^ݎH^GC(67;"c] Oohk/u-o3s{*n<�fI|NЪm(v(5޹ .+kj)TyLz9}Kk@{/ikxoXkuql[Ds5&}6s$/1q_f=vscDǼ,ˏߨVbCɐ+(QmVmԚ?]3u^F@ߚ\ŏ,$6I4Ei,,/[SA*}φL m6&z?wq)5ݺ^u[.0qW{u:XݨZ- c/S.XG< jG"۹g=woxY鉠*_xu[ :⟎9jr}04Yܺ@q,D1Օ=| U;"~-)woK>{\Ͷ`柏PPØ#i-e~Q|)|@^]?1`|橥<H+ӨYo;f܎?]gTnk=skdσqc~dTՕU"̕ **^\+zʥ,+[Y�} z�2۪2r]moʞF񣷬(^F wt^yTSgl5|Vo`PdCYA4#ze&@>a \zkS=YއS@SmFD6˩:=k??WK.ȟ~C1sټ`=hx*CK[P Q9]5E:X 8 MwD5׶n<qG#l< U% ^IoHwrG^<=UyH}Cri?֠yWUjN˺ȧێ~ݠ CFa;~ d-|4^i%9A-MbE9P N)s)#^7m)mli7f%Ym WC>|S _;Ylqk|$1ui%Ɠ bAy$rc 7ԑ͝_Fc<<O5jnL!!6d}Y &p>8m.>8'+%C>@ԤY}+g*&Hh4Rڹms#& ͉k1kX{BǛ@}]u)`^*:lLY@_oT^GMMn X">Akz/澏ouTr0&RLϫ>Q%$/jP;6 zf 0-ML0TV>y+2í_m%_6-c-3EhJ~Z ?qZ"+T5Q}_cowIb1?<t =KKe80P0u睔Hik~!qLCG@YJM*%W@Q{HeUrivqܿk&r FbdQV sג̉~uuמ /ւ `%mu MA汵6\n ytej1g^HwNp[;K \a r.ʟݨ &q$J1G_{[]/TQj-EEpE)0x[.qGEem _Kc `KR/H#Z 7 Vߓ*l5Q`;X7e?Ft{–D&<;Xb;2%!䗱ǺtG^{|G|ѯruw[ގ[RX~<(z'({w6c,oJKz.mT�h;-$|T]?@M5Vs&\E5=Oy6*&YvjoI4_Hʭđ-s\w;CA w+MQ!znK0[9Ȭ(Il8BC1Za0_9Uz t9݃vн}oݼsM 422_9=}j Xx|72 Z?UFM<a-Fw:]VU0 ܖh%x;^;:`Pg+rf0*Nl=迗X!j\| s֢r}yO! MQa<?_ nes/X4 Lp#M.wZ+= rF*!Izؗh)Q|sZ+I1mJ3{,[kp�߼ c'u@gJIGV/o^tQD\8jrO,nĉ$)0+u/W9 nՙL.z" 龽٘~`%L'j3_n2ۃ{>Ģ S^,!L{w;^47[ɖ?Vq{h5V`,X<qw>CW.Tګ|FA=lH Ͳ*h#T~ɺX OJH$}i6A=J L0- <0.{-ɞ 2p|C?YcuT_2e r46ڠʃD'{Ԯ U`)x UY<?T.p<ElxO`-WQ߭E5~9qh>tI4C! '2Wb\y;N6'1PPT vG^<1ov"#2AЋYQGɹv K^HIY;0~DubH^e X6!w(roXd=wߚ }Y(}|&<SvX%l s 5Z};tyWʪ̖:e1 ߽ufS3c|wߟ@~2-ѷ\s\\smϭV_Z\,g~߈r[-ƺ(2zݴEB?ژ#OWѡQ@=Rپ9g}.gaސzvw X .FR:WeP\Øq:_R FxT j5 bܭ䯒R/sP LP3-}m7rZPɶT98A9}g'm/�IE2@kh}ŵaU> udH {U _du|\_)rbrFL'5PͳSV.=X|*w LokNq)|T eZL.wG} 0jBB1soAcZ([t Yy2@S|l0pܖH#)W#=6!|ͪ]HQ+dsSNl¤e_wW䟿t>Qʾ}c|J=91=_[<@m*JiU:@:]CaUBmVBoO!n|~;HdnEs5X\uv/6ێ4"ܷ5 *$ʽ562`q4wzx]E(ntK߃2y\W<=PϦt{"s?Оo Zl#͘1q}3 ZN\&nhGxC#2]Q@ߓ{cΧwj_11`ϡ"8m rn(̣M P$w.u| 1$ޖ(6j?h;_z`E~p0]Ӵ^<&:'5+vCkPl,OˬrElЀ̬׳*W V /%`T.s\~Qױz7zz:X׽n. S_Drsɯ 3#{1㹸ՉI|ΏcqSkim8ϫv<i`|G3qNc_=ƘzI"|Hp{ R&ֽc@޹y6<SkS%]:їQ1hQ"Ov1 q=*RQKwtvq"-RI9 qWCՉQј 'ނ, {B'ݤIS5E\!!Q y֮f(yW"=#Vɹ S۟[5SX yi Nuc2ؖ]m߁bI cCW}k꾠[nGXY'LZ_p;UsC0wxOT]?6BC-(^m= fP{ZnYН?*Bf׃苘T R~ZYkz }H T NŨ6Ṵ;F.y)PZE9>'r͖=␩9u]w+ND:fDQݫ- jnEA]Pƥ Qٝ+ꔫ/K;j`]{vFwrd Wik^ m먱+ps#@[(ZGQ}*u!Ƈnha k &11:yP̭6I嬘E1,[^&Y'Epõʄ'wԁ`nEi9$Sϲ;. .)3HP8CrCk}ߏ8{_%]^UOx6k!'A[{ьu{B#*^}}f-Fw FijGV3;Z ٦f[Vuj~m|N7 `K }z~o g8oޖa]GЮUYgͲ& /:ȻѵnqY?VCAy=T}{?W+`^]qͼd2u >ztR90!&:JS^ ]sgE40ec˰JBȮ8<^=K2(A*_Q[ /߄6.;M6tuuv}y6Ȉlrn[u<a#'9ɵ埭&Q8y(S*ĪիW ^iP& 4Sn"nM*hEȋ0z$(ҟOa wx,[G #>"EPԗ7^gwsv)L?NM˝C;aDTv>tEeɽ*rPe M?A*\t_Y>;0l?iuʍ4&T=7J5ao U]mXTln@@B枿84++w6R->U8|% ㅽ_^fW^|ɷs̈́zQ|5<}xju#/6: er`Z;vɃly$B}卄O!_R[~, ӆ{ _AO=�C}AhzwJc".k{P0Øo\SHAYoM`]}~8YjQ|n^ ΐA ELwR؟jeDF)CC|Ÿ|9IenCN!yo Y9rClL|g̪gKc|&\/_=?WgJw2hWl}m}q ЗF܂)ٞݪf_OF2CӼcنd]*C׎ٛST+ vG[}M~̯q_Hmy&'y ՃѱExT(ه//f#oӏFwe)o8>H#Cy!|Hd~* Y>ɻq]tKObA% єҁZݥi4m4cʼn(j/WywWvy1bwFn yQs½hݛkXO͖$HkD?n[ۂ֓Ri=71r1n1=vY-E+8dš5`FݼE0d}FzI#/)g teKG;W{Zbvfۥ񨨓E ~=�$gG?MIhS=?벅ςa2ۤ7lqHP;NqDc8}jg_K5<mzÕul?lS]ٱ5BW^4=T<UBES&_bw kiӏb }0;UyᏗ7_mP׌*gPyM Z[GfsM`FA❌U)c<?xZXG9+gÍPwTXM�GjkO|ͦptI=Sy ׁ]o!#˽%|]<"ujt * KI^=%f&) :뭶wmz۶e=5]뙿#cF4 {4ۋ.Hlo7/8ݣjy`܎.<ڥ)^o L~;L/"lr;$N}yu%r:a{uAH6um3ޖbTm}ST/yM(]ʱ#-Mj.DwWߡe*_Aڢ >=|f5e u+F@wRJ(sP]tTs6[G[j8e#]H;UmsY{Vlg0k66߿Ġf90I6ݞsב42`2p!_0ynU3.1vDg˕e\LoB!eh[@0=֬ժAM鱠IV2e!b5zЪPrB=n}gt\.b!@/Oo{@ES;@K~?s=v}Hܡ{􃢒){h]lhS^T@;AXV:_2(xCz_c̩t.⣧Mr_^ӭ2GG 'tV=/e`^4*| i2>kn i 5cCWw}C#ӂ64i6cRRVͽ59.gY^E17#R;/#'ڗb>WIIM=:& MQ;ɔy]4U` dj�K Tm>h!n<9]=|{OAIF: ZDʣ (tEnq+ٿT$NK\SwĵkDN*s!8bd쀳݉ۮp9P#v]OFOKqcbO6UnxsWQx4 S}|KkAsP|sm%¨M(߃O+tYnNCj_$CL*G֫Fl]: hsy\uP)g%lzL+86V.ڽCz7(vו[*dѢd{;VH^b17`|vb 9_Iƀ4t>lCp]e}cȊ͑1GgA1T9_Uq3uh^JI1ş.E6om텻A6J3<Sfr77ה#w:9cnsfC<2*[X[qK0ut$ff(8~,y__ mBg낦M1q<H[4lbL|΃+hSēb{u1\)㴲A{II<^o9*O<uiU6ET1A2IHmt-)1xmE w<J<TŘopnTa?g}G]MϿm`os3tEZ!ǩ>ad,EW0 |tIcEvPB:΢5=_Jl c1!YZ,U)\̻- 6dIjDl7scEY}ٞ29 yJU_bFNȶٻr^c}d._Y�3-c^1қ KzhT΀y8/OxS'~Aݵ  ?/V 9>K(41#_$Q0yK84gG5Vϸ}}b,K'I֨cmUed34 ~_+sܑ6rV#_tj\ՙAm䴸M.;h&oBӶ{ՏʐX,=c̟eS^#[@/;;y{rrzhb =VI1D>Y_ȹRm!Ncl\}5n\z*;8l*ZwOG* =5]F. +3*AJGV^mm9g p|Gp֮׆-oX݃M Uu_c0^q+F>te E}~E!{1l__f~I|�LЕ@$M<7e)}e31ko)VhZyy/WiGbѢl�z< �yH$qJZ)w,-~7rOzǭ tL?$߳(Slۣt%ZMT36d*@ayq, WJt\"E+oH`УZq=&*-Z^#ӳw/ZZw)jn?B!SIʪQtw;GExd?cKsUigk0w~hɂ &MY|yXt(O+PM~k7#3aD H{>S,O1}OIHU ί@ʹG#7wwK97$%a@=&zV;ihE1Snfh&2)DOط)`P)`^cm=PxsQ}ɫ؎f(<f6i̶A2*4.jeNJt5OǦR-UMd).7SuľPp Ƽ@MtHv9d!ێuE0Uگ>' Rx,?\wd 9$3"y(47cN:ȕU'A$aɂ8I nTz}.N:sEFOK1WES_|26EZ1Y6- jzD+; !sKn!h03Ց(_a'XNx[^X܉۟D#/so){fBNUͰ]OVR$dUf9^jᒠt>m6 $v@/%j�'v i@JQ L{M'gņ,I;E!Q}D<B/Rz ˰8 KMs" S@~`UOn+M!r2$oɉB+k||dKc5+*>%l+Σ>Aؕ{O7;b`mzv.= 5~ż Ʃ. 9ʂ1R'ϸv\ekwQ~t7M) ̙}m6ؠـa~ul9[=| UAm؏`mOn8-rtz$~͝J)߁,RVIG%bASī,cubud y0eCN(<) 6X6=^Kym&53MsA^a9thd( Bi;&x(bMğV0@(Y507᧒\ҽCScR&p H"8kק9hB`U$P䐫|YC*)sRL,V;w/f^_MmvGh(y/sMX-Dh_'ԠFv{RkjZ{7I&6aB(A3[_>Uu_@7ϯ]9k4$ ̯^N@M�*?z(cȾzȺ<`xxc<E7~M}~"+#i7kl*AДAF bMKr$ῄsWV~#=iL}03o6ýg4͝@Rot8(hjbgcQ  :ֵ;%~ !rK;X\ͻ&Tc4n54<G^[wF ?_/%uztܪ:=f7n~ &Dt 1?.OvN` %M5/w�7'. ac㐞W8S'X`v79}�Xѣ fͶ*$=[ &Dxw`_%ԆɃyɳPw_AۺAH2qcè4XtnV]6Dա2%qHeƠ^t_c/ Ӭhr+ ;Bki8-@a[z# Uk,1˺o<DPCܿ\yAPphN`+ӫ�rD g5tDŽkMy4;#3Gw oS aePw(/Ԇ. - >aI76ȶ9(³0Pߎ1 کr@>b:*ڀ<O7WbNXdH-uuJ*F`3OP֏e .Y'G8,uGzuf}M ;t 1/neGAeHy#iw8^^ܟ:RgoFPl:mux!G[i% _ .ɡOa(xw݁ԯʽS[w=ȏ@M.{Ce@J6 ѝTо9 x3vV<KxVT/ΪD<BU|>3p8KAʅw'8yb6=S Lf�Snh0.HQS~2낫 'p1|B7|3[7؃5@z?/&?欄>qqRә9`y̸k٠k{7}?0阃E<}u߉|P/}LD/`8|+AZ*>Ѭ9͘=~qc0`F6$YtW;"ۖm 22xqoӽB:nU5~7hle3$F0}Y`$^Z2{؎i~9&|6.g,\OS<k~݊;nQ=ɥŶT[n8n#Hެk.σ*S8H#>&G4OP?<HYEltz0TO W1dIJ UnޅķbZtJu4qj8}g"FNrmuT#ʬ+k@l�X]GntcghVZk#A]o3#~hhّ$OG-¢7Lryy>+^q걄1X"vW-6A_RELuqDg+uB RWHƜ\ݚsy̧֞Y'<tx6cˌ儹 o)=8BG暭SA{P9@㷫J=WQ4WxEOo B( z֙0g']Ci=۞$7[2%aҀҟ?ISɨJ-[;F¿Cj05Uy)?Oc|ߦK 1϶SjEd{X>+=o"wWsIZT8C򘡂x4>j{fCfm5('Fo7'}�)Q(Aq]4ϝ0jE倕fJ谀1Rػq1cm?J,&y {w@:,램MqLYnf_wiƃ\.q9,p v~NOt;Fe ̬$jV֏x%S\:/>bKX=AԆKfsF 0; v֭ud0[,oʓ= 3x o-ʃ?u]R.}4-%u.r!? zE9@ޝ=;˻07y\(3TM~U GS`poc0*bm*B3 ۇ -ʟDV^WZ�eRvdvA0'F3ufxn %RnapY~ʚ+}̛e_`; (4Mk¤e48z9iavd2}YL3 {oBLםc^ j*?WwiSĎ6DkۘJ$p_scpAdҙX܁ɢb_ 2︇T!@ѣLWcP`r+ےgY5<}5޵QWcw20^>q#t~?zXD<m+K [BSH~_|?47m0&jIsп4l mYs6;qi�rFg4wt}:πKeD{g4%#_j>W[vi&Zd.2A1CV8@7I�/~v6zb`~p#JdfywA3۩~rR8W W�4[)y&4jEzO�LL^cYxp4pCjr{yhj77aVŎe!yf*T۰>/(h~pV`ۗaTN_*RLKOӚn/':r N>\m%#!4~XN^|;G#1+lLysv4Nd+cnhFD]P)m^.P Q? 6\ MVVDI-(_ʎR g ~rFL~sڽҘn yfYȀocPİ~}^X'`@f'CR1->hSyh3(يJh/;ϥEے/Q_~Z բoBï~[g&jL-#)bKaޭ%Lkp2=S$6h /+u3 ~#<d#+)1�6?|y{YcӐ})*[]l }͋&+Ж gDlcN<2; HÃD1~R@3zs0l\03e-m\; c̖iǡg@Tz+ކowsPmL{ՁԁczizƒpwE_B' .LWzW'jlm1D?jǼd0h_�{,f|mA~ѱS0*W K7Kv+ER (;Uus`>bjb0wd4xqDZJ\]wgbd*?>`J 1)resc}0psH>ǘbJR*l͟iʶ`j9*][#fDyϛAYdTw9;nDiH~P~_CȦ_[dU[Q@0g0uϺ̫P!Wh>ѣq/&2F i"rmG|R&^'ZQzEd2_Y}s%mnE/6H#`kwƣ|N-]Ҧ}6ޞda=?1w!'Q:LBCI9־Ob9Vrf(1ۯZnb'oQq<T 4M9WY=湻"Bp^.#R'OK E6j6~m,HܗX zPzfyl"Ck|{Pv7AJ ),V[DnlT3AqF/V:#\L‡a�%!.4~>ݲV7:ڀ"SP*n2&�HC{|]W lB -n9L7z9 0^R Zުv/_<?~:P+ {.E)cU:[?!e!)e'#Lj37|t%0W|{5pHw:JbF V^A^'mb q鑲9'}0u6xclN+Qi$Tf= _(4 EcFp3TdY s`pWTwD$caZu/<>}]l~'ޫ8"oï4qG"d~BrbBR-qV[IľFǸxy6vt/Wߴ*ˏ] ;u-U@>BB?1DVu5Qd8 d'O1srv|ֹi9]Vhp]`k0"Ȝ`-;6 @E9Wo9g߾2@ϒ[uQ)g%ݛyʴA\:uũMPic$F=)8i,ͽ 9iARsDžQeǀ(hחrAmE.;cA/1t!UV5elAv!ZR޷.u69= cw.qBʋ �ʦYbN}F̆eUA}}S0V4^ٶiCfŘ\_6!3QPWו9Ɖs,D~ߓ٠ts|8bz\Ȏ b^=B`-R~7|bW$wxn>ҜdO* ھܞ;#Pߴo8 I+*-Yn p5Kh=pQT3m~ªTIR:iԩ  ]/sGn(f~w&Cv›g G'0B2Z!ӁnyDŌcMR9$f~ JY,;L7G'�9KT/ݱS�3TQS_3k5cA9;_5,̊5 {kǪEn/Ltgto P.{ J(r~0XɾޯSA '*U 7@B|[ZtA 0CFÅQ 2myދͶWdbN]?^u?90W#rzstrUaxꀸImϨ/Y`$|r=W/ݘEk<J^O^9rikPz^KT!I$K'x /ZK{ɋ6]ZQgWP \E@⛛ƃH;= OBv�s6a2[J>L/֚!ݎlVjJ+5hV-} 4WaguD@~tAGmlwEB_!;]n|d[~kc4g xezv룛7U@1K J֭`JjuOoF hRgxQj;ÏnvIPx_`n2WFOlT à #gw%'Yyh o?td-m>/QAD:ҿcc4@ڒs;// =p݄WFt(qLw1ۊ"AVz߆n-#g- 77mGa z{)3I|sU^<WtOja'J:c2Qug=³ ^|9}k%@}3Y awAW͚X7q!(td*Xk >K:`hqP&:vݬYq0qjЭ_Ƙը^9Nm`kI9dO9nSzl?yQXm4"X2DߡG~ǎ`p74/#N ?IKI^1i)`*{+SQo8&r :ɇ%`JT70ޔr?]!|F0 |F]ߍp #7n HO!mC~;(l-Hܞ0qن7ܘNTt<I,{w=*MKhcwXpނ}So IÃLZ߿r|+3{Q4zZ]ATHTČhAs.(jydJ"/hmwv=d@ś Xcc@qL>'z_`ZMY̳Y>2X0XW~=.Nx^cuAI!kN˫cb$dT=?TbDpb 4�ȃ,- 1/aIIt ݠ=\`Ѡ"uܱgM>4L_w<&,1euC]2 ZQno-2W_[JEKS0/8Zƽ/~Dv0 SyN!e`d̻ݘ/ujDn -64�Jɝw[ベgJPhu]!.0y˦YEV-5\yĢV\AR𓎁Iʆn[Q� Ė17iM0˛`֋Vc8)FHnLM["1(028C j?h U^7j3 y;b wd6q]flU4l3ޕt?"/)G)! k (J&6`W1ɯC; oH$]FtF* Z>Q%2&#Zh2uYr#HO~鵛tvo%r9vi1SN3T^_]zH0[/7uoë7 D/n"B{F57FT'_e(1 >Q{{+ dc48ɡmMŏ0B?!V jߝU.@ߑC.Guۍu\<9V }AD5sX[\e^`ꋶDŽ]=LՉAs~D mv)÷ g/GaeSI^~)P eʏEU)=Tm_=gp, a̽y WxP#Lқ؆FWZz;t| { TgCl(>PWZFxk1C~tu pL-YO[Iov-ʿ<չο'Y{1 i;vt%zBC?{�"Rmoc.VCjDr$zp e[dn0~_| )টDyǃSEiEՆݛRv9ʰO @: 0OԵuG߲6!-d0n?tj%r~wз_g`uxPVD=a%M$I Ԝj蛤aň~S O|O8׃#;AͶ'd9J_tXAqq\1:FpѐfF( \IisB̋@pM?`'q,<4[ |_2 JFYG|>b)^NfDŽ5ۂi:k7.q%:r8<cr~{=b-^jY~z|wt%'a* ힻeRZ`O0֪ȍ(Tx%uX'rz,k"6Sd -@6\9+ZZ%d< ) ktmO#2ѡvsn6ngmBm`y7#킕 6 ="l2>\zѥ`&{vW] HO~#+rbܽZB[>Ӈ+[(2W i{<jbjs O\_<2|}Q8 u eN1KTԚi&ʛ6W}SƞTɇ2 EY]'0ֳI8~ip�o  p&1{P~YHSVM/NJ+>b* kl/}KP灾bgcTTYǍ* ?F!Ad<)4i&6a<BG8 b1qO63@h˕hBG(|]7υutR썔1gFU8=罏.'~QYwѯ6A?\o$*7�mPbzDΫv9!'n~C LsΔBs)RYL* !rvd슴̆@u>F8HN b7*c%g5\0>%%byΏ^ +3sV_tKƎi ;%zfXe{ j:{;UfW*bt7KovUycPpWm0U4YPpb@O,ؾ&Z]˲vP[RhKEt6+sa򓤎OFw:[W17\ǧ7Øk+eH|.P%'Q)\ 0mi'EpC79KD;iA#T1Y߯ºS^+O0Qq|t$5ha:2dqIO#ιu'^v~fq,CBe?nkx?=@Esv_O{1\o.\]@??Rmbf HᑁzλBa%G >ҀO1;'+g ץW,-.A?c.~2Bwo`y b]t~c8ZF~6y}ůʦyZ"'_b̖G7PCR|-}h5C?vEf&<(χ~[_?""Zo>1f ck,dҞ\avZ _ebxGܧgV+')]GsqU_J2`Q5M:K “+Gx_3sOE@+<(αǔ;dOcrtfMb3y@ǽcR0<?u27fѪ{0S}Cn=+*e&h.Xk\u\Gvu;j.m30Ek%jTqS}UH8'N(}Op_"7( C\"^o'v$ Vt[F\PwTUn<NLDj"%pIP] 9UP?w,Wy5JHYؓ Z;0$2jpGF(>v|itUs'2Dzi{]{K~p8 ,M DsEǸC[xEUtbRx30s u{Ά>T.Q 8U'V|ab_f@5oYC|Ui* qEO2]sOn_M'CݭTPBCh~$rm{.̎.|< m66th_fG'%zL=5{N`b| u f!(]:@zw+{A9FFxZXϖBd5^#vY&ASjvn,\Duwav8: <5}rL; bʘ ̟H>J'ֱS/ނy+ok=/Da["+QXR4q3; dߏ8D6G3Nk/G_UuHhB?<cO#r6@$\=G`h1kLhuWF{zLeF܉S0w: kNJ#,4yxA7Ow"ck$(<Յb'_+n $oGc'{&9Ū\L^"/(aECQ#tP'W_AmzFĬ2/]>,Ѝg[.Sp<qY.!N"7^}+M^ݒ&|fEfހ<i껦#_AWb=/M@w~ovA>0Y$?1:ggvI/Ǭ; zK&b FzsB@N1{~>ecMcKףhI#}_J]չJ,YP{bP;\Tq~hnҁ7V&C [FCZՠ8{4K8Ku.Z26r{\q\%|%ΉMv*N._뼁ɗN:3`T%~ ڭV2Oz.>(-e?�Ko "u/N;s%+38 _`l�Oο(ꫮӝBEA~*f@m>ri<+߷_bRUw<(m-Z0!VTʡ? r�F{n[Ç1t@$ɝ&WGaUJUJU:x?Pu3q %苷 ,2wTe~ŅT W&&"疺 (/+AՔY=(N88}أwUQa<(YEJ-ԙm\S\n ȹł<o0_W@0̽w'jWhlpg(g=심�ז3~@}[&q0mzVOWP/VŖ9�k屽"3yd$OO9C?iZ0䁻__?V s `v;us^+!j&S :Z̙ =x$+ao &0 ŽZwۚ|kpW_^l❼51e&;3UIr@ͨ9[J\7P>Z,e h>t H/wn2_N)FG̮:,c.PpH26P3Z[6v 9}]ڂA0}G>p.m[04ƍ8çٙ/˝?G˳Ko @9G#렅X_g^̀PNy>NyOwcJ$BB o.y[pLk2fUrhՅp(bJ;r$1e++O#bq5RIb~?һDOCv󿠇DMe?!_hyZ檇(vv+�Yys_8sӅqJtdVfDش?.#eJyW>4Xgm^1QgQdzR~P9AHQz4U?nߞϠ<5߽H"oGs{rJjW9@\.[9p 5 #I`4ʚvm}g ׉%;6C ɳ>4ȱ<IבOOZ~u{JEνatdE\۠iǾxe%)U u׎C\T�8ݮUN;5o{FO1緱5Ȯz!nf)Ϛw Xǜo˗P]9aO#:;V{VG�£%F3QrS1Ԗ\A>bϯm <9EjU&+)U]r~`re"8JW93N;`b;Ovۀ6IL< ]Osō ~T]\$ mʖJ)x3?L?n0.'JSjcDta۸ /׹ߦ amw3#كrcl.hR^�e%Qw@6&usle}`P4կ<�]'B(`ʯ{6 |]EmGOa~{쇁 Oȭ8JxŲ`HUҳAߤзo/R+zY0vUDYO\k%m;tm:(`|O+,1[d 1!ɩEx̾҆nX?gU5h:TF ~j8,Y /$!8rX)̳]%̚׼�^H&YeR9чW-g@T JF η om#<8Hlkw`Y5.>0f~9)c "5iQjl_2ކb)rKZ@}8=%_Z%1Ha;Wˬ`AξX@'( $٠cz k7G$ԭuA6RO̧=f<ϖhyWr|�<fȅ _ւ;Ъ?TgF0i]:~�rN\SuP<ŋ9bz\;m?Ѧd~$_Ban4г<G $=m\AG4UzBD9a&bAxov}wo##1/<Vt2sjum[m>O Ը:֕b!_^% Dhx_.*6N,l gڃt|HFf6we,/,n^]{A 'F?CK9~,>ZS&.c5 ~ߎڎc&S�V."?/)w#GSe^0kGJJ֡|sͻ(`,(j @߽skV k*{V c~A0,Yd&W }Atô UM[)qO%3Д#54 |pH60>;Fmn{?ȶf7|MY"gFȾ7 (<Ww1{dIrT]T P|,+#8<:ݞʼn:֍g1G>Y[yIs^V=0ٶ)u׻^bY~!ZMl/jK(!;i a"<!o`�r0Ǚx"Hp0&K\/>^)"v0v{1Y%?4O|yةG?ÉRE5_A/##ÄLx5QEa"$^mD9xK6ĕmzF,ƹ?L_3Ayo'mt/^w�:41Ƅ- /;<ڧOHr힛@;Nv.;bg@jϵ>%¸45ED>ypw3gNly\@0j;ځi(lWhQ>ߐ?}1Rpaw>e-Kf0P0dW]O+~v:H<?ύs]Y+ק0S[{! 2P p۹FrA &wR0vX}یTP t$FP7M݁Ay.l5^Xf9^]퓧&lh87ѳ/6}ژHﴍ-Pr%b“@K{І7 K3o\! Zzjr%{Ow0LI=32cuw Փlj}SCh了&2:Vr+, Mzh>{ hߧs Vo*G+0#'xm8,.85*hdbvVgWO  ;#uKs,Oh.YbO ”fK0Oݨ%z}`FK4X6729R[DHV? P|qٲ2z!gR1%dͶMuVJ] SׯM %ĄHjVИ(M}EV>pq~ A̓оAW6+e*`Yxמ`xAs}cήxP`iL`Hc k)E:W8 :+U<-_Vg*ܞK?Р%c.t0N9r n4P?PL v )XJ ߩfat?|#sO[afyxm|d:wnuo}{@oz�f(#N _N[vxXob 1LLMVc0"bR0}_Um 14;6OD N:7dTO{'sy݊Q#ыۯ^w~ .]z4-a'/nx>ZO58a}[5FyiB>0GU|/ןeŝe~".;*췗nBFA-jވc))zӹǣ"bno!v\/?q ?snT_=/ú`L(ưKv hK*lY]{"ijo<<񡰄CMdЪO=yr jSx! {fD2z\Dv_-Y[Qeՙ� ?-@dfD}㥏ƫ':DA?|gp9#1wה8bMV;N7\T@[Ln*y̋mt'33! )q<a7F~꛷9?0Gi:_,V0xx SgIO gS`"�}S^r-{.LN.Jp*("N'{#j֘#cΘ #h&9KM.yP |vfjcևkIa8}+k=P'g>7nx\J`Ҳ 271KVrhèV"K>dz$.}݉OeQx^׫ a(wjj aՎy(ki>]` +2k<{` ?T C5 Ti6 bvfH|>ņ0s \z9P8iP; )?<0۵Ԭ/{w*2{YMiT}2%u昩2 |jU:GIl٘n.9 ÿK3s;~Hl Cg/$<%+3s׺G-+03a[}*/9w~ %i=Ҽc0|N:xhFX.kCZMnj_'xTM{)Z,7V<LFO b;QI}-YHPݩ?@.Fsm[-/wCmK_kDHǽti2 o8Ÿ uN"vZ!$CՠsK_P,BY+B6і[{1=Uj3&c0Y.uk5Eli r 5]+I<3ͫLЍR PBAj(Q~c8k p)Djf 9b lT4HOP@yiCIzF]Q A~[A,(@_Mɗu>lSd#L0]}^wHoU{*h-6cv&9iig<iO-ꪨ`iG9DžS&rz*Y'ћaNϞM{O'(g޻_KQ#&‡/թ>anx߁ead}] ;{'6~ ymEtp-vEI k W~Dy^ !|=M,Fڑrn ;z&TZgO$66#瘜Y{ynRo[#]繾髏ׂ̲mvQL3Q)ӿҋэ><�IS@OJn_ 40ҫvIt#kDmd,ҫ*,Z<ڋdI i`*<?q \ y3W:ꥇEχ][f TZQ4F80+Xeß<M[w]ʉ/tV^a"I;&REQ6Vf> FI>#fZ@I<G.zpL.ttEeMh3Cg'kywe' @uǧПܲ.zeǻk=LlWѢC.Eeny+z]2> |%m8rB/s 4ϹouQ'`r');DtF=D&OsԺfc/>Ff<]U!f- /'sZ'cMp}"֑*sHLЦZ7abiړ0&~s&z/1˷ӳU]$86KqȡTDM0dOoEOq-*(+hdTDJC )$J(Bd{]Q߿9y^'a[ \?c]ޅɵ11{YV'DZIJgǖ/abHv\1D(9ܨԹ])r>rYCPz~ʔݤ<fAuM=CĞgz4g4>x9roXҬ[vqra貿WO8`cĜ&ahCkP՚")Ti)ڞ a?oQAN z顥Nz /4FO5a)}4vn8ŗ`p*U O+44w0 o{ȿ7tF+}DsgmLCQu*.`J;oT~c& :BwƠ.o = %[O"`r#NĺN[ ڶ`+K0zҥh?{L.ǑwuRXt֊yc[7ѿlBݓ` _z AUE$)\!b;̍BVEo^" T_ӛջ1LiVW52Q/#pj>fj;>#@ѓX9-$|_Uswyu瀽*0xB..2[&/zъC 994\'Ei1j(c9QZ {0–j.mێ.)cHi=*H(QGw֒˷�q;2o(`쨿%B 2׵m 㸈 B~]+̷il@ۤm=#;dWs$dNoT qS[C0괵$mzaw);h;@zZ71̾+0<euw+ 㙂Eyn3H{^>fimf@<yXwosPnO(u<ˆ3['Ͳov`֗)= ZRu8 yoMPٍՁ^? 7]_C<drfʺ{j0?TJ<( p�kr76erj6G=*6~E1LTLݷt{\<z\_1,l�;>C`jIawLj [ P2l zЫ$sN֬"2at}.(Ql|ۨ'kQט­Tk Ոw:pw+*v;Ɏ O|e1 FώEwy̮({;ͯ]#@;<q+&Ht9nࣣ*r{96.&9+eU]|^>hs=ŶdҌkeS2\A;1qSzeCMUzX낲:Y/ՈQxJ|\]Ha"<igݑ`?>|k}#G~6p `oۗ)<Q5v-NʸA g .U3A߇"Ib|tkTK}I=t5hwK؝JTG]}sy0 1}ڮ?1r$M(%$h'xuFډ9{ X' c&gK^@s`\ۗdiyb_~ 3cս-K:S7Tʹ1e[Z~~ 򮜰Áz|J|/M`lC*"fM, "<DB2#k[BOW1D[Q'޼R�#犗AeD~E^ƯIzƟH  #^`s?~U2;a"[;b0fi7mn{M~39W�՝;@Tx GÐڙ\it*wi䖥0YW.Qe0<;"('>5x%H.xa=C?;|\NooeGc<$˙QtDL8rJt>YڒT/oPQ0'͞ A4eJ!G30$ b()eTlL4swu̍s2R@?](BOu Z]$W@k(I)i`|.tpyӳxJ#3t/RуѺwEٯ'@q8һ3EX|[1 {.}yy9ջDoxnb~ _9P6[ O+a?s8{0>MKL#]4eA3;vJ!36XVܞ;PITʆ7[um<[տx"L!3^]'DwI{vB~5M0*X6o&)&}3r }BrE@>T% B:˜0OW7SbJ fN #~2uoc~"v} F껠B'Ědr{ߐi,o~Y˪i ?<Ӷa&GxG!SʹM{0UHBnv]@C[¼6=j5͛iVvpNُ_˩´ SDloEv݋E`o8~K7^aʹ99Ai8(W(+9ծ3/2GK 5DAsk*(}w˰@PBO+uvNF}z(:j[C}Շzr6nX@K?w'H uU#rYeL)&-:6]4'7P 4Oj_5P<OryoT+1#7<G#(cPEZ 뻩aoq#xjsd-fQڜ-!w@}ͱﵟ g`[?Fn5tk  Q~vբT~ =Ey}iE:& Y]כ+U=A}ז ?c@4~6t+w}XŒV-R߅ͻq ; >۰ +u_o+hX+LV]=ދ3w)(( oEB+hҁC=n8s-NgO?7>3MD6+zA ^sb=P"Yu6ȹgrRb N;~y2wtb~(p͠LL0gJ6`|=8+Bl(TW~9$Xcw-7aJS Eă~vLΖ[_mVat#kHqn'};4vH}xV+f4 "v,ib:g3 8۷ {p_o\#R>xE\ѶeJ>[O5_u:[g^5q#H5}ήOCyB@v0Җ/fm@v{Η[Gpl73t<pQ�-wich裠%]%O|2F J,J\.|wpF6s^I{$dCk\0W3>t C=v`;I W1R.[)fZm2 m3NWFTQkdmmOQ[K �H`=;Hq{TP)'k/(6<)Dv[qO|}-7GC>hY)5FnDsimj!PuJULʑ%IxT48򃅽#[U"~?yèzdKV2GOPq_1BU.֋/tT5;r'Loô޺ݻAJعRg`TjcZaX]&o/ph=Yċ9݀R֦(h8;L 5 oSmh=%_#i6MJck1;#h!rȥz`ĝ 5_̯ol7Iec^iydo4 CxO>>dSft/^c kc|I M}(;`].R 0-臸F떪~1擠ť=0?8%Eʓ2|_NlDk:zT*o^dZu#H.7{;$βT.+oqO^#{7ǝ Gk|׳OuL!hi=Z6( FɵOp!oT+CWϺ#/y_jJ2נQͫAuh%\HQCܽ?-."ˠ䭁D{Oh؅SfjOp>~CV͗>|AL~eGȇ(PLY ~Ip7e1u02\3嫪gG ?L⤄8T̬z*"Aǒbc)#b!TX?NR>̗(WK�)X1LJ".LX(zq);dx /3f _;Z긫 ]|?!{(URcח ?K0f#!϶!oDT6ޣ%3Wwz{p)<ksߠPQQ)QK9h2rؿ^9STwE&~ ޺G6;ЦV VDy~𶍮?z;4mSLOuk!:.ב-&䫚-ǜjώEk2Y1ܓ cN/8cTq8\KkהRry?I<�{ 5UA?5k1IpIĉ;W\t;*{!wЅG\(Hgih-mv|GɟxJ '>ϵ%Y:`\b5-N]w3+fz6F`,GY[v_Eɕ G#{ԏ=z~ ֞'ׇt0 hY=CA5LH<Op}[0*+Y5P.)1YR`A ~>wX0ߚ~h^8NiCwI?pT'#Oo̬<7?[1v6J0fnbo.Qm8 'kg�Q|VTӮb9>)yщ=fa}I'b[]֖ynKm xɞ;$ݺؠgk !fwDcPöe?Qꡇ|+X[\[D'փKp%zҗUJH۰]dJ=i-T4,@z/шQ~Wj*KK{Y�mOe65Kp%0zfC/7ctҤYQ4Z?KSr{fY} W`h'ɭ‚qܐy)"Qo&b)~ N J\#kFFۛUQ6k%ɒ7NʬNkmVFWtDS~AW!M#|x.a9d7rNZap\8oX wN/R>L(=}l@[V@Ekhbb.# lHYbJ@؇f k5U]+av姜gBGO!!F){ӬjT> c ^zlm ]/naIu/ c4JTudk)J)>~.>jţWTb= $$#A:{?>\մm&$<}q(g�hFR `\Ts&u.mvp]#w"l01|Vzdv[#;״3k36 Mz1LgoW{POo*Lz{;;AϠ;O*'z>e#)XMJ' ـ鞯:]n"޺DMc?a U@֨oHC/4+i08~JVb<CF[4 x(C|L1s(;L򩿋0:qH74wXN"u/{:35> $i7(#e/7ȜeBP+2v ښLĉIzbz8a{[Ҷ[s[hmcĝt٣2mC^T)H5{qnC�:?Da?ԫG>P*FN~OK%H4Qtt SscY 6E/[hԨ,}+[5ޥb)GzPƞ>˛ԙ#"Gv=u"w_%M`NrH@ iG)`2 {X7>biKF-A|tx 9|Kѵ&+>ІUmݺ~{Zr>ۡ8E7$@j1{V->1u$Fk.ݴIi/<T:ݮju}SR=k>c1P?{ޜ7H)ޯzMԯKQYkf0'޹u sP}KG K֊ ƄE~ulh#5*"Y^`CM!>YL]O=ȎX`+ DZ�Zeq.E Z_5WgEw.se(& n 9)'A>7u wL}Meӽc"ݯ37G3-!Pyd0#r}~vʪ\[,]U_Mtb֫օ#i:?4J:N&656t mvHߚ9\ Қj({-ٽ ȁV'U/FfR< S_yl Hg  = 2> i| 6W@K0(#<tV5L;uN۹81*N <҉aZW[WbϢ-(r|?;R)]_NVe&}<)Բkm)kOlo)"ikvGwǦsNq@ _(y%iK̉I p.B6MS5_{M1}.k t02}2c?^D(AE]3y` Z5f3 N.-}_,@HNEۨZ # A~*'G޿1hu0;G gsS__8 <%:Xz8W6bؕ)':]^8o0Ϊe@Eq`.rz/ SIi;q܏Ȭ}_Ѵijͯ(Wjg@r7 Rs0hcsn쿧(X~ R{" yVt3=kw?q;&Cqa^ktgQyÅۭGnB&X3PJ0}h-ԑtҞ.yc?y/@c A e}H VRQQG=^~|y ۤzr0rEpp HWwHf,BCmйn E!4PZYn>kY. ciu'0̻<=Z@?cC<!;n\yqdoȚv9]E]J8I.)_rxV2c%Hys/ 4'"r,JH+He2.g/Ʃx"F 9c&s[=7+w:bI \W<fلI K'NCu0<k4㇛ =b9v6($?t9#hdzU *0t2A3;}d#{MUsAVEiolZih0a,cok'hu[냁 OѪd{ u<iYE t}P5ݣ$ɭmp&n:~ J9ͼ|1Xm�um> ^XR^`}ȕj1-B%HZW^$*=?#< Ih:[t#< O@3=?{__>PBf{AzZ 5 ?k3Bc>KkNjP&\zgˎCOϏCMY /h~vAXHԃ7 @s),5Т�NK9_܏8}yݲ!07/?@+O_(~$t^oosf>&*"GL鞰ڕe1qهl;oBk&uD,˱{g x%r m{gfmza jU[$"+/x1՛eO<_υ�0KipEu7к{=7W sHPMwx2)baN 7>cFA5=T7zNO7/�DL")z]-k dϔ^}ń=,b qa|99OjřC>aύP8LJ1VJG ;]e> !zv0K}f}Qes;0kכּ'2ލ/FJh>L mCq(W(ծҾGkAkk :R,[@T[,si z<P}J74e<QQS͍zq_V&ziu'.[&th%C+ `y<VX#1].K64A22C{o2ߊDќ=(R"%iXqhu_)Y:jt0 nqk%|zؿئJ]IoprVLFR-ob1oGQ1Ώk`l5h6Dyz5+KZ6JHc6xy.аVb?fvT_*sܳo~#mb8GyJ?WQ[0|sA0oN9f<JySk-[`I.x+`O Y3LgdL}'b9Js,˅(F'7Ne?ƬU/SB~}F.#)x{27#7g0]Zr|*~qGbbU%!bv=ҵn/ H#y5KzaᩁH*s;:&M1u^;tSKyVZ?É+J'n |Ǩk!b&7urU^Np۞40Wz-ICM M?Wþ^3zEyDOR(6mwHBQK<D e6cTFm;G@UzK-,gNI5QOvy;H3`XUQ rK?~DV׬Y͌=-'A8hzCpN%EHך�YӞ`|^Ӳqa,?_VЛY0ɊZ"><ex�YN5zXhö2U:[{+KQ2O"z(Zg7&o>qeC~δG>m<q^ G|1n Fu=h)]zs\?t>DʍL7=aOfgca3akL\\@}h b{X%1;}J"(>PN:<xӻx~0QW긶((r`g/뿹sB0!U- %U'l8J7 j[R_~<rb<\b; CfݶǐE/mRqVJHކo !c㲃(h{Mniw ?]# `s*$sM()cW~V$ HћSϰ!2Ή[`ZwȭГ8FSXJ9U=nj7aO_0ؚ3QR#:R3_8M\숹YYn+daI0{(-_W@:_[ZBg 0h>AQ kL<rD$ = ZA1@.y&Y1ʂdNgM`FMw;==|l(k.C|U膌'hw51|#wzr F&vR 1^b-R~ռ%aKR a*ߍ qc{tdɡ\ML0*@seoXgyMg"-v"##9{@SE @XvW_"cgY'}5he]}?D>;{".]f:L1fmU:`s6T<v&�zK}Q]C͹�)]Xs }[ٙ` q 5fպ[1eM9r뷶*.P)?B ~^7O{߁vi ч avi/{1s2m%'gXD@'ouvʼ@Ŵ#"Rv,ɶ= bw{9|'?v2SgƂ*ys9MIB_YХ4b1̙?ogHt( m3ts^ -=qozSa#-rW(UlDzl'|7Bžg CT,:u};NikD-ϫ* =|MRϭXM)"֛ijh( >yF#ۺm Ή*Dm'76}2Lwz=_@{^b︄Kf4^#C0} KYƎYԧoJ9/Qiס#zi:^@x9Qb/~r~ J:/~om#> Usq #ŋɑ};yw5PwQиʣܲU~i\ 1kYߐS>6 _ @Jdѻo~ך=~*bN9D (N=g<J<I?{Û|rU#YΧ.=}3zGrŰY_~ pwfSAШ9SIP ^y%W=.;Q*,Ulmlbw q[Z-d{dEٜ Kiwqkx7ͻlOSu&?6r1Wζ:?#l~KF聫Kk~<l�NC)o^Ƿ@1>DQiCdG-10`7Nb >b1�]> +q5( rp wp0*L)"Ow�et*J-h7R{6{(.:,f 6bbAwsܦYߖ#]; |μumyK`9{ѣXĻjL {~9W~yqv )\hu y"nDDTBBH6tox1 1‡ۡ@$>;T~/hyǾD!D@öԫB_;t`͎sH'&]ͤap,Nov)AT`k{*~fܸ熺Kb7~~B}ô`\T#h?P({3^5mCd4Um;Чg+O0.vKTBQS]+@gpf.@%[e։xo$ c "oJjbOUtJƌGQ)0\7D.#.C6Jcbac4uoIO|,2 ,B烈}8<ΝU9!D,9WN?Ʒz5o鵥N }oM Vʹv>SN!{5Ik! /ݣ!KJS(/ApP,'ѷg@2ATWBރj81k<0b\0*:ۼ@$t 9c=4X#1S/xcE\)08O'b@OؔU6$=Y;Aޯ{\5^�ݷߜO؅0]u꾇wbsvSW!oFW ҾٱbdYoFr#G%g$R\*}׿6<v;]D<Yʗ-o8:%DGcHqNB PC12o8[fۮC}E h;7vI`boݫ,D\y~vÀc+[@'uqo"XrroYrNȤ75g*QaQ@:6kVހT<e?l.(ɬAwkpܟu3#N-_2RvWnux沟O1%P2*+# 1a5툼4 '@^̀rjLdPO;H1# `!1oUzw}8p6Tu4*DmF_c=7PN@T12N=܍W(2cr9TA8Yn;m Yet@0Yte~Dr>X=Fr;//F5f2Z֣/'E3"կDv?~3YriMvZ".ˣ# ~w߲[l9]Jr?PJFC]pX%ěߑIK~F66C>Ui�u]i cUb [u$7fJ_T=r>/7 _S*.՞zW@c{nFfSe=*|ܶ G+ ]u7J9s)\&̛"k*b}Oyؒm;f8'ƱTz!;l-0>&lJ'd"c+{O{  <'m&(vNgՏ%h\\Ê^lAyQ|}}6k^PtW*OmsKf)K_|uaC`gUqbOGS/ϡܧ޲�$u*zCnS#I֢:uDF&jl~*-5u @g:|#b~#5kt�9f_u6`UU8MCCOFdZt8`b&ki1#eT! ]\l~Cicj0PRBUA:\[~/JQ%/}J] 8{n_Yg&cQۭ#Ƴ@)ZL_Gϗ;&%Hf s"?YBmYs z>p`,8c<sxB~΍ƙmfLLS^VF=&Y9 )0|#/H#ǵD>oDG1hX)X F.MH43_Ê4!2VnصKv/PZy+ux2iCk>ǢȇB;d|Z;kA%'v -_uk}]#';A)Sݥ a"j7?vF@f/)naͭ[m@ÙD>{:znOœ ]`O뢕.bdmP̘,(z1'wPM hGVTZG~</K5+-x=%t4uAwΙ_U|y(C)"K;4QwpG c*qUǯ暉QG5#P>}WvmHWY^?k0%$~e*y1[/KփBUx$'vz{FKyt F1G ~šEwgŸU "vyaVE񞸊֠cI( foU4f#-j^—6$N#>f>D64@=awOD/t9M0|˚5/ٓgS􀛅[M-ZZ7�Ҫ_($xCg>J*u׹nUq[5bCBC%SΊNޫZReqh z^ۘnfCGN<d|!652;Ii)P{ Q=bx 9 `eG]jKPs\uH6z;� _رfܴ,;t50=Fӎ0\eԈAƥs@m~gp55vnAݿ$zl1XY6-Z5 ~^r@uk~Fx,̼̖V`|bIZ+R`&ITc(Q5볟u)umX$&I1iUH<Qv ;vTvE`L<1Wc@ڳ9Zb)&&v?ށ=fMڎf2OAnbHގ>T[ `8 Ӄ=A * % *yqmxh)f fg(͂@ RSދ!k߻cjP?nD~!yH0:`=bF4|LK݇iEgdcZoLHDG?Z8JX%=_-@}Kz-.EaXF%GKh]n+PL_߹"L)(GL0*Eo;!n{6=nҷ'2f"Iz S›GcI&M Xyu0"s'o}O6Sk9dn`;s_E}^b5{zUhm߯ezv京s) zŊ w(!'XDY { :̷Wב=f`'>*&4,<Uڭ1ah2iJVꧏ"x{g9Z@2z;&~0Z=qz7'L9*oԥij^q:^K1p*1[㜼ܿ+?1JTz7j褡j'?Nu'v"Z;߭wt+˲A)E𙝄#Gٞ=gECؿ}Ճ80<o-Jy/L kA `+m>]iEg 1⡨;-H:翴5Մ79ߎUSxUr/E ҏ;ꀬӿUc}|kjs~|l?s۝xף(wI8L)njYMN\3D1+-lxQ( f ""C֯E_h ϓ0sW hT{`g] ۽@Ǜ7Xuxѐ5v(`;L{ׯ3'}140HPA3˥!Mtywuﺩ XGNX : N[1L`:_OT�WkhEm$ {8mH܇Eu8Z&UwYlй2xt4]AmڻϊE1v4NY.n2GPٹ:=\u,'_H*)ϡ8.q�Ho{9s0`$swZ~AښS* )S-G4 ى^[u:,ȲA]7瑻)+#ȱAQ^<+(?߾5Z-\oAr/)/ &/-+yrߟ]o@v>pS${!0n9 d요MXn Mm1=xe$ ] @Uڋ 8N7K/9)%L<ihڒs#ie6O$ٺ,CJDцOLȗD˼<㑃`*]zSv*Bsb_iČ2*Z8l1 ljkk;uS5,YKpXPN 0{7#);͸30,}5bҝ`d/ov`GtD ~yUFoo:"F :tK'Cxʧ27K%O \o*A8/oWads_w“ɨtޤXJ㼂~s>. ǧ`ʥO،mZԝOL|Co$E &D[sU/j87EC]S<M"|1! t2w*Q9S  H]PpʋXTى$‡@mo.&6]a<YLב.LO?J_#> ;`.J%5P-}0ԆsM6.Tx6ӣO"V#? %r#n)k +`ݰ QoIH /<o7/+ v͎ffLn>> ly7N]Fl9jdmwq zwOhǠ_R9 D(-Tz@/0֌Z"+OL-߮цS_ Pu6*:ޝQSWw4sP%mJrEWΙbR'&,U_DϷ•B0>d}4mwYBRCHc^aQA>r0W] pq d\&H-|$'5,Ǒw"vDՐ v0pDvv S]o6֯FYϲ;0?<Ø\Yl d fխ? ֻFEMZOyʸ ⥴Jp1Cm/RCl0Sp[q�jظU^nal۷~W/jL"z=?i 3qLמ.^:gj'$ʹMRA|H0?^ O O>>Jsy}n:&Yq`~:Y U0.jP iϮ]B{ N)_'{l<ig{]t~~'>[CJ(}f>t aҗlQW~Ԫs l@7;o^GU-4P[pos!Ft|<%+1ŷ?It v7s0sLJ2%" V/j;_u_t3 gՓFM]=c%My჎?@f鑶iKW\?,׍L'g11mn,HGy^-}m0gOŦz3c&\pQ8T&.}-| I;P m u`- G]mϧ_\m,/ cjS ,Φp$یiԾ5_׿o#{ ni9ڠ_�LcudV{7dѽ^mVPr\.3jI6F2oYM9@ɿd))1Hm;:*uDZ@-=>[P]C7իlZ%}oNɎmŨi'5eH äZL|#Eg0xI?(AW 5Yw6_[ΔqgYd3Jp.<~sSA TJ*.`lҼ<zI5zCxak70QƢH�sBYu*$?>mT�iaO‡TkY9@\uWQ<rG:~$e7ݺs_|} ʜ:2mkG棚M(}hO|Fnو~ȳEK+HJ@e3|oy'gfr)*~$~~ls4ɍe<6aQU.7rb[>1*Cs*�4esLeʦt3W;=zSƍ _�F!b{81] 9J1va�x˜US|uh%.' /I= ;+r!.y]TGBe+_O1n-U{ZѶ*YplM[?:pv#f< uy^5bԇe_$mG|vkcd^vк%Oݯ@?lA;`~uhTiVv*Һ4?ānC_L}gAw7R ؓ 15nفTn=:#|@<~+lXŀhwc%0N7}KD>(8z&>3 o͸+}H;cl\5xq|דHP]tʯi:Fq-y1Rc`8M;s.硖Eh ~P yl`6_Ƌ =VWζ#{Q5hܴ,={Ty7Î3J,NJ^h;(r7b W#8ߩ ߾ޫ FSIqy"dC@}v)v>hԡZOwlFpV*ӠbxNcг;S|vݣAL0kՆoqU`|QˑR;v.\Gb`-"¸#o*f.l_#򪩺*PKEu:=àɐv9(GR nF}`̭k&jCO+>}T=Fc]N,?X/~�gn<烷ڑ/4TD>o6<<ƴn5e ^Bku 벵%G^xn;y[x:Һ&?&1͛u9*v>K *-'8RFuq*# ?AO_`|9U/BQeJ.a;s/\@VvmO0nPcЃߓ՘p:~R $κ"ʙIjFV!QOفWFbAUzʅb[(#<Oh>{zO1zcJ'أOR 9:b~OWoެ q Kt"rU-ԍQl�z6]o6Fh5(1Zs_3/@?llv^?!+V~ e,!能ߣ俠u\\Se}\zzNH&oȵm\Ag;G%\ݏ<|^EutٓZ%;h\!߉jGIĢOi'*HxmP+NΓ?_S zaԷĎu%rU" k{쬈eZ3?q'ú֋ F78:3f {-k Ryb f=+9moQ/쒈}f@帶Z^6j 矱}O\C;ZZ w`Oq'sMF R;zaJp~@+"~盂nx,0 U]t!2\j9]=@/6ApqECDy}bo_<$ \e0[3'Q(gx,Ωawx1kv),LcK{ٹcx @;4VR6EWBr `\2qHSn4b~=bsYu)`dCy(~~Lv>ζ7b 2(\^y"nZq`Ok]u*Yzanob1Lsл/¨PyZI] >Cz|S8ݴ3F: 6:|"8vwT u7w5qmA&_ל-%:jfӆsՀ-@]2 ZAda'GKP'B ^#L O` o�]B@=g&*g⭴KVg!g6?bBt`lCjԎ:1 *_K@zg)=JR3?K-co6%W.!AgF({h+1O׬`˳ HHU)ɇ5gNM\K%{rw\F %:exFu|oBBy}S xs&RY>) |on>8W*j#2T߲I̕/V4Jr ) րso/H-^#[^5ET;N'MlJ' -hLZʳGB.w~Q,P}-+CP̷B836J]AmnR1xp+JPK܌bU Յȭ% ^OA'N0S8  ?$o\2؜?w*'#A;[Eg¯@3ΡHE"UÆNsؿ}:mw7_H݇ 񜰭Ph/,EQ |I'>RT=@>v1&9ޫLCz˥_+޺C rP(B'ܣכRyH,f(Z[6=6׏Jc{xT)K84_#HhQ^Țg}d|o|4 iڤ_065̖"AE%ydF+tcjkkZ\gPWw 7'<w󎗚`<ly9jɥA-dz}iޤD~s|K,jiIΔ 1 | ټ{1p. d{sȤ 砡Rw6NGy`j1wg)fnK#TRףbz5s&h`ǰ#岃Ώ`?>"'A磇Aeԑ(`Oy:~\:0_kH7A 1%<L=i(lا=œ:P@w+ .t'ILwߙyuceݝt͎Ƚc{lq _C{>}h)I}}ۣ5O7cbR<{}o?b,'_5<VS*BgW%g(黥 [TAϩm Am;[ jBW?ׂ+ 67뎇`woÜ@$tFWwѝ9RA|OcۥSa0WD[N0jrYk ,mi} ƌ˕ U4u\+= f궷e{!sΒș *Zlv`k(zFHRyTv> K@dɤתc88\|{ lz*R'CZ f;@-dܧ&rtU,ٟJh>xAW'0HgϒG}y^h\[fzjH9<^9K: Dt[PO ޙ]&&WƬ dTjdi{j3osmBCvKű%4OIWrFOރ _1P^jVc:ːm7u_KCqwTu=.4 యf_o|e31#LD;z*_MЎU~ZˢEpmǝo1' }f }*kUA-h8wޅ\o |<Ǩt^6y1x'o5]H]{/*$tz~ SN%R+zrou͑}[U Ɔf1~嗹N}ZroD̍{{![yEO% 041Ni 5k~X =egʔ0m|)t8<t}|F G|wΦG<1D92^8Ę4Kҷ#?NZⵌY1"u8n^R0ub\U-b$H3zt ef4d*r .pK;㻥f7bY{ M~ Ϸƀow: f21JDƌ+`³Б:$c1<nv݋a,1)ZV_Qur0[daC, ~d-ߙ`>϶KEg} reAG(G=!΄'!krah/? G>4~_X j͌c}@1_=me5RUw_6;J.yv8 ^NQȲK4}g!k1{i߰ .1UHmɻNz"WE^kvW͓f\4fGv6lUqyc^Ap-d%YX0+.oQFgmgȄV1/t1t\0+<~LFrQpjaC)#@K Ǝb0 x\#c{ j5X{t^ W[. Ӛ}3} |mJb Ak` _CD|b~�intߵTG=K?f7S@I;54ӂ} :{BY6}a2ƕbNG#a!-l-$OiyKW=$. NjUmPXS$/]ٶMf6(,2^cfbvw0- m~X}#1/: z;R@_$h-zֈ"tecb>_Pe[ߡ+_D'{&5p*x¢7#su/h=r~}.RWht_KBk-0͡(pB*VlݠXSBāo}ʯ�!pH+5iD7rOoneC" PIi7FaF_+Y“/Fػbze s<v^2{c :TOJ+) y=1<p uXy '/0ӽEp%u.v btYsD/7xk>Yq{wWGLm B7 EɅ%dO^0tnyx$?SߪGn0.naA *uS굜'³@~Y6P9KAw ,`{N^'S'頵G=,xByJ.$uh�)*V ~+aHU:<? 1bqK^JkdI~^qb V|{�hn.7^X>. ֯[I Bx k6m-:aD zȍw& Za0ɮ )}R%/u }7*^ 'cO pou̪%$t/P߁K#`4wxdܙKd;L?! Kx1$ۥl:WȉcЪ^+[Mu?l~Fõy?Cf;86IpMڠ]w^l*-A1v]{I#;$̑'׋#8_Fձ {>t u(cҒa+#3h/&\ϾbJ=g^;)Dr%yM?`ro6*b*o`2?CL1T>8 H tg^3Y?ij7 '|i?Nϣa_0M3Eeo _8s/4._i1Q"_#T/*1Mz[PJL7UWN.p^"d_s[@7O֑~U:]z])JxA4T|́zb?_9rC%G�m7n^adc&bz䥫tQ4 ou>nIm`|ǜȷ\_ Q_m+Gړi`^{# :F]Ef@Y4"(Hr |V/7m{#z^*w,Nڸ-cfdb({=cOa{ [Z0X濫F=WƟkT]?Y [XF"Ow3 Cw(eG-s}Arx"m?ssbA)ۧoQV. dq W:[uyL??7�Zn`ZOpyzU?>7*!<MY1 [>lŀ};J0NZ�5(p*2M({I;f xrWV tyVR!FxGaj@:iY|A!v|U'(F tE"|69k{<_6 w|<qf׉H(hz pSd, x&BvEs|q > V dTT@ X+PRs5KFAZ*]I/V{fJ+BȶΝO@yߜ7թ05\ݛ~+c]d/L P3u kKG۠kzB ͅvZlȟ&; 8HYCx}`BKރV Uy&#j5KT'<`|[Qq ,K [?`Pe= cPǐu7sV;c$a&[+4~IK񚈈u77bS@AZ{39 IEH^O%̊{`v.V"uF0U6,uI{r "h)kȀ+p ]B\RDc6[fLT =UΌa PXqc[$\{Frw*s0 e(y0qb&SEud} m_ʨBl@hjj \Ӎ4|OfE탫;fbAWO3N-g =N-LOT5Lm0E,~})YsY [F7$RQ$,Ǘ(?9*-ySM體&V"6.{|9A}di9k+#BK 0?&}9]>r {`ڳ`MNԝFF[8r?06FɞUWzOsby>19&)B`6)xE br2DoM tG>U8*M3iA\Tu>.%}?eR>zdy/}<Wx1Ʀ%6\FuCp9lm'*VRuwAHw[[5N(sPyA 9KIGQuI/[Gj=0sZlLzl_@Fu"XOwwb*ނzxҦHj~<LԿ!.8Q4A[Owy-}a0$VNv! Bn譹mVճ,j#zK$ EYzi6 t^m(j0[S0_iEQpS)kulK~foRhh. ٰ̆¤` ]4+2ρq8+r̪4>&,Y>6q&`-[OM̖k* 渴</ uz@;{&a/JՔ߹ ?ۻ>8W<'aюiȺ#+=8?K$zο 8vAÖlkm 悾SGf&LA*MCzCh[#y #23oQ9'31$WG^t97{ ;hǗ0y Drg)u,CWٚ _P G7Ps ';| 8~@PRӼT<%`}7ԃܳC"[#L^?o ǃ&u/g*w?5~ӿ<|2Vj1O@^'TF\4)Gs /?y?C.M|sa9t~/ nj<abS+?]A%wJ%棖uQܝ}h:hC 2?;_R٭n ب3G7[pю9u~Z8{?G5ʥ>Pؒըl柛>oX],Wo{6+]{TrDfP[ɿ<Xe2+S`L=q@i_r{nDtv5Jo]i2hO@ 1$ZG�}C4$rݷ8}#YGD<:تĵXxFҌ݉9)Z?م|'yxM̛`\mEC^`?Xg3P/3ՠ\Ɯ2҆-?ibKXX"0gsff%-<5W&k4Z3_z]#ȁ r=-d3-@ʹHM;`qj1-9VW7AڇuPiPzYχP|"_]cctcc_EFlb3 zq0LL]l4|RlV>Yܮ!eN3ô|#AMGh[}(yC@ ɞGO*7@2DCLvբ?= ڒYOȺcz3h~JjU<o7vt]I?NtcЧ;tށ$ۃw^U2l{!OFOJ cR}go-0>}[GcP3}@VcHE3<k t0XP\+`758H\R~}nvq_xCV,XmsDߘ?n&@M?\HOW2R?p9j~aw ^ઁ{%2Fߕɘ|!VR=XO?Nҥ& FVLFdBU@M0OmNz¿JsT [O(dęߑB9'v|뗊4�[L[If ØrpV:mҹs'("^l _idz+1NBRR|r0BUVK/O# ~I*%/sOw/ >HDC :X|1 oG!~/'_Edy!dSJxiIʬP4KgaQ =xTjǚQ'SA 7I2(ycڜqzq$A~q#=;`dE^@8!& Lm|aӋ+`JR[<8bLwȶ/KקK/ Ӯej!G\#:Ȏq $8`BгM븥W5g$F2&x=[#ug9G,Lpp?fIm@:YW]%ղ4فKױA_*C|FSh<`N %Y>fqW.蹫52�ļ_tܨ7.ed}㡆&,\QQ;"!Gd;[$h54AV” b}O{nFmµ2)Ov%9g߅`ɗ/]݅,h )ON_lrA_Rit<RT'Pmsf[ob|;{[?Hr3WA&o~6o,y簬 :0-D0ڧ{'f<{d>_G,oq0f!.PMb/nu\ &Г"(jU>.3 `o Îk1ƪl@w bM*xJ;_KDO \Lr!KsL FO"bݡ> -\ט�\%U$ti]mje$a"-VdXG{EG%Se/;`&>"wM[e@9CYkڜS0\RK ŭmzDY[Nɭ膡_?_\a-vC k0fpM]GN|zT+L96ߋۑq4Қ$<K3@.WMۊk׺^kAQn!nƌQuckӌ.g?;l42'vm'x mbFZ_|(UUnv4&Дu=vP?Ce0j.q6V/Sׂٻf>$K@ d//CA{yΣs;Gkk@(j ÈUUũsiMI! sL*EãA^lY53^=}m =͉^2a1O`5z'juIsvW)=ݽ fj$?'ul0RϨؾ+7B)axo^,QJj'F| t\0eo5嗬$&'U/Y"_Pt~O6|ߦJp ^} g r*(Rp>eJs1ue.d1BFgHmW=?^ej(+WR;Οm*?\7ֺJڸu S^NHFv]n pKoÈTޠ]7`)r7*=鏩?{"i d`j[sc^ eydl0-C) OBah1OzJId.FN]`<zV#_V  xɋD-&zq,ӟOo4ȱ"} 0sFsB]<џr1Bͮ*&?0r^XzuV}FN[ደ5䳃) =̞Ҥ{9PyԬJ9&\ <}6 #1޴О d1/R_^ϼ}.G<OT)25~`? eKKmGyޓU;'By<2'_A+S^=]iqL/`3; C/\z[+vhˆ=$~0c?5yWW$|Lhƛm0@x/Ǎ' H~/FxO8b+ k./9=]h&Pm5 W=w^e#Z5V'zkK8–X$Ab{MZ:+CwgUsDΣgds<X8B[ݷ5%E9t=|�c[Vhםe'=ssV0ѿ%y* R 'w.-'vb` Ձ\ ̰m@Mfļ,#s_hbY T7 zViP=F3oO]U-*X=]u J.xw<i)mDfڡEC]fCRJH$+3Yd7{s쳐BK/<s~s8q΄#zBn^{Ld8-zX.+ Rk }jyM:s'"+guĞ[fÛ)|i}w�QNj;+h$=s1{='$巢ڭdCLr/ `]}*B,Zh`u ,&;!58e c|Y]/:2yX珠jҍ\S tLRF.tlk##%H<|6k};F@$3;kl &'nSٯ?wᨈhҺ~?LErHZ;t>/ѨD)y:>ya3HN2vTL= s?Rћ :퇚$Zs%4OڇL$择Lw> "[C30t9dz:VwP ZCV=(GաZ͗cfKD7Wx#ΦL-OPTp]~BzOq}k~1iٽGABܧ0#0PxdG<9}!>mEj-R"t3~\i)Om Mx"cW|n>Ne6﹊Pw \PS#<{t7k/;_,^Vd(pe`0\bߓ# &M`bu�U_{c+~^Ae*^#.h%YkC1/n* MMԱ&Z3pV&|]hx̕0dQu.L<4�%}<_ &;J4Q䗼+NoD+(@HjMچEpMq!bk{$q_6izG4FJP:cس232*w_>hUiHCwGݨA^޵L%X4-Ŀi^8d *!x=hlG|7y+YCim | [$|0J $ Z!KB5;/IGAcT2B5oۀڕ$KnsOFٛHchУW`O( szcHQP9o%1Z`sKQo?UT +gZo<~*'5aH}_ *uNq: =68 �"^5`;0cz $[*nwDU+vd:Ž"ID %!?,nSoŷ喣"vyo.&vkyF^T~QA&b̵+U1]*Fŗ\BUoDHv 7Hz}t6J;t0txH^)]cڷ*?H¿,1LϽWuSApJ*ʜ !ޭQ;`s;?@Ԇgu8<oH$l_@~"D91JxOFw)s`ihGr҃0u4ț+0 ֞e]$H\)zqHWZ*&AY*WE[W:δ>/d=_lb7BA Cߋ˞}OseM@)`"2- Ca0s`iS2FI`ʔ$I_%F~[N1ԽZΖس)j^w²sJ@&*nߗ@@f\ϟ'"!{QYJW ?; W`m?y7ָ1"Xۀt@ߏ_`n<]+ݏ1}C{Y % nML Ỳ�1:> 0NITäl _۫+'c?c ^?  3t)wGz1_я1Bpo Q1w{pr&2J\Cf^ov_a۔~ӏjUXvᑐ.cjO{J7h]SwH-8m鏧eIz*~fb̞;S1Zb�ҰK1T#t;rwkuҐA;JW`:پO,;(Xۊi]Ӗ U EF:ژrf 0Ȥ?K`onK-1@Q=v yMy:ŗw:ltdw[!܏<E֋vs#s _I l7#@a7Zr4벷laf̉;%">WS}]^Zyh5V}r5h=?k ٙЬCBb_??+8ՅۯFzDJA_ܝO;0T1 qsFN)< zecLzυbZT%, f#;@6OiSuٜf3@T5 3M\`|ϱ8oF֝V)Ǩ߰uJ̽z+iV/r6K1GJB?2꨷At匶#Rx' {~,>?k<X Ksa}+t~<J3PZOnhk͏g n:uC9e{``i#@]Ǫz l.bP^έ/NkI h1i@^ӬU+<쑜R{ M֚Y]`)T8~-:jl~u}aKg^ch2ǝe0-5AwuB<{bg}>x@KH֡՛9מ3Av =cj E7=wp䑘z.B@ :;9;ȇIlПuMl>5FNMc}kJ"Cp'gLUXPrk`xLG^׭'?пHV#uMq:C׋Jb kmrI1;hEO@micxsn 8SEJ =fۘx9z"Ndub:} ${N] ݍ6`T-@]CF,:C]P^*aJ-;#o5k(6y`L" j~s7XuSBLNwfPF_>+hkW[rb,fz)tV^`K;PT)3I[~ۗX0cu)]C",;&O5ALA5s&.imWJ=x9؂_^_:t7T+t=L+;fvoo{ cH?)G\AGC N2~ zeE/ yJ@^bv`{H͓YHo:)l]8=m wl'aςg~znCjƎ^S- (;C6)H$;8x% G<h/yrd}1 ʯˈe`K.My*vh L_k"swVܤޏ!?r{[/" :`*i<8B8hȌyrU f pt*7,y(D/EPѳK-+_CpK sud7]]?X]'31pQ>Z yҞ3w@SLOy f�=/7h^Fgk0̶H@c"8~:jj{l DM|cb*e`/t4(z'8iO +DFUt4`0{oHO-MLܺ4[tLp@fv`{z2&8>"r]M  ,tCUn]"e}O f(U+ził槠rOHg`0Lof]e^Bg` lg/R#wJNcRQY~^f"E~'eb`r?R-~xe#v?ɖC-6 ѻ7$7"/v uw3ߊ 8wWjy-`쳺U{w\;뮿gxT c~+ߘ. ܻŵŠgsNtx֑‡PW63&n`jYWt̄tbI˱9v i0=3>εGMHu0+],Vd~Z|a5vOP]ҥn?=b .eEų-R߭3AJ4~ dŧ}7M4FI3u|\5�*ƞua_0=]l `vs`pшEQZlTлQ~|*K ]}'<, Z1XNw cEľku*oh[ZL_93#=0iꏮXP>}7!Q�| 7@V0>"a@]Y#D]<%zhj} mN\rHPN7?y\6b~q|G>ioe' 0irV4GrE5Zyj+HŎn#YCm ̐:ʹ~5k_z `: ]8F )}G<1wz'b!%{%2c;<aT, PN4gx?v I2k0Ti_O-@Ӷ,^% _ekCl>sgg¤@abf%� 6~nRٙU E޾ п.v`'ȷs 1{,LOFAa'P,<nRQ^>td?n>ld!v-їdq=Y~6}U }y|U[Fnͅ+W#1[9Pt֓Aݴb)n)B_Vg'L3#bW=S|G70O .fa1HT*aUMkoVrbTWd?#Š3opo.G+}d~ĝ.Yc v k< ھ{o$!w9BvUX5ܨԚq#? 뉭i՜o@7d?!.oyR"h7]P3]޻;rGOVG k^ |%ܧ!vtcNjxk <_T <2Ғ}OjFaY.,YU|cn;Ҷ%Z>QpS_e?G>P+o5@i}Of*`J?Au`Ipܓ[.-wyBumi;:Tv67aDLRS7 jr+h;lگ:L 8+g@aA,/W 6DVub(١|o$#k5ڻkkA\1b H̾Uߧ.]<5"}mQ;VT=qݛ,MLbcw 8¡-]~I!T?7waȿ">ko[G m^A{~Ce <En'>HZ)$6afɮټ D%ۦSt!~ٟCqkU_FyxkPT/9i Y$۝Xى -k.vsm;-\5,5iY+sr0#17c}ٽH?a%u_f=>`;9*z#3eq4vy<R+6|MO\=ݷ''l?>< &u#GS$vϩWxعbkM(1|+^ͲNGĕu Q؝=/bJu~YV<SGQdQ9/%s m(o*Ȃ{; UR)?MEQ1$1"Ak m SڭEc9 ye:tse!|EYXT zr52*QH͑9CXEWoy-7)jM>9 2TB4a]1 G߂my . k& 3c#J8d$2ȗ ZXѣ$L7~WI@ޤ/^4:=~ӽ #Vn_O A6vƋV0rXۈ1+.z2/Wwex;kǗ%6 s+5:<4}i}R([w~|r}w {5& %0 owmO07/_  N*Z=^AeD1,0V4"Qt6?soOLxo ŧ`$:d7~8,kvseoza[9=@ s5N{6jmW4+ZU&e`D9ʦ`;M'G,<?8$90q.lTaWaDTw/ss>N5ЏiL5gh~R_Lqe#(U&R@sq1On0�)udYo~s@oe"=m Ǝިk"Se:.Hwϧ l?z4Of1Hbdnk@"ro7Cq`[EϽ\j AS`|]^ ݸ'a4{u^#OK}?`:j]Ѯi,dFmou<h.Wc`J\Y㜭7PD9reuRRS!Q8+["MSOkVҫ]#4CBgUJI8p,uh4!9騩[Z8 ׿QB#RynƧ~{|OX 7o.?o]P|$H7Wذu1f m69SZ/oZˎÙӼ<ƒUѸ"Ͼe_">~>𑈾3KA Xy )͏^MX)Ǎqoo=x *H:̧r䉣b/\>BpN ׳K,4lQH>8_.;E$x; ,Qr "3DsO,MaԘvh?N\> [M0.c0C}oj gP;e2t/+s̼M5\l:Lk΁aLt :+`ߝZ;}`MO8x^?|o_u[0lb <ܺ?*dj7@+7nE*Wޛ'(;o<^l-;ϒ :S(en$ȬfSczՂZk'1"|E|2Oh:;e~ 륏Vᬁz$j(N^LMc W"0t[=f"* K|E (еǰŎKo0GH%rYT  0FsYTN##K{cwZ~_빳dO9y90. T &v]a҉(T0=T ~#}Ϟ~n`#[0 beN[R40 {ȗ<J1il@[L>ÆJnQ* 5Dɧ.wʆ4/<3fnvҹ-ㄩ{b1%pޅuW D ֣'C 1vjAY*fS 3'|Bx!g`⮯3aDs a<zβ:/*ť+t!{=~Jyu,a+={chc$ݷ܄7:#[4i 'UӉwy`^i>zջ'/̨Uig E]u1)`]mԚe %^BFk'bb\7ˋ0L81u @ru fQe>'fB9ϸAB ,/#&n AÜO$d6r!{,6/ڏ\r+&m9) z� [>@u;m2?go LRNZ#L5iӎ"jqs$?+Ժ)JJdT4P>J;> ]]l2W› <X_a91[Jdٝ3U>vJScbo]Ժd䀺w3ucBc0bn4p|`55 sKs` ?aɵ`'6Rm2HQCߍY1vq t^j8XSрaZhxmL1!׷!z% d'$ 0LZ0:m&C.LP. y@Nus+<p $nV}9Rbޭz$]h%vq͂cx{_@Z_10K{6 y_NN$HBVLX:}=7Y}49 \Ɗ-Fkbp[gS~LCC%1;>ϛRΣXkK Cb(~Av$>WF Cގxo7B k/`+!4t7ZC׭lCw+@ϒ;~ !{dFYZzB>'ݻvßD7~2wx $�÷ {0u-twlZ/+,W)㋄y^bSڎIK G_A~L:7Ody8EV Kz[>Kc+f(#>~af_U.3w(9jw( fECOh{_3SXZVŸjق b?`yۙ MA ׭>,,](H e#QT%1Yx%XdJb2Ӻyg<L.j7S#*o/x;<>;Ϊquʖ]6Ԙ:DW. =Lxs}y�RguƋm2kwPm7sh<'ޟ*,im *go2@8bzj;PL/'0~V[]:;9$L:$4Z}F8nf: 2Ea6>~6XQAպ)I*.m=&b)Yx_q"Nb&.N? 囔^k*blugE4meeweIݞyu[ܪ{:2Ʋcihj?5_{׼ˋ⚯_ d*)wvWu__d䳷Իƣ)EO6?Xnv<x-U'D܇ع^٬:ꆘ>͡cq/YLyuE?Cóg!᫤Q" .�%'x?<ىaGO#xQEw&%*3v PM;#)˥>><2#BO=M/G$џ_o|$HntbϏAO}5M+!;P/38H$FQ#ug{տ3w5D߃kcz|B7 6n=×Sg0U,%ng0<|:U[ȈUݨs"U9)l `|K< [C^5A`5kǸozP0g{bY)Fb- Y}juSr (#:`Ԇqu/Wz2"-(P|+ `ߥs޼v8P#)P%:w;>V;[z| 3h(ZK2{ y'9^HJdr9G@ {H?· Pk jH6sمfLPnlgRU&VLG  \CqC8.5[+]jKG]>wtlqHyVO�/]_6ȿ�%?Ϣ6G>1z;&L<_[oqPD> '/w{1ЌI]'3q-09܋c"Nd0Ƅnk*Ydhx/OI"SgU0YW2 vbrD`Lu+L(6bn�HF u\*؎y璽Mܢ4p}5T.3 s'/);pI+͋."'ZA~QM2[N* F<Hb= ObF0lTNzvW⪕0Y(bm/vg;b#)Z=~ 3kQT H z܌S_' @̳Uv_#-|~Gʡ= `m/dH89 ħ1HNsw+%}I1z@-� z34+-=ɩCyLunI QG޽ԉgBF*S*|cGy|dTTITM/)mǨ*uB2^dȜ^s52&m^s3p-G#POְI 'DUkv 6J m6}.2^%ZQBN *B䎥WFFϧArsm} Xͦ(Md?Jo?RMv:_sX^z8N0xvw�?Ou"UJ(݉.SޡE2J`j1n@#d'>+p_{WP B0a3x?z-9-w3k1YXfT_ ꛐuw_dZcYqCD_?Nw>S/^c; mo@~Rx=O 79ʱIpZ< tŸ9 i>[ .iOI$4yu/Ҍbu(wa0EOEeMa&w҆`siy/09 FL}PyA0'P^ TP;+\R<]nel3N#VtnvLg8AW즛RkvΗ\?M[ +^yV j}M7Wρ|:Gg; <`RR' rVt,K@_#|i}8v<ovi�mѶt<$<kǫ8Wg6ݟ朞eb >><`aͩwaSCF 95?ҋ= U̞tµe XEo$<6yQ_Ćc$&z26r§Q>ޯL0i~u<P8Ly\5"9^5 G@rJw~ X8u3;Nϟ܄?޸gx:ioy |?w+j5B!?󪄑f0G^P_XaKZ0r2XnDYEp{^�rT=P*&\dkcy#>vF^8KfX4Y~%*͇~.e T[9`Z SǠ+fK1bm{+К.\}x~nG#gGQ,lߞ3$9 /ǔL} 30ᾉoe_G)kYb|Zs硗mz/0I)lvŰ >VD5ݕCw|gA>.W"�v𴍙_@Ӕ}d[U_�CFP)<Q'~<Qfv~)+^ ltN((9Ao(.E  O*`\ cPktKaoǑ#,Y`C~Gqޱ{n>ӟkkDǥ&˂ym6iL7+9cGأv#USB ׷ (FX^9TqDW9F;K{PnHp9oN?DY:慯cOazg}$ -!r5qZlėj/hANa_",$YE<|PAȹɫMmPѮ> .L] TX9b՞f/Q )"z[ Gmc֐X?{/oXT=r ZѺnwy{-o{FowF?9{W;E)՜;r31p9$rWB?b+ItHRQ\ÆHʞ}m_ο{CJ[Nڋ:Omz GdDvq۩lK#:")||@+iЏl4qmzt`vϯ%5.Ʈ[M_~]??'ҍϮUyI])ta(h>bą a*[#d0uU~7`^Uchŀi=&/? •�u` ʮ]HE#7s.qØOgNoEyyշs4MTTj݃) >X0v͝w~HӗU%~eݱkAr)hșc� ,t~>bx|xPȋA]Pni#[K jO7)dޟ0J9ʿRv,]f>p H<q:d/Ou:]dӽ(ySP}sޮFƼfNdmxу}n{\֛2d P؇ܤIbF Tjb1IZ & uG`&Tz@yNq h{�{%}غhm啕#58q_L7im0Xѩhz>lDVgt^bTZ1/LsLd '6'm '*JwWFi9wim(xGB- 洓Z0x\`*(HZ.0GݼPgo7/6YwWN|4$oBѫ@'([,A 7ZYg>oVh$F #7g02Z�rVȐuxbɕU ϧ>b:37QA.Uy jRNA?]'NaFN6MS-펵*[u[p"3Pu׳}KcF<3R-R'1ӢnǪ]Vƪ լ Un{s+yQ'sg1l[Чn& 5W #Mm&zL[PUZW\#:/$g[2ɂ+W?[ PuC#ͬ;/\!4*`W ">PU-k" ӛ"EmHmy ݠ- LҲ<,<]v'(:_VKK8HVIeSt l>!=V~N$Uf Ȁ^v!$Ew^MqylHޥ{4m9of~S2[-NqHC~Qdb;r>7/4ꃚ6 _\u�7֣%|txVS1EEmI}~>,1%ILv#AMWz_2?"1T;R+T Q|u'8쵻6 |Fw!wYQk+ p=It.@|ު-qʭ3L3~˒=x5x@Xɘ2nNx*^�^?jF;n w0y-}Fw'8vIGr!.ve-`utgzX@?~ho>?݂#f"[-Т%~AA փ0WwS<K^AO=ncԭܰY^=d+s~+]^xѾ)>d^aeH?;";,cvX&rĴ-?C'Q!3eZo+"B$BNiZ zs>sv`ad˚gh\Սw ^œ7X ߗk@rs[cL֗>R} w᫗l(f\3z^Iq%TQR477V2<6C4:.JP<3x&H-pĮ=tmB1шM{ƅ k"F!˹? Ϙ!q1.gW}&ջt@ZcVj Rň9`_;tcŧk`z u^kcy圧ޚ(hs)ßIG&)w @g ,J*3IM!�%Q?LG8=�$֫A=q T#5O -VIg"~0nNAeݷ%GFMR+jl FSG#65?Z8 Z7(9]vO>TЭKC +i@ÓUoeE0WRyxX5ެhؕ[2lAkACǥ V5qrU$p]aH]ɔy #Vb2%$ 95w=єr1#]͜QR{K/ t{:e;].~0{ kctk䄞2nBO/kVF%4v̓(tm+"t(UK'?ְvG;pV6u0vjIG q鱎5U`'n`^`G̈#!԰=h�PZ!|Z4swyGnFO˿ƽ#"wʼL:~/[<URϠs=ŁyE*%vq1Ks0 KoQB(ן*,{3ߴ8,BEC81~iP?=B^S3?jέݿ@e$`Lgǯn=  *grg NJ=مҕ*8& =VW'}p==Uz~z?D։g?(yo;뮸cN;o _Y*0}OLvn&C{y1*p֭l3Yȏ.+}H6( \R󉣾~]` bG):+.p5Qs5"RdCe XTHo^e+a p {.AvkAq)̸ĭ{$U@Mg b {)]?SCQmf"-ͳy뼓4 X�mUEr v@;WSj"y1 4Z[V 4/ U'\}G.c Pt-=WaK0ߎ_QA_g"6遹[gG :'deDUk|@(dӋsq+쪐Bqx MZ]AqZI|ܖ8 C|O_g!o2蜿+09[iSѳ׎{Ǡ^ClǗwn}Θ.vj,HAt$ܩ)~8Zc-mh <|0_<\0BAڄM076=Ə9[ySZۚ9eиqe/_A?"$,7N 8JB?×/}o>ӑ>q0w|<@V*,L!ZO.#8Z<҅wʎ޴@}2iH{Fwt +s0t%驅>2e, N/5"Z&s -{)8.5K)?Qӣrc#ӓU_a6iqetPߘw!~Fx:^@]vkj(MAs%в;wyfN}Or �c :F|VD֩K IClq.c-V<ߝEqY?d4r,k>@>[|OF�?T\y1.MF捽6<M|;}YʏO=26 7E9iYJ+I*)$bC77C&e݆ tEѓ$gG-FOrKhk5)'_qƤcmjYTlߵ0y[]@;0r|F/& H9V;R-_T;z̭!65mxe ۀܹq}@Z fuH;w!Tx/JTG>I玶!V|icYāH^U-;_Y1^wl9F[=Q333g1-/ٞ'ّn>.g!)^+_8ؚn|q';?$d#JA+Nm3XUăWb'EZA =u}U_ >=y#eo+мT1�愓 xȷ>1оTN?3*Ya>;g),ԉ>v.^gڀ!sёF"dZ7J% ljyNhu!hbZΚW(m'9$7DC6Uܠ&y9bEr Yf뉇d0XMC?% 䆇J_SY Engk:r߷U޻<1;):+=j1zJD>"k`|"}@kM7ޢzY7!Nd1HcW)=a[y-X@]a F_v~ sΝ`(0Aǵr۶`Ket,ޜ]1J|\jOnT?e1_ ic_R曟{\3r(#ȞaxƀU gV~׬`k[0teIi;mD 1}y8TQ]C=P6'~3E kYrAEQT >I<5d~Zc9. _;|B!Kk RR5'wŅΪӀ uo4+Fb =V)Fʩm3\Iٱ5򥍯04xy ;P>) ~9hAPlN8t{Q[|Zva~ߏ!yAyU [ l{d+q,bhq_ pݲ6ܲ)[|7`3}g[[r\B 0tKCj׈^tqZۤr&Q@tIY{v*9q ʋ_&~H<fgM Rږ@]BSPD>_buYJн2o\Ƶ)ώ`ȿ2JQ)7A)>:cN \Rg}ꬥ& /=켄֛*Е l1sody-} }}%?Z]YQ0c+;+\-A"&L'VV&EvQ0ژ'A?TCJ>ȏ00w4!HT| 1/Ҟ] tQ#E_rQLX|uƍߗ?`y7憟?=q> g h K`Hrq}W&B-q!?YtMzP,H_:tS<V4.cq hx$զ#/O(Eً6=1!={ | MԷ2$)8= _T_VgijUAԘqq#jۅՍ{@}6!j0>t*&m7V_Kge"*PY&^6 Ɠ0v%1%( #_kڧ? !O"Z7<wkjƏ^ok#'ѣt'{CtQ`KҮ1(-NVC]O'D*wޅJvn^ЋDQy4f=IzIȵTQM9<P]7Jx+J͈%VJ%!! zj`*Gtպɐ ({"{D?wَ< qs4nbB jN8v4K);afљ5ᙏ'6dUsE0u_}d=ĂS6%J\"7{ O~'iDlIX%u\2cvO]X 1lma|l¬fD3.p$.]W1oKKfҜ0}s>;_5=K͡Www"y>yb4q뙞qkd0 F%Q'+r CLBLQS)*,pCā']ZuP.(Wfv[tڌ~7'J79 BֆB0gxs^9?-*[gQ>zst_mMP;&);-5]_4�ÌLi-HR2-ãpfmwTVL6r&(fY!).")U- +s0H1M7< [\crfZ37s�`ۼ5ʷ(=sīrǟT6ju}꺃<s.LҦ=\<т5Bhs|נХ12@xMj+:H\ym>s÷٠4\eh)"rDfϧdkV[&tv!e]Fj聓p3IOhܞ+d0q'đ6itmTHQ> veEVƳD~4DZy^~ە4on|sPMZmw5hB:̀~4?y)iZJ ][QsǕ'yq֠ę۷&Ճ|֭^A+\wfgt4Z #U(V<+L)t'j|D>u y!!9nf7FJZ1Hy{Sy~p:Iy$Q\@9uw W.FwX({hd�W&מDi<"_yC6'$jn+ f>aq16= SK$͟CEEi{)ylwtMehUgcF/19-bkn}@1 GnXט{obxYLEjf"QSF꨼1ȷcv[ݍtUɽ iˡf{=92[#qѶoP'3ML#L)b_ׄ%!R$>- z }>yH6<凩A"ŴzN[!t_A}>Xh@*[mnr)%jW$E4N$FSS Lypѩ%YY4Ϣ)TH $^81.u%DI{. b~4oA{SQ]`4ɿ/2Con4 f! n{5fn8vʇF,Qh| KПP<}F rw)]hD/@?cv%+kԉ}"V a-v~,EZł-Z}(jk} ߖD+L\Yc1PO55wfݱcv)/dX=ʚ000d~j9 "e�:P`>RF<LR/$aF^++]n(vp ƈ^N#48oK=F.ݛP^FC\'zQ|bӈoK,Fl؎T9Rڗ;t zel ګ'q ;&I F7< NYoK6W_\ !Gp52G Lde; }ёi7# ̸4 z]?t!,oyƨ^(?]1sP FϷp| [4cd/9Ie̷႖X0qJW0ͮ!\Qy-N/Rj5|ʜE_%XbQrFX֋/l0NjУO? f(zdG4l<f+CQO>CG賳|jAceٌ?|=~'<" Pff6>RSpqҝ`ќ%MY+L+.P�&˞pzb5a05L'OSٖPiT\Me}/(<w1t/ȇ?_C =CL籼xZ=qMYt0.V}ow{E uN?_#H�KI?ξF8DžCTj)nl7׿Hbz^P'LIE19%5Q-9e*== 7Dfgi\^Ŕ&6c*S) (ϵFEXKb.Z&?ɠ-'BpkGPtuao%نi#Ͼ bPEWeԌÄA<s-?7OڡCs [<^Qm DIRQ"N2D\_NËyy^HtU1b$&*%Fa}0K NVP/}IrDܑɲ-q`$CqIobfʳ[sz'_l)$yܳe“Ũ8FBJ)`L'Ǭ|uD^r.s_C ty-1=!5EAד=QPZ)Z≈snȂcb˶}r? ՋnoQ1KS'tW7 5Iz_h�qPe)뙽W$=.uqWt` f`P yK4ѿ"G#l7wxp^$ ;q6L0Ձ9N>2]z�͇uwߌ6:4H5C3ϧx`<>Q_n8jH~lZ0{ AAj0z/kc>`bG3U W[cG5. V3AiJzBE +[2 C] u4ƻG?t]GH./8v\q)|kC9Mc >zrW 3'*(|h? rU-9F/&h"_R+)X}0*vuܫ΃*`جhۨIGP]4Nmi\_T.ۓ3 z-c?(ݣose{fI/v~"ݹ07]:$#S<OԓU@ȰнF8[9=T 0asK^@Ѯ8ivKj#r)<@= 90? #w$%eMC=AȄT,(.zo<NW3l}A�,_T~622rJ@Iw{εm9 hJR@kW/~;"\OHsJHLpkϏ띑Kj;s<^c)L  ڣr{ +8WnS^8{3g v١C}(9uiH7+!w8?y̏>u9<ԁs025B<=�kOȁR3#:4EG8v?zӘTK`A#ٳ{ʑ,|wse "+T>Ŏ谯E_o1b_׏!rۈ^1-5 7V~8㶙əs.!K; z&!*.@\#~8K_j:od2k n渤'rS}вPx YZ2Dcߣ~JuxZ>u8eM)x?;K@̙ ;Lmt%7'c'}ۍƖ^~d@Du&[V᰾β!&gw ΤVg8�sy<+f\0ۛN_BZG Ӛ/ÛHȢZ:)tMB.n7k=` 0!pHUs/7q_̺՛N^GkZQ9w)KX# cم=@ӵ^]CƖK`V vt08 L8؉i&0Vtp3'/':Ѩ-RLϵ&"Y׈(MnYo*3=-ݢuOДJfHv ]e2h+wulxZ{ ]IAw1然iP}K.v1R1׳~y:h2{ A^:"i ?Ut#BGIӏ#s;"o~9<ߋʳM((Q'5J^w) GDLd˸+ jKYoL_`GK>7/MDʆWbmk ym9%AOɖFtT#,g_N:t'CTYR'sVc,4v˾d7PTD&וZ>A֎lo'2ƛg%TFm{Nbdԝw`h)*JEܰ%2r{B>ˢ//?SK߸p%#_mN^>fBR[7Tro~t7焽$ʢd@`H###Rf h97ր)t%mcM4J C)w{> ;O3̷ϴm뚑\*]g @4h# y~~7HuB'n:~؋FX$]gJ>{:{_?jq-{@1:6݁If3|wwl;&FE0ySJA1CKd'hFoid$^[1` 6bxsޑz 4'O"Ki2y=WR%ѫ^(zw_PtOm} r~[w; N?EU.W71i]fI@S?r*}wm 锳* =;�$%0fK^MSZk_(9j!}yԪ%oh;;3wkNȉRrTG#~'(RA8[iWo?슔O[~`F2{/n 9{G&و cԶJD ˰X |Ef'㠛|[]J<e�ȘweŐ᩺#3~B?0\s#0 LcWRʹ 6@fB3)GnJ ?{o?[/YwaHн¦|]VwȔ:6} COp-C_W|yA.Jvb'N?0WS˥]˱�|ܔ6vjߝ M>5g9Ob+7+ ;%|V�5z-fyIRԟL_z62_KAep@ÈwgT!H/yN`JēE?X;"m6K<dQA!m~"Lӵ3NN;RcZ\aEtrhsם:.y{<6RV =L|;+y"N`*Ϩ?DJ؞C2f*Ozw͂Y!-@~>y!jzk4c$ݓ}ӂ<4x>#_?/28cs ilڣɼ\@F5{CDQne[L 'ʽ]Fc}ooL]4HDLǏ-s^κe锇#@ xpB gO?sC&oyݟ ~쁪j.xr`(II,h;_'m@[д[}+9ʂ!7O m|p&BO)q'"Q19W03-v4T; CL >3*W}&聤kt<YvqiGL4? ;u2w Moٵj2Y*| Lnzej)x<èM*%!$xNR­M(J RϷMkD+)K;^τ(3ޓ':?)(l`y2c KG*ݾɶij_@ sC7ö-N3ZnɃt*=,#+Rk -] Pw!t圵F졩v_jE E(Pjr$oa~KQ?I[r[0PTd4s?j0m`{n iPR4^A~k=4\#M슨3U_߾ubQs 1%q*A|δ~-evu�ίڷ(nU/Zc2.r!іU+N/zZ<d(K~{пT9iԒ/[bѻnׁpuo�bxrA9QI⅝%qOQ2+/k>H%EF?i1zb@Ei*Ahsf"^:rSNҹs& iث',5Xy. 4\XDDw{0FyNgiك5wB eT(ll->߈r%F7U9K'3u mI%رXu b(:]X9M<E۞?gĐpkdNoFτ60~ݵ㶵Mu:$szA[60{Uִ 'q޾sHUOSO`7FּusTK~aMaf742W@KWq/ Ed-6[`*~eI=it̍Qw|Fw/ns v&$0|5ݳ*ذwl(d԰Y4~'XW`nH NYte}Ezh egYf}{+7  1t"f[Os1j|)xW%MZ% ލk49~!obϱkOѮҗX,/[#[^{PVfl#'݈=6|Ϛ9zy\Jv| OOt r:i>Ωăj$FFc/sCʆ%DhjV-4dO'<#Cn:M2kr CrٶrMASeО?:9s ojZ{"ijC{Q:>Y3w\=Ira0/%8#yz`hyc;t)ic/+zU?9@'oq֛m!}9x`dS'(?hպoFp:E|Q8|y5gP:"Gtν${2v"_I ^^@wŔƪ?!=~!K.b߭\z PvuNێUW@ u^hj8Wͣ+N p#\?==Hl(Ǚ'9.*x}\.>$PZ%6.A~~;3 dn7Tզ'௓5WPۿ6֝#\26݌Fh7Wb @ '9ROa} >Gwm>2܌:="} sш&oi6y ~rǥ-)> ڋ9j!dȸzҟ7V@滳 t& 9w$iϊWw99zS 1g:Ǔ WsΕ{{JFye% '5o1td> +V΁W&Eq,7<AO#pE%@"q3jreI>GD/Cc?06}iSԁ\K0v3A̟NS\3&OM/Q;}F nќۅQó[ VV%\WV ܥ`RPLy򘏟J@sM/yФB:+h�(W9<iiZ;U PpqʻXGT?k0q� ILiyA)3x*Y;߫>߲=A5KXA_W~e'nS4^!vʍ#.l | ԯ8/F%d9'{U8o@zMk�_T|;vVj._N~"M�=Xco4vН kɈW3#8,Ih =b#u)!vD__u-W澬f+'~MAϽhv%n$`3Oq?~2Ikl1^>0;h6),id:yyJA<wZJX@VIQSo}iO];_s_u0Vqb "@+-s7MuzMǤh~"_Mk;S@s[NMNj)\ݢyr?c_)b](MS?8h6_\6J|kcqYu; wNa"UTk"|uEih ^ pGVC(BkolgTћoݱm k!+qgLԚqc;ܰY2nOe( ϴlu]Q<a墫ݫ / C8ҷ~"d~y^Cf#a> GEۑjւoTxu�GQ.sLvz^2\@ ww*dfJ\nSTG:*^ܙ4ṓFϥ1=2],k#Hk8 mo0Pwڍ{:ɲ%g3fNfCMBcM \׿{IY9c!6tM!os[.G]M"VtCd*ɮQ[nOfAܟ: SSgA p,{K{]][( qne&`Un|[:c 4ro7Ju t-O$=<0gy9/!~ʶ};#%KaVqwUv%/`2Ƕh/e?0jWR{ gbBWd*ϲ.(cй~;/Es֠_5QΉAuS\`|dz V:mԵQ46=Py@{|ȗm" TBYO@tVkHw�}~bmd*j!f]P;nooyGg:*EĮ5L5S4w4${!Զw{SƩwwB f?lDfe9Yro\Kq0lb8]]9Uu߼z0ȫ$wɘ Py臀~W2bD_9MSBg]WTUui=x_;٨J0x㝑;&T~  GG .Rrˤri_4JTZ5K[&oقiJ#Ma tRn[Aƕd 9 cS*#vTU㠭AaN#mbseQ}^mԫ_*%P>,~Wm7\#v^'t]oeGڱ[Js+`]v몞W .oQ&"q\A;"oLO3ɯ.##_֖`yI N|^ZwvcRo<q<;@K<'zD=]n,)r5@pr]|; Z7(HjM!VS ؙSd:CgFƅs'*ۺn5<6[Oq3mҕR (+& HyS `٥Ӓ |vIC@ G-/v$9({YRvm CG]j^@T{f򯟸ԇoY}€߻n]6S-j灬mi _u Œ]Q^r0)1\f&G~TPli t{^>9 l\17>ܬ+I>T}Ҷ6A_W.6Fnq&JUĴ `+ +?B:wݏQa)ۥMW˂&>NvVȷ;2<$A+0M,MXP֪"R y_ ׫'Q:* reΑ;(qo<4ҹ >LKէ4S2 L'0[$m+)r+r{L~ЪuPϔ;7(;l9)|ŵo\4 Dv~Ì2޼ k,s@TQf.MLg9HxǕ|}P{f?Goyu|KTUXD^Z\T \`ɥ4~ecǰ`ЉN_4Vơ"u%uFҦw5ݺ{? rw(h}BJ;bEvȹ3?ЫRBK/* /T{_(\EU?Ķv`<Pٌ;o mG-c]U+1/<P+_ϑvS8L<e$}-zW'(<0BTǪ~5ufb`:纙E\ Db}YPj=CŻꖠ$mb:cJfhz(Eq]4Hf<cgH/1~;I`|mx<r|2"W_|ñOgl}7Ym)Q< mg׫S"͕5ۮj2,NnyO0ktAG%AQ)&b-#Z^=xFefrTUhx=E% 0<-z>5"ϡT+ug@lrpѯ?a|` &d]W`.?D"t-nD-{ ܵ-I< so\ auiM5jt#Q:K@63aDyC_y~zR_FRy#U"Z6]='bG͗t|1_ɂ:tlZBi{(:p*?HE.QRuiIBHeU(J {fYP~/ׅ9yuf*{ݎUcjAF P~6,CG۝uU1mC aVO gՃ5)*NF?[e?$8s 1CbQ~-J馠3jڠk*ū墧]9#(W3Q U:(:>rܕ۪v쭸tE϶9EL6 hy9d{1sG&Nk典7b?[ќ,|t HOŪ% 6W41{L/Ӕg@ھT=. jf.LXYbnuWAQ9? H:Y]u?t,Ã5P;B#e&NУMZDNH8pX9G_SLl7m�{=1wz!,7P@x]a \ ¸'7\f籈U'/Mºk/Anz0.ftIp;Rʞ]b ?s+~ Yޓg~#܍~c 筹ʍoiFsg8$Η|fvI 4RHX͑ N}iߙ(Uxчo'IGS3䯂#oAZʂ</Pa&AAqۦv?T7m5rIz5ogs(u0xo: bh"%žd:uk%z.PJqy$J^lZAd`U0~r}fڤϮ{OọTW:5`Pls%zd_Gu fFOE|FZovO0OT+zA4%|c b-j^sZL0> _ egadgyfw/& څ1]xUb舤{ȦI`'9d7^U%Z)mnoQӰj@Ȼ4:vVn؋Rwș|Q,hI 0x=LN7:N|nJW,e/ヨJGzw|;Yz_O 5jk$T Ez4@#].kncツWf$;ݣ։7s`,SvCLU?uRKOw(#0]A)_1~i҇-aw(NsJn7|Hf`%/vON)FjQhF?'dzd.&ސ!Qx"*~2z cqb(^W}F~VU+AG~ Fʚ5ك|Uw�cǦ,6?d"o,ggB:(wZ1_ٕ9”k?@A̱pQ$F6_Q/[ȥ{o+O]сh*ཀ.2a`KǗU~ZX-|zGЗW4}b˙M ڕ1w莚s'Avey}]7*v`N~w.ig]pnڋ{.t;mDt]f<MR65цGuW=gy׋QsWUuza?+j(bxݦ^ԄgM$m3@ɋ=pW7Nt~*5 > *u+/ʡ}vk| &ؖT@7>t5zO�q2Mx޶D~WsG@rmJpWד$[cjYN])gxB`G0\)pN ha'&ȔNwQy!F9u}UR6X%x7۰=јB0/ډ9N_|< om0<i )j,2U-0x'S'YЈca_]C|X~^P~=u@pHha̹*a kю꾝%S;;gODn*}yċka:AD )/|AH8̏W�jRPɌJ^Vv ns"r_~a\@>8^MW |rw)*U`+Yܙ'Cv]轝58reV"v%N\CЙ&* 8h=XC9S^aFi?r'6u]7::(8*ͬiJAˊA#aAr<:pS7ߓA>>AcQA|1�G"c[fL{R+㍼Q4}emHM0onCMQyql̺o*tB1VWI?c$3.S%<Mz |<dK8~ r4bn+yp5tۄ@zUyW%Oo^T\|T9 rз^#+ꬶqC4=\"d,^UZiDsz1=0n8u406'?\!W$Q)Bvo{:9)`/_{[r >U3\@W<L4T?;"-G \r<'Ļo$ V54F؟ubfiS)<TJND:ʾ`2_:qgNXoG矝l6R0zЋקۻNr^5ܭ]1 0rn回4;7¿J~ \ 54m95*QH>y%=74z_GZ3>CGz {x09S'_;'Va2w 4T3bșvaL-x{j�󞇋!2 og(mB˻(|BaD9V5˷D́y0>~z@M(;ȫ3/yld0bx"ZV``:޵a|I-Aou!oO[|kN ֓i0퓩gIܭֿh>v\ns稽9ZBjX-q3HrUcD={p@Cb?_uy|CũL$Z|OW'#Vέd|5fUlUSo7H,wkpw^#SD=1JQG-J>i/T>[3yby+$p`C/ r,}O1Eqݹ0nŔ49V6a\iS`\_5j$K%J97a`D[ j>\;wAgta+!;wh}]~y(wq_U9%" ^ :D+}1DD諐uY|Eu07K)'Q֘ޥD7oMF_ir&)9ͯwÜnS'A'DfŔ^L0q8̘Mn"zlWj,clY*N"&& eאQ v^nΉÅ:^J v\S֔AQh=?x16}|;3ǴVTo]P Mc '(xa{U E]8+cy[Pmw-f.x!x[OT,툽B-x] VCD(;5ά/,~#g1WPK7ʆ^یB{6ʞkkC~="6  NMퟎlp0yry/` ڣ7 &YM0~sR ><בZe[0vC]>{kSC:K`4]ؤoƁVN �鬨ƨt}qvDlwwEc[A/$`gW C\_R1Ҫ+/n"314&;KSD Y>}d:P{p,:,4ʆu|7'& Z*3ûEIkƂVc^`t+k?Y |_}1a^O]L orMMzVst8ㅲWk#S[Yz Kն&`ő +cOc6jPH?\ykl|zO;_$ оQ"H d1'Ͻ@!_M~"j FV]`r<x9ywn~&)V#Υ!qy7ƸþXӤDm]Ӥ+{Qid >ZV:#c(FҌ1rl{|]H͔B筠;Xi\^QL.=݂G's$_wG H]0(W"4׭̭(uWV>V`v92ߕ\UJNu4(I}p"u~vҺ_#cMzq~N3oG'Vl/?f]l61"}O U[50||F󍇐)( 3C&yt] y.ȋ'Aw } =ٴ׳պe1瀭 R/ɕpHL'.QVƆ呏c `TRZ L۟&k:z݈D"b97-d{!SUex1*Jj&oDz7~>>[f4F5KEO#Inf}2*9E7>RG?'v>-#zk i|}d((Ks-^A2 |0PXbw|SJnł6}̝P[ᷧr1'[n\wϱ"u[z` c~Zܳ&!N[ѐ~Vfyh;/݀{zͷwa% C6@۸:D n5sw50li62Z<tUO@loZn#THue<W6AÿcDiRn))#Hξۄ!ЙnM ]~Jio^l23*DTF7i.(m쵐MA5LI-[y-ĈRĴWP:jQlB yx*r ~M(.LU\ .C\b?:EQ>;JztRQ0zNiuˠ(<NB1=ڄOㅞKsX`33cA٘;L)ԁ]g]tMD=w݅A oD.V١w=$-H{K[]1{!llIPI3T/f)&R8$"fVN7-rh0/[j֤^L9BUhτY`R+Yk#>[ ݻ�Ytxtc`p)~WB͗`i89<W7:|A4^W :;PNwfsbVMu9r\;=rS1GD#YVIz͆4z#:x[3ʃc)@kyknkoCDĭ-G5dWp 쪋*s*33\ !mLG+[+1*po٨~Q9hQ0h(Lj=loz z%<soh+jطCy!MVW羸C|ך"0.I#<rgf\:vRx$ƕR|GZQb"u_$X 1ve!x\VX הKyA2؍t5 3՝9}7Xw:"䯅*(+no l֫f$*я4_@]qo41P^1$Ht3?H I| gqv[$}ORfxh?佉 LHu5IL7Zy=vJsFe@_&6Y#IZN݌Ek`˛卯&Xẃg_ ycpN�m񆠿l6 1aeiPMA]w&.`O$7̩ qIqM:[@m3 gocxw^qA`Y[3߰vbfWO.3e9P{e9ܢIEo}UdA5}$gkf X΍?Q6变4}FRiWF0է !r_2rC2Eps<YS6" ́!veM3ʤ<:UN@0;%PJ2Ul&^F"r|='V)eN3GEs!Lu ?= R~SДk<a=9z}ȝQ. /Fcݻ/ z?H,sf{K6آC3v}?H<${{=|7" wz+^%I b 3ŖTyd#2$N;!f'. @?Z NAY1|Pet;o|vĉKK1wfkPb^^Gumokє/W ZLNWaDq_^$._3B@? 5q~6dU ӎt,y09wJ*b+/a`r àl`"ICՆӼ3. %wSboذѦ0`gxHɟ k>-DYRbDU*Hm&AC_E߼"vHTAδyfǜ.˃à'28a}kc3L]O ן2!Aeg6]:$jJ9ydy GDNQh\j@ tԀ>9L;",5l>k 09hJACwZ#9^NЏ& M]o0y^0.'IQ M%Ag^oop@Cyg^(i!+2v n"ﻣ@Y?9 2kQ8xO>oӔ>|q;/z zWf/gAbl + 0lhj؞V?"UM%8)F5"<l3H,ͩ FI'Ax7d|" G-MY@.[VI#O4nGukշd$oe( |.emGV#vXR$mރ9cEC>{u%Լ>p_7%AzVd , E߶%E%M?L8A73!O#bNrz VR|% "hᒜT!cH;"15=J|gMG4{a~E ^͠fUWxŢ.jxyjgVw|8~;֑j?'Au/G]/g=Fb@;rQ ymO׀?7FEzz;@{u .̱$C N/ƮǴwdUs.Ro�5Y+E=W驐Vd)<oi(ra)(+'~~DY'Q^Z9Z~ 23YWPϺCO Aj&bW+o}FtJ[lAca31h\o3xZ@ͿSbI̛G1^OBi-$0RD!ɧcD<\c)L^-<gÝdhvU_‚mSy>1̠2uŁ�LmħJ34fwCHaeAfǍo@#\{Ƣʒc[ VlPU6< z_jIo4*vOkO)myUV<Ɇɽ/s,(kA{~:y?&7~*%_?b#DtV寝5x1r;k̶P[}l(xS; /A M8'Dcﶫ7@U;r)?^|o ZAzеMLv5:Cr9*ϼ\2EuZ Ծ lyM>(M>`Iŧ%Σ/4/8j^w @jly)WD5\g{;mHl-|u+F*7nA{%[?)؉7J#vb:qEcW#v}-G|TSڅ,jć Ve8^tcG*0a݈[x0>.h vfp|THYV6whukDZBk&&uMMA;xunҲ>^Š$9-$<MLJ+WOvpұҾLikխGlJR/.%sjك4Rߨ<uYa&Mҙ6AFFqH$H4kzU57_w %F`xpз?R cV )& \|*or Qלɀ.jc:ݨnfux8)PuLMMe/T<ٴCɕub7ݍua o9yF=NΟD~c#֟ę_`۱y3fkɝ>a6 [i~b:/%9mLlhZoDe4;uJzKrx_cip7d_ط9V/i,|_h/>"<bEeZxI|EGר'LazwLxh @9s/YZN o�V>DnhCF95;s×74:2#.s _q]ĈK Ŀou?Ϋ'ׯŌL~OY/FkDгwf<ܧ['Ikϡ&Sdw\!'5C@ӈ-05=$;yQ6tSJrS>ek@kAST!0$o/#1MA}[ YVї }{ׯ#+zi FgՠWNkW:0*&%~72O9'{Cn3">ڤ٦PYp*J?.$/܋^/^F9T\x QIDi0*}I<ijѣTS zˤ1 9myؚ-リ{_NU2jraEOPsy00bɂ>۵g0gǨ$fnEɝ?_7$9nye @‡:#x] ku5ͣ>Fm3.U)F¯7;+OV$aY 1{MV4 6,'JT\`tZ]$X&rzdTSWA >J^SgF1s1Ymr`])iD#i�uJN)Y"yRйc`,;~('x_T2]}33^h/Q% ^o0EM5be{@ڻ ?j8`,K#w /4V^\#7U@ xtt> =(MCdO.Ӛރ4 Q1m}?OمmEaHT!C̜\8)i {5bn q<PœcJt_@im201g͏ub(,Uz7 #v$*<> ZSC iD~̔N<{A*)TOlx7=v <ptkPLdHf}}Vv&| Eeϝ@~n漄:!y ̰n& b%>OH[#-g([h } ~7aA?U_L]۲@/V甹m/W.aQZ%,Y0*xlKTpuQlEHկvxtkJٜ�$SCԶNU?V_B̌:=I@;୺!:b7Fc&C ҏP<}`d <Y;GyD@c2cVG7 OQũx 4f£v|j</1W$2_t`&py7:sY�E# Hr-~)u@X.pZwY�ͪ+Pyy&=_Gy0cއ,H(7ЕE(J_YNt)qaD:!i '3.\�;rSnw +5l)pR^ꆟ'!!EBц:P^r ~~9M<}5B~vw7pzoGd}^)mydk=Fp S@"#зpz Oɦ Cv>FR|0wɼ8ϋKaRy6 IJy*?@uϖ\ >;^>v#u:cǜfS= /v\+mW>*xWwq;AV쮍 cf!j#(LD 9fFM dcOFn^!SK}'DtV`y/NZ!}P{>+ge輏>>8Dxѿ9aF' g#/}cK@IӾ7@L>l(x'/yQ<@?M y?ެUh4N~aSy4dQ.'�{{.Hg@[]c*kW7 ngm;|_ 3vû 0vk/`l_LfJDvc =5NtcޏpxNuW 0(�Fokn~+s U6bd퐾h5%J\ν0'dlU%~ qd-s+?\cPFeI[vEvvPd0 'ĀٙmDO xG ǡ<�r!v@σ6/ǘ71X7\bMK}l}_ry 53$0?~汫[QF}$YyxbAuD/JM (yS".T(9\;2!Z- m^dE=q8O@ &ovml\鑲K, ̗Xל&H(fM~5d<PuaC7;RpW}gb-O ]g4ڼW1o>j 3iA?e W@ǰqC*wrXVKzuM5«e~z斦Um{E_욒{^}H�uV֘._v@�?O{/&[y z=߾$Rҳۊڵʝ5=%қX%~\꾄kvj`}YI9n :Ӧ@cMy"/ytaHwRe>mBWD]\iJDuىUjɍU˖ָD�PܲrwTy +@F3%(4zpkM%ygBL@ >ù?}R<(3)Է¦()=ݝ"&Ֆ"cf>rApn=H/t rj۽)=mh]L_?@ʎ}ڗAߠw=vL&_#2uM+/ŏ1x;7{1v؃587! mC hتpt"WFi]ODn=/ޣ& ˦u^(L{k:9>`<PJ3GPGc8n&:cF(,3J2$D)ן҇}o]aid^?A5Do?H <d˲0` PFHӆ_~eEQ |fܧ{')�GB5ѾM_Hc_�eK`ưeB1ˉôirmϋ)4sDѐ]M1R ˯y+cÛ]Bbzjs*--FcDI94wlMUO2b~C g@V-OgNCh {Gb9 {i7t(½K@_MX1C\0[qL„'~#y'w+ $@უJh/?_^ ڒ,^u~Y@Ygt r%+hW,~ zp>^+@q-m0"kf ^5IM)QpTG/TʄL]~6j:iT*hF<6I`x#': bVZ=?PK=T$JB@JqQSQaAq mVeݩu髨p�P75>D"<0 t͔C,Ќ۟n:Qv|g}:1=ڊ0P#6\~#>[tIxk3f7@^6nO)lA<wTH{Y^17݋mιL9Q"oYk@\׶dgwEpȫkQ9\bn W揍4zfrW_g\5sD嶓&2OPyWGtU|C[5 Htzcng\M>#}6ař-m[s-l0#yk~"wkhG]mn:Zx5#ѸŴ,V9LC_+{U+x<WQ"xnKtc)tw#[CQmfјHwꐋ6^|O5f9 ۯ@<l1k%Txw@5%slP/h=aG0@1ik Exoq�Ɗl"ێ+HG/XBzfeyMxQZfL_y>m/ ;m:B5ǂ`0o _}NwA׭p{ +`D/Aí^bl >Հ\~[k{yGMO'-/aႾ^O\Wui?0Ѽ4~ayzި L=@Eʆ-? w)rᒪ(L[ Ԕ3*WQt{BT*T:A |IY*tAE~ [0q/w!}f<It/.ur`<p[NTtW.y1}9g/FQLiL{PIY)2wJS0-)pI6h\-A榃 tT?ηa )2ҟSz(~>e71jT.v,FHm`Eō G5Vj{5 1gAX5/Y"@Pqm~z!R}vh}3,fLb7 E#Bҿǧ#qn..D8x= 怙l׺ =9=bW䉱35ttgݜIT0 L:,v|cNޭcfqm h!+ơH'}j)q\owx,2^0ch<wOfpd imnܬ>DД<>?,[?Hזa䫼iL]VJXV愁4P໙ioc[,\yܠxlB;ݝy7gԓI&}3tw:q$:nrqb w-<>oVa3#cG]�7L&Z" Q0p}'O @1q2)&t\ x:&R/RFիȴmU_M슍 &1(zY_{0XvQ9w_RF«bff; jкK$Оs!~ o8hZ/WѲ,w_sQ8z8{U7d4t~#]o5-#|*2 9͞ k oh_S/c<hVTKgw-,vQy/s] Ү / @S_Sw a[Z,9Qs}<**v޸IIg$m?먃)k"=05-k J%$ D_͙SN5Z[ QҠ<_hGO6ȡM+%oȠ%4Q6oᵠ(^=T{(EmWP. !sfr Đ]{@6xލ4˚vZ%Zi˝S@_/H'$ӁJQV·ZJՙE>7xUO)@%gSf>{Y{klL7wc|?8oϑ.o<l5TA~/Aܯ0!2r}m)a<ip\{q;K| (] ܽ1wЕ(q;2q,h4(AU'$É.ɤQdLW_z�K :x }cw˂Fb4H\ǬLÅ!O fϢR>US `HqB*V1flP2EG.Hz4dAR LyIԾMZjd}=:V�}:ܧvW$)5.$ӎoU@ rYA$. _߻}1:'TZ,'=.{]a-P+)lts@/49.=IC(7 1 KݧGHm P$'5"&vWb`_hΛ>z@4{[ m6+[wnB0{V{s?˗`X瑑VM㉃櫡۝:Vȍʭ<(*'"_ z[ ⵍkY~$k;0o..%_STv>AWgtZ_X $< kc\oE)IdP}A3 :/W/3|ܫ睽 _}>qkNUm:fl3e-,t uVXQ*Ds}W"C pٜ R0Kl<$hA=_ܶilME^W>2,2$1rM`PGJ$ndF\R?jnՎ%:?|ˋ&a,Y�^un2cK}.$F`17k\O~ 4½5ռ]9ʜNUWAehE[D$.1T&b e)gWFkIK*շ#>:悑{ =i2RA_j\-C}O?yr�2o5y+ ľ0@vbQ o8Ep:H_iJ +O~ʫ']"J>ףg#ٳS(7ĬnS2Wwox\.4R8W_"VeJ0(B_I tؿCָàqQ@}^"]~ !mb }OxYMʕ_0‰d.N2?Y!n@1Ͻ{G9upH0<ױMg\L>?ڂ@A80l2P !Q1Jvd%%_x"gؾ+;bIws2N @ŲQ{u#ٰE7ѷSd/^fE@P8UK1U)l5_yׄf591CAg 6=ۀ?Q#ML_7Z} U{^F:k`~π tN8}3A}||#+d]ռ=5.%#MЖcgF^TvS q)?u:u*~rʮ+`r{#31\wIpvX9._~P-fYEOrmH* ԂT-K<FJ!uW_t!k$fGʥ{&xaQxUuHi@nʁ]0uO; :g66ZtT]P)Ko>5#Ue.Hs<_%J̢y ȊݕlLX֦#(V׊?"GG$9w%=^cUu8�)뛷:?vvƘ;qv*gl7'o|;(rqck10d262#zuJW#m9?9z{FkVN|t)[=[brmb5>¡/ 8xE8N]v~ê+_-l-$WXgk^|o6}؛pzXKFV|q-U> ˋҫ)G[Rs?9w&z{xΡ~оath9%PJh;@ȾipjJEQ~oY̍>v�t+Ѥ\L2z"s5FVaB-F^}er&;Ua3㷇נFZ i=qZHrJn�L*ظ.N" H3i9>wcλd#/7{]QԶފ73g*A fF>#WPޘ&җVç靠ykz8QmG e` . y=Ѝ_Tog7A]ٔzEF7r>; s;]ߤkȶ[3+F'_|Y8kYi!#&?=b0@m;7|ܷK)ې2?d'WM.X*6vߋ[\nB}y<}n.vW4 %W W Í$1U+^<"ɮ<3gC6[qֶ}7"lJyƊ1{7;rBb_|nb-eϊDoo57GΏֈwO֏UA717ϙ2GP:zUqQY$#wϿ@XGF3?pa7DV g(?Cv\E}%H #nFxNO= 'eA=ޫ)O84*rc zRE^&8\ɶ?YW7_REAkի G(IWƀ}6X{m EŖ Ed}be-u'SNr5fm]Ehg}Ӛ?kǼNs?8<ʉG yN] eIjP-^{/=tS݋ӠlqH�ư|*Np/EƚK. up_yyt4o9+[.Yz] *BG>TڏM\DkmSA-?c֞蕊p04$pW4RY;1U.+0cRlIpvn̤\/cuuʛ1r+K[E.^,z+l>Q cxy#țn5bފ}cwp}:O1Fv3>]ڠy8J k(h]~nThZZ/k?h|;h:<_i�8Bx]7`|^6 3;Qځ1q#vԿ}*dyKLqtT/i't7͖9Q:NX= Ĥ<Po~U 8u%Dur'S/E /{HMr!JOR\URw}MpR; OW)BR_{.Uږέ >+zjA8MY ;1:wR-l==h/w_QtoYxw4$ֻ:jLXpȤKgz95ĜD`7kjǔAjE_BH!&GBJѕ6 _𕬛w%{zӨ<c2Ǫz(WVj) _Ν/#[wVĢ얦|2|d 3D>)D~=gAڞ^JA[VnU܎Od~\==|KZ=$qq_2S0k0 J5 :wf ic[-tJj'w Q??[)شܚ>{ loǷb|Olv}*R{E:ÝMG1"AZ tf3e: ~>1]`h QGBСsg̔FG{UT@l6}ā/X,[ea;&ve*]yvd.Stn);F(0e+o@%-g Z/3d׷V,ַ 6[p~a)b9A/X7FC� F= |#<Ă8T=}zi$DN% Y mhGnq"no4d hJ6C UUb϶C&WPw''ʄMBlqކ46U't?گ3?5h.U`O;ZډE׋8N>;QuƑ1꒻ yx }z=ƄS}-H%E{Inܬq1;~cٞi͂ $FQvdGo R (PL_\GWiGoUB3B]׈ϧ|fCKAi?/sUNm1մS)ZTlgg \p~Q8oƵ-xU`xCj3ھc!' '}kz&j[AkxReC-@gi6we1Z+cZ5).in (DCNmi =OF.{g)x.&=& J|bw(b6NxLFfۊwo驞^=7σ$u f,(byvPY#*i`o3ݹy )hQp39FǼgLEtw OMZ=A܍t=9AP~hAm鬽( * ݘ]f7:E7_ߏ#㌭d0}w` ku0"}~iMӏ1]; *j:E.3f/eUw8 f+`$e΍ZE6FW.nϊ=iJ{h7>$-Y( )^?!=K-#olq #d]w|$9iNԚU2%yy5v!TgP:L`\u0ƫ/%V(O?!?R*Q[纅\Ҿ|DU{HS9xXkPc5҅&$W0y1+kkk94T|8# f| z(Y5bfm}%1�Z1,m~,;b\UzO7>Rꎦ(u_ݾrZ8:vrK1U;nߢկ8,73<yㇺ [2:醭 З<&]J&Wgjk C+o<HB ]}d 2NxCQXY,0-"woj M?&Z uBNnB؏G,_ĴK0{0憫̜W0컿MA?(8Z tQ3dp@yy%]>&EQ+ܶNx*]/wk»4#{)aݭoc蟝BmF'gىD=+)V >#pcG ^༪ ڇ^7RKP7dRw'FR50u!foZ( [iĺmrn Q "|̀q@,&Y]p(Ojŵ9A`0Jd eQjTܖ;_[<@Ҵ輺w {50q#(YϬ &;Sw rD +6=d$޺jxz;>Ƅ]o 1m.WKrys.Sx$rN?sϼ Cn qdYs^3VN}KF�YlT2 tQ0z�G3kEQ-B ݱ`w{uMFI.W1++"Ly)i%^ SV4Y ya{*:-d9/먉R,3 ,/^kX2wÏߜX_~ 񢊿 \cm[xb@F"H܉e8kh'}fncF|ؚ~s%MAߦEIzHKvދNMo []}/N3sjCXi=rMUcN_ ^-kE1ZgjNM.{$^ GAtBoЛYuu Ć {oK$Gֲ�Pg?42SH[i<kW(堲h߱]?_tɊm*xqD-o g)_候qSF>_ڄ6L}Y}&dvGv~g?}QڱWrmNFf%uw7y :\&6?r+~ڮteV/"ya(�j1You-?]V;Ƚc;D@%0| 9lb0m-<sGG5{/DW1p`cTomG,{C]P(Vr/#Sn/"e0c.蓇\^!ߗ=)K oD+H3<l$ux=%v^9|&id,g_F~jgh8Վ{L'?q-xE~_Jŷ]_l'yG`N?Zǡ)t+c;Yi I!<頙|8(jti,z M y(3~bP# G~ <M?{m~l]ՙmE 0RjC=14s!`T<%^5ڶQ&êOn'Υ$ZD(3V@}[%&=3~)̑7 ڧ#ȼ|"B,֛|pXFt'R̲AWBMϫ Ϯ)YCƞFr4!,<�EJ2TiD%h 9d׾H߅W>~ 7+{6U{VGeif+;~؁4|u%u2\D^ɗGjl9tqKG ;cNK14n " ZcQڼH#-Dv>L'rÖggbeZ}jWOz|Հ#U&~·y#j[xRA6w$LJ62b(W&0ŒMJA~v#EoZaڱǶM1is6*M_*+K<^vr/ 4gtqRFW93m~}gdՉ,vIBE*Aq1xvfO$:v+ٍɋ2oxat]L;Qzҩi9*$Iވ縉뗬 ZKS}:W($c1?AoiQ(nTIH/4�Udh xu%?>KIQ4FSU5Rw>3Ze>n{.ZtX5vG 0#7$ps̵Jb>V o#>,޼}"qXn$a6G aRJn9 *n.bA_a sE]sIxL{<ݨ|.3wKk&G@kĵG`<Mc7Qş R^iasj<1]t MzK:'PsBŮ{5l!h~/^ÇjBh\}u./MxQOnʝuP (יv>Ļ}`fCV.d:tYva7- y)VPA*bq ؾ8 `Je.asOM[E5WP^| [-ծߚJ/eꭟA]7w1WucWFs)iDCΕ:TϾ ̸Mnk T"h+[*rٮ\ si1˩%20hMF?:l9<v=J1x΁L-mj1b<y X6He=~ P(- 7N~MXUN;{|8 ?#/ A ,I}P jC p=C-B: dF>ڧˈz%?ޯz]);*^|ƅvu/;3 ӈ&bH q6!ݨrGn�CuCA٥ߛgCf5ۑ]cMD{D]$WE(h>T3ܠ8/C⍗F.O\&Ў.]ݩ鎄f5QmLn[#3v`Jt6>֭M.Cn oEKLЯ9c —A,˔ɉ ùcbA|if,ΰ& =M|ȍuw@ms 7ga\OdLS| F=j'WD'fñ(}@mE*onyقP})oyh&֡3,EvwJ\^%T&l] �S6 I{((o4x2O`Vue~Af+:<Yz hNC)ꈽL~5k !aLZ'/.Հ7*>(st% %k7= .DǤJanmJZ9L̳0i?9;)oEfwZѲ)RQ(CgsKA=2@=tL&̉ϖo&DNbM `8ؽP=Y� 姏 :{0ePžq䴮 SW*uvV4Ar[L^]!PW/`vUTX H$ͺϬz's1Iosv$*7n fۜQAƊp+?hs*S]4*WDL{q{-JlZ 0FH, \yUY4 RtP&3%ǭKEנI+?cpSXNiuU J $rмA4QK? хpĞ%3>UT5ĝ.?ؙI].L?]!ỳϵ!_[F)3kFsaɳE}gS0dClע2B"0R'pdl Y jMK`=+Sb-?bZ#)T%]<i4q  R`}Us*TV>iZ_ /Zذ ӵ̜^-Dhp MkލD#RBDPl *_) u+4IDqw}U1qάވ^m,Q#GnA걛MM&&_)o%!Ԫ rTOϹDY=kYۿb@Q[+۔#|Lxˏ4<|?^g_jyW hҩ`7~Ժ\rUKhp ~h&oD͆0`Zy'r'%鑽(Uy #ٱkޱ:;c ~;뽠8\ WF}-cƆ֭_] :1<@Rz5Nʘ=nɂ=sכ4)κ{-^;'Up`3&fI8hpn8|mmw3h='jrf_td5E^hۺjWj/,%'S N!\|ـ 翸¬L<>tZC2 P:l ڏB#{-OzmKr}E$#ͱȲ3U$r)Eni7zʝD<3_no<I;z: ~G-~ sMvtߟ#ֹmK1(q;3;É�F0,6ђɳ(9,h h=韍rSQ?&/^#uwqWsШɵ!g}Z|=J ϓVXw5Vۏt.;0jNX{ $ z ɶU‡t]]U!Cq(m {c~goYNG)_vbfOw[w)L]Ar嵜+dEۊeSe6' y14U+HP,ʖÏ{drI),(Y̳ U@jrFҕ`T[rqs7ʋ/vG77n|uk4=|=@象ۑO&pߡ+S׌ 1}{nPX/~+@kmGp8qNsG4oa?i`>=^lNp7P^8 k(@;P78$͗Fˡ*Th_b<^gW=d~Yw /)̍a.\�UyHV_i^3c5(}BoEbAdOy-2h}(#Q$d_JѴ 4{zϚ w.N'C1z@-%ЬL~xW}Dx)~$5 ]7Z,>F#˴Whc'*U:we;bUAYoēAC9|/;eҠcjҏ6�eME³DeJς\0v"&;m1xaӟHp+¿{uJ'R@fؗ. | C4+f{@UGVC\3oAHĈh0W RJXCyM֫Gry * MڠF(Wd\ 5n)הPPflt& 4D.J̷o/G}F3)Te+w^[іj6^y3M#dVe=0$?vUszуK GtZz¿4/49_8lG)6*2\韾Qޕ7;DB1*/,&>傸 g\F˹S/=["H'_ 2>Wv, Q5nHL=k>\˜q|dW H.,O."lƋ|\{0ġ*Nͽ6VG [ N/G\(/.G"(profbDFʾ{{%!?M 3x!a{nbNbj`O^/N'GI}C6"3tF^^2lud[1vS۵χl8Y;ǖw"}_MoCM}:o23Y};ү{w#_چTPW]�]+Ԏ\EbjukØ·D@12[˄)[}YyVFT$|y*Nl |)}Td=tT,=DN&&Ik?Kz|=leu;<i5J26'#^^+w{5-ȹ#S42^dw%"$W*J@ɪTL\0%-{@ֺvw9f} s 蟋ʕ2Y;=$x^6qNW,DNIfn=$r?Hwq:ψ)qn~CvԵ "hj 2˾?0]k~aR>$=-g♉bYP64)A9PsvԦ iMmWy ض6= s^ 2}X'{/?v,Bl}1.vԶU}3>Sy[׽o[' Q0ťWc$oRW{mqkD0{O#͉sjkEɹ/آ1 Pt@ϕijK#"䍵4cwy@輳&=}*Qe;1vFʌ#{ w9uKc-N/`uo,ywѻ׾gqT/̴>UaZfE4zq8FN٦Jɥ718-~ rm?vLTaUr0Js܏^iW %|?\WA;,>fS 0vJO.&F9 `\V *ىΘ| ퟵenl(j<ͶE1gx}L [bRA׭@/?ҷ :?Vйv|A (Ѵmˏ4m'-)Aԗ7l Y\O(MA1扙_Bڕ{1zeC7(t0z>_6s g,"a,eT *!ڿ/,zhwux޳%yDW*BSo.h&I }P^V앝"b#(-3b QFy?u&CPq0Jm Ƅ|VWQȒf=9M5LQzm?Fetc27kickx>$•Q-,9YKBk7`O~| 'EKnG_mcyбMHI�]Ѥ촡aG)_^ߑin@MHWWߚ^�饗(- M@U0pGCLՄMnM":LL;OhǞ}[Sc??{|*.$EmF4[w^C=LVz;jֵU0`XdZ>bםٱ UukLMף rֶ/̚{&:T}n<\GVR0ͱ_XҐ bIctz`H"RRi})P[Qȡ]`Ik]tLwn" 18ȌеQ& $= }u6 $7k4:4)E'3Z=:DkQ 7ٵK+Dx1zTaI;kr`A:9> &%(L*EY1o W9Z&P#eW}Jhxkӏ$FԄ(96E^#JlhvR? wG`߮]osg^N`hX 鿐@:D|ZSW'[ ;gM3>ɵ?72aV)H\X܏1L䱔l?7g̑5nv2^G^`ʂf= Ofj�IrvkfcJS  x~^FBFxWPIBjŐ7pi}Yu3A+ }˹Usl:#\Z<8 <vⴺ zPةhL4կ>]=qSc..VCt&F(spDv/g(>ߢiKOƎ23TAlҨC%et}x !.axaI.^?(i6$JaAPܐ mr';i~\ed$Q?Ė_\nv򌾷e+6ǽ〄=}VO|H 5 =)ғ) A YnQjNquKQ (¢ OIZW M7}]_Mb[tH7L CiRO-PT#]0J&=PrIgg r4ruJ"Sdv[(IՅ_:%u snدk@Mڰj.3%Sd^IxɻHh3 &murDOp]mb;Uj]3Vd~0-t6|6|Kad4\t=W;y]\:+ .Yta/E06[hYhG~o#&n&chs604s츞cEur祥1=s45Cr ڏm ]gur~&g@{[ytls .d 0v-5|vGkYŲ#㘑C 0m g^ЮaZ MνX Jv_gY,+>-vE )C~+:YLM\Plwt�!/@ݶק~cdVZ  u joAW�>dl}@N',;^HsrNdJ<[[Ǎ1~+M(rݜW_0ٕoԥ=koJ>ywn۰ٹ@9pWX`Nw^LT9x؛jg$F_CvɌ2ot3=mm A093{M & f&Gb82Ni�aS;RE(j焲8  ۃJ_!RVGHyJRH ;'vycXVՒ e L\L ;n`MaH yz3O�y݄kD_ΦnP ?$Åׁ=ؼ+d ~'12~hA/c?-8bUY !?8dgT~IR$D4#_;?:prHdw,Ij AICry] uL<mǏn~ccˆ;0ם>(B-͖C?[mm0D<yP49UWr#ɦcѱ>za \ėh$=s3ì`ݖTU﮹խ@U;Ԡ>}LN_Ađh=4ؗ'j`mАƂ16V/篁wI8b2(_66a܏=KCG%@'m]ß<GMa:gI6w F?a:I0 _vja8ˁ;4 YeE=cwN*J-1ch0>] !#ǍA3XJT怜5qQ ^?"8sqWQtTo2RIɊJQx' LD)*2* ߢ,{cPD¹|us>mbI'Rsʟ%7]菹z&Hii{܍/?5krcr`.%lj�DJŌtwu}9tQ/vmo-yԕh\D1+bNMk*i`3S6~EЌ 2[L\̾@ co;!)*wQDͨK~q>01# Oי(?@(x0b-JkPӿYw 5<[t@s[27ri:,Fʭ47ε3B})`n &D<ߛfVc ,UKDٿZD^K@ZUw\ \ VĀǕ{L '2CjL^6U_ b-Lxp줁GPClMu߲y\(~_ɝ [BgЄ]$f;zٍ=&%Fmt:#IiKLkz&6]sXr+G7ierAqdj?/86va[ӧѿiPQ#ugs0_~6-.e[~i2Ϣ9#ѿ ;|yT"hJ &0=YgjS$|az׉;@ W3; Z-5JrȊYXf/y&\5x ԌXңb͎ E~-OPeMॶ$r:a3 Ψ푱~ NT~.HڢQ4 ^s?vŘ{iW0c;-הPNz_Sn95ID̽;0uM.Bq O<jd<L?|І[;Wƈ1/VFA_(g%]mCFgK9Gqk@8(<|;J q?x g'ϱ?d <3}bzJ5H WZ;1wĸۯTYESᏣ(lO<z4C1FjN7D~uJ0bUiPj!~y^9 `J6P Gz$ h-y.\Ja3`.'ed9_H[%|#sG k>|{/ᣪ^N|;e@T/N�UGAv#EHmtdK21k*=khʔcS^ })h<:q:+'їD-:*^!4-$1EV rR15h-]zwHa©_2& N;!Ү Izc`zt0j_]8O@iyHcπ|*YlkP%pp<H,0yJ- F?Bu:&}/5hůݪ|=*(c)X!tt&]ԏIb`YO08샏Dat͠{HDg3F= 3_Ce"ݯ!+u?FY wIDY#aɟ@X.Eڮmj]<&Fcϼi͋A8E#K *2L@u0 �o3oO?shW"GJNA\ew^)V[yaadoڊ韼Oۛ x~ }?^q폘%Iʨ8}u#!=Ͼi;661gN5YgV=2ZXk'd;χ]oP.|Lu\cT~3Sfѻ6C7d6,=v7f*(5(o1 ZFc ks IlF1!U3_0A۪?B7 XLxg�#§yvk.B >ӻD7r'oOn/tԵ�K3l d@R)_n3fdj}ΏB1ql]b v}�MtoS76Ԋa*-f!TA/Z'pB@:]n6h. |r&,?A3?<n ɶz1 >6i!*^Cv`e!M$m0H[%mӀvPӃv!8pb`:A̹ |^<,K)5ɣaػT~e$?~^"wy7ףrZ{K~v˚/xۗd1_-I.u+j׫{r .Q5%(Yf GÍgiw|]56\rY1yu'7*p3Fzbo=T|hf()$`iᓁkJIb^)%CkJ#Yp':L:&+&ͲC~Y.c~+HƁ~DEaW#DΞ UMcoDgP]c: /$|zl7nTvzu|S7"ͅmpKU{PGd0}C׷c}e yr3N,`d2YNW·ǧks .22ӼΏ=Ops`n-6W>pHߛEbTާ<CW>0xm%(-V^ uhTEe Yi`x hw@jӠ̺|wJAj- @<Te {�#|'@8hMܘ>J'h/@KYc0xނOn2;-b1r^I{NqYg#N^] aniq jnWdcеhsbp@^Ev0T"ʼn7`O>0N2'e 4|XEmc9t,-d}t{VDsc"txu~j;Ǫ:V0֟NH`N!9q|YAA҇0Ms7"βP|Pf_=y7GNjY0M2 6/L@T\>䆵^= Hr@W,0v;]!̓N{aP)P {+fӿ@qK(˪c“ 8N�ߎ6h2up1=+{_ )/J9uazk_Wxy$dlh$jǃrr6;9{O Izv09R˚+wZ ooVd10}AUcLOCO01ߋ!DŽ=?A苢hSw19pËWCEW$ceO .$褴qW{B )'ǯ<oxԔ(xl m^<܅Ev`lȭ|$@pGN֧Ex8Xq ߔ&a@;頮>!ud{Ѻ,Yׄx@C Yc'WR<jhs gjRJ7٢ m>&I`* !_!j?'w"s;$Y?WB3+ů]y!�Yw n11_:hŗT0v}9&j{?]9Gp8"V%xmV !hQ16s=,TxqF \RLtQ flZ{yH mg|@;60\cS Q66ǿ>)ø 'UU0i獔Tn o ry'm֮߿7Ns[3&aX ɔz X8\2¯Y#kE2=hmyt;?|ݗpyZ(:1'm2 -a6ˎ`~2 2c9A7)n�=z+o9Ukstn1%TfITA$1f]μ+O.?s_Vu5H{H_8!olO;}MզB`Lb }#G~\RLydB~?G\=wxtXBF�˸4P>Bpo{}l+H5u0Xٝ HB[@f/eOIr^0o1R:Å$#\ ;栂,.-j JB|)헬vlCiI~'0}^^cLBgz e'@>QV,�X Pw$x( szyUA3A /Vv;^0<x3vU.2y]׬V"wIFvAo2o Z-cQȂneJr&HOG@ ٮs+ǺA[t{M0L?:nҿ  Zg Qv?PT`l0DSlˤ`xBʉ+ ,#u؍Q[h[=aO:�ZR7 F6J(?'$_}(Qm0S4]<xc<h�+fu%z"ȥ.OE@ڇ$""L\71G9%hZ(zH;zc>J2w|߷`  tk}UvCC~w)0"mc@aɳHsĦ t_ =ef3ΣkML|glhâ'=k?j ٷSk%@|`o1J>ϔր$%׆{"1L/mI\痧ҩ08%"-է}m:)~=´ݵhe!Z/ fIJ, # n'+vm*P讚*JZ~9&·t}>کџ M0/ JVPZ~j ^ ^ټF.ONQsYCBgebq5K/FӾ> Вq@W@S|nR˜fO亪m=Ȧ@]\&|dw?cQҗϴ˨jۑ$KcB]EZ3ȟ +>GvpF-<ƬiI{ (*e�)"P$ f|:GfTo>AzJ^ us.ch(un-˥AwOX<C'ώ r 0.N `pvDn(?ۄl;4=tsWPCL<0>E,1QQ?M-UßQ0T,S]@B{W5#(7J7tcpE5s2t]i;A+p;!z׏xCXt-cΛf=9!?{65O 3i]`7Oئ`%`e˒?ͣi 8d{sk ?GZX?&\oy)]f([1V#HrjwLwJ[=_=a`pyczg)g{Jy(6ߔ @o]Tn 'Ҭ`.fϭɵ'?9^֣\`|z;oվ!G?[G,U#H%OMXj(?va8b<(33U,7,GWZxWݠ/?׈w4MR@5F'5z_t�ST,6SwCZ͒A5Zx췞 3\\yѧ{ @~{zW"1n1-e?ʅSEh|=_ M>]4sȷ1O A g>:fWBDp9-vY`&F%r!'h;t^cSROxXsw,o9ɾs-&mį!c:iNJ$m7xə؂KCPC+eDy?m~?%n}Wa^0.f&�څl}#cK91%4 䕞/`\5QO[W> 0pI /JFI!tl~b߆{aRoŁB컴l+rO8ĞQ@363SSRѦkNFj}Žz,bH%>q~b)QNL:nz%'91\3\yۿdllO"uRp1<'o߀~a^ :[ۗSwMy㧚 8ݐjrӾg) n5eو+g@_'h0t#\; PSyG)]( ɖ [k[S6SpU2s"-bnu]ܴ4F𪮐hy`kw3DYz߯~ȑD]¾_i,!yhrd}z;Tmw/![]͜MCp4*IA!gSi?diN'г{膠{WAyx5Vu'+_31)%".q_^<8 LDW +dbZFnxw# |!!$;m&mpۖQsM)ѧv+2S6w`LV0^Y"yŁ(~qq�Ӂ9b髼^#H^~ ®cuľ1r }%/:<Dr9QVP.? Uڷ=\Ѐᱫ%Nufr0ɑ~X2w]OJ*TmwH7tx4m>u/ (P0F؞{2M@= d- 1n2?u ͼbM 2/==g0^)}st>51s_du7h7H&وHZ8xU? cbXqJC1B#,~ ڛ5CK] 'SvbGp"Rd38O0dۑ`\K/_!G(`KZP¸3s={c45^Z=qyO09bh2abJ?QH1y֭s7k~F_^�/ oBtc5QQhZ[O ӹxۏAm#tr髡bU&?mGv_vdD>A.U1(kX:ix`Z^u/meU{w#0qTUQ@KPt,߼'5H\`}\_šє%Lsn"xaJY<&ޭ5Vb067/L Rnj"bGRs 'wx։馽^j(ܺޢ7Ȼ P~uᙅ 7\م*+ڜS׺ad,)LE?SD]wo.K*w e좈筍GQ$>SsgQHyab1vél`F7z.{`r1W#`4s:CM/rcR>`,uUW)mԞ(D^Jf&A٭dt+З:n[f)ߴA$3З&r@v踍_QgL^�_g{Qz_5?.Ĥjf0}_%n5\ Z͠ɬU*RA[Qc&z g7$ʥw@v~HOS30QGm-#AceYT{z>2Dk/$R"|r\zJ/WV悙{fN't)?Ou6+ %> ҷ4%ה.h8A+Fx(m,SSOkvD頹~Ub ,GT}N03b]0fAяeT�n1,G0N95c%?<{[_m%Ee1l7]dI&ǬGbfʯ[=ÞIJޠi/@ٗw?fG Ot?Hm&3.vQMDW-{LtXu={ @ٚ>Eѣv(52I?SY /D7|^T-; /=3!N._l>K44OǴP%6x8S q~|RJ�cl03^7tx9kZ_`|Z*Hơ cw+Ai;;;�SvO `%Mr\x?d(u~!Ti` ul6!yd*F^ ?1U;FGo4kX{fӲ:EduAƺ*=wk.`|$HlgsNDޔeAs~ƫ=!BG0ںŮMhʴ#Kߺ`nVxr7k-_WV'q瀔0H HJwynHzF_w4P_w:T*_pGePNU@i<�g>'I{v銔uih}} ?d߬eыZϭ1ʽh Jk좒bAUʺ7*pO9_ik?JdvcK龄z NJ]V[=_jP> ?g!Re7_#bWopFpc{YOfAjx0>I-&*ZUEm[cT*w IӼˇ)MEͣ ԫ{iw|j=~d"'ǸuD\Y ɼUȠGFV*J.B̉2@rأM}amgo$g`ze"nwނ(*ʞ{1WpG+?Zϼ u j dK6gf<Bt߇Ĝwu^3X̜=q<TU%zf7OOu0NZ#L7 ]>s?�C-Tm!Yd#}SzW%(a 3q?J^iC\EY^P߾0`_{J͘*ӷ5?,%|?4[IE=IY.z6 БP>1FlyN(4\olhˋ\7NcXF[0M~*HAw_l ,̯ސq c:d:3Qmej4?'=bLy<juг#ߛ]@i=ZFkz~kҼ&KA=Ȏ8aV5^ӵ`|FiUL IBx-_CQ wLzьP$xbFFMDP NBƹ+5$QPttVtxiEwQn{} /~g<揃`0N'i}c$IEd~>+&)Y e^ĘȝWA<݄%ʔ<;Y#=6A4GGJߜPsƪP؝|7ދY_8f1Ԛ"u 6Ar5 ?\+M-݃.޴蝺qmE-BL7&}4*!گAy<ɕ!Q-n^Bb<Yh,׍s-#Lru.[T.``ϼ('x`(9a;: 8Winй&㋢ulASA:[m{\fTF?Ghe]!4�S\20M }ƃ_ Wm_;C`X3{翧&G&D6^DP$SByqFP[B_U'9ӓ]9. (\ ]$K(jD­@KY%#VwsHcq~$ n^(~9!h+20t;bHksIFOÜHY ozI'ˮW,RSbEυWxoa2WO!MFͼp{|"SI:Pbٮq6v)64dx?QI>E8»VcTM؈mo yC(VB&C ;Vj72zF<*4kߛN4I7%9d0{ F%ݜ_F~͍s`w\UËMPw'W/J4~p$+rkX[Q+& #K|/`%[o|om~ڔZ_>A ޕPڿQ|4~\\`dbsȫ|93bo}95O/-?!q f} W| 0Ľ"4*9CBY&mR}5CPL(/ /;_ES_F̡..~bC?E#z&4ȾSUS[-9[ ÛHn۽dXK~A{a3?卧V9+jTγ/Bɕׂ+2o_ulM(F,kKNp|IF86)*ԥ-؅gK}ޡ._+ /A//?d~-ut>LI,|1 1FEry72 *�MbYW{E1'!* oFԣw?AczL鮵yQmq2`Efvah|IjHk.bDSSIzXR..^o1:3 U'Wkd/W(>s\E4뻦p}DDb(QgR8qm_eqXts^DR`n9lVfa1_1՝e>9/Ả%L-Fwc4͍9K{|Jt9z4S;ME3c!w+Y3СQ eb\[Ź)ݿZ5REfrdy >p^2A}EL2bY#Y 0Uti U<I02CSQjz= FuLG`Tu 2K cdX?Brm/vx 0X/_/ `X~JJ~a 3ͩu_ᱺT"}6(:SCڔT=^ۆ}.;;wLC2(ӸdG꠰ 'M<,E7yGKA6*5M|3#?) h? ~4~h=r0fxm>M7 Hg='#wS&0`}wS(3o3_oK7e8~ h:#km.`rw,)M [OyQ`k <T] 0v8L;V+SGOCC21Ubp-RA{}^gVm:|}OSw혁9^i:4mS:=>"SmO@:Ck]j;/\o$M r ^dboKh"{hN/ra*6/E6e&jYBu%׏-e_̳, 4ι]y,fIt[ O<41w.�ԭM%hC9o0ܣnqɃwR槾lsV/TﯳΡXG?�хH}QhCy9ׅ21"i\TVT5>o]a[] p}`xO dNeNza1gpX7\L: zROHHۙCB6ܟM*;e,A2&̶~(WlM'rӟKM.]cer@_y9eII6y&i ۪%)9t]&1GXѵ{<"}&ջ�,<asj>P&/$oNf(K/mƀ< Z<*St  OlU‹ʸs>LEHyb]Q a__֒ ' JUH/9ںL[ +K CVH5Od6;9k4Vm_t/p)hkXC%=h֪V}{ F:/||uh&YkQ1UY.,o#5Gz$ z9yrf_nF\N-BjxEzZ8J\<](S 4ͯ)?‘^ _<_E!Z>;bwlEr|NP}'I\]GAđZhAΣԚ^F~Z'.my<'#{Ĩ0bvi5^OۭAL3+ *[ 2Чf|zև\W̬EQua{ACٻ^ɠ|C᫊r"0\pEqe?go2 •O!7cyӥޒTu{/ Tԧ]ė=;nr 51S7GԏQ0-G~1O+1xi@}?iG̤dc4зI{ Rb]0�횘깔nk,0*Nq YY�ƍSy%<y/m8 ߭^kʆ0!}m:bK6Zc8ͅ.cfMېW15];~nd{:tp,]'06`*c0tymH]wZy$0r ڎlX[nok=n$coǐ淼ϑu͏0=n{*_eHUd2g3 AxpKc8df.ez~7E4 Y* 4A̎ HŴhٍjmRl>  wF^$H{j߁~f,A>Qg˹/D/_%P8蛚E]DNNCT2 й�Ɓ:7HJ}+#+_ZJ2g' 톳(taz hg~V@L|vJmETۋڨ{p]9�e:#<>~ rӌ I_N=d ~B:3~d#(jKy0{e}\CdKT|H#;CUQN,Z_>*W~-H6T΂{P#6gT@SRt˟6&xyRynn5<ZxQׁ&*9REC76TҰEd*.@?% Ľ40JƭaMƤr٪(.E}bEi âߡhr'?=,NJ5u(*5 vaH`S[˦n(~,a"F½ #^=:9Hzx2W.h D@q/j?Z&$ 6\bSݒ1^B;(ǭBc,%_Qa.jNɇqs`?ώ~[0,:*32Ҭ1pmi⭿stAEE]f%x#$U w˃̘سmH6mad*&0w~_}w3\F7.beAWḬ<fw z8@iZIj!Zdu(/W>ofvõWhc<C."DM2=v@^8ԭ#zyOYNY7xn*oȓq\a9n2Z/ͅ/՜qC`&(Y#濂PQc+ڟz <CmRqLsCl>!ʹ ]T\+ǩf$hQ W*K=qW]Of#bLD4rkXU٠&ptbyE] - ,1#!ıO ET$3?t#dS~EPg+}~rޑ7>m�&JH+'WM?~.bu29%WĤԨ:Hk7k LS穨]/$_GWb>tSݳA d"q'ğJ~iC`Z3cIs~ tVK.3,yII Km)kL,J?vTZl:;Նovq}z0@rzmKz|Se^ۏjHЎ5F*DȻkvC]51r~<5VŠ;AJָv :Vb~</ kc0ڷ<rjwl11CKXܟ+W|wgR^L"F?m�Cl6޾*}Tx ~ӨnZ mio9<ߐNx;1% dLBN`>P~^gg@: &!�Vo547N!&(11{72VMK׮d1<&Tbe9؈aqP^ ~< ՜%1C]rȼ'h|GSa Ż' _*ќ|uE>L{ z6?sÝ d 4 | OO m;3ƌ/'Vun?v"I`tjICvNq[=Մ?Co>=-γ'HT8q1ݥ@*s0{hAZxEW|Yckփg?RQ LθFGH;_!dRu�5Q>=S'_̃B|@e? -2 LGDt mVc7H5od{޵9Bzn+;sʛJ@٧A=,߃n揂V'E7-9NkQzgӭ?1,KϠGZvF <i/ tP)6y!] Ê gE+~vz e|b5Cx&~:qٺ%W6Fhޗ.UKߵ̈́=gAV@0c{&;Ϝ?ٛVݺ1DiE]_=w#$sA%UƦ~CZC,{O_5&|c)Oo rbҭ%7@KWО- g[0{&9PFRQ&2yq;mHKB՛{wb^e'*WAcVc\mlj:<MӦLi]^%fl&:!:J.5!13< zu (()`d,Y~RWltCR/ng$8G,1_Yn1 {~-d>VPZ$:<P$ މF;1)-3QZ<?!s1'ӣmi}◞i?Œ!̅~7Uܷ0Ty"5 FG:I)'CTQ{uܤCYWa\C&5W2X11 fĖ:eJ(NY k^" _V.9} LG %_I |X!#Z0y-~ahN?Fp<UZδP0mKad Y='r*ǽ (٩g;g/|dexh'В}7 W[# HIuENqc&PSͧ\v(>tB#o#ķyS;{lN[/-S@a ۖV"#p ѩ?1FIЕ<lCý#JL{=-iG04#LrkpF^ƿX'rqmUԇIT' kSrd{dWW{ 1>Ƚr`P' Alޒoy0[<w_Ay6 3G<W/4HsWkP/=;<0Ŀ4}2?/)~ 哿V~g}gv\>K7^(pZ.ߟ1EUb8E Uf'06/:1}Vge~)2@}~I&$L.uYQs]A2JNI%IP{oʏ©3rR`4 }ɳ`zE#}q97EGFW@_oR1̬)2߸YXhPhj<u_@۟b ;e֩nqZ̄&OWGE#ŹW5?y'z,/.DY֐L%$o4CiV~|Ҽ.2CvE^GBvO4^`,4b/jVqTnFb=AVn; N:5iHsN8Ḓ#>QmK_�E~qyN_چV|saPnKD> h\}Ú l>:# ?GO ㏯ѻJ! /6Q@^!D?;cd 0C/[i<hZOshW($t1˥yƛ $`qb<1[ P< 0+Aٗ-iNE,ϛ#mibwx+dY1x�qgL4C[ZPX~;Ո?t[9ٟɃftE?EQY=ֈl}iU90jFons2}u\`0cd\ݲ ՆzHt1Wo Fg`x^:а:83)qe둤:{nu*q'[˜v+j]_V}y'G QcQz2TŮ$S8,.Ti÷KJDk C·Q!&2#T1N~A>DY! }9OxY6j-tmD9H5[NER@k<n V`:Py7>$]c9SX^{za! G4eePBV~Y; b=aQ#Ru<߾yn>yE6&O,O9#&;Ƥ`FhBV(H%vdnFUsN9yvVz?zAaI ǻ6Ie}SSZAy.T 8G‹ZVb9yGljyTik[O9c㵷iO9~$=u<Rˠ1'kc C0&yD1rHMOA=/uuIoò%-7jSeYaDc;ډPoֶy _s&<?:f*197gU@p(v);׻b0{Q? ۂW&3% eG`̋x@(nTֳ]%EHj'ETԲ8A_&SV)Cf^.(|6Sl$TAj9{+PJu{POxJ_mT=A';|zQi0CWnh[S}eYqA4-vWr=)KV^\Jz)]6=wQ|LN"BlAkŻY*جo ~ (yiA7wӧ{}]5"$%$l(]ؖ7 bogUs<藳u1a98@{ *)U]ހ~{O_Hj4ԗ\SDIMM-$]M<~Jw{_Y�ܚg,>nQ 3ڝC'~cZB73oo\G"5Py%Kn c'waݡ3J^ͱ3'U8 39 ʌ~eɖ!^'Fj0m5>ƜՌBbh{zUN_&S 7'[ZA*XDzc1m2;y׉xMj%2dH|ch+ȭRi/6#m]a(^ҐdYsRB> ;)L<:Ҋ�̷'$!C.C2}5]?y~#Mp &)hs<qF-b)7(}F}FpRpDa~n ĄAZe|AǺFW9Pn5({Ք63G5/SL0#+(_S0|ڧ SncܷVJ ǃL;}et+D ?'<3 z=(˽nS1-:ܚ\<K߄R ڍj(tDU-=<srW`z}^ nCPڵH >tzpY7mA}@®u`./K%'t-r5Ϯo7E<h{WPɩ/Ta{];0Sn:Rk ?,B]jkWT ȉg<w_FyE"яލ4%}pB뉔9DqJj?wcO$ Gbչ¥@TO?`baWc~zˎ"-2`,\]n�9c3z?)^lCyHAv9[:F$p[_Đu"fܳ-`2A/+p|u/?45EL:b+mlTnwDî 8g@7W,= ?<zxyŬ #ٽ{+t/Q=r =o%5~z=9<} KyEi!Ԏ1Zc0UZ7ȋ֙}&hB 5<X3`pNB)W(*yR#9ui@47  -U0}dQ3_:^苽ID_߾+b-FmƬVwH%V7ݓ;F|ȊJ)CJP_wMWvCNjQDje^*f"{x(?ŷ^W{bN*0jUab-uɛ0$+}d9p˦S?s89H)`g!BK>"Ȯvi#il] 9эn)Uz0H -'b^bY yYf#hހw7(V!@+wk H HL+|qO3Аu \Ԑ&)`TC{}W#b=Kc?=.UIkfAS- FmNO$tQ+QOM P_S'm62R_d~mi^m1Z/·>>ы^sMir6i6{9eWb Ds]񿩘qG)7{_y.%<gE{o }fW$d{D;j  <AMOԯjsv=h35"yP楣^r ?=w 7C_d9bUyLO^?.CcT^|uP1mY[!5T6R@xgk7t/!{|tW1&T|ApCN90 6l0\eܷ@E~b! PҔ*6IM-5{i 6vScЎϟVN֩?]SL|4G)Cuo0m!9"{*%<ʯ5CE߆c'2w,̓۾DO(sդ?s.Еlx %$v{8F039֑#Vb`l揲E멟Ď0iٗq4*7;eR&! Zw#A7h+Vɷw@Þ$,5ǸSϾe}C"yl&<coA ک [vk9"]ȬL*So5'O{h7iJ)#{Ϧdȩ@~iAyqP}p|VbOpķ[gP1ptn]?>$%$[rq)0MwEAYXerꛓA@Z 0? 9<5 ƾ牪uȫ-8{E+O_>wsͥUCqz$0=y_]Czarj>ߚi#TPxm#KYwL[,8k&8Zbΰ"z3FtEo>CbѠX_kϢE&'boz81On8rCh^`6U3>31BVBvԧX*ɔ>Ej l+`LFMMS<*:׉6bHO-ь{?mwa/( #1!/`Lv)ߤi-yUsT :^'<]`R2iV7XuH aQ0Zf4(Z3q)K5A})Y(VW /&xNַh?w0P52{^-ExgNsLNGƯ4 y"=ZNX)>s�cvTL߼Gޙo)V703VsëA_>i<1o 6B%2+vnsܢy~\QZj me(,FGώlvgr^l(Dj֋̂)f^vm8p$n ;t05~3>]{8 Kb Qɰ:,T]ЖU A3 ;b-rQ7y$`|t;2] `{ ϲ@~͓>+@ʠm}>"W Oʨg#yׁƤ};yGcCLUɱម9yߛ R&|L1ku* } u5ajT|2/O@S']C859ڭ>D% 凲9Ǯ�f˼9U }R_Q Ҷ@bɧLAV  iY|븲a'|8#W`7rO0J_[z:lQАC7pNf:[2z57Jq'Ilغ9yC rɑ:}o6Voȃ'@J&,\=L UU\[÷H|igц:%z֞@JSԝȺk}sj mP77w|2rd׫/P~>lHP}6ƕbN'Vd^FVD14te[AVt0̋O%Z (& wO3`d}qRcWNn@xSW`FuuZ݃V]yd_xiNz\_Ea v =]9*סGQP]4&9%07뽛LBf׭XE%*r#GxjFu@\; \8u $Q7" 6Α]o|AJ_%Jnn̵C^ +@vuo@}+}hʽE37m{ O, l#2^qcmrUݨ)fN}u)hA0&Nʊ~e`G"bYOmAoh TTm2=LBwg?Ħ3zgΊ:{n׷06L=HܡRC;J7!<gnDdһ\Q { ݭ/M(w: ]QwMr\ZAx-(+�󯨃k4[f�z@ҖhYRSoʁc*3oq~A{A9pyR#JCMnƁ!hռ=Agb̵Pq򫯽>Z9蓇PO,=='@X H{t*Ξ)do0&OFDӷz [RD�]R" \OE׍2V<g=>42 qh5Qڲ�W~+BƿŨ%'b>Y4=;D-=U66ABpO70H]\-"3;k_3>w>NT\;ѱռ1]c_מDC$w.FmȘt3_u+3&5/`%<3dS ɔZŅ[g~[Oߍk*}悼e1_Ps۩8UZ+FϖaH:"dnĔ[׃ѵ9u'(ixZjQwd}^nG@})~pYe_ 5S~0f'4]]?́U~ 7~AL{0U3~dʾzLcF`kI6=JV'aAo_dYVQ0J_@#oQ@w?c׏r/h/?Pcm6$8L}we_^'^= |*#]7Xwsޣ2 =qT(&%4vxUn:|Ċ~ >x . Hl:ROP`&n}޷{0v9ݿ=t.Q*9<-vsHV `~{h?,}t]pn=j/ݲ%:{h &uUؖl m޳++c"w."2aՌCI0]ݢ"wN.ڠ"QMd ȳ.Ug@ߠO7} Ҏ4,s0$|vz:"粑*ęU?at?~0 G΁ok-2e%R@Yشt #]FΙ-3tI庣;=wя`K׸k'k+Hcz9?2A<v\>:zN49+4dSk$7;`ؿصtծu`JZ?rMPejA #%07K0n.RG|IG`szd3J)Y&Y="f9se-Pt`DtFp^ ܥ:Dё3i� E%uKP DB q$;4 [WmCZ[]^߾ = <;Pev I0nz}YP]NT޼�UGc yw9lWi'nC <Gp8r"zVRiw=x?I{o@c;vwƏ &{)[cU G4U@Cgv z5H�ccFL Z<ǮyKee(jX#c##Bh:~/yR2%,'މȗ8UbVGVEiNgY%n#d;ZCZ@/[ &M,xt|n .xFdMF淾2#t]N7,=q${mk0vl<]=F%SCՌV <<<е7H#=F]k5Hw}}p `t['`CGڕ](Ž5Bk;B.^j3_#ڏbp&ojTaAm-D?OpG*$$g#k^< zǺ깬Tp+7z]]5|||5:UZ*>("5s8Xy1#Ĥ1,uT72ڂi]3n%@|gM/V%"+fdZѳ0q9.~b84N=;w윾ノbԈd7?KTLzC:[<&1??ۍpzs82t, _Mp(C7l'sħw'100ܽHskOϨ .H[g"_4۶yGWEyG%5Ĝ70UAF:h>͎ҡ'7YSɷw c;0 yp i͕VUNM:jF|7?&{%Sowΰuo-= ׹&@>B3F~􁑙7Ufv“]-FIǞ -۹OFծ$LA4$k}z }J00�wˎA?8Qvȥsj*|M1Pu>F˅;z=`KkY$^~6iѸ8JXƋ CEe{ ĘOPO`:k}WVߏżWByU-C{r:լ.X>hf];(ڎNKa+{)bJ]o)SBs0F&�S8jYuL]k{gdgnL<,~?x evif!N=Yp+?clsuAϞBqogyܤsBE�CQ]Ic>a-BDp%[1#w&P20o[%tXE{pHw~8 ]'> }{.hk[lE$j/MU:<-R?aӭYP@>ǿǡ:�)ƺ ` `я-9Kb-SR3$ϻY|Z=O6ҹЍgWJC=4F/;E^D&WDPo4l HܙwgZ9o// [w@Ջ 6{v<g>rJHjf%Eϣ'OUWyNhS f@Aˇ5P<qb;4fW߬wg5Me.h[DlhDI[*~֔3fTPF$"Ku` ?t-580nf݅MH2Ku)>Mf%K~b:Ε] #3{Nv:aYyٟv~(1JMo5+I(}(,¯?l=2sTtg KA&x Jݽ\.K}62f6IzISm8*^;}j=`M(R~ u)`~JW?⺫7beg{s9p;^lFG'k!ϑ:j! d5>HΉo &ߕHTChOiBүʧVt (^V QAN_- 7tjX{ׅOG8. 0lX{02mtT[^ށQ5q9:7lUT==Zi8+qaUj.Ѕ<'X-αۊȍL֩c沘g(imPs˽Π0wAhYށP%׃!|N$+W;ʁz}Q ט+z0=TFU`z0:7 UFU;AQj|!yOnF쾄wH'\5jh҈'B4ˮk}\Jʨ_+7}_[3{PpLHY?vd9secsz])YD maϳRuZ4و(U_}i;<6Gd`(vTw&q٢`ߡ7AI}MB&Ffb(IA6ݽ ,6( k&i7J.>@#xz Pm(3O.+0DyR50δTWsT6Xdwq:^Ҝj-`}Bo NQ`?퍓sj0 z.\ _$Lxi(Y rFet8Fln~]iR%`N{TDI0Щ)D?Q) 1J=J0>Ft}Og m| DooWwTC/<gLl*Mbmل^T܉ Ȭk:ݜ-b4GmԿvK=]e y75lPFNJ116<A06-e>DTގSu:69;}8cQۨCҼUEFN\1OiEu(1(#_jf`bzHY-3ckI~g;/'I늠(z<E8 ^fΖJW#ee}} >83b3 )S$_{؟Y0YڈAG1ZA~i:|Vq0uOYH`*e{ZZL*Gӽʫo_aF(K޾Ym=_(KĵQƽ턀yA Leb>` 8~Ak-ݏ@jc񎿭R|uƀ6^W<FOۧA&*2m˶΄I~+{"glbw}2#S$iٳkIh+-0:2|uMU Ӈm1ɳ&/ AQLL\9#wacY*(!ZÂQ,|9*$X t^Gk/i4vb2e3-_rQd R"cYgKijw"wb@lԗ0Д/7\>sqi-ur?[n͘;+THZCV>iq]:.M6׮`<D{5rqc00|ֹ{<T{"~ិ1 @3Y@9R1 m8PQȳ7W{VU#Є湮11(k5Wض)B6gAy*E #CO>$DU~ɎUklPh EAuWŒGG#FzW$I|3_=;5fR\E5ȁ`+XIJgb?ӾlwFKN UӜqMƛOڢ eS~I 1U`ۙs}ww/,72mEoX�r?ݾ9Qڮϑf[;w@HBbMŇ?ai4]!jsU2&O4Y rEML*L ? ~~1^فCH)/_9^^k;s +Qwݺ1&jU wV)<|9 NzvUq0ã'pwh˟\K2vTOvyd{?02Kx\yR`Xlw8.B-Bf${1/?nOݻ'<{_fb)ȓrM|.3{YJY+NًΛ?%At!$Np9YPCMǤ~nF 0}[?lD߯8d�礯\èyQ/$>Ԝ?Gt;nڽ 7R)dW wzYTxmЅʶʳ8*>Qz ?AIY q'?x_96֥;8渤2П*)j#hot1b#{A/JY6 ]k?fj1x3A@ c'96UmOzI~j1@shV:Vٸ'ZcT}5]#ha %?A{0鍨+y0sW[n ˿ ;Nr#PhYhbABAk3 3wbugJ6 "xfxlcӊ Ԃ_Qxil;lҹSwS`6<%!y~AY69f<v+GnS 䌎9# vt`xL"ቯmijiCyVo_&3Yq G>)Ds%!C`U^?>އ}9IZQgvje<)sbh֮Wr <5D΅hdh`S i1!Y"nIףXsQb5:m8b C@;x8�"{x C16ƈ>3)v<3T]YlX8}Ioo xQ'.[)غZso'74^x{;GTx1z[єrzl#FwsMFW!!|*Њ-n :je$c tm̛ Zv6]۞x]ډWg66u/8LV#^M8l[dRm)q?K7A 7u na~䰶m8`vbn9Nm@‡W:[�j$I ]Wwݱ"/ s5)Ƚf5lIN@5_#�fVcܽf4\=Q0txxPxQ/o{x GAW>b>Do.%X^-Ƃi/x}ynͥˉGt~ '",1 9_ycy/+?w</r֛]<o36&085GA{OxVkQwݏ%|5ެ=? UQy<te꺼^(>pi_,j0.wnc\[xyw>m9!|>q"bYK?Imѯ̶WK _X P¡yvtAbF4^yԫ=+ 8a^]Yz>##z>[v% =]vxb "Vk۫2s]v#F:.fU`k=Z\1ԓ eTNX\\CQo@iMkcrkQQgUPkY4Hg(–ǿ߂1v?!lF'o=[A=:K*"4Vh`4@n\„9tMd0A-K.À]V-ٻ~!_FT0J*Å@90\ [L~*I⁛Cr/?Wǯs`vϨiAz c Ty^\s<׬<T⧮zpЖ3K9OVs\Gbয়䠷ee5TlAixQІ1N};3]T&\BA y<|BܲЖ$'^oXcKL%i̓O0RR?* }3XB}{_kㅦR>=0M]U FsoʈOidT&O7n瀾FُJf}w?)\iX J6.01ml~x;Ix`x}ų[ g3rm&<UEs܁`Q E1/'5;%Jmd}#reI0L2YT<;Sw$=x>yw\}QiBBB2BrJ"%%!$!EJ$JSJ{{9}Ve$ 'x~-0~J<r`w tgJ _}Ci_ǀPVqfl<}�4e3iM FWj?2RS^ϳv cCc.ov:&}\|]#t_3l_&B8oy^qg6uw3 ^\oX|ȏ1gk8iA<ʉK`JED R-1 zv(mg^(:;#t);f %LD LTn�yNΘp;2̬ϒ߃͵97 _Js#=-İIOw\yxԢjA]?ZaܺH`0 .;lU^fu)mBԕ*(YQ c\`a4)l| em fzt~[ 7K/"TLXA śf~bPS@tbV^}_t~_#q&_T ,8+l<T~;9JkԼv> :Hܠ,IdpNλu9ڨ ~y\nuu{Sʛ0<kхz`p*(Kf auO^z7c0EsM-}PUDdQPa=,7$4Cϖq?1Zy m4D=?`5:!e8o9`m^ꟲl0b6P^ :2wNs,ݞ+u;U( 9noDLgϡAqo9aPt7V) 7݀ASs>z F]}�) uֈJM+|r�lAc3Ț|9�Ry|HVt+r^ҭi yޠZr4^2a;mR-D%-sZ2~^F_AgvsFqO|ff^d KN#(rўs&XmfpS< $(imT>}~O1+$KzDa[09 ,7֏Rzod!\Ȯ&v笗C-{@۞Ypt ,_ }T`Gfc1>itǿ=QP|ۮ(O8yZOK}(3]n2EldjxE^%<fm ވ9ƅǃZD/dRi qP=@cӃ)р'PɏƮ3׃37s_솩2Z3p)-os^8wIcȻrv5:y.O}"`YbYE*EaWLك>*F1`4,rM-B֬Zf/NF<8ad%}W!}w؛%EtQ "@H.?c? -+€~e]u R1ZTf}}yf>@}΃hH7>^[k1хNA{ɐ D f280zPf# q+DZaP v&>@�/KW0iԕ}~q5v)6&1!v v\qEʏԢv?0ĠZ0/jRLL_Vvm]sa0m3RNTnf 7\\-ƌP<?>n4W1d8 wuO w֟[y3 wfs߹-!iwyT܎<ٲP!j7q"bL-Jt}<(cOlt5p RO d8Wۧ*D]. pn@ǡ;kdSuԺ܎fc@T8 KL j~쨮gÈďZÌi9kzZT4H︧x͕uO=|;!1gouIJXt!7S^NXg01w5S&&V{ n6ϫwBf~W nMJ[]u_CV�,IeH]:C!/~WE-%иuaAAHm\y:ͻW&z*5&Ko%4*KxyDd1nX爡Mo20dNb!#qcf-Kn)V0R Ŭ)g.b&5˪h<9bMc ^/>0&<af.y{s߸Ld8*ZI;==PخCIFg ZbQ% 'h�e¶P :%J+F{"^sƷX@}jLZJ;@MyUɥίU7bqߣ=7;V r$ 0z_u3ƀa.͚`7CLRHK]x4;yo F(&m?8/MdT]a1@vyNg2E"sA*9E^[R 1lxU~# A~1^#x+<M~s  "|?ur";�MQ,JCW~$<W=<TlUǔ8{.V j$ʋw9ލ; ^ދ/!q_Y53;1H # zz~HZNC֦\148p*_Bw#Z{8]ژ2"~ty#D<Ѳ~uMȜ;S"+~aU94RX)\tmMOf%$<7[_\=hs:h6_e[ pl^o>7.ϏB0}im"`lzsIjTΜW\X^ƔmN/oj L9<Uy|ODkr=D1}*c]//r^\gg'j%px~<F o#}d "..if#z3#?_XhD_#8Sn X`V'AQ:<"fE)=B'1G@š5y{y9=>n6]R:>BNg0{e !iHHR&/޻H<GЛj8Su<v+)RK]ouAuMTV媅H):F}OszɼxEZyOau!, +Abu&l'rq)0m6<bꪃݷIea>[X\=w/0yF0,}Nb/ԕgS.!%1viVٗm% ^boR:jl*#R,d9E\5(O�~(*VZR6F~3;1pzM? Q? Aeߧ)kQ;zLD(H}q-RQ=D{؆&}׈!P元"~+ٟa? y+S-pŐ_Oh;OnY%7_Jɶ0qK;1,gbـ=@c^ϚH#6.j@h,{@.BԦ.&&2i�i uYk]{h D]F+5d_R|f7h_Fx VXiU#؋\`rTޙ2+X KAJ;'@[/{�#l6"W% *TvMbY9S9Z~An9?Xnf䋧ք]-3u<kt9O\QS% ?B {Q~֡j{2b ̲%_>K+iAu775) L/M.k֙>Q?hlj.g?һT][4DDJ!Nյ5JfCŒ)éW/ۢJÚ5-G?d[auu0l]k1BvԇDuĔ- ղnQKw8 z\T(Syuuy9÷_=~# c?;ߪFq0ĢbZQ!jk;5d9A7K{}~1$lN<= YBO$Ego^e`i[} H9b uj$�/C];I+YV!whxbFX64M2ؤ2O#d}05>:OvF_Z#CeK#F8P"4@*u.` m=sU٧RK^k]=W(6:rF):}NH7K41l3ok=?S4 扛U[Uuo{.MED'cSt"I5ڦ8d<AJR\Ksں|N>/4?DZL?[_>`QYZWHY4})i1G~ILkc?o w{ֶzL ?r٩tP>}04E_ⶅ`^0D`d8$V\{"^vnܭV)X~>E;cAuS ^^_6eΞ)- qQep|v85'tZA^lXz>_ &'K u)Cw*8vW@E+M.$$A㖖мJ)6'Xqlf"?oS<MA z|u 'ԩٷזoTDӦÚF)@[YjAp<qyP߈.CvpW3pF_wav?{ ؋xgf373/%CW7K|_eO/IwfeOmԼ/(ˡ\#xLWNOzdDjI9g_�w$ognHop 0t d nE:`Z}A ͏=DF=zbq5@iW Dk~X<'2? Ac ~ahoV/k5 eT2$$mR? ):`V 7onG١dÒX<1(}DİTME5ts *.!}^{Ӡ& ~BP&r(dIcX6NI=xz@Iȿ;#ы)NhaT1 뤎1TTX{.G,臼m(1j6U;'_DXʹ ~&آf+F 6譲ѯ\>=HT`1:wRW9[o?=Ndѻ-{Gmj`eK]~q.nkiTPN?Yq9mPw+vG$oh~-ݜOGR9??c{Yr6\X[q;A A&}gۂr}1{=l|pԆɎ$,4X82h>I 3`+#sR7Ju*t"S f<~9 \ܢd i N_놾H1#\Mc5#F+rѹN-0WU|fӄ~LnAcv$U(I_~P\V7l.*4LֶsbJS񸗌0q~c|4V3�F\ɹ;wED#}a}vA%&UHH}~y2M_{tHx24˖{(ԮR%Ѝ@M ŏf#U?( _LlGjb)/@>w iΔ�LzSǿ0?wYs,<F@wFlIvNd^l5x5A1/AkExqj6Qv[c-Ǽw %x}]?|-Tz}V YWy S_$/�C5]ٴ1fzd4zBN]QwCNF KW 3݌˹[16')5]b(,A6K!E*g|Q.&j&ڂRq!b"bh4\uϖ:Sd>d*<Y,+q7!+V>E [koؐ19y^(ݓaOĐ~\<~>ЈGcՆ;^~3BU΁[?O(L&z,]FVQOAzb~*n ɯ ⓝN.^2b),뛯 GS=˞gs(hDLO [KJf[A 1~lxx(&<c*W1b! 06A-P92Ax=2㒓b2#&TMfx~eWFPkvx`)DMq,U W倶aqIdj8#%;R@|"5&/興LB[ *l—G&{Y ɝ}F[병^v7 PmOkkKE|nJ0EMebr,tC#ȺkE P(( e1l(?拸nqkdIrA S\&mp΅ e0[MS DgkS݉jz ɞMy-6yD!:e';S~fGv$}}.sGj=Vl!fqS#O*@_ûiz0J7h\,~{Fr1X_DOyDcmm=O(5O\@{;7r!t~TY$ev׷.~dCmC0. ^Gex)0~EWl#`p"Gv*`T󈿇IփNMhu> Ag &_g4!5dTY?GJI]e}z1|^նvqKj;i$mz䀺_ۭ< {F@+i: Fʮ')pCVU(d$|fE.cHf1 {vO_]1-L=ԧW<mfL;6`lZ@CXHQ~ {2@3[<ܨQv\Wr;KqQ;Ơ 8YSj4=4j»ۤrHbPB<սCB喥CO ob; a7ke^ʋwQsPY\ ۰AP'3-#feLT~~/2@Z"|tܻC)j6t /[{=X##ozŷE3Zl5_2!\ `2 :w?ţHS,&zLU-Ϸ"+�F#"GP&"@e=~ F*%`[VP<;!7'=6u"m*&?y2tUsWEAeTB~ i%~!^&MbP^!K0opKM1YHphxjϑV3Lc]Z jsɠ1V:Vbó'~bs5v4Ϧj缾?>1C^3xm<ǕqwnTV2.ԟ`8Б-`RU?aRGħEkg=ܳl> f[.3o YDX"xBɝZ9?133]P5I,SW {MdCs#nڞ}U O�u8!=,7ڐ 12OdRlͫ{3o0_0qə)~^ \WJ<+@s UD)!]; ҫ"kֻ%;=1xj El^ RԞzr';6dE@\my�Q"R/B )H?\jXP|z1y'(_ʹNERK5[Dum\P50X|gRK]_~eR/Ddn^ ?؎ Kd7J2B4pM+_cN+OD!鄮 hBkRSIc<KgK_QQηÛcf{30lֺ: pat} mDA}$/gg߳B Ue׉S<5~ܵ,yQ,՗K<hL *Dt"74:ޮ]y DNIz[k:iE?+1̱a$ե?<PyK$}a $uџ !$wϭhu(u}^-w-\ܑ!>VrC ݰTR0]z_2h76[Ro|%�?<~ 2I`~z(x;* S;(Ꮃ?_j{qZ$^xZAey_0L&x*|-%W )\\1̙=wq MmxJR-}Ow<6[ Bnzb 4rC7'zF$.J*rMQRs4̩4_qlHI)'zZ{-ˣ-ۛT!^"&gX[ȝ1IDXfLA6/ٶ!0{=.uڙΕ꠻i\2j'a((Y4rW./nw5a*/K2Z5 =A< ̫@Pؿkgv/㧵 A=={'{=c.>?0NO=W?j ƤW͜x 3w{P'H) ?vx>BHX)cȿSy" Za:D{"Q}?R8]fYA3t8mܰM؏ٲccuӡ"&^Xm߆@ZFʛGlQFý$yPc:mH+0%=CɒU-1(J^6`{1ZY0y2t 2VljUE/NX50d9CTpCIWxj52<, [=ҁu@y&7EWWfcgB(!NV<y |s`3(I781F ExzҶ<A;i쵱/&'B^CGwHbM1sX<_7~]( 8 Ώ012wҐWӘPS,/_ʭk"|uo$TI(m qZTH]v3zb~Ȟqi XFJ`z~yY?Z4@J]u}. 'PKo9 Ft$Bʴm~4֝Afmm¶H;ω;+B?=UǹP_W8Gx s{+/cu)h_.-Rri0U>8tezb0(#{%֘"SJ>Rye90O5M5;eɿL5Dnow!4م}V !ģ1P'�.EQ{sHFX6y/<u8N%ln7"Nƿ\;q>}@>FCZ-�n2ܐbӀܒQ˛3i9-+t9-Q9A-Zp$]W3w=+U*to >s7lLLA OuEsOE N~۲)f~1yލX Ceo{b58QpCgL99d'-'09۾-`^#?{}ͅØ|57 b<ɠ+}({0d.`rϣ#S4oH>>k9s s$PzVu;FB ѧb$9e )yL3ŗ֕2z֕iCV|ȸw1bޯ}hϝ+cH-:,㇡yaNѢuڒ7ߎr  ߬Ӎy!DkԦ; bL0Y ޗ՚sjK[FB:^>L̙l0;:(=]2Wnn0rMgEm)CҳvIc&kR\c@Ѓ e_Q{ I#%mBq ]9Hҫ3@-^V{r${%7y&W51O۲a_8!6+U(:vl5HiHn�/Z/tw{2|kK6'i[ fFE0 +RP}XJ5|n*GIywjnk x@.xo2+8QtiM"2{RWԁF ?, h&sfx`C[O{GbgX):R OϺs`:7)/gRm#gp0Xe}Еqn 2傱9߱κqGC Y_k~ä<?D*яUi#,h aR *<OmCbjHZ5WE>\DUw�mXި LԩDG䰫"7 9x@q1X7hǤoѾgc}?>sO,8€# ^mhXbHhWT>AYPЯ8a~7[kbjT?X<!XF@[Ʌ._j>SZN0&<K O{<*\*c Pt.nVFֺՎgӛ'.99m׻~Ӕe;I;;43Ohb KO3Vp{<ôJ*De(xhR \`hoZ u dO0` &|t(K6bp/ܡI@-.{Asg֟dή?G#&Yf;О繏b'h j> r3+6/yݭ(#}ݹ:HkzzMX_ͨ)&Wpx gEWZN}&sE&=|D(V[e~=@o־CǑ>{2<[V#oEQ{zP/L*"zI1șo6D_Gl%yKV~1Z?%fOYDq+,O< Q0+VP\J/\/vyfQ!J~dXy!e=(5:6Λk9 :;ݔH]9">ecZF;PKf-MGN=`<Z>~MKep"=jsksЫ\ r/<v%n47)xEK#<"a zU,H;$Ɖ2=U+fۼivaRFg> ΫԻ?*ۏ8C\"7ŭ2$khxzK桠Khk^;u萾gbw }s<W  B^v [߅d\ RM]~Vs, 'N6^TnA0} z:d%l @zIj{uNvisժfS*, _>Pրɑ(ѻA'RoDw )Pm6RJbV-.X0LL*'<AWaZ+OyCQ=1z«K85[c Rޕl0GsN!IL/LY~s>y%41~<!ᯧQu |^�jWig5cAm&Q{w5]FV맹ў2M1Vq"!P?@Ѧ&>}Lmp|bA9~2&LDL.eBzY7U{omɥbJ~?0"np֍5;eFSa?09m!u6B׍_< &z\| U+V*%MԢXEҡ7I)U.gU4J95[Qs e۠zMDJ!'Ѻ10|,> gAʹo㖩GUIwжvnM8(!3qJӉ%~>!I ֘ov FpI_[v䀲\5z"Jy gfɆFI/"a^a[ԭdué\{.L`LZ'nBQ1ytih͉D, )'`GE<o>qtk'w<݅ro8i4uuA{EO>F^K0mj-[ti,<M=_K߰;ufܒ@)k1j#lM8&DJR 6W[{3H$Qhdmu 0Kvx=̺|$<*zП~tyօm=³Z=F]_G(y=> #辮 r]'QGkKVhDyE]Q/Ze[%ѽ?^ynï@w*-!g@PpF'Ql]"{nGzVWɨI_g,/usB$Oh7}BxHX1zOWMy[PNOv6}Si|[_o6v~?+hP7QUJA}Υoh߼@hPXA e^hyUk% ?ѯ-oA쿓ލJq( MEaG] 0vt6; O < {]"zq}LCUuۭEp kVXPQWcwX W[RA⠳#</k/+ɍ`JV_$yh'yB R۹\a%#HS}bW^ ENK|u |w=Fby-0b 0\5wCwq=[#`I~B yp2B \B;px.b E1y6-H+?[& ˻%k v;Z?GeC76Z`D)8YRi/~O0w~I2 `<)|@�"_xL_q}H(En׎U*9F ?H~ d4KQH{q g8r7C-qjc(W@W^dh+zM2l+3- L0hJ^ᥱ{{[J+s ~h#$0l&shjZ;ǠS:?BҞFgl#X8K׀Cz_$ o41,zCA;x7M)@i\T &<੉U3Do=_4h=S|%w1}wK7l]+0KW#>x%?l R}3nL"WhcvmvތT m`&%)n](ZJȃv Bo]2N"U_$Τ`[N쒘W/3&KP�C*LL؞^F7ICtقP-nEvq.df -W2,:CN:hlqvߧ[}}HYQv;7bgPOmz{0%mmL>� c!MσbP-7[ApW09> */KI2x] @ 1?:t$F]=03Y֭W~ۮ9z87FhΜmkWE$1W3"Jto3+`kKP>i7 ڝA^ m0gmy7q~gm0H fS"7U9"n:'Bnb"eK Ep %;>2@6N7N²>3 ϟ5-ٳ|jL)݅D.n=nНY r (EPavۅZ|+;SRrA:cYg>Iգb .Зymܾ+}x ) :m%v3[R@Ы||z`|Įy.." {}{sմ}(چuXM mSu^[@_ڏVƿ{N.;5skBkO^p_$ҞDjDY;FW_Gq z$RYa $qai`(n[ +5J{#ྍ~@v~98-xEnI޼Ij ;^}( r3:h%WOL'LsgN0h= pdF۵]A_Gvڻm"7o#;ԝ(Z]UWutWb1E<}-@YWڐFL)ČKGcˋhtUT\nՠ*(IL$r%j-"๋߉;岵l )w 3dɃNؗݾJ!|g C1>i(^(x\n=K*|tA0ecl"�hk@࿈b ߏ3Om D$a?(ʽB|Sl5.3ֵ�.SO\gj5qNѥ(dv^N?mTEħ+N&+1,L9Axa A=ЗpV}BŬ z&qt¯jo~/JawYUul@=,+ŁޜW?خ Z@Hxe:|L�#F㑩^iyrUu*Nߊݭ`oZ<S;Eli?1 ٘Vs&]K6sk {n-е6/Uoa<1PwA1l]N&ڊ蝋!5 [_%Ow>'W-]?j{&_v }yԆv#g: :aFM2^ƒ>E; [zE[#>]{ws<$ Gw"z7Б ʊV{g-S0*&z|߾A/]SYɎUP 7{u'1vNKsJ]ub]g$lyD6ARofJ} NDկkt9Y'%3=H{8?ik ϝf*~$n:'~>jβ~{-<zO4vVDll i&Q۳FLw,^Э] GyJ3}檸b'Q( m lu21"|O^֧_QLj"\_/?UĸWkHʍw]9]1q)CJ%|yE4>"ē^R1/R zkvGkѺ?X{Ap҃\5/e젮Sed}{H,Kمq+D@9Q5?;rݛsAh.GIEF}w ̘} W(]7KT={4o\juA/vn9._GĚuOHbם(:dm HkQ BJ:#0DtmUPm#azK軡un0xk3lgrMIQIrZ}ʄQ,y/_,;1 &+U!mg{[i:=AÇs*;"{5)IrLٱv jl3y1-OOŵlDnOLXՅ-KADt_alLSg>RN{U!ۉg1l8 퍔}8B5`hm ?מP 0Ҥ*z0J;[bnih&A1t-ײ7!پ,|>9ƂRO(#370WZq*dQNk�LHz,Zzj6%o -| <JRCsM ]A ouZi]\#TW*㤨-t+JS|idOtׅޫ =(w*`19 Ub9Ȼ^wրyuL=Rrj(Q.%ߏia?ľ[uywG!] 93%Ο@Zs"[>dor}i3H ыIK+A]);@ٕnʉkq^tDrv`p`ߡc,=swzl@`sJ5GrK;M/f}Q?l6yҍ p^/'1pXUO;ľ&(&6(76j5"ث/~{r&`tu1psFOv+`nq,}#Wn^a�rH^wzq�&1_ {$:>hp "Ρ~d\J')cs(t:kjRWLq"?"w~�wE&~! oب/-UHs)Jla/GپJ ʑQ#ψ3QBqS(M9NK;<19lh q@NHɶs߾.* 3n:76ArӪ1L#g/~m&*['*C1H㘄;?Qv:#$AS>KuH]H&IoM<wޤFUju v3<GwC 5]S J.#GtOײzܤ-:i Rl @pNk}`f~:Vgw%'/䉏C .gu@/OsO95vped/Sz~ZWݮsgC;a,kP+Zp 7R f!GGu-N.^h{)׹'"i A循v#mwK_\Ѐ(Qۭk .U8J3&?؅"BNuޅBaC+ |u,j?P]# .6A_.Zr>Uƻ+qȻ~lPGQky5Ks!#I+ .LƂ1oVLO&`) bŶΜA_QɅ4~uG|{μ3Ȍ Y&ժa `o3/)]DIGơuoy@EQJg}cm{I~-%xCaLb ZyboW&OUr_)bb(4`U*-6+*ϯ, 'S]Ζ§hu0:pڗx]cyo=iT.;sFˣJn8Eu;y[黼a+^]CF=oT'/+* o4{-yk';^s *絟 ϲhA/AIXN~ԧWZaʫ4syNdi[=;^$ZP \ǹ _i)~i @޶71ɺ}8GY%=i� 5*zna_G-˃!ԙ2%ᦜSK)KC}z9u$uT9`];RE`A qٟ}BJ[.WB,{L5FvFF9cʗLn/mʇVi=R ^*z&xȢ8+|u<85}9R;/|ӹ.'zR_>xݠؽ!4mP@x+JGnk|:‘(Roҍ D왵WvQ ^,+TIn1$4%,O!Ӹ<)t[Ѫ1*WX$y<܍M/ Ո=v5`?͝TQ'Dw&,6:�]嶼bYT�+H@vFGZA۫\nKdVMYҭEcJE{+-6|5F(qQS rXl>Юf[<극ୁOP/bפk +ȚP&Vkc71as^03;ĩm cN٥oOZZ}']!?C:xt;2+ShWPPm!ȴⴊP"vURww~r4&܃tճr>גK-,V}=d>%)vE hR({XRgEn`} ,=G*׿0ujb"nƁdvYLUY NX<ZeA{K#P3d~ N(`$؃7덙V<@@<E>R5Uyo}H;/rs*+0ǜjJȯ0j%S"G?nܖ00Wqq=E>2xu[?\r/~%R_XcL]]>Y%{<eM|723ǟi㦖�~}(=l3?wɐ&ʂJ͵_Zq }\@?@2&o�Cs᫩Ql eb>ShZ|}*k4Un'(f0Ʀ\K#G# A/qMC9m~G R:FcN2\_y0`z3&zrJH&^T<5&16eK 4 (Y$=21jmYwtJ&y%cb6 Hyobn%'&ZTc@޾S M޴yhIXUƠV~eп\B6Et.Aǿ@w/~sܒ:s8۫V@9fgSa/HMl `ԭBBnDPdWr\6[;E&_v ^Bam=sa>z3&^!XXVaZbik)b60iYWJL(:=C&6yCy` AG10WT]݆Na4 ʿ6\�n~),2^JAZtxݿ YV5]ƔN֛Z7^ j,hnP8Ǹnq<B?qfnyoFA<|t.ǭ-k+ t>(_Hp׏Oj JX]g߫ǁ"ukFPyT1^ҋi"/|#1raVqߩ?PO;f0mnݒ&oC=ȗ3?s7kd8^~Xjڟn $o44j!N*VqF=E5';6a;09Ov,7~7E?6?A+;9*->qY`I¤9 o8|vyoeBمA)~NcVQ|Sou?E٦WMý/I6€`W׷ r4+<+FVVA}<2k|~ǜ%Cm±f8`F'EY"<z8J UmA>dɆ޵{Mp$7˼&`gaF S6KSaYO\aNbRdᩝߥh+,X0g~ۿU. . u2PvsZ?󫉵1HdA]Nٌ;}0o8 BQ2! +栧8ht1ʃpIVz6UYD&)@ڕH Y٨|bd)~ʅ?BKݗ f߶'.Rmc/̰mD K5r9,^=wԭAZ־eaP[:+~aIٴ;`Vػq叚m0:=!W!eכ~~?g<?d9BWn+IC[ÆapGK{;ο;c!D5]> hSBO&Z<證b]@AiҌ*1&%QeR9HUj2OrzЌI[}@u5ʻS~dUOYDG-y6_0ϑ_o@Az*#CwkƳG9V|a ]0LҐs(oP+ :jO(콿&$Bůy,+FWO#%jց)LEY1lh/8U*& TlZc;?Wt}' ^\{j�{vpノZy!tv)>b7*!g:zM"M%z. [질FqZMxW ye٤IFyh3锕{PmOߤ@'NW>'y3귭z( ş 0/ΛZZ*wbTnmsH6=pS"_O}bnٲ` $y,_Փѓ'2~>v*y&OՀѭʳ t| -㣙AǺ +A5iz6uu9DI\,5>S|U8Ǭ5ʿR%0`;k]a鎓h]\(ZG0xn_kT}=7yVu}Xjd]>iWKߤnıLs}G;j*goB8&)&A[ښ.^')͆\;,ݜBONع [w;l:tAFEqО*?w"!휻~<ˈBw^ M'R&ـ=?ZiTyr w&b0=Դ_='2&bnF�ial{ FXK \SucFVm<2 kBtN`2n3ot(uG{/i>CQlJ5;l1uPranĭϠml}Q9B= "ݝ9[a#!F_|ɻ6"v׽s5 iuV{B噧V 'L<Դ $C[Az51mn߁Zu_ σv}_`!eN=<ᎤShzo ac%a E3 M`ن@&Wby^dX#8U{ VUihZ̩݉֜[@9giFuGu +3v"ǃHdRo؉U?΁&v +$56(?) ]'#ۥH_:z jr..usEL1BQ&Vw! w͂%rA_{}Zus~LGODf>0 =ۮTL~᫼mSw圾�f`K^]ï6eٟO fbFL&fvxdJG#+X@K֣̟'|& o(7 FA{`tm>;*z6YAIp |Ϯz4WU/G1ڦa{ )X]C&f"^ɕ(%]ِU¯\> )iKbޖރݎ ,芧CXz{Ե V'i"Q*u {>O[\,F7q]kTid;":&lDŽ}SM}1]Y }<_}Ë+0'QųW@NI-W^bɛd#B~ 3Q6r9TH.Շs^h~i.BEm,ya1@ZҦ[F(\~ Con*%{w¥v/*Eu`p</OUSP|)Z# '},}/Pu~nK_N%4iͨZv�oxQܿYIv>'A?crG$z, Ʊ7A^ܚ=ix!n}ځyO_V~n/vߝքωD=?V,'Xy+j3͏$c<C`R\{4W,EdP9n{ǞaC=wt T ٓ6? OUOA61 eikW݈\Q@g Fp}>%S")_01#y|XE^Y�늵  -Dpа! m)9de"_T; \S$ښ~wPU*ql >1w'"j*kbȊC(֩Z{ 1!}/ѥ0Z tta+Bb+t j\$DpF~ tT!:@q}(2M}W@)fI /]/~G&Ied &{2OT+`\$*!6)|_s1(y1,d~V ɨ`Z&ޥ}O{nvBz`|u .g6ySt :|>R]Gzhk׌AOܮNE eaQvw@nfYGHת{Z:Z <Jnm@ ƾ5ۼ?:Y =[;TXszɑqTжs0,Lj8309ӵw NO�~#+@)]a닣0b\.\١@o]0ŖEsD[YYD> h$pPbاqX*Zce E0Aƫ& T=f<^]-VM t]RBWF·|ߺT =艿xnoo=~7|gllXƥNfcC*abD*{ᠯe^ X顧ue/o!r57xN /!9^8湳mMEWX}L <j/IFyGh' ʳ/w_sQV.J Ч߰nК)h^mIַEs%D|K|裦SF6bl%3"6pr[d8]2=GIpd>mw܄rJmVH= хѮAy~[eWx-d߮WQ8%"YΚcm.|Pl?y>eWz΂].H޸錴Z(*ШV"-o;nJYQ/0y=$qi?nQ~aF0+h[+f|42/|Z ]iK+kS3KkrI+v_"joG\;C8#{??]J91d^0"%VfxV8yJS+QQ{lfNC5rϝꗞ\ۊ;5'ݗ_ ,TmCbthG}z@뛪OD5=@lu} ݑ:T //5z^r.MpDT?K{_U _FLĝ7^DJ 1~`QSR=b"TZ9dzl2lQ2Ƨ7k4Z:zF6G[Mk�*L|9^ ڡrHo(;ԉeē@9VBwIquZ]"fLXH޲=U/|6s3g(`©U&6+/±=:~9r:!)6>XfhsBs`8e5Kq܂mT89Ryֆf7s Ѿe"'mpp[0Zo(sQDݡ&Ppze; wǚ틆?Ufӛ]D?\ts [\:B© o>pn$qfGJ]Q-C)FNU,wDeՑO3UY)YQdWKۻ}xhڝu~po9˼9n4&V4=kzD58`sK(2sݜ3sS=(}Ve"F'kr!�_bd`99GLv`J5M�-C;8 g绀ƍ!2h} É g#=+ter>ENB{v0:[{MAN)>\[Rw3J6MtykxA:yTtI.)f]hvYuےJݑBT0lVz"E36b% O&u%rZkGĀ$p{D c(w%rgqu3`U=>oʝ3Hګ>Y7/C4a%^_AAak_Al4>W-0|\z/;*+ >N"w>.i*554P3L>o|K.mV`AaNhS Mt0t /Kɚpn0q- /jɓN>YZ? R[#ͿMCsj2 x mGcgPӊX$$K(U#Ô6%=w~:ށ4FYGAQq,8N%x00# 5̈́6Js6d?A7qc1QFr@(-"fXWLJ F{k:/'q{.64Yo{;IPӛ[ C{ep$emGz.( "{ -<e*]c dǬ{15mjl=1ݳQV1cgZlgABw* PL2DP7-(9tI.stu=sEC#r~th٪aCCoZþ=WA+*n> S|o QvLk!rh;;Pg)6HI Jρ~H4 ZFX۳|d&]W"w ^uF8#.ّ7`͝WY d6::vΈ#,qz[$Sbtd?*xRxS09#jjMV<cwcr0$'S|'bD7_UTM!:xy)֓V_wWt=@ild6UoO*+Gڏ-L NNSBG7KIߌ 9 xT_c5Oϝ!BimHE(N>*$B<JKhVwX=-s$c".&M_bX\k)j'sϼt,J9c"$^0e\fCV㏐/g0`/6YSwq/ #O@Wnl.ȾYZТ47 \[ h{b"6Zb$oFjPpEӝh6y2{Y Y R˕xj6ڕ9Z[/S95ZN%eY<}c}brgYR.^S64?wBnOvry38AZ.>RwRj!h!g9ԳnJ`D_񗏑"5t�Yɦ7,ףqEEc|<-(I 1+nCRm= ÐH؝_ 7a`tz>f\10/梱 )CvE1a6+1_>soX}:?RY d~2|ȇ.-/}25bry]S?Y~ d~ __lG+m#QEzb^ 7 .'_׼&_@,/>t{Z뻎oOa<NI}ccy0roކLkKz w<9daQ䵤܅׼1tKx܉^2):{GPT!=e!ϕ/ܥH]g{ծc+y/<-t彯0aSTS6[xeQ, LM;R҆�8܀k&h\hBXюsTN0S皎^ L?;™n>AdYHg朾Ӧ&A K:H3b(] S4}1y ߑK5<4N'϶�m\q+;W]H1\i3]V!cY!һ ~4Ĩ<#i^=t+j+j.ެ|D\/uػ8U]q)'x,4@2FWX\[3"e9(͝HEj߶|V2S ̽: U1ݲ[l:P JyqGIWУ/2:ph&ZcFYdnD_.:$ܽ8J88u|3n>A ͘ iZUY7(S#Y6QB8I$:r:rTV` ]a)HR?psRA0imEO@O)*{j N85Z{>W7kĀKl&nGoޣHn?=WA_YދqvcJ馮HSD#E JV8\W͉\S=m)ނLY[8 w&xsU?%: ?E|Gq+`ѕ(cbw|{i|ӌj>hC Z">5z/EA撖'j-W$U84 A=n99=Ng;!nC_ECm_j:P!9s̢f 32kb!ʼu;ÇhX +{trKHۿadr#HoV˅FZU�Y'z bHqB>H ;d܎`茽A7KՎr`G¶[߿ ;J߆*e1nîmHN9QJr#%`,yׂk}0UQscccZ~[n IeWbrm[Qњ#fK&ļ%|DӮ]3{iFԜ[fn-ID} 7}&Axla9>: f@-^?D?-^y}vxr؛}.T1 0 Tgd^!<GupKXu3"N`mHUQ_[MGry?vj_ 0iĪP\g)yYOGc[0 ;Rk8h"[KY*Z"ڿ & PIYk/w7GWڧ_ `'K Jؔ~ZCLjgt#ԞYX)C]74B'ӲK̮r|kY Ĥ6~_� cF[8.!>%|Vf)$VfM9naت"7/ t_3TZ<| oW'$nBhhZy%`VmE=dz޿%r ZuK0d22 )yԫw˱ġ*^_C.V9PۑwE`慈yϩ$- t6gĀΙpT9z%CTD˰$#TԢ=[4gԬ1wtIлǫq|o^Qt "q:=?̽@6*~ f1jcm[Sl^Nd]"/Z!rڸ27\VM dx#,10 _ 4wɠ_[ u,$x"64UA͜j.i o5~01/ N +tǾ]~?e/Ⱥ^} o1h']>/dGۮ-|B#Olܶ%F@:;ߠ,:eDqS%봣^-/\=ufV cㆩ\K3đ69D[!VoC=ៀ2;FX냫>k(˛Ͻ Z#&Q5oSG"X^ 5*�~ʨJk+j%u:㑃(+<A|^wu7TRqEQ+ N-ެ|Oy9bԶD#̤~mDp^=ώ'֟Mo9Vv%2Wl5~ 6'Qz[<8:@CL P!{we&񛓆 S괅cϻ4}{gݫS=k*CV}2˯o - D|G�=п2Ӻ,}i"{ʕhNVlLylW@ɪG нT|tokBF y4O]ÃpGei+d 6_U˷yԉM|s<u) M'WK!r8,#jK+Ԉ0́Rtn:ߌVTuPWZ xI.+Pw5Ju\CɰWՎS`89_=y~N%@f5("cE1yT~*fjcص oguК ;pf'/~Cfŕ1Q+ڲgT@sOKbb^b'!ͧ\QekA 5{(ʻRz-'1`.#WYoy㴆10^oVվQqǃ@`°=:e,(e|GOOyh!KgHt]G2MȭJ>(Nq<s`L 4iC@9>:^J~J?zN[>ls 2\S6(ygF8_9kH? Soo轃>UGVZǷ `5޳ dГgP!Z7N'i <W_ 3D^} 6%74b5#Ѿ&]yyfrcA`^ i5<a"b?*yPZ{dw8Vƅ)"MD)nJ "RBCV"4{oy|P|us~`}k%bq;fP ǰE_oP<pRu HӗwBK^hV#L3AU)h~۷C"-'cF@]UlXD>Q2w#c6GJ' ~  շ*%qn%J8 ]tԜ=)6)Gxcw` _�ڳj^}$hcGW肕s]Fny&&z,:Vh1,cBQ-9Sm=ȓ~o )#ӕ17YG0kg՗Q8af*r{]!|M" Xm #qK,Ju#qVgٚ[lhsUU]5KP$㥂cod*o+f';u:̎mG(ުٺzbD9sKMUd Ų7ns )EU".3lC 6 N <㮛悔8oV8(2J|=M$w鯻?2lw :i=1LTzj_I;_A-V"iM><XzD͚Mԫ huFx'Q k)*? XwML6XY*h0^1/U7KfʂcN`,D`fAQQ0+m-T'd~MzϷW@5w!7h?k ݉|y+G .XaLIfY6;Mv{N*8L+@ۚ<u�[*oCXXrO@*~4H?Ӥ<&1טܞaE2ɟJQQƧNuj!`|V;邩wr|Vg>n1XB#ʦI L YV̕\<8z#J{+_-G%l*85G1z1i#hW㔬Gʣ6ğ|BY Yq G(ߧP}/4yw[6Gq㱄_ZP}f4,^D]rW?k ' 9D޹FN*E}8Wj<-x}Q~ ^ L nj xJZ,igN 8+`p+a1]>z [|t1{р!5  LD<C螶ڿ2H%{Y#NᙰDzQtߤXC].5]jG$3ix\5~6=W]�xTNˣj)%|[y5_~y!Կ-Nm`RLVЧ:5w8DL!E;~5.L3}_?ݻfT\H5(GG q-l%U o%"�m%5A-J?|:P]Q\׍̏<;f>OPw׼;H~,'|K�7 awpg%IU9"mjQژhI, raW7T׏/H6/::ۋΆG;N530"} q=9N<%Z~釮"ϺW CQoRyٓ\}ozR ԩ4 Ef !K;|QreD+UH\֛fz.Be1/w3$ z<l~ni)/QQ ƹ=.:?In˚ _w8f.*F+wkLnNJ [5^FRQ߲hu=9w+|_~cn;ޯ< Zf\fY&Ŗȵmv@fd3]IHys_Ϧ?1"z\y  n^De}S@5stl]e V&oQ |eFj.T>y6hSZO^BĶ)NN0yh2u`v߁ʝgQユ S=CwghK}%z~X{iҵۧA*# d(ރZD‹z3\kg`[);NO ܠI\rJA;t%[O: ʀ G`,D贼ְ5Mn?ގadQe'}_L޾?XޚF6#=?:z$0ecAd>ӫR/OԖ!F].DS-db|o=s5'k:'v06/tm �F~!k[ڦRt__sBtTVnJDUG2t9�C/{B_e7ڹT _cbNm4q撓 VGWR!' o&;ӫd γvM³~v6�ønwuF 원xIʊG\[b73wi0__-gG^&*5WL;lr ̏ +AsE�]<x Ў44 5ܳFkmhL~u,{O2PԨ{ 4&6t6Q^*h^./쭿<.D{Z ґC@bZ=C]ϟPTm`y?pv3$g]ͷ}Io? a_X2AU뼪&O&.MKuGV_ЄSZܐkq܅w _(?B䑛rJ.kyJ̊ =`fl9c/ZWdK\4"S$0iw!D(/,m_UrYPSr~)fo r#me` 4%IrT}37\0ABr׾֯w`n*|d O@5P Z9[dNgFWklmQ<6­=~av15xo8"RR9ڂ/ByNxS2,"0(78qٟ%>Н$g"L8c3EWc+e1~rDVp"1\F7p^LUs% y5;l5bR6"K5~Gj,￸A̦:BVgQVhQ 6Mc~k $G̎-l cc'Ay)N*<? Hk6>{pr#O&Ֆ<< -QKMw#).L ;#RTYх⨙I'}jj70׶,HݝGWhe]VXzrS Y~,#) 0.>ܼ %,WR]RiB"uh_"r+Py_mYGJ~U 7gL<kj?RņWՍFYݭت%JUn떛>X{ [�]]nڣ'>1ԓF`L%VW<Wd:ʵ(_ ScpLڙ^嫼--hx|ĭۿeQ}tyId=]?Շ)J,F'ymZ=7{<W@ Gˆ0=t䅜*\ތ<At_zm +J[*/7<jLc d2gA&ݒOMxWTqd,F76`c-ݎKf+UtS +dc؅l �E#2Mb#xfRSM!xkt!8 QPrTધ?&S棉S`8`w4;Llٙ^ #Vئ;;2i])] :KA\!˘;<joSY8qX*>HpZ&r#<Hyi0y#A8e'Z._YԁoWRiA$K~n 2[߬#r%x{'d$sȫyӛo|_ZJ:Q*[^W#EVW<1ʹU jƊ1LHؾh065c?`<Z{+=רoT,0V9Գq(- .dd#Wz,IQV2+;tyl; ZxO 2b/wA=MPQלk܏0-a.lvQA%d0kyj9/%bB7`rGcΪW|{WkN.fx|uˆ8 >iV&Xq4 oe /q0Ke U&zo5Zb/^?)RA`z?tU=SZV-{P& WL`[e y\gƬz 7+>x+2tI`T4]8 %O( a4vيh3ڥwy;Z!O_q6^rn;5badY!f`9GCjh}Յ ЙApӔ=^|W#^WRA_5s`n-X'`/R%{nWGcG nbF^Y/1fWt 809Yh÷0|SـE@xOwW2g+ћ]izB)}U r4+b07&d-) }҄E"ZM@ 40,Tǿp =o] RT r/]۷\&(m%??=}< UNye#elq-rԷ$0wrK)wyjg{rάfެګ{-1" G|Գ㣟[Zp%`uBNl1hc]QoI!?RyV`|y XXx?q*uW*/"7۷A90&<2VQo 0~X0+֩DSN[E`ԷZW k<lTMg{<6 ^Ϟ>"f.9Gob\8rѾ=i_m Dp1M2gsNSDmA8uNEAI|%Ml#9_nsxύ+sF- .~_ wt ]tKp?^<�:Y7ABtWvQ0bZZ ڀ@Ji*8禈'v?Ñ":kEW좽k# @V#-nBbzovW^y3E=t`>F 2s*_>r7 *Z89?Yq fdEk̞E͢Fw+7ϴ=Bp{,jPh N0|tݮ Y[U_0o粎$΄g1qq⍯-{l7aa\?AKZUe"WI>�ܾ88yJ,Xz4 :)G.` mڅo]AlxbR\BM2M6Nv]GO@Ps1WyPL܉-}|Zi;<&*tɀ> N<n<vni#>|9EP_\xsNJMQ$gˈ }h}# زA5~=Kە+QPwu%x}.K$٬"w9;B~GtV;?j@k+_w0r4E]n~Vf'\>6ْJmς]~xm;DG$Eg0Su# 6ޒHrhD{H4-qD06TWm1`衣2:fNb"8Wb2-ێN*,fݮ3+6#X7$H{P &?йl>|wicn%)=*mިM}rҘH}41k]CEʘ4b>)#.A,z8<y0sik<~-{n랱j uKD=t &aCHjn.z}+=OVf{ ;@TN5 n/ P!AQ9/]8|w/5) ?Zh8J8KKdT H(<?ZTv,Qw|fJXP,߯֯!S~=^u*l*Io R9LHZFd1VupGBCh7 n(9Xc(p(0;z"C9VEM'ut!>P}QF=c~2Ҙ[FAE 1CI1ֈ-6r##;Z#{?=89) JBs||0o<OQ7e|oAP|Hu2CV�9{z@RZ5ԍAls'ߍ,1n~x+:,U5zx?@UjEbU6IƂ49r.9wy]ףL%ǭJl8tZ?.0j<F6q.k̯E'?|Q 垲 .Mg6#a7KV=+9>29ܧD\H4<nj'7n9 dw:|4/NL9UkZ̊1m|0vf ϱ L6B >{Zr +V`(0O M..)p%ҏJ�\Sn扒D)6Hx\Y$7SʵDŽV"&O2{뾟+G߿U%J`fl;)hu/D өHܙo7WmCy\6HL]b#XR-elE1)~]D/=ق'i\r[I+26q`68cVoV<Ɗ$Z_M1`Ū[ Q/I+LI4FCg]_Śm>^ց[Ԗ!jfwboe="wnsĔ}OY'Dք@>yX%/6ew"놰h(y|1-UUbpJy^L: #!}yYQyo1w<1,B#~iPn+fqCTK̜7/OU"3A#wGvWoK Y4Fai+wtnGJ`:UETѓʘK pa+Hl4&Ʒ}a4Χ nkpo=!~م9fn5j{"m,w[3jjoĴhz#I*PJ'%*S?Dç;b@M/D|* +m ؔZ;~dvT $rG'N=_Ja1ѓ7H!W`~/|g2wzТ>Dȇ =Q/拱}=`%ucFȃVQ /uo<:#b\%ԝ{^J h4M[r\Ht5P5C|+ jc\}6&}NehуAݭl1{os 5Řm;+Jg >$ӋFF="LGZqk;`lOๆ1`>ͪ2<#bb2ߞqdl'< a⁖(5cCqD?YS`~_qh[s w&8^՞+2hS`xO5eKލ帥F#m*TPopy;sH9w3HQm<8")^$Vm?^dPCv`6pg4_7$xmB#3:`_0RuTqw5by̾:pXukPSN]\B[& g7HȌPo/+wP`Zz%ݯWˢQRb _�&kwa m|&AtFɎ:k ͉ yq\D;_>1ȅ{oΏP6p՟Qt0^U�YwKekʼn'1נfnY|&HW+{jތt.#܄"ދs|P{o=.#c@ֳ7X*{*_z]~�_t(vqH }wg uf~VSGkU \P-heßǀ +k幧)U'>P`b c]0 9q~$ /nl({7EM[u{T7z-}JG:S#lkһ1ijvտ|RӓЋIː9:֪<=ܤYtnĨi?ToVsSԊdPP_&X_y5]`e{KΦmH.jFC6'`F|1?Gbo;ir~>HeE&rѿ o^{a_9<+b뎴6`vYXGa50oڲ[4:2UZb@&WDP+ )o>qD?tAE;i4YFš+v vw0fo?X9ԸAZe&i|wOT# -4,/+Y`ԸF]$p##dI &٪j/t'*ֹF U51aUa167\z^]hx{Olk~[g.)_mv+ G_Ґi};"(MYm4(փq5ECT0e1ѧ%,'f5(X _\ 4IM|Bӝ ۱b?w|_07K`\HmtH"^[@ k# k3ڳL\8l�kíR:=bh>Euhn'~1.:sEV״uCmГG8M^["nߴ6Ae,{ͤ~O=s+[u1Gsnxpʚ8oyJA0݉s"x-ROb8hc:H!ӰuaA0[gK&ЛgʭLB.gЅ¸k둗ȠU^{仉ݷ^ջ$dQ]Аjt0>p-w[3u|#;^9+'fQ{B(v.~6Awh<KjAE1VaȸxҺVJv?"XZNLrWG׫?ANib& A~r7x z;fs L+>?6v9V\UHZ s b$)ǫ{ﶰȬ`nD^!0WΨHK8PToM^8)5hl6ݥr-8*s/uQw#tgARUre#4; ŗ8U'^e칸JvfbUFA͎ȶMz7Yd!cxׁCzx^ M 9[(G!sP}c>zV߾-^WdI&l P62кIKpr(ƫ\(FFu@`:/9P58ק<ez?gEP:~ho^dOћ`: 7B1NU ]zV#]<Xf}tW'izSZXD0K&^ G݃GG1mFrUiUD2Rǿs%ß1,X0Z QPdwlbǟ^ʼHLBtH!xm}G4ROpig-z?${w[#؃|iju\~(ctgd0 6ԹrP]׭YkQo܏8W _/Ørb0rd Q*W7la^UI]vk{WF=b<*̨)kw:0_?ivFJsP' i>zj{;1(.j.1^Zo4)U zi/$8WnXofb˚(w?&n w #}ĽZT~px+W)ˡjS<P ZQVC_^1v\裍`wzfUq Z2Gt閡:bi(nHǬRm(Fػ]FДϩ!]a~5HJD.nڭԉm~ x]0vT]yD|3H?XoG=aXEZ $|FiK<X;}=o )OC[mPHm7wɦ72I-<bBq1�juOyZ1QϡS7Jl= =ᰝY q|ðt&\&u5*H'jզ(Ѹlh)>Xfn~$ijwބg'x7)`MgDŽ%о=՞ג[Kk%B2C3쩘۬tsT)pVKf\.FZML۳:yd=>)ygOZn˞u53jr[0s|Rwk}{RuUuK1ܽ43k2αr{�oM{٨b/ʶ" Ww}EAP"zqztD{A,hW†b\O xլ}|gkt t<W{}/8*T](bz \ 泃a`E-TRx7dltc$הߝ#z [0 oS I[phTUV"׵Š)nډ"ލk:qLш<{ xs$!^̦& ƨ_Fکn$P^p|{t _$.١ls(JNܿO`(>/HQ"{3,3w:8E<{1ƓE.Ap֭'yU$7 qjdpXe+uz wOr;F_%[,,Vsc|:_z3U]A0:m ;whϽugQ>v(&qь;z}zڥn:OK 6?uY�}}ǽTL$!~khZsvx"d}7a c[2q8%ExGv|XlN;]r ߊx͵"qkEoQ0S:~ xKH#*ғGկV `qZ]8 q6>+YZe\7w(``"L%"䆵M1GPt'P>?$`3 sIyIcŒWCջv?ctznT~N0g l�/=me3!Qy*tf0V?Zf&OAή|/ṿa{{ tMg/53fʉ{d-])sgٕp^g?ҙf/ѲV4O�Ϊ{S2N`!8vg`}vS2޽q- cʟmKZ ͷ$>e^"<M{NQEGn^5TԸu}W0fJOg#R"@7pAKxh_i K:F^Y mD{1w4an?%CT%L(%&9[@{&r#澿陚 G$+ܳEq}OvQŰwP(5/Du\֣ϔf^H�O~1L: W$&fjo_֣|aD9~s2Etu 3snےZSB{[M s mSH}uf:1N=gQ-ZV Q0ʡh߳ >zebK[ϻ_BNt %}.(<n-1~wݲ}4BENpp":׬Qv-<x/ I'#|xbW߃`Q\U;h娽R^zi2XW:nJcіyD䴾Zޕަ͌=:`q+3�F*CR}H/j݀JP.<OΧ~|ޒn$7$ ,1.0h Vb()Dm'|,o(=][W|2! 36Gk;; nJ .fl]lTb7[}�:B#~_MBG=ì.s`ixǁ,5WƗjv#xi\LC;DMAW߶d;ʋyנ)-_ȟrIw͍oPs@ ^l|{{ 7.o,Ͻ#>૆w>mr0!(aw5:Pvo "iS;~].Gbgy5Zul,cj}* .5T&8);441q'<Q{ V:W9x&LC)s$ױEǧϝodQ9~>* mϟt?Χbd0 ]lR0C9de=2=L j*we( tvOٹM(V2j! %i2(0x6av j8�<G9ApLɠViUWzpsH' @m ;zN{z(g(xzg'7& jAH1*˚Krb'~Sh GG\`♤|,,X0@g`x$(lj`\ccwb4 Z{(m:]T Hr+ fťQgcIvr{W=k,_YDTSh3Ttz@2Ow'fUL]72+C N}�kgbUTNOɸMbVz밬..NO4n+C<rirBȕ!Eu~ሱO?@Yߵi٘=e m&,k Ɛ3'16LN*z.=`"Zo6D^g0_w^u:eS9exÀ"x|9I7_<iz'Xe[Qp)ʾ83è{?㵻k)o,őKgAM_yCBD}B_?6M 3WscۣXf-R ,4Zck3Q^c 0. l%K+bpn䝿2mD<BOFP7r4CB$)#r8%i^) V)fU<r  ݒ(:uy$Z,nlM|-zV m�Iai׌�4S)(%\d]WdV6~ ;ņbŧ}.k$*/yGBK}p-UЌsĖҷu7ΉLMsbi(-FN{ŏdTs;̶4W4>y4%|g*r -kP᫘қB6^]b_>,8㻇m.XKF XȂΫ>!W[nEv;J3DƋ oi3 l#g;c$]@k3{`>aP+Յ1yOF` 'PWroQ|l.G G3~M׃QW^&S=4Ů7%`1R n0iwxdU)W^ (˦}'VH(MP(O)PQ^f,lM}$}SLUa!nlԍ%4KvilfXKdzpm'2}L oqPMS:ͼ5VbՈ)^;= "Ϭ Og<J#鹹+:MAwR Ûժ0!Fz, _'ցTm= k>} [īw!A~]ö`N&8nrKru}VZ@bnPU|;΃ezkf3*?mb@Owh$[O5<ܾ)>5.|wӼGܾO_0ոC3LZƨN`I!<t~@ass<QaP0Fe ͞8/)݌ՒHANGBaSoSjo vGH]{Ra{o 4ꃹP-*8Qq5,sB R.9b_ ]!8ʮ;uQFGS7 %֗}Y [Zzltcjϕ˸N}NTp>N L~sf{GHܻ)1(~E Dyz,8_C3M@W]rs jV9g*P\mD9m ?,ݻ֦$OtXoQu>)%H֟Gf4I|ImANٙț{߂ow`GH6Ўw K\{E0r!fRs*T%DTYXs 4iK<Ҡq&j ¤x5e]|wD#oJO"O~dbVfW>)PH~&_g5Whpo蟐 kM>فsr 31EkyYZ) eY73&mWEpq # f,Wl{A}SkUP?댣r<D#| p?0bUVedʉSUy֦I\w:Ft[}BhK"F*EtWہN!CA41+mDٮAya0NˉJEޱG-:A=Sm%�fhxmzsZ2Qk t@[7i?ijp:<jZ323 noy1]Qj$CPb5wQ?{y{_Hhu?BxbY`|[H,+E7=O@&G-NBX{vc$4!I;DhN M0h0KE}YZOu,ïޘr?]ϱ~Z1C ow.txI-2UG7 ~#>ɔ?uŢ#qSevJ?A}UR5Yƒf'?0}20$D<شzօ(cclMy9,ӪD>ٝi6s ۴хlTW1~Om0InȺ(-%]%ёinړq8g/eC;v:IbEV #kXڵ i3`9*^^z4 R͗ (]sL)3 QpCZy C =ڍK6>ޘAݏM7*&"c-u <+ƀs|NUu|A#JW kl8ْq rR.#[9U3+ђ.ʪ�:J7Z(n jT$Asc`>օᕹ|&_3*逶Weݤ`Ӿg?:c} tqɠϸ{Hc02B9n Uk>z.ǰ~c7z3g)D8[VrNY`v^^_KzgC]eQ|<g'# x m!{a/\qw?{fx-$}셠O+&hlԱe?`r>=v5Enلـ;J]�U\QluB/+!+$@z63u2¦ӯ`$1h8`1O䞍 iPc~|~zAa۠5]{USVwlz&`P\vi,r&|9z+HCw=z3f/:Xc "b `hǂK?i],&]dxuIr5ݻ;A2}CU "|ِ@_wY((Qt}+Qpq~T]a)ȄyȘ JތuI _GTy`3÷gY@j%zGE#/s<yl UڡAb0\=¼0\?/ Zb@dj$Ec\ӣorI+"Zb'dm%s#sϛz'-W Cb#qy侀5y~cV$aQL^R227B?fQcsHqzD lbc%R"6|j6TM >a,#03 k ЦGv|L](ir~30R7q;# 1Ƭ|JPHhB`j̞- g3eR0j8`ͅk{kLz^U-W#@R*᠂[r)X:Fnmx#Uٔ_ 1QsƄgd;@ DT~PMAd At5T_nA:oo<=f-L1uPRR̥D^#{0xbՂ„{,=1dg݃w@vP3$&U)օ`|Q=k37ك|#`at1=*9"} W ,KSҗ& W{.J`_|l#f.K?B~YV핛lEkBNg^3RPUI0te1k^쵘T, Ooގ}Fs1QЫ:j/3U/V2U ,k.V N&zFD\`#,u^ƀӦ5(:PIO (gP7Q^ȑ~p ԗ{rR:tᕒߗ:Nߍ?<L~ltGTu]Hg"vg"C7{J'Q[`dskf ֢.@Z[s܋Mqg\FuK;m] ޮA{0_8A1 ES9);L2_OZajO.#;C0bW> [`!*^]_S$L]x6Gxym_`4~|�SmĴ2FcytЕk4}B5-ˈdN m2[1q4^kJElȩǝ3@6m(9G/î WFX;Q5HdlK^hFvу`H%; F}MXǍ)O1TL7}:]sjIm #ݍo4fΓq;_P`ݣ,tud a]!߶mw,g�,g1uj^ꆼ&~pJ XbLyhjDܾ9"o 'X-ouV$rgU3mGSzژ7XVgRt|~x? /l.-(ͦE)ԵzS@ҘȒf؋2ui k_(F~_VpN[('ܗApX䒙׾/%s7dk|BiN]UQAm;D>sݻ Rsn CIHӼV;hO}AFRQb?9+@XZY7p]>MtQm9+FB8|uq9Bi IFNM Y!Y588MGb1x5JׯcWDR1՝S`,`\_!WAy4H159C c;JdԴA-YW9I_C'A}xd"IlO]ώxG&w'bJnJXJXe$8N9ԼE|1rL \WOa(7/?Ԯf2ʿ4r$ c{w=m^dN@N][&89֢U07k{]C >|uL! OWxnB! ENeT3A/V)t6!#vS�=TJpb8kN9̼{?*9c77@fJ,]^u< $j'J!ͺׅa$vey{Z(uູE4jғY2iɁzW]0mZRQzȮ+>( Jӟ70Ur×N"`}[d:*#?\H˱F!_Wgtd P<,x5]KݠO\MsA\`\$r%|"zWI_ʞ\'S℄c"5u㳁2^e}; $r솓G+ kuE}GgD_-ڶ瞦NϞq U\:WZ7L8V_ðxf"c'J A~}k.ȩԊ)31X^>`(m!A^>"Ui&[!R8,0Sxo=b.W<,%eTG`GX ܪ%w#feTΉ͚ [gݼbyuleѯؓjԒiQ^y.㆒V܎n_lcyo@1VHG"? UVEsQzn5p+_z̤}5HSy z~n9)o^n/?=bY `Dkua*2ވh|NB*ޗD@1d[Io%vr+`6=05FnyaPIFҜS nD u,y-^ O+bYSUF<IK~7h»?EUoή5˜Rw >UF{6̀Ypϖww`V~xS%YJ ]+@f~Q N˃R5L'>Wnr?c&2EvU~3_^RZ˘.QO"N3ReutcWנr MtT zɵc=0\D^E~V'{^a_FP/$|| 1_hxƯKXDʶ]ց,c@yNd+͎gen.V! =7"w:\FZD3'LP^ !*̓F Ѧ￀A`P*LLO|*CUOF̾_+i+Û)3ϒu2C7t]?U*^Gݰ}u$E^~5aK.Kƀ6iF۾X<{^KWXXڳ c/g>Ϗܔ&혨m)1,ڭ`Ҹ߲bF;6Tr1n9R#f=StKRvjOѹgIoH۝"-6ϼ g\t@ZLݯs43+%ք/&6|_} Hϱ@ˮB d y9fJ[0mzy?s lj=tq?:x9(fl_I3#zb8j򊐕Za@7^@Ϛgƽx0Ž9jzdi,WV[WDe$5B~>΄Hν].:e$ʝڢ1XZwX0vBO08]A:ZjpBJ6BL<BV~iwĉ1Z5>xm!b}S)բ)/WT YgogJ կnV;jͨڳP sF?1n#G(f-(Ss3_TS=UDZV;f{J]d#81ҡzi:ZnF_klw=ԂEi|s~|Lz d%9]jlx&F|F%ףS Myn{b Mײ"JxA䙑$~4jĢs&PטI=(zyDԿ|3] ߊg ~L{= �pV k^4 cnQ0RR;SA*7]4ΫM}7ޛ\۫ g/e:1=U`p zn8 N e}׭NEy{~&魓= fT^m3T,�ɫc]kQz@X.3!b(=2h 5V|Nw|dJ=l$5aK`=$8L]HȻsa~Ul �,{]<+#>I䌷i Y]c۹aп@Q`Ԝ5/ ?>< Fuv=Xֺʖ!ٔp˝?RK.70o9u9 0&":/+Do#K?3 Csz'�3xrYW>eW?_ 2ubF7~x>3C MQs"tt-z =KWdazWLDž.yX0Nbi06hXw ̫3"`0E<$�D`_}q? ],{s8yQCf !H>U&_!م3N`\~%rVhY00+Uja J2q)Q IMvnߓw2TtuQ؏SkAvdȿu}_#Ѫ1vScEY@/r·W{w{&hL??zSm:RJ>AVKT[ Gv}U \ZKAuDN�sCz3dwckՅC) LL{< >iȨo7M˵w3̛a*ԃ.`{'a@Q$*`fХ:0Gu˗ɷ )^(OEtز10OJu;S5쁻,P*/- B'jfcAO]:ގ`񿬧^Ș?n?] 3?o^#D+n;b঴hL<x9'gSkX*jM?.#;Ճon?[Đ+zaruA , dK0#a&u$c't-@~Izo0dnTS6pRzN>'q�п{۱#Gy FRdS>4E5Ă!YG3YZ\9\YcR͞2;[*VujLڿO#JtQ2Em@=`w,#ngB0?p:^Jغ|:lz}*Av=D9f 8hB9)x&Um/=+YE:2Z0KG A}yIǓbɭJ{9;um;-;f*/"@\..rTnw9hxJ5P"*ϊ rjK-!Xu~OIh0n3{@K׮߸lC|k1.{JH Zy$Ccǘ"&hnt1ƒ t@ѽ+@ Pis,_Z#ެMmݦVRtez Rtq{0>i]G\77\IwAyXpѾV,J:gޱACP*B8:b&3oQ@j\ BQ&T0.d MWGo_Qiы<Df蟾]v[ŅOszu]:i &ћ:K_nz>a5b{.0Na0n˴mnri)rn� 5B1õ%ˮ3qz4nhW-1k 89Лt׽9 1| ێg*rҗEʞ?-~Wa<ܷ;2~=@R&K)2XO'2o~)CtJD!4z]�-yˁC(jr"~?s'W]' 5<vc;Cn Պe6Dt9Ň;ZMv!Bhl0/A>tl&. F7{mPn,VIge<N\D9s L6x)%ekm@)܄Sb[^b'4k2d8s_S?:T #qLpi8KR`:u;Cg.)>ڶ&ø!( d'fFzw;a,9KûV~%%e|p6s1 ym`˗ |"dQXip{bJn]GgBmJP-/_"pۍнZ&1g|ǶMFבS_q:5V=)~IPr Ǒ{թLTc. co[Qk\j{hEn@rb(Rfo"AnL_[R9/MM릀atO̲dݷ;c֞ӠZ5�uɿDgꉧ(Rvj<1K̿zfRTEQqߦK0ik[;vw'bCM ꞈ~Foڮm`XX8r9wz}iҸAxYc)fE.%{eK< <NfZvrfO߾5�fǝ=PW+XBG&t}J{A߅맸Akl!?G_T ܘKpTj@QG_V;Γ0^6U(X&]'Д^?L޿ l٧W1N ,Jӽ1xF7m9_ Ұ2yo.G28aQnFL( {㉾`ʆ98=Ie]Aygs{?=P..nڥ 2=O_˹5)g0 ?/͝ŖAUϵSEcg#P罦X.Ɩ=g{yP5µ1KJN4E![=6ذϴ yF> VOoMF *(l2kyq:x~2:1\D*7hbfҡ?xp)F{*eΡ&F ij/,~ ߡqB?=Od4 rʻ<"$Bnuj,lINA'㢟}@V_Ew?jx0[#:%Gk"RIY}As~Gʞe@ 8 ne: r|�fA;Ž9Fi;oJ_RӬ$g0X\U*HX*F zJ'{;on>L<Ӎ(a|9Mcd09i&ڎd1񞬶 dn"ӺwƸe!&d(/UrM+X}Yz6<Wל eӆ[-c,y׊Xg&MADI n|}t ۏ`}T6# C8O\]|X4ߛ 嵆rhN{u`Bv0ίd@]`Y47$E.$6$*J=KD,)XX}"msA-'N>\Uq5|fZ:,}su`z'+.D]ꊁC)JiJ;%§n9)XT0@ O@Dz C Q|Hijo/0Hq{ vK;=1Ru/P<jEZYk_bb)L[.oOFqo]Z^: 9gfgKx1?C0 OWY֖Yԉ3Fb3 .ojz.WhlmÕ"cnHn7|k*׍G[-۲(0羽g|t&>@v==mBIL+zˉt9[/zCzu cDB{]T]qa+uf$N2fݵU~U, /dʃ?ê3@Yzi  /y9Py0kULAʹUz! ,c4o_ȗrN:юF.\dč 0zVzF'G0NOD6PbiT׵\ ZcڂVPyl#_Z((UwS*s 2Xr-U6\0j9َĽ.r`0zZaCnFP,m33m>0X%[4c4\F;^v@3O^> *%fvGbe۷[b1qNYIwe$zrx}Ow -d<Q[otMaKy_D r>OQ"bFcVtƢ8 Ũuo0"ڷas쯬5+ON'aƦ o4QW4sk߷ٹ9prLRhcҕ U2FN\}p?T7Cwrǃ.獫"xΐ{MR쫊w5ѧ||:0D;.!K;?$'=%^7{ETc )Qðn\^VdDشUGʳ0ls]#|)̈rف@)2ͽYɎ'=+`7ջ& MQq`HҳDe1ܘE`9GOx3*A0>[qح)wlxėrׇk:&/gjO=a :Ν00qsaB;Mos0>`-D~(Wq6jרWǓ0"\d%9CەnbkYS";x``?\UW@pQ0 &ýJC va)8fs**oսu!}6o}${ii&諧כ!*uD4kٓ\16ZϲH~vH}{X] U&*YŠs-l ERo`*.21HvQ{?eͧQeel #_] ĐM42P.2)Ũiye7ZαK8t3&k\Qw"|V]iǪ,K0Nu+H5@ch6Y3 [V?�u!Bŷ ҵ}GR`D^bw=ꔱ|;a+HӤVveP Yt{?NbND ~ŘN{e{"~0 |rnEdAσA򿆏8ިmz*&[uTe= glqY |1J#4#CQL6xJ8iAg u:";&Xwe"v74tGbVMT) <aPtLq֕$ȋ4`*[d FC ?KpY פ⿿mœ( o1ٍ[n&?v'ze dJEڝa^MBX rEZ|/:N~e&1I6-uLxttwAJr `2 ?k7q MykjpjeD9w_*nI/vo ~S+I0B3<r$Q=fO!Qq9_>j%yf>jH{C@_#]*8gE[h,_<{w|�nM=w1U̩?r|ΞwR.k؈tݗgoyaΞAFcS{�j*K `dliKx-?U.wڀ89пng L0{`3{tިtm4S m-nW_'(;D(iBnлWP9rA'b(˸=eRA9~~ 1(GĞ r$^";A`@ҍ~AyS:z}/0$}no+޸P#)7"ї;mT'cJKBz>__ !#zH.3-mF"0ieQ%lPmDYhE(';Dl>hAAn*?Q)C$571Տ$1lCͲ gz(#ʷReNڳ V�=a^]-�{ŭҼR׀{É}A[{yw@)ÏmP&ۣ^ +uT%|r.qźM]`ڇlP;Ѻy/41rtw?Tԏ,Qs0GsLE][%jj%6<T74Je\n4H#=\J8 uT o"[HTe5XDtSЯ\uJ|Tw8YoHpq-_S培c,76Um_WRP{sN>l|&W1| vڒvݴ'*wQcׯ?(Uq ^Nx|-Y7\}7݄Ƥ�Y^}A֗Z#c֛{ MPsn0Xxߖ؂!(y3?n]`&a.zr60} 8baw('*OS9)fϚy?2#,Ӓx&LŋE1t)Nl !7ܜPu4tg{OTIؘҹHs­Puiܬc1<23  PB [D Huyϋ@Zx\>4({ڵ< S|o[cͱYIr4|}VY,9wC670gBnbd fJ艴smֻןF+>Dy2%GՃ_'"qp&(KNGCr(m*3X ^c(nenmϠZLX5JNN6}|TD'M`Rm#^8.?P9P=Dt9B 徢YĤuu+6\<mDZwU{bLV47l ME]o痉(s%ny,c5l[ڟuk%TOҗk SV�\REQO_,hU{n ҉*C-ȡZq GFN`T^|U'6rppU^HxL|:hJ+z� #Dr0Ư֐%}ʮUwBɧn&%Ж#uey5_$6lE^?2kGt0P{YFN"\8Hk&m:M<;-}&&?;cB箈T|]"L Eg-jw*cssܵ!Hٱp!(5\+^,T`s!'f6ߣB*ZKW.4+!-X".R-=CIӰ/Su+ ݓ韂‚Pŭ| }C  Q[0`G};cSNX V7af3α�1U5)Es51Ull}eo(ޫQֺ|&o&=F{ïdԒ 'n|. ic8 Lpt J$T%t]ѵQQcdR.;k {Zx^AYK'vT&O*{D%r_׊D3Vk01ysqʃ*�a_5dB7\ Y9>EsH(N* ȥ{<b0~jAvzQuflgEO.`/8({\{ŘDm@nP3o'i}| & -`UpCSC> ;-0fUX�w-0>1݈׶6̴gEj1u`[ƳѷF1⭊vAvq}R�K[ T66bD)wU=ʇ1'^u%m4s.;NaVk ޹iFy5DŽ? g16vd,>#|p3%K+SmҥsYXZm"ᯎ;<ֶ -DZmG 9?mjghy&hS owQt>1=/w-KZ<XaHݎY(&|$>_ж*0筥Ug4)d͹ꗉkKnܬ案ԫ,P*Vy62 -nA/޾#L]|.W :W0M(Ҏ<D.- _W݇U˟B\s`Ԙȸ>̊yp~抑&>x:EDG'|q*޴~܃u]iؿ͘9;Myt3zBK)ZlExeJ6w5FN-Wph5fÐ'l&*v>^xϬw8o#<}\5sƆ~yRr_Iж07WG6<: /~ Zjbhto& J,nɰP�JLy=w='<%ReL&!sJpd.>XD7EwkUqQj hYnr0}oߡ'A#5r/Cw~!xG0V C1  @qPY=[|@X\so(`h=x=7];cR7ܲ:>;@%2<@Xۖl0ܐ"IJe%׭"v$Z()RQ{ogJQ!|}wUym+c|U=폾;Q)YW.Op ѣ΢7t pbO}dPTZ{ѫ}s&I)[ ^~GT+R\ץ= 0-@ptZ28<[ I ȕM س_f+c 6)D LDT]'7+ٗ{y0C?Z*F^I"]BxFƙe>dvr.jDK~tyʮm}${wƷ[/~܈sGr.6yOk\zQE?vy]HP'|{Cp(ea\K07>[J4BrA\ire -*>夲e8?n[xD=<Vٳ$ogΈq] ex!xy(Bi,Q;0s3Fe_5wY> [oPԝꋁ_C@g kLO;Ay b; gߌ8d^\}_HC$[s>;|> Fϧ@{=9ǃxP Yh F](TR!<2WȔԗĔw/ -4׹ CWڂgGO =@^o?o d~q-DX�%smٱ#A _훳dqD__y:5żyu[,CR߹^w7mlh΋tX5Mӿ2`칳"<_X6Ae KN%jNz1G #ME)п7^!/j\zx}$&BKxm_aH6)~Yslџ}{%d(D>jSۼO eNa&F,RsSwm[t vFR930 8~`W S SR_LhМuԣGEZ5M׽S?qͅ0|1<0- 5T>%az%|b5!/ȬG(݌z.fM{y&Y揈S?^@PA?~^=T~&ug51h`:Ͽ25Kx^aWNq]XYbħ1BPoYѯ > hƂQkYC5]o>t dh8@0\/B{~Y4:1UpUky4=̌e xQO%L6WنlE-Te?_JfEnT|O4ͥT815~_hwnb>#<dl0 '~�oJv3elP*`tg{7@+z (:%+_0BIΤfݎ J`fS>WV_.^lbQꊈ>30ithk9 +oqEl ZNIYMA: iKg RuZyĔWn|Y _.B%1+gP{Z_k}z BcXE+3Z߿1eJN"<R9U@pF L?z~TaݨۀA~s~«{gb=lIFOfW]ګ }`^> {o+<ΣNajbء<TÍ0u0^!#v R/F<��_77) "O=tTq՞CsKQ|#Dy7:CF ;!;YoVﮎ%zh@y ]0[ + {sk3Ps7H^OidGYVQa023G3Ά'@3ra<믶g_zQLH{}A[-ğ<IWAj_l"AOq/G٠'YnPنwK%J@>>v%țmJ ྋDݲ_D"Y|ce- leojEd [1:(ǵT2aZڳE3LHc\:8ɮow]=!o֡\wj*oXW^E<ĺx@W*Ömn?fyծ޶s[OY#ı?6\u e; KV5b(ӭރ>t3)qqٙ`}"hyM~h>hp1L&,ƽgp?H)7 qz}\@*XG"e*i2TZ@r>ۻt*zH4h!fHMh2,ι1s`(: P xQJYD 炙=T; 1RJ< yC8gѓHb7]}RbB矩Tgc,66Pɞ&֟~׼ `Z5HɖwWZZVF?D[R?P/dJo{ɭ Kr*Y ibgJ2j6HJ{.1nĸ5u</чAl;PRbgD `&V$or�ZK$T'4]W F E9 c{U[7/DP).*CbV>PlR߱+ C!7?= |t3-__l5m/>>Y=`f<9 9H&gޮ7=uXfK()_E!}`mw0`fE,Ys^UN ]7bXZYsORdS Cď1e ‹D-W^~gM#Q3+ֿ߉rL'Ni%IW uZUN]QFǪBjrUPj)k1fij, ]T{vVO˚9 DZv~]Q@ptUL-Q%zl.7.|r>sLRl6[{ WG S~ ~e0GӷgrmD쀥t@eY[:MQ:jW8zC:?*anX`̎FN ځ<`3WNDuM .|˹Dv{ğ=#\<My[DBnY4{R3 iB߻޳€/ji&.˚X42^Z@-<6^sEcVȳ_1tklecQz;> KȖc+UQN=>z#5s@ HCS3qzKsWQrAIJņ M@f? {Aէm 0;`Ƶo]B%W"luJSw, Xܦ;t:[j k䋹 N,nQ- �c-Wbkg7v~iKtLoP}%'kVVKf>ZZ$#/vٷct`|be5|`PV\^nHk�-HNs"<SbMvПۑGsL0`X&qcxA5%KETΊR|%vx2,/jVaKQ4[y;g!t55zm+feY1mVzo}s: ex1l^-hyIڠ][uЊeQL'J@o%/;=8]w}4hf"1X'[& Q6|InH`l:3t)ʉ WSXM'n}Eg ffT%+))/'|fI[^|Zq$H!},49dJc`._i'+5it-*:Ƞ F҈shh(AiHs+~-2NUm@ߟ@pu|*1HK X�h9 k(?t:us>/t4.;n7"xq}K[Yј)s ]>Xyc$E#]#@u^̝_3[9~ `jm#Ry_ @GKP e~*D"6w 0 5qEG 0ɗpXC߮+vP;ƓnvovAׯb*N(\_+^!ƺ"ik$J:d)/yͩ76"NspEyR.ݢ=(6şU7c WyH^EzB|>^׎\FcPB%Aр `hI+v#͜)&1<_&-R L cs!G,F1_MF3_̸Gq z==v+[*|U] cݕ_#a5S]$ɦ6?}hZUG8 _ &I[POiLj!zWkOx wl,Lp]?`.Pn;OQ~f>:V؊) Mec Mu[BG5|&z~P'F˵h0x k0{Kei<ܐ5KoB@гM4_Ow;�C\}<g1uJ{~io((b(rZ@zU@s}~uЕN옚C=GQ);}[wP4{nz+mpDEC,A;{꘮*ƌ: 劘*>m$ h{z&sa" S3uSm- "^˓c:}=Kr<]ѪP"4O#=<gYe+E+_t}UDx/7Fv-n\5wKu*;7I~kfv _ųn}o-JԶn,A\|H{OYK9cXDS?Jw2@Ze㠷Kmѓjᖃ</B7a}[`ĖY)=f6@6L3s\L0a{DџSFAR{[ $>xJ2ctTkׂBԕz1wnǨɶUbPr;c9ڂ= -p7I޼z=HO~|G|m*m33?@Q}PA_3>T;`n p_n ֽ E>IPR˹La;@& Tw8豂*i;DIᇠin1ПR[Xz<g & =Cc-U5+}B!w(9['B!YS(&ǁ)|}TkkI-,_P@si?^m>[["鷳#mU ?LZtv|W4O ܶto~NJ0~4>Gy}k^.k�uøH7F Z+1fa2GoSZKqo NE`\ߝr%`҆;04#?biP';DNLcg!n]JO pWAMt Xi?՚\pb'1vK2eZǚMbx}%圕Qᾶ<{ gN:qby h?Kc['~)Ν, |Jy0yy>YQeR=pH9?NF.c`%y3p-ܨ_ ^שmDO%m9�$6EI“ 1Li6Oۗ'"HWmGw4S䴝-O#'q:o3lѬ~@+>)PpouAɘ BYzhN?fp`h~~)X2_⪪SگP&xֹ|Q0h ZCX0yyz& hɿ@pkOH?@#OZL "1z$H` Ň\#[URI-4F򲛇沸8AOb=1B] T,)x<vih]Tz}B9H'Wf_ԃcP/J͓2N}-͊ډZ)N1l;Ku5jDھC"NE|;qBLѸ0-FUC_V,Ir8ԤBm(FD#,ǣ;B_ ]:v'Hdc=Lɚr3@MmL|e a)"ڠ21ǟ $]ޒXYF2WͿl~}2COK+fFP֦`2v_tb™>eCrU0l9bOha|W[ Z8m|?/=ɫ1N\jD#Bqs e BWv#"k/-OOmAEWw]W)ճrU}v 8s+;+x0]`q}po5Jg<U)hfܖP7Y+PygbR5ِ`,*^z %lz yցt<94[  dCz-0hI-rѲ΃2Y j>)耜 ~`^{u,IrJ.lbj3>KG?\p+h_\lAfrflC-!`<9 1Xϧ!/ FT> $ c?J:0puq5LINSk~m9=UKJIJz9}ikg҃7{}ԧu/{ )ER~hOn{>5~s"Ƨ_骫*zRU6SIFH;#/j 9aK ) W4σu<ZkJ~U#?r!Q97#(owr (O4dbB-1j^~Ӡ!w/ j~W7\v4 :_^&t .u|<[^#Di}5wmzp W }` (-$<6*K31'XBxs{Pw"//滏yſчh[ WAHeoCH)9.#ca|Nxc@d[|jsύ,hFszt+<6]E `nݒѱc.%(2X S ;$u=7ҵQnAY0XD' ȋ1r)畉9?9l $L ˻ҸJ Hǝ!GK; mI1M]Ed+Es5�PH#\t5J$1fg~a[;ySvM[6,dK6JAQ6ʴ#rW oΖ]D.{O1nеBY;:]z:ⱴ =nXj3{0NcD^0&cGx*[`iRK5jq9s%[B4σ%ONmoů,/ [єoT#ֽq.@{فdbx0~=ȿc?^]Ckgl;ǖgǷ�RDŽ<J1!Ƭǣ9PY:q: A~>rE!כ,^ab`wn\WU~$uc-H^5$o>A_Ŝ~ #֬Q; ') g )/{2W +'P)f�&̮,Ʀ O|ձ} nz' Q1e`}ي\h:BM{om(9x}0vTbwfoDNNiNn{(^[r8e+?qhV*GmgZ >f!دv[) ս2y;z~߂| ';p@}&uw@1=<+!rp$LqpVE,Ps)e#iu]|'7HI}R{@)g4Ιb8~kR0n`΋)F65*/V+!^8jkt@?}JeںW֧N5g3>'#ikQ=rZ$ dzO@u=f *jU(Q$r0.'=oڍ+fifZ1t. ܋e_?#nFLQiɎ\pagg}5/k@mX-t`p}?y z+B#4lW#3&tc>Ns~8<w>|CocOF$r %E :/i0u |{[`ua o;<4T Nڽ{T (պQȠ(z ΀^sKfm?r.S >DQBٷej g (v= |M\} :-70U9+VZ.lѱ'1z]6 םl.Zn ^bi䲑:{5ńFWe--6t kz{<_G(eySU R[YJlڬ�Fr }9dIz"o9K6m<s DR |Ш0>,A>Wt3^0|͇#?o@ҊkvȟBYZbR[t>mu2"FݺZ"<No1,r SGGS1hHKs7ZUֵT=d*cLga!?TJĤw'8^  U(Mn+ wi]RS9 ƻ !&|-j:_+K|xT'i=^-^+ 6 X a}J"c\؆>]NKFHC+Rv=Sdz70!�33{;$Wc({yjhv%N0F= c7Y#6C;3Nѳ94d> @e&*_99:4Mn@{ 1_K"#6ә7yz)r:T{jZmFêxo堟0;t^|dڳ;%ېRs[!nݣ<A'ЗSUlnD Wxy_T�Fio6y=$SgVRðMMBԙS!V<!j#9'Q?l57 JAgo ~mg}ʀCvc L`고\_<sAHr+(oAT '%Cu@g\eIpt?JWV`Boy^ ·`Fj ( FR~鰳;x翃IzsPFq jPJߕQo}0Rrm=m7^k[ l.8ڶ tqT0CB_M30g <xϿKo. s|KdѳJyWTj]:{=n?\E_�arĹ>ϩHFn.M~TH0%0Kմ2LmSj[@WT[jH1m1]L4c(MS6?ɶXxBY<9j!GF7{aMx3\]'dzGsJ^qŠs{M䩊Š7֤_BzOtjw4mduTr5:NWTpY ɘ4$r3: rKT] >�]{~:>H Cuͬ#ll(:[?T;ІSfKP"@}\@LmYu7͙}|<zM.*P_gZQ*~EW;"n'0myQ+~#zpyo؉) *VY-_X,ˡR4-,�.. N\OSq޿~6GhU1.`;Q*�=Rk%V+ߟN(! :K(>|<_U9ћ,RWbzk~8u2H|Mğg(5\[ &9:![exi/z Xi73)GJ۞@9D&K;;P/6zM}Z{{Bd|uJ x E{u>ev#jUHK[(G_AlMЭ}Jd4͔4`8O''!НeWYk-$x0FZΑe=9|F - DQȏLZR~aY1f<R$TGS&sSQI _o*_ PFڙTL{ݵ}S?=mtTtثWb}s=,)>B+0SkwEO ?߸KB=S޷'_IfNS^gD gU=0\n>ب`،9we0&enYoUYl,xVnzϹ Cës砋g8kˇhLuἀͤ>ak1+rn(}?}w}P8l ّwGm0&~ v[ll >91ui[ɏM sm[OpBi$(/5#N(}_m1Eν |we%>7@ڽ W;|Πkib &z?(�w-7*L(:S'D/LZ:}t+r7 t#,p!b^7) (!|'rl,PPdpx#FBS,:3"z=^娸O_e;"?#9K�C"W"\v=bpo,җTinEڇj8yPզx_s ԮJV+dbwW,"rM5rW-$1%y]9N%fL5<nCPb^?L {_z;cH)I#k]WJzsngf'm菌Iesf0kA5[wȿN40C`.NS=`N~,E{z0,q? ji|Ti{y<8JC!/vIj(K H)`su}e4CŬw<"GP,kޜưfLeį;6',Ȫ'wJ. 5 _&r?gT w:Q8/_ g=vμy1JtLk;c.Es~ 7ʺ 츲A_in@"O9z￸G%N Q2o1ohRJҾ}t&i<Kѹ$7FZ=�`P-[˓0}&-nmxAxѪWrc7 [g.k17,PとA3ȦW.MX̀qRqd|Ut?v!̔RGѬi/qn0=#NGͅ8oq"Lՙ}7^ ,@;*6TWӚn>C t zq{>ăHqfvg\H| Cea4$bq}Y77af,S :Om^MS9b^ЙA} !5}%}:\3X$X$<!�46 @b?\ : 3y3p_ޅ>sNؒ𒛡OaNXd95E?\=M4:&A5kdr}q yz�50ԏǢ׆-a 7hb*?#*UP6-&ih; G1U3h|`ꬾv 8o1q^lH 7;0uy>j@P"]\]^(?("~]#d{ͷ||Y~vkQV\1轃d6|׽>%90ιX\Enw]Nө9mۛNFVJ46B [,&͇l v�6ImAB>OPhO"d~O!,ZZrhig$ّxF_ ~2SĹv³:6}* 0v30eZZlŰґqge0M|gREa BǏ!{]uKzw)H%<~3 \;}s*<~"c=* λXI26b%>e%zxc2œ#߿%jfyz[.S`^-2G5AňmlRUK(^U‚NAAiٿ }Qz89a{ qPZNk zeuK"(%#h8sڤJI:t1C>@S~.,E;⇈lXPTD썯{;дr򉮟P}u(^g\lNIT Jo!aAK:U Pn~٥? S(CugRҍv^G[:xdH+y!qjV5*Dޚ *c4:Ewߣ!QI~O礈1G9BҢ4%r!4}=vZv`e.Żu d_Vố'9rټS0M"xmA]赲6i}C0Zi30FDu3o{ѫ` ƒ^!^&h=s;aȄ!q/V(.7kј!x{s+ i4>rLb Xb7G&6}*[�Ab2{=m(M1j3[Lz&rmX{KߢI\^vhR(+F#*S_f=\Rv-0uM4<ժsktVg4TI wl@6g9Xh'*ŷ\CWP`u9 ~zՙL߆ݭ1q]l4 lUTTkoT/r.UE]׳ SPzB=í?wn=ԋ|]jg g0U\+b{?ByF`0w~ ۶k\,O;\P}qK ;{F/Y ]o̕rh@&vl?{FT�Χ[-4o~CkӿjYEY.e11f)[q@6lZK=JOW:K9[|$Au+w?е!p Ļ2Nh]׹´[1/`*psF~(o{\NQ˲eBcۙYo ܽd>|Ӥnr%FW<b.NV_Kt!<0(t涜A%r (4ecx(076ܨ<,#Zz S@ qq4/X;o;Bq' @~*$>Q("MUXxuEV,0+5d mrxASv^s>(WA/K)5DBw%BJZXኢowJ+FQa*Lh$(E]KJQ-{YS@t o}Wf</'1STk.}R$J\r˜bVm}?:f˖1ckם#ёm'(^"R_^.^x ̛'OuWٗ7edqJVAзaW2v'&4=Y92R$]Len�%}>b^\{+T|C}3~?яHe|ҟݼsb.yLt\` hMCE~zyO<8 "[D|9aɁIs*D޹]:-!Cȍӭa$ok<A..m گ6Hl;IM}Mo0JlMQB3I[N^G0J+`[qrn{IH]:1gc{QQx*}~ͻ76cRfw(ghk0 Ej1bº.ԡ Ln8TzviOܾ C{-Lvq{4ujHQ,w_/ԫ/ ئ'*`9w_q^ŸC,WzꃩKb\8b*0,|dcRM?*^�}0O9hP9u5=ݒSnk4;濾iYG`j)kب\5L|8|(őhu Ckxd["f~&%+kۈ9G JR)(^.o�mPh>=6F5$-9Տ-1n)5.9FhUoF*h,\)pkިP]vc. [M;Pjm(r!1OA'w79RXZ) `PNzʿWvv2wc4ŋj>n=L6t> F\Ɂr7F-W>W* T5'_1] Geh6ŦP0.g$Uad6F+ԍ8bdMZWoeNYL:}(Q6\ ތ0G.n){!} 0^F+־Mu|3r~nBF?4Hhy$-zzn1P?%;̅,8ڕ7`lUIRnn[ ] #i\rR3&]6FGY9d98Җ\ܙW[{qʆss^GmUǷf!ay/r*7+PYpڷ)}_gwn+$2NE$b1qr,7z)js<ѶWAmX-nDFd6z|K^Ka Z+I0oW ]TE3\UHsH4MfAW?+g˅}k$&֙젂6xɟ!} P>ƻ(*GLEroBds:mF9oЦ~1%/}>W ҅TL^<Bear$F/~*"[j0(ҖJPyF Z fbnnKWq�钲JyTT% Wu]u4P-vr^H4mh莬6=v I8ǠqEYX j`_JlQFڦ:qe/:+!);$2AëS~j΅"N1Y.dAPl ԛs_ț2'dR~,bu|Ed~L1u>b0-yu Ez"aF Qe<K^43:-@_#`OnM{AѺ)o@Tc5` _ar�iuύ/EϢǶ`+ѓ] ܸO(&$"H`xGS](yp-Ɂk h n=cV)3HLMF_Ź%,}aǙDhܵ~Zmd= \Ÿ`Xu yrE]}5(OoC{]Q0+^ 5FY04>^:m^K^{| եP=Arw KXK7J6/&d25-(瓲6CnsaGt@^H8hoT>O> !Ov64A:试Z04e*:SE\p'(_+*m2�5sTx?# KPcIS|4˯csW?|lQw幃vu%y^>D;Ø -~:zMDfފYΣTcJ^q qYJD@Yͽy@@޻$j!Z-_ge9ԭ/f9ɆR#fȘ?fQG?c\a&U%Ek,̔ @ d]:10  =LQ> ce/DΨPE)j/0^Q댒& W"LWV/ֹ5V,n㘩AnǠ$T+WjflAYɗMo:ZXܣB c5CCHV#=y0sars߁iuz0LcGZ4H"[HGѕNہd+S{=*L卜@HP"Wr㙅r⭖ \3 7?^ SYcnFn >pS< TP$4)}Ag}[0~ҡ늲i+Vk;Q^?}o<#,%jso�~ἅ/6ݣmފb)ikzF <r =Y;L>HK+Ъ?$O30M!A{rH;t]3UY)`.B_g jBoTG 1@t1ɢUr٠wwoxJul$gRA~|H!"><-zkt핯C:{CP[C_߿jA(M+l|&B.5;䇒}?״@k0OS-2Xju(q,7ȍ'WmfpR#<܏_Tw~׻|BV,U3z25vyoLfw%+y7{bE~3y^ ?zD(<1S>ķx豱篷lD'[$r xZzoFB4.{_".K鏵UZ5滩gM&(X1tblb*Yc0&GlU!^"z[GeY W{ @}.& HeƔc~ʟ(4}K d.eis;hT5;N(1GZV"u^O N"#0g^F9& "r�?<sppscCǞ5VV͹h˃ckЯj]3'zrǟc)ʡ?A{Լv9Y/~f1-7ohQeB+yh%pI^5ρL+=y+hs$qوjX/sxe/▇>)[)\)ߺc2O_G?'cOX^έ$`.JU#@chb9TsD:m^i�I>=I=/0sAĹl}g¤3A*x#׸gVc@5*yG8xvYo.dp#emxTU/ [ (ѾbCLמ _&,to#v( <pv41n7,vg0fo; ƺ_ >B$bi(kB.w3q"~nЄBo_w HK7;T!3`|w*ػ/zi=))\ljaBviӢ )c@/7c\O]ӠWL~0O| sPBM5WQ**p6CҮc7P3D*结b˵w-)|yn;TEKcSU`-B+k=A{jr&9RkJ"�[UxH@T2iMsS.2\%|s,ߓD`gBy"JS׳Esi7DZTvOL_KCf~9r Y7`┊iTj#U0պX0gjPW:>KSA SwUsoPJ4a`J0I=ĵs_TCoC_jj<)La(gìS-h\i!/rz P~[V(1Y<Xʈhz.7rف|/wOA0ãzc`@¶XWTI=*f2ވ l=4xf'eo0ۉ?=|ԋ09V*b)w=]'BʐPYB^ݶ1i&v)|#vS 4|PnB(u|=m}Aj=t%>V{7<zdfmA\GMiW` losn*ç\ CCd ~-AɆѐqWHɱx ƫ=;˵ڢ9Vmuѧɽ#.ڽcsBJBx$yuh+Ge,3W.G[m#o -y 飼w<e(ֻnȣ3\ҏfqd\4w4ni٥进Bz�ˉYV 9&i(+Næ~0?J"/?5Z[ӗ0讉FcF{*%piW@F9~j$6-8~Łbc SK:}-g/9yuhK?P?=S={'FD/lفmJ@O$?"M1$9BKTz=2C®DQi02ʲ\@Z9QM 9OJ5de/d`TO5\K3)Ȯ :A_~T4sYsӿPuD]3d,b]BzyGt9ܚiԯؼ3LZ7_AѪrg|w+e9) X {mu5>ŷsCt#A[&LF;Qro%rNomqur9._|o>8ٻFl{S?}ast(r=5pCyHɄm@ߓOURxSMo`g`!꫑*oؾfnyf}sJ:j<سQ>=Ezm甤ghsx]'WZ"\M[)m\o;U h6ES {{xn=QM):'&IDDž=qF!ʟ>{>3+oU6te>uh1 ע!{8`gL~mGio ‚BH4 3KrMZT?I\�:{vcf~ru0!AVjџJ_cX:}ȍ}Wi%ywV62;$-=j45y{J6nԲpVmZ tT6D4t,O0٠J;;T}0׈Ÿ&? .=^3JL b-'Ai؟Ebj{^;Sڠ%:1AVDakH]i=9jZ}X~?0n4Ժܕ Au}#}Ɍ[fi }%ڰ1Fu h`}<E"bm %YIsd+UuG/(#nx~& VO]cXD~2.X`E'R8U?D^ k1:ƣ%_4@oy0φR0^lҴ25fTDﯭȸb $D)/Dbdϧ<B|>?]S|Z 7-h"˦j Y.!.Iز#F@l } :&;4;(ý9׸K~p<h nBߝ>J({m^SVV:Պg:yGJ7Xܔ(P&cugn̝ +>#/nǰ}XFN zCD^Sa'L=NgF7bՕ09 ^7ge}G?%̦v "ݸQH$IdZE~d؂NMx㼀DmsW>"f.V߹Q'R691ڔ]MaA` x;"xҠ $ޅ6@fC; F[Sgm Inb=gHY{Qwq}rGICBzeP8]Or)k̰y7R]HpAIgw)؋h)]YbGo7\]蔻\wϙ8 'H<P.חC'uqW߇? Hz=VC/mNa6شCe[1(yySlgF9#8G^3OP#4UaߧAsb)ô/s&J%|F~nb. ^!ѵK+lT26ߜF% vUL~s(;*){i#('coc0C ,lC \}jXσbȾU~01z?3tDƈmIVlX !84F!xka G)H2F(7RO$fztv PNzWc ͨOZ;dden؎hĖj2bj6\JG݈I^0*5b4n&Eʺ],YN*wGv¢~<U`BzSl;ɟ$0yO|Ru6&3*&83Yvaēp0wL"U`jS*[3ZQ'#9_C]+2wĭ kd{ S蜼%#b-H_ Fi1J\K^5~Wo#.tYG| <mp !B1$x"H'>w*НmOڋQnIA|~"J|gK<B=ɦWZsaяe/`9rSg@Px̮/E)'y`޻ �^31};c 9UVRApuѧՙVN`>q�ǒ֢ئc# Y1?s^)[`7rqYVsuz[n)IsSkݯbt/*Z#vT욟Aݺ® tQk=O1$r Gc_�e`b:y{0q5a?y^pL_c0sUrc ;Qs+1 GU;Wn#7.=GKAaw **1X //FODr 0z÷0ײ4k @}2A9A/ ~:A < M6t]%9RC_=rqwX:<k|l)A:Fg0@oT{Z>A]ہQs!?mtnU '=A_G"ϯ3HalqRDyIPt='k%7V}EK_`jKg,Kl7WΟGN>-.Ds C?I.ߝEfźy0"#߂$nczt?3 _;gx˿S 0#yz3&uKڙ؄iaL<OW͆s3ѾP>Psd8 كx@Z<4,u[8_C1W@:^|~~,۳-"QfW]] lT¸h`uD= ey{D<[v[eo|mm<(b#KW8 hC%:OgًSv1O4DG,P* x%\EeoI'N%ML pǿE䮭; >MG <Ge MςO=4kڼe&X0^yaCL*H7@/4t;Lg}lanu6}2E04Ox`sx30>'5痞J`|׹o9x[f:_;\_HqЪg!Z?KE ~�JV(V-ﷻp[|wjcÆ__vX)vw o`9{]꺡-ǘmʯG:sV [#+M UŜY^GEQҔߞp\I\Sb__ FȆbO>$vBUf^):^JQĐu'NdZ-N pn {mr51(}(c0x;T҇9 /;=(}?6W>ns2qeHp]]W<3Qv"'mZ^@~jM(qкTz½'j@L: Pljˀ`Od^W'-,5 븳^/GHUׁ)ӓS]2;!5/uԓA3 -@}y`'V )�勬  h3BͯaG/y6|k;_/ӧK.*vPt~}͟?yPvLu<J_OV]|@FBc &NBs(u&/-[u5OƯ2Z c%c ۅ\獐pCeNjym "lzMڔXǣS4tgU9;1n+: mkC}=4i?_H$1 \1X;voN"6ݾaE/\Wҏ=u!YtUǹbt^&g֫pibє4LdEW{PHDYUtSNÙPZ<rp/7~>ʶ<AO.{ c@vv;r00WF2~J)Yǣ![mM}a+6a k ;o쿷@hZDVo CbLdvţ25ncIB(>}74R/gL-Iտ"DǤV:+&KQR}e{j,k <7g߅`5Ժe>`,q'0ʂ8 YALmʵAun9—)#+Amw$|,{S_C1_TaBΗ*P)d}2/ltx95>%-Gb^cEɔVL}Au-lwoBoF^hjXFZ ͮc))>&JKԮ=;us Uk<`fyY m@o^34ZoYA{(?vjD":31@ Odl!G\Wbݨ@5!Igj~꣒<VETQh *Oۢ'&Jh$*NLBd@~4n}"5 Ӟ]@οgc{Sܨ>r,BKcP=vR"^\:> p'1Nlk=T3k$Qn*Js]A&VzFny;w1Qp~$n&'*f3ި ~8F)(She=h_|îTwN1lY􏗏0U '8vaDMwn?A͍|P]+bO3}s}}7?D[`V;^mܰ-˶YAVK84O=ӢWdƬ 41 >]c2_s~%dG`ޤ=})!+@Ϳa\sʓA)Cޗz?X9sV ̴ͻ1j츦N_|`*q?T`=k1u$<{⎋&w;1ף+$0x°#{Feo7>;A~D5<FAKn!beE:2#Ԫ{ʼn6HWݺS hse�Ɉ/h iV8Qx>`Qog= rع7Xڅ-uMqYw#sB50~`>ok6mM}dY =ҽ|'jּrtB*MbFO1Q!@q)лtyr<[/Ҫb#h0/$|dwlP[?1Oj>#)^.R;͇y_nAΓ(y-{޻'dѻ%! ճ[8[m| kvFܶDW;PAÑӸϜ@f )S?1iPa*u̻U"tI&^8냈:5 =mg0%;1tWu̚ ;ß(ح3 -_u; o9fO]u6j8cj3BS(lT9?OAоYqnҡUF#ZTL n\z@Ϸ=,U!:;@Y\NmP_&XJnGML :av1<oh,ݎԏX.v30Ç}7"vW>jv][)!kP2s1+\=ooDi,oY4Z$*pg FG{ж<\FO3(O]6VjFOR̥#~v続@mX,k|\Y 5U#Lc)Mbt )xwXj=xq7bkd?9y-(\l* (2X$qU'2:,1Ṝk_Lz [^GHWJ$zY965Vρ͡$ߗ ΂f=㳶_Q׺UN[f.}8ЃĐBg>1cuh^BI`'A]$.Vao h'Rߟ桅zRllm=u>6Gf>q(] {*$O.u!|Ծc6IM=eZ4%C&iFk\+3 }Z@(O}% 4Aywke=lԊbFXqE*j+-^iZٛXeQ"@d[9�'ƄhYk fz9F!^ )3)/W6_V6~Rw97Rf w@۰'˿>y*y)|}ҭ'Fd"F(K3;]HZcc΃^-E&*G/_ O+o0(Ww ;ǭ?%?ϧ֙䵰Pwfz/%Dݟ-|9zpm0^"(ryƝy-; <HkW떣=nf78Xğ Onb)4n<S_Jsh'yC\%Mus kX0QEې|~:=+-v_<K{>4#ݿ|}lՠ6َ 7яCVnGtD)Ĩ'i "Frwl>6}a{35tIB;Oe3'.x J[se�. z+@v3&<kE`iz dC~f%�C/O,$w\OŶFyQ4?nV9)t{^<&iE O[nFNt3{'wb⻖E"Tڬ1`l^^ھГjB[?r!_\?[MGiurvxv!z0qmhIj,ÞpPѲ}7(?՗TKS 7Lh&K&M=0ڝ/IPS_<a {gl݃;=ւj[ąǘ@Uh**٥�#Wt&<&6[]]?hhTlj\10DyO6zEܝ÷YgH9)^``?^fȹɿyPܨ23ߏrbC,H'<DzHhwBع Q2s­ ЯjmۍڍdF"l~Dot.rOy@' cGFKŋ2K-WK#nYP/6v%`c`J%L9* KI blĸɫXi l+ Zx:Te콦P!t齍D'|:uTϛ,(~fA+c=螬8b _<-IJil@j&odij@+L_{$nf _oLJЮř-#3ۛO^c1a~LD_U'\wz}W\ CM .Cɡ"xSz(GWn ОD}L&7ѡ3_ej=L[Edf+0L;v4o+kl|tvD#=F<xv04}u3dMrgY1\k5 vSh ph̍K|f('٥aAbW[t;Ǖdž) ~eBKIy~FZ *Կ |WʕL@?f›s~_:Ew_@ {`L3Z7mC}"i`={هxYk2A9;Pu7C]ܞ1bч(~4&:Ams4&kߌ1ýU[b]Yc4w/mk^DŪOz& ok{O 8t q">s6jF.^}&Aw9EȦ[U5^N\+=R̡ģ:wۢ?o=9ҭxPNS.F^mG#o\:st,]Z0y{^{ eg|]Qx</q?eca(_V]؊II#wPƇko,,C`YQ$/,yTx-Y�ˬǟh?v }ȂRͼZg^SuAWcb(Z'L]HԈepdVp*&xmElS1L~G$z1<i9t4U n$@ޗ5ۖ0~SH3Te ^"%!:DֲŃWR&?**a>: DXSydrwc6#oμK_mBս10=Qkg+#1&[з(<]PkYi*Tl3zWtk֩|uL8kAK|bYN(7ǰ51:G6E!TRԤrPT߈ RDJg2.ILbh"~{Hى'o!߯ jBQܒ2Ŵ8#H{Ԑudgm[P =9Me2DKq%4v`nqjePԧϚe.`ueYc]XJqW(%|pd'A ..ƳOo59y&}v 4_>(-]ޚHx1;+n׌¤zPl6騥AKہѷ(czW%!5=|Ub t_ARIzP!đM/tcE+1T%1T ȣXI-hE{z1,v,R*F2~ '|銻Ziϫ|kݳHE[=]@ Lv?tkqW[+jJYz pŜQJQO/|V<{âtޯhA͓G@)JӋ3ygax2S% 6:d'wS4%'Wtܮ'0V$3+X=JP\1Hl-GaND̦3rMUp)dMp1gՌ8>D򿀄еkT(?\Ly :ۑ_^#')/82\6 [0YxkݠY ݷ�c91njdbRWy#͊Ouþ ]}&2EYPsftp6(f+^C "8_(Є}fAoا I7gYej̯KnrD}`BZIH.rj:k!?,koGϱSo~q kUPK0ṳc| G@c�c)BϚZ8CȆk@St0F% 2;6CF\ hAUH&ϲ[E~А~*jzfa s~ l:49S-J4K{VQ[~_)>dM:8Ak ͶAf12rKyԅ 4`!W&>T *[W(abHt:jZ:1N: /;2qfm)軛ħ&ar#C&M bԩ#@Sk5NRYfnܨ烱Nl!S! ?j%BF% ~Hxi통M`k U;f.j#E6YJUztG4f ܫ&$ Z"AM(Ϭ(Gqnaey0L[|{ ϯe7r0,(KuȪ;6um/ ɻ1JiM++3ֿEպi4!Wщ轼]G*f:]Zq m17@|=eWMQےGÀJrwg ]xOl+ҝ؍^]6iMp['uy|IR1|s璃%}\ 0yl & D%D1 /yƣ d +W Q3?QIڽ^5?Zx_Ev4$7U@T{<} UwAz\oA?I,ֿm>oARp@@3bk֛j1*"D1&e QLlGapPe/lk3v'vBi*JZBz;kA:ӗ.CYI ,ߦHӦMOX;OGJSQ0Gb%Gܓ3Q7>tG(╇>f �Ma2zl)*㕗}TX5{@E�&gm1@{:^Oo슻 /&0#T7bORB!I)(6*;$"$)QiHKB !{9TJo:xus?TY?8/sH׷hv{24 %cbyF[+G}%I7[[;i`-<_l\y?-lwdYPu.kT:;˓u-)flXWǙ{bvR#1*Tso4r:e0X75xry;牾l[u9]�R0>+|3 toK3~|_:SMVO^>V'W=A:p#W!*Z1~T7�=N(WL\QNL3h[ c^ÕSR~p _y LܦDkƕ5`/3zӣKjI4Oq9!̂ʦQ7r_AњRS;_^ @z 3`:7؅<$堬4_,Xǣ+_sdz].U9) ׶ =ܘ^ |Tl] Id0nrHmnM̝}Gp ֯#pu3ʩDŽiO(Ұtl12BtJ=(=r83 `Ja2}J\25{:aur LEӇ^ר~JWќt =_vH1PFxDJkq_s[IIM^x[= &lW"yɡ6-ʲ1}m"X^f7\$k05Ts os_E׭YEg?!wp:&M.bjsu )MSvM�#kcj$'0a,Id2~vjnSY CVw1XU!t+#b2f4RkVD\r(0k;/)a]p/Kc\_?親@wj`7g:ŋQwxg0.n4/ us֊'70c4sh56nVs ;(3f~97&0<۲ `Jz]Gx hyHLp'&X8bnMoh |W?La&QqQp%ݷ.WR_SPo!Lض0AB4aPy"=Q'V[=M/<qOՎ8�J)PV`-jة/O\բj<a(P3L[l4{Qik[tIY3vB]ݚ0T%0Aﲭ+ٝhɕJ_WaTa| 摻l"Aq09dZn5H@z5}eO=}%\|D}i\Ah5}7e ƤDZ٣OyDp*ŰXliB۹W{E"G �zkr.a0̴EfB"1I[-'{ofqh +=;wn/"&^ |0.|:SޢK0gE˼mb;{tEϦvٔtt mW@7An0T[;i,Y>S9 @#|R72NVN1m{{R~`mw*F諏yt'!;q[ڞ)5!ݫ;S�VsmNJ0m:r5֪j -8v&_SH Pi& mJ?ߡe)m>\ɑf@m;]GS'uY0D 5R_|k}Ҷ+W<9ux=gރ <= ~_,f(C;|xa<՛̺sSYUt5]ax=c^S'ofub۝ Q4Nlqh<p){n\pev7a4v{C*[[A+%񠄭L8 5· jX|E:hHIx6%kQco*FI]&`/FBSd*h/|$}D~Or5R\Z45G`2\& c3wpS,;Ea 5 jCw0lRр8/_^@~},jX_G"wxN{)= 9n P՘o)�?.I=/.nNp [7ܽ4 B"o+u`b"FՎҞLcd|F` [?lZ7;E+ Aɔ&L[J}wnGu]ۊ#Ig"Roio in&)cߝ>0ܔxo3ߧA iD>Le@aPHOs_ZO;b}Sv_<>+"Qm(7/̧x}#^#yz)zdck2v<Z`X*Zk-^U}wI~(߃Xu1j5R,J T)CjP֭( =30Be y ޷ G78=ؼ3bX,"&ۣ1ӻ6(�֋/hiӛ캷4j$V H;)w&%"WP3GvT; ʝ]f4C^/%tJŵsdPb>lh5Wd@9oc# mY:ҩ}|F$˜:Lx߷ ID>Hcu+19a.߀ 9# |؂ܒ=AۄkؤR8!|4x*@w;iƎ'_j J~n-eɝ-90!ޏg:/]QD=F0B&<YaˆU/iΎ`(.Iۀ!o07c뵏sPHqJdXo:j+,)@T9x ׼`ѵ]WX6W826*|K`kjFѴ7e:\|?"Ѻ},n<!΂Y=Q#X +ѓ[==Hux36G4E zX#45\`\ap,G0x& =6=r?jti54mErU$rr܀|t+z3OP:lC٢;zUO`tNEƱۇC#+g?{7Tŀ04}OPWM�wG9jnmk|OGTcoJ ,A M痫}jFDHgAÎ,O:}UE*jdBQ#qTWx9 ߍs6"૸2Pl(2*宧:x TlkȉWJ:ݡc%3ƔO_:iUȋ'=BGWTxcO߂l[.;^!Ҭ]ؼ1_wv Co=&.EhMv-ˬGT֘=V⎊C@[t�p20vȆllˏkLSPE7fꍺhݛPѷ,ȋ=`ޢz(Sd|ܜT=|Fwh)tx]Ԙ_ȍ.;8@olr9Z6H%,gT'b2fv3ѰTaeqMh|1rvOv157l(͗՟rtYQw«w6Y2诺w"AO5D40}';-FgQrN_7h]\Md9e؅D-.;ƍwWbwWm %xu|z�Y}ٶe?E8H֓趨rϺD\9<uQ3 MD q]ڴlΖpO<;#d;XW8\n%*- d E(=S[;.ɯmֈ e@2x>!g9_}NӨ /z ~u;`.GvGr `(%SS`n^IH]]`wkVyu Kr+W I7@AuaKhq&w4wr`ʿٯYO`2\I(Fw'e<Ϗ(aNQV ۛkpK6c@z~!#L2iLI[v뻵hhc d<1paЋ *G(J V Nշ/L[(Gncǣ|O9NG|BTn͒7p /"y-j=4֟- RըB SKiV`ϯW�~ھU)`_ &6Y?C(#O/b\e>B+ svw`pxgC!R܅̇Ы*Ûf.x=ER;E-NČq4_ѯl*'Ōy@{mrm9 jȾ44}%/lO@]ׯZƖA>d;8&C^!)I@7N4EZm⏊Eo*@RN;jAJ}*j#_G١3Π84]K9? ßgA\?oucb[W M64G cB_D[+*io\bUDy :{0:(@ Fj)Fu^{:7?e͐ok?8y|@X[EWw 2417#nqbU \ ꊷ;fb?Qo' PFT]r_GmG fqb^eO"qPp?9NܢS܇hw^ �^k.te丿5|#x:ݷjRQؚNn7$ulk)ZԫLLFiE;q+Μ@yn7q,E؂cW#1'b1Qaſ)W_o]?fExht] VP߇Cmh|% ƞh־D9 s #A%._CVK_T06dz Wr;_Ęenqo9\ ͌ [Xf'6#u?  1YU [^ 1 d2>rGbR/_-ڎiʧ+V{>ɏCJ`vh8/-g 󵆷9^g3%I#Eh3\ u߽PTx( Ԟ=lb0ú~*'gi<wanJFVgaP o|KphdU]d`ҭa SެҊ"th ްW8j>+G`oGDG`H$CuXWRI;ڔ yxEׂ73x`_@a Qڛ:L4G,fR%RAxQXB/NajHRq_ ewFV8F$7xbSvXf^ޛTh4 ׆[#:GvDo4?ehS1i˝?WQgB!Nۄ1L5ёC  7 KeɁf߽M~n*<ڎ}wWCM]GDž`<"Je~_{=o <j@OIBcZeutz n~)ETB] <b-y5kHӥ ΈS{zS<{AYpp#@:tIEcOǭe/=PyTҳ&G-hy;{5_Sֹ lPT<*"Okm }:S/&:_*J]! 3a΃\ч;H/kaK n[o>'%W -79<1|Q?]B*foZ[鐜; S[&{R U3=lTAw6"wS+L}Ou=L֊zܓ?36((cw#4#?zs9"y]Kr@ԑi*sŪ3RIղjjryVLe.I%=;(`fa7Tkߟ@Tۚqk,[ɑP"l+Q/՞{iNQfcw^b۩g>ۢ.`9n}0o2iNp(>Ej'勏AbKdw<B䕥H HGg}( f欤plr':\q7%ƞCĽL;ԕ:儐H'C'LV΁ 23.A s(j܂sw<ց$bZEj7A:S-�浌2A t78Jaficywo4dCO`W16z:ʤ#CRKtcJZQ|H9Ta(r)u[@+ugT|!u[ۡlvxZmxkVN00$Kk)hKSv,R 47nIƨBu,,huӜuKLs}bY!Q[Z"̓p. &۶O 9'Xa]p.'ٵA*Ƙ]>Z:&sm%cN];rO7^R\_Ma]XPwXr"X]MCMAfu_{+뿅afz㙳&* 9V3Qcp kW^ĪѮ-P6}1HZbw; .NL zn'Ÿ5 w ^EƬe?`=dB{]Ȅ g=A'rp^u/i6ѧ XR?%G f;Xaxjǫ=WQ)a:LIc-.z4^p2 oѥ/ kst'P FblɶCPpcAAtWmr=kP,8ʮvh K` Ns],ei!GetGZ?1l:x5 $VwN1 }A0z'LtX-\`]}'/X Ob,U!Ebjn®ȓx@{K >`h^P?wW47M ?P0DE5")N9)9cP3\%G C]AB^I.P(jy j{ރ_79wJQ>( *3XaNK_=P =*\Ϸ9o~cնo@ 扝kA~Y-i31cYnEӏB M $|1yqMCon'D( 7!9`:<9l_b%C)!/Jb+CT+jg|# O7:G6$fB!D)eԴPy&*韎ܦjKHN  ~J0)dn;2JTe] @U|=&#V|>dCv쓨){{I#X9`-lIY?[%AmXywNLp|hSvWlTF~zw毥i1D0zts׍QY2aꜩ`鏭G @ӯV~3mB!e 4QMܛ,Q K{zM МȟU`"w^bzCQ^z0Tׯg݉[ Aq ~GPqO(ʮqտD̈́_L_-έ!xjEjk=l3t~W, w (} W9l|;}4=I7j1okf}m.ciLEpݺE`fmҳ&sJPC1 =غ6u)b^X4a KFn?_eA- n H? 6-bҊSx3E}l;]2R' s{^y '60¹c_(`xcN >c#x/lQ?T^x<v&4 u@?#=iDG8m@7 oa̦+Ezewѓ Ԙ(sнh `,ogCy睝e; se| JU`p}4JBb,0<.5.n.B{7%Ho z wBӝa?ם ޴ 3|ATzO>я"Q{OɊ }`>a0ϜقQ ˧ vzt죠;qvN0 Q&#; FCFY3cNX\wY(?_wƤt=bz&V^] OƔL`m9陽Oub/ŒM~Bɪ`lۺrb3hŷ"bB/sӏҧ1=wq4^sp4h}\oUis14~Lgw%Wp9*V$>BJCܗ z?a؉^Q!!һkZPמ8 :ع`/ l1ݶ 3fG'v9?:-Seҕ/bZ%th=F?$�61{Z$f|L`zJގO!֡(hJF) 9? 3DK3JnLD'kTL?}t`k6DߛCNDΏw\| ]W�Z^zbVԏCD۽Ǐɵ%9!,{U*0LWo/e{`j�if#2_Z> mQʇ`cxzюCqr3KITx1;,)Q`k}%}w;}%8PPvq=y:u =?$[yr^ *gFm$8+sZ5=�k{h oTx A]av1O:'sţH:}Kt1魒N3.h疃^p4Si)F!GQd;o̴ }t2gF z/FQҌc[L #8:jP@u&H8g)@c-\NWL[s~U`&Ƒq7h>JHױusvvXꖹAy{A:5ҳ=epqN.;1W̺D*%173ʃ w|۪\40G橨oQvY)B]Lݫ$* kWBMx<C.1TYfdFxp@cU{D0 f#n[΃M{[)VaXd$U$Ⱦg,FoBd2ׯҳQ\B5dhqAsRBYhӨb)Z6]"_ku^ΗdҠEc3tVT0kiB1 f E>Wq4&bn\؋i8 Ȣ1Yժ_ :Fr #b#gZR\t) T`n:c}6Dc{#T1YV߄.{UzkoG4($|ؙ{ym@ ^D.5ӢqwdㅐshU "+頕,`&QLVa"^RyV^VŻP=pG͗J5\Q5nW[N抶eCȭ7A[J?1֞ho/fޮ* VW:MN}1m{Z"ϱ[ӽUH柱cqAD!zkPlHRm ^TmRHGtdbj) U?!r27|&OtSbàvW[1Yh'\N;7%]J7AZhT՝ 6e4Σ U@oA7{0o:":EN>7ڤe^to^{ [XڜfT4:TCGVZOF佇)w/#c諍1%`\"D]0l;H?3D19lכ7(I x}XO.c:گ ;&mG/0"] HYGn|,&P6i#@ OآwTHwօP׏>0`!$8nOgo6WE,qgbӄo)!%6@٪.޴ءT)#%/Mjޡډ/M>~^Ek;̣D\}宯hs$=zl=~xd`Mʟm3b`kʱ&TuL -od&MߺL<;-mfr51^a_x ϰI_ mOD,buItEpVuyIUҺ3Q{OB'pϠ˯Z `aD'm6mK4`.V %eA{ht-RXeUa农iY/ nJoLj\,Uc9ʵE3R2ZyJm?lW07K9 JtR@s%Ed{K{}SA9ƺ5Bh mZJLrɷ /ѫ-6h6_$qu?BlZ6>`O7f:GN맀QgsVOa 1kW~%bG{㯸&ngb_]>ˍLA amF^6u3ğACt_R7,+FAKXbGKey}/0 lܨb4XV%=E>Aʞ3@|tzE6_ ⌍IE{t Ą8;Ic *40Kˣ? A=8vtF7V h;= Iܟe7`:(:`| '+k1GĮWdoàe:hWd-멢me!cnXS05^s{hţ=ܬ1k/*Ȣ _w+vvz;;ZWg/Q͛3Qi_�ssQPeeR$oƃ!:<\ϜJڪ C۝@Q<"1D(&i 7VԶS`Au__ۻV$8X'5@٪ ӡe1jzeR 26 %]ۄ.󳥯:!(<)̏.; Sm`_ȋc׌@~abh tɭ ( b؂HneP]_^-3Pvuoݺ9,cZ g4j?{MЦl}C+PEW<w̸Pݳ#O QCuXW bbnD(Hwݩc ^&0z*oIbNlb@=ҎɒCDQ3]kM+0ǜI-ݍ+bˍ f"9DWqb{ܥX}X9zP(fCr wbJFAZQ)Em+e:R@וZÀez":8RN¨΁ `z۪`딌!jB/ec0&{O|b% fPXrde~U{55Y6qb,<l{31q>X;ɂo%Ɯ7?,'ڮ\`:`GwCu1 ôת/cLQb%kH1>JIm^FN_q8( 9q/0ko*@>XKg 7E>OctJGnnlFnA/PY@ ֺx]Wa%1.m[阩 K܏FA]G܎_0HARݼI,QMG/)7ޡSo']iDHէČZ3! Ff\RДN{rv5"L[D}[4d $*KhCPy! <?M6q͙ T|D˿ L'Ҹ`&2;yQE-&wd 9fƝ>_: 7d/c@, څ~aZTL uyy[+1s8Xk^y7`SŰN-1v4 |y$sO~W>~ق%yi#v>c☝/oYzE�;i͔w?G {3DϮz|]sZo[` `8ÚcgEEvɠRlJNl MDNEr5 5yρ?1?: \_}qw ~D <{GgoLPutw{0:$ٍ+A*W~/_GIߑ=*O!dBk4n<S`xy})hZ_"kU1{rq粠3/oZz#|#[G23 3B;\$zWC *K4ۄ?7V(ߟbRV()4 ],x+LC'Q넧>}x7̫OD6_LYV t|C5¸o$XjPO}s/}J8fQ^ Ei-G13.Rj!{2�TQKJ](a+wXQoD1ۡqGLuҷ]vW G@6]+ouXWTk0vsHT0˦D'o06&*Hvn?ga*v�]8+rȵEn1ek!w?v{y`YC]W%AK<:i-Gp瞞G@5,AOB*N\݌J-sݼ{*ʕ@m}CÖ(۔ RPJ" .[Bp^O$w3Р 9g[%bx+_LÏ_- ēZ5r݂ђ=G.q}t _h۞(ۑWQI)lڻݫnէ@Z;U{j~V:hY[Џʘ:^ƍ2u0yy ܇DvqΌ?w26WDoO`8lͯwKSO`bRK7&[~%01#6 REuڪt}ymF)k̾9ᕌ͚ҥ`]ڄ[wO`tw1 _l֬AៀwׇmoEE>Zb}=bnWԈe_Ȉ#v#Y51EeoJNU=Ac58l)A޶"t=9T-�R6%0Ȝ,unKn(AӒ�zY1Nן?)wh>ذj{dv4|&עQ,L/?flA\Gɣn#Lcˋ4 0y;gmB+PQ]L m,a|uDOV%էfz;?:m=o1G[HH}/< T?1v1,t]JWPl?rvrt>aEuޕE~ވ6_rK nL!D:mj/x|6x44FPҔbMb<RM#*g_%ނ@ H,AL"{F?m{Vw-yFzKѿZ*4&Gr(fLp=MkLP<zn�wTm} hXN뺋?1buL.7 |I7CZ{C,E}L0Fqkq(Ie# 6B| &*Mm',]?�jz#<`9XM-(~nB.vsTGgb ݓ&gF]l1w3s=O渮DχQgK֣Sn`qtRZ}@&2ħF0ޗ$ޘ;Q y^~4w>o tO<֧vs{Aa1Ą>X ; rQt_؈ұ'*zn.Yp|3^濷Yʬ G<@4*Wrz&# No5-mk\c>[Ѓ<Zj͈헯Y%Xk? AK}Y_V`iŧ~}rF6^�MPewRK֎Ff�[J:"y#f}(ߢR h.! &Bk_Ld@$hݨz`l|φƈ?&'ۋ@$ܺ냁x"S7@ǿz!7;Z/|W" %59sr M-?Vdd<y2 YmHns[ϮNFљA~?٨94xO`x9¢XG$RZIhc@ag8WIG(j|7'Nb\p~H 伕D=UKQPQc94n}Fwrѧjлv+H:3]-a,6?a8ϾsEXճF]ӑ*)}J RsW8wч.ىV}\ (b~&zBw)ZR-”D]o%k'WT\n2܎T)^"r ԍ*#fOٹXcw0_`9u%.g$7h?ܘ?̗GFҴp36 *PuPd VAnܧ47 |<scw+VIs,L?hoڀk߅.>JOvg?\^U>Qsj*(n[ +~4oI:rT%1]K&JN0 MVс>L UxT0 FL!4Uծ%ZẀ~}�ܾAMΚ=Csތ\yVj(L?+w{c"u^eھhR䜏Ygjw l1ĩ4 /`intzØXWG1z2^̅ 0~(A] É Z1FuTSݺ 1ܘ| }kONz7N}tז0,"`d#Wua XܖB_qgWj nb/XJoM_^uzi}+.}yl/1iZ|[Cz(jnmDw2yX c11}D-0`A{\8`$[ {b@&lP\Y[)qs>,ke־ôDWMPLBaCj} ') _;G]PR;cyu#.eF=ي>>QPyH&o#o<vbgP W%=_a"¼ucX61'Hj"λaq]a:x.K(cfHmd%1Nc~?]wWΛkZ܈e|[Yg(ƾ}%vzyT-c/(+gby];2їcܩ^Bwj!Bt C~q-~39cmc=ZVƸQ9ޝܯKh/:h݈-s1}qk '1odA7B0fn(Zy+"ҖaBc +-)#5 /_e^Ƽ .ƕ>OD@W껢: ( kLs8Hy\OBخۮc4v?W äO+16Cap4&ϰ¨oݘYhn#'h2VNUV2Ϲ!븎g/L*9y_ż7؜a2-Ne]CwMϙ<]AdgRE,o'  =*^  ?sf<#7Lq5Oi]ObQ_ZnkCoAdfw9.:kQW ˽>? Mbzկ> fHΨZƺ:WD:>.d+y~"O;UbgPOٰ@Hg>u"xb!||MN4b|aW+P>! -̅i1Dcrҟ]a3 j|&SA-:=ɦ jdKz[ !ܘ\u O] _VW L{Gw΃5+De~(:GU6hɷ=gc ]hv˫A~7:]oC`ujNC7 19gҥ86˾N0]CA. ~,\U~ K4׏ͻ|ߏl3Vl ـb,q .khݫV (M)gi/IƬjЌWH)wל#{  s) om6MGr5)>CuɜkcZ\qΊq ;a*Շo>TMA~O\1\W=#I#KƞʼB_ɠ6˻>v8=pL݂QK? _}z "B+|'W>W ^c2pzn*IyPw%f<"vI."]쭬3:'Dk!ݱwv0~s٪wE拏Ŷ ЗXm=kߖ%8`OjԚDenѽ??jc旟 $d~Z4~- } 2=qNF[v?*K?sSIy'pp |=+8Z-KkR ^?M{Gpu8g.PZ[cff#k՟Dc=vH/֣?徚](9ZE%0w6t8vf6`_KZp0?Fa{ZE߀| 9/N<9d-bs C/<Y:fϱߚ3mR%ց%.DSoL`Jÿz滌f/ao$jQ_Q)+U}LABvP5yFNL$[[{0tdSEwܟ"G۱Mu5nf`uQU]PZۗlhx3ƾ>2\VD%(5:)'y=%r}Άl\@Tݚrc1g-^CCy't5r�y.*jh]wNax~g`^.8!Uʟ SDyy<<fm/Ԣ2|Ac�5Z!1oM^k�fΛ<+TY[*Ės`1ڪޝ Eә`zZ[ӗ4gAWK6o\B!|h+^{xP5`JXJ[չ[| ᶍ#\hX-_C{;@5 evy0ٽ?sN*/|Ƥ޼t۫X R->t[x/,bDz*lXq <1]vM9*SZɯVOR]׹V ՘4!aRڳf~qzhßotF[-0ԯ-Z I^`U۵Mu_TLDwq o5 >*yj6|f 6\|ᥭBAܜq r PwCжx#ԯ𱽿BWdd#yucQxh:ڹ:QI]d|L?\-'2QϤdNL#c\!n?Ρ^+AbR2AsM#&IM!Z2ZAA_5~/Ė7Cvςa.ѻ1&>;zJOI9<S/eW{xW^|!rk@]l_~6aCkW0< z`t/?>1-AHSL{2ǎʃ񸝇oi e%NL,rJrKPg盳V{ ĮxG=3NN\qCE=_BTޕ"kq[c9 47 .bVcp߽'0aZoTX OR˵f{�Wc:2Z/.Ӯ& \߁1bZ`7YzABo1jLyyv?xW)Z=7{*:>i@<ϛca6`GDVi+I?¾! {zemGіރE}< a}z5/ 0632ߍ=�Vb46v/b`\/VY(z+,z0C֑1\'媡cd'./=%G`[gVy2j&UJ{-#@zT}}#cu7״<�}̾ -+ +bڳ;6}ZoWOG+~JLC~'< %~` izM9<V(Wzlw'F03|+ԝh +@HW_|c%1;)/U S|G1yꃒ~4 ^O6m1'?|. C`:r[G Mo~^4-ZkTRƜddrz&\ϛGȟON>ƞЉdƆ:Y%肾YVDѝ| ?fj%]>k0}J?6c9_`W�*In~uJ kɥ`&4M!w<nƤx{jCֽI P;޵dYD*'_|#*?}$9@c[M^ҭBs7Hkڎ;N^#lO]; V*ˋBT'N@UZ?yuڗ<rn#%fQ>1Skǻ r5FV/n8h\t]}a=0s섏xy4چn^upF =N܊'o^]{@:齉?d\!xk^l{.f pTAS`!Ȝ@ KK-%T~[-k?\bctn8 $mpڼկ.B|4[ '#$XcjqL/3*y]ր ƃf&>K =^.31煇NL[@P]r!xW m:m(3 o R]Fb 9ǜƩ޻@mؾ?vň2ёaX5jn-~#u%1:j]+v>@?0?u\hny ʖPAl>t onUS&z"Ojlrι  ^QE]0K=D_X2/?ZѪ;9B(>#d!yvILnxg k_3u= ̇C!0I~:R{PAjYk]=IiӃhz%SHaD( uuaugğ4I”];/<M$6\uEN|)D/N%k &dK0E^r <M(&L + VSeVGܷb뜁w1@rfyL}$-Me~jߕVD>TNX;KF@ʙt̽]#"{;!|ӆOs]95 e埭@#q~ &EE_ǡxTA4 9ݘuWO`zΥBzX'>Glj&Piiyg>.LcBؚ" ,1*WCGH:;+1!Ag-T|S}SLY]Od3ϴ~_ :i Kr?zgLft=+_'ҟcn\!tW/(:;20[a,A?me `u98Q�R^U\ a(Z,m sJ+Os;Ny|@M+u 0%`fƾiEb}d:' ʳo$zk 6'T~v 6{V^_ǛD*-I|y6w{P G]Ӯ <.@ol^쭗7Cͥ;@ٛe"(\rK?:q4!&T[^`CJ5 {uwX+%[&[D8\Ѽ];sL1 /l+`=_T5øRąH$ꏪ e Bh㚽)?KX4g9|`ig';yDi q y'޻ݏDtLx۳uA;f[!F}TM0pIvnTZsD2e7Ndjg1L>VM43sN=F+-\s!qJ` `hl!MC#|d'W\eGb_`{SZ+N <rSD:J1,yh`4vqoq۪_EϵgїHgc1##rsd4g Rv(+'Eƶz[DWK$1tT`7[^_"<P!b%>9,r$oQÞ;"h9xzj=/[&MÐo3dD mq:HU!o U,M 蹍zCȑ(02o!r!X]cg*"T+ wwpW07N_#cbaX0V7[V}0U%C9J Nz13̻R;[Ъa5AfuoҒON݋#4KZg0f&>Xk־~ G^ } G}xdZed$ry VDz{@Un3Md/jI҈d@GXtx|xշۡqS#.q^sA{4A)AlyS?Y%qqT~<˙F;aQ4f9Qj$;֨`$M\|<R!ujc!}~O,ge=gzEqSWݽGISD>dʾUUڡS_F7@XjsBYڨ?CnkM+R{5"u#0nϐF`V0f.$7EKn5S̓lMJ<_v -޷ <''RA7c?uH$=GX]*¯w %Iau) eu P ;цݧ)Y@0<sdՒ/CA(9g٪H-K))m1)H|{v+Eϣ}(PzNt|9&9V|:snAPGCՃіIE)4 }|*WQx Ah ՘B>SZS7桄Y3ڞ<MFS[4 ~ӯDߝj`̙QDa8�K~XgWD)|PesWoEm~ s53Oջ1rnG  #-M_!y+B0l~+R-;ʏ;.^aa.jZEv~ڳ;Pu#Eѡ&95cZ25|8&wd#?U̮f}!L)`WPB״0j?;Egd^+TH\cO_b Ľ: +nq.G"VbՃ]G`&/ k<s5Pl_{`M_w2̓M#nb[|[<|^o ָmg*\|w.?ZQ|PnX49)Iv(욼hуǟw ItGFBd} /<2CͥK jO +]11ϖ}l?vM0{Uh `H_:B5f(32�=CSmm*bG1HlUA?^?}cYAro[!t^o(;Tf4s"I6!0s4[OEBbk);y^M^(\9MLyj\wǤZ5QH~w-1!~@~R7H ծb0<#}: +#j jd`})e-``bC5@s)sL. CKBzI±h*\T1t3 #Ik b68I(D߱)h9R0xllIK;Mmr^O1ɮ_e <.h0KqwA.cPpO .~QCw9K>,;,[.|9{7yt]3v-?a?t1:tFӥ6 lM !s7̿=+|?>ر*r&r<ҿjLh|w>TZ={MXWO ӡo޾|Ui Z kg?螐~a NZV"}q}?~-Lq:G!`*eR¹r$朐OL|!C͑+_Aj+SrK[KB>0d k~}Vq oJfZժ5h|>Y:N y_P93*@h{h0hˌWo>Kvʯ(O%|WW{у;?ڢU*+P}fY/cC"0Vi)D̹㐭oL^_G7#ANXO{*I_-!K\'2"7 ^9yF&G9 袛֮9+d} |7ΉNFĉ{<Ag*ce?4@թmEc/K)ԏmvxO2 _{h[_:.=!G.VWV[qSwlL)L%V#뿨tmx͗j.uɢF9?-;x^}<]݇}v.Ag�a0JMz+~#Penc2XbUXHfM5y}R _d[0ŽB]8iRu.Hޒ|@4hr>MNܖ# 7H>/?,PC7w 4yZ9-0g)-Obr!&84E{K;_J&SWJD{^`|Ok?oW#|oAs ;ûWgzdΣdH)6 Xuu?Z̎'Elj~oVm ;?/~5A9S,7zؗH=8]ʐw@a6&<ME 'CژfvY&^z.sɶoڏ7o ,ONFc*c ?& LvxW[iR9wktfw{W%JYihVst1~4.H~דRWfԲK5gwMjj;BO_yBUjby%kФҫۉ9r w^4ˇkxbdkm8oJ&;јgb S:v39X _; 'z\uVM)1֢hhO]ޝ|3aߦ>`nk7$o2ajttW7+*Q; n qKa)^IQ<f;ڳQ#'W˿U:u$YIw|'ZRYu^ L(&u\^`Q?$`՗L³ǖW0}~_�v0=FEGj@v~}ߌ$vI_q̸ /؉~ꞹQk}D?0Y(;7e4{ rWGim2Ѿ#f eG$aĻֽQHLWXo#+,MEZ|G3TVn8|Ӈw^Re�h"NȨp#<jݒ}[2M:Әz&1؃-\m/Q%| :fN=yqۍxue I *sܹ5_[>+X 'G5`?1Ci+?Xy⨘4K_ak 0BǠT.u BtGz}OW'2UwM?j8mp )Ά5pc(ϡl/Ir@jAB,JRXkQ.x; LVSЧ]\S6Sy8 07v^ Z]w:+ o07q j%~Z쨻 -3 `u9bVueA (J&Ѐ<I crO q{f:6ܼ? ұD+]͠%8Xs1zd(ƹ~ܒ5w{{0FReP!Q3X:)f Usǘ32d:E'7m鿣zخ:[L0zuכ mjJJoA-y$ R4ΛUz:]%,Dմx90~N fJ&dX.Լ8hb1{v+hTJhd৩ˠoVɐpXPB2l:8J Za=$<#ptT~ysu[(:e!ykcr<Mt(}k/G <z,f'wŎ9ҮW`:ƮzQ hK^B΃m_zPջ޸:,D%BRIU 9]U4jYьW>RQݝX'i D3cm7v. =$1ʻN> s{>I~8 )yĕgmbD\Xݑ`m~s4^ R8ʻJ =ۼT\B㷢0~y۹m֛b`C`8dv\KCt cIg= =yj$m <?H#+GG)<s}0ouV0y|!=QtAS(OVc$"f\VnyOȹpp MA׋|"z7y۷Nk.5$~生8r/Z&8tsZtAfZۮ9H=Ü.ퟞ (➷hlqL|A.)GwǐJ[MT]cP΁;o\@`;Nu ߙ\=;ͷO4ĐRuT-*dM_ynQq|ێIlNk0o>M=Fݾ _y<\eCNnjvU6+\UĿ,"GM*FTIJ}/Xߘ9#X]-(e7/aOzc0"snY"kpcғ }5u.Ce\΁cqi?ւ20I. Z-YQ-"mT2B TЕ7b Qw6vU3A0];%҆@} IJlqVQY|MnAp:);9W<fWzz`s%.$ o]^ӑL"6k.&O`櫺9 EOao&ꪵ%{i/)(`៏ <}-eUgB15g^壱P;hOQzcL/֦isǠЕD ^Yzzô\l@~\Dc­!YTn;7iUo9Ҵ>H/ rqΑ鿇~>APzF.ܴǖ>®t]SS<{/:1i;9NsD)zvB0krPw* ^ eI!SYU^6Shc_ϗ`cw%c7)Sk[SbYh>e-ܢo\O..&.\7 GyIyY9=LW⟑63l{ P*tKO K9'K5ߢW$ڟ\uK^Y`mX>\"*6uESp6gD4?>hQA^k?xTٿQuz}SnI;w%FM-ps f.DN 3!wltI*V=ʼn֣Nu3{s -NE@ jAwr՞ⅶ!xyl_Pv`r1fShIk6a WZP.�.F}-cZ .>z^W)+0S˵NsXIACt޷+ )K?%]q({x n[ϐ ب$CLTwUU܋ :z%Af=Œ?QY=:h՘2QuWk@~8Q+y*QR—a|bI ^\ΛG|棉-V`Z*F}64C-ogЌ)GSUZpԺ2niAoÅSȼq}0^3v̭hl맵;?>B[ {tmY{{VJ)aӇA1ޫ]Eo뭻h"s࿞{(F*?쟣+PP}lhY6-4.cphڜ}ڊHyNysHNp*GGO_WNJuJ6*=-$pOP DkPapK}t8Xm]{dbP{TG?@yH</b2dk0}VNBN ˍ(dFqya,l$n5g]YH$1׸+~A KYb'3 u[H,X˥fVZ^hr-]t[% q1aD"$>,Lӳ`ܤZE.OZp:OOP${47u 3w"ǔ 1i9 Ɨbkq0ou D"5:"uvJ<�cqY2^7@E!O<]w>ʆ_p�wmkj[VPX)/I';c؇{}`X܏ԍ=vgt:!X~Hܽ3/`#m1*0Аgf^w$Y?m;>>}V1Wiݳ9*xB,ƫ [Ɂ`㠇UP56Sb;j:f3sۓ~q"c=9v[152!l%02umf9 '?݀80bOoP,�%,\TTH %:2t>?5#ovA8+߁6Tii*tALVN^'` 2{U¥hU~/JC5K+})7UT!wٖ"7|65H ]u.)=萱ߋ)C:.kt<d2= 4pxc}_5~/gGgBS:/żbuf N솉a;ۑNPfy_[K 1(]_)(ߌnۉAd-) maO"Â;X$s 2}.ݩ(92j|X�o[8 kbJW0)TLc2e8^A |?HA CAE]Ѫ9!0'. 3A7;)gw X 3tm祑!z(~>滧C5Amҧ LMR0Ջؾ.LLQ"udFWڳ۫<ȢUB0HƝ 18R(sՇIé?Ap^7,_[[ do )9Y߅`ckNeM0^h߆;mcM578No#߹|jՕ^a_DQoUe}z0'hm(l}8}M>7u~7ʉnv-caVe\;s)՘sWy3*2yS;Lp77<֬{JG#BQcM0G;!ߜݿl]=7;xB5y3>zއA# $.v~? Œ?Qeepmюp9e) ͈9[X‡|!gJ:; AMEmr Q{dL -]Ps#=]>%V>Hf zxoM$C y0/|p9;4Tu9W_<{wz[?kWkQe1x@cmm7`̡'{ >}ö! ,WnEJmP'aWSIt`v#&3G}*$.8-DQM�~abbJ0 RlgX~%КFA} *_4nՖEO'{`읲GiFr3^k~lyȣwTٿznBS`~v ;h6n|@(W0?gX?Gp.#z=o[?M>azC;{֋ =?]4=fUI`p FW`'UyʢIO^{u) 㝬{-)N{ )c߫^@~Y܎]j[AX}d_`7e%{뎘hSX}ݠ1$?zFƩ{~Pk|G2uH=y3ѱ>8 ,lC) _ hLpUQ}H 7cK` S.[Mol]3r۔tm14ѻ32FצܺO1F^@֭n }/Z4evߥ)DWGHyf`E='Jv`L1YMМkHڔBBѯ'A}9Sj݁ 7 Gyca\ʈD0 JTB.) ,"E4{x꫈9s~& Sw=7J~g+~ك|\QkƹEeN +bvT]I[3붩ߋ!onn&Ӟ"5-xxFޭ9C=(3w׽;'nֹc꠼"sBmfQCscv}\N;+$j)6 4tVyRǾ;{"N1~l?o]HbAء`˲, nُŮC<[:V[ 7Do>vS ۤa(T{4ކq4)EjT$=g"<(!#__utnq"枥伾 L6ZY G"MK[b>qk/`Atoɘ#USo #OHa \Rde.R`+,@vXΙ~f zu7PƦuӪ5MCBvس?~6<(o]Jf0A8y>ww{ԉ]]_)Ԥ=vd.40rrU6O"Xd6ks'fmW^@_WOїDn)O8-@;p* տ[ˑVqtGmGCoD~ԨQ$7EjZCfC|C]]Ż]7{46&DZb0f ߹(teWл؇憤}U0.I a�QFۮkcx~^Kן'HCӓq`z#o끪E{R"xŲ\R^PK<H˟rr+ZC*:m..Nanܮ>h "@_Zyw~WT_Կ+07aC9J,&^o0^y['[<0= xQ z޾I[kCbե<^8FcU[ H9[魒JTjܦFdY;+fӭ"WW>m7oBSFOǕq}ݲb%.ى ĸ{m?H^X<Wpb *@%:B4hq/`uBIj 'ԉh48Cx>kޜu7°34l#//yAUNכJp_6'{N2P;eW0JOzܺƴ~s\f)5hB~燋Ϳ#z@v</^ TŹ_uΣM{\b?Ok�E- (J:+:I<on܋ᠽrɓ1@*ȫaLWaRƩ@CDZވ+|2ϟEx U )_8{+7�E>ۂum~`t=0}Fs.o}'{0~bJq$I[67{`Һp фGO<2j{͘2@g#g0roos0|9p|30 yAУ #<v19]KO9W@sZOL: ?!J髦`jfcI.n.{B+B1R7.1ZW}1g?:WZbȏՋ /5G#A[t0"nYvhπ<rʇ#ᛎqxH~S|o3h Gl,^[<$Hw#8gfbbsgJ|jӭ ! ׼[]YGu>0 |P'߿:[#9:Ѹkm̍Pwa\\GxLJJ+X71zf'+[vg /QCZ%}NL R,?!w{ ts+`u|"Sk^^AOEхH\ Y5K4|hFɋ=WvEw+k)+yNIbsYW(uќ(=urR?ڮsܹcD/'ks9GM!R| *Ѳg8P⬲Pm/g6Uu\7+ %ϳSӖϘpH3j"*׆?JwOGz ƓfxT?b@ogӲ7W@ Ü*+4ץ0b+$Z UAQg As.S'N -^aao+rmj?G\@KF_L.?wO:m܄X=W! [|-ca ܻ%E-V/@gar#tT{CenE↗48> 4AvІ(Tf!a8P׿j]2;zAb3~2%!?aQN2aIGua;#&G`n(M 8i+e>7"_3T621EXۨW5 Ƨe`g;/q*k-ϜV]!*L)?)J"f(#~ ֟ѽ-9Xm_C_F6˥41(zs{+mUvG ])idkmܪ�PgciP|r?ڳ6I.|A:[*:v'0|J)Wl.~p%8vn:ʔu['hX|0t*^~Ea)($RGu#z" (~ƖA ^8| ,۲Q(3wCp򤡷QϿ ⹷fUu(*D=a4: 1译Iˆϭ#1/ZƂS0ؼĊӰ=F%jHѣ3 _:%|)*_*Q 3]4ck?\k4=:όRө>|ʓ"P+?tN%6@o!{qZ>uɁhSRΛFIə1uM#+=kzCB.h 4g.L %ƕ X1/K<g2J-)Jx3u瓇H3^qGc՝W3iݶr+ *}3!~߯H^4(q ~x.l[91ֆ\`n`E:"je6ľQU5<waȭw.).эRsWO쳚Z?)=AlnVޏK>商2|MybTY冘|0 ݣm'Sgw7 C є-Go%w`@*Wi$*ӮF?sؐIr WZwba-[s2mG0Q{_F#Xׇch\e& Zr l#:I}-g ~|yMq<+K+MVU J(5r7Ž(8J,ϣQ3oQ&wv5i]+U'xWbztL<_"<9dcP :>[xƂ؟].b8`똪rY!;ڷnxATSwk>}]R *B}.`5[T}?Z뽜ZD@kQ|ҰOSs.#^7U=zÂjT))?W_*I(�`pEX{c 9޴AzE;ʺAi7XWT/ubJ[]lml5>?B;uhE}MhYrd.AIm'w6.c@jK%nkN}%8}m#AhYyS.)E〙nQVhH_j;\&/"ޓ ߼N4SAӾ5r.} ڡvT' Z'C ཫW6k:U{B| IXHOCQJoT$O Q"_W|ZgQG| imY8m=1xE@SFҟ7P-dL<wgr{Aɡ[`~=�ZVRf51$& pg^ۇ/hzS pϟb_P.$zչlTZH} Ih8p~/UDv.D9`�eGLv{m3=G!;Ҫ`1-i ݊>fSfErh}2Q铒tZJS:zcwicLeh+P^|qnОK ,HCuCɋ;_lCśb56 U70{Z`<Q#9O~CDN٢lt$q<WbYNU9FtUg͗ĨQЬC-6 kQtQ{R<$rQ췵gxG6b pac;gG=SVېj}y)7. q~[I'R~BïM_@_.:V.K۴Sj4eKߣK/6SmNTs M&½fD8fâ97lrƗ{8/]}lpk|b;Nn,7uZ7ַ 5Z Y2@c^\qgnʙ|nؓ햭wv0%Q'yΠjźG_P,D,BI/a_lҵw 8%h`V("LmA3IQ%/?_7( ~~wet&{`\gP6K CZS}?_BU׾ mkA_X!67=<R.i1P\Uflmٕc\C/^5Sr0·n"wupIIR5F/31XyWEm4?يHJc@.9eL+.Ye]`ޫe_îl\503p! ~ >`i4Jxj_8jQ6 }6Lt,9?A>%_Mm瞁~3z-c\ bANA?l+/MGxOkcinkR)Y[H/\RenK=?.[ <4T *5i`us+qAH۪AD9]ɃmA;wo/hDE-_09TԗҚ@;1_>Uh-fzBL+*Th% :zՄgPbxii5HZ>'0yC]g01A[< sb(H% ggO�}TV7* 7뇀7 &KWaBnqB0jTi%o3t fG9o\CM~&Uk/@?xT vGP G_ ,?#8+qA)s:kyrOm$%7R.<E=F_TU q87ZP;%='/ֻ"kߩAſ/йRML#Ђ~\ Fȇ\-UNхI~j]O*o?t ߶9etz֠" Rz[P[k LKf6Y̓#g/=#s7yr�mg<Cӓ (b3׃Gw1iG;wQYC\hzG0Z{E*~"w{ q`%hj@J.YXُ:__+IEi>E ގ,@IandDk_ 3W]!<MkC0lۖ&xTҾbɍ8d#]2؏r>ߡz9c (;?_AoD]0_xVzry%"1ZRg~^| yj~}ӗt{6+]"nq[h%Ͱ[ #O}xpO]rWah<y{֕'({>Lr Sb7~9ZAnv:k#{Ds}�.p߹’[w_X>l-2�EGZ d g؆ZS2x>3.\s؀*าVG1$f$ܶx9[~̖ȱ2Q~%(oE\lrq-؃d*a2SO^qd<-_ܙ;Wg My :Aضul3X/7}y ؑ1+WP]X~JתaB*槢f hiΣ+>3�p�,O~dVF^oJGoAX[&Llr.J9\n ?A9T@\y*>nEkrb j郑Є靖heᦛkb>f^a0׫ 4m(ƞ`PιtQ3YG-kKc v)x£@޺F!j?T0ʷ*O!`CS򼵎N;E货jϋmur_vO5B]t08~KimQ5'z\ l)="wkGiIF4~i%{s�w8pp*U<JBD$y9 cp{g<yV;t;헻cl.O8&=gx'ԷVB O)п_͜{"7/_?u˘:z\ 軣iY5.DuK2krϢvvg?:#զ ~KVw~z,.M/!n0=,~: Ȟ3 iIk,گs_4lLp׷n b#=V3W4GVA#/&XNM݂FM68*oY,f@?;I=5{D=I@ݽ oSR'!#2UUl yծS[yPRcGvW_�36dG$S�W* }uhW/TnߙS`>^TrZŬ7@ێc:Ϗv%\t=5]C̀*L{b`ep]VkGnM64rЮU"[sE>OtRAϮ|?L?$҄6xPCu/G# 4U MakPR~8 CھnA>! ` RD~`i>}YDGwW>nʶk@9q<c 18{5L9nϞB+-!~[]p>|>\|Z%U.vHG?H7țoRNNZ'h?DP돥@}[0ȍx+2Y~kU1v v0%wx Gukz;|h�h֊[ u;{#< �B_4WBfN0ҚG랣lGe;Qvkˠh(⿛[�aZܩBL=߼dc+Cƴz)}*~mj�uI\.ЃfCiGv>9;!p_uwð`^X@&f/H[ь! \Rv`714E Gf d׌2Ѥmt5:Zn 7Ϋ"M ' {Uyэ ~WMiA1瞳hYa/$0'5(xdJɒœj|b 7W2ek:_Iu! A] ʨ9fSUj6uڈs=P׎WΑØw#TQ)b4h|F0޷ L7\).C3+ٝcUIVߋKX(xz?1UBuw>"?2blJ~~66W[-?,џ44Zt_pCw8}Q 4&y7MB㫝^h:|hkV5MМ~}SX:^]ROC=7/<FI$>͙9ۏ ѪwPEv;-ws6-0zY`biwzl5wdI:#՞wݲ)*Hr^yɧ?fܩ[Q%V;?7*-]ѹ[N*t"B@GѝN#C>miV[ d MIF_P,%YEM {Щ.Ԅnaה.+p>4/~o]D2}YL?v̎(>7{|_Y51ruľ N꧁T6"|J\px'&'R9b[}1>~߱E!8"Z#oH2qZq 1 &"ߧ<ޒB^Zxdcj9M%_PofXF);ÐW}s$h.~ k9eկY$~%F]K0 g[Eq3>qb:^4MF^5ۗv$@ˇ\W{כhRS}x4NLӭȝoYXD^͍vr`v5ݼjZch� t]؏.9.քM+z|17l"|/jy6?=w*L;P[yܒ4nX@WU"9r4yNu{kd63O$.MOVum<qin ݻ*pC75[s@vk۾RUcF- I7fea4T~u6JfGb4%/}ěրr6XsТ I㘒|e3h$y 7C̢~ U :Wv@U&Dg0#<$+ݬk#9lV %^O <J>q]j"C|Dsƃ\'&P{s1 GGomm`Z̼Tx>'IP\$I[hLvG]5M1m%`5beD v⍿K-6!a19V*YlY6²hQӃ'&&uAo8_[OCeȢQ8Igi1c) - H?ZО Ty E9.Ubp(Ԇ[z|+Q`Rh&)yRT'rAK_@ƪ˼ j`k.W}UFgSS`VtIU&)w)?SDؚ}uʎᏟAΩ<# ʫxfHc#z,ī3ƕ{̽j1I t…àU-캵x3 "|shj q1xo@f%Qz ׻Lh4tar̾3HgF?Bݥg v<ɚ=(5ݰP >ch#گ&Eo 9Wݥ+Px&IWD&AAyb?#7$juP5;.awaK:0} ; _UlЮ ߉HKa-z0:}G`*rDzO^q@6AB;5g1%]~nj�/#n{%S)dVoYoH;X X'n JU|nCS 0dB rA;zœ "?# D|=[|Pt#,F/ҳ; C]mݯ"_tzH >K][+E$E씹|M?vԟ$;6E߃,ƫ or@m~3}.e[ʢlY 5T=8rMїw-f~ﮥAO/lFxv#4>@/"֊}G-;q MVbW`lj؊}HiW |fW3]V۝qO'"5}%T~|)+rɲ(OR5BjQ>pMEQM:JL]]f훽K7c<r3}_͛لO"xѵ!S <:Ť͙wlP *_JW/RВLcvEǓ0G{`A$HTFwXÙ<ZyX s#^вҝF=lr8fpf"EU&fPW(Zn`О$2LX.bNڕ"`^==DڍmFAdчؙ,U<{4*Q#d s΍(>0F>qsL{ٲYlDR3id[�c@*[i&i=k#֗L/吱Ίk?FwnI4Qab:P� rQ$L}`+ MlA/ٟWPz-Ĝ\2 �CYdn@ \> {kTbh55`J,*.im8+}_Z6mX-9P`pdž &VH)> zZ}[>Lzߓ?Q s1 U;2(h]jSA|+7rv2%4@)>XLk1^Ն*1(??ZI'^(~2,RLf^1:ui]1j]<}.B[F>2)EƿVax_T&hF2jgrgVF*_jHϖw롌[Iۨ'Qfk5d[ s2[mWEr~k3+TTo6PE5>j-S+h>:*y㟫 luIDP27fYRbjۃ YrlԟF , Ⱥ_x& ŤKȾ1Oe;]WJW=*";#%M 1ȳ�M|7%8hwhdDtJ,W08ˑԳppMum0 =,>ʰ|3(3Lr#Pq:ug=v ujY5݂]M\+1ԓ(.s+>fʶLjǨ3Ԩ봲0T'tJnC؞CZ}`I>Dىl%DNto�kNu{gslUC/:Q%ms*(uQ׸D]cƉec~~S˒2wE>/_^}u -X Vmϗ<G^mu#Ague|$Ϧ((9)rK#B=m7 j=- oW^u%iQΕ>ߎ gkx|Z810˗~x_fz x/ )ÇixX\BFp`2`a!wA ٜyñ+TKttP55 rW+wttd,]fn2OUxv*Rd|n%# =u͟;%ůyn:qS*s<ھ|S/܍sZU LpFbl ʺݯO<ߡ !|ħWy~ƀڮ&4He Ϣ{7xUyb50ss]i` xxN!FU[ 0]sM*ٝXx_ב _ OHx  JZGKS\{B("+6p/NY[+ }ji¡"I:ޝ5]F#0;Vb KQ1vFs] g m/~,1\`n`x5oOx⣖yw|~e<>E|.kѳ<Kv{]+?ۛ)`P1qSg*T~2=r"Io ۦ>ƸE?,IB*Cߣ0"|Jq"+_CV$uqGeiq$|lG|0E*F$.st CO>o4|>h7X2Og ñVP܇G^0{g} ՟lt^EG^}%{Ugx VU.*60m븵=[TSO'a1Nj^XAMosefK2&ig<PdvJߵP u"?{*=9\kMᕟEx4[rM:k gdg/\6쒺+1<|f"ks'֢d>8m{{P)'`b٪1L=SI TfG pl4Lfgmzz>Tc'>ߤFw(=ʣ%ݘ$ jGXC Bz0Boz#5ЎN9Ev#T} H[Db,#i:MTV1QPtRrY9p!(DHrxmmW=r*qQX'>}#`]x~EV+3PxA^ښz0p"<4pc7n$p]V{99}`W|#:̷wyE; E頚7n*$MpZX9L]Shx( , TY?v;ץܚBe$|> %=";(|u:LԲ!8B| 彂`6 ;Ҍjd EKvQamߣ&43>_4DΰԮd�{ܥՠvMK⅑˓jgLv 4Vu0>[OZ@SCQ+c~MA1Ñ"AGEuQp8'g]+l/ָ(q Y Ci=^=9}?HՊ\h:0Su++G;wSNJ]y&据cƗè>̃VMDS0]Fi bk%HvBՕ1a^=/cʓ`TC셄bl{mƻ-xcpl~ЪA%!7$8Ύ.ﻀ@\iy&1hsX`+2�745a‘4xLٽ AU5"rV#!66L-!�?9jA3`q3V, tbY͘uPʋF8E|,/t T'%cĩ:.D:-QQiJ0HSξК& }H}R-MzҖ%iΏ96ZچrJ'h{+5kzol16MZߟskJ.&c$7<9@p)$!k>H~gkQ8#l 9'.]jJ: <@3eK \6'Q~~#-)MPk_&i}Z:yXHqh'Grqx;6E jUK0ʕLߺ/~avr_ jOd@v==sT-o *,)M7%yUOnoiݗ" ӆҼkЩis5WVR4AɣBǿC s66ٰ χ$W%HfI:UED=OvaVesWP׽E)PW?XTv8rkrV.z^Qyn =jk,)<G46y08*rA{54z6B=ډg([P:m=$]U(=x{KFIEDXB"2 Vb ubwԲhQϑn"6%{5k\A|Yj=A{xqv$NdU|<ne*_Px$.0Fe$KHIu +bPhg!*־CI_^v*XP񼒗hkPV;( ^iQf<'?~zօq{ׂb_rvtG7A?! ;Oϣ,.rwW;kA{ׇ~dE ߞImϭ>t2>zoH9'%y\o]džOl[Gb :n 1jA,d#(* ޮv)[`oqcgB-acɽGↅY(wR=,gZ`,GkJ~S^}4P!q8 Cwn!6G"6_gZ&0pu%u:xU}T5XGT"M (o,//^{5�xg$#wU'dt_YR`s͐7? ~՚xGOPpH X_."_Gy='1\_e)s}Vb?W<U1nrd;{u=؊ʦVeLe}-b‰sѯt1DWF{o!)NNdc$z2jW4m1׳iJ&v hF;!fNy,#̚'󳡃 @[ߋ|#6GR4?Hֱ]ֶ?HhzTc랼0(C Ѱ)S :TR>ǐTH+O1ՄYd{bTWO /ƏH #U2s8*X 'l[_+?) #fj6"rQ;0k0utqçs{!iiϝBcPPakE,CC?ۢbTPV6O|SW#<ayq|q!t%JDMcخ() =b'mK-̚(~mZI>ߠwg=hq:FFA׳mQLQ jP/_7:BzZ Rybz_z"Gh3Foq7B�4#eM[> 7ʽ%Od5ûA }|>Pmtd9QCUb<=p<ԳaZjܹo uEaSTn~ï؉sGAFhvo9và|zt%=<^sYɏTk!Q$pSrq/Tx_u(W1#\)<R;cRꨤ\]8_Z~=kMȺO,W)  OǼS!Q[!qt:vFUDIyԏmH FnÈTLN8ާdSdn7ȴ_6pQL#֊=`3k+ %TGVVwI$2JfݳבIV4o n:cI:L=9rvj,([Z#wh>n?ۑ&4>Yq6.cS}'*sH6#Jbd#ʻUzu%葽iÏ>AePv4Jd}i|uE81UU [b|ֈ)y\ݏQP |i.ԓnn <_VZ|P8֦bXw\0k#;w2h7οYj~PJ?0 K<q=KpCr 06,<Jg;wimCgaY095ij4yBĸah O]ȓL&X)u@׸񥗈 ap4޲hvМztا/7J;A~zC6z }wC7':O&g2~m9: -M|1);Hj@)>xބ4L6Z09\7ٕML [FAwI D\«g\_j,ƞ>z۰q|zTsebH8lT=j'zAqJU2DQx ノ6QcvHPq6d:5Q,t~K4f\ tDGhuTFSjw~ջT1v wmFA^sULZ9Iob /? $֨=W �c(Sv4%혮{m_*x?4@{IPDk3:j|fؔkq(t8h㏯=En= !XYÁ|'U]@;uD?:܈~݌~uL.HQ t#Obq9ϧ8Ua6rrb.!홴`svZIMFj!jy*v8yW4i$"[,%n0V4ӿj5!A4ݻAឯ: T񜞙d εFah4qAcU.=IS@ P:jk_ȚOK2ڏϒ16VUȱ>`>R9P]}AwI<P5jO.( 8g'T.  ;z1KP#zj{0j~T;,F0=A}k3)Q'{y_:]T 4pq"j"c`235V `wQ%A8j\NWm䯗_Tx*F h7<j@fw9}`ZmDp&g)j,?26D'& w-I\~ jkH: A5gQ?Z|Jst ›sZ(O*iblGzbR?Lf@jSKy0>Ν�-5M z6GWy##RP<Zz|S\{_7u9 7}iGA6 P(5k f9L%4I~U9086q2a}'˳Gqg*P`3r5b+a [X=< Bp |4&ul-$0<bۻ?y"o+B $A󎻤(sgޑD%p<Eq 6/">}7]IW.d*$ !$=+o8`r?S;ZBXƖ$WGŎ覎RLr { NÚUtUEI$K:#+iHKkpȽY]wA 6PTEƱC( ?!SFHx'G>B!BPɞe榋kfa(}he)j)6*01]u#^箰d <i׉yh:s4TՏ)!f>Pk9 Eyפ\+5^VkegN%%xy ˘tLཌOjҲbc<w :G05K#pTT5W 3y11k԰'HATșY-^SZ*<Ŏ[6AnFR:-`i d?k1\dWZBA}p/~1qqOc՜/m"�V-ur\nEg{@]8<̿n+NGů z<0C[b-̿+D߲퓨Ĕ\s J9EM^cߑY!{}?. {@L&6##7']Pil7O*+8@Bި?˸acVUhwIO0v(DQۦӅY4N`R~{ /nYBɞ8h:'x%D'>퓌Ez6Ǻc@iL\%%qL5LT$\lYPF1LWtD5gcgDs~-D%N6$ lA~r1Z.XKcT 0OZ-|7WAR7qXۈܟS;}.F ĭhb7_r068C=K֡ ]Rr_'\b4)yku]yѸRYu7CafQpMHtRُ{|ecAl iaWFMϔ`ƝRX>yUȳ7sBݘQgIB2vCR$aФ\vFAKl+aPc/ᮍq_n^ICnh-IeowySbF( 3+R{'K?W>_P[- U:e;㒊M?!_W 'wo u!l.ۯQagCۣrӧ/x74QұvA޽0=a(^kFhX,QԊpuOJ?V"e0=1أ 5l>DGwYʭC{ 2t) q#F}<MYGmgeQ%{B2wELno1ɠ?F쩻ʯb�̲INk1CRn5=]A)$3A;70Fj4 @ =ʺͮF,uy}t쭙Dl<6ɓrԐi'8c#EH 4EoJ̽zT[ kV._&z~h^o!Mי.ous!-/h$ӺyI=߃)/wc(S2f/[ۻؾ}A>;=7A톇FXi9FГWBSEiL,4P]Px|~gu;CՃG;EPșk|.yȽ诠*#Ɡ) Y@p3#d 'ҨَU?&Pƞ h#W4m$z3Ȓ8郉M!{dAz{ԡH *B5l0,狖,U_\xzΕfc:%gM?!bwjA43k]m~bS'91w(-\y_+ǢQV,U}W~UQw>~,;czp/1C߃v0[gaP_kEU5Yduwv7\%< ~ =bjWbEiB}֒e41E N[V.n>r-Ԛv@jRWcfqTdƹK&C>&K+7$eg>\EQW!Th/\-5%ilי)x dyZ>>-Ν !WU K m')0ω#W9?|oCm 3y_"=sŘzgG1H d+#;/DLo=BVg dGeW_t�5܈W%/N\W^AQ̰7;ʿK%C]P*֥(TiFL4NJg\,PS؃c0R00ZsUtuhW7bg`S-]&z<v227I:Eah0FrOg9\(r^) ܄0zzwg)Y" 2Ɗ ahdVA-z`96uog0>maw/ RUP1'%Rx Cl F/` 7> T㓈Nۤg>UlryZTg(cŋ;"zQ{m\db_MÞ`ԙL͚UۥE2UiڣB΋}_~^G3JO ҉2~:_5bgw1`(1MxL?Aw0-Fn04<^*wP<?T]G/EtWQxn[/CeQ`ζ_Ց6߅qʼ8 r[hq  ְ "dzn�K˦M<[5 r[)\Qy1n̆ox-yr j 7'-bv9[W|NFHO;~ ۶VScn~.^B9ǯ %K߰(>8-iBZ:o1ajjRU Q59rE/A+HE^قZ΢\Z4b`8H5Y'S~KvK/\oϝDž;1/G:ɀN]؍ ss0JԱ0+柣`秗VnPr7]D134iSz ۓW[ť及GEݜy>#G:�d�Ф-&$W"7X{f_ar I7zIcpF˷f{-p6Joc4cGc[PɿXHS>f~I$7<?xv*ʥgG1*QN=Q|CU%Ӗoq:ȝg5iC<6(>BVSK@"q[(c4MsXJ\ GG%Ϟ :<,AߛZJ&_/j^!P(oh[Cvດ`>/q# [goI-O}ПHƫ?O3Iz_'ɳ :Pg.asFxz2#.Xp #ZaN0 -$qKzZNr:Q$e;Wn)Pw9Wa] 4 ѿ{޻:M[~\A#$^Fu0 jyR={yU"'g m/F]彠k_O_6ՂU86zcޏH@3A%U0ub]x멾KCP UdjՏnnEm( i~Ekpɥ'10lT<MA`Utm}|y%.wEݪ'&A{cS8[yts)H!4|eY|_2ٯ9[ G7Lv |yYrolî[Ka Ң7YbU~~d"Qz3m+;'UG"1BK!ƿyƼxR>K' U?ِ`3鑋)RPi$y+5825Ϡp{%ajd#?[p4W_"1q*)JϡQ -iϿ<W";~Q1.U>ux/O{ડJȻc`n{ = Z c/0QiEbzqV3Q{giѳ(ѼOJGG1IFvF 3eQ ѶrvC=="&]N"9Z IOvYSVF :[ۢLj객}ۛd|rbpF%mw+A[%tk[f3JՑ烨 W@>N@L}sii;3]I3q0;VzUx|9ò>k^##_շ�LNbb(SJj1Ay\huu }w"|}Ы Bo6ӆQgC2e)yaSiZI~E&@^GyTVŚL)곦Ysc?Cj֥^iT>1pCCu $moog^B`qb�1L=XWWnxufu^IBiݭOϐcL» FmGչߍ>h]zU!&{}F-;3a{]wp(hSu0&gaiGmB~$*M7<\}8G` PRfbv}WЪN_:lZ'Pe߸OwWه 6oBQ}^pVۍ>]G{,'hVB) *`J |C6bho}hcrO sشgR(* K!|j cg_ܗp{;7had\A6pF'q2sSNb`@Kʛ=NK#Pk7y%zME=E iBK/.zHV-zdU3obL48}q֞'`=5{'D+7:`g34y]U@}Ke۠kcrCօ"mKd/(&oI } z1F VSg+`h^QcKegL+dq4L$<<4..ݗAv7vf;8d{q"o2 xYLa?=jc42Q1}d%ulEһ0|K0=h P^x2';> =,xPȾo )-aV}I?�3J`K4^B )WP 0:Ⓐ+Ź5/WDGy )R9T~cj{[zad<=OU+P3q8=/e.y]:4iT*Or l7o{|q`=˿Be&мs 'x3Ԑ' sAҔOcd><bz7$6UȟLq|;hu{S< mӑi_WrhMu~^髇qN}hg, blrx,XZȌyv1?/)W3I1ۗyL k@Oq2R+Ap`{ЕR}Z΃\`('0gz@^iWzw)QV7|'f#.f7tZmFcrw X7 gvgè((*^IMj] U#gjWDOX})Wo:)|]Jo 'u(ˇ1%UV6J m!w/w]EGic qnVgFk'k0'4MՉB<aRiAnu'e9E,R-|J#o~|-'g3 );i�Sun�(//x*㺃xd:XJ\YkA/iKpFE(ל0v b`X5`tFi_z:-nFvLkШ? 験G�:qi`93RQSTփX|z-&w|]�zܘJ<% jJd%Y 5 2J YXiEȏgQы9s~5 z  ѵ!Ffm0M@QKT-T'n1UCRH!n]*;,̭{@[v:_'50|*M|S?ޑh5" ~8} * wCV ~l6XA7Sޗ~m#+DzͿ?YFfŵ$jĆ;O|wڠFyl<} _z^#H3qYw.i3X-1-##fzBϤ)߂Iͳoyp(y071p;>1K}{UK@jy XUDx&痌͠#q" {|S}恆qJ,.|k I"w7vJEeE,H&qK_1hbK (z[ b^Dn(W7+#*Oﵞ$�z*ໟOYƠ5>xr珵e({и&|=ԑb֚4uȎOlaVDm}4MWN9e pl�s/M߽Ȯc\n2I4%~܁V'v돠b(|yr;cy^އ0wSE7x QqZb1ʴs={`{8~9i{%^ׁbӌ^0X ߉ehz 7}mrAQOM]iP L_}o:LH_}rX6_D'{wj­t:/轀## =A>i7܎%;oNF@$Grq5YzdxXk>P91}F( ;:1ȝyd` X׊HvZĉ] :MW!\f};�ց`|]-aþcRXk7n[F֩5(]yW(K ;wWhf%O~|lQ%Yx]?e)˗UP*[o/܊sw1|szmNLW?bm{4Q7ۦ#5GΏ nا/ѭ;ДV.[5prP+5UAZFRtKw{ CxJ= mŇ](Og+K;Q1\\Xa.)qNPx?~iacKn/~L !e腗o~Pu$e w66o `I9~`e^iac~ t85JM)xb^[wfiT@h87rc5hLI^&DЧ|Z D#s48>*E`T}ZlBS7 Abm> z:a_BA4EH/f Fus͙le=WF00zzȬl|UYrqbyNChs)/D_ȁ)t`>*)8"cNF\gݞ:]X9Ye'ό <=mwJpG/<0~^or?W\*wѓ? `?{%WHv۳ôWbtU bGcTop&l vDRر `޽3Pl&zl5cÛ"ckbPU(DQິV1Qa7,+ moʃ|oå r} u;'[6a>E Ɯم/7O! NGlKUt' Eb/38 O="(E?"` 3ĎTGۭ.;M~m`�cU|!:w[bjߙZUإxoz.9cGg&}z(T4һvpcLP-su1Z+Y>%j0{r+seuUh[wh Yrb֨K|`F_e~&aLK<&h;|Q8kEA·_Ho]v;.F s]$=@Wf[ڊ֓L*1,TtH@EރAV e L=(_ưU\O+ōB([?aURD7L^YPI0=]PD.RFpJۙ! Õ +Y -$ܑkrݵySR̨U׶ly3F<mKԱ$g#%ۿ@mZ6xjlʌk?AἓF\(�SN{EC~DUn`ɸq8en[+rTjWD/CAk += ߓŪl?49^i\R;^^@Zӣ}H:i }k,ʷCNtwo]D0iWE3ɗ΀x ]z%~0 %ާp]$'l::@?=ܽ~}:HJKq2s+V$mݲd܆ 2Xڵ>~3A1D$z]ՇI (ڢy?vYF])MG_[x@d1X}²]"@0 ~Gi-ϙ}+VOaypKzȅ^h>8Py*%e/>:�VCM:ᇊsWxc8[YQbg5sQy@}5"JV\G)_QbO[jQm]6OrhZ\+h#_G9+7Ps}"| e>[[} Xf!O>Ɔm] Q!|vqyJ:#Ylw+@N}pYjWR>^Qs"mowK ;w) CT|ݡ? ST'+涷,7"4B8'-I_JR&'΂NMDM!qT86grL?cn#Ps8 c2 }# vonĕm?kd K!aS[vyxA|=$r^;ȿo,ЍPὅ!v䲃,F6bE "?^xfs8=BI[&<v?4 ӃĐ{4#h7&) [g]n^tn s%r#$NǸ*r;{%(ՆwCTM.7x@bW?d)?v+^;ĺ:[gC|W 1"qL!D9Q9SQ [=|un%h]aOFđl c,i'SD|fz?^hC57/�7͛~r)M E_hYKC$)K([:mklL rrܖ0,YO_|pe4q<ZU^10\0 ]R �aĽ=Dǐ\JF^!\Jmk=}yyiqJ̝d=y$1 :ӆI~l}Q@LVr m_Qn]hBisnj.ѩ|Fϙw@f4t&z0:1AztLm$D.7(ÓVU:Y"\κW:5s9wy*c;9HQ9lE@Y /ijzFS 4qC}? #? O-\ 55 Tк^0趄}&]G9 c޴}T7^CuAnP |/u;pɳgi: #oڋF=}9g/'ϥ?߇M59l~D/\Woy>_w|dObz{*_m7.F3V?kS˗)u 'Z?vNH)U 㫕Ϟ,'_jAU T{t\ Ǚ简A<<+K{P[/ y9~`d0gZd- @л ~UO0Z_1O'v *Ox`*-ν ti3ֽ\7:|~>.ӛq)=thZ] $x\ ۊ)sGL!Qӛ,߮EG4(L(vyjuJAе6DO?Lz ZK[py}TF`m_&2@>=]dKK1Ps$5>'pjcu>F[B-0WNc#37S_i7{Ahu .n[}Lt`G*{M#e"S`J}Ai\`U ''ĐwߊrXw@@~6o$&>f0q2E F=i�M̀kA)3NC̚ #b&YY*7J oԣI{w=Z1BArFD0j<))h] _H`gL>nwƀ''tqӫoVp 4߯@ˀa"[G䦽=Aғ~*^s2-|ta撒@yȩӠr E^ĶN;A+j01/)wa;}/C G˭* Re=ҺUV~ %E/lֳ1qI&&~wd>ۉvMN| nzYLf*A>Jm3 m=p 'ίW#Z c@S1F`§aqsf0 empSB׹0搳qcM1Z/O DwCгT$F>t⦝x\\mLo+Vxiӛu^E5+S o׿M]+y\Gt+ e;gaWhSt\=(\ǽZfj=WbAYī fxߣX5kX<vEu|s:Ŧ0T(9!ܲ/BYr"K}]y(hW4.M(sكeC:+Jf߱/crwP4*vfr`]ny| w]VBαz $ρ5 $^~l=%f䔳s; }g_pj;+~IorLG-WncjlV*9=yE&g;Fwǘ֭PyCg!LiyLV0Mۥ[,d4j&77=aF2/TS)>e?LmYwSX>ge-@r<x1*gS6j.GyG((Z#+fWz]{ȟZT[2 |߂uv "Q,:B7mVLDVEƒO4b|�2߶*ƀr$2*^Fڪ+寯Y2@ ?~i )[jè.V8rhAީe2wƮTH͸Ơku3GPulӻ{>}1aXQ%g3IcKrcْTPniϣɾZk8Zv K'CN@p}kr[$W>AX lu4=xbTg[kKs^f (}c^ CQ%G7~;oyx[`W J^>;#HQfN.Ƙ/aMjaO<B\XnrHA Mv L+Fc}Trm [^=m/-<'LqrDn)|n٥s_N3aGN YpQ3P}oz'B1a ,4<ϰ]a5G{Qou ZWY@oT{mO#WmHjeܠXrI !G(⮲?sܢg>RXul5Κ gCׅ(Aqta5JڥeTFCIPwi(T"B$"-!2 Ҕ{93(R/K~<j;z|َ֛VU[j<#:NʔF^vUM6è:& *m{4=o˿P&ċ6 9Bzk~,Z6x9"omL6ruMjgT҇f2Z&wR }\P=%Yg ~�.HDWH_mB y$U=J@W F Ruḋ&KG'Pf2aRg@e#D*ye�9' sAD>|z3Z6]obʷbn6eD{}!ߊ?T`pU.sP 5*8|'mc[tvD||zGM/O Y7 *UrG]2wsdǸc'w0ƺ9CG{Eܵ{o8*ks+ &pqE>ƨ4bbZrU3 :<etPUu툚0FD?cRE4Թ^Y:[kmu߹11֟1'Uzȼ5S%/2׭3CӕS+doWɾ\4\ lߊA? >=n#|p.ՐXT^sLQ+)"dZ"7G{ 6Q5Ӷ]$ @m,y>Z>B-M&P;ΥK0Ë5^�.|iFk."y�5UFpp_ *jgdмx+] ̓Չ']L3 ӤOu(Q|fVz(#c12r:0T�Sv<20{<}ʳ mSLH?IDs 2,'>;bjxD/Ͽ5 F)o[04 dŰAq_"&݈A9.A\ObEAv.-Lmf �璬$P߬ZX[YX~ӕvd<:4iryć[\P] 'fe>(| j$"D 6bTs1fzZ?Z$Ar[x' zho+OEI Z3rDNcsQ?!x) :&wjT"9{ "#EGH?&lB3.zBU8|Ñb/IQh&f:P~g nc{ǘ檱t. SIӖ ެRѡꍠ8G<*ЏJuHL%lU)bxQN QUR(s[.2=d}x oAq~J<Z ơT-K'lPa.CbY1hy|4G$ 5:Կ*yY"ȺSPÝ*ndS/hr7+Qw:ļOõGWtoU޲U;<_|Q/޾d 7bq}6[6yNcx.jq,Fdl41ɵH-<gd1w1PjRh Z6<!>`I-ο %هe05PU$p]}#w%jBc"GuueG1eTbPFBVLuh]/#�Qu 9u>fi%Y M8|Tǐ6Q*r Fl~O"|莏'}߮SuT]v_IR]*HZjQ_r#R|6bΡgѺuC* o}vN?fr]J V.v)GTV^*5% \u6}gӿ+j#g^^-D}a FEƣ1XSpqfhM>î?h)>hJhX>%OJlޭ*L@=$qt}.LSRAgW5勑5S_4$+'tw@-g6ʃ?GQ`:q,3~.wZм>1{CooM?(wSO.o `lv[r@o1`]ʷPqr7"VrC/@L_ swxCqV 72lֳ}S98@-ֿ!q�n{<�6 O<'}{1s-@zymOxs_|չb2 ^t*˓X02v+ti0-?AΤXϦ2ԎRj-iI]&!&9ɠ쟳hZG T]N�qyWtrDYUm�u\cd21ÝWv <B;%sɻ<r Pi"A^}uB++ѳQ0 }O8 ~G~Ze-&KXbtb@YE9!ނ=g7IZ9VT0D�o>c @} '7ןE@/1ni⩒L5}c?cY'$btOp$)m;c[X#o{tF= H{:\c}k0oƃ~VTev]r]~em⠼*xGUjqz�ĚA\jIFAx4(OrMZB:sx}T :ގsh|vvgϬQEqߥ_g1hru^725@3BGwGMvԩ(w맠W}Hz<ʙTM< QȨVEY=YWzԶR1Rg,&7t-6svFV(Z8\+% ;x3{#x-<U?qcdР t+28 ->*�]J7gT;5 mz}(r83twDϱ=d~ *xKa4'()B3뀶ֽr02 {9ou Y*ߞa:~^Tu iSιs7lQFA|ʲ*S`H"e�tMďL ruR[#k[x5~򜷪7h:' l1TSt'}ro)zѼx UYi0hov#o$jKw14.),IO.>"_qeLϯ~A0~d}ݪtϥpq j;dy2'jH`BgL*^yr64-ؽ׷Q(O]KsTBts!&< /B0>tٯ8_SE>iC="";`}/ lo ZS##-qe[ #p{~A=zRPKi�B h*jZy{vV#jgm_=vO'A<l폡rZ]j>Q5n_CwwL`mI +6ГA\1Mq$>ND,+1H4h\2!7 >j5tI<E!g%-^x' (c_C<Ag 2?&Ifx٫ʚb ROLJ"B�kvjS1CP͝>}Шठcϗsk]GǮ ^(BgIU? 1ړPDe_oL->=Жj4QԐQQ| qSW؛l!³,hG薈s Ͻ$r }&c̚#~]cW oY<Q?fb}Gk8ѱVa*] mU^vaEOkPegxQwuaܳ&} q=KE=9(SIIISL?)N r~ݣ꘺XQ6}dk0|4N=)<g -{'/Ks,q&d/j$;EIQ9p@fe*HsMd0xcouWZM(ye4ODm4X&Σ>ݴ]wL>c4O;Aq$2oЯKrm"ejݫn-Nr 8ɘÑ׉bYiZ񼁜&%1ipy/h'.B? >b?)"Wq-R?4WӉީ_H{ȡȕ,kQmVɂD9mLBg@~;s\>HW4?\@u>< EBۃPx5+<3ƴ.3m= eV@er+ GU5>qgC'hQ1TAP%ڗ2uu]0+p|%';O<DʋSeZBҕ>"1(֣n2iv!0Yʿ1rV:[yaߙϋ0F/Cm{@ulWVn$*FwU;\PE7Dn_%.|u` `-*w(E_. e \[|RWЉڶY[1晴|zF{}N b|euFݢ춥>'P%\O"z0 B8l[kT*$w6adpKH1IFy'1,-o@*LYPٌ+iQF }>)6+A|Xn50ath9:�.bͱr>T%X�aND!L/\wMO_0`fȺtCJ-\@u!ɜgJW5>^fr&f#\~}h^ezFy^/oàHy(ڂ%oL1HmF+};rːE@3AK(uӖq ^}C{] .q@TP}*DW1hw.zS"}^8CyG*K n 6@~=8> Ų\uT}w| XkT^\ bܰYv4A8 Pf̴r]dͨ'쟐kcޥBNGvUc𤚒)/v)bQ}M<Gw1e" RR;R3EN")@MP (:^#I: l37`,jhbGbc̛]?Aܽ.-V&]M5t(-kV#1WY~`#:c:k̗SjA2|/dVyd?|ǗkI]ݚd/ܼǍɬb~%=C&9@stގ- '췇Pw)J ,*0u7Y=nrS�Uj/vZ$Vv*~~5Z/:|ՕR,TII}a D7}A AQy$1b 򩚠|HYߏ)E.'|>:u'.ȣ n/ofRh]t,@Sy|?#*~tXd~Yc!`7rlF.x;yx_Z*r7F7He}O+roʥ$xfN9ώ=aU\zIW#voacF%/A{؇/ 2 (;a3ckwߝ}DdD&=s.qknKp G 30xD�,''wo"2)C4u9c` +[WRmr9Mz_tgaH`cfJc_V\yYnT ~I} d9$|8 ɣrh<Z*p?u?Pj{]C݅cE }mb. *rS!tf!koԜ]-E&kY ϫ>A1FhGk_W=8sڼ;|P$u]bA77oi /o\1ySc-4r] GQAܚU&YFWlU5 }VҮ,ϢWWW0:2iMt%®jbGifL]Dk2E(6Q%Vm} 9KM)/=bZK? h1q-饖sM<׎iѧ=wad>!^Uf05!G_|g]H Ee-|H#.Ϯ?C౰נgs_1UsfIP YW *\Ǥڔ�Ҟ?7.&پy:KVsL0xrq3Ē9T2dE'`pqv՗cW*$o!9[7_Y~bPZ3q'_{38DV-EqFeAlG)F50 `JC~~6&v2'v&/u]wE+idum:ʱeo<>{9Vrjk8UeGO?ϙ"HUdP֛M5<b3nu&[rY얡#qED/u8!g{(Ŷ VW6(dnoPg_*!wY9;HyqlIw!~95o]`ލA zqpJ.sj{mEU+m)#ݠKȽAsn/lM9Fr%um*⬗q`KUL0>% %_>͖Zٍ#1q?y+;{*_o=K}KCj*Vι_>{0unL;^P B2_ ocRx=W2_$nkeG4v<fCY6qYLh;74џ'j>R Y_hqE Eȁ|ð҅TG ot%FVF2{M@* r֝ns0αdEdh~uefpQ5V̲_8#A0XNt4xѕY(@? *Hm !(1ָ�#42Y][w\lf@3>v}}y*"=^Vy$qv*ǭ6RP^W$g] 燕!bF6Ĺ (ְ≯n٦]3OX$aFVG0hGJ?ÌpltlJ5}6/k -c݂}'>uDٯOOn%2g2_`Y ,$뾟eFgr;yeF^eYy h~ ovИΟV=wLZeGld3Sy$Og3iޛi -jM @2vT١'~b'<'4bI9OhyGǚj vpR@�SS1P+dLʹh"Q@dtX^ݤi D6tyT ;GՃ?CU32=b? |C.3ټ}IDxGOTPW#!Wxţ7jH>UU�L{*Чp-`YX'P-yk$kBf{(%'$r^)GP%>ƦQYgد"yn ?0ԹQB(} f5PtUfoF6?_u `2Z^}<yfVW*ifooŤ|WP+Dhoatmb@=vtS.cb|}߻}>.^ͷ["bbҩةstR7wcb9(U?ʃ1/(X-jhl9aMcwi$ԅ&[טA:bhج*6brRL0x9.-;DAb.Bh~͏H7!wF|K)] $.̿A ?bgAݡ/(9tO&zwHi#Aӥs ~_C@V^~iT{φ@w]l *Y2!öBHY_l+Jn!^#o@^ϩۅ;ʨO+* oWz(9},]T}~hk QigCy· b 򹄲]<Ju`b/28HG&l|]csyBџ5W$!mH_|8yVCv khZ5,i*xVKp|w=\Ƙa+ITzvrZk&F=>|'Sw?GRfr[ *ӗ/^twHti[3UM1St[2f z3R}'&+PIw_\;dQJ6!W~=|tXgč 3AA (a(ڝ<;PodisM'-RBS2xElC;yƐ|FMvI8|8݅ >.Y�5WDh>v7ʚˀnR};S=g+QUS>6m%(0P)M^sy'PKoW`8_ &s揈G0~ÛM^ 3sr˜]-L_и} f\ߪş׊3>HNQv3KSfE{T>&zu8f_^ ˩j"1r܃Hzmtϵ RiN 6ZhzJ7ZzJrj^ж+ߖ܋'>1IɨvtpGeBvE^ M'ODܣc};+*M; Fe/sGyy-f>\8mr ^<";)83fL'ͷjPQ62ʖ_,ǰmbAxNHG䳥?[|"&>z\`#e'z,nP淒5ăɷ):?bRNJl4n'3l%) % H+|Lt eEӷ1]tFq`[B6e�,6)^cпdi ]+gfq8iH(EaZP4EM?i1cm�*&fgĢTVy"z- 2gWq9!IE, k]sW,^3@\dBps#N})_'! $[Pi MiVzR ؼd%:{L"GsFD>}eaN6ݗacBM¯?1Lt%?~l€O9ה^OuonvsW2Φ105(gs#Jo38K02< OYA?]Q'i5 +ƲpEC2y% #6tA%tC� :^Z5AlT5^ԶZ[(2:h;ɪjq/o;-UQ*'=+ЈW') ʆҦ{¯c)VPΉ}Cs?^,s�tE *ʆ>A9%3w9Zyt2Dg7- NFURLf ͣ:ȮHBitڏ1/s+]h]+\ܫ$w3/07qxcp _S@TE[ng(?!9Z_YbfrKEgzzFw{1l14uMA ͽ@M{<HSm^_gܻ|Կ~ EZ4<čY3GA=-6OJń}`gŔK@znzGYD6mg:|%ߥ($]D'kbo)j k <[_I\Vexu3M G}nP:[ ەE<tI(1{�^yw=-Q2cb~kSYxUqJQ"*Kb?1abǡ>P^=Os4GqPWWa$t+R#c;3٩"c YuVE My:p73)9, '#Mڮ kbxڑ[Nm ħ!|]B8X~x >Mr,vH? ɞh՜Lzó6||܁( 4#'Z#@IF֋]gLA.KW(.Ekmc$nd]Nա(ą'y(k1 /rh;% 9_ԕ 'p'׽nGqdwᏅ9l)ө%cGi&*$se =P+�98ˍ>0޵䋐~߇”j0vݩ`-RwǬ5gOEfϑJABsg*<wí[PNTPԣ#.98*ew" 2sUConn'_g]}UR$*4p/̓tRw#G`w]#Z=T/'az)0tsoeP+:GȽ% h7P`ẘ+-%nrF~XoB75WPo$;]=oݎ 1ќgvAƜ.XBS�lѰVۆ; .5!Ve~.\Ϋad`y;N6k;2QO"5?ڲ mܲי.1L;RQxhqaDjVwzՐSP.lxPĦ^=dU FjAjܷpCjbf3 k wOz0>~x np2_ #tb2*W4ϝE{JOu2]CGo .xn!#GyH{bJE 9s:Mwy@ZV[pD.YkRKae翈J)Tv[ @?BR�#_Qx!#=n71FgMD0v'Z#&FVyB4ˮ9D1j9AMF<hqC~t}1P5 #_=XHH~.MGo/B>xY h(:U {( y2=0rp+5B+xw?QoY>L*}~_%`ÁD''6r'gb\nGޛHv.OfYahhe??aBƩ 9׷Wc>Ui] HXaٹ9av74Qjx87|#G+b;06aLA{fcek0ZMFF- cӺ +PJE>_ۍ+»A-,'cѼ#RzgsN 4_<Yy_|ԩ;1qW 3qbw-ȍ峦C>;~Ձ?wBRQZw"7eZׄ=x@p+JԞe9w\[_vOeaҌ)w2/GWfr0 xZգ.|tS]^y0zAoyiY]v[i^&q >B5{?<1 Z\^QAԪCpV ٶb^=W3 M_5FQ־;Ƹԓ@;7t4n a4E6#43Ƙ,& \3_5۶ zkf'y(-j`J%ѤPQ_褅B _.].d7DW*o`x5G{yAj 7s ݺGgQ龅2M%9~*KJ<01EM'@۩֍ ?"NֱcB[{$#uT IS{iPfs.vf0)[ ٚ$mYk&Wnq>[(E3Dwh֫ͤ!c_m/ `*UG2F2/m_О(<7 ơFo"Yp!/bT#8Jl!dBfw5IPXujAVj`ǧL&XG_qU M)J~J%} S'r̒#P /̌(AX;v}1jxN K|cFíY}HoἯi쀋f7 Vz`x}V_ALv{ \F9|܃VR (s1+KjG!NTNue |̤Σ=PdRxȅ׸w&Eנh10uMǏa{o~dc_xVe;~q.zM@RΎwH]{޺zEll+(5lc�M3rӾ`Pz^)`a٭ d̈w(&o\,Bu;9Tf^>I4Di̙H# yHhz@` [t$N֩084ӉoU;24E Mw[.tػ'1"]s#X`|╢ 2&.&c'_H'f= Z G._4E<ctyhS;aʧu 8Zi9ٲę>މ\$ܱkʨM} ZE7=tڍ8 jA)^]}yZ?f>P- vӠrkg}L޴hAM#@٣GGQ7*,'(+/uTn#@ Sqgz~]54N#E; SnZTn}M|V45ܕ":%㻒nݓs_9*ɲ _X rmn@_HB)ÏЯSS~:(fJ }vZzAѩ4 uI9 LP޻^ *GYӡ2*t='vua`RH@= ;94ʜ1"j|A-yh^yQ}'[(X@4*|{Uy)^# l̾@7XJ v雴VdyNt S'4ݎ:ڜOJ 14HP _n@5Kӯ~AP(Ո2{RREO{ [>ǘR|od)6ᤰ'<mB"F?JZMKZ |7F[xbQHh{[PTռ ~!muߟc .9mz>:hbJVbl̩ T0�{=FAzF2bЃu;~`RSH?#zr+V0:R?Eփ>}6;nNm]di^{r]Ƈ]e"`ozpd˾ Usk}rī6Z? X+�)̗ǝ@>2I+gtAz5TYOɁp1d&^Fbasn�jhE єo<ڪ'˂@|D?}SIrs ~ձ]vP2L$'v@ƨm֌}Kʹsz7U}gzi^ Y+<sҶĿ{~Om^HWvOnӉH+BƷ\Bh~]~ʮ<b)76jv7~q[9~Zm&|>ʝ1 ̬tE /c^Dևfoݘ r*AC{+5.G1?_Eg{}o?>9*l7VS"{yt_ hsF_e(*'afZsj9gAJ[ D)ZO?Zx C?YUU˿EնLP+5Q=0ڒڛ -؟QØ/#z ٧/b =F7#fh<Ǝ"۔1@EDȤC!]ym>{薎1F]AYeߋ0$ Rs>LtWA+x~{%-=yӈ>\B| ݲJb|۬=1ٓ ǾHǎ{ /k=Ύ {G4kI.<^nF^S.a(uTi4ݼXEkѯt566>eQ_2gAg62camw},1ueR;yD -r3¢<%yK]_Z_S|eeYqFb/hϢkЧ1ttwKJ"50Aht!ȱMQhd6m^ݫ 47 F-7AUuƈλ8CSWؖ60�l|1iS`a$\tщ%BOLb}/> 9*Ż/9KSR"⋓#i! g! 1+jH>AsYirR⋡&g>(j=AW Zul}A`r#+ ^ݵ~j_0 UQeQ?hܳgsFS٘7P?>gO1B{d!Agy}MgŃ3hPfEpl<>d;_Ldpȸ˖bRVSzZ긋3^)} IJ/UsrPXȍᓢXTfQ9ؒx0qj)�uuզ; yQcL>}Z uc'~1zd7`*WvD mH' (lmi)"yJ>b ߯[/גlE}h2S>̀˯=r(]bDv$'?ν<-i| ~ė*숁aпޡ2E+qGdjGa'f'c)j5/eFY)r&yT =- s4ۊ],A3չp5llnٙ|dN՟Qj0EEKIb1lӼe}<o1L^$ ԫi-`j#smn�=@;۞-^6>_,ʋh'0d&34cIOqi@ ͯh:㫋,}2\.QM20j@Žh 8BQ-12=z(/?bRf߯rŦUhwj.Ujx->Eݡu%yȏ?LBD P+)o !7P>X�_a%kdu?ώbxo 1ʺ[c6P+ڏ"-hU]Y_:^]Nޥ*o0k_hHjZ7[i'y] ߰XbI۬b@%+-E2LApժU2ۋs k9@$I*?DD EQƮzj]1}+OBJ O#[^A>&?K>}QǺ[d̤~eh僗 }Tpt%k n.e`"[5 s=o,E鹏x%Gkׁ�N\~g2.Yw;ťQ%͎Czk_B5abdâzp6=7,vr%]:a˴ mwsRfWÏ AS#N4# f߰}jķSWH?&DP`@1ɉm|''ag 4Z#9JI;~abO d|7䡭cc?y)&%NiM'Fs/K`m~tJsWo(XnTϒ2:їb%2 %Y-|$3| 9wṐΏ,]i 4}bd+@inWV7IpGTj{d͜ ;3l A/6);f`zqnXQ2@N)#}AXozcT;uEd!_PebE/1le{u;'^v XԎzJTL@vrG%_%0u "Ǒ; 1us~cfmdžKd"^(F(ӣU{G;HpIۅvTTθ ;ȇv2#i8hTY]<QsAkR+h?8{(;= =T\ٰ|%hBab$oLXA_n0X|*ۤ6zF+~D{ս/>*]h@З\ٽr #^|0gA (G=LTۢze IЎH I][jPM>=y|y;(8/"@Yh /m'`4jo3;Fޜ#kҽAOBl 8T{mɘhPu1 TϞ*GM _lOD ,Go�tn�?Ժ}׾2,SѼ^HU~P \BڗsWʟ17B+n\LڛwgQ+?N6D'!҄ ='651#+e&JITʡ5њS 3W{Q*jϵ=T@o۩3S~\L!4 >(#O] .fI)~rV`;6.m�@e-4pZف}fkn8#'wYnkcz&%#x츄I2{.JW[> Lѻ[L=Jepҭ2,/@&%bnk~xj-S ȪkyP(Sd(r?ޑ@0i<>H**9{m>Qq<(bvL,ht3Mpq=$N%I`[ jǓT- ?e5>%w81T%>jz<Zc'-Z yy0JEg L1w]42TCJ1M\npcD<)qi)|zW)==_t$YDU^=#Àqw+$VPEx3NM5rE/7_ݺ f7$Xcںj}Ho5Y kNL)6ݶtAͪZ%^Ck{5F62uhۍȖǶQ^zQB,6qF.GPpqZ|U-wtڢ qʌl31_++U։;;{P8[ZE2ƜDAQL(>cu×6Dt]zD}q)/y/"5t4?GG9-4hlmu T s}ULO%V4ϴn+Ho+\78{]{f += ]:\i\]"(>wzջSІQaK,G%}l5^}D--cW;*FhMJ0dPwnR>ZrS�̜xVCRi6hYU=t#QޘZ䀾kdPGID;/}) {&}TIYWVGrnC S \gKgÓ }vr9GKKa@# %*f,ޣb[-r; r34ӪBWQCܮʤ.0ٴToAm ·bo!ދgm^6^pbQt *獷gUlfER@7L ^!wjc[C$QqdԸNOu`Z6&6v.A\%L.SNb==.\1:2=\�ʚ.#AfٛP0t$3 dK/]򏳕ɳw ] n)ڳ&Ot/_1~ӂ: ض7wS0UF\x/c\j;} f5>~ȅ@wAtHQyjzڜH-Kaj߁vHvF@reWBYQvYnz2h_HZ֗ nWz+m7P1f} UD#&ZdXT ZP+;Ə2̊]mR㰞%%ɂ`l8*/Awڟ> )GA<8%2f}s<yR%z Tϝ~=Z0ykƦHt?s " 7-*cL?M(~iٓ-\b_t6([lUY $8$U&y tꒈFol!zrw (j}\>ۛxX݋2Ij%{4D]y2p7ׯB;gmt0%tsᥧt㍠}9#ܷwWDHHFy ;1eof!=eSjH_={<IaTT4,\. $tF/С~L5zٽ+d~R{0sNyxL]5J EՒlչ'8Ě__n?7K<Uq':>kt<q$(hl ǧʣ1tG\# -Q09zZW}n(�RWktJ۳ b\F'</Y1z0Q,TnpYp=5=DQQ;%_m{N[.h) �`|w5|yBQ\UY|-e5oBZFE$堰Az|D"h2#E1:Nd".N} ̝[>A!OBLtHUJCße@`hAEg?"Z>2D n23޻Aw+ݏ=\?@W65o9w._q&T~)LqrG8 <APP_x``9u | R;|s͕MSt,@t;.SiHBƗFH+8fYSCb0{]9P;Ʃ` .N鞍m(xo#gM1 ^Ff5Dx;K)g[7<A{n6|`[ǏcR@NOƧ gi㢊 .2Š L'Ij/޻70qPbP Cnvk\g}ݺF6{8cZٰ@*($hSrak+yTVǴ*{̡6$wjKL|+4hEѮo_z)g1uK ZoW`|‚&WuhM}c,$ۜo* Og]K*עwtc�E% ;ΥW$*sjŬR@I<#W@x}EjM:?vXN}jjnDj > LZ4_EnOkY:s"):5&Hէ'Ar=Rz-A›!q}}v];$sZ<J@`PI!L=m<"Qbc ed/jfuA݃O<lݨy _Iur.XosVgPѓ7 A~Ԫ3HQAM@֨p y�k{m֪އ4rآУywPCr9(1A&@v*Mn|msLe\r=~cb$t$|PL=A%ü/ΠIwdr|h2yNj641r`2IQt{@;J &e+Is)0|,/í65TÏ;(?rVZ9Wx5:Q~hn[D{+*k#--7[dVJ(g\zsc�7/= %ZQ~wxSeTy t}<=Ž^TF٭o=A*9_c<X }Z qGfgoxQSw tlC�YGt=7s@\B'u|i<#˚a@K=uxA6(IC b!dLny#_911lWмOΌrE?}6WVmrte5# Po:BGZh|1)&s0hg+"9YdTo9˘רۂ15O4jqnmS͹j-R|.AK0WROXK4tϤϳ` 0kf#¨bJ;N9?ی>(_ؓ܍+3TzU,lGh}KF<CFh~Eu7Ҷ8Bo@3Oh)HkT ?]@W|w6/'c=b-^Tx=kllPxԕ);I?̱r,oO:ͯyDA"Kaϴ >ǀ=U+;OOqـ8О̄1Ե1(~p^\F*�,fίQ1 Y9͍_q-֥H3W2cFRtTG8i εQ|w9Z &Rp c^b<~B!6a7UqSwwR-3rltF|-K5 M-;gi[R=ȼK:f'4 F]Z*< ӿfP1yi]0:ۗ2ԅ499Lmy7)J T޲-m@g;5v ;Ө/-Ssvc'y[ZAnZ 7 ,Iݤz�_?mWET0@ O?4.} ԼwK2J2@w/?+Ki=#Kjv2j; /ng˥t_4፩E)/kmt2Gtt~DŚ.έ(x-&)|TH ]V(�QGyࣳ E?uQ/ObpI d. ^Y mG&ڲLd+ėRGe VUk!6}NRhzQ&{cr1F^9".F y t7{bw0ӿR2n;N]A~o史,4LY~!u#fפ6lG[ȅ>+c2CG½g/ <ηW$|/ɶj&Ղާey=Rd(h[|L +]SrKV?Wv3xtr&fp] nw8=#:-f?A0kvwe6@;Q.KNn|-4Ҟyu0`yͮ&=ǩ&R?* ?Bϓ4r@}&F oڿ N]A8jS_.mK{EKjd9DT=.ekd9J*߈*- 8&: $ـ1l ^询cb%uy[}NL6}_~4pO/ k{ӘG*]F5e{  g "t_&h-dEu[d"*'kLK? kO>4Ȝ i(%}q ̐Y6@ג(Ѝ S^>w%C#W?UZAL/_2%Kxdu;P.iU..@58�"y]/Z1_ҥ }yJF/nA]ͫ&0v}^�~>2vo⋟.<Ոӣ=@3{{Rs/L7`gNF*0t~-rz>%Z✛ u>AVW<ȜY'&0#_\hbO9 "K.yف2!w=CKA)8ꏐ5rO�*on{.d ܾ'B8U:*7ݸ!Bo a$sQfTՈY=51no3ߠ-RAid+@VK-,ԴFna.%R`=&-݁Zi@c\Y(GM"笌a}kmv. vld~i| ʵwO%}3@ ^SBUS0h{?GS`4C4.d.'bP=jl.7o̭P (sV}:~"_&*~C6~!t [pm?^ᅴWp(6ϏEmdya?eW }BR}14-S5Řڦ՛cQP%f(FG׮RN/q(AGDE3b: G^%%Xzl}h 7\>63)lus0pEy]U|ZS&:?e^1xŧK(Q}6숼ƲUn•2#<O#RdD {&OAHQ-�5 Ϯy1TML.mXfa%濽AFLlWN݇h=DƨH)D 3qy} iY<mwJ􀪺c?,VƆ}{ڄ0# EP`] O$BmFO91yN Sl;}AUmK{оxZ͆tc9 IćME{w{1"^/)S'^WF}Rgu ɯ["2Er*'V>I` {! j.!+[BOqn f~:jN~&.zj@T<ICܔQndԚZZ1>XJ,4@mr[c�4'dn(44#uA贸zJo*B؛v;К7νDh$ZvDQRo5zޥ-&D g($)W~ubȀP̽/äj k[߾U:I[}k)JL(a@nФ .й4AsW7;G p}qZ}+ʫ7o/4H3TGF5&荞ȿ~dOLZjzme|F?:T#)\S@z;%u0*<PyVv/)̉׸vUĨ1WMMmT~Po권ws =bm]dV[rAEחwaR|zǛ2;` "ef.wA;f QtqK 2-0Se3#27sorMn;u#erhyFF"׊tշ-r z9=~JpO ւrsାZLZ}wEMa, g.)_io)^zxcL:3q'ꄒ:=}X+{9`@h\N¸CˇA]xՅb4vOBT}1j ?JHc[-|ebRw1k ֔.doӢ{LJٽ L*T53|ކ<ǵΪ={FKu(ÔPNqPd.EO# ~D#B t><@;"hy7 7`R鐟f?&ͭWk1O nFԟP!o~쨀](?{:zgח/Ddx}cӞBȜ?H=ݓ__R`/@0FMT-Ԅo|(m2qr(MIWX>1T{[,: ?bw=y} +94y-9gU9+$Gl1yAoR7ۊ!ӉAZY'%2[A޹UPV 1k]Wek>ylJ^c1Ҳݕdsm ym{s뢺S3]ínװK| t</le҉8|h ܁·:ge^e^$%%HV1vN !(7%5'Pšz&h?&h�+h{ (lj#ƨ)cax2it muq #,XAt>jYfASe n^^%sbs hkP2XlƋzx a =^_w'ҟqNh y<(o@9bܪ˩w\D b؅ ג7ac #QJNZTbx"I}NդӏiM>$wGonL݃ mH }u4oNOmYr,KG=,B %M[j ⟁|S5L\ ȋP^Y&4_MUM ƈm_?v . ‘  Lr�ol+]*z0pEC-QvXf{5t3;G�Ú~ Fֱ .V(vLg=|v Uu08r/F?|mXPR*ȁ[Sph1h c7;뾠Yr*W (XƘ�crh4git_h/r<_;;2T^?׭) 3x!A <v/c~r%Pg+04]Yʗ?YѺ–sO+\nEgyQcv%q}�ߜ@C_O�j#h;[ޒĚM췅>G"|-?›`6Ԡyq5yR/fSўzY霶<tcV3ʷT"vs_05UEv)ӹ}~]ԤÑƙoj̣5,D7LayVU /LAGi9Vр2Иqszs(8:=WR1ehaYנR/%M٫Ti'&Uu#ɥ(/AR3/6o~E]BHMwйˍb1S)cO zd M25ͥ7.#\^(kbA󞍮>IŒz?q*`iG,%O"lVW4\ 틙M,o^:),Px1[?m1P#ԬW'@]Eȵ܅HrZ #?oz D~D^zx٠m} ãʚ1 SkAt}zy;1-wHfHvZOq%ϥWbe,E~,V{Ŭڱnw1uR}dk`dд0BbOWL<Qc;ii'fy(D]#B#qLv|ڂQ&f1g8Ď(nDBmX?ê;63!J@yt ;0z柢 _^>(=1zS6fL^?4 nD, lJEܦF}{<c5|ⷠݺbPuS$A<v+* >yc؅{#eCd|Ƅ6 X% ;@7w j@u9J' )ByBF^Ӑ%c^3&|YP@E[2G 3^=6HkbPYǡxg-eàԷ 40<sg5fzv YhkDN5H ޏÈt¡Z4m˾AL:mخM \+2Màae3T%~ \ vu;nmB͍Sh&VYIj&vP8+fT5E=gQrW&'q-(KQȳ!h ކ¿C(z'o`Y;׌ ]m7L*L}\{~+hY`)y31|ck@{&y9M nw4f"(o# ,ȇ5% ~Oo$*aΓ]q@u#@{Wf`x^}7֝'-&lv[ߠ[ۯAU5s%15s=g. g-?º .m]P3Xt n덿^ rPLJm@v4\BEZ#(V6EЉS!KKs"\lD'|8h)Gƅj@Ѽ៬üls޳;|q O\}9`,ON o67\1{=t'm)P$Ad&4P(kVTV'q)%zvơ"hދ,A]IoGZ匾$ҪA5Ũpƻ\2.n=j%gs%}A{`#?lY1wˊO߃%uwt\R4c/n)BV#19p`Pxg!C֙E*E Ufj@0 {瞜8X-YuH T_eׂlD6P^ll|DâkٿUs"i{Wr KШ_WͶ]|<A'c/-pTMbD=-yѝ(9OV( r{Q|mv{ȮDbiHV&~.)\ʖ0%%eQ{AaZVP~9M P.y] լQI'/vT9#Pdxؽbvo^B.{{(MbAS;'cGǔmւd;$Ԉb,ZZ?AVr_KL7w2Jo"qIM!1t`Z>z3K-ˌ8G lHd|} (%л퉚wQ?P@# ^Ǽ1 @Ŏz> 61RILy)b! wʯ *yѮ[h�zB>sS.@_9ݦJsbA}f Zt> Gs@W/{e^$?6 #߮.r^!TI8X=^Q/+bj 1OwEe1ɻjh%͠)8̴@=tsf:Ƈ j&*٫ z{z1lb1&#~�Ju f+DXїm&~=jÇџ'gIo~}T W-]1-H:٣>>{@?ߵ9ٔҶ8V향6l7 !0m*6 cgzφ(ϩ]]1/DihGE$bz)* (̅0ݿPsf6;h/EPT!YId޹ Fmk1y"s@F~܍kJ.aS|D 6z9WN4VxAݚwx mEXx7;C ߒYjh+Ghͣw9J߼20D(v2:QUF*⥨=H/+I,JOo`F%ot='0a'-hBF5 D>O[%Atb< rynk^ѵO+TiVQM:F|ǍB8PDǁp;L-N0DflwfxF}^z#P<v=$nYu+78ob]s}\I`>/f=aBM?)*mdȝ BAK0xuT_2g�)I:פ^w d7Խ6 ;!L:?vPVrUZ#c<z}aHI&2Ώ*243yXw.&'5hI#T}^-7GI>7KkrTps$|�uTo1|**hr򉎫ѯ$Pʁg'_p;_-@ҕ=a @ڝG}Ú:|cMgД~羡ߗt5<%kڞqݘ6*WٺQrݷBT7]< 󿢠fU4dH& hΟH@{30~% g78aOz>P?<\-D +΁zŌ1ԓ<oqb?\ւw<;ƶaR2ze [|h49W,GuzuKshb j)i?͌s. vxxJP'#ip+bp!Ze[cbhyz\öCt#|TPﱫ)qI&w5lAm7yv%(Nx50!8l+ƥB9"`ԆyϨNw/njڽ!}jsUIeLA;zίMh7tH^-Z^Z%+fpH3c:0>x2k7[]mGۉzP<3[-rQ5]%W}R]I;*OGNliߗڇG}1<Yɯ%kWAxyq1t yL*ZR(9Mތ6怋&E{76(36"j-o^ Jc.3DrrT SDL=4q>m㶒/<EW)9땼^SJԵ+șo8b ʟB_/_5bdB72O/ybzztgױ~̭;3PϢib3Hz*ꚬMO[KP*Bx_uֹg[4RE`pMbDx.p}>"=>gւ=u( RaO-,@kP\i."WuIQsqnjۄfD,zu0Ns -r)ųv1>D H z+Oݧ/ z+je{Y�CEaVIB*Hy*--EYHJF"$,d{<3]w~Vs}zy:=Pr%ȓ} tsM|k@mK&bm4G;/A(Y~څÊCy뾣>PO+ )Ƈ~aU02YrW"'B8EY5/t8m7^<܉‹DO~뚋8?}ycv/c U>y&qöh[vc`^t'6Fߝb}ܐ$b s#W<;Wv_"CFA1:?mg!nSO2 xhj ׷?w-ޝ39l2G@/\UI u[@}]&ʖyK<ً9[OnGž| NY5bNz1+@;\zkʔdenQ3 2yd'P\CI1'y٫k*r|s8f.Yq֚#vhF\JG۷O&3=b0T /^]#E}h?IP Wq9"-cʛD-e�9>u"mGE0и6G "hIwP1'xfB,dXN:k|l2:7Fpk#u۳A}N@q|%_]W#M .Yt?ʦ jL^=vuC&u=j72AQSjzP1JwC[q}V7nBe|_o~:0ZB+D_( ۼ&S&y^:0V^ 74k'#wf;F_/Fʯ ?aWl3@q479Sk:ѳA;w/�#uAQZӆQVn-IH=uUJk9A/sM]>ZGU +m`V:x_RA]j֍0DP'6eQ7Ow߂% 艵Kȿ3qGЧ43k&R3('U͆F]Wى×wqtk,IT?@#ီ:fǔN%9vWMe?#r<6~v@J3PuZt EEɦ!DEf͡YצtSai}]ـ:vqXjS%C(q@AƑˍ'n,<Mx}~>ٷu SDm y1K.Ay؆/,PymT}* V`ȁ?(%+*AٞNKl(} :ObU词z z"gJL d~ m(N#%_N A+H3eUCBRQ%O̕9z�L\WA] QY)B@wWM!Pؕl�my ̻,Nrt!"RgdZ5M.2I?؏a ڎ`?d?Ț)v (Y?y3RbfUKwQh4FN4?b/7 __͘FG2/Ԉ=!Ų$ypiQ7S{W`p0V(0wuc@{H!T֍wAؿiJsEUmhpK59ikH5Yr'1/aH@Tw0V.\ S)"{QFҽEqA'~S#hX-g y"PڊYe^;46LAb#P e#F$/ ^ƖJ7nbSЄ=!y~kjt gZuJt(oX)ݕGY1yUrL?A!;WwdHE~;T܉.:u4ZQȽ6NUi:hV4@兛`ݧzڃ@.$K/Dڬ�5!Wx`5[JJ_ݗUzϖwO1jjE甛yY=LY=YoCd&O rWKx zZR<}C&;+A^"3RoV&/1:<zWUYQȭWx9tHG+29P4&·6҂dPu,4u@cK># 5Eԕئ*w6*gGb¬Q='Й,T耝[@ BޘU& {k^^sA91)ے9W D_ǂTǃcEu}'Z߂sY.FgEUSŹ߹8gbp+}#|2أj4m�m+bvڬ ڨ=b0܃|K@FGg0!/jN?q`-PLV[}wl"m5Aߧ'}[9q!S]?y^u281Ld]. {XQ#n7Pr]vo'8u Ye=Հs~L'g$XT\5zM̆wL-}n7~~ԚKf1r[ ;4_K7?Ut`?i75o9O1e^6n&u`R=060 FgԬ=uOx5?uoy5 i#Q s'1i(rh-M<?DDї3ĬV2E &WuyX{y27)9SiŇ d?-W?۵IS A(1A 1>NZ̐~;-VaCGR0';ϯVrWKWEkS7=Nަ@Pr)列ʠۺ:U $6HkSy]Dzzv{ڲ\gjs _<;Oۚk[<tFOX@ptX/k҄ Iϣ dAZ_.};.vsTtXBOXeOAVygeD}s!tZ(\'ze*zq>z*" -.ߨt#+0BɎBϖ{hҴ:2U9 \<oi9M&ns#va du\]s zImfwʶ 0/CަӶl o閘ҧ܃I (C͉\?Ȫ4Hn:b9M$0~W mhs~)J$}zcX/^7v\klVx wp, 74';DrK.>tC,Ƶmn"ɈQ3 pa|`DX0 _y`+e*Vl8)>nOlrP5]5%?n^Ao7P{cD7<O;a`꼕 �ㅃ{{T(9{+#1ǐ_aPU9סIrԶYY@q=@_H̼ #0^%x.7sYދ( <Emtۺ]SЌFttR*&0*Y{|aخG}Hu'WokX-s|•NJbaĽܯmo béjehT"'5=Ws-ZAUp&!4+_[ɥRc4Е4]:hL᠞d~*:;q;"kAU|s zc1nk{MJSO ;&BQ>2?(/uQ HQs0)u,{ _yri:#7U>.`y|}; };aK6s1H'bn5kЫ43Bjjcp546>~; MFYb4kNu 9\2 c?o ^F@mW;q_by8 yʕxl;#�GפAp=D ?* R1>ݾVc$yΘz5z` W4nS]~>ږu_<&dآw2(^Ec{ ~n"O/$Y5س˭!ՠW?+R. ĞcP`MŇ;՚-Uq(^~+D×|:00 ؔπr繎3L?6EŎh2)y[P@q'7vd$WY/NpԪi3v7G҆3-KwzZQGpX>G+ >kP$1LԻ =" 8�7n.pIs&@W3K ^~ 7g".t8ah+&qPRv"9LxfWmsG_aIVZF v C~Nߓ:DCvH<yB.k"㓫jzt-mDeKmJ٭ )"֨ns~dv < ϗ ߫ʻ{m ᮗ*|F-S.X-U[+`8ճb%͉٠:lR 0!^,Y}/?OQuN$Q*ȕ-Ht1zz,neydl@?0kħ'/VaGqk@ᯋ�(GQ!%UCWfQo Nyo㵚^!D:l{Y._EG&ݠ4-nL^ ӧb$WvoR^J3:vU ?s^!Ep$O=&jpBW^s)G% >.#(}lD9S̵@\/ E<_O(^G"Deޯ~{͠Nu8@rr[` g=)y6\~wyN)rǚ|El:ZfR]F3&o!:4<P>i]YfV 4h\\BM?zAԗ2U<=H/P*~$vMECc_Nj@k 2 o|Fq{ƕs$ey{g҈=i/e~L{ĀhvlNM &nB],tұ"y?;V>A{>gvTa0Qu0{c>l 5߃[mSUJY0B] ]MG"Wvi]W ;NƽTw~w-2}V;+`;HLNjyvt/nkqϡr;kǁV֮voLwF-(t[y *s\Rs$ H3՛RA&̗(IC|}8z:_Ñr=Z8Hs<s0BcSfˮn=oI4e9kioF^\Q<$)H=nR!(wu_jȣˋېɒnTJ$ oG׻=$ϐA쭛7G5 " rρt>*|nHc X(0zApZ~m(C'pIs@I?:S6 /O WE#L}4fs B.,ȏKrD<=<퀘z dW[Vi 8(�.GLXxDc� \_(󊪨9{?_s"ҾfӎI?) r[#At)�;C׎AHGmG1&= xjObH o/mn`q%olzº͂(o(*%U} 'O^~'H3>ƾM?֊p�^o UE뾵vߋyWNoo})~CTq …~dF!K�)Yth0/FkX*6>u[S wn܎ h4-7B:hqsC#Qkj_+x W$wݚAOySi5 tB^̜e$Q>S0/>UV5kU52Tvah}z�!A'C Qn/ lYcMf }9ZVP\wtN|Dm铏IFcܰ\�ӊvY,@BW:`Y4XqOׯEWz g?{XgmENXjV ɜXū Tvw^A[W @_L+ J )EJ5Z,*7Tu`0`~;7/xY ʞ7S^2SGG3PVjNѡm^9+ U]#\Qi'Y~09 Gު[1|qjPQSvz>q<S߄P[kc*Q{c udeϘo5w_59 >_:R^-bͼL(1i2Os' Fr JFOΝ7EHU8V5U%I=eoe^X=Ye�R7\rT+ ݓJ~ݪe#�Fe ̳.`zw_+Ulnک/0%",~ v,ˠEQ0<>̓z'fn@6X 8}r~ zUnJSQo;wݯ}k qdt0 Xȫ&'<mSMC>Gii,(P57$ U7\1`it"O\v,rގρynYO}[b]%ҟfUE`L&X?Cx(1!Es֯>,KB=yZt=UisPyOl17'$7 \oݦrF # !+?40~ (~>h髌4-5Gy}{tTqԵSc(?^(:>.X :9* Ls>)r:;t_1wLsZ%w<9mM6`/fƸOEj8W Q/ĮܩGBO.}aA 5$+bMVڅ=Dc#rrCQ >x 'Xpr6QK}щÛg/KLB@^H :�ϩ u9֕'y['B ԍG'_؉3cc Z8 3L 7]=ђ Q(dݾܻ0e O}me<_/ uMLyйr͂sq ) }Jn !C~@KY,s\~+K҅.PLf;Pͣy@Cc~AعH4n;6O^GutMJYTG!ϣkr|.)=h mVm صO,q~dkZ[5oA9SYxVb'ݳ0 xohnZMZko*N~587 nSƆjFמq JZâKI6�;s^O�j'L6Tt:bWȧq14"wT"" eyYXB$HSZr f'$-A:HrxP f(4|~W7F^ړI :š.L -7No/5y~tr} #Ūs<)\DO;A/v"C˳(hp͞2 DT {HЎ4Ө{~̝V:t#N:Xͭs| &ik)4m%JƱ~5,-$}W_zG9`R v"ᆕx!e#Ǭ\0;O:d5e%|ݴ-Ep~Rh(0r| |"s.8tk߮'-HJ^ly)(FO( tGblƴ t?f `%w1EmN,ѧ]4qe#c 8/jVyƂ#.(9nJ,Y$r|!P1<Qm-3 zA0/σ% lM71ĔFe4ܟ:I)M! =/wdp^0!X&{+e] 7ljwjSff;-K<B'_WRRѳNMUv'r=J-_) <f:wYmPwua豑u<iCŦ7n߹_%)R].\%:*bռӞo/mAI<}ƶ]||p V_󳈣ן(qrVYg?br~>'=8nq6>~E'dCv0-KHUޢOwg7ƄYG;;B6V!Ydͦ^^n@}ɍC|O>:splS3zi K .x2WJзH�y2_||?nr}i栙r#I<W:"j,v en{;Æ@X~,;j`v{bD>K Gƶ_i `F[7{@J]R sCdHATE] HUUi-k/~lAgCWooScݿBeOr7 q:?Q_-w!,"mm7X@gQZe7-o{}du2Ak)ꏃ TݼO%w=xЏ~н/MQs7?b S KM72ܰu%w0vؒ=<j|;WEY]IP?&[6Sws(|=WHP9}7z2Eҫ'@_4a.ov`܄_S/34{A,>]G&-J]*(dkX$rkK:u $tnj"ϙM[1ƕοgMV4}8qVڧU>X| uwdQO%|0lm&ZE(3fE@wR٠Ѵ7 G5'Ol채\eNO%h'Zbp\nĽ(HNUO1%3qa<<9Q]j E7-pÐ&%ӟϨ}x+e_.F/lY0i}򬰀<^ٞ ]G?ǣofӠp 3|C剃c+rs_s!IJTk KkW#If46WQ&0(RZ2>˜̭(zk֫V={zmʡFo}*~P!^Qw澃6`,=2'\7/X3@es2yYYJ35WwEߥn-a;{(~Κgl = {1*;}GeG-}aà+Znl=aկ|HoXu'A(|W ڒ;3"=IDow[B r O--]eT@K{iR񹫡<4v%r]g| ]>J&h]ٴ= vm`lo׃%[m?sOwۯ bpMz*axio^9w (SdNKc?R*!feP#B<C9aНM?#46[]^)yq54_{ROu9\okΜcW@_�-8|EޕTƊ!a5뿴GQ47qY 8ћ|/)LB0lYAN.j3JEFVmɪV{SܥA}u Iq& ފnjKb~J0i'Qq/T,6xz~w'*q6i!?KA]BA HyclnsW"vFr]I!P#-k҆&v[~oTz6 mBѳ 9~KiLC^ kۋ 7}k=bdSE6yӛTP*긁p7.{n Sљ1 QZU=y43z3Zrad-GRR>j]#<2{-QYvvJջ8^ iuǻ~c͆jN+`<-T=z_Qi3U-r5%){w vVZR=MQrqj)9o=j|6~oSu&tXvggSiTKζu u/T&x^�ar# M*0:Uew/'Φš;04NJh<&^[Q| 2"=>xxK 5yG1uK :Cgb'f@?<2uuz Maztwޔw{ 4>_zeȺg_ E|_"":tUMgӴcbA@ix<W׃# ~]s؟XX[!M_%}b5IOXCS}rmRjYh]M!g*TJP)PsUqJW}</Y#/F<NC #[o`1V+RYW;+q5ph+O M@є+/3#:Mٚ q\c:7 NFKtly n\Bt̏{F]@WpԒB7*Q^ D8KM+>$b;>7X`EI8-OBqcnp7{t<E?c=?h(]#S%ej<֍yg(2UL: W'z/P6|gRrd+;\9hldv!3?Lw-kߑ6PʹDoYZJ:c~ԔkA) [ WC Oo1Ipۆ?V^Ye㯼CJ,¡#_¯#_ <ņ%'=[P@m:eד!b$zQ|Z:'qoES@?I{s\5=`V>_̐pQmvhDq!@ F&n`0eṲ̄AyJ塊gW'+A/M* z'GK^^?|# 5f "blȽiW"@W4-@r)xa0.FIة=1`~=4< zGNt"ITJYMyG=y�jדZopRt-\oC̣Z$|{6K}ډvl~CzKZ1F EQ3 v[`ϐ*yuv92*荦U1QY%E+w$1YPbNBwj3hnٷ*sU'&3h <dUL%Nmh^'A O׏v"兵Ug<;݇Am|2 =Ӑ־Bj@'L#U:SHًaj(z=)6.p"Gb-K"j,k;]eOGyo?@`>g9A{Dp +j2v_]Sxi[MEQ8Bʆqʬ}Ia  ^QBsg`.EN3 ]VY!j'!3(|0tǑq_@1e .4Ak#*U=/-BI^ O@pFi D|YB,;[ A ͪw jBNϸ*=�òA[|wf!K ݶ;AWiտ*aXSBCʠ W h"С wHnkA}j ^IOU%vTOy RI孑UQ~{*E{4##eI@R%w6H=¥y"/ecS]TF3'V,2"~ou&(?eilշ0ϠO3z!nWP{Cx]A$7o1{HR7ceσ9rE,ԥskѿTmTO~/([jG#)&fhS CzZwEk~\j s'30dU]Е|#)?kv=^ͪG|Fc@kF7Q6~ZPcKWK/n+w}PR|g4("waȕV6W,Nƍ(e5W?t)A#7'szZzy⎌.N)b-iZcd ƿ5Eg9Q[7 o9%g1pjcix7;b|wO.}e+fěH ?Qd(oaXB`Zuq\+D=;1p5kjc7^ [k=_q`k=؍c ʠ?pC޹ ܫl#^M(=[-x3yQ18g%A-' >@bUʂ΅-J9Z`&:^ٍJ!bY,h\AUy mNMiǨq2ڜ#9VJN"Īb&s׃γ˞DT/z Mzǽc {bQ|za]=ܒ dӊ~k"' Sk,5t7<]k6] %;8P1ՠ&:JG)߻n" ۯ叁֚a|jr h啿FdCLYw9؛%<N9 vљF&y ( ջ 08|S&7D80ex? ]=Z0\�f~\c32Au<2UL\ %sh=~$]2~$*z߄֮YWB[nq3*4/BM߽\_ ߞ1#邵<:/Dځ:& <E^sk =Rw5;TRS/>eS6zzeFhm:!z?޳d$ۂ`{G~y-qFjM݃ h{7s~Tf27]e9 cJ:`?:+KA{xiNF>~EFߥ¥v;9lf dgyQP\~%Gۀbԣ2Gd>-!A_pFPڸ[R@9Uh䐤+|[Ϊ& cl U#&gK-8cx9>L}ggڣvwAKWAPP?D@WN5esg`֯$kT0Ó]$]E�}I8$L%H9壷~xm!;诿̈K�Z&x~gG{`+ όZVG_Td\z'jq7̼gV}eﯴ6hQ]W/cN>2;CpQArQ.20UccqV`M![Z,fպ{ByҢf/N+yo7ho{0k$uY[W+$ jIB͋yOiwň kd8R&9T4{C̘`Bk^_X Rk+ݤH )eY炗=9A.N7Zjko9߿M/w*xpæ"/cQ*98i>0$TZCpnXX!w&r$\z",嶀napT }lssg*pօp 4h+MƾDxmes}e]?] O HxCEեe\yE%u=:# 6|c)g( y{ϒ1tuk>akQv$R.Ϊ0v' ]mGtH'E:F`ԣY(r=Q:f ;:%lE>׭1C5PBipnY{ZJXbS +[SbQQl:4'}C|+u,s?sħ C!ߊD^~AЇq:O@[uz8);`߃{n~) j5b(O8g/x?3'nj Hl5kS7ҟ:hЩNP$!'+ [A3tha5|GOg}0'fO]'GI]64Yuy_ku _׷y+ SG=ϥfESXk}4Qz@,_6(1< |66W"NGq,@.ja F#qN9Tӎ(bWF0"E@w PDEog=c^u.׬UJ|{r*;dլ/ qWo 9n;}>?(Axc7Џ\AUej=c؍.Yn` Mɂ|l?0rM>/вہw,`{)f2EkT\"+ˎbƟRvULjL~yz+cMcS+2x.ȶ15LjØ8lKޑQZٖv+Њ0hcvC0ڏ*R{D%=5+@f Qn*~K V_o;?3?Gf<a|ɡ3P >o᧢|0m@j:& XoǨ7s.~e/O{s~]w ?vn!i0e~Mw.Te}KDCaҺ`LN;zhO]{w) mifP➃<Ikİʽ.?՚Dv:B(RTAS9~e(o zO&?P~~qoOZTss`F @V4E'ۮPmE;- B n8|<E?#=#g5:ٕt08͘b͈:\csV`tM _eC%@t=z/Ld^jӀ 5 ۨ=�W~i#^q@Ÿ-Y惵d>#d)w10wbD#ۑ(|j6"BQLzZ"uR1_`8"6Z oH;e4Ѿ~]Hp!%صJcK3i`rln<_3-0]Yb﷬Unwf7/T*j,5Fyg2% lWRw(:͛ ,$<txl"-0KdQiQ!]>(֚5Pt1ݛ>˳x'y7.sy$c8צX &J"/N%-6<842Y};aᅳIWFǟA i]bb wX} zn. vEcDB'Q} e(px m2vhw~]6?1̒y YWgDpY+rG@攌wxϏlɽ`<8n8s)do-Dlqr/;<d[2^M1Uw&#c4ۨi/Jw|~WEPt[H 6֢1F^몑._0F-JWG{m?8[۵VNmsE6lSCVWR qqfb 2F~ZG(7 )/mϨr9ՂEtEZ:u5T@M8]9m(zlĒ{\wםUH7]qk+I7c ~ŧ<HژwS.v4v`w~ɗ玠Y;:XQ8,w}w9}/b5$<R3hpdX:ʊQ+\ UܻXcmqY}_m!mD$%0O7B[<7P )s/(%8Aױv z@HkO#Uʅ0Pkv5αN#ކ惘n?-^}9'7Шw֍tM 8}NL.} L2*{խڈ](>zĻn{}J$`@ =o蔔�#x!76F\N �ؚAdK_FU~ !d\CHmlCMUpno ̮]wg5_ZNVZTHoRN?W^!{.4mY"íR&#OjՕPR=%wf-&g1?l2<;z;8bz%ĥ!r5f j{ŅꔈopRU8Q tp.e-wb|CCqƹ:M]NFX k_O>~ď܆ɺCh6.qUIY-|&fݵvYNݐ(BrN^*3#滜=U Qxq)Mv&j]JzLٯ\y> CC2}AxhS)K rbf6Tct'(_b쏒[ (H;)c/aʿ�,6blq Ql -jEK|B@|{Й6/PƋeC8>h Քg[xmRv׍ˑ ~YߍEnMMgs8F.PˉXM im7Vن1G7ZJ`txA([˦3;x~D>z6} B`\h̎ 꿜^5}-%F`G.g =Yn^c\lLs1 n&N؂bt;"_:g>d{?D!#(*ZqgXTT3-$|O1EFre͌Ġ2E lŴx,+ӏPQ?/@u` / mp}0u4T=л OVphCQ.G~ sxTS ]Iq(z/ï?FMh@{ߣ]*P/PqMytSw2qɯBJQ; GQ7huXg20V(SaEŶjU˺9ׂ*t"?3oސDNBQ +3ܗ߼1߫P\|q=7lCV •#NkvHgl-_~],csϦfO=rtBQ.ۦ`ug 0ۣ]V{R1(4(aukdi\Іj`)<V[m<D0 W0V!ȐEO˙rѮzb\4v9s co@o>V *Db~2$yA. nc=-L1]^NQGd\tjRx& Ύ_€GXR1[<l(mѽa%2vP]NFɳTL:d+NΟu Rh RTQ`D6+ԡOm2hBOs1cנ34C³b=2q?N32h3Ys=UbU:;2}z bLWNF"(|izHg6pC]ț0[P#(S[p52Ǝl: +0EDo*XUCHz1rlLZ @,3A]$doB9DN F >偻(p[=-zone(㻤zG=x0_M}mX~c >e‘W(YqOPDc_]IZ1̹*bDє?Y=vk,wCnmqO%wT/'SW]_DZ,XOZ�]G 0>~А -(9kMzDNbdy_jcOĶ`͝*K[iC5erkφDؽiӤ  I0''tmqV;'d1Oԡ!|u)4]hP"l7ApU~j;3>"']5\?U!+G(狀 7ʁ:"t#+|.r`h"dŖўce(}_'=ģbVGu7NjhZ+}ߐ¾{@*_ СGC ػC|{=a[%0mΘ ?/%BpUzN"IlgAu_)'|Gb8QZ bu�f7Bv"4KeGx˼E)V<2$9:<4DKY0o K%GQ=`bF!甚lXL Ix~?"ΓHR)Fڢ_ށy*1V\B.+LxI*&d7jIAj`ZLWU^_`k]T=asp3JZFՑ|[;$ ;|-�@a`Ѓ74p�ó7in$oR2buj�}R H'^ٹ#ϯz%zcȗsQw)@Fe(UMvX8F/_2]On'$*μ&#>>9ЊTtERN)%wu(lUBͿ^ "m慦j*̺rэ轰jb㎢b'L0NW5?f3BQ�?;߹\QCtk#ImZV1\rVv�>yco'e1~(Ra_o8Gn헇@]~^IMYߠu]"Z\?Kh<x< 'ҽ( ,k4̐b8]S] Q%=B0){,Z@u'ȷr}3N.EۈXެHrjy={V0ꚅd?|\tmWWI`1c3saγYVCԷw::Ku2@fSЛw gLU Up"_i=&<8uԋRiPȮey@=sqnMwZ~؝];#ibn7- nWrDI/shu):W55@h﷟9 ql]F*$)U8:WZ3~Q7O(ϻAx85P9qT7*w9V1.̓}SRHnm9WI(4:Cm_p$F[L@#-S9IO;& fJIC'ˣaI?EG\M[8D'u:Pp+ C$,,>e)^wLt zXHHF\Qfo`\6$Q}+@;Rl8̠.0^dCCZy0wUɟ Anل܍h|qV|rLTf_m�)#Tns͎<dv?gK(/Sh"fm  t?a Q_>OxT/(ar?IID5{>ryDJ[ v"-6~J a_$,*Vu_ڲ*˨6A<K;*k 1~wJgݢeimP3Dj|Յ)Ȗ5+ì{e;o)| z ۬U! @z57 ov\:ij?Ä1Py�Б5v><EQ܂3W t^ه6$í(wt\ 3ꏃzfz 8)֫dpZqAH=+}A}Q .0&Ԇqn'H"zn[X}ڻyי(˓f7u@Rd_ 9(J+iVgo(B>1CsV)i^'7Yr (OV Q?]˟U:[K/Q뎩b?D Qt"r⫭(sr ^N@Efo\粡>=b IYrZu3D?q;<ePF6yoA񧈂;ˠK?QKLy|\Oм-.>9w x+FGߢJd.<Va@U&(/Nɣʂt2KpQb4{y oeaQׅ2sT=J}69?Ϡ yʔ{@zz={[>KG&l~ r|=(U/-ձk(w@o?d.?I>N<;βϿ\EL&o9Zd|vrv+"^]s%cJAW$'ְInC1]̥�0t6Dj!俟1rW*Itsqz ǍDΕsH5~QD71\qpqh!Cs+tnJˍǺo0.'߱jHMWJ/,/?@fNj e(t߅nа*V-%[lf rIn3hֿx{EkT0(߭]WEel";'OW߳FP.K<~% fRWnɩa;0 Zv]i~4z%ɵ[k#h&\4u/G8-Y WVm]_WET|%('stNR`!EV, cGP_EKw@P/lFAuOL+LpGǑ3l!ތB|uX'lGxAj{N+ދ` shN⚿Gpΐ՜n@>bnK+KmDSޟJ};C}V0)M ͡Vڵ躢J9MF Pz�ͯ]خNӆѸtou&i(P�9sx`qA' !|[&`_Hr/)W,H0Z͖n&E:O3'a(~'?CjOKz_7{V澢LޡLR@lYs}1MFowi?EGm%x`ˁH3ixҀjڠ&"<ao ρa]*Iua&SQcs-w6ܵjR "rvgO35rC:M;$,V`ħuĘboX m'{d}Wey$jG._Q,ݰeBaCjo&j`Hϟ"<, :%7^ _Hg> ^Cvyc'WvI xYR Jݭ2ݠ WSK#o{$: oPts]_Z.B_Th2ds%i˞'c!hYU7vv/:1+Ȋ_%`ṶB_0V=%>z\^rYv|)WTN<B):o$un%bnw[̊?5kdQXΩQ0@jIS{ |Y0E̞N5U5Pm*r% =QFwU;HLCE0evr{ عs;hE󀙓pK+(KeM4l YtlV<D d-Jak}gܻ扑$U [HGޫm$oC}6ICʢIBɒ"L~|^uT_)g&#N]eYӇbdo#$ݵ943'@ !qr}l:/*Jd?cB %q y_;r�kPMU�z>,9FMuץ9WyO-!A M?/;1xII>K|%8K8|OF[B~;"\/z1Bs83az #'m' 曗)@wpo{{HuZD[h㏼OxHG=bʷV|6jO:rr)Q%<a'[QƑ,^>čX_dsn^??Gaʀyf^z4{k7 !rF[1}"k;Дn8$=4݉l ǖID6iy{SZe(�Egƃkw `'0 r#QV^+FWL(Vޫ OuAHr>B?ϳG-b8rp�~L7/zM係W.U&D9z~iM-0~X:ke 4M(@|uS9t|) gs$ނF3RS#`7:WAfǮL}xtǞs[ATdT2\˓8ԋ7\PB.<$ $"O"%G6$"Ey0u 3VH ECOM3&@m}L[[`0I^>rUfqF4#Ű-;õAyȄO{2-{> 3m1[-tI)*P=z#e<_͟ An9|"p.-z=؁E(NN6>M~Je0Jy:mnA>ny#${/c/Fh]@?q: .,=H5MG/a'8+W@՞X"/) *m jb1X@Q_[za?[|vU븒a%ho*Ϗ>kF-Aף\Ո _rEcɣQ$u|"_ojVM ȣB˕Tk _n趭^ JI݃_eif_EZpF{[n4ytRnB{sܪ1-aA g Y'VQJobZu)-ƳE ?+-$u!zr V?+Rn:_YE'Ļm`ttm "/H_EAO{; h>8~G{-!,G ~uq0KT` > 1ea}S!$E_(ݵxd߰%M,ILֶn?({lAY>eو6_71 o0lnȽCyAws}.ԋ.B__("I%/;YEFXfm1bH 7gN"l_=jbn4[ŝ@Es^pESQRx4 9Ӏ֣բ` xM-vw 8dPnv-\@orH\j܂! ?V`w}!d 8/54ܴ7ёM DG[Ȼz'Ф~z`ԅg+gw :}[0=ܭ֔\%#2J;URRcv@,'yӂ{7磇1?e3 /~ca|J=ܜE   mg@*;t.#AEt_%t tc`'/T2dJ'N<;$FAO ڌ]G I6r5͝{;_zDn\̓Vd.?iǀ!?czVg6eK ]2ݮ"9!?bIu,D:!>I`Ӷ({~տoKߍz49] C,2|"C:sKA4\1-su(a<$<Waql]BGWNbE/r3%@^ ?;G~5˫wr r~[ t_VHW3f?M=խ pVM+q0F=N{:ɘ5B A}894JI GCfDb OkO/>_kM 1!X| u'<>::/ :tz:<0vy><Ƀ7Fv[$x0w~6xCR,D1 #WAgb߃bE:P[>qwQ R<ƮЫm$)o8=<@3\{@=jkQꛀ<7ޟ}/ikNCZq@Vn^~zghTZ?_0vg $wր&$4'׭xBNf%bOEo07Pj{#U%4\g + ξq^DE`Dzݓ89n݃$}; *@o-E3V D$&nʣ.!A"A3pv}tw,rӤ_Ģ-\?5'#boh@zq _V|7cYfr 4U!kչF]Ut,:6#8IG? tOOA߮s=ZE8frt�_ןBoksY勃 K@ҽ$@oP?gsa0R=/5ucMVSOu,z.s#ytsOkPw كAUu-5CK6FS>a%{_xk%;1Y~�[j*|GTŴvF~ uvܲ<n*^?Qo3 o@O{%ԉ(CE{w?=EwAw:RB_SNn܄RG<@40{d^%*H=ızf_NaLm}QB#u:Vs j9υ&_Kf"wGWI%HHPhO\tLvl^Dy~{Q] 3 X?Gs%@n>X'Yk=�@HOQ( ꀇsHGZmq-/kn([1RqTIIElyn£_Z1-?ʞy 可%-"9Eb:r"'X­^oA~qgmrY5g-18qh$Zn(8M'C>pWLYu_pXX%ef lCfǷ�}+gQb8 2;Ɂ(z s6<@~|Tn]fW_u/*[GaN]^s5pDam/Mf])Dټx8H!_tw)PewlDŵҕkc֡+s#Y_^RנX_u9,f d>rh RMo[VT?\Q$T%^>$8XuC[8AעӉ=u7LѝKy|ۼm(9I,9gw-%Ol{&މ39q'Fɺ\" o>GGhκ]4+n(lg.m[r@/-m䞛eQPL:B0G*R \ĠtSP./uIp${w ~By9(W,W"xUZq ꅇEF`Ĺh=$j D9O2-n@7G*0qTsWi3٢0Rۓ ̈:zD%m4ԸÝ1ki)jAܮ T*~f4Ch /Rg?$"1);ty4Yy[WP#+ +!{}κǥ73s'g *ˎ^p ?l[05LVPzޮڻ˩65�6m:h-m&VyŌ*C-MKKV|֥sozf0yn6<r}}&Ƭ} FKX9~5s oOeFիJ'ޣt|_LBÆG1^=hܹ G *sm$Pw{T$}e J'ZC>GјwbײFVdA$ʺ*" {:TQ%@CLzwڂT@L �s˧WвBm7FOwLT>|TVw;jo F0!Om9:-(* ł'@=XjtXhI a=ѳQ&�;Ec(Oa /<tn.I!nDsoj=<L2Aݼ}ϝO(;'QfthTJ\5Kl@g$~A$=5~'9ҡ `<uY@Dp ^Y 䔩g_�Jo'-0G0=scYԅ!IX_6'!3\ݚj>&Yat<Ύ=:=>"A|bWN6;b|EsCցR3w<8-.Pee)/z6Rۑᬨ3y.F/>rjkǺвL[AI{Hʵg7j:3ΦH0=` I=@jΰnyj/Rd"a|<n#A/ҧK856լvɩFEV3$RTn>`| xT~Gsϯa4/'} WTh;Fn>R4ڃ"5q~T_g?b0pj nZo JKƦsCSV+Q{)F}GhDWSnF=?WQ_]P^kxuŹri6VixhHk$rU-9\D3_k0-ŚE崝&up IسYqm*L͝W#TĘ R yKBtf\c1ZT'0*6%ńJFdز;seLQ; jGrAfk(6Lu E\SK2Ԑǥn: T#)He?pw?] a3>Flh9D} >~߈Fqb^zdhvġY9ҫtN؋ Qcw9==ß>ד>U<([\@M 4/'wA Û9=-e*uR ^qU܁,Jd}g@r<¤m}U|ܣ!NOĹnZ?i19܄ְ^豑YsƲ96`\|l☀~[{|Ij1J*,MڎҽW,"IQ '퉟[I} } swG kz.R47Qi3@7Ke]GmE5c\?OWw뭯eȉlu'ߔh ;H&:M)u?t"TI?:~s:IIjNlOG?Y]~WZ=luuZ>uڦ?\/y�Fv9$Ry7Qף4>.S+?7׏4U&:JQS|-ZdԔ5(8/_/&\rC'?xn[+_Tx:!RF-Pvoo<-Acݲ@“=Q ʂpZ<nQ?_;0HUݥPV ބRbP]Fޔ/J $!E}53^Jӷ.} P3`W�I<H EPK W#ن_kwo(�]24=Ok: O٣C9ZRYĄ+]<4M7d,ofƢh֘ th oxFt$%ć)y4+q-jKû@<Z6JqΛXUb&&^n3S219ƈ?uV/F}?p-z&{4l$ZkW:RE5?2>Z~*j%`0RSH8NҤu;*pLDSpMzd~1= ճNL]v}msEkb ;#ЙwCt}:>גAsre;^}s26\k;~O. ż1pFsP:x1H[2-:Nn]O?ck [O=uE\G5>f`Y~3SļHxm>Bwy”@W£LV(̙eGp{ou;o}C[Oy0aNκ;>RmM š/Ԛ;Ѷ]x"?Dqq/͜fڣ?Y+=>fX]TVIFP^0<w) meGǮwJ 1Û]c9<c\'P&-״Wp8H|wFD8f7z1&)46.> Qi^Q40,A _3GL6wTO4{޳P/4IN=~SCxulB 7D˷o~ς ڪ$w- !tIA` SȆ#L[0mRKA .DŽ/C{W.5J8aIP~h W׻z΀9`Z)<041hzfԏͯǛzBoLL3>>s*Hʊ7^Ffť Y/8-8\5碱JL{e=QNG^"eOYGXz*LޥlfH|3/﵀GyRa8-$BBE T*J"%BE2Zd){{q}&!{޿A9|>}]GH|b.~cYyC|]wX3[jE*6K;zs H\l΁f*y7=O<肸?q̠~N\\p�Lw哶r x^us6/nX*@#Նʰţj -<~u.O Fr i79׷(=VSmOu@51 $A[~$r٩vJ}tp BF@ii+h+?6Lq49F8B 4uNÌՉ]4(<ƍ14P7J?rP=)i(e'΁ڞV5L|XtsPaz+O!yk(فVwe+4vqX;E=P5- c"CB˔;{qCe(1w<@R{RKKNr-O: Ya*ܶK :<n[bd1YWh] {u8ʝgY8@=&T;U1(!,/ ?gxҧ>NK2v�(uoPQ`rnk>tTڝoI 5<e0p|82uԾٽ)b+7Q@U ShEnF eI+Yi4h(p-S&.yx|`<>l?$k4+qӃ f*@|YV&e-r?݌a*zj_ ^[dVH|? z꿀F͓2AyhǺ:XP`ZWj l?^Nw`_{O O #p2E^y^nzcDзNK ݰ:Ze.7?ɓGS|aE]S'~͇n?c:@R|W{F.vj1<R.c]&l-3NڷQoFPSJcБ!Qa͸ .3‚Ȕ<-ʎ^;L <%eO8\KOgEXS| \X\@2zAqQs32(j)(dch)[)SW `5X2uѦe߯9m+ŰW?XE5u μcH*uȌr-F?@HJY8h>Nь;#kSW <+5Łz]0z3[m@>ؿwl>4;dE#QS3}(ad\!&c>m`k4)\GBo#7[h_ ]"mQVN?=ZTwn6]ʼ,n8y@5 m)1?0]}C?|$˜L^/!i޺%v5"JLC@30Tu+0;Ýʡ]zʅ|䷊1z(g2!A:GxtVLxaq@QYQΏMIKo@:qZ}^/h!@56'I u^(/{%#>ޞ[ۏ!xt e Ngv뛑 vG޵P w|(~a' hO9OCzچo\(xR[eA?0~UT_sꓨ9s ~_A:'9V:/pãח7oH.cxyުDtb"o1(c#<GKl_GOP6HlŬ-ZG\@:C?Gm`4/?7ypzs£}o;83w&6QT |/A+4kKsRXٞY p feHQ$M?odNŋ^;q9<f,]ρj|h~hm? h4n<~ȋQDuBA6˘ÿ߇%cGB;zke2ĝSEçԐ=~Z'%ll:ٌ>MHejCvw)N@nQ۽<'d<zޏI|C;Ȭȃɋ?:*X ah:'+ \]4&_F#ՠRзx.1'QU|A1&>ٍ[;Csںe'9)d5m,Ome\hZO8T�ZGGPd){0Dw8"o#'ãP]ڗ)y.ߥZȦz wiz~'\/v=&>TuG,W< s= \scmg|O"VAȺlRtk&QґCGֿ[:@q_m}P|3C*0<O J,屮Kh#Uߠ,YF9Wo.rЇ'a0 Y+kʽBQl]tVʿv_ 3[.]h2?_ YmuK@?Tѵ+׋MꁪwaDE'(^.f!-eChO+zvv}.Hy +y+fqh$Wu9v[0>t WY'q]XkQ٢o9-݌e]`R }0a#w@|ce3bZ YŽcUDR1tsU"z2+`zBdDԾHX~Dq0PwBɂl0ٴXr VI`lE|ȡZԴ! _E.bISME9Z1xϽu 1e7@IjE:̅n 5z$nη Z5 <]{BK.U88 _P 5ݭtUzFezCx9*Q`qBtJ7� X7 GEPm~*F_~{Ēgܞ]>~YهWlݏh=Ob@,zd: +0 VIDsgBȏZSTm2uLzo(F.zt wNˁE`T7;x߁dDuA38Pm 'V _aF};dhŔם3П?0~8ؿcûA84 !#?tULzT r@灵a|JNP~ZY=k>\j%@~wKbX@L[RݩSt鑎{R6]<k@6Tƍj3ѥԣL;"0ݩ3/cVϽ):<QEš^H~n:wXxܪ>zHɇL4fFf-Vg+d9 ~uӣ?-PtT(d+e陗ȩDeZǨY}T$7q 3L&lVIᅴI;HٽQ�ӜۯCۏzұτiy?hǟFb^X~yb!4[MrC|@S #0Lw{u+C彨DG~e %c:J?ʫIFa >(\D)�Eĩ7; )[]LPl6Y'b̒S͐s?юD{\UZ9c)l7^`7ѽnDz`ߒs$ _2f7p=~|"~ffc8YHڏ @qrrg`hr;g|-(J"lic ~b!]gvU\@{։۠DǜB1=5?1+-H:-yT;r7ơMdJ}GsEՃ[̯*v?-GFꕢMjLAjR鿞B2C6UϪ=A{2(V[Nף̺F5Xʑs<xAa$ay_0gMNg 9$l�Rx= a"PiVT7_=N[%O aj }3_=u&T1 ޣ<W0n{813jW7Gㇿ7`vƨp0+2qjov(0=w'ȍ5`-93sY<S >LHE7xw߾(Go̡~jB;TM+nB@h_1(yF?otXf کS٠9Rxjy[К`,bݔYs)fo@#F mGKWK;qe'4.zA IK"m^;}eݦэ!siHwnkWr~H=Du-6y]LJ�=8yVKc/w5\vn-PTZzafEi=8arîmMC;A575 p]|>.~ 7":[0h4w{@>5u_RЧԟ~kmSƹ71YuD#һ+zp}Mͥtoy,GOW`B8+qHS0%zV\BԳIm); }? b5k!Hm&|P+$SoJ+Ȧo輈xZJ-A',*`4~GI2_~9#h'2 0.zgr4$0u{{7J '~Ȩ9w[t0rm=?UalɜAED6\vea,$'AYSA_:Hy z|D?z~ c`]tIFJO_ۖhVG` :7ۙA3r Hj]}cj"Y˒T�d3.ۂM(U<!czoC  >%cYGG&rKLZ]zgLQ+*(Our9's >F >x;WCD7¨_6Hjq$48%S2뜠8N=ҫ[W[w8z8&[ͭIi<Fa^pG;< $@ BMA9YGhHPqݧpa~( xUZև£(."~RD%EZT9-C?Sںǻ066#aZӥV[yFffc5I }%rstè2V LK|\?^suB`(I!6ЈۃB0p4|ԢmÕ3`us(zV51:_Z^IΎ\ݩ͗I*3e*2gb nlL >r=.(3X@y^Of[߱BL0Z(r+u{`ʯgz. PDLFFuf?dώ@6D8_Cb*?z`?ӤGѫ1 992tAL|P* 6k34Ho')ǤAtP?yY/_f7u˾ Г5#{%ၳ ^͸l7,@+H)K�}s9p*X(EKV׿V~z#K/@[b u)g^i$B! xXEMPDGbɥlHUf7N:6C.3ubeˉ=�e|c~3iALy۶I~2m[(YG) g4["ۛApB=\լdqձkd܊9[-J霿3{jd٦6 )㏷Ty~"iy~)y$)`o+7PʯuL5)9w6-ƙ0-mry쐇z]9ZI4uRY{"cPk*֖DGDZ܁֌X4|a/~8ɡ.5G/_YकrcaKu3:{Bp;"ނ)hu"GZ]dR G1HjTďiW߅.ͪpDٰJ #<G'c6Z:$.O?ŏo<- Է,?Am jϑC_C¿<~&pDF%M…hk0,uk ⨕s?:tܒqN-^cxؤo;`Cw=)|m=HG wBKW-U @njQ[6f|BMd'N(ҋ:AZ e2]T,2r`_)3-Ƽ_?fuWv̘=UFHLq4`u՘l::.K |K{|-TqLx*2d_-ғ~MAlm'CᥝBvxc;#&$Fx?ϧJ{kԷk&"ɦʽ[w}F0-$w\?)Ci9 U):�{F;!_1oa;OO9p6<߸ jk /6z#rjhߕ\ޕ.tЋ|ֶcpwSŮĀ<1LSS YC@1K|\N|A 1dioy?̞8%cƦ^-L+l`~'g@c^W9*L ן{~j_m}:oiUM  4 9QI,K1UCӎvMIVA<;xT 4w<\K1+xy'̝*=~l/uku%@='׏Rqԛ'PR)pte?<ނަk|hK#&i>羟0R?H3Qs|Wm{i_*gY,.6_Eݘ#V^v:{5(;Gk16xseF'9H9bBh!;nh99cv?6Fz g rVg.M(mŐ-~I-^:}q*e;xsa\;^Pz2iP1;LnaUŎ)ހ?fנ"gsÿzPK򡲰"'D ӄ'uACa[0$Z i=NQؗ #7D]-Hoδ HD,;\ 1Րn}L\9i}E̿Y31Zܷa^2^Tud!_*P֩%{'PE[Dd`O%US M4t#WH_TFט7~ȶɄH?yZj6c3_?.euFd ztbHjJjc⡭UD2kʂ`rMub\1x< kvwȪ5rJRlGMX0`&77]Y�}G'PKM1xaF%/$Sk;= +{`,׹˗*ǴؗǶ`t Sϰ$}{OEsfz#Οv615"֯=H%dSfSx߃'gtپ{Sg̓_[r>ۂ<ͷoYcƥ2 /Ͻ(jv=e)Uʦow^բ@ٸJAq^x[1 IUZDrh7֡-A;-a?.gzK͎_?P+R(t8Wuliuƨ{WGcy2Z; k=P.; ss!Fvrrt_Tfs#e'-BS$@p}4;Mu)^|o~}6$i- ⿵rt~]}65&~5T8 _o޸VlVQzuhKE#{?y"ιиm=%o`&tr?oc,S˝6If2˞]\N]C0a9. \|8҇Ohz8)6^ &;^$~"P\J8}ُa& Ȼ:@V 7nC|f:fE/lTD\6Ѻb}:ό'9BLTrFnݺWáCO0v3)5۲7n;03LV65Kf+iiȚ {8`䠌�kW _�5cJa)]udc [+/ᢟ"1sKn;`kU0kC]`+$ۇ|Km_TVk05mFE Ó/EAȹ+jb?C6Qɭ/LΡПVd|~tB7LT$@ A.b/v\´[w@ǹf6k:lү(=[,WGp~8__ XEc!sw$qc4]z046`Q~DTu3]q%L'r"#da,c*p.a׫&26Ƹ+-(8f"p vn [yk7C9o<"Ϝ,GZw%^abk&OeLH4s?%7AS&fN-jss+Tzko7ˆ֝21Ъԛ3CR F=H\)PpvܵبKrh{5OF/J#)⽙.zEv̜MpKaO6 +OSOړ<KΉJt/ڿ< v6m_=pKH /nnEfen5rOŠo~+x�71i#%<VE|a�]??Z+ g^x1߮Rky3O]ehmBtF!L^yo)3m_1C䩻0aVgM'P r1Z9 Zy .%e=P0b:c?|0y zs to|bA ! QẺsH& PRQXRzHDvfXrK1]XVpuD7v1Eي)wm+O�Ld/mI7y]|ׂAݿiiQ#N먅&4.E w)`t&;|u[[oFk[~̲79uZ7#[NyV/2_f.Ow9"2ӇM?41M`9Av`\g@"0FkNUhcx̥~М~ ?A1-=fvʍF�0I&rQ :K U- i!3-'5@Jup`\?Hxd{AU 1%AԻS &DR@O.-4\Y._+j9m@~辝uzLyLlBt'ËGXJyAy9K,D/3xz]jO;q]7Q;nȧ=~C{J\A߽?;3e&,@ѧͣ>U7t0 \0衦;u]f"yĖ[X4q:rtC,Ҡ2ee`zzdW4qr#qP˄ mnx52vfͽ?q`t(+0!jkGвiщPfPe=fH٠*ѹcnvHb@wA 1 .70'�9_JnPT˷ };_L/^<vvDw}.<|G,|aD;m<$ܚO1>o,&Y@N?) {Qi1uԎ c_Ŏ|,u,_}ƼFHbf.WMPza ev'e7z.zoKֻ޴{i7.lxlt5w*nč|@e+y ~ mv`p2\nߨ,bomݐΟV3*xk&!u<ƈwh 9<C>we^Xjh}aqL雍Y3hK4HٜSn-Tc&WEY_C yOCB܊<{fr:w~نqA۽W'zcSgy^e q\O"Fޒv:Lrv%^Enʪ_+N/J/zJ_㟪6~tŇ eI?]c5`Qү,ǑP;WZP1[g/r>eR+ǙܓO2eYz284_VFdM7FS۶ 5<# gǣy1d6 si{:&\Y'"U v~ W5@OH9Tca6&H~83I2adʫv$ _Dާm`p7l3]PYJWF˞2hj?3HUF]$;u߲:Dao7;T>Of |~iQvw9(Vڮ!NLP5>h&/ghb yՓU&~,1]⍚b!ܞT噄L�~'F!noPstA0*q OeF}fRN:̷mc{";fj{ď7>uX^(;y?ʽ+;@|2 g;0fvۂ|v )$" !&{Ō<xS2P~ׅ;%K)/X֮KCffCb%)y0Mߟ ojӃA7W`^c񉠿wKӳx3s5" ]ν}iiᢷ<-cB&{hp#Z5o%BvFs>A?/J]nI [6 QGjPq}6-$1n@ оZ_Whqx>=>1<,U +;o7#&ne?$yrw43(G]\ *©5hb-w\20K68pk4Ӛ=nmoD.W7kiaGQjtT_)1\<JɢЇ#\l .q A{7oFxtJJ0a(Wo߆11z_*  ?;)ցғ,)D46ߺ= ӵḊNF_Q%]Z>-aӦ #=YAu8B8\ޗnj^ilE:ds,W-?y'[O}U qDAߦ֋ Ә^UOZ9[1=tI,:b4^+Uh!& ~1"k _Ѿ\HЌjXk�SցԠv6-g݄"iӨ{=0c~:]zHf̛j[%Ȯ&^_W͊yhvmS!Hxjl)^ZyY$G#MRWi"dCc:>E[7Cp[ ʊ[{>$q&7??m~ 9nG#8Wh2)\|p /FyJKX-nBǛ#Pn sF DHq~ FYs{:$~)iI}<q]cОސ;9uP,WSyejA;n3͉N+ U89аA*DNb¢ʩ:f'8mѱ_ jҍQ,OVy^,&*R~h 3/ِ;}X\-{7%8 }/ {u70|k|>;At{:ӷGVִ*@/_GVރ%5tdj  XSAMA7W'4fg6`*qyN'Og#Y8$vp?9o#܎niL~ebwC8& ܉jbGhFM@5E3|BQϓpvY5HQ6;:JG8GEGj}-4m.{ $:߳ ^|ulQ@]b#F?ZUh�W*_vX[:0e+^y[\?ۅoCU>l滃bɧnpoL/gLuU/b }fp\4-.jXW<;QeՇ 2QMX2!2f?Y<m,.nDeQ*hN;b!T¹uZx?3-$1.{Pgon6q@O?]EӁ㳊MD (Jx^mFig[ >mL' T>Q k&فZ&1zb{вo? =CPɦv7=OZvfG̤UQ=j[H{E A=^ehQt"򗛟wܗ[F73٘LsOxQ ^7JymKyR]^ nkYI[nD֭PدUmg~oQQIiUAsY I`+ _pz1Ny;L_~3ƫul1 b89'__7Dɣ䦷Cn ;Őhm! q:m@e)>xu+ o==B +oP(i}< b񾧫P.Ž[\Ǥ>vvt|hnJjz9OH}//v߁|ڛ=GT{ jH/w.= QB^an&4N)A 7yP{|3]?^.7_Pp~C>ZpKb<ߥGcz>|i>eݦ;6B$׺MHO" J11sI۴J> y\#a9A|TF\b{>)JX@-x_d6"vj[2ӂ) ;+M?za޻+A 6?�E׆#ߊS{3mc9 Ģ dKPg~3z lCB*z"Q=ٳy~5G^Qۄ1:NS5{R j*.D ~|V9'$^E1 TE5NZo530eGyҝwˠL28w3)><L�mt4|~[/ `"Reo Pq.׃Ze7wY>}bJ< tAQq1;be B5bF ۖ@~FX%0_¸iGO#YC`<#V D^BI] gsA^Z a|Ԝz¶ PH9_o!]`[-9O2fk>2f}Lߟ<CP((go>5kS_} )j,eHepXJQgߋ[ qX˃HP|ӏv{/bOc]FFk  v5f(v[W, hB8*[ mP<ڂNs``uƘIAwۣcAUǰLTl7]9]?#6\ySZ[b/Vsx>(9嘶R;q{vWډd(ZKTMAPh^h܅ʍ̲@v ?@SieoFFܖFDSOzw1 8mcrIf�L>2MiKIPhqZ@{9w<hj'1<.:yr@zK)Ï';2.*\ b@AP5E\:0 X5C2qsf _CrE 3[;L@=,.xM@vnr__FڷԦYQ9[,I'G-ԡ2NvJ8& 3t]C9/dLJVe{}^Sd|:{ ;T GDר<f3 ygD?~TC^}g&K19oډ bXz [4P*x(`'<δ'F)^D#.ލM /"C`jZ _÷A G X}'r9 &">6OƵjaƜr=F̂h$={ـ `A=I2P㝢i�~E]ȇ IV,-kWCB-M/>Ρ(hUE7R91]Eeq᝾ ԜHXMV9]0]N([z+wK!`*ƒkћbWe}gBK_9 +W ^뻥yNJQ�գi =޸zTEkȴ!=n]wt<(}TdY( 9,˼'1PG#WS oU՜+E=I9;U Btvxh)?Py˗"PE?�gH6W.rҋ7Bܽ=;E au2J co1nhgޝoFY a2U*h {1]G^ robA?˞7P)\Ɛ*N S_ A+odqSPaVwF\FV%ÊPjwAJ{UE$YGP~7`d~ɞSpc ՃUw}qh[׿.D&y砻k $T7zzBvv3u^ p+>qG7}K޴ۗ=(&>(sJa_|5[!jr,q,v^MHN8tpfs ǽBMMėJKZ@4}Ąra[ ?m%5Rz}RS"D_IV+<^|ۿ%}&&}zDS׫h|ӹӆO`⁊y Ե>_sPcSu 'WQqJBn?xrq6gAp MBYw(ԓEE[F hXSB9^h /ݩzo?(GK@yP=g(hV vUHfCeK;vWI9ч381iq~-ZXG"ϥzyun[9ߡ]g)DAݽ(\kJfCzW4W/pMz4?T:>w̓E6IzL)r)A;0[u# '|lAn][P+YAgS_xdXq$£f ?s!zWPNԅJ<Gaߟ#U]) = _0>Yn9Lw^/'b=Ig16be/;D쟪'͞x zLo-IKJq1Ќ\(ϝ/ne5s:eMku#,Ob$8hZ ĸAj >4uڲ ,֞F!mS/iS;;1#jO3*O +ƮfmՎ}Lɜ"]3 BvJ5嵕Y=LlSm0A ņki}k6ENk8htcN2>apOjPT!zs( ]D9Nӕn)ILDل *h)mEY븫>7KPz˨6b %+W6䤂~|IP/Qve7a9w% 'tNjZ;trی^0`-K{gZbd/F:B~WD}c ;&7HSV9%=pueCLjazq5__>b?dmќ}w?/+ oڮ{nbgQK(fK &BUQWc7X0$i6L*Bʭ %Y =~rg|Wh�uz:ysd Wea%^ zA?Hb/ZiT gOKa:wS_Ns(-˱5MU>_7SW.56w_guŘ^;4/Ϙak|.X|uE?Y|y Y[|ruLe&:%AyyYڧ[]\4[4^+cݓ<(cp86 JkːʜM#C'28*bw^᫆j-P/uv]a6wyƲ)*$a?# qþ/xrx* *-6`R zFPO }2HT*7KhtlC#WL۹A(*)'h]{g#ƹ[g0λhM;k?XPX@COc@oʼnj#hvn5xrX-jDDz[fYJ=vCOS~L( ٯa6 r7QF*s{ǷZA ~kXj6 '4D?Yn RƷuBѶa]VJbN=l<j6x>D)RH>qփH-^d"G:1b"7sM*fz v0 zCY~3T1e/Hb82Mc8cɑΦ;euSt L\'נݹEU#3o\>!*r#U#z üm'6UwWP7ݟTa0Vɉ^ჩH[K4ʬ7[iE=s{Pzq%H}1C]/VjMz^ q�uDl~< <;O<c9mZF[߭c ~,Ki[G67,|^..Z7G`ɨ6=>٥]O`IҪj5?6KZ٩ݚ2.nGONaz!P(|>m2jva#&[*3md߱=B?#s2Ͼ`cC^7~qN'`_h\Ls(x>p9r{vOw# X^oFkPYve਻L+?(̙:M`]9Ñ# E;xc$t'1<'Y^=]6I%,49\4Ց'}_僻iҋ׷g,A٥@St"6ޓR^>ycQ%ɴn/=c1VdYF}?l@&%J 1u{}^J?B[fK-Rfk2@AenYƀ(3ԭ&Q0~Oc 1O[ylz PSnh: I^euIGw1cuF_ڤz08Lbh=<A3mA?trxC#jA&ъPծ붠<Wn.9}R ׺ 㺊6{њ Y/*1Pi*QbS.W ڶL@g} # KCwksZ@yi0΂qo¼hn7+3:e,$KXmH{~] 5O 2!Mf )kM9$&Q TF8YU x_T&\ >NY>2zOQr *VnDBS5*ѦJdO8炖e7OMFv%LjC0a?ye-m99,tШthtӃđF4㲚1 4FM R 7}ԲH5y�l:)V_e;:џOmFAZۊiZtt:mYǘw2WJ[ArJgd*}όl+I>z6u-ȁjpAD ͷ@/uy><6&ҥ$l2)݀ (vMP[D%cĕ@yauKj'28QWq i? rQG --A %vb$iEPY}yh)x:?tF^|:Nsu_l2W^]zɜ)WL@TlU o10)҇MJ0])2-ڢTQ!$xʤcCB|L I?8KEI7Dw@֦vPcNڻqOAuo/2!<WK!'r}33!bbeq0DЛ?Dc CG$m4G^^6P<^g?ξqSrh;y Qw s8 P4QVW>bfx3ʮVlnepgydڧ>(~p<fJCTd)|̇U1&~rg4u+GӹĮm xe[ލcI@0~.Գ~ᵜvẄOM�-.ݏ-nڛ)GS1YKETdl>< F~~(لQ)QZ9{mvm6u5؂\dt$$^ɉ|o6-rq\گ~X~3f~XE>|"YVBs)k ҈CDB +ci"Xn@e1TgAsZ* OglA~)'+5rm4O]+2*XQڭV4CAsfOlԝ.lL+A& ڄŋ"tzT%mZz3/?5n@z&Lv a¤h'�*W|6Tc .Kdp/:౦m6Kz"u&׃7[=dxݟKhS7H=QFqS֒:KLWڄ9ON,w1)Ua^Jhl@^uOVf輸J<Mr/5Y1je LgNA,[&4,}-mu#kNY@aQ/ zTkQk\ׄFi[/3nkЩ*/L #3)IolwۢIt@fLO7+}yKv`@&J\:,jLcBjf~fZ㕢A}?FyOHŀ.ve{]h#ԡʁQWsHH6M%wVO(xC}oo W: F4Aß}{܆RPoնDn,PRL#ȳx.ȤBFC'k5:8J*6$YS߰#+6$6{wvZo3,qz2Z@>H&&-wpdzn/"lo@8qF&6r`Ƙ~1*(Ӵ1ޗe VrvFzCx '~{3/w^STSDjN\ةqo5'|A 9i/0ޱ$R}u ieQqIcdhN0}4LDK/WϠ7\Q-)P9ּAzT.zt>> ȏ4cϗCU[� K>.Fb*mM/ @B'@SBi\w�ɹunǿI[PݛrB30|T^Cnnޭޅ p[3Ioš ]qD1|]PlkګJv3I/5u:54G[{(NT@e64*԰K &/-4m/;_s Ս% O7{+ IhǦKaPJ�ᔉW9,K1dⴋw޹*v T~禥7#k]�ͻHI@Ja]! aP>}dlc2?@k=ؖp &Hw#zSS{ym{dϤ:=7aeԞ5ch[#|wmZF/x7tYP*,z@5sbts~Yo2-G0rS)9:«P=AYi5g2~Q*:ZA1zיhAg_NIWnWIfOGW7E %0?17$}ۆQ^ӫwR(:� mu&=6RX|[761M[~ EAzrE[f6Eh!;( ؄dq7PPw3ht`(7kk"#jmkxA]7H>1ZE)HIՋƆZ/f t$p`HA,~3Dڙʠk:bhOTl@N>3Z3}|vSV,%hIl[k}rER7I·4$t71ՙ *A"6(�m( wGT\i%zuRh5э+>=CH~F%9GW ~jAuw *w%w_ٳ|3P0^K z[=E׿ d,糜 WCB"#~ѩс=q{dzϐG DjpkNZqv=P$%SyOu©^,UO0t1岈A]\ >GOpAq/o;+?zF b둡Z}iWui[W4>.Y;J: b7l-e Rv :`K>ԼWδa7Ys̼Ržg+L2xuFTҼ{cAZN1y[1fi[3|zmHdz@5'|4�JhqeBFA7ˣlh=#t ](qfFcAT ow[SwK⼏DAkZo\ D}E-\�y0i  Gش>xhe FY|M_ SlDq\I;1Ưzu/Ó>^B;\b U2iUv irfm 'exK|oz(g'DĭXLI~Hsy҆Octk OJ @W+4:|A?'| {e^YTa}߇ѭRAgv/lC=F)KοިjԜ}; [GPP'{ ̗L0!Ųd B~:}z'`2Ċk5Y%C L c?6KyΠ w�7i]@eX ,뮣ԟ'Q7F_v \TNH&G&|:ų_6ll;P){mV wb(\D8*Q XR.b !}^i4\̯Sy/m~йqO#ϥW7'+<<Aw6-5k?SAH7oۜ<#rb S"<ڝ@9d S:I<E/^:i9\{"&K{ h̜za㻯R!O|h9<ُ7{^xVw1Jc db ֣A!϶�cr;]֣w`\=۳* p]ٸV[Z3/PHAدʎsw2/Pvd7I7Do`!p*xz/V>h]fYa(45mtJ7(z+ 0ko`prhY({~ăkӥ3*" -.)Qq/N|F=o푵o(x0etVqdEo+K3lz';2znL`q$:&zRB}]-%~ AGNA]Liow ESJv@.5E4j;fiO)~v$yӧ]q5SOGP ]E*nE']Hp@̕R7M-yR!x F|TPw|5ǁ"T3=) 霙 ߺ{#Bm,H54FAT[3wNF!@IkmuIbě*=~ 4:S$ptcC+㑝9Zxzn7~:0ۊ|}MYET3pK}}zP]q΍:#AhFqaqɁ(VL_lj=zW?"^Eܣ~R]&sCgdkYG9k(ƺ ]ѕA%П،ɺG\<#VE!cIz,ګ_KLTvh׸NTqfcYCڈsl_XՏ@⎻eL~[oPZ_͠LQL ]Q*kMQM+|hلg14gFJ{0jWT<]Avn:3P΍y᷋G0#6Չm~OA rF[r?F=;<ϡ h"Ij@]xKŨ [ݤuʷC{bD\u�Šb6 >y#,cE9x> ꨖ})eD˭zzĂWJR՘akG�quϖԬ/<kv$=fbo|2l3? ~ �'{;7�|ȵT82|oAO\@Yekwe{LJC7;i7dၟm a74:'^D^ձw-۴>eK^Ku0GP.-HS Il'r=M-m1P:k;zmi_̥QumL֍t࿅)46B)tC[5APtL9k2i;к8Bc� \hB8y:ġdbp4靉= څ?Y^<p coYԏ!lyWpv݆Aðο S~ U`)dzBIХ -\Z}Ag^sVO]~ 7#cF?Ҙ?5|*ǝ:ڎt%Rw<%mJ<@̊FF[`\)%ڒ( An,W)Ŭ$n{U} /~}@؆c<-mAˋsQ K)0f1ITha- Kpu6[ 7#Mt<uEvw,ri0tk~@-5o<Yc<ε@g))) f7ߥaC?^ !;-/Qz0XiKrMvuɍD$fSYV:H9ۉ0w)c$9cזS`iX({@~1+豓Fr#Ӊej\JaYFQ dZ4w J8Ĩ͌%8+9,a$8u8.EQ;-C:#U $ M=?Vk3Dg;zoM_zP? ؽǴĭ*EUьDEf)P Ieďܼp ^pbDC&>KӖa٦۩(d#�"m>SNkU[2>9'dFY38n߃ڪv:Hg&e, h"C!T'&2+0fk#/-}v V,f=y7v5r HIƄ- ˦SKTS ڈǝK-p[Ó2b@63|bM5uM&-&^ d0i:㼏<΃?3qNO/5Y0fב$M5diN_D:m9ot_qen #B|+77|Bqk(ƽ|Ug�D~s$*\/fi2r&7 Y e ecS@hhgϚ*"C1ye]XU:- ?4؀zֻ~(SqOd $PM/G3B2^vLE2AM e+ݘ<{ + ?|l,*g^jIF߳&oLI :.95Ky.}-VE~?CJl$1u=Rz_Dٍ3|LW:O*cojfdq |1\@41evfTuxy iɜ;cf*=߯M?/\*e-&}@[P8-<?ATs+AɉʣQy 5n3Œ_-Nb]6ƜxBn2c6{f5[xAkAsgL'EvE@ƬNF<iv/Dދ4�ХOnr}1D)7(5e JTń`4ѵ43:&ϣM2ci*!C%i9DA￘,Lo3缷C\ۭCAKl?Xb$i5Uj "ߣp*u%v~- %fyF y͍9yaTcWԞAu^.ޏ ST`<ԡpsE虻Zޔ U,y)v$4O7eJhtڳAfSDׁ֠%g^%hoz=hfÝ_wP`b(ѱa&RlS?@|p\ȟS1h۸y'Lo+D>Q5)"o|Ss&5/x'6mv**`c7Ggsbb],>}j3dPחw |=SQEJEUӟ"xfL(~PB70zeH:9Sťjavs$F%$5ǴӥSWbwK$)Fu򺰡PgZgBS?/Oc:(><OjcH0fZ_ /OKː#{90b̛i ޓ>Ap|`oA1>%yk"1x|k$LT/~5TDVow7>zs؃V2Z5GF-< R*Q7qa&{/7$)}k`OBwZ(jmqs*9QcӽW Y&iS!8W^n4,wLEI.ʽmc٬)Gl;|4#n;@_'r%u%u43i`xa2jmA]ʒ &R;A(2\hG<( =>0 ۤC1lI{#xH?Ox]f2S?yt 41qz&1\)Q }vsX:FAm2yRk=S9I<oyN>ڏ^+AA 3w'4LXxoƔNƺ[pt{^h&:CT ܶ_F1̼~Ƥ֕x|AKS/wPHa�4MT>x1Kb5wks|܁v . -$FkqRŇ yoˆ UMة(h`oOrlCϡ"13HA=m_j@reݏ0i@lᯠ-sA-@NU!q jQ3= @6Jwb. zņө?{ev-#wP'szY(PcNՏ96-Gn d#x1ӥ- H 0ש c:;{AR2|}?}Y}m(x.VoYr~3ϵ5߂0!֫WPu#~'Pv6WdQ&6 efcz*+<agzγ^+$cpϒ�zsnɼʯKwq{ Ep@%Ff'1RI}F lv n\j祀i3WXW sc~[h,?FzOȁRs wK�xjF {T0>\Jr.6Ɓvr r;ZQuk'/`Eevc̃Idߍb4C ]'~d[,ǣ,e6&PV*rz>E|HB>ƒkPׅw`̗V'(ٕ&y`ksQ̬>[_懗^b M:*w yx)~8u1x*cI('pp wHoDyDG>A4)DHK/3e&qsUNE;^xGB^*u7aXg|hWe1[TWT\wZڃo~f^Þj!ҩY\UqЌEF 0i.>}_V$N-A(z/+r{iΣFR'QÝ}+0~:!.s+aгXjT Mu/eB}/jq.yxj[#>Vwrr#ZO^8— lY<x)̣^Zw9UWCGAMح@Hksyޯ 93Bhaa; Ld ðu]#Iˀ 7<m*A߆'iuP]蜠BK9HDѹ T(H˜<@JYRɰa(/If^?>L�oM!P.qz| EsPVB ʽE}/`|iI+HgM)!?edYd UyC0CP튗}hr߸:LD0+n|ʥpǙ#-fK@+F7ƂZ[bA\0}c?[ @y͖Qcw^K8ٳg:v7}~_՛_ul_qO1?45-%uf{쁶gb@ꡢu($Fn`DUb52=W/g:tck{#@ⵞ3-<UO'`CWVh{V}5Тw!tn6;'<W|.olf ܦM\g-}DInW{ٝ[+!12H/uphVҶąNG)ITݍֿ#-;y1}eU1HۂOlf:6G{_:5Թ~ *9wMA4E|ﭿ1{i)芮\LQstRmZ:y#x4l>ɿ3]Þmx06tZ%;4k)Ӱ )D9G"(9`<*E6E mܑ3UY8U'HL 6 )2S ruɭ|o[}(6G֥O%;ŗ\0\͒>},_f_i;}t?A՗ۛZ&BZԛRk M@٥<2]k9LW# zws;6-|ͅ<! 2;kO`+e?OQ4@[/4Yw1'6 H oqT'$01r{{F+&1ys\]f֠80{*jE)cK}KlaWփn29Ny>A^.IS{y,fp_ iPV*06~2v?Ǡ]%h7mN+sTx5}^z'cZkOtO}ᅢ @TYmlDzox78<˅?Ucr}0w?'ɀx)^V*jϸ6i俖 l G^ s?:"o㬿 ?E 05]ƭg ۏt]v}[2L*c:d)4yl fGߏ=WP"<q޺z_;kq35U,P!mc Y\ q;UΦŷO*A?m y]v5$PϏ`gE1g0;`&*sOp(-RtgxTP//RˣyU3_==ؾ;stK0|˧Чvp 3/ Rk0p2m1frus@K0z yq\DswLVW'p3XK?Q/!ȹ5JDe}d7|};(An U^�BH#Oa x٤KN_?/FyVG e j}94yo dD& KhωK1!yfSlcnlcaW^ jL; 1zdB"@L.Y,7/Σփ`>9R/~Erw]/,Y,}k"ҠR3Cv[/h*nCADž(ZY<q% RVvRTjkA%!mS1*B ^v7F|.&`7οӅhiҫ^)�*6zC $uȻ@2ktDlQ\YxefFvIi]($ho4DPTR)I{s̳%RF_˥߯W#Fptͧ.z:$#<ݔmLWŁ<a6$7ͮo e K^zҬH]>.*nsc}&@R y1N]P& ;`Xxja̎5Vv(]ǒW֢U zSZ.^Mq-RBE|ZiPX-dGlO�n4Y$VwkӚJ(;xkJNH5%<kD -`InQ@&}6g\64b);^|kO%OW.CRހY1G1pH!vU-Jl_A;ph ܓQYqXm }y&_WMȌ` &׿æ"7ckQµkVjָOB�ݍ.;V_=^G|-JH:t#Sqb\ZU1jG?8=m0F=,!D~n؄ #ǩ8Ƴ#/?X"~[1[#r�\n;Nfe}-bԬ*எ>ǚf"7ZO\Az?(qL6};-b<{&c[<>W'@{@a'+h_>k+uv 3o_m({bX=[}z;WHB y"~'&w2K^IE4sv[=VaLCw iQcY(qkZ з:5mr+y/5B\AԠf3=h|gv{ fc0޲tq_:|%+hotd9VN=HrooF~<3u`+GDl 7>n50dj[YӼ>4㠫G3ݫ;Ҭ'K!,md7<zx, Qpvy. 8ˠEΧoު7Rۂ̔Ϳ*>SI Vt<+t~30:Jjf_=(#h>J{IGGy[gحm1>rjPMbGtah}ΡgKfUTllR91b%_K U(N9D|}x}nhʤů^\o->㖙 UJc`jwimpMA/׫L :n,\"h]u}Pu:DҩNjgRL6ټ󩅧ٽ|#WΟdȹ3zoY[n/"y,nP8ɥDiEh~Bë?Cʘ]{j/u@1ۚh=P@,ʶoVj.+r"HӬyЯLPsG2or} d4P7rieab {#9"ޥ`LOLÚu0rvyVox>mZOÞ}vy7O'n'%]MeeV aT.y>-> =NVi[@|1\VK-Y?v5c?^ہ-]boJze4Fì6h/q]4vݣ 'g%h%TP_l� { PD@2T0JE/wsE-W�Z,WpI\Rطhcf(mCZKw>Z-S9aL<0x1}0:MX_(#X:C~S5W;ZX鑾ǻLnƃ4TME0}7mPnwe7Q{D0dv^kur{_~RX{PdזO kӳ8rqmhSH-RCJAz(/jdué"3oPEC$c1>nqL5<8I#C|W4poMBTHy$C?G#ip?6^o:_ TQq\4wa<ԳKo.^sVݛA2?tAf=swcQrE<Ҿh�//<E%ڜdLؿUW(qg1|߯ شcPQ]~<FwGsw] +E.J`|Pn[1~cG1e.! ͮ^av<Ҿ9}QܚeP|5w1\8W^n+Z™?)qz?@t }k19GZ6ΐln=69o2S}[=K6h帔P m?GWe ,ClFrAHw Μ}Ydɭ.UMl떳IKo7!isvW=+OF{y ³G?\P49¿] aP>#=O^0J۽b@4ľا Oyūܫi^"/#ӿᯮ8IҕLE~XBĮ΍ d,IdE_%!X -LT͵\Hpm?{X3݊4y,=Tn[}1 jCOLc@>s)y~mߓtobO; l�S{w"8aAPWN_pyg@iz HO`Gu704SFUofmF/AI8BI5=4/bDKƎ)dBN j#J'ˣ_=H[HG?B9c)r\\ra=>bkK>ˇʖGmB~Š OkuVry!q0|D<9 7Ż-rPO aG$Qkk"&yV1RX rTS:Y3 r9|5kd[`Xx5Ώog/hJTdN|<tS-+do%KEoOHC'PҥnT?NEEK 0t[h8>u_�cǣ˘T̻s2ao۩$Mz&YwQynSHܿvk~ %j!Qi.*օyv%vQ.<ηe3o-b"/~7IlW!^/-Υjc0ܓ?9˛묇0R8Zx>!)#'@O5t-e%RvP q]m@)U|65ZdU9#`]|˔XЁqX1/?Ӎ;.S2?yxwK"'2Sy6ۖ-0PVuFMlDŽ3-+Nيa2I4X ݙAg^8|o[bh2Ӈ9IԥlR=w?ĖS( ]7LǗϫ3QT+aDZw1uxyt�~gBoCE7P醴4O1M<sl378,d&Wq\9Θy vjNj)#ouǽ!tHC)ɬ?LHNڒ�``sмH`>0md`_lQq Z%:pp9 Aͩ*(qv{frk ^&XΩ‹/J?>{Gw7x W`_KWLvu; ɩhW�nHآ>ًV9WQ[`a VP34O:ٽr�IkP80fA)?`v; VeC-utlzQQV IPAxw3XH 5GJ~ό+0 ΚDpƲIܢ)E͙57d@:ݐ%[?(^֚yIrq/e3Xwނ|Fq>])h�5pPR 6}uuv}(r ) Z |P5fԃ0Q-�A=] h }Lp뜩< :2 ј6s<?ٖf>zCIt`ߋrHwOaނzM( ;ɐ|$w̭ownDk\UxvFKQM|T1jhU6'B&(JZk PpKSED<G6ckǰT$e=$BБ/JE[fƈƮ~2̵{@8vhٞJՆὨ}Eo2HA1҈}Hڴq~l(rvLyi55y2/3@zk =wKl0VE~=Zrk2@Rk.%�Uf J _t<0&|{/XGv4>jqG|{BXb< Oo?!re낻~jzPlk?V<B3h"Hr>FמAot:P3;<>$vȋO&!7@=g'Ƃ~ MVw':R |Y~[2?l]_rKtH?Xj-U_?WГ?BY5b5zNi B~o4U՛~ܖsi?5`OwmB1Pʳ4++y]Yb(*>P `0zcYO&&Zwq(y.Z0!.>VQ0e\h-Was7PVԏ^Jp6Y s[@@xT n <N`K 5$A$,zh*3Q|,zj'L+wH9{ƆsZͮHsMD7%] Y9}6wQ-ejPQj=miV[<U4(S}*_)s9zܴ3艒=ϟckVډ:O[ *{L7oLbND\b KZYEG{_ |T:-̞ ٩l1pc|mg %w׈]Q<weJS]}ZwrȻgQ4؁QcD93bo\WBOjƭUYrmi<!!+.+GT9A+=uC�ٿgQV$>Y5orMˀ1רf+N\B9IEA v}#7֥@=O`5~]DoX] x>KCQX(?V(#e bGD^,9n['Q?L2:r>xԉ:x𔽴Vt\=}x)ݔhhJ]]"g}FLa\A W~XX:I(En'w:ƽ#ߧ fUBN TS ֺ6 ɧڔl6 Mx^�sSvJXn�K E92<xo�u ^0Aiܝ @t[&3B6B>/|{�3#AK> `MUnh|-O5fwS+@95*>akI_\[wmT7ᴸ m~0RDSidլ)4\,._ٓ[3 \EL@Y–8w`ttn94Kc5qor^\]3]ݮ'msnW\29SkK0Gq#s?== *Wer=,q'PIZaqb8X9P d&OOTR#M')8| y231Q�lOI_zJ/mriPxY4]Mv1(;si^I~~Dğ BHAa0TϿh_Ь*  s?; گqJ?Q dzQ=2[<Qs-yT' 19͏ܚ`�V{zUVgAKU[+?*m: z;"Ӑi=Y-{tFO|[}]%P.٫(՜HGop#OC%j.-/^AҪu9JQ4p4 *nsyS^`ߦ˚L<G h?Y 6$<l^YaQe"BQ|ͶX4�k!W*Lx~_gvoyE`op70>`9ԛ/}@Ws KOE TQWͯR 4^uBg c;lhZ<xT%Ӟ[Ԋ %D:yקLo31">qjˍykh ﮃ%,kw]KHƙǯ6=E;ɷU/HE: N}/vV'`6;@YǹO?$@Iäz^t\֊ف4\T1yNz<&rxlj9W9^eɉu9@(J kQ}e?;AstKwmm;vAskwn0x#$J~$̐4@>nɹ bs"׽sB )]]i&P2 1ȏԃk1q5xi5wו`l0t-Y:h G̸<Ηxؼo6a'M/KGU�gt.q$Oى!G?AҚ ZnlV*8#<Bqp)z{ "y"4QnOcy9gbkWى(;oMCO~+d,MaozAm7߹vb#(~)F~OFp �~J*C3W}N>-~I8+˩8�z*-s5 ٷs<Ƕ b#|N*jz{9ϧ|}Tl+G[צ՝ d::)V'<fLis,A(:ӕUD'+Snأ+k 4IlTq]�eaTd03-!~17{hu|3c{AD 4Sq5Ju7ɜFi`SP/Oނb-6UrKN\g zwHMܙH O E.oj3FF kCkoWhW Luu&upڇReQ\l扔A6%м<87j&@{*yjȏ" K3ʃ2w-+5@US9E˹"7EPW6y70.]f4kDjL,5u=C"txexIuEfY鑥A.۞ݱѷn,?酄ϫ]30m^aSַ;.]zՐuH%)E uyúqkLdH"oMNl2~?'cjtv%zG[DO0} .Ă~N%:Uݺy m{EP* j=cUٺS$s}=P׃FG&ѧRtuEuYæl|zK_u;]7`p)0e&?߄zD1rUT}mj,`RlE-^\oZ[{I&0/>_镠Wʕ{=\Sڤx͗¸'Ǝa,C=ݡJZ;a0QG-E7ZNR^Ⱦ_-2c׫A O_F|)x'I�@b,1d$JQٽ(GT͑pRn0Ow<-ir - =قF-y6'/QT<L6Lt:? s|�-,aMޱF1)yR⵷ BMA}S95SRoWpƧk)5hNq,[|H7 0=+0xhyg2E' EB*(.hK'3 +.M~5h5G*y}rR&ap,x&I.oUM4tu=e)A{>�~:wIaRfrrL<eQ_LOEt[Țk(ݛQW+ߣOovTN=z&fcu mNm"$a;NY]JZziS TP сVڳN.ʃ5eT8aq^җh3( %v^5!pI O[7bxvl;>P>;,؊(0Oٗ :Ϋ UׁQa#KiA1I+S(9savj4UXG޻ڷ0Ƒշ\Ru_D4@,_JB'^sH47T@{.ۘZ/<le)zVEF3];dPVewI!uA# ^Z r'?J@;|wXF =MM L7Ju9f6ja|٫9MWyh$ yF/.d݋#(opt׺/1'!$ 1fMpOoIUItHfkf)Y|Lna`Φu$wfؼ <haP4u> x˺M)J zvHUK^na.Vw)�9b[jӒl#B ]%6knsO(M[2ێ?_l| *#7'IBvF |{9+b0PWߖH ^@W1cd&hEsɷ kV%~ф!#~}WS UQNiNOkot",uc`ؾs>~?< Jt 9 CKɢx^h܁}.L"rw.Rׄ!aƢg`./D)UF~έΖ:H4Mc^j;JF] U-EÏ' ⳟ~a.MGAKlQz^iq~tnbƊOztzeoԋ[1xb/(7=r[msNq\]<a ه2^ й3vI(4>)m.vgK^tCw~#U|J+@nA@OlP,<k$`ױFs[-豛9{e뛨R"o(o@}[|S8dr*\n2 rӧ7ԉqK>*e%gF/}(u1@#~K/ &mZCD-a:8LNd iEּ).dGn+߭HVH@Ǖ}:o[pCw*^c5@i.T""8i?@z [0<e(迦C@B8Cc+W5 y {Q9IMLn:SN([+AD[JY>wR$L[$q;s}حvâ}c4hHcA|{k:cgjv'Bv~]⠝~ a#]ܨ:DR~6(Z]/*;: H]ڥ10.-or0O/¸v/v &0us9kP/"s2|Vu@g \g`(_nW4NԭdW_u毳.1o}1۷>ъ["`AK.?;@;qvL-: @3w[ kGX$rd%$ձ3eWѺ�+~\*Mv_{j='5|@O_]JxS|l1~s7hӣsT>)B_{3]|; Od6{IbQ-ՉqZՕA\HŸR۾ mopVg>kL=%(˨5DyW qk+= e]Dxx Tl5Fﶬ!|6 Ф$q'QzfMGPX+{,abWM`6mwAZ̏E7#J08YJf9cS*C]櫈 ]tCΈܿhklam75"1|SR]ב\ܡ*l}{ {E)'ީLf hCz^q<Fמ[DWo"SK:oPuy;DalDN<K_\陏F@zWR1{Chskx?4b@PuPAh3/x[E^hi"_8՟5S֠rʡu7?Mg6,a*8;oME>N4RDfx&iR9#rjhJ3g5];1yP,/ˋUm-l734GR2'Hy6Ɇh/w%^_I5{[S0hMv oq)$Zɸ.ƾx>:3reޗlp͎0JTX}K0'O3G跠w*!\" %O]hkBu/OcۤAX6WVݎ(՛~IcǤcFl*?Zd;g$qPޱ߈]25ߖfb%P?!ĉ?w:?(n3rWy*9 {]Y{ħ+<uރbs}c5FJX,$ _ˠ7^RHV-~_k=2nITDqW O “eȒԑOE_(C^ɷ6?.eu ),nA_@R^X|y͆lc~\Ir G2\!@u@>TB ֆe䐘2=ײ'BG-^`x|-QE-2(rO_BNΥ{C1>bj@u㠑:,`u;W_rv Q䅩HUʙ)#?RR C Ĵ0~AU7+E&C}W hgq4w5;@u?mr;s#9" /ncCU[@gELa3ڜ. .}_ }YtGWyqȻ޴S9W2(xB7[1|,BAVt}/'[雠6~ہ2!ch۽9!myv>Ɯ2&,U}3_CPV>?ĭڌx\[$>>WiSQ Nο}xr* HMUzm}=E!bb Y}D @5ߛR+ /a50=Ջ~bMۯSo=)+V?Q CeVPa]חY-~(TأDX$z/##NG2~匔;(KMP[ 7|Y\ Zp7l7#O<y5;vTdD(be)v΢{0ʮﮠn~З`. „j{z[RVcp_9W!ďA:Mb"<` Jġ>tj/zjU=:mw-sLǝF{ V?J9zJOnB I-oAM5{2kbK^AKw%GߪGplfR Rq;8Ior~J,N֗N~twuo{۾< wT]rj \=#1s淀&2b>MSʍ)(~duMiqΤys0v轳Dl9%b?޾{4X&u=.#M\5꾁k;nQ Ǎ1PI-1'l7e"ZQ r)b'YtMLQ }kA7>|ib]VɁ)$?nn|QDyV <MRYdٸu.4i8s\ruqFMz3407~ "t6GkAQȶeٛ(,+^�3GX/S\4^|5&3>U2MDel@;K:OVk_ $MWP;-#mw ՊۯPTf£.?nK ݷsU9h6Z/miz�~̰Ą}6z4~ɷ ̸TӑhzJ?靴2 J]Լ"o[vp(31=u0j"7$T.,>,[~ɛ+g;ChYԷ;[m$tU i>uYn9 [Ltw]=Uye>,)E51{J $/-tN0򸄾 #o(5I]7߀%bl`>}4Ozu C?n +Pٰ[,{'4ǐKkWJ~qtVHnNOAY\ѼUBѡ`$tHdI=CG{Qgs',4.Q[yN~m!DpI=t ߖS5[G ~\A׮%.F*/^:߆$z Q2aq. Mkwkea1 )cTx:aխJ)tL+vGCȓJmʓ/)Sސʲ74 tvTZi2i{CFS}CABE: : /V31Q%ZУ3X3B<>׿?^zS(ฟ6Ik)?ZIsD�Q ANGnwhDyiJ]537L-v&<-P8%IB^?FY{@Cрb[ Ri$AJs(A!f0߭7؉Lg_\1 ,zk=P 7D{Wbҩb@M*'js jgXf`HZyd5|Ů2rk`Y^ZF$YK|\XY0+jDn͉u踻J4223y Iy |ok Ae߫BmR4v9qC,W0qd;3c骳;X ChUeQdlfbf`zqRxЄ_CV;*6-^jr#O3� O*a>Qx\|f]xrw?񅓢rU~JP_vkىS߉¹?�r M5:\T]IEhЁY .#3I`7.sO)ݸݕ \qj܃=n}߆vk`ϛK%2УV?ϢhC1an ΜjGNZoCo^cX귛Vb sL)1sm]^D4FɖW."/iK8w;Wrj$Ho!i3:д"64zW~,!%G&iQ,9=%Ұ9oCY/|f?uf-_NwLڏB@9O|0W'tCAgKoo'բk Hn85Hf~D!mpevUʈ9?-F*eV+kcbٚ$m: ^J0Q&f{hHL_FlxjbgZ{^p ^@㌪MHO\N1{BtӻSMG?&ϕJ{l?B0ʎzV4k#;[8z35(K$+܈;gWnjvQĕ m+QY#ٌ. 1ߪt C!N1?ekntY3QG5(hxѼfYj};,u RwG Lăi'+/?(Q={a$*_u[bѨlS6%%>9L&mX z jęE /ĄktC*-(Tİlt}_n3G+IQ ڸAK6=vP?Aiz6Fo庬u4hl+m}A:ӄ6HzͭÏń\5enP(o$nE DZ>$׾ܿ#< t͢b4TJl; yU{'PvUKLa5!;AeW-^ 25QT\Z9AkUA?7;;D}EuC\RXOZÈeF h?zmOՊ@[u#xs?uRG N_9"O~-gh6{ȷ\>E[|%3g,Adv d|5f"2PxmYrbZ!k"YZF1!yN OO}�kz". *zÖD.Wn ݩif)`>&bc^QQ0BG}(|.Z6fɼJ:t8mZس@U & FTv+a635eW3{٠=9YI(s45_@<_$ MfPJB.ǯ'97QάV r}hrZF^vOݬ6䆟X6vrwFrr?whdYF&O}1l V[D,X|&[ ͓bU;Xވg"&26?y&q*׽}>ܠ}NC?g-%"."<2RY=`;n(>mlKL$I- ֟۷0xSe/ZS˿L~NעJRkgI9O,իu|- 6�նf.3lk�u:l4ͮ\4JOo Z6]ZqYY;|e JNv~2$ 5G!h v[]fy P[ww�EƓei3' yu"]!l=xRj<8̟ b ϏmFz:XU7sRFov~8 jƈyy4wtl9wB!M̯?P4 E.}�S#0M Dzv%l�4csnq튴ð1I~7[x<g]x $+nDceƄOd%L<JeH.Yo > 쌛;L<C>斎hR"xk7oǛw֘ܥL)e �#~\2 6ЪO8z�J+nk*9Qrnk0`Gy5`et߯a o\i{DNDDhTHywXn oު zݟ~LnLDɁ+D/Ճigr)lD<ώx/9g ג ς4K+[.sANP;&O.As�s9OXÐE!Ry_ ,Ȃ!0<Ptb)j^sU@2|rBU~Q(rd.$;q T`pDS;曽^x}Q:7$ qh^deeGxMfB{�u:_*x ,;nc *绑VVM)>R>[9{Iev<| :PCЩc2/0ܻ0P 6K|b]u~ ~yb\&9k~IEG]o#0v!Ln|OFF(zO3r^$F N {}z$yn-JxԜ3] Mn sg'sC['&TBm2X):IPvtFл'^{A=t9kuӜѧ Z"vA2񬭵ȼP*tRAYIK_  D^¦q ;&~!EaT'&zsFǏW^/ab!M~T~s Hk/'nQLJ0R,J=s2v%fnmGC;>2`NZCvFP<:h'4=*CgYMPacqG3֤?t~iEq t+Nc_Q0y+j'T #C z5V*%4j~JDW\/0lSGˋnhER&?w[uFo ~I/R2*t)!q[]ӟG߯fIC矊\Xs<x cxa I>؜&!\ N#ɑ951.JFN]]f3F3\ 42Sb'ޗX|ffou?\u9ˇmd,]"l}BX"j9qOyTt_]Zu[lP-Ә0borPR-<@k0Y\͝_Hc/);%D%(d:߃Ǡ/ CM"'8dє[52H>`&?o \ V81j{K@V?n}.꽝SSPVzkK`hF:=ض$o:]FR@\+)d5kADz _w<B{ƶ5'Q',04ށg:_KFnykLu(a謦/'z#=XAd(YG۹0z.^k4AõFQeNu[1STQՅO|z}KO+ˎmBbí~zuM)!JRP`wc.о5F퐟Zak<Ʈmk@ղ6A\VrQqg qiJέB#kQ11S*"{m`0ӗAR 6BZ*[O ?kDB̳,m<+AG62G@ժEfhH.K`otx<?uY!q|D4 LmxW}` ɕbj! f P;j=5J zkAf[2<~H8^cٔZ).$90:QB~eiRz(KѓAÒ_=&.{=IEw&o aPwWVC~TXj"/#ȭE֢Y[0Eىk[tt.?CJOB5AD<$⥔b&=]CúhZ tРڧ?<F#󳸎&ݞ^3}ru8y[OLWHfs�w=zo?WU+&wGakQvQ <y|*~OR-&SD4 %q# fQퟵn(;fe4 LFw6*ܵ(XyrP:c#zZ\#EC9vP޶vBᱡ{$0:$8,ZiՊ2)$<5 6#i%<֭4DϡƄPt>d(%wOT]1%xL6ve?G6w <BpL㉉\W *#ݺ>x:{ת藠DM]tYQ~;'{Z T'?CuPT ztQC-ۮ`%g: 5%DMt4 ,P6܈ĮR;ߠ[#h[CVs_U{j^'OV#R+ǿ=SFWuP_Ⱥ>^F^`|neC+=_*Uf-͠8hY^iLJK nW+G*^CS sQcU\%&5|?/JF4c> Ɲ,+ѳ}#1'{Uؒ0^>/D{mrxu.zWrWiM"<GԲqe PڑN9IHMn`*{u'fg dِkK>x%~fШAA?(!X|FP;QS>iHO4+1g/P{Ȧ`*_[�i{\Q9(NGAhZ h4L:ljfn?@>d2:-,2ѹ-,߄|רClLT|^磮r/k~KmF*?7 J{cU4BW^xwԍ ewr]b?3a(RůAA>p eaul/JF}Քgf.'Z61ͣ[<"h|$;o֡kkLXR‚As_@j1P۞|=߻0+~[Z0UM|7?iP[h#q>oUvp{/7$M`# 8_^Z0Z"֗UAqħ�W/!"_n7| q^%뎃dm__Eq;:=lRv5JfH.#rY=::!z5?],,M|{e{fc3>5>?ȻD)^go yVzk˒*S2=EyE],~~L@GsSAu9eN~g濓uaj볭`0j@ȁwo.JݧzAPv;&ynQhCЛWnAc,$K[wIEY5dz?e t 'B]OnxR *},j@Xr]{~ AM&7?BRܨ("xwEGʯA{ (Pc�x)G޾q"8jey; ۋԓeepEW g3uDsrߏ&Dp77D[K+E@gc}I$D(eF3ez?lG[tmnohav&~Czl0wy?\R`'*U{$3ѿӨVBAxl5$\ Pk36n617Ŭ訉ÂbW)3פWq1ȫ KЀtS*y;‡k1ak<1d#Rv7KTZ͝kDw@g C{ڇk硖u4sn~?@4#`ٚrQWnXע-i(=pU#FU}_-3#k|P{'PׄYk(WtnV+ǸrS^=bQR@EhiE(K[\܃\N^M7WAfߐ,qCVݢ:?j%zS-8 /gdZ_=mA)޸9KD(M멡uej F j,i1ɡGli_߁sc_8 57 \oRg43HyR5>BQu_�(܂AAp~XuTb Jl9wv52~*=C*!HIOoJZBiў(ﯶ>cg<J PaCX6ysEq>wP+|B\ڈ "_fGva*F0uk`!:ȺaAcdެ?JFHxNy@~e}*Ҵ2r:lxڸIo@pbzH ;[gnǃDJ_̓އ Ek╸Gx[0h֛o@8gPǜ ó{|Gܠ@ҵ^.:5fzMWۛ%{?9&ʊa"5&+ u#XS>ƪv:^s ce[6!3t<J/>"_s"ZBb]W$L+mд=^]0?K#,m"It\%[)thz]ř bǧ,Ѭ>-cȎgF@bڗmLvWFGwK1  !A%kW6w/- ?<e49^k"<7:\w3W�%A[0˨¨pH),'Phƻa2X2) ) fC[OkN`ǩ~ z|Gvjj21v&:y%1Ye=w[ۣ'HV2ˡ 4J{_,)#<8%O$-P1y FjQ$wlvAٓC kSˆ:奃s?A1IA1wkXCo;`<dn lw,0>z> qJ>IB!#:r2LAީjB ?rE֏}4tTf,X>A\)$<c`p^[_͸Kڕ?QTbWDpLJ5\?,CϷǧ_3A&reCZޤ#/D[d#㞎(O ̷o)Fh`Hې }>>sdoBdSuW@k4|P\Bx' E]iG@;a6WN*Omu)e ;*yuOYlUace\g({H1k]hH mv\LQ?g[˝(Trz}LsOwR Gj6ď An|1)hd/;zb<&Ĺ־+Q۷JtYKm�,KK\`5L8w(4;`n{a_uh(u+\DGݫDNpZ�Oz"P_^Zp$;Bo-^}%evәz n:�R%OW$l>:fc:RvM%]�Se UNAv}:DdQ)[Dt ѐ: .,or+ۋ1.q`8M'A39&)6Sm$xd$;Q|L OW#O<KrV_r>}q^dChNzcl/$8أ j-^Xs#x✆XƿI|E/Cp|{~TV6�IpeC$ski?:L(OJ׳E; Ϭ8wA>xA_tj*o)Z1yd g!=F?@bp;7Pҗ]5;>)PxEM{|2Tn~NsL~5DI U-=9r/c?яMk0\&Sk9D! BM(AS@.7|ɽ6t$4 sGuZY{rM'MP7)-o,uD=yvTs\2}8ơ_\LzurogIzx9e"7Ρ!,?x1Gv^qۋ0|z;2Wf(EAOU}4z[.zY+6NE>CƼT"n~GU;X[/U9Kքu_*5+U-ς:ۂ:@:ĿD<pPwK0+ȣ@+bnV{fe1*'R꩜9*>TJd׍}siUc4yn䚧G>ErW:R_^U$RjwY%:.4g wϖ]ݵ&>pjӱǩB,+OlmwOx={ G{e߃/w | IՍ*܀P1[!qh|zWcϙGh?vZoow>_x65432m֍hJSyF"T6<<C/⼫zV RKrY7[9끱3MO8kx>W%mib{@!Ҝ`{#+A~96n�DeZt*Vav\g&FQT͝<{tѻ)9(2JwP0n=#░ ڲo<w{or9C\7%P羚F]GdƸ =vyd+rv}M_2. ک?E0#gVQx\=ћ mBUE1m>0Ɲ<:T3i v`5{`ЪT_#칋XCWuin}R\ #6窜V`EHk&D&g4џvuWL7M63}Cxģ ("< A{?g~au7°* ͵)*xuOo[2ќ8?TC`=DҶ3 W[||c5'ĹGա㏷ڨf11i t'߹<J\@&sS1Fl3 ק=)$8*YJ -ɖ`uw fN,Ŝ÷>6'}rS}若gR4m G},7aYADr^ƎSOBuB.o4g5t⢥-sҥD~Kۃ1%iŵ` boz`$9g{$FnBqh(/,&'%(}u`nQF'cC\gd|~q9lNjYs<98 _mMXZ VBf'"2)=DI#rĂ/beMLcY_ܩ;z. =tn ,?[+8aBQ`H+~}Ev]HVk:A =ZZZxQ9ҋz !TfU3Ā֡eF;B)L-'iiMSǂ w8GVؠ5ڤD՟IA[t}tvޅ\Q10yڋ#Ψښ"u PBS>}cƿJ`@LpWZ2Te ?xvz (d.E\T%5;Jmr_|/=Z|#3\Qi}fZjȡoTL:ףRQz~،F}DZ!C"(%Pr]xZZM<Uu!YCzoQ#1uw4ڢ=K[wuP7Sql1 .2z QفYc >Fzs$m_O+m_KU8jm!'u7" ;=4r1&̥HWW/w=`c2: Yw3D~{b0XTO.~9:q$KJѦ(g/ [Uļ~ԛ-7"snt8 tҾup/}JA"#P.Ppp y۶u;8 <y>30q+8}PV cuu$&Eb^ f߭ Ra#wR}0ZTF~ѻYp['[c܋%GĹ{ׅoG^H,b\w1ަXUꞫ(<4as#GoAkrC1}Cuɀ:uhI-K9(,W, n&r[HãɁzh;7Eij{& FegB>V`%ߵꭹCsϻ@KhsuKQlqdXwry0lI,@ܥ@~yд Z{qC6t1PZDQJwf v 3 .06|m]5y9x]m}' h.P-B~#Nqp*XWW2+@UݎRI[0T65b8BɔΠ`\ s϶۬PXclAuGOIci{]`>յCpNϑG Xm;{#?p&VY0B/v;R^^{y!{<XNP&p@,?•HKM>t㪎 .]6B֣)ﮞa vDyzYCGE<h"Ay3l?<¯ !SbyJ0Fl,S"_WFBkg(hK\y@90<9 k=.u?4ﱾFEK5?EMKAVKz|̃PԈzf!>e]s֩ Eziknij#w0-\~͗0hu?jZy|=. }W̺bph濟Qh+lklP.}r vзfνĐnwR4+`pqHxo^ik0\Trٓh}DІr̕a`)Om6'rUWBY*94An?]A<[IW%;(o?ՓQIϺUlOgq(}9<\Ns_Nz]E.Dۥ]O'ν9Io~S̀<{Ʒ/"i'iQ$?҈ A`q+;d;Q{=2׏zf w/h6O㿥FGd<; QԯUy Iox- ios`$tPL5;$$N_m1,~8Ǒlw6aDLrֿȼ mdT;R>>+Jy:)`P�>F!mϖ*U{A[G.\ưkDf薃[ .5g({žGۼs-;"0췟GIԡF`^m3�Rl0c<n$?ICZOkC@0:v;xwErιoSr ѡiQ?(>P*Ay 1ztjKALU-Gi+ԡ8͎pJ&JP 7¨ H]Y?ӚnIِ+n!2[g΄[~L>-޲-d[% ];( % m9ܕw+g[ 5/ORC{[+N*dh/̽ M :z:] ҏy:NNO&}}de(@z h sl&HYMt\ﱭGg]Ew�)1B~jhX6+~4X}#äJtiZv>+ûK$rO7W~>gmgJWwA/OK uN`t u<;q?KD]Cг^5W + sߦPSu? Y1 ea7"0~F`こ4K %=%(D2~Q|ÚHvEZ YcGwaLz.ZKHjj(W5Xk_b Us{?%FPCYf*2 țN\\ϋco\]^�s:{Oךdm4Qɠ"PG5N8x7 T<;})T=o�)l;@ �nԭχes|K"zohS;f02: ̒C lsm͵h_qGa5q05s{0/僜ө40cWm^v;i$GW%㪜yQ~ޗ ]7' €ItړT,ri|1ZhA#zt.gjeW,گcM(<|h[OYx)P hZL0J/"ei*O=>oEt-j+Ly7F>ksv�g獵ԃI-1!tg))g $gHV.ߖDIu`aYyzOB~cXmPZKpYJe%kqn]x#M{q c6< :VkZ)qjZN8Sgx-klJ"L5&+ϥgү#Ic{%ТM8 i]W f_ގ{$}Um}lOE2]M; |qv{~FBft۰F<t?A?=u+*/z@ɹ#iW'y߬[枿$UA\q-CЦlSޠ&Pl\"YZ&fK]8sML/@u�%=.CJPqjs1]E Ugg~F!uqnɈuGXɶkPeGQ*jT_ݺ/xzM=A̍ 7i:Ry.5LnM`"~L΄&d=J q9a)u[1aV'gv#5_ +G1a $##!X)1\he{/˩ ͧ:Fi'4+Àݟ7&"['IU>Ev\[(~4,ƎV:0~s#'۪vt}{ .ʠln -2@;Cc23]nFKlYJeB(:10y k..c!Fj&B*GA}"XXjP| L6ؙpeQ05u]|~+^e͝,d,+0*nGӕ|t;8S]Y+FTbÅAX# fg`ꤦp`C2@7ԸW:EmOٱ(в1] ͕Z*u`+=^߁fZ.ab*aShN&K]o t$}ѽ |gN>>W}yX `ɎwY.,oK켺V]7l(m1lxmcås;)n^N~z:QABK_# Yڣ1"^){}7C}A_=v%'lv'XOKd@Ved߱CRHCmPvy2iW)0mq5A_Is10;Ķ+�C̾`wsʷ ^_C-pB�MKV@MUht-rdyzf TSATy.V˄̉T]TK]@l|3'^4Y91ޯ#*;XU n+ޥx[}Kh? V޿Ώ7-;!?md37obOeF*|&gaP#`'(Aˊ9XbvûCz <wu,(u,)?0Kkw` jyz|~^p TW7QEF*KHTr5W|V.)-P>y$v=Hw%'5Bvٚ k>tHx G LIq(:.x^D)40TYD&" IDg٪I/U߃"(Jj6 &؛o" sV̍D.nb zo S3Զ*·7Vcyq{rn'__g֬BOPf:q _E 2Phw >GWߣλGJR|' ׿H�4[߆阐?&e8Q1tnTz?II<!=zW#-7b<Lu^̧`˭i>LDwhi[PEe7bc0buf�ʊElrziI\_y%<&SI@8ח EFQ'hvY�tLUP6o82 VSva Hn| nxM iTճGXjrjq_DcQ>B`!hES5H|%=RAzjbaˇ?5RR"YS)Ͽ_GڋaSol�n>ѦݨדSZI?1{ wܓB"`?Z#/I 1waRkꅮG!dC.z}S f[H{\0e?jpoCF=ւ!w71M1 G a{G5Vb<fq3;1y:F#+8uwMD١䑧}ZZ{ /8b*nV(ig$ Iwf1j^7x/C{]G֫馞>-ڲ ́Ê[A IvΎx 怗 v=;7H= Q0"@ N g0tvp*~e#Wyyxg#Fh?q(R  01vCQō_vqb] F)g10>:å$/Y(HǤ4SuH'N2Y{K_=(u}-&x 3)og0j7hODBȹ|4} Aq$h }14$10^i9p<]*_?;BH%eTD*ZW4DZ6J)RJe{(B<z?u8NRX{~Oy 7o9S JsO)tbh)hVDI q8U/AM}vkgGk2\{XrF qm W^$cPe}*z3ϔU [΁"=bMReE&Y fmGՑ@ԫf³h/GX"FY,20'|&<MabfJu#4uEuGigng~s8vr!TჺJYx4A$5<CHߚz'r*Q˵ Ta7jȨz?/yI!Vݩ;bԍVeV~h%м>&YrvoCcc}Lhsᶣ:(RPJT{lڞs λ= J#_tX9'D_&0Ρ= =&S=M͡0ca/p֯p-O{R9@W%]0f鼿3Ak " 5OGƲ+wd>ě7Trٚ{&6Y " )A,qj�'G|2ǐ1뮳~#ֵ ݥ*&| Dj\՜ _3ztM?!f]ovs^EgCp0|�> C(6QSVGlN(l2)uyBSCLy n-#{Js $!_i<GW0wg!iZTR;/>Ƹ3:/UKn@AP$>GkH{SP~茧~˒FG.D1-n㴼Ĩ58#zmZ0 EńcRroɴo8!3ކ<<}o"qIio?#.B5Ո󵈗Ðӛ0]jk~d+')hMDC[8�BLA ͳBۮĘyC{0pK˴X?g+8#ݰq>$ M@ƨW N`<G-7ئ\}򩳣NA"(&Bo(97gbQۯCuŹu\t cbAaz=36I {9r3&#"2AX_Z"Ǧ,Ax9=kڿi^(6J>qE̾ʡCu+@T<Pos3?߰! 'aؖ0O}O-@}j&F/X|I&#j{+>ڌ`Eo>{]? klAڔW5@xܣaF@ebÄK^[TPh;-7=JѢMP*|Qlգ?Ous9$8H!NeփcY xDG4m7#&oI/^CCֻu vK G_jZ_ueݨ΋}m70vN$fQpZW=(NVA3 ͘V+tb\gQɜ8:#V.__< e|"%GUP:~67PmyAtfrQb61UfwH6aӿ A-xq PC HYDJ�z{vVR;3033R~7{+`)7 )#�0 (n ߧÆ&5o~v R1 ->KH wcڷ[YA6 /ŏ*Uq5ow?iy8$DIfY2O?1]'яI2CG1BkcҦi|ur>l9on,I,0׸c/ޞh9Q$Pn7DDm9/vn!/yn/D-`N. J]@bLxzx4YEnR~?RD>�aB3Hg} V2&-Uz^0&ǭYrY@|-"_b&ϠvVL`Xv)tx̛ ʀОs(V:$=O1yZ+2=49gUu`bwܾfum!vRb'_Bb<+^XVkS~E8]v; :2jpZ~4؁=|N+RZ\nDoyJ9AL1| rls{0{U+HeA=ӼڴmPL =5]A Qvl'0g!E?m%w!f)Y91DE UԛIHRن`&\^0tzDGyf7cܣ0(U21d>o/h`OG()S PۜUDƚ^Jj(;~|]9cq!A>8wi7/ZdG*8}[ 9#~jb]`HzN~>shުo&k6XE˫= [;ܧȿ zBy<2 mw>¸UK)\:ݓPg]H-< -iIS$A=q`0ԹTPc9)\-: ]l};Aj{RYS2Nՙ\Ng'h~p3&%sfYAVIy^8t Л?=?JxRy=^BXS2p` 1j1euE%V~cڧԿ;vdYDwª3\yb'C.ϾYB3S`ɛ"\ѿ1=ޱ]geMUF˕(' 8)yw#$X0 "6'h(O>{ \{JY+QYi0ASڷ;\0o gUIh_7څ$hs.K2BOo_0qw嵆ptw|65KUI,qvE+̼V++ ~]Cy >Zwy e"sc4y6i3Ӳjts3&ټS3x0-rp0Y= 8b\zGwazS/ &0sfct*(ƉV�K[]h^<_ƜZ`CWgjL<5lEB\% w=B?/S] yXxHO�o=0d_yC2ZT/c^iݎIU/:]a"K#ҘS)_X'<Y .O(W}|JILw?AG8jc8/)ޠ 35wfe^`:諐+N|¬[}ݠGGE~6w[T:;y4l}na=.yuQ5%C4alf=c_}QI ዴeZê:FFgsDwD=#o3I!p;ʈ]kX\g>} M"wQYN̮{<7(vMgۧݑ�Ҧ̒jqgbu4fC{LA^?)r5}HQy|@C=.2ۿ@Z|y$,*Sǘ0y$rn0b|MƂB}hUmI V_Wxz,v}'d7~> -2Q;;X4Km&b"h-(ke\4]wUo OGDsLP;ȿ$2bDIPg00KN7^bs!Pӹۏ>| (I 6[~=xY;نѿ|;l S&&NO*|O*](So9�j<u@l>D3 $LgO -Aj݄a:ɛGК;?^~3gK>fDb6uVwU%(A 쎡GZJV{l5//3lTTcOFoy2B߸Q4O vdclF0n4J&ncg:8w8#9 ^`Lj\(o5P1;}`Ƴ=Kaa%UU`}k\OpH@ӐLtOEuHŻ6>XujȟgBAُ15ȲZ̹*UnP7 4o3-0~An30zmO<g.a9wkB]z,0OҤfO 1}/l§ $0!;Qw&j=7œ\ZYͻܶ`BΉHLmgۍfo>`4vc#i`)\}9Hz:w:PBˑ{ ZwۢѢ ׶Njm \@dѪYEwQ(~ӒH;d6k@̚ a_a̺N.+=$K>fnlNj72-]͆ƭcx19> I2Ocjg.5..`*'iq1#z|rD@y]]/ V9sec~C^oo]<ٰQ~`∶w A^Xj}Kp4X@/!S-a(frfNآ2(/ u6K$$>N맽'Y|PI_vEYqkq93 'G]?b:&NnU $-Nnd_ DVr974TCIչ) սm!%fw/[<Z"7ʥZ:Ŏ=`EwpIWK'ukJA:#!BNmH(=N 5_3SьW4θ*xtrOfuGQ[޺6 L?n :xɀ`{I,nQU v ¨wkP.,|SEDH6|ƣ͊AAڙ-[ b:ntBQi&s6\=V<}/;]FCRH宎Kz̋kad)#go>KĤYX4҈?ӝMi|^lB62$.F3b>Q~3uP/^S巑e4oarUiR9 yk~t#}U4@ZALf o-m; ڬxEo0]Ax(Syn|>yY*@y :?8G趠WC~ZƆHZx2_9(uxɥ&EA[G=}R 2[&0w@?DLXywemMYJX~vx_{_:7Z3 @*n btKrw B-Y|BC߭t\ׇ}@սE4۽DvSatVJҪP2~VO}"o4}/ρ械Y;yޣ떟[}ґ ՜nNA4o9VY S_|e'#NҒw(Aoo>6BlfPgrX :~P$n\uYỠM6?;T�:W4`sWT6x2 'A_Yډ1MuP V[O(c:(Se. ~uV2Ë ނ,uI~t+Ad @uDՏ& 4ziGq�HۜΨCiFE5bhA:֧_bhsLPXL2w&%H EpcP=g!i&xZB}s,{@@!k3j4?4|Y8"\y $.3*'J7S&6|CN.~ӷ2磁k軁bfhÿ7ݰ ɻF62b0zN1ZbOonCJYESJIҸGU2HbCxg]K) [<MUk$y!%Q|d& 51bN.I= =mp[1tk0K{}M0xx-Vd=o=Sx"{x$;Je{jJ/&Iӂ]q.CL+85or|EN9:#!n눖签;}bMz}SL0WC4Z2a0Hq~Ҏ\Fϣ1<qkruQͩ{1¾Ex'*=z@̊V(?ww"XQd}߽oȶUZ >*i=F{LwS;%Yi/:pM,91-`b8yS/- \wgEuza|ϰ 5AFkj뤰C0` )_k2=Ș O _d URlFw }^RExrcZ(MGꋑ*(S4ھa{wi9JjĖ�@{=S/QT!ra] ht?G8H[Y0de�*ZUʢàL"2܊P[m rOg^>B"4@կt;Q[ſc*zt~<HsF0,nx<PlH0Sp`Fc}vqGQwxd7/'ز3Ѻuy1iż[Y3GzK .�NMUΒ}5  ~ӷ12(=x2gG=͝ 1RT.2?s޷AY|( uDCA}*(>\G@>/`}3~2ރag}*dz@Rb5b@ l3/0^X3O)5<,dƸHA?b* bdyI!Z}pA*{Off6TOI3t_ L&ru;{3sv*B&?�euʫ!Yh8ԾgΣ1T_@J n?{oZ1ev>ByQ.p_rz/H7N]Bjr H>$ZۇwN,Cun(O:iecݕ}_ 0|;l$= Io@d _3H]P%}%ɪ+o;&lӪ`wӓELO>P-AÉ0mbkUT n<<Z QLW1L̃Oy9]0xLt�fݛ?Ѫ/A>pQ= K5ۮ?󏔛KEڃ;uc^swh}"M=~hc׊/vz530u/N1U.mE@}"MB洅nS"?w<5l|89 1]v~Bw1XiohFy,nxGN]/DvPˆh}xZtNa(;篳_/I @H+szW0r_)S0UF:j]ۏ)ߵFV,<!3w/0 tq pkU]L6S\2;gbgzn?/0{/W2bf15 -<nroR2h>&S(戬V-C L@lt~?k=/QmqUIEl0K)B 3.D-0oL3͚4�H^oI�ͻb%e-/CW]i.~/( egIg_֎5nofu@n16o2ͬ"C{5dp5~? cI1]1o`~yI(]Dwھ*Jvr<(.3{P&ŘR3 _?+2d¸a۹h_i9c%=RAnАzFyQj\T/m*GA}e5wD;s-Ctw ɠns~-AÇ8 &*Et |P=ƒ_7#~wnߧ.�o g1I{*Xitͯx�Ɣ.ozހk 뜢tx#W YFy@QؑgTMn`B1^ mP:?aT y\@ȃn3T:pC; Ԇ|:Dycfi$\(Aٺ'2r4*^D`¹pJ?6pRk0y{I*z=ښEӕ^mC^ n-1bNf;(-e,ƛ񘉠I&z^$W#$*7ֆI\sވj hgOB;S-1v@|p#tB0k/rD<(bPSayzeq" N[zn݃LNR 3~�ҝZ_^xjڍw6~r[c]* \o%a=Q'j#4lܛ64_loT.[ *wx M9fODߴ{VzϹ.> HlS8 o/y&i(qy(,wQNwSh lN{Igz WdD/o-J$3Ow%+VXEͻ]p=%\F_a{χ<g=Fޕ<2AN–({*)ɲ{>mm.CT$_pƂEG2(_:$ 6%m(n'XSaF[yI_<z?#'@UW6=cS \4Ymn[t&H=3xOhzʋ[vC z_a-jR'$zߥ*}F$oީ5*\}I VbKV;((,; ,@(*JV[=ҫ_cED ~A^mLEܓ]>=Dy;Qׂ$nΒ^6o0utfKNREBci\ۋ4۸P*PO6ִቖ>MbsXiз(Smi#beIAmAY׎I:Ld=>ҖQ&7 "JO|5{y9~6'|P/ZY;#r7xnOq|؁ßݢN(G>N_Y̸Ƨ' +Ot,"j1> m 1y0ů?r V h8ʏ:[L +`LA{c2_0tEɠZC)MH3'R ])5,Nbc♋(7[.Ga„dԼ-:/g/;ef@nGt埘e>&\RYL>ɃTWwS-LW}Q&@:iõmZ5+F]uVQ3ru6z٧U}eĬ&n+ބ~Sw(pkHߥQ#}DJ bkfz(PK-s0\wz:IZyd9&<w:x'Ǐ}Dׂ$iR_ZMyd_qRK||=m(1sGa߆W^ZM#:7ո >|s&@`e^oAd`!Z _#%EZңVU*8ki+1V9%^ B:"ԟBu鑠\!{k�锂ܜEt.? sX6Goghk^i;tt)!v.?%|ʱwh?';%b�g%_4wIFUw#K)}*ƞc'n�ydozOrkI:,/!cP ]~s {މV3?̖ _͉ԝ?Z/1͒/qPP+5Qx,*\-xubb,/||쾢t|J6)+.:x8Px %͹Ĝl%95YoI0E.EјZr+k1O\b1[Q:uc(.ʩ߂"|MZ}˛b7.n%;xM )Lk[x&y5Ry34"B$H)s+hLW8E˥is Rڶ,\Dog;m$j dko1q P+7&gӂPmd Aˡִ36*b8;mJS?^zW|>4gAo Nmi۷S߲iJ,rW셯`Yg[lBꁄ;Tf@Sm/]n ùO [VLq w!KKov_ai}U,;@9$gMm/C rdu e`+u4:(-A }{(oՃbE5*J՘Յi<@+kge..aGb)|46_|5E(gلyT:0uZ jl+*S!KJH qĸqVuT*>jOH4O"q)Ywj!RG!FQ9*ܡY1OH80"l's}\8vY*?2u덟ꅡuNx)/똎 *j ?GGNzB s]<yZ P!&x4hYyj6y&gULKdB-wIa2R2EL?uIF.0/KϷz$�T [abI-sUEAX,U6g3n UtkO<oⱭU{ D#ͳNh8u{a7mv/B˻i<@( =ጩ@ȣz7}[0m;�fͱgA։L{tNGl0] /Ŵ_}_Hmfxnfr+Bz~|,;V S>Ç.VHJ@-'6 =1rw-m<k̊PЖUGuKrjW;C荐II!mEnYʺ} g뢽QX}ܐ6T ]{0yҞ#v.ғTZY;@at~3St% ?1{}e bAf]\l:[+>#B+1:GU,!NW,r19>kQh@cs7o4z]$ D}iu}j!+G>bB b}䕁N= 8PO'VGXPHL6N`9q(/>U!URj@<Q$fK,[Ph!TϏԝcMߒ0Q_NG͒s@pe: Mvwh9S0j{K>,-ity>7/}lRs/=a$O :Xs3##j%[vb6 R3pdMM1㲑S*qhcmL{/M}T1fGU,׃&d^p^T_2&A+G@%ZnĬ%y+޽1qH[ocxQ#6v8A Egp0WH:{ ρ*.e1%;CWӨ, ),}cig#\5w>J {QrЪ* 3B6U1)|BZjVc )1Zf�AmP}>&WAfvzЮԝW7P[q_:4;7Qz"Rx<{vp1cW?go9/:mGq娋h֟6lZ7 q\Z>舎)1P/+W Oh1'ƫq9_U]{6?Y;:?,$iqz)~Ĕ8?۷W#J$=;i(?jR1>OL?lXgԥsArs+Y$% ^tuT9W |Q1&6 .'“M=IGΏWx(+Z1v'1<*~TFOWA^ΰowFl> nWIA m@,`+uu>{tx=vVp`C%&(Nr_.v4X>pGvy=ԆwG@s6HG.SO�0L2뎂IguBWc{m3aGorᵈ7 {S\59he` n( ֊ Ĩ9r䩯ɃzP2 ѯސœY6d5HAnmi60øID|rccne'U j:%.zc 8g4ᾗo]iS f'@_"ՃQ 0wte[SmZqtGjG&>oL]8^~) x @|aʼ}</pұ.SZ"b" M.0+Y~J%'xeW[D dƆT-NBD*fX~'ڢ_1(Qt_aBVǗeL0lM=ew$7L6sD%"]~!*T<)6+8Ѵ7 R6ل9{ρr{d Us{KzuF+ ĜtMF q\t)lzBM<Ca(2}͉"\@l!  H'SPwkQ,?ravp69< νc0y+Th~I-OP /9BRL7IwhL-m~ B9}:{2�zw-oKmT9ɋVYHo緥>H;…Ϡ:F^׋ Q+b?xHkγY!x@<CO`ۃ1Mei ~@z!͉𪢓{{oY8#w\\Z~r;၂SgiS:8esmVwD/_{5$v)_~mT3E3uPnܟ@pz J$1<k ]A5=/֘ Sn1%_ai95ַ)h7i6+Ԇ|{@*U(.)~ *mR͉i\r1/d+bPxӞCG@.?:kEPIH[b80ec< $Aߖh�EB1:ZQfZGYP(nخ!u\'*.AcQ%W͓{,Ę.'Z611&ТHw>d6!n}d,d +X\q'o(F\A]E+EP\%1tď@Ps-!>_VoN`KbQ7\@f)yrvt}zMvvX$nO&r~%$hx%| <CFJR64eD1S p^t'kXux~Q!8y/QNѳ`hd byÝVvI+q&5cYIķG_.P>ne.G5&/P5(X \䷭A靷bѦY>2pCgMg1y|UݎYBm߭RG/4z?wmI,C:Y.5)[# M lUbF:d'Vٞ_`I2:{[?],ardBөjUT33Ϫ=B`k@j,@hyƷ0WA1*L6r>AS~j N٬#i%ͻRo=W4>mPB _VUB{ˡu'b_xyk5->/Ar qKS39T<AT*%@pnxI拡#W0iO 񯚒I y_ o@asN i?6ƶ`{vwDWpf:zkŔږ朘Vh/ܲXE fhThlLj?ٳw='v,0jE- zǔ RqȩJ$iӸC<ʍļ[䨓 uYb.)-&v:窾e4=v{>˥w[f(O~Ҧ}qgXt9gOZ=E>P,YIh`$eXBL|T<Sěa%-I>=I¢zVE8E]~id`"ŸY21YKyma9o7xϳC$ʅ,@΋wћ4j:ɘK~Vģ"狪~Ӄ*&:+&L] cPp qw+t˷3yBH̽3)(VvzQl ;]si+Q I_Lׂ*|D;i<m#btd~Y5_ɊU+-  y@9l#ÞJ.|K {]A\ye''4a47?(s@[dv29on:i4\}W]3Cd8ZFL0WozGA W7%uE }MbNUB576M.ȘXi=2OF]s'*0v7gyCc'%0{bXd;Hh[j'sں76dtMû(<[8 _(ߎ0W$=V# �%.!ݪhا>-52WY~AjU{@(yIՔ@K%4u*Y>u[*2?w굷ArU$I&EY/>/-7<w@yPv/2`O9rQ$_$mڰvГtDci9 b /](Y.F 3ߧY@ƎÈԽ@zV=ŋE0.*|eJ~c-0yb;ů6H@Ԫ=> D^xxT͗{3,bݵ$ h{@F.񄯭X\&Z3V}QcBEV!uYVaFRe&H[8\^m6GgD (1g( oZ^R#AIW',44~qY8_G@ܩ;5XuA<7ȆY uyC ~wILޥ ܥ͠(tY_$ xߖUE~OԈ6oOڕ#C/ k)>֌OǎӮܵ14I9ODc(ؕR:UPrBTkZ>H &ġsPbQE?%eqPu,}+"f(}p#VDy݊ N际)1&^(X] /e،-"#߀\lZ ¡[%A 9%7jYb2dA)߂#AbY-^a\ĀeYD͢#f\S[cϢe ]F>w+}D㾿yeuG&8tANc-SBJ`*mԢ<[G?\_t2]:(7`%hܽJi�ȋI5o@:߿ֲϮjAPbt aϳ9ӀuY~`iK�Ib:Fyt%{>[иuxϑ@tܝ Gd 0 =Aןәk(v:￘Z3t-3_=7_9.LbH=e@<7lUThGLEjtP|'U.xw-`K:F[5M_D %op衩Fzv*d0*g_{0&Iƙ}4ʊ=uF ZVQ|#(-l5f(kl17(cfot NП{z{d*UX 2<QCWQ(Xܷ"RNSp~?E-Y'#9Gw6uN N FLKG%Q'9*vJD_Bʿ*ATS n}s5 _rH:ۥ L'^;'ش6CF̿#{I~t]`@NY.s;KAL* zp^^|vrAxXS<j sߖt{=�Y+4$}. g[#ɪ&Z)h`rݔ&zW^>$ڊ҃Eh;427:Vͩ vE`Wߎ_uɻL[Q}xVFɫMk#\z5m_Qmzzk fIy z"i+E f)I͠{ ((9 bPBDZv+zsO򶑭H$2 1__XBF >xRE#{WvO`<)oĪ~=1Uz%o!wƐ1 7cq%gS*d`ˑs" ]a("91 _x2OXaj; ϙߑHֲ}3J. ]RP}"sz PkDScvJ߸8$y(ܺWjXu l,w@)C.íM _Tetw@e4HGYej( 2qÙ&F@,|kz“B:yAr2W$IA]وwR%9ۀ<K6A^޽˂GD]FXFݨȔZ >a ӳSӳ7/֛h"<}Xm'ck׹4~ jƚ\+Zy<~ā'/c_bZU"N_nN2mF ^ύ_ }1BLk}@#h)(_vPv˱Ϙ5rcC1/v)NWTH#SHe,΄qG/'D|kQ|_ Sn"t~\Gr`1OǪ@?ۿ %ݑM\wŪwܤ&%wUWO7|v'T4@ScPOs6gcr^.>kG/U;,MvҬ Z)S̝)xoI}Py}+;J,&σ_cqh` P+_N=GN9 ]Z>nM<LնMǪ`b&# -XѷcVTD&k4*dzZCb69  Nbװ 'R⤿4qd3U{#lo4NYIk/" M]Wo^{B1T~&'kDA*Ʈ}rQ=(NB c:Վ`TD+_an?H/]9ܘ40_O ]LvD1u擟 P'":]GN #CQ!&Z-i,ϣ/E) 97)Nh.w1D+d/ V kY'_  20n}w=}Ϫ\y{I]fhڹ(n֎yߠ20"`Xr9Z&Sr$ WT7br1}4KYW\pzSl h*]lG kGK//* ̴X"LWmAIG@CϳibkF} r߃1|}1<B_o|Wէ )Qe[�Fs.?(?1R7rt3Hvg&@|]+5ci(*Ć?IՁ}=q5OCj1gxۂI҄?S:wCUnHNcn?'{s252|L,P~yﴟBg@eY Lљ u_Kw,G7HmexREOtUe1rU]ݾ i B݇~6zJ-O'B&8ۜwQzN9)D(i̽kzG$ZXzOtk0l/J?9ͦOAmW>~& x9PvWf7=_$5CKQ[Ƹ6W.D(sܛG1bzL<u3ii o]Kd7mCW.[/߀dj}>n?I\jc%N1F{oӉ@r6Wzw GRئ#;N;5?Djl-ҋ  >gj] ʵ?< [B֭`jW w*C ]ƴY 24HR2WmdqsFY/Naz.Nh˱aJ 9n1F$Xv>?{WW A sBl)CԹw݊xWɽ>Ox HTLb֦ ˏE[`z^BO\v'o~CΉgViAS[O}Eqw34FGjoǯg�Ip{&urC;YLEO&=\!ؗtD3*|sN2Q՟ .tRN6㺽=HfX - V/Db~c=۟ l{ǵx{&s |u9*/]%HڦϧAv=%9&e1*k,D.ѕ'J)$aX[TݹH7i'xV- sah:{Jr`lBO!󏂔z>Uw7ڟx^A2K [},z&3 0zEī-0,9Uzz IzHDe{L5%gR,g:AS ?@~MAJ|xNu,h-K!זP+xGYV͋yP &*w#y$ C DP1ºZF>aZ\9Zgz?ר(]}}i1|PuoGT7\l�IpO 9`,\#&&ŒQP=/$d4wz*PM^ n [|@&q.~1L0=]&4NE(/cWdz*@fӨԈvS ?:- 7p]uJ&)0ZpǸpɹT/1$Ux^W�U}"z~] <)v|9SsbA2yObl_-ʐ6g1]v0{~[� ([OjުxH>bC;@..lrB`gM HFyBA`sǘ@̶ nٖKR/UF6%`V4oJS9A.g5';+*Y"ySc^@l҆FgK[P`H6͒?~Lu2rCAI )}Ô00H)'06y.wxm)!4&Rw','q7W$hy"'_7Sw;kPT_?Ƹ5'^)?mQ~>d~ep< Hu3J.Ϣ,|(8Z*֢ xt` v1+LE%\h+Zߜ:nbGMo<Fz b|\"o[_/k ruz1yÖmiDQge0`YȞ Di~1LN٘ϠLQh8iNJ 2j~Z.cd*䁀?Zˎݼc{R[@rkonw3<V*qUI7+ڜ ?&:0D*?Aㆆb{W-8 9֏`:Eg3M\0dr–m $G@Pf=%]w7v? g2hБꑆ? '>:Whfk=- /*xq\5%GP@26[r:c4c%ޠu;#CJ?c3c Xh?U߲P$6<̧Ic%0w%<G ɋ'7'c~{VڍT+F T޺Zai%z#A9% V >ӋLƟt',0Zt VIwL`F8aGc+{Wmmr#0y}ha*>EU+cz۽O )Φ,|_ ;NI.ɏ*P:0 ԛ\ '6b04Kt3&_v*Ղ<zc)~gD,>@ÅĊ> g^`(<6jG$.VycvvP^x/# j kOy| )WhW.ݵVU%M/T NkYɒɮ >}5lDUɷm"}S3gJ=FHFK'Cݠ6^EvdWH'7x<fi?: }kA>y!n[1St'ކMHqqPǪYsXD% ˾\4 SF�9Lih_, ,&FP$Tx%#9[oLl:)sDu-_?h<:ՃU;647>I띀o䶔M~El (5i\d6/F"'RDOL;+|e(.V֟>`JZȝy:M gyI6P0d;Nh5ʋ^>.X;KW t%d"\ȸ3 zW!F+b;Rmdzϭdo&<|4}u+֡{4Jg!H*-'y1'K #Za~O c/X/?`b[.  /Q j/ަcX@B߷kA"ʾ}SŬ_:b<dhi J86r?(.;=^טaq,c6`'yV\mn ]q sFzcP(22afB_*"%7=d)?Lf6Uz )Pz^خ1=JQLom6Qrop3fWJDLJ!F> ĐZt^<8%HLl0g`!p=( Ss{H=G$ nixY=Rv?%SARi׷[fetbH@cPˋ7 VVƜΏ1>~-_T4}\.J 0IƄH[<6z9-/Ǧ<NǢYoEӼɧDrm#z aD+!&&uPg۾ڈkK͇>oP0orv70fTaj{?kEEO'{A⍬Ym M,Aص9ԗt Du}3O %{Z DZߝHOnUd9bewF96aU곺b%Q@7q -F bC 5Af㧨FLꡛ1 C,w PL`Z[i5yj=kwA=x>f.xq5LDdlYP.jg971_km(zqÿ紷f A,צb3'wi= 3-~ܛ5!ELQ/D'oϥy_ʙ(Xܤ9F_l!�g}+&mKB6ӢnH%?dsKohy<'Ϩ۳mGQK΅~06$&=TII!-O1Y`hnf0z }# </Cƞ<G^ãH]ɥ{;(GF36Is75O[\w :t5;YK5snaLv`a>�BJh$6f$yGɉ!E@zUkhzoM93QFD1LM F |`dOW{nTa\!ԅn~O~ ?v@Bio`wlי�;xKp=(˳Shp`Ƽ�ϧSh8CW]/JaJvC+xޞ4wP5D_rys|YP$D.L iΛPrOh{P/jZi׌走<}sCnQpCtMT?Xk<@e*^2G:UK۱4EF'b𯅡fV-G׭e$ wifP/0k[mOa| SȐ5=�id1ǽ&Foq"<Pk>.Teco1M*\ƣNIښYYtLxo뿇V1:Kh·ljON_ <g*@ƛ'30;wFyE8Eמ?C} f܆nAçA>M櫮@t}#zF/'[{ڥ׾qTYߏVWlquh)_9֬_A Z}$cm>)p']E?aJ5#xx20CQ (bM7*VUjȏq{T]'WJ[0z9$b+1ܼ}Z"j5ٍ% kxz?9^fqKg`hϢo}#?0]΀Xreh_/@eVN:̜o Dwm!\_;�-1,Ch{+P'LF|vTCWHSpŘ^a;88a*ϥzD *~xɂ,*o|7Zݑ>u}yBϏ6%w F85kOe%cIob (,K4Oyc.eM,)Bfw? F>E)p;F23US(*:(Go?kaZ ڙ"%8wu:vyN0AUmq;2\�u/ku-^=<ry&=ȥgh|ם-U~Ǐ'4ނ;ڈ"zx|3\oI%vi|<Q 1xQ F kU~AL\0oO=4mTNP`aV1|ŴpRjm$It|4bvxXA,DFct' Z=Ìhy!:U3g,5qӷ(K% zFc._ԡ$|f2lEG7NbУb d9Cg�) zDG3 ۵FEJw~)cbgkk &B?ga .[)v+EJÖOE1dkڢ47R/.r'P$})( O �`r%yVJwU#+Gzp䗿|SPcP}D9قaN9͔iwP`qj_#T\Q.dx#2nGT.f6a@|CM|SqJ 5Lǿӱì㋏U1y&rΝ?y[,Bd6s/1hn[ U:s`u{"'vbLk'=ȇogqAfweE/} ? rv {pC]&AIzvfrS㡐pcqS;1tp0י/}Ex?+FOt/DFt!3Ln#3nnj_[R C vq�9[o1q%ǹ^V?&�ϱ\՚Ð~{hw̞]U| r>>-R7y0s@Ͽ|Ffؿ#Z+͠~Va$H/N$ţy&:vK [[ nsb[EΫj 'QW۶MYHv49~4]|p ?0syFUE8GQ/*,k`Lޑ_Q9Amz18W˛cx> T+I]c -C"_ .`xXvKSZ/h>Ԥ"rݐm\khOD~sbRϒ]4M5f9ZndqgQS:D 0Dyנ8:h2*I; ߁xUSQw/tf_/*`[RJ OUFevO^RɈ$.~U1=I<sXFG]6l\yLRP׺n`#R.U?$3q>RoG@ZvJiBULk\.�ai +Ah`i cBC2T(D6 _ÌDhn/iN;wRT&,ռ@ם;UR1"?AR^0@G~M>^ q5qw9PG6J@ ".:mrlǘmkS˫u8s5Omh y!$Tz%0lJ.=%A:TGnTH#jGiۼq&ޟ\h�%grk~؃PD( hNi5LB'xmfLG«( nhGuP="yO Ec6bN BwbFhgoMj4/j Զ|vlN=wA}hoG(&Or 8W%wív#FN=gj' @\,MqJh_UTL^Fo`z &ZpuEut'J}:T+iyͱz9qrpGvj80-'7P=>(+{ ql/RG7;zLWQt/ A|1ǣi ԫNafk m<<7'CMۮS*fԷ4D鴹kh]lg.b[QpT�_V&XމG?+o`Xv>I(b~:/J30孝 &SYOUq6f,m1m('k0Qf&4}ݏP?işr9:UA֠ڵa:ɚ+)$).0F^|pT�W"RCUqsh9SA.Xm77[1j#O $:_詳o'قt!4(J?>p赜?BP^2鿻[柃F+"aKfm8YZiߣb@RnCU/˧Wq=PR<}# QrOx'{؞6r{ RTsFCqDZЁpSJBvgєm7& T k1~-=>F}H=: ߸\�R۸FF9܎i ҼU k{c$nĊkTρPWnW6!zRz{_=_˷ s^@J ӽ`SI]tUǮoDJG93EAZԜ>Meׯ8}vq9TN8`v[z1!ATFU4=Q蝵~cVߪd;a-i ֖hfAsP,?_HC{+b:.u 4Ը>ŊȫTgEZd=7{ :DVxܳIG; #o~n?+GFnS!H60pw)؟_Ն*U9n>`y_N e,QzCG1!Cd1IxE{'R&LR^Muy-K@H4ٯ-6VhAR mF%"&'~=Fz=7;zVwpc|1zA'*sP~/17+\w^`36n`Rl_h\/V/D 7 WC!̭QQr%䉽 @M~M5+Lv6ȷ`^w&|+A֧DQV'UG=m&o_!}{^%=#;] Uٔ|}ٿ;N o9t};?r5dWÔ EO6X:3q`5l|̓C7N`x" w8#7ʳ4/"܎5?a(�K3Sh0y+i1Oɍ=(oa9pE{rk(RO)Jz~#}rP 75/89Fyi12A}}ߐEN?7^F _00!wI"e O,�/1%ȹY]âE[mDJtE@1y$xH"[O1B $Q0l~ ;bɈ*k \(ߧER *[7DEà܆+\Sve-:ܠ!_cwٷ^-L⹋u d*̾R>r n !ϊ.fbwcoNXf~?�JDzDC/P/>M{a%"L:\ asS_G5޷|@ۏj aJID㮼c"06<&nbչ*4Kս'Q4 '.v~工"u+DԕxQU�ͿJ\&7QS:'0ey ž^d]q3)/}KGWMaH?KFEmꂼٖp߇c Q՞`KɋP@-ihH@ jeN"2=3Oac:;̘&]h}<_C=Ø`ɧV-v#ۄ(e50V y`0U D�TzϠ0^-4ѼbNf?Ccij1ٝWa`Hm6l1ozޑ!scܒ ,j\ivȨvjuw셢(]7҆u@x.׽*|AT(bߎǣ**oAb?tL0vcgKdBCQ~Uw+Qgvn"O @R+uɢ?섭/{+HHgO^oQ($qH $ O0jzjNehzŸu MYܡ.d迵^1?ze:&6Šcj_L b3z]A$+i/0ddLfޥH鉾XTl٪]?2BE>1~{࿙3 vprno:Td&M23\7>Ja)hU(~0 9BՍ}]|ȽUcPOÆ\ȯ33h7uS/_F÷<4rp�޿HbzBk_li9Mt\B?b ]Z?(eouUuc-AimnB_aVO\D1^P4܃`7tV29eB{n?L54T'Z{a yj,FݠөkeW|vO. w`Ls J"3XbˑVZo X}߇ī(ȹ;ܚĉa6BB7|ch\W}ߊ97,"FŢ[Ĉ$oD)7ePlju; @`z Ç:q{ٛKʮ؁Ѹ m^2 mk~sݑ8EtQ䭒xMA֍m瀹B*1%O ok}в ̪1ԼFw|;P@]Rd9XbtȪq|0v\Ąi|Ȧ+NDw i×OX #"2pmd7_$9pCؿb*ެ4q 9Z;A-6_j]K0P$9;22/3᜷Hw H{F֘(HUiߗrkc,ɳ(R \cѠ+^pRm?JCԞ<S@Fګ#5h0Z=*U!cKw΁t"m;([gdadud~ zE]w)A˶ MI4<LEmN8eq:F?GTΫ gIR =@swUy^ecLed-em[,F,Iy/:`$q 30嗎,m$;2ѼLyNQ歸0D߷(Ar vuL<E ?+O+;g>( ͓xK;@nQ!BW9<o"!Np;޽^%YDL$ d;'iQ~&%{ށ/a=Fcu8s1PabWM9)9a]~[cƤP뿧;!>bT`'81fXQ̨[bJUhr_7<R$c:d>R. oIlfZ>&ҧ[jx߀2< Fyxe\JͶ�xB;(&P?#9Ɣ.(Q~mw&_Ci"mhZ6ٚ]'U[^U5L }2SAq.Hd<-';6D$ge+PY\Ҵ^VzYLy:@-DĎ۲ ^/gNLF*C+h 9;FpÜz778%1idκ~#l}XKbwvX}@T BDB@Y_9>3;8slE|W4@РKLGRaU{ KqWߋ̎]Ƅ=GR° \ ^ _? 7N߾],_EzT~')}35)}fD{l~(nݻ׋]or72y1 bN82$ng>Vu˹Kwz?k8̕ZF:';~6Opuy޷`j8sGׯnH(rG+}K2';+j?Hrs-_8YtvӔ=k|?72E?vGvØ?VLEnnnǵ _M(]Fz -ާRS[A cpyօfH.+sH `g/"T[^LA{O (!`ڧ]r $Iվr{6yMzjwGXf+ׅ ?/aٮ@կ{,$4]# ݳu`}"wa$?4oPk֧D)d=~gz 2G lTX&l{M+G_q~ L S~{%\wSٚKԷիW` Ҥ,Mu.:I|_+nnm-Üβ& ,??KX< :,\?9%2C|8[5nم {~B!k´[j:/.Do_ϹAEsKJؘD^|pmjsi~07h\|L׵OrYb>鯂suTbxS/;X8̓ ?󢃐ǒCf6RpK0iY9eC^ Pp㺥zu}>ƴmp^p[̹̿xrNgk0z:O}վtGbܒ.wj;ΥF$5-zmdZq $^g GKGydx<eo"9`:2۹|]5wYg¿>ZQ(L)7;4)._mKKUX{^9=Ӗ 템oz/ <٤-,v;1�{>ًƆ![*1}-pp(̅KЇjWFɓ 9gI->Hڸwl`~aԐBK^Ѹ7Ĉ omYcO; ^ 9t?zuGn F@˒TOkS!oߨ&ЄO0w!ۗW;K0orv~ˮOy a f}ۡ9t wD+Yge]qç"ۓS FY8z:M D4`k{즬rp;q%sQ0v*b`#$Yr䔬f8Wo7R?h.ֵ[Q7҉M^Yf1w!j?Mp7;?\$5G.5XJ^w=ڳ̐v8Y.x׻֥ ~goVvx&n/•v{ip}˘={ُ!]ӃzþUsce $Zs̙_w,Aƺt s5EKGd˖H31A)nsK>C[{&H]\ #``2eL?#Ρ׷:#W3Brζװg?Frg]7">fJ˃өrgo9ZG/g}pNr| B7;,U1�QS/x?^4{>O5kVťvwqDDh6r&2}VҫͽkW4\=k{#˽J\H4?f~d~|hjO\֗$)|A^xLF]RY/3 /cVvS'C[x}FܚnH[4xqgmu07+{d?yf1y_$vV'yJ+ }"&-o4 E:s76y†J1p3zif;"yaՋɸAR0^8ŷ;B>NH^7?o( ["ޜQ:m<>y2i6kps !E֯O S ħgF-{ɯ!0t654ru.bfx,ˆ]9859f~;W U6'o�K+g>ILuD8!3,Wt\Lg'/}2EJO HGjÝBĽcS#甂{El#_<}GȪ5X m8r_$ͩYYޚ]^4CE"qKije}@+c#n!Ȃ9?-K=%L]cS[Fb%o"")w4Oxn>_vAs\W9dΊBx-pеͮ,?d]qj߽hEĽcc+~.z̕NGvg] ԈKz!ec&[G/\4H3[ DJU?LõW.yv?:H5 |յ6ϫ;0= qb>S.js|p 澄zjF-a2Սӑ0eόAN^%sp2ܱn#Tme ?ę;B#.Gʼ/O@b]7?sE倘~"H6qbfoKXxmrVc"di E["stUN6݃NџwNߛ}xPoO<'|ɇBHvZpHu^.J{|M פk#˿϶M;V3[K|Olg3Om%eCٺ)# <qr -;X;o!Q]xq+&p/`Cg.UP>Z)9mIeN&Ny 3<A{~翬xYONy0ӿ軐nTN#!f|vOݟ1<qa X>7BVz KpĮA0=op|}zz*z?~|j04y歒=+>?D/m,uʯ; q?ˇf' nCi�"=5ߠ0O.={/͛4n7ά7r.e[9ZUQ=._*$ \`?`ňϳH$~T`m :Zh6p|>wH�\_~{|\Pdb x؆WL[NE^ˠ5S,w/>7@JU>{FxuZE +<Pa}+~6~K%@x;O3JagM=gin ՊOz>P߈50X`|:q_;Wnk-Dد&\)KޝY/҇u8 ﲪdNV)XAȓ>\9C7Zy zL!w-{Ыbw2ls]8y:-G FN|^3b#K C!qޱAx}e12^i[AXWԪR,N|ƱM2[g{n8{xu_W=90-6Bv٭F>uY^k._9".LrpC!:m >+'d^{ g O4V.~Fӣ+|wHeLQ+}!"ӷvP\ldźi}]]aY8ܚxg*Wkd[8xF>wKd8tVh<aR{\%XHR�)]vC+EvnϮ:B`|:}7uyL̿5mվuzxhq̙04B(,1?̵+7c|:9i+7T) V{xNF]|6/v/Ӫ rZEr [fDfd lyhxUrtƭ.Cv_ԭ'{y;༸zRHrqk*ȪդMfanIl<8 ~aYn<; V5›v篼] ߭u_/!!gz\1;/L"{҃{}"*D'N[5iVY>d+ܝv{o$m0tһsF|Xe L?ZS9</qnY R^_OV~›8TC-?ԇp.سw\Z?&h0xԩܒu5$LF25a~۪Ev6mD[J:VgTyy!'nU]Hz}^Y^0_OmgYuysj֥/{VAkUؾwqL@ X'.EP{JnH\|߬>{`Kz^~@ZFNҫH<ը׻bJz+kW~< ul߳vY "wl=|nZ ߴ;^j]d\_mGvΕ CN [rÌܝHM8P'~3<tg݌g/o~clʕ&Ž#}+xSeMŻK҇uw.'4+�|"ӎpqdF7 Cvj]gGh'Pdqz_n MMs""k#o-*ڣVwoꠂ}=xك`|iipd7.z \2iO[UNt{>nW' nx)[;{4R 5W#h Dt +Vyc{!l3G>|/Y<K?M{c8)sb/wKeDK9{5sÏMpgÒxjEˑTc12tZ j{| )5nJo=igK= g{-CԔ#ߖC|Y7 f[GxlDΡ?%/m? Z텨it>kq0FٟBBu{[ʩevp0fxC^0/ny <.KNj̷߿b_ \]$'?(y7x=s£Q7UmR5O_?vH^IY>p"mSH/70f{x|t6HdEdO_2 xɨWYx3x0m]u8Cs>wp!H*Ŀ~uxwMLރ]=W1őxbЁ'aR6P~Cin]ܪx994aW<_^ xj\Y_߫7_W,3űN7nr.xō84g?7}EMx7qw8}7Lv< RO.vف55Lc<MΏ{(kQgd5G9%D]xoL:Bt=-X uMK {)];Sܻ+Vz/ɥw!6QdY޷MC"d?XD_[CK~*g౹Mi5#h߲9:#5.|n5ϽȻnX/)ZrY mjO;X ϝX_67L؄oe^N4K8zphVp?pY`I>"IEFGaR>%ejN~. jw釰*ӏ2A!^fML,<"^ٳ^t?N(8έWn1>@N1xa bDz[%Y\yݍ mb&,_ WZD\?!{кR!Cvٛ;dsrGf\} &Wn>ݖ`|'ug]sZ="zb|oKylrJ_p0r&]Y /FY ;\ۺ75웶{#¢K1\ZLBTo߮zt_o5DUo+)勰eܳ+AT`P=rw#뮈?6?!zάU@ <<YL+j!'˷DzGnWdD7-K5Cr9=na`w<R,;DK;Z) T<8ӕMם+OC΄?‰c3 kqObu*;k/~܈S#kՈc>ہ^VW'Z~='߬̋7\B=֪4NW+6inyK52W$i1m_> 8*7JHi˒cM!RM<[i7熋;wbiC5X|wx[t v~ UxiĝYi6 {L^y71p |k~,Rf̈} ˟^)]7Y=fnGk+JFTb#-~!LS]_&;! CRBϕVEsO/!H9EBε- $GlזJ0}dm޷PpYwQXYגs"p3<&" sCc~*\iݞp?p^߷"{cm9{Ґoówxq6jg R ݍ[]AN- Q)sp{]ujPestEڃd{2 ~Z;Q?q䜘p 6in`5.z=mq52Ljw4Rz/~�&noBr1˥ X%莸w¬YnX[cNA:W#Y5|qU &<`ZB=G 5f GJ]s "}y);ݗ>2,z�E[b\)u sH!?>Yo]5עmߘ3Fd'9ֱ>`ը|O:VHl{,os WB%_*[&G|q_B+h(\ǯ xEڔBj Vݍv+t2R7O`zvHeiD9Mov t9M/S7|eu#. /wCsه{y7ȜbLprpY~sRoo-jΗ~r΅el)Z9Sp A"0;ω3S9P*D?zfߐ2ŐdD%`?@P޾-Bڕ.0~tܖH`koO!5RnQA,|VyMԺƅ툲jz&cKή6;'-yRY˗a :3p^h⫷3;i?Hs\_q~Ush R;^l,"{څ�9G!hSuC=0q=OL<q7]q2~|M([/\cHv+]m7: b]}t$迋T̜zY#ޟ-Rτ;}'L7ش :}mܶ<h% sZm'l,yD[3 .fP"T{q>wN%n`,6>hdL[9['_ާ  Ԍĕ[F1Éz:~Z5:lx?sFeٗ{|ps]Eq[ћA_#F}uQ܎ӖG@b*gR3!ypmXEoaZpȑg+P7`:1`$vix-~GxvoM\XڝQA 9:\qtӋ(oRF~Ňmw l7rp$Uzq|{ƍ޼x'>  -wqȧܑy/FBCeǣ2%DsjE,e.-WkxRS;FzNS2ea #l\5PGƐvGnzًxUoAKǁuiʨiX?'[Y6ni_.pǸrzAKW>y>Rÿo̙-=ISOw :]rWu'ӕFy<xRN$_YYwƄL /gy 0bO2};O|+<,qhickTDFU#ӻ!XvUjPcNgdVO:rA?. Ǥ݈hnl-X\EP {ou,2OA6ome״hdx8p$1ߧ,3 ]ssG]f>w:sN] SFzٶU׉}wk%wrEȭ"HkxJu/<u 0oԁ.>p)iۛڿF16$oK8tSlw%tuԋ+!wZ-t]ԵÉO|w%Ci\RT9q ^v@Ǎ|#fX<()ߨ{h_Uw�BRvjU*9.NM#^#wr|H9vqW'>◍{G{rlfD7ڒsr) v 2ɝ{9 u�w}b5p*gwq\I.C~!v9:#е֊oF"5ñYҥgMpu$|d!X="L~GxRS!xѧ2]>_>t2b5JnAnч9s{;_`6Z=4s`&yi]ӿ_d9xiSWrvo(dk\nn\ w|ǽxqqOQ`=p[8AOv]IU,6>?z(,NO.BށHT*raa=|!aI6ĩU\.i俽7Gs.CJ}Aڠ*;HfdxPU}IiojjK\S#.WM{.YοqQ{yOH180�iOUJ ;Zg݄Я.O6΃U oj⊦_3`ZZ$9!՝L_3Lh..<;p>O8Wގ'Beg\Ļ? +8I56b}#g `N𯝑R]xtĐ7aYawm0M]O0tq]K\<xX<xB$t N| ӁN%HGʋգ& 9)~B⏑Ph]t=\O5_PtNcĽG>i~QU9߮Lƥex&3駐<t{g{F6KT quOP &çg*_\쀄ݎdLD{G2'ÿΐ7O"CӅ7`)5!u7^Vl*ZPh5rU`Nd<]w\n^3 #9ۨ q_Ԡ`YɮgR;ĽXxx8OgO:R;} ,� >ݽ_)1n F(T0EO(̯k>Y {<WjuCq!tώų~@i[!q懓7Cg{>tҲޅ'gӿp./[m_uL키MunI%25&Ӟ.= Ү-! CBN^qj`דȺRQF́zLvH :'GidLlY㾟 [4]箈ϧMpխCAZ\cƛ-a}6~Ɉ\Vռ8ܬb}ꍬ[V=Uv B292m I=E66+ ^^/lt7\-rsFd5rv||2x}&l׸?DĆC!쪌典&IH}:=85m6 !V8plw4CG?'y:#>`Nmg6vU/L=$$ۇU)*#CkGVdoȜSxtd!Eluv+ Ɲ?O9KroFy4+؟ފHc\R :K9SvҔ6azn$d7|).yf떸W[I'`BFM(Ɗw\dF#w=H8b8bJM/ w.[`$d,2٨S&<"3aJB:Ɏ2 I4"JY&uoXuT!32`كM{C#ZŲ|u۱moYH#E#wZqn,ϑ! ً)ɥ)?<sYp[Ta?23铷<ZqQ!CorVm E7D V4!nd|tm) %"0.ӯבCu'~?5`W#cGcK,RĂ/.iނC}0;c]jޫ`xbSްxZ<#d܉Az 5ŻU`TˑF:fޭ=}Znu'ƍ:}Sl<nJ]y 9t8[퓿/ֵ8Ю]D7}CrY2ǭ$\^Ly`ѹܚYz)|v<tE$ͩL} ~S<AV; wd7ktwys%z#)|AF>PR~45{IHħA7\?aSTQ|y, =A윗 DaIKw}]ݙޥ`lwmg7^02�YxYa'k;"fgvË!iFrK_no%jnukp8X"?m 9% ӏ"?ýF}7y&b<u xwFwy㯗%d7`nGp5(]ߏrϗk*O舸@~uav;&Y<nsnOI}YH\R#­=<n7Q45GO̟uj ÁLE-9+.ag݄ U)MוH뀧M8,7ȗi0ſgB>4eԯg|C⪵j-X|*vl K鋻/-77?s̈́䄎YS<w_vЫtnqe:CA&_O99e/]X g+zI)w+ݷ1_gcƴe=Vwf!$Ynx>Ҩwbѷת!M֗6tiÑ[Tٞ0ƒS׹H_Ls[ШyH]v|LxKnp"r"}9nXN[v2wwAkVjZg5oy3r # ۲fU?qg i^&u[GG|}o"\ z1XrNKT=_=P?ngtEBS,_&^e,ιI/̶ N1WhefA\hL)^Ŀiuȩf59 1 #Uv{F_˳[U"#?a\NlēFThXYGԧ{5ψng95Y Ax|N7˸G\bՉr-O<qD镏/ #nm;ߟgaN04<m _ ӟ!{O%YP%y0_wK`YY'l>z_\id7<'eM?5m\?)2(}Ah#k˰)"iBP%z鎴2SK-,[wD:w~CƮkZ FiWRd[դit^k?&n)Z3L&O~7?F'kF⅛׍[w%_B.WY]a4i<b^Zܼ<mGb]ǖ+3F/ot跽Sj7tZjV{q}v<sq%v-!faK7ɋ&}"w?PmtKw(N[났=&JËt \c{MqVi/ * X=!m\udqxGt5T; / F-=Iwt?w)r큶 gߐ 1ϣN̗rU+ſO )5f b/o>]Tnm,HH˜stWN.Գf9Ϛnǥv pKpx#{3e{i079!xQBƗFXO8:;" oUIʲt@ᦅH3w{rrf6;2μ sաۿ >׾]-rwXb߹j#^MBa T^ r$!-sHVD<y򇿐^~RDYAi~Q5ӏ2T6z!UrQVRm[lXJ#}BؾرH`ׯýjE\IX>.RZdЯb7~u!|տZav� -\qEq D#mN>Blg^C% W{~SC˰9\Ohᷮ"D_i院u ìMR"qlDGڳAKxv]E;q[m`3uϧ ?/x~qcW˖e)ۑ=yGQ>NXj#7j#̉="-"p}ݣu#5ۮ2ǖ2}Afi 9xإPs !|8!'t5E\-ućg}9 ǿy I-nFO^jS&o KgÝ-U삜j7ԵU6l{{"4&wh;r{(dh;G^aFبO*ߴj* KV|;k@V@nvkGs7# xoZ*zݶ3_hG| Áq~I>`:P \;\O[^FnԃoO:CZ"zߨ: 5lrGLF}`=N"fσSvA81O^eaVrMZƎr#@֙tX?Mv>\91+.tׯǵ4"P߻/&i3|7hJe}翏 Ǔƻᵎ.^�^Ú/'̯|_g':w_[; /W:j3;7['/põY_G1Wn)nx]{uqӹåƅ 2#vʀ!5!)E!== QoO ڃ;J,UA.6gvW~帰 6#KCLC˹tgz#܊^LZP9[׸42F۟Z'5:U;੧_K u q^FT#3 m[n^GýȚ4qfn;{AW3"s΁6GOG!qjMj!a5?NŶ/Y >~2ܑ=xO={`Y<fVs"̓Fp/~TU65_ӛBr{¿c/pgZ梂>>pt:b4-] qJ .޻Wp֔jָ=^|RC.vcO#ƨIEeBy篟xީ jzW£{Y%;nmO^Wa[TUW]@7 ;]OX75%?IQגōKqC\a5:-kL`_1fD񻪄쏰~㊖mC3 ke?{wu߶k~"An@/~kȽ񃏐=*'~iÛۡ@\7izQۈ3Eݭ%i45~"+}([\9‸\'1#!E`z?*!5=DRӍ]r!/vN+\9Qs|;/Lwڂ3m\~H;o5z?.~CIܺx.W%9&2u{^s*&ZrVGK8~X!4,+rauz$? UE@ϝ'-G `Q^P hlCZ 3]\ߎk]ɻ\wWn].n7a",o3f/@g"̻3ݕa'v/bHӡo8zX]z2MLj)aΌ#!-tU&;m_VɈ;fmɕ9xVGQH[e heomkcَ[`Z1ȏq\{^bg#Ku\^Q%?zIOMG+}ntW| Puӂ޿`:ov'+Q$nNCDzw\-V>m8F~Ǝ=g6Z烓NoY_+I(!.͵0瘖 ߝbհEȌ6n>vLŖ5n ?] Eμ9QV,+fDB!_!yĄ~E[/"vG' =q?O+ߨ1NR_5,"䞬lFJCK[NTwC]/EeH{MD(75_w6݀U#{וj@ғVFܷߋtc^~;72Zʹ X׿~6ޛl8OUrs̗q.2 J.k~�nx$-?.oq =2)!KaTp^bdsϘ^ͅ78b2~BxcRUB )g`A֚y.htfwe ax\Mo!I2!vHt^с`ede\2m+N9uI"N~|ݒ#YGgdCG{LYu4y2mWqx!FӪ"6`::u.xU,Fld ,! =˼1LkV VLa91U&ûݾg0՘6<J]6"͙E |ߺw4h#Ytݥ}O!VH6lapBLfϏķ%5Ic)ѩ*_+ޙ>Wx ,7d݅7Y&z^6L9|ұ-~_Gƫ �Yiv]=ϕx9՘7fw7!,kCܶKV g )l/}qeǍg)0}/\~<*r%c%r:m7sѳ OI=�S?6!mw"qr#N@҂vڏ叄}׀YOƋ/<׎;t!>C^ nT]U\9F˂0# Nq![>~z/GF.E0uh=R/ϯ3�Y>Q6z <)|)�nhr!ƞ !S]s] |*5*nK+9;.E` >.:/y v5NwX"kmCV>)zT0U]6U9njI-¼σqvݝw3-maZkvn|}Zp}\m32L F_GDvfAF:33nJB%p%H\̟%`Rεڰu'4y,<rf? I^V!B R||'."yiK朝0,dw#Ar%ߋïΫ| p\LüȮ9؞= YYq3Z}4]B`(q _ϊ̾cMLA?#mdҲr5nC nV}7ݶȺ9*q0>SBqǺL鎌ǵ{ZX놗g|S3;f{AGpyvܫݡUWqIE8>_f095\֨&^\7 ޹8s8rДGS6ڱ.ez4Ã5m&  kn fʩ_|i G;߯n6ȭM y8u9\7\{*Ke|Y;-\W/.^ߟZ&#Fȍ^- _>^Z苄㎮>\5Gjnzˆw<L+;zԹ]O�桻<//9 Ώ= wwܭ&áVhxk!>]Ük:Aj()qxn>LIgѵ<MFVʳoFzͦayف{ȡgy{CvZg5bGVU$=ֲ~sg ](BdůZDxǚ2?j"̃gtX49| 7uǗZW)V{g<oov3 ܛ? hla⫇[?㌭:|PM{ɋHYKm&*,+bw1MN)˦,UBΓ^<2oU3CWqqnus\Fc׭IɷWt H.vKk<:v r/\r1- Hڶt3^%WP-C<n?I6>z 'ո�ǿxS?[܌upzծqߧWÒ}dn ES\,މ/"iC(qduC!טj�oBvRp{Mj h_|#;f wqYByꈫ|FxC꿙 ã"L1p*aȭmpͯ-ظ\MOt:$wfx^}`d-~re; 65l(77mPƵי#zx|P"LF]'/:vChG-ײyUMbw^{S{؇$=5SVׯM#ـ Wr'"bViil.f˔a' :_`V{[0?͈*a@+Xi%̻:}+۸׿9hRE5y̯}pR ~j \w+ n I6^z82,/ >jHY~r-38sFОg`X/<p{#̋W_x/Ro30<XϺx-De?d6\MnH&.tL~ܵ9kT,2.ZM z\k;m=O#3?ii/ˢ`6р>3^5J;c9$hdpa!X;:Ү*:_W4^ȩ.gCP?执艌~~>[ӎ=Y} - soևBz7I͖憏.xkp~-n3wЋ;yB.(fu îM Vutف̹KG0K Abj/J#m۲:"ن^״^z@%i _ȸim`u]S{Ro=lN ">mhR1g::`x̶_X?r'yoqX{\#*w!u븹Bh쭧#A]9Jl!(7;w!R>Dj[`2|.tN 2eT˄yWv²Ҍq_DH)ӯ>෧Mˌ/~qi\-^.;t\摰pd!pC^#FU ĻTԐZ1tǶsrp?8,:G9tIzF/D轕Ee<;Qi0%YLțWىkݖ )'zo|ш<;=�fot篋Lթ&ˇ#>_wT)-ռOվG4R/ًC.yTGʾGsL1%;Io=< ˎU׫j]+sY~2ࣙB}῝Ȍ+jtSotq酷_Y0"J1vbJ$^Z1}Ydr>i#ƫ. cLbd|wS^3-sֿt;wԱ3ocXpDݩ3>YKѭI_!5hC.+a^8av&d ]4{rf'!ek"{Á'V½{dgGdN<tQȓ B}7p{Q:c`+,e +% UHG#x=2?{Ôмa3)[owאe4Mg @5F‘m7?@NFsbvDvQ izw#vhywE䠅u] ;_zsHȄ.x躤0-Cw>:#J!qS^ӦlCbE£z§bBɣ#k1EK*7?Y'gjYsY:Uq ;g9lӏSYxxqs)p2ݙ_FX|7N+%˺R;>kLd ^L YKL Z$4+9b]g9%^N~#F]+]DTIB}#Qmv3|WvkFsS_lr G@}tXcSE$tE{Co V7Io#R^N 㛎)rn EH[cߐdSs=Lv{ʵYGqo*\t&r״(S)DyOr"x̄eu&5|CϗPgO ^κU 꿱fm2캲QtiH~]h+j9߬x4Zֆ-5U;!Gb:=XhCv!stm9Hk:zw} ^<6xn ^ԓ[oǠC7~jJh co K+|؂E_s9JqOEg(<MH+Xo NW>WrSoj&~ՐBw!֖[5f'&mjuJ#Q7gcrswG\t}? <YR>gVU>~qZe\{k+듻Xjs>�NNߧ#5g辘9hK unݦL<(r-W/5Xea* R`Xq|<W3&}ړS{Aj/tMm87¶<@H;} 6e_/4( JÈE_z])X?Lq:KNqHR~.]zq{xۯ+rK*_ i7TF_[.@Jy>5D*זv'k/4 k]/tHkDh;+Wky3ycp <=I  )Kkj;~떪_ʆ |N/!pPxGg+xz.[pL-FweD[;d)�$~h<|w#HZ}6oQPd/(! b=\tuS<pпlNrط|x'g?}ݯ Tw~Ȭ|8Rt]rͼ֕띝"ʍp&/C&-.Z a ˼z59i bsALqf 8. KZHxP XzO2+5b֕-xQ$_ ] Ƀ:Wg<2& ɝN 9K/g^u-UvCp͈|ah$,9su_{/w=>%uUpgj߀O>KMNe!w7uë!lQj#8-V!t/&#z6( U:%_ Qe["'F;#uMkrǙ$s!gٓo�Ww ןVQ_W߭,އYx ecavuSD-=GM+g^A_}loWY?Ԋrs؏+|r.}s"m\N S`[XJaz?_6JL]x:ji'cFe݋;>9]XO1|?O/E<vI7?L:lOc: y)DtzxN| ՊW~9g {؆nPZ6.W(dm;Z^WύN@Rؠn#4wb&D}SRwg>oo>nƗȾΣlOξU:n;W<پ[H˿:jkZ-dޜ6茶Y~:}#+FvmZ߯}p@$j;G9 C7 B%mjmZ:ukHo8LW=}WCמ>b<!!$Iq9iB.d>~bg*; f.׮HtLj1 h|!VAv͵ұ!j4Kaǰpw88k?i0ל7lņh$kğ}5oOHlyZ*Evo"y ~MPDS$W<-Y}^V8gEZ_6,_`?<4XtYE hr jԮХ*fS,\ዶd#~^2?"k/�vj-Yѩߟg D+@'Y1=&v_r{ Y4Cr; ^7 <L\MU}f S >XgBzzVH|}խL<t~X늋'A ~ȳ u :kj10M}amd(%/ZsW^9}/Bj;Z  9GWW#Dݛ!ȪQoF!EH} o27>>遤ߊ? ꃘWktsQ'W/ F운DvS:/ P5x4}~IUX"ͽ`pR;RcJ%d>bJ\3,JyDJfWXc^.HM~&@^j"ڃ绷K6 t|&. ɂEF@>zk g 5[̮֜-:&*ϼ\M~C'q>[:+ĩN5nX:t87gL*k>=vp;?,G]|81Cqn)'D鐐l@D]/I*]?-:@Sj$VunU0{_+;]9.|t MB,[%YM*~g15zA?tbrgA#8!aŎ`8m=[_b>aSGJuFes/ˑР_7{?skӪ/ ?Z&\C'H } CRq=vMK.y{\.SͮSd^8vɭXDM]lW"Νu7g\$7vzq_b?{PĺumBӳpiqpRjȚZu9z"S]j0NOۗM=fA|ݾm8/ͱvNC}جȬNH*ᐰzX/ssKzx ȨۥŰ;hQji[&pAd4ض)9> J^<L?"M܃ߛ,١{V[Oi6\Z٪o$n*oB6oVC+DU6KD̚&}>$5]NCB2KEj׈.g ;%~ei5}; L[,4ŷi$V֠ImDKBniGyQ~mTx /Agvv5+ĻTPRtYɹ7G—K£7&,_^ho76!rש!Ƕ!W.#Vs="G *{ۋׇWG֒ k7E7-FRŗ.F@qc4f˚4؉J6LS9[zyİ2z`W$q?_w牄S^ê76?:Oox77u?tbh廞//:Y %,iW!玞\:ɫ'8;^6j~ Zo9t| ȗ/_~Sxӗ('YK_t_?Qsex +[ߑ?&vnR:F^4Ш5شԨtjAcRoPFVڶ4( F2ATIw^m)fV1QM@`^F@*BR+(Rg@|AgA5(QTizįҖdX&  -]k44(udtƠ#)HP@-Y%B@-8 ([Ug*ەzJv";Al3$%H IRQ @H\4؞y#Ja`V^ ^7Uk*E4۵ =`zFgJb qo5Zr7JlRЋҨF9NEA'De_JZHUHwBMSSS|A*ۥ[T^i*ALT<:Ebu*5W*Rģ`{T:jۡ`;%=B?V7=y"Ň+VdK}gVqРTOA5(ɾktdb=MHH>A<F¶xNb PX]p NeJQ~ hVOxqm?S0Q06F䋬 HG1ﻘ'3^A3#QhmdHq &@*UF[j#@¶b@[ʐ2@@5BeZJ+[-mraP +ZmyE+h{;moli~:=PZ 2n} se4F*8贄j0jm)m/8[%7mb my։7F[~I bJ[.]NIZTn5Fd>RMٕҖ.IPLj4l  2 k00a0~F!|'A&/@[.H[CF[Hw&!@b3|\KbViK- A-vddK=uz" Dwc),3-::©ZAJ~%ȴEt4J[Nԫ(aFa]ȰՋc-L-= 扔:*+ ΟӨ*i僆 6Td+ݖ~ʖzJm$H @%ႬRR-J[MZJhАNGYu7J3%ran"Ie *ʖW>%R,$"9 B`_TmɚdCnUqiml.Zj K'A#ehˇȥRŠ1VkuBh^ANLw]oK BU7zAPqA|<ӝ㽥hҨPPՇN<HTCPSoTh- } ]gkz 8aȍd@lmh+h{@;a űQQ%G%]A)-:j = j"Hh5%(XMG+A%KHS8VVֶK.x<KLS˰d&#p jli?>RK2\zb\1i+cڞO li7)}7l(Aڝ"8YJgV2<F#g7Y2<?TC.dXAjmQ(T -ԠP3/`@ 1(+5̎oHO2 %֤NAqt' "kwj<-TQ#i78-kmI-3+)@jU2,-bmRX̵V6 2 )CN֖T(ml&Bq]m+0f-jmIYMAG%VY:W@*Z ,@ccN͸ۡ"e gWSBE,M֕|Զ²M-eRv2i/~#CTFb [j3hmlSbΧZe+YA#Af;TT�WjR( Z2TQtH連TFYObӷ]<qD!J<mIH<=t90KT2+mp3ϙ4.SPMmRqLxdY[2_<u̅wScȖ}SۄRCdFrVOyN:N%J' C5<ն%/i9FBl%eN@fA̕mV,[ 2Jk`89 Z#]yiCade@:Jѓ,@fJSrD]."V[:Sm$֖I T%Oשc#*D+HK<LCAMơKA] ŵnձH_8suD%A̱vg.X`8q-10"yْ nR9!$F%D镶l9Z=v_!F%n ug<IJU y =^0a->BZ(v6=%tAGo5H 2Qm+0ʖHӖFN ӝB=O�$AK u ]2PzHOQjinB[FeGH,;ZAS 1ըeD ROf (HX87- -S;y"8W+vXAzBwSg$^ ֖A r'oWkKʜHHXA_t"%Ad[rQŠ�mU^VsqaB.cxLKĊaHU2GQȰT'TrJ#74@XA} Ɛ"HCC)a$d4\m%UOL%>r �YA13p5 Hpk'-g }a!S[)Duf1d"qgy Dü2:9 BcpPFW)SҨ)/A:Oya5T0jKd^VtGkHN7Nh%ìq!Q"@-craVZ16z!bt;jˈ*"S r-$%AG$PT $'D:(s}ZUd -)E ےu /@"&@kM 2I|HXYAlɭ&HE6 rSτnҞF CSIͭ %*vB@6.Z)QH:םHHHc`HTj5" 8b]E_ ?j+HႱZbNɌcO Z0kDjJFS#Hg7N%h?z=E)hJA.Tp>@ H%hh%Ȉ-*OKjґpBnz B Ks1mġ'SRV%&VHmYE4)ZR>YaNZC }eվu I_`JHΧNzd-I iZ'֖vA2( %e_O Tohi$O\:#CT(SOܴ YĀk-]O 2 VҕF:$0\NqrPlw*Ak*(Iʚ  .,Ikr 'RψW"bH1 RZyRG;ZO t7PFc } 5zSAMT5FT吁d=%gIyzB FF60!2'Ȥqd 9Pd RK`M.H:\3=ZE }aj-Uh54@Xr11jFJm4$]rٝ)P$]%lMzIUqk ,@z7A'7NЖB@"hd|te:Üޙ w&Sj) Sf {SX:I, jAɅN : 1˕7PNI aQkH_ ꨫxm7.);V A*ɉ:Yd1':%=lIK鎮'+_$0F%V:#㮣3q]S^0/[2SRRZbM-'Ya>DΔKHE`F$#O5TрVR,t%!^Iu"陈�=M+'A#U> F2_Od2_'"d.d63 Jec$Hnިcȸ" NZ٤j*%_FA8 G-XZn ([2%UI7nJi 7-oWgP[HM +,)TǢe ]iER^TJIDȖj$:%n; T>2 O�4a00`d$>xu #Ԭc'U*U$FSݨb#t;M&w-U*-ČƬc.Fy e#̨%rJ1Rdr̜EI7FM#Ht' Q5֬v g$a00BQaIhBnNAڝJTh5 HEX$BMX䔨kRHC:/A*^|FZjآ=jB�@BNIhΚHZL^OJj P1.JO.�àM~2NU|RI-2p9`Fe$N2-2xy(kd`$hG(R(L1#"K R%@穢Ѹ֧z}POH&Q2K*Ns4,'Ӂ8G6 !2 b u B.{T)iiV2'D@T$Zj)U:f -Sާ2y"LwJYVY R] ")gRmt#fLI'QSR)3}Rb" EwvJ4 F)ӱ"*E2.@"#Hn85jF R Z:Ҵry$٦ha+HX }aH JI@*o G[A"I)e^]Ԯ-~yFS1˥V/9&A"l'Y-SSa$ҿ~]Uʳ@_+4Ƞ 7|JlJ]‚t I`OZ$]Z郢Yeo*ɖt$/J&`XTҡ] BTiRCYMRJm %֖T$ b, dwF-'fw-4mAC2[[2 轕Ad w,iF*w5&^426Xp$H)`(6\I֖D!X0&S�i{9#:RƢ�7c"a_52;c23H)[R;h!%HXCH驓E$m$HK=0efU53aM=Ky˲@|/Ud (Ʋ)e;e 4\F4AtHT2=C|t'BqetLdF"dםddN=ҩ] D&s�^*VSgAr$H)xEfI$!{֖2PL( $Ul-?z-{+\̂L=㳧b"eJ&[C;+7G;I+Th%,:#z^:9B ɐ [l ѝ_X"LJtf@ZI`ﲂ%Vz)"Ezl:za#rJ$8EѸ3gBzaFa!ɈC�UTѪV<|AAh$H<RSJ&oP4RѠdRlJO`4 SlHGW3xFzZAZu56:è`jJNSC 'dTp4ҨdLt(&r@�z41�UIF .j Q[A!N ! PCMBA1FZ1G%Rbԓ2:^Њ\QkdF.0\$ dԔҨPD?i̲d F. Hf!}W&_aS'[Ғl/tq#j ,|%Hl= OʖD)-ԁS-Ls 3!rLe5RZvSIZ$ٝIm 3%& Z:dQ*A R(=o293Ĥ  GV t*&U-Lx|ԁSM)[tRA+IM͈"A͛ǑPO$Hj?I}&n-Iu+H3nY[j(H2%kjʥsղ]T/rW{L_ bR`%A\C\ipGXpҘGwiߤ)FXT*-WQK6 1β g%zӑb5$ѓ VC e +ά #RV0]-mFW~T2FS.8H;Q%oѤdˁZ[Z-I9BNZc`]5ÐԉQQkz|F$eHi+H+uNH*4!�T*E(IKy%HM=.K'aRiIE+U}%Ϋ75D6TɛSF(w RWG}T5խIj }%=!AdBAVhi]yL5Vchtm{aXbYN]$HYbƟA&QJdUiDyj054 ibL<}z{BJ WZ{}LHSdLZ) R"͆-&TْI]ed҇|a5bTEJЖH/%26vt y$h!_$xtF3 2vT :a[%'S>Y Ud< T4z!V#.U$QVRoɛ=2(G!>*-;ZYFV %ZUGWw0)_oH3 *g2%qV0) qR`+%\3ɷ˪dd&e1o2 դ߮QLjivprRaj"ˊeLa_I=I>99uJH2%ԫSF򦞦N@=ՔJ I"@ ѐKz65ȱQi~ѝp֖(/;PN@f_$֘Z-5kyɡWzl $H~% ӝ:9dX:>VRIc"9uzY]8HY :e ]#!=4Yij͐Iղ 4f`HgIT2nMTaБ"V jWAMzP( HK @ՒzߍMj ѥd ֛%#uRIi]{ѱщȪ^F;'S2*8f^jYOLɨ$y$Hs>:cHʬpTbdR*M&A&<YL"U4UeT+VHq} ]dg0j* U6=2v2]:-Ʉ#[:rHOTôeH2=zHrԔztJ+o aA7Arin14I! ,$fRwK$jY.iPՍv2Q*eheJ%U$.+VN^EH4� +GʠV(J3%G%H.� `S&ۡ!b4Za y1gx!Fb\֣qNd7 UK�Ӓ$_DuVvWRcNL5OX0H-q)2JWS #jJԤƊNk�e J:% ͝"@ `$[ Q"y \JLf 3 u]dZH[AI|J%ZA(i8gEjLrdKRW/l:H Y L8ʖ4qO`KDKj~kI|ȍ*YvgjT$BMԑ12 nMnjNTV^C&n% ͖ ٓ^sTg%%HeXҶlI]+h e$H9k)s;V(Ǥ-]-ih# H.YHpy [w N)HlgVV~`vȖ$��5$ѨMx2eN)SClII8 PGI ZAbq5ZAR]$M%%eZcTZi%H4jVdOIt�7v l7NȔd<M,dۣbdKdRK $i̭ _}&dKB< q ֖Y l6 2hRfd@Ȓ))UC+m)RDyQeJK>(>][$1 rtr;@[(2-F爿0J5Iu� yjb6[$Vv% I $ARG"AbHUS'_JGq/<Y:KVk<. dB|;"AR R0kVN}@*F=.JVTd5ҮÁt$&TD =rAIo$Hd @ꌔuD^"}@-p'@ 2d$i-FA HJ=LNI\i&.y0?MT<K//m(쑆˛-mhKɻ%H ђRZr$JQ\w*%D#- aٝ-Db9HeKUq%)@:VA| %$$SSb dK%.dFzi7)TV-& aғa9AZ[/AhZY$M=q ID&AR@$� ՖbvH7IZH _ST3Iش b&aL�VA-eTYL<"&[L$l;ÇЊ!&Ko굔ҤL֖AMě"dZZAz lI]>g23yIbe$11o2^Aʲ˪dCH$@lݲ% 敠&D9f-I,+Hϒ暓 I%qy.ddj`%V>/ zhʥ*K}L t'@F(A ⸄תI^8]oҙVf -,HTAG/n q4 o2ۂFw;Ԥ$ PmAFL3 n$ZGF SGCLM56xHAJM>RǬHCcԮ-HlIT4y ,KuRyӨc`h`,L "񧵂"w#S@A˖LPYoZw8!Si1IZ*l 2I]ȸYRzb1A*fw\MUFXȺ@y+ 1$iTj4u-mSèDU#UH Th(*+1uWh] oŵ C&QEJivXѝU "+/@b y;d_Yl]L=Pj@N:Y%.EI)&D~ݒa"4T9sgt2fd $讥3JT 2NIOHPktҁQm RFB*=#=j]FOA+ųɔ`Id4ER'ђIn)haC XA} ]RͳHȅh%f2 khۡ#qJR$q rH:kLvb&MįR#s?&(C QCϒ!QOVM $@"k$-hIkmX-J!Ӓxd*@lWhK*K3!aAk2bh JkKаQ1pExIxZAf=GqF$ vh{+H%S!PCd2-+hB?o /R:dIUsVXZD̂Vz3ڒ_ rN{D/NtђDUs jtI-F(CHtfq+Ȭ uVN²%w>I2X VQ! Dom};#kHȅ)/[2IL)/G)ٝDb髭dX9GF*8 D9!FJi%}%<T-)[2$HE2D篡%e%l1KDk$Sqj }et.RX%jmSb6N~1'DV@pwSb@@L[:R reK(O䖎2D 2IRYAnI4"*I-) ےy"Uմ&QG˖T&[27z6ZAfA# rgd'\K)ǺGSɔ*\K3GEG e0RQ]và2 $ɀd4z"XT+O-3d6%H?Ŕ)STٝeKfڒeL'7X٬ |rG [:%I2{8c$ڒz* cJHYMV.L @'OdKFڥyZҕWy 7sԤu; t^@F#6> 2τys{h$(nmjR<;%,28rShYv+C*SȖ$[SERvL{)b0'y w!@%; ބ|)h8kwW3%(tpFXH[&:5eajWL?)^ }4hw-A_ &5@;`'HZEʖE.#@n= Ti/@Ws ݙ)<2,a!y *Y[rȰ1SEb@3ccd(VXםvp>-p|FAmRTK!yy 7OƀNXV* w 1ZAf=HXXțR'43|:X^Kn FԐ?V1~є&y-,Qd&O\Zr1tI&w@J8)+uDl$5 tK "H֖^ClRV1<'%I#2瓩#00uu*";1܅Yy N]dhTyсL2`-9ŋq]<iiAf <.OME!$ vg-d,N+G'y$FvdI֑\4V9!:r3_.IJҍQ?j+L^02(t# stёJy %k:b].{# ȋāLwy r'ScIF5:R7dDO](M%̕Ӡ$e>K G wi 2"@, 2JbN#ER w�&_ǔIe%Ãj֖.HYW D-AΛB`70(\~&#1QE*D%VREٝn^\C='Q&_첐U*I<kj&@- +g VY%6;o J4( 2KG cs<=pslJabugdX=Sj]%{!zRA B$Ȱzr7Sb @29N3*YsI G^&Ad\ˡ'D+ȸYdG8&=Γ GF12쁞<z&LdYiBkKe;(0Ry �< غdΧࡘ4R ccV}#AĈl]%NezH"\"@lRVLRd*F3խܔ rq%ABqS%Y4לd֓OYAF251o2IѠxْ[dDcwG' 2,17l+)Bb85ɖ̾$y ג[%N~7LwVM5 38Y:H]<'`@LJhdFsutF{``"$Ȭm'8R ry\L%UJH)fWȽlEdb5MA,ڌs6pTMlo9Gh- ~Iu0+x󪘐= rɝy#3Iۼ5lМH(+쑑@<4%Ľ @{ٝ.H)i9$Ł7NYivWsG/[A5rD42dN2q+Γ 4BٝfgdU#g2o39*##9-s2:ց~IAo;c5r^4F+%2"tg@0铍3T)qn4dX#q 酕~ܾ3*Y2d6522zo1%Pey̬ %,묑%kFꫩWbJJͫgRBI�WhIzkՖ 9uh 90%Y%ғ,@&M Q%H]#nG)WW0dXdqL5J{}P)%7y-3!A5y-)Mr-) 3%- NKGhoR.d> s&roRHT IQ(P*[rI$S(An平Ĥܑ :E %^sy-dL0�GUb!se>d"1& rAyrS Rq@tNwFRlڝ S-ѹI,cd%B� 3O&Ւ( Af=+5q43)FTdHo+u: jjiݙdˀX=u`*~%L1G* T/@~-GbZUhJդR;I+?[O"&w8:)sԌ/[2G̛'s[u n*LN8%3%%&SeK[S2QZ;UJTr ̑ Q29erzlL% T\w ڒy�X.򌳺 KJy 3V6QlEEER֖ )6Yd&@VQ Zrdib+Hbz+Ű d&T4L<)ǭ< qjnIr<Y:5) $@ft]@O\K6osQ_ 2d_dn1I܅>lX8 gLɄ#XFu1z r9^N0!;Kz6+l^K",M96L^V@s&ߓg2IɎ Y1OEK- LRP=B7\ HMcDS6 2dM͞ON0zfHy^wfAT "y)QÊK#@& F-Z2bTO<|*juVf3d (&-ْvZ$ZD[AF%A1/=SU.#Avt43JqNF*\Ì�g?&CmTDimIzL8ђ&^E K*.1I87F̕arqU*IEe 0{*,dĹ܋@HG(A1e?םUL@ђ  ]:9jcQ3YA$H'e FN$-9;ە 32ieI+DTqEK j93C[Vq-YY%Vp ]!V^l=(D8 :5dN2)!G1_ZyV3q(d 5)W2I"V3 ԜGM  Y1TQM `r`JwSeD67 2 "5;Fg Qb.KkMat՜}SMYAf=zrY[2z5gP-M5$6>kw Ԍ�9¢cd&c[j[QݢBFiМ�6rܚorĊq 3v&+SV`4d73P7rǛI<(@ƠF(Y'ϽLR;homɨ)&۝VӴHrL0TLI'0 qjZ RB0<Ld<-&@:@1ShH ߤ{$pz4ҞuSb73hhr+L* W0^sF͘qi-grӊV"3&ם6"XzK(YO!;sh9PLdhh4\+h*d`<5\ ђY:"d81k 2q$RA9nSb@dx0 qv綘 #AkK|Mlɮ'o2hc4Lt^Ca`<a'IwZ&Dk9I'@a"DK&9$rh.gLd@ ^y"okxX 2ݙ(W6l|;r1gI˙ŵ: Og2 H=DwԪH$ 3y:Ъ9'k3z-Sۮ* K+Zyߵ$7%˕גM&�݅Ij'@F6r&-WM�^齵Dw<WTj$ڝ)7i䪭dykqȬ'SGEicHH #AkܱaiA+ȸhI\v3wSϤ42LK 24SjU Ɗ82q,4Aba ny ,]b$>- ,@&I`ZRºq#ŕ4Jɼ2pLLL?SCL0O+8�ngcHNǤ t+EYY8FBGެ ¸X("lܙxYAeydR SPd>X14*% kɍΨu#iuC$00n7 #<L rBtLMO=Mi'FdXMqEq :d8#%3:'3<Sy8=JcbW %FБg2%|;ӞK.ZR Mv[\KIG$yJ(O0zsL2\IzEίHo~3y s zΨLrْ 2 E&: 2y G%SCs>z);sd4\Ȭ' Stz&6j^dX ^d<h"<!,L9?YY9!$;w rSqE 7y_svX=go2 |TQ3d"F3\=h=Qϥ|s)&�= 3i]w%GJ %r*YB)+8k %J O՞f5𖼥USY (Jۛa'y`:y@sMj4&j֚DV.)0 |~j0L&7u`z5egdDj|FX4Qr ~k7k4uLx@٧@}3a"+~'(O03HkX H&pؾ#WQȥ**«sU%JW b H1HS%s6nah*G9K[RR= W#WRz魭)("x̥a1ۉ{q&i6.$8#7/m,=e.d*0G*Eb+rlr~)x vp 4"Cxpx ~+YJK+XoO`xq8$ܰwK A+y>%_8ݥ3[>`\6|q#u-Eno,ngCnS;.H{^8,95B�.EspJI !xMVDž*ɉKJ iP=ʳJq6G U2/83 wT#IW㉬kM)iim06W>`YB`̇iliX3ٗWg5\=wI]޼7bB;Jj-=) L[egx)A H;+]Z#W`ZХ]%5t׫(Z`&otpn`JҔ[5J8 .Rl6,՞~]M]hJ3EMAXKcIYۍd-YY2⁻<"BɭFVy\Ev "hY&C(!@&V`10 /] 쐬;{ zB99.ɺ_<&#XwiFذ{ >t9nVk>?:vpHT J9',{BT`.>{$iyl%0ӠJjS~@ Reɇ+]'k OWѢ=A~B\ 3,Pr8jY=REª~ S1JW,DĪjb;n[+9 v% ];6sCnhFV9B8aMJO�Mq&qĭInXC9&0koimD;?_̄@HEd D jtFIlsI.45&z2wܹ.)W  _phP1qP877?#\>|vѳ+k~.>R%ޠJ"8Wq*v]R_ N N pڷEc]qnnscZPwQj'څUJ `쒐R "ҩ}=4]H}y9Ā<Z`VNj-ᑮAlG5$")0`}  P0\_+$hw|-Pxt6۰5?TExmI$l1W?pϡ2)ܑG8 bo?K6 !y[7s6oefXWRC 6We"z:p QwI\@(]%! ļG]RݼZA}J\ KGr߸ ݈+zA,Zx4Ag,f~X#GtoP=WȍffM@f 4ݲߑ`5Iq(;C}mL jGv. ܝ鹏gQq@ <1\B�"O\؊؊A52w<nPC'R1t 7Kԭ[C|J##呩Q|9{DGAɬ$tˆR$Ãs -R)Sԭ&N'lAHv'|`hA##J01d~%u?zN=]{7 iF8[&Kb1 ѭZ:]8Dg7)b>4E+GO 7S iܼUF@1~9<Z,*I6(YKQQY葁S##Qzn.09V>њ8v !л@%"iP݄"1"  5Jb:y;"7RVEbיCWL9ҥ~ ^A(zkM4ed Ρ}n{l #^&"k:+&'$X@ NY#Tw\Fw;K X;FIN#| &n|:t$.g�npniqИ.)Pv@gZKbIT.^<m]N#(+Uy)?)3$j|�a}s'Rr{"9NPvǫ7!C-lxKC.- 7Ҷ&A:e^$ikib"62@Sۗp7 E3E3_&&I`s-ZؖW*q TqlP=5P]GĀ(|Ý+z@lE \ j_L,3L w%~Wik~ {H :x6$eNЭ7f5Ohޒ)DEFh$ޤ%qNGn\u3}TE8 !ʜ+?Eb"_䜑m�.l$_sOyWP [9i[Lq19H))+Dn9(M2"#re~ 6n|3 n* {v/Dn4l5#Vv?B!A GI LRZ=(E Y} r+ ~9q=3WEqH _ K d7K7Ⴞa{j{@h+drs]?(QK7u9DHuuuɹz\w#kv8R>MƋ\Y+<ؿ\KbP$ٺfj j6T kĀ| z wa7pyllɝl9zw"h lKvnT7Ŷ.Y嫤pGW)oj<.+@4Vux*dQ*D΅GDE`lʹVEr$WS,%L4s<I/(KZ<nBc@q7%b1jT%=j0FV9|$%c9j0z2Ʈ(Ug0Dӯd죦oԗJ+xFvIfJŕ)>PG:6S4Sg(0w*!*|&k+F< [OX6HX HF0tyYx.)B :zvWs~E%nY$ C-y"rKbh_wj6xKgxmx۟K gv<% 7쒏>\A#a"TxD% xJz|[I׶$Et}$.7f%;̺A 2- Lw;:uf%X vo@xwIts4D>y"5W2t ٟcICj+@ID;4 TEPN3}Vu (舣gW@u W,@j574qJeo>8RV`Z TI\D-e^ynNPͺ`Qf,}tƫ.f\?0ٿvGy5 pi(hPs-ᶻk'KX:>D7dA}A[\+x5?0O ljӢ "f>4 E5t8 xB\W2j\Ĺ@ؠ=aS}Ϸt+jP�AH{{ L}H_ TajLQhx"J%j'We~%d4}\K®XCQ vǯWUZ6p*Pyg;ʐoi�g|K{i@-2գj>P߾\7o_I~ΒO$.smd7Ԛ|-` "vn(}D7Í)@tH J*kb;lWPI诲R$7T)p|JجTASK k؟U>PCnʹ<W4:"v:z"/+�7H!�ɓq:RanԹ G!_-YRMZt;9Hkj:t:| yIyEW (:&οI:&žSD8~$v pIhA)a!@S2q6};7] Whӱ cWRW!ߠDG:xcf( +:ubXj8:z>#=W#dob``]r\Բ'?%YC TtpH",+)yIXET7]j1wÈT>W"5^O^: [rEͻ$+Gx`~N^x`~zW~zĭާ=ZK[ | $%?0d0y#&?stKKR Un7hj߷T2GCWIQ%5g4%1$NaJ%]i _Cy_juD o /=p!\BU9l'6(@ _ڠG+?@ ʄH[e| nJEDjʠAKipy}j}>b>Pj(f%"n(.~U+HovI]o|-IEIJjR]TE {dA2j q%-O1t .D`ѣpj Z@.W~N;ҝc{ܐ327 1*4$ֆZ韑 ~M>TG2uA<#+&V>I! ]^Լb#Z]%rT} KIn YR-"vS#Y_ x^ɺW:Xd@UB>P=⢕2>P!r$^)f-5Jþ^ZF &O7` j½R^k'nd_I, *Bߧ.X _Nɺ`uAG ]@}N.Sw@.P>PONn YZSޔ>enS:"k>P#OHd;{&./_I R&AvE,>)m(j64eziufJPQcyb'N0GCc7 *R#s [;Cv}`..1tx==i 'WT Բy)0Ungx + S|%1Ҧ?G7%dU2$6ԭ1t8v x{jvdIum{D~m0A ›w.'™|<&lL's@N86䴔Vɼǝbkg sl3 ijxgl2e8P bYpKbghd*1*M] `*eA|(ipifJ'0Zp5 Y:A QхWm<s\d$XxvE]jco^j%oHN{ym9/<5"X%- -h`kpI-u=`_8ή@" Ů=out5 ͙GB]7eyWplPpm#afn\w ]6{^BbFv>'Ϳ2җhgx JYqߺ6 $qGXaom$wt]'Bx0>ᐰKB\A- @>pm_I=&P%3tW];6{82jת BxF\`ޡA5>$D.shkw:$W ddW'^Mx%5&AO\ |t>[+⹰`@\7_+^yeF: 矠ߠ6 d(.n‹@A83vs^k ^p/#j) <zdl|"1GKbmI|Cic lHAA\G CΏ0s{нddFmKE5tt1b]2^Q>IIڟXɣt3h _q#m0_w4 xKnNg# `GCRDV $#2# Z8 d?d˾Y7&@ʐv=xΎ HdNiV$327WBt>M eyA7rl0& m1Bz#ylfN7nMK{/})G+>o)l+o}h2{<m@XN^L&+QϪ@M,o$wIm7|A#YV u /E;``FɴCϣR]Raʵf9J$B%kcн'B a"_2qPfD~%U)@ l3>}Je7`FqvL IJ`ΰG7;z99%:@}p  3R5eԥfF j7WvߑlCU8lQ¢] գH3A(<K4SV%/m ZZkb^ J|x!iɱg"S z7hP֓T޵B4ȑrVʱB!…XuĔDlΒ咯ъw6+"P*)HFР܊}h` ҡ LaKD�&`Tt]%K}^^W۳ѻf_f|kA8%ؠ~SK蕜cLҕS ީ6OKt.FT̺$%ץG;4EsߕqD>]WFn0ώp)'.,{^.F? 9`ދO8BW< H7 <w]Oy?@Z[ ѣ8*f] F.E�]1mI3Uckp,2�i(Cl(c\o B/PE7|iиnbo ~?"%b6ɠap8dKoP+fG�LuM5 a$=�<W +v.EƱ7Z8'U`|a&"=kg\:".-sj՝>M}&Txza6OH| Y{:A <5 /7)Jq w7Y'!q9wȿAHv.ȒP?BnU2_ Ldz|ΐ]*R`9 W[d2 b@ TxCDu"@:%O./dZM2plztEmxI&_ȡV yu:/p5~&х 79n4~D $ |9SCdc. pkJT\,'(!..ޗ!ףnN{¹Kb  C8qq&L) D7rgR14OE$Qo_EjGB~%s<0|%& F0u#[7* LWuFH6A\ AxO8Г\4sэqr@swO77* vm@ao6v J@4<Wt^i{un.P [?[jsd4}Eqaؠ R<U3p8vH!a I D;|X%!j>߄~&AH&}n"\?* =-U@5Ÿ=,AXc '?kz8k8z.Z%9d@Kq|-d~{88WYA'iN* 7i$tŌ !|DM!`,WG?6Jڗd]Q .yvd<Nš`(vj@#6@z4W 4ԥ"][Ɖ;@;ah=y[%!� Gx!~(Ըa)H it)3$@Y $(Ge{@(G 4 /2:UIH!#IG ;zTd'eR5 r+*)�?m<:Ջ؋Kh KP}ڠ[+3-</ m ´ĭG7>uזs ݅k8sy~厫AA _I~GM= w4z |ey-~2:o7E6M]Y2\o<&A#;(8s@%ؗ^e4+ྮHVwAx.w5AF:* :mcxژ?x9PTb@o0gs#&M@~#ePf }iąqei1;2w+5nIɟ/IuD5Ƕ@Sʉ1q"@S>'3TI(>M-^`O+ܔ'Od+' !?t#rUH KB9ukʍp"J*gN %Rg6ȒA̾AZҧ|c&2ԔsD7ٛN&8Mj!%} eoX ̑_'\O /Ho.6#&@lCg΁[U.'…ӗ7 dXntAS׫5TJD$wd,'z>_K^ fuuE9nrM\W?onMbGNmCdJ]w;sD¼ qs".nB(y+ԗ_hLS|{qvv'J*0՘s.s7S>ܛ/(7r!F* T@ ݝɌ3oM5˻q];f֘;#((i:~d敭ܰ29ko..nB~y+)筰;366)74ywPy,f;c-1t Moϵ>zɒQPA9:`i1b#쭴n v,Ńy=VLT`&:s𖼕?V@UtIS;n*Wq"wދo/ vqAkϡ]0 :E29F<Sh'΀qBRy.E7=swV+u` . 5A7 W~ B=q?j0 B=#CV2K$vR5i$\=�̻@w"ki:nvIRLɐq=L}"+G{ʣN)0-f@yp+~y(Q'|c DbAI3x('go 8.pW }ړDX`8lPOA |]P aS%qDCcW|a#?ظ{IG^0 VI0]晴yh&qƯ4G(~FMe&ܗNZK \ �/yN]ՙCm š] }!rP5Y ;"BH~ԪC҄S <vww!CTt) .}�N'S~@IH1ApW0l%ōUփ &u-uS T`36߄o9@[};h(Zv#kL(y0uֽ2pAv+V}zpKWrYM“ku7hx ԀHEs!/7 ]@6ŀ,\N>L Hdg+Y& #A5[P=`[S$ٽwdRAwf%%5`H(/3]wxauubxiH?G28.BANP-UI\Fxq|N9v\D7@R{ĒuO^}I2Gޫ (t*M*-h)#ރfGU lLv ףcAqx\>G Y$8¹D9Bzkw|0oJցV;\7#EvjR>6`jP<6+s4@~gjȞ)QڛN _ siA$qvGi7<^faoF]a+hH1%Q 3@[ 4J`Q߯$A rPa#]DEHv+[l9F x? F|lA+mA xXMd|(7'f ;y |j~CײW].s"+Gذ/ri56xy!V ڜW1+J*ʯR,€@B.!7$X{\p Vb[dj1+�/\o璤%5BxZ`> Hx`)ELӭ\wfܠ6iTI7]nBoUC»p߱RR-UIh7yKWb( ĒfݜQ.;+ČosI ӡD9\kf}v mfd_}W{ R@M#�gPFa"UG]LP \6qU;?!f<P~> j!AfPS{ASe5thnd'Āa@lCyqDs/yrb\z]?XJ,<뇍Q׎tg B '_ͺ$~9D#i5 T⥋Ar:tX,p7qVced iVDFv'/YWH BgXnPV<ڙ.X`)r)dIH>R%%md_ȑZsSs- S]~]sy`gV`TC;yƶ4dQVɴInyi*0]`ʐeA3O ͒20< }~y�`27yڑA1kP+ғ{W%sȒi-,I'8 dʺw^kEHyjDE%C^I0Sh#ךSx2GV` Mm@t\07v@ ,*N#u@uWF;f7_7nv,MMnکWGX ̗ Jj萦doBP{\.DIܡih}8v"(D@(<H;ATT0:4Šxc(j[ Nm%9-[Lo叢q kKHPAFs<: zI$xĩҡ>r<bl悚},)qnp}zW*%b6O&Σd p/0O;<5I%r xj:tm9A $SO]zM,]E; T˶DwR ʝV2e)m wۼ@ܠOI9~;e >xN$#tz+�;Y;7ةuyI T;#ЩAsߌN{p?T`*Q9$sngX<JZ %ۙ=~8ʯ8`D7רS*tƫүSWm Oҏl3b1d Ui)KGM~+ Q<l% ΅{Jl"^B( sa1"oĩ\ yM( Bѕi yzK~ waR0Z`kP=1G (x]n(87 dO3�LO-p)>1N nx}Fbj\;WC Ɋk<;I 7l^lLBѽ%np?7Mo {B2(!ix0 Þh<EeּG 7)_nZ]>ݦYJ~wI<O0t}yȃGUѳc+�,Y tOn"ؓa̐Hipٵd ϗ>ޔy|U`)-VAHt.u6}v"G7aAl28Dw*WH0TI@>WԘ8 b_ +9HD*N<ZG'0Aց< b*VP cOF08\fm@lUv!84O_Jأ\ v 7!gwZw ^CEUnYKj102 8t$dԚxG \|zPc/ꐁ(s&!011`ܠ>(1/,C׫!16t3:eBuuO3uA*Gi|<Gi ;ג+ .G=N<Ξ^s�|OWl+w ąZ02J4O+5vʙX XpU%! TIH]-&w 3ţ�BJ @m h^-آA}U-D!u EjOϑɘlA}6QOߘ)-0M&Rqn{Ssn/g�Wf0% 0)LW%K 2=JS /6JV!ĭq?<'z Fb6=Լpe<OB5pJѝ^ $ ֯w4 G䔢;'LIS SOS6|Np%UI 2r)F:fWݤ|Uw+*@<*=ꎀv:Pz2* yP_D)Qs▂2@Һq-$+vXH,AO~ۡ!KwP @)X&A-y,6CDjPtף5/~GKF縈ĸA+W PTђ-})hY|l"+U;i, %|R]J0UD_`CBJoJ ~@fPe&+~\ % ~/PC?GcT >%sÎW/hUQG( 0zo?]هL3n?Ia+ |֘El1JTJ bx5 wi_<TI 3A,Edp,P"(HAwEZuC2Q;"R T;ٵJ敭@-︶|y@K f;w<$bDvh@IdԤ9qljݑ1LkLy+0Ux2(PsSKo%wɮW< ܒU2i$$L<@m$ri5*Ze* vGIA=mlBb>rOPW7$ЃF�CF>65Yi0K?Ku٣no}~rܠk@܏#6^ >~t?}X`'<sTI\W3dV7v)m`Ѡ>O0wZ Q<DЩ q5T3)~ qHARG=h< L#P"W6ng—AQ,㉔2T;: } <<_Ih[~G:Ε1<T ~Y ,<E_3Q-|莌Ko#޼ӟO({8s D:q]m.<emP%ߵciw3_6ALqG@9>_%5 jNƅ71`@jP%qr]a_s$„H@eSlޯJS#i~-MGC ,QWDPR ~3gXdNq#3nF$p)RKe-Ze=ez6+ *`$6--L7q׾Ak<Dn֠ޏ: J(z+At3T ؽߠJB*޸EХ7Z O`VwFV9wH] q QG&[2nP wvjNu1j mV XhTEx2`ѣ wɾ7(@`]2Hɗq);S!HxmDőy ^#Yx ҃$ ^5nli Q?4h9$# _ly ; ry}:бqǃ|Rͤل)KPG )O8nP8vE:z;$ꈽÝ+&AyAc 'HM.A4c e`Y4N CN8T #ϲ {Hy"LA׍}M*S8GUvC}p v2UtsU >sݱA̻lbc:@ؽjj8Bw1t`](FE+ꫴD%U}is#lFyDx_ ԭW^.=*Z ^  $ 4AI1 v0v5iF+yDJ*#uip|A8^QČ3N ȣoL~ EvT: b@@o (~?UQЋCz7 ܣCG *]ۼt*H Ibjѕn b<RGcRp:8t TI'R DiA yfEAp%Mg\rӴ+ Y]ڙ&.rH.aޑ@8(yh8OySy/0k@́@R>*?C:|v?.``(Lc@]Asf$W+Yz@d&1%'paTeHK`VR`eqKdGCYqJj<3:AM` W\6dCw6xt DL+yEb xn(jΎ%<ř7U;�ڮާC0%q!7Y]NYJtv"ZRђx~ ĵz@ b"UI(K#84$25 s$  L&/oK)ӠCëdjP}xLLݦJU`}q&ad8 Cݻ@ٽax=x3H<vǫcAL*YlomGI: ½??0CVM0$4E2]{ދra7 `wTEx|zn4)?P@ PU<L J_'-mG;*j%X~Fy?U`>*5G 0#_fa L @2ǩ j $FCm!qHGx!~c@@R`Z LA=.Mı{ vP9D"nxSth#tEV D.EvbF _yi:a&@Sy~vR4ɾ5"8^%ѣRA'| LdPΐjmR>:AE[ (3n0Lo=xҺcg)sMXkR`�:H3@7 Dftƀ A|fH~MQ:@4\^ĨV'|4WIsiÇ*b_j\ȸ 'ד itĹ Ϝ\Mi8I ^`NRmk#X߶(  o(e ++^7/n/t] Σ W (W$5Ms@I K,%Nؗ. 'LFK<u)P  Ŭ mbwK6 |(a歊kfk}?K.3)˾s6_Fzit6FZѣ7܍9jyh)ۋYJ7R*(0'`)PIpDX6,m@I\hCCy_06 /#=  PڰAOP":;O PF l|Aĩ}@713ܠB ajǻ$@U%ax4n$.rޟ`/ K⡪k>p8zN#/o" hw@S}?^pX[{SyᓿD.jx>pQA$b1ճ901J_#(}걖Df9N1iZ`jR&/D8$nT 8$8h"%6?AL\p:} 9z#f( c~eE;s&D@W:;x* b͏݄Q9VݐSb<7I6b4 ~&!fq9OSB 28'~^ C2ynk1ؽꊵ�=~~r0h| F~B5RWuH_!H+ԞR� @_(yG/8/2d`ٟJXɯ'^[mp{A+_z4A>^d ؆5M] $GMTlu . vW;M="yWJοzTL[DER_I) Y k+>qx#�NG2 YmCF ~_PEsL= )- >u@3=0:3>0y]s($l)<5Ôe5qG+! qƱMd{6;83u?x)vA=#769q:;wUk!*Ct)P[)ϜI>#~qꌛ=yA$W=Gv3B_I5^JS)͔h@rZaQ 4*PhF"G~p^z^~B5Z*B.WZ[7oj'pf]זޒ{!cO/4 a쳐0pJy($EQ "\lZA�.d ͤr"SBba9Q~GSO v^D%@;!(U.W|[ 3d!8V.~%w(KgGmݟK.QS@B;S3(']E -3 |T*05I)tZH2@yO" L;m&{ T;a[ˮfNkA<!Zވ"?%4hԪ͌ tX –~s\tjP%S~6eXU2/jk@p*WH&Z >$ lB\H?W 6Й Sr%tZ,hx[Xu4$!mxz 2LTRkP5͠Kb@P`jSX =Nݤ#LO\$E@ծl־M>UI-ڰ}c;bP WC(PT@U2 ̷>_*+-']ph5F>V[q"bh 7z4Q`&Jv͵KI(|_LQ9V%}[iJJ` nd9J۠J8ЂNPF IX-$(g(W^yeyI'Yw9Le}-0mj\i:t\wf!' v cb)kZzUluHpim XN4�:y@h'(w L VC'ij* I  &.A6SBel|e8  ڿ I{E^뀸Vާ@qŵeШ0KÁq_qu)"3H7MN{!.77ƃ=o*A$'xIKN?9B* YwI!h& ,0P  !imP{7J~"Ⱥ1=/z˫@ եŀhYxX)MR4 ~Qgn7sT*.~FP=zh7ffhb%c7RO nx2wI\\@|X`&P%A ?=r։@N0F6oJBRodtW l "ilP3ie(U ;^?0b&ݠN�fv -͍Hp2R7u<|9]rᩨ@(gϡm0'uX6|t ?$#ov ALK,7[A4)66MR ƖA99@DUI<<s<UۙY̭@UV!O{oqS'#Kj:\./ri5pr<'=GO&FX0f|dG ^t%1M 8m^2ٟckC!sP9q$t!8 �7 GF] ?Ż"_I. }~~819NWe~V3cAD᮳KqaA]64O\3g?!kvv oX i}2�—##Ao_+(%1c]vNjB )/{l#]W 2Xc+ {^Zd$yo\^yK*;p {Un`l.$o*MB|@1H 4fݠ\(0tȾ43b߻Jj8я꘎?QE* LS7))C< M 6+m ,369e>mO!FS-}CPxSnS}Lb))χ)OAI9[V&R=剧 7Ts"UhJPA(K€Y:XSZЌ}(Ebq@UkL+�eoʛbsbI0콉@ n9#%T_=RN+jPtu cx*δ@SAڬVރ޼,ڥebM쎡;0Uђa]gLn<vQÊ=tm,[rXhPԢeymATM ,B,w( f!\Z4-հK|Pe ?󁩐~Ub}w)E:;.?k~ܷ8Zwe%+S(<v 7:RO.0Eeyj0h)LM̛~r<\k.0E /M']2{19ySU2Ri)yG(0_\`#L߹{ȥ$Mv8xXv}5jL]|+Py%!ϸa޼k/D@ ~tx  Iu/P[fٱ2^!UɔKd&t<PV|`Cu<#Q`>P]\JB^Y>eDY RE7ʨ+= Ҍ}=Bb`jk UpH !stxYR�È%a9)Z|* |,rxS!_Z i2kj6Su@!\oF\n6t-=@1b63K3ӻNn5~PeأD>¼_0q%#( &es"q@%rd ԲL>A\ 6)=CWo<-{KB~*6AļG:=\`ذ' LRl`xn^\ʼnTj}QYd77WD:ҠJB(} &V5چ_*yx8EG<e'<8]2y*Dq!S\0qq@�mWLK~7;#>?^'҅PS\\OQхׁ!/DR�f\`jP%t^bDYHUwrMX vatRXe8/d,Ђ o~K su_Ĺy1@ǮBJxp)#{KƳq]'_ *QEE1 q}>jtukRvF*Uwí}e]Qv7m+RjpWh:nx%a{I>ësᆧjwocJbwH.V:&n8[ʢ5!$N[6v;qp]J۠j];^`|P%qL>}vFW/#6p mKŹy@#. g* ]F Z *`3[d, ~37tjA~"3L ĪSI(f^`܍!eKbلeTQW摜WHi~'Bȫdod9eiDHM\q"<両q?t*PD b+. fGWGF'x9>S l H?/RmM񰵔p{ƒY=Bx<&+0M Dl,-{l)Ww6ib6V5~q@5C93@N 6@DV_} |Aa8LQ BCj*@<ҩ4ߌh]ډU;0sG=G j%#X-:܏ƀ`'J  AL@AX jHHA@ɐ ~ ^FvqT|V&zܽ!*w㡩7ɾs^=&?Ϡn~I|VqqxR^xy"Ĭ@a3n<L/x k} 6"v22Zn|5QфeսKXu5!v;qxu@$^DiW/J |q3}%�_Ye(֋#>+Ճ+So T"K!gd` .q bW`hۼA}@K:B`{q2PM3Ml O`Hؠ97\^[ DE ')!Eu'V9Av%L;_J[\RjMI#~*Z$ql{c6b2y%Urɶ6Xx mm!q)v-IKVKY_.%x-f'y F֚x/`+gNj~"| T^WX$v;-.y)ʅ@Qh ڮeO^H 7!Cl/=w)AwteٔW)A D{ɇgYH ~1mV=T;Exe%+HiS.:m! ̷ Qe6XӠj?Ci0|qh0 #QB i0c6;>5-AC~n=xżm0` OzaA Pչ1tcA-".wqi0.M+XޚʱA(tT LY2Nv.|z;~G4GOGƥAuu:55Cn0dIf7N.ؑjĀdv Ii: >O7t$gc8;0ͿASH+qH4(GG3F ?vAGw14#<T De&wv 8qLINA6&iNmi~*qwϻLڵ3DAIJ]lļ/贙QtޙxmA._ALԉh<8>{s %!mk4)yX ڙq A3'A! r8A)IЬVqj#Q`Cv8 jP㙶! H. E@'N=*} 43]Nsjci0=Ek@tm!u1 a@'OLV%#Hv4dmP"(n<O<WEh| li m::!?tk0; J"kn�wIp /FfR} .ΈM J"æ`L8G:3t|쮒8.sJd(-x2hPQ9%^#C |i 蹒A/ kJLLѠ$Jr 3m+3G7{-ɺ|~:~wlFۙ\/n0jA 6P Ύ 'ϣ BH bޡbu"%hs?= .N,;ZԼ87 6 |雽Af$I.^U{R>pw@l F Σ^];l"]ɛ$D ┹>Ow ANDp J.mw] J~IjW#^ҝ ZP>mw.iɗ{rr'UL34L "7t=~L^O6>5JP$?ύ<I  YL1qO:55ɈH jN '{%\xz ~ !'Σ=qHT;60y9A1Ofn7A>u$mf']72EurP`s}mCփѓ L2Ueԃ' Ė2?kY{{]\ -@}kO'[;9JwaG8~%s PTT܊u B@U0r{9tGMlÑ4> B֍$Ch0BN=1᳷AɺP%thR5 U_ ʽDoc@֍'!'.w#C7&%!g>*gsRƈ5�Na^XFnPY:v|;/#<E!AJc%vԼe!2K~%ГJCI+Ȱ([aM f;_yɾyt noIJ}J~Qfq¾꫗7. b@x^ko27^PN^ziz*&Aw8 [Mq2}26&ݚw%_ohl1wf qz3A" .#oP+p^f,FP9^z/g&bhP'5}%2px{OA6RqhtW/6D6-3M9_M#Hqu-7r) Ƴ];θr覜vf^iw%s- H]ɂ79\A�Lz0#1. a&Wgx*ɥP`p2oGϔ/ Y"Ĉ}%qDx)N L>73A jF=�| VHƈm0Σ]PFS?䘾k?χ.\B. s('漯$U>:cjO3 ZCOH bh(O<+3%;@(+5!2xXu+8n0|'4>t@T.rvIF'=;fP$7T]WLkAXVf96@m D>6@W$sDD@Lׯ!32!�.wHX69Ѽ�SXTfʐoF "n TTw<tP3/+SO�Sy+|Zon*ʤtH }S5:uS1Q?j#x7<2\Leo�LC7߶`359Gti|؆xi>F>X{w}ds&N8d ()}sPXK+90 Kl)?"9F M# =�BUxx? \\|< "kQr JTRu46&%qi}=45&qA|P8``Q˜r'_ZH`vESZy}aPuZ0tAPJ3ԽA#P^h /Us2"d`Z_*y…327W!T pDȈ=tq? ? N 85ߑ=Imwtt sPpq"hAtSƑqлGZ%a`73@,Zi'^-0Dx,:T6&>n63٧AI ' D}o҄Gp5 ;L3I$GΣ3) %(.\JVQQCiP+J !/+am0YlAfx@T$鸯 qq0de h!..Pmx%M=m @^ ~1q Vb ǚYg>3}!qW Dԅz2Ce{7C}B2Jpiauh1g|*jTIL >W#9tM^x+,G13$4 dowu] l X!UytФ[!fG)K:@% .)P=]Hb3|7A! ]kxP@ٷWutm^}o;oz CBcis";nPVow٠*[$Dsgq)@T%q׾u:nnwyxO5q1wC攚#M1 WMK^} F q 7zuGacuHݙ-P_=<+Sb??=pj0wǣKFAfs(t=qvlWG9!~Pnݼ=a}ڻ$4G׫Gʃ~RUA_ۍ>zd z8o `y¸kogD  ~S.H|4_/>C^-G S:#2OQEƜQZ]{fϡ溔˗tX}}Z?XdEذd3=8;ƉU7DLR#ҡ~*AfQ Ѓ5t>m)xsgdq 2s;@CQ heVI(L4C֭I\Gk`';=@Z[,g <AL!}dAszË4(WIԲdmTωܶJjӱzUWp;Sȿaxe] sߛiDN#]R.@^qs+\ &/ F@TA"T `5x`j0S}ľǬA|>r"AU ~5CGf8^9* rݺCWT4>K ""@hVq_  dIU=93e94~ɂ74C! V1|!srZnPDNXTcu0Lg&lS 3M*r$NSSw.7g29 KKQ1SާSE"9o({dG"y4e/dCob:#,\*&M!] WSrU: xF|\06nP7]̠؟K\ -1'q%q6'L&+n% ]v]BJsWra{.KKәy7 &nN]R B5J=X: V*ѳGt"F.*A~E^D7ͫxh6I_G %C֒tiZq5mb@<*- q hڲSD֘ bnӋj S)-hYhd&g j:GZ@㗶aXxv㥺G/7:Cbd6 FFSfLөP Swz}+Sٓ,A&xJObP 14!?O28`8ʉ|fNsm4dy:`TϦADX(H6'Wݻ9_ S-O&S=A}oHY{sJ4x<K i=Ѹob}fF7qM?$ 梨ucv<MV Zs}_&@MRu4#ʩ4/{p$43x@y(��m�U;>{y =Mj'<^V@힑n_ZoBWK,gd>ǀ}<* EiC ָQ%aOI�DB[$l3@&.msoFjn'wr2Xu o4 zNȒNpwCBuu(/mIx4<ES`S {5=Rfffgd1۟7S_j"~ �TkH׫�* S7S6/#AdZqg]Rs{FMN8 7.2y} n[�5[뇫uGvK_ r͚9t)A)qq%9v6q!fT>< (]=ΙѸ{!+q',SIӞ`A?3rvZɏ@[%^|hscNт)5I.)ę5P8"gJnS)FSS%86})P2_NY>3MKADK]ӵaa`o_d6Cn:FU1P2 p#I[O!':lM$4]A̸xl7qϔ zR b:n72`6%J+ ]74ͻ,<7rζI^1bW DӉ~GHA&DP"3w;uߠbh_2}G3v٧xjJ|f߯,_Yb{fb\ZS~ h;S) 9Q?z}Dh95t'G y풺M<pY)J#C֣SqmygO^-A@N%z{^AA'<^jo@䔿[%q7|!u#AQ<lچ =9[9u'qVJB}d{Z@(68[%_h.w'MS&ajyf/ º5RWĻ8`T9 h $; gusp7Qq6u`2W>S. 琷xpWbS} .a@SoCώ#wߑzP<l/epW(wWD-y`<۟KL~!A^ v߁`j<#l7r~@hC&@qT ްo+@_�{O\^=p>_H4C"W{/bf#{C^Ф#ՓR+{Ww]@5iE) !@-PS6FʹEr!J<#Tpߠ&=ZNؓ%igwk.d"ޅX Gq2Op41(u'+P>PCNeȺP%9O9Ol_X`5gnrv]h=Y tLD۠(.>J*pZ ?Ȃ'S 4>e%V"M]);Üp&uXŜP ~۲v!ቫ%Xp۵#AsƲd q-YcN.A讽tL,%}D4PNܼ{@p['%!ƶk> ZR֥)VLӊcbWB~Qxe[h5Wd6ߠ \m$ <fjy? D $.ߘqnp@<ҲfhNåkZ/{7|( {rKB`i#y@\V47LRf<~PԽ q U2K~g$Wvo yRw\ቷKꦏ*ɥL푊X`^L`OrEˑ>z\%px!Jh0$1/z4h֠ ET|9 Lv ]2Wfh@Da)P=<I6 F*R9/Ov9t+E7_ Tc D7P:"RQQCāyuW !'5h]ve" JDJ뀩:::@ JݦCФHG)R;5JpD⍯KN\l&ՠJxhdXxrmEuHU-'TE!`HL W| %p.36#\JqgU=B�}<^xUj 4 ':YK!Cw Nd~X9'Q]Q^u <1qi:su@/I0u{U2qWI.|:Rޫ}]uAt6j!DT*[/f_ yVZN f:1Ai"%]c{);mM̻$(PpAD@X*u!{ꮸ|`?_ $X_U{-u?Rj%t`\AkG Nzuc\ v"&(ةq1x.<}fuu#/Ps|2x!_<Ģ Ď%[*)}ss8L/0xD1|^#. ']AA-}^|CXC=\w|I> FG7xݯXYw#yS5^CKYA,)[Vvtvn ]nCj\ Z[C FjRmxA}Qpy$n2Jɥ̧B1aA!uZ++JzkP^; )F s@2q7bef$-0}t'"vwj^AG/7RVILS%$`4_E#WnZAPͯ$̼lP+\Z 'bysux*z-bi:®P"AJRxp\ʳR5 KkIo57s{,7]R`h a( b7L#DYHHn0TI(Q#  軞@k `!C!neVId}Ak\%!XHZJ%x#ma:<gf6<`)d I_,QԠJ�5^]Fw$77ΣJ\ݱA|>H  ~N6QH֘7qyw2KB_zuj WQҋAspGV ]B)V?0�| *\U 5<i)U)u* uE1{h}dua@[{[C-WlE+w �_ХlI P,gqqx_<GBid z^ wZs})jGWT!9JSOS2y0qS+ $b{ {hz#542% w"+ܼQuM9N @8b18s2AuM=; ߍG cpņ. #IDtKLIl'9S{>xTp}6}@7 6w'(D@XDPp~ 3nPH" KQ6 ~qE刲kA'O7E~HW+ڿ7GDwĀxY'uRTy_@& T1z+y! Tɴ3 c)z3`oGMj)Nj=Ь <B)@MwIW%@^ T$ ~ xR TXJ}2<P%=uS1t .0mMUQcW t ^d)Pk<bHqy ֲ}bKNkaK(b1l,&P`SnKI.t!".R.n07شdJ84I;yҫ URDl 4 2>QvªMb:)5ϑ=9kv;SRs?@̠Sj!u`u7 dJ[)V3/!"xtD: bs`/0&Y8<pk}+�坡8;>ta5 MnU}>⽣Axt8cTBn8-hnS>{GkKImAN#G_yI: kxjt+vAs ٬>Pk`P ? z#>'2i<&) v~VU&Υ}7F>#ɡ|h0{t0':Ɵ I ;qt.XiNA'�1 p qqmbz1Ƞ("S&P58` (PMBDZ7| NT*0u -2G7 AmxYOT-5!^8)`OdOxt+CyW7(Osd,7gԯ"̑$Fw],Q%Eev7tAUN j4Ф *qļgozOh'uDJ"O?0w v&.E7ӡ 7̒`P TH BJw|z__ r/p5n·#P; ѭLs]RYoJb@@In5̧6C*(w7!<ov`@}-s%dpkP%nz�J w(SE`A읨! BZJr*{}#kV# Ԁv ,PC@CDӮѴJB>qL*0}:5)I{G j:ShR AJ1 NQJ`./ kM 4 !Toܙ{.[yBy@2P "9PrTţ p8z QC息QI /w&iQ?_*'H鿊8{DžGg@T>Dz+(Iy~M+( AV5?Qn31QPcJy+}gD7"Y sm@<>xiARIp&[7vp|=D? lff q`6Y7dd0=q028EwoHΏ QM2d�zOy? m $mJ|/$́poo@ '?>]2vaTV ~5p ݭe=�3FlJpA3s8zFw274͟~3$E7|>Eu* u ->Y;ix^r:^v(s BX^X{/ ]`n)E�QZu7_%*:ëcmɧ:ށ9 | sCJP+KAԪ 'DC%X{V@ȥ7R` _{P߄w"g87UN]{J�24@= dML'\ x׎#nl:{78a|x+ P.Sn 9,,cJ!o.ռqw8@!39jp }pӟR DƲG s5 bC*–A {@ oC3~s7 'T'v?aj~ASe)'WļK!{@&D=Ȩhí@LB΅3^_מ3tzMQ%!WڱGB;A%7$%o%/%w@bs @Ev`} {̻!Uu[EE\mx*ZHܾ-X6 zR[Jn> k_GaO~` Hݣ(}gBe|~a=ص$<o_UIG b<Q SK}D7bAT(Sg2J�,06 ΋&S (\IU2g6*Hu.)~"gfjOE*=yaiJ W_n o,M O thtf<7QBU2-NwM$x2*d=,G\pvE%؛6"̫zˠI0ɶ & bo-,P ڟ<QR&AGx{Dv7nQn@҄瀡(U1 >G|\D&ٽ 0xg?C`:(@L )Sk\ V AGdv|fJ;٣HGt 'drx̥ „*6s~S+1 F=BF@<F] z(9Elu?a>-P >a!/+}>vm)猼-{Ӟk {͠AfBؿ*> V$FǚZڡ#s"T}`⸹j+R Bnh›TN$\`K%U:q�qY$m.I Lqq%TAT!/<{F`"= pnQB:9q<QylqC0q>f@N<<%~iloqtnυO} % O YV 6׍'Sn;.໛xȺՎh' [iptwN 7D{2kפ܆7< L.\k+ mB̫a{<3(IFM';(`d0J}{R| wh aFS_E�e~ �޹ spK~]gjߍJsr< Al@l =HPCEKՓPJŖ=N-Ѓ @\tAZ=D} A@E Av0d=KǍ ԎӭѭLPɺSh"T5phB|@[`rUAL>QCj7zrzׁ2Ҕ٬+'@3@dDU&đ/ qy)̣l脑w=v@lqr =ra7?4 کa{q1&5i@ �xixD߃yÇH^K{:$dC11^g8A<QG}$n=LpzX) ;Cg�p)?k@}T DЋ"K@UJf_$h3zt Y,'o>oSkg7bjwDE^_4JB7/R9s+"l/ D<j@pyo7"|i f-O@W|#ٿq앛+QЭg&{jH *Pk`MonJ�"D%�Ϳ:1Z⚟ckz95Ewy`!S9HdryvvFQ+)<qHM.P$SݚH}LNl "1%7߄qq@L pl"iG`|$DYmf\k @M<s@@Xcg[H1Jj�ߠJ…&n_I=]ׁ (``))kh f3Z5I#kjI)]?-A7YY2:-P%$)C<e8FnwI0OWI 6Qs7@&R=yE@4In+8?C TI-GB@O+OWXo¹E1wZM Y@g@5E5dXrX/Çj6J?'BLqQ`c@ Р*J2~G;d@&O3fvܰw `fiJjp05Uk-Pn`: jAA]EM-+` v NMh L V &VI];~>w*JT;Kb"sL$#(=Oá B},)O 8ϞT̪d*<#>sȼ̇QQzAΫ-ȾAUq|"id-Gh| ʬI# 2ү9 zAmb D"oȨƁDM{^h睷qxB9{`u G KqAWA<As\n<vt@ĝ_Jj!A(mCzT Dy_Ɯ\oCi rA& O<p^y9z$M {Wau^\R dy! kLL1ÛKx[`7 N{"j@&h ı{ic([D'9V^ ]%`g/$U;q()bvn<sJ2t -.@y|F+X7` BT^@6ƃ q\p-W+޹6mhRq< tG}]2$K撬⩨KrmW>f%PѶ12i-m  #v;t&y] Qn|> /]H5^MJ;mHcJGw/wU"J@qd;;}DЍ I % :~O(7"ƍ,<9v܍fӸ039:(@:"Jds`h3JBzh={B . ";l;Wjׁr%`(۸-7-Gzk!j)|Re[72 9ک[ q ||Z+DVt$'^u3ξ9tO x0XfLK92$ |, qDD׽6 #(ω+ƣ'=|Bxdxh'熬{#12܋_I<;ڃ턛VUBWDrjR<q%⋻䫥GOE^pD8]|<zy@z3 %JH%~"}" 9AҮa[{؆7@(gl6PƋ1p] }r(LQvO؆C[CD7<+4*UN.v PspfYt$`9d@GH0R`4q YZ0%(pD rj9gy ]" �n'G nPD0o}+XWvJ, sW rn/hdȿR_u9CCUoDvoWWr=yhD;[`W!*~*-6FDE0*lo|VUFf*/ LսFo%.`B[l9e򎰋 Bz7|gy8!8P7#q&>!F|-|_;729C ln= Du47N boN�JX%Y)o̰9Wsx(@֎X`Nܔ-}o�<i6<99ecI rkCw(:V@!{14Lߘ$/<SahUx]'EC~S%MNDv)i3f:3B96L&RX߄ |"+~UΠpr9K"6�1rQ_{Ϥ;p/,,WZpf`c() :qzub/.Ŷ,$Ju oXtuE$FF68k|,^vG ĭ cCNP:)F{<2wnJb}S wjg:5MXtI#3F#P`Ш D㹒AI 9Ƿw%KgX /}"uTۇXn ȿoRL31w*,vLS>hʲנJנJWYD75(™I?G`xyj7z!xV%s5 aګvt T_Ԫ])Ts]FWٟJb@FrtI2~l3ުd5[:~3 ̫Pyk݌{:Rηs#s/lc<o}`nF�Q9.oPt~{٤>_%գSyBxl?&l"mDBa cͼsjaGExj/$KI7doRoeLͪA4i@Evt4no I*תۙDM$kgsT6^A< B`i L{H-<pwlϪ$Tc`OqQ`Vta@g'24~7A] TwEJIidn0\<ufQQ_H&H1= '2TI3cF:-[ʥyTE8&N ST q8tZptI b]X ᄳ+;Ë1Ȉy Zx!=e3ۉ�j^hɜ#dڂD4' &= iG{)CN /M5S nIKB\\ s.)ϗoƄل˘xgm|  bX c"iB\3 >#zN٠n0WIeN][2&)x' B`xpÞADfIN Ol*ڱ@`@4 ?uop.U{ jGoɢGfcb)mA $إ#0@n٬>pk al{-薡B@վ}F:Uވ)0-{]~\햎#U2a_#n  j!mkYԘ;x9>4ob'R2-8pVI!bG~ js@ux@;A{X%qGDؠ"7(A%dž}?p+ 5E%OoP&X$VȣHa柳DM}'"st>kD`&qAAί0<pl{6NUR#PW C%_'#x4So)XS%a~dxd:86 N͐MO` <;fRCv@M?Ag#7W Ɖ*�`HD %2Nؓ\wl ;CS_aDBNRV ~3a{8\ D$ݔ`<I_%1yx^eBxL^$=zS)QL^ Ut#SvEЗ2JzX`^I @!#.A.W7lwa-̠ 5 ƿA3!ԋ{`D+Ff |mcWD:axu2@`[r D{8&rwϿ@xY V%PPʮ*@/hߌ 4L]˛~rK=@᛹o"#IMaJ NCƼfoW}>?wA{#m֞$i阏 =J0S .ĞČ�]D~QZ 9tlN=eN)"hpי''BYR2O(9c)&ȸ:6tR_JMk"{`ܠ|uU'AbĆ@T`!.+gbu3\?P L}iFX%aPJyvW͉$S+.qnN91N91 p@a߄Ewy}yyH̾6Bql|Փ,P=dX JNdXz.PCcYNlO{@`=X'R 2:ЋG Nhk+86E+ =bt?Zr_܊C +DN*ĭ~V~Bj*cʶ@A`LAgXBZu/tnjQzY87hg 8PuK%ZȘ8E?-yO-EU/V k%}9V%S(0{B*"!.;A4>ui-;h+F}w*c.Akӡ`iRym0ץ{)iU2fS-0LxGXAYXk ̛iL^Wrszio}%+VYq h WE S*0(7^\ O*"#GbJBpk0WN LPw!C4j{@{>OM:aXയy*+4P .>=@Hg杫܆$ َӢšCx6ԆҌzrḻ{37<xS,mm>?#P ;! zkKǢ"HCԥ/<*4(7Bօ jsRxNP/<ז1=J#ڌ$9ʹK;S=<2D`+PĒGkf;L<AP Z!Taᩒ]gtI% 0 SIyAt9zJm@<Mq;;ajS'2!΅*)/<Yؓr }>bpOeh-j9͡v%@0c,05UIڧnRg})PB LqJb੨@ =竽B?t'W%.('!?WytDvT%><_{.;0*B@} *P+\7;Š]%NîЅ5 'u7#e׎u[yhҙt%]]Gϥ]10]_\./\w wᵥA4 I(L@{ ׅAdtwWRM7.D*b R jw@ %ټ%^ 7x A]̩ߔ1u\%_ 7hKy$nvoЇ6AURs#z.)C'!n(s?^ }CӼ/26@oB%AZ T`fm eh:S "/$Ǚ7I ĕn*{=itBb1q:en=�:.PnU!\#ߌC+9zt<JN:dp�֬Vǖy`\ xd5(XP Sw^0unj̃$ BvKs 2LE %}'x{^#t/F|󹱵,PV8O%J(5 x| *z܋D'dr�P$dODlPsjтK@x.f{-\Ğy|^WfD8t(0?X fLhq *X^N[P*?0Л5fH&+(@+EW-vN][" { E6#8svIͻ!4t+]oݤ xi$-BBڗ9^xgjEd`Lqu9kO:ŪOŪ7n.i56( 9Vl Z.g Ft^;ҥUE*W%/r~EЃ* -+p ĀH6/@W5/":q{PU> ٨k6ߗ*q7K[zppx%xa$&+Ǯ";&N.+aOޟ88E?u`A !_dD%DuI]MJCމP+0U|Q`;v2.� &ZP;nA~`" l 2%u@@bw}`TGO}DpNH !29ea@4Q "HvHLsf'V{<qCH7nUEjNS* >: kЗSz"I"4gIJ\ûPZV& c =j";X"p8虑ݽW9A9q,S&[vܒOi*+ n%+D:$C@ K?'nXK: I(mW[%!.`.{6qg. ֺqҗc�Կ&x]Ad9i7PȻOYJH:1ݠ~)o6a \fSaZ2/8wV2O-nM]t<�Woj:O\%qvd<}EۇF)Ir%}DF;@E`,4sOMWu]y)0/#y d!W޿ȥ f*f&lAj@td\QVF7oP3ni``qԎ]1 A*A4wPo$Σ+KuX6`w,0}Q#I(@IY)i +F!8h'|[͡;"_Vɴ w٣}Plu:7 W%1hըATKURȯvY  F%b(Ǘ"=s 6CMRN[{X Gi?G{*QU2M T 3L;nRM<#TKzП$dyoJj?σjs:# z~qJRuSt <_tc彣M"P v*qQ &N D�R:zxgfx*Vs!c9-YzOqF* x"@RgH| 9UR|)A(UI/.Du"OՎaދ=9AqfJB=%iO7I�VXлv<Ls j1P\[Rumb&SCv'l\0oynv:H+[DRa:~􅜞`o1D&܊!ALg%n5v"9xVW贻vMW} KZJ z@[[۔B)Z >t_gZ >j@ƒ}/DeV-x2hqA, `URr~G1ؠL^W#|F^ B B9dRzEma\`w8xڡQߑs1ܺbG^5o#dkz7!~o d p-;qaF KjtH7}co*GOhR"{Éq#H=tIG (F*@q[-SR z_!~ox6āRj) @'Ri_\J]S~B&+vjRJjdN uOU:Ri.+Sio̍||Bg JYYGd7 ̊ݹJQ0>:YPNxy(t%a A9^ ˣC*c7(<\A> ~AA_B`!GXWB�aܰD=1A&,JϽ 3jtedM=YmM(@oʛb^oP @끗W*{ǃjgl9P} q=o9q}^׫Mn"JB9y (] jT>Y"U{& ݍ uAK IJ]%qDlm S'ɑp]CWqxgEb8; Cl&@)`|$|$TGCV͡!Ժ\ _CѐEW) Cf5vH[n#{(B>SR l#7foxH ZByGK OxZu DYA%~P .9ޏ^=^ļAy=[ `o:\^4od=%RP_^7 CwS. wȨ=z*z7>>r1RxʈX)Ū[Ф `u,Q_/2GWߵe,>L~øް5 Q;v|G8:Jb1蘘-l04;oMŌL{2&VgQIBRCRKk9vI?+R~6dճVw. AT$ߦMĀ 'T癛K4uVIxS2uNpufVQثDvp!Tgh~4D TE Zy֔r4^w >FXKȃn&~33Z~`&" Į:ؒPU•Zu)ܻA(7;]>WE'HrY߯dw]4 T DU6H\ܝ7RבMeV05OFf<5JH*jP54Q/-%&|_7s|n`@hA]"R}^Q^ Y]I:؊4!�_APٟKyK}`0`vfnT>O ]! F)}7F]2C~[ Ɔm0Q{k0  KUai0 gQ[]2L KSq/ .2 c�=qaqlGVA3EZ6auo0c[TEAnq]9 >pnJq7(*ŻVwq,oP%Ck04|]mP'yG !V?nҤ;Hq5A5>2&nr4Uwjz 2 lԠ%3:?F8踻n GI` kvq:$ŋm7)l$3|t 8= YN<LsD2ACK16)N&.L# bs֎/8ÜAT$G|@k̑Nb Gڠf3i7-)yt$Od۠x'w*k3Ҍ~`va B<ڍQ 附 hRJv?;j1qaJ*-sb@2SgIi[攦zO?, ;n/nM%qf>U2uZJQՠF>L Ѥh07 # jg3əD7šART;%tl0^F>|K& ,'WRl0w!m |hRmuTx. |h%J B#ljAW>.+ob]נ##7dLUTz ֮ *ʴD j2]Zd`7f<X^fЃoPd*IԟK:prq슴pU* @QDmp #6v.Ҫ˗ s ߿|@_;# rC BTNYGwILDXNrr#W2gֳ-| F+0 "/wg4FxI%mBi}H.ړADєtH>KB.ձ`G꒰/ғ(F%n)7mKj)Y̺dz>v;seZ%D6?XVxn3mV&jt8Q%}$.)0}'HwI<&"wsPN2'&ĴY='d27o׎QJǞA0{%!="xhR2cl0eHf%\6grvIجP4 Bz? 5ɤ ĘU2cl,34qwXy |AM\R[4]{>O?.s4>7Zi 3ɴwIsϑ$#Wڽ㗙y7s}"pA+B;йAqc 9Y2=07nfDU%ak Ÿrpa9%rwf|\cbe{)b<$9/쎑u CHx.]<m}'GkPG|A5),79?TA HF*mk)_Jb՞ )C|,HoDn0?ӵgiP)m= m^;G+|@3yxĆ}%_=;"QrГ t6xC-|<5e/r~%UHAFofo'l2tIH ) JoFڂ vAO'o2mk s&?kKBBRj}<ҽz} a;Q]~g3{4 4WWO)L 3j6ssLt*$ Q)\V<q/e638ׅy!a٬T` kI͞$IR S9(LKRְ:AS'\DD; OQF́0M2󅴙II 3rev3KT>A HnӪHsM3AzϥڮH ,>0h,Ƭ0lDJ $|,'–z%N`8sO(Q eUh(Ni+3nMʄ; kA U4-(Kn+,<ϱ>$!acBT Vϯ"&θ\ ԫ�4\Da@]2%5@` GO;d7'p@KI٠*a)inɝS Mmb)CKOK`Xf+ϣ#0y. CHSґ!_I.})31 7Ӡqd> ʾ$B]R9R9{QoKz (ՃC I<ʏ^1:<}N8?OH;<[{ɍ`T'ך6[3| w;z+<_r)4/9sRyH j#d >WKb@VZsL\ܒWvE=�7goWIq78TPR B.E]#_T_ LA}QTJ ~dj,KIH%9#7傩 jGDjv#ׅ{ukx{AkAI'tZ Q7&D7HT P=`!?C V2Rdz61qA rm zrXZ|geW8LYҀB@t4Gm f^Ǒ)ZΣyA�:AGp {rEs3ȸ O3URltzq@t'CEAn+lKbÞaM 'UKipOm3Y l"s*QƮvꈜk hU⁄ BAֿWCv=PR%tMH%M/>2u �:Τkkg\jԥsh'8.Dn* LVq;3=Mz^]732} `ɕ| I נz@,L,y%ukWgillP%B.6ͅ+Nb킧S]ɟ "4Ģti|j<㽣jP%Ѥ v nuFb];K~ /|*9X.0JUIɊ^v^l0^2]19|8&! /DžwIrrY?0L}�]q]]wK'3UǕT V~ ~s`t!#s =bn;4A`T $vNdpSo:nDOZ TI!w$s@f~ .S6)aP \ O/|j>WIܵPGW v{P%JBAߌkS%+e!o:ox%UQrA= ~3lV}\A({F]<ko"h .~ZS Vȃ Q{c9aIJG yBx<?O*Bjj ゅ[QG֭'*C~> A$vݐd6A~zd$*5߄WґQ_1q8`ЬP}6)֒N"LA(fKs½Jj@ȪV sw;q<ʪyɗk1@|d4yѐg(L}5w!}8td!�pqCn t AP5 s@ʕ$pv7ȒQblU$!?KR_AX_ F#s]Ϋ \#3 nsIblijU;43VTD̼ B1q| )n_0 :eF&oPJΑ7 i7ϡP65 8"T7a9)Pݔ�l 7x[{Ajנ>Ǣ-P%yzcĽ@ J,'ʏL?%K{AҾf6"w?Hy]0} {j"Au@,oJGnh//wl1+{\@οdU51reРA4W rN^&A-|ur~AݎxHŽ#s7f E\dj<w"bB.Md0_979rch*f䊘TIh\ 4_ь]f"Y[ML.UQ=bE [zj;AsLiz3FĖs &( DK :]p턖>AR z0uDND&6' w7'H c"7D+٣8UO38|a<uvl#uԖyrCWR#rӾA)g"Erd~7#~o U+$7W$ )i6)7Z=v(Se\Yr1,]/N�NG :p7\z.n<IrX:{D߃q0,q\׻CE;R` 5 Ԯ})m jo,k4o'1|TIY_ *Z"?]!0Eӹڰ@%0]ƷV fˎAtnjG Jʦb~7 .׍k Iv8[+R| 9g税W7;ձJ4}tzZP"bKs)wU1t;Q(PMJԙMw;4ȝD `pؑpM<B;ajWamwZe$N)i;5;:A4)];t6x"lc-T" 0x4%ঌLd ywn<~3|7B³M|4Gl�{7Ȓ9J7 L5S 䈆%k=Jscټ �~*cx* yHxYxZLQv$gݡvP8x /Ht@B.Gڍ R@L :Kk= ڛTI٨y{LvH?=7 س *I< r6AՎlyt#L[ 8D�R8/ ;Nc6}?u"dͼ0n`OiCg8>ztcOMDa_mq@3\gwEi/j<A& ok,u ݃}[x(h8&NI[Ȥ8JGC Sxj6@'WHW) Lsٗ#1"O7ՠ ;8o7 |g&>|T<lWЋuE'ڥ||URyM*ݟv~)!*/<7G}GRe@HHmv^rA(J]``k_poJ{,CN׃d@~ $X$vlSxQICd:k. B*rwE>tD$g<]A]K|#F3-̑Z 7-uQE <tҤ+pʺ=8&nI["ĭ?w17UF^4 b!yS,tɡ@\o,DX!x?:ox%5)kH vtNwwx -0"`ETr#K|'-M?փQr"1e?{jNwA5P! beZ *3{ F 1#Z'W#'pt`>q ?=)A+ ? rD"}[AA[Cw+*JE7#ݰ?xRTʤ '$ 6/P+'FvIGGy8x){aY^ mA sqvH *̒C# 5*d<@Xg@'.aF*׫Y|b%*jPCz;Sh!Tu~ ̥86TЬƣ4OZ̮[>|FIpqOtHz幻e*M#\=7U78"ЩzΪf9TpWp+/s3.7>%%`(} '[y[8x۴Ov |pڼ4,/   BO~G] ̧bW ~GڂSѣSjU GzyЄ( j\] /2>ۄ7|#e(#.$"w]DrRTmn)ɮ>*Y Kf7;Sbw_G.)eo{M<*)Uq7&]8Lp8Ny85ACQ`zK^bIP& ĖQPyq‚>!T9HBk n]1}@< "+B\&(I; %O?nK*Μ ~+QBb �/X, d2.K邠 n9뇳XA fߕV'^<o]qI^$YbvfbgX*N +n N M$\@oH� ?)ްb1wkSyкAJvxvJ݅Ĕa\OwI7w&"꺈׫[@k" + }P`^ p` v)Rٕip?r)7n'2h0A 8Ǟ 8ly 1н Lj3\`LXL=< j:.?8"ߝҦ4!NRÑ^ɂ0G?KIս<#ZtdN5;?bBd*ϗR�_ekakV&!c(ik#H@VSciMʊV FS{qspf:V`^AL},%SKb: ~X (�:"Q)ȣv9|$|Wm0 ϥw;ǀ=ʬ0 Ay$̗ZG+D*yUryT0ɠWog}e($ͺ$C8BoNNY = ~i)ǕɂwI*uJgj ~?0"u"(:LCQsQO4: *BZeu"Cu:Il7 #uBDN.4ߌvhA'; pphi{� ȣn]'^v~M�<Dh8O1A"7(GtJOȺ+-VI$q#tҌVqRԹ2. x!jdڬ.u+*ru:�&pǼMPs]}[5D|;n3c@dNQưdcܬv+v4Jr|**7 |%?5tZXcx ݄UKW\$Q?.494&aIϜɇT[Q-O24KP͐~} /!ՅMb];W>9q)Rގ 3 &XK6[ZݼnAd5j0C]O]MX{O<|ҢFhz)*ALjw` u<VT lԷL׻Al.[S,ĶTIh VY K~o@(Ԩ@Xn]n<eaz-URHK1M 9?jR`㕁";2y] ,F+͍lV*B<zQR>`/}Z*tod((hgpkq>2=jP% y$%&G7*2)H_zt<q|$W$'sTI f4-߃ Ybo>(ז=/bs0 >a 2j%#mVMH 2OUI^8دVj`AZqLDs蕠F0El'"v(!In!gУ 3{!ꑇn= .h% b:fP l,bi3}w"15ta8w2Uc@<T z.)OQTI9!`@J #zslIn=vIjt]AlF~fJ.&Mk OSG|�Vr)v<B^@7t B|ۉUR%j3PBz X^j/W&E΅++.9- ^s^6~p)lAxWse(A}U K}RF1"aAY_/_ AԎ\ bdcyAse.=` WOF/5[.ծׁI3^'7A`vsWQh2؆ߝ McCW?IH`.emR:a1,caݜb\J[ !K∜:ffĝړRV}v!!74˘< W "Ԇ+T h|BȈ\>fu3ȃd/%xfmCI0YN,'Sh3w7@x 2s~PTZ!mv!2< On0۩0qH?{Dž@KBVh.9t-\K!ª[z|�5ȗ*nS\"-]GD;%~%Ģwz`ԥU9"vv#+s9c,03E:PnIҮ9j]F> T"nPs$QL~ʌeӾBi(Уg+p1t!AKax%S� &J\lЬ` 3 +9:9t=޾> 5_ r @&“,|X`ps-0u:9Zy~%1 p*0Q2d4^%S/051C{Aծ AX+0oRolwE}T Da1"|iyAAx>HpK+^ PNa~nC4f`o27w@/0  I+օ<s,KSǙW[ ۉWL[e;ު" @}w\oU24Q1t3Ҡf:djp@l"ܛn= %QjGBq(hT<; q( &pOA]с hӤРj}]Μ;�AbP]GRx8}6D_{c> ȗ^;}~ANlU]՝`4i ySAC|_ X}�5`{9M\:ؠ*<jGG@ik6NSHhR`ݧjgnϰ⽸j-!g#e;\:%OD'# y"naN,GyNw<5nC!}/ 8N'B̒ބZx Fb\x2(#6Qg KWC7+%_ws%N#nwVLw7@ ܧwƕo2B>U;F<;nP p,0Y jW@L4-~w@<Xtz9Rt8"mwW ܧuX"A PC7ӹΤ] *!u9gw$[r~3Gȷk%_keJ*:oe}oĝ5Ȓn(w5w%N=&N%a ^<aZ»#jYh)V U=n6]`f}κ|ՑS>a�,tr)@\%rh/ڍjj+DZԬEJK}DRJqP@2Q\ZfDUtçS!&㞦T+󃊦ܣoEJڠZ)>aAhL7U 2BUqO >0؃ fLGY2Lj󄞡{_ڊY Cn2 [q=BApk2%{QMu {s j<pV/gyJA"jK5R;! g5@H#V-A~<omm0@3 e JaZ%"G8lw@8yc"a}=.q=N`VHn8YR ܧ G[Gj<Gs6JBeCT-t6Uj nD1#3t{ o8ˡ!A1 9E?É$ȐP-_7S6pխ v/*qХ^W^=AܑoA yL(rA(^hHXظ jJv .l"z3@:_i5_)p3|AdrQ{:E ^FGr  -LDՑaxJ-x^+Oſޱ|@QZ=/*+!QY拚 3 IMԋ7cZ 7$LsA-\ 3|x>ZȬ9gwJ>�"h8KwiFƉTGxg<|_G D 'NDzf�O2nkD*q޸2N;ݚNq9۠Z*@ti>S/D%u7#7>uN=R3҇uaZjM 6G@+ B4Y@bHD Szw=uTsSS oʱu_Z?0{ ;J�'PC}]j.nrjg!O[jH k  ^R:- x"WL{(uzqr/YxpnYQb` ZEFb-I-d/ yU$)^JCv4P*S} Y ï#³j]Z-X(fդY8?O{qLRY`u=|~piCw_3tg%~v\)4u1괌HQ-Sdj6ȖѝG^eW  L~l?6uhTQlIh mLڎW \V&DjTEU> h-PnrIKUԾ9Au \oc\e/[->Rv)ILRL$,2=*[`>Lۅ�];B}q(L!<ASLWwa< 6i޸J=[`r6޵ wJ(OVmܑ͠@=(S}jT(>)<ɃuutB,!W"fP ;(tԱA2xu4;vR}.-`D 1Ȃ T-SQ6O9+P#qgKmDR,3ĥк7EciP{T`\ w6<@ TKy:-@pgxLHjڵ;nq9jsGDG3 >]yU 8v e%~Zy>amΫ&U "& 5k3FjlD*o=g76NS_D!9%@w앰 |@i/h*n3GB q/).WC /9u:.ӄqq7B%RY @'2=]U>"yọ%>31QBȽi|2_q#dx.UW|lD^B.T?y.V 62_w Q1#�u e >υUFB'a] Lcet@=:UFΎp RS "#]s!][(~x[P w(Ǿp𫬖șA$Fn=g7 D>!M mvD03v=&n6GbF!$Ev ȫ@H=w@uʃJ_K* :s#qӞ�=ԠZzcZj o=QbH<2XܒPR>pQhuW&<um8E~ y$<He<1PuL=|2x'NHRωG2 #\?o $ ~ @:6Pe BzPxQiG!RYljϥzxdjA,Hs٠>4 PKqH U ^G@ȰϋyAi rOE d+zI|Y^v.lp黥V %#NЭhD B2VgPM7#nw D|\YZ* \ .@AgQ)|JO\4Ep#6'dٲ@s`xHSO@Wgd'9cas;\; Iz@T3jx(6@Řx7Gp?3#I{99^w;k;>GuGY,(ZXj ʐe,H(o߫*=J97`-YK9@T@n+{G<o+ӰB<?nnP2j<~eCylQKC%H{B5M뽠$y/IjP\RyzGytH^ .=x.rOon%bHY|A`RF x_DC$<}d[ VsJZ:DMi;(A2_W Aόƭ8BGa b#VDДCvLI(S/”ᙳW Ŕ2@߉Ęu[F=N 7?mb&| .}JM1#9g"DPO$r,RDň&+D@Э=d:S:Y?!N)mDzHm2m(#rHRDG|iFru ri.%T`2z>yc P a ̞4QK:a_76>u8 +2qZjA7nV}STG(8Uxe*Haܼ俴"ĺ/tEzukw%uv f:` 9 yޟ_Zr]b  ̍tZX!SWIg Č^߅|A bQ�BM"u E$.ٵW=q%@Hqh`lbLP`l;k::7Ǧ;K uvQ:wK~\P|޸8q" DtPZ7{"h7~4!5Pg bUvrG)06.b֖ agZ.A13͡by6 [ S %< LWSiE^8U˿:%n"@-r(@) E );Wi .0S]JU-;m~WUEITG2xxf\8.PH"L' gSos$#D*iL,Pӄ?m:`p@*@ ˚NYE@Z1$& vA&@,FQ ( zG1x(ԐR]-AH}7ǝ_3JZW8Qaů9$ XTxH*2p] + ©;Hr@$z34R.y Rc< vXyT>TGdS߉TwWb6I :uH]qX9I% ^/3{; +@,Y b#6CA=a+҉q`ĕuz=y?t ԌLQ`jgFV\jq2XtdFj 6 b½C=si@/w�J >oa*1.%,%B}]/$  /J B{dE{j_?[J־PwA ͋1BǙ/n C(nqBŸ\/ BB LCSW;+ U}\ ԅbBu!lj&. ׂsI(ՠS'C #hj +TsTs7 {tݼQhH`9#C"sy(QlI6ہ$?i0͍w }ŷ@mHr}#&Vp(-Ao8r`Fu蚵9ގ[j;%׻%ގ;JK 7Rl5 bvFfruzvodD7JvD,"v \) &ֻy뉼C?CB[ rKdSHԹT4 `ݠ>d\wſUn0A.>a~CS?PA\Oy>:?#N2T܊pÔʗI  etn5Zd$-$HώaO$ RFE-~9<tt/R[B.,܃ZEأۡz <;EufDҰ ,IHP_oX>,jz~ NBӐu@E"G;�D´)4G=2w^tqC[IV zs!JW (@C;PTn d/D+/�)Ϝ9h+@15u .hjZyY,/򘍁C4GfM\+@1"O!\.+iH%qaƼ@f 9P _G`.0QElY p "Wg `o0)C |9Wt]?FJ_O{66CC)xl g872� zu _ٵߨAm1J2%?+U.P'E "pd ©EU* b708][* Au {T .@ہ, bezJ/2(Nw̹xPO-J4F] tSs25P҃zRs0'Sܯrh* AHN.cB>^.rOQ(+2EFዪpV 5H^ZT W{iQ~ZB77Ty04f"F%oH؎SaqƌlG5$\='5ޑ@+zHf|cHgO<u u <C9a嗴+0Xⓗ ) ^1!tK#,$YmtX%mBql|W̫5w)ouD%Υ%x]rYl\GXɂ=v} ;DMՃ.BPA,&%Ճ]+nE02>A<EsP%Oѥ+4( R)L%?=Z| ss;njUjXSY`t3@ȮH7'o0߸S6lPK>zwGonP*@]$5C|q{aeJua$[xt*03)5SԐtn15VjjUBAbuQUS۠SGqfhʄ {IǬ@m1FYJݓ#ݦɑjwb`g͋p=h-/ڸ&WY`2 9N߬ )w3ywKM.X>w#,$H촯XȆ?IV8mȨ.ϔ%xNUi)4q b1۫)^z<Pf)ML=@p. os ]8`K L8NUGGHL ldJ`jWj _vHѸvHC [O8<۴6,)ㄊAԌPg@9l#lj`N DG( zGY1+N1Y &:aO$D-0Ku-ۙ( '4cyO(SR Sہ�z{{^AzB..a#='SD"'r6ig8]`hd 4~!}h "_Z6^1x( L{j!_g@-s;."BL"?sQ+T=xݮ:!B"\C. $ 2 b52AgD| :p/2X f {qS[9_Kv32~ Ɖ 3D/J^d }WzWAT;evGoDGpyY 8+Ee6+_`ҍdBV]#ܦy ܠȯdU7ı9Ͱ 9)iS%HsrG?.TzFw/rDo,jFn [J bFX$Ԍ̰@ѐ=ٻn7ʾ-FϮq; SϺXzsǃOnjHP̊;¾Zj` y*HyP@g=2ޠZB+I=}N 쥓X5MDO| /WK Y"Y>_KFU �5M,e&'d=w=gaYRnfOO,;"=<~G'D\OĘl6BuAZAX~|}9(^G."a#3@}APH[y~͠lw0f-aZsA )+.j&JC=F+0{hȁwx={r8!x�~A#`{we@gxϱ RO)"2 D#| 鈺d:4P(D&!!_#H"s8!2m(EJ <Dy-~^8G,Q|P`n+~>}#t~poPNDh+\Oq{P)dʈ wXC9q=qH_ nܫG@SWdo*_dz=w(b 1b?.^ q`PzUmNB :ۼb= ^CofR]$pAU琵_)j{nSEeRyKw =͐z6C+E24D_p=$p3ؔVQu�TL YM](ܫ=<A?4f3nJ6e�r Qg!~O&Q"XC G3a9TSF)|J $3bi W% Uto>Pxp8_p3vB TudWz:LNV+PpS_՘.0`5*Rxr8+rAL0+0&.2+Y\@%F�\a ?3PABKAp I0 ]Z Y](,XqNd񝨤P~-1x9ٮYljcEQ%]+s<=Yd+Jx,3p bFA+8y\/9-^.I=KHȑio6n/z.J*Cv!}_:m"@p+4!ǕxhZ8Q?g_$I %sTKHP-/0Ց b=8KSgF`)E)ZNߺGKFHȞ [O-oӟT{\ e`ޠ$j*Nx&gSoSO~@t> ` sAVD!DLzL񟴕UK8_P|j_zLALA,r2nyM7@T,Q}F<q->~άF|[ۧv"pf*'yH[Jj xWIӼջ_5<_\  4@#r(ܴ@itc(|*@0{Fj @bA<|_) 5)4#u-Ae 9j0;:vw7Kw"<YS` d`YA\}"@gC Q; 4GHٰZ~?xA?oS07WKSL~= w L?qRpUIFTEy"<QALAnݚ'5<5D;0OI'wۖgm cC@g ̈`@,B;azv`9KoDž"B?Di`߄5Evh7Fс-l3sՌ?PW P5@ >2x4xg<u]H{X X &y`.P<O5tGf$@\+} V酮~!W0HX%kv3gΡ`u/z ݄;Y=.dYx/H:VKܸO *A౞ w]|"()DG!#xx`NnThm3� FHzF)꼑 #X(A'J>uJ]=Oк{@osUn;�g =x-w_K6z7odj?.T{CATNާ-* y<(U Ad{Pu@u㣚n+L1ԠlO8ppdnP -"۵Kw{PM@'J#K|d|Ȩ S}F{|xLA,`uj ăj, s8Lӌ${@TH4QA,hq j̫ȾyD;f4$ñ?,]VSEgֱ7D~Gh ? <\RZK*vHu<d"HP|�CTqsA9n<#<.S &aQjoȮ0M 5 V&8E*x!oi}.7@ %dUCTq ]E �./U.D*́<B1r @p/~=p _$U.1robdE7<6+YAS G<f O+r'JW+PѸE>1x\3ұ ^q_& J1�W|=;ԧ*:_E`ߋlltHtȜAnJ֞l4lRid?G ٟ'X 7CۖM`C[`{:f*fd*.rl*̡1iyxefd "B9#Ėj+3xVҝl"| k3qо' q"raf+v)AO.n q%%l`A=O.Bt>zqX澯ҥP$]k)S *0Si"Y3{җ",,8 zPuEjrǒ?풎EE[Ɂa� j-?-q7U S;SbJ<ք'Blu+$tဴ9 ) D~\@6\L3ʧg,0Iꔦ=jkuTXzEX?;\-'6n@-Hu`.UB 1`Jk7O0lv)6 KX!wH=T-%[H;"s-Uh-P['2B7kΟ-q"97J<C'](0\\j󥺫&P`FA,2JuJ@-5�ȯ +S`f]H-Ai GkuWGDL :ZuiB%[`jJHROp bHg-"hph0I\-a=oܸi̗|xnBQ-S5 :K@Or+ =N U .}AӨ b !cy8`p3(zv) ޻. bA JI~ZR66ay : b(tC6X8uQ@\*Z h S ,PNWK܎raQgw<2Gxaψ vBa9#' :%^') Y:}N8Ivhu9yN85(W{sڜ`ZP n>CTAg_Ӕpw1;p<U z9)]۠zwqBcV`Z?$oܙ1#gC`F \'DSDNw ^y]T0 @WO.r,s aԭ#srZBQzY Z"¢+eqb35 bF`4zA,ȅGpe.wEȞVd  _W (ƅݻD6U%ӣԕQ@ YdN.I LʺjA@.iHߴA1{ Tq)m=:`\ R_椇E |!^ݨW e㍲nF|qJ7s7> Ao-B}SpOD.VA.n;+o-t#uGJ݃D;H܃TmG[@\ 8pZ.0iWՍBԙ E#J{n 7$M"ܰAI?w >*#P>3`{F8!ɴK>J V2;Β*u+L?KwPHpxdTZ86,dm/#v'ޙj!<[X̚sTBhDxHq25{$ ĝ:G9^q"fd/2GrA  Č^uO8؟M}) =4Q@u,eA:DTSJ' ;pزH}ioܛ,y<-a`H_b`r,@"5D j) ixD >@Ѻ n@$r 皦I<rAȆC!#8կ#[nP\Du OR�h -A,2 pjKHC ʐu ON9yxŁ(vʇ`KGʈNܸ3F@gCK7*o7m~aHSāH [~z^8/6URԆ}c*ffKX#doOZA^dQkPCŝ.7w{Hm^&\AVf}A±AlG|'(Kl-@]y !W|E_$@^/2[6MIwlo\ÃJ o(8!rb|E̶ ]xؚ?yfQTcG3JuJT)͔yi^A.gFx|' hJFA;{Un.DN&0WIicה3TKRSzIRVK"u(ܸb^O\Q01p>gIΔt8qetTYA)|[K`oP-!e nM #3,oqʳQ {5K)b c.\KNKٛVi%sT{~if"-yf t.uc|s("z;"s`!Ȏ)XRKp 5 Al+?oD`f礞b+`{=aj_BPzRH]�]Ztڠ ~>u{H`H:KΒ:EE$ Ծ/~cvPe)H@<Rv HG_:a,.r!wl*504Y�TG(ueSǐ52KԐ"uoGȆ2ā p 8 v(N] AuEhԠbfHh0d;;=hQDCJO b2)h4\Prt (-CA, QR8Kog:]l3"fHKvhϴb4[ }R.s)lP4WZ-s4L7Q#g7g(v\#E]1ǙqqDG A#4ntx #%]$Ӄ߿7q03|vyP Heό~ڠZAА N!A94osd(ԧ2vpn\%UtfxbF4đ"q>NNkcH!8ELosDxeL0 aS}>KB!o0o){ӝer %STbny―C =:3h@*+S ℜA3MjA<姒dйzy6[U?FaoHx"ʵ3T)A[!B {Fϡc3"@?O+FXLH!_K}O$OgFTmSp=oXeq |/[Mo?`IqA-"!^A,Glfg]MZBpV`s_3g"`1+0 LEx/Sm P]W[FPOĿ[|勰L~:MjP6n &Zo\%6dΰ4B}P_i/n+)ʀnf'_ޗ+35 Ǟ>6-u | ;1%;Mo]~/}Cmyg^d-s2AA}CJPM3sl,-q_8!YA;HO0  ͝Y63Q~w۝l9$: q ~Q?nwP+uKsٻ}_ݑHP8zκtVwkPۑ e3c8A;k.lP!3htޠ:t@qn0ӭsgp1Υt3GoGV`ݟ, yd~xΞt 3Xd bFO&jn И'34W:7_s%~2 f_<R=$QzO5,AUN[sK'5`O?5|^AwK ^4'= J_-u;&'6\ڣ,Р.d9;8'su(Y`~>~bN`8q拱84sGk.l# eyd bj ,qu yYh\qCj!q`H/A5č.47WKq#TR L L0C؈_XH2[#ZbH|erq薰M حvH5&^w@+vC Dٛ7GMYG>\7cĂzN.(-ѠSʁWMg|!kʹ ~3Qs7lat}z4fU b7OFDGh5ev\[,7>)d6:YJfRJګf ?C I!V2rnx}w4푴[o8C+4(k4IҐ J"{'7SF47! ^i^5(?"g bģ8P2gb3oy,\yNR u6!c#~B%Xٟx㾖O9BOtݜY Aڙy80ݠ1̑ y *iJV:Y߳-}h߱?k4eao)ݙ wfa%]\ 3 5xf1EXH2eژlc5N. rIdGX?g 2|(DW~ .H%{7!1Y c(A~x/NȊL]>z^Ps݄j*7ʊȐV,0r!~c_7 gz"%E:AmqHR^ 37 Yyo1R%<6i+CP\ cO(gD7eQ!\R-ܠDvLn+ Z2a#Y8 ƱiXf{ܣ5tpC > 6X+I%{w>ǂDT^: Jވ9~YAu8E%ۥ\qlBf(Lo{OSl4Q b2yTbcbNL*ey f” ?qL{Gbue]t޻AynsȒ42u -μ fksG~W?h̳@ 5RŻ#\G!v˼qG- y 7( |>Oc͓0mrDv nǁ i_-Ft4ϵ:G֪ejH)0Q`Zƀ8T_-S+O$*27zg7rt2pڃzZOGtA 3jql";^`TK:X*n06F4} 8Q&ꌬJ0Qky8`gHD.-u 'x T BB9eao(TI{= W& 9X DrF##Km0 Ai)P",gD#t9q'!<o |J9F/uы7{Zj@'E-=N'Dr7(YZZޠ i] U'ERȴܸ08!w\uA|Ց<{"s'߭A�~#[ C@Y]Wy;Cʑ7t j$ŖX,IAdn\ `PA[W dX (]z|8J y!_Jq"k/0`Yvv3~o#oVK5.jPA@ D#sHs�}'ŷ:6\8;h'akuWl#aYZB,"ƭֈ;brdD@6K|G> tܠ-1:{8 t@7 o\ukP뉈#Ct7kbyy5Ȗ9~b x/\?p&x=K7J:["9jG$ϣRĕ n[ | z47 Y/'_ NȈ~ W[e6w HCq{Ul/@Ũʇ 5Tq %"Q`8`ߧ5|rwQd]`b{أ@\[Tql#m6_MQCm7nJnW'[U7Rb!m/c({xD%ޠV82\/_fK6W`7E:Ta@g+| H34ѻ%Efdjp69= ArlP3J`7>L{L >uDu &6¸U{-c 1٫cu"i_t<'[8ψ/ 2ye0eno\f܎3B6Vz8׽pߠVÓ 9Ïԝb+ՎGBgWlQXkKh:C /MޠbKWmAmdIʼF=w'/uK D|Qm5fԐBAmLjxg'wT1sqo0;`F{ӌ|g> 2JT=<nPӌ##Qp RF$oϿt.ϳnGi`M="1=ؠyvb``v\_Nn^u8%]uSMAޠ$t ]ᙳAp4@{nK%ңsAW| D gSyt7C+{T $+cnoS Fz UoD)6E5uB$]ߎ=Nlǂp ꕉRqQm6PCC[8>?@Xp `Qq7} V7( RDnAjz"G9dխnyj1xzD\b# {GV%8"w@l+pO-vI#xၹAH=5wPY χR #V!|_CS6"6q=sL3uVݒ'Z;7(W-iZ < z=xsGD By`1OwqO3.]/#sEL(ftkHw3سA #@ n]U} |bbݟHA]|IV7E\ 5S'(9ޣL|AkJj0!QtmW<[|d( zWG`3Gdr .l C2"aʼN8!2p`P%n8aqA -U4̒;ҕkD_NarlD!Ai2v'Ӄ:[<n*gTADCC鐃ÞbJGC@(7!_!}� ҎPm�3Y ,w#66@ 6Ž)!͈-Ցj쎰Ga@.AD |ᴼȦ3ވz MwKL{2A0oD7iFNᕋګGJsE& "{IwK(s?a:U)Z13<2_K )7}:gu Կנ 9S'ɴ@3joKĵ`{C &}߿Rxxlv:u?# [.}}jA{7 :#9Y oDn0]CUN6kND~-??5Q-31ۋ }F`N,[b:S.34<(?QjvUҌnJpރ[<#+HΧ3r썃nJꙢS)S g=Mp"Ϥ_Kg-q^0<3?P];?lP0#Q` T͔qFu }Md" z|JA0Qъap*0iȊ}]50s}Ƭ RpaX'jZzR:'s R|5,0/W" zFibQZy\/N3}2|;%Qh)p)do=Q{tAXVojPDKKaA+Z{A<Լ+~ZnfHP \2j/DE}^8o"UHQļ?*Kn*D@ IqK>KqK~+y䂾d?ZQh2/WY}i(0ʂGLA`'2`a`\U ?P-3kH̾| TwA}Sh Ry1-\ j Qt^]O:f35Eiyh"ԇZ!`@�WF@l11&_y7C�&,^Ig-uB(Aӏ IvtZ];ZoGuK}R@[sS^G$ ^#nTQ! #\#> DR$]:uQbtwBsR-A٠3nqogh "yUsʇzx7pk 8TK<go |,'w,s,q"f̶?9#kzoL(ҹdC}C]9[ E8C\@Lr'NbNpH|` OG'ڣ!۱($w36(;іb LC'PJ/ Fj M}ıBq>!3A(s:q ?EGМAW;| :` H{Au'R(疈Y֭CK>>84{Xa-8W5wGz"qs7{Y^" 9ޑe\W@ ] &DҰ0"> ~퀚"ny z: Q1;)WXzO#q!<gu!@5 :xz2,} b˅`NjzǂөA )q> \ y؎@"(([}ărŃAK"ƅ0u<a;nI(?OXW?`.Hܸ[rG֔  uKĸO *WVd ;Yi V7~F4Z"8ee W,i  ++knژ[)%ޣ1+ Sn0Ԍ8N&P3B 9r2zen5. HK X:}-1$$,1..)7Y(3݊_kK�2D=#T"?GBEA7-oRd].AZZA2s;CFݪ!=<PnI!bDGƲA'b-?PHSރ oL VG'|J7pxd5}G1Ex!>t [fl~E7T 8#RUKmJo/2G&Gg"iB)(_'YQkWTH` vAқ|$=Q|֖g*=JQ1N=(#5$:"7n(AFC"='$ !-ܐn : (PqRB@rR+MnP5R5{0ą btjC^1rQmx #JnQW떑aAbd'+Pِ@vOP$)0WZ22DR٬ sjul\Z}"fAQh~Du9y@,+ ?P;{8KodsDž}.@jj{*IPP| &E|G{?At$E(R{ k<F╰\ (yiyH^_bCe;JH_ X7t{xP%j6PGڲI+]'IʼZb\o{z;s|W|OX9) ݚQ|Щػ ~IlPCX=TAH为.@].OD-5] xY7tF) jF7x K@t$7lLtہ[<]LdPH1@S"DљŒxL?+/nJ(V ޣؖ9`@DA]CPk3bUQقjہh ؄-BSߌGETLأX'VIʔMjN3ECJ.P Vu"/do0ǹP _-Ylҋ E(6 _K %P;k&Ϋ=f�)_1lޣE )ג~.߶ TG ֒ۊ}tePx@tA śę;y6+#[ɖX$TYKnA Sݼ.OOtV+"?4.4 i(8c 2gj{Pώ5{ FX b2{lԠV)= ٰAqZf:n6T`5gR0<23 E|eYX ?Clye A jiCpH}%Y-G{Q nP<' ڠV> 8Z`Pu2Vѫa Jׯ K/0*l xA4Ko<Al:2a~VuR!)̹gČQ f:-H4Cph0lgĂdx \e:Ļyd3A QTN+tK܎#rw`ǭ }_NH rq9Rl [‥j t ԥ<2]` # + U6!UApG- 8ߠ6.EQ Jm=$R [I_Ҋ˵{Ϲ; ̕?XF#pTAċpJl9(`l rྟA<=gxGCɛ8g�nPs7n<=k9ZT-opg*rGv3$n0ҙ  h~5:3TmPi;2WQ X-: Xū}f25I 3ۧ[F bA ^t)ovB=%AԾ @'8U$<oރW ?ɶHӟ zsd,-%tjp ĐB V)#(7Ȗy;{O3cW%+rM hݕF!\CB G) T^"hr%ֽ^]Fp̬_Đ2|pib˕ D!řAHTұUqt|1vܙ/}(- RhCb N-M~@T{MJ '^w n2BJL% fQ3 ^: yA{pg bF U% Iu?akP3JϜu>޽3m({}ѝ\7X[:[;}c uwfkbٴuguBD~o 43?mȨ_cƁX=A7##d1H<`avf<Qr=s ־[}2HG#~|V 5z.!AOvY©ˈ x3z#è !fȄsgFLcyR%s#86z&(בUz;/O=lP:?{j{gH~(tgM\֓?PK.ɚt $9[o&I 86c3QԆ{F iЎƯ!B!#ZjG2齇^.A7.h�C"02T e Ƹt1r2swK)ETx  +-;}%Tl,CR?PC`׽ nPg)P47AǞ(z[B!<2nxPFt@]Oϐ POAtU/2+]#AX,Q'=tLدtAZ>)s>  -x˛Fn J'vR3 'hHF*2f [ OVn05ÐU6Yf$Rso;`Xy3Qry_ތm%0 vgB(H`9NZb876 Z "sݎ\)߃vZ+Xd6NuFoHLϸAt M&NE36[=oy`YAX43^@*blsVBGLghP3 ٽG莴YA,fA {!3KK4Q B@,4-93ȫA)^zeO89[NOqJS 4<wYwPvup;f!8VDyYD*q7k V/v"Y{:`+nWO["L 瘻KcKcK& X&VXBA~ N!`eI5w/m2’,$#tK^)z٧.PK.Y-dnq!-D0o:!"2B۽/K2ug>Kar-27W䨻h,Qs�3:~Hp"𞪖pt/0|tx߰z+MEH)sN` yEʝ=xHП?IX LA}.&"½tF6&Y:D37?sx "}/o<_ \i*P̧@v +YjC{@lx~qGV,9B5:YzO3-C@M"qDY=N$z_9/%^N|sҝՁ "){8Х#{ԑ6xeLY ׇ2 DY'kT(TA3JmtX rsAGf0 ҩ {H b8ws'H \JT6Ȗ?p9X%ALHoсwȰ |Y²,j S*Q[j^ jFp#,0u, ? ,'| XY 83U<3pE"x&L^LZ:@6ӟ9diUKț't7^i(ԉ|,�m`^dxvυ~"/ѥ y|l$HC7!Oxh`˅@5:T[X]p.|Mih'j2EY3A_ԭn'K>0/M |fz b'^l%+X:_HAA ʼ[gbYdjX*uKfV9)M[Or,+o0:L% !< b=?)lj'\g?P>X}ZPV>@6Id 1GAk^ HЅwñ\7RΊ wxcF֯VHĐRѠ�p}cQqKpc9ȝޑA 3bڽGαsth XB=21Qþp{0$dYiD B*I"xO1w4 -qE'f*}8V  9tأ dxQ÷@$j#|PXej!�>g8D=p;PIA<ET ALS:F=x 3 +HL io 2Ę! xɲ1}`a|[wtɲ_KPLJߟW|A0<YxL":J~< ,O(@ aۃK>0Ep^P`6CSZ?NR?aD䈂D%'a!\rYȻ(j܃Ǎ>)` >EYw-ѪV q( foPG~k sp(ڠ. = -AmP8A )^yWY;A+[ 'C Re%bW{<[vbQϴAu^!t([9Exoo~c7% z"!M.敞 !{+8+z}Pp S\ ap/<u7#\2d%҃{4zI(.ԋ,DZ}eʏes)Ua䄞vJ8CSs|"1/(?3bZ{Πu L6n[jPJRL(^&8%c 1e p;YBp f[`*6nP3҂ 3' 3D[`3m')5Hn0)EDFe_G<6, 4QW-m ^zʛb.)sBdP[Z XT,[~ ̹/h0i:/yH-y/<cxkn(?aH2fuŹ\,VpA_r ]Ls7QaZ(&G݃W)\ 92lmAzOP�nV=$qK] b !%~HTX)ZY.38QݓО V?Src ۃaxSX>U۱A )5f/R}R꩖y L[A'5Th?(^*!{^ xWh>8Y@j܈4)e 8\zyL:?Du|> "܆όz۠(C$@="|Aut%g >V`/^yDP7,? r*<"jcJ{ y j<tX$Gu HX%d3h h28uK8\x u;h<!(8`^v�wܡ0q`.RنCz&NM3l(ԍm |Zb<Ru?U AR wM߳%1!!U4QT[Y i,3 p<;Ҡ 1;MV`>3}l@{`OH@Ktt>@HeIPD#^RyB!\ )Ry"ZNW3k5I bHn0ݻw$iۑM7u4uOoTkP3Y;c8uVԠZs` 挮`{=A~U;@K T뼢^O]0>Y5 L3ASR,xr]GW z x_li$. Q`N.IR%7^TKdoPniLa�{P5PT֩Эuac9NV@]BDy(l̅EX$k(6ᰘ p74?<(Y~:p#qA:QePAm"^g:7Ȗ|@:T7 Yji*Ps %ΜYcgh=JK'P>u H4P&8lU>Ϊusq<U -9ӱ! gHvKytWoəpxn1#Jwf)P'm]xxv|s.\_P!<|*TU`T@GԼGAd Ag,zyOa t\TBT8)3juqazh}&pܴ DUs1{BԺoyNn  en`$ Q艼iB hD)!?ÙWG1}9#2h ByBҘd7N#<" R83Fs72Q 9EiƝmPyD-0țՋ'rHQ=O} ZHc7E%O.]|NSg,ovhwݔ6uWq(T s}XFgk:™)"�g17@G~SvH>{W,+|Q\WJW,+{#T *Pb ސ|򋔹(("Y`zoh]v_y)j @U5 D:`.؋_H`@nEva{ET_iDY3˺mP1qzN2/:3 gWEr zd`~ɲn$3}PhH2PРZ$�](AzT�Q1gѝб g޸"DڙNS J(yS-q3|L*ʑ5ИH^bTKaBx'6g5@<gO*|]á= /L�:' ur\o3QSlB2E';Wf"cg6`mQ -S{;E5%=A[,K*["cB_2סJ%w_UK8yvH,XD< K/:qhJsJc#w]VAdv,kTZƉ_QVc`xѐAxG .U|K�D-d<;Iw.) aoBU jbRu"&qɼ&܆߰}-ȑ<%BQjw*b~I֮,{T-nP%e~Y`2{ ۇQ`j.Eu{C'Ћj ћJyګ^3\P5iC89$8+Rl^4/d/y&O{`l&+!`O>R&۠8@Xp_OG>|R˩62(s(C6Q-ӽ@_TTw ؋ChA :CS-÷�uPRAfsH`CJ W8nxZo<j*Kׁ A "F fbWr"4q!\@O~; #4t=X(7} @x RcX~ʌpgu+8v~vix+PMb&tׁ,j &Y;D&6C= p8KOGbcĐT&@6EAk@ᕴ[?Sm\eА r8uha 澟pwN1'D:oкJ8'L5qT4x.j//+0u׉\ 'DRb0 _,W^ euF&B; .J`\'u4` {x٠),+y*0VI@댺 B0$1[x^|H�rѫ unu?~]H]uB "{ |T`.ʇ}H\Xֽ5!iD.~Z|+ WT!Ç| un^кc uA V] UBKj7@i/x7!o- Iu0r~]Wv|&8 X 5A2$aS :RE�HApw ݻ y#Re]TJ>Gw7rEjP*uYV,*Aq_ g.bPO{FVq *F~:'!u�u;Dˌv �$3*\@s4' )F "Q@rt.%=ZLg⎕ {E|ƮvYʝC#<=Od[ #s`Y>b/>,w[P?udXPHr=A<s?4F *^%0,t, sޞ&"8!(j^O ^9NS AS -Z [. !6!== W`<t]4r)wtylR +#6@/L/ s`CZzzJ T*wb8>`JmTT@Tcyg:w<r.ti Ǖu6Ŕ}g<RN#I}- bz&X!]5^{Pu)2?.S@N[j[0H[ Χ/?G οy{("=E٘"HR tYN{<'K/N-"!vlX.ȋTWE[%[ߖCzy}xalY vEQ!Zoĕ-qPݻOd(t8TKdk󩕿B|#o!,wy"(U5WfI+!I U ˻@iH=ݠ< ^cz7-Njj9E;/r.](2;_JR (f_X<S.gAp:qys^ f0M"'J6qЭM6)bøADثc�NH<xeĐnR$ 4SrGq['^ )m&LD10-V塚U J@AˡFi](/)eD9 U92eʜ({] <Eg]46\�!zO B`T(Z \υ \armۡ ,9tIDCBNudإa7|E;ۄroPuiHr_T_ l|KoǺtYJ܅zťoT1g)EDaA+'(ؒqa)apʸОBq"gx&J@A,Չl.ySDъd28( t-)sұA57;77ѭ⌷B5 ̍+0OH-qgNkU$),OxT"@{y LVn_(0m +4QiΫy L>,[|rԩS9vbFW` b/0yS:+AH2 KR) De<BSRtA♖SYtAuR/,WTu}Ko0>K]-+09S.09 DGPCb@n0D[t5<NGƥ,spb …="g', yj4/W HDV-o{̤ \@T \ voJ-@WBČߵ\;=C YzXK7Q0w4RIr[ %* lK<XvG)AWԇt."󀝨 [bFQ4/p'7 5kB AԜ]mC\=mw JO1'5q"sKG3`;REs[S ޸3u,J`N2s:p0;3@-j'oUL{Zy1'J6Lr ATQMZ Tn s;T²@,%Y I~2 Zb;.$)62Oj ,b<o~CxZ=Jjc⍻BE;[vp$}=սR6QU`,tڼK,Ql#2B[] B sZH{#7iu L|Z#).xKp;xj%^[ژ';l&[ѭ)M>ϕe8m!{,bAP,C}i"󝁢{кߙY}ʇ&F>cE: 7 Wn=g7] Y b<K/[#u!H'BwۆBUvp!aXy6q@>]6A\-P) 8Zj 9Bn""uSHpxd]UI<W|dr}d~.>_.GZG:'RnP U^OޒV[ |G DխӠblY plL#~ 7DPI`kʏ%R~ S[q}?_y{"< :hg U}ibFѸB0[C !>V ca/l]M L1#ic]TKS'yD˵f EL!#|7Pt.z5PP "ɋ0jһw]یP#/.?o0}J=$ȞQr`[CCj Nd%cB8A<P$Ka@hrIWj'G]`"XyB&UKQ8#dHJ 1`*zOhfU v o;ٯTEFPg'UKP9B/Rt>U`ȳ^OTP}3{@2nbUHy _d83zq˫ 4!🯬/*u^;f:{rXTnj;$>0/u~feߠnB  Lb{`^)I" Ǚ{J(N5*+~ 2g8;e:`H'O%H<VcF%k7#fyD`7FeF9bA<S3ܡWTi8`N'ުRzgH_ގP6 ˁ*m8AsFUoH<{U-y~Cf(Ib+LVApdQOԘhKFUHqv_c1k^"K N󎎢!-eRKջܠF'S%@e8 ( 1U|xT<Af$d:m%nJŽ4 Yeyϊ5|!Po<ckFbE}h|d ]R/lfEN ^zeVxX/$C(PlA]sl<Kd2LU6C{I? ̧QsAj(A K L}H6 /2%s*BcFV1jdTup>P_xZGG5 "DnL('U-SkP�]P)ض7!h= Q@kzZ`jc:79:ʹA gddJ㗦=*0sT`\3:B1+Vd툄*'A};qʫi qh8*<%J+J*,0fX:R,(1P@8QjSl!]"@uo Ѻ%zGqEPAM;r6(],8 jAPALS}h+` banޠJW-Ӏ^ C>'R{na؃>3*%pP H`6#}?#'hL LBZݚP}TBW݃xp.Ή$uhpODUղ@2gd3=:_P3bqDA~AJX6\G*f@HBc C~ţʮx^H\P7!kwh];9D.WwQ@Kr D6Al( *=WZwy.Ī?M<ec�K8 ջ@�u*?A`|.?8z"Bo}vyE *"mЃts#I A7<s ll01v , ގ^s YEozT@w7G5wGF=wD#'ɓU5?$"CkxKyٻE(]Ahnѥq=ZBq<R!ύ 1x ᆙ@;d7cSpȒA 'c,p/A?t*{y�/A$HU_ȏ>fσ ?%Agq{$)rx+ 3:Q_Z,kH�,{sAMQFGQ3 %鬟 ۟�>"B{ X $أ!r1uHR  ԩ P >yّVI' Q-i=Q4A6+ƚgr7™m(RO"-H] zb_RdLϜq 3qR0{FxUQ`CϺF ԐM4TK it(S~SA #\61"M_g c A, Dq D23qAY8өZj5WD ,a|q`Y6LZO YA hbG$DƉU:6k(6@Xf9RD&y_t$y^99HZ ?'CDdD,i5|\v(P 7<#-%r.P)}莰HW .j�=SeWp@dTK^i{mH|~$(RHsrLe1 ԩCͅ%!][ƅgo$ ܟkek aC|#oO(_/ş:C^/r}4U d<{(X)7ܟCI2Qp<Kz"A1Q@\3QŰ6CQ ajkjN$*yT@^$Jm>"ha3KpFɆDr#>(L4!iO/Wۯ�"NAңS}9&R?SN k̙QkiCY=,P;#|tr8xňq@LS^45\L:'EȀgH=SNl?)֨4)\ _(BQ Yg{uzj gɇ|0PZ+ުwK+bH7duCAmGSv'RDTߒo̊{=Q{ 2zL`"V+ZXO iE>$\ɼ[}]\r}!-X-A~BƳil0v| Lަ&U`!ɐA(0# {_ . L@Qf<ռCoawZ3/l4L{Ǩǃ Փ ԐP(y$`zԦ@0@JjmG^ٟpW-ӭR(Pg mSKMTu>)_`7j/Ah?x!6i~4~кR[#\k9N ܎)!xD"�J~AoqqKŇZ6*`tTK3K)ZH]`ipQ?<c)P{�( <|vKuޓ}uf;]@^-u`RyǴXLss`̎A}$K\T>_7`&SjjH\-Q@ݎژQBڨR:GwtE�OT%.03?|}"_,y:CCZ$ Ts.28̓|F?Z#dA=N+s…A|SI2N DB~^GD!dUZʹ@0Qg8l,Iձɳ4yGD>pkoP)k -%jnQ' tz>\ M>n1҃^p'kP-qY`ơkj <6Wd3~E"bFZY`(L[d8KX \uoٲ@bJ]]+gEkf#ZPS@;f;d Kœ@ L-q`x@P ĩ{To!X1ԌHן8D*5(rю4.D4qw2߸wnjߢ޷e[׃T:B -C 2x ՠd\j : h_ H>S&7rK|K|g%^%'LUK1䰕A Ɓ.u%XOTob JT[P>ܨ CCę:FTa T ]V T&X䤟=x-K 80cB?P9y�? (:T{A4x@m1āySKA݁ђLd'mֆmG~=o d`ݟ}$,'{8C"GFz2gNSKN�KI @KV'<4<톈=H\ b e!܍ƁcțbGbMi8~Gd-aH f\ WYap _#\午*p#%P5я<#{FQA0{Mn-ȿT LoKdCt~Uwf@N`@!9FFt퐺#1sd�R|,0Qtv?UpjavmU-,l̋�yp_/GqB?"'I4H-Mfm>!8Yq:!V ٟB arQ{< JaET{y^T*؅O݊W-~VDgxEҋaBy玀%(CsJ:!oA y a@'n Q\  B,'!+6j&zFͯ9{fEr,"0x{NsꑚH`+ !C�'~GVl <RGODd6YImtDa.[3Ɣ+D@OTWl+Z=N2cP1<n/ )l bFfx?/1Ρ-D*]0|zz&q=$VoD{8K).sB%OE-aHUOvspeT4+ o94jn07n`7r6D`xf8q\6SsХ%Cc!j ߽kF!{ b=ʅ4}#6lBB{yA(7(5.PA$H86BK֩X .c)}aAGM.S:1 tϓ(A(IzI* L]eȯ LY ҏHzT3WT5W;^ſ,\rBᷤ%_e DMWQobW |Zq&k<\zɔ p{~ Vi#U "U!ZS0ANY`> wy LV)j)j<{ 4ζU$dx y`LUg.,QN=~)@Fk`SWu̥;DTH"玓|kҜ6SXnP!`5 J^5M X'zGw47\s'rwKRwWΧ@F lN2J4a;DjHLS3+sFnq1ݠZ―qXj^o ݒ`xOC)P 1xԓjP&{؎[ ݑ. vf9yR.XN0Č\36u~ << 3YX:EvG;J\E;zJ uW /Ҟ;-0*P  7)>lSZG=w] Ekj TyoF.$l0B:W ) +<REӟ]}n*V`6~$K8N~&#QKq|oVW W@ ^UW,X8So :Bu"IĻjT +6 )nN?d~W 5\bנ: {A^Pq*  B%@ȰWԱƒ]+R[| \a۽kItZQAp׫NT+_zh$u\[a{8!Yq'4<N}Q1 }*ިV`5ow߽t ԓe7&D>j|~4NQ7|$҅:e’U 7ۭ$'JTK{-]ޑtw-BgL>6p]=>\iޡxy"Ow)6q BNT=nnPxBtRژ TR<dnPD]HgxTUpO~n~B`p * *dO'潛$BcN.}6@u획3&e]G' l{i<t >b5T.Pg^zo=rH>mxGl2T$i- l0׳HlIw bF, )@1w.H]4yc _PCR[I!_q'{PĪAm0uؠ kFbD&-42rR\@ $ylĐdaaa cJ`X{eXpm+/Zx,6h/ bJ ӧW4E/~3 ֌29?L+"@<| l0+%+Njtƽ  yg\Oߌ"lPWJ1/YgdRSf=M9^5~y5 aA`0m,%=L IjwZO~!I]0.L.y3<j7pf 8^4ݻu-7WB@eu'T >҇LXji፛}iM\yM3>62L [bHb_DVwe|^O<SDu{u@ճz*EhbfO)+2Mh1(2M]Ld0.ʒJa!@ i!<V>kmP%=UKBWl?ODu I!E`5K<RKV$;ڃ;j#ʵ@8-/YVDq-%7u["K΁+A \H5 hRzt t,Kk@Y᳷A i9;/n/n5AsӮݧQF_ቷ[fTKN8m)ZYC:`󇈕c; d3 m01ȍd57ϥ['iψ2-.')X& R BJOdn ]zI~K8KAװ@Ā)CL3SsR60x LCTddySe ޞf ME=S=Q?O>y*2Sڟ% 1j#1kK7r sUCf+sd ̧@:>Z@U:D~vgr 9^ jfۑ<4-~VI_R)nZ&g vH_kk X֍aH: 3J` >PϴAhh B,Pd-F !T{ N<LIA Q0*ɻoiAyZbFK)z&]"( LYO9=өZ8g5sm#|?J*\Pg=ME7#$Z”H ɣ@A]AĐ.$83 wC%hY`hڶ P3B|c9N)iy>@g>#E(*W;Uւh(f=s8HE{s`cNbԐ$Mhk`)UܛgCkx8x)' s!rʐШtHU-+@Х⾃ѽ"cD5Ml 5M/YBJOS@ 7j ɴ^3l\D {?kG@}u;V2 _W v;A,N!1Q: K7qnZj|NFE. sswx}-1N\RGG2QLs,*(ؼZBwq5d1<io{t~Y A >\A6%ޅUP@HA-52StKT-[Z[)47^ rq`NnQy ^ZŋUE<?B7ѺS.>"H{P<�Yn !f>'ĖGϱ=(@ ]y;+U4]TKHOo`=oG>fW8}qF@O|@|ׯ]<pjg4;ʥ#TJ'd`}@xT|h#BA['gB9qBwΒB9q%?9[ r@]{T_3 5nHd *‚,I|U!aCC**oX1 yAJa(?฻<?qE8x:Ht]쑨x`隠�Z1DG$ ]0n134U?F!5$QHA- t;f{J/:cjh&2wi S+/z텝J'z:rB:_Z%~e*į�ayO0Tn*Alq-sfثאQJ7$WMP-9/y; aixљ u:Ȣ Py,^.^99t5@)\=+[bA^4^נv$Zb7yG% Atl "facA›wo1W01MTuYP=?չy"uCh]b;fx2Q {;N 汙z g <Nn gF pr"?G|vbݚȿ T^-<tS//D^v}Gֆ ȶUQ�ŏ Rpl @ݎp؃gKo -PʰrW  {H:/ح)>�JڃE ǣdRoq[@,X֫ \DX IqղfB!o.HmCBwCm[Q%E E'Jp W-]M,]KYڽAn[BSj`*tM'%{aYSSrlk꾽|z83Ooš,T*Z5aq)fjpbHH;tAYnStidu}mH\P-<u֭z6~xeJ4s/ٰ7ej9:�[A=)o5L;>G!1ȣ$W*2~w޸`taA[?V ޠV)jrITdYCL -Q>ǂT:5S݄cy-Q =:~q2:obIArH*`Q2"{; Z**V3j %.n0$_oX`fϓ5ڸ;S{Bʒ{;yk 3Q@(Q-Y{` br!:R 8m\Y hr+nxE.D~h1rK310}J D%yqWKE<ᅸE>S%;E?OrzzN=ܡR(0jY SYJ>AN4):.$_gLwG:`7_RhPAg&@QdnكׂR|\i*|c#|@H"Tnj:_-J1jF31w7bbVc bA33A\+l{F+$c�;e}Q nwPE@uթ~-QzA$=^dbua߯!ģN׍R\| {H!W!#r8z"? ?נ>Njp=n/^ a Q&uEƉa&[*~W Wml065wPAs4F1XOx2mv!@A\iF ąBuv0 ;2c|`~~=nҩMn ݺ#Ӽڽn.-4FR=MڎA﷞ +0_ $r [<T(/G{bؠNWK'l ,@<2ՐH_Y#VWK$Ƭ`$`^777 jl](/[T�XGTKwpߟ*A=vI$+@0<b9(XFzpQDBj7'*G7i*'7EtBɼto' <1? h{;$<Z z$#<t*7Rt>iu&: g f_j %25( grzdyQHk�g$e*PdMOOiBywk<mu}vZ%n0, =#C9}Fz iGD<@1!ET~~<d7Vn<;0Z[j<g#vZ4y%@!8 892AnYh h2Ts<JTpkutj Zqe_"Ow Y0DR )"|H{Q7R)qb/]+K!ː=$h _G/Q蕇[Ց<IT@7,_G8ޑkE֣ן}}#3 n ,yo;b[>sQϴA(AѺ/:6iph#ĩ 7$ Oz #+[N8tp<Qf>=x< "L;qċ�>ASDj0w18&ޥ~DDɣ X-ؔb#D5*Cg"Nr:ޟ `< I S"hkʊ1e蜤�Ց'RAQo9[D&֔mb<S8Q0_h@7%8ʒ{H`'^"("D6ё/ (234{3>nA,Pe-Ԩ*Zvr" {w)!j}WbYrkg#|2oxߗF +6zj/qZVXB@ZA#'7gXb_[P8%A(l_G86x3B֎ZFb(]z5<u5?lX>x_uyĨQfqh7Aߍk}w@{?5L`7q&W` `<3aw�ew-A [#5q;Bhڽ>mPG1ZL`1O7>Ou5wTg<<  ngFv7CDޘ Qz?F j#E̼ڟK@D1Ztbl-_]tj0$C` A{063!EXYd:~g#@lqzym0{Gy }?~N<tsHHu6 u} H ޠfdPQp2Dĭs| ZjHY/rsvܡjOq7$w0 ڣiwK~,7A3 !)Ԕo |-R̓ہH-u7\o"A㝙7E֕9"C{FXl%z?% Ӟ&ޣ3#k6 rAgR7ثNEՙ>ZB,JqA)APgd5}ς jA,#`h9VOȆY0[;3!UxNU:B-AHP:mCC~N]my'^zrGDv} ]'dA(Υ-URq{xN`nG1V (é~`L d+Spa/$nn^S-!k?~7n'tN&52̿LU]#Ux*OA ulSAqAV-]i,0n nK_$+f L=i*< ^K*K-e$-;^1׫ . E˝ -zF a\Ez:8H\PK{Wܣsg󎈪w -#2W>T1Bg%jiP[3s= -q7JqBq=N wfm뎬 ?t/1-qtߠ6G;|wKp-L!E[!QOփ( X{lmV7֝A$Ӧ: JileFq}өAJ28`2.Pڣ &/;R_9Gٓu16R d:ni>YAXFJ(-"wyB1XxݱAHގ'2 T&O;6lvŐ(8ܸ"Ɉ =z©i:.쓞N d\r hitݠ:,#gApxz?3cxOm0an>Z(#q滥((B}aE<*Y3a02d 2"^d\IiкQcC !{1$ G&mhP+/_" Oy-55ڟkwﻆ~AjzdS)6Ylh8aeۃ:P> !pVS pd6 wƫigQ {%ڃG꾖86K&X6~id{CkA)|xÌAl1Čެ4 +Of NydA؋ߌ-P=^\.++++cmP rfa 慽,ZLzA|3zҐ-]59svKRV`K[j_Da?͠[2K6%oCv] 3 &D}&sdaPh|uS]dMtk3s59rXADLDv<K3—z8)x(+]flxQDA3o0M5NLY?:6 A#vLIs-{A);@d^ ?2Ly!̎۠6L@u HXOpV3ſ]3 $Q6 2[{8+S5EVV� q;_9 gד\ Tjn8!+<kwW#�]3tup˼"nzoTKn%ܰ iE }YgQdi0o?ZU'svKAmvK( +ryàP 6oPK9ԅ_ 9Tԩzg{=udX2C^ 4Dہ}Ʒ"BDz;h0fԵb i|zt)JF A< >0),;v*AorϘnqX`2Gl &<8p=`26h2r/0_SU8 o31 ܅1L T#B9>Ah)G$-ԅ &,0u(a 9Qbѭ)w7Иj.ʜ92<͠ѡi|qh,y K@x&2Ts'.סl0W2+7IأLZ&C^` �f9u,1O`*I ̀>:{U-YA8\"l|>8A١hu{2Nk Ja 3FGGutV{"G &\.,l5xp, GӺ:YjA<nA}^񀊦LUbF[2,'֫q#gD( %2Oȩ+sF9X`yiA/LdS &j jC{fM ?sXwR$"۠X*ڣ<f Au?Y;v336Fܡ(1# L`u7ŐNH&H 3&n\ 2 Ks[8+xPQA0,qE ";T.jOD;DWT|Za;AH+Km ^g8D" uQgүO$ JA~/)^XV`=[(ꙸq$#񁘻zt +#P wP+�BtW / #wIsv pfw$7ѕ傗 B!<$(A D].̉T +sk^po>^BĖ+R|wX7Vp?PA(^fAХ"`AnX ߒnqkr_K7J bH qѿ/[}EӇHݷz|L+[gd{>6Fj#+)lP!R5u w!7̸ {#A6j {t7:PPgZ)j̺{x9@ww vńUzV`."=|VT  * i/2$'}-ϡ{RTfx&X%asGar#s`!ut�eFȚ 4x૶XyLQs5~0${7Uz>gAˑs8N<uEq3Sb*~ f?sDdEsFĆC}YA<) bF"l+! $-ِ%tDAT[-aMQ*jEwUK0< !1iEd&!Z*68_кj#rd4 !Ѓ #V2BcL cB18~hq&㍼[1莕E;?O āpTUzʳEXС#ˌA~/-~(Q 4?bO =zO%ԧ/J`MWKwƽR ;7~ ljT|fhphHt2MӗW[�bZBwJ<e2|E_7+GQs^(Ǵ8K"CQ&cFa ",~ N<o3r0unD|<6ϳΏ&&D|x ԙj86SrǼR%wb0x*a^zP)Gf,C 5=7Y,v V.d)z N) El7 #n00D&U?rOsAȐO$*u \K ʢkcA@zV6([H\ X~0pR -P%^"kKj!ǡAT j끼d[^%؊<* ,7&a̚$'?wԳ},[{@jGCbAXo&"OE&6ϡɿZ&]:ϟD2jtUYsp[ +S3 hn0 .l 0U ?fu*2ݎҵ8)on~bkX`̷EPR1 ? {R`>/`_T'$Mo>fO=|8 p.0&{h=UTKd4}QZꀭ|75k D<Kޓ!?(䷤ߎ~7z?Xth01QjKwD5!G$q)IGD֋cdR"ȟ|^qB:{/I @ _^pIZb=a)09۞؅氞0.p)s5_Ⱥ#h{t+T~}hy$V᪴w3-g(ܠO#t˜ާݦ&nX8!P{ވ.g@v [ѩAmzn %t3R xLu_%~/'):53u1, {pF:;`DG?3[7Nqghv`p[S O}3n~pBZ%pO{d'@H7^K" bSn]t%ؤ : g%wVWlI P_DC:3\q(D 0n _-"(LB"8g-X L]-Ey44Mx E멨3=j&ةSG1l=x:&-�/+{iƭR\sKQ9 _L -񾫾aXSqg(*\Toլ tR_`]e]бO.֫ݑ 6-qyFz , ̓j 4s)<;zuKtZ'*!wtO]my*t[J$?_t$[D^HtdP0'a5M<Od߽<⨟#- %O8Jmm֘q(d*YYowS}aQ tgVP<*'Nȅ Ho&?Z $G~V{F:}7G"ʝAC:)fčC.0#P| X8_!B Z!@<=Ov<<(5s>g 4fjXT p';ǁP)^%#>b= 2s| ^{#oV˿n ֐.qA !gNFIBhA' <^)<@oP{oƅ!X Z# hZbA�FASX BU1xm)PAy83B 9t#Jl/@xr(zX +E'䍤 *r>ex~nPH_ Nj5@1 }}>B9[B!/ǟo\b9O5kPR\=zFޭnF%: b½ZBwJzFݑμ$/]&t �"@ň;۠{Kr>"mȘ̣ot@!a UYLg7(Y,E�2&<!MYh "-M!f #<|\)cF=wbȦa~D.VJ.6K2ޟ V)*=&~-;o;DtXu;^-6ŋg[: !)jtqNHSf)'$}PPlP 7 :W,PUYþ/Y-W \ BduE>gKKK s^w*ܣ۠y.9)ҩp?%b5,Dj =Ãa`t׃|XziWd۟ke]a>O8UzsP%-+zA/cI? 8 W BEKہ!2zj�1~,Ju?EӶ%ƉtyRp $L=Cf�Qlu]Ii ̣x`TEZ&i̯_}e_?/0U ("'nZ wja!yZ{T`7)Po* z"KDJ>ㄆ@]l#_}U\| LI:goQJW"܃Ǚ?y->iRՑƉ1!MEV�`۞`$PG_ lz:z`q:6vtvsuiɱ( 5<qA눼wA?W8,#=$J L!@QZvgu1qRj9%6<<+>.E6 D!OD7w~-׉$WE#QC:#/js8#A(;³{2tK,̻yBwq)A|CAxN8]Yo/7{^]lAwQ`j@lRh^4 bFQQ^| DGHY{n4�Uj\' dz8[b/\2g  wMAz"ghZ ޣЫ88DE1F}axizN= G%.?l *dunXKO9B\ϥHKr( n;B1Bʔ\ oBzv/d:jKe -WIoqD~-c >nPG*=\sT\TK8J=k TSjG#}G"wu"!4ՙEHSnjS4u4w$iPGQߦ9hb}BrAh�ɴ ךިQuS2<7^>9QȪT @<hݍ;WFz~ zGKb7oG%|T @ܣ ;L?Z`76F6`_gZ;NvGmĐ_ <DWK-|cČP@p/P9Aoq7JSeZ: )[$j.'Dvn>HU GɎjdsm3$-I~}ߠ:e(Od$e'3ݟkR<HrEǂ\OXB{(S$߽kdxzE1wOe 5I'_3RZ ½?ʃO~-Pln�A++!iBx�u; Rs=(&8N-T [AWpj,3cBsH e !GQA�sRSᛁL5jC ^Oqpb,9Đ Cf/+6t#~:r(Aq.ջB_J ގ! MڸBQdJ<b$ƀaӁh5FwK8?#s#7'}61p oL8({fb1"K?BiAm; fDD�Vv`/@VB ʿҥXZ'). /<6sλ2s&} ű(ҳ@<Яt,%jTasI~CZb=FX-׽ި/[�"A,]oP7b1UKt4!HR`z4!ɁS~/#9i4Z.pAo+8#$SI:ʐ햠I~ q&R]W ؘ))pJUj}PAځTΨ۲AP)~wBQ +3>䅆GCsR="k!F:)){\h:&@zrMHpe9 [fPN]TޠQDkK 92_yN|)r D0Ld8l0$WsH [y.`&=ZrpD B׫UapjYA ܟCY$|�<' 拰Yr]p , m_` %BɆk^dyZQdibؽPڬA:A֍dH] Z_vSB+ } 3{;YwcY報r\px-͗KiFx&EGš tKLcXϱ>6F`z7 ȯj<{R!ZB{Pj!9yIX ܏.UwJS]vKH[H|0ep9e&Qm4??H( S6SYV> n0{�,yS)YT%&O#dSZ&| L_`VrT)wK-rjɹ[ osG*v`sm1Fj1 3.tLjO${-qX s>Ϫ$?/<|r6ġ=̩A9P\!]Cw}A.Z=D"IK' AtU*0MpDJc>bHO, L> LMTN bA^ǫ, b` ,3)~ ʮ@ej<)Ks�qD\yOq',4WM>av,~A9Q>#8[fXPW8uZ`jJĂ\:K4[%A ^/RsؖyeA,$ BO~nPi5׉O8ߝ>W p%:"k '˻5fAS`@ȚA. ΁ sP+sA^ }.bpҢ(^R>\H&sE5= b45iƍA 1 #Kb˅7 T7G}!W$ԡ}ڼ >j7MA|-uUn -Ys nXԂ q=ژnHllP{HկA%+F#.Pg)]k @J.q7+6!S t,͈Yޟԧ7̸ Q#(i*[~E@iFzƻyM<S R}#u@ ( bU7n(Í\4 #p^ul;'-.~@~E ; ~ Dz;{HX盡p"hP1]措Fs YW&?7QhJv@&0x;nxA+Ȉg=Ȏxhz msbhYBsfHXq?c3DsХ'!>A6A61xi9i9'~ _U+?yj>`V`͚Cb[bF\ tg5DaA'rȮ[ D}a~P�~‰qƃjA7-wOx`4\-reΈ? S26 2]A PNKJg{D;n@dͭd8L!u@z:!7!hPr}UޑVKW B54 ,jD%Ee!s-̎C*!Vxg86D%(²D�<4#A-^`Y Em^h0D7xl  )SK.P@tt%os%.7ng ;WEQ˼HZ[2(x U ԐPtk/+I _1/ *\ ^mUV ZJ Mx%oJ bN|^+)0EVЇDI=-3L )m(¬3xM) &2*qg1g2)~@:bU#A}.E֣<Vߔ<uy+|W]#@  %<I)w))?/S Sȅ&~J=̰@P%Ԃ<5,yS[+ Dkx)9aPRB34t>M$8 Rp  ` ̐ [?ܣ%0,EV {f/Ush$ɼh] ziB"_-Kʥݭ]B{ɱ\Awڵ4hUl`А}'otI(wFul`Vue^oy.OPm@SóP(@hVT  y K2E_Er2 L|w}/0#FQ. /a;>׌aܸة!oJq Y`jȖs{~Ӌe\H]`^uB cȷm޻t©)4DGe1> V.Pn^ _jk]`*Ctl0pŊO:6x&*Ԓ ,qZj=Z`2'�F=Tt)e҆HҾ|aĐ STK#<`yJHE[i=4? m-KL5$Q۟kLQkyyǾúZ`j >PH]֔?! o*=H.~)fl"<Z@;3f+P3FPA Z 8B  hX0gXx ~¹9lRl0h ZסwD)jAi.{PuˮbFQ\-' %y#=6'1TG`5U@P*p$V!EDfjDV|gb|p7PoPJHX ȅ* ԾHȓ?"onQ]y%ziO,Py#Tp+P+URO]EH/qBYXG{㠍9}%'gBYGE}~`򅰠!_b0"qP\7ɏ"( _4 N?m,O^d_OB:!A}B5@02 `'7E?kLUsI޼(gPCA|>*qu?[W|.9y.7SiŬQ8vg~#CsKy�TxLox?wd 4ϝ+`ڠdKtLOΖZQ-AEgTl0I}wv?7Bx DWf'F$s aF,}g8㋌2K!v9_0fw؟k&W7RgF>�.e]˽ M ;?36ę/0'2` R) )b:N>?b[U-AT8< /=w8< /}`.c3 i] '4'@gU j?aH-FR`&{lbP6tV{8!,+~AZ6Cf`5 ƩWIϪD) |TAL2  +yEJ1N8?\LX:=X t陬x:K O{Đ2> ԭàHG @n3-ZbH8;,PCBQEG% 3d V G ba@rU-v %(!T@Ň.Ècx]/嬏Clv ёlCʜ*娪%3&OLTܟkC8 D"ƈk u;C w;uIy7_)K|!"$@xdU BT{ 9ؠ ,/>IGh!aF(dL' Nr>0o٠xw" QHRpCBO`9^Ol "ŋLEwCHnJs.ہZF {i noto$ )::ʥR0&~`r5w)} RhyRLL)1< ˞& SZw> -PKl ≔wS _9[w6 CQtKVn d]%DR:-_ oƉ+9OOܑ"(ǎ߂xhP_b@hAD4ea ڊ#ld_>)˿)if2C% 7{o9CۄWR=:X[i3ݺ:tڽZS!׍*Z,S> GtoOF`,4<o\>-b>1}xέ_I bej6⨦IC9G7w w\HN}F!2h3qLe!' E/Q7j~_CF؆xt ,xthWjCd8'h}z<A_kwl uZ hetR�_xc_H&#`j ! w<Â)J_IljgC4o1a<y6-ݺ: nFz}Fȵ><_vL:nx 7t|%S;B Gq( j?Xy2= L*!'r Nj!;URZP9Ob =E;l+ :yWlO>ޯOfd^pt{Z(Qso$_LυPDiUAmt}3_Qn0"d*'}Hw~V+z)X. q4ģ&S1GQRA9{"rAM}2 ۽,q~|=*RπEy(oSRr]D8 'N؂#ڋ,;<.dTz7a''KEiL㋮z.xbggxo^ȆUg o5?+޿+s M]W}- o7-u7c⃱N:gFS} >4Y}}Kab3k/^q +vG|Gփ{wOF+~w_KaOwg=v'Uw'u}<ۄ2 =ٲ&Eg"ow!dȊk`ȿv'aw\S{<OK".<۽y>[=_qώ<2/7w'zs#|xq=z 5fH8Wa쎂|_* ݡh/z#츿L|9xa!'Bbuܛa0?])E/ST6?h9C ^/6l]=r$üyjau,=`v`hk-:Ô畑оzn^0ȂaE]=Z?P1li#ܿS:5VJ _˴-(Ro`P+ u}=Y5mIEBWC\Q6W cGz$}Fl;N\`ma\Wd-/ՃnQFuۛ1fT~5n0}!= S`1N<z2Qw0f4OFu,}H4 6d?@eG佯P0#ףwt=z4OF'ƾ(GX;bT\2m-x?>b6B;4B+>')zqKpDaV[,'V|? wa^=s \;6>a[F'Cogq I_?i4̥f:}0{iJ['8;zy)SpӰ`4C J烐 hEqmR>3N']X;.Y=dAH= +$E�on(:oO֓OT;CW;.0˻!j$c|8L/+ް F҆+QC\8.y,}OI`pt;أGk;أLais<~VڛO]>7CtoEf!6cj}_Ch7plJ/.uv@Vt< ~fp>r2?k׋!vGw'~0 \a}<FG}0~G#;E˝ɇ3< 󰹢?׵/F JBoOd:} -e>`\K!qr"Y;O)fi5Lö7'z]t)| __Q=X>ذ;^gd䃸3 +}uȺ7\?cҫ.lÆ`3!.ڗ$@Y|O)&Nt 'twT=r_ ^^#oJ~;B0sgpn>(5 !ytoV6̕ܐ_Kw= _ާu; hw4ܼyo6uH{߉Uwp7 с f7?dг3I x=p'[R2`^ 3\̍0T{UwpHYsDo[F WٕO* ō>)-'RA/7Ac 0ͫq[ b)B5G7eث.+6 Ӄ" ǹ;e 77Lyå] vCKNqCj# @>t} nX'_둥П|q#/f>[ff;v~*xGhl X=󌫯_v'L]hBL4KV]#U$jwTWOO"Sa>[Xp̸hzOU3@$-w~_-vu+a;.ĂiAL7u+A6@Ijat?==..>GݳbFܰ;*~_e[u"2MP;VrẗX-bLx;>dcJ:;z2w'w�`R63[͟9O죾P}2tŷǺ>�ߞpDwYvd&2ɡ]+DP=qT[y2_$s5>OL,{RR|ͦR@|bu`ʷR:[zU؆ CWld> 2 IO֟y-o~p홒Z?3* 'f!I6ﯿ) afJ̟9ct2Տ.׷{)}>Q\j@ `ծ{0'>YVuMgWO˻UGp= ~)tϪuK;d[o/}>KCR泀`z'|,uKf;N%:,!>'ok;~0|HkY a^藩u,| eAEzAq=[,?0YS(x]}ɞsgMY2YvQ0+V^x"fKG~ŋ91^YS{\|g\ji!?mMT&hM3_@l_:~w t32 Ƌc𐬽WFvJ|3?z~q͙sBʯ?sFwPw0Gȿ2Zd,,5?X0쎆Y񇖹k#22ݱo>o}Fn~7mh_{fBi,7Ls cd?荶{AV@Cyv̙d+Wr�|R\'>?yg'3]xS~v+xtm GI|q]S�󌖏3/՘N suZ_eJì;4L8e{@`v0y!iqDuB'fw]wje+\k5W#N_P-9]WO>YwGdzV]Y=o:F} }[dY02y\YjˊlW>Y#p_l2w>o<' C\$pTp,0D`7jaGt^ݳ 8Ds݆Y^1̯-Ia>zqvROĞEwJC;f)鹒 R! h~J1!)q̿`.#h G$>Qr1v$̭=++|;O5_\掋>f}R6yWI{sv%_o[5M}|セ}b$Iܻg,+5}=1k)TR<u C4̬X/zqYV0ރy^ouof gAy+[5+uQ#>Y0]{g} x@rc}I g E'WO{[vY0;ƠG=O "=Y;%Q n!_8ΜٳKgv_16Ĩ<55e֗SKyc\t_(M5)? [3?0/u;9fJa4˞G0O湹%V_@ 7̛yK;kY4y>4\<sKs|يiӨ+;ugnĩ�"! <gyKШ_^P2`v430͆?~o6 Sc#'OE\C<ϕo{/kdh]Ύ}1vK C'z)=1{yY.tǚ_WNO TӉ] u,[f3˓Wg 4 ս.c]uO5̥xC'DP|zJ;iY.D}0dPTuHSJUR P*fu `z9VWnq�<3Ouucu+}Oiej}pe=ΘYvQ"(;c;uk49L|}Fiyô)ةc7S[Bx mXR-gqd,zL3;_}0Kxfjk c}>򥉎ejg}i_in4t)'Dx/<0 ߕp0Ⱥݲ6#E:8ekӚhjfHAEIB3*lLΊR}=OzG'ejìŨUo-]KrW}|}w>ye=WuYs ζ: _; )v?#kn$}fzt13tu1 #{!D:QN˚k˕sBVYt4{'#ETF\vC9hw L,!QS3t$Lg!%wXwvj{sLUtf&|C_1i^OQ>~0<O/C gFݓh)zrs͉:{eT: W/Nɵ4Ž]bEyV= y[Zgy<`|Ǿ>Ozã,톼FGdW)vē2W)C~(!o(l# fbow@ɿ< fo!Q=[-,zGdC]±ߕ)o`%˪N! uRS`oښ MB# oOH{ŸTX.T+ȝfS>SPdV%{5$z puGȠ[:}B++ =c:mM}rgVPYYEYIje]se@>!oYX0w ۺsovQ|mJyPnzL\KKCm,nmt4(OFZ[7e] :nR7ƃ:jeS:= =΄7tC>'Cqt̲Y"QL)c7R|{r{8kL|r#3d {|߇< tDj]Ϛ?sS]lC:']謂N7L묎ݼMI[W1}=zJIY<U0 7kdZ1KL0sbyl0 '] uwV)f,=g6u/Sg 743ˆ":LS 3y�7½.5\ a##)^{J#G>ɝe2a.ƆS_?% s-iE{^"ׁjdiA<PʚGcߞ}٢`ZW >!BOYrb㓁d0!)viVҗbӆy!8WϳΨ|OLy܆uģAK DX7Ģ}r6DC|uC u>Ob4zafA:mA=_yfXw&6!n)=;zp= em`C<͵ui6bU.3>6WKZ)ϟLƅ,% q ^Gs nmțaì]~> e<_6wԞ0A\]G% q, n^kۆѽzt/͛{ .]Cͩ_c\lH[?,0bnSAMglEb2]3;~Jq(6o?+9݅Bd{aEfboٗc޶a:^b*o9'4h_6 X`#a};㥝F\8"gVz~otWgmc?H^x9*ћ9O*>j'הM5AtKNĆT >zeMtXeSZY}_dȢY<3zR<>sFU 4DђXҊ_OR gfC.Հύ|eĖx,^\YVv ޷u))7Z7ʛ߂y!D, j}~Ko9"_Жߜ nAeu" nIsfϖK֖n+[XigV% Z+[|PV9 %B/0}K- bαn ~ۆ8:qT) wOjі ewlPA<P?7N4"f˔ Py['?uX3g|PS{K-Dx@ L=NM){YAyNZ)6͹- %ђsl9+_Kr{I�" ),`>nޗt/:޼0q샹>OY5}^+>S 3 10|'}(;9t#zaCl?ZЖO[ftB@2\=M?[;zK<:Z-mF P7eSC?2L|8YsA}]+Y.# EJ>-$Cn=? )$e ~}SpL): Ăs)fGםhcB:Q) !뎢G{L 6zoOs"K$�ʒB¬̆X`[V@mgy]C=9ͪa&F6ԅ@\^J.,v /uGAxtG%ݜBPWdsJWx2Rt.(P'g &�Ͽ ?+ 2 J&gEAGVp vS'AGYP'”HJ T>/nk-m2) !9SulUjY6kOf F}7_8706U^0z ԅx͟3&4̶ 7Q2m!W>Wu|NB, :Rl *ѥZA͜@Avt h[Ćh\߼/4ՆNt Ry5 KvBF 3g*{ċlɆz&f f1MZl;=յoI}eax3Gi73V$X6]Sm6o flĖl k[8 { {v^1\s'tnqvz$>_}$Z\D覤yK3=f Zy)JIKPwMA5rf q!q(m6l*?(Y=Kajʱ%2 ̢mmo=(xqSx B(6LFHTaNcemul},6 3|,sP_"\Kk)B * -(in}J;?p}09?h탸:t>1Wש}PA['g7<Zp%Ш .>D8Z'7׵0:;k]B9YA#Xg'B<B*B탐ٹa11uJF:}Me+Qc7ǷX@u71OBt X\w!0g4u\xAIE#L=h-G`e~Q?AcY 31Ʊ!>xxKO?aVPD~;6So7|> fa,y%.0gu kicXAіGwgnyA:ِe\ JS6SP9MQ) E6" %|3( p"h|gC(r({q4Yh>^P̣>)3B xTĉ bVNh/ə5Ԣ)5 1u }zΜ8du/(_7/WRAݒh�QA\=ș5DȵLK,S_]gކm3EwLM!@6toOv 0¨xJo )lwA}m~nC|vi(rf5\r]/i+[{ TK2L2y^׃W6hv}!WmBC+3 `]/ xW (CzIC,[[JTfd}P2O闥ٽ!V[[m)'iu nXPO (Q.6L= C9B~ڱ!^9[C5X<Q!/xz d]oESuq#dP0WH<e b6A\E[0wC}=CA{>$eg0 `)fMt, 7߄Cxp5 =?}y 2Na<dw*?o Wيr^p lx>?E߼R՜P"k{#!H , fU0OX3hAd̓F7ygs5pR-y죬z+\C ^75>i>Z`!qKgc-,DAL mF}A}EC<,nxC A~R /NAd 5 JbO!CZ%X=}2?#AP_41!Ve[2ңd9_d5̧Ƃʻ! b9ޜQU0~0ыQ6<{ BCDI fg7'G xN(C:ÐB^83>g7׆lGA|xZ!qÂ#K`s( dNC f6mLSn);1~4R=Bfyny!׽7Vݣ#/}O7Q'( HyVk=cPWf4 F2PQP %WDoS7/Po u i!&ܼ q9)U7&ka\MƆX&uz{HT rB.!G<{O( ?$/e{|xC7\}ZXF &Q^P*/3;~сE.)D zC1׼\͠'#wtAmCY9KDvVo('m9ʎ.zpyn~J_zuHjɀz<!Ǽ>!* b)VBuHK:CvN# :Q7Y?q)O~;eEk3HhAC.T!j)(kOJdSІÆJҾȑ % oN: o }> JszC죜,yt'Jn U9Bw;5In#G67fddzi<7N!Tp渴Ja)N ~P*BC^g;6jUmC)'ek(]̆ [7/g@Jjg >74T9EwN6̿ytKGQ#|_:9,!ԃɼ :9ƲTv0~f u<"N|øЛһ\ qK9$zgq|z�PE81GTѵԂ:vDqgW8XS<ytƘj2odą\ ;n`p A|]`GiK\@9rT5ܬ!+)f%Rh(i'lTNBU6JmDP͆`7%ď 桩6bēZSiër|1q!`ou 7q\9탒J/AECJi4rp][RHKzp  cUHA8^2 I+s k! JSEjA8 J(k36}V%YVyAR<2Pr<uA'LO W/%TC=dOѓ&t5j?$,ui3>)A nTaz|N+.U~5F9q(nAYS q? |-2׷##(lS j˱T2X Ihr�-G?7~Z!>F HC疢�Ru^wYt\XL%NS?%'RBPc0탸%OH6[[i['Vh)'J9J9J?*:987 ?e$n /4ҙ~Hsm!Zp]Ls5}A !jisR&7A3؆6(lv\C}]n >9үXLBaxSm S߼6_J ]-)|辡&bK.م9Ф!lÕ ?K~.%#@<1!cKSJ+OiBü?ŭƨ:Rq_:PlvQPqT =fC_/t�p�d?r)̜4AM1 nނphCiX! rsb8< M0RQRQR c4mxkŷlCi k '9&pc5Q\N S㬆+-ccq}T{{pc9{^Cgo<9erʐiۼ!gTP :;[AjDRSC\k!LӲ4$ą]�;=smx!tN{'D5/X 7S!АI\rKN%-S$SZ5ԋ˟P_eq~ T$B~`^5+6в!v(E;<�GVA}ZZhPWj<y!(_Pb()RX?4mOB-Y(K EFNiH򁞼afd!rh.Fim6oChKK2.[=4*G^BT"G3Hv{edk0>|q4++D5 Ed6kuPmot`~̟}o} >a/ՃկL`^-]0C>}PGWP7Gwe既Xxt9:ꃸ 4u? iȫ1Q0>gn37惸xiuP_?GgXR(LP7ZB vH[0{O`G 9gyL`uP(̖>u4u4<qcu8aN)+}„a8}F�胺>7) X|0J)t\P de[RV?_@<>CAg 3}B!_YF]0m>_=3l ~ѓDC96xJ`xJC=T?t/{!n{H2/E ~{/JU~,%#IbS-lxȰe6!>C>zșGP9)>_J~C"8 VN5n^(s>Oսn><> uo|K뒦.iK꒦a616 ۍo q09(Ol 5aĚٸz XHj6†1[:,b-eIC츝-> 0 bs0A=X|;?n*AAM;|?3m>)>_->LnIK1+>=?[‰P9fSJlB\5jOd<ٺ!--al&~PWb89xO9.^ԅJ:<z ыsd`ɞ$-g uuw ~Mv 3;~7io ̚S#? igzKcu,2AmJ>[~_YAݒ@vD`,~9#erk7wJi\ .eCf>Sf�!)E�/B�}>w+ge=zG9胸9i2 xJ^\f}O)mfzuu'gF>y! JCgFpo"44ωrAlAlPk>7?[Z4m}_!& @<( ;\̶oGΆԂuP7hA-lA"_T鈄O~R,[;([PxP$YAe]9rAC7C<03?alا|O0^qLrh':W-m a,}0bdu|C.}0/4s㽿3?E4uQ`ЬTZ`:+>EʤF3%wq?7?lA\(= `bLhIðeZhkg!<i!�8~`}HჹeL,oe?^0! aGAaw|B 643%io-.r-5繲a ܆%m"aa͞0T͖6'>d3g>jn}H@jq킙0Y<L ?Ba!/r9管$mlBzgl 7E܆%s1S9Pҷ2G$@|0iX ɾ #!7250.JGrq 4)A~2/ĉ�sⓙܐ"=EPϜAa6 �} h?(~2`· Nt488|0Eo:4l'b(< €-�SMu [+-CR!o(nPތ8|0 F("=9sBٯesf{ ?}"O-. V 5ĉraVğ)!yrjNh GFe,P5ѩ!4R;#9P0-qgQÈ C!LXb- [IcE뷵!2w~>w\ suw3A|=>pġْ qK'šqV02]0(5)^ܽe߻!;}Pģ+߂oh!0`kLá!4LnmͬnUAo6)uf%HCzkk_&օ߾25p\ng ?:7G<kse ``jLC~1 C5X6h0A\Ov?P4 y#͛yz`h,;fV胸P?V!U&ƻ^9ѩ! +Cx# ;34z?sAM9090ELA9oOm YݽauBhOB溽g0WHw]T'skgyHC8 FVaxmX 0+OZ46ĜЂM!Ƙ!ZrKCȺaLAzbz yC܆ ?A}-RNlvά)Xyϋ~r8c5J/{!<B v! }oȍVِru( 'BP9%怱<:GPP)?C AXŤㆰP J-9`o3[5Br *]doڰ?ŋasoCG;F~W!?̓dȺB w †r):pMh,ׄKB.Β+}.:|`'3"גK*E Ȧh>/" aseE@K 46c#0eȥ9崋oBAH)Ky+K$"ety݃#!́ȷA2{ZE"F)dlW.=> ZJ>_PvT" =$m2 aƹ::̫xtOkӫӆ!oV4 [bnGfҐSt@,GBߤn}i+2x?%trv^C\;{c#ddaM8o/&Esvq@g[Gl]CA{&  G#7͏  ,}ujq)!! |SJY$~nt,_*A5S99dH?j�+[ul7Ρ%TprV/FC%g|P�zAM9" 5rVK0>n z- ?CA8TP.Ӳ.{AUClB)7tvXSgv.ݴ>O>9hR$~|AlN^m *Hz!2^vUP^eWQT:Õkfʆp?xsDoh,qPyJ_ 9B79!VT`e):4"s1PN}+Qzdt,/tTQudCu-o+kʅ{"V><BXF n˫!lW%ovjZW~k <_ա93vC16Tܘw!θlzAMoSA=A}6lK*H,F[+Uرdʯ60 B[io7VD�Bd_}T ;D:`M%b+UUq 6+  nl'^t9 X֙R Q>ohSՎS>U_)bX b \/ps``.9_@voA`o(,NoyYI mX@<4!/}c7f# a V!c@c+ fkP-mIP_A{L,xg>OBddz/ gO!Gvl..2mP_O`Zs֞dӒA=;~VBu#X3ʻ7;;6sKKmͥ$-Jcɞc !~ z`8~(fEC^ eSPO ? M*+�L`87q-ʢ)Ax)PO~,(̙DAㆸ%˘mN@I_ D2TC5sڱ`'7R Rx6,^Rq+݆:RR -X^/X|tMLl vnB B\4P%G?müG"E||�h w gRv"{kC B?x 6BAJH]Dz` 5~G�hT򥄙lx? bv J䔆04xB8LUF=ot*(&{d}cyÌZ6EJC )2G:`.ڂ0Wl۔JCX9!w1 wsL^tDmH[9[\"4 rC v^}ҳ!Qx̪WN T{|~p=שOܻ;>J{uJ'—>Y.: !m-ِ!i _6}bv^KO<<[}r0R9ԅr)eODUB^/#G둜XA,KHxC)<H(�w߅tXf= b}TE| e6AGKo'ǺA: ģ{e%!+rhoJ 5?X032R%9Яa^h![d!ztύтw@Jı{P0/t~(-B~*? 2d`pC,jsܘZ֐wQGdItEa% t0[nqn;A|(ACCIZhRRKQTL_B*> J[-?MTDĔC_?9E%KBjIղ"/UYP@Ôѫ29^d-q^1X J�J !.n#ARA&|,WS/L8 dr?zAwy$&ZI~łŇ-alj% 1%pyxZ7ą0 fPnT/id!ՙn5?H(VK(?e{J{ʆr]:.93V=ӗ֖y ƹ`JC +[Ėyh/nblbmOl 9sn`CeHC|ŧ %.r(|!vkKlM>AF;%]AjB:du !YP3 _ֆsoOΉsrN4�T rڰF+svl<(67QPVt(}c1 loCq톺7? JK+@e0!6,D7撬$cBۆ8a1ѩ![ywm(oRTWB�Oi ujx9!bT yCx9ez̗iaҴSNu a*o(v!o3(!v)yH-⾍6¥cpo(ṙ O[?L-l(Y'/<_yy <7ڱί?,Wi/vw[측Z!&cMR~ɗm)hd[JZJZ WPh*P/NS9f" ]h&VzjkKQ�] !CSڒe8[#JcAӆJG~rAE_$!ttZ68Q_IU`wAʒ}ԓ�5zUTs(=LvsP&3oѿՐKAl%oځ2̒!C>n( Q6> cDc Ai.WSy%]_oq6eZ7Ty\s +VSO U&ޫhgA%VXG}ʆHH@ .}cD|0Iav @k\ Ύ]so ׽�,2JQ݁OKAbuIy'cwAٰPFRɳF`t}hCxx~jvAyUPPHRvBxhPΰ*(} |Q>_P*b!ҕ#YGquRtJAs2*=}m%__W mNꖤbAC<%MO:*8*h=ؙ�6‘ldiu s`GK-ܗZH^0Uc>)s ڥn mLaԏzݨ^7:$+~R0wqū| jIJyXkt[%-B`G\!/  Qp&探(ZRAmMK 뇘R\)baqCl ڞO"')*R\*Z4E6,v[ TPy0Ϫ 0CJN"H.=Q8y/DKm똮Xđzp9,2d]@jԓjC)3Btqj26 C F5.ڞd(q|KPYu%AiS z6q$؃�*XȂA/:..W(zT~(Os?Ӽ~PChhZ[P6R= by4 44H,_煪i,׵ӫiZCD!ځL1p)!I! .5*~cu`m4~GP tX-YU2zʁi %At *C_轆,Z:ߒ Y0/3((*\m o"yi[C0$ ҅^^= gG{!tvhxCHA+FBݺv1خ 3s)5 ,zC-@3AZ2ʼ}(PYb<*>_:>wVP̀2Q!;n#O(G`Q T!C K#D# ~Pj  "BFkC|}y^K̟<?lY!#[ţя 9*JXI`DA(#ʖ|А)繡&͖J@#HQ[Pl^\6BTCUoXaߐ#OD}GC}]6bBRk\X`7҆ ʁYDKd%6/"u&O6{u!.aV+/.dކy!801 6y/\a> :C�/M>q/&278}EJX |{h޻N$1T4PWv >IKD V+QY6=~3c%CJxj!xj$5>tMW,Kwe 0/0Hx FuPչ3s7loFYz s Lfzi_0ݒ uX0`>=`r|tkǢ5QS[k~u0 ^$p H @ B̯؆;g4~gU /*VdClVݍ!.nT6Hi(/`BTJ\_`޼Ԙ10>@&- o.yct䖉ږv$nTi#gVV$@r2 !C+? y*u|q?wx bkc*Ǿ1y?'L4&4 h0]A}]pICMPD^?̃o/|*[^ j.T4ބ͵1zmx݁4j)X:. X8/` 7SN|28 |Q]}-A F4;<o录~_+Ҟh^&P\}Pqm^o! uuxt6͵PapuWVFX x5E%{sAgfTwAP5Kis5Q݂$iO"\ғq!4i䫆P*(M� Q ƂPJ BOEFTTPNQ9YK sO j <-pSz~_P"H  !$؄r0S~ !�BVP~U!oi_84 ]Ctt,G&u?&*.e@( *Ð>?н!:& B١=ѩ~ 2KA2wJCw ; "Xʫ\/SY*nϣb\8u(ehП ΌB) b\~c@V2pA8$Be?4/Zބ�}ZP?\Tt“*ׁt܂s=5^D-QN8l.q\AqKJHh0jo"q(O(@*߅uj3pA=?ojﰠ5~B\ 8Plݛ4Cddi n%r`{/O^sl2hGPkq-X$; Bms $-!=DBucC#*]w,LnOį>Zr4!JO`lF[L6 ^)yQzp"nSz\Tp%I1wt5l [zB5(8}`Oר` AAAAqTT�Q#2#80X^ l*iHv(tRCM\GJJ{yF+ť+!.Od8JU wpDЬ[ ?i2V&sC}ĜpvD.!&G`v!䩭<Ղ *Vr/ɠ g5tvȝFW.FwpYAx_'p0Y)H]"\H](VJB 1{mxc *=Dhp!C.$0Ivk\%!2]XL~@eXָނpOzr%XY^UPE[ aEbLC$5fP"vPVVVNfT]6 ·VZ YMǔTK6@]dd%$N<F ߭q BV0p4-(l\OEY%d )SAmmt.su#!L'F![kÄ կT_F"1@%FrH*Ю\Kֆ\A؂|A҂íw¸{pױaJ<~)>-s1P[[6Zt Dy% 'z.!T8 8h{K!|s[�J1S])&ӉpOX B*T DÚj1\ޘ݃>YݪKJYPVH7%pQk`A͂PP /DR& VK҆~0%-?hDd r _7'R^KJ6D`!t0-̇huCHy 煸Trbўe:նk`*nT7HbY[;}713.Lگ6QӰ^,*BChV|4b sM . whuK9eYC5(a?_zA}z7>VK[!'M꓈ \[m=BHb,(<ʜݼ{yJEFDNd_Nw= [%!*9)uYHniSFC58\*Dž I�C.xNJ@?^\9)4dd:DARA^(?y~CeJ/QWV$p~S떦5T<X3qL|-50g];-uC;aȺy5 Sa5B_j>͟_,O 4 aAͬ l"Waz8>Oi\9is|4 C=h<z>`ȥw<Yl’a^h#3I>mYﷻ�CbA_( 4l{QXͅ�50e7slkoܛŧ�.|V 7/Zqj7Ď3 [&|k!o~fʆ7]IRk ݦWrna 5L~3f;M??^^ٺaJچ8r&Hm6ıL>pY zjk{73 Iսwq>ς< �0'5L0>4B9a ü`ғ%p/VHyKoLQ/ndyL4e~ dț=[\`%7~ς놸9'OX S*qp"h+fdZ! j]3Ǭug!w[2b%j|I4j4Jm 6ם#Ai(mx;6t66}r'뵓IH7;x|P_Cٞ!'34 fs<nBe|C'G~:)fr=P_I~ = .$Ä^0 f溰y > E!.$6siCl3_-­L ?osL8wր7L!L ?,C}拫 IKOb;ϧzrNp N i}07F5LavT?o=?}JLs8qGN>AqٺpOS'34|aEϔ6 Kg(#xqf{/H7{}P瑼 GZPGܼ7sf#³wT$uk <?('+3?GZl.6vIE<XiR1�+oFȊ*F6`.(i5Vp!>pT&~W3;xi14!#5ཏkT Ӿ8a_d/fX|qoh|S{ td5//׆pgChV+6XP9 hMuBlNNLoam q\ejM%*J.A\\ACuUCx5CXg}-#\]']1;$|!Dj- l {dKB\d2FCp?lePzB_PQ!,n񻲭\ +[F|R`׃u[PQvj <<!32d$4lI0GZ&1ŏ~R%}e@I0|sۛ[r`!wCikE|ܼa~FFӛJ8GΗi -B0[ "d]P欘.u+'|PAug uKrqAoāE.2ٞԨJ*0 `XpC+?[DjCduع0Ln(,ƴ` @ P{qACd'De'6$<Q J)s>KW'WH}̢)Y(>4U}]lPDI% Wv\=5Az;'q1^Y(+Žr4;\⃸zvdSwedCMBT58›s1J+ADJH;b:mCdlj 7˽?YVTRaZB�αҬiK՝=0?(iP^r˽|5T Pvjqu-p)Z_WNV6FrUC(<i`/;,)Q OV4S&Ž#+u&Y0llA[Qz^eQO977ԅ4RdSi3gXS҃α)\UjAm[*vݖu,l톒`* `0^ En:9l6?Obȴ(l LKO |k9%UyAH,Or%�߬ B\o4)Q4lv:|tCvBa =aoCvkoNͅkܛ%mpvl ɵQUڑ;b^}2EJjq콈] \J3.x5KI\O~j 6ˋ7ޜPUHi caU PAmC`q؂pGUiMd4D t%WaoX[Y;[6TY}&#q ߳cCG?X@ z;`~.Uo7vK_[>Ű38,Ln('[P9s YϕԔs?_$4:a_G?`͑Sg"wdRN.ΪS؃<p`P[PƝ#Ǿ|Jb|ʫMV9jUa|Na,mnyNnd!#r`p"UR&ͿmAܼ<S:nh`N!҇氒KC2áB'4+nWׯRTnSP]VQK-; }_pKḂ$4+; 5 |'peW~_]j;6UChkO>ٟ\8JZ  WLA'! Ln%!Q|.h(xjCFݣ2wV/`.łhTׅ; K!B?a^67rC.V<e -Sk6҂f)ynq9=΁|90\5 `^,GS +EwAKiʼJ@\~9묦ݑAl#v֝󖮜|Wn~!0 @ClX̠|ClmDBkŧKa>wq7TLa>Ш瀃bk#o,nk !&BwAȥ 7 n-}DK}x) Xe=ph`Bk /g}!6LS`}jkc]َaʂFk(ɠu I!7QY{3mYH2n *FS}5gzjo 3w$ MLFBRGNPJ\pu6ġ=ghlܛC$h`uChv6|\[}xY^pSlC:%CMP " g,~CȥyKODM2Lm>S:1P41"/<͙ {0#6#b6LDg�osHC}-zJjE;6f6Rid?VɁzhtoLm., ݟTiI;g|{N(:[ -sx· ҃ڰ0l#K qam;'s"Rf&a5䫞 FSr#<MDp]NQ] 5eAX6OޭtrkoC|^2/DW%B^tGZQQDD KB&?H,&6\ʙ %P71;W.3?>S .a-:qruH_irKQU/ 6܂vǁ BZa# hZKTUP^[+ H\ m\ Z*=B3ةbyBPT:Uh?_|*S-4Pp='Z4΀fs8;&@A%T tlO":0QYBH((iKiBAy!e! I{& 0{)|?.tΜZ Г4ĚGUfC,*՜Cʁ_ Mxz73>SC4gh ϐg!> ,ul%F}^)[B`kb\Ȏn|!†8e� ͅ^72<STamCxUo81ajA ak#_mXh`uB("obzt/!'N҈ɜ{S-bcwʆ-(Zm"8?T^] i`^cK^# N%G%f>uyi8^$JMUS B9Q#ŔmS.B?j"[Pgi,ѐ+ox&!6D ~?q~x MAPD᧨&&FX6\y!K z8tu2D4!RXn%_!G!_`~R}: 19*EK/MgI PaQ|p)Z@ ~YMzT ΫSŒSs\n.Яe po**t^]:4!>\}@Q�D]b2: j(kQʍR硘 F1ZC;Rb OA !W*;с1m(}bJq6s}%* -q?CÆB..xJ-$PwIsG Ã\2sp@9 wwgcC<b% ~JajwJC+M*j BAuol )�uvUrr+7VʍH m>C*"%~AnhM$*qMiJ*\:86&+ibVC}JԔw<Qp !�ejH/MWn5ԅ*zUr8**lQwAe~=ڗ,[U0πx {+^͂rR bRCy9dH3h9,n/\CDjW2D: l!yLXл!;f~GZ6[C|mEs+mCچG}+"vcKC]VӍ> !KH*40v&e WI=4RPv܃|QrIŠ~8{2 PN O(}% نZҽ^+zQO{G r5գ`Zg &BE,0 JxԺhLA\I%ii N{RRQ <?ՄRꋡdxTt)[?`JIٚN5kcʅ+xC.MuUeppσ>SAi,ߛ˦`\ !7Y 1O Y ̳a N 2 f)af=hc^0=' ɼ 0݋^K c,m+`*fK T\5ss;[8k&:.L?m7\+dY{Ͽa ae BuS- @QiJ qj^b(@�nyD$,ìK֥P0`Kp JX]Ap¨Vi6[*F=W! }ntєToQLP*-y/E5-mݧ^\kbj1MFpBZkacCH0k+E.E| USkI)>@e(`qȷvP\8-); bCh,w&zd쩆6Gّb_18:Foɂ\L!t0IGEl_A\`XC;_ʗbаv 5̫t. M-EJ.A\ UK祮 %%�Z`f*Jޘ0~hBm`Ctp.NmN.HCe<?؛5*t| uzl uF΃AK)@ B5ybo']45jK!*= y_T;f˦�%naZ 1L*z4IAl7/D�ha:T^ewiʆ0~=񣣰A2pI}~>M `DA7/z[L%phj@{>8JA�چ% j_V0sȗb IM0*Y> <.lyv ©]Bۮ.Pą rmTi-?*Š+%�zA}%[uޒ!*aϣ?G]lYQsAIQq+Q}A6hYDr|]o]�Q~k)QUb 6,tEgAt a~Ax*R R&JnLƭ9K]J*BR:2c-:-5^ KXb d1oܒ6c6H\h!KZB)rnK(zGCp1M ?ܭ&yV) Z<f:BsFv'K~z2yCnG3H<zPSrE節uh8P4hiw_C8Ի lmiXy" `F|J燽ydw*|*d6|A\PunYJ=�qCk~ri"II*B]xݘnv$%m )Չ𢶺G@D `3�V)>Po)u:v5 -6X *-9 FyKQ �K]Js0 "8aL`ivıV2 :x9J 1P$ӥB,Hon9%ʕt lMxiHQ`:f: G9qj?<z -* 6A-M|(dqc@BChV DyWꓰ5r&w; QJE"ڂ D%77fa7Zv % ZGɖ1 uY ..S QL}+*rK'BP+%�PO%ȉw_wez~6U.islP]Vwzh́ ʎBhkA1C!Z(ɐ7R6^h@WK<�H4xe܆UP{e^:~fAmmyH/(eu J2eDC؛KS b6o*&U -# R\@ b%?hZqn ZbZ}4PpP݁-k"> ]8DЗP s[ZAATX۔xn!;efjh‚F]"Hyhz BbyX{*tq!'O VLKMj2䅰xA%!|khUJ܃Ju¡w_uD xCסU]u!riQA؆CPT}h@׽ )I45l*{S*8;+ F~!qFQud]EcnM azE@JXQR96'+i#O$?9I~rd] %uK+wB0n( ~FP`z`w,6+(˔U*{4*RBڨ@x4& BXaxS8@X)R F$*ѫd<'[N1%ϟG9PeNB6хrakeAjR}m'"M rc)0!D%Z-ìn "SWs}^';T&p/vܭԅ:Tr *TAwtj*کl !#tyhn>n >Ǝyח{(A3V *Q~dL`v7JOU4Q+g=Zj"k]AՈ)~Ӂr)sC^vtayIlG b>*zn8[!ò DiWAuA/نP 1a>W] +4_ UqCȞZSqݠPY iZZYxճ Σ_lGCv+ q+/hcu]HWNL(H8XPі jj\IebXKK)bOJ& ZХXu_bkPPJ/`.e]-a4Mq˸% *;VōIk>ȷD|,Gtσ$Fͤakp?+T "]RQ tŝo, n؍,һ`چ[݊J'MSc1lm[0Hԓ;'_o quxnOJ<,yK7) gޘ&0Ԇn츂 㥠nY5e!sbHhrv>a?0φy񐟕`6׽`jY|.a> O'S( Z Ž;)%[p4'j5!> ս`%kRhQtAyuJonOb_0ٶK~R0#=PэtC5ą&`DK.T,`z~$Ãj%.R-(qqn_z*BhLn]m/ %~k?e 繠&ܒu_?i^ )@`ԎKT,c)^ڛhX0RyېĚG`2dP; T5 q?>i Vj&R;S>?"XS5 #{2сX(}/>G3e>%9l )($y[Ͷ @@+rAW(>mkBFVCMoׁѤqL҂n4 &6�ezT繡&{Iz5!JWRIE<痮2[nn~PWAQgWj楜<1XBYmeq7!EAcnVFxG],2Ph_PFn %�qjoOfa+Ha!Xdk_/n^s%�q* l .]|Ky.($iԭK()\P_ǔ҆؆?iV?JoJ!m!ԭGn. e"a|D8i:NgxA?&=|%0mVn !.$/`_򱨠|r\C \ TAHt/ \rIxYg%pRm+'փfGA"tC|]J`#<0 fSCM /ƲAQ{Ch,?t*5M b?L/" w&ix4cNbw- !0 qݳ7ՅO`,E? ݡrL!0r+6 =`3|Wd}qS4&-X! >' _z87Ga7 {`6Tik!Zz=is5 F7{djwC=\pu~7կ5<fRX| #xGY]R0xi!g e~P /GC -6OmCSm/9-p  =yg!g%Bn ;}2, 3#M Cu gSN, n:}pv]` !~ ң]<r<9,a(䭱9 ðm]<"+l Pk) ^JW^7,%nuK[&=d�jC6 P$ 4 p~ CUh!і;ku-li}dag !V̇Gϔ !VƳ%v& L|[,FGW0_ #Ћ^L%-S(Yҕ6[%||J75io6hY>7椏xqIP 74)8FFbsV[;+|"(U-`L t)`<Zj p-<? >\xto *}0R3?[y!CgGXޘ  [.o/.W&|yB�f`H/`Oi&ۋ銣Sl⢻K~fT\%iӎ+(IyFNCh/NNܛ!*vqwr̽ٝ�f_=B,9 D!N-:L ]ܲ䃐*2u4ery7̥x!d^Y0B�-u ̆7Al^0uj]j\-72at[;fldYwH[&{S}.y<[5 PzHfqA69Y{՛+-2q5&�[AwWq0 暿ޯm<Dx 5b_o<eYٛ ˦1vOQAM\ooXO ’#7`fYCT{# sej VD SZ@T%@\!BTq?CVCmcJK\QAi!r \P˦dw\^` mu<A e8<Ff!6ĉ0L,(%�e#~P5 J@Yl!Y]0b l-LCMmJ˞N a<Q ՆX�׻}CEvC9oe^)]7v:^L ơ3 b%75! TG!˼xq,9 Ti*n.VV7yU"{~JjC)(qx1qT uh9w1θ_&~_ѹf;BR$8a YwgacCbؓcF?6? *+$͂8;7*?|EO[xV~ʉ7!'  qT-.̶?[Nѽ`wlIڣPAx9:ܕ QCmC-9Ow!_RBx1!N  I>L'gz4D7Y̶ Cm gd{p%:{#H7!6"E5C#|̶ 9x hͶ'dcB<Yz!,x^0:: )J\KK yV5帳~![ndO5r̺o|`b(/c(m>K a^ MJ/؛c#' J9st!&bEf{ޛjfу`dqS*1IUWP*V|B@ J\l.`IvJ?G)w͵ݑ a>\($yUHbXC\oN TȆmfC7UR& +g&-֐:.ʞJD\9moSnP !T#-şR~ૡ1/'%}6WGۜ9P)jS7f Gn^̽j( ޵`)CVA}^V0_ޖbdQqiNX>Cg>*kF;Drm.RlPN8 HAM+8`8EφP9A|9ywQq OȞB1ŋIs ujC</)T5'qXCqp┡0D<8aKrUTͥυ_EO*tQUsK zvG #Uv %dK6Pt샒`r|רҘ"G36-yiCe J.)W eڋP8r.Fd\<{p7 +TusA}]+42\==˻bw죺 ,^"8';_5Dj/FF}es*G{#/onm-{'lI#ZzIyQ6&xǻHu\7'~vH(J\ T-q.FDP6E鴕;V}PJ򷪰wږB\87 mOFxឺmW<V|m$p^x!* ▶ܒ(=l>^{B| "}`o`^W9n!/7K.(QFP .an2V#JAl ъ3C)) $T'Ov H,''PLD灅Q2Rk([B!XA C ˵߯XQQ>Y'QrZ M6wv^mQ f6VՎ9r iA*^ٟv|�09d^haVo <7rTwVoٲshWô/?5's5Q0i0?y#9p'yeq%l%lnœ6\CN2Ҧa>/ `Yz�ni洠Ϝosݹ .roT;s,{CuI`\()xOCH0*B }vN}mCA[J;72 XXr`w`j'PiCHEXBYq#DPy7JwTY YEz"G6 % Gl:X\ fN j>QZ06ͱr!PW0%XCIE5 @8 ֞/D˲)*"w VO:x_1)mց]b ^qA}|=0 AJԶX|C%<CZC.夎\?DJԕCZTJٻo|wi8P(nI%0 7!T$pwR>Ot4|C~*O q"PJ4 fر` u+6;*( ڹ;UHIb 0.YY"h{RVZl-,P)*\Jr>gv7Nz a#K`i4Q΂y e2?a> BU{AH[ZЍV6DHBPPzZ}兤7rHL_zC~r_!Ζ fe JuSaܩ0DВ*knHYȑh(BocJ0^9*]gUj1J@(y(Ȕ<CYmnPnh "\R2[A`^0_ho1PRS(&B qMJUC꡸D_;Kyk Hzz!r UQ5q?́){q##!<e ,>]=Z| AmXoNODxJ !'J k+JnZC!8DPt|34VȠ 3DRx=</V3 M݌E* w"8a΀"-XH@jbAц~iCAY(:.g/s JA7zڰ%?3=^Uw?:4*3q WPZ;aþ9t|;�hf?I'2H*xBBJAKS5F}A(fK%?dUt՟v#^ {C�n\%~qEWUYJVXCd)\T8<qFE)ONuo-7 JHӆu؛9+skHƘ zjQAن 2^ . BUQgrd@GwH0^(UZ$[#o6fՆd>V ˙JB v1 uwE{lJ\dZIH B�=t677f6{6׋jEF "@Nc"tl]y7a59{OE`qjTiDaAt@*Tzeܩg YRj&ŷ;,ӳп6,h?,7S#,jk:Wy) nYR[|=sC *W)dA%>^us 嘽hfXPpL1!##%.p>CB~UiADR(ZυI]n�!}[,Dou07-G:.ڇ6! z)B#m'˃ԯͅ&_o_@狚A=&@HrMԿTޛG "M`bxALeO ީOr-Ԛ5= (P9nɂVdDh80{P'@p+|zE%A&"l~V %�k27 (h}|ճKՔ_t_ R2P) 6NQUAhKB؆!煀EA  NڸVyVVVy4<h*).ׇj~e+�zT2J{d~/Rlr.:4 ѽByAךiӯ  {'w I ՈIT$, E)!KV b-|0i5>Z9Gc~GÂpx_ˎ%5aI~RV] ]ʑ+j ר'hbk.'%pxxe#/r MdCC|KG=YKug^ ~!ݽ  _lT*ڛ|C 5m8Hj# MAP$~JĚ"0^VLuRSv[ PjaC)'Y(3ZQ_S?sHʯ>{ *ZX CjaA'ZW5@=\Ɲե%ٺpv T fAE_e^PdDQ�eț9Se~}a4'!?u,EL C>o%9hjCm.XF/ByHC:8^nK/(ߚ6 Ir,0ﬠFhr ]�TL!r/nTo W|7R{LS&-[nqAx4KW@95` ꆱBS03US0@\u n ѕ05b`> <5RN]M?/G ) BuT06U4' B#/40\i [{!H77 slx f(ohckGvC.^{Ao J@~Z?4"+Cгdu\|uzn^0;3bٵ+% oĤ BS2: RAC18_4/Ti7h85eTT?<3U='6DR ռB'yta9ѭ}h]AgVBF3풴Гt BPׂEƼ"f*Ͽ эƘSDq?QM7ԞI/6dHD8(VOEkoB-M"Bd NF <xJ1 @cy[" Kc =s JȸSaVJT>jgu|0U@T0]4nG@ ay_Pb VpL h}i뷎ڄ-|YE90mxxj J0l&WO#L#mx=ׂʉ`K {cG(iW 6 1XP=*A6&6!~τć8K@.rAiA(-: Ȃ^~{CV߂yg%\^OȮكd94*u?i z&H)wTm>v%X`LɆ){qLL)] z-X|J3hYnP u52t0oddXuB%RVA JdioJC(Q/<?m~ek( &-[󺥘!í3R^[$3Lm &kEV04lO6VA-]h -{N@޼ݚW0S /+Pe*]$BXAi C,tnH[[1 :=DDFVBF!>yAtTBPNphcCx-6e=cA(f-^D]^rOh0 >W W꫊TT}jYysJ%7'[>J$J2HBoLAo ס_Aϭݳ�on5C3x\C(Q.TøodIVϐrR4kq0ڥ[ܿL*c)AiAeS؆{45Ny v9. tEա̅]=V/^+^JY6J J5! )9Caȣ~ U50nC}Rs  ,! lcٔ�8" =نPth؝l7L.E[>= 7At%T%T%T%]>'%Xy~v1n~jjNC`_85ljH] |VCGp#2ݡtG5qƩδ> 2onLmiՊV~}`\-dZ] teC8帞p`TGU݅~,-u J|$Jֆ`ffCT9R8Ur+is)Rno+"G>O:PJXrI٨`z_u((TWI0wܐRS ĀISֆ~wjQAX=`4١‡(Zj qA2jw4F9؆76V6F}Q9AԜtvSJs#>24.4 mEΨЭ ri>9fݪ,}TM@]uCsy~üVn�+CLCkoBS݈wRW-Զ>#>l9)jE8᧐+jlTu޼0y!'¥x-F7XK[5bUƂp>Jx@TbRYqR+~j9T5P[.D !ZmK`76ۥ% 4mLxi(Wo'C3x?j\oC|_ %mpjJ ٲ!T-.^D )=3<(-‡J.A zn05!$Bys*KvnwN1k~`P^S͍&(R$TjZD%ԘB5R{ƭ|ڭb#Ci# BO'R,+bxTѫ  —~F㬆` k7[z!\65[  *fIR|5|x:Lf+y_Hƒe3Ը`n-1%| +&6Z^u̇$sVm]]ljZ)U%?5[ z@|A*F;hX6‚12  J&Tw@_ ^ugׄ20Tŏ6|BF_6Tp54Hl(-UڏM u@(i#ϣV3�T0)Lr%X~PX0{75᣼lJݝ1s@SQ`{h7_<xqup8BüyI\T)oi kn` !& . !TZ:T0~-`.ڣaeX>P0E!dVԅ}jvQ0ώ6/2bsa()$ʗ f @HoOB*N2=aާnm1 5٧@X\([*Y6x ɫ%.200oiK&`} B-Y,_B`8c zA=!?d+͠+HL(M2X`FS'dgctOm |` RsJXIAmC @ii=-th4ߔqn4/-(5RCkO `̪ jRRH4LR,s;V0 }A1:.k&pewAbq>He H*q!c}{h0֙X~e`nOitAHEM-,!�}cV2 %X:TfӿP[;O؂P.̥ƆN<r7VU2FPUPذ:Ξn0W AQmX8LDpbbtC|{Pnz BiD֐8ʑV] r jb!Q!6,!-'C)UqqoT LuC8Xц:uShA Gɿ(,(}ԅ:3rL*AĄaX7s#K  PɚU†)~vT;P'mY!Tw4([и T$VlAֆxS;.C!zz | wŲ%a!'[#Z<B1]A_t,K2`%|!4lOB+ !=O"wXɥ|qPP{L̿y%$*Q[6MSA\ =-٣PU8BٶDu`lXdlU*VP5&  p)`NA(F;ߏߵ"~ sA,DeA| h 2}IKAMZԃ[ qACP/SFo, r mz%#T_T_5'a4j`Ah,h{¨dGé]];n..(A:jBJrWdmbRB< \fKAt:?$LW|Ct\ULQ}\C5J! .m_7Dn̂O)h$p6FOA҃^ %,x̿9PЙ;!:l-Ei] ([X(S 趚{ ],Ȇ7!BZ-Y@.ɷ9rN:kiuxJ?J)l=( ]| _ s:yJZN7"#q!fTmu/A1oJ\ |5BS xK)UĄk/DTT2TvTBZC~2 J8DVƞ \[~oh-TA]YK$?2gn; !*4ą{\!ΎG +V I#\?(&!6W% PX *mc+s*|T'ۂ\/[Q*1W򯂞_bB8I "q\ʸ^w[fA|AkFs)mB ΢ShA:77RL< ъv%C==5�)[a R`Җ1t[%<7z!6ա> =X †}z{y=%CTb&P*u1JϫC[SLyz/ܒJ/$1Y ;@\{)?G U aJ"bjOНq!4̛o(NEsX~0S7}H裨У: t`ksUQ(Uҩ}hgCW9Fr)L*$"rl9m! ql ikI؛Ijk#]2y %XFv 2?y$~Hh�\CD]){~%rw 1*+CB?`߂MY a#uCG6.&)΁1S6W lmK#ݒj'KT?y̔X%76DI·˴ܰ6*|1Xl [97vwJun[9z7~љ!(hO�# "^BB_`yAbCJBH[/_O>-YJ=PsZgaPAX==^qkA/&uTHU~mRM)kJA|so4/AϽ 3F^i,ְÐz--HSo-ګmx "ƪ;7JFP)y`niS'(E_y/*|bECA" jԟR__4U.C aY. 7?h-6P8v;oB8ϐ;e`j|tSꀅg"Li7?у VbG}$Ht%|8[2H\vL8t5hb0q!ذ%m=u4 ϋjF %$У1D{ayKA]Va_䩞W6P�} v@䂔!߇Ri%t8u':JTo30�KIGя|ݘ "LA%]OFqXe먬isSP㞿 ._9).5( Bu=P -J) ]Avwr [:Ԙ:94~u>͊K.hEDCzP*j}BL+| >1/GA6hq Bq棻P^0CEG>= i !֐`.]<>>hc^"fr`z<HjjPP>*G"kX/:w�Wz1MNm( EpShA|]}BaS5%GgQhum(Sh"!> ]A p`B0 !?cV gܵ;.nLW|{C|/Q#vŏ⃚~у[ %*<HÂqrN["LJ*(s%{ =ذ⫥F (E^W'Ub+hYPE[]V |pO4;j-lJjث3S- !_]Ph=tPrI,Ź4稗W o ny)6lAM,YG<2QPP3%ASl=) y ыQtEf2/kHv !֐ YP̔3*ANU6P8vl!aYüωګ6SDS3:[P"F`ȝI5ąT)?1!rb=r Jq},K"-@oɂ0GV6sS}k(/-]#HPUs5oVB3_$Zay+uɰ0hvü|Px Y /x~790.6/Rb>~0 w<Gv,QE{q Xb EШѣ\Q>SGӂ:e0zPGXV:RRْmsA >k-h Pep F/$wX7DV:VD :ac~D%i[Rd` MoT[ |dG&QdH?J]!>gXճY761 NR>"5ױ03!}*6죂EJ4-?VvVVv5 Q!)!20:*(} ;zHG$GKixTy0Z&0_7j샒 :>? ׽C%^jYꉷ\-+(=NGì "S赸qv,7'f0hɄhiRyr@ܒ2s8R"XjKtj T#]`eCͅ-s;2c3ɺ q~"770!d鯟;`8Ʋ Y7䰔4Aߏ27s"[FZVVFmʳ1pS,죕Q;B~!8eAGX "`Q{:{�Pv17})ס(m-G)jmN{Z~!_Nd^�_k>gβmq4xep0<'wFܻ!; s@AyKON7X+>TZ3K 5a|by0/4ӟ\ 0T͆]J<ς: });$@t󒏥a3_NוeS0ܼ _w,kϳa;{fRye뿆!?JSfZxgSk9:v\'7 á!-oN R-"0Q2$6ąfNn1აK9VKxt+S:^p,h7_=\WM~'O!vHa>0O Œ t?h"!+~r,-õ㰵A0oA7~?)AmX="d΁ߎ1!Q8(D@(6Q.q:Vp%}5,:maafloH}?!4'ejm564-ĆjR3d�{`Î@>tfAU0+V>sfsޛ,+ӛ )!uwq`>(! %惸z}v67`_:?O>y%pxH Hģ+(Y\.Fĕ+5s[AhC pZs=9!vܓޭB=S q7}-rF*nYlPce!z`M'x-}AD,8aO`6dⓙr)MÔ J4LKa[AK}-]’3ޭ_6TjbNRh}tiix ;SVbٟyKON(8< }4\K0FiZ1X{jdyC34 2!ʚA8|k; oʧ* #Oə hګx'G4솹K% moTAHE9a b 精u㔯x+p4 {#2^ %Tk@x%~&ܧ }%�qxp+'?r@Cd'F$dR"^/%ng!2,^P< dЬ2,0{Aytsn|e!2h k FE~91"8V l6G'b±»-kkg.i2Dw+lYE}倭PNVF6T#9wv ԭ͓--̚J@;K!,R xrda̽yD; 'Ce‘xrtk\Rp/zrgCߑ[(GF Tej!α~d<eO2R<p7~Wy Gݒ!gO* ]4532`j %.: <P.tVovj~6-Sd..%_٨:+S *�teӆ!YRT{IGGqGGGAGQ73Zs �0xF% FC#JJt<PP'<z7l)My5gIi9qy[KoX;D0-~ayOvTME u . 5mK++B^YT2D+ !|mb a */1|Tjb?Ovk9VPWa'<} !X·&W^͂UE#4T|S}"&NUvOOnĤ*!a q%/ʱ DFYe= %'g4TpAGPPL Uxj5 SJfJgGs>z_ҨᴿoS]Kbϳ!-q5A`GA*(( !Cl?Ҳ?UEq @#>SߡlQOLŏ&b|Cɱ;F X*QA_('kay#`ch(AR0G?( ahT| Qyߔ_g !qrTq(>OBX$X~"%-Wc] *kТ]h%Q,QΣjGy%~@CJ(<b +d*v6/rC5IZ--WiCj+ezÁ; 1@ŋUyT{u!iKd}<AK|#~)Rwhq҉AJ`o^*Tw5'%.CCu aF@ D7g5~C(iWِ%\ S!%0z~d� BD7oJ(tP炈f /TBF $I2,n=NtAK7'ו?qZ1S*Ou7W jygAPl,]CɎ UW f J x9>!B>viC Rvi-l(Ad$~*Z9E%ȂʣF8a"bсِa}6PU z4o ӎTswe\no ρ;}Kȁ,(o*VA5P(gv IuA}[q[q5b]I\U0tE5I U9Æ>_au(%f 6zZs-EUKEw>ztƩdgW 1xL*R u뇁; sw�ycoua~N{? !u+`ʺ[D`T /q]R\h"towW~<c)M1x&pA<σЂ|hAFSEOw̛>:+`A0vGΫ0oFml<`:e>` 7DA9RA)zm6rtKYh@帕Q ؛/؛N ɔ6_=j8r}LV`q?%(a=.!1 !mr' 0mFj %r-=R-ܣxTt)n.HqaC}Rmg6Z0`Slz?WCS-쩆KH1! ?5̫+&}F7ѲagKza>G].uB~"TTPg ^0wq| )(ϏLGӵh\ЛRqfjMAikɽِJWRI| 1 xZY!/"e*Zi & : \u3^&6N YeK>[HH0B` ~_PNC^;] !T J\'C H8,xҤTM )Tu,t5a|8;S^+O؆?%a_7G rRR~:ؕC歌ֆB{բ+Fop!Ѵ! fԓ**38| ].>^d Hċ2-'mJ~fWAȐHhOͫ/5 -Ɂe#l;G}0~^_Y|+D< ȧ[³P+   P2{'%A}Pg s#\ ڥ0Ց|9AШB+rAϑ� p :l慆Bp)(D%dDׯaynU !QTa.jՄ i8hZ ;U"lx5i&7VywtAWna B-/yCyDWoMɫWou%o栺K0 %?dd5DdC׽R( ;nmC__AhsFJ,vB( ))e#[ ^pk#;|HOlã-sЗpۆR_u\swԢ"2s�GY TJ̽*Aԃ9ʕ^r#+ӓ% ?;p3iי KA=/!> ʊ|d Ő0oOB VI+&H_=RwTn(cyelrntY)XȽ/5ZЂ0/7XwA)^uV/=mN@1B@>@%2D{߈dPdMoB[CVgaآ4E}~1!Gښto Akh5f5D\Y^=z , `QA6J(iÂB�ni !?7ACBi1SMOTAHšo 9-%p0橄b=%W Еԭ-tcw\h*R b�Ixr%ia<JnyCyKݟ6d2|.4@t+kb%Sd[C[�B$ !�1MF+T8,t0\eK]HA96NLɁQhzݣqK7f=2꼑RՑ| 7j ʫ^fTT_QKQ!….+C {п]܆KPURӫ"W|Y6Pt.UA`PYBUeLwB [_[ȭT}d+r+[r+vbX`$}X!/υho7`YAx&R.ҕ P_<`P$j)A.a&rC%DջձRJ(qQ8E.^8sJAj`C(R5☩TJV*,1Gwonޭl-}+ lXu…<�'7 oBύ7^$`V?HjK%(W,(n( /ʓ "Ŵʒ!*! i12O�'O " qbTA<Ig#kc *[}CnY. D(_?pkFWjBD$:4yD \s7 VrC@,,R0$l!m`A\FVQ~,e}Dx/↗҆e U U"]YwԞJ,[u O[P_^3PudBQU&>~?5ć[J9*t ^ _:DE47'H 4ί!>I q! �Ywȥ !J'ŭ*)]ɞ¿ZF/rqj?QNTDCGE67Ĺ[ӽ)P0-ƨncƫCP|A9o¨r({&Sח$r^AT[+CBB-yU`2oA%NvCF*!*)^..-3͋1P5_/^k szG*Qq bjAr`�\A)Z<jt: -�ЬԶHCf!zM]gBxGfQAP oK&F=l b7nӽaA *SDB,"D0BÊ[spќe삲_ ԃ Cf <}z^tkE`8e,GPҔ>_0Tx uTLt.RBW]F�aL& Bhw~ur<2@y50agoO xy6[*`FBl>aܽ7R^Lޘ(ZzUj _iU2[\:Jm*[TMI0|?ҟ7XÖh3Վg}fD!s[u@PJ 8HA-FÔ]Oy ~NKI[B /%L-;NWio@:A\z%UU˫Bɐί)-a^hGÁpIA\bmCy1d%U<ς,cD rbAg*O<G y%lm9IxA)QE#k~qxF6_8B4! an٫CJ*+!-ď) Jld\3=Xr E󽂙S0b:RA_Ղyj7c$-< ST7'ECa_(YKj YAk2 2 -(u sN<wt᷿\'!4gդ ʆ)nT�**o)f$yo)lm>?èG>k!7J$KVZMt8vm)Q\S-sU#c WHAX(Ț{zn z%u p5̌zS~ǂ84q_jACMڹ BQaQ�eb;G9&GJjS^{?0wܫ.įizuӼ݂U0%H-(yG`}ypyֆKLm g 6|CTPWF1v+b}v%\^[x`ky0$dȋEA[!X7,!:K\(qG^$7d;}> ;OS.a6/8pHZe0_BG B<*x4J`>Pz|]w;o2`,wm! ᳰ4iq!cbEC!zzg hf9@{:o&bC(3C$ _Љ!FlPo3@^n)Ceb8iH{520!zST+ u,( _`P_N!@;;HC-jkÑU3ą!/2P }M|44!6FK-|A;0!\8U;ѾdSKa ګ8tzG& a -E~XFFHچp!j:XoC:e^D8悋{Q(ݰp! K+%0>iKAͲz7 !~tud8Ѻ'-[U(aAЮ u<]e:Pto$>h4E8vSZ;]:}vxC^6zwhyC)D 8 *R] riRYcO݁'8B{Am Z*rhlã+! `Ά0uKBE@M/J ;+ I^H M檇D|%kw}TR. 0ѩ!NXG7ԆER&s ,e6ЄgArͩ~AD-7n4l=|%`VĂr#}$ WSNu y{ }!Pc^lÆ.h}fAd% `vY.-jOY(H/B- -](DBr .x5uI-Rd)[*64̛n$%XpxPƼ?@`AbyAx/e_ n Gҿ8$f4`2[xQWXV2yș3z^9ۺDP&@Ye'#oC͍C_)%nܻąܒ[Cg6 u.hsz0&G?&Dϫ `|)waxhA҅ܐ A+DBjMAp/RJ\(6!O!6jҋI%XTWA%[*:04$zbPA*s!C|[RFioٚp4rrPt|[ȟ|&DeAWSyVSlp!TR諪 &~&zh4Då�u!O̅)_R:0.#(pIAx&̱W\R65d1Mr~, IJy%aCFޡ`RH%KjX=@+|(í|e%O†Z^P(h}/( pTvq)qw#ZP"6 BЕ!@5|yR{avoʸAL GZweEWwa +7oo.n! > ?7F�)#k;͆>}m*ٸІk >/R M.~<ǃj,` B/Z- *5OjФb)҇濏 'ɘ:&\ caJAS(ȱ0ӳRjw2> W/ DW )߅ B#A;'/1*a̍!zZ^g.yJ aKb {$Hua_jSQw&a!y멭uܧC\^ /BF6tAݒSm{^h@M0BPBl մ BuxTdaR S-տV-v#[=۔$&T/+J%Ce.tHh(Q!OS|<4{t<(uJmq!CIޝU C3ĎlQD^`ku]z JbXp %ľfʗ^JpKzլcc[C`fY}&S5?v15 T7n'dk>hm;~ކ<&V7Q1du(whh9yPՃ4 ^’*3.77obhҳΫH90~  7@h+Y" 3hiqAҶ] 4 nmv 1'P#X(ڷCЂ^GAׅC}K�B|1z n)%֤`SCIEXqu902=D{CdJ~2O;՜g"U7PxZ^-E| D7';PRͣLJ*bw= "ټ߈^a@zw[y@)f#:C_tJl5]A| BBoc 'sOK@Hn|Z k ư#`Ab%XC8;A8erAď~ƝO~ }t&u1" ڍqcP[PJz<H^YE_:4{jAUN8K2@-N%Nb@bR{u ٪EšW99ᢑ1AbyAԴB~H,o} bClAy׃׍bq+ |ᳺu<TAhA2$@ L֑4″�4a]fJ,8ʧO'%m5XSF%LʥN[}$ޭD::izQjX[Ch,H|Տ!$؅|lYɗ\RvM5%.F7nxR> 큻a^]ƋBrA 1!tt/)p(d0ГZ 5^ 'RR}!j4;kSkTbyJ\]q!uEBn-uY)OF @p/Ύɧ%`PyGȎ tK&3LT䆒2BR#pS\HA/MPwR@Q ɟdOibCJt84!|H&F5pK\-'3RE3ֽ4mQeflcqED 9z.^c̪Q(Nt)i<3(-m^ dJȊJDˈ!E[Canݛk*=ۺ\ ["JNztsb)kn鷫=xC~>K\!|i YAe>(G> * 05h&sG*%SWGG?{LOu.�I/t* ؛.9ܦ H/(cUL)HЂЂ:\K"5\=a ;H} ]{w4"bJ0VDanEnUh\G5Z-ķ>I z D:Bg@ zAT*:C|]k "Y@˥@qeI(FE%}!X)& /A\'^qCxT:Tj_P<ъdsP\ !T R"H>׍Is%Tv!?]P6}fU"qk�P +UPum^PD~`<0_吿/HvӅ JBs+ڲ+فw0W1$U&pȗ~ȗ @nlMJP:+Rv. Lċ+=yJMA~0P|RZf]'\- JSU\Bp6/N=[67C "\rHIZs, ?VV[MEux |k+Hًy_%հWm7d pSßѥ %?f:ЏK�B:0hC[{( h24к R,<GPq-J S1 *Is ]8/ .4f{jCYP@mx#rWT+h;PzT(`̦ D zwTo wh(USF m.0掂P ] J(whPAri=wW7aT+婢5*><:zOJ/}T)J_/YC^v񋱭q"av^ŵ_L9)tWE.2ȧY]$BDj1y׋+UqD}a,^yu]x1RBADW| »N>ͧ1H3Ru!lX li[hu@CA뿆!Z6WU3W;x: v@:a_ -q_΋ I/, X$$*o,oy hy,}~x EPrIw#"Ka6@#Ӵ|4QdzqKӨ6ІyV 㓥-LuS~LY 7[jWP>/z4뙈6̿9E|GUw>6 T 3$C#͔/ȯrR0yڷﰹ ^v53>vq %R�>2bâWoXmsL@&lA쎉}<KmN4oqFͱ}NHچhU5I:QA|!n /Li-QßKjE  >z`>jQXr)]^̋<yе!L n^uC6HQkSŜGS9B|$XφVF3 %K0d4؆X/ͅ9\* ۆd_(;:QY0ώNo =RiA\:etBB\`:o BcwR^HO]kS5KQ.`߆CA1kH.Sr_GƣL~ϧ^0 KP_% ;Ţ !<ρcVxDebC}ztbC{oޙb0ק JL>QKs81﹐0捂 dž2p>ʻhB8^y. ư˂xa^!C=)5"@ů&'?CAڂ2T0N[[gDv4? U!Nꆰ0!$>*R ~ܰ܈6NÅXArK)p0%'=jC_otr "Q BAr!P n65  U z-m 0NLk؛Cuon5Dg,+H0!NmB.awA'<'A,pq}cH@ J~[r厖Ы<<�PONr !v1}C}~R!oclA%]1'y { rk<&%&O >ٲT#y4JYhV"} KVC4}HBȣrKҬi 9 Y ω,نzNY:$XyicgU(8@RpѠiC+4̿~ۏ)(ꉋ)m({ aI\ ςQ2cHm WZ9+ycAI,Eb BB3zXE{"͵!(>KK;B UWA(<7ٞ['3%_BvkiB1CC%iVH-�:" a=x[xC\iE&w$XJ}v*1BSB&L7uKB cC4>]/|,[ ".ybp!^].\ޗ>DōFd|я!.UƝ<<jW + AcbbXFI]U{lսK1{VlbѝݜR-yhVH.( yK@QTjD[g*rR Ҧ \Ivܔ K)O,&$G2Bc̆AS"5i5Fy2dyy[PBA yIסrGK:7BZZj\joL zD ( fZ{eJDruA,)TD0c!dš_ĉh/ -Qj亵BneݘR)=GRgs qm oyԸt5) 7 pA:7*K6lHZhj_ DA,PNQD"rc `DN~<Pk Z*lsTmԣCFą_qNSYSDmKAC<Pc D| &:6ʣFG˰>4eO!ٻQ,@6))P>[[{Aٻ ߂R zSq_CL\B|e/eRgRgnIJY2 3RCgaS'=jЇ)H\ o;JKðSсSpbuCNZ^5Ʌ}>_rw_AJ0, |Auxbh`٣F5aM*5z1 ȋ_uz 7k6s}Aա eʎPֽuU脍p9vMG0[r2/tzUPNL j_R vu~RD`6a)@Bxü 1vQq(!a˔OBlE�_ǩFx1UOʕKz Lt}`H#a^H- "'R Y'%/Z )u CjSȷUUC]7'Z)Ćȍ)kW`R=)~WR4B_ DVtjBWWm9 "Nw!~Uʓ\ Ak߂7q?&6ѓD* Gb6DA$FӍλѰ` Ւ@6't1)CK{ SXpUĉs5_h9ރ$TS5*c)ZzTNB!!y[8ss{I7jW\BBkp 8LW_q\7̛з{JXI(P |T6߄]œH,@ ^؛ ޘ\0R +5IEdl�D)qChhP"(m 1Qi o_Hrh|K%+)%p)ąd%.>R b~扱Dr BT^ԃ ﯼݥ;3=bH4~ۧMATW*J\X!>y4TP 4"ZG{^r)mB`< ~Ӽjޓ!) a~dD�;&tnd X͵}-xذc'Y8/j#6XCrZ0/t_l#mxy* [|\|Dc_py) _946 >7fdzF a!d!d9~Q%(<%(`ZwC؆/}} l 8vzɖ\}BkCK21&ZX+(6712D� F- �ĐK]t^}Rz ƘGn}To'i##A櫦+bʅkP^t#l a"süY@'_P*ےu3Uͭ {`lViaAՁ %�qK B]Sj!BE 7/SҔ;eEpN9qST)̈́G ,uC5*MSV2YDη"xR`@ᆒ6%*qW 頻8_t8lbu7Ve$ %֤jʗ~ /fJ�";` pvwCSd> ٲ64+ SbC8th#{ ʹ o"i67:6y?0lovRӼn !�+�͆yژ5 a]g}c-mySyn+rio"4zZFLT#-[m J7D~ *qW,<f,OS�kBΗ\ P\ P.vXIE<' &҅& L2zOu.#R JɎ/$-ōj DKbm;$y0D( Q 7ѕUPn y@YzC|J= bMaM 4hӬYXHPJTʉw#4<h [}9m3F7bHzpKK @eJA\ʑktdJ݂J.f%^E4WSW_YC^P7�_�.[f ~ٲGi6O DЁ^ӆ- L)iS-|:aǭ><jt01 !󤺅ŰXcΖӅz8aO$)(F3Rg � *DxH.aO| 7z 7fuI�^Cz^ W;_n(% 2E ^V`kPݖ9QjSe@Ȇxq%Te0qv0ma{TAhkE nAMQn('iThU�}ŽXRVAT>f?c!O4&*߯5̫_PBUCxUiu:PwxojǞ uKC^fڣ1D|A%\4{Cڰ}UJUbD"SĩD{ 訆&RR-׋ҨOyOu8Utʛ}J<U1RʥKeA$%I{k|ҭ }\^ .Js1}kbA$<ђm(>jBջ!& uWl() W|~u2 S%Ẋ\8T3yAK$yOLm�~ 'FT0Fl={v*k23\[qrԱ.ae aȊE2 UstAo') FԎSR ||.T~xm*ʆrڰ{pd,)TR<UW g( YsݟvT_EI}3/Hӏܧi'iA<:͓jOBPUM_ y;AD%n_$*c9̰HoHm앴;$J8<P_ǎ%EBZZ~ާAφH|07uDACHEh !_|%_RA$o@69JT(^?#M(BWs1!# !{/4-RխJRVFzI ~ o<eӾ s/65`' ~" 2ZkT .ߗJntJʖ,䍑[ݍ9O =Ƿ'_x. ut@ښJ[ϳdFVA LVR,5 zH:W >g.,+u|0>jM8 C4͟0Ύ299ZG')ԧ7I҅_yKJ.ܛ!ќ y!nu{S־*�_eüc DFJc@#򆡥7>?vflwAH|Cm04!+gV�5㬥MlЕa5D‚c  s͟ {iZ`g!TVd7'U=S�@nt7W Iԡt1A"hVN :H_QA(@xpom ݐ02)<B< 8200V] 0[`͕ЩSs?t.,L-TPɰ>j:�r> SS=1*;䅔R/E.Z{4z+O Σ[ Q烁e_1^a~Uiዡ pVR_9SZIռa JaL kNB*ԭ "h׆eVb-#b +k(0`jDuAіz%-KP J #k+ |A}1â ̍A[ _-K2}r|: ^L:77RVѽao=BHچU0f@̿9*48ss\Hh> e\Rj~n eu'[S^PB+-h':-7'ٓ<O;TR[2*. m4.qƽm-:;n$JnwZAX6li#O a"ooj,+ Dl>ޅ>2 +02?(a%s5GK.a-BhI{-Fj PW=:U‰63\h(* "FOڛAb7#_#І p=n4E_ǽy !XPF5zpdGZ\ v$Po\q}Ի_iA AryC2y,:cO.}Ia3vCSY  BQ*]`\8՝XyC[%͓zT(`PHA\*}00 N!FCj+69%1eJI:#Qr)3Zqd@ n΀) !.fm2Z ߕ?(_..BPs8vJ81!L{H):ptC({迴/ݚs)Dޒ\wZhkcA؆a\~!(oͽY%H >x >2^dKˉs[@. \ْ!+ݧjtU C6' #B€!ʦP#sC�^PP6TN$$ 7a֖QGfdr z] Pv ԭH,Lo],o."12[_{)j SL\%z-.2 'NSs|_p%/tm]Ѫ K 9]0( vL!oc(}>ammm,C+PbFP`e830 o*(S>nV412s~"(-X�r�qX!'eL9s^9�YA(Q~4C(Q)o݆� y,i Zo/ǥg}miZ6' }5r:=3)dmt@y4OMRo n̚r: ˣrhWCEĦr5'2؏t7TK*Gn8!l6Rg6]le�%>(+VvHh̺םmY}L} @/ȐE~ *+w+*'_sO.L:ZHPC+ Utņ(Lx<J/y`|h~R"]Fj-U*ra}ogGBj\h"%eO䆪TP`P!Ś.-U�-%/Edg)4D;d~_\BFb^0/tKUCWj1.t{k*MB,ڍ9#e{i?o],FkAKJ,:J,8k .@jRJ1` RO%%CY)6rsoַ!�l!_ȐV +%(KrFA[H<[ZM0j{fOnn u{; K4 dȕ﨡h^!ճ 殖~=Cy4Jso*ƘO.Œ ~jīтA5wK2I-SJ RrMCl1/eXCʑ-XG;ee!qSFIC 6ň5yndcB~DbYҤR`q}N%!?UpɆu? B)ŀ`'Z6߄rS.5Ћ=^뒳 nf[$iw5fr XAXR9ѾKviI =D}II˙wA}#'27+lgGC+yfmqus]7PbJKC?O ;zsBCd_u/y!\F MvSj&n~` i,W f. f$t *zȸrQAT7k+QB)]P}V9 0#S*6 =WXuW9ik!{@|!fZQy\}wa*{C8G\ D s)bTzˤU0n LV !jڱ7c)rea8 ̛vnذGa0.탹+c3D胒!X!W:?(i8q+!>'%2/!N7;|th[ sfI9saVm4̷y}Tri(F0]üu'o_G!5 $항>!aA=O4]l93' ۂ?B!N տ.4.!�EʴBK \Qm^V/ }oN �t>4^t6*={ `>Wu[N' Bt 6aPkT87G4d],( ]0wFO ! `Xꓸ wAu8v f-[`Z %סwtA ͊KPCs)4cv)p \(2nA,o}?O6*)(wߓ-pjA}Z.!$nq %�a,oX|ι-$*9Yl{f]yAd4/!R߳!*G�DŽ"QDgR |2Q c[*ygG=Mb-L\JjnAEoR))R o漉bDKuS/bO%}j'}'U&YRv~PDv4TB*<ʻ`ٻ)RR /i8eNe frIH%BQC9Koj/ܙ> .JBゲ3 \{ר!T8tY1g s7c ZIR4[wxiiS+4-)̟-S7ޔ`"qw  JK uQ곡osArM5VmORg^0 B[Cxq-޻Rv!mv1|A/[) #'3Izo*VWLM,k u[;K: !ݧ20dw{J>?-m$@^CXRm-5w/ cJd.K(!Gm~B ZH/ ]-Ļ�gUPJԄFuAmܨlt'-�<?(i 5ZHb,1CHKɷ2 B[W,= qsr7э ~'TȆHPN$LF-晖3 QdWPbCSY̚pO+(#TiZt_孭@,jH2YcqK^8}) >O%2Q}B7P=5WPY)o600lCK0q7]uWټKP*(w6 [u]@x_<:-:$tOY[� rRQBz~C֩}hC9PP(tj( ]ð"d;AMC9?EL:{) .ouAQA8Xi &l7}j|~"3u (d¸Xp5|UE^e5HEDَL<D[BT| 7d0LDTrT (\rK.g%X`-d)ɵ J.)7Fn놪y)/߄ [n @w\P}ިlMkKT )_PiĹK%U3k>~v"AC!yfE$Á j{AIZoNm mh,ǖ?dK9П !ڡ#;ٖD- 9 FD%=z/!Y(/wt ܧ[P2YqmG !_m4Uy_tgtCh{P5b i=P5 B\.)O7ҽ ¨T(�99TXCEIC[%'Tsz @uH؈Z6S *9pJ:bq>PE7JxP|*}=X7zt1moA< ݦm%|PȕF`K6[W53LuzN I)z5!{|0؉)MK� p! yn$1nQnaY(нպBz^C}5#Zi%_Ѵ5b%Ή}(Bn!=MPjԃh*[;ҊF0Tqtzo[R 6θSĉ+~FWUA|u#9)şloA%(yLNi!�V[іg*3\uvǁ%p"4|){ek! fJQ.G7!ʽq|bVPJ T}_kCX8 JQ-Yýߥ] 7K[23J)@Dž'㺛Ir˫Y! *(vAToa*Q@9 w`KCuP1)k3 "RGg8nuy .:_&TX:FoJټꪄe7DDO_P}x0A{OEouA}DZsuy z WC)M̚:CC!aZ*TjA>y=B{5CahGa} C̆s1+]w>S`31rf`C<o2~WҴlQqszwVL7ۼо*G…5;d'3_z$RA} f7׆!X>O;>y'??snvE^ !.z_pua-C(`̼X39EDe#-m։]2/H˥P9>:}S0șZAz_0؆WN\0VV9䃐u!dȝyą �dEL!sI 5ԅ2AHLU ݊!X\]=D/0+-.SfA _L: tyM? ˉYZ>Ju0B[`1 A(fٸ . M2ʞ hI{&bYgb-6lcUwgB1lp66“9�j܆x0ׯpO `̝ 'S5$-4 fԲahAT-M, C|0xjQUWFO>m fЂVF?yejbC,ŕdRT/ge?2{6Rh14!^5]Y1{@`[BE ewXwGKTfaK!"wL`z`7Bцp>dC)9ƱMXi-X C BW< ~ ̌,7&\CqgV"P;|P_xPQV:Ù☸2!6•+!KԲ~69>!;r~P B9(puAkdG{▧xJCA%](a5�b= 3ۼ6lKSCK;K>IE -�CX-Ml\솊8dE3g̞',F={v N: B1<P-0b| !m B&g9m +O|ňAP oh^r) fVC\Of`|s0%֤DkP!VӂP|v# dH6 \/|,;4fUP-*B0ZfHX|CCAHEݙ]A>(n1Ά7S='́3?[@E XLA Xu\'!6םXZ@Om6]*䊁ew B걯G6r c~=h>]N<_s9sOCweGdzb+`oBV?5j!Z\ȿՎՎ=7sQC2ǬEZ)|0oxoZ!BGG9-pr!&b=P B56}%2V63[ChhY/nEa2S>M fPq,l!ô fz9!ݩ\s+I,g~}F"bW ,\h�]7pdo;!߲%<ZK]"(aϓ3g=% UQY|R+ fe`i%RNv,,0fC`zr 73L0θJ>Rxf-l nePBZ+6*MB~iQꗢ(hmt]8"\ez+ JU"MK3q=S zqO6k Rf7DדMZ"CͶr;g?PBwTK9f M,[ 0N ~ ,8|P]* %YRSyS)gTb ,K`5v ʯ,Fk( UګgV'j6Jt*m#yeSIZ2P--u XL�bJ{JyT΀Q2_HWn-dJQn죂9sy\-.@ -$CAHa C~~Z;>z֮6TPSNl?|,SɁSTffB~ff8HUL*ݒ"6|A}RrclP2O)} dE/E Ro({A8 fγ\4]g YRdA ?X_d!�TP[qجrm][%<[%<[%<ٴ:Q#%%-BghΆ!U!oyT0v7c 3ʹrHJPJƉP0cQ<"[Ngۮr,? eq#O؆d5mO){K~P.[ 9<#`P.mUb>fx ם͎am*ηY0-#,?[a u7 "\09sd =iI5 zulJ0nk3U `>'+V>ϲu]zJWVC|Gj-+9S>ճud;{%5LQYNwfN H/E_s/̑h孕By!v1#К_ 2f`ϋN}!"0Ȗi^hxA,0mijn6 fAV-JA%2;Ȇdr+)dVr{1?Y_\=�)ȿymWXګu|xGS8mJrCɥKWgD+q἖!6 ߪL/GC.E~WV3ԪgxR={3>.̎G0!m}_T0c( c5-SpXk/a,P7yv3X|.[B;<ߜ]07c!?_aXu;Z!A,lzsjG QSh^07{ӻ#Ep}4Ĝ؆ٛfHb%өax {ou7ifqX6ovm5E^}DaUNhme/8vOM1ajAt)4Z`923>7l2asF u=Z!Lj#A, :"ٛ  sMMRWx 㲋EC 6 ΁ ujomL:&7lX !֞0ޛ:a؆t=R _ LͅdW>emmAho6lfs:z2 t7] eNRAr).>̀q/HBȺOC- ~P;O6Spzfȴf:\9)!FNhޭ vw)# aZ: A4q!dfzȦ" Q(:2]07L[AWQ6pk7?&;<䖑3u ^u9r5Go~SV]%{#sz-a#g*}P+Mƕ.Z`j ӷV+D!(o J,H9ʳ 929$& >i Ӊwik7b8qCH#φvAxiٴef[U3i2Σ#0E "_PGdh~2Pz!~Q! u=-'Pcq 4wtf|Cl3='̇\3[}0;�xŗN+=Q q_*='  `^NM"lKғݖ1VP̓mׁ<@g=pp!֚S0(.nXa5L=ylxG u )5 MLma͂zϾ8f~P_Ϩe4ɿ*/Bz !؛35\Y2K5WBҙ?AuZT�' tAJ; a1زٛ :+fk0w\ʼʣzBS-H{ǝ@qr4̿)oL) R!1qfB 4\V|% bǡ[|%밵]AQh"蔅R0o@-pb:mC )0e:uM|kWg^ (< E PÔ oB~@ņsg !ĕF HXҬr iK* S[4W՛]:~ʨ%֤DɷF qNU&׳e!is4y UHʼn߆ɰP<{SDygnnh*T6Է}g1X s<YW7+~TL~/Kٰ!N# qKu0- e: ]Z*fh!3₩Q7)w68$J2`J6 +.vS*=A-펥S.2aB9ʯ\=XP_ρe ٓ]e6{ $|VϠ�DhyOjOWu-Sovon(2>(I xPB�" {8ƑMZB1;2ziAYqBg#)<2*ȆhNߔcTw1q:'J~fA !Vl`Ngr.%qP+P658 l u/׳@!E:.ud[HYy*n vf~4Ep f,1q&m$ <QS+djL&k .M�1K0[ 'p)3v_Qut+I%ϝ]Q3RU^)[;;BzVy Ӿκ!ȲBoe@WD/P B@B a@@C%pKsB'.94gp!IPx. vA9PPb t+ j--<yfFC;cdK&.{FL;LjPHV~}[Avjʋ  >0_$T&mMزmP q9Z,"m<((̆\9uH/ɀdL){ e I.r;.>r_K`^esdˡ] />O+$Õ!"#ٖu/8oi(MྑXRN(hO~aHA(<hCu8Up6}a(!agSqsdu!�lF*V BN$DzB&sCK7-IfUH>S n%je'D)e兓de1o{v"ߦ $ʯ+ BQ?H~0ݥߜrZKϠxq<W_lP vH7SBXe"권 SdXf.ڂh-(GT6o-Dӂω"Г'Ԙx  +GDX6]oPFXN+k͋Ğ%*`Gby|WNk/q?xBғ>vʍM NGsJWTPE݂oG!bw J*95Sq ^IMU6(<fyV Dq*yZ4GU0ђ BK xޜ2jWV0f4T)\+ l E}"1_V:-5 ǂQT^HHX;U* %EWɯ'DK X!cdW L`ƀ!VP1T0a5߾&&]TVTP~͔O I#5ZJ9@?VChNE/9 .\/q7\fȼz|' w*G7@Tz}˽|'2Si(!�ȶȷ./$Տz !rhWGC.r(n Ě?1 ,8s}N֔ku !rv%}}KRSs>(l^59U${aEACnV@s$h:eS\ʳp"<9*! -=jK]=?IjW^GݗV#jGoe}܈smlqDtN @u?`@AfG2tH-R $R"͵O1 ljvC| bo^+^J0b TV@iPVK@a};NI#[Q@9&w!̖U(* /]q"�T)Ի#eR::쎥ǽrd7JVFbu)y�A$ۡjC 6Pӓ5O[\4wNnUwQ򀚰mt]87: M/OB.i"I&̧�Ng烥x*CD8F>Odr"0mx"x1;``Cd:6ҥFiaü[֙FuǼ?!LqMʃP3v'_̵$;tq݊9gZ@ l#P0b7Иrh4'q-NP&&P3݆u #Od:|s?*-y"/>Zsc\9̺!<f[U:MCI0<?*}cy0r>0 =a!u2 %VFT򆹼֦:BOul(QQW oN(Q!FȯL,?ÔPT<a`ym|t':KO�BsP +x rSSjPbMJ){%iP : GAjAK0c!K00!.^/q^ T+恦7󀗸!t$]Ԟ4; BB.Dpa.$tL9[F6L v"c6lZ=Sf`wBfƅ<�+@iӗ>[[&܃=r5M@ -a,́k=\|^}lbǡHAf7\gGS.2j+w+W|S=QLQGtWP E/E/\xí\J~xa</Gϋw P C "UFme aoW Q ulJ䓟͑Z\hkBG:T9!d]m 3Sq Z:OSqQ(Ճ̉lӪ b)^ 7_p(q΁jzSƓ/(zhg"VQ!Fm~P  %d870]&_*雏Eha͍K8 x#he(f8KSM@т)K;<"1'4{7xd FCW� lyP,9֣8=pL(.U]jIz 6I \ ܆%!T £{'0?&l5)O>r:=>RP\zbRh9rl6zLq[8h´<Ȋ/a(DۙK4;uvlAX T/Ē6LOOKǢ‡ZPD|(Q.dhK-4 BM6J W.P.֖y \ GA(/4ɉ9EeMC1鴠ܛ=[[S 灄ٽB ~v6[�hf yt>n7j)Z,E IiA qjj̉! !X.ANe3$SB5T9{yc2Fn QSN5 == %Vރ%oFy/J*>_)sEC 6u:I&£f!)=<x8BBV aoܒ<GPr)!NL)42JɻYo.:)-uj:v,ZFe6NY'jXPzݍi,%X`?Hrbs2xĜPᶂ []7LΩ`l,K&t!@Gv_T̎a6vZ8B)GCL\3 B8ej1N)ԃja B-Ԫ_./].o+FhFܲzn@ 7MVK\}0 .T Q]5'Ҭ u8??:Х! AwgPkt#oT Lhmi(JnA DZfAe<6f(lT=WA(<~PbM\N Bؗ.Ue^R$׉ FA[nס>,?Q"ȳ`pj7D !P"H\s[u#,su_8e!B4[ @[`aB DaMA'eɬce/%9, ?WV`%5n%8y57T˲ !׆u*Nuu嗴K[:í> B}.dh<Lr 8*}02IE}!Z=joTC0'/Lk( FPl0{8-5JdLS)YGB,#ɶ`zJX=WTщ!G;7CIB/&qKƒ1 a]dVZ\qu=,)QDIc6p(a71!�f5`ML-̩rډ1S <J\H؞j9LB-to Tς*)>5T"w>)Eµ; ?ɡ|AJwQ\P(:.(mJQfㄪYI.Aֽ2 >:`P +iA7|CJARh=Dʡ ʂ Hb2[ QJZe7~ȆמKB KwbjCԈazH Z$l#!tMK/I%~PiG;:xį\'vjVAu6}U,1T [oX[q̇[[[7XA$.wks~,%*OCe헮$@6Z=K^U7*F{^2측\Mu^CS$S*:9SPĪ/6 B/hixIO_r]r ,}J.T s˭7nT 內yJTĢ0ǡ.9iEąȇrLwq]H L:u 81Ȼ!1ȟfEy-G)U .5QYzC|AƆ2k-A\AB 3zhk<5I!ΜSJ6T>N8VP JTwCVK g\GqL\f_SbmbR/R//%t_ahC0ȭ5_PWYvkxql,e ^ҩ[v2^ug_,`.`:w>�Pւrk{0jAAG=|W+EV^ E*V}L.8́Nsw|3}Sаs-m"zi�22!|Km rǥ2D ۷"!ioS)r>P o*WWmRo4|1!.ٮk'׽+E>:7:9.a ͥxx)Ԃ?gTC\'B/u8lpii^_Gܯ0ȁlW=ы%%64Cn3x눼6ߟ{ 4e??5WX(6O0*(¯|PKm5@(j(q-#y Hj})]�m'l± f7QS[9Ϸir/іyBi_+ԅ\rh>q>Gg1ELuK׋}o `_iO؆_P6,Jt;Fue&~ǹntsm}yC}R)+,Ga,[(Q:TR?jTm =,?V֭|-͖Ou_u n1+ e|E[ŧu.>S-  _־JфX_ɴ ok359@6[#j\nq꟬.+z;Tw!vH/G)bycXLiO<C㗚k'ޜKkX))_ `%&Ȗ~7<'NDA``mXyO!ӗ ³ZAIG~0Dƭ[qÍUsc7Z>n7:[N8PffA5+ĎS _.VpDۭNA}H#轆jfmz|R-?0 *­5ɖp $C s (:W tW?O\h҃)R=q EF.ytj))QSpW= BDTۄ: TB:Pj!>�v@*hj[1}]5hː#c ፁP >ՁJc SQ[}#, >F+ͅ&Tn�E|h}U!.TpO**&%m j:Q!(E$]l]j *숖e_@Xg28%C&jpzPKO|8:9ܚ4wk܍cyLF7X+>;߿aq|P}fq_ph4 !0]l"?a6cah C53b}0]ð泚a0a?'xJCiqKCiGd-0UÈ|WOQ6 ۛ;솱>[`Hz0EPue0jÔ6ǝ.نk;aXwT0l؆) i; .^P&KJ0DeP_ n^5 A|=#6ԣKsCTtjyg"JPj1|<φyS}C oZ(̫0tYuT|3UR *583@y;w?gv_ -eo`ʆB1|Y\↹ߝ)u Qa C;`(Q #] ,B!vܙz  ~A!b?/vܓK3ػ8<X1RCջ8 %gc7CZ2&FA\(Mo΂iT0FNP ېb =Î-rwz>ɐj q4!,ӝʆx۳^C--$-n>ŝSOf�xJz;'P_Y2Y;b i3G #X sP29O)EgKZ8sO&LGW0ib µ za#4˚C{@!Dt܆XKaO(;g5&ΪX!;KBlӻfA\MGAC} Άn0ޭnem iY^A F}C|2Ӱb>Qк{v 6Vݛ .n-3dTA3m(uk}SCβ߆ڰCg\l.Wll'h-[Ȋ#A-kU(}޴T/.s a?'sG!sY^}#C |7Up`5P>!`D qV0>X'NqD6lŷaȺg!.i,\yFjіgӾah K62rDK <#͂;'TK0o\Q!̂4 %aK3{Fd˖ yC~v.a73AgڰaC5ΘiC}24#[5;zGhAl�@ر;2P_)3MA\(4 E/zG7x:J>ڒ!φ _ vgL <e *xi܃ؒ@CAG.#4 EvdE+tI,nDI#~k~D\,8eFdf:fHAmLjTC=joEO>)u+ǔudb0Ђ?}A,hO`aDЬ<J.+(!# %C440ӊ of ꓰt5̣{[>JY YA#NVPKրWg)'8ꃸzP^:4BMw3;!5Tܓ lp ~&OJ|wOaXg'wl ㄽ{-կt5 ? |P />s)LaΘ i_ql0$i| a=8_O!~љ <ρ~؛ cL-`z-y02^R&{~oji]Atj0C抃a2 !Li@th~ׅ2ヸlatw>!~5{@҆q|P2$NÆa_I k0츆'dm 9bș5~Ϟ̱:vֲ QAH~P8B +339EC!J\n e'bk9`zpI1+(~,8eP{3}P k7,;ӽ[*Q.2HA,}ytf)qoX33BO>uʜW:^:7ӉA,qo%ky]A#mS8BdmC!2pgܕIiE^e¸ Pքtj v?xwFʊ̊nxqôzJ(zyǑ ύHԨ#Sg fau`i {!. m[SGP_σӾ fh=F7 N<M f)vyŧ%u~ą2\\`#Sk f3q3f-z.a7,</z̙ S5E[0m|JF!|r z],cT056nqfK  q!#'}[;7Ie!`FF>|LdHduG<7K0a[%bTB,,kPr w@kUWt3BF^DP: Fq\hVdøP<; J9F(:IX,y 2m^U=u!(56LO~ĆX̖j"8)R9 U&7Q~֬sfChk# j$-hR.#15޶azxڧ_%_V0_ܵGnҗ,n}4ӆ-(5&ge6̳B%$` d$T/qkV`;<l.ѐR1MC UG29!NRX$~%�G^FagX%icVZqa9wYP#>Z-80ǑAClgǘ#[W5Lz8G6. n)|f $1rjCm#ѓ׆zlDW28PN(r{(o~} m~Y0;@'#0$XPx>[Ѯ=().2_'pS!\u Q^WܨP+ha7DA+f6D� +:}Ġf <oUjqV1ڝ^D)\)LLdNW]u_[&/FDa?5?QyeI5*A7՞6׉K],o>Qj-/'QѺT5ik7DLN DAܩ7T߭ *5TۮlHP5L53 >jq]A:ѕoMH+#8KRF+*ײn !.nR(6ˆ( 3HjrgfCt칵!niD x 9$ UeݔGT, @y( ? �ՉuKd`Kt383j}Μ0PeV Hdh!nZv圻BELА H\j+wGTCB҆؛~iI5bVPJ4`eoE-uV';] X˖%iÛMFFb=+YO {kC9936)| [[ѳL{5s0fV0ӟ&R,(3SV6;/!V}0N#2ZzC,C!ʩɖ.xYJl e+kW?4EXXp2DJB(ZچK5bs<h<BdN} {vmmG@r~\CRaRaBܰ!RjJ57lׅb†;B&.ӓ{!~ezi84V޽P3C>/,y㔙7}f6P5T$61QNRW6jE+ 6RWl1%NCl_S+6q?jO=^MV߆98a޼U/Go}05s$}U0aDωuX9a,l A](WHm>V-`~9l90WݓU ;-v͂XOs5̡60[pg[Ü^!m<ڱq͆;w\ aچ35~HЂς>=v,k!׆9$򞞄m8sw압53w\Np+գ kpЧaʺ_]MGT{stņ:LuviPqu) XJ`^;,jæ�Ȣݑ2!v)3(_y3[[|0?f\l]jB�.=!=s&, 2$SZ\`w<ZO嗢 sPr7|>0%m. 3lzـM{oύڛGG8L TcxXG5 qgy]CR#˗ZVmZ46g:?m(<S 筞|W?1}#ę.B={,8 .2!һ!4߂lIZ0 s% 4aNn=$c`D01-cA<ү0ώKY0> gȔ8QT,K>M3(?5Frp~bMb{Bƃ <W6m ~B̹ qjY3:b *SmS-\B_Lَ cy3AXgxGOA`KY$0CC|xCjK @I*K:c X(#>(DYP*GfUJPlP i̇bor5M,.@Y#+9==Fk^fK>)dI9Yr fkʂA|=3:2A\=>G Q&63xlfI842ө!t0D'3ãՓY 3dqCO:B9BN ``Ϳ)w N xm(O)fũ3|샐6goF Rls?$g7;eÚ@G�G ؐST نrd!n~ކx+~05Tq8v{ 6W5" BW: kPa0ƶ6QeaGC!ؑC{wP#27:pMm.|Al7? |Njُemd4UGW{~P9AeHz6f.Rz \P\h䓍tJh-1^c 2u3Ǻ5~?/!~s�\4B9ƼXu=MQꒆ~OĹy^6g}9ӇT<BfƼ9XLCSh�䪃 S sek}xGבSݗr9!̖tچ+J{8x)0. s'sla#̅K!%)hr) !.҂` q)*tC8n.mq@�,p@JAf$燤E|Ѕ$%t~=?O"v6Ҭlp^Ae6D!\9cٙxif^PI8Y|A}.e}ujͯ*ϟ8 "H?lW6`^`ފV^ك!Ɏ/V~ss-ٛ!J/ on  lױ!~} =W0]H ajczQc[_ϊyKF}qC~=oif; f!5>ǙY 8o,`om+/t]Ys˔%̕|ʎRmX�dH!6dkz`v-}~l"+ћ#ZXynA@e bw@u`.E>=I$F/ vS!X2M0sf6oП!?Gvj*OsyB_~ÄyoR36T`^Aȥ{AnE]a {AfcC|(Qz^AHу t@!el:uRu|{|ig70wYA쵨̎= P5gڛ-,`nؕNm=fRvv*iםm| 3RAdv(0."LvK5Wkk$;NIr~W7;!;4e*Hc zgBBb-GNlcIl.-d}2-J … J_ eH {0r2 De,-C]C(f;MO/*5a-C/LKRԍ624n3<P废0 U,X~_v`niC†=ᔛbPg[W/ qjKC13p-C$Z[&3^]7t27{J2㒉Qv t|k?Jx%Q3?WR H) J zfcסnm8tH\Gz:rDChAC&c⃰zrpC-9)P'4-fϒ`2.\A('* B.i|e22~+}-K|XBKAFwNtj(/qά`ghz&ɖB oGɫWyΣW^7}-; {oUlUt&ȺxXy- ,6/!}'n)e>s9gxSY-m Ae,sZa|GeBrK.aRكdBTyB;Tjt>T9バK.* B)YE  }'X$k|$m:d^ QPp̍‡Ő +5.<%/̂) "y of&IC8I.5aЃhcOoXXқ;G8G4xd<lU\UϜWWlvN*x!# C{*>3.zB>r!C¸-GgZCDpV}A|k(S(GG97FqTvߕ?lY}9} Ju_YWr&۫(O�RJ%6< <0gHY JS,~{){˱)_|؛:uj_PN)|3⷟9йvqN .e\xMHlEO! "{VF!'> #qYk6*Mw!ԤUW_ydoovV\zdpKYA%R|ƹ9t@OEg6mh%}0JO5+k>(|)|M/ Ejm(j+7ǝ7> r+~bFP $y/V0t5St¢ #sksˑu)6=ҽtP9fv] ¼Z\ 07=8!iOi.],I`C1x)HCD.w8:@U=H0̺}バKZsVy侾9!@/z>W}x|-Ԙlb\C9#'5vg(omrID}!K {P^K&B !ta\'fȧ4JdN: 憽TZx%ԕ^B\`JA![ 'L]DlVr^9-DWu_>m(FY'JQkkdԃ;+g[)攲B>ֆx3?G&5Tj6mI uV|B5?U$6 OK啕J t:`EeI໳ECd]q W*´hUG/pdXK3> vגGz)5Tr:o8v; gNhi#.[ (K R\a`lkWv#xYJ^!R꩐֙GOC3pD*$ą Ri=p"LAܼ.ikjTr<RpRpVVm-C S"}O֔u|+F[΂*>EЗ08TC-'ƌzTm̷5/' @pvcVKiCOn>pF do>Uycm(cDI 4TF 5 [r͆ ܪY;x|l f?_GA 6["53g6`~r) Q_vX̧P8V7L-`q^ن`nqHs|GכŸaL0że"=PD0Sz0{gB|to`^}0oi(i�CbPw`I۰ Á[*` %lF`>y k&pIe _aPN,+>Of VBZhZa}~f fUѸrfC%4[Э`u 7խʎ�_TP2q.Y8ôiwJxa_n'*�GkC6jFmr6fnt0ԌK-}:)L~uu LU^}B5ʡ (_Yrvg ¼ BBi*A}!R= BzH -yO�5LOChV~QAI4 J:n{PB=zȊ ~\+`,٧=);cLo+~4nކ[71 :X:Bc)&aEbf3Wqn 4P80OghR">/whqgoKtGiͼ5uFe7>7umDV?nO-@AlCr9!6쐣`L}}-aA}ȱnq@Ot3m([&V7/H~vXhI{Ji-=D%Ys!S iA%ûy [@32E[1u/ fHX R;%[!)t+uvx@2F ::oȯc-I!9IEB0%`)<nVtAS:p+'vq䢑~ϼr+2Fn4;*"́,.ީ9ը٨a,lR,@|)Px溡*GAm_ټyGŠb @]8�ur\CX`# J[Ȇ� lgfsVK ¥mtd~fTCWT[BDn|w Ě,)H4~ph< e>ߟK,EJܰeLkH: VkDV6̃ Ě7:W#sB=r,fm؅4j .Hk TMR? I jCA+U6NSSv}鶅 Or Bb6RPWPt`dSB@)R2EZfIl9;L`f фS {, tuU8P Ofd5TDl}:PC<-.p@O8 byOE&ZS6DL27u.!AAnA> =5`֎'!CO~VąpfMnAWn,hpDXzcEA)QnH jJ~JTsB%?_C^i#4\Я*;qLluE nz: 0IlCs:>Do ɺdE38 -9V󲏦BAx>Oh-q*OHE4Y- o< - !6 ʻZ2`k?PjAw)i)(m(=dEݾY0V ݦ :mVo=u|C} *3SR-|AeӸ '~Y-3ʳ*(v u)^jB=lrdA~ BeRCʼ/]9`f"7Ul5lJ JіW5/ *ǖAY !�ꌱ5jgPVt%DĂVj́DςJ8YZVR `)XI {:\Ebxo;k{=(xt@?UJd2uuq"qb+_SZ% fꓲP4IJ9:7Ė FcݡO9}2\s+^bLl]|c͟hUPG`d/&oO ]k"^*R!ukqqq BҾ*+OjoL+(?m6D]}J;h\r@He]*Rqz֖OU:ܸ&}4Μ=Ƌo,SSiRVN] s*ڢ2KZzo"u˒eIݧ]<8ADSPu=qofo ]ͫ[=uOy ͵!nVؖuqRysؘ\ɲP5B-Tq6<rVGv%Du0 JOVpQPy*.2S)蚏0}CƁq TnDԓ-b?P9șX|塚gzPsRd*}];y/GpPYTATvqQ#k+HwAX((* =Vpq\0]Iܜ9wa s6<'mü&^W0ޅ$&v<s.[Ì uó|qKw \K BeZZ*&F)FiXdüg14&*F}A,fPģ0k0sM5̛\,7La�03uavc8|r (ߓ<")kkZIX=!*Wl OA %R%.MAl=ZX`҅甹0~CynODx0`qI4P{t4,([z2(n-,u@kkiiw[mjK@Wx θ> >' J@ܜk9Ӽ*ɀP"Oi` - k( &@ph(iReJ@|P4T|6nABü'{}0oEA15 a詭!ąT4\Ǜh x .^\ *حr& a*I;W ||Ew6pNx5kob--uC�.)¿v1PN>/Q)|I+ƶuC8+3KBAA&^ Fo5^$)ƆVxqVDJuGV̥xLּ\@(-( ~2gvm(ABx.s)(9#/:,4J 7e]2J%F/چ<C̳v,q~32'WAh6{uZ6/UԚMT㬂8& VA- ^Kz|qKAKii;tj,6e:VĹ <q#q"C> xA9iyzCrSCȥK BWO'PGӂVI|rpCjfX*Co% X^Ĺ flXC:9oϔ@u \] :Ѕ!5H.~A]U)`.u u,U up m˻`^} .=dٜ(O^yV!� yBlF0gYlaLA%%q\9`m(U%*JxTDӂnQ>}Q4y TM5Y- Eܗd݆&dd^@bRX|ғj6�X/'qHD)q Aȵ=D0۵X9Zԟu2.KA}L'U]AkJك3(7@6@-T/~QLaytגQ_2D#8@Ɔ6a S*1:Vp %@3!o2y:S\` iALтV ]Ҫ[ZKKD{w6DRmC8oﷲY`yPPAfT?u=+ E_qV\iS͸q6PLS}x@Mͬ)ރrXalCI#)@fc|Svʂ.]/s!F5v6~ђdr/=;Mqɝr3[C1 -PFX-ne> Ou#5c좠 \7q ũ ,R9R7\J!.8J),>aKTwh,4!'s'HH.gX9`#^AɁTV:-7~=gPtޘTD2Sօmxd8 ( n B.9ʳE' m7tM'1a,;!0t<7fu xnS:`jNA,)BdAxxͧNfHASkAV=(xt7B)wK)}Ȇ}|$|[-X͸ZBJ,O.ڒ rb&]A%!T#\=FB�֙ܧ24'o(5F!m@ 9ܖ*VVB\fT͟ B~ZSWPSҼ.j,xt[ -vSBK2y2_J,=DڇTjA *Ea}`n4*i*-,}SLZaFƔH5ǩP+FtFs"&u=e,D<'S%'Po?nhaS:KtR兤/hTJ|ORgoHmOB~aC8ZmiAңBS yY*tzeT;.2UF_͹Q_[[;P_`/g -?aZ%iC_񢁏s]3RːG,DeENZOυ.+ !KSNl9%�VF=aݪ{Q(~|0Ʊ&cBl 8(aU^" un1j@ x.C#/: :pj-@Ln)ʂ0 Z@?<WA,"![7c@A'v_ l?"\f]r%(rW{SԉB&*KjԂȦ<XKƅNY('C7ą~X^�ӾyUxh*أͅsJOtM7L9A&evEBvJüQޣoLE{/K6mZ?=H.,^y7['7S,Z/<d4-Fm`y`^TlE ɟmC@_倒 _-`oD\uE^ AC 7DKASF)QycѪEvW'!mO du@]PN " C"rc.dL~hmOrߒ y]wZW|+>TyiMɥ . dS0n %mrٜ*-ȯC72D;۬-M}-�&.R1jtc#'hO4zj ݟbk#6>".sZ!DЋ|m0~*7 UYSizDDԭ*G|tB.>D g!>7~;>_C l"} -pn5FD+C\SGYjLK<\j]PZ]4uB- ya"sA4PG( !1QD){*oE{_TX SZ4j^s a.fK cT~| uc@8а 죂jt6�qӰ!Hrr$k/j&B0kb y\! )W#! P]4X`Q}I ㏗B.M`[*Kbt;`7tgA=+|hP on965Bbd G^yEaAxƕGOϯ9=&KnA`(Oqtp@E^.jq"+$SvaVZZK?׃d8Bឺ0䴠Fj ҍf %.y>3G y#G&[FuL!lOA\0ٰ >:$ J\@M_ &`J\?ny7N<[8 ׂڇ ")=/< ʻ5!/*( E=dQ6L)w#QG!wȿpދZy[ڏ4aʂ~Ƨt04"+ khx*4Rz!78P~of`�BuL@fx E^kMw 6Z,5dZx-BhXƘy!SH.n>nf(D 6*BtH){ݺІmѥ{Ioܰ 3Я/!> ^*@Wnɯ [˦s%OȖlɁk)di-FI !Nk.j6΀F`d@RC}p++ agAihSW _8K]S[4R6 wMgjE*09AHAy]C}p*/!0*z RWոkiCH0T?ct(ĹŹ92u"}޼4ERb 卹e2Wo7R{9U�GY^ 0BI}�_Wߘa>j'BC8N$i( s $ J#}]!-.( PdZt8*<xC1 g f 96ԅ ?'R\b퐋=4 ,>;5zԀKKn/(XQrkgC**Hwc{AcVA<c B%~R(2KaI;BjTDŽ/^NeK{ _L9Q/<slOL('D{Ư Sh[PN'i^폆dfu !YښT^K).'󷬞ݰ 4A`,QAXM_- I僽R5_>p{`J~eCЂr< h5O J Hj;w\AdO$ Mެ[W</ZSv{RRQZncW=IP2DK7 P^}ׅFCeo tTT`!gQF֣̽<JzxmY{@_*(F5\>.d2SP{ $Dj8,uʎs!m'bgq@OAkKlUw"}dl4L+ST+KαK!Kʞk*6( UC\Ax bsa`DCX<7FFP" 7=ס^&lkuDD \سio mH�QS!}G*6W%C2 y|U{S�p q5ÚP&ɣʯs+ƷQXaʅ{\m)q BK6f&|jiXSyS_oCX!IkJ'ڠdP20 * nA9snlZA2'&Z!R_ufg Y}9 ? ˎܬ!{+T4pA}R1e 'DeA +<NM a(u)Aׯgx0t TyשT:NEcaةA߬#b|=J*..DBvlITO3̥H/]�#r~>< &۩c_ 0},ׯԂxG\d@ Av 0)xt7%tS}*Y@- \ y-Z j-cRǞ/SP@Oo{!ҩx(]#mÂP[R_ _1*kag  cL)Luum| `jVMߪ mO{c:LdcK0W:muk[B.q{`Vd`[]緇[0:SA=Qמ{bXH*zrAsdr ⷟߹Om Y0M~O]F[CmL j<X0];&E[0 ?Hk = +( Ḅ{J2"QPVn<8TT"ؽ'|{J\'MS!v`gJ%\T=F %N)[f ~4,(!pDv1t ;%ēUum͹k<W HғyH@P B 8I fmNu< 6BA<ωR]{&N'LK)!zq~eE6rbBVühA)<'FX\Jx!/݁j2F$.n=q؞)=$׻ 4�ي7Dך^C\P9[0/ !Nꑵ#kGVK0+/00&dy[c bz\zCx nXZCxOOnɆ~اK3!>)Sd }I\H-P \w.UfZRVMhC\H*ǃv[mSz\hlu!d5A8ok`Omb} #a!𽋡½P9 B·a~G!OIũԅ::4ą^hAKBw/dh B\t 6~jOJݚKP$/llYL%h/GF}ؽQ4WPJ[y?ąLKe6wt8P E*q]|4i(곷g ܧ$ˡN+6eJ/ފ7uxJ ={D�b͟'z!6z3]{LVOX!f!j(m3 /a yA[2K耴U^+0n)B!q%X҃@z:[8_TP: [t/Q) =UWa2 hQyB!ޚn n3D6!;$Fn5*cwIO^Z'GK)Џv%6/)j _&B1o hVT:Í' aԻJ ocOA%e]< =P]Rsӡy>ԻolrlX\}b^ౕ5W;B>%bW?QnOgnZ'˨0.hz.J wNC:Fi쾭y ̆hl`N}C\ e0'k#@KH$nG-P-:1nU.>Cj8O SѵD Q{ZiQRn *(5M sѾ^@WCz0a;蓼yWyǭ�Tm:71V'S;n4 K!n L-CPb$}|~lA(^}�* AC*ǡD>zj}ĊU7QX�T_P 3(}^0rJXI |IX\I`\_Wn֧&2ߔwK+D</,ĺ pI9R( BQ@~* E%]ϷSuI B3ɶB߂i4}PmA~\Wn'*-ơ0< Cm>w('7)V-h~[p<}Cҙa/~0xqgWw4ɿxtWNg W_Xwv˼' uݼ::4x7#\a qy;?sgICK/Ph`7 Hո% ktdl7ne]P ! Clα kq~A}O !2LV=J=a8>` CkpeVR[.ٛ!ȝOAdVKH'K Aci6BlcނP^lOJXAݘΰ)dKd(D6WC!#L`PP,.7, h˦!3c̿ yK\J?mC4+ u†}'4;m~_�w_ 'kb 6=;Kb%, .5suAͽ׽*|W_eroY[VtH_:r!?aoB׆Rha0dՆPcff]=--WJEkKqD6e*%)K_zLm6;#8 l3U2$6;zVrS<97mc?ʀ_EԆ,h7TPquG)Qp^PJN#;~aNK-3@uCh3b?m|_ЂGA V RevtkVgn5+c eaF02uِE~(Ewo$/;t5*e|0ѳq< YIxWG䫞$*5!d\Bqg땒69ǶNl(#O|#[|NlA}`bC͕!:vG0WW b`~nyL/.D`̦u&b /�ȳO~츜7_*\IhwYyAo 7r$v)aAD7lyl"0?? FbYDsu NKa:' 9Q Jɷ>Fd ʔJ<'WV([)@}vzb%ٸc9ս!~r:?-=B}P5t\Wj-\Y]̙>EtKFӕFjdJU#8lQ0{|jّ) qE+{<7ś](B "*`3HP· D^yBVV܆Pmbaq(Ԏq J'6]CR#_-�BYA Dܭ 3DT('X> #)BY<AY-A3Lkn꓊*}X wf}3P~6BvUjF:)ٞTAiAy1\ .2� 2i[{xdbd,�)#wJ(N!b83g.4Tv_Nj(K_io+߆ (EmmiV9PuCүDbI%$qx[GI#O&_5Tp6;JT8h(]gܫLE{?Qv*V36>B "B?O~(s C fjC)YtZ/#q!C Ӿvւsylډ_xGv_,+XCy921ŅPxHz9fyoC4KŬڂ(`ʆ00b#탒6(A~H( >YۂE*Ghmݻ , HGV HlO!NyoΜ#A wS9fS=I"r�!+rf&ZH&jvX-pD^]YP=`:[fI6;3G B*;啷&f�z1HqlI;QI2uvl)�qLLRP;6Y= 2̫Cс1`t%ef6o"/ŋOg,lT -?! AD.)f)ָ!R<vBռ7ȽBiͮ'7ոdžP6F7յS4�UCC coCee7|5uj/y±%V`g83c!} s% S:oo2ѽ:vci>fj_5m:a"ȎRSJэz뙳?e3<GY :h%5|e ʞʡauj WSw6.>`4do Bw6|z@> Q%I.Jx*ܪi'o5xCԅHg3؝}J[!wBOjyNSټhLCi05oE*$A?hCU09}jGOb!~_5zomyܼwΛh5+?T|"�Sv8(k+ε/E2>T;Pv`ԓ>^m\(;-0>Cۂ*_4QU4-ͯ2a6stXdA<.ْUuGs6qv(c(C`nÞމZdc̆ŕ:X slpL۰`z*?gf0lnue @jPgbP慇<Q^W*?>żφ!]mOCpL`M:> II|w7,cw<HJtEH/Z`iQ36Wy΃aRxtme~@x~?Fg$?PX&h]/GAhM@6<]0-{g$fC -31ѝWGZ|ݎCڰiu hټ{j_;9~;.}PNѭ`ln0-rv.>:P?:0wqN tZ1 c!5P0B7†҂$ F&DiQDЉzqh҂DnL`:I >d# 磃AT d_Y/\s %i@R{Ě) "ű\k4MXؔ\P27& WA=ώ~�?YOSt(0Ƙq.(gLo4J" 4+tAS1X ?GەPģ{s!6ҋ9 azNB,vv!16<nA6sSK3;DyH  +<㖜'J [q"p\21a; BWeb"%.],-qg,8WClm((@pC d66Yrs1J\xJ!$7j-Ɓ[ ssu,!*{.$aX 6̧6x3H~ ݴB5ze x SBX.)$[qvR'R~\I_:ʕ2nL[Fyr%O B9#H?PPW BBV8^wNNi(GRVJAzojnGoT#́z톒KVAw8dPdyXhW&%\+5T\[*Bu |TXDhd({g lC.xIP'UrFCAM[9peԭ'|=T:J@(s(=[~D@灆6RB! ]0|Y aJCX\!yA u9E߁YCBC>s [`,׍/:5ąBYrIJ KV%Fu+3\ZuPsWx"HFh%}PQã& % B>y (Y%_s PFmхpD]ꪄ !d)J!љЀ8G\l6F�P/s*Hvᖜ!4a8,2 =|(mxeB14 |k *-iQC+?7,>t/ EKlnFeՔi#C<0p ʻ7h+Rǁ*Eb:2 z6\Rf[ %{%.`NSց](P3)<C^{h~Ǹt!hO&Dƣ$GG;.,B 1iJ!tcZ|rKrh ZBdvC%5=Ó}{ŭDuHŅ*ЬZ6u@/%SZaz wBA9sO{YA8K{|Ĉ xya|! Y4 u\i0.>47ks@VlCA`>;'}֮}k.^.UOSP<QKO o0F5}j+=OT$% 3ug[Jm*fO<"u{!HR s7Q[ͶelՀoLl >8@ i:'4l ~--e.t/)()T:O/Wz6Ql4M)-&7,toU~=K5J~rnKw)!sZ|!%.rN4=[-MWJPYQ<+Dp HHt6c9yoXh9!ڰ�S=IjCP3RPʣ,Rbib`4xb*hO(K}}~* _W`9fHWz#Ią Q6-I_:ss8XyCoʯ Y- m ?0KNe 9!͋ 74y5/Зr.t,RT|fφ S5S)@S!WGϫv1% D= K[IA;0r'AҢcyCםҗ{ƀS` lg5fd;ǝs1R1+O)dކz S6kyaB?ᒆ)*z-Sn?Q{Fa 9K,&f l 0U"nX0ن;y7<1ը`>Zk0*!^\mA00k,6ԃϯ 7̯O|,ͅST6ױPWBdyP_Owj<Q35j`j=C0U@nd>t Ԭns/Z1肐/Ҭ̂y"4m8 @TmK 70,A"͓**ɀ4NpʥP{S}4;+e0 ȧ)@Sȥ ~b Q0эtycTOqu/†y/58'w,8a__.%/5:6&+WY@Ej< b 8z*{^h@ Z?ViBg8[8 i}_; v@3KA3gmt�gD穙᎞)bB2B(1yb ^Dž:xGLrCHoí`z_KB8 g>Hj{ӡ1*ꄃ>ES2T9 (\)U awUEmm4h\JgopL2((4̛_9F ƒб6,y'<6/<>/idjnKAuH@*4^ Bگz7< Bxt slt:Pf .Y\PD S s ! @ jlgNMx 0[ B y"Ǭ`u2'z>L..׉sF? ynq/BunjO\C9a)3tb7)oLϩH--^B=>%`LAʽڱ!o!4,E[ dqLHYiOB[Rc1 @9Q95+sXy!ZJZrNABX+ ۠kMI-{A>0d&Z%mUӂujςpy@uDž7gA�Sz<0>~caωԚާS#kkwB~Oj Ȟ|}j@R+ŃT4~'*:'Vڨjam\{C;S5]qU0WHoXV_ZHXC8l!otdž;4 "b% drž`lj[}c ]ҵ)8"5I:61sjJT˝!h!5ąПa>cR'\{Y %P ;Om\,CnSb9ER^< \ �\ l}ZDx'<1l}^7l(@SjeSʉRL[cK=ϋUrlѫ}bZ 9ZAXQ-G+N.YFpɣ` | k+/ Z7vA,3fX4pTi8Q9"M-TLySM’B:,e%=P P kR�Ƅ>-$ yKi/9 -nC:p-SP&xv !t@` -v1ʩ{-mjH+eF9ѥ<5WT co>2Sa8JQ7 4o$iXom *6_f5YPXV0f UXkMAծb�\A}4&B6u\}"sl*7,:Ė9:B7.MąNUa\T_ u* "lebWMrn(>T0ZC8 .R4`pᒿuctA T)-}N S2yb^OClXS: ݉ qh]P2BE.='F\@BсK)@xb( BPʍUqIT!S hY5**{1 įE . `6nI|kU 2)rPh_y_0<. Njԓu<w_d)JܭSBg+*Pmz Tb/X$_J{'HTy:`#i Ce~G9Y=;7VxR|ypȆ2Zebu[O@l WD99"{mLCdCeS.R͉NMs=%R0 F#nڭOBroib:}7&B hX7&%d_$m[2-Bχ ! \2F v %>@*W e)Gy1c[A\Ą'D~AĪ~z}}U^ABT f ey yNtiڇRdKN55P9 ¨YjUTe{((Z>gȫ!.{bx&  ~t6La1g"H,̣g~߹ N ڂ)NI[LWD{CL y4Sa~]2u>*WK)oCX X6<eSkV0GLqQniy/5̵q~f$h P_^ZLwX ؆ }5~iBWoGX`ڛ wjS.zrC<:LhT<2\~}`yZ=T0) -kC{BgxTI O#'?kb_?W_m~*ϡ^ sǧ?ބ_ŸH?=_]~.5?ί _oQ=Oc߯rzwq~-%"z?}GW7_䳾za??~$ʟKk(6?kՑeS2i{=GIw{v϶yot{19{_r?,TeO_KYΟy8U/Yg<XK=˄<p9B_Wx8 O.nSHϼ?SW_;ןYg^m>'6{)wΟspYO/$ P#|] O ɯVwjw;/\'yk4.<%vSK٫3r!qEY|rqpU>I1-�YX%W~ڔgBO?r;\7qqu? Q$1OOvv}?)Wjq<2h/WMoO],?!~vrog1{RFX?o5 i|ruB?=fxr7WytcMZLJ ~+~/_5AuT&3mc\қw'3J{M~[Gb^珥=%M_g]] tOM?M~S?OnJ?h}_IxnXOW+⧕riGُ88~|At,󟑬>h,w_jxˎK{.}aQg뜄<=Dʏ 5~']b}Boϟ:Vyefo[@'+w;2J__,a1]RS)0Cۣr=Cv;kK^LO O C�OiK2':iac|t7t뼠?kTz<܇\D-~?'[B_?Sk떵ezXw[uH?b(?㭗rH2?ѷ?c\d*7J7iI/[%"wW.{~r*!iBpi?y)xGSۄ?n�GwքJj%v M)P?x%YݻGSSZE7_/_�$) ID�PSCBS/inst/WORDLIST���������������������������������������������������������������������������������0000644�0001762�0000144�00000012672�14564051545�013314� 0����������������������������������������������������������������������������������������������������ustar �ligges��������������������������users������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������AbstractCBS AppVeyor BAF BAFs BMC Bioinformatics Biostatistics CGH CMD CN Chr CxK DHs DNAcopy Fridlyand Homozygosity JxL LOH Lucito NTCN NonPairedPSCBS PSCN PairedPSCBS Pre ROH RSP Reproducibility SxK TCN TCNs TumorBoost UCSF Venkatraman Wigler abIndex adjustPloidyScale al allelic amplificationCall attachLocally averageQuantile callHooks changepoints clearCalls dgCMatrix drawChangePoints drawKnownSegments dropChangePoint dropChangePoints dropRegion dropRegions dsCMatrix et extractCNs extractChromosome extractChromosomes extractRegions extractSegments extractWIG gainCall genomewide germline getChangePoints getChromosomeOffsets getChromosomeRanges getChromosomes getLocusData getLocusSignalNames getMeanEstimators getSampleName getSegmentSizes getSegmentTrackPrefixes getSegments ggplot hclust heterozygosity heterozygous homozygosity homozygous indMatrix isLocallyPhased isSegmentSplitter lossCall macOS mergeThreeSegments mergeTwoSegments minDensity nbrOfChangePoints nbrOfChromosomes nbrOfLoci nbrOfSegments negOutlierCall nonStructure normalizeAverage normalizeDifferencesToAverage normalizeQuantileRank normalizeQuantileSpline normalizeTotalCNs normals phenotypes ploidy plotDensity plotTracks posOutlierCall pre pruneByDP pruneByHClust renameChromosomes rescaling resegment resetSegments sampleCNs sampleName segements segmentions seperately seqOfSegmentsByDP setLocusData setMeanEstimators setPloidy setSampleName setSegments shiftTCN sparseVector splitters subclasses th tileChromosomes updateMeans writeSegments writeWIG abCall ABO AbstractPSCBS addCalls addtolength adjustFor alltt alphaAB alphaDH alphaHighAI alphaTCN anyMissing appendVarArgs applyByRegion args arrowsC arrowsDeltaC asMissing aspectRatio AtNonAB attr avgDH avgTCN Bengtsson BengtssonH betaN betaT betaTN bibliographystyle BioC biocViews bionomial Blim bootstrapDHByRegion bootstrapSegmentsAndChangepoints bootstrapTCNandDHByRegion bottomfraction bottomnumber bs bst ByC calcStatsForCopyNeutralABs callAB callABandHighAI callABandLowC callAllelicBalance callAllelicBalanceByDH callAmplifications callArms callCopyNeutral callCopyNeutralByTCNofAB callExtremeAllelicImbalance callExtremeAllelicImbalanceByDH callGainNeutralLoss callGainsAndLosses callGLAO callGNL callLoci callLOH callLowC callNaiveGenotypes callNaiveHeterzygotes callNnn callNTCN callROH callSegmentationOutliers callSegments camelCase centromere centromeres cex chr ciRange citep citet className clearBootstrapSummaries clearpage Clim CMRG cn CNA columnNamesFlavor cran csN datapoint deltaAB deltaCN deltaLOH DeltaLOH deltaROH dev devEval devOptions dh dhNbrOfLoci dhSegRows dmad documentclass downsampled drawChromosomes drawConfidenceBands drawLevels dropGaps dropMissingCT dropSegmentationOutliers dt emph encodeCalls ensuremath escapeRspVerbatim estimateDeltaAB estimateDeltaCN estimateDeltaLOH estimateDeltaLOHByMinC estimateHighDHQuantileAtAB estimateKappa estimateKappaByC estimateStandardDeviation estimateTauAB estimateTauABBySmallDH estimateTauLOH estimateTauLOHByMinC etal evensidemargin exampleData exData extractByChromosome extractByChromosomes extractByRegions extractMinorMajorCNs extractSegment extractSegmentDataByLocus extractTCNAndDHs extractTotalCNs exts figTracks figTracksPruned findheterozygous findLargeGaps findNeutralCopyNumberState findPeaksAndValleys fitP fixLocations floatpagefraction footnotesize ForNonAB fullname gapsToSegments GC genomeData GenomeWideSNP getbdry getBootstrapLocusSets getCallStatistics getCallStatisticsByArms getSmoothLocusData graphicspath graphicx hclustCNs heterozygotes heterozyous hidelinks highlightArmCalls Hmisc homozygote homozygotes hrmode htp https hyperref hypersetup Ilari Illumina includegraphics installDNAcopy jj joinSegments Junsong Kirill knownCPs knownSegments listenv loadMethod loadObject lociNotPartOfSegment loh lohCall magnitutes Makefile maketitle maploc matchings matrixStats maxC meanCol memoization methodsS minLength minSize Minya multipage multisession muN MySample na NaN natbib nbrOfUnits neglectable newcommand newenvironment NextMethod nnn nnstedt normalizeTumorBoost nperm nrow nucleotides num oddsidemargin OlshenA oma onAttach oo PairedPSCNSegments parskip pdfauthor pdfborder pdfkeywords pdfproducer pdfsubject pdftitle plotTrack plotTracksManyChromosomes png postsegmentTCN preserveOrder preserveScale priorly probs pruneBySdUndo psCBS PSCBS psSegment psSegmentPaired renewcommand resegmentation resizebox rfile Rinstignore Ritu rowAlls rsp rspTags rspVerbatim Rueda sanityChecks saveObject Scheinin sdundo secBackground secData secGaps secTCNOutliers segJJ segmentations segmentByCBS segmentByNonPairedPSCBS segmentByPairedPSCBS segs sessionInfo setcounter setMethodS setOption signalType Similarily splitter startupMessage stopifnot str strOptions studyName subsetBySegments subsubsection Sys tableofcontents Talevich tauA tauAB tauB tauTCN tbn tcn tcnNbrOfHets tcnnbrOfLoci tcnNbrOfLoci tcnNbrOfSNPs tcnNbrOr tcnSegRows testROH tex textbf textfraction textheight textnormal textsl texttt textwidth thetaN thetaT tiledChromosomes tmp toLatex topfraction topmargin toPNG Tsukanov TumorBoosted TumorBoostNormalization typeOfWeights UC ucsf undoDH undoTCN unlist unTumorBoost updateBoundaries updateMeansC updateMeansTogether useAlphaChannel usepackage VenkatramanOlshen VignetteAuthor VignetteBuilder VignetteEngine VignetteIndexEntry VignetteKeyword vspace VUMC WEHI weightedMedian weightedQuantile whichVector withCapture writeLocusData xBEEF xcolor xlim xorCalls xspace Zhao L'Ecuyer NaN's psCNA segmentByNnn segRows ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������