From 2f022a448d8248a0f9afb33419bcbaeafe7731c0 Mon Sep 17 00:00:00 2001 From: jgranja24 Date: Wed, 28 Oct 2020 21:39:27 -0700 Subject: [PATCH] Release 1.0.0 (#376) * updates * Update DESCRIPTION * documentation * document * Update README.md * Update README.md * Update README.md * Update README.md * trajectory * add trajectory and clustering params * New additions for multi modal analysis * documentation updates * Update README.md * Update README.md * Update README.md * Update README.md * bugfix * Update README.md * Update README.md * threads are integer for umap * Update README.md * add stream trajectory export * add empirical p-value and dims to use in integration * typo * add seed arguments to LSI * fix buffer ratio * update param addmotifannot update param * add getFragmentsFromProject * update documentation * remove default size aes in rasterized point * added .safeSaveRDS * add check for subsetArchRProject * added na.rm = TRUE to validating a numeric integer * update documentation * add getAvailableMatrices check for getMatrixFromProject * Update ArrowRead.R * bugfix of rowRanges for peakmatrix not staying * bugfix * add a check for 0 cells * addmodule score and imputation of cellColData * add normMethod = "None" to browser * update documentation * add back size to ggplot * bugfix multimodal cbind * update getBlacklist * force removeFilteredCells=TRUE * bugfix reducedDims not passed to imputation in RNA integration * add more logging to markerFeatures * bugfix * force sparse matrix for scRNA * catch 0 overlap * added checkSparseMatrix for getPartialMatrix * add .checkSparseMatrix to MarkerFeatures * update create arrow * bugfix * adding test genome * testgenome * Added PBMC Small Project * add test fragments * document * update test stuff * add logging to plotP2GHeatmap * browser plotting order * bugfix case in correlate matrices * bugfix deviationsmatrix in copyarrows * bug fix 1d bias * update subsetting * clarify subset message * bugfix ncol markerSE = 1 * add message for number of overlapping gene names * add ArchR method for background peaks * add more logging to tile matrix * convert to vector * Add Raw output Peak2GeneLinks * add cellsToUse to peak2gene links * Update addPeak2GeneLinks.Rd * make nLabel functional * force archr with non-fixed width peaks * clean groupBW and self KNN * document * update plotBrowserTrack to now have single cell tracks! * Update ArchRBrowser.R * Update ArchRBrowser.R * Update ArchRBrowser.R * bugfix * cleanup * add gene plots to browser with patchwork! * document * bugfix * useMatrix = NULL * bugfix normmetho -> normmethod * add null to getTrajectory * update plotFragSizes and plotTSS to have groupBy option * file locking * statistics to coA and P2G stable * update coaccessibility * test * Update auto-comment.yml * Update auto-comment.yml --- .DS_Store | Bin 12292 -> 14340 bytes .github/auto-comment.yml | 6 + DESCRIPTION | 7 +- NAMESPACE | 11 + R/AllClasses.R | 49 +++- R/AnnotationPeaks.R | 17 +- R/ArchRBrowser.R | 428 +++++++++++++++++++++++++++++-- R/ArrowRead.R | 138 ++++++++-- R/ArrowUtils.R | 4 + R/Clustering.R | 26 +- R/CreateArrow.R | 53 ++-- R/DoubletsScores.R | 4 +- R/Embedding.R | 4 +- R/GlobalDefaults.R | 13 +- R/GroupExport.R | 10 +- R/HiddenUtils.R | 32 +++ R/InputData.R | 34 +++ R/IntegrativeAnalysis.R | 130 ++++++---- R/IterativeLSI.R | 144 ++++++++--- R/LoggerUtils.R | 4 +- R/MarkerFeatures.R | 63 ++++- R/MatrixDeviations.R | 129 +++++++++- R/MatrixGeneExpression.R | 300 ++++++++++++++++++++++ R/MatrixGeneScores.R | 9 +- R/MatrixTiles.R | 14 +- R/ModuleScore.R | 122 +++++++++ R/MultiModal.R | 180 +++++++++++++ R/ProjectMethods.R | 3 + R/QualityControl.R | 149 +++++++---- R/RNAIntegration.R | 35 ++- R/Trajectory.R | 376 ++++++++++++++++++++++++++- R/ValidationUtils.R | 2 +- R/VisualizeData.R | 27 +- README.md | 17 ++ data/geneAnnoHg19test.rda | Bin 0 -> 502826 bytes data/genomeAnnoHg19test.rda | Bin 0 -> 2321 bytes man/.Rhistory | 0 man/addBgdPeaks.Rd | 3 + man/addClusters.Rd | 4 + man/addCoAccessibility.Rd | 3 + man/addCombinedDims.Rd | 38 +++ man/addDeviationsMatrix.Rd | 2 +- man/addGeneExpressionMatrix.Rd | 46 ++++ man/addGeneIntegrationMatrix.Rd | 13 + man/addGeneScoreMatrix.Rd | 19 +- man/addIterativeLSI.Rd | 13 +- man/addModuleScore.Rd | 34 +++ man/addMonocleTrajectory.Rd | 33 +++ man/addMotifAnnotations.Rd | 3 + man/addPeak2GeneLinks.Rd | 6 + man/addSlingShotTrajectories.Rd | 43 ++++ man/createArrowFiles.Rd | 29 +-- man/createGeneAnnotation.Rd | 5 +- man/exportPeakMatrixForSTREAM.Rd | 29 +++ man/getBgdPeaks.Rd | 3 + man/getFragmentsFromProject.Rd | 30 +++ man/getMonocleTrajectories.Rd | 43 ++++ man/getPeak2GeneLinks.Rd | 6 + man/getTestFragments.Rd | 11 + man/getTestProject.Rd | 11 + man/import10xFeatureMatrix.Rd | 23 ++ man/plotBrowserTrack.Rd | 19 +- man/plotFragmentSizes.Rd | 9 + man/plotMarkerHeatmap.Rd | 8 +- man/plotPeak2GeneHeatmap.Rd | 13 + man/plotTSSEnrichment.Rd | 9 + man/plotTrajectoryHeatmap.Rd | 4 +- man/subsetArchRProject.Rd | 5 +- 68 files changed, 2774 insertions(+), 283 deletions(-) create mode 100644 .github/auto-comment.yml create mode 100644 R/MatrixGeneExpression.R create mode 100644 R/ModuleScore.R create mode 100644 R/MultiModal.R create mode 100644 data/geneAnnoHg19test.rda create mode 100644 data/genomeAnnoHg19test.rda create mode 100644 man/.Rhistory create mode 100644 man/addCombinedDims.Rd create mode 100644 man/addGeneExpressionMatrix.Rd create mode 100644 man/addModuleScore.Rd create mode 100644 man/addMonocleTrajectory.Rd create mode 100644 man/addSlingShotTrajectories.Rd create mode 100644 man/exportPeakMatrixForSTREAM.Rd create mode 100644 man/getFragmentsFromProject.Rd create mode 100644 man/getMonocleTrajectories.Rd create mode 100644 man/getTestFragments.Rd create mode 100644 man/getTestProject.Rd create mode 100644 man/import10xFeatureMatrix.Rd diff --git a/.DS_Store b/.DS_Store index c0f50e6f66facda6c8a73b019cf69d3547665ea7..545357e4bee15fa94d4df5875835e1a7e94ff155 100644 GIT binary patch literal 14340 zcmeHO3v?9a6}~qFn4JYOK_t6NmMnxM5JHm8Ym)$B^FRp!L;?bW#7%aEt;=rAY!Wac zSo^|fTdSzFmD(PAEViC1*!pO#tq*)*TT?|^+hcpQZ|$)UYfnA)-v6K7%uW&z0Xv~Xj-oxS`(rh z!hN9@x=q*6_R6HmQ?j(|sb@_)duIOJ1r@$UjT^dR+qZ|JaeYgWE?N=L zK5gy^(J{DIrzft91Uf^JwU>sY!S#Leeb+_<+e4fA!j-XL_>yoaI5<7W;dH6F?saro zXvfBY-W7@l!_lql`oqEaw)K5sJ=_@yX%lVPSfYrl^W3xCnxbe&)-~s5$=S8@DMx+&%)2(CHOV` z4*mx3!ux2$EX+YCy3ma?u?Xj3F_z#0tif8W!-cpAm*Tm&43}dYuEh&*J#NGcu?s_Z z32wtM_Fx=)u^)HfRd_Xi3O|dV!!O_$@h1Edeg*HugYv~PSkHKCl}+M^_cS;hmS2r# zQ5n>xWKC|$bvQQiFVh$dhJuPRH0qS!%ch|i_H3wvMX(w+LJ<0C*f+y1V%Yb?gYXkL z3NOIV;YBzGufd<-FYs4*6W+m0oPZNi!E7=7Je*5IFT-;5Vm&UwMr^`nT!Cw7=<8_k z9k`W-{0Y322E7aS(2zfg*W&H?Wg6;N@tgQvybtfkL-+%H2A`EfOb&c`V#u<^=c&!4 zHw{1>0ueoFZkLQ?ZZ5L6B9mQwR1+i1qOUi86UCnTYU#7|45ViuJp*EW@X$Q)I^j3k zJ+c)`2OT(s;C>Dv#73WaXqgeziiXT^bDkDVE7CW-nYj7eeFHbNG!UQdf3 zUq#)nT{b1Bz`MBh;_W*xAGl)ImAA{mqOo8=mOM`$_sg+S=+$f>ore=+JDwODAszc< z*Rs~-Z7WuefJROY>+scGJ+Vk+bxaR4WZIZSKf}5RGXLm1{ln#^dNaZV3`it}v(KMYRQva<;DxHj~5hA-<4$9HP^6oZRr z&2)Ke1Y}YoZqehK>6)V`W{4#oQ&{A(3#_FD6q}IDFR|MN zC@!t6UEGw^0L$;4qLOAkJR#H{Bt4&z>$c~OW+4*wE39tX#K9R(mt)rK++2+nP7$Yt zMY(nj$tG;#bbb-_W>6nL*j}DnVI$4g#>wxgw)+&)ac#Wpt+y{?ps!`h-X-=%g_K>J zARg4*Vz+C+M#=d818OaWO{44V(}Z|mBYpi30sZl$t5Zo&J*1+Wj zsIt7a#8Xq{`%o^(7@x@v?Mqm$nQ(KqE>~BaUIxI*t&K?M4N*%6C!Ot{T{yqIx_(K^ zprqhb)#OgBo+e>mVwKI#*h_0a5o?p3E@y6{%X*7KZYSx2#COchbE+wJF3gUIh%LMfd32c5ml9ixx~`tkrB_s zYU1d8=r{PeRx)A9&27RUQB)D!j#1*}b_U!~HsuRENl5AHYZPNB9^% zi_hUN@HqbRBnHa{J*2EBWQUoqYB{6I`Z1BjGgS9zx}54p1f}e8&1Ns6NoLno;3{H@ zSj!Nsuv+XQha)_PxVTL98lHns)he~d@EoGIPF-kt4$<47`YD>*YtukJtH9M_Q#2eR zOob6jc6cP3^lrEh9)st}T^xf~;dLTN-$5W+bP9zvtZ%b19}CEBl!@@B3Kx_6@Dn}C z28j$DCurQSI!*A^u{KYQt+ICH|5<^26?i;>L?tC--xj4?NbV@7@2dreX~I3oNm9A z0(%bYcMvWgAYA?#gGb`7<7R?#@s;_5xv#Y z9eC?}C7!Cf$`9=h#Q03^VCN|AVA&ZeavA0avZtO3*me=vW~e&c53qD(KfpaB_yHED z`T>@t`T>?$`~ZuF`2iM=;0IVdnjhf4(d$4`8QjsUU-rW{;9jC}ABCsjIVuGCDOJH7 zCo1=KcmsY-}j)WNh7)>%cQ?gqSA(78cEIemg6 z8=%UUo5%!jAtO9Mgcwt~-zJ3pFg|WEL~9wy6NVus6!OHldW=+E6$ut-46gq+UjGxT zfAP@jzra;yUi~Z7D)Z{^Q|rvD|01=)jIA5hW{R#{gsm-bdWaf3N!8U;qU?xkuKvtb zSEOeXso;oH1~UYoQ$)H}jPpg+m5-{f>Iql32wsQN2TaUz>5+$ncclCj*uFP6zS^h1RfMd)FoGwgY8Kub;j7Gnb6CXkST+<TcL%6s>;o{2V3M0kNre?0Ow1k^%?wZqcLf-WQm@2!7 zdnnKM2)T$O@HDvzb`igYKZso4KjB~GA`~i@pz)y=v?HV#rSu1#e@_gUN2PtRrI6i?#DcAQai=(jSON@Mqyz2BE$IHi* zbN%1a(d++D&zGg2lAeL|42;Pcz|5BRmL__&M5&DRExFdtL;Ji6>rwR>bMZliN~+s9S}$a#6eGovas0gURY>q3oO-As6>TAqtfm&Q#lDJau@ln~2amqiiH<;eQ!_j9*D4vK0}z9gFS_mBl<`FmN+;5@(Rd;i z&pFwfR^1=6*}-L7ZnbIAqMvHHYL8KdVtRLNgMP+4#`hsZ=fNC&NtG?vBwn?mF!!vN z&u^DX^oXzA&KN6Z`j9VPFBq{$s-Bjy;rtT(F9I-|O)wW9JwN%gvhrZ#_g)7HM_ zQps5+R)|&lf-LK+&f+XoVK^C^RP%~lBiAv>!^URf+QAtub7;9ta+cQLCW{X$v5dMi zrD*#!Rgu1Bf;rzKH!|r%_JE;Ar&T^G<`FG&s~{!Wa9W#F^PBkEMRE9mmQd;uhwFPZ*m>O-`!GOxjHM$WbPJ$;OSt z2V?2X(3F~7J74z5cQdxzPQ6C+7L{l>RcgNBbYEsdX50B1jX)T^mr9z|jY}uIIu-@g8jH0vUx|&*9 zY<4*W-VJ%JwT){Q-VNsK2ER*`th@(=yc!CNF3HYmudUo9Zq5q47bII=-m;a;1)RLO zINB$Q5;=Ku3jc`iU&)=PZ|DlAwhH2`94P0s8aS#I2{Uxx%U!fnZ^5iO5xov6TcT2IIr);E<=_7vWg^EZAcY;9BaDt72aKyBN z(dw{pV_ISJ3U=kLG%w+X|K!ei=V03$cj~FOSM;K$pVzC2SVo&w`}il3mLOdI z@AgIX*89RJ8jltSAGY1>-`sPrS@qJ;PLU%p?A@?qzrH`Ts28-g|DUVVe2dlj0|$G9 Aw*UYD diff --git a/.github/auto-comment.yml b/.github/auto-comment.yml new file mode 100644 index 00000000..53fd071d --- /dev/null +++ b/.github/auto-comment.yml @@ -0,0 +1,6 @@ +# Comment to a new issue. +issueOpened: > + Thank your for raising a issue. We will try and get back to you as soon as possible. + + Please make sure you have given us as much context as possible. + diff --git a/DESCRIPTION b/DESCRIPTION index 6ea9329b..39b026bf 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: ArchR Type: Package -Date: 2019-05-11 +Date: 2020-10-01 Title: Analyzing single-cell regulatory chromatin in R. -Version: 0.9.5 +Version: 1.0.0 Authors@R: c( person("Jeffrey", "Granja", email = "jgranja.stanford@gmail.com", role = c("aut","cre")), person("Ryan", "Corces", role = "aut")) @@ -73,8 +73,11 @@ Collate: 'MarkerFeatures.R' 'MatrixDeviations.R' 'MatrixFeatures.R' + 'MatrixGeneExpression.R' 'MatrixGeneScores.R' 'MatrixTiles.R' + 'ModuleScore.R' + 'MultiModal.R' 'ProjectMethods.R' 'QualityControl.R' 'RNAIntegration.R' diff --git a/NAMESPACE b/NAMESPACE index 0a957b06..398bf483 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,17 +21,21 @@ export(addBgdPeaks) export(addCellColData) export(addClusters) export(addCoAccessibility) +export(addCombinedDims) export(addDemuxletResults) export(addDeviationsMatrix) export(addDoubletScores) export(addFeatureCounts) export(addFeatureMatrix) +export(addGeneExpressionMatrix) export(addGeneIntegrationMatrix) export(addGeneScoreMatrix) export(addGroupCoverages) export(addHarmony) export(addImputeWeights) export(addIterativeLSI) +export(addModuleScore) +export(addMonocleTrajectory) export(addMotifAnnotations) export(addPeak2GeneLinks) export(addPeakAnnotations) @@ -40,6 +44,7 @@ export(addPeakSet) export(addProjectSummary) export(addReproduciblePeakSet) export(addSampleColData) +export(addSlingShotTrajectories) export(addTSNE) export(addTileMatrix) export(addTrajectory) @@ -53,6 +58,7 @@ export(createGenomeAnnotation) export(createLogFile) export(enrichHeatmap) export(exportGroupSE) +export(exportPeakMatrixForSTREAM) export(extendGR) export(filterChrGR) export(filterDoublets) @@ -76,6 +82,7 @@ export(getExons) export(getFeatures) export(getFootprints) export(getFragmentsFromArrow) +export(getFragmentsFromProject) export(getGeneAnnotation) export(getGenes) export(getGenome) @@ -90,6 +97,7 @@ export(getMarkers) export(getMatches) export(getMatrixFromArrow) export(getMatrixFromProject) +export(getMonocleTrajectories) export(getOutputDirectory) export(getPeak2GeneLinks) export(getPeakAnnotation) @@ -101,6 +109,8 @@ export(getSampleColData) export(getSampleNames) export(getSeqnames) export(getTSS) +export(getTestFragments) +export(getTestProject) export(getTrajectory) export(getTutorialData) export(getValidBarcodes) @@ -110,6 +120,7 @@ export(ggGroup) export(ggHex) export(ggOneToOne) export(ggPoint) +export(import10xFeatureMatrix) export(imputeMatrix) export(installExtraPackages) export(loadArchRProject) diff --git a/R/AllClasses.R b/R/AllClasses.R index 299b1655..9ba68568 100644 --- a/R/AllClasses.R +++ b/R/AllClasses.R @@ -617,7 +617,7 @@ saveArchRProject <- function( } message("Saving ArchRProject...") - saveRDS(newProj, file.path(outputDirectory, "Save-ArchR-Project.rds")) + .safeSaveRDS(newProj, file.path(outputDirectory, "Save-ArchR-Project.rds")) if(load){ message("Loading ArchRProject...") @@ -636,6 +636,7 @@ saveArchRProject <- function( #' @param dropCells A boolean indicating whether to drop cells that are not in `ArchRProject` from corresponding Arrow Files. #' @param logFile The path to a file to be used for logging ArchR output. #' @param threads The number of threads to use for parallel execution. +#' @param force If output directory exists overwrite. #' @export subsetArchRProject <- function( ArchRProj = NULL, @@ -643,7 +644,8 @@ subsetArchRProject <- function( outputDirectory = "ArchRSubset", dropCells = TRUE, logFile = NULL, - threads = getArchRThreads() + threads = getArchRThreads(), + force = FALSE ){ .validInput(input = ArchRProj, name = "ArchRProj", valid = "ArchRProj") @@ -652,6 +654,12 @@ subsetArchRProject <- function( outDirOld <- getOutputDirectory(ArchRProj) + if(dir.exists(outputDirectory)){ + if(!force){ + stop("outputDirectory exists! Please set force = TRUE to overwrite existing directory!") + } + } + if(outputDirectory == outDirOld){ stop("outputDirectory must be different than ArchRProj outputDirectory to properly subset!") } @@ -754,12 +762,49 @@ subsetArchRProject <- function( i <- rownames(cD)[i] } + if(length(i) == 1){ + stop("Length of subsetting cells must be greater than 1!") + } + + i <- unique(i) + + #First Subset CellColData x@cellColData <- cD[i, , drop=FALSE] + cellsKeep <- rownames(x@cellColData) + + #Second Remove Impute Weights + if(length(i) != nrow(cD)){ + if(length(x@imputeWeights) != 0){ + message("Dropping ImputeWeights Since You Are Subsetting Cells! ImputeWeights is a cell-x-cell Matrix!") + } + x@imputeWeights <- SimpleList() + } + + #Third Subset ReducedDims + rD <- x@reducedDims + rD2 <- lapply(seq_along(rD), function(x){ + rD[[x]][[1]] <- rD[[x]][[1]][cellsKeep, , drop = FALSE] + rD[[x]] + }) %>% SimpleList() + names(rD2) <- names(rD) + rD <- x@reducedDims + rm(rD, rD2) + + #Fourth Subset Embeddings + eD <- x@embeddings + eD2 <- lapply(seq_along(eD), function(x){ + eD[[x]][[1]] <- eD[[x]][[1]][cellsKeep, , drop = FALSE] + eD[[x]] + }) %>% SimpleList() + names(eD2) <- names(eD) + x@embeddings <- eD2 + rm(eD, eD2) return(x) } + setMethod( f = "colnames", signature = c("x" = "ArchRProject"), diff --git a/R/AnnotationPeaks.R b/R/AnnotationPeaks.R index eda4bb88..60b30642 100644 --- a/R/AnnotationPeaks.R +++ b/R/AnnotationPeaks.R @@ -217,9 +217,9 @@ addPeakAnnotations <- function( ArchRProj@peakAnnotation[[name]]$Positions <- savePositions ArchRProj@peakAnnotation[[name]]$Matches <- saveMatches - saveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) - saveRDS(out$regionPositions, savePositions, compress = FALSE) - saveRDS(out$regionMatches, saveMatches, compress = FALSE) + .safeSaveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) + .safeSaveRDS(out$regionPositions, savePositions, compress = FALSE) + .safeSaveRDS(out$regionMatches, saveMatches, compress = FALSE) return(ArchRProj) @@ -239,6 +239,7 @@ addPeakAnnotations <- function( #' used from CisBP/JASPAR. By default, this function will attempt to guess the species based on the value from `getGenome()`. #' @param collection If one of the JASPAR motif sets is used via `motifSet`, this parameter allows you to indicate the JASPAR #' collection to be used. See `getMatrixSet()` from `TFBSTools` for all options to supply for collection. +#' @param motifPWMs A custom set of motif PWMs as a PWMList for adding motif annotations. #' @param cutOff The p-value cutoff to be used for motif search. The p-value is determined vs a background set of sequences #' (see `MOODS` for more details on this determination). #' @param width The width in basepairs to consider for motif matches. See the `motimatchr` package for more information. @@ -473,9 +474,9 @@ addMotifAnnotations <- function( ArchRProj@peakAnnotation[[name]]$Positions <- savePositions ArchRProj@peakAnnotation[[name]]$Matches <- saveMatches - saveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) - saveRDS(out$motifPositions, savePositions, compress = FALSE) - saveRDS(out$motifMatches, saveMatches, compress = FALSE) + .safeSaveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) + .safeSaveRDS(out$motifPositions, savePositions, compress = FALSE) + .safeSaveRDS(out$motifMatches, saveMatches, compress = FALSE) .endLogging(logFile = logFile) @@ -741,8 +742,8 @@ addArchRAnnotations <- function( ArchRProj@peakAnnotation[[name]]$Positions <- "None" ArchRProj@peakAnnotation[[name]]$Matches <- saveMatches - saveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) - saveRDS(out$regionMatches, saveMatches, compress = FALSE) + .safeSaveRDS(out, file.path(getOutputDirectory(ArchRProj), "Annotations", paste0(name,"-In-Peaks-Summary.rds")), compress = FALSE) + .safeSaveRDS(out$regionMatches, saveMatches, compress = FALSE) .endLogging(logFile = logFile) diff --git a/R/ArchRBrowser.R b/R/ArchRBrowser.R index 3c56fa5f..27a01fbd 100644 --- a/R/ArchRBrowser.R +++ b/R/ArchRBrowser.R @@ -194,7 +194,7 @@ ArchRBrowser <- function( br(), selectizeInput("normATAC", label = "normMethod", - choices = c("ReadsInTSS", "ReadsInPromoter", "nFrags"), + choices = c("ReadsInTSS", "ReadsInPromoter", "nFrags", "None"), multiple = FALSE, options = list(placeholder = 'Select NormMethod'), selected = "ReadsInTSS" @@ -640,8 +640,8 @@ ArchRBrowserTrack <- function(...){ #' @param useGroups A character vector that is used to select a subset of groups by name from the designated `groupBy` column in #' `cellColData`. This limits the groups to be plotted. #' @param plotSummary A character vector containing the features to be potted. Possible values include "bulkTrack" (the ATAC-seq signal), -#' "featureTrack" (i.e. the peak regions), "geneTrack" (line diagrams of genes with introns and exons shown. Blue-colored genes -#' are on the minus strand and red-colored genes are on the plus strand), and "loopTrack" (links between a peak and a gene). +#' "scTrack" (scATAC-seq signal), "featureTrack" (i.e. the peak regions), "geneTrack" (line diagrams of genes with introns and exons shown. +#' Blue-colored genes are on the minus strand and red-colored genes are on the plus strand), and "loopTrack" (links between a peak and a gene). #' @param sizes A numeric vector containing up to 3 values that indicate the sizes of the individual components passed to `plotSummary`. #' The order must be the same as `plotSummary`. #' @param features A `GRanges` object containing the "features" to be plotted via the "featureTrack". This should be thought of as a @@ -651,6 +651,8 @@ ArchRBrowserTrack <- function(...){ #' A "loopTrack" draws an arc between two genomic regions that show some type of interaction. This type of track can be used #' to display chromosome conformation capture data or co-accessibility links obtained using `getCoAccessibility()`. #' @param geneSymbol If `region` is not supplied, plotting can be centered at the transcription start site corresponding to the gene symbol(s) passed here. +#' @param useMatrix If supplied geneSymbol, one can plot the corresponding GeneScores/GeneExpression within this matrix. I.E. "GeneScoreMatrix" +#' @param log2Norm If supplied geneSymbol, Log2 normalize the corresponding GeneScores/GeneExpression matrix before plotting. #' @param upstream The number of basepairs upstream of the transcription start site of `geneSymbol` to extend the plotting window. #' If `region` is supplied, this argument is ignored. #' @param downstream The number of basepairs downstream of the transcription start site of `geneSymbol` to extend the plotting window. @@ -664,6 +666,8 @@ ArchRBrowserTrack <- function(...){ #' @param ylim The numeric quantile y-axis limit to be used for for "bulkTrack" plotting. If not provided, the y-axis limit will be c(0, 0.999). #' @param pal A custom palette (see `paletteDiscrete` or `ArchRPalettes`) used to override coloring for groups. #' @param baseSize The numeric font size to be used in the plot. This applies to all plot labels. +#' @param scTileSize The width of the tiles in scTracks. Larger numbers may make cells overlap more. Default is 0.5 for about 100 cells. +#' @param scCellsMax The maximum number of cells for scTracks. #' @param borderWidth The numeric line width to be used for plot borders. #' @param tickWidth The numeric line width to be used for axis tick marks. #' @param facetbaseSize The numeric font size to be used in the facets (gray boxes used to provide track labels) of the plot. @@ -682,6 +686,8 @@ plotBrowserTrack <- function( features = getPeakSet(ArchRProj), loops = getCoAccessibility(ArchRProj), geneSymbol = NULL, + useMatrix = NULL, + log2Norm = TRUE, upstream = 50000, downstream = 50000, tileSize = 250, @@ -691,6 +697,8 @@ plotBrowserTrack <- function( ylim = NULL, pal = NULL, baseSize = 7, + scTileSize = 0.5, + scCellsMax = 100, borderWidth = 0.4, tickWidth = 0.4, facetbaseSize = 7, @@ -709,6 +717,8 @@ plotBrowserTrack <- function( .validInput(input = features, name = "features", valid = c("granges", "grangeslist", "null")) .validInput(input = loops, name = "loops", valid = c("granges", "grangeslist", "null")) .validInput(input = geneSymbol, name = "geneSymbol", valid = c("character", "null")) + .validInput(input = useMatrix, name = "useMatrix", valid = c("character", "null")) + .validInput(input = log2Norm, name = "log2Norm", valid = c("boolean")) .validInput(input = upstream, name = "upstream", valid = c("integer")) .validInput(input = downstream, name = "downstream", valid = c("integer")) .validInput(input = tileSize, name = "tileSize", valid = c("integer")) @@ -718,6 +728,8 @@ plotBrowserTrack <- function( .validInput(input = ylim, name = "ylim", valid = c("numeric", "null")) .validInput(input = pal, name = "pal", valid = c("palette", "null")) .validInput(input = baseSize, name = "baseSize", valid = "numeric") + .validInput(input = scTileSize, name = "scTileSize", valid = "numeric") + .validInput(input = scCellsMax, name = "scCellsMax", valid = "integer") .validInput(input = borderWidth, name = "borderWidth", valid = "numeric") .validInput(input = tickWidth, name = "tickWidth", valid = "numeric") .validInput(input = facetbaseSize, name = "facetbaseSize", valid = "numeric") @@ -746,6 +758,23 @@ plotBrowserTrack <- function( region <- .validGRanges(region) .logThis(region, "region", logFile = logFile) + if(is.null(geneSymbol)){ + useMatrix <- NULL + } + + if(!is.null(useMatrix)){ + featureMat <- .getMatrixValues( + ArchRProj = ArchRProj, + matrixName = useMatrix, + name = mcols(region)$symbol + ) + if(log2Norm){ + featureMat <- log2(featureMat + 1) + } + featureMat <- data.frame(t(featureMat)) + featureMat$Group <- getCellColData(ArchRProj, groupBy, drop = FALSE)[rownames(featureMat), 1] + } + ggList <- lapply(seq_along(region), function(x){ plotList <- list() @@ -776,6 +805,32 @@ plotBrowserTrack <- function( logFile = logFile) + theme(plot.margin = unit(c(0.35, 0.75, 0.35, 0.75), "cm")) } + ########################################################## + # Bulk Tracks + ########################################################## + if("sctrack" %in% tolower(plotSummary)){ + .logDiffTime(sprintf("Adding SC Tracks (%s of %s)",x,length(region)), t1=tstart, verbose=verbose, logFile=logFile) + plotList$sctrack <- .scTracks( + ArchRProj = ArchRProj, + region = region[x], + tileSize = tileSize, + groupBy = groupBy, + threads = threads, + minCells = 5, + maxCells = scCellsMax, + pal = pal, + baseSize = baseSize, + borderWidth = borderWidth, + tickWidth = tickWidth, + scTileSize = scTileSize, + facetbaseSize = facetbaseSize, + geneAnnotation = geneAnnotation, + title = title, + useGroups = useGroups, + tstart = tstart, + logFile = logFile) + theme(plot.margin = unit(c(0.35, 0.75, 0.35, 0.75), "cm")) + } + ########################################################## # Feature Tracks ########################################################## @@ -836,24 +891,44 @@ plotBrowserTrack <- function( # } sizes <- sizes[tolower(names(plotList))] - .logThis(names(plotList), sprintf("(%s of %s) names(plotList)",x,length(region)), logFile=logFile) - .logThis(sizes, sprintf("(%s of %s) sizes",x,length(region)), logFile=logFile) - #.logThis(nullSummary, sprintf("(%s of %s) nullSummary",x,length(region)), logFile=logFile) - .logDiffTime("Plotting", t1=tstart, verbose=verbose, logFile=logFile) - - tryCatch({ - suppressWarnings(ggAlignPlots(plotList = plotList, sizes=sizes, draw = FALSE)) - }, error = function(e){ - .logMessage("Error with plotting, diagnosing each element", verbose = TRUE, logFile = logFile) - for(i in seq_along(plotList)){ - tryCatch({ - print(plotList[[i]]) - }, error = function(f){ - .logError(f, fn = names(plotList)[i], info = "", errorList = NULL, logFile = logFile) - }) - } - .logError(e, fn = "ggAlignPlots", info = "", errorList = NULL, logFile = logFile) - }) + if(!is.null(useMatrix)){ + + suppressWarnings(.combinedFeaturePlot( + plotList = plotList, + log2Norm = log2Norm, + featureMat = featureMat, + feature = region[x]$symbol[[1]], + useMatrix = useMatrix, + pal = pal, + sizes = sizes, + baseSize = baseSize, + facetbaseSize = facetbaseSize, + borderWidth = borderWidth, + tickWidth = tickWidth + )) + + }else{ + + .logThis(names(plotList), sprintf("(%s of %s) names(plotList)",x,length(region)), logFile=logFile) + .logThis(sizes, sprintf("(%s of %s) sizes",x,length(region)), logFile=logFile) + #.logThis(nullSummary, sprintf("(%s of %s) nullSummary",x,length(region)), logFile=logFile) + .logDiffTime("Plotting", t1=tstart, verbose=verbose, logFile=logFile) + + tryCatch({ + suppressWarnings(ggAlignPlots(plotList = plotList, sizes=sizes, draw = FALSE)) + }, error = function(e){ + .logMessage("Error with plotting, diagnosing each element", verbose = TRUE, logFile = logFile) + for(i in seq_along(plotList)){ + tryCatch({ + print(plotList[[i]]) + }, error = function(f){ + .logError(f, fn = names(plotList)[i], info = "", errorList = NULL, logFile = logFile) + }) + } + .logError(e, fn = "ggAlignPlots", info = "", errorList = NULL, logFile = logFile) + }) + + } }) @@ -1000,8 +1075,9 @@ plotBrowserTrack <- function( } tabGroups <- table(cellGroups) - if(any(tabGroups) > maxCells){ - splitGroups <- split(rownames(cellGroups), cellGroups[,1]) + if(any(tabGroups > maxCells)){ + cellGroups2 <- getCellColData(ArchRProj, groupBy, drop = FALSE) + splitGroups <- split(rownames(cellGroups2), cellGroups2[,1]) useCells <- lapply(seq_along(splitGroups), function(x){ if(length(splitGroups[[x]]) > maxCells){ sample(splitGroups[[x]], maxCells) @@ -1024,7 +1100,7 @@ plotBrowserTrack <- function( ArrowFiles <- ArrowFiles[names(cellsBySample)] groupMat <- .safelapply(seq_along(ArrowFiles), function(i){ - .logMessage(sprintf("Getting Region From Arrow Files %s of %s", i, length(ArrowFiles))) + .logMessage(sprintf("Getting Region From Arrow Files %s of %s", i, length(ArrowFiles)), logFile = logFile) tryCatch({ .regionSumArrows( ArrowFile = ArrowFiles[i], @@ -1105,6 +1181,9 @@ plotBrowserTrack <- function( groupNormFactors <- unlist(lapply(split(v, g), sum)) }else if(tolower(normMethod) == "ncells"){ groupNormFactors <- table(g) + }else if(tolower(normMethod) == "none"){ + groupNormFactors <- rep(10^4, length(g)) + names(groupNormFactors) <- g }else{ stop("Norm Method Not Recognized : ", normMethod) } @@ -1369,6 +1448,8 @@ plotBrowserTrack <- function( pal <- paletteDiscrete(set = "stallion", values = rev(unique(paste0(featureO$name)))) } + featureO$name <- factor(paste0(featureO$name), levels=names(featureList)) + p <- ggplot(data = featureO, aes(color = name)) + facet_grid(facet~.) + geom_segment(data = featureO, aes(x = start, xend = end, y = name, yend = name, color = name), size=featureWidth) + @@ -1550,3 +1631,302 @@ plotBrowserTrack <- function( return(gr) } +####################################################### +# scATAC Track Methods +####################################################### + +.scTracks <- function( + ArchRProj = NULL, + region = NULL, + tileSize = 100, + minCells = 5, + maxCells = 100, + groupBy = "Clusters", + useGroups = NULL, + threads = 1, + baseSize = 7, + scTileSize = 0.5, + borderWidth = 0.4, + tickWidth = 0.4, + facetbaseSize = 7, + geneAnnotation = getGeneAnnotation(ArchRProj), + title = "", + pal = NULL, + tstart = NULL, + verbose = FALSE, + logFile = NULL + ){ + + .requirePackage("ggplot2", source = "cran") + + if(is.null(tstart)){ + tstart <- Sys.time() + } + + #Group Info + cellGroups <- getCellColData(ArchRProj, groupBy, drop = TRUE) + if(!is.null(minCells)){ + ArchRProj@cellColData <- ArchRProj@cellColData[cellGroups %bcin% names(table(cellGroups)[table(cellGroups) >= minCells]),,drop=FALSE] + cellGroups <- getCellColData(ArchRProj, groupBy, drop = TRUE) + } + if(!is.null(useGroups)){ + ArchRProj@cellColData <- ArchRProj@cellColData[cellGroups %bcin% useGroups,,drop=FALSE] + cellGroups <- getCellColData(ArchRProj, groupBy, drop = TRUE) + } + tabGroups <- table(cellGroups) + + if(any(tabGroups > maxCells)){ + cellGroups2 <- getCellColData(ArchRProj, groupBy, drop = FALSE) + splitGroups <- split(rownames(cellGroups2), cellGroups2[,1]) + useCells <- lapply(seq_along(splitGroups), function(x){ + if(length(splitGroups[[x]]) > maxCells){ + sample(splitGroups[[x]], maxCells) + }else{ + splitGroups[[x]] + } + }) %>% unlist + ArchRProj@cellColData <- ArchRProj@cellColData[useCells,,drop=FALSE] + cellGroups <- getCellColData(ArchRProj, groupBy, drop = TRUE) + tabGroups <- table(cellGroups) + } + + cellsBySample <- split(rownames(getCellColData(ArchRProj)), getCellColData(ArchRProj, "Sample", drop = TRUE)) + groupsBySample <- split(cellGroups, getCellColData(ArchRProj, "Sample", drop = TRUE)) + uniqueGroups <- gtools::mixedsort(unique(cellGroups)) + + #Tile Region + regionTiles <- seq(trunc(start(region) / tileSize), trunc(end(region) / tileSize) + 1) * tileSize + ArrowFiles <- getArrowFiles(ArchRProj) + ArrowFiles <- ArrowFiles[names(cellsBySample)] + + groupMat <- .safelapply(seq_along(ArrowFiles), function(i){ + .logMessage(sprintf("Getting Region From Arrow Files %s of %s", i, length(ArrowFiles)), logFile = logFile) + tryCatch({ + .regionSCArrows( + ArrowFile = ArrowFiles[i], + region = region, + regionTiles = regionTiles, + tileSize = tileSize, + cellNames = cellsBySample[[names(ArrowFiles)[i]]], + cellGroups = groupsBySample[[names(ArrowFiles)[i]]], + uniqueGroups = uniqueGroups + ) + }, error = function(e){ + errorList <- list( + ArrowFile = ArrowFiles[i], + region = region, + regionTiles = regionTiles, + tileSize = tileSize, + cellNames = cellsBySample[[names(ArrowFiles)[i]]], + cellGroups = groupsBySample[[names(ArrowFiles)[i]]], + uniqueGroups = uniqueGroups + ) + .logError(e, fn = ".groupRegionSCArrows", info = .sampleName(ArrowFiles[i]), errorList = errorList, logFile = logFile) + }) + }, threads = threads) %>% Reduce("cbind" , .) + + groupDF <- data.frame(Matrix::summary(groupMat)) + groupDF$group <- getCellColData(ArchRProj, groupBy, drop = FALSE)[colnames(groupMat)[groupDF$j], 1] + groupDF <- lapply(split(groupDF, groupDF$group), function(z){ + nz <- tabGroups[z$group[1]] + nc <- length(unique(z$j)) + idx <- sort(sample(seq_len(nz), nc)) + idx[1] <- 1 + idx[length(idx)] <- nz + z$y <- idx[match(z$j, unique(z$j))] + z + }) %>% Reduce("rbind", .) + groupDF$bp <- regionTiles[groupDF$i] + + if(is.null(pal)){ + pal <- suppressWarnings(paletteDiscrete(values = names(tabGroups))) + } + + nn <- paste0(names(tabGroups), ":", tabGroups) + names(nn) <- names(tabGroups) + groupDF$group2 <- nn[groupDF$group] + names(pal) <- nn[names(pal)] + + title <- paste0(as.character(seqnames(region)),":", start(region)-1, "-", end(region), " ", title) + + p <- ggplot(groupDF, aes(x=bp, y=y, width = tileSize, fill = group2, color = group2)) + + geom_tile(size = scTileSize) + + facet_grid(group2 ~ ., scales="free_y") + + theme_ArchR() + + scale_color_manual(values = pal) + + scale_fill_manual(values = pal) + + ylab("Binarized SC Coverage") + + scale_x_continuous(limits = c(start(region), end(region)), expand = c(0,0)) + + theme_ArchR(baseSize = baseSize, + baseRectSize = borderWidth, + baseLineSize = tickWidth, + legendPosition = "right", + axisTickCm = 0.1) + + theme(panel.spacing= unit(0, "lines"), + axis.title.x=element_blank(), + axis.text.y=element_blank(), + axis.ticks.y=element_blank(), + strip.text = element_text( + size = facetbaseSize, + color = "black", + margin = margin(0,0.35,0,0.35, "cm")), + strip.text.y = element_text(angle = 0), + strip.background = element_rect(color="black")) + + guides(fill = FALSE, colour = FALSE) + ggtitle(title) + + p + +} + +.regionSCArrows <- function( + ArrowFile = NULL, + region = NULL, + regionTiles = NULL, + tileSize = NULL, + cellNames = NULL, + cellGroups = NULL, + uniqueGroups = NULL, + logFile = NULL + ){ + + cellFragsRegion <- .getFragsFromArrow( + ArrowFile = ArrowFile, + chr = paste0(seqnames(region)), + cellNames = cellNames, + out = "GRanges" + ) %>% subsetByOverlaps(., region, ignore.strand = TRUE) + + #Starts + ts <- match(trunc(start(cellFragsRegion)/tileSize) * tileSize, regionTiles, nomatch = 0) + ids <- which(ts > 0) + + #Ends + te <- match(trunc(start(cellFragsRegion)/tileSize) * tileSize, regionTiles, nomatch = 0) + ide <- which(te > 0) + + #Match + matchID <- S4Vectors::match(mcols(cellFragsRegion)$RG, cellNames) + + #Sparse Matrix + mat <- Matrix::sparseMatrix( + i = c(ts[ids], te[ide]), + j = as.vector(c(matchID[ids], matchID[ide])), + x = rep(1, length(ids) + length(ide)), + dims = c(length(regionTiles), length(cellNames)) + ) + colnames(mat) <- cellNames + + mat@x[mat@x > 1] <- 1 + + return(mat) + +} + + + +#################################### +# Combined Feature Plot +#################################### + +.combinedFeaturePlot <- function( + plotList = NULL, + useMatrix = NULL, + featureMat = NULL, + log2Norm = FALSE, + feature = NULL, + pal = NULL, + sizes = NULL, + baseSize = NULL, + facetbaseSize = NULL, + borderWidth = NULL, + tickWidth = NULL + ){ + + .requirePackage("patchwork", installInfo = "devtools::install_github('thomasp85/patchwork')") + + if(is.null(pal)){ + pal <- paletteDiscrete(values=featureMat$Group, set = "stallion") + } + + if(log2Norm){ + title <- paste0("Log2 ", useMatrix, " : ", feature) + }else{ + title <- paste0("Raw ", useMatrix, " : ", feature) + } + + featurePlot <- ggGroup( + x = featureMat$Group, + y = featureMat[,feature], + groupOrder = gtools::mixedsort(paste0(unique(featureMat$Group))), + pal = pal + ) + + facet_wrap(x~., ncol=1,scales="free_y",strip.position="right") + + guides(fill = FALSE, colour = FALSE) + + theme_ArchR(baseSize = baseSize, + baseRectSize = borderWidth, + baseLineSize = tickWidth, + legendPosition = "right", + axisTickCm = 0.1) + + theme(panel.spacing= unit(0, "lines"), + axis.title.x=element_blank(), + axis.title.y=element_blank(), + axis.text.y=element_blank(), + axis.ticks.y=element_blank(), + strip.text = element_text( + size = facetbaseSize, + color = "black", + margin = margin(0,0.35,0,0.35, "cm")), + strip.text.y = element_text(angle = 0), + strip.background = element_rect(color="black")) + + theme(plot.margin = unit(c(0.35, 0.15, 0.35, 0.15), "cm")) + + ggtitle(title) + + if(any(tolower(names(plotList)) %in% "bulktrack")){ + + idx <- which(tolower(names(plotList)) == "bulktrack") + + p <- plotList[[idx]] + featurePlot + plot_spacer() + + plotList[idx] <- NULL + + for(i in seq_along(plotList)){ + p <- p + plotList[[i]] + plot_spacer() + plot_spacer() + } + + p <- p + plot_layout( + ncol = 3, + widths = c(3, 1, 0.2), + heights = sizes + ) + + }else{ + + + idx <- which(tolower(names(plotList)) == "sctrack") + + p <- plotList[[idx]] + featurePlot + plot_spacer() + + plotList[idx] <- NULL + + for(i in seq_along(plotList)){ + p <- p + plotList[[i]] + plot_spacer() + plot_spacer() + } + + p <- p + plot_layout( + ncol = 3, + widths = c(3, 1, 0.2), + heights = sizes + ) + + } + + p + +} + + + + + + + diff --git a/R/ArrowRead.R b/R/ArrowRead.R index 4fe5bdc1..0fa26ae1 100644 --- a/R/ArrowRead.R +++ b/R/ArrowRead.R @@ -2,6 +2,62 @@ # Reading fragments from Arrow Files #################################################################### +#' Get the fragments from an ArchRProject +#' +#' This function retrieves the fragments from a given ArchRProject as a GRangesList object. +#' +#' @param ArchRProject An `ArchRProject` object to get fragments from. +#' @param subsetBy A Genomic Ranges object to subset fragments by. +#' @param cellNames A character vector indicating the cell names of a subset of cells from which fragments whould be extracted. +#' This allows for extraction of fragments from only a subset of selected cells. By default, this function will extract all cells +#' from the provided ArrowFile using `getCellNames()`. +#' @param verbose A boolean value indicating whether to use verbose output during execution of this function. Can be set to `FALSE` for a cleaner output. +#' @param logFile The path to a file to be used for logging ArchR output. +#' @export +getFragmentsFromProject <- function( + ArchRProj = NULL, + subsetBy = NULL, + cellNames = NULL, + verbose = FALSE, + logFile = createLogFile("getFragmentsFromProject") + ){ + + .validInput(input = ArchRProj, name = "ArchRProj", valid = c("ArchRProj")) + .validInput(input = subsetBy, name = "subsetBy", valid = c("GRanges", "null")) + .validInput(input = cellNames, name = "cellNames", valid = c("character","null")) + .validInput(input = verbose, name = "verbose", valid = c("boolean")) + + ArrowFiles <- getArrowFiles(ArchRProj) + + if(!is.null(subsetBy)){ + chr <- paste0(unique(seqnames(subsetBy))) + }else{ + chr <- NULL + } + + ArchR:::.startLogging(logFile = logFile) + + FragmentsList <- lapply(seq_along(ArrowFiles), function(x){ + message(sprintf("Reading ArrowFile %s of %s", x, length(ArrowFiles))) + fragx <- getFragmentsFromArrow( + ArrowFile = ArrowFiles[x], + chr = chr, + cellNames = cellNames, + verbose = verbose, + logFile = logFile + ) + if(!is.null(subsetBy)){ + fragx <- subsetByOverlaps(fragx, subsetBy, ignore.strand = TRUE) + } + fragx + }) %>% SimpleList + + names(FragmentsList) <- names(ArrowFiles) + + FragmentsList + +} + #' Get the fragments from an ArrowFile #' #' This function retrieves the fragments from a given ArrowFile as a GRanges object. @@ -217,6 +273,10 @@ getMatrixFromProject <- function( cellNames <- ArchRProj$cellNames + avMat <- getAvailableMatrices(ArchRProj) + if(useMatrix %ni% avMat){ + stop("useMatrix is not in Available Matrices see getAvailableMatrices") + } seL <- .safelapply(seq_along(ArrowFiles), function(x){ @@ -268,6 +328,16 @@ getMatrixFromProject <- function( stop("Error with rowData being equal for every sample!") } + #RowRanges + .logDiffTime("Organizing rowRanges", t1 = tstart, verbose = verbose, logFile = logFile) + rR1 <- rowRanges(seL[[1]]) + rR <- lapply(seq_along(seL), function(x){ + identical(rowRanges(seL[[x]]), rR1) + }) %>% unlist %>% all + if(!rR){ + stop("Error with rowRanges being equal for every sample!") + } + #Assays nAssays <- names(assays(seL[[1]])) asy <- lapply(seq_along(nAssays), function(i){ @@ -280,14 +350,18 @@ getMatrixFromProject <- function( names(asy) <- nAssays .logDiffTime("Constructing SummarizedExperiment", t1 = tstart, verbose = verbose, logFile = logFile) - se <- SummarizedExperiment(assays = asy, colData = cD, rowData = rD1) + if(!is.null(rR1)){ + se <- SummarizedExperiment(assays = asy, colData = cD, rowRanges = rR1) + }else{ + se <- SummarizedExperiment(assays = asy, colData = cD, rowData = rD1) + } rm(seL) gc() .logDiffTime("Finished Matrix Creation", t1 = tstart, verbose = verbose, logFile = logFile) se - + } #' Get a data matrix stored in an ArrowFile @@ -687,7 +761,7 @@ getMatrixFromArrow <- function( #Save Temporary Matrix outx <- paste0(tmpPath, "-", .sampleName(ArrowFiles[x]), ".rds") - saveRDS(matx, outx, compress = FALSE) + .safeSaveRDS(matx, outx, compress = FALSE) #Sample Matrix matx <- matx[, which(colnames(matx) %in% sampledCellNames),drop = FALSE] @@ -709,7 +783,8 @@ getMatrixFromArrow <- function( matFiles <- lapply(mat, function(x) x[[2]]) %>% Reduce("c", .) mat <- lapply(mat, function(x) x[[1]]) %>% Reduce("cbind", .) - mat <- mat[,sampledCellNames] + mat <- mat[,sampledCellNames, drop = FALSE] + mat <- .checkSparseMatrix(mat, length(sampledCellNames)) .logDiffTime("Successfully Created Partial Matrix", tstart, verbose = verbose) @@ -718,7 +793,8 @@ getMatrixFromArrow <- function( }else{ mat <- Reduce("cbind", mat) - mat <- mat[,cellNames] + mat <- mat[,cellNames, drop = FALSE] + mat <- .checkSparseMatrix(mat, length(cellNames)) .logDiffTime("Successfully Created Partial Matrix", tstart, verbose = verbose) @@ -729,6 +805,26 @@ getMatrixFromArrow <- function( } +.checkSparseMatrix <- function(x, ncol = NULL){ + isSM <- is(x, 'sparseMatrix') + if(!isSM){ + if(is.null(ncol)){ + stop("ncol must not be NULL if x is not a matrix!") + } + cnames <- tryCatch({ + names(x) + }, error = function(e){ + colnames(x) + }) + if(length(cnames) != ncol){ + stop("cnames != ncol!") + } + x <- Matrix::Matrix(matrix(x, ncol = ncol), sparse=TRUE) + colnames(x) <- cnames + } + x +} + ######################################################################## # Compute Summary Statistics! ######################################################################## @@ -794,22 +890,23 @@ getMatrixFromArrow <- function( ArrowFiles = NULL, seqnames = NULL, useMatrix = NULL, + useLog2 = FALSE, threads = 1 ){ .combineVariances <- function(dfMeans = NULL, dfVars = NULL, ns = NULL){ - #https://rdrr.io/cran/fishmethods/src/R/combinevar.R + #https://rdrr.io/cran/fishmethods/src/R/combinevar.R - if(ncol(dfMeans) != ncol(dfVars) | ncol(dfMeans) != length(ns)){ - stop("Means Variances and Ns lengths not identical") - } + if(ncol(dfMeans) != ncol(dfVars) | ncol(dfMeans) != length(ns)){ + stop("Means Variances and Ns lengths not identical") + } - combinedMeans <- rowSums(t(t(dfMeans) * ns)) / sum(ns) - summedVars <- rowSums(t(t(dfVars) * (ns - 1)) + t(t(dfMeans^2) * ns)) - combinedVars <- (summedVars - sum(ns)*combinedMeans^2)/(sum(ns)-1) + combinedMeans <- rowSums(t(t(dfMeans) * ns)) / sum(ns) + summedVars <- rowSums(t(t(dfVars) * (ns - 1)) + t(t(dfMeans^2) * ns)) + combinedVars <- (summedVars - sum(ns)*combinedMeans^2)/(sum(ns)-1) - data.frame(combinedVars = combinedVars, combinedMeans = combinedMeans) + data.frame(combinedVars = combinedVars, combinedMeans = combinedMeans) } @@ -828,6 +925,8 @@ getMatrixFromArrow <- function( length(.availableCells(ArrowFiles[y], useMatrix)) }) %>% unlist + + #Compute RowVars summaryDF <- .safelapply(seq_along(featureDF), function(x){ @@ -837,11 +936,18 @@ getMatrixFromArrow <- function( varx <- matrix(NA, ncol = length(ArrowFiles), nrow = nrow(featureDF[[x]])) for(y in seq_along(ArrowFiles)){ - meanx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowMeans")) - varx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowVars")) + + if(useLog2){ + meanx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowMeansLog2")) + varx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowVarsLog2")) + }else{ + meanx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowMeans")) + varx[, y] <- h5read(ArrowFiles[y], paste0(useMatrix, "/", seqx, "/rowVars")) + } + } - cbind(featureDF[[x]], DataFrame(.combineVariances(meanx, varx, ns))) + cbind(featureDF[[x]], DataFrame(.combineVariances(meanx, varx, ns))) }, threads = threads) %>% Reduce("rbind", .) diff --git a/R/ArrowUtils.R b/R/ArrowUtils.R index 33eaafe7..7fa584b5 100644 --- a/R/ArrowUtils.R +++ b/R/ArrowUtils.R @@ -473,6 +473,7 @@ cellNames <- paste0(sampleName, "#", .h5read(inArrow, paste0(groupName, "/Info/CellNames"))) featureDF <- .getFeatureDF(ArrowFile = inArrow, subGroup = groupName) + seqOrder <- c("Info", seqOrder[!grepl("Info", seqOrder)]) for(j in seq_along(seqOrder)){ @@ -546,3 +547,6 @@ outArrow } + + + diff --git a/R/Clustering.R b/R/Clustering.R index 6a9f0f40..d0bb4160 100644 --- a/R/Clustering.R +++ b/R/Clustering.R @@ -27,6 +27,8 @@ #' @param knnAssign The number of nearest neighbors to be used during clustering for assignment of outliers (clusters with less than nOutlier cells). #' @param nOutlier The minimum number of cells required for a group of cells to be called as a cluster. If a group of cells does not reach #' this threshold, then the cells will be considered outliers and assigned to nearby clusters. +#' @param maxClusters The maximum number of clusters to be called. If the number exceeds this the clusters are merged unbiasedly using hclust and cutree. +#' This is useful for contraining the cluster calls to be reasonable if they are converging on large numbers. Useful in iterativeLSI as well for initial iteration. Default is set to 25. #' @param testBias A boolean value that indicates whether or not to test clusters for bias. #' @param filterBias A boolean value indicates whether or not to filter clusters that are identified as biased. #' @param biasClusters A numeric value between 0 and 1 indicating that clusters that are smaller than the specified proportion of total cells are @@ -63,6 +65,7 @@ addClusters <- function( corCutOff = 0.75, knnAssign = 10, nOutlier = 5, + maxClusters = 25, testBias = TRUE, filterBias = FALSE, biasClusters = 0.01, @@ -345,6 +348,23 @@ addClusters <- function( } } + ################################################################################# + # Merging if more than maxClusters + ################################################################################# + if(!is.null(maxClusters)){ + if(length(unique(clust)) > maxClusters){ + .logDiffTime(sprintf("Identified more clusters than maxClusters allowed (n = %s). Merging clusters to maxClusters (n = %s).\nIf this is not desired set maxClusters = NULL!", length(clustAssign), maxClusters), tstart, verbose = verbose, logFile = logFile) + meanDR <- t(ArchR:::.groupMeans(t(matDR), clust)) + hc <- hclust(dist(as.matrix(meanDR))) + ct <- cutree(hc, maxClusters) + clust <- mapLabels( + labels = clust, + oldLabels = names(ct), + newLabels = paste0(prefix, ct) + ) + } + } + ################################################################################# # Renaming Clusters based on Proximity in Reduced Dimensions ################################################################################# @@ -352,8 +372,8 @@ addClusters <- function( if(length(unique(clust)) > 1){ - meanSVD <- t(.groupMeans(t(matDR), clust)) - hc <- hclust(dist(as.matrix(meanSVD))) + meanDR <- t(.groupMeans(t(matDR), clust)) + hc <- hclust(dist(as.matrix(meanDR))) out <- mapLabels( labels = clust, oldLabels = hc$labels[hc$order], @@ -489,3 +509,5 @@ addClusters <- function( + + diff --git a/R/CreateArrow.R b/R/CreateArrow.R index ab4f2cdf..10db9ec3 100644 --- a/R/CreateArrow.R +++ b/R/CreateArrow.R @@ -14,18 +14,13 @@ #' to calculate TSS Enrichment Scores etc. #' @param genomeAnnotation The genomeAnnotation (see `createGenomeAnnotation()`) to associate with the ArrowFiles. This is used #' downstream to collect chromosome sizes and nucleotide information etc. -#' @param filterFrags The minimum number of mapped ATAC-seq fragments required per cell to pass filtering for use in downstream analyses. -#' Cells containing greater than or equal to `filterFrags` total fragments wll be retained. -#' @param filterTSS The minimum numeric transcription start site (TSS) enrichment score required for a cell to pass filtering for use -#' in downstream analyses. Cells with a TSS enrichment score greater than or equal to `filterTSS` will be retained. TSS enrichment score +#' @param minTSS The minimum numeric transcription start site (TSS) enrichment score required for a cell to pass filtering for use +#' in downstream analyses. Cells with a TSS enrichment score greater than or equal to `minTSS` will be retained. TSS enrichment score #' is a measurement of signal-to-background in ATAC-seq. -#' @param removeFilteredCells A boolean value that determines whether cells that do not pass `filterFrags` and `filterTSS` should be -#' excluded entirely from the ArrowFiles. If `FALSE` cells that do not pass QC filters will be included in the ArrowFile but will be -#' marked as not passing QC and excluded from downstream analyses. -#' @param minFrags The minimum fragments per cell to be filtered immediately before any QC calculations (such as TSS Enrichment Score). -#' This is useful for limiting the number of barcodes analyzed. -#' @param maxFrags The maximum fragments per cell to be filtered immediately before any QC calculations (such as TSS Enrichment Score). -#' This is useful for limiting the number of barcodes analyzed. +#' @param minFrags The minimum number of mapped ATAC-seq fragments required per cell to pass filtering for use in downstream analyses. +#' Cells containing greater than or equal to `minFrags` total fragments wll be retained. +#' @param maxFrags The maximum number of mapped ATAC-seq fragments required per cell to pass filtering for use in downstream analyses. +#' Cells containing greater than or equal to `maxFrags` total fragments wll be retained. #' @param QCDir The relative path to the output directory for QC-level information and plots for each sample/ArrowFile. #' @param nucLength The length in basepairs that wraps around a nucleosome. This number is used for identifying fragments as #' sub-nucleosome-spanning, mono-nucleosome-spanning, or multi-nucleosome-spanning. @@ -73,10 +68,8 @@ createArrowFiles <- function( validBarcodes = NULL, geneAnnotation = getGeneAnnotation(), genomeAnnotation = getGenomeAnnotation(), - filterFrags = 1000, - filterTSS = 4, - removeFilteredCells = TRUE, - minFrags = 500, + minTSS = 4, + minFrags = 1000, maxFrags = 100000, QCDir = "QualityControl", nucLength = 147, @@ -99,9 +92,35 @@ createArrowFiles <- function( subThreading = TRUE, verbose = TRUE, cleanTmp = TRUE, - logFile = createLogFile("createArrows") + logFile = createLogFile("createArrows"), + filterFrags = NULL, + filterTSS = NULL ){ + ################ + # NEW + ################ + + #We have decided to force removal of filtered cells and thus we have now added messages describing this change + #It is a simple change we just want to create a more consistent experience! + removeFilteredCells <- TRUE + if(!is.null(filterFrags)){ + message("filterFrags is no longer a valid input. Please use minFrags! Setting filterFrags value to minFrags!") + minFrags <- filterFrags + } + + if(!is.null(filterTSS)){ + message("filterTSS is no longer a valid input. Please use minTSS! Setting filterTSS value to minTSS!") + minTSS <- filterTSS + } + + filterTSS <- minTSS + filterFrags <- minFrags + + ################ + # NEW ^ + ################ + .validInput(input = inputFiles, name = "inputFiles", valid = c("character")) if(any(!file.exists(inputFiles))){ stop("inputFiles do not exist :\n\t", paste0(inputFiles[!file.exists(inputFiles)], collapse = "\n\t")) @@ -180,6 +199,8 @@ createArrowFiles <- function( args$threads <- length(inputFiles) } + args$minTSS <- NULL + #Run With Parallel or lapply outArrows <- tryCatch({ unlist(.batchlapply(args)) diff --git a/R/DoubletsScores.R b/R/DoubletsScores.R index c66383ed..c5338195 100644 --- a/R/DoubletsScores.R +++ b/R/DoubletsScores.R @@ -357,7 +357,7 @@ addDoubletScores <- function( doubletResults = simDoubletsSave ) - saveRDS(summaryList, file.path(outDir, paste0(.sampleName(ArrowFile), "-Doublet-Summary.rds"))) + .safeSaveRDS(summaryList, file.path(outDir, paste0(.sampleName(ArrowFile), "-Doublet-Summary.rds"))) rm(simDoubletsSave) ################################## @@ -611,7 +611,7 @@ addDoubletScores <- function( if(mean(corProjection[[2]]) < 0.9){ if(!force){ - msg <- paste0(prefix, "Correlation of UMAP Projection is below 0.9 (normally this is ~0.99)\nThis means there is little heterogeneity in your sample and thus doubletCalling is inaccurate.\nforce = FALSE, thus returning -1 doubletScores and doubletEnrichments!\nSet force = TRUE if you want to contniue (not recommended).") + msg <- paste0(prefix, "Correlation of UMAP Projection is below 0.9 (normally this is ~0.99)\nThis means there is little heterogeneity in your sample and thus doubletCalling is inaccurate.\nforce = FALSE, thus returning -1 doubletScores and doubletEnrichments!\nSet force = TRUE if you want to continue (not recommended).") .logMessage(msg, logFile = logFile) message(msg) out$doubletEnrichLSI <- rep(-1, nrow(LSI$matSVD)) diff --git a/R/Embedding.R b/R/Embedding.R index e031632c..ba59be35 100644 --- a/R/Embedding.R +++ b/R/Embedding.R @@ -126,7 +126,7 @@ addUMAP <- function( uwot_umap <- do.call(uwot::umap, embeddingParams) if(estimateUMAP){ - uwot_umap2 <- uwot::umap_transform(X = saveX, model = uwot_umap, n_threads = threads, verbose = verbose) + uwot_umap2 <- uwot::umap_transform(X = saveX, model = uwot_umap, n_threads = as.integer(threads), verbose = verbose) #We should check the distances knnRef <- as.vector(nabor::knn(data = uwot_umap[[1]], query = uwot_umap[[1]], k = 2)$nn.dists[,-1]) knnProj <- as.vector(nabor::knn(data = uwot_umap[[1]], query = uwot_umap2, k = 1)$nn.dists) @@ -217,7 +217,7 @@ addUMAP <- function( uwot_dir <- file.path(mod_dir, "uwot") dir.create(uwot_dir) model_tmpfname <- file.path(uwot_dir, "model") - saveRDS(model, file = model_tmpfname) + .safeSaveRDS(model, file = model_tmpfname) metrics <- names(model$metric) n_metrics <- length(metrics) for (i in seq_len(n_metrics)) { diff --git a/R/GlobalDefaults.R b/R/GlobalDefaults.R index 28517621..26854c57 100644 --- a/R/GlobalDefaults.R +++ b/R/GlobalDefaults.R @@ -310,7 +310,7 @@ addArchRGenome <- function(genome = NULL, install = TRUE){ .validInput(input = genome, name = "genome", valid = "character") .validInput(input = install, name = "install", valid = c("boolean")) - supportedGenomes <- c("hg19","hg38","mm9","mm10") + supportedGenomes <- c("hg19","hg38","mm9","mm10","hg19test") if(tolower(genome) %ni% supportedGenomes){ @@ -330,6 +330,15 @@ addArchRGenome <- function(genome = NULL, install = TRUE){ stop("BSgenome for hg19 not installed! Please install by setting install = TRUE or by the following:\n\tBiocManager::install(\"BSgenome.Hsapiens.UCSC.hg19\")") } } + }else if(tolower(genome)=="hg19test"){ + if(!requireNamespace("BSgenome.Hsapiens.UCSC.hg19", quietly = TRUE)){ + if(install){ + message("BSgenome for hg19 not installed! Now installing by the following:\n\tBiocManager::install(\"BSgenome.Hsapiens.UCSC.hg19\")") + BiocManager::install("BSgenome.Hsapiens.UCSC.hg19") + }else{ + stop("BSgenome for hg19 not installed! Please install by setting install = TRUE or by the following:\n\tBiocManager::install(\"BSgenome.Hsapiens.UCSC.hg19\")") + } + } }else if(tolower(genome)=="hg38"){ if(!requireNamespace("BSgenome.Hsapiens.UCSC.hg38", quietly = TRUE)){ if(install){ @@ -391,7 +400,7 @@ getArchRGenome <- function( .validInput(input = geneAnnotation, name = "geneAnnotation", valid = "boolean") .validInput(input = genomeAnnotation, name = "genomeAnnotation", valid = "boolean") - supportedGenomes <- c("hg19","hg38","mm9","mm10") + supportedGenomes <- c("hg19","hg38","mm9","mm10","hg19test") .ArchRGenome <- options()[["ArchR.genome"]] if(!is.null(.ArchRGenome)){ diff --git a/R/GroupExport.R b/R/GroupExport.R index c9025f57..b13b5a1e 100644 --- a/R/GroupExport.R +++ b/R/GroupExport.R @@ -330,7 +330,7 @@ getGroupBW <- function( mat <- Matrix::sparseMatrix( i = c(trunc(start(fragik) / tileSize), trunc(end(fragik) / tileSize)) + 1, - j = c(matchID, matchID), + j = as.vector(c(matchID, matchID)), x = rep(1, 2*length(fragik)), dims = c(nTiles, length(cellGroupi)) ) @@ -345,10 +345,13 @@ getGroupBW <- function( tilesk$reads <- mat - if(tolower(normMethod) %in% c("ReadsInTSS", "ReadsInPromoter", "nFrags")){ + if(tolower(normMethod) %in% c("readsintss", "readsinpromoter", "nfrags")){ tilesk$reads <- tilesk$reads * 10^4 / sum(normBy[cellGroupi, 1]) - }else if(tolower(normMethod) %in% c("nCells")){ + }else if(tolower(normMethod) %in% c("ncells")){ tilesk$reads <- tilesk$reads / length(cellGroupi) + }else if(tolower(normMethod) %in% c("none")){ + }else{ + stop("NormMethod not recognized!") } } @@ -370,4 +373,3 @@ getGroupBW <- function( } - diff --git a/R/HiddenUtils.R b/R/HiddenUtils.R index 17d25477..4ef6980e 100644 --- a/R/HiddenUtils.R +++ b/R/HiddenUtils.R @@ -36,6 +36,38 @@ } } +########################################################################################## +# Safe saveRDS check +########################################################################################## + +.safeSaveRDS <- function( + object = NULL, + file = "", + ascii = FALSE, + version = NULL, + compress = TRUE, + refhook = NULL + ){ + #Try to save a test data.frame in location + testDF <- data.frame(a=1,b=2) + canSave <- suppressWarnings(tryCatch({ + saveRDS(object = testDF, file = file, ascii = ascii, version = version, compress = compress, refhook = refhook) + TRUE + }, error = function(x){ + FALSE + })) + if(!canSave){ + dirExists <- dir.exists(dirname(file)) + if(dirExists){ + stop("Cannot saveRDS. File Path : ", file) + }else{ + stop("Cannot saveRDS because directory does not exist (",dirname(file),"). File Path : ", file) + } + }else{ + saveRDS(object = object, file = file, ascii = ascii, version = version, compress = compress, refhook = refhook) + } +} + ########################################################################################## # Stat/Summary Methods ########################################################################################## diff --git a/R/InputData.R b/R/InputData.R index c932ea32..178572e8 100644 --- a/R/InputData.R +++ b/R/InputData.R @@ -52,6 +52,40 @@ getTutorialData <- function( } +#' Get PBMC Small Test Fragments +#' +#' This function will download fragments for a small PBMC test dataset (2k Cells) spanning chr1 and 2 (~20MB). +#' +#' @export +getTestFragments <- function(x){ + if(!file.exists("PBMCSmall.tsv.gz")){ + download.file( + url = "https://jeffgranja.s3.amazonaws.com/ArchR/TestData/PBMCSmall.tsv.gz", + destfile = "PBMCSmall.tsv.gz" + ) + } + addArchRGenome("hg19test") + c("PBMC" = "PBMCSmall.tsv.gz") +} + +#' Get PBMC Small Test Project +#' +#' This function will download an ArchRProject for a small PBMC test dataset (2k Cells) spanning chr1 and 2 (~2-300MB). +#' +#' @export +getTestProject <- function(){ + if(!dir.exists("PBMCSmall")){ + download.file( + url = "https://jeffgranja.s3.amazonaws.com/ArchR/TestData/PBMCSmall.zip", + destfile = "PBMCSmall.zip" + ) + unzip("PBMCSmall.zip", exdir = getwd()) + file.remove("PBMCSmall.zip") + } + addArchRGenome("hg19test") + loadArchRProject("PBMCSmall") +} + #' Get Input Files from paths to create arrows #' #' This function will look for fragment files and bam files in the input paths and return the full path and sample names. diff --git a/R/IntegrativeAnalysis.R b/R/IntegrativeAnalysis.R index 69425cca..cab09904 100644 --- a/R/IntegrativeAnalysis.R +++ b/R/IntegrativeAnalysis.R @@ -113,7 +113,7 @@ correlateMatrices <- function( featureDF2 <- .checkSeqnames(featureDF2, useMatrix2, useSeqnames2, matrixClass2, logFile) #Create Match Names - featureDF1$matchName <- featureDF1$name + featureDF1$matchName <- toupper(featureDF1$name) if("underscore" %in% tolower(removeFromName1)){ featureDF1$matchName <- gsub("\\_.*","",featureDF1$matchName) } @@ -127,7 +127,7 @@ correlateMatrices <- function( featureDF1$matchName <- gsub("\\..*","",featureDF1$matchName) } - featureDF2$matchName <- featureDF2$name + featureDF2$matchName <- toupper(featureDF2$name) if("underscore" %in% tolower(removeFromName2)){ featureDF2$matchName <- gsub("\\_.*","",featureDF2$matchName) } @@ -768,7 +768,9 @@ addCoAccessibility <- function( o$seqnames <- seqnames(peakSet)[o[,1]] o$idx1 <- peakSet$idx[o[,1]] o$idx2 <- peakSet$idx[o[,2]] - o$correlation <- -999 + o$correlation <- -999.999 + o$Variability1 <- 0.000 + o$Variability2 <- 0.000 #Peak Matrix ColSums cS <- .getColSums(getArrowFiles(ArchRProj), chri, verbose = FALSE, useMatrix = "PeakMatrix") @@ -804,7 +806,11 @@ addCoAccessibility <- function( corVals <- rowCorCpp(idxX = o[idx,]$idx1, idxY = o[idx,]$idx2, X = as.matrix(groupMat), Y = as.matrix(groupMat)) .logThis(head(corVals), paste0("SubsetCorVals-", x), logFile = logFile) + rowVars <- as.numeric(matrixStats::rowVars(groupMat)) + o[idx,]$correlation <- as.numeric(corVals) + o[idx,]$Variability1 <- rowVars[o[idx,]$idx1] + o[idx,]$Variability2 <- rowVars[o[idx,]$idx2] .logThis(groupMat, paste0("SubsetGroupMat-", x), logFile = logFile) .logThis(o[idx,], paste0("SubsetCoA-", x), logFile = logFile) @@ -814,6 +820,13 @@ addCoAccessibility <- function( o$idx1 <- NULL o$idx2 <- NULL o <- o[!is.na(o$correlation),] + + o$TStat <- (o$correlation / sqrt((max(1-o$correlation^2, 0.00000000000000001))/(length(knnObj)-2))) #T-statistic P-value + o$Pval <- 2*pt(-abs(o$TStat), length(knnObj) - 2) + o$FDR <- p.adjust(o$Pval, method = "fdr") + o$VarQuantile1 <- .getQuantiles(o$Variability1) + o$VarQuantile2 <- .getQuantiles(o$Variability2) + mcols(peakSet) <- NULL o@metadata$peakSet <- peakSet @@ -877,6 +890,8 @@ getCoAccessibility <- function( start = summitTiles[coA[,1]], end = summitTiles[coA[,2]] ) + metadata(coA) <- list() + mcols(loops) <- coA[,-c(1:3)] mcols(loops)$value <- coA$correlation loops <- loops[order(mcols(loops)$value, decreasing=TRUE)] @@ -938,6 +953,7 @@ getCoAccessibility <- function( #' `reducedDims` were originally created during dimensionality reduction. This idea was introduced by Timothy Stuart. #' @param corCutOff A numeric cutoff for the correlation of each dimension to the sequencing depth. If the dimension has a #' correlation to sequencing depth that is greater than the `corCutOff`, it will be excluded from analysis. +#' @param cellsToUse A character vector of cellNames to compute coAccessibility on if desired to run on a subset of the total cells. #' @param k The number of k-nearest neighbors to use for creating single-cell groups for correlation analyses. #' @param knnIteration The number of k-nearest neighbor groupings to test for passing the supplied `overlapCutoff`. #' @param overlapCutoff The maximum allowable overlap between the current group and all previous groups to permit the current @@ -947,6 +963,7 @@ getCoAccessibility <- function( #' from the `peakSet` of the `ArchRProject` and normalized to the total depth provided by `scaleTo`. #' @param log2Norm A boolean value indicating whether to log2 transform the single-cell groups prior to computing co-accessibility correlations. #' @param predictionCutoff A numeric describing the cutoff for RNA integration to use when picking cells for groupings. +#' @param addEmpiricalPval Add empirical p-values based on randomly correlating peaks and genes not on the same seqname. #' @param seed A number to be used as the seed for random number generation required in knn determination. It is recommended #' to keep track of the seed used so that you can reproduce results downstream. #' @param threads The number of threads to be used for parallel computing. @@ -960,6 +977,7 @@ addPeak2GeneLinks <- function( dimsToUse = 1:30, scaleDims = NULL, corCutOff = 0.75, + cellsToUse = NULL, k = 100, knnIteration = 500, overlapCutoff = 0.8, @@ -967,6 +985,7 @@ addPeak2GeneLinks <- function( scaleTo = 10^4, log2Norm = TRUE, predictionCutoff = 0.4, + addEmpiricalPval = FALSE, seed = 1, threads = max(floor(getArchRThreads() / 2), 1), verbose = TRUE, @@ -978,6 +997,7 @@ addPeak2GeneLinks <- function( .validInput(input = dimsToUse, name = "dimsToUse", valid = c("numeric", "null")) .validInput(input = scaleDims, name = "scaleDims", valid = c("boolean", "null")) .validInput(input = corCutOff, name = "corCutOff", valid = c("numeric", "null")) + .validInput(input = cellsToUse, name = "cellsToUse", valid = c("character", "null")) .validInput(input = k, name = "k", valid = c("integer")) .validInput(input = knnIteration, name = "knnIteration", valid = c("integer")) .validInput(input = overlapCutoff, name = "overlapCutoff", valid = c("numeric")) @@ -1037,6 +1057,9 @@ addPeak2GeneLinks <- function( #Get Reduced Dims rD <- getReducedDims(ArchRProj, reducedDims = reducedDims, corCutOff = corCutOff, dimsToUse = dimsToUse) + if(!is.null(cellsToUse)){ + rD <- rD[cellsToUse, ,drop=FALSE] + } #Subsample idx <- sample(seq_len(nrow(rD)), knnIteration, replace = !nrow(rD) >= knnIteration) @@ -1079,6 +1102,7 @@ addPeak2GeneLinks <- function( threads = threads, verbose = FALSE ) + rawMatRNA <- groupMatRNA .logThis(groupMatRNA, "groupMatRNA", logFile = logFile) #Group Matrix ATAC @@ -1091,6 +1115,7 @@ addPeak2GeneLinks <- function( threads = threads, verbose = FALSE ) + rawMatATAC <- groupMatATAC .logThis(groupMatATAC, "groupMatATAC", logFile = logFile) .logDiffTime(main="Normalizing Group Matrices", t1=tstart, verbose=verbose, logFile=logFile) @@ -1106,7 +1131,7 @@ addPeak2GeneLinks <- function( names(geneStart) <- NULL seRNA <- SummarizedExperiment( - assays = SimpleList(RNA = groupMatRNA), + assays = SimpleList(RNA = groupMatRNA, RawRNA = rawMatRNA), rowRanges = geneStart ) metadata(seRNA)$KNNList <- knnObj @@ -1115,7 +1140,7 @@ addPeak2GeneLinks <- function( names(peakSet) <- NULL seATAC <- SummarizedExperiment( - assays = SimpleList(ATAC = groupMatATAC), + assays = SimpleList(ATAC = groupMatATAC, RawATAC = rawMatATAC), rowRanges = peakSet ) metadata(seATAC)$KNNList <- knnObj @@ -1139,32 +1164,36 @@ addPeak2GeneLinks <- function( colnames(o) <- c("B", "A", "distance") #Null Correlations - #.logDiffTime(main="Computing Background Correlations", t1=tstart, verbose=verbose, logFile=logFile) - #nullCor <- .getNullCorrelations(seATAC, seRNA, o, 1000) + if(addEmpiricalPval){ + .logDiffTime(main="Computing Background Correlations", t1=tstart, verbose=verbose, logFile=logFile) + nullCor <- .getNullCorrelations(seATAC, seRNA, o, 1000) + } .logDiffTime(main="Computing Correlations", t1=tstart, verbose=verbose, logFile=logFile) o$Correlation <- rowCorCpp(as.integer(o$A), as.integer(o$B), assay(seATAC), assay(seRNA)) o$VarAssayA <- .getQuantiles(matrixStats::rowVars(assay(seATAC)))[o$A] o$VarAssayB <- .getQuantiles(matrixStats::rowVars(assay(seRNA)))[o$B] - o$TStat <- (o$Correlation / sqrt((1-o$Correlation^2)/(ncol(seATAC)-2))) #T-statistic P-value + o$TStat <- (o$correlation / sqrt((max(1-o$Correlation^2, 0.00000000000000001))/(ncol(seATAC)-2))) #T-statistic P-value o$Pval <- 2*pt(-abs(o$TStat), ncol(seATAC) - 2) o$FDR <- p.adjust(o$Pval, method = "fdr") - #o$EmpPval <- 2*pnorm(-abs(((o$Correlation - mean(nullCor[[2]])) / sd(nullCor[[2]])))) - #o$EmpFDR <- p.adjust(o$EmpPval, method = "fdr") - out <- o[, c("A", "B", "Correlation", "FDR", "VarAssayA", "VarAssayB")] - colnames(out) <- c("idxATAC", "idxRNA", "Correlation", "FDR", "VarQATAC", "VarQRNA") + colnames(out) <- c("idxATAC", "idxRNA", "Correlation", "FDR", "VarQATAC", "VarQRNA") mcols(peakSet) <- NULL names(peakSet) <- NULL metadata(out)$peakSet <- peakSet metadata(out)$geneSet <- geneStart + if(addEmpiricalPval){ + out$EmpPval <- 2*pnorm(-abs(((out$Correlation - mean(nullCor[[2]])) / sd(nullCor[[2]])))) + out$EmpFDR <- p.adjust(out$EmpPval, method = "fdr") + } + #Save Group Matrices dir.create(file.path(getOutputDirectory(ArchRProj), "Peak2GeneLinks"), showWarnings = FALSE) outATAC <- file.path(getOutputDirectory(ArchRProj), "Peak2GeneLinks", "seATAC-Group-KNN.rds") - saveRDS(seATAC, outATAC, compress = FALSE) + .safeSaveRDS(seATAC, outATAC, compress = FALSE) outRNA <- file.path(getOutputDirectory(ArchRProj), "Peak2GeneLinks", "seRNA-Group-KNN.rds") - saveRDS(seRNA, outRNA, compress = FALSE) + .safeSaveRDS(seRNA, outRNA, compress = FALSE) metadata(out)$seATAC <- outATAC metadata(out)$seRNA <- outRNA @@ -1177,52 +1206,52 @@ addPeak2GeneLinks <- function( } -# .getNullCorrelations <- function(seA, seB, o, n){ +.getNullCorrelations <- function(seA, seB, o, n){ -# o$seq <- seqnames(seA)[o$A] + o$seq <- seqnames(seA)[o$A] -# nullCor <- lapply(seq_along(unique(o$seq)), function(i){ + nullCor <- lapply(seq_along(unique(o$seq)), function(i){ -# #Get chr from olist -# chri <- unique(o$seq)[i] -# #message(chri, " ", appendLF = FALSE) + #Get chr from olist + chri <- unique(o$seq)[i] + #message(chri, " ", appendLF = FALSE) -# #Randomly get n seA -# id <- which(as.character(seqnames(seA)) != chri) -# if(length(id) > n){ -# transAidx <- sample(id, n) -# }else{ -# transAidx <- id -# } + #Randomly get n seA + id <- which(as.character(seqnames(seA)) != chri) + if(length(id) > n){ + transAidx <- sample(id, n) + }else{ + transAidx <- id + } -# #Calculate Correlations -# grid <- expand.grid(transAidx, unique(o[o$seq==chri,]$B)) + #Calculate Correlations + grid <- expand.grid(transAidx, unique(o[o$seq==chri,]$B)) -# idxA <- unique(grid[,1]) -# idxB <- unique(grid[,2]) + idxA <- unique(grid[,1]) + idxB <- unique(grid[,2]) -# seSubA <- seA[idxA] -# seSubB <- seB[idxB] + seSubA <- seA[idxA] + seSubB <- seB[idxB] -# grid[,3] <- match(grid[,1], idxA) -# grid[,4] <- match(grid[,2], idxB) + grid[,3] <- match(grid[,1], idxA) + grid[,4] <- match(grid[,2], idxB) -# colnames(grid) <- c("A", "B") -# out <- rowCorCpp(grid[,3], grid[,4], assay(seSubA), assay(seSubB)) -# out <- na.omit(out) + colnames(grid) <- c("A", "B") + out <- rowCorCpp(grid[,3], grid[,4], assay(seSubA), assay(seSubB)) + out <- na.omit(out) -# return(out) + return(out) -# }) %>% SimpleList -# #message("") + }) %>% SimpleList + #message("") -# summaryDF <- lapply(nullCor, function(x){ -# data.frame(mean = mean(x), sd = sd(x), median = median(x), n = length(x)) -# }) %>% Reduce("rbind",.) + summaryDF <- lapply(nullCor, function(x){ + data.frame(mean = mean(x), sd = sd(x), median = median(x), n = length(x)) + }) %>% Reduce("rbind",.) -# return(list(summaryDF, unlist(nullCor))) + return(list(summaryDF, unlist(nullCor))) -# } +} #' Get the peak-to-gene links from an ArchRProject #' @@ -1496,6 +1525,15 @@ plotPeak2GeneHeatmap <- function( } + #Log Info + .logThis(colorMap, "colorMap", logFile = logFile) + .logThis(colOrder, "colOrder", logFile = logFile) + .logThis(kDF, "kDF", logFile = logFile) + .logThis(mATAC, "mATAC", logFile = logFile) + .logThis(mRNA, "mRNA", logFile = logFile) + .logThis(cD[colOrder,,drop=FALSE], "cD", logFile = logFile) + .logThis(mATAC[kDF[,2],colOrder], "mATAC2", logFile = logFile) + .logThis(mRNA[kDF[,2],colOrder], "mRNA2", logFile = logFile) ######################################### # Plot Heatmaps diff --git a/R/IterativeLSI.R b/R/IterativeLSI.R index a641254a..97f1dcac 100644 --- a/R/IterativeLSI.R +++ b/R/IterativeLSI.R @@ -13,7 +13,11 @@ #' @param iterations The number of LSI iterations to perform. #' @param clusterParams A list of Additional parameters to be passed to `addClusters()` for clustering within each iteration. #' These params can be constant across each iteration, or specified for each iteration individually. Thus each param must be of -#' length == 1 or the total number of `iterations` - 1. +#' length == 1 or the total number of `iterations` - 1. PLEASE NOTE - We have updated these params to `resolution=2` and `maxClusters=6`! To use previous settings use `resolution=0.2` and `maxClusters=NULL`. +#' @param firstSelection First iteration selection method for features to use for LSI. Either "Top" for the top accessible/average or "Var" for the top variable features. +#' "Top" should be used for all scATAC-seq data (binary) while "Var" should be used for all scRNA/other-seq data types (non-binary). +#' @param depthCol A column in the `ArchRProject` that represents the coverage (scATAC = unique fragments, scRNA = unique molecular identifiers) per cell. +#' These values are used to minimize the related biases in the reduction related. For scATAC we recommend "nFrags" and for scRNA we recommend "Gex_nUMI". #' @param varFeatures The number of N variable features to use for LSI. The top N features will be used based on the `selectionMethod`. #' @param dimsToUse A vector containing the dimensions from the `reducedDims` object to use in clustering. #' @param LSIMethod A number or string indicating the order of operations in the TF-IDF normalization. @@ -64,10 +68,13 @@ addIterativeLSI <- function( name = "IterativeLSI", iterations = 2, clusterParams = list( - resolution = c(0.2), + resolution = c(2), sampleCells = 10000, + maxClusters = 6, n.start = 10 ), + firstSelection = "top", + depthCol = "nFrags", varFeatures = 25000, dimsToUse = 1:30, LSIMethod = 2, @@ -171,7 +178,6 @@ addIterativeLSI <- function( ArrowFiles <- getSampleColData(ArchRProj)[,"ArrowFiles"] #Check if Matrix is supported and check type - stopifnot(any(tolower(useMatrix) %in% c("tilematrix","peakmatrix"))) if(tolower(useMatrix) == "tilematrix"){ useMatrix <- "TileMatrix" tileSizes <- lapply(ArrowFiles, function(x){ @@ -181,10 +187,19 @@ addIterativeLSI <- function( stop("Error not all TileMatrices are the same tileSize!") } tileSize <- unique(tileSizes) - } - if(tolower(useMatrix) == "peakmatrix"){ + }else if(tolower(useMatrix) == "peakmatrix"){ useMatrix <- "PeakMatrix" tileSize <- NA + }else{ + tileSize <- NA + } + + units <- unique(unlist(lapply(ArrowFiles, function(x) h5read(x, paste0(useMatrix, "/Info/Units"))))) + if(length(units) != 1){ + stop("Units of matrices are not identical!") + } + if(grepl("log",units,ignore.case=TRUE)){ + stop("Cannot use log transformed values for iterativeLSI!") } tstart <- Sys.time() @@ -192,18 +207,79 @@ addIterativeLSI <- function( # Organize Information for LSI ############################################################################################################################ chrToRun <- .availableSeqnames(ArrowFiles, subGroup = useMatrix) - #Compute Row Sums Across All Samples - .logDiffTime("Computing Total Accessibility Across All Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) - if(useMatrix == "TileMatrix"){ - totalAcc <- .getRowSums(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, addInfo = FALSE) - totalAcc$start <- (totalAcc$idx - 1) * tileSize + + if(tolower(firstSelection) == "top"){ + + if(!binarize){ + stop("Please binarize data if using top selection for first iteration! Set binarize = TRUE!") + } + + #Compute Row Sums Across All Samples + .logDiffTime("Computing Total Across All Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) + if(useMatrix == "TileMatrix"){ + totalAcc <- .getRowSums(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, addInfo = FALSE) + totalAcc$start <- (totalAcc$idx - 1) * tileSize + }else{ + totalAcc <- .getRowSums(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, addInfo = TRUE) + } + + #Filter Chromosomes + if(length(excludeChr) > 0){ + totalAcc <- totalAcc[BiocGenerics::which(totalAcc$seqnames %bcni% excludeChr), , drop = FALSE] + } + + #Identify the top features to be used here + .logDiffTime("Computing Top Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) + nFeature <- varFeatures[1] + rmTop <- floor((1-filterQuantile) * totalFeatures) + topIdx <- head(order(totalAcc$rowSums, decreasing=TRUE), nFeature + rmTop)[-seq_len(rmTop)] + topFeatures <- totalAcc[sort(topIdx),] + + gc() + + }else if(tolower(firstSelection) %in% c("var", "variable")){ + + if(binarize){ + stop("Please do not binarize data if using variable selection for first iteration! Set binarize = FALSE!") + } + + if(units %in% "BinarizedCounts"){ + stop("Cannot do variable selection with BinarizedCounts. Set firstSelection = Top!") + } + + #Compute Row Sums Across All Samples + .logDiffTime("Computing Variability Across All Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) + if(useMatrix == "TileMatrix"){ + totalAcc <- .getRowVars(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, useLog2 = TRUE) + totalAcc$start <- (totalAcc$idx - 1) * tileSize + }else{ + totalAcc <- .getRowVars(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, useLog2 = TRUE) + } + + #Filter Chromosomes + if(length(excludeChr) > 0){ + totalAcc <- totalAcc[BiocGenerics::which(totalAcc$seqnames %bcni% excludeChr), , drop = FALSE] + } + + #Identify the top features to be used here + .logDiffTime("Computing Variable Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) + nFeature <- varFeatures[1] + if(nFeature > 0.5 * nrow(totalAcc)){ + stop("nFeature for variable selection must be at leat 1/2 the total features!") + } + topIdx <- head(order(totalAcc$combinedVars, decreasing=TRUE), nFeature) + topFeatures <- totalAcc[sort(topIdx),] + + gc() + }else{ - totalAcc <- .getRowSums(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun, addInfo = TRUE) + + stop("firstSelect method must be Top or Var/Variable!") + } - gc() cellDepth <- tryCatch({ - df <- getCellColData(ArchRProj = ArchRProj, select = "nFrags") + df <- getCellColData(ArchRProj = ArchRProj, select = depthCol) v <- df[,1] names(v) <- rownames(df) v @@ -211,24 +287,12 @@ addIterativeLSI <- function( tryCatch({ .getColSums(ArrowFiles = ArrowFiles, useMatrix = useMatrix, seqnames = chrToRun) }, error = function(y){ - stop("Could not determine depth from nFrags or colSums!") + stop("Could not determine depth from depthCol or colSums!") }) } ) cellDepth <- log10(cellDepth + 1) - #Filter Chromosomes - if(length(excludeChr) > 0){ - totalAcc <- totalAcc[BiocGenerics::which(totalAcc$seqnames %bcni% excludeChr), , drop = FALSE] - } - - #Identify the top features to be used here - .logDiffTime("Computing Top Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) - nFeature <- varFeatures[1] - rmTop <- floor((1-filterQuantile) * totalFeatures) - topIdx <- head(order(totalAcc$rowSums, decreasing=TRUE), nFeature + rmTop)[-seq_len(rmTop)] - topFeatures <- totalAcc[sort(topIdx),] - ############################################################################################################################ # LSI Iteration 1 ############################################################################################################################ @@ -263,6 +327,7 @@ addIterativeLSI <- function( projectAll = j == iterations | projectCellsPre | sampleJ > sampleCellsPre, threads = threads, useIndex = FALSE, + seed = seed, tstart = tstart, verbose = verbose, logFile = logFile @@ -334,6 +399,7 @@ addIterativeLSI <- function( scaleTo = scaleTo, totalAcc = totalAcc, totalFeatures = totalFeatures, + firstSelection = firstSelection, selectionMethod = selectionMethod, varFeatures = varFeatures, tstart = tstart, @@ -375,6 +441,7 @@ addIterativeLSI <- function( projectAll = j == iterations | projectCellsPre | sampleJ > sampleCellsPre, threads = threads, useIndex = FALSE, + seed = seed, tstart = tstart, verbose = verbose, logFile = logFile @@ -450,6 +517,7 @@ addIterativeLSI <- function( sampleCells = 5000, projectAll = TRUE, threads = 1, + seed = 1, useIndex = FALSE, tstart = NULL, verbose = TRUE, @@ -489,6 +557,7 @@ addIterativeLSI <- function( binarize = binarize, outlierQuantiles = outlierQuantiles, verbose = FALSE, + seed = seed, tstart = tstart, logFile = logFile ) @@ -534,6 +603,7 @@ addIterativeLSI <- function( nDimensions = max(dimsToUse), binarize = binarize, outlierQuantiles = outlierQuantiles, + seed = seed, tstart = tstart, logFile = logFile ) @@ -571,6 +641,7 @@ addIterativeLSI <- function( nDimensions = max(dimsToUse), binarize = binarize, outlierQuantiles = outlierQuantiles, + seed = seed, tstart = tstart, logFile = logFile ) @@ -767,7 +838,7 @@ addIterativeLSI <- function( #Save results outj <- SimpleList(LSI = outLSI, clusters = clusters, uwotUmap = uwotUmap) - saveRDS(outj, file.path(outDir, paste0("Save-LSI-Iteration-",j,".rds"))) + .safeSaveRDS(outj, file.path(outDir, paste0("Save-LSI-Iteration-",j,".rds"))) rm(UMAPParams, uwotUmap) gc() @@ -871,6 +942,7 @@ addIterativeLSI <- function( useMatrix = NULL, totalAcc = NULL, scaleTo = NULL, + firstSelection = NULL, totalFeatures = NULL, selectionMethod = NULL, varFeatures = NULL, @@ -911,7 +983,13 @@ addIterativeLSI <- function( .logDiffTime("Creating Cluster Matrix on the total Group Features", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) groupList <- SimpleList(split(clusterDF$cellNames, clusterDF$clusters)) - groupFeatures <- totalAcc[sort(head(order(totalAcc$rowSums, decreasing = TRUE), totalFeatures)),] + + if(tolower(firstSelection) == "top"){ + groupFeatures <- totalAcc[sort(head(order(totalAcc$rowSums, decreasing = TRUE), totalFeatures)),] + }else if(tolower(firstSelection) %in% c("var", "variable")){ + groupFeatures <- totalAcc + } + groupMat <- .getGroupMatrix( ArrowFiles = ArrowFiles, featureDF = groupFeatures, @@ -1016,7 +1094,7 @@ addIterativeLSI <- function( idxOutlier <- which(colSm <= qCS[1] | colSm >= qCS[2]) if(length(idxOutlier) > 0){ .logDiffTime("Filtering Outliers Based On Counts", tstart, addHeader = FALSE, verbose = verbose, logFile = logFile) - #saveRDS(mat, "temp.rds", compress = FALSE) + #.safeSaveRDS(mat, "temp.rds", compress = FALSE) matO <- mat[, idxOutlier, drop = FALSE] mat <- mat[, -idxOutlier, drop = FALSE] mat2 <- mat[, head(seq_len(ncol(mat)), 10), drop = FALSE] # A 2nd Matrix to Check Projection is Working @@ -1295,11 +1373,3 @@ addIterativeLSI <- function( } - - - - - - - - diff --git a/R/LoggerUtils.R b/R/LoggerUtils.R index 4df2e5b3..f704cf94 100644 --- a/R/LoggerUtils.R +++ b/R/LoggerUtils.R @@ -319,7 +319,7 @@ createLogFile <- function( if(!is.null(errorList)){ tryCatch({ - #saveRDS(errorList, "Save-Error.rds") + #.safeSaveRDS(errorList, "Save-Error.rds") .logThis(errorList, name = "errorList", logFile) }, error = function(e){ cat("Error recording errorList", file = logFile, append = TRUE) @@ -336,7 +336,7 @@ createLogFile <- function( if(!is.null(errorList)){ debugFile <- paste0(gsub("\\.log", "", logFile), "-debug.rds") cat(sprintf("\n%s : ArchRDebugging is set to TRUE, DebugFile = %s\n", Sys.time(), debugFile)) - saveRDS(errorList, debugFile) + .safeSaveRDS(errorList, debugFile) } } diff --git a/R/MarkerFeatures.R b/R/MarkerFeatures.R index c6e9a38e..0cf5bf56 100644 --- a/R/MarkerFeatures.R +++ b/R/MarkerFeatures.R @@ -126,6 +126,8 @@ getMarkerFeatures <- function( featureDF <- .getFeatureDF(head(ArrowFiles, 2), useMatrix) matrixClass <- as.character(h5read(getArrowFiles(ArchRProj)[1], paste0(useMatrix, "/Info/Class"))) + .logThis(range(as.vector(table(paste0(featureDF$seqnames)))), "FeaturesPerSeqnames", logFile = logFile) + isDeviations <- FALSE if(all(unique(paste0(featureDF$seqnames)) %in% c("z", "dev"))){ isDeviations <- TRUE @@ -182,6 +184,7 @@ getMarkerFeatures <- function( bias = bias, k = k, n = maxCells, + bufferRatio = bufferRatio, logFile = logFile ) @@ -328,10 +331,18 @@ getMarkerFeatures <- function( rownames(featureDF) <- paste0("f", seq_len(nrow(featureDF))) seqnames <- unique(featureDF$seqnames) + .logThis(cellsx, paste0(group, "_cellsx"), logFile = logFile) + .logThis(bgdx, paste0(group, "_bgdx"), logFile = logFile) + pairwiseDF <- lapply(seq_along(seqnames), function(y){ + .logMessage(sprintf("Pairwise Test %s : Seqnames %s", group, seqnames[y]), logFile = logFile) featureDFy <- featureDF[BiocGenerics::which(featureDF$seqnames %bcin% seqnames[y]), ] + if(length(c(cellsx, bgdx)) == 0){ + stop(paste0("Cells in foreground and background are 0 for group = ", group)) + } + scMaty <- suppressMessages(.getPartialMatrix( ArrowFiles, featureDF = featureDFy, @@ -340,6 +351,8 @@ getMarkerFeatures <- function( cellNames = c(cellsx, bgdx), progress = FALSE )) + scMaty <- .checkSparseMatrix(scMaty, length(c(cellsx, bgdx))) + .logThis(scMaty, paste0(group, "_", seqnames[y], "_scMaty"), logFile = logFile) rownames(scMaty) <- rownames(featureDFy) if(binarize){ @@ -620,6 +633,14 @@ getMarkerFeatures <- function( } idF <- which(groups == groupx) + + if(all(length(idF) * bgdProbx < 1)){ + if(length(idF) < length(bgdProbx)){ + bgdProbx <- bgdProbx[sample(names(bgdProbx), floor(length(idF) * bufferRatio))] + bgdProbx[1:length(bgdProbx)] <- rep(1/length(bgdProbx), length(bgdProbx)) + } + } + idB <- which(groups %in% names(bgdProbx)) if(k > length(idB)){ @@ -715,8 +736,8 @@ getMarkerFeatures <- function( ##################### # Matching Stats Bias Norm Values ##################### - forBias <- .summarizeColStats(inputNorm[idX,], name = "foreground") - bgdBias <- .summarizeColStats(inputNorm[idY,], name = "background") + forBias <- .summarizeColStats(inputNorm[idX,,drop=FALSE], name = "foreground") + bgdBias <- .summarizeColStats(inputNorm[idY,,drop=FALSE], name = "background") out <- list( cells = idX, @@ -725,7 +746,7 @@ getMarkerFeatures <- function( summaryBgd = bgdBias, bgdGroups = rbind(estbgd, obsbgd), bgdGroupsProbs = rbind(estbgdP, obsbgdP), - corbgdGroups = cor(estbgdP, obsbgdP), + corbgdGroups = suppressWarnings(cor(estbgdP, obsbgdP)), n = length(sx), p = it / length(sx), group = groupx, @@ -806,8 +827,8 @@ plotMarkerHeatmap <- function( binaryClusterRows = TRUE, clusterCols = TRUE, labelMarkers = NULL, - nLabel = NULL, - nPrint = 20, + nLabel = 15, + nPrint = 15, labelRows = FALSE, returnMatrix = FALSE, transpose = FALSE, @@ -850,6 +871,13 @@ plotMarkerHeatmap <- function( .logThis(passMat, "passMat", logFile = logFile) #Now Get Values + if(ncol(seMarker) <= 2){ + if(!plotLog2FC){ + stop("Must use plotLog2FC = TRUE when ncol(seMarker) <= 2!") + } + } + + #Get Matrix if(plotLog2FC){ mat <- as.matrix(SummarizedExperiment::assays(seMarker)[["Log2FC"]]) }else{ @@ -865,7 +893,11 @@ plotMarkerHeatmap <- function( mat[mat < min(limits)] <- min(limits) .logThis(mat, "mat", logFile = logFile) - idx <- which(rowSums(passMat, na.rm = TRUE) > 0 & matrixStats::rowVars(mat) != 0 & !is.na(matrixStats::rowVars(mat))) + if(ncol(mat) == 1){ + idx <- which(rowSums(passMat, na.rm = TRUE) > 0) + }else{ + idx <- which(rowSums(passMat, na.rm = TRUE) > 0 & matrixStats::rowVars(mat) != 0 & !is.na(matrixStats::rowVars(mat))) + } mat <- mat[idx,,drop=FALSE] passMat <- passMat[idx,,drop=FALSE] @@ -897,9 +929,9 @@ plotMarkerHeatmap <- function( stop("No Makers Found!") } + spmat <- passMat / rowSums(passMat) if(metadata(seMarker)$Params$useMatrix == "GeneScoreMatrix"){ message("Printing Top Marker Genes:") - spmat <- passMat / rowSums(passMat) for(x in seq_len(ncol(spmat))){ genes <- head(order(spmat[,x], decreasing = TRUE), nPrint) message(colnames(spmat)[x], ":") @@ -907,6 +939,16 @@ plotMarkerHeatmap <- function( } } + if(is.null(labelMarkers)){ + labelMarkers <- lapply(seq_len(ncol(spmat)), function(x){ + as.vector(rownames(mat)[head(order(spmat[,x], decreasing = TRUE), nLabel)]) + }) %>% unlist %>% unique + } + + if(ncol(mat) == 1){ + binaryClusterRows <- FALSE + } + if(binaryClusterRows){ if(invert){ bS <- .binarySort(-mat, lmat = passMat[rownames(mat), colnames(mat),drop=FALSE], clusterCols = clusterCols) @@ -942,15 +984,16 @@ plotMarkerHeatmap <- function( pal <- rev(pal) } + print(labelMarkers) + .logThis(mat, "mat-plot", logFile = logFile) if(transpose){ - #mat <- t(mat[rev(seq_len(nrow(mat))), rev(clusterCols$order)]) if(!is.null(clusterCols)){ - mat <- t(mat[seq_len(nrow(mat)), clusterCols$order, drop = FALSE]) - }else{ mat <- t(mat[seq_len(nrow(mat)), , drop = FALSE]) + }else{ + mat <- t(mat[seq_len(nrow(mat)), clusterCols$order, drop = FALSE]) } if(!is.null(labelMarkers)){ diff --git a/R/MatrixDeviations.R b/R/MatrixDeviations.R index 9eba7fed..6fd0d467 100644 --- a/R/MatrixDeviations.R +++ b/R/MatrixDeviations.R @@ -28,7 +28,7 @@ addDeviationsMatrix <- function( ArchRProj = NULL, peakAnnotation = NULL, matches = NULL, - bgdPeaks = getBgdPeaks(ArchRProj), + bgdPeaks = getBgdPeaks(ArchRProj, method = "chromVAR"), matrixName = NULL, out = c("z", "deviations"), binarize = FALSE, @@ -598,6 +598,7 @@ getVarDeviations <- function(ArchRProj = NULL, name = "MotifMatrix", plot = TRUE #' you can reproduce results downstream. #' @param outFile The path to save the `backgroundPeaks` object as a `.RDS` file for the given `ArchRProject`. The default action #' is to save this file in the `outputDirectory` of the `ArchRProject`. +#' @param method A string indicating whether to use chromVAR or ArchR for background peak identification. #' @param force A boolean value indicating whether to force the file indicated by `outFile` to be overwritten if it already exists. #' @export addBgdPeaks <- function( @@ -606,6 +607,7 @@ addBgdPeaks <- function( w = 0.1, binSize = 50, seed = 1, + method = "chromVAR", outFile = file.path(getOutputDirectory(ArchRProj), "Background-Peaks.rds"), force = FALSE ){ @@ -629,7 +631,7 @@ addBgdPeaks <- function( if(force){ message("Previous Background Peaks file does not exist! Identifying Background Peaks!") - bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = outFile) + bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = outFile, method = method) }else{ @@ -642,7 +644,7 @@ addBgdPeaks <- function( }else{ message("Identifying Background Peaks!") - bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = outFile) + bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = outFile, method = method) } @@ -666,6 +668,7 @@ addBgdPeaks <- function( #' @param binSize The precision with which the similarity is computed. See `chromVAR::getBackgroundPeaks()`. #' @param seed A number to be used as the seed for random number generation. It is recommended to keep track of the seed used #' so that you can reproduce results downstream. +#' @param method A string indicating whether to use chromVAR or ArchR for background peak identification. #' @param force A boolean value indicating whether to force the file indicated by `outFile` to be overwritten if it already exists. #' @export getBgdPeaks <- function( @@ -674,6 +677,7 @@ getBgdPeaks <- function( w = 0.1, binSize = 50, seed = 1, + method = "chromVAR", force = FALSE ){ @@ -696,7 +700,7 @@ getBgdPeaks <- function( if(force){ message("Previous Background Peaks file does not exist! Identifying Background Peaks!") - bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = NULL) + bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = NULL, method = method) }else{ @@ -709,7 +713,7 @@ getBgdPeaks <- function( }else{ message("Identifying Background Peaks!") - bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = NULL) + bgdPeaks <- .computeBgdPeaks(ArchRProj=ArchRProj, nIterations=nIterations, w=w, binSize=binSize, seed = seed, outFile = NULL, method = method) } @@ -727,6 +731,7 @@ getBgdPeaks <- function( w = 0.1, binSize = 50, seed = 1, + method = "chromVAR", outFile = file.path(getOutputDirectory(ArchRProj), "Background-Peaks.rds") ){ @@ -748,26 +753,74 @@ getBgdPeaks <- function( rS$end <- end(ArchRProj@peakSet) rS$GC <- ArchRProj@peakSet$GC + uniqueDist <- unique(rS$end - rS$start) + if(length(uniqueDist) > 1){ + if(tolower(method) != "archr"){ + stop("When using non-fixed width peaks, you need to use method = ArchR!") + } + } + #minimal chromVAR change #chromVAR reuiqres a matrix/se of ncol > 1 and with a log10(values) transform removing peaks with 0 reads #to disable this we create a column of 1's forcing chromVAR to perform log10(values + 1) se <- SummarizedExperiment::SummarizedExperiment( assays = SimpleList(counts = as.matrix(data.frame(rS$rowSums, 1))), - rowData = DataFrame(bias = rS$GC) + rowData = DataFrame(bias = rS$GC, start = rS$start, end = rS$end) ) - bgdPeaks <- chromVAR::getBackgroundPeaks( - object = se, - bias = rowData(se)$bias, - niterations = nIterations, - w = w, - bs = binSize - ) + if(tolower(method) == "chromvar"){ + + bgdPeaks <- tryCatch({ + + chromVAR::getBackgroundPeaks( + object = se, + bias = rowData(se)$bias, + niterations = nIterations, + w = w, + bs = binSize + ) + + }, error = function(e){ + + message("Error with chromVAR::getBackgroundPeaks! Handling this with a safer method for getting background peaks with ArchR!") + + .ArchRBdgPeaks( + object = se, + bias = rowData(se)$bias, + nIterations = nIterations + ) + + }) + + }else{ + + bgdPeaks <- .ArchRBdgPeaks( + object = se, + bias = rowData(se)$bias, + nIterations = nIterations + ) + + } bgdPeaks <- SummarizedExperiment(assays = SimpleList(bgdPeaks = bgdPeaks), rowRanges = GRanges(rS$seqnames,IRanges(rS$start,rS$end),value=rS$rowSums,GC=rS$GC)) + biasDF <- data.frame( + rowSums = Matrix::rowSums(assay(se)), + bias = rowData(se)$bias, + length = rowData(se)$end - rowData(se)$start + ) + + rowData(bgdPeaks)$bgdSumMean <- round(rowMeans(matrix(biasDF[assay(bgdPeaks),1], nrow = nrow(bgdPeaks))),3) + rowData(bgdPeaks)$bgdSumSd <- round(matrixStats::rowSds(matrix(biasDF[assay(bgdPeaks),1], nrow = nrow(bgdPeaks))),3) + + rowData(bgdPeaks)$bgdGCMean <- round(rowMeans(matrix(biasDF[assay(bgdPeaks),2], nrow = nrow(bgdPeaks))),3) + rowData(bgdPeaks)$bgdGCSd <- round(matrixStats::rowSds(matrix(biasDF[assay(bgdPeaks),2], nrow = nrow(bgdPeaks))),3) + + rowData(bgdPeaks)$bgdLengthMean <- round(rowMeans(matrix(biasDF[assay(bgdPeaks),3], nrow = nrow(bgdPeaks))),3) + rowData(bgdPeaks)$bgdLengthSd <- round(matrixStats::rowSds(matrix(biasDF[assay(bgdPeaks),3], nrow = nrow(bgdPeaks))),3) + #Save Background Peaks if(!is.null(outFile)){ saveRDS(bgdPeaks, outFile, compress = FALSE) @@ -777,3 +830,53 @@ getBgdPeaks <- function( } +.ArchRBdgPeaks <- function(object = NULL, bias = NULL, nIterations = 50){ + + .cleanSelf <- function(x){ + xn <- matrix(0, nrow = nrow(x), ncol = ncol(x)) + for(i in seq_len(nrow(x))){ + xi <- x[i, ] + idx <- which(xi != i) + xn[i, seq_along(idx)] <- xi[idx] + } + idx <- which(colSums(xn == 0) > 0) + if(length(idx) > 0){ + xn <- xn[,-idx] + } + xn + } + + #Bias Dataframe + biasDF <- data.frame( + rowSums = Matrix::rowSums(assay(object)), + bias = bias, + length = rowData(object)$end - rowData(object)$start + ) + + #Quantile Normalize + biasDFN <- apply(biasDF, 2, .getQuantiles) + + #Get KNN + knnObj <- nabor::knn( + data = biasDFN, + k = nIterations + 1 + )[[1]] + + #Filter Self + knnObj <- .cleanSelf(knnObj) + + #Shuffle + idx <- seq_len(ncol(knnObj)) + knnObj2 <- matrix(0, nrow = nrow(knnObj), ncol = ncol(knnObj)) + for(x in seq_len(nrow(knnObj2))){ + knnObj2[x,] <- knnObj[x, sample(idx, length(idx))] + } + + knnObj2 + +} + + + + + diff --git a/R/MatrixGeneExpression.R b/R/MatrixGeneExpression.R new file mode 100644 index 00000000..513c04fe --- /dev/null +++ b/R/MatrixGeneExpression.R @@ -0,0 +1,300 @@ +#################################################################### +# Gene Activity Score Methods +#################################################################### + +#' Add Gene Expression Matrix to ArrowFiles or an ArchRProject +#' +#' This function, for each sample, will add gene expression values from a paired scATAC-seq + scRNA-seq +#' multi modal assay to the ArrowFiles or ArchRProject. +#' +#' @param input An `ArchRProject` object or character vector of ArrowFiles. +#' @param seRNA A a scRNA-seq `SummarizedExperiment` (cell x gene) to be integrated with the scATAC-seq data. +#' Cell names from this object much match those of the cell names in the ArrowFiles/ArchRProject. We will add support shortly +#' for Seurat Objects (see `Seurat::as.SingleCellExperiment`). The provided values `MUST` be in counts (integer), not log transformed. +#' @param chromSizes A GRanges object of the chromosome lengths. See `getChromSizes` for more info. +#' @param excludeChr A character vector containing the `seqnames` of the chromosomes that should be excluded from this analysis. +#' @param scaleTo Each column in the calculated gene score matrix will be normalized to a column sum designated by `scaleTo`. +#' @param verbose A boolean describing whether to print to console messages of progress. +#' @param threads The number of threads to be used for parallel computing. +#' @param parallelParam A list of parameters to be passed for biocparallel/batchtools parallel computing. +#' @param force A boolean value indicating whether to force the matrix indicated by `matrixName` to be overwritten if it already exist in the given `input`. +#' @param logFile The path to a file to be used for logging ArchR output. +#' @export +addGeneExpressionMatrix <- function( + input = NULL, + seRNA = NULL, + chromSizes = getChromSizes(input), + excludeChr = c("chrM", "chrY"), + scaleTo = 10000, + verbose = TRUE, + threads = getArchRThreads(), + parallelParam = NULL, + force = TRUE, + logFile = createLogFile("addGeneExpressionMatrix") + ){ + + if(inherits(input, "ArchRProject")){ + ArrowFiles <- getArrowFiles(input) + allCells <- rownames(getCellColData(input)) + outDir <- getOutputDirectory(input) + if(is.null(chromSizes)){ + chromSizes <- getChromSizes(input) + } + }else if(inherits(input, "character")){ + outDir <- "" + ArrowFiles <- input + allCells <- NULL + if(is.null(chromSizes)){ + chromSizes <- getChromSizes() + } + }else{ + stop("Error Unrecognized Input!") + } + if(!all(file.exists(ArrowFiles))){ + stop("Error Input Arrow Files do not all exist!") + } + + .startLogging(logFile = logFile) + .logThis(mget(names(formals()),sys.frame(sys.nframe())), "addGeneExpressionMatrix Input-Parameters", logFile = logFile) + + cellsInArrows <- unlist(lapply(ArrowFiles, .availableCells), use.names=FALSE) + if(!is.null(allCells)){ + cellsInArrows <- allCells + } + overlap <- sum(cellsInArrows %in% colnames(seRNA)) / length(cellsInArrows) + .logMessage("Overlap w/ scATAC = ", round(overlap,3), logFile = logFile, verbose = TRUE) + + if(overlap == 0){ + stop("No overlap found with scATAC!") + } + + splitCells <- split(cellsInArrows, stringr::str_split(cellsInArrows, pattern = "#", simplify=TRUE)[,1]) + overlapPerSample <- unlist(lapply(splitCells, function(x) sum(x %in% colnames(seRNA)))) + .logMessage("Overlap Per Sample w/ scATAC : ", paste(paste(names(overlapPerSample), round(overlapPerSample,3), sep = "="), collapse=","), logFile = logFile, verbose = TRUE) + + #Get QC Info + assay(se) <- Matrix::Matrix(assay(se), sparse=TRUE) + nUMI <- Matrix::colSums(assay(seRNA)) + mb <- assay(seRNA) + mb@x[mb@x > 0] <- 1 + nGenes <- Matrix::colSums(mb) + rm(mb) + MitoRatio <- Matrix::colSums(assay(seRNA)[grep("^MT", rownames(assay(seRNA))),]) / nUMI + RiboRatio <- Matrix::colSums(assay(seRNA)[grep("^RP", rownames(assay(seRNA))),]) / nUMI + qcInfo <- DataFrame(nUMI = nUMI, nGenes = nGenes, MitoRatio = MitoRatio, RiboRatio = RiboRatio) + colnames(qcInfo) <- paste0("Gex_", colnames(qcInfo)) + + #Filter seRNA + seRNA <- seRNA[BiocGenerics::which(seqnames(seRNA) %bcin% seqnames(chromSizes))] + seRNA <- seRNA[BiocGenerics::which(seqnames(seRNA) %bcni% excludeChr)] + + #Dedup + idxDup <- which(rownames(seRNA) %in% rownames(seRNA[duplicated(rownames(seRNA))])) + names(idxDup) <- rownames(seRNA)[idxDup] + if(length(idxDup) > 0){ + dupOrder <- idxDup[order(Matrix::rowSums(assay(seRNA[idxDup])),decreasing=TRUE)] + dupOrder <- dupOrder[!duplicated(names(dupOrder))] + seRNA <- seRNA[-as.vector(idxDup[idxDup %ni% dupOrder])] + } + + #Add Index To RNA Ranges + features <- rowRanges(seRNA) + features <- sort(sortSeqlevels(features), ignore.strand = TRUE) + features <- split(features, seqnames(features)) + features <- lapply(features, function(x){ + mcols(x)$idx <- seq_along(x) + return(x) + }) + features <- Reduce("c",features) + rowData(seRNA)$idx <- features[rownames(seRNA)]$idx + + .logThis(qcInfo, "qcInfo", logFile = logFile) + + #Add args to list + args <- mget(names(formals()), sys.frame(sys.nframe()))#as.list(match.call()) + args$ArrowFiles <- ArrowFiles + args$allCells <- allCells + args$X <- seq_along(ArrowFiles) + args$FUN <- .addGeneExpressionMat + args$registryDir <- file.path(outDir, "addGeneExpressionMatRegistry") + args$qcInfo <- qcInfo + args$seRNA <- seRNA + + #Remove Input from args + args$input <- NULL + args$chromSizes <- NULL + + #Run With Parallel or lapply + outList <- .batchlapply(args) + + .endLogging(logFile = logFile) + + #Return Output + if(inherits(input, "ArchRProject")){ + + qcInfo <- qcInfo[rownames(qcInfo) %in% input$cellNames, ] + + for(i in seq_len(ncol(qcInfo))){ + input <- addCellColData( + ArchRProj = input, + data = as.vector(qcInfo[,i]), + name = paste0(colnames(qcInfo)[i]), + cells = paste0(rownames(qcInfo)), + force = force + ) + } + + return(input) + + }else{ + + return(unlist(outList)) + + } + + +} + +.addGeneExpressionMat <- function( + i = NULL, + ArrowFiles = NULL, + seRNA = NULL, + qcInfo = NULL, + excludeChr = NULL, + scaleTo = NULL, + cellNames = NULL, + allCells = NULL, + tstart = NULL, + subThreads = 1, + force = FALSE, + verbose = TRUE, + logFile = NULL + ){ + + ArrowFile <- ArrowFiles[i] + sampleName <- .sampleName(ArrowFile) + + #Check + matrixName <- "GeneExpressionMatrix" + o <- h5closeAll() + o <- .createArrowGroup(ArrowFile = ArrowFile, group = matrixName, force = force, logFile = logFile) + + if(is.null(tstart)){ + tstart <- Sys.time() + } + + #Get all cell ids before constructing matrix + if(is.null(cellNames)){ + cellNames <- .availableCells(ArrowFile) + } + + if(!is.null(allCells)){ + cellNames <- cellNames[cellNames %in% allCells] + } + + #Identify Overlapping Cells + cellNames <- cellNames[cellNames %in% colnames(seRNA)] + seRNA <- seRNA[, cellNames] + + dfParams <- data.frame( + scaleTo = scaleTo, + exclude = excludeChr, + stringsAsFactors = FALSE + ) + + featureDF <- data.frame( + seqnames = paste0(seqnames(seRNA)), + idx = mcols(seRNA)$idx, + start = start(seRNA), + end = end(seRNA), + name = rownames(seRNA), + strand = as.integer(strand(seRNA)), + stringsAsFactors = FALSE + ) + + .logThis(featureDF, "featureDF", logFile = logFile) + + ###################################### + # Initialize SP Mat Group + ###################################### + o <- .initializeMat( + ArrowFile = ArrowFile, + Group = matrixName, + Class = "double", + Units = "NormCounts", + cellNames = cellNames, + params = dfParams, + featureDF = featureDF, + force = TRUE + ) + + ###################################### + # Normalize and Insert Log2 Normalized Counts + ###################################### + + assay(seRNA) <- .normalizeCols(assay(seRNA), scaleTo = scaleTo) + + uniqueChr <- unique(featureDF$seqnames) + + for(z in seq_along(uniqueChr)){ + + o <- tryCatch({ + + o <- h5closeAll() + chr <- uniqueChr[z] + matz <- assay(seRNA[BiocGenerics::which(seqnames(seRNA)==chr), ]) + .logDiffTime(sprintf("Adding %s to %s for Chr (%s of %s)!", sampleName, matrixName, z, length(uniqueChr)), tstart, verbose = verbose, logFile = logFile) + + #Write sparseMatrix to Arrow File! + o <- .addMatToArrow( + mat = matz, + ArrowFile = ArrowFile, + Group = paste0(matrixName, "/", chr), + binarize = FALSE, + addColSums = TRUE, + addRowSums = TRUE, + addRowVarsLog2 = TRUE #add for integration analyses + ) + gc() + + if(z %% 3 == 0 | z == length(uniqueChr)){ + gc() + } + + }, error = function(e){ + + errorList <- list( + ArrowFile = ArrowFile, + chr = chr, + mat = if(exists("matz", inherits = FALSE)) matz else "matz" + ) + + .logError(e, fn = ".addGeneExpressionMat AddToArrow", info = sampleName, errorList = errorList, logFile = logFile) + + }) + + + } + + #Add Info To Arrow Files + allCells <- .availableCells(ArrowFile, passQC = FALSE) + + qcInfoi <- qcInfo[rownames(qcInfo) %in% colnames(seRNA), ] + + for(i in seq_len(ncol(qcInfo))){ + + infoi <- rep(-1, length(allCells)) + names(infoi) <- allCells + infoi[rownames(qcInfoi)] <- qcInfoi[,i] + + o <- h5closeAll() + h5write(infoi, file = ArrowFile, paste0("Metadata/", colnames(qcInfoi)[i])) + o <- h5closeAll() + + } + + ArrowFile + +} + + diff --git a/R/MatrixGeneScores.R b/R/MatrixGeneScores.R index 5231d596..1325d4ce 100644 --- a/R/MatrixGeneScores.R +++ b/R/MatrixGeneScores.R @@ -24,6 +24,8 @@ #' @param geneDownstream An integer describing the number of bp downstream the gene to extend the gene body.This effectively makes the gene body larger as there #' are proximal peaks that should be weighted equally to the gene body. This parameter is used if 'useTSS=FALSE'. #' @param useTSS A boolean describing whether to build gene model based on gene TSS or the gene body. +#' @param extendTSS A boolean describing whether to extend the gene TSS. By default useTSS uses the 1bp TSS while this parameter enables the extension of this +#' region with 'geneUpstream' and 'geneDownstream' respectively. #' @param tileSize The size of the tiles used for binning counts prior to gene activity score calculation. #' @param ceiling The maximum counts per tile allowed. This is used to prevent large biases in tile counts. #' @param geneScaleFactor A numeric scaling factor to weight genes based on the inverse of there length i.e. [(Scale Factor)/(Gene Length)]. This @@ -50,6 +52,7 @@ addGeneScoreMatrix <- function( geneDownstream = 0, #New Param useGeneBoundaries = TRUE, useTSS = FALSE, #New Param + extendTSS = FALSE, tileSize = 500, ceiling = 4, geneScaleFactor = 5, #New Param @@ -154,6 +157,7 @@ addGeneScoreMatrix <- function( geneDownstream = 0, #New Param useGeneBoundaries = TRUE, useTSS = FALSE, #New Param + extendTSS = FALSE, tileSize = 500, ceiling = 4, geneScaleFactor = 5, #New Param @@ -209,6 +213,9 @@ addGeneScoreMatrix <- function( geneRegions$geneStart <- start(resize(geneRegions, 1, "start")) geneRegions$geneEnd <- start(resize(geneRegions, 1, "end")) geneRegions <- resize(geneRegions, 1, "start") + if(extendTSS){ + geneRegions <- extendGR(gr = geneRegions, upstream = geneUpstream, downstream = geneDownstream) + } geneRegions$geneWeight <- geneScaleFactor }else{ .logMessage(paste0(sampleName, " .addGeneScoreMat useTSS = FALSE")) @@ -402,7 +409,7 @@ addGeneScoreMatrix <- function( totalGSz <- Matrix::colSums(matGS) #Save tmp file - saveRDS(matGS, file = paste0(tmpFile, "-", chrz, ".rds"), compress = FALSE) + .safeSaveRDS(matGS, file = paste0(tmpFile, "-", chrz, ".rds"), compress = FALSE) #Clean Memory rm(isMinus, signDist, extendedGeneRegion, uniqueTiles) diff --git a/R/MatrixTiles.R b/R/MatrixTiles.R index b00901fd..fa22896f 100644 --- a/R/MatrixTiles.R +++ b/R/MatrixTiles.R @@ -193,11 +193,21 @@ addTileMatrix <- function( #N Tiles nTiles <- trunc(chromLengths[z] / tileSize) + 1 - #Create Sparse Matrix + #Match Cells matchID <- S4Vectors::match(mcols(fragments)$RG, cellNames) + + #Log Info + .logThis(nTiles, paste0("NTiles_TileMatrix_",z,"_",chr), logFile = logFile) + .logThis(length(cellNames), paste0("NCells_TileMatrix_",z,"_",chr), logFile = logFile) + .logThis(trunc(min(start(fragments)) / tileSize) + 1, paste0("MinTile_TileMatrix_",z,"_",chr), logFile = logFile) + .logThis(trunc(max(end(fragments)) / tileSize) + 1, paste0("MaxTile_TileMatrix_",z,"_",chr), logFile = logFile) + .logThis(min(matchID), paste0("MinCell_TileMatrix_",z,"_",chr), logFile = logFile) + .logThis(max(matchID), paste0("MaxCell_TileMatrix_",z,"_",chr), logFile = logFile) + + #Create Sparse Matrix mat <- Matrix::sparseMatrix( i = c(trunc(start(fragments) / tileSize), trunc(end(fragments) / tileSize)) + 1, - j = c(matchID, matchID), + j = as.vector(c(matchID, matchID)), x = rep(1, 2*length(fragments)), dims = c(nTiles, length(cellNames)) ) diff --git a/R/ModuleScore.R b/R/ModuleScore.R new file mode 100644 index 00000000..99af34de --- /dev/null +++ b/R/ModuleScore.R @@ -0,0 +1,122 @@ +#' Add Module Scores to an ArchRProject +#' +#' This function computes imputations weights that describe each cell as a linear combination of many cells based on a MAGIC diffusion matrix. +#' +#' RRR +#' +#' @param ArchRProj An `ArchRProject` object. +#' @param seed A number to be used as the seed for random number generation. It is recommended to keep track of the seed used so that you can +#' reproduce results downstream. +#' @param threads The number of threads to be used for parallel computing. +#' @param logFile The path to a file to be used for logging ArchR output. +#' @export +addModuleScore <- function( + ArchRProj = NULL, + useMatrix = NULL, + name = "Module", + features = NULL, + nBin = 25, + nBgd = 100, + seed = 1, + threads = getArchRThreads(), + logFile = createLogFile("addModuleScore") + ){ + + if(!is.null(seed)) set.seed(seed) + + #Get Feature DF + featureDF <- ArchR:::.getFeatureDF(head(getArrowFiles(ArchRProj),2), subGroup=useMatrix) + rownames(featureDF) <- paste0(featureDF$seqnames, ":", featureDF$idx) + featureDF$Match <- seq_len(nrow(featureDF)) + + if(useMatrix %ni% getAvailableMatrices(ArchRProj)){ + stop("useMatrix not in available matrices! See getAvailableMatrices!") + } + + matrixClass <- h5read(getArrowFiles(ArchRProj)[1], paste0(useMatrix, "/Info/Class")) + + if(matrixClass == "Sparse.Assays.Matrix"){ + if(!all(unlist(lapply(unlist(features), function(x) grepl(":",x))))){ + .logMessage("When accessing features from a matrix of class Sparse.Assays.Matrix it requires seqnames\n(denoted by seqnames:name) specifying to which assay to pull the feature from.\nIf confused, try getFeatures(ArchRProj, useMatrix) to list out available formats for input!", logFile = logFile) + stop("When accessing features from a matrix of class Sparse.Assays.Matrix it requires seqnames\n(denoted by seqnames:name) specifying to which assay to pull the feature from.\nIf confused, try getFeatures(ArchRProj, useMatrix) to list out available formats for input!") + } + } + + if(grepl(":",unlist(features)[1])){ + + sname <- stringr::str_split(unlist(features),pattern=":",simplify=TRUE)[,1] + name <- stringr::str_split(unlist(features),pattern=":",simplify=TRUE)[,2] + + idx <- lapply(seq_along(name), function(x){ + ix <- intersect(which(tolower(name[x]) == tolower(featureDF$name)), BiocGenerics::which(tolower(sname[x]) == tolower(featureDF$seqnames))) + if(length(ix)==0){ + .logStop(sprintf("FeatureName (%s) does not exist! See getFeatures", name[x]), logFile = logFile) + } + ix + }) %>% unlist + + }else{ + + idx <- lapply(seq_along(unlist(features)), function(x){ + ix <- which(tolower(unlist(features)[x]) == tolower(featureDF$name))[1] + if(length(ix)==0){ + .logStop(sprintf("FeatureName (%s) does not exist! See getFeatures", unlist(features)[x]), logFile = logFile) + } + ix + }) %>% unlist + + } + + if(is.null(names(features))){ + names(features) <- paste0(name, seq_along(features)) + }else{ + names(features) <- paste0(name, ".", names(features)) + } + + featuresUse <- featureDF[idx,] + featuresUse$Module <- Rle(stack(features)[,2]) + + #Get Averages + rS <- ArchR:::.getRowSums(ArrowFiles = getArrowFiles(ArchRProj), useMatrix = useMatrix) + rS <- rS[order(rS[,3]), ] + rS$Bins <- Rle(ggplot2::cut_number(x = rS[,3] + rnorm(length(rS[,3]))/1e30, n = nBin, labels = FALSE, right = FALSE)) + rS$Match <- match(paste0(rS$seqnames, ":", rS$idx), rownames(featureDF)) + + if(nBgd > min(rS$Bins@lengths)){ + stop("nBgd must be lower than ", min(rS$Bins@lengths), "!") + } + + idxMatch <- match(paste0(featuresUse$seqnames, ":", featuresUse$idx), paste0(rS$seqnames, ":", rS$idx)) + featuresUse$Bins <- as.vector(rS$Bins[idxMatch]) + + #MakeLists + featureList <- split(featuresUse$Match, featuresUse$Module) + moduleList <- split(featuresUse$Bins, featuresUse$Module) + binList <- split(rS$Match, rS$Bins) + + dfM <- lapply(seq_along(featureList), function(x){ + message("Computing Module ",x, " of ", length(featureList)) + binx <- binList[moduleList[[x]]] + idxFgd <- featureList[[x]] + idxBgd <- unlist(lapply(binx, function(x) sample(x, nBgd)), use.names=FALSE) + m <- ArchR:::.getPartialMatrix( + ArrowFiles = getArrowFiles(ArchRProj), + featureDF = featureDF[c(idxFgd, idxBgd), ], + useMatrix = useMatrix, + cellNames = ArchRProj$cellNames, + threads = threads, + verbose = FALSE, + doSampleCells = FALSE + ) + Matrix::colMeans(m[seq_along(idxFgd), ]) - Matrix::colMeans(m[-seq_along(idxFgd), ]) + }) %>% Reduce("cbind", .) + + for(x in seq_len(ncol(dfM))){ + ArchRProj <- addCellColData(ArchRProj, data = dfM[,x], name=names(featureList)[x], cells=rownames(dfM), force = TRUE) + } + + ArchRProj + +} + + diff --git a/R/MultiModal.R b/R/MultiModal.R new file mode 100644 index 00000000..ac20df74 --- /dev/null +++ b/R/MultiModal.R @@ -0,0 +1,180 @@ +#################################################################### +# Import Multi-Modal Data +#################################################################### + +#' Import Feature Matrix from 10x Feature HDF5 file. +#' +#' This function will import the feature matrix from a 10x feature hdf5 file. +#' +#' @param input A character of paths to 10x feature hdf5 file(s). These will traditionally have a suffix similar to "filtered_feature_bc_matrix.h5". +#' @param names A character of sample names associated with each input file. +#' @param featureType The name of the feature to extract from the 10x feature file. +#' See https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/advanced/h5_matrices for more information. +#' @export +import10xFeatureMatrix <- function( + input = NULL, + names = NULL, + featureType = "Gene Expression" + ){ + + if(!all(file.exists(input))){ + stop("Not all input file paths exist!") + } + + featureMats <- lapply(seq_along(input), function(y){ + message("Importing Feature Matrix ", y, " of ", length(input)) + .importFM(featureMatrix = input[y], featureType = featureType, name = names[y]) + }) + + featureMats <- tryCatch({ + Reduce("cbind", featureMats) + }, error = function(e){ + message("Error in combining individual feature matrices! Returning as a list of individual feature matrices!") + featureMats + }) + + featureMats + +} + +.importFM <- function(featureMatrix = NULL, featureType = NULL, name = NULL){ + + o <- h5closeAll() + barcodes <- h5read(featureMatrix, "/matrix/barcodes") + data <- h5read(featureMatrix, "/matrix/data") + indices <- h5read(featureMatrix, "/matrix/indices") + indptr <- h5read(featureMatrix, "/matrix/indptr") + shape <- h5read(featureMatrix, "/matrix/shape") + + spMat <- sparseMatrix( + i = indices, + p = indptr, + x = data, + dims = shape, + index1 = FALSE + ) + + colnames(spMat) <- paste0(name, "#", barcodes) + + features <- h5read(featureMatrix, "/matrix/features") + features <- lapply(seq_along(features), function(x){ + if(length(features[[x]]) == nrow(spMat)){ + if(object.size(features[[x]]) > object.size(Rle(features[[x]]))){ + df <- DataFrame(x = Rle(features[[x]])) + }else{ + df <- DataFrame(x = features[[x]]) + } + colnames(df) <- names(features)[x] + df + }else{ + NULL + } + }) + features <- Reduce("cbind",features[!unlist(lapply(features,is.null))]) + + se <- SummarizedExperiment(assays = SimpleList(counts = spMat), rowData = features) + + rownames(se) <- features$name + + if("feature_type" %in% colnames(rowData(se))){ + if(!is.null(featureType)){ + idx <- BiocGenerics::which(rowData(se)$feature_type %bcin% featureType) + if(length(idx) == 0){ + stop("Error featureType not within provided features!") + } + se <- se[idx] + } + } + + if("interval" %in% colnames(rowData(se))){ + idxNA <- which(rowData(se)$interval=="NA") + if(length(idxNA) > 0){ + se <- se[-idxNA, ] + } + rr <- GRanges(paste0(rowData(se)$interval)) + mcols(rr) <- rowData(se) + se <- SummarizedExperiment(assays = SimpleList(counts = assay(se)), rowRanges = rr) + } + + idxDup <- which(rownames(se) %in% rownames(se[duplicated(rownames(se))])) + names(idxDup) <- rownames(se)[idxDup] + if(length(idxDup) > 0){ + dupOrder <- idxDup[order(Matrix::rowSums(assay(se[idxDup])),decreasing=TRUE)] + dupOrder <- dupOrder[!duplicated(names(dupOrder))] + se <- se[-as.vector(idxDup[idxDup %ni% dupOrder])] + } + + gc() + + se + +} + +#################################################################### +# Combined Modalities +#################################################################### + +#' Combine two or more modalities dimensionality reductions. +#' +#' This function will combine two or more modalities dimensionality reductions into a single reduction. +#' +#' @param ArchRProj An `ArchRProject` object. +#' @param name The name for the combinedDims to be stored as. +#' @param reducedDims The name of the `reducedDims` objects (i.e. "IterativeLSI") to use from the designated `ArchRProject`. +#' @param dimWeights A vector of weights to be used to weight each dimensionality reduction when combining. +#' @param dimsToUse A vector containing the dimensions from the `reducedDims` objects to use. +#' @param scaleDims A boolean value that indicates whether to z-score the reduced dimensions for each cell. This is useful for minimizing +#' the contribution of strong biases (dominating early PCs) and lowly abundant populations. However, this may lead to stronger sample-specific +#' biases since it is over-weighting latent PCs. If set to `NULL` this will scale the dimensions based on the value of `scaleDims` when the +#' `reducedDims` were originally created during dimensionality reduction. This idea was introduced by Timothy Stuart. +#' @param corCutOff A numeric cutoff for the correlation of each dimension to the sequencing depth. If the dimension has a correlation to +#' sequencing depth that is greater than the `corCutOff`, it will be excluded from analysis. +#' @export +addCombinedDims <- function( + ArchRProj = NULL, + name = "CombinedDims", + reducedDims = NULL, + dimWeights = NULL, + dimsToUse = NULL, + scaleDims = NULL, + corCutOff = 0.75 + ){ + + if(is.null(dimWeights)){ + dimWeights <- rep(1, length(reducedDims)) + } + + combinedDims <- lapply(seq_along(reducedDims), function(x){ + rD <- getReducedDims( + ArchRProj = ArchRProj, + reducedDims = reducedDims[x], + dimsToUse = dimsToUse, + scaleDims = scaleDims, + corCutOff = corCutOff + ) + cV <- apply(as.matrix(rD), 2, var) + normV <- 1 / sqrt(sum(cV)) + rD * normV * dimWeights[x] + }) %>% Reduce("cbind", .) + + ArchRProj@reducedDims[[name]] <- SimpleList( + matRD = combinedDims, + scaleDims = NA, + corToDepth = list(scaled = rep(0, ncol(combinedDims)), none = rep(0, ncol(combinedDims))) + ) + + ArchRProj + +} + + + + + + + + + + + + diff --git a/R/ProjectMethods.R b/R/ProjectMethods.R index f829add3..5609cf0f 100644 --- a/R/ProjectMethods.R +++ b/R/ProjectMethods.R @@ -413,6 +413,9 @@ getGenomeAnnotation <- function(ArchRProj = NULL){ #' @param ArchRProj An `ArchRProject` object. #' @export getBlacklist <- function(ArchRProj = NULL){ + if(is.character(ArchRProj)){ + ArchRProj <- NULL + } .validInput(input = ArchRProj, name = "ArchRProj", valid = c("ArchRProject","null")) if(is.null(ArchRProj)){ genomeAnnotation <- getArchRGenome(genomeAnnotation = TRUE) diff --git a/R/QualityControl.R b/R/QualityControl.R index 037e5b12..20c83f30 100644 --- a/R/QualityControl.R +++ b/R/QualityControl.R @@ -4,12 +4,15 @@ #' used when making this plot. #' #' @param ArchRProj An `ArchRProject` object. +#' @param groupBy The name of the column in `cellColData` to use for grouping cells together for summarizing. +#' @param chromSizes A GRanges object of the chromosome lengths. See `getChromSizes` for more info. #' @param TSS A `GRanges` object containing the locations of stranded TSS regions. The default behavior is to try to retrieve #' this information from the `geneAnnotation` stored in the `ArchRProject`. #' @param flank An integer that specifies how far in bp (+/-) to extend the TSS for plotting. #' @param norm An integer that specifies the number of base pairs from the ends of the flanks to be used for normalization. #' For example if `flank=2000` and `norm=100`, the TSS insertions will be normalized by +/- 1900-2000 bp from the TSS. #' @param smooth An integer that indicates the smoothing window (in basepairs) to be applied to the TSS plot. +#' @param pal A color palette representing the groups from groupBy in TSS plot. #' @param returnDF A boolean value that indicates whether to return a `data.frame` containing the plot information #' instead of plotting the TSS enrichment plot. #' @param threads An integer specifying the number of threads to use for calculation. By default this uses the number of threads set by `addArchRThreads()`. @@ -17,10 +20,13 @@ #' @export plotTSSEnrichment <- function( ArchRProj = NULL, + groupBy = "Sample", + chromSizes = getChromSizes(ArchRProj), TSS = getTSS(ArchRProj), flank = 2000, norm = 100, smooth = 11, + pal = NULL, returnDF = FALSE, threads = getArchRThreads(), logFile = createLogFile("plotTSSEnrichment") @@ -39,70 +45,94 @@ plotTSSEnrichment <- function( .startLogging(logFile = logFile) .logThis(mget(names(formals()),sys.frame(sys.nframe())), "plotTSSEnrichment Input-Parameters", logFile = logFile) - ArrowFiles <- getArrowFiles(ArchRProj) - chr <- .availableChr(ArrowFiles) + chr <- paste0(seqnames(chromSizes)) chr <- gtools::mixedsort(intersect(chr, paste0(seqnames(TSS)))) - cellNames <- ArchRProj$cellNames TSS <- sort(sortSeqlevels(TSS)) splitTSS <- split(resize(TSS,1,"start"), seqnames(TSS))[chr] window <- 2 * flank + 1 + groups <- getCellColData(ArchRProj = ArchRProj, select = groupBy, drop = FALSE) + uniqGroups <- gtools::mixedsort(unique(groups[,1])) - dfTSS <- .safelapply(seq_along(ArrowFiles), function(x){ + if(threads > 1){ + h5disableFileLocking() + } + + dfTSS <- .safelapply(seq_along(uniqGroups), function(x){ - .logDiffTime(paste0(names(ArrowFiles)[x], " Computing TSS (",x," of ",length(ArrowFiles),")!"), t1 = tstart, logFile = logFile) + .logDiffTime(paste0(uniqGroups[x], " Computing TSS (",x," of ",length(uniqGroups),")!"), t1 = tstart, logFile = logFile) + + cellx <- rownames(groups)[which(paste0(groups[,1]) == uniqGroups[x])] for(i in seq_along(chr)){ TSSi <- splitTSS[[chr[i]]] - covi <- .getFragsFromArrow( - ArrowFile = ArrowFiles[x], - chr = chr[i], - out = "IRanges", - cellNames = cellNames - ) %>% {coverage(IRanges(c(start(.), end(.)), width = 1))} - - if(i == 1){ - sumTSS <- rleSumsStranded(list(chr1=covi), list(chr1=TSSi), window, as.integer) - }else{ - sumTSS <- sumTSS + rleSumsStranded(list(chr1=covi), list(chr1=TSSi), window, as.integer) - } - + covi <- unlist(suppressMessages(getFragmentsFromProject( + ArchRProj = ArchRProj, + subsetBy = chromSizes[paste0(seqnames(chromSizes)) %in% chr[i]], + cellNames = cellx, + logFile = logFile + )), use.names=FALSE) %>% + sort %>% + {coverage(IRanges(c(start(.), end(.)), width = 1))} + + .logThis(covi, paste0(uniqGroups[x], " : Cov : ", chr[i]), logFile = logFile) + + if(i == 1){ + sumTSS <- rleSumsStranded(list(chr1=covi), list(chr1=TSSi), window, as.integer) + }else{ + sumTSS <- sumTSS + rleSumsStranded(list(chr1=covi), list(chr1=TSSi), window, as.integer) + } + + .logThis(sumTSS, paste0(uniqGroups[x], " : SumTSS : ", chr[i]), logFile = logFile) + } normBy <- mean(sumTSS[c(1:norm,(flank*2-norm+1):(flank*2+1))]) df <- DataFrame( - sampleName = names(ArrowFiles)[x], + group = uniqGroups[x], x = seq_along(sumTSS) - flank - 1, value = sumTSS, - normValue = sumTSS/normBy, + normValue = sumTSS / normBy, smoothValue = .centerRollMean(sumTSS/normBy, 11) ) - .logDiffTime(paste0(names(ArrowFiles)[x], " Finished Computing TSS (",x," of ",length(ArrowFiles),")!"), t1 = tstart, logFile = logFile) + .logThis(df, paste0(uniqGroups[x], " : TSSDf"), logFile = logFile) + + .logDiffTime(paste0(uniqGroups[x], " Finished Computing TSS (",x," of ",length(uniqGroups),")!"), t1 = tstart, logFile = logFile) df }, threads = threads) %>% Reduce("rbind", .) + .logThis(dfTSS, paste0("All : TSSDf"), logFile = logFile) + .endLogging(logFile = logFile) + if(threads > 1){ + h5enableFileLocking() + } + if(returnDF){ return(dfTSS) }else{ - plotDF <- data.frame(x=dfTSS$x,v=dfTSS$smoothValue,sampleName=dfTSS$sampleName) + plotDF <- data.frame(x=dfTSS$x,v=dfTSS$smoothValue,group=dfTSS$group) plotDF <- plotDF[sort(unique(c(1,seq(1,nrow(plotDF),11),nrow(plotDF)))), , drop = FALSE] - p <- ggplot(plotDF, aes(x,v,color=sampleName)) + + if(is.null(pal)){ + pal <- paletteDiscrete(values=unique(plotDF$group)) + } + + p <- ggplot(plotDF, aes(x,v,color=group)) + geom_line(size = 1) + theme_ArchR() + xlab("Distance From Center (bp)") + ylab("Normalized Insertion Profile") + - scale_color_manual(values=paletteDiscrete(values=unique(plotDF$sampleName))) + + scale_color_manual(values=pal) + scale_y_continuous(limits = c(0, max(plotDF$v)*1.05), expand = c(0,0)) + scale_x_continuous(limits = c(min(plotDF$x), max(plotDF$x)), expand = c(0,0)) @@ -118,7 +148,10 @@ plotTSSEnrichment <- function( #' This function will plot a fragment size distribution for each sample. Only cells in the `ArchRProject` are used when making this plot. #' #' @param ArchRProj An `ArchRProject` object. +#' @param groupBy The name of the column in `cellColData` to use for grouping cells together for summarizing. +#' @param chromSizes A GRanges object of the chromosome lengths. See `getChromSizes` for more info. #' @param maxSize The maximum fragment size (in basepairs) to be included when plotting the fragment size distribution. +#' @param pal A color palette representing the groups from groupBy in fragment size plot. #' @param returnDF A boolean value that indicates whether to return a `data.frame` containing the plot information #' instead of plotting the fragment size distribution. #' @param threads An integer specifying the number of threads to use for calculation. By default this uses the number of threads set by `addArchRThreads()`. @@ -126,7 +159,10 @@ plotTSSEnrichment <- function( #' @export plotFragmentSizes <- function( ArchRProj = NULL, + groupBy = "Sample", + chromSizes = getChromSizes(ArchRProj), maxSize = 750, + pal = NULL, returnDF = FALSE, threads = getArchRThreads(), logFile = createLogFile("plotFragmentSizes") @@ -142,48 +178,61 @@ plotFragmentSizes <- function( .startLogging(logFile = logFile) .logThis(mget(names(formals()),sys.frame(sys.nframe())), "plotFragmentSizes Input-Parameters", logFile = logFile) - ArrowFiles <- getArrowFiles(ArchRProj) - chr <- gtools::mixedsort(.availableChr(ArrowFiles)) - cellNames <- ArchRProj$cellNames + chr <- paste0(seqnames(chromSizes)) + groups <- getCellColData(ArchRProj = ArchRProj, select = groupBy, drop = FALSE) + uniqGroups <- gtools::mixedsort(unique(groups[,1])) + + if(threads > 1){ + h5disableFileLocking() + } - dfFS <- .safelapply(seq_along(ArrowFiles), function(x){ + dfFS <- .safelapply(seq_along(uniqGroups), function(x){ - .logDiffTime(paste0(names(ArrowFiles)[x], " Computing FragmentSizes (",x," of ",length(ArrowFiles),")!"), t1 = tstart, logFile = logFile) + .logDiffTime(paste0(uniqGroups[x], " Computing FragmentSizes (",x," of ",length(uniqGroups),")!"), t1 = tstart, logFile = logFile) - for(i in seq_along(chr)){ + cellx <- rownames(groups)[which(paste0(groups[,1]) == uniqGroups[x])] + for(i in seq_along(chr)){ if(i == 1){ - fsi <- .getFragsFromArrow( - ArrowFile = ArrowFiles[x], - chr = chr[i], - out = "IRanges", - cellNames = cellNames - ) %>% width %>% tabulate(nbins = maxSize) + fsi <- unlist(suppressMessages(getFragmentsFromProject( + ArchRProj = ArchRProj, + subsetBy = chromSizes[paste0(seqnames(chromSizes)) %in% chr[i]], + cellNames = cellx, + logFile = logFile + )), use.names=FALSE) %>% width %>% tabulate(nbins = maxSize) }else{ - fsi <- fsi + .getFragsFromArrow( - ArrowFile = ArrowFiles[x], - chr = chr[i], - out = "IRanges", - cellNames = cellNames - ) %>% width %>% tabulate(nbins = maxSize) + fsi <- fsi + unlist(suppressMessages(getFragmentsFromProject( + ArchRProj = ArchRProj, + subsetBy = chromSizes[paste0(seqnames(chromSizes)) %in% chr[i]], + cellNames = cellx, + logFile = logFile + )), use.names=FALSE) %>% width %>% tabulate(nbins = maxSize) } - + .logThis(fsi, paste0(uniqGroups[x], " : FragSizes : ", chr[i]), logFile = logFile) } df <- DataFrame( - sampleName = names(ArrowFiles)[x], + group = uniqGroups[x], fragmentSize = seq_along(fsi), fragmentPercent = round(100*fsi/sum(fsi),4) ) - .logDiffTime(paste0(names(ArrowFiles)[x], " Finished Computing FragmentSizes (",x," of ",length(ArrowFiles),")!"), t1 = tstart, logFile = logFile) + .logThis(df, paste0(uniqGroups[x], " : Frag DF"), logFile = logFile) + + .logDiffTime(paste0(uniqGroups[x], " Finished Computing FragmentSizes (",x," of ",length(uniqGroups),")!"), t1 = tstart, logFile = logFile) df }, threads = threads) %>% Reduce("rbind", .) + .logThis(dfFS, paste0("All : FragSizes DF"), logFile = logFile) + .endLogging(logFile = logFile) + if(threads > 1){ + h5enableFileLocking() + } + if(returnDF){ return(dfFS) @@ -192,12 +241,16 @@ plotFragmentSizes <- function( plotDF <- data.frame(dfFS) - p <- ggplot(plotDF, aes(fragmentSize, fragmentPercent,color=sampleName)) + + if(is.null(pal)){ + pal <- paletteDiscrete(values=unique(plotDF$group)) + } + + p <- ggplot(plotDF, aes(fragmentSize, fragmentPercent,color=group)) + geom_line(size = 1) + theme_ArchR() + xlab("ATAC-seq Fragment Size (bp)") + ylab("Percentage of Fragments") + - scale_color_manual(values=paletteDiscrete(values=unique(plotDF$sampleName))) + + scale_color_manual(values=pal) + scale_y_continuous(limits = c(0, max(plotDF$fragmentPercent)*1.05), expand = c(0,0)) + scale_x_continuous(limits = c(min(plotDF$fragmentSize), max(plotDF$fragmentSize)), expand = c(0,0)) @@ -207,3 +260,5 @@ plotFragmentSizes <- function( } + + diff --git a/R/RNAIntegration.R b/R/RNAIntegration.R index f9773a29..53a367f6 100644 --- a/R/RNAIntegration.R +++ b/R/RNAIntegration.R @@ -29,6 +29,13 @@ #' should have a row for each single cell described in `row.names` and 2 columns, one for each dimension of the embedding. #' @param embeddingRNA A `data.frame` of cell embeddings such as a UMAP for scRNA-seq cells to be used for density sampling. The `data.frame` object #' should have a row for each single cell described in `row.names` and 2 columns, one for each dimension of the embedding. +#' @param dimsToUse A vector containing the dimensions from the `reducedDims` object to use in clustering. +#' @param scaleDims A boolean value that indicates whether to z-score the reduced dimensions for each cell. This is useful for minimizing +#' the contribution of strong biases (dominating early PCs) and lowly abundant populations. However, this may lead to stronger sample-specific +#' biases since it is over-weighting latent PCs. If set to `NULL` this will scale the dimensions based on the value of `scaleDims` when the +#' `reducedDims` were originally created during dimensionality reduction. This idea was introduced by Timothy Stuart. +#' @param corCutOff A numeric cutoff for the correlation of each dimension to the sequencing depth. If the dimension has a +#' correlation to sequencing depth that is greater than the `corCutOff`, it will be excluded from analysis. #' @param plotUMAP A boolean determining whether to plot a UMAP for each integration block. #' @param UMAPParams The list of parameters to pass to the UMAP function if "plotUMAP = TRUE". See the function `umap` in the uwot package. #' @param nGenes The number of variable genes determined by `Seurat::FindVariableGenes()` to use for integration. @@ -60,6 +67,9 @@ addGeneIntegrationMatrix <- function( sampleCellsRNA = 10000, embeddingATAC = NULL, embeddingRNA = NULL, + dimsToUse = 1:30, + scaleDims = NULL, + corCutOff = 0.75, plotUMAP = TRUE, UMAPParams = list(n_neighbors = 40, min_dist = 0.4, metric = "cosine", verbose = FALSE), nGenes = 2000, @@ -90,6 +100,9 @@ addGeneIntegrationMatrix <- function( .validInput(input = sampleCellsRNA, name = "sampleCellsRNA", valid = c("integer", "null")) .validInput(input = embeddingATAC, name = "embeddingATAC", valid = c("data.frame", "null")) .validInput(input = embeddingRNA, name = "embeddingRNA", valid = c("data.frame", "null")) + .validInput(input = reducedDims, name = "reducedDims", valid = c("character")) + .validInput(input = dimsToUse, name = "dimsToUse", valid = c("numeric", "null")) + .validInput(input = scaleDims, name = "scaleDims", valid = c("boolean", "null")) .validInput(input = plotUMAP, name = "plotUMAP", valid = c("boolean")) .validInput(input = UMAPParams, name = "UMAPParams", valid = c("list")) .validInput(input = nGenes, name = "nGenes", valid = c("integer")) @@ -227,6 +240,15 @@ addGeneIntegrationMatrix <- function( ######################################################################################### # 3. Create Integration Blocks ######################################################################################### + + #Check Gene Names And Seurat RowNames + geneDF <- .getFeatureDF(getArrowFiles(ArchRProj), useMatrix) + sumOverlap <- sum(unique(geneDF$name) %in% unique(rownames(seuratRNA))) + if(sumOverlap < 5){ + stop("Error not enough overlaps (",sumOverlap,") between gene names from gene scores (ArchR) and rna matrix (seRNA)!") + } + .logDiffTime(paste0("Found ", sumOverlap, " overlapping gene names from gene scores and rna matrix!"), tstart, verbose = TRUE, logFile = logFile) + .logDiffTime("Creating Integration Blocks", tstart, verbose = verbose, logFile = logFile) blockList <- SimpleList() @@ -321,10 +343,7 @@ addGeneIntegrationMatrix <- function( h5disableFileLocking() } - rD <- getReducedDims( - ArchRProj = ArchRProj, - reducedDims = reducedDims - ) + rD <- getReducedDims(ArchRProj = ArchRProj, reducedDims = reducedDims, corCutOff = corCutOff, dimsToUse = dimsToUse) #Create Output Directory outDir1 <- getOutputDirectory(ArchRProj) @@ -389,6 +408,10 @@ addGeneIntegrationMatrix <- function( imputeParams <- list() imputeParams$ArchRProj <- subProj imputeParams$randomSuffix <- TRUE + imputeParams$reducedDims <- reducedDims + imputeParams$dimsToUse <- dimsToUse + imputeParams$scaleDims <- scaleDims + imputeParams$corCutOff <- corCutOff imputeParams$threads <- 1 imputeParams$logFile <- logFile subProj <- suppressMessages(do.call(addImputeWeights, imputeParams)) @@ -475,7 +498,7 @@ addGeneIntegrationMatrix <- function( jointCCA[paste0(colnames(subRNA), "_reference"), "Group"] <- subRNA$Group jointCCA[paste0(matchDF$cellNames, "_query"), "Group"] <- matchDF$predictedGroup jointCCA[paste0(matchDF$cellNames, "_query"), "Score"] <- matchDF$predictionScore - saveRDS(object = jointCCA, file = file.path(outDir3, paste0("Save-Block", i,"-JointCCA.rds"))) + .safeSaveRDS(object = jointCCA, file = file.path(outDir3, paste0("Save-Block", i,"-JointCCA.rds"))) #Clean Memory rm(transferParams, transferAnchors) @@ -583,7 +606,7 @@ addGeneIntegrationMatrix <- function( #Add UMAP and Save Again jointCCA$UMAP1 <- uwotUmap[,1] jointCCA$UMAP2 <- uwotUmap[,2] - saveRDS(object = jointCCA, file = file.path(outDir3, paste0("Save-Block", i,"-JointCCA.rds"))) + .safeSaveRDS(object = jointCCA, file = file.path(outDir3, paste0("Save-Block", i,"-JointCCA.rds"))) p1 <- ggPoint( x = uwotUmap[,1], diff --git a/R/Trajectory.R b/R/Trajectory.R index 16dc1ef4..c1931e30 100644 --- a/R/Trajectory.R +++ b/R/Trajectory.R @@ -277,7 +277,7 @@ getTrajectory <- function( .validInput(input = useMatrix, name = "useMatrix", valid = c("character")) .validInput(input = groupEvery, name = "groupEvery", valid = c("numeric")) .validInput(input = log2Norm, name = "log2Norm", valid = c("boolean")) - .validInput(input = scaleTo, name = "scaleTo", valid = c("numeric")) + .validInput(input = scaleTo, name = "scaleTo", valid = c("numeric", "null")) .validInput(input = smoothWindow, name = "smoothWindow", valid = c("integer")) .validInput(input = threads, name = "threads", valid = c("integer")) @@ -900,6 +900,380 @@ plotTrajectory <- function( list(out, out2) } + + +################################################################### +# New Trajectory Analyses +# +# - Support for Monocle3 based trajectory analysis +# - Support for Slingshot based trajectory analysis +# +################################################################### + +################################################################### +# Monocle3 +################################################################### + +#' Get a Monocle CDS of Trajectories that can be added to an ArchRProject #NEW +#' +#' This function will use monocle3 to find trajectories and then returns a monocle CDS object that can be used as +#' input for `addMonocleTrajectory`. +#' +#' @param ArchRProj An `ArchRProject` object. +#' @param name A string indicating the name of the fitted trajectory. +#' @param useGroups A character vector that is used to select a subset of groups by name from the designated `groupBy` column +#' in `cellColData`. This limits the groups used to identify trajectories. +#' @param principalGroup The principal group which represents the group that will be the starting point for all trajectories. +#' @param groupBy A string indicating the column name from `cellColData` that contains the cell group definitions used in +#' `useGroups` to constrain trajectory analysis. +#' @param embedding A string indicating the name of the `embedding` object from the `ArchRProject` that should be used for trajectory analysis. +#' @param clusterParams A list of parameters to be added when clustering cells for monocle3 with `monocle3::cluster_cells`. +#' @param graphParams A list of parameters to be added when learning graphs for monocle3 with `monocle3::learn_graph`. +#' @param seed A number to be used as the seed for random number generation for trajectory creation. +#' @export +getMonocleTrajectories <- function( + ArchRProj = NULL, + name = "Trajectory", + useGroups = NULL, + principalGroup = NULL, + groupBy = NULL, + embedding = NULL, + clusterParams = list(), + graphParams = list(), + seed = 1 + ){ + + .validInput(input = ArchRProj, name = "ArchRProj", valid = c("ArchRProj")) + .validInput(input = name, name = "name", valid = c("character")) + .validInput(input = useGroups, name = "useGroups", valid = c("character")) + .validInput(input = principalGroup, name = "principalGroup", valid = c("character")) + .validInput(input = groupBy, name = "groupBy", valid = c("character")) + .validInput(input = embedding, name = "embedding", valid = c("character")) + .validInput(input = clusterParams, name = "clusterParams", valid = c("list")) + .validInput(input = graphParams, name = "graphParams", valid = c("list")) + .validInput(input = seed, name = "seed", valid = c("numeric")) + + .requirePackage("monocle3") + + set.seed(seed) + + message("Running Monocole3 Trajectory Infrastructure!") + + #Create CDS + sce <- SingleCellExperiment( + assays = SimpleList( + counts = as(matrix(rnorm(nCells(ArchRProj) * 3), ncol = nCells(ArchRProj), nrow = 3), "dgCMatrix") + ), + colData = getCellColData(ArchRProj) + ) + + cds <- methods::new( + "cell_data_set", + assays = SummarizedExperiment::Assays(list(counts = methods::as(assay(sce), "dgCMatrix"))), + colData = colData(sce), + int_elementMetadata = int_elementMetadata(sce), + int_colData = int_colData(sce), + int_metadata = int_metadata(sce), + metadata = metadata(sce), + NAMES = NULL, + elementMetadata = elementMetadata(sce)[, 0], + rowRanges = rowRanges(sce) + ) + metadata(cds)$cds_version <- Biobase::package.version("monocle3") + + rm(sce) + + #Add Embedding + message("Adding Embedding") + reducedDims(cds)$UMAP <- getEmbedding(ArchRProj, embedding = embedding) + + if(!is.null(useGroups)){ + cds <- cds[, which(colData(cds)[, groupBy] %in% useGroups)] + } + + #Check principalGroup + pCells <- which(colData(cds)[, groupBy] == principalGroup) + if(length(pCells) == 0){ + stop("No Cells in groupBy are equal to principalGroup") + } + + #Run Clustering on Embedding and LearnGraph + message("Clustering Embedding") + clusterParams$cds <- cds + cds <- do.call(monocle3::cluster_cells, clusterParams) + rm(clusterParams) + gc() + + message("Learning Graphs") + graphParams$cds <- cds + cds <- do.call(monocle3::learn_graph, graphParams) + rm(graphParams) + gc() + + #Get Prinicipal Node + message("Getting Principal Node") + closestVertex <- cds@principal_graph_aux[["UMAP"]]$pr_graph_cell_proj_closest_vertex + closestVertex <- as.matrix(closestVertex[colnames(cds), ]) + rootNodes <- igraph::V(principal_graph(cds)[["UMAP"]])$name[as.numeric(names(which.max(table(closestVertex[pCells,]))))] + + #Order Cells + message("Ordering Cells") + cds <- order_cells(cds, root_pr_nodes = rootNodes) + + #Get Pseudotime + cds@principal_graph_aux[[1]]$pseudotime <- ArchR:::.getQuantiles(cds@principal_graph_aux[[1]]$pseudotime) * 100 + + #Plot Results + canRaster <- requireNamespace("ggrastr", quietly = TRUE) + + p1 <- plot_cells(cds, + color_cells_by = groupBy, + rasterize = canRaster, + label_groups_by_cluster=FALSE, + label_leaves=FALSE, + label_branch_points=FALSE) + + scale_colour_manual(values = paletteDiscrete(values = colData(cds)[,groupBy])) + theme_ArchR() + + theme(axis.text.x = element_blank(), axis.ticks.x = element_blank(), + axis.text.y = element_blank(), axis.ticks.y = element_blank()) + + p2 <- plot_cells(cds, + color_cells_by = "pseudotime", + label_cell_groups=FALSE, + rasterize = canRaster, + label_leaves=FALSE, + label_branch_points=FALSE, + graph_label_size=1.5) + theme_ArchR() + + theme(axis.text.x = element_blank(), axis.ticks.x = element_blank(), + axis.text.y = element_blank(), axis.ticks.y = element_blank()) + + + path <- file.path(getOutputDirectory(ArchRProj), "Monocole3", paste0("Plot-Results-", name, ".pdf")) + + message("Plotting Results - ", path) + pdf(path, width = 6, height = 6, useDingbats = FALSE) + ArchR:::.fixPlotSize(p1) + ArchR:::.fixPlotSize(p2, newPage = TRUE) + dev.off() + + cds + +} + +#' Add a Monocle Trajectory to an ArchR Project #NEW +#' +#' This function will add a trajectory from a monocle CDS created from `getMonocleTrajectories` to an +#' ArchRProject. +#' +#' @param ArchRProj An `ArchRProject` object. +#' @param name A string indicating the name of the fitted trajectory to be added in `cellColData`. +#' @param useGroups The cell groups to be used for creating trajectory analysis. +#' @param groupBy A string indicating the column name from `cellColData` that contains the cell group definitions used in +#' `useGroups` to constrain trajectory analysis. +#' @param monocleCDS A monocle CDS object created from `getMonocleTrajectories`. +#' @param force A boolean value indicating whether to force the trajactory indicated by `name` to be overwritten if it already exists in the given `ArchRProject`. +#' @export +addMonocleTrajectory <- function( + ArchRProj = NULL, + name = "Trajectory", + useGroups = NULL, + groupBy = "Clusters", + monocleCDS = NULL, + force = FALSE + ){ + + .validInput(input = ArchRProj, name = "ArchRProj", valid = c("ArchRProj")) + .validInput(input = name, name = "name", valid = c("character")) + .validInput(input = useGroups, name = "useGroups", valid = c("character")) + .validInput(input = groupBy, name = "groupBy", valid = c("character")) + + .requirePackage("monocle3") + + groupDF <- getCellColData(ArchRProj = ArchRProj, select = groupBy) + groupDF <- groupDF[groupDF[,1] %in% useGroups,,drop=FALSE] + + if(sum(unique(groupDF[,1]) %in% useGroups)==0){ + stop("useGroups does not span any groups in groupBy! Are you sure your input is correct?") + } + + monoclePT <- pseudotime(monocleCDS) + monoclePT <- monoclePT[rownames(groupDF)] + monoclePT <- ArchR:::.getQuantiles(monoclePT) * 100 + + #Add To ArchR Project + ArchRProj <- addCellColData( + ArchRProj = ArchRProj, + data = as.vector(monoclePT), + name = name, + cells = names(monoclePT), + force = force + ) + + ArchRProj + +} + +################################################################### +# Slingshot +################################################################### + + +#' Add a Slingshot Trajectories to an ArchR Project #NEW +#' +#' This function will fit a supervised trajectory in a lower dimensional space that +#' can then be used for downstream analyses. +#' +#' @param ArchRProj An `ArchRProject` object. +#' @param name A string indicating the name of the fitted trajectory to be added in `cellColData`. +#' @param useGroups A character vector that is used to select a subset of groups by name from the designated `groupBy` column +#' in `cellColData`. This limits the groups used to identify trajectories. +#' @param principalGroup The principal group which represents the group that will be the starting point for all trajectories. +#' @param groupBy A string indicating the column name from `cellColData` that contains the cell group definitions used in +#' `useGroups` to constrain trajectory analysis. +#' @param embedding A string indicating the name of the `embedding` object from the `ArchRProject` that should be used for trajectory analysis. +#' @param reducedDims A string indicating the name of the `reducedDims` object from the `ArchRProject` that should be used for trajectory analysis. `embedding` must equal NULL to use. +#' @param force A boolean value indicating whether to force the trajactory indicated by `name` to be overwritten if it already exists in the given `ArchRProject`. +#' @param seed A number to be used as the seed for random number generation for trajectory creation. +#' @export +addSlingShotTrajectories <- function( + ArchRProj = NULL, + name = "SlingShot", + useGroups = NULL, + principalGroup = NULL, + groupBy = NULL, + embedding = NULL, + reducedDims = NULL, + force = FALSE, + seed = 1 + ){ + + .validInput(input = ArchRProj, name = "ArchRProj", valid = c("ArchRProj")) + .validInput(input = name, name = "name", valid = c("character")) + .validInput(input = useGroups, name = "useGroups", valid = c("character")) + .validInput(input = principalGroup, name = "principalGroup", valid = c("character")) + .validInput(input = groupBy, name = "groupBy", valid = c("character")) + .validInput(input = embedding, name = "embedding", valid = c("character", "null")) + .validInput(input = reducedDims, name = "reducedDims", valid = c("character", "null")) + .validInput(input = force, name = "force", valid = c("boolean")) + .validInput(input = seed, name = "seed", valid = c("numeric")) + + .requirePackage("slingshot") + + set.seed(seed) + + if(!is.null(embedding)){ + rD <- getEmbedding(ArchRProj, embedding = embedding) + }else{ + rD <- getReducedDims(ArchRProj, reducedDims = reducedDims) + } + + groups <- getCellColData(ArchRProj, groupBy) + + if(!is.null(useGroups)){ + idx <- which(groups[,1] %in% useGroups) + rD <- rD[idx, , drop = FALSE] + groups <- groups[idx, , drop = FALSE] + } + + sds <- slingshot( + data = rD, + clusterLabels = groups[rownames(rD), ], + start.clus = principalGroup + ) + + #Get PseudoTimes + pt <- slingPseudotime(sds) + colnames(pt) <- paste0(name, ".Curve", seq_len(ncol(pt))) + + #Scale + ptn <- apply(pt, 2, ArchR:::.getQuantiles) * 100 + + for(i in seq_len(ncol(ptn))){ + + ArchRProj <- addCellColData( + ArchRProj = ArchRProj, + data = as.vector(ptn[, i]), + name = colnames(ptn)[i], + cells = rownames(ptn), + force = force + ) + + } + + ArchRProj + +} + +################################################################### +# STREAM +################################################################### + +#' Get a PeakMatrix stored in an ArchRProject and write out for STREAM +#' +#' This function gets a PeakMatrix from an `ArchRProject` and writes it to a set of files for STREAM (https://github.com/pinellolab/STREAM) +#' +#' @param ArchRProj An `ArchRProject` object to get data matrix from. +#' @param useSeqnames A character vector of chromosome names to be used to subset the data matrix being obtained. +#' @param verbose A boolean value indicating whether to use verbose output during execution of this function. Can be set to FALSE for a cleaner output. +#' @param binarize A boolean value indicating whether the matrix should be binarized before return. This is often desired when working with insertion counts. +#' @param logFile The path to a file to be used for logging ArchR output. +#' @export +exportPeakMatrixForSTREAM <- function( + ArchRProj = NULL, + useSeqnames = NULL, + verbose = TRUE, + binarize = FALSE, + threads = getArchRThreads(), + logFile = createLogFile("exportMatrixForSTREAM") + ){ + + mat <- getMatrixFromProject( + ArchRProj = ArchRProj, + useMatrix = "PeakMatrix", + useSeqnames = useSeqnames, + verbose = verbose, + binarize = binarize, + threads = threads, + logFile = logFile + ) + + featureDF <- ArchR:::.getFeatureDF(getArrowFiles(ArchRProj)[1], "PeakMatrix") + + stopifnot(all(featureDF$idx == rowData(mat)$idx)) + + countsDF <- Matrix::summary(assay(mat)) + peaksDF <- data.frame(as.vector(featureDF[,1]), featureDF[,3], featureDF[,4]) + cellsDF <- data.frame(colnames(mat)) + + data.table::fwrite(countsDF, file = "STREAM_Counts.tsv.gz", sep = "\t", row.names = FALSE, col.names = FALSE) + data.table::fwrite(peaksDF, file = "STREAM_Regions.tsv.gz", sep = "\t", row.names = FALSE, col.names = FALSE) + data.table::fwrite(cellsDF, file = "STREAM_Sample.tsv.gz", sep = "\t", row.names = FALSE, col.names = FALSE) + + return(0) + +} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/R/ValidationUtils.R b/R/ValidationUtils.R index f2b5577b..3daeeabe 100644 --- a/R/ValidationUtils.R +++ b/R/ValidationUtils.R @@ -30,7 +30,7 @@ if(all(is.numeric(input))){ #https://stackoverflow.com/questions/3476782/check-if-the-number-is-integer - cv <- min(abs(c(input%%1, input%%1-1))) < .Machine$double.eps^0.5 + cv <- min(abs(c(input%%1, input%%1-1)), na.rm = TRUE) < .Machine$double.eps^0.5 }else{ cv <- FALSE } diff --git a/R/VisualizeData.R b/R/VisualizeData.R index e7a0749f..6f2daa8d 100644 --- a/R/VisualizeData.R +++ b/R/VisualizeData.R @@ -92,13 +92,22 @@ plotPDF <- function( for(i in seq_along(plotList)){ if(inherits(plotList[[i]], "gg")){ - - message("Plotting Ggplot!") - if(!is.null(attr(plotList[[i]], "ratioYX"))){ - .fixPlotSize(plotList[[i]], plotWidth = width, plotHeight = height, height = attr(plotList[[i]], "ratioYX"), newPage = FALSE) + if(inherits(plotList[[i]], "patchwork")){ + + message("Plotting Patchwork!") + print(plotList[[i]]) + }else{ - .fixPlotSize(plotList[[i]], plotWidth = width, plotHeight = height, newPage = FALSE) + + message("Plotting Ggplot!") + + if(!is.null(attr(plotList[[i]], "ratioYX"))){ + .fixPlotSize(plotList[[i]], plotWidth = width, plotHeight = height, height = attr(plotList[[i]], "ratioYX"), newPage = FALSE) + }else{ + .fixPlotSize(plotList[[i]], plotWidth = width, plotHeight = height, newPage = FALSE) + } + } if(i != length(plotList)){ @@ -309,6 +318,14 @@ plotEmbedding <- function( if(x == 1){ .logThis(colorParams, name = "ColorParams 1", logFile = logFile) } + + if(!is.null(imputeWeights)){ + message("Imputing Matrix") + colorMat <- matrix(colorParams$color, nrow=1) + colnames(colorMat) <- rownames(df) + colorMat <- imputeMatrix(mat = colorMat, imputeWeights = imputeWeights, logFile = logFile) + colorParams$color <- as.vector(colorMat) + } colorParams }) diff --git a/README.md b/README.md index 49987962..01464e8f 100755 --- a/README.md +++ b/README.md @@ -3,6 +3,23 @@ [![Lifecycle: maturing](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://www.tidyverse.org/lifecycle/#maturing) +### ArchR has new features available for scATAC-seq Analysis + +**Paired scATAC-seq and scRNA-seq Analysis** + +ArchR now supports paired scATAC-seq and scRNA-seq Analysis!
+      See updates with importFeatureMatrix, addGeneExpressionMatrix, addIterativeLSI, addCombinedDims
+      For a brief tutorial of these features : https://greenleaflab.github.io/ArchR_2020/Ex-Analyze-Multiome.html + +**Trajectory Analysis** + +ArchR now directly supports both monocle3 and Slingshot based trajectory analysis!
+      See updates with getMonocleTrajectories, addMonocleTrajectory, addSlingShotTrajectories
+      For a brief tutorial of these features : https://greenleaflab.github.io/ArchR_2020/Ex-Analyze-Trajectory.html + +Additionally ArchR now enables export of a peak matrix that is compatible with STREAM!
+      See updates with exportPeakMatrixForSTREAM
+ ### ArchR is currently in Beta and will be in active development through the peer review process. ArchR is a full-featured R package for processing and analyzing single-cell ATAC-seq data. ArchR provides the most extensive suite of scATAC-seq analysis tools of any software available. Additionally, ArchR excels in both speed and resource usage, making it possible to analyze 1 million cells in 8 hours on a MacBook Pro laptop. diff --git a/data/geneAnnoHg19test.rda b/data/geneAnnoHg19test.rda new file mode 100644 index 0000000000000000000000000000000000000000..932d10a35bd4563f099bed0f5cd55220ef7c9588 GIT binary patch literal 502826 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

gz#^<-;??MIRdG-{8I2w;$;EF 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

N7-+4thb5@pEJzY%IC%PWsbEu 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 p z3uNl^7v7-v!ecF!JSiLWLN5+rPIujQ6u=dFibUBFQEt2dZjr#qW-+Vxk@1DwZ#pOs zlmY0d-;bQK(=HdfoahewZ36zrskoM>KZMyT&{!%hUx4E77 zokw|Mk;0LQg_iN{kuHWC5hu!Ib=&OgF(N~sBH5DSMAL(Y6`QbGy$P+ex4HiE>g``q zc;L;Wqj6G%zh(9_6}#N1RqzFNgI+!7fl>?-e_5KXKPu)N79(s_&ibpaMH?31HtuDI zRW()qyUXjGEp8yQ@m>Bxz|?*RVaR97jz8!q$2v*HqoTN?{UjjOAk6=Px;;V8r2X=0 zhbTweDWLgrMwufIBW!hsy;TuddOy>a_ow*jTcsxw$FT$is)d zn&NVFg;v;0Z{;tm=qv4_(A{_Q^8W)UXeaJGFy*742hoIoo)P8M`Mxn>Sje7IWm1Lhe*CmPj#e%XDHc zI%s!fOkg?hBhI)erTd7*LygYtGFeC$+QF$1ZWp9i>KY5E1>UCt=)FjL>SypOe3172 z+hyGqrGvnwqR&Jrm$O94bYK!DcvaejfjxGI zk}`7G)yJkdM_Rm;(>McB^^zd*CwNb=YgYu#&Y#^O!Yw@BzvDXw*FbkGY=SVHpq~U}b~8fGnfwrcTAF{6RGl;Sm;{b1vT;Z@f_r zp{MB;IrclttSt9b-5!KlI$y>jl5S#(|Mo2F#Jc1Y z9t$qzIs-OC_?sld~8Gep;) z8MII}&b&Ye=n+DzFVK95UNlzl=P-@~Kvvahc*g6KG(xrtDGDIiq)MauH-qjeu|-$W zwtbh6;vXM5%FAkCrWn-u@1du!Mis37*D(RuS|+{hXBq73LbtS?8g+{|e-07avkZM% z|2fOBWdC^(VbP0`b%MF>%9nr^Q|VjlM$9IqfJBq{ICbY<4b@2C%`*ZdOh(jGy660U z=TTAjFEZZjVcI>=H@#@tUmur1i*JsUJI<2DO+UmXi~0lZg4EY8b0cr@51j;oeM6d z!ZX5$cu|b#!a@)Ks?wpXpUYuwV_@BJ>{%-I&$Mzn_#hrdpZLZS@*qU=d$>u5A|aYS z{LP++Vf1@8nuCy}I#GQ4>-hHaRw?SeuoT|Pvi!|7(H3n&-x`emo@FBZ`W$Q7PZ%xJ zE+0~^^Mc;Dpovhh3B7sLr>tb>SI>ZRT`nEjkVc)-8B2LZ`s_^W zVGYb;L|B=Xm_vqWG}52$)7E0&olMY1r;JY6`w{ne;b<3W22p=*e!yof93pUQ&z?>* z6v-=PL@hMp=Dk&x{BQW_$G^>uGO)T3J`=fS3;qTg>O(8|r?~z-2dr6pQLEThjP$5v zs9B;=5F)bTGIHp#?>=2T)4<;Bh2tcL^FWAJ?-NZfM7k=cuqXlc^f6yyH0zXJ%H{?x z=|tUZrCMny(&S82_D{5Eq<6V99dPu>`T3)S#us?knaf;Xo)%H@iR+GWEM4I^b}Q#u z(AVvCk4yKUq1gy+jctiyom{4arh8a{(_BemOuR-F1h>aSPYr`Zg|@`ao?Y~+g~oGBZn|yI*ji`& zxVZ1yJl=e6L8A#A5dR&b)d9R`bHKp(ABBHvk?9KW`{foPv)?0eewW0D@6Fze4g0qg zfnUsmrF#m70gD_t`bH(W$wb`q`~k--8q33ETVf1vW@U$>RmYpiGmT6jbL$=MLOUzv zT)M-KW1enB*?sND8$88*IX;sh%=n1xT0ZO9!3QBTYhfn9djo@-4JJ0S7yo7m z0>R@8y*~ke&&TVl&v0KvhK=F1XUc}VOD^6E>Dx%D-MQhd+@r$Rnr#<4CukL|PK>M< zGOey;qJhAnx&GxsMVjf?H6q&wH0SUedd(8vUEb#3Thktl2r&tiU_w&SA`XR@#xCNK z>Ye?zv0DdFJeeNbJIK36aN?`^aJnMT*q4JL8e&712}%KuRQp56SX(wmb14}JkZ@jL zvIF)>n0Tzfr+EBX+M6*9m)18L>IT#Gk3D7O{pq zA@W++Tp@MN+TL2wULcPoLaq;z>O9kZ9a%z-M7X;gWf+5RoY_5Vp=1O|DZT)QNob3Z zV%gsVT4N7v3YOPp?r?swe*%O-FYR^ckc97MfG}^wuC!x$LHe@?Ue@d4eFsX@y?0lu z4|B7f%GCxa&H4Hqq1|kuf~KOU6pUyEv~QWk%%|?#g#wBjO{V=(Ld%`kQMVLqr-uW3 z1}rZRy$`lJoKYLyjB}iKhpl>jW}cXrH>je!d4KVo>m5{#^d`0L?e+&+@!0TjV19AyOj`gzPLSIw9WF(DdgwZ4w)Lq;i{B)QP68kC z#?yIs)?Yr4@u+BByHloP)ZyNcdj@rgF|%nvGA35f=7(vFWg0F(bp`cFl-1zb*0sQ% zSyw)3_4Q#p@}F1S7W#Xk9tR&}E#xLO8@TYlVPG0?0HP`0aXn{XYgY2r6-O}Vj)|l& z%h4UABiy&GfZIKjs*9{rq2sGMy(%mfLAP;npMEC^WD!YAOhGOfjT>OS4sa8ke)^$bUof#! zfw}JrnRYHq&GL9-oIYj@IV~T=%01M-(kb=;0yymk{U*TgGd!<%Bz3l>+&vx0z|WWQ zyzju1uzp#1nUz#FENP|Q=Txr$E%dP}PiN>oc{x^Klmc3Int_k};L>+{+M4u?yzx!Q zUha~1w!yB=8JFZ+1DE6e44Dv{JItpS48LvkiUxFdEu(_Bt+>O>Vn=tDE-~r22r&r& zD#|(;*KXmcO2cOCEvx&@`#?D$ki{7U8PynbfJ0r{SL!D$jaYIlGkROuN zGc!Q_K|YgrQ}31DAJB9<6FiqA)Xhue^bwDn*G}HCb~p;;DE^#|>eKcgb(!))CcO9* z)5Mv)7S{p7`c3A-HLSVx3qI$V{<0(23tU>JuXDJhDhH#{ix)23Z)4DSleAEb3P*h> z%-fC$iH_EdX|r7rYFP)n0?R@Alv+gD;~hu3|D{RN><~L3RDX^RdZ6c1+ArEpgiit5 z8vBj4hy?^rzk60VZgT)1i*TVBUituU!X}aYh}KCC^g@*cS@|Cy1#jq->5lN z4SYX4&3SLR^U?dF8OG(1@{u+Up45SlMH{o-<1y>ve?$9mIXXGQc=%3Y@q)v5hh2Yi zjK}RU7;;bUah^orxPF;*5mw`n0Ib5Tt9-R))}}xo!vFtb2cS}sVwCzP_Fbe{fp=o0 z$A#i0dLn5!2sfn`1n$qjVEELj5CbI-_%(m8et~@T^7^w&R}zXUiXmt(N2FYG7md;z zNfXA+*05OVKOs5v3|4|A&!^jqSiWusDd(4`n~qu5L7~@r zE<5;%bb6>56*jR|KKgh+8xe3Sk!bD#MnusAnS?8yll@G#n7^P507iN*)d`c4lhx#V zB|n5tgRK7SWQ%WruMI8q6!t0D^s`>+vDk8FG+$jWZm`@E)=hNho^QJHiW0=1Slm-8 z+C7)?sv+u?kAa%Kd+HxQW#22EWlDZ%wd2NvL+gs3J45;RMjp8Ixeo71y==dn`z;Vq zX9}^H0Jpzpl2+NBeG}F`_Aa=+tHZ55Kp-Y}W-d$hB6uqf@P3P+g%?#3-q36K-@qZI z);I-MKaZbC1>(oYle%3URK-SBSYQ0o+)^xMjbAx@qh!$XlU~&7IGtL9ZK6d^BIEpK z*pE}^uSP+>4Gew#G$Ei`cu%+V+Bv7osne7u=Yij;sBGTX^pm$q{;~R)D@~s@R!W$e z&OXejw=C7?4Scy#`&Ss}!))~&4w#}eV=bna#=G+bJ{$+C+ixpyB&P|gC*%x7$F@&1 zFTxD?SSqFBX{aU?vH@guJptlt1fgzp6=@e{; zTyl4~7I>__7rSOihCg-!7Uc`T;0c)N5U`}6#e;Pe~Pkdhv{nzUQCzumx-^8qGq}L zx8x2T<5RRQB~*@l+T82Ie^xZfBXk@3Ez8JKGa*WE+s4}v_rAVCU|Mnzre5z-(QziP zQtwrtT||MNS2M8_Qug!_jo$-5!lr5Xea}&nNiDv)GNc}G&ZnDu63zyZf zKsSCEQ1TDUG)e`vSayAGAHu+z_s)eBadj$y?db4lrW)|Fz*LMVM3-nsv(-|?cW#?@ z4BH}|QV1*F!PxrX7~v(S2#gGxoW+fEVLmJDWb~bI%JyDM(eUW(%Z-2o_JuKW>v{Qa zY|uXY)xSluml`5w>)_YtxK#vl=aP%kuU-24@qs|@dq6w38J8E>H3g}SO{ZK(GbUQ` zd}`N7FUE0x;}|Ee#xD+;yLepdQ6-K!2T7jy9gQD03@DNQ@qMx!W=PM5yEUrGG$=dp z@w>p)KiGl2`=hFkCoH`3^A%$c1%Djr7?N|Q!w^c=Pr%vVvf%*w#E&5c7h6v$?wx?%6QGb19+al_Y<%bx z8IiutLy$j7bC>%Q^cpNTP!{(z;?Bgg%{dvF!DYJmHvc`1 zix=oKc5EU6xYi+3KTnbboa$ef664B%fz{e+pwdI5moe?FlA00Qu{^AV{T3qEgF`L7hT!CCL&2wQ_mJdRU zzSOnT-82tndr(2Ppu|o!zQ_b41|FN1a9qvR?`PvV2Y5rID)7d-AwQAYXjOAeq@CGo zjd|I`Y`3-<+r1;jppiWq?ZSr&P*heb|L9C@6=rCv=s5#zK$-r3*m3gOa zdnEHqHqrg>@=If+*wt`!wOV8<+zXL>06=~}izSQ%Dv`9+vUOF=Dqf0#W`ci8&y zS5A44B4bZT;FI`$hDei()pqR$d&W8!p0+36y%JxU9)_pvdGbI9n);U$lEk+auD2fo zVC#ZFMyOgJqBOQOR9eSw^)`Uj=>deMthGfDIf~%=Ccx<9qETo6?5B79Jlaq>&$~G8 zb?eyYGq=&(75R17?T-#&Zxol+cMzr@n)0f=^;v-3jy;btX)J>oH2(HqsS@uT zpbP^0-UUB~94cK#xtIjKBys;vabRC|Y3ss1oHGk^Ichh?Xqa_?(>@!f*IsT{|QOjOpXXAhs^4?=&%{Jv@sq zw972R?jr^@pHMV1QR|f{o03cRpe;z&v!{YwEZ$#)Iqd>ZQDNB9s`rulBJE$0E04*# z{ch6^B{fW^bsc1pr?b~~AbhVhEP3TQm8I)(^{@BO`t@@6as5~?TH*I2o*#9kh?nO_ zAWZaPCQBxN{;>|d?^<1(fR7wJ(_*mWC9isuyJyZum4TsbE8>t(u^4E4eA6j;nsUa2 z{&e^W`8PPk<9RKCCypp`-Uuj0fkt1qsQv^;Dps=qSpR=*gdy?q=b5j&F(|x4&qmM3?|<)Vx~$W2LPjGlj;YkUsV8vw-g3r7DuwIt zgx!&n^LtAQt z{wS_GnCrVAOb5bD>e(g8ZYe#yYhT99RT<1d+`7&YX7uQ$@%k3j#}b|RybyS_nwi`7 z)#J$kgYyn7-_FfDmSk|eG_VTR5{XDAacVgVH({!U`ZT4Qi>ak^BmHSo2MoqB2SK{T zgHvc99%2G7-#M)*zDv?9-}XBC>7C^2?^$VEb*`^gKqEl*x`8WgGIsfP*^iG=oStgoEOKO?^u?A0bZ7&4mVdu9g-`foci= z?y0fa-q=cJ=Z>C=KC%OcxEJLt$kU;%;sN{fvf|C(=$;W_Dp>e{k?x#zRq;FyerFTgye1`Q{Id#AkE^_IU?92c0W>e(U}{ z1wwZsZPVnfNARbFGeJ$}JwA)JrJ@}kmRx=)@*S!%gnisE!00FB_z;K&QL4O4|4}!xRF9GQG5>o!LO;3Z2{Px(=uaPeY1aIn>{bzaw> z6a8>|iw%Ym9+R68eN?tm$l!MKcp)q%Q103P4ngs%Euo0v zDLY(|pZ(*DEfhPWLZ@wy)g$ll2Oh30MqQ;?u`-l@)ApAX{0+7$O7qWp&-h;y^jPDI zpSR@+FKj|VyD9?#rKlI`td%&urtBddixxkLo1vAR^m0d2dKI`OM%ZcvqX)&#i1ZoqjF=-CmCq9W9aQH9n`h{+_dTOS4y6E8Z(Zt1vSH z1#Ek_0d%?aNS(_L&z_m?S4mgt)ipkF7iI|8_I^>jW@0^N(wDZgf0_M)Nc`^AH2NjW zjKASd3~|XW@goC;CGoY~f^~55x=p>=?$5~OzW8Gvn{jEQq!}`&Tp5R? zo9j(sl$)U-=~P;b8mC_Gg_;^c>UXMQE>$z>Dk`@B%M$9)3i`EtK25_m<8AXI(_x#o zYS&~56BL=CI{vv2|9T9;I>+l{wp8>eJD`usHkj&j17S+eEUs-oK;9-GJ6TkxrGMv! z0+m3hV>>ZOgj(;n%Rsg=)%ugxc;WA}lj_~VmWs2>&!a8c=jSep55HdM3o9&IUr9J{ zRewP|zk0dvx>;UKbha<5vg5e~Oj>VtH()RSpF|fEC#WNjj?AUk@{DT-JrS20#1C$sM;Y?kBR9_Yo= z){p#sn)9Wk_%9cmX*V+7J zq~nGq&u~+h0e?oBABrhlzfmp!Kz&q(`biXrkoQWgYL2s51XSv!|6B!R2lrdo?PRT& z9Ihw2Tj1_$-fEA@zyrH8Z^Ej|K!h;(bE2F2tg1Nvg$0STX|j8rr46nI1DHBjN;=1P z@v>!=Cxh>*5Z&?803tbLpR%iXg~yP*O(^B}Du?H>qDKD@UvC{1RoF$157MoGbV@f! zw;-L;UDDm1lF|xDH%JQ-LpK5f(jeW8baxE=?(n|v_pSB)@wq z@!{AUxb^g8o0&&{U_sNR%tr?_s|Bp%`bFLK55(u6UWWM$eHsYPrQP-Cr8_j6uw;MB=q%Ct@omo)!PK$74SNa!&BTjkn|ryI0LCDS3=xQ)2oUXvXbieJ z9!}_{l+-ZeR3jVxqkOP4c*X-?Zm+7N2&(jzNQJm8$Hdtfn>UwY8e!9`Q>Hn1BvG>&eI}Is zB*`TEWEXNLWMpj$D;&e5``wU{Ky&oxH4g&{|BuM<|4I&bkPqcLtukqX zUrPcBHw6?M$cMceZk5+(|AsY;#%VtD&ZIR06+#3f(yc35l`AWzfnvu58kNaZMrWi4 zK#aw~`-V&!hutdaDJw7qIn(9^rZf%8IW6*C7~rpW|CZeQR+wOC^|w0-;vtZuUfQq- z>b~P$WJEs#l;73(5R~?D-5~&0l~c^Zz?k^UX}_ND&~J`Ui}7Gc1%7h-Zqaog%dIh#sm5aB{G+*$k0=59@qYR zD~$o$oa{P8)gzL7rY=ZJ=8K2~ay2TkNIhMJFy@U#)3%2gQ^Dc2tik81Dqy;D+x%7d zrKO!?JK|1+UvCJ)a?G=S5gkD81}YTkqB^GxO{o6@$D4f^=C|>M#{uO>>ghuKuNk2p@_u` zOdD{yWi%vVGCG&7var&=F7DrG?nzF7Z0z)N?#9i9yZI)5qtJH@a8W9a6=e;m#W__6bS9*1m`jZrw3o{y} z5dYR%B>)y;Hh)u|s3TCUHDC#q{nWd8G;j-0)=n`{bCT~fYsz7+-PHlg9XQ&)Opjf1JTXk{` z54y*an~bDrv8pC(?7wckU|w+dqp1k%-dxJcz8>GHBBG4P?(JeK!6?h!RZfB5#F#iK z4HdKTP~0+&AsrWp5bc3RPg*^2I9zmUT|rYS?pMeJ`^}A7M3~r_!vbf=Yl@F@`HvVYeal{A7P_=7|?M24)3>%Vu3~O6isbaRWP|>ps69fBh!r@EUwW zeEZPKk!lK50KHG%kS7~uREEaiT~h|iSxKl2pH}|dI;S0rB*3Q zWaf?4Bm8=%;Wox(vs}9#Nq?_}2B; zui4;AUMttiB`LyPhXZW_9~7@7R+Rm_loH)x6G1?}FP>;)XJ_IG6Dp;CmdD}Fx6t{t ztjKaYWIujlwXN+mgTq)k@ zk{5Aty@3XfQ;7FF>b;%E9{;5@OS3LGSF3fB)n}7+;<_LU6x1V61yv?J)Z))p!E&TX zgMjKtwKrkA+J+|L2c_Zc6?ep4bt>g(c`n5>gaE?CxCl6{q>@zZ+3i%i!W#FNa7f;( zm@t>NuS)rZ@5QIRKHIoLjNf4pC-t7Dn>^`^9D1Qb?K@D-QQ{rYJ)sSCkHEGX?6O8TZNoqS;-p6w&0Co5ODm^a>reAQLR+U~D;_x=B3iQZ30qz=afvfO^oz^sHm_z9ygy97KmX9q2S zx9!EvJB&11X>$Ce^Mt&2A5Ij`-{T#jG0MZ~f?W!=^LeCl1eVpa(Tiv8v;-Dppp2b0N=g_aqn?E(T@p0_J-(6xzSEA&r+N2$4`p1SWn7w z!%P37F(Sq9EW7pKS+h(CX=FF4ok9%6`Q>wo{P4oTSgM(tX}(DA-(9Fh;?Q+3XYM)V zW6S;Kpvlc=Y?))N*5#$Bm5-Vod=iBe`JIP33eB3ylluhTE;l`X3r?LI7sS5Rt6UM% z32kyXtc7b5MZ@NF!CV}JuI(5@olV%IPJM>dPbfn&#<=KL*Nq6EHTYCzO3a-QpgLKXwsaZYUHuVCEM15C|cvNhA&0xW}AqcVJMCl&e z;&M5kSVUiYc4}jud^@GVyFuaj*9Pm_{nYf+@@9fHiM-qoba??wap)&s9H^a4xyJ@eKdzisD!|J#Qt={fYZ`-xI zTtNb6Wmd_(bnKJ?Ipfn!acrmx$iV>>aE9B}NNl`m3V(2$^+e;f6km1Opj6;XWVzpz zrKxW+eKI;h37?=l8h;hLT@qP}Rqe@1gCaj#9K(t51m@ee_QGTdocVXP~n!MD(Uv#jbs<^p|;LD z`}+!AZ^x!nFAdqY)~>w`IfR+x5cA=M%@RS4lt+_ELVd0dBa$xy``{2K6d+jJg>D@E z7RIDz`zx&%lnk9Hjwzm7&;DBbI*2$5m_ApJpcfWVwXt*g}86} zWRH~JeMr?CnD-q-{!!xdCs3&tbQ_Sd*qP54lpR|#OFBMce@W4iVmq4J zZx=Cz1;ZjSKqlQIEETjP*Mx#I3Rsq!S)FcwA%b5?q8Uum0fwH_(Vd$!=@tR$Tld77 z&(p`j@-vei?$6|9gMvm%2?be&TTn<_W9(m2;0#WK{b z2Y%ygE>dz@fpJE8(D&CMfO+F`9VN0MElRPfTV1*$@KM@*PGHF3m=Gf|gOD?8awiPPJ^ZW9)4VkxqhZn;Wr?qgT7*6v`Zl9O;eL3>AS&Bk)f7D%66hqv>S?n|@ zqQV5-5jH{&xiE2-(z8s|a|o(%A^_r!a+=^xP85`0G&nhb-#q7Fsg-lfF+x<5&6f6S z@r%sNw&6W?h86HG)4iNAoCfZO*vD?*`p5?Hc%;qX@J+f+2-*(o@q)3tx1UQY8~?Oa z#x5FRU?oJku$z@3hY*ZU?4#^pv0lMhY&z2>PtLp@`V z74I;m_GY)a*kCZQU?1?V|VOsQrA^=A{Zybxf$zsI(+O68~W4yHcs%e@FqHBi_;aI=g$V^I~M3 z5$)V>`w6dA;6r)oL~>y5!O)CfrgP!IWF6(mcs4I;XJlC$TwuqLB}5tjO6Alrj1-)?*8cF>cmjK3tj}~#TrJ)gAz|1&eXN`l zHvX6#Ze{iS?42fe%ON22ZBX&i--jOf28zaQogdfQ3Db9TqgISrKTtk!v0{fu^wT(H zM!s+T7>odY5<2 z+^<(448$ZFCHzDrV85@mH~Y<&*u8&$nP`+zlzE+$B96DM7@Y9Ck*d{XfX_>W)yFCt_9)3`Rvk)`jwtslIOZ#| z3*i6CA#oElQaj6tkWK#<^YNcLY&TlN1MsBx+owD%sh;$_2ZaZ6D92vHSgLz%Ij7@i zZG)37c~P;~+XH}+Qhrtt!)*BQM(wsiL)_(!9Nvj51v`M|sG=&*AsVoPV9}IPa}Xy8 zRM-t9c;9Qvp>}6ylz~2ZS4s9_!h*{`PHAel$+`7e6XT1n{ zHaF{@#NUwdc?-8$R*FC6$KY4P1DwIhH62wGEv-NT|HZBO2kf>VdRy*bf-2if&lzTcrJ0)-4AkT%2@xn->JqXY*0~TfO8D-SK@S+OY zT4WLJ+y=-+^Ig&4o8M=tM1aYRQDP-v2}%ror2i;Z(f+FapIhyMW$V)^Gc;%wDsvh( znyGh~U3I10_|NK|q6+#;8thSA!jk#M>w3sCXZveNRm!!X5^VT&q2H|exfydY?D4}c zVZ08heg2|KVw`nG1q~4|E0`1_^T|)=dm~0U`{?+OOY>%>&`QA%NC@3rJCF%;fSYwy@k%ZUV7blhp8FkvyN-{0^F#cP z2*+yrOdoO@d!#@mC;R{_R_@N)K|y0AU>Fd{n%wAZMMtSbq0IDCHqxML#}_cC`ItVp zkG^{rfidVmSq~{HpZFUienh`tPl0C88J{5D@9RH=j){HUQDE~=FgWytEg*`M z*x4(*XoSA?0FEom+dDvPm5IFPX?M=9MRrIGw_yps?=hxhR7VTRYmIpTE8}B;l)JID zZAjl8{zlj4Bo3$#_3!>4;q;@iQ@2Ff+lHQSSH!j~nj#eoSD(gZM6vd4G`25O;R)05H z;%%9H&dvHBi56)#xj6s z%2Y~{1)NARCHnO3X&shg;y&dSO9G_=OhCA#@OZkdppwaAR2)Tw{VZYD%vJU37f#q8 zPzV|-A^QqHsQP$7+^O1>N`7S|0SlgsQ6<vUA7y;7pG8|>y3j?)ZI z)Ht0lL{ye)WN88?oEs@+(!GPJU`nI^#n%I=M|VXX3SQLz{RK>X`+tA@{HNO6ELdKU z_-PGg*Xo=lSKQG0%&YCCmXf$L-qKic>A|VG+>Q2c0Z={C6Ch1@gF6g*{T&a2vbyh2 zBnu+s>hZb5fo1W)b=^gi(^84ssTF z=zL%Ev7BJxIOU2ScpB-J$O@plkNj5(l+GQTDMcFdm{ zZj8ZOy{O9vip8n(ASMr|aHM|Kw(k=}S*+2ml0z=SH(eQRb{tmRLO=qa&HUOKh_%R* zkAu-JUKf&Qvn)ISL14!*Sny$TFPzGo6-pUXr(5?%`~jy3@Ebr%a%jk+e+A$9FR1f0 zfl}y+^pSV@PeI^s1zz3EfU*7OKA&&x0Jcw8xun^GwF*|Ya}C;xU~0e9*BOwzd`)yh z0!ui_NjGkb7r<^eCmSY1D z@uQ;=Bp6D86jWsvXmD%Uq4O?|5jFK3Q|SGeE*=^|a&KMtCNFTWfyy7piyPg?o<8r-QTcvHcW&Iy=loO?ZV0CsMN8oVyu zw-e{SV7KMTPNVIB*}n%@CL_z$=|wSZOYlFr>_fQyBKel3Ul9jv)5+nb^mbhm>wZxY z08O7bBrF8Sce30#Uk$#&wsPSKF}D)-kAcKb4F^4ZALqL~YW6S;e6unaUDZva5F)(! z3V27}_|R02TuyZ8KZ{{jnd`#PL$3&+qhj8CR=64CxnR&WK-?#zcO9bS1PDwP+T?@b=wCq5T zs{=1hA8&Dzx#&@9I%^>U>xbh5tuKS*U3fAKm=E<#3C1n^JN+MiOv7bG>)c z=^OE0ae_CSnj-n_*c_K@(jupZwM1}VI9`66b1zqm1&*2BeHp2aaH z3kfCXdAx$iz^>(HQ|h5WEdkPKlQ<&|LqIJV2WUgMWwkIsj$s6&O=Lbv90@PxRlN6| zGcW6*G_qD7VJew84WleNSayc|_fc>~PjJ65#k4_QG#1S`o)ZK3Ii}?KZHST&wgsPxo&O4Eq*zWuwSg)aD+mq&zQtUF<>plOhm5WcG#AhJp8}<3F#qQiMfjb zS5M|1c9*l3661|6snDb}G9e3`Gg!xd%1Zi*uh!vFgyWCgm@1{B+dBHeJB!oJvFDUW z6hSVr+8Yhy#R^@iC$|LPbFvCBaKnxN&C5XJqB)c1@sbVMNdU`O;JO27MOPomkxe;B zNZXXanbNt72_gJpzO3wuZ-H_+)Zl_*|6yhEQ(zX|xx3&uU=4uAU*-U`m7G3VL%=>- zCz)seETr265^~1$mpzCb(2$X>V6B*h47qB2aZA0`#bHSYWGUrQ54YOC3rS!*%ZgW< zZj9FHXq3NQk?xe{2~T&M6OsRd{AHxE#Xom})&&^qZPOXk?amYC2bTZT z)f7!R9i6?@KIEfbCQ-XUSquc?(i6{}{$uI`h|kn3((+kv1_*Eq>2~)wA|G&)PW;l& zwt5uc#LR;DuFww{Lby={#t|PZ-eL~}2jLlh0V5vgzZsaYC0#en8AjEee!9hTOC3hbMNCfDrb>CpX?yE3wk9Vd} zUZZS*Gu@}mwI?$6w5^x!DZjb@ln?#`Ps6 z6J&8KI*;R3Y48uIQBPc}`RPx0E~1HF|DEy$-|^7*8Kct8RhNA6=6OOU;f^MAY(n{^ zYj4IwU|1{C09K0o(RfWV*ICj0CF_E#lK430n_+9cL!g^0A)FO$fbFH=Bi#*wKfn(f5@?!YnpUPiE~;Loab3 z>6G3uvj27CRY~#?-sV^ehH+=!%`&H~7d^9QPI$xt%J+2+H$4ph!M_@|Pa+w3N3nH@ zH!>drJ`3XEA(t}RgkFpQa+%WaybzSxWfq1bD+}w}(?P+Jxvy7KGw!^hM^(-wgJ*Wa zz+T$XZV#HS4eDPMnUME{hOqy=Io%p_@0GeQQaG+z{Ohp@=4or`Sdk0x^>#la;mB#- zidnp@*JU9d_MDBEe6#AB=w#locELox@=e?Ln4LfY3FtxkFM_bn1-jY^f~~%UnQA<$ z+Pqp}xrxcAD1fr)wj-c&6Z#CcJb;=BL}Ipge=m+rdGzrA=QANd%lj_w8|kUE)G*Itdz5U*NCLzba2?;kHve0h zkxO)0LdD@wk57K4*-qXlS)VrEp#a0B&+ZV-(~IQ6A**#Xzu`}1K9GM}Ucq_#iEt+u z35~~e3I=MEkRvC+HB`%Is3dOvvC+yNWm0JeNJ;ST^Fv}ejdLb)qb;&B3w@(|cV@H9 z0d0S*pvzFDFzDY+ANyc08f&KmYb2kg2C?VW3mhk-DXuSLovFR2zH%L?NPky7v2pvq zKNR|^@@DSqGN1H1B&IVWd}Df4tl66#jY*=kf<+xy`xC1pP5UvEEZ2KWYg z-3(uz4TJzlKf5B8;}ID*b-%-IcS-~W25MirYZT4-y?MYfYRh5=iuvc-fkjZDEMp5e z3s2JgPE|}b&I_jW&Vn_n=N+{ZQLnA%Okb~HoP4@XMpU3Vll85G3_r)gPCyb;7BTz+ zWTJCooGO5RpsIAm6d4VTiac*oF&F*Xp|*!Rs6rEOhmZV}7G2o59u#dV!~oF}8r9eH zY?8i;x_d~nxv_FF7jhX}%dt7mxjncFXs{TlhVGD+kIkiV1>$V4E~YwN4=7Pr1ho~T zI+H%q#YpzVM{n8G)&TwTi0lgGh41{9Xk@8%$-{Gh{Nn!lf%BF72PhOFn0cMGWcBu& zQi%PKJ+jUdSEZ39957KFVO@dAQJixt0dW*ShSY}bsW1m4;EU}`V^ku{PnU05j+o3Y z5lP+BH&iaUIL6~v?hO#2t7&%K)v?UQ&=4{g;)J4RceB{_x{v)HzJ^aEd^Mb>UioAC zu}v&1M;Iq?8RIzC@m?)Ax328+Vmqt11uxx7j#T6YtoapnA^o?YFDjs2sp>YxXQ>)) z2kYzo#02B@bOgz+|M-{Q;YEL*3@`yn(5#Yf35{H$t^|wfx%KlQQDJlr=@CG;@=)!O zavpQp@J5>)abXeBoCjUPN9Di@^&6|h_~MYRlOrpzSy;VSSl$;iYX7JVc%o0*zoQv7 zuyyMtj`7l0RHdJuN5@i^S#-^6@xE#)CDX&iiZjpLv+P~9e-VLTgY{;ZhIO?yC(3Qs`JTrR?9nZT+h0P)+?4biXsdYMy)ZkR zGe6O@9QzPPtFNT2F-{5m-}_H;SSfXda{)HVF`{#Ddskvb&Irex9RQzk{VgOQ`aa&?tj`Pqq^i)snS0B+}?4^V+y|_26ll^&u$m{^{ZAarK&u zL%x|O_AH0>1dP)nX!HuU)F?}n&5N%x*6TmJL<2$*!lPIYtDVKbyvAj*D^s|Vj8)(G zY664$c&I0{mxi`e_Xm7uyE4ygwmFf!N~Q$5Nwv8>Dg+OD$M3Ei7y*7Hbzjr(*-p~y zdvu={@_&{y@I5bHs>xCw4&+SS@lu%y$%E~q#i0;C$QmVO!80$G)l1kKKW9pU!p4}; zf;605De*1+mg+0oYyfs;MT~tb8qF@;nC~6JX1W$ql|Qp(%U_11y#j_=3fm3I%$F{l zxQx4@X_@gt8c z56lXvowa@+GBRY5`}x5iA?W93o#Ubux~re0v0kHzH_o=^*4H9|j^MQqsRR^titSok zL0!Qg4hmV)tu-VW%e|RTzMD5J+}z76tk(-N6@33;^mhp@mutW-)agRAb=FBs7sQV( zuPJm6dN<5}aLmSrzaFo7kGe{BZ$+#x^t<%tfb{t(0Q0!MSZUtY5Cz2D<{rE zI(!h{+vK|R+EL2^^BBwN{~&IS$r_rgtzfo-a4v#^ zCREq!9?3-#trws!63;RB9++zzr*{17P-!uV`vp|GX>cmr%80e7^{ZXm-b*-#9)Uon`r7Mg!t5)h@wcgVK2*1>~M;&P%;iOJ=Pj7*QKcn*#d_m zXZ#AZg)H1`e@HsR^BP!~RcmoQ+f5MkAOe<$V5;oeS7qjp>jQr!w);5ft zaH3{# zjLTlNO+c+$XluE9jaT=y>(}@Zyeh+eC#sZO59#m&jlYdnwUq=Xy`6r4Xv88vLCs-X z1UDL7qU6z}N%A8s$@+pYbNK8h4tI+;x{a3;rBoz+&fZ7*ggxh4=J7}&cSWTpH?V-f z{s-xAk;`zQh_h`Op*GXb6565vK%2csB@WhRCK^o0?pVfzyS7{&yw%GT?`&U>lM0tL zNn+O#RRqQZM}){En`rXO{!>@V_bg2VFI4o*I(Lp5eg#bYQe~UNJW2kr^A+s2l!rVo zsqSzia=KLnSP+WzN@f}gbRN|KCs}}sq5W#O#^#T zo}MvVKX{^8>J@!j;g2qYc){(_mlM%0o<#nPWs?`KHoIYY6i1F;8ut~Osokl`T6Kj+ zc^es+trCvcfw{(2(10`3>;-bMLoORycY(p_k~?oq2kTCYjW7nc#GJy4M#xZZFCtUm z(S_?Fh1H#_O__PK`oC>8HCewD&s64wH|_5XSFN^Jub`LN-|d|IPPg^Q2uw9ngNA}n zySa+}6D14xm73P%Uv#alyS4bevWzd^y#!Y;x9acRPN&zTlXw*2089JJSX55u zgB7E1xvur7ebyeaCWYR$XB7}x^V0$yStQW=Pc99_C~NRl&41Ewe)2LSA}V)HwLNfj zdJia#nDuUJX@v?IvYP&IEeFmJB_BmN4m8q^X%-5<2qD8KYU%WwJDNOA@BR;fmCl5A z!&p(pVe6TA7)k$fo+>G?Lx&(-+);}Ib^~0%YOatk{~@}K1z6h`{VZ(?3z{F$&&r;_ z7ukZ#sjR_{Q2i-UjdAUxvyxrwavb6PIz~ly9M#T?SKk#c1q7U5U)@`CARGRGPFwU5 zp3dYDmh&25!Nz(Yk?GxU-}@*F8Mb0VuxPvHZy*DPo$3JF ze^;DhKzL!2;Y`H{aG8Vx!mI|FhHcX+pe{q67lIr#43-QOubMv0pagXto`mBV%pt#0 z9dbciLMwjGPXGxRs*aXl;TdWXbL2b)oPWO(7`LpX)MBSDL&rAU9xZ2PC?9#sX^OV? ztlfr!w|vYn_T6z>a}o-HgvB_Ix+{%C!e~%z3ey{%e5Fn{o z&`_t*v)CfbV6dquWQSW*7oJ~WVg22)6)1ao=5?oc_{4x}q?Ge89Kt?&yuZ9lQBvFC zQ+UU$vbUExhkv(Ef!vS>WjzTSe~7tiR;$c-LlTmgV|{%lHFySA9Cm6DuT_}u_}W~UQ- z9`9%EBCOi7EYD>}1|ac-pQ~5!jmg>Vd4Vn;X}57e!BgHFlT=^Hic3hP0Ek?3ebk(y zDHHR2+sC-ii4B0xEv!Ee`xxcfYQ+gtt&kwtoD=jqeoldUYNc%i5T zk*Yb7b%6myz-IGbJ!vQ8>-`|dqvlYix_?IB)g1G^L-d<<9e8HD!WhittX5me9CCX+ zU!B9uW#$gslrj|!jP~I}3va*AdOw_WP{*CT`80-!RwwcjQ@F-5XXJ49c9Wx$5Uq~9Lg7s(J$*0cr&Df1?r;iR@H3p?i7Pf z;0BASYx%*!#S-^L#z?DnM>Ym?^f!TmiLu-ec4IUTG_*!QNT4q3u5T49eAnnIS_)f4 zx=VJDFW(c;EJ{CwMwEDswE&#hEcBEw4c+1sF2fNo@bKEA)UpKf8rL#JP?Ak0Uhws* zu1Q;4&Rd*-rzZ`(sX$G{{i^bvVPo}0kk5P+5LE5Ji~(!;F@ zx$HBg;6;l&^3ZpLtwpctJ`~@XPwxXFzP0(rESq^R)$ZZT zsxS6Epjoe%lc`0%7?bag=Qf>oUgq@g2eajxv48ogl`1xv`zuWiY>K#lR$p#OA#q(B zBM^W9WUkC*TB+T@QEf{+!Tc9=u%3(4E}96$pRm1X_2V79twFVg zb|mIPx=`-%#_J=*CNfikYL1G4%}+x4HzQDDa;rqZa_?eXFWpvR4J*^xv0@oSj;!2t zhUl94Q^L+oo599ldwhrp8Pqib?9I_s%jWdj?tJ{0^uiVzSlj8s#q8=`@*`PPhq`C`gHq( znDrh)uRqxa&b_p8-}ge;wDRVUp0>U*pJY`bg<6+nJ2YJzyK3Nu)H`D)EH!yifUm`F zUHi*K?OzcuZ`1Xc?Ku|*cDp6!kJ%NZm3z8@g6Y;=w4l5>6CGdrr$zU}^CIz+;`IV5 zn!c5jmO!~)vFcvVyZ~HSRK{JCh28lMnP~~tt#(=zF15*VA!}{0WE42lQm>MjI%TE) zQ^IWHj>%4;A((+{85ol$1not{)Zyp|x>s@WWX{UaqXIwOcQboGK9$=T!Xly-wQu((bRsa0=A^N(xKm?wK zs7@s}gz7ED8Y(?Mu}DT$F}+lw3eQBesvi-SOsAgh+&ubci+Fl#jJk4WhQjZN8KG91muF|6 zGOcauk@P~wUVABvw_ZE9`SW-x-^Zfrj%ssAyA&3M3C`k{{5IWQ*M^-0;+WA4ea%g9 z_W@W#*%hs`N6khPBoIz*Wyf&Q&X{9WydTHeOQCTReB;uZZknR+jvwjd&7Q}(h<~7G z60IysRZw#*pJhL+khvzRnbZu$#YQCOnqPQ3W_;s=q$1{21V}?~E%vQoXGA_9=O`M`L!8b)M`Urmvs}#zGq-Rr zY4>|k8t(@vRtcL-(=%M(JmKWfD*my#K$Zs(-$I z46mv*!P;*?^)b-GYThjZ1Rm-h%*MU${36^IM(@~Gg$z97LFPPM28$t7!0Vdut*~}G z8IaNb;#bF1L;`ibWBj+Jn&s0lm0Ht-iUhKf`1|NQ<8pJ5EP)xdvz)yMCrn5CzOdES zG5fvOLL}p~C;A?>&CprGozFVT%A`f*=FZ-_e*kC>W$g84;Gn%7k~Ouv5$b(5RkQNT6zx8F+R?Z;BO(R9UiJ&kN{(v5K?YiCLWOpR=7z zB)6YvZy{tW&zgP|{i#;>FE5Q{o79#tRvrd@p>o#r5*N(Tb*nOrZ_3v&QPbKW&ZT9%f@zsbvmF`-J~W-?&E z56*{2Q6FDA#z>2OAb9^yQ@sfO-EqD*56T}(RZ_mPWIx&0VhW2qSnS*vac5aIAG-`m z2L}-}%LN;%A8i1NzAZowlhv!7|MR8w{kVw30K#3vRXTpLV0f8pl?s4r0w|CaIsYV6 z*q$!$Gxg@@O7d67MJzA`-V)V&8wT{VU&9{(7EwoV2?DmjObFGgE2-DcLc&KZLWR2o z?S6BMd&Bmi9f4@opO{m8(K>_aM7*(FBl-N6Dyh`8z|>av*Z0LXh}_63f=v1cAN3G* z$>5gsU-#~5!E3<3qvmM!ioHTQ@Iqf3b(!CN0VGaCUY24}oMprLp<*-O)X=<9DZIj= zE2JDPpzk?=(TjwtI=MxsRhzo1V}Nh`6;^f7bf2v`?MwG=c)KqN&AGf8`bJ{Y{}g#@ z6MH>(r6ELmN=KnUAlw+aXY)DuTU7c3ecfSuH+=wKhUNjhA{_ER9On*`9_TL}Fw(ar4gze<) zL<28gfKlDTO*;0Hiu`9}*|ChhG|P*_AKw7S!yuDSudoZ$uV28zve+>+-(eceP>{R{ zuv(a#*0(K0{1oyvXUwyis{XsS-}C>1Ykh$(5BSY`=j&gAXB>mR>^+`A1hl|gR5{^h z7n`Ls(C?4WUZa^BP`-gE(yP3bQ9fz@+aes@VdoR8t=rQ0ZBJR>@|? z2!x$uhv9t6@$174=%+-OYB82U%1?ws%O45vu+}Al+gsd06L>78(E6N}09P zNwi37=z2wkMsTp^?FiJq1Y+%OBh1m|i zMFM^*kj0g{8K(pv?>>#ek4V_z$C1OZtzvy9TMTSbx@9t0mKWL#U?iaHt=KXv-S$-R z=ik-aUr(zAkW5FD7WQ1c&r%x#>TBa!b+`By!>P1sUt! zU*71Q?oof4;!qYs1}%4`CNjz7k4jA+&8`53Ft3GKX@C=O2hNL=F#!)PggB+-^``X& z?MT>!Hm~ZW?v$wTVA@gXs%4#;UXI=xkwW#Mv^Jnrp{Tp&N|`oN`>PpCO?zlDH)fNdc?z9dNEWoUMG0`ceVO zK6D_LUc-O7!0R|BO>pzikJ7pB93v_vushmbjprCDIDOL>iOv0zjskRtqEvzU9Vm01 zg#WB3&29?_XrPrAoT|K9Rdv}c-yFOLFQha$z4L-F@Ksr5hQ^VM_g~(T6GGzl=KD?E zq-$N~rcZZ|yhf-yE`BBWr-_vr^Dc3L-<#ORajp32qiBzQF8mO!HC1p;7)dsOaZx60 zS^j=yg0FEb%S|sQ|6{6*m-xK_BQ=Y=)$2k@U>GdG1rV=bO-~jCZlzdeXcrFZjY#7D zNS4k$f}%?(Q(3S1zJ*-uX4A_6JW??%3cwz)WT-0r^b}ojee*DZw}J_8gmVb*%Qyb&=|CcBOBr9$QI8q~L9pS~`sW@#6XeR&cM;~rdHmBw&$rGvvddGaxEp-I-wW_fsMp({3S6QXYMa)XVV?UTxEaTR<`$kLO zsellCcemdQaq%$-@LWh|Bi%R!ba5TxdV6?AMUIF2)w4g@dv%rsX3M7xI6b zxp(_dOd6ODLXDEh7i3b=EljAdCM$s$=$4F1H8osRas_wwy_UIrdX*Y}g~uT=}VFG8dlHq!n9 z)XjZw-Cs3s-z_D=LQDy{VdD3k2XB4^2rg^C9*E{y4pS|mbtX@?>_W93Y$D`sTGN9q z>Cm1>4l5haCqJ2D!IAd{=0fx;zOig67VMCTYDDvPT^#{pf|Gs#UYzJ-P4; zkF0yMKSROy+Uzg(bO+w3%Ty&H*UTLBx$>#?qLj5ZO zURAYOFNOebJoe#>NCF$!fAD|4xRG92nDaB#U{im)Oe2OHEI?(&x-kJj5D z)!1CrfMgf}coDn)8G`np4y}t2h5FTLBUf}so7#KU`iH$%bX)a4)o}>N3a~6hLJCHk z^YiB{zDRs<(jdheLr~X?cm6cMQfSPrI!TNQ=p?LYfkW-<%G1PVyp{~pN=ryJ!Nsi+jj z1Rcp50zNgLYZag6Db{4j+O9vD$_^sa%2WYgzj;#6fq|-rO(NS_eL^^Pqc2qz2?0!>YeQ9b5WeF1Yck8o?VmBe_h?JURp67%gsA^I z;g9|+^5z_!ThaeYt7{|Wn!c!kmftHF#*Z#>;W@b~3QW*)+aIpP47#Gc%oDnaCDB!K zb8FBu65+P@QFMzuYH)Cn_=D_dEYuz5@IahA35%8Q+WiCu2*o0LuVw!x8w>K*ba8=u zA11c>tib7m6Nc_J_vJIdgO%hoBws`ag@z1}wim5>{(YO6(uwg$-Z5_?hJUc)G+@tq zb3vHS7W>_QK+iMMFPv!PRh6Hi^C9HSY5LyY^b1mPxP7>D(;=8+m9;qAM|hE2jWlmc zJi9n8yVZ1d=sj6WfB{>}#Uc=+60yV2*Snx_fQJKBcJl5yZ9%+j`Qo?1%M3zQ0 zmhA=yvwbOPUbnsg|8N&5=V{3en0xg}toVw8I9C3Ckv=b?-jA8;(nUu#Q}mEV*impF zx)mj@RgxSz2%b<`;(#gSJ(J13CRfH=@-Ky5?cAO8uzngQEas{3aw>nTt^&|laLhWV zZh%nCQ2?&A61W7wF7M2K%3A|u9*_41M2En*c&y&Md||d%@5gN(1XVpCkh9?Gdr`{* z?UVg0*0|SvU2c_27HDyz0JFO-Z}izI_HDENhmPSJU$`1Iv`1QhR>Y|bagB$GFPi96 zuAQCsey)(5mkFtojGF+Z&gCd|+Z&uQbHx75`GPP*2YH+=)-3}rwZ|-$2te;#yWAz& zQO>=|z)j*Ox!2}}EXJzJ%3EePtNwqCy=7FC-xohRbeD8@mr8eol;nVPsl-T0cMpgt zQU)RngVa!pG|~zJA~}rGAuTXc0}L?t!SC;X*S)Xq-EUycf_ct4&)NOidl$k@O7^GQ zQPNXJFeO#dvf55v?gKQWmK{l7B^14_6*)A{|MoW zRy|;fa6VJxB0#@>Er-M9Sl>mr4PZSfLYaJ5w!fw zhUKSiojm#4kzYQZhDWfrQwB?;(B~~>+2Vkl@RAjyX37JN$%s@QclXFuJ^$xjK~vo` z+5Al9etnguX#0GCUF6oBRLr=|LtM7P=+H(2kbTAkwpi+4& z8fmK&^5~3PnbcAO+t`k&HmNg|5%Kiq?aV2{yaHoPER8mJN%5m$qn7z$F?s+dTdOeC zWUe(V?vC!I_-)vzc?Oa=fs0wSXV|U+It5>r5~^}EzhMbQHWZfRcd1S9$}iwo2-&<0HS_*24(cq$MWbzF!`fCXWoEP$tI0c zwAN~Y{Ms$@8i}7B@(T&a&R?PX&IJ?$?9Saa@@vH@8)b z4_g|w8)|$CqFbY^a}RU5^045iHl@=|6ossCmp{*&AnohZ9#K+13%TYvM>OW%cBKFCpB%{)eWZnrBl!q>N7Q^} z{nnnuCUVOtDoXO+mX}R>NXA3X%#bXV8U|D%#2YKx*4!N0O%WL-OtUH+Htx_)aT4Y+ zVME_=WSeX;LP9Mbq10&k6y2Ja@5I|LS<@-wty>t>dt6x)n2AJOoc)_abh6N;Sb5Ts zDmA@Vn)P1OLFC~QOgp6PQrrm-B-}$KooTmEnQ?1@J3Kuv#}+oa-}j^Vy3no78tNc? z`fUv=-Tz^=o;|cKo@BFzFB5{b$h1)vV;; zi&N!s6E8P!-#Xs;J%B8pa{RS@{D_n4y3H91FW{J9PY-tEbk;1%1z}zZbtVmr_%Yb~hm5>};Jg^8Q3)Uq;`z57#V#C#P+eV4{=V#mVQT;Xw`+xR9*bg6dWYA)R||ZJ(WLuId;4gMitO7CLId74BSbEo=cs%x!~1c zE8L5SF<0Lrxn)w`bV@7MdlV^4!6}&!h@+bhpmp1bk(})9$78ISK{F5IJ~vS`U?aTk z?^?R16z`YctbJFjMnSPUG?{#JI&HN)ro}PlS^LY{Z66=qo{U>-GR^L}Z#~cjB@FZT z=xw47+L#?fUQ2>hnQ}viGDtI?JmvvPSmUK&EHV#&elW3ZCfQVI8EZ6S+kZY!P^q3q z6Tr+;KAa_M@XUSP0ZjcvIh0PYv<%SW87e^J8GzREw>D_{yNPZ9e!r_G`gI8YGd~!n z1fSI~Pqon%weG;ZYYr62^L1{*6P!SZTI=OVQipA11}uxD-2cFx#iTM=@p0^NxWrG z6%%}T9atd-xsVDENuR3^&31?=cpW+HZ>R@l7}>kjO_&92{dHP8tMN)fp~P^V{mP-&LB~xAFb)!Z!LGtH&+nHcFfI!=~g_QSxYB z@Sm3S@u8v1+Zx@>MpLmB+`83MjdTeRMS%a5zmWW;aW6{aVqDIDRdgELeHC5)rQp+= zL>zX}cCSUWE&vnta3=>e-RP2a#&i7SxA2W;n|)3q>I=jn)`j=DuU#z5Q z4}tIwn~5hkB7d}RJPlYwShOYtEh{;27L5HK`Y&1Sf=afq8?hvleKxP=6ni&9CD#pU zMh%L@GppEs$9(>0fm<4AD?Arw=f%KhROxe6!`0`3{D^Blq8HCR(C5p-+yx?KvdqEz zQJClY;t>?NbjQmh32wa>0LVO$t?;Eid|U_8-=H}0l{qb&VrYxmQx*Be(t_)d`iP@F zjAxC(S|efn@z2{!%6}G~vOVCC5gfQS5!H?OYURo|heE`}*IS z|I4KK!QWJseLa1@^NArkoFHnCJm2Tn>N=;K#ZX>fS|+~bx4J-<4LvzAchS|837Knj zB|)+E(h$b~3dda^}L;Te?$>hW{DtJa41`?os$2LJO}%;b_S#u1z>^A> z8+}xQmVFQ@00e2KLnvL?Js?rk3vTpnpDX);`XZoV7Y&$H*gN9>6OWhINt?E~nrBmL zKJbPRd__Dzr(M115_9OSPznxaWY$?oc(&zrw-$bHxL_SM7cmHyi7t?LPc~&)J>bN? z32zNN->fYEJG@qVFJK)!pW&cT(}%5yQ&=&ih`kiLsCT_t#oyoR^PUIT*8l-C{NfAE zDXYz6abi#$Cf5(aD+h}*RP5ix(k&J)Bb(m=D!*a0WepiVR#V+*Cf2#R1e{2H)b=MI z5L!^K;oSXfZ#GCqb+A&WWPc93p^vBKk@K?pV!gs;#@AEnR4lkEJ&Cu$hupUoE4DfR zlvs(B)S;u6Fc!b0>_l(T4*j}9DAc$0$%E;NP#8jMu_V5& zUEsgn5*yDI(@@eU)Mn)4!OSW?UVglr$*R2L9$vzb_Fk7oT~-IqdLoXp8piLBk&EJ2 zYt>y6=oUmF&t3U)M8ZkwedMfKZ=-A@>XCl#s;(+otbm%3CI>*8K~8!$A^`qopHcObQ8 z=R~E4bfecZ4fz6C6051@60ewpjUn4dz5FfsLM&`*zfVfDw10B>S}aCtB<0`(Js1JZ zRK)rn`Ue1B{PNq9j8IKH%&4#tsjj*?;9Y|lyd3kyfE?Z?eEqeD%P*PH6b9naSHtQDM`Q7Fi4Acx9*Xu{DkSn&- ziOvmXde&*+phMJl>9>6qhM1XLc9t}ii=k(m4-IlwJ5l~4Y_Vq>_~3^4n-@v?et8#1n9ta&!Z>=yoRoWEJSFYL@E_>|)z6OEeHv*DnowCwumFZioTo`{Hb>~tz~ zQv=)Q`qwE1DnTDlbjAZDhrAc0?C2&NS?@T|TId_g$^Ov@tcj76S0;m4AB(h9ecS8k z%mt0nvD7##$x=2$LI_j^8UHm6@i%+k3Z(33eD0mdw1xi=!R&3ys2WtUKk00JV%apK z0R-0o>dljTT>W$2(oahF6XaS#`^34WNOW})#IG+0jhIA`+GYx7z>yf1=P$94Sk+Q0 z#(`lQE6wTJ$m$ry&sDLq`S77zQJ45;4wYSxEL5u3bY+aCz1=ygLI;$d2z&qXHEang zAn0C0SBrTM{lqXMe%6-huOX9@Wq*)H^@y!If$VrHJmUY5jqd&2QRgyR;9i5~! zmK6-Wr(#4s)SqIT9}abDbVFu+Y+SpKTAKqZyg+Ix!Xb@VBP-vK2u1p~Uqb0yGwOVr zbv<%mpu<<4x$&Ut&Qh{q~?A z4~I*p)LmwU%g3Z`mmmXgK5h7pqMG+UCdJ+Ivl$X51X{5}}eG-ouzg>Png*kAt> zl4S(+FbTFS3|jL8G)42syB4fGP|h0^g*kZz?z5*PwpSb%LHsIS0JVj}EOWvxJ_*r|E6r3vXa_Ag0Qtm;u^8``M8@3`UAw&e>ci788|2LcQg z2HDfO{1KTJ?G8JeUf>L32kLkX3|$~e@)u|w1Qa1VyxE?8a0K8Zj4BZ)Ujn9wq%HoG zSY#~L)+z3wC_3B3L=mF4b=}R)t@nt!{yZ*RHGvt-ejOJ@^6+>2CtEo0rpPgbCmN>v zRX=gR=(}Gr$0j`Lg1(=j^$*o}7IfY&e6I#+5iw^?A6Trib!i6UIJ>x6)6%YO6hNXi zcDc4S6F=GKEvB;VPRuS@m5G;EvF;jfZSF84jR)#JUB2Z+{XJQ~WESH7rdEH4kc+V} zU~Ot=GjtXXlslTXz>t*BG#3L-3wq~8Mt?oFx45=6X{t+`n1B(D^!kw08;zt=_v9cG z5oke1cmdUUNv+*=g6*3*bu|by(&uSnJfbh){$>KMWL^t^f-wVE3LSHC_=&Nz`(G;} zXRvjJQ~{mjKuWV3sMyt03_NA<&N$xeqNbGr!ZLl zH_M!7lblhS^muR0^(^tjGx5KKHJ#6N!zRAkIw7APaXm8MP*{*paUXeBQ$1ee-L9dU z7Qgoa%X@FeoqqUz4kmfP&UgI{wiy7S+w0Iy`IDK7GLMz>Iet4g{{*nYNVli`ohl%n zb&ha<`Tbz{a8x%p)F_igJ;&OLWeGF!=iQb}!J9<(P~hy z;n-TaBRxFd{ae(EiX}x~BVfO9r`ioakysdBV1C_)#xua620~Og1;BqcQ#UW$4R~QT zx-2!E;Q)>S4PDuh)@!^%$NWs8h?WGV64794Drr81SQa9vyq$Me9+U+GL#0`2^b1M$ zh;@$dEE^9wDwXy&@;!h1*v4z=F1ot9Y~~s&VF0PD;wLr(+{x5YcKba);zo>L|LfSL zCLp%Ga`FsT@Rn(fRs8hhy7q@U`^tkDjHGGHx=~Z6upL)@qAs;mjBiHX8up&JsZyee zgRNm`S7|Oa8vvbUnb+RWl=+zPwzl?Pi+2P2o$bv->e&q&F@AmV(Mlg}z;&C}75yQ2 z(>{ENH8yjhqxz-GQEX<*%-{0)^Z>tS*KJ^_yM)#<$ZXmUO44c2Q+wKgYd8-!wiz)7 zphV-FcOx|lpI_bZbh_x@QEZj!CGz<9p08gu$P5+Q1N0@q0{Txsw_L=Q-I4xTXB@pV z``V37PSp(-ouWtXZ$36b7*xKSyDlmIIj+b|SL_+)}}S7 z_3_-(tJ0X74)mw4&tFqPV0{Eg-|F29mhY}s!GpPE}+{gPuTS(8xH zB8n$Vx?1t6#ubxPGLSDKNTdNh{1LLS25hsqh|>1kxNuikWOd})bA6g}NKt3Wc;BDx zc=7)n_Dv_1qX7HsX$^bT08n*pO%vb5es^fF;hpTa;R!44pd+4HRCd+l(@QhK%Fwmf zV%%o@LmwXd@VG{!ldDdq!vWk+ZeD>y*gln3$-tDZh25?h0LX7Cp_%$($*TkcpL_9p3EyC^GMA->D z3%8adM|lUVC3A^J_t#W}wxj^#1k<~?Rye#{qo_)xnU<&RVr^MGtH?5e#!)3NeLyXY zj_i8ZrV)jC^zDaoR>ge3cXUiG-&2t$(fA2_UjBoZRSY#ki z9DqP3UAVsDb+wzRf+rH|_)nK1o>*3&6Vv_NH|ZX#?12R};HGB9tnNmIeodTjXBzTL z@Ndam6V~BgLqacF8s0k4pMUG9D!u7AC)RJen+0;Jc6S*%Pfi3pis82ovuaC$_MFrJ zypg+%tOTiQ*_~%@^s0#Zm=bG&m`}Y`6%z8Ndtjqh-B)3GXet!{Iz%Fs4Ad|pXWzB^ z(~NPdIIujd&G0RdFM(kFps1u5(NxxtNDJRo?fr~xqxrD_i%GjVitK1$A~DsWaK z?PkAHyLh?|I(z`l0i=gJVSra(qkjnHsQ~X59zQzcR2t(v32L{NVU2~0OA~8_ng5+= zp4ljF=Cf(r9xIIMmdThYJHFT&dZJ6$05ytC$A<-^B1 zVGHkB%6|q^?QxVFjQ{zS@1#{SYeOl`zdxrw+52))xQW+nY?}!+^D29KJx4vTc3ArF zU&pU_ob?p<+$2?qiyVB1cN2IjCagkEr&ib8q@yR{s&1R}4&IXENq^k4UvI12y*8`+ zKGiE<;9n=q06D0(eUcJ@P$fO-5fBZs;XtJZF|{+wXjRgeGo5C5iw|eEH^T37^`Ri= z4|=xp>`_d9Nfb&pJ(dygP;M z=l{@wzzqS&HQp7$h6;FOo)LKX6D<+8)*SGB)~7Rb#VYvZs&r}gwaqcjuhL0t$J!NI zcjrsOYKblk_V;_pl4upxdB9JP-F7-(!W|PF_{WQA<6Rn6lxEVBHo~oYYT#stxbTyS zh9yw>K?WN)mAlpM8H=P=R6y!N0nz_V*kPiBsFy z*v|h0_n*>&LthO$$~6;oi7+#P$D7B|qbq%u77Mjz$A2F?Jq>gynx@`1D$H9Gh};Z3 zT2^S6zx%Fg1UDuvQi%xj$Hdo_-hk(aK6_Q-!+AAEZr6$KoWy@L+2_|gYTI4&(ImDB zMngm0OZADIg&zGAABrYz!|ig&?S;mzj?0)h1~9K0sNyfBD*7yyKWV?93p|hvHEXKV z2v1IhEH>{a`1@+eH@&Gb2Wnel36fH#kRNZ`92^Y32bKsd-&Vi;rT#@UmcAH8)Ow|*%4h_ zkke$*vAbHqiG9@LCxhsD)#bdTWV}YS3-Nd)cNo3P(5tuGeL!RWJ(nK$4Ev~WE>TAM zaG7C={<9impj6Z+Ltq8X-9e2s{{Ek%>m1q-Si%9l?9A++^DHE+waMV+fN8{?zw`MY z4_p=gX$|by8r@p$mU!07Te9a>^3?_Gh)N+Nlzte2I-G?do^>`VqSrg({o?bO5F|=Q z_(z(4X5|yh?Y|$X_Mx*t-572*`hXB`8LyLPR(k z8;NJpKOH((x19KCfyj35rw!AowxZya#U<`nI|W*(zA<4nsQYa$*W|nwy_rew#Zl5Y7CPNz5C&fGzOEb#1;V^A>uew0f>=OG&UB>F}^6EDmRr zf!JyT1R;xQ)_l>Y7y^5GLOeEr&fkW1Jg^iP4B*z6|GDp&JvZP_I^J~kggiLePd^)6 zx2jCcUfsN(&CpVH%H5`Ksl{Us(|rry$YhocX8BW>njwQPZAhyN1|`JmwMiHip0)Gk zdQF;}dU<&jdFeAyY7yuLU#Q?puxUlbU3a=jM-7~{0tqzqZ!XC4nDpYJ{4imEJH;Wz zj85lN(J?9zsJ8{3lAR%vNDnVTlgFIrYsHF!6&6Z*Z(L5amX6jC3U3#_P5R|HQGanx zMe?ao@Tm`ufPgg~O#x=4WCg6uvP}d&n)lwmk+q~|eXYCt223z7nf#SFOj~Id6zVSoqS>kdZaODu%CJBfu3z5 zIo`c}@jm1^m(%@o&aMb)efk=(-2%)&3jedpOU3LufL2v7S zpVf{D{<>Jdn%nT6&g_;6s^VpFPR)HTavHW_J4!PeS^h{YA$e!jloOOD;wos$tm?9p zS}VK5{PQsX{8{xYcPB=`mRQ0iSeKHzOgs31(b210#y1456oMCDNW6tcsi!W{me|KN z>1u}K*F@PI!-@gYDWS4Ug;K9P6tFV~LbtSHt|4}44lj(u<*9vxls8=^E0{r#jCQ@) z2*GsWDyWw;7v!I;5i`$ZLT@b?YzC7vq>ZUyoxiCz3v|(ncTGjGITvw4rK4lMT6L+_ z#-NM3x3m2sPaMzn#`D)(^~NKYPon*BH4Iue)%@?^tlYCs4%bd?>YIvBxwmblr8$7Hd?Rog%D_Z&F zx5Bxn7}4a8x%7hPWIf7M8+%v0Y-5$vtH>Kwmm_hf?Vw7bd$VloO)zjEpkB6nh8Cuy ze}Jhv^!(&-An_YNMj{!-4e2xQ$lT--5^Ot}&Pj4IVxjjHb2g|*r5*{bNn~x~tH9Gp zV4`wLf>LkG%jw|m;(|T|kIMFGwDHKw2A_KAXUiFq%Iadc<$-6A;$2{CU{Tu9`nOH$ z&h8N;$N7Ib-Df}Z)X-T2#?!Mj2!DW!4Q*q-0)xebfWHTU=%^biBAV{RL!npRGH@8_ z-tKP((~CV;jnCGa`L}ezM1+LZQV}sEv~BQ^uQA^n;$=(T=Km}3(R>Yskl>FTin5a) z4WEDAD0&p>pYVWKPXl}}cjVta1 z6-UPPe3tEsbWy*mAR4^%h6_cFyb_~GXXQB?)u>8{mD;&wrAAV5`J~!53@m^BdY9N? zjCEU?(XFQQpSZ)k8i9Yv=Z?+Ky8o*KEcb6W#dt=c+{nanV4Rpi@aqH!y`A2zE^+;! zn4fqcLP3#VYR3%smvWE{$fJwiD-(F5HXj>|mbpYM9p(2gqemL#>f}IR%)_12IQ?LV zFU^%wiz(L?Ptvfk#QZ!!22l|a<3OA1`oM`%ZI=8E;>HYTr18gU9v;K( zdS^#H!RjX#L?e*A>#nDu_?x6NV+??R_S%F&Y~=Oqke%ZC3VKfD1Tfv63-7CbFfVVC zBr7;q6^q8xrmWo(3pS*VXBo^U16`0dAi}9b8M7s~_iA>oc{FYc$B}3Dcz>JqlwIcj z^_TvmP4v$Ugb{-9RNXNsacd0E2T%p0gg#vqHr8Elst0WKh7(bLg2u)Y{K?pq6PqCZ z)IFdCO**ZNVzI)?#~pMG&2)RNMs1$d)ZNkv@()HA+{gYSt(j_xw{3oe<+^sXM3O9e z!)>*3<*eXaA^g1wOhj_kawR^{jXTrvX@rKi=Vg+Tsja_`1#A9{7pf?nrw7I3Xi#PE z;rBQ93`4K5g!&Cv;Y2uVbZMz%y-a`vH$Nd=Ft9==a7Z>#;=BkL};SBoE1RfO? zXaCHUT9K-z&VPi1IXPG(5L_8>@YhRI*ALC_U-yUI^%R&qik2b-5lY`Pq?NV9ONnPO zq?hYapbLF@9h#3O&0mo_1iwgpDLY!AIX0#~ol$%zo0$Q8{q{8jbQI+5F8$Ns5>If? zTv~r9oId;&yGERNQl_)5ynJ4U2OQFj?0kEcCN8%9hj`S8?vs`VBQ8o=V(ois=wHK<^-@(l_KB2M-5BGcp$3+y-0`qF*qsDG$G=_I@VHQqETK&){ z+f%*Gr6mPNVyY1584=4~TcVH#CC1m|7=*eFt%rTxEUT>mfq33)8t$3O@$$yK$PkP4 zy-ju+ce5H3tVL{N`2eXFNGqcHU7t zF*h45q>fAjkjrv)l3TGQHDD*LSD<+F)MBsvQ>WyiulS*y_LG#XGs5{6U{e%ujyzMY zB725-cy3Hkz6jh`oM}ZH94KO4V*ijY`ZWEI%rL!cMZN$LqhotNAV{7({4l4=^Lt5I zH+SjEoa(5~(JauAnaYkFP1Y5-+Q3)wzw7PR#cGIDqyGj1Ez_6blae~NQx8ulRDqyw zZDC#)Mf5D-+&OX5WvT{X@=Ak$gV>WBfXGERJS637FjD}eMkN8LhZt3BTgckeSL6kz zCjyw9))!#%Uut1~Kc_T;YS{LkWoxe!>NDtK?*Gz?O>$#EAU63xwA(N4*O`{$(UBwe zBA7WFXo*Z;BywMIWAY!r7&?#Q7lXUjfKP|05;PYhlrIMkpE7|*V+%CAP)t^E&;7}w zv~h;P%MQSsN+Z1~I4R@7$TOF~_yB^Oq0}GGUpdoeJCDmBH`RHm!&c^sPzLlu%!ju7 z`7`_5MVFkx7F4OiAL?t<_ukCLEfag02GtE~>ZICys)v7ra%t(Zr$@2r17c;fyXjbJ zVC(^}`78X^2Q?Wx^?wfCDSLLjh~m*ysM#Qk+tya3XtIW5E+arUg^jY{2>3)N_KoNW ztr+no`xzKVGoV@&hPL;Ccr&P)S_|BY%6E|Y3?xhwnYrrdGkY;}Mc$9&<|1 z9}WUfINgwb%@?8mnMfCu7SEHsIWq?MLAo4c2zSI-F)Cjye{4)^zRV|0YrgXXCGh&` z%ADvW?mYgmRHUON*2Z>$Ii~V54crgjou6ixak`S~^mCL-dCdZ5R8yhD>!tQW?qEpI zA;yW-x?>M7!#v0FdHNX`Mt6`3FYfDIagHH=A1D3&D9>1@P@Ujw3MLqL;SS&*J6LqL zwGlv4{-Af%2pZ)r0O3Iq#&E9tq?Ooz<_ZtPQrx`=Il`-^m?#4}<6Pbfyb*5a!&J|) zbeM71&+3Om@Tljz-HX|%t2$uKyb~D+?|ifx;pR&LtCW*x4=J?{{t#UsZx4l7F_BAA|7jT7$du+;Ql@kEiQ&z@$cpgL1Er6&EICA*vHvQgw_ z&3{)R{A zl^vyHs+pVu39<*H3n?5JOzNcXb`;%SEZ`r6WBzpfpBD$1Q3#$m`zsakHU(OYvQw@} z->1|FMdq5VJ*Q)QU`ucE&z{;s0lHH5O~uDg@wkPMYNHt>Px}xsk}Tx|d%;{|xX9tI zj(&BhF8sX#9w}s$0;PsOe4uAB*KQ$$KtyrA_%BBaJj&ix&*FB6jk?w%eaUvVC&C=~ zjN@kT_@{R&Jc?Sz**sdQ_6~8b3_7$|d3;`F-mxWdah6v(EXMhNLR^3O*Rml1J4eQa zO!k_BK{NJrjDpJ=%d1aGK!jwSel+mJSTPJ;jVk0ty+jqD+f8qo08h~Wdt7Qq6Yqtb zY9O7dt{^W%_21{A{dQSgA(lTR9U3rS8zuvVM|P3|cJ(q5pi`kdI9;QAIU*F$4N_e< z-G(hC>VHo>LS3C7cfs2{wQ$RM!C>ouhIvwTjU2HB9jKGg!aRf#M0ywy<5kIO1iJ5J zI@zH>F2^u$pL(^>S}j1@_WP;3fE| zj0$PV3@mF~07NsWdsI^#E~-h=8Df`2ebrQ0?YvkAaE|63P0aTW7V4$0OE_zTyMPt? z(a@>5IipVQ6+Le6C4YWGJ6HDxIwa|~+8AJ-?{p6oUbXSZ(}BkGkEc>jG^A2$38EPr ze7xKh{re-e6hbt=#N&WLFE^ea?X%w)iD{CeC@i@obZp>@pf<*%+VvRmNq7IIpEej- zSK;OJLJQz6Q-Va6Y7rl21ALN{TdmYEp*ubJ_Tc$A3BUp|loM1-)^fl|L;D_r!C6x- zFOC-sj;p~*(azJu4Q`t~A=7p7@}`(YDzDA7xs3ZY1V)QVIO%t=Q&@G^UiO9pw%JVt z{t(2c>{wJHk}dHqaa6)`4A9^h$H!yKB{jB>49D@}LE5(&2+$4z`{lLg-}&$oLAgL> z5ciD<6;{)%4q+%IKdqkDR3FGoFJS+I>=HYYjyR6PR2S5mX3ovtOp3N>5PQA&M{{jv z$>egJECcZxN}CT0>5(aCl?|qqD@jjx*C!myUw^YH#*%-F!Rlrr(KL;Td@+Bp6`Yie zjEt2jJC9M1_Ss@yMI{1@E&d>?&&W_$$r{U??L#^fmuM--II)pEZaO+{8^c;HGE}Ix z7i~MOJq%~NZw^L&a-rt=?JAOwU431o322|uF)rRC<8#LER=#G&+9zc_ze! zPwz&eMTQu;bE+)i1xrJ*h&>BnHdEG}!Q%LK{9moh1u63!X|@C$!F&L9@{zZm3_{o66s zfk{$0_1CB*6<`ejQB&;3-8Ag8eimPZo~(+y6uC>?z@kHE%`dA3$>!720dAg-4Z~U# z8pm?)W$-Bb9=G$6Z5{JA^CeSuHDVou?rLV~We$lkm4+@q)U&XfXJ@-7eHU7Gg|X`j zR*KKmv0}iK34#`r0K40lERGb%UpK7LQUH%~?(b#wvXgD(@x!e$iHU9Eo>+qMZrl#e z&I;DMO^`a)ib^9#@scAo`QGo5&~|D)ZNu(|ZAy>qUs1r4n(Qo?Ou&RG6s;!}H>?3^ zB(LSr_2Z%9BUJ7!1e@Yme({^GpS79QPW!yyT{>>N+e1 zs1o#f3o>lE%OYOtPBw;JZ~T)j1Q62s`OAGZsac`82i8P&Yc#8pV$M~)T9dUd3VPX; z{EGVms&eAuZBi6nqAsVeG<8Uvb_zATu4dO;ZCxn)AP-Y+PQdq$;S^K=?TU}2XN$hM zEkX-79Y4Hx1!DytR+AFmqO{90gpZCNV?{@-NPe57S%37X6I8pPT& zf1x3$bBj;e#pHz%9a`$e{tF==;3AcK{QJ;`tFz5Jf4?g;Y5OH;R3s5~pSo=6*ycFZ zHDr(>gpT2cC4=FMjQ!#Bs7jW{nhdhdH#p9JWv9@Mr;D6hIzSSg+cojD$)N7x+&?9M zYwaN1q06BimR`;z#Q(yOU+DNLoZo)Y<*0!3r1#K3Of8s9MHK~&%KnZ}W@<@6QVb8G z3(zulW|B@hF)nUFm0G|yd!O7;OVzNxZxP0=D*0aTsWbaiV&I0!=<%BL#m&;#0h|m* zS___Py{(VptAzRJXA@!EfJ>&C48^(dkJ{?@NbUT1fRXnDoQ;CsTp}IvAX=inm;$kQ zv+hXaM}Uv;Kk7!gkr(<7{xjf6^;zIRTM9Sg>@spA^Pa{`7@uKT6iErJ;|v$iR<_&~ zREzEAg1yMuN%KrdUFoo+>2BsVTF4Q>@09^!tY%L*9%qMu4>(vD|8vy<(~T(SLO6|C zc3iFUO?Me&OJG`RDPXM2eVC;%U_Bx^o-nPLQ>!O|Decuy!*{hq>ZN~ z%<*W^Z=d=7F#LDpp`gg={SM=x(KOKY8T{YGxj9V*jz4+!5)4i_*_Eg4iEnb&(Zw{S zE;fX)9(G9)Ty|wL$~GV)Z#L~D#hFg&$^r6DF+Y#WiWXeNTvM68r8B~kzN{2$lZ+=m zl*qe9XIZ-#I5yW{(WZ#yA{M~n?{ac()*;lbUA zo%6-SVT&)0-AfI%bwO3eWt+cLmTlJ}uOikf0siTd)Td|A!A}nSkj_W8_v}1Lr{Q6m zP;f=#j^<2uHKBdRd*gbJyIODaQPV7AW6qLqq105I&h~O@LA^R8-k;!Q3^nml8f zU(ymqhvIKOkCS(Kp^FjjsfSk}FhT_B0<8HLBV_eUznoXz4yU$M=W%E;0Er5bv~g>T z$8jq#Eb?4MR&BqJ zM?%p%xHxJImN~hKXcQT}zQH6g%w3OTbGa0S#_J*@Rf>sAs!6n`u3cPo#GQOr30Fp~ znS^Tox8Q!d0Tuaw3bSr~S+d7JWQJh@O=GFU z2!#)pjdmYDE!9c&lF23lm^WErtZi9IHaSzSsxp10kY3#D2#Z;x$TYdPwRB2$o~^wb z7*eC#s$mC8NHomm`L@@^cr_YhL7sNsDNh#gs%`6S^g^62%s#-q!Y>C&H{5kCtW7~Y zz1_3|qn`t{(&L)=Ue1wNQuSl;36&h%IU(^ksc~B#CRP^@J%c8LqAUHsRI~}P_Tb}6 zQX@~AaZeHhd4X*LVF=4HsGFA?AeJrEax6fgE=mjQFCU2QZ>W;&{q@t4vGywRLs4R~ zqg0;zujPyN$m~-s3A^gqz38B32a#*Q^-Qy2#W59j7IeX*f62S(Y6jEsFHNy=rZvNW zw^ja?C9$?D9!5~3tz%Ff8k4d4i~bt@0pi*$+bnD;vY{GPU!W^~Fw%j61MZmnP@!2P z;PqTPo_A%ky+v+xm-7tYzW#^*Cy|=AgcdS_EoAN&*}VrP=2`0n?-w#$xKrw#m^{L* ze$pmtkP=mHFl*R3mCrAZ*Hjm^zio<4&Ci~r{{mdFe*}%LuYa_?mxO?7jAz3DpPIxB zh_#E`pW@Z{?3Ju*J8=zzWQLf(S+xqE<*cp1_CxV`M=I?}{US_Ys z05fmK7gsgnxaoIz+7wXtJB3fA!FKX^%VZ7PAx8+1tjD)}SStS}z<`Ccz+D!y9*H7; zc)goske5{`_gR1YC5_Um66u`T?=Gqj5<`2HqjAfG5U}peT#(Dfj#k9f2T7;f_vh0@ zvMIrU00vSq(*)$FY842ft^XZL{EI|h()G9`Mmgyef(?{v>? zYt6Kt#v9U4^5F*G>F=552};fls+mU78d?(}FIT?Vn{hj35!A&m8ja1l+_U@P@Avgw z<$k^!d#!M$U)u5=7me-Q;GVP>K!gfjQ5a(;pan!=`cn}s;4ubz5ZbAQI#eY5M2~{l zuC6l?mF01*hL==aYr@PCya}4cqCE^LJjiCV#}HGSF#o=lF12(%l5z$u22~27^!k;M z_s1@|xb&g}r^`>HGfvcaI;i{vTBQ-gvb8E%&xfE++$ zUkF$+0sG<6?rEGXqXbe$A_8`dfK)i{BWrErw)>msUHkfXtP;sr;NYG^#_Qlou%Ztn#0JB`jWO^9 z^-2hgL|I{P;@iuAmNx;uDQb5HV|JXchxc2O=y#vH!2Ay6Vu?Voz4Ja`#nFW;QhvflB=*GK@8$hLs(>Q#Dw6n`1D)m@fX*x{+hJN?Z<)0tJmfWpK!cH z?)Xe;bKMbNFEb1cqNCwPbSEsr@D2P1s@rb#ISh^2%6O3Dh0?OZhdcI4qXChtn z4G@0J<|P9njulP=}?n^4h zX|bYyG-@ZO3Jj@JI88+pSKqIIZ%BY&QT_`q6cgLass^QN>*(M<3!2g;z1O1$WZ6;v z$5_q>a@v}fR2Zr49x^N12Sl`96^P9<*R@obV4oV2>!?nS-w?Vne(BVr?w#|%>G*RQ z;noNNDEPltW<&L=`L(L!%h`-K$LICGgc~0Krp7?&cf8tB)x={&!KkU9Xj~D!R zY;N!*?ROqUjIA^|sm>{8WBaP(e4k!B22VTYjZP4qZpa3UD2N-C z!My-Qa@_8=nfUkJLjfn7qcjkZ*O>2k7d*DP$oa`yl4V~YcdYcTeJ2}^9j{id4NEh>t z6NTHm&QdAPw=FM!C#r+y|1ZMcDk!e!iyBQr2oT(Z6J&4*GPnkJCoouoySpYpU>Mxp z2KV3&!JUEN9^BpioBaOYt^05vZdWl6r=~b_PVe5m_FAjEr(EF79`|@b89Y?R$6qdI zJ3^ssa_pw+XsypFTnnc@z=tp%JSuk_D*1<(%>@)i0>8#rVjkS(dznP?*)N4egLr77 zqJQ~iS{Zl$1OGp(@x&$+{#OS4yYRkJ4X@MrkyDFXp_8*|p69+fs;MNUBq~ExzJ&EN zk~e28ps`R0=~Wl2#pF0Xyss@RUgrIlILY3;>O>dE;u4BRUeHB&<%891>4lMrv!5-w z{6E$tQpMIH;0^kbohD9pV4IGt=3B`(Pa-;%iV$M7@+Yg|)Dn0Uh)d^bNh-oAmXOh8 zXi@SDx+-4n3H5iv|J+J&WWZ7ct+4+7^$pW-K?NkotFog5O{Ar5{EjgA?}q6>u-%(3 z77N9Tkwerckx`ifyX5a+3@r|gPL(&5v(K_n=AnYqTwDwFD+O}=&IO=<{*9{K>zvoK zd3Gf`$>Q)1nvytp?;>F{;r!cf_r(Ub7M_#SVL3nkAHDhyTn4s1iOj`w>EQcVO+yblwEX<{v6afMX=*3m!XNO=;S?>8L7 zW~XEpx0jJTsLH=g%&>$8T(&qZLvJ%M=JH$9un`pzJ^tR$4+qeAxuwLpYC6Ht?$l*t zzY_PkZ#C<{N0d6s@1J68UuvN(m~6xbi&rLJ{@H{YFWv1G;>%|Z*?EL_B zd(JsUzCT3&pFA33(oMl-v3q)oN_edW@%4M1vla@ks47R>t5i;Ne_(i{E7N=Yg}==; zLPGLSyWpwQo}m9_tN-`&`s8K4X^N2G{r`Vj=C?>oK+}xYz@kS3vrG0mf8zXo5(r0P z@myE~bXOYj{{yqvpq2Ku)dwba`I?z*0?QnCV>{apT-TNlI_0# zKjrWbobugNtbyT))C&6l*iI3fS)`^|svmwjwTwf=|8fcz7hKq5hG)N5ly3qP@x(C$ z%p}C%=787lm>6RV(!S}%79&&92ZXXqE(>j$yy^sfA*4Zk`(BH^#HuLgJ!l3EAO2+b z0;7;r#!zhO5_*Ul{h-${i>LiM`YFqJGiB-cDi@slofQbnep{MSU1ZVeFa1iC_caqF z_3O|oK8svm2UG9MVHY5@U=}5{Xz*AQ_e36^L_5geXnrzT4k2I+sAc#kSicyx7_{OK zR-a{X5{XwCzCcW#5a$2n zb$D@-YE%TE>=7e@nBNOl!d*s_lA_r;3;~o+JR16!KAdoM)&dH*mUJOlsQ=0Pv@~NK z$B6Pu^!5!C5yVoCQl;_F>}bkcN%ZB?=RVsXU6mH<*FMK@(4R=2Tmf=IuZ+;dRQ}W4 zZ@cj{W&g`7f4$-A9NY?J{~^G9VN~Tc%PHS z*58fEl2 za2ZZ^en&=}1=S(LFLu0Jh|c#H8Fo9eD=UtDP4^qc;j;(-j~P=~Ph00wI3rxy(Z#^h z9*viP*?jJBK23(Ewt04VjW~^*=v}~d!`}JPpGn`Dn>cknE*7!VH~KXe{UKOY zQyK;j}lr$f4KJ$A&9`e-W?{RTKVQ`HOjQ1lj49gr8O+mU7(I z&@KH3YBVG~6>dUo5Mp<&{|j1F8jJ>aNn|@PE_|Yams`aA;lNzRU~}lBN{Ds0f)0n| zNoc1ed@kH|ScNhS=PZTi?G<2ynSP~Olz^gNaB0NVs8w3ru3RdWZ$DUwf6;)yaT_h1 zx63uM_b{3?D73VlO_jjqra_)k#RCtHY|LH-pj1qMlXN=Dx)?=?-Mcc?wqP@s>3j(- zOwOTM7=LTH@1I3fy)BN4pG{yY{u5)uZPbW4RW6$q-!CtqT?vQMs@j|pYguLbgo}x! zU}w%~O}PT;bDhB~KCBP}Lh~$z`ZBTFB3`NN)4sae7JK$|Z9sgpXZSMVL?4=nuNs1J z{d{8yEfwMKtUE5-C;pEn{KyQN#Vvh*(|b#`~<~UOzaZngi?mRr*shut2UQ^Z?UUlCB=bAlo>z%aV9p~ z^1tk|R`Nu5{mbCMl^txSfD4qJ><|*0XuFZeb%7(*mB0R{QaUOc?7!(gH5U{A3oj%% zAA+;&-T7FeSBVpxvmbnVK=*if4WF9XWn>0c<)!{eX#TGPz}gmNIL3VSks7{>J9FuO zH~as7Xu>3r$Jd}bs`v^w&lKS$ zrOi0n$dH^juY?gnxXU4e@2eBr>|S^lkrfW0RDOjz`sXXDBzSpFLVpfL9TmI zNX~5A@S_50A-M3V{52J-Z{9;FhpR@aSj$KVh;Ny+Rq;*5P}O3NJ@>l|*<-Cr&QCrx?{J{k5RDL zMV<;Tu`c*e%MuNGXA8k`*##QY2h+dyL#?$dcMuC%EZ~Bbky+@Uk-isv1+N*IEq@@`CTC_?KJvhD-mpk% zy3F4yk3-jWBG9(Y@YT-_9S;2Q2nR2PN196@$F7;tTAx@Vqn?<=vd0NnN+EX{Zcioj zu_h(=?qen{lPW=<&}R>7HlP3AnZG|@M82I45byj&FXj~2-mKT|jMQztntb>bxfJl#_wQmnaOm{v%{yzL9NYx>{VFU64EN7`6eB6A5POh1 zh&5*oTD9oIdJ98?t{^`G{Sa#p@9vTLkwMdn-65%(Z$~xoC_q#eyA;B@rrmgghG|mt z?6Egr3}1SY^T=$jByXNBjGPjn!4#D6*DKFjUo-P$v+ zA`TuAF+Z;^zM$bJaq$qfhZAWiNsg0!MHIS;;*HpyJ!jeLS8J#X|S>cP+5FWD<~D8GD*Q_HwF{;dXHeD$2$f9J;23<$=M zfSVvf{}re3CJO$2B^e2@ihYO<6luw{>;`R>mnE95%{?j;r_$p(3SsI zz5ffr=Lf?hRFUayZ`R;^|GlWBG*zJbL?GfvH)%Ku;mJu0W<M;JmN(AZN)?c>jwg`EQm7^wF~0-LuvK&|+oNvRSI%I{P&h4`{yK!k@I2yUW6!5CbYFd;KM4N>an%Pn zvswUI>DRb^4#Wc7XAwQ2!!XJ#LOz1iCiDa{UQ@l(Q)Za=@;tjw01C$Cy{pzy<dUN`mK$oVTDl3G9t zBbSRxExgl@L*U&K`P=p>C&2`sqJuQ)ODdkQ_A#?jx-hf7uH)`0K6JdgKpNM03i;H5 zq=k*&+1B#J6Lz$~B+0=w>FX1k&D;4h7D4fQhx~%lJNd<2Y>oYUKjq)3PS~@Mh(S8V z^4^O#7Q(Ii?SwJeUumvW)crQzlClzb@7K{)?5AvOkgzxJU17s1P-MIDRC5Y$Lp!(w zZ?ML+zRc5Lh#E~>bxHx@?R(jYSip-_4TSQ2HGxsJ!9pvBES$UOLf6ngEn|FqFVX2j zG4cMC6Fx46{_li>4b`VW|EEl26=XvK7<~y-sXX06P+iAo)tL&sQ2PADDh?+go>oc8@!0+Bgs(O3vU;mlAjOc=EaV>t zPmfSBH}Q7YiBFzFT8WDKoK!_FmG)%;hT$JS9A|96M|bw$h3}eE3E2q+1J!GH?{zg1 z2hBxEf(zgy_vIIn?1jPx+Nn?xbURb~;mhgO6$mX_LLcZS_M8Sx75=zznTpK(_F*+} zDaGq_>DT(*d#?EBpYUhHh8r93gZ_G?Xu!SyCY88)m1&u|U2o3`%0<2fFqFO?@2Jc> z-iZDKVJ#Z(TzRf(^};Z>FK15;xQUXv@G|^1*ye66Ba2xJr>I53^pu$}9yr zvHe}@Z(IX&%X$1`XWe%HjnP|H?LigEo95|;_xpaCAa_P_VhO8uEvW<<-uUIY$Y- zhwucNFZ};s{iK9{Cy2^o!r{b~$RLd!Z?J|;Tl;mXeDLNoD$1Lm^&b?^4r9nge?j4( zQySr&uQI&Utd6R;MpEc}{86?O!u+Ev0C~OUDv%bX>$-P;V21LgDX83U+03<+r|jYc zALMQWD)q#L;WzqMet&Lyn^5Y}TWKCMqjQ;58KF-YCUyG)Gi@>b^I*kmKgtcfXegPl zJ)T9qeR^5!%};Q0wQjInDY=>z!2JE@aVKNpeSFD$ncwn^NTa;;kLJ--9$W2)Rn#Zv z1~BB}>ir|3vOpP=I>rmqm@C5bi)+U5sbR))!?3tL>ww_;v6)`ZP%@kBj|>l~aQ^gWf1KC$!P6FK76z&CngB>rv&P@-LHD zc&Cq-)J?2sux@hK@GI)#CsdeFiALOS;R7oF6KQ2{zsptM_bM+-^l~@$Cbv9)-rZB! zEE83jM<~qvWYj?j84(eL%!&x^iwwt}vWS_KNmBNs2efBQ6K5dbuP_DpnF&Q?+BXms z;&v)1N&iAm!(LL$JWbP2IZca8{7a$tkyI9h9cdzfEPd`4l-tGCrTX-7P1_`+ojDB% z-zo^-8o7U{Ey#F>scXKNZ;f<09UMOhBPIe5Xp%{6;^u}96e3~Az^JLtbK@oO_SvY0 z9FeeHWyGlVi#8;tCcxnP931ScI0=d2rF5_sfEK$A#AAI)2|Xzmm+;351IN@dVCQz5 zQT2g?B*IN2z{%{^xa`Ku0HYc9P;EcDQ0>t$tSSOh8Y33s&pjZuWUy;CKK4P8LQivS z7WgWg68m66focXf1MKTegZ05#vGSantHmgSBWUKDJZI4z*Q+EZNZ64w$G=hXgXDrv zuE@7YB5{+kG3@!r0$k4;Q>yoZm9ltVH6irgf|#oLIPw}zwLgl^Q|RD?shmcZT6mFg z6m1F29SgWFL1hJ|2nDf$u?{! z`hJ#74$UGx>Vp#_4!g?{wb9(VQ_p}>aj2?JEN(7i0<9FPeCPy{J+?8llBy4;B%@%F z1W5*GV#jT)0sxiD$_gvBG09y?9}6M`6cnOjLzBsEf$VMj>_+$3Lp|YZ8=*RE9Jm*T zW7GugR*KB2Epgh9jTBXaAXg*L!1JCVTOn|QfE6~AeI2z{LYaKoLQL7nR(O)+qPI3^&>{i-TAOom5Om0&8}XAE;}+}`}Ybf9EvrC3b`9&Bf%(W zFvxaAN&Osxd1F}^950uh*R}V*^qh5(fj8nXa0;D-X_U6wmD3qNMerJXe@+j*Nad}$ z`QUinrLo?Z$k4MqEdXvoI>xy<#a}nb?Cc4AM+Oe*l3&l^5Aom%qt29Qkc#!_iOWL= z)8*G=D-)PgX9Ac-1<9Pgdw7B9GHKgo1zX}$Jq%9R)+KZ3d&0&{!GuvfxNNq%p-H`A zSe5GAIZAZ11rPj~jH@a^B=Iy)II)f= zL1K!v%*$cqd?{x0oDQ~~L#WD7r*hje>LK@uu<0T&iF=^ZZJ8W!E5$xPa7DcnYJ+$@ zemEl{q?8Uf7$CAlhv+eqK?Lh?AhG4IA!@YPkm{DV5U0b}kaG`0$h{jA#EpjoqV6Cd z7hS?4r;;L$vU($mB2p_Mdu}IX$zv$GN09!RsKij}4G{{;UMbbLBLGdAb!5=hWX!KB zcAWZN$*${pnYjlZoVzrc;&TE^V_iz23p^9N^x$x|rWhhmk|9Aqo}pME>X2|f+EC0R z?U3U-)=+3g&SxIfY-r4%Y^dx^j?rfZjYGUBIr5`0x%Q%{q4)*xP#I&`kW@+dkdy&< z$j#~pV^m{UNxbZjlI^I-l4%1-iL1G4-F%(Om2hquJF#ZgEXp*qzeGwDKh01$KSog)f4*EKzrOZ&etmv0zmQ@i|KdURnEZWCMG@}4+?JHSaYTKe z^_1Id zwuyCv87w|@phVP)h~*OZNaYf{isi=5kMFv;kMA1!Lnk6QwW+Czh3W)|<6=J>zpoH8 zj(qvq*Lo7zhp`yc*JdBqN7&GZfUd}E0Y&L&%0)5k%MQKPwlMMv2PDmd0a|6-jDJvp!9i%j5kpvk;ht>-r-fUrkj3?11&iyj zYm2cfR*SJV8;c6joF<)fXj3IQwCN-*x3`syWn~$SB_(c_SbRKIvwI@8+jZhkK=*ic znb3H3aq&cnI_gA;fc^Ns0_J!sDeidcFv|FXcjb8Vj`zfU-owQGPt@^X!Gnq5)-U71 zpY135dPo=MY=jpY+h`Z2o@0R(P(?Cz=%_kdE=!A9PI(G)ZTSGN^@#MMJC8(*QIu3m z>CI=t%pEZvcM)lx7sdcPcb#xMclYc?1f-lr@pGuaPJ4EX2Y2(sFY@MxTa@O9NB(A> zJl19&r(hsKF5QN6cH#0vj``BZOSBVFnAD~u4A)Q`76*`o>1uw4J^b0dEArdDJC5DG zTRGpA+}GOu8AIImVWOK@eLO5?YdowbWIU|nBqs^|CO7G3EPFP?I)^9D9_pSC$#Kue z&ABOkkvg%Tk*0uNN>Q*biBhndeWnmD|4eZ*Dv_o86xyyQU>~8pI~)DYj3a;C8bCM%7l{@VtIfmE;A||dn@ZEkY3;*-c5D1W%DRtlACa_ zw&q=|rLqL|Bz~Vsb4loc%k;Y#BCSF?&NB8vG;gIiB1{oVPCig<3XVU3^GQDrkLt_E z-Z@-Zb^|gs=Je!|Oe*1&hfZD&Ok(Nn(eWQ6@Kre}B0E~uzjF>ver#L}23R2J(EI9C z%c%We1~C)pFq~Ud{|P!a*&^s49LflZ(WHu^EKMYq)>>Q)Ez7Jy(8<+AsP3C~HW?+w z)2V@4M&Ou?YTgZ|Hb}*|3M^3_T;mSD^Ji)3W2jcG{bsU(1RMmM(8Vd%Ow*>#)Wwae zXHljV+RJj=3w*a(Nuy3Xkrl0{&&aS*t*4zgIv}skSDhr*A583BjbV|lrCE&57~rlI zt!Fq*v8iDYp5Gn?RI?;x+AMl-&F8FqsumB!Hwmd18pJ?IizCb2rbBvmgpgKe0YZeA zKVw`R$YNMOA@SL0%Q|`dDcn5e8XSljq1cqs#dR`C;oBTokR4Q&myXMASNJI1P$n8l zJ|9aeR7${iZ${#D8CSHq`^9*WJ*FVqn2wB^P9juVX_r4H-QkRguUJjqNo~1tGcS%| zPX!^V#A79~ygOd`>Z!>+Ra*$8HCeC@qk8;P!UuT1#kH=5Xdh_E> zfr#kXC|6cGlL7UP)~M`Qd17dK(j7ZrhsQUk&icvCb=m;nyVx+p2)ZQl7712muOz)p zLF}g1K~JZ<=bxL9HrOD1*FBIidQ4 z3QvRBCG8fXCP#T3r;WIv%|3IT@|dV4H752Z;Ix60b+^yv45I!(xw3KeB9wx*VaG=K zIB!2zAnTaMo#jR581!SHV||7Ch84aXI?O+4$(@p*$^TmM{JUO^VD=6GGr4de@R0dD z+a*SjmzvDe;z0V`VcU3fVrgd}SF$;}f2(-&4D>Jnd zy3;Z4=jUl$wvZGxo>{9q&elQK8ys`eJRgTop(0O zaaw9t-fFCg8p^0e)Xe@PRU$fUs?o_*SN!?#LrJtRlV*`Oamjczv&J{044|E=q!qEo z1Osi+x}QMNdOm?lZe^A{%U2fy7t)Jx>y8F=tQM=br^Z^3iaKy=^Dy|-)k21C z^Du69<;ilARHPHh3nQl^#K;!2e)6xdV!F19BktcKWbm8f6^xxE6v4M^RsUi|m|L;! zE2sa&$?AG!p}y}`&@_cE7}GrA|IwAL+iBmRk85U5c^P+I?ItR*R*GoYvjzNN4H&=h`K2QF5EG4 zdp(+F*aokZI*_W0xZDvITr5TH~=E>dKX0;b-#KM3};xky*d;+XroiR4__Y(f@u zQeNZXB70(Cbd%l3%TT&FfxW>)Jul*vh)kVpWTBeR7+#&ZESFtfXSe5#kJ8-MHH*l+{)5i6?vQZi#tEBBi7ddv8H7WL4jKo-t;yn2M76#G+(rf!)HKXMWy>SAji||% zdzI`Lk(#F4Cr$m#p2E>^kc3tfztqX>y8SIN0yjCqk^2*q0E?-Xn`d{~*was)n_D(B z-~NsigvxzRq?Pio7{Y&2#5Gqq`U$R#D_9i!m&oeVJYBvUXC7(8T8Z?(dkUx;uT**r zw;BS2JUa@27td;(+s0YgBmK`+DN(ci99h94M(rw0I-5ypl6RcHOd{Vi>*Na$gZs6m zJby13u$diQR8&8XY?S4$`^-!{36tzSqH+KE$!wEHqB+kSh+B1DdQcYom7{d(1B`JJ zP(5^+TUO1ATdH;6RiZ3hwLe*0=2p*N`o*w+AISJiC(O`@Br~&@J2ENCHvJT5@o-qZ z{;3+>W_C7h-p)Dm*Yd`tx%c7G$Tk0I>=D_Ca=rVQjm?SW-JCEjPL(ep$?U;!Zv-RT z`4<9*vD?>q)x+OImUBOZoT?ETX3dcB4+b$ZdTPYox4woL4EAF9uEdk|Rn+#;y3GZb zAN~@;aGU#?aCo{WIk%=9^{YEe{qXe5jK>p_Kmc=Z7JqAk-P2DWL33j0_)u} zZYEm;hsmk1xvDn0Dr0xMZ~f#%1Chf^nPf>FuLSHIt=xQCoDScLWM=$g<`!71>r`r; z49mE5cq4FUO9ekvg7q-oon*e4eZ8jUXnt;9l>oHCFCen#=jI2YKMYVpokMI({Dq2| zZ%SBy*vrZo8>#Q($J%n+#qB0L6L$C~fN#$9Xuo>+#KimyUh!DPu78j|yCrrDV2#{u zqx<5p04D(GRh?ENWyUjm^xN*+NsaETrdb1e#HbxfeZq2P3v&zSu&CRYeD1>vRQ0l| zh$rhAoomq~ox`=~@;U08#9#gW{oj=1<@+;H&08M5PuUl)><4;^0mQZ?=q85gPDmuPHYqI{bczwGhLr|udfTyys>3C z=&#MUq14$3Wtpx@sn_T?o>OD1V}0JtW67wAQEXS41{nHSs#nNzZ{5?TJwGP1ILDaP zk7S`$g!~FWaO@hp8aWF(NV%b%O=Ir5T3HS{a9`(|eK9epcv+oq?7ZrC>~6{23C5Ix zp|3_KlUzLm;OCi|+bz9{AmK5>x$0NL8X6KWhwsaeB+IY6N=(yp0v(eWO*La5O<&4W(xB*bcZ!FHobygo<*(}gv zfhlIxWTx@+!~tiVIk#EX%~%viM#*2mX>EJVJUbUUb}P-=ORa>)jdzAx4ya(}rGU-l zMnubfN7VNPTLgHsjflW)CsdI14uQ+a5Q_<+BPt1%-CFURrLI!(CdmbJJJs!(CFt~C zljNd=-Nc&w(mGc{Q?IAJW7xsf8UYX320cP|>4mew!v)FiECXdJ)+nQq)}MYUHr2L~ zc4ysrxS(=VE0(Y+!Hdr>AthC}CXcS69p+*8RM)>0%sShM-cR62Vj#TE-GAI|JN7AV zu^LL+;JU|XM*@smOb`-ic!)||YS*u8^flLYeo!~vzAn`HeMAurUhFtPcK^Dla{NmT zEbzH*EAmp%K0X$D<5_V3@{9Mo8_GeP3_-lvqpuKnuEOsUvO@2TStW2PeZ+Dcyoco4lt?KznN^Zy+Ve~G2ZPPC^wJE zeQnIn-@W-vFm9Z*F^;!VgO`Tu^qZ1q3mhsTqdNw!pn*0o*A#DOFM%6wQ{Q9T6~v`Q zU(2S32OcN;C^!mTu^#q4Ud?zA{N3qWEa_-?&C~n#3mGndU?}OsCspfMpxsv^2~P!P zp@`5?QmKgxqu8i`!CeM+hQprC>h9zr97OfN>Tmm|jtXs6-%^hv_avg&Gdx%d)O)&W z{jevcR26oJBKJ7NKh+=@>n?K6xjlTU_Z5HyGV#nA2S-+%LvA0g@nf875$9EEB_Jaq8lD}*%%ZDh;#firRrFng6nwh_uw!@ zZtPg1kM3CFoZ?tQg6~iQ%XhGHrczqoMOIoqp;8huVOA1qd#9v+%4VJ3YiV}aV`)~= zWyy`pJG#}z%fjJsZ=T?IztiFn+~xku;S&x423u!W%%(OkKLIKx19PH5c<<2QFKu@$ zf_|26wfXnjB@M*#ql;gQT}_#l?@&vtZj9>Oe9L;9|gu{&Xm(_b09U#jDa<DYg-Np^Hp(hv?OEAbf#v_OzP=ni|V0O^Z!i? z5bpFhQ3`(AkH)>bkHL7gUcsCf-c=t20(e!1mam$Uk!2m?q;CoHfpo~T2o~)1U zuE&kGrD;z~O6AiaF z89Kbk`JRb><0o(A<{CJ}RGBBsM;km>MIlDPt#5 zCiQu%oSuNAte5pxd8uSwc0OuD_GiVKY%j%MS$*ffa1m3`($7uMa>7ZFZ;M6n=Rj1U z5-g-p`00CLds9RqpTU~t#FsToOU%EP>r#T{zs&^8J?I3>$B+eWMM(sY{3ry4CJhAj zLn8|bI|2)nn!gt|5C@w}gaw*&Ery%d8hkfL(+M|cHvDd$Nc`R0k3Y(MK5AWOfn0Ey zG}zoUG{hXAH_&`k_PhCV$)-(_Nh8=?T_3jDE2&wDLiZN zD2{ZI4T*oR4{u%n9VSd&W8#rsE3KSewmt_{PG(R+1opiH$b`z+% z%g(T^85<)nH*3I8v2H-OGuz>|uYDjhFpHANsFiNH`%QiTqV~2qZxZqYh6sJjkhl(V zWzx=V5c<|8bRC3FJdayHXs0|EQbSjg(35H7P2ycWiFjyfhFMcMUq6t!eaYqzrgE~O;Ya&<%^>_E3LZO1@>Np20Jb9Zc_9^bZ7hq zo(15*%I$U5b>B_a0*MIB)*kdVsBJF>^SYqFdLbnP$G8FGhYyr*l1YCh4n%Wr)nT(@V2G ztT&<`%9BS`voS4Bw%dS=AI{CZkA~Aus@YClrrN93SRYE3kPb^L@*9G!3|)nO__{7F zT>~qj^Rp1kqXT*7U-lNQi|uP}Bo9(Mx(@|qNQY^}8MXHNr3*anBbKW^`M-SSV_U9S zCaZjR%KESM1vnOO?$Cdo3@gvy;LBL7`m-eYzC_4eBODyeV>)^sg{(+7Q0P|=`PnS0 zJe*DG9u~esZ^%*-p7y&-H|qGa{L3)HV9Ia#etuQ2b;YmL)BC};8T#Z_yMNs>ue@+# z-)QTP(~|f!-`H`)Hn~&P;i=a1JeYGAV_o?$zut4cfq^>nVapuG-3!Cs%QuW?h&M$0 za~TE%))+1+%s;L}G9K5bmv;#(ZEZU|ytf}{SsX{$Huh)z@H=QOOJlbR3=dM!9~bxt z?p>)E?_IsL`zjB9q5BD0A732kc>gkl`87RxWrEjcOZ7}T48$w%%9A4R%2yxe?2V^x z{7B*^{Yc#1t`=S9P8S8)@>dgUF(2!rQjQypjrck;HfnB z2+YY}2{e9!tWMOPm4Cd=xVvaxO%djK8oN~7zxk?Y)`7&MbSvc1+;#Hpk=+j_h2vK# zO>pBaP+Y&dNJ96tA}n-xQ=xCuadV^5p=_Ib>)Y-VM<;N#vqxa*Szxb~$u}Ktt^`}3 zA0vesuyrlwtqBrFRRst3hdy}-egZ^M2ydLF)wZt2DhnExbHJ2+x-Xo~FCHHk1Usx5 zV5=?t0?_(xvT}4`HKW8RpJD-uX?to4&hF2`X2nH5BhC1C$!u}wjvPIk8{usO{qw4U zQ5Wva!ehA&K6=~)6j9JS4+S^j&fq(rb+z2v9^8Wq*+R_qI9H_sx+tAU5M70!#uw>$x4$_K8dt- zo0XYJs8qFQF*IHUw%1<>8hW1^w~w9s`7CRO-Pzp(HF#gF`wS^F%-rY$(H@-_m?t-g0~J=WOrE7@6$Y(LP2N?$((!; zQ>Q5+tLV?8L>rb!C~=SSP<3!td>y(-@r$RQ6LSyDwP$^&g1!r;+w$G;tB@f9;P2f} zo|nIbbl^@l#f4x)F9({AOEZ5zqKcu)4|HctW{Nvsl=QkP3pmb7=RZHDb_U)7OXDuA zD<&StO2h8-&0Ee|#>%&E5)?Wq;6WgwQ;z9xHK6|7RYUsN8?XUf zud-jc@@IFEtoeof%_GStyMP-6a8B+0$%~E81@&QUtAQC$wgDjSl|UBn%Uy zlH#t6Iw{EE^s_S%Z6#|kG#PVPSwy%;4o)oa0t&1706PuOy6)k|PW~eOcp}T}TbjWB zsm4^}{fFI1OFjzz0z>WN57YI&RhOVO|t3r$^fXg_B9ApfBwz;JU%!PT^YQ@ks842_VLpHq5JO2>jc7gMSeLRPpFA=!-M@@!mlG)lGn~#uny^UDemjHoYEOxv&>NnjP391u;RKEjDPza>}{+Lh9=T zq$hwGxzePrkp{6ne0E)$JGUia>A2Ryj!Jeb3&cDbak|?MO2a}Ud^M+5JBRpu8O{wN z?iIqkuqGwpHN6|p1m`xNnWpx@-6gH_D(C)+CHRqA1bpr*P4E)DI?nk^G4q%{5~G0o ztl#015X|BDfS|j{-VbNzd3UaDV-5!ix^ni9eIYKUcZbrr~P^GaXDk|QpGUJNXF34crg_>y z@M#)Z+~0$6T2en*WNGh6hmmFl-tA0U(wly)NVZvI^Jj92ymwV#86YZd48au*6-$$n z#5NOFjB*x$DvM1=ykI>Z>Fx@t`(LYzy9% zV4?Dg1WH`C@?*EHds2B#mrGo-Hh_0ajd9su(iM8nt)+Xc?qk7Z3@F%ilJBULGMOX} zgJ?tNJYT4cPIM)E>|zqZob4po-d{DTFvM{kZM@5e1wXED`WZ)6nmQH6T$9W0@xz*gj9a@+!Bu^j-j{H>bNNPEC8H%TPYfC^%$9@YPJ{;Hzz6` zrWhG7VYV0>_it2^Fii=_H?~kb_Zl3Am1`Jro(E{_T(A5`L002EYH zlNl&LHR{jSY60W+%O5XWnvjkCyt+u$lRjN^&~TWiiN@PU|18pYB2vx&Lkv}0B$P0{ z#!xMvbb~HXWfWDM(3F(($!eVV{w%`Y`ly+m&e&Iu9mx|?>U7HnJulh{M zOY7ORUB&v3UZmubmq#G*uAvOzewIWEExjh~!)^X6_M%&2Bb89go@}^1t^rd-M@CtXD&P2vpgtA2B% zt0$cvVl&<1RO-Rc52c&GM$96BZ(p@!`Wm!LAXeG8&=^f`XB^=tERuj*#ovvGy+s zV)W0cIHd3;3PK|Wl-#kKTmV!JaR0?~D%htED@GTW>U_{g!c`%%=r{_CtOFG~`$hEf z*%GW6hf$S60e3s0_4F$IXyj$W;?a}VE3W~UUVQjAE#XGXw0@B#8UsE49AgChJm@Yc z%22%|&Oi*5WWXs9W2ixsC?;c9*~b%X@4hn4XIH6~*%Gd|;`JCDY$9-oGXCyR!~#|VhvVmQQ5KUhw~6D&7!i-6x@Nc=Rx zC(NjG#d1$g79rP5941$}7%11zA3CJ}A$UmNFWBnYmtcDEtN4}I7s;z_X0fZ|Losx% z+Rx}eeTvq`C5qOHbcu2U5#7Ta^#7u@NxGmpPT?E5ZDOe&v zG`0btypeEF-cTgyk|Y3R;}Zemnu`LN$%TN-T7Q5H>YHWEr>vfwruGS>$~SDqY^Mr} zMi1+YMl)U)jjqB}7C#@TET+b&2s{&5*{=pJ2(V>iG`!1=6xxAC`YJ;s_ZXo{gj&$d zI_KQX8)eW2_WoHF@BUr(`~8b8g8j56z&?*B?>?bD&c44X0kP;q&bLcPE*lRdE}H{& zE}K4YEX^2z{bWp4n?2@w&~Y-}Rf00nRS`Ab)jm4W0Jyg(q$9qtnJ<9@CWh1a87d>Vn2Yq5Y8=ajx7rlxzJK|boB65gvLDd+2LG>Hg zLJH681xa$T{ty>Y!jysC_1~zwM#l=fPDduY=kqPQR_i9apn8#sxP1UJ|5 zgrl^H2#=eI2;HQKQ8}vSCIO-5D_)}J8!yV{n`>ZmLnTjhM+aZCKP}Kpr5w#`+?B)Y z*X;+duTK~va}@LZqx`;C6uUX|uZ2jju!J6s>ws#x{lyg7{pHZy9dF=emnTLW`2KC% zqq->D$&pm$zOv-WGdOUiza>OC{*lDDNCnTgkr^75%a$7zR+c&dSJhc-h2)+>`UJ^{I)B$%&c<5jmVLENG6$1H)@hn2DlV z75j_9oq*;P{ToVNz?ZsuA=r)mPoTr?+$%+a3 zV5>JY_O7H3aM2&7ygeJDW6Yl-vZl}Bf1Pgf+zT6g^sh1baY;S+CS@ZAk+Befs`hgr zAmmTnPdgzhR65GRE?MsApH4>r)DsaUf^WGx)QmbN26okrE16|jvUE&%hw@qjX^CYj zg# z$$NGk^F_4kin_TT+S_9mGb*kept$7aUW>W#_MEaHGvl671}=F!JA{3GKCb&~@I zok4Dech$@BF(xhEb%T+5bk)>ZUBsRPW5q<(&cUT7=CtqU^S?1xKg`RTL^U!ElAk@q z3GFa{e6X_a-h&yIJJJFrX@L5S^=A2k2K~6^kUH z$ofAFoq1eR+5g7B^J}UpQ>V-<*C|sgQ&V$Abfz*Zw@S-gDK}C9cTf?TvSl=v%-jW1 zQ!}>|1r?RbEjP$rHg~}dOi@q~{Q1Y{-h0mL{&Vji=bn4c^E~f;F_gL4^q^7L{rVeo zFZlfK+p~9Eiw>A=uX@bQg{%L#cm|N}V{aS@^9xS!h_2IaTn~u|dr*v;%l(%8!w5W+9#o~HK4y_`T}4jM zVQyW`Gtzylgad1t1Y6p|y5q8#_g`udhdpdyt_oSq+O^*sb*!vmLBL!lw((3OG|)5b zb?)=sgsC8~$4)_h=(x#3>B7+05*^KWEwejOhZDX%uds3R`tQ+?ZN!&%+tL zxA0gsjBZ#nU%z!qEBfPY)%9Dfrn$7uf$pNkl6N*E_vQvK1->|q^>*>Uoq2D}Gh8l30mt3UnFe(j`Bk^bndXjqm#FS@I*O)tw< zuezsSKK>~?7?=?@o>BH;dQhKbAe8J^1+-;gj?9%kvLDM!9@` zI&JDa@Nl-QFdcl?y7b}4#LAVM8TmWUE|~#OJkVrod|o+~@pM{LD5cTp!Ft(k+y`qRkCBV zdP_RzUA!WI`9X7|^}0Qig~_dRDrEb`+3Gya$aWJiN!M$5q62%?56 z=9Z}xQ|>bultLL!l(kBEc%PzmnNu6~J|}SW14Y64Q=YoE6HzI$1ZHyEhLt$@yh*$x z6yQ5aWlk38# zfSUvNYEMKYIRF<=+dB-@gzJ|0=rA3+mRyrkOuW@qtOi5P<0uXhyVt6qrGG;E`uvjZ zB2*(!V!$YQbH~;7h{gY#UkFPfL?q;IE{+}~3}6m97Xd7nZy;bJuXtvUrCED@3Nc?_ z3M2MJM;4#OTgUtuo!dytjbDt`wi)ERw-j)Qs5^SMq7%HXpbT0*eE&OUje*=4)R|xG z=jRTsekMO2m##VOj(c#7RCT#cBdI&26n=#wlF$C39&C6|ljT=v=g@hB8=IRzM=Q$d z#As`}*|QYea-P;-x}vYX>Fo_anLVBsr3nY*B%lOG$=)iqx^jd+ z_T)suTK0|g|7orj71#|T@j35b2Wa*a4%p>#Q*(|<3k;Xk;I# zgR43<@wH1TxaXbN{zpq7S!Q;PAMx4i{Yd?J^_C|+xUH|wwdyDleAj*Ond6&2w}zZhlL zj*Y&%FBfTLmP18zzmH)q$iOi%TYkIx^jM8vX`Do&NqM{K#zAgLe!J zJNG*J9@!X%m&k(Irm_ZjC4}#(%XvMQA2q&mU2ndEhdjORPy3|Zm)K^VEx*dqFAvZ1 z9vvIWIiPNNB`d7jrz-ngxQ1A*FJss>TYE9rP$(ciQB?`-ZVvkLDjHC8o?k;f%a+=H zv0b|)Z>y~Qt(JqU70^apnJFW<>nZ{LP7bnX#-RNccozPzS+YvRg`I{ST`o_sKZm z;#CIg^#Q(*0^mP5#iQeolbu%Hj!BO{iN@Bpg{eMyjbnXHu`tb6X(Vd{E?J*}GrPa9 zoDbUct<^aTh~`?t*BNOm!`2ta7mZSDhFUNCl(s1KQGOxYC>O6LV}?rf09Mv^@PFQa zUU}XwKW?pO4-ds9tjxsCk9Ua6@o)4xeX}Z*yL2%gS)PMNhe#Daec{#xl`DzAm5rwn^aOm_Jf77QCqs(#vx1X+E|6H!sVr=SDhb$jD9FPf z;UC=1Gsh*fA`8q#V-=b!6V~zLMg0o3T{9WJsU2$Fs?aYvK*0wk~$E zaXCLyt=76JP0sC%p#Agyi|E4YhP?#J1z$#L-i8Qb69!hc`C~MxB1b&O(#2aZU61yL zKlDW*OT|yGsDEX?X@u6h48Xe>IQmyR_kHtnt;ue2-BUrjV82cTT*aYwUGxOq^Gz%1 zhw*#JbOcFGB8NkdPyX-`8j~S@mQ(eFVO~@-GXcp?`wl4hW8e+rok;D*nAiqiN0V=)RZ>Fn z?u0Ip<08d8EiVaG7P zLx_zp(Q{L$WR!mBD2q*qA-e{!Y3CI8x0P#6ahPPSFA;>@N zCY)ogKfyH4&+3&mywjQ3kD% zbZwaD$~?2=RziclAtyA??GJIXHsmYe^F@GedUI2EZNMq}(8BiN0G$%7%_L%uT(edXUV(7~60bkqR^ zJJya@@e2#^)G|Vp2-JCY%UeuW;8_HrJ~A$=jhUk#-e_1|5(?gn?Z?m1w!k<!a1G)OVoI3F zrLGNmE7CmnHv+SA!2q#5{y!ce+!O)$rppuj-N&+QNFo`ER1x4Ohj^0S@67m&Hw}kH z*l<|~YqqL|3Kh6j8;=~{k`ji5y7KPfWSB)2!3{PCY{FB$w5C*1eLsLHLM@@G-VkM!4Z7(xjA-(~u ze=1y0_dUm}IjcbdG!dqUJT)`nml}{{rs#Txo zSaKVGpe(Ltir%4>g?^kkUM~pLpofeJ0|{C>e_wi*aGZ9fDMLB^8Z0Q{t8W1|`!e}| z>GBusWO`qgxuC89$>t^D9vvIK;n`(x&)_$;9>b5vbJ2610zyzX8%|(gPr9ij| zUvb&h6}aOViUT#1{5#{Tl(T)Dg!t{mJpIY&-`EV9ue*be(z^+<=8>YVC$ zb-l$GMd!`_EplGi2gmj%6nO#@i%iB7e0*7nKGN0u)t~6YO-S+KHvQ*gvY0fRQy*$E zZ|)G)aKa(#gR;Zir+B$6Xo4I~d-g^&W9o*}#Pkh0(9{it)6@;(%v3ujaJHR0J9A#$ zW$L34Fzw5#o%KbiPR(_vPS2TiPM=Kt&*>p7(TQ-w)Gzgb>HN=K)A@TRN(0IND_t7< zqg2uJ&rG)x^QU6Iy?iJkB{YO!Z9s{Ok*CCIno;gmU7+aS!QVWS@6)H9 z?-Tnl=>2yyV_=(^LrIqz1>0t3sqo!QPWqdf6uHf;*T2my$i0XG&kz4~Ge3MHET6yc z)Z=&lnXipR=WCZHgiEvDgeRj@_*i|&Em!0C$r;w125Xp5wLjMo2VpPjsAaa>yiK2)(hK;?IB0hLm6|RHC8Z0( z@1IG(>4LPhbgj0pRNXaFthy^cU3IIpQ=aGfEn}&@Jwp%vJ>&dAmnAbr7uU4YE;^>t zW7wYxV;2Xd$6B@yjRE6+8*3R>9V1EpZw$OTyCa=ByJHKQIW&BS={x7gjQA?eZ0`LZ zvyke^obixlu8SeerN6D1^i%Rg3i&r;BVUzhKmG@?(&zxu*5fy#_PgH^O}`EyEVZU} zk@P8;XVtVSnh{F1-6s;x&P-d`=(V9ttlCi2$S(1nr3TQfT*IX0Q6V5(RtU&d7LxR4 zB}dGsC1!~;zx7W{J&Opk_!1dy@g-SB77}?v)*> zsB7EYsB4k`=Xg3`CgGDD_JT`?T>pHOH@hHeCf+}4W+XZ4KA|mYa8563@cn_P!5ZVJ z!5nVXditlRp0#UHfi?W7rTqI*OYD)TrTEgQrCC^1ZlxBslhrx2Yd#gw-8&O-(Rezb z?9FsQi;8!e44}@U>%c_dMIH-`RCmn-IUNof_^^D=yvQfA5DE&RznzHFh|J z4XvDaq}_Ix0?6_I#Uw;hDDA!8$w%NZgO>rM>O>WynU7FAZjfi^HomWQ(m}3>-MOKO zNwrn z#0oBX9-@^;Kw;H`tU8xP*PmX+Sw=CA^)B1|jFvl--hxZwK}Pwp%g|~!=NgwF6w8Y^ z?To~4*l=~=59^8JBcl_q`n^}P*<~%FUt0p6NiZGhi-N5h#C<_6G@=CGz;98%T8#t= zHnt3{xZ7ad`?@sL{rL-m+l~N+R%!Kq2c!;l)UeO8;}pYkZ^u-$D`mT48{#b*?5XFL z`=jcr&CQvuOXI(ZKF_vPgbuYX-LMF1uBkT9U@0b7>N6C_xaAIG_|9n2XZ&;2NaL~5 zr;kCAt+^;v%I|{Bloo+b=_i`k0dvPnV09oR{A3)Ld0n&_#OIC$C)ZAP zKc=gd*mhlyW zCjcs2S8Q}I&vgxM?k<>@s38{it05n!mcydz?KoMHosqk{VZMC62wwyGNG%tiV?pN> z_N-;d4fg9h9p&-jnGp<6fjkB$Zp0+Y-R83E zTF&NVY+Q@?W#O{?@=H+l_@X!_E0;Y65ZRNB>Rm*Y%jj>x54r~9mfu0w8Rj3#CJE49 zF(GwsSCECCAtIjokcT#u$U}XH$x`=-I~bDNcg0n)?!(I*;f52M430ms15^rOuFiK> z#_1tSHjpDh6_X;8t9XLiz!mB{8j({wdbd!`;^Eaf7pMNgP^*?5nxr>QGU71@{f+Tg@5Q*&0Xs2Se#v1GrQj;&Zy z-+E+wXT2uHW!k4D>RVS#R(vW3Ev-gcgjmAy2C*yCep{xChku0z`Eq8VsJ<=$AR`sA z`n%d{h^pnY==@YG?<=^+;sDDhvq7;-C&1godY$}$*F^RZrS)rROZF>Am-T}<*h-*f zTTO0k4D2e-@_vvds>&$#)!5KhQu;Z5jtp+f&@=9bRN6X!(DIdnaDHz7cbh2j!10L& zi(C_J)_i|v$9A7hq-D6ECw8=|WxL`fm`{W3+d9{2IsUN%O+}ocVh5)uCW%^qSrZqu ziLxA9?u}J-zh~*#wj7IJrM&xA;!7{S{1}$4Eo1e~W!EFMx;>x0%u}U|K}k8) zW1$B@t050su{2L!ZG5Ua8BY7Vm9xGTOI-=xnkc{BDqJ7k#d*la zP5r9d-8u)@x`@tTms;aG9MwAcLxBEi@C3Sx8hbJWxBRqS&z%1+=v2K1+2bjt`m{na zh-Pq@99HtLFUkQ{HC8o_1w0NkHLDXW7ibU%e~7A zO&n}gSdnw(7QJcJui6x?mA4rb_#6l|cJHqgT+vh>Ddl-E(d=mJD*Hl2 zct+8Uw&Ii%2VMj2+^Al@5GlkI4Yx>A*7KT7FR9wCe2Vg}D!R{kmU4$=YxcPvGy7?@ z=D#Age9t|fu5&hAg0^x!Pa|YF=I76Q?yKCVM$qb_kv@%-Q9TngIt01!lw+~7U<#=# z^5GPur0}!M&2N{fUBklSXEW54`zAnl>VIv_)W=50xXP0ccwuI8k>29i_c8VX&OU_$zvsEiAd}7$q zDT^6k^Aa3rHCs|x?{ibXQ(rI8qwC%A1QlCQcglRtv98+hjmo`xOhiS)Kjwr^#f5Pi zu*OH&+?c{b%SNuW{v4|j&6sv!<1ord1~_!ZKC-h0%~kJuCRtN?{qtJav;{}`b#F$v z^6g<}sNL3rscUQV?0x#Z6x&r*Qy3?K+rXIncXp!QH3eC0W6rCpqbpBGeUc4tZWJ-s zrUP`lx+;@qhxQ#1iv#9b52`ZL`$28pY}l;t-sjo6d2LR62NtlV_Bx+{sKyxAH>cZd z=R1Ta4CO>t84mtOpu#gn?xXJKN8Hw_gfi*3XU0zIzjDBZ0@gJA6#XSPv zJz#{n9XuL-H2Dp{I=o_NC9cf2olwYjp`^5 zxe{*}fyD=|=SzbtLXDNNLo^FsD3~F9jz<+zDLnt7XY>&_-<`A% z5DhLfCn8p6nb_LgaPX0i#&U!Qr>dYjpLA$Xb4gUk&>u}?k;IHF8F(=P;R{8>s;sUz5EUI%xK>2Fv8>pe(CQR;;(DpP)=i6)J4yR<+tZCDruwZO0p8zB zf3$xzKd)Z~i}1eRGSWV`#{X}Bm^(gnsq=ivgS7tw-cXMZ!IS?gaVf04mynI$zMzkW zpYzs_eD=u0^=u|8!KT8F{^n7Dr6IbZF(hCo^vRqwV#hz5kWQo|vJ1acD1J zTKvx?vg!CLcKHYG*M-E|3wWcW`?1JICnM?6C!vqjPeSMZ?_^6%#CyWyYv*%}-**Jd z_jnNx^n_OaFYxWWW#DjtQs9OuAaKCv&%heDzjY8T*L6~xuUCHNUau6WT(2YnZ&o7b zZ$Q^Ue?yO^+{7du{^UfK|I|Bs?9*}+`_poa)o{_g&M+RKe>G|*^lGew_0`x_%d6{p z2a=ng{rt3_X0)J;8puAhIxudLHn3GM8ra(GA860O{cLwXGVt*LYGCe0<NepKpA$KR@n7zXwaIUs21g$RM{q?Dt%jRFRqB-qVyKtK4w1W-kAWMsBZ)O?Y}n zUFWf@La4`8E2jrn$y1N7?uidy-SdgQy61Ge?t@9fsp4%VojA~GoiigxbyQrWDzTeK zE3uwRm0k}OD@U{oA|o! zCK{)zq!_D3y)af=Od!~?k_npd50%M^h0sVq5j6ZnAyf)c1O;FVp+tUR8;DR;v`PI? zl$==PqfILGDaU<~gE~jdP{{+`=AIQbvY6fX6h+OZFcY1o^~Qru5*MG15L)bpsR+C= zH-CTQa=-q@%!d8O=coJdm2Y+%g!a1|@DS+@-Sk%zp3H=aQl)2>wBI+16OwNj^4|Fp z#OI?S+Bx^E{_c@Bc^fk;{^(kAJf}l7xzFIUa*kioEr0E%fBSHqx7lM&Y1@bWG^FHP zu4h6-X_xCs(yr#HC$)XwdA>9QW!I7H+YkF|UsOCKTe|vioohRHB78AVP~Bc5s&8B9 zL@m*cvReYw-Ru=|m?~{A)Ftfgten{b{Y2OwHP4l=rKrDd&Hh^kwE0$9A>e{pu`e>r zO`I@S_fVsIF)}jDVW@o00&E$Ejm^m)lTYK9lmBwbzW$>>?Lt_%)D1}_QM=KkUny)g zerB$9KCN3EF8l7VfO=MT`sv(RQoO|mL^gVBSbqHv{RE45d(zQ$-m>cpn&}oX8fT*` z#+BB`zdFq2FhM^IBNNlX0=PQW1AP+bo6yTuCCQ!9L?}o3i^uE>6W&C54y#M?YO60q*ID zQi|y|XUkG@u=i9BVwR$&j7EyqoIbC4xIj6E!Po=x|t+=CtyLG>- zG^senQRyZIJ(Az_RQn&#Ip}alrbd~q^{e|PGcF~t^D)<07w)Ds<#=O_be&AJlL}y~ zu{T)Ads#6aD8o%}TkR#xFRe{V{`HpL(A=0Tk<{i{$7{KF>fRDOV;pUkfBlzY7Oth@ zo@?E8JMDQ&(dDAqLG;hiRhPn9Bcx*&buujlExw|%_v)Hf%)3_(OwLKnoP&wE^^nzK z1b+4BqE%g?VKdAgd^swCvIRb9KAY597eYR#BZS@PMOzlsOL7(<#q1%PE};ky?7snC zt`e}`f8e11 zxu(DB-&LJP>v@Joo^M*On2yLWU0YPtIXq}ol2sIB0lPltv7KEN4Jru&>)DJQw;hO- z!W1mq+Ah8-emInT*C(i=uJcsW!0U?KQIU@7MkBR5inNY70zcOeSA7^gHsAb6u z?q5#cw)fbnQj0n7wq%^56}z32qtnW0l0TiKN__&0ExU&=o_x8eT>0maS(j(Y@?zlq9 zkfWZSYGBjI=^IEIMKkEx>A3VOr34cn2O+F2|7@;4_$J#&*BRC2F+QH$_y}<(JT&Sd zd#34h-{!b%wo)vJ-ATXDXJ2?W9N&3@?N2K2>#uo`!`QvahEJ~dVG3Smi&EtJP@IG8 z#-DHZJ$zM0H?L4hL_e(Bt?uSKSF?OJY<_pDBKZzp5@z5N$ojl9QbS>tcB zvykuQ(D55;iTDI3FCRH7sY??Z3{ID+Y}Z6d673)A9?J88bZNTKYrB{I9y@)hA9rr# z;{&1+?1wHJ=CN6!#zMXkq+n@mys*r%R%1N{yf+?|pd*YmbARG2M_6}lAAR&b6G{{m z)&EGN!K(#$6(@o}NfX-vXVFr*nZdFQ;5~Q3Yx-L*t=xc74mlPC@kQFRz6s1*UUNOC zHAP?=7J|D}OnWw)SW}d)@VLvX=UYnK0BsF(1t1wd3V)vS3=^_`9N_181Rl5vTd6}y z(-!Y(;fIQJ{J;o6FGcnKYYZ?645ps>LBWFFV_Gg-0g%xL;etzA0HnPtTtN379sf@8 zQj5ok|Mlfu*c@-%k%QlR*R!%N9vGh&_S6QE=N^wmE_K5`*?&>uV8AB904nUZ={pu2 zsYDV#3WJM|ykZSh9V6kr+~Axq-YZpSXUBmmHh5&ryuXkD>gBc2(pbbWWm0gY6MWLu z3O?znL|R=8grmC;u1FFb;ClqQm1l%9+JPZg!Pfz&m1jPiv;(D1HHWdlC$gg|6jjL2 z6yTtl9<18|hH1^|5_rF&9i5ip<4>2`ykf6->KVis)_21E?Ibbjw1(dv;`n6(0>vy4u_M zLke4V-=J_9=LgDJNm7xykbwH4RyFLOMa&DPm0zepGkULU_tR`Rpu=hqjz zf0@X9($b&#WZBuhlQR$fUL$QBI^~`hak<5)iZ&GC(OQ6XiH!q53XVC--6L9|W)2^hNv?eO)9Ta0cKIHOFW z4lUL0sK-19zjfh+tUkLZd)p{Q&qfGPmy` z1g`=0L_ zFj}JRy9moH-ztg*a3|4rr%^Vm!ULdd7M*NMW*cf5f!fPlRKw{R43CNAw8p|zN=UJn z726G1_D$M-`Bp8;R;PEQ@XK%6i>>dSEOi5OT?T0PF9ckds2p$5&}E|=RH%+Lq;?y2^+S&d21Ug zOgW&MaBkruuj5)Gvc~j~(7;`X=O@t24!nOXJVSN*lbrVSC(_>6fhGHz&IskoI5}lc z%$xL$i~l-#JbLXURznI^I9{$oblhNidbmM)pRa*o_xbew!^gh!SIH44<*h&e8(~Ks z_KmrB@AIviyEoqI+W-Df?m6q@WzVnH49dSvIr-0Tv@zxcNoou%q>6*U!cg(7_rq7{E)~(019Qh;}5!<0kZzmXzsv*u?f|Zl* zh+1YpgV=C;&$l5u7(`vr_TufarF&*$^f3ZlMbbm5Y6B@nqI7;?mxI0`JV2t&hgIqT z?<)17gJT2Fh#p-N8^L3tY9i9I5=nL1Jg&>#Lkj`onn!!nBiEzBjk?hblU26iR$=0h zj+Lg02O*w3T$rco=f77m!;#lW)SJ|D%RkQH3qw)0{+*>PfOXQ~c-wfCD}zxl#Q5&(Ranqa1Lg&(dH(#~)TUe?!%@V+C( znjPJtGF_$6Fk9%935Nc)4Lx{BmGM9+N}}!NjJ#{hM7=jwt_f-@b*-PHI+Ueck9M6y3-5rfOQoSP# z`B6|tRlSb%WXwyn>pfK)yhL`tbh(Df_&VwX^k**I^BSXV*Otq-B3)yEm!A`;#wfZa zT2w`#=IKJoOs#rxr`NCmJ@QlLDfw?eh^P)ewVE<0L!W=d{Qw{i%f!S!ho`}x`hqH* z?E>&G$$@wgx1=9+&YE#MPxP)pCqI@z2g87~i@2bOPBEu$ZqGFu5D<2H0GL*5iq2YXI`FEYuEw z6zTaS^;sMW(9MH<18A=;eJAOdWKeTnWs@y9{hpef85VQHuX3N z@|hr=3#5-cmRXhMuYFNL2GmI^i+tRBP+h-q>uVXM(%5)T+` zHQ2%-JBF+lyRtxA*N0GFc(GoC?8LegFP_R|p?>MO zkYv|d7c4*WBZOyt9tzJ+dcxJ#dDnT@eaInMnOV$YTViCEdTK-OfoMeZcWzbOL7>nZ}we_40Cj4l((!4+U7ksi0rA$eQgs2?n#8z<_)4@eOB*t<=ScKKy zCax44}$KqL1s=O)k>m z+I6@^`ZG9-1yAC&ig8Vrz9rF-sErezdvztthrP;(LZgi;$B9aW3h*ZBx^Q*4{IF&A z0J4=-B2*<;98LvV%X-NV#gBo?4ui(6WhHGz!r{`8gp1yF-V-b< zEKHhh{!a{WIkVHvE{t<~tRO~`MepNE_`i$$R;@P-_qLtHna%cO?mL%FhAwvyEzHv1 zm{e=7muv`M1x$|NEN7K=-Z0Rf=y@sda`o=g*p9ZN@y3|Uz{c28lVshR>J z8=EGYsbiDPa2qj>99W9-+(WDl-DJ$KD#gseuJ27ty$bE?e-+9k25`=F`cY3~e-MvR zZ4aNuW~Ca^O#sxVR$Et##2X4pg78*w-DJe`fzVx@S7Z3{X($F9m1@!T%d5V6x`h|o zCX&jVZZY!PvU{!6O5s1XGH9~oA1qp4d^Ih*+xDxJXte9{d%&c@ZmPW!i_ww9>yRlD z)wCt^_IA7eP+q+nbEqi^tJHt9T4Yuf+|`xbs_vz~gJt+`poKS!_VRyIhfFg505Fn& zDU30?Z#Gy2zo5bf9wz@v7M@94D86}K_~|$eM*EMqrJx?uUVn3AOM4&lEK(d$^MKtz z5BT4}0lWS~Ey~pu9v79t+T$Xh9ap1u|5u8B+D_fVAKy#O5PVF_#w#Wi9qsH=m+ORW zk0rCs@)YwQ4%d^eq6pemMHx*0g&^c2A!A zdRmByZdzmPN;<`BA42!|si$QlydV}|#AiF>^@fvQJM1Q{{mdCtlod}K%p%xY$u@Qj zCA8`KU$d!fmt^wzQfCn&*xzD@@nLNNB!O87JVv8dKw!mG#`Vrw$@8^2>#;MAm~GT- zb?W|YUrO{!S^7qLEjW;L2=Afl88sko+}j zEg?KPOQxYOsw}c;ZP0Mf*vqo*ikDen@NB(M&sd@#*SPkO@mr_+YpIwhQ)g$zlk8;K`;60S$|3)*eLL&r=spvedU3C*i@#Hb z6&%17woC_DajYGud|VydqlVO5p_bb&^>V#STyK^v+?g z>(c=W@;lx%{5^PW-HbZpt`(K3*=b=*rAB2Il}2YCF16^LWDenHkYDkG3W5qZueAyk ze-^7(zslKO|A!INy1RAXoe{ZO@9Ndi)W5!Zol%ie#HgT<=oR!U(8B((`o{i1%i4Z7 zMsvTLS-m|YNMsBptI(4M9=cD;Mv9f<%f&mz+Zth2UIT&oX?f5D+JTXt-|*~Q-LF6g731a5af2b540L9@MXBq zFWW(9SF`OVzH~22o_7y5`me{vYNZQn5q7P5@VsWNQ+5;SmRB}cetA0Wkyo$2)S?!s zfRCajr<}I_m9kgwC+8fs3eGVW@l*C^kS00C0QT=gY&mKU;S1K6zBH(1=Pv$raOfe2 z4A~i{KMxq{nyIS`7`h0^HpVal=$6qL0bL|bdw^Pi0XME=)oxSA+}@u0pk&mg+Mu5+ zvKeAx4h}K#nnO(fo09Fe*Y;8-sX3X~soAF-cQY2Xty%^mw!TYBswI!dH|p8$CDr|w z5c5ER!_a_LP)-WBWD}m7620R(6v~LU>zWMDTilvNjYfR`NhzrwgPCAL<}`;)tm=yv z+X4G_mSz1ni|@Ox4wb3pL(D5B*^71EHe158B}1~YZ4o=eNsGuVW!Mh318P3|lA1>W zmOn9HwT&E#4hkyai;;Ph$z7Wgz6psMF@bzj!Uym7rpn|{_Lk&Jq$s5Jh;L>fW6uyC zr9^E75U}$PD`4jvV%5m=^dm#hajvmvLzjY`0?#O@>DPxMI|bFyrp52CaaTOIeuzrm z`q#1YYSq3#-n7r!gyw$o`sOAA_`V>~QIMedE2Bz`Bk(IxQ#G>AGx8*KeOX*bqv#RaNJdVa#iEI)6P*>oO|^W|v^HO9XCh`>mE@6k zHHP#&s5vlJkk(M8Nb++dkEmuSUi+bKhu&HLvgk1KNzQQtP195Au8JZXT2lzR5(S?;w)FMCcJ1haNi zqn8zo_{NmBe#TRfesFjXn+?Ss%_Fk7XZQja>przTCXb!E3QvhHC8L?m{E^q$R$@+G zAL+7+??k^C$cJHr^Mrjs*aSaFgFiu*&Wj&@ezq9dGVFLmKT;xI~ z8;?VG#=-`CErS_4eVhlnC1OhKH(=JF!xhlZ%i!$&sOX=uiv{2uJ>UwApGrWD@6Mta zeJ-nYE!#T;z1-?>99XiALFNTRqSK3fzVN8kN5k(#TvGo`~N1qdv(-Vc9$S}Vs~r2 zo884h7+XDT`nfwZr_jG=dd^>xx}AEechl_6Y=^rJ_APAfV-BL6o zoyj6j<`DvEsMpcGJj6hpNQ17YgM^4b_@&+^`K2Bv)UU`hduzKQt6c^85I4b20c?Bs zyH_Ta9Mb5AdxjpksUwPGU+t9$b94?vny6u4jY4~W6DkLoO<@k`9OeoGdcPs!7-7GF zRCgJ(wLf~Z(yhMaZ!+sM!`%-*qVzK%W@B4b^M_sP-E|>Azs9XkwmJ%Ev3YNY6t2#r zX~Vr&w%n@LV}R+~xUxJ+^oXORXKM473A<6etG%gN62I-W_5bE`JtaPkY)O}nm3V&a zvWc?Ty|}KJ-BSSp8 z-mpl@?23DWx2WIt%q&HiGuHb`TYa}hLnJrsUir{^ir=^O>N#>H;qTHBQ9J4(t|fr$ z(V7jftY3bq_DEc9QYkTveYj^8=fmyRb8S0}dyKqrs`t2fgy$dT&F+y*pjDDY{x|)azJDObAVwc%i zlgd2AF*g%6QGH~uicD=>-@X0XR#-MBc?Pij$HFV!^)P-ccHzBc0xHj)$P&ID<)SxT z=~fkh{04Gl*K4)fxLBdrGDU$I#0n>hE0L;ElEqu1pp<1kEyne@X(Nv3qBh zx4I_l94v{r$V)Lvk?e$Ow>*)f8|VIEH}IZ;F9t*JFh}wnEAUp_8cOo3ig1x?5GKz9 zPr=lXB6;GA%e!&JM;uv#8>c#^-F$DTGQi{!2aTwSl!#H4Qj9aBFFnydo~8?jM_L`0U>d+xA=R`!X6uc} zEfu!!QEsY-0Cxa7%QdAQP@tfcOi)F($&5NOES=#klu2!|^j9EQ!e7S`T#aj*#lIjv`;22ITM7D97pRY8K8yjOvLJb~1W2AZY=q!b0AsB6 zfNHq;&a>Wp@x9<9N3iU_=8&(5R3FK~_x!Gx+WzdTYpl9HFO8i*_j( z5>Ot;{e!U{#w5h<=n_V%k1?v2F!ka&#zV$~fdfz%RKE{t=_%ccTIVUIHxicj2Vpph zZ9-Va+cT2aL{JkAw6|!UO|BQOPbqCp;>KY>)L};TyDkO{Xapl|26r*yHs|yS41YM0 zB}lG>5LL+OTtfN|gxu<5!{CaMNq89dg@qh)Cm@4qO!z8XcAVGp3%}pme^iF20#s-f*}#2< zP2xW5;}Z@O;>HADOD71xUu}-#sttlrMts)_82JOA$DLlb^b^hMIT5V5sP|l|jb)(7 zX$?#udzc0xFNdXbyMt2efckkgEsyj4k<-Bdx>xMtX-0YHK3H{EqRLnGMSTHCTVv%i8*71we5wJl-Dpdonz@m(r?LP8HB5J`>%B9Jdn3RpuS z8ACEiMmTAJQbPnH|6|bw1Xfc=GMrJY#bE4POcA@=-bjvvI|DTa1h2Y9P4dVh2(m}4 zhrB}^A8M@?&uT?7_P^&kE4a9&iz2Y#7{e-D;wb>??lz#PQ8*M8e?rh=44}4-rMCV* zb?@QTbk;=;grX2?L=;A8GCrdqoghdjAd!xUfJz`>Mv4$nQ2|Bi zy|;u&hXA3MM34}A4+P#DaNg&6*Y_8EYu()JvrpUSE(s};-{s1_nt{_cC5z1L`S~5q z!f571a7mHGZbEBFOEA0u0=_6+gky&u(-?xVshHl}ct2-SD1mHh+@MT{y2JO-o`aZL zitWzz;Y}_2~ zOsnY%*|6pv>eQYP+)+d14t8#nEjD~gwzHWdwOaS!ivu~4VCVRr%+9e; z^CBCsZzgnzIO+{kpC_I95&mE>mppl92cr*ns@;p-p{rgBb=<$^Vz2{MiW>Ixhu+)o zvvV2_t^T&KVG|lGvNK=VG3+@`G1{?mQk&l_*`f1pZI-~77IK*Nji_RHP~Dp%*?Hbk zo1*=_er0-S_3Eje@x`HLyB+d0&yI%8!w2(15029JQCF=bV8<7Cvk~9(iln#oo}qZ= zjR-CGRMmPotQN>U8?lJq&T;P`?}f{ROcmVh)>`wp54|U7EWg!8-aBZzPF5^kZMHDB zGnL^?_!9p+;mbqZ_pLQg0ny5cD6!teJ$!f2Ze^^`7g!_GgODjU6TA~b@PBBv2;0vO z7Mp>Gs?Kl5uG;*mF26N7A1krDE>5@>4S$cDEz8>3i8Vm2Xvhz`IuXu|pM=S8XAdKZ zowf8b>O&3n5WjKm*w$F0hJ4`mpM-n+Tji930jRg--rD=v^8x8d%Tobgm$CdIl&yOX z8U(GB)1sT2o2Ln$W6W0+)jRDP3*2HeWvVN;hTvkGdW#Q7L{?!7VjsIgCdyQ|lPF`P zJj&RqcBCicd~6`0BU5X(>|wM~Y#>}^stoG$m{Rj>)Oi55pfSfo2oC)dwh*|_5j*aI zK#hcUQDS#${W2(fZ)0v}T1}PJ*4JVJ2+MVQp6cRBsIH(`4$qq2XU zc6gZzUfgIFH`<7qR2RljvO~2d{AlenVx4=`KM4kiPMCEKH9a;Fy8E2+&7e2-j?G>I zC1&6us%klbxQrjJ)G$gc($G$Ns;*HAYZ=_eFXBcud|~V+7gNJNZ}=SFcn)I^{aqta zTZMv74XIXMsYWY%Psb@Q6X$Wy2%(dr417Wdbzsw1#^i|EET=f4kXWvEvgfC5d-D}WtNH6 z5Ax@pL#r1nwAH^=)a?6wNnh|Sm~)DKI_ETiqgG5pj}3g@Or5OQH_$H=7qjx!V$@4m zVK6!6;_z+l0W62;Ou)*-xdF+6=Ngw;se8_%*ORj*K{P)71_6*yEu~LJI|~VP@mMh zAnMwC#wO^|2E^Sqk-ey%IbB38-OGw08Fwq4hPa;}nkh0$OwV!;*b#J}i}H1kVulaJ zK73V-+Z%Z^AIAtUS)CicuTi`Gs$_21#3eAu#lU@kK)(OE#`q^AYvgm4ZAxYl(Uqs~ zZhvo4xyjMuZ3EoU)OhbuPXyE@dPm~zh5hy6A(xfQ^9JJ!nZY(1mbGRYmX*dDL7AWL zJGl_Xkr>pj6@0+BNb4QWuN_mwABrkOO-Y}df7h&BgzaEvqQ0&UxMY42{fI+^T5Ax3 zQ@}@ABSV9s80VR)fIO6rPZ%n1BYf~qkwMM6&wPO{WyM%LR#4|VmVOzi zm#YHvAIY1=pQfbdKQ_UO&!_v{tfW~iy1)lF4d*LvZT5cgSIx01G`FhUXm%=cjg@yE zNDY02vihbv#9i4`H0N1qy0cAvjRNmmydNDZO-9X4Wfl*o1>dY>Mun0*YN@}?$7*B@ z;j%rQA8K2@!DTYP372kM^@Yx7Z$R!Zx|kT%e9-!P`_sl(*|Y)c!EO2ZmnPPqwD!je zhYU7DUxtS21yYhu&8LT-oBuqcy~txEUoLI4^(>ICOj$7MRjn-THbE|KjAR9tZupD_ zj)i0fE#Z8wUM8Y1G3zlBnpL^|v~P4bIJa^;N^G<+x2@dChWWD6_ivKc&Pw8_ zkHlu>j5gC`Gtq?c&(70Yx4D|V+?lda)VTIS%9wU%aH}eQq%^ho(@y`OO?fD@-(>XR z$lQbR(;>v*86QIVB4bTsp;BDCJs2~C+|YoZOjRF8*li7aqL3W z!u~%yZ^qNUhfvR7-;{{N`0h(>J8eoRSyZNr3O}qx5giu>z7&<&RAw%O%+Fri{8U02 z+237$zJoKV&MF-(iuN!{e?QFexk$u!=g$6zVa#6QLfHezXmRDOfsL}O10Bf&F|E5r z|BQ`6x~mh%J_hc47cUgz-tLHEXk(!ZxjQ`K-NBpgJ;505k2`6w%Zr-jMvKowtau}N zNc^RqA7sxEzCW{(c+Z=V+pC;DYS5{*>JvQ9vHy9owDoUBNP6g>6XZksWqUYqTPcYBO^apt_MMAv?G zA9`;wIMk6GJF6htDe4aM3?+B{QL9j7A#uqPlWu$8IdigxKT&_I_-+2GPy z=ta$L36XhKYrCS_O^u8UpSmTFuR>OpL4!-_o6?P;5zR|*)Qj%I;Q{p6PNyP6Uc3JL z&N@?XTzOceK3D7B(OxIP`e0*~$D6yoC-y2DzmM;5XM_$qtab7VGC2cdu>+1%~w<>e(}k*8p# zai>V7`|?Rd>6Lc!PLDe}T;lu1=hfC3S)uJ&mV*~vcIa*-XjOaG{)%Hph(&Xf-%<*G zZRRJvRVZBLu9m*=Drco|v{Pt<*~aqXYDLWZUKOG7ie+_*1}5E5g9P*4K22Gx@<`PV zjbnYll)>zWtyrtY*I!IwW|j+JfU*wJ(FGSb%U=H9&#@1+pD5oJcWcK4IV zNC4dq?_L{1E}Jjmp~QB)M(&K$@nXM^mgRFyIPAXm)++CA`42TTbt#Dd1q z{q{R1eLB0U7?(MuvY4%v@ZNnoTjGsBjSw{23nMID919p!o;=xoChgghKpL?v6z3#?u2;2mAu z3H9)*=~fxi8@?~%p5a~;Q}X{?W8Y+m!K|s&o(P3+E!N`ZHun~`()Uw}+ne|AqK24{ z_V?1;Bm!Q!GM#bm`>Xq(_e=4iDezsV*iO1tYWAI({hd(Mr(8zpe){m<>UhcC#eEKU z8H2@85Sbp@vsxQ!e?fJ6MS}5gQg?rh4sN^PHU(}g;6~Hk-y=uuRnLa*yIX|j=JW3B z?=|k5ZY_nnZA|WycN_Qfo1^v-t-Sk$+Y);iOz;+5d-vqe5_?A@ctamIMAh!@Nia6| zJw7h%SBD2$U}m7{sZkkF zvq-W^(b&^kE@9@gZx#;FPX>N}D(3#)^}>bkS`ZQ!H$TKMkbe&XorYTw{;^4-<_ zdz&P<70%iC4!ltrB_I4i;!@~+iQ=H&PPy&Ns$Ds^+Yu^Jm|Hs^a3cwvq($g%=wm{~ zLXxA+{%;p$+t+KKjLa?W*XDk6-tqkUpnJE-KDc<~hv2jlUU!?JkRoW;MyA-G8c$IQ z^EZd=iq5z*RsZPyqv#L!7b-?6Z!wG8|Q`+oo(KT z?bS|UUW;AVc#gU_Z#FdGEZb%L4m`P3nhz{ezVFo2@djt0fkA1{|1=a)6z!bY_2spd zL1o&;t)b5Qs$C(*l{ge+-eX9sDA0McJH((eeS>e_Zb-Ta-nIAV4*z^-QEiv_do8`d z#~Wwoe;?{Cs_og+3yj>5n_nzSybtZQep7uTFlK{yXs$^0zGv^AQDEYR_&l>@A9=r^ zOTnQb?xd~^SMm~~0drDAW+Z9IS?r<&xAF(^yKw?yzL4KNuz{O}0Fd=8rW@&#)t0)Ppz4G}6 z|4<)z79yx@rQeu*(n%&Y*~_sZdDd|VdcXGF=#8Dz^Txs(hP7`dJDzCpFBtOnC^$8w z&Td{DN%nGTz@2<3a|mXUAd0MP*ZD+?p9Qq^8*#J#L(vy^lb4(t(tgARL~ob~?-@EI z%-UQOedTq(;ms^_U+-12oHC^o4OgCSOHvMWuGybXOCC|eS~z;QqIHyyw>xB(V>{SCr^s~3@uJ(Sd}sWJWV$k<7j2}h0z6oxqf$o|CwGdY z50NBXOLR~bs%)}@0yG{OfLiBOJg zCtpGgpskc0+mkLK`p|zX8@IzQQAp@p08n2EeVV2?kH4GjM(Zn!w`X>P%YOEtSt89Y zBDw)Ecf@B1MLVvv8KxyGI^*90%=Jp~K0Zw-(2<^ubi$_!c{)}lFFWE>wpE1vood4M z#*&E|${THDWke@hYn2@w9Z?I6Uz;)6h1ON(X@^}zbb$j|Xe(1jbf8t0&7EZC+F;6* zHng&G$04|&oYv-dre{dbuOMgOZ}0XiY341;oL}UU3MPn;WjWIT4}dghtQ@Ssw&j;M z@$Lya!Xa{7`L=`?Z{j@#R@$%BnCBttV~=SF(9N=v6Xu;YzHDwfQ(qm^7Z5e~a;T4w zKo{PWy+8&TkHt7qatAl6Fk9>*&BhoEildmIcjP|YGIs@fTg+Dz518O?g$igJifqL z-18U;wkr$fEn1x5(!7NeU%^m9PUYyx-#ND(rN-sR1-7kVf)-UyyxdknoVx(pyhWwe z=wd;;Hz&8NK#qByub^Oj4T<&OSgdL`xxP9W4tAl1AjZ+|v-vW-#84nO}r$E@&$-EF0|8}PR0 z8s~!*&ij&Xq?zYCo$JimDxB(ku6BMpC#mp-)$I{;q|>?D9BSgr-GZsk8}7v~5Vu9| zBJVf9IUUt6cR^peGbgENs{6(lbK<4*<&MoCUcPc|e*e<2(7yLZXvcG-^D3VmQeO_a zHfNpAxb1eA2s&`Ue7AF3R1_zu$~~ z`O5jd=e_2CPT#uil6m^hZAv;M49u0hvW+Q*4^_7 zIc5b@EzhOT$L7EaUi=MG@*SFAoHpneaTYAFZ+R|t-v3^6+-cq0T;_@n&6v~h+aqR3 z#JThwD)zL-ZCVB(3Wy*oGKZuOYJeQVbCL6oIZ65U_#4LN#NW>cE1nO@@$AV%yx%j= z4!ynd^@g?iY}BBagT>+wg%Bwr65>XE$*rowuvVdy^AL?OF>M9$<|;0)V}$QF#&hed zhz_z?5HUhtvTuCOEvu4BRUzm}iUF8E*Magy}D$cCYbqOlpBC#my{l zvQAHXutipc#|@SjZ=zDrq9-s&-cTv2ju9;|ZFF;pkC7|rzEj%GQ5b(+Wu-+=eDHhd zV9QyNWCv-C8#O*gv%s{|jidzRZRJlA^lDr6RDkFoio6`8Q{2o7?1+E_ISB_iQd%UI zRri%s#`Iv8zY4=f#d6T=UgOIcbb(!K$WpdyR?QHY(sn*S{bu z3Ro@YMf~qc=em*fMaJCB3hmm#5PA1NGY4#p`u)aaZYP!0K`+OQJ+J}GM#XSY;huD~ zTUkLo9OXvNx64c$RJ6;C9Q=QNl5vLl*xykFO|js&9NjMuD}vG_FWbth(n(4hYIcNh zoVuf|EPc2;&rTLf-^xQY90XFsag2N8I6a#dW1E&(ehq&++4FQ*KBWm@V*s#1sFem| zYqBDOfX0oms?w6gG*BZf;yFkqM2kUDspQ$r;cOdJ6?xhIfMCEu7_O#5Od0r)_Jn6* zvH)ZwP&wp$@Q+9AJgR^Ydm1!why|V%Jix(cHEtg^=GKs>m$CF6Jdzzgq#dUV<`pvM z-9j~n$Bg^QgL|lwTHLF9vYzy{7&;XV9?lq7Q6<$lch5|{!NCm{MCXHqwJsJeq1t)H*C;aeeT#@E1`k zhW!=~Esp&TkEI&Vhi(&Z+g2Sd?=F4TnrI7C=I9WG`NSFV1gYhHlf;Np^ zWVbmW>t2Ea3_YHL7M(qy@xVN2aiB0MoQ{ms;Ms*OQ6xP@1-;``c^G6KQMDEk4u2Mt z#9~&O!L+fW)MxCvJX~rD)VeqTSSfXw@PKcxtq-VhIb_^9o`NQw1Q<&{7=)GpIb<2CI^%+#QB$e!K z-+JBSAn2e_{9eh=q{~j&NDbMsREJmmKE`co*b zYRH);9M;muzVrGQwdI+!1F57dvOGB0gBR|`v^Us*?@bx}7-LO!qMED>F6qGwPve#L zX9lwJxUvURJ=Z(bh^n&N(@mNDDaLN<`Lj*$`4f#T)scr_rQ`be*JmcO>z&u9)sVEa ztEpzbFZ_*N()n|ZX=(h0#yRRl4cXf`Ghh3@XMf8EpO;1G$U5SZd|w0_(_Zse8q?MD z=bFC!7kn~a>Ab$DMuf|5&z#*)CHvYBJhPHT;mE!(LXCITm*?K)erw9ZiawYE-+L$< zi-VzlfVJ9GGnBnQ)3%*alpP(CX_OVo7J|1Dd}uckfdqh>6}^|tIVWF0x|UGU@)tyn)=&XVZ&JiV$e5Mi z!^zQWX%$Ng2c%0;w5YG$XoL?$h}KZdIUujp8{rK3V3mZL9E@;+q*)1~?8p%|kPxda z-^qakK=!p8h_Hg7fGo~Td4`L8PDLKAAsgV-3a@`bR{bIUkuzOBsA6gMEl;Ha?To4w z%y*I$aSLMnFA$==m8r}k$}>FWM=HGL8a_u`{@?N+qlM=i@;DpixhfUtKS0)?Ji}X_ zR>IjSuUWZ7Zz%k~AbQu=Zm8L>{+iaq$)N~Wh#I}2gmYNFfE?iosj=EZO%4O#J9;@z5K@zOY zP(Q$y75sUb_P5;0I~H)mFe~m-VUJ5AE=heY_hPg&@USb=iI=?1!B*ws*XQ+d@;{BQ zBQ;`D`&!Jn9|})jRJtu~ajDH2Epn;gZ-8iJkvcIoZ}3~D(oUCF{%(95d5t?-nCH^U zf22*o*7#P>+9jzs??XIRSSUL_UU)le(zr1-QY|KkwDe)psPR=Kc;Y79f00(GC*$Jq zHd2vWS2*(G?)|Oqr3^d$#%GcI+z?@zi-!08y7FGz=`@DnHwMUi!o${xVOO`n817JWEf2pJzUot@65FWmR7zE*It6c zns}@b!F}Q9Q8!oB;UOdAa^mm6Z?soNlu-2@FlzV3>Uwy$v~N7b>Ub!%7#%MMyuirX z|4DHJ*a-Y*Vd@9t3dL`L$bTbp%R{LtMp_m8&PO5$MjmC^(H^w7DHY#k zbVnSXrf?x|K}Jc}RE4JSNx-1A#VD(GjKF*-Z7f~V9{7_URprampk6i>p!{ikl8A+e zTX}Ybhudd~N=vw97R5kT_W^pA+(SGiW}{y7z;d>%2l<|IgYYu;yx1M}ViQ^Y2QF#G z3Eu^KvwhWzjR~(}FNwLTcRXM`1Y7DXtQYx#Vn|3f{@hCx!;N%jKU80MFfzNg_<%l3 z?#<7{>Z+@~L);|1j@7}5_RP-BI>g7q#X{Bh9_-F;^&&GV#r&Z z;R7WD!iQKRu@rR`UpE?=gv`DrascwPDSr{($AZuEG7+YPx3Sm6qQD%oga=i#X1zox zj`1F0Oh}1U#c}m2W+GS)Z$q%H7|7Ow8OnNRv0!5fCE#K;#2%`z8yo;1F#d{RrsJ$% z@A3z@iS)pO98fR+1J+r+|A9-Q@ds9QB{5HR^O72s=DL(HRd&zg$&PW($N9K(gw}Go za)iv3^Bis4>t5Bv8eV${`6+*Q5=v55aOxr`EjdoGc)te8VXi76hZG%&);e662K&R~ z3tS^YWgy75qb@Z}H9Wux1cKTKec|=ax>q{=ps1JQ%~dXZ?(xANzVIC77Ik)?;|R`w z(KHwS7f`9~pq*`paiPbzoo;GyGpvqpa20gbrH8@ULywm`#RdMm-8A5q z6Lv@s(`UyV=iwF=hF#1%^iFiLqQjA4VLI&Lpvpv7-5Z@TA+mCwlWnKuD%VQKk7|2d zyMWEg1|8_EQFjC)&c5 zc{?-(SL2+-gZ!7iNp)&EBy(7ZyZPsRtN(}NmN>&i+`BFOcis=0Nh@&(aZCReMcyx( zW-D=a;!17d=XlG%)nlWEW~C}M%a-H*76;#ldY;$+TYVe{TzuCrk5V7Q0TuWD8ZN|Z zt+|$|N&Sc8ym*k`(qw%UhlF@Ri>`qGcU6Cdsrsi;aw~Dy4jBbXJsM=?_~lL2KjV-U zPxbTq7qAkeG*@myw91wy8p1hwWi*qPY#YK)@-p3cnR2}HphHyZ%0y#0H?Pn)sdUY) zC4hN(wKdmrS-3%0-oFKirb;CqxOB&d!cXz)X$mgeHtA}u*)|Pf028LtUh_8Irwf0}4yy2ZT-_*se#hHsMah`FX_j4iqrI9d%B*kW+xQY>3I0m@` zJETZ5wl2mR%)8B@N_;hnKjPH;j6;eF+lL3I=iOFOO7C!7&a%2gv+!cXYcckD>U9nO z9^49_CEAuA$arJnxce(-)hFa=D{X{7FoCKFOJ2sNp!Y+!Ol}l~aVh zFz@F~Fwhw6iA_ee6(K%=2s3BdTSLV7LutUr%tF!3K#EXi@vTmlDtZy+gP7{P!*vbR zP=0SL4mDCld5?S5ZyZ|n-v)}k#8O?WxFBbOsm6AXaZM2=Tg-%YTDLUP zhL%aOnJCTT1Bz6IGA!=xbRqn$vE3W{8Rb@t_=MYa&aCZ=%|!(jQ$FEDT|f;XlJTgk zP3dZVXkwJ_L}s`qt?njAq(y9U0%Q#KpQ>9KLz%x5ScYw!8gdpLl3? zzz(ko;!x|;(esTn6(cq9cz$G|5luEgyLbSn&06 zRNO5w>VH^i#=bZASq_>NhqcDiP*^t)8f9C=o*^bUUw5BFPeXx4d4CFTqaB!egJJEg zSZxi3K~VqZxO&Sc9ygS2VK}27cq~!2x#1zf9Mi0lE_XRL)bj?yszF!wK$fOG_3r}@ zZ&K71$YJ$7be7MU8xFU-A`==x!)n zY5--Tz7tvDsWiz<^(7MPlnxG~L_M!hN82~fL`-n*wI}OjSVg>?SEt&dm7yI~FcyG9 zYpNU)APDQ50saMv+6jqmEB39?7oa6oq|3mywKDb9K%!OT{UnS0Qni*}MPB)fvzolp zLjbPm^UzCO2hnAR7W0qAjf;%i)?lr48(dg>5pS*36Ridv{C-ZPx@>i-BU%HxP;~&* zpwm@r#Z?X&kU(pf50Fr>CFZP6br~235U)e`s;C)>L2EtZD`44o8psDAXU_3fQ{N=Y zt-Xk_F6c542w48!oRO%>GA#p;v(4`zi3i{ue>Hh+swet7wETPXyF|ma7ta7s)P?$g zZ_Z22LOXbCZL&AYKtd)sY0a)D>Y9W=u-Tej zw|?z-l)l9FY~wpjO&UgY-L6L;#b_};2%GHI_h4iVY8x^XfS(r&z|!}|H@xB61-(%k z5(`0PtMSR&1wBz}64OCRt3b)hzt|KLOtO>c4>DV|YX?PIj1D5~I-*p6kWrTaSep;> zV+EiXOViS-!4kUiLJ&tzAut-4vw;yHHhuT-i7>5 zIM`g1nbQ-!+bE^u^JgI%`F+nm8@u`b1ujuujoYF%-H|O(SL}P1VO)^MZ-ArP$tI}h zlb*ddmh-jG284sXY%=+}4C=+RL-;J;80~AH!;ioTg1WMJ_2t8QFT!zDTVN{og9t`6 zjx-IV{FSJ&-2beYCF&VVhdE1Qqwz`}R+HXjd7vLeE9D)kye+$4hNaJ)-Bc%57#Dou zx4@BUO}Bx(ACm1qVcX`;uBsC&je~rrK4C}ZfcP4gfZPM(AmQvHAg+)3zIb@p(0t%} zzwZlQoP(9@dIkSO9BIy&?rWdRABc0XW-;M7zqzxWEZMA6vHyq-7`dL{3tGwjPj%q< zK@^wq-?4(x8cZRBeb+pE<1MWGXbra@}WSy zg9#+0VyQPGU7r5HE|XKkDrvUC0AgLy@=m_(fvIezLT|)N`J4xn?>J>a+lK29O|6iomcg>hJB=tW)T1&RPH@LDg&3>foS}?ugF9>+2_2bOH^E*i3%w1PDcQEJ6pfS2r&SvY8W`I~IvuHY*6PKftc6XWgK z((Pq%4VsC}&S^rb1Zep-oxXy#3MpvC=)ecR$yV-~ts%NiP}@Rxwun&p_BX-@iNp{~ z22lZyu!ajT9g-w4A)1Wk@3O7Cur;h*h#VvTJK=5mUTV7BDi#q!doK~lDh7w|?UGj! zofs|n1^~BsnOiJN18)8;({oz(({9-+7>mA*oFU+Vi~=I&5}a}eKDO((N@>Ta!Uw5@ z)O5oYM7xRA8Xzvg`*+s}tYyZk1zYXqT}8BGl;OVJU@QMdNR~i^ptp&Cu<8pii045i zhnML&E0oVEsk9GczSvu%)c>fCRS>g1yg!O~j{42Xq*o9#J#u`pCZp6_s?!zA{V}B; z1=%7#qe*jkOF$?N#FTrq`651xxQ>z;muU>EaJ0= zp)ca2$gNR78vd4QTE#LcCex$fi-^G})lyY$ASN3aDLHfht!U{>VTC8r@TRKC{YF}J znSqMzXQR}+s$VLyqerRcsvjy8`v8ys8=&ln(J~r9#d#@itRl(%K!W#Y@b~;+oR!Za z7A&=YtD5&8XhnPi#6i4Jzfq(wFz)~pDE~1F;!}#;9R3dIgzP)?-(uCV^u>aDjUF^R zFq0yyLqX0#Wtq+jVxb3PeH6wS=X7L6?lS!RWp}PP*CTDm6d-k$Y@SDyG5G*&{XB90Q7#*z3&i{VJn{QwYgYWHpUQro_~X$hwuGO| zevUIZB6`g0*E&-+eE_nO53JX>k7vCE=zA|mOBP!i$c-~S!mv0}@cZRauA8dtr1pa@ z0B!x;wfJ*aE-z@9%T{yH@Uq7-1%cO4i8}K~+IQGokK`Q76R5lUNRD$t?s6;(o3kAp zM%uBgjDwSS9eX_M%@O*sJP1HbkUAT-&?CFYSm2Q*=S>547}tctqk6XE>}1ZHy6mJ5 zwqoVFEhTVG`IZtu3Ub-9yvzc&;)|E@$FklZ(LA0fSZB``eMF80?AW4?h#vO>;L%>l z1boh^rYDaa-YhP+(KWMJkKh#|XM9fIHfXfr-3!Pn)uP()@&tO3b=&9POmDyf<0r5vqVW()P+EYzvxw@~lHn--W=t>ti!*L+a-_Qpgd$2iMa zFXfog5?rkJ#!BnH+fr^9CL~FxC(~o}4 z7YZE%gm(cXvAT?Y4jPz07~N`ZxiR&FI3Gy-YF$tONw40bH#)%JdmneQj4%pp?N^V`AO z9>H!H?Gk;7;nx`VE`sN{zRKEiVQ-YRRAv$T3mFOP-H^qMPLjUST*im>{LW3&URGX~b1$KtX=R16A~aX zc#t5%Xo+MIZr?M~*5i4DNrl=pa|yL>edD$6P+Gq(1#QDM zyEnX?!Dc63ugK6a50>|sk5;oDgXHJUi&e9QDt(!qGNd!d8+AJT(DwG zji7@KR{`{RHop$-YFw~Vi?)zMI#NWLZ=J`SCYR>@-NmKq_4ajvN|PopJw z9OHz4aoFc7@H{@K8ct8t2|Bubs!2Z%y!IYC)pR{B_|j9Xr19ge6ZXTHX)NYjlt=B1WB z;U>elkehKeCUJYdd{7+*oV7-dD)Kwf1;A=D;!_1ClE3K&pRA6{RZ!?~G%%y#QN>g5 zI{Dvu9L*L1ee+KNG`q;UujPLia#Zn`ra$?lfdBwl0^E+y&aqbZIUSelaX}}i&i#o$ zN=%Y;d`x;N8JsT3Op^>wlQic)>-w0KEa@xrC+?*EAAfEfosH%orb`AdOX44sQYE+f z&jvn*alX*d$vHNFi&xWOXh~H?ED5|Fdy=IprS#jAO1_0FWt@}p2f*R4r-nbK%Ax|GuIz?mg0<^B6r`G}VHeC5Bg;{M?q{PpdJ zC%`T~dlfGGWRfpZSCGdJ20)1J7Wbs;lktDSC?86f%x$OoWSGxGcP;Qr8F##^R9j?A zF)+)xCshFNsOw;HqEL!vaH3Rd<-*mPh?WwNoy2XYay4D%YFdPX$eB)%2Vw{K$^{zS zo?3F6`dk4ywNks0OCoPKo+yYmc%5jJaxr;&m%qUslo^R^spRvAoLRiGHmM8anS=pB z$&d!mr)``EQiLF9##vI_r3x+p*S0`|*V7=*ZYSP@83tLVB`cDp9yF>11rmw-ZZNQ3K%Oeu7vf^dVw(;>mPDv>RDs zJfE6igVTw0si4S~20lGqLGEt&+t!|bOm_(58*?p&kw1j#3(46)6iZ|>VePE{CLUP>K#?5ODFGWiqBYgysPEEs%&}!srA$IL{7}jA;zv z+Mwi0gfh402sZFN266yX974MfA7f-^Fq7s8mhgT?e!q#z1|>(ri3yt{n8AexF@+(i z>)3dvg9ED{@O_p*Fsb(N8pd)TCO5=w9q~!Rf=Q-jdTjhavLZV~d`Llly0#I#gF$Qo z`G_2lBsfR71Ja1Z5Jo$z9G*cWgrL{47?#HjnAvZbTQm?;!b-ASr+iEgq7!a|wg-K% z&zNO2!r$;O3}PK?I5l!-Qtn~vP?nOFJP8{n)drr%SSDdIL*&-6flNP|>?T98&t!TX z>(6wsh9?hzz@T-?ClIc!3p?M@hP9o&c`3nAmAQS;S#0CX(L7DvqKTd3*T}}kCTA{yz zYAxt#R~3;jfWIr~YF8kSE>!4fAbkfL)e;acNRYWAhyJWUDOI=xGfayh7J@7oCq)k6 zgDfXI8dA{7&ijJlmxyHnyhV~BC*^|ShX_Ro{%(>S!01wiF;>rec5N)uQqTufG_>OR z@o94z_}JMHACV8iTMGu-(IbeZ3L6b%&RZFcWKJy7Zsh{HR$;Hf!7^z`^n(cmEWAxp zDks**jw@185O15LE+#{1FylffqMH>28c8$-an>f&=wL0FXr}}dD!J3($9?NlV-hz)1wEi3 zB#3ttEVRpsL<->@1hI1i-ajLh&_vKB>B(OfM=_@~^}h4!wbYy#gw#78O*!SJmnS5( ze`X6kq5Qb>gtjz^cA{AQinyMj?$sq>DSqjsm@X&u%~EM{jIHXGTE)lXCv-&Wy^hwN zYSYUaK1D-4u|(Tmx+1TaCtUAx^wX(SJul&U=O=sjj%J)HP`JV!JE44KU-61q?9C|Y zH3@0b)QN3DDG6yR0#snUIHjcYc=E(0HBi-28Wt1x>{JdYBn6T7iAQMMBL532Pto=AM5I)uw}8~gqbE=Ynja6J@Q^Nx ziAw=qLF`pl%9CBREe!M(60S!+sd0S56*B>QOgRxN4U3J-KE+5mrF7}>%!xE{*N zQ=0lqqHjF(6~yWv083QgOSB$&lmGyjUR1wj@I->NS!`S}3lE*3#2-{SC}%Drg^(7E zJ?ONqaZn%ad`KK>iz_^}a_LHqUdzCVZDA=JX$RM%ji4?i3+o0NIoVX;M!%OXQ2v1x(J9UOlk3&KIQTGuvkL?3C zEPIk@9hI$I{ZZ=?mrXVmjy$!?c%Hb=><)8mmx6#IDveDZBm=i4kF7U|UpvLBl>o#& zLbkJsb1cCgH6M}Vu|JN!RhH#P)2mCBZOJn!OVd7cSp zHWPL~;ksTxEM2@jFD@y;(Ly-l#vK>WzQ)U;pzR$U`D z{^l>(Z1w9y(-nmq;(7<>p%-IXpzxgdo0?$ry?<1ny$Clo)Ke5{cK8*00N%&yBZZpp z{hDZMsmB8U+!b$j{58eYO)vj2s6YuM%VZ>>?f(mIIO-8wf0NHBJ0!(3{Lnp_0N)tJ zfUO!crS!b@w@dKn?O?kRqDSof%{ars@z-?IAiZUwbIKW8=qcsroxcqVozuv0aQgL= zskid;UJwI|d68_Yq{Wp2m?0QrfAM+uZ+ZZ{cxH;$ zQxpbM3dZyh(DoN^2mrI$3G{ITBfd}5&z>>$R=6>CjaYUdc1r0+d#t@Okfp+suJFA6 zx8oUG(e}_AxY!p+Qy1S~qfABhkb>uC-fl%tL7&(Dw)fV-;vZqLbK`HR7XP?KAEqF- zqD?apr0;?}2&xrVl%gm;57KDO6?pIfnlX*{5@<9>zY=M@%jK$=)BGKZ2P>;ukrAyp z((DCkwBmYr2rRjL6x*5=AdQFMAdL$hAEsE3@Q2a#4rkY)vwg&M8U6{6D82nUBB zjz(*A5PA|CSu40_56EyuF1&(Zh77?=u+au>h>m}z$oS`gYqSMU7bH3rZ5jpA={&;B z7D2F75M;C+_;Y{*5RXw@QPk7MdkHn(L%aRUo1x>Q6jv1VMq^BU5Wt8~WS|ud@d`qX z4qRBp0!2L)e4bFFqbL?>h*uOMIHYQ#u~Ensg;*j?hLXg>1q#Ljcwz(0T#(=_nu$!s zBZUc0qUlICe0DoB2)`^ua7tY^1jHc*z*{l48>USmqY=un?XX}xELl*NpWK zDye|N6vbEqY#Ra^a-n-Y(b#a1POJl2;Np5=0Ot#3jthc5iAYO4u@eESe%`oUUNp(F`Oq9wQ6nW6NPL-?$kDg36mm2IYAlZ@Hp9vV!DUa)&>nGilEAsVQ(qZq9Cj3IRdR%1?_wc0UIj@(J ztG_r{|73Gg2^yAv6#t8$!9i}#FIzWmy7H5T4yd@Wld0#t5+phJ%?xZWgcToE1D$^I zJXv)vFQM-4PfiEkIx|ou=-kpv$?;#P7LP3r;#^O9U(oq-uBG^BIV;TdWDX0D{o-d3 z=YEpr3g)4?K28M#gw-D1`(?`jG+g85r&|3Kesbl4PR+Tc#5$YDK?Y#9`lHAB1r7f% zi1R-wDx;88XZ=&)N&2~#@}tbd0ELA=!MYj6?`Jrn7)CfM&hKFJQ}jtWnY^Ue;<8>z zb#{+K?0*n-{{q%jhPH}f%|`|P1;NcA)z9!|E`O4t!UyAxKRI86Lq0`H5&a5M3y z70Fl*q~=qK&MwbitsMCpPe*m=JoXRcQbn5GITSUYP6D-45BX}t$zn|llBmO3@t49KzJqeh8h=Le zyhsng-cPJ)PSV$(FEd=oU({`N#@3yOM+c~UHu!)@pOlrDNkHL9gus)~Ek{ppA(2%e5S$X@Yznksrm zHp)xos*(8rCdI$hB~hgcyr1U$8-3LV`4mayTZr^heNrja#%;&avBn<-%yKF32Tw)C zfTWgg0D;miku%DNo)zz>+EaWR|IK<@p#}0m<6Y4P@Jd|mY6wq!IvBlSif>R2oQ1c~ z2@LBba$#5J#TzJm1gS&; zQN+Y8(K0epTxzB%Q*cQW7u+Vyg+&OrTysir7smvbGA-O1Y%Dd*OzU@Tp6~bj|G!?y z{p_FjxnAx$=W`C+SA^Z@Q*+M`H72BGXg!e};-*^KW-vp%4}=obeY^ZMs|<Y%P>^=_es{EE6-*PO({mQueWBk%(|?#N?$`hRuDUnk*xfl) z?i5sNnJ&~`(8K<}Di*n}>iqT#igT8zEj(LIrfG#oUV*tVZ zVN$TyK?7pG0HYY`MF<9v=AQ6cJ(k|0zmS^%`M%Sw{hoemt~wNN1Q11c1wOfhUb&WDR)$_*z+R8^iFpDaMF_yA zSL)~IiXZ7`<%&D?F?R(BMVJ@ZppULEH}~3xNsR$L$^5I4KNN4AUa@1?4!HP3rAA&u zuw0neWn-@wuw1xTi~%#=OBR%S4So5A%4D8?@x;^xV=LoZJmp7-4QPnbt$WIoc~5-y zLX5R5F98Il1e)V(>|FUSk1<`@%U0$hnxU^uZtW0r=)Gv;X`@@^%2yE+UOpcX8(tyD zZk39gY_{&#BpG)fGTy}Qyqqg*QjEbsG~F&lnEzfFK-a_>cYkNR3i7yCX+hJiM~Iu1 zZOuF~VXsU)t^$%LetUh5>p-`d%2kLAOJBeVZH%q#KqHz(Omwspg0-a+e$`v9wR7ru+sn-lLI18i>a6*4l<#e5g4 z7be~fJbN-&Pu#CiN7y;`0>_)0j{mi|IjDKG-m@lK&tL2DGr;wMom&==@8T%{>Dw-r2d8WuCkEU7TLw ze_eK9ti}MS{ulcVo&sU9o4d*W29NcMx?UkEvw2rQMKCr*h@lQ+Q^}?oi zlkIP~6gE`;m0h_~&>gIq6m{7=v(v`b7Je8$`tS_!x|~`W_pd z(K(#v-6-#>z789+QGf4H%S@q7qcx!U`Zih69R{fD%rpCJ3`YySL#+TJ<%>;9o6X09 zs}6E!b9ycCvD_*aJwpgarXty z`lymBBHd7HG%S>k^$xYo9JM(;>HrV5$sD$E9i8wFway%}As2Rs(LV>#6N?Rh03K8~ zYn3?wz-#utdn>BW0?21c?>?_t5fxMQ*IG5d$neY4_ivx7!@s)P{SVB4@WRW@;AU0) zqN?u!!|qT`Y81GNU)YVOJC*$R?Y|;Jwb2CcSxcbhs-q6xcW+1Suj=cvIXL=$>8bw? zyJ`V69l#Y1oR9y~0Jg7q|H0;acT_wFG$AaEp5Z-f1GGz{s5?rtI%?H&r;UHf9)@3{ zKaTvqTq7o;w`YG!$9_-iu&`98(tD>PAJBK+iXKONU#!u62r&3B9TQR0r;!}dJG8&0 z=yBBd6&e{47WBvGQ#DH;p9f53m%lI2aE^Fa_!$2^RRbLH;2)w}3lR4Hx!=&baPXYf zZ+!saKX}gaH{pKOuf(aW9j%Ua*!k4`LwD{0=`Ix=J!RcIc&9?c%I3F${bts4k*RM6 z&sqOAw1093Re^@=O6t_$OY2h+5xs-^?fwb;zwvMpy#qiJ@%+~WcM85jIeN@GVesYu zW&N67{CfY#!lOq3&7EuwLfrS+|G*DTjoCrk1At1{LE5$dpmkVC>ShVhu-iM${BP?* z0B(PTMd9Of-~aZ1#8&vbg2%z%U)R_nj%rya4BVl{d~O1Z>Kq27VAvOPYCX8SPJKXX z0y`Md_Xk*`(BR+oJ1Rh~Q78;hjmB`o`T75UV)GXa<+|z=X4(Pf8o@6R;#8A>=TEC9 zP1c^D3(Zd+MAX+i3`#9vrz86Mz&iDFVfiJ4QY-2J*sQ*J5N}280~^*C{zH&lzKX@` zV7vN>LBwpmcmqr>5=N?)W1J&a3WcGnRLoX5zraAPeqsP`4l|2bDG&y$UI&DIJ>c)_ z#eahj?!0|p9~K5=mReA|z#2uuko=gz+)T`7I>tM~vIvNh4TR$tZtG;03?g~}M5+ZC zYy@)_Q)fjT2D{d8>`2vz@HViB2qIm0UbO;~yra&D=oY1xt;v zEH;4D7Y^a=sFPpi(j7NGy)reDIfLmo$JAK^3R`FDbFc>{sWd1q46+GLoE_$*T+JGBlkx0yDnrol~w#uRB>&ww^#dW z-20<(6GJ)Kj;odsm*JcoNATi7xKUm?I@s-G$8hmAQdsO>$++4&#wj*cZ0lkZm z)mqjSodq5WvHJ?ve<-KG(Ro1~viPpBB6ZQCs4EOevxDp_0bc0+Q(Gr4VQ{2pFvJRy zwa`1F-RN?ASlia+_JFoo+}!!B71HuG&7IQ_VgqUVzc%(xXloRAMIYojwlBP+11U3x zM!pQ@)H}WbVCV(LB@Df?g>)}`HPZ`@n~Mg{^wz?=;;z_(od8j@=4fSqdsaIu&LI`` z+^FR^<+%^xlhH+p<#EcS&tR6-_eTukcbIXX_N?5tio(MH+xOh(O;&Dw#oQYs$Ky~@ z7Cu3_t3qAJAR0n+2K-k^%54=1hYbRE{3Je{Ec}(c&kIJL5WXX2$R{QXAD6fPu)!&a zr4#g8mh?*AmbOr4bQ(f*f~IC679o8jKC(|n@|3(ySLpRP<$54zWmWdmaqUWOwlp3H zJ#iSI@c&Ril9l67ZWh4SSNI<`fIwE9{>e#FE~seM7S0=)K`b39JwDD^Qlj$h3UzG* zYY5SS(&eL_m0MI1wqQhdgrc$#qmaISpJV`=a&bkWws6)+2f}xNx@P5OS0rc)rADd% zOL^?GO3Vvz1)QxeD^n}{|4{(ZI(()wr5BasE1I>0FN~HwiT0GX{}F}F8#y{sT723w zr5BWAD-yJT)&Nvwg}Rn-%&5teXzOW~7!p3ts^VRwNr$Q$*xVg`{i&YXZDEsIZn>3_b3Jr!<}2&@IrAT;toxl!YPIER?0(d#YyT+zJhQrH*k(WdokC2>a1M zR=u@u3v18AIu!@AbCN>mrh%lr?Uvd=u#7>it`YUD?n^eF3z<2jP=C#?r|S9Lz0H=+ znK?uNL)WPKM?23)K%|Uht*$Y3Tk`(k&3 zD&wGUoegom*(t%L{#6=gF@}wlkU5gDV^C z4>diLIW%jU{m_}aD*n^CX?3DM6qH@=d~vm~FVygi&OGsMkGGCBd2r71ZuJiZ#|l>G z5IQHwZ|0aqWI_Z$ZOsAbQdiac@A~c_sc_C(-RPS=mR;l=0hpF~_xmcXi3QHKmVl%s z?;ro;fIt6k&*`$wf*!bzJ$Y&l$O0>KDm->~HEhQx^w=50dFHR={qrk#tG{39s|KPv z^joj@-bH>S!NOFE+iHIb=KjL|mb*6$^$mI#R^<}%_Y>$pe7`xfixBdwHt0_1E^n2Z zU%x7T9Nrs-`6hT*vPv)i+wQ&UpmUsG_}}h&xD%oN+gR)$m~SF?m8kUAe@jLIwsV+Y z!Js?gyXrW+V``TgP!cOKwYYkztHK5M_v-}GGLFOqLH&_B-ZbufL|@Kck@rGP)8evJWr zl~1Dni1?;p7glu#-8b2H&OhIuUHpo;?Z$r<|M`Qf^ckKU0}ckOYJ8LYK8K0Lk;ClJ zXLX7`z1AzvH#8K+sh(Kvzm;77Y@-*%J7M)X2eKM!4Wdd(DDkkbNy;3}e&C^@q3ddi z9AYR8Hl;xF1$qNgQk58DSS-!S-*lR1Y?}5P$cwqE!eH8oRrJ!Zar&a4_-|xc?**>2 zm2s1(J>f8)HUN{-3WSSHO016(uioU*C;H~k;fNGo|BX#2n!yShB-2CAkH0MD*6^?w zuFd7hhryh&D#>^eC#{o^-bweJVK@C)rgu&9402r}?>L9rUbbDKN?_8Qx{2Zi@i=o_ z5GQzxEmsUAqvY0;XFEMoJe{8^XEzA+;-v99=zi=ZcEe{Md~b6+~a7_^jF?Qm9K7j zwMXh1dx5zjVXC2b@XKv94hj5V{~_D@-zls{aja7iDwrJMk@Dd$Nc*kQ9}|Dur#mT= z+G7tT_1}06{2T*ok3|KlA;Rna%#Dc~RNd>UOVHta7#5{du`$U<%=7T+R1L%j?$)9* zvKx$KpBTL#HTb*K#>Ia(`YCr#02iHaMrVG%EXmd*!VD?YV@S#5TF%zh zlnv+x=6htHCu3sf_t+Xht)*+6beGdHr7D&I!N%;)HK>O(WD5^+dqU~`sIu~j<4vj6 z+l&F>#Z9`oSHpdhN3+*&j=NC*epHwH+>IP2*UNtAG@qRnG9Cx?mq<^Dn}4;&Wz<k!_=D z9zkk7E-()+R^>TYh$062KOh#ZVYZDQkSwNN8v?$Y$F>ftY%OdlEj_zdU01`>Qv2wu zR^H-j_8EGArTORLR`tM4w%!op)L}20CSj&oe2AfmU$PNf`Y?}P<{a%lI7>KEXMj#gCC%LxURO-ZTZjZ_mC{hC|&o2jiZ$yPY6-*ZsuNwRN@`DFEl z^a~>d=JP8Ezu~d=gsh1hrljwJ2Wn)u-$6QDQH zaGtCV%H`=jjfjH2C@2sZMR~b2O~<5Nd-0U9;mjCr(nnnJDt&8e%4X|92UJ$HNe50v zVKQd(J%Zf^kL2fj#F8=k>y(WHXm?(e$Cf5YMr1$j=bSw@14~{|8PQU%Pp+hSGPy6 z{jz_^r%D}itY+#y|Lg^qdsxPsETjQFdRlVJ{pI8HxlUDP1q zH=xpZm8x=hel?@D+M8KXd>I3OQ)k6%{JckE>dyr({CUb2a9ISC{;F_^b3Q|Lefso9 zLYC9454Xmp;j%|58;lkYg3*GS>(HUD%N{Oef!s9u@q5by;o-NQZpMj24d&^I&Xri- zxJOu}88!;t=v~uO+;3}{TB`aSkH;qOvsLQ1Z7e`=nJK?qhL?UZ9v5$Sa5$#eFV0dm z--yMr6WMgr`PPY=4na&*H`m41_>uvQ-?k!or1qvP4F4YkIHFK zA`G{KBg_Y8r7wDf>zZniN?`_sj6EDk>+$diEZYfzus)i56`QD9k?S>5j`qB;lr0AO z&!-94AYUIHbdvErvC*vHnEMz!Ersk>N(P;&S&IqhbL*UsvVLoY7R{V}fAiQefju(P zqhF@2m%Tgmu5`_tGHh*pt=wznlQ-qjP5=J{mMNyB8b{bw}e zgq@z}pCJ5owP=TdA^HYVLbIN)+PDcnTF=Zn+zq#gHX7V!Z{bYbl;oW5zr>)Q@yEQ*h>hLThabY0wg%8jVo~T7zs5KyqP}hXG3(iI+M}@>8%QBxaP>yw z6sz4R@qsL$2M&wIXD-n{Sz}__h&D;Q9xn zalpSB_~#{gzBfRLL*LJ_nuC`S0x}*Z9bfMIPm0@b^k%?y0== z>6gzM>P&d;Rb{~sz>C+%1RGc2?^HAhP4pP#MN_Xo0n1D|Wq5d4KE%)C*n<^*Wq`6hOt$C{(ifNX5nU z&vCvlI!z2#ju(h&>a^TeModeMXbTM`4AtgI=z+#;YYSSPlev#En=LX44|k=+t3_jr z2{Tm))$#|NWg4yS*(f_NQfQA%a;Md)r`rov!R$q6Gpb51t&TpSLj0asiSS#kMrf#Y zrf$rGq{XNJ)*#Av;*iWl+J+WHa(BN%@}Vuv^+^*XpTv^BV9Piom%aY}6ol&}P^xAhYEe45XF_Jx^N@ds@a=(b329)P(=&qmc$$f2jg+)lZiYGQEp z=V%fPo#G$puV7uG!f$%;^z0`eTI#b{W(Jj`rPk;*Xo>0;dJ9XO#)CA}%E{QjPocU! zHZ!R?VyrLx7e~J69#fQu630CxyC1Ih>lQY9Wz2wPW&IuVbx!{Y)KH6Vnt!Ilx9YUI zmo;Ldguh;Xb}`IEN%y+p+*>`*B~y|gqUcc1>qP-sDUK0udGwlOPtF}YE~N$B$#lwM zr?Kt*3_W;E1JMPw#e;rT0*wOGd-2eq?4Tk9WN83;cy7EKUM?M-z#EqXb`?)cE}4IgT)`#D`B=asdzBSLKXbGT=a2BN4) zArNwS5fve(<JUp3;zpSOzYycnb@Y5W#vhA8o(ktXjT0*?#l7Ep}#|<)Rq1MV=1T92n zL(zhkIT~4h-oqoPZ%_|kV#VVQ@_NIRA`8%h$$1(%gyd5~wrAsL_!gGvu^C#JaOtEr zsZ<5?@JA~w=U^?Ea)EEeod&QrP*qm;2vvz!>8V`eT}=DngX%;?hvs+N}aXuLtK22h5I+FJOZhiIl{nV@OoKhv!gw3S{tS zv>+xf+{1-}R#-X;0x{Gc>L&){KeyEBipYM$j#5V{=Mt&=+Gw4_Z@fB_?g6%pHbaNu zRa3lru_^~?OZBy#ZLO!P>P$9c*it7Q7(TDVB+-g3b*^(9IUc0)=_O13o7z3>xF^H( z*MCU_(+!5KcLDHZH-6QXi=J=P7|S&vQ*!*sCsulJ3_N4snBZC~M`yTJRZ`(5VFZBK z9*vM7WQ6iZXFLtvSi=ossuoDL6viu=`C@sfBsXA%jZb9-AbK{CmN2X-(=k|O@gy2X zsO0A7OFqj=HV4o!nNb~JV1=}t2~=6@kkoA)7$C6F1B^3)1;Es4f1J$Qqmhv{#8z2Z z#$WNRP5avb6@!w*m3+J@)Am7Pqxk_UJYVD|2GVk0KrIFRb&U8TjxBAyh2+Phqt_Vy zyHE7D^lgdO2!?*q__lGOs}YamV2+wMWv^Y6v^s=_V+Je1)Y;?EGYQ)YJ_QAmLC%`X!<+#1r@ebis={DDHE;v1IXhDLhAe?&hHZ%L$ zsQhoUP4*g|%RI`-DiC-46eQ`36VtwztW-_l>W&z!LORy<-WojmtNG_&h$A!pheBWN zYRvX4HDb^9r*1ea=^6+)p~y03$B&ze2Z-}eZ_zhw-Ln%tIBVD<1)d%^od4rGbr)af z^2xtr{f-GV{<9C5G7qLf1Ss60$Xn)Vv$TCcQNX<%CDH+>@oBFQppFS;(pxGkXzAds zU6#+={ZS8JHalExH(`CuD~!}aqc#1iyOE?>e3B_tOSh*=qQPQWCG`cTFI_=apKy9! z|5=-qRpVsZG|up!<(r7Y?<{JY?lq-KduJJmSK6HPHrM(kzm0!^UUMUD;Yt-i^Qw|i zB}tJ6Nkl*%Huj60OG?)n$#5`hH)NZIny=X{~n(AZDgHwNK3 zxAAZfWXHi{*){bbq96!l#$nrpXEZY zqbCO`-b1XJAkIscnTTbD4i{0OwPp3gN$IqAm#yV z@THO~u=mcw313V|-RCq1>z^@l{^vAxYZH*=*b$#>hleH}{0^~(P{w+Fj3Y`%t3E*s zu~V$VhZq%fHb!NERyMsEsj6r~;I$!rvd^K$#qx<-N}@8)L`3IN8U+$t{%tgxL662V>Xz*2}!AsmaJ~ zlDI4qHu&8bMXJ6{uNkm*8=%vFZe%80EC8MA=e^E+D}eylUSz<~lHr zav?z=_Tmp__L2%%V_o7+t|7{Jyq|CjnIv8s_CeztOc=mDZO^1%j~bwUcq2biT($_N zF4jQYqNPrijjQwk^8np#7U6F$GGE*}npb|dgW<=nDI-p@C^#(guw+c&om9)pS_$-c zRn1y|Pe95i&eyU~i~!`8E0Xk`STXW~m_RtgL-{UN5NzdX{zWQIk> z^=BmR=iBLJq?3Ye<@C(r{6%*bl~&%UVfmTvi>_}FM^~?*3BetPW7M$-@pRM$&yqmP zV~NMDWg87uWh$cJbnR%$2SSs$qwQXqRjFVW> zYB+XaEW)GCxIQHL19?P`uJY-YLpdOg5HEjP|@ha$NW> z%_$C1?3?skZSK!+92@N?Oww}}nkQy@gyg_AM!5xd+L2*vw)tunKU0Lx-j*y#$hFUI zw5~Ioer#I30o>!|xPJ|-$#&N?{g`12Of#bQ>E-}~#-FBIstlJMd;^s$0*JMLJ!AN5 zfUakH$h8OQ{!0Ez5KjWkfNv@QnWuaEAKIQaSXq`%{rxOA(JnmNt+bM9%4FjSFra#H z(q(goeki3koFw#vl??eQq1`#AR9OpneKcJDrjXv;6mkI*bkau&Z5)%HR68bMwLk06 zZ6z5B&6^maJL4!2LGui2i61B};n16>JuV=FP6E}QPz^`x2P~b31URJuqZEBIQnKA) zCPH!5B*@X)+}9@xBrP9M7?b11y1GuPg^M$marAkUGZBg*S zB>mAQBjC&u{%>r@eXbj`KrG-Eh}nn+V07H3+sRB+PDm+(Z&yisbDBjLI_@viNJO+W z5d$v<{zeipE&+Vk;i~omhiDE?wbLKd@$_?D>v}O{Obp2vU-Rn#Uq8ZMq*y;ZeGI^BcV4dhy`$W$AIhW~`~!u%dm zV+gxS1QQEsuq7q@SZft-C4r1_(W-PkTIVt4+vaLKor35H@Jm4i%>|$lT^KzWNGbAjpIgy+K{d;X(=yE{biM~hcZ z2bD(7I^s_^SBXl;s@=<*3=_-xHC&dmcdz+Mi%;(>8dX^#i^*>`8xpI>9oR!Xwv;>Ba|0-|RF=q^5K&tyOQ~hb3!S#@Q6l_ovZf z4c2Cc(+_9M733+NVd9JjPI~LU{Hlg&q$G_40D(nHz0S+>5juU*gpL6+5uv6wb|1%B`bbv;|-i)>ic4~z(`!i zf0lrii*Ys}D6%JJ{@&UOy#sN-?#&rx4^#Uc%(W>$*3~=b5xN2IwMgn z6&1v3S6nO~6CUnfqDlvisU1aZW2xfzL0SEXUC_za^A}v-& zp@pw&73b06dNt^;UpZeiWwu3V3d7ulJx%#}4{;$O2wUCoh%q)wV@&K5q{PYC1}kj4 zTjY>XWB?85rB^vMAfp8LEqp!Rrq!g|3a^3qrDttId zrt(}9A9V3l$CG2_koQrGg4Sh6QbbbaeeSWSwCGPZ0_Uq0CY#+-oM|TOfsYCbc(m>T zVtCU2WcgtZkT`(&-6LHYWzJdcr%np|FyBGl$mp z93Xby_q>1_Tw{l_J>lXTb%o=K@!wobLq=w{28?KuK1SD|8-t9gD&cGRnJBT}Fg~kw z-O;`P?s7xi#D~Z0q#;WKyMgjBM!X)lD+sd!ToT&y=JsD zsZlVd@agxrw)p862DKZ zFy3THGoE<*c8CH`VHZ1(j*;vG7*!31!q1giLt3VmX8s7?$q~fcUq!*SX=qi*t$g=0 zXFAFcD~eT~Wnz3lk@KK^S}?qO6?c1~V=hiSl6dNH%e%D11Aljy{5h`D#(r{RfX8w<|)f-MnB>rc4 zuqppTF1HPc+F@SrFRR_Wc`KZc-n)jcycp`^Vo$ELGtg0(ou^O4Nj?>?rTN=-fS<;C zWwZ$;rkXI_qXnu+QxN{}?0x^+=3{s4^TnZ!nc*#Hice=D@dB9I3eNh)UJ%r))&GJ% zcH&+QaX_~sU&w3KMe*R2afQW`_TshQ$?l(NKYv!?qbao3OeD#!k#FKjXWKUJ<)tA{ z$=YHA6ncs^*|MTq8LM3m0VW&`C^1kYF%)i2BS+5ot9)!XLH&3p{m~F>!dIX%R%^_^ zd}b<&-)MqbuBGHWVL4=-Fvvw=i|YARIF05?>;QgSVI(P7seZ^8zmx_Fu@kqsuB18K z_;KuB=D=~M^pTkaJ_9?Sgq`Y)!UE+$oZlK5Tk^pk=a(d&l_BlP?(p;#MnFgpOop?- z)oU=xLUa4ks?XWFn|Gq6ufNbIaMDL^vnnH}0)3Nq&8k=~Iq=3x zS17I38EAnCHL5Y#9;fge5AT?9kA~~l)^+ku=%N(4OzXR|c;veT>^fwl0yW0xl#OTv4FyiA{h+l`ses7Pa?pq@lY)N?BdmY zL-7*Wl)1L2J*)XhNBiX@q)UATFxlj>ShH0{DvgmiFj5$a@|524lDCI`hPnh-`6IH` zMQPXE`1h;M^Y4rL201meQ;fo{a*RUHtoskO{sG8`r=#F0_c7BQL=FYy^7Q#Ft*fR6X5{Y^*- z7^14!Dp6GA%UT{e4MNJZ6JQoP_N9V+0_EefaKqcynu-iRfD1vDX!&zk6}gP&8z+4- z{zJv5ynT9q;!HF_q!ulcghrqwVW2Uw&d)wrgGWZ(DIAB{*yis${2NX&`WGrmzHzzU zWEsjSvmFlJLn6s{za3;bwHn(A))g0@sR3WP(~>$lB1!uZ%HuZv^t_p%zhjk!qe$?7F6!1qXKEGBu(6Ps*sYOxc!?hh_{> zt#v<2+8)LP&{62pm8gGFDB@_a*ElYLYZlKEyHsD@oDPWyn>c;d;7!vdEllzq~8RZusT3e@$v zO#yz9pUGi}7v>Ry7al^D6hM5X-iWoxs6kQjpaMafcgfvp<)!zO)vR*{B#))sX5Ul5 z#W@h?9)wfuyx071G!f(HIj`Qcxu}pdT9=se#(=1Emgw>R2ecSzBvcvsr1+uFgj)le zr-1NajtF>2tN^%QZK?_}c0y#19h=e9Y_b}OOpYfGGo`F%otU8aIWl187!fpO?62{H zb3)g1FI(2wPLaxvz=>)vrS!xrzhhLB`sp=KqNQqqzGy`|Nz$Wt+Lm8@)#MB_*{$Xq z;l$cXoWUb7FqDx6ysvT^nPy8s+tK;d< zkNlA1-gY2h{9T#v^vDP)nLf>AWf{^{NVPs*Q=d3~NcN>20TlVsNmq%5H?P^dCf(FG zutZ}N(SblKj^+t~Z!=V_he4%VA9DSLL9Fz$2hB4?rr~li7IPNV=>IBMaXi>mB8>G{ zi}F?bRM%V{#N^^exPIu!AD|>+=4+yyf`HZI_l-$HFAPyO=Cy#eYcFwsZgX%T^IjPY zN2sY^sq}=|nsYA(5Yk+@_tw9GejT?>!4t49W5JqgpH3q;G}Mp@*!Kv*-u0)=%}S4( zdynupTWz>H@kZ&#n`r{pY6LP&+zf2w$)qM7&19opqq5j*ui!}HtKs+!VY z_V;kHkzN^fFeOF+JWb>u&%;-{i}ES7Di?JCXyr%@Ll&3#1Nv8E_OZv z$m~fP%A+$JIdu zI$>HM##8_c+^{^MT&dr{wrfDzDwxl0MhF@b8`xlO`B^h2dO1LG@wYsf%sH?{KLT3d zr!`-JcS-JPdS8C zn2jg8bk`L=G^R#d6|iM50{fBjfU2QAAsmyeD9Z5%1<^7Yy{36c0bsT*h6bsQ`x{Z)z`%x{BTO)te^xbm-@t*KSF_T!4EBe0!fC3$2AX$xq~vVU zgLxuJa>bXEVVZ4T(=i&wA3Gn=TXJ?d(d@^dPVwO*%pBe zb@_LLqwzI~F)-Xi@oM{%(m$vAe?XS0&fo*4dM*Woy=drl;#<`^*Or-M%kn!@d%HAz zhJbFH?D_X!G+~h(29h;1!J-^fb!ZtfCkq7F0;Wn$a{1(N}vaf6sHu8M--pCaV$a9=zrx0>e>suPq!GL z?r|vSGE?RZY`LW#NxELH(AQ}q9%7+y0#8Rzi3}*IVBsDYkNae|`pKY&5Q=_EB^v}3ls>uj0QB=7*aUBEt>nTCnZ1@~~}4|+htOSHxO zoxOoB&l?;o%CgtLG{A*8V=l{275$UxFtuzjBT)w*=c&J*;Z%OM49(*|&|fb0RRzrh zdvD^M^v0rVnGk0GK0FV5=+mbRf5!^$!aUDCHuB`0?1s8Qx<>u#jd$%oCN4-te}!8P z086bk8_Tkf8?b0Mp8pFp&M&eU*pPEU71%&&7b#B4w~Z8(-iQ=@eq@w*Ue?i&;C?Vr-D``$`2prBw1UKW= zEI!FY3)*;T6*|^3Qd7a0U~gYlA}XSuiJPyRRGyteT8`T4A)=8}9}_(XMMG(Viaz z5o*}x&{?fepKVnd!^!%rar&o|YQh{%Vn-FF@Drn3ZF$*7c4BL4-A zeUck{xbYZPq5c+aPoo;zXSjK)0jnB#$t|c9SLE08gyv;QKg)|7hy$w8z=@EWxzW5x z+&10i-!MMITl0Z6+l!QDw@{A~BBm&>M_Ih~EPr5?lrPqgVvawJ5)}Yl-CI|KCQ;r- zX*IBkC>*-wDr-DKHh)Ei4!Wjmr1m%X7tJW9$nz5+0}-&p`_NUAxIR!nnZ9(rQfFUH zS`nAxaF?w+#C{G6E>bW)y6lHjh&SO4rY+s30w*BCT^O5=Rr#RAON%=OA{;4(h!s*i zrlM-B^h`L-2TxTpaWhrATx(1eD|9QIC{Lv{i^3|6BR&T*4pQPAK|34!Wlp!DzW3q2 z@0IBIwuj;+eS0;5t#^RT`&?xu?n2{aE)R@SW5>t6bd;TEKUJjtzW_!$xy7-i_SGx1 zV(ZL`tuw10Q>cjZD=XrT1{HC}Wo1^K@mN-_N3{Nk=>N=$ev4QMR+&{-09IzjcAs4o zTSpzkR%XTTGbeg+^4FMCufWrs6>~D;4)v8eu{X`Bvm(nC(G#8({pVSc0JEa^J}>sl zd9n6jR%GV9x(22)ua1%`^I}x8AZF2JPj5k8_g+~L)nP%b2bf(Hc_@0hi=w_Ss^?c$ z7KNWhbtGO{6#YzbzxB$JdL4$QxLR*TT-UK8j<#2pL`9pG@1@QRRF-Dc{e4MnuO+cx zEQ$W%lE}klkqOIUHeNkTbknl9(tcCShE^%YGqZOOR21i6^Y{7vlVgN zp(5s%D`JkZBF>botO-$TB3IS9lugSub*0L3P0Rz#iN4mF7=x^->tL(mjx*Jwx_+!$ zRI{a8RIlya6svHn#Wi(bURGzQswMI6CG}UWmek5vEs6ONu3+4iumc-Fp^(f4y<+@sztKx1K&1E$+tKyF5Rb`B}{#WY0Q!R_%Sv~8J&!bkWYFX{Y zRmFLT)v}t;RWXxOEvqXisugwCs9F)irpu^A*$@ zH1<;c<@lw@acE`!$5U#1?rYSBG*06H#sU9FS!LTb8q+hx2MDk;1J0>~g%(tU7>_#P zfYXF}B;!#v6o6?E6xHnn2cPliO1RV}FWavP8p3Tnlf5&iF|iZS3} zF(YCiKvFfM#t+Si)e$6?dvD-N5uG#O<1kP4&CL`34iH@ocvy_q^1am;_78g2%oCdN ziEn=bok=s`Z+pg*fv9O-+9z&as5_0w{efe}ykP%;In+#Qb(@#6?W_s2I;ppACX2hE z9VXaFlh&r1Nj(lTX&lK+(9}S&HmsgaYUP?qBQORXg$9+?2FSN-f&^IbTMInj1lb}8 zJogB{0(cJa8O?(D#;9JuS#g@czid{GNE<}M%nDgopv_mt?-M}>CAJfDh+vvu(CPhbR{*oP3PzXe3-6P-aPYTi!Rq6cDMCv4FZ`{#r-25Yl9`0J3*2cH9M`3_Ym=mazYJ#-iL z#)Z9cVJBS3>|Z!v()V|dz*fHy6TUFd7qVs-SQs8a0>99|bK$&SSi$T43f|`(t8-y3 zF6fjCHui<}Vk|{!FYjw`3IgE2Y$ z$eXH_7`E%MH&i~`4)Lf8OK;Hku^qHt)y$)PAYNB>XWECJ9s2+p66#ki&v4X{P6n(fs$x9F9&y+-+LudyaOsFbh+-f++!sI61K+X6Mw4o~&$ zPH>9?CY zr~pLOkexJpvN>?NIrS7Qs#PtjRqX`E^A0t)sLimzSg`1;wLl}Wvv&2Khgx42ycJf^ z^O^+MA+=_F`wV$FLmH!R)XrKxVrTUW?5visofFmqEP+n#Iy*zQ%s5TpE3wO@ue&5s1?@fhA-6~@HV3S7aMT4Eqb@@rhUHK zLt~5^*fZ@04YGl2Re1;6HLyiD%+IE*=qETSEb3RS)~~j^5IG6>cAk_S45a?OO>*xj zMUUA$cGM2J0gQ3Gt5<7xoG+jh+FiYMtKH>oL_0Ff+3=V*>>8?jzdW3bypy<;2s zhS*V2aUnJ!0$D`NY=kC4j@2fwCk2s7n?`6EL~eITHZY;sq6Q<+TLT^Z6CcFTzqcS7%++IeSB#dfwAz6({aR-$wF zJEIyC{rL7mrfeV8mXp7cATjaZK z1ur?H5MVHI=ni(>guMZF;|KhvUUNxXueqeH#~b$WJ$vZ)9{lFL=83i*%79vREoMm(V4ah5g}maJM?!uM5r9%na7t@%t;(^L0)=MCY`2&bdV;l7XE$;S4&&%mvHqevaxm z=d>4iGisAK;0-!q`nd1XJpN|Xes*5F>b4nD3pjyJFm>-IXN;)7>_)A8*icpOU{O0% z+_@1acf52hW>oH->Ls~RqdgAY?(T_Q_k^ABM6Waus@)Ua<)?DCo+qTlsj)$)^|b98 zMISm(UIRV&!aJC)TY2Ad# zt#&1}U&qdzpsf_`x!naF2XtjOX#~$r>N~heV|s4Fdd=FsxGBhB*q{RgvI7J1hU|$$KfXgm(V-vT$!y&3j9FbYX5|(|G1?aOcie(K zFD%LTS75!sTrv zi#W>>nFwK?z1Iuhh0Y)s5tnd~KatOYzKF2mHptB6)R(C^l}RfbHwO&@Gys=0X5}*0 zJ>%Q6(ckijI&O+&s5KS$2((_-7`4lo!~A|f-+P|Vfv12vMt7nIp)Q!`O?QijghX7_ z(aJ@olT*95jiAy1xaf{H?WuS~o7c>mJ7Mj3?bdN8^r=TI&chl!;jN#@pMo{jU696? zW+xpG4BUlpM_uIx23uED=UyG6py0xGh2IX}97ve1KnoYX4=kA-T8}!n>>48~0V9gH zvw6tOiik(WnpW)0s<|zPN=sMq?G?JRLhn>$W`Wr6yZ4m__xz}o@SSQ;-)UUkBjV~i zJ(a!_T#>e0)JMBIMJKpAWy@v0$#>c<=oRU)jUeXf)zb41XjqRJh*!z)AF3Js1KtgC ztR8jm{(*OXsL$xN{_x|4{IUo8v+uQ5&G*W6xE;Dzy|8|_ZyyywZaWaOI&cPot>J+Q z<_C?6crYn@M0fq5Q4v3=HRuPeV)DRh@Pk@|9vmwkHNf6zb&Xec1Z&iPJtJ=ytXsc0mig(z(PV%Fk`~c9|3ch&)xW8TPOg}-kfDOb?Sa)#jdQ=;FM(`5keA3!NKU-Xb z-7@nooNgdt`Wby&2`3H+mVSXRoN#iVkZgPS|v->;l`wO9R$ zY6ReT_*GF&Hsloi3ZL-_x%xzB`uv8`d4!TaTJa zzrh086sgZ|_%1~QXd_zn>e2h}ckBezM|ngGJ)(sksGEL=Cxwb2f51LG-k+vhu40cJ z*x?88sDVf1gL>H>n3f*6JswQl8@Qf*#LP!XlBkheAEB4gY3n1-MO5w~FZh}Fx2u=! zBP4)@O$&|{pEOG26TF+GaT}ksb9@uT?E4L|=YhlN6ZTlbdL`tJU#MaN^O{F@u+Pv1 zS*u<>us(d|lQma+S-f+Gmy{vdURd{xvx9zNubjy3*I`Sbr`VsGW$?%yd*DKNaL0JY z(7;&jPps*QdM)H?J!&02*kt^r)%*U^oPt*r(2tiBo1~3sFX#3`q{8ui;HO-g6Ze;5 z;9Tff@#tUn1s+*JgcEscUyv07N3$=AXSIoy+jK!eg?54TE9mquh*T7Kkp;F*fm8>Z zj7P-YSIkd^q?H)j{iUdEMBdz2c!-R%A-C=;GME$Wx{AtAAZ2afnH@W|9L7$4hp|)Z zbnN(BYR``kJQ++e;{%mxV45D4H@WR_l>no18MhI>kM4xA*PSr-nui^GjU$cd#vRd( zJF@Ck`?lIwV4e||7<=Fh6!ntEVZi*rx&YSMh}hRSz~8BAtB-?9>~TN@ufk`nh!W#` zjYjRmQR>j{yEJM&q7H488ngQ@J{f3Hio5dh^6(<7YS_`>G#TtVQ`PbWqRVKNqj0Ml zMIWtLO>et)0kn}#-r1Z_87W|_F5`;l$a#O;FQ6S>+AD2To40GkN@*h}MlOsLjHn%c zEcz8jP`>YxsLv^ijgXZupk4FCT^d;`8hLBi@Hqj`!E7k9$J?&Dsg09Oehn9JfT zbmk9X>AJsS)Hjqm{QI|bm5;{@Ba{BtW5$Rgn`P9`=RxyCS=rUwb5@L~ge)4BZP#f3 zm$~@uQLZV9iQ2A7xJx^gvgvV+)`4U*=rz6KrIhEczb@S<_sEDf)x1MCybJTA*x+p> z;@7nkxjcD|p5>!gysvDuE+uOn{@XFAR6n#+ppB^Yl~Ma$UQVB5a8iuJ2)nge%fpJq{htG5Gs&?rB3yM`kpMpWw=ts-dGsLVVpcAd>CwX8-;v%&sBwS3kp z_jb*xzvZ-JrM$ErvY@NQ6vb#Y1$tS$wp+5{ef*;D;~{Ol>bOJs10%dx2toXgs`) z;8Z@)tkqskQbB9nD!ix-@+c7)yh3) zSTZwg0PSIEBN}7OR=r3dzqPv#U9TBZbk;r~qg71p8feBDr*ek%rS<&nF6>OL!*3(+ zSLc?Zmp*5Ky|LiDYwoX&z#dz$I$-6?TF>9EQTB~&v0f|o;c9f1SM9u(M^2Hn(fEirY$^-hBJ0tIF*Xg(MB+1nvZKE z+VPYfW@^-<)`GjV2RwU3d+JNSw8F1c*4=gu zG=9}MZQ0c#FuKe z!YY?vdosR4a(4HV@fFG~*hb(tZCSsoS4k3jwWG?WvG>pyo%vonTl1(^K^W8y4}(T3 z%BHn*W$*OY2kfx{U%Er8@2W4#t~q+!D_)B2^?hzUVf`-cTqwKdFUqd|au^WF8CBAT zK_zWKggh9`hFL_~*umYr*RvrJrV61MJ&lr>>rO6^pG3e30~trLGgRr z$cAe)M`jJ*M|G~EJ>S=;y&6V5XT+M0kWr)Bs{!nOW!H-6vO^C(5yg6H6f0;)MjL?- zqCH3L8nrjVSoNKs(6Gq0g{Q#?tWyJP=TQ4FJaJAHm$;2!&p&Yn6&a>ogFW_oNH2rc zzMFQ9`WN8^J3)H~-om7wOPJIX50lPMIn*`|6D$Yi;AD{iu9+S%aTV|>^5f-gS%1`Yb$WQ2tNXQj--HH`l)uRs*Rl7$nm9(q+L>4&PB`B6x zerh%+YKd*%5-0X#wxAT$VpH{ zjy5u@_I#lWshoiVZ9E{ykyfE`x-Irh3EdlZ{Xk>6CuS5PsNJz!RXd{Xv zWWDmp=NF=~FRdWWFIt}X_K2Lz3sOBozsD0h3ULXbI9jj$!bSTF+WSC8MfhydqiuN?5G$fMLXTvU5FB=qWeeD&)QvxFkFzv7f$X4nJJ8f_it&wASl9c z8-ZU?uA`@nTR@u z3OzVM+D!P;s$M|s`0KjLvD0^so$lV)X@oO&h#P0cU9pI7#7?8uQS0#A$b0Q@pC*+y z@qwJ(2q}@(>W+#6(MAwSo>cEdR6oWCX5+EooppY|chl}tnHe7{Gvh<|VFYeQIn|em z5B2`asor{gs3fr?VtU$t(eBbJf~frkZA5$R?GyV@`>ont%F0(xtu>1Mf?vnpK&@j$ zgeneNS7}kj6bHocPqqExfQ-B{1-EOs7Ft_aPWWFFsxg%X_$?ZhtI=SuqWUo+ei)5L z{-aTkJ{pZaMKfar(UlVtK>5Gg2);t`H`)m7mRaj*!PeC7f<1q}*Om7tyoI!8VX$&?ha&j9{n?E|Ng@ZjmLykFk^vYP&uF<}>Jge@G4pRMs2LzVnJgaRS z9oF6B+ZD^Jjqu5cOrqj9qJ}df&lnYls*ONbdX4))WWj~dRXcqwfJI#;os+lWRB#32PC`c^#h*q%2r}~}|5t#Ud9-J{7FU?$A#XxS?D3-fbH2!uCq{Iu~{(_`^1&nCq zKfX|tGviB9YhAR9wp{}|3OF!%K@M6`k=tGBvBn8Dz+~}cNLs`^qhdt25w)n}1kI>j zt8D~3YJ%=A(C-uKwHCx!^P{*a?e9@ZthLMfvR72zJW~y|Y5^teCM4 zGE;fz+KA>9ZmvU_u^EzNLkHG^I++UlXMvR1wTrD(#g53U)@R0DZR6UZ_IpKDmEtYG z#RE@94QD(w?pKvVwp{}|3U#>=*|&Hgw?4yGU(u6At8zu;WJT0*MRgW%iL>${wl{>v zKQ!80>Cqor84?eTOxjs@i=Fuu*ewS~p!EW*cWT%G4H7hBAH#?d)F;g7I$Y6Nw(0xS zF6f#9=_qfI#+%lh)J~Cn@}?)ZcIxZZ4m)AfdaW4Hm9Q!PVcyV-x538V5a-`e!L=d! zw882|oIeI-vZx(bxvFH7n)c?SZHj?&{0Hx>(Wi=T!x&_ zkn@T@)JBm1+Hop(*a=zd80!PRaE8CUkJyJe7wlZvu~&D+RLMI|lOhzg5v@*-iu>J0 z5bZfRKd@5HS}9LL_;wvghrh6$@3di`#QBs~7A{MHFu%uo#Qx>|#OGx@iASEZQS) zrP}!(dA~F7Qvgk*91w4@Vy`L^cpFh<>3rbq9EdelbT=H>s}-|aQB!f?3|8!)iuD2> zQC1}9w*(A|)Tzy%Is@6FOv*QdwvOm*qz<{QRU=CYND&q_FbS2_>7jBXAvcj8I%7#$ z9ovXzYV4}@es)t`kb17NN`Tbsu1lyuPKqPcMwCk;!-7qNp09+QLK?J_D=9v98_^t4 z8c;Q)?BVSi?6CkHrwF=l$tW6I4jMU0Kubu-7bK&eZvuWoGWb%1uQ0lw>!8(Qb`- z*dbe-b~hxi8P()9E}Fbn_tioDIEyZT=qzgCFD~QG9zh(ovC=a zZ|TJ^MJ8*eZ%gSDA^vq_jaIZLoF}nY@jlIzoBh z+BF&@O4K{3R<#E_--vU;_=a*)v}^bk@C$aV>5fydL;CHgeoP(Ch3?*pPJwhFszxtB zITPCmb^?6Q1f+;`z}q??dnKxWe;4G>p*;xc(C)?RAQQl%Xanrt0Glm9J_p!8PP;a$ z!`VT7cnVt8kQCv(jbJ|qjU%N1sUCnKkTffl5ED*_38(0Eo}*%Gq=61h3V8P?sUSIIF-*O zC-}>!@)+g>*?S^V!4r2O!;9+u>XrM$26*ci{7T??rVEzUg?uGCMA8L~me6exu~*BW zanT6$p{R8ZR(YV>b0D<}qG1s$STsIXJyxfpS13bnL|B8Uphy*&bkxPAic<+}-c(V2 zgxdIodi7K@=2@}M>Zme2qsqOa^EY=|FiOn}%K7|wzh3uq)Y{1p*sCLYij!KE8S&oyz=;D!P<~*C zkD5KHPavNt8^~Mkk?jIMNR~c@_U(s80&@>v=807vwCB-659R?+9#pnuU?XHjt#2cG zb~2)Td4QGsL^T3>((|DD^hUbY5!Dyjp!yM+;%p4&N3Gm!;JGMQOS?w(JJD!w>{;2* z2Tqf@bUy?C`NmciJ*X_nZyC|lY&BPst!gyIue+Z-sjdXJe0J*V-AHsYtID?1uEDIH zTA5#;s)@1#wxM!8w`)`yTV?HO*J!~hS?c69L`keQ^-YrQWpHV}e zpL}PHcx3F2s_aN_84+OZ=DtS|SAS_N_wHzx_nAUaW?1r!Q!qnH%o+*IGb}wIjj+!pqqf@9l4GAf7jiMq-H zJE6czIni@eU`w1D0nWfDsS7lta+0BVD$f z`kVlrf^OWbyrpdf=VF21jcVRpP<2)`Gg}v+235RaK_5qj-BM7=vufTUSFA_R#b>AI;(X|y zKOg7=0xQI+?4oT%&-?j6grVX~ADlxVYF5+(RMj9=ncUw_;6It_fxf%0nW*Os(-qlI;;Ds$Q9;P z%V9rtukOk{-9|LWv0r>cJm*p?&LH!+UwEHOPuza#PS}YiG3uV*FU{WW7g#1CX?Gw> z?M1Wpdr^(Q7wm+BZsjqkg|=v1bO+zoUNll_P9VRHYJKfhy|%q#|9}~4uPP<>s!@m? zQq)}Pd+rrD|L9XVI;V1D&@*Td%{V&sPt65y0$GNm19L}(H> zQ6CR*zC4WjM1x}P9g;O`*BC_pfxvt`z;OUf_@meOp}D}-(u3=#2eax0#+m-5Yih89 zJvjI-Fn#n3_86GgdT__|u!Ie`qI#`#I(ncbNJis+4){ud<$j<;25{>PnqM{-_Sm4&u!CH*gIcG@fF4zY{lonXjH$zbmBygz!{ECNxN(iz zkcR<#ox$lw{quoJ=EL&DVb@tOf?3sHhsAoKN8_-H;#gid7ZyCK795UFE!YFOze93= z_jh3@IEVLne+F;;MK(`xMLFc-z!z{hFxQ~M?Qr0QaX7gz%!bD~^mA1}3bju)8VUTV`GK(;?#Um3IIQ>6oBTf!caZKpUH}%IKRoCRiyGcKA%rM4-M{ zFka2tIbLSUF=(q9@3ZjN5fwq7!p*?0&jHtb1y~Hu|4qXK#H)KjZO1<#|94K4VEW5wT}&zdz~_I zTlza2&gll5WW%}GAb)n89T92A zC*#`>FfAhYch_s_lOfp-*pLUT?gLm=3+$EyIA#kp(Sa@`2kme`6CF6Y0eUCEigWOV z9VDcKgba9}0Nn(9{v*J)0dCJB*}(hP$pMN=-46O4IR8h`8a&$}6G7}F2kSlJDEP8mSlvMBInZr!B+dAg6+XVyRo=e^oGypxN&*L# z-hyrLxX7LfbT1FP?!vcU@IgFmzYFt>T-$LWJK$kQd9{1(Lt}%5T-X=9 zeq`1TFbEt4`m}I$Ao&Yy+5%qtf*AFRm_vcIDLBhTEm+GaANoO#0$-+R9<~sP&cp96 z(83j(h+YYz%}0gwtFR%#A6JltDI2UE53jarjIjvnU7N!m_78pYdg|F3!7kD1w}%d# z6dm%g=sgJ?>Q{U6sDdG=19w9Qj(vGb;3lxW%9hZBai(8! z7kFxV@R9WzV+_64YlR*xT|J_^f**c+0XPK%BDW)Wmj>YB12-cKr~&T57b$%u_j3Z? z5Uj)l_|Z(K-)?Z04bHOBcyB*^yZlC&eMx_Jo}YjG*AayEFjn z^@$qJ0aD9r{YKfrw(P<9Ie>}D17{L_3c-U1$|KwL#QOj_IgF^uF{oZM8j-d}J;X3# zb%3rDMo6s@Qfmb3H@FGH2tVbib?@Z>E9es*^b?xs37zuP7)W@Mj}>Rx#;JvIxCYSC#-Rvtivga7u1i zogLhiJI?YB2@qiOvzyXE+5j&u2)^;nu!%1vm*|c!1$uDU6(=z4+J_jVm;C+;X!FCX z-SUDR1w5h>p^1P#6b|emY6V4zkbaT55=0>)_~-@U>V8A8t4Hu@M)*xJU?-qn-NU+=5CcICLx@0e^uU3c zATtv@sYHHQL~iCqpMLQsW^&^~TNUig0-Z9! z&Mc@I$nbX%0S*;sxnfo;X0>VsyB)y}2^^SEkqsQNTPk?2D{SM8>^87sLIv_avj4GD zy&O9r?RW6;M_3?PC4VGN`-n_m1`9){yDoOX`R^1F+LG_DQ!6fZ8i9$Zh>j0%$o8m1 zo4|ZDAqRwBhKQb#*sC0iJ=j-!Z~^p)W{{Dv2df&Qva!dE^Ju0-j7IgN0pATGrIEF}GqPP| z!JEPGV$lgmE;ftPWOucip1@~&Uf9oyx>>FcBRD%2Y?W3|ihb&n?Mv;SXo0{y!zMwu zPDCs>qMA2)_{-$~n!(KCksq8@Vn>N*-rt4O?J*lKaF>r7)sLfU#yDy{WCYuLMAjod zAy=PTyHYMlQGNw*VB!mzni<}NbVlF17hEJ#9eUq|Ow9roya~|^vPVt$c4Ch#n8OMC zXM(hu!2W~CTb$L>i!*e=toq#oJtoeO*r*PTGk$&1x|CAD3%r2MypTr~+`$V@+yd>e zpmJt`j$2?yRWLs;SPO}U-A@Kf4)TK$`M3!Dmbha7u!0mFb8$tVT?GTz%DbSKSLl=# z>%L;$SFHO6ZH_9_xPi49XyI`~z3~E;No3pOrZq5egGAaidlEM?qVhSAy&L#^H+bTL z8-I_$I<0s^Fnz=wHC+`P)}h1U6Dsy5P_M|L0lmdcJ-v< z4!*4&tFuF+vBGwR{j-7-c|`Beri5y`AY~-&b11Tg)1TQ(Na3iX4V+5ZaxDsN743FyLS5!kqMkY7-7fB-(F(Fbx zhVcZi4T$S8!D<4|c1+M#h>OMqob83b4u*O#szl)1#Ecve7(-$PqSTJ_p0R>iYrkXG zesc>hl9=)Bf}e2zI%E_wKJkQJKJo29Ify5DIZ+3)V+Ai@Re_}NHTCLy)*c+P7i83d{c~vyHeO(dT!7n*4)l1z`nq6!6|6h(dt=dTP6Wb3 zEI8e$?~R3Qm5`aJ%Z&wIHh6Pl0m5*PCs%0m11KwueO2tAiXC1R6Re_V->%r1RU_LG z=q9JoXs7;v2SGSmV5I}Us<4$K-3GmnbaI)HfuNC?T3 z)e$URKon0S_>xAjsv!oOM*R8+4iQv`rV-NSiTwj!hV;bDKk+_KFf9W2AU%<_57=W* zt^Y|ctxiub&G1$O)G~v!^8&{cP|(v0I#+5q?{|jICA-!O^E^4_d7L!+pQceUbpv$D z1kRU9ZHY=AUQ~6a2`3Km-ZTM?-;z@j5<5Vu&(Kygv=u5p6DmK`tZ~saL(Z(1M^7q!FF0`9W~JeUhk(*i4Qfdp8l`Z6 z(uOtNaJo0J!ERuU-(jUh#F`>SAjb|Mb2_Vg!y$5;kO5EH{b2*nav&QcIO_wDu7Ny|0vIS9khdNA5Z~Jp&A-^u zK@2{r6tNE@Jj4i_Ho)G9(5I2V4vx798#2O5iQuFNurA1A=5TUj)pMEIkNxUQcC4hjs43%z_T<+#@H2n#tUw zzdHl9zK0D7%#hrJQLb0a;oO6Js0Tj?>IQQU|BLt}S*`ax;K_s5IphJH3+Rl_19mSu zqqEVzw)zBHlhLfb1ul&u#NOY9{KbhqX27{%fZ=bzo?y@+dt%qYgU-MX%?4}*20Uv| zwbe6vw-v4K<}3pP1-kr*GMBC51JoxZiNgvym9#fDlwPBfHY2i>(P5n(e;phL4t<&# z3@=$T5tg#ofg27MQFi3TL-q~51KDFXJa`PD<1%7j8MTEszJy)_MxGJRd19}Uh4ZNv zh;}RAa|nJt^d{#gx!AzH_#}@Qx$__opJ2&Br=<2p-XrS6<|j_&3mO(3bL@}HFW9s% zXuTIC$qSJ;^jp=5?*l0@;SDEn5Kqv96WBZ_?6FBZH|yju0*O5X3*`cW0W#pM6Rs1y z^$TA*Ll?{kb`;iYMgXyT1#1XGP`JMP@qS_g?6XzHr{bSCUaYNmfa!E0YJFjE z9LN-3khBLh{sApa_OS!eInEgJp83#T=?o;y9LP%rX%k@c7nO&We1Adn!Wvg^BdAQv z5xEIg2^KK-MKBg6WH4t%o~&dAP2_NdwnDc>W+hmG1jxEG>jICAz9;%mZ{Bv9v5W{q zfjyRW|I`J0mE31w$+?-q<(<(-mQQfDg1JVSrtc9vnP=yMEs83pT;N+RI6DO=r9d7Q z)P@yA)e3Y;ZdI(%xxqx388*?R8b;ay}3ntZGr84{*9Y zbWKlGW1gtAJW;b`E1ulnzSTFr{mpND<2(P>M*pb&_nTi`@jLPQmvQ*&kMFcUmTorf z|NiTj*MIlx>;KbNmwfAQ{^5Up`A^?$|McyD`||&P@4oB@-}v=^?!SMp{r%0~zU_NI z>tgqd-tyc%m;g{^M{{|Yrif-y4O)| z{Ij{|MiFMKOg?&f12UXKD6~vOkr3 zzw_xQZ=ZhhnZEb$eEP``KheQ&ecF!0`>pk-Gref9Ju|D^r>;gQB^`1fnS zACGPc{V{IwUzTG%zus`Bz0q$Ee77IMZ~y&=Z8rL&Eu$GeJj&ODKfOoBb@>p--+b+# z=$dD9g!`HKmX$I{_!9F{m_3$ z5B=|bc|87ZvFpEI1tIgDUw+;#?mi0tp@{jzufF5!i+)?o{N@+G_4Vdzzt}GN>W_Oe rzy9M}zxv{f|HDiC@fYK~P3GNi{rwo?|L046<6r+biHVxs;+J0ljM0gj literal 0 HcmV?d00001 diff --git a/data/genomeAnnoHg19test.rda b/data/genomeAnnoHg19test.rda new file mode 100644 index 0000000000000000000000000000000000000000..9937ecc4bc7e6f04a9707b6c2c814d6e679bfd0c GIT binary patch literal 2321 zcmV+s3GVhEiwFP!000001ML|LbX3K4-gn;Hef#nuK*T5kp-O}#yJ2G@q#-{EkVMFj zkAN1efJYEWj6~%d1zH+YLwhu|h@e&hg_Q_`h@6$49;HYR2rXbK z>FmC@*~eq^<7-cO=iHrpXYS1X%$=D#v)QRrbgC&T000gMngBR~P!dN!7$5SQ-A943CrH@e)qCWkt&g zt(?%wi5NLCQcmdQM68^6Oiskf3AqM3xduA920FR%Q)Kv5g)1qe#bEb(vctc#4MsF1VV=PC)KTry zu!PhLd(?}J@FEdDUAy)oY?s{T7SJZvF{qAh7jad4kF8fLg>`Q(GS=jG%~5uT!RC-u zYx6X4MVr9DNm}r*IS3@L_zFypDFxFa=YypuFi=N4iGjBa*jddvTs@>8p4xtnz_XHx zsE=n7xl|h&l6HtJICp_uyE>byn3zXxC|g8rsMtY2@M9CLH}kY`X$dV{olfu1o(H2M zRzZDKJsee&z`WakC9}6?5aZmjn+<+cV4u_-W=qGu&6e-bvh$;B*maxVQZbXtRQD}N zRt;LGQ;q*NMddvBiMnLt2kJMBPjL^2CU6J7PT`Jyzd$p6({jz?j4hh_aWgfI)B0+D zvvHW_yXst?OB~E|)hBswNh{ASyTo%VD)^w)HT;96Y5Z`air0>q!fT@j@LF9VuZ{hR z*T!w(wTWAKZHAH8W`*(E$+P*^^_Tf$t~|iLcN_#R-V7cJ9t5K6hJi22hhdY?e1|=6 zTaT?7)(5-X+=A21n{l?~O?(7q#!L4d!+&htPQZe-L~!H{GdSc{E)}V^TW%j5$_zNViW7BeC;I4Fr$Kc`;+C=wuD6L zi@<7nXhb7D^w+iYi*E+e`*#OHO!XX=0xy%hcg|rjB07)G<1yPP3D# z8xX)aC%@0M<=dFHP3g?v3qNE|XJTyT@G3SdM$2Z!g|b=y_!FCTF_oR&x1Rm&r95`W z$uHT%6ZWu|rfyTgAggM?!ilO6KVwvX`Du^ZTokQ-Up0eM+fH!m=icDdm8-eHhG;JE zb(#xo4dKF%#B<@t2Xf&jU*N*O@6Uyw`6bu%+A6MTZ93PqK7wm%EasZFxVWaR2!8*# zX63ejYX0!It(tdY^7wv@AMvq|82Q){!F*+NnsSkqn+qIsIu@DQ76L%|4*>9i0BgB| z_JNTAG&V9RJTg~-MSq{+gTneYtYto0P%i|{Bl~7w_WtdEZO*OntcX<3BV@@ z>;ZraL-<;mPfm%v*eaPm^8k3pCFzih%HN6ms+%T)P`L=fa{$DD4!8@S0s3SZ$kZ(a zSc%)OzXI@x#pidV16k#rmug=<*%#R{28|ab&C_xuBS^9p*+g)nzL?jy|B~cKin`#h zBKiZ#j>U*RfuIZl+VHU>lB~s2JDNwl1wkC@kMtZE2JmL&TVfWfdmicX4btVPB!qo>&p&r|=$v9H`i2| zD&*H|Gt^KNFW`29GSbZUr;TQtvCLv{XMU=?paL!4)POgh+)<6b|J~C60?d(?kpBh9 zjrBNT9O6ht+oF6GqIK@)QfezM7cZsP?;eyDHF^U|mb>Ha(k&O4X1Yyk_xE8kP|}@2 zcYMmRyOY_~c*=2lqic6#_f+Sb@lj7~>q^hw*l?%dPV02H>{rTlfAaOzm2ZH8Ro#oH4f^`x#l+d7-W&h+{@e78fVn~AsE_4%25#epWCbe<(M8H<3uQ8jB0uiG*}=1}RV38%&;A_Y3h8HbYTwU$eSUp!6O5_|9%4Fra{PmBDinr{JhsAsOe(&@B zUOcsW-HzRv=T^?&)Vt;1_V;A`&KRhX8OV3ype?Oa2$3