[adegenet-commits] r888 - in pkg: R inst/doc inst/doc/Robjects inst/doc/figs man

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Mon May 30 17:23:47 CEST 2011


Author: jombart
Date: 2011-05-30 17:23:44 +0200 (Mon, 30 May 2011)
New Revision: 888

Added:
   pkg/inst/doc/figs/dapc-014.pdf
   pkg/inst/doc/figs/dapc-017.pdf
   pkg/inst/doc/figs/dapc-022.pdf
   pkg/inst/doc/figs/dapc-027.pdf
   pkg/inst/doc/figs/dapc-029.pdf
   pkg/inst/doc/figs/dapc-031.pdf
   pkg/inst/doc/figs/dapc-036.pdf
   pkg/inst/doc/figs/dapc-040.pdf
   pkg/inst/doc/figs/dapc-042.pdf
   pkg/man/dapcGraphics.Rd
Modified:
   pkg/R/dapc.R
   pkg/inst/doc/Robjects/dapc1.RData
   pkg/inst/doc/adegenet-dapc.Rnw
   pkg/inst/doc/adegenet-dapc.pdf
   pkg/inst/doc/figs/dapc-006.pdf
   pkg/inst/doc/figs/dapc-010.pdf
   pkg/inst/doc/figs/dapc-011.pdf
   pkg/inst/doc/figs/dapc-012.pdf
   pkg/inst/doc/figs/dapc-013.pdf
   pkg/inst/doc/figs/dapc-015.pdf
   pkg/inst/doc/figs/dapc-016.pdf
   pkg/inst/doc/figs/dapc-018.pdf
   pkg/inst/doc/figs/dapc-019.pdf
   pkg/inst/doc/figs/dapc-020.pdf
   pkg/inst/doc/figs/dapc-023.pdf
   pkg/inst/doc/figs/dapc-024.pdf
   pkg/inst/doc/figs/dapc-025.pdf
   pkg/inst/doc/figs/dapc-026.pdf
   pkg/inst/doc/figs/dapc-028.pdf
   pkg/inst/doc/figs/dapc-030.pdf
   pkg/inst/doc/figs/dapc-032.pdf
   pkg/inst/doc/figs/dapc-037.pdf
   pkg/inst/doc/figs/dapc-038.pdf
   pkg/inst/doc/figs/dapc-041.pdf
   pkg/inst/doc/figs/dapc-043.pdf
   pkg/man/H3N2.Rd
   pkg/man/dapc.Rd
   pkg/man/find.clusters.Rd
Log:
Added >10 new args to scatter.dapc.
Pkg passes check.
Vignette dapc half corrected.


Modified: pkg/R/dapc.R
===================================================================
--- pkg/R/dapc.R	2011-05-29 20:20:56 UTC (rev 887)
+++ pkg/R/dapc.R	2011-05-30 15:23:44 UTC (rev 888)
@@ -116,6 +116,7 @@
         res$pca.loadings <- as.matrix(U)
         res$pca.cent <- pcaX$cent
         res$pca.norm <- pcaX$norm
+        res$pca.eig <- pcaX$eig
     }
 
     ## optional: get loadings of variables
@@ -348,6 +349,7 @@
         res$pca.loadings <- as.matrix(U)
         res$pca.cent <- glMean(x,alleleAsUnit=FALSE)
         res$pca.norm <- sqrt(glVar(x,alleleAsUnit=FALSE))
+        res$pca.eig <- pcaX$eig
     }
 
     ## optional: get loadings of variables
@@ -393,7 +395,7 @@
     ## vectors
     TABDIM <- 4
     if(!is.null(x$pca.loadings)){
-        TABDIM <- TABDIM + 2
+        TABDIM <- TABDIM + 3
     }
     sumry <- array("", c(TABDIM, 3), list(1:TABDIM, c("vector", "length", "content")))
     sumry[1, ] <- c('$eig', length(x$eig),  'eigenvalues')
@@ -403,6 +405,7 @@
     if(!is.null(x$pca.loadings)){
         sumry[5, ] <- c('$pca.cent', length(x$pca.cent), 'centring vector of PCA')
         sumry[6, ] <- c('$pca.norm', length(x$pca.norm), 'scaling vector of PCA')
+        sumry[7, ] <- c('$pca.eig', length(x$pca.eig), 'eigenvalues of PCA')
     }
     class(sumry) <- "table"
     print(sumry)
@@ -479,17 +482,22 @@
 ##############
 ## scatter.dapc
 ##############
-scatter.dapc <- function(x, xax=1, yax=2, grp=NULL, col=rainbow(length(levels(x$grp))), pch=20, posi="bottomleft", bg="grey", ratio=0.3,
-                         mstree=FALSE, lwd=1, lty=1, segcol="black",
-                         cstar = 1, cellipse = 1.5, axesell = TRUE, label = levels(x$grp), clabel = 1, xlim = NULL, ylim = NULL,
-                         grid = TRUE, addaxes = TRUE, origin = c(0,0), include.origin = TRUE, sub = "", csub = 1, possub = "bottomleft",
-                         posleg="topright", cleg=1, cgrid = 1, pixmap = NULL, contour = NULL, area = NULL, ...){
+scatter.dapc <- function(x, xax=1, yax=2, grp=x$grp, col=rainbow(length(levels(grp))), pch=20, bg="lightgrey", solid=.7,
+                         scree.da=TRUE, scree.pca=FALSE, posi.da="bottomright", posi.pca="bottomleft", bg.inset="white",
+                         ratio.da=.25, ratio.pca=.25, inset.da=0.02, inset.pca=0.02, inset.solid=.5,
+                         onedim.filled=TRUE, mstree=FALSE, lwd=1, lty=1, segcol="black",
+                         legend=FALSE, posi.leg="topright", cleg=1, txt.leg=levels(grp),
+                         cstar = 1, cellipse = 1.5, axesell = FALSE, label = levels(grp), clabel = 1, xlim = NULL, ylim = NULL,
+                         grid = FALSE, addaxes = TRUE, origin = c(0,0), include.origin = TRUE, sub = "", csub = 1, possub = "bottomleft",
+                         cgrid = 1, pixmap = NULL, contour = NULL, area = NULL, ...){
     if(!require(ade4, quiet=TRUE)) stop("ade4 library is required.")
     ONEDIM <- xax==yax | ncol(x$ind.coord)==1
 
     ## recycle color and pch
-    col <- rep(col, length(levels(x$grp)))
-    pch <- rep(pch, length(levels(x$grp)))
+    col <- rep(col, length(levels(grp)))
+    pch <- rep(pch, length(levels(grp)))
+    col <- transp(col, solid)
+    bg.inset <- transp(bg.inset, inset.solid)
 
     ## handle grp
     if(is.null(grp)){
@@ -501,7 +509,7 @@
         opar <- par(mar = par("mar"))
         par(mar = c(0.1, 0.1, 0.1, 0.1), bg=bg)
         on.exit(par(opar))
-                axes <- c(xax,yax)
+        axes <- c(xax,yax)
         ## basic empty plot
         ## s.label(x$ind.coord[,axes], clab=0, cpoint=0, grid=FALSE, addaxes = FALSE, cgrid = 1, include.origin = FALSE, ...)
         s.class(x$ind.coord[,axes], fac=grp, col=col, cpoint=0, cstar = cstar, cellipse = cellipse, axesell = axesell, label = label,
@@ -524,7 +532,7 @@
 
         ## add minimum spanning tree if needed
         if(mstree && require(ade4)){
-            meanposi <- apply(x$tab,2, tapply, x$grp, mean)
+            meanposi <- apply(x$tab,2, tapply, grp, mean)
             D <- dist(meanposi)^2
             tre <- mstree(D)
             x0 <- x$grp.coord[tre[,1], axes[1]]
@@ -534,10 +542,8 @@
             segments(x0, y0, x1, y1, lwd=lwd, lty=lty, col=segcol)
         }
 
-        if(ratio>0.001) {
-            add.scatter.eig(x$eig, ncol(x$loadings), axes[1], axes[2], posi=posi, ratio=ratio, csub=csub)
-        }
     } else {
+
         ## get plotted axis
         if(ncol(x$ind.coord)==1) {
             pcLab <- 1
@@ -551,12 +557,52 @@
         par(bg=bg)
         plot(allx, ally, type="n", xlab=paste("Discriminant function", pcLab), ylab="Density")
         for(i in 1:length(ldens)){
-            lines(ldens[[i]]$x,ldens[[i]]$y, col=col[i], lwd=2) # add lines
+            if(!onedim.filled) {
+                lines(ldens[[i]]$x,ldens[[i]]$y, col=col[i], lwd=2) # add lines
+            } else {
+                polygon(c(ldens[[i]]$x,rev(ldens[[i]]$x)),c(ldens[[i]]$y,rep(0,length(ldens[[i]]$x))), col=col[i], lwd=2, border=col[i]) # add lines
+            }
             points(x=x$ind.coord[grp==levels(grp)[i],pcLab], y=rep(0, sum(grp==levels(grp)[i])), pch="|", col=col[i]) # add points for indiv
         }
+    }
+
+    ## ADD INSETS ##
+    ## group legend
+    if(legend){
         ## add a legend
-        legend(posleg, lty=1, col=col, legend=levels(grp), cex=cleg)
+        legend(posi.leg, fill=col, legend=txt.leg, cex=cleg, bg=bg.inset)
     }
+
+    ## eigenvalues discriminant analysis
+    if(scree.da && ratio.da>.01) {
+        inset <- function(){
+            myCol <- rep("white", length(x$eig))
+            myCol[1:x$n.da] <- "grey"
+            myCol[c(xax, yax)] <- "black"
+            myCol <- transp(myCol, inset.solid)
+            barplot(x$eig, col=myCol, xaxt="n", yaxt="n", ylim=c(0, x$eig[1]*1.1))
+            mtext(side=3, "DA eigenvalues", line=-1.2, adj=.8)
+            box()
+        }
+
+        add.scatter(inset(), posi=posi.da, ratio=ratio.da, bg=bg.inset, inset=inset.da)
+        ##add.scatter.eig(x$eig, ncol(x$loadings), axes[1], axes[2], posi=posi, ratio=ratio, csub=csub) # does not allow for bg
+    }
+
+    ## eigenvalues PCA
+    if(scree.pca && !is.null(x$pca.eig) && ratio.pca>.01) {
+        inset <- function(){
+            temp <- 100* cumsum(x$pca.eig) / sum(x$pca.eig)
+            myCol <- rep(c("black","grey"), c(x$n.pca, length(x$pca.eig)))
+            myCol <- transp(myCol, inset.solid)
+            plot(temp, col=myCol, ylim=c(0,115),
+                 type="h", xaxt="n", yaxt="n", xlab="", ylab="", lwd=2)
+            mtext(side=3, "PCA eigenvalues", line=-1.2, adj=.1)
+        }
+        add.scatter(inset(), posi=posi.pca, ratio=ratio.pca, bg=bg.inset, inset=inset.pca)
+    }
+
+
     return(invisible(match.call()))
 } # end scatter.dapc
 
@@ -629,7 +675,7 @@
 ## compoplot
 ############
 compoplot <- function(x, only.grp=NULL, subset=NULL, new.pred=NULL, col=NULL, lab=NULL,
-                      legend=TRUE, leg.txt=NULL, ncol=4, posi=NULL, cleg=.8, bg=transp("white"), ...){
+                      legend=TRUE, txt.leg=NULL, ncol=4, posi=NULL, cleg=.8, bg=transp("white"), ...){
     if(!require(ade4, quiet=TRUE)) stop("ade4 library is required.")
     if(!inherits(x, "dapc")) stop("x is not a dapc object")
 
@@ -655,9 +701,9 @@
         posi <- list(x=0, y=-.01)
     }
 
-    ## leg.txt
-    if(is.null(leg.txt)){
-        leg.txt <- levels(x$grp)
+    ## txt.leg
+    if(is.null(txt.leg)){
+        txt.leg <- levels(x$grp)
     }
 
     ## HANDLE DATA FROM PREDICT.DAPC ##
@@ -693,7 +739,7 @@
     if(legend){
         oxpd <- par("xpd")
         par(xpd=TRUE)
-        legend(posi, fill=col, leg=leg.txt, cex=cleg, ncol=ncol, bg=bg)
+        legend(posi, fill=col, leg=txt.leg, cex=cleg, ncol=ncol, bg=bg)
         on.exit(par(xpd=oxpd))
     }
 

Modified: pkg/inst/doc/Robjects/dapc1.RData
===================================================================
(Binary files differ)

Modified: pkg/inst/doc/adegenet-dapc.Rnw
===================================================================
--- pkg/inst/doc/adegenet-dapc.Rnw	2011-05-29 20:20:56 UTC (rev 887)
+++ pkg/inst/doc/adegenet-dapc.Rnw	2011-05-30 15:23:44 UTC (rev 888)
@@ -364,25 +364,22 @@
 different symbols for the groups.
 
 <<fig=TRUE>>=
-scatter(dapc1, posi="bottomright", grid=FALSE, bg="white", pch=17:22)
+scatter(dapc1, posi.da="bottomright", bg="white", pch=17:22)
 @
 
-\noindent This is still not satisfying: we need to define other colors more visible over a white
+\noindent This is still not entirely satisfying: we need to define other colors more visible over a white
 background, and we can remove the segments linking the points to their ellipses:
 <<fig=TRUE>>=
 myCol <- c("darkblue","purple","green","orange","red","blue")
-scatter(dapc1, posi="bottomright", grid=FALSE, bg="white", pch=17:22, cstar=0, axesel=FALSE, lwd=2, col=myCol)
+scatter(dapc1, posi.da="bottomright",  bg="white", pch=17:22, cstar=0, col=myCol, scree.pca=TRUE, posi.pca="bottomleft")
 @
 
 \noindent Another possibility is remove the labels within the ellipses and add a legend to the
 plot. We also use the same symbol for all individuals, but use bigger dots and transparent colours
 to have a better feel for the density of individuals on the factorial plane.
-We also add a customized barplot of eigenvalues in inset:
 <<fig=TRUE>>=
-scatter(dapc1, ratio=0, grid=FALSE, bg="white", pch=20,  cell=0, cstar=0, lwd=2, col=transp(myCol), cex=3, clab=0)
-par(xpd=TRUE)
-legend("topright", pch=20, cex=1, col=transp(myCol), legend=paste("Cluster", 1:6), pt.cex=3, bg=transp("white"))
-add.scatter.eig(dapc1$eig, 5,1,2, posi="bottomright", inset=.03, csub=1)
+scatter(dapc1, scree.da=FALSE, bg="white", pch=20,  cell=0, cstar=0, col=transp(myCol),
+        cex=3,clab=0, leg=TRUE, txt.leg=paste("Cluster",1:6))
 @
 
 We can also add a minimum spanning tree based on the (squared) distances between populations in the
@@ -390,20 +387,21 @@
 This allows one to bear in mind the actual proximities between populations inside the entire space, which are not always
 well represented in susbsets of discriminant functions of lesser rank.
 We also indicate the centre of each group with crosses.
-Lastly, we remove the DAPC eigenvalues, not very useful in this case, and replace them by a graph of
-PCA eigenvalues retained in dimension-reduction step (retained eigenvalues in black).
-<<>>=
-pca.eig <- dudi.pca(scaleGen(x, scale=FALSE), scannf=FALSE,nf=1)$eig
-temp <- 100*cumsum(pca.eig)/sum(pca.eig)
-@
+Lastly, we remove the DAPC eigenvalues, not very useful in this case, and replace them manually by a graph of
+PCA eigenvalues retained in dimension-reduction step (retained eigenvalues in black, similar to
+using \texttt{scree.pca=TRUE}).
 <<fig=TRUE>>=
-scatter(dapc1, ratio=0, grid=FALSE, bg="white", pch=20,  cell=0, cstar=0, lwd=2, col=transp(myCol), cex=3, clab=0, mstree=TRUE)
+scatter(dapc1, ratio.pca=0.3, bg="white", pch=20,  cell=0, cstar=0, col=transp(myCol),
+        cex=3, clab=0, mstree=TRUE, scree.da=FALSE,
+        posi.pca="bottomright", leg=TRUE, txt.leg=paste("Cluster",1:6))
+
 par(xpd=TRUE)
-legend("topright", pch=20, cex=1, col=transp(myCol), legend=paste("Cluster", 1:6), pt.cex=3, bg=transp("white"))
 points(dapc1$grp.coord[,1], dapc1$grp.coord[,2], pch=4, cex=3, lwd=8, col="black")
 points(dapc1$grp.coord[,1], dapc1$grp.coord[,2], pch=4, cex=3, lwd=2, col=myCol)
 
 myInset <- function(){
+    temp <- dapc1$pca.eig
+    temp <- 100* cumsum(temp)/sum(temp)
     plot(temp, col=rep(c("black","lightgrey"), c(dapc1$n.pca,1000)), ylim=c(0,100),
          xlab="PCA axis", ylab="Cumulated variance (%)", cex=1, pch=20, type="h", lwd=2)
 }
@@ -417,7 +415,7 @@
 This is achieved by plotting the densities of individuals on a given discriminant function with
 different colors for different groups:
 <<fig=TRUE>>=
-scatter(dapc1,1,1, col=myCol, bg="white")
+scatter(dapc1,1,1, col=myCol, bg="white", scree.da=FALSE, legend=TRUE, solid=.4)
 @
 
 
@@ -449,7 +447,7 @@
 second one shows the originality of 2006 strains.
 <<fig=TRUE>>=
 myPal <- colorRampPalette(c("blue","gold","red"))
-scatter(dapc.flu, col=transp(myPal(6)), ratio=0, cell=0, cex=2, bg="white",cstar=0)
+scatter(dapc.flu, col=transp(myPal(6)), scree.da=FALSE, cell=0, cex=2, bg="white",cstar=0)
 @
 
 We can assess which alleles most highlight the originality of 2006 using \texttt{loadingplot}:
@@ -754,16 +752,15 @@
 to groups; \texttt{ind.scores} contains the coordinates of the new individuals on the discriminant
 functions; \texttt{posterior} contains the posterior membership probabilities.
 We can visualize the information by different ways.
-First, we can represent the new individuals using a scatterplot, and see :
+First, we can represent the new individuals using a scatterplot:
 <<fig=TRUE>>=
 col <- rainbow(length(levels(pop(x))))
 col.points <- transp(col[as.integer(pop(x))],.2)
-scatter(dapc4, col=col, bg="white", ratio=0, grid=FALSE, pch="", cstar=0, axesel=FALSE, clab=0, lwd=3, xlim=c(-10,10))
+scatter(dapc4, col=col, bg="white", scree.da=0, grid=FALSE, pch="", cstar=0, clab=0, xlim=c(-10,10), legend=TRUE)
 par(xpd=TRUE)
 points(dapc4$ind.coord[,1], dapc4$ind.coord[,2], pch=20, col=col.points, cex=5)
 col.sup <- col[as.integer(pop(x.sup))]
 points(pred.sup$ind.scores[,1], pred.sup$ind.scores[,2], pch=15, col=transp(col.sup,.7), cex=2)
-legend("bottomright", fill=col, leg=levels(pop(x)), ncol=2, cex=.7, bg=transp("white"))
 add.scatter.eig(dapc4$eig,15,1,2, posi="topright", inset=.02)
 @
 

Modified: pkg/inst/doc/adegenet-dapc.pdf
===================================================================
--- pkg/inst/doc/adegenet-dapc.pdf	2011-05-29 20:20:56 UTC (rev 887)
+++ pkg/inst/doc/adegenet-dapc.pdf	2011-05-30 15:23:44 UTC (rev 888)
@@ -76,7 +76,7 @@
 << /S /GoTo /D (section.4) >>
 endobj
 52 0 obj
-(Ensuring stability of DAPC results)
+(On the stability of group membership probabilities)
 endobj
 53 0 obj
 << /S /GoTo /D (subsection.4.1) >>
@@ -112,20 +112,21 @@
 << /S /GoTo /D [74 0 R  /Fit ] >>
 endobj
 79 0 obj <<
-/Length 1093      
+/Length 1101      
 /Filter /FlateDecode
 >>
 stream
-xÚ…VKo¤8¾çWpiq°±}Ì&“‘F)µ´‡ìzºéú±@g”¿õ°yt2»ÀàªrÕWßg\$û¤H>ßÿóüsusû¨ËDVBI£“Õ.‘¥¥«+(½JVÛä9½Ëò²épÉàv‚[×ÀmÝâç"ÝÁøԱɌq®ßÕÇG´=fªJ6º‹[¸½¡5¹ð$†ßñð‰b %FkÎèW›}_}I¤•tI®¤ðð¤<ï1“Ã9Ë•¡8èZóÊ=çúwaŠ‡LYÊáé^%¯u¡`ôÙã
-€Œ[ ãðZp´f²­Ñ¸Ž+
-Ámh^•Œ^ìD	·®‚íU‘H(Â…ö¹´¥Ð•NòR§
-û­^°?Ô
-H*ýr:dʍ3Í D^8i ¡R”Uˆóu¦oì¨<˜þÆŒ%]àúŽ)·ÞÚÀᝅpÖD’@váЭCˆßŪf±r)•pÆÃÀ[9«¤M_êKDzÀ;Ï -ºS¦<Ûlq&8­ù1D¼&êhrGq\Ñçs¸Ú·‰
-0iÒáeZóaÎñh·¦ì F?œ,áY at sýR´m™ú«ª|zÒ+W¤O]ÔÌéi–‘¼ZÜS=Û!Ï3”#tûutÏߟCG¶ß>ß5çÍJžeúüX!èz¥J:`B4¶s‚(e„2îJ,¦µ£N,(+¡µö±ê
-–õ33Üš}\8m•¨
-½÷÷ÅÉT]UÅåò‰íÇ1⚬N¿ñ×>@¾Ì_˜É,Xý×¢å{HÈzã"‡:.~¢Æn§)\ŒHÖOYžxØÙGÚa¼ÝÛäu$9ÐkP“ªk~Ð"Œe±qÏt¢íŒSÜ`›nÚ £žÄ×õ¼yhg˜ Sl¶§wrmx³¢(ü3€±A&ÑsG­15zY£Ô[žA°“ìÞøýŸËR‹PľÐË+~þ°ôíÌŸÐ+ëeúW%bBªH¡R@Ãnö"œæú!þ/~iª Ÿ(½ØK¥PÎDêïêÇ°—‰Ð´ý°n¶úþ1YüsT1â,‰qƒœ°!ÂÀÔ†Sc{±·¥Ÿé}ê¹ôVÈR}ã™2Ÿü±­sWÙ•J’nâ&=2¡TmâkW·óžÆ}°²:‡˜b‹lŽê­¡zZoŒÙO7‹þÈ=ð@kŸ~
-äî‚é:€ùš7´©#Vt4ÁBà!&Øl‚ªž¶y¡>\‰:	Ýê¦ÝáxQoY‡Fú´¿Ä=ó…=×=?ã¿£Saëp”h¢°†¨ °G0T6ÿ@è¬Ä‘ºšiò³ìG’Œ²
-¿rrUŒ‰¤ÒñH¢ÿ\¶ÀÂfü™G9·=©a¾£Þ>:8äx«,	Ik¡aѼ„ã—õ:ž¸æŸV7ÿ°ø’
+xÚ…VIoÛ:¾çWè(5#nuL“¦@Aa ‡¼\[vŒz«$§ð¿ïlÔ’¥ï ‰"g†3ß|3džl’<ù|•ÿÏ÷ãüêúÞÙD—Êhï’ù:Ñ6(ʤÐ^ÙÊ$óUò˜Þd3›ë´;gð:«ÙÂk±Ãé<]ÃøØ°ÈŒq­]’ÔÇ”=d¦L;º‰“;x]PšTxͯyø@6P­mO¨Ï.û1ÿ’è LѪҁý¼EOö§lf<ÙAÕšwnÙ×ÿrŸße¦ náWó^gò vA
+î È„	2•W¥Üh«ÅªÎ|žnêC݉ôÇ¢RÆôÒŒ*¯<9Ë›<Ñà»÷ågÚWª
+!™Y§‚ó¬7<Jì”ðürÜg&ô+
+­ 2•
+±Ê–bçëE/¬hsýÀcƒcM¨¾"Èõ½·IPUQ9ÀÅ\ô*>r¼Cäºf!™êÞ³F¶fZ|…‘«"f°òUê"}ÞR:$•]‡o^A64ÇÌT,³ÂQZð§‹x
+Œ%öÐâš&q\ÒôIžÝe ,ú´{ö¼S;Ê-È;ðƒÑŸHA[øæÜj )Êî˜ñà«)«ô\7!OšX*/¸N«DlxˆÛå„ÛÅÙ²Ò;Ã*„lß`ùÜòü£dDC&L¾}¾"jŽ“•<êôèqa ê‹Â §¢q1&ˆ1^Hs,LÔ‰×É„¶TÎQ>F½Ä°~ežS³‰›§£ÊÜMÁ}?8šÑAp3þÄôãñ“$;ïÒo<Û
+äëÁüƒQ™‰Ô¿6µ¯!U@ *ŸÐ7Ù×qó#%v5,áfD²vðòÈÃ-‘½§Ú[_­•ýJU0©šíOÚ„±Ì§ n˜NXdââ„Áü’X(
+’ê¯i?`‡ÕL‡£Èl( P
+é¶ãﲯž–ïzè´SôŽ~&5‰Õ+ÖpØWÞ…u~Ÿ§åÈqtÚ~žqZì¯D”VÕ[ˆ|Ï‚GiëÙÙMP f×É2ÇVÿð¿øˆÃX>±Zü¸æZiWFö¯Åჴ3%ðôûJµtûöz*XìëoäGß#l3¸ôN†qi Ókï« |ÑŸpÏ9ýÚ18¦Œ&ŽqI<Võû·
+Ÿ~Â[…q¹âoSïú£Õƒ õÛ(žüUmÕ\´ÒlÅä[€@Æ¥_…鍈.ÖçجbGºFãGÁe»ŒY{ɵØY¬sƒ;èž³X.’±fhça>ËA±=ÇÖùÄš‹V¾ÿt6‘Чy*vq¡%·ãƒ ǹ@:a^J¶T¶Ô'.óÕn¾œú|^эŒy× Ç)ê/‡77ü=Ç›cïèŒûF½O(_Xp«
+ô7ˆs¼•¶jÒïï\«ªÂT·Î)çñª¾¢rñŽ7Öø4¿ú¬\
 endstream
 endobj
 74 0 obj <<
@@ -164,23 +165,24 @@
 /D [74 0 R /XYZ 133.768 667.198 null]
 >> endobj
 78 0 obj <<
-/Font << /F43 82 0 R /F48 83 0 R /F20 84 0 R /F52 85 0 R /F57 86 0 R /F62 87 0 R /F64 88 0 R /F8 89 0 R >>
+/Font << /F43 82 0 R /F48 83 0 R /F20 84 0 R /F53 85 0 R /F58 86 0 R /F63 87 0 R /F65 88 0 R /F8 89 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
 114 0 obj <<
-/Length 940       
+/Length 960       
 /Filter /FlateDecode
 >>
 stream
-xÚíXKoÛ0¾÷Wøhìêéȧ¡ëkÛiRìPìà¦Ij /8N‹î׏¤$ÇIœ¦I´rplYi}$?’aÁ0`Áõ	s÷¯Ý“Ó+î©Rt—2é¤&Hu'RÝûà6<ŸF<œD’‡U¿~šGº?N8bA9ìïkØaA–d©HQ bÁ“Œw¬(Å™Ðáw!ªiÓ(–,¼‡§\½ª°ÊP¸ÿÎà6)ËD(·ê4
-•pœL© æ W§NoRA9gB†¿ò
-F*Ÿä#¸õ×Õž…IkÆð¦²l×í+?‚°µcò”§Tÿv§AcoӬ™ÍØ·¶Exψó~†`e#ÂÞÈÙyNžTÎíkzSÝq)|X´³bRPšiø R7pæÃ娍ۃ«–WEv4nqí@< ÛxÙ¯ó±X
-™0•­z™8zÙ¡^†DAPê”ÂA	tK)Ù³gÞóÐö6@•L}Zà^ZÒª:Té@ý6D'|²ÈŽóI$LøŒ#¦uÙ¢uyIŽLÏ8÷àçÝ»ÒE]>BNœ
-ÕÕ=vˆÁKa’Y? âí`·fÞÂwÆ“ñÝžaê•xÆ»
-¶«É¨ÆÐÈš¡ŠílI˜{B"ŒàšɽHd*Fú}Ù!DæE‰l›ûd{Æœ<Ùn";TOd綠@ÿ#”—•}ÌvöóܒѼGî\—3W7L«BëN½;Þë€q Œ‹CSK7ê_€ˆ»jÔU¼ÇHkËú8‘ߍ<y½M)gচþKªhƒÓÅ;{Øy-€i@½?€Ãrº ö¶yWqó]MÏ­Gñ-.Øù.(Øh”M¤—ˆÙÜUïåZ¥šSrºÒ–0‡ÍâÀ¦Õl;Î`L‘n\-â…Žª
-`¹âF5£Yí+U3QþF;ö—ÅNnûz~¢Âìîj¢!õ¾‹™q׆[`¡T̖Ŷ8¹“íÖÙíTTö“„Uk¢–é~ÎÐjw½'õ¨f¼™¯ÅGõà?ôôŠóÜ©I˜¬[¾ÜÕI:iêçc*æeÛ©µâŸ¶iµÀ¾%¬1‰Pzµ„Õ6ònV[opÇE”ûãeSO‰àÙ†W³/ñÇÿ‰CEâf¸i”-)^ö7çJúX—nKÉ÷K},Lw‡š\­³êi®U¢‡ö‰‰Ä¤Êÿ
-Ö\|Ù=ù$
-r&
+xÚíXMoÚ@½çWøhìOU›´i{iUõõ`ˆ¡– #cÑ_ß™Ù]cÀ„@*%‘8íÎxß¼y3óÆó®/˜=ì_¼ûœp«HªXxý‘Ç¥Œzqâź	©½þwë_–÷gä~7W‹àwÿÛCÌ«Æž¹øy
+{ÜK£41d^(x”òž1Ń0Úÿ
+6„_W`­BÉü;¸ZÂ1¬ã»ïônC³Tør¯Ï¤å–“*å…üêØúÀ*8çLHÿgVÃ]ÎgÙNù¶»„§~„š1<©4=tzÂÈ×`lk™<æ±Õ==ÐÐÁÛ«°aÅ0æ&¶ïh…8ÏàgQN„?œØ8/ˆIÕÂ<¦'ŇÂ÷@D7C
+NS
+DîF6|8]bp‡p4Öá¨)®àƒîÛKÜZOØNœí§q,”BFL¥›,g–Ê2
+‚R· J‹PJéÏm<³¡ƒv¸ªdêÍ÷ؐ.PÕ) Jê—2=ÿÁ ;ÍfHüÞ¹4m²È¤Ë*"2]ã»?î½}VÙ¬Ë&hš3©º9ÇÜbòRšdï·¨„x>Ø] %ÏѻĉéÝ®aV¸ÆÁŽÚ5bÔ`˜ÈF¡ŠýjE˜;A"Œà˜“È=*d*‰tóÒS„ÌEž…l}Ò#sNž…찐ª²KÓP ?§åßu'A`_¡²}øqiÄh1$:7íÁÜö
+e½Ó(`ß©ÓÇ{0€qq
+bjMCþ
+H¸ëV_eÁ»´6ª/²Áĉ7È[I5'5ò·\KEœV(^˜q`ï© Æ- õñ Ž«rIêmê,ŽšâäA ›W[¡(Vâ;(Ø{•ì?l”)¤ßm‡ E³víTJ*•Uä]QãÎseÆá6qd†-ü¥mÿçfÄ€šhƒ™WÛzöõ¼5k@ÜÆLð§.ò0Ä<e ãȁS7¡ª]UáçäëÎ(3›º~ O’ØjLß¹œ›»)ÎÚá]ZÓ©á~(³¶í83}‰ŽªÜÊ^AðvVuÇœN’è#uJµËåÍb+™,9¨eâmrÅIÄd³?ÌlSÕ #Çî}H=[Yu­Z+þfÛ–ÎÛï&I$”ÞìwµIÓ›Í}:¥Ñbi…‹
+i>]ÿ@UceR´½[/îñÇýãCåN¶q¶%åËÑéf©¤ÏMì¾´”üÈ´Ôç.öpªÉͦ¬y͵Š”à°×b"Jbåþ3kþÔ¿øƒ}é
 endstream
 endobj
 113 0 obj <<
@@ -279,7 +281,7 @@
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [132.772 459.039 325.706 469.838]
+/Rect [132.772 459.039 405.356 469.838]
 /A << /S /GoTo /D (section.4) >>
 >> endobj
 107 0 obj <<
@@ -324,38 +326,42 @@
 /D [113 0 R /XYZ 133.768 647.382 null]
 >> endobj
 112 0 obj <<
-/Font << /F80 116 0 R /F70 118 0 R /F8 89 0 R /F87 119 0 R /F11 120 0 R >>
+/Font << /F81 116 0 R /F71 118 0 R /F8 89 0 R /F88 119 0 R /F11 120 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
 123 0 obj <<
-/Length 3013      
+/Length 3111      
 /Filter /FlateDecode
 >>
 stream
-xÚ½ZKsãƾï¯àÍPÅÄb€Á Ø*$%väªØ)Ge§*Î"A‰YPråõ¯O?ZÉΖ€yôÌôóë&‹ûE²øæM"Ï«Û7o¿.“…±qf]º¸Ý,L–Å…+./â4Ë·ëÅ¿"s±4&Í£›µ™‰Žðrè.–Y­O+üÚvÔ÷ïÛo™¢‰«<'ŠÉb™fq)”bÆälôC
-Ç-üëZ|Ý52QÅ•KÌ6eœ•†çß´i}¸H‹¨=-
-÷µ¾µ÷K›eÑ=ö·øzVØšFkòi4œ¿¥~øüÈý'mT2{ì<í”ÍÎ]Tð•mx`ýïÄ—z…“hƒÜ‰k5;!ÐHc×òš?'ÆâŠëáÀ:9q‘OÞ$a\ô!<X^$º+!Qßíhg´ì¾;IÏî
-®Šjé Mµ8&SϪÛ#{ït7ž³];Ðë6ü¬qþNO×HïÏIžÈ$”w³\	›Vy\æŽIÇ«yH±pqUd%ŽÈãÔ9`Bl+¯‡gúacëªE0f²£s²i›¤x‰n	‹!Ý?Íœa™e9|d")÷š£X”Î…W´¿ã$Ï“ÍcgóîÜIʸJ½,Þ½{7ǐ,IuŒ8-AP)Öøn¢§ú
-聐ꃊçøWÁ³z~>‘!ó9Gð(¢®Ws}¦>Ñz¿oHw~aÚH`¡öÒŒ;¢Ü¨Ýóu^‹enãÂرíéŠY!.礶ڬ¹uËl€—Òƒ'a£a™è¯®õ¤¾kðB_2W»òD
-,+ÒÑÒä*÷ÌìRôN§•÷¶S"¸«ÝGÙ"û":Šk8x
-§˜ñ8<˜V,/BŠDPD[u¡Ø_Ó9ÚûžXLMÛнƒˆ;è¨v=3 ­;)™Âœëä£]óª…&õB‹ÔBÖÝwÕ‘bØ»¸Ë¡ç`†w´`s¦*`ùUt:Üôc-%K
-zxy£‹‰FðE#,hÄ-RD¿þHÊë
-þãEiI+lÂ2l˜ìÓVìx9Õeê$K¬yº1ŒŒLæ“;"bk2•zŽ؁¢(œWíƇ"lÙ 
-«f‹abæ$v œKß‡åÄàƒ†ã÷}£B…Öó(Ž­+aé—¥÷.	FúXÙò÷štçS ñNÆöÍV;ÑÙÞPOÇ‚ª¬ǁˋ¥ƒ0O˜ YÀ>l­)³3Z­NÒ»YáQ^|=Jw½f3¸‰rs„PÄ>¨”¢uÏ‹l幑Քe¡r8A"ºš˜
-~Že|`®,GGÞL1‘ß$*:pøÖ˜‰§.*R%Ñ;òθźå¾@8•
-NŽô­¹ó49Eî"a±FvÉŒWÁ:xùÝ÷8ôÇcHtF/öÂs
-ÔïX!ªØ ©‰ó$4££7¹×ÌІ»\ѺEô>JERáætTR‘£Øn­i™º¸'Ô¿^vj úÃ#}‰ð“ª›†ô–ÛG.Ï0`­˜9/Ú9nÄÛ9Rè5ˆ=Ž<bs²ÓÎy’%ƒž$ " È&ˆüó¨ lŠJ*«³¾Õü±WYÓùQÙMAžI ½MŽö#sñò‡óõ!Ù1Y ¥dæö‡(cç¦hÔá«™ý™"6¹gÈÕ­\ÒËûÉã~àüsPÒ8XÏèØŸf”ÄE•~ö
-‘¦ ý¬(Ǻ}`AC dd€‘"Ëö>Bgýè½u- –³중
-mi´tü]Uˆ,h+y Ò¼îö[Ú nR×%ûqŠ×¨õBOlÉ^_2³±¬èYüü,øÂkvQd†kå“WpÙŽCÏÍáFºKn{‹ý
-ÚþÿàýYp•(ª	®KþrƒüáÖa©,sPÔ
-Ü»hëP•ÆÖV³) “,±´N²g‚öå#óîwݝ*| X²‚ƒB[Á¤eFî1©ìËK(RäÝàôÔîDÞïG®”¶CB:–)jjÄí“ÀpÄòr@™‰{ax~:À³ßs °‰Sô¾ê< ,sP¯oÓ”º.IÅp´cô¨A`ÿ~œñ3ˆ½r/8¾âó;bÜ$ÆÇEã
-·í•ÛÃÆ`7“rƒ	@XyÁOfŸ{ÿï -+Q1Ò÷,µq^šI¹	5¢y/vŒ@JüƒO!&pÍV¡$ÃËMh´Q8]pÜ,§Š£ìu½¯èÁºçoÝ¢ÕVv ŸiWª/R :ãAUALðL­x	ªG·_{ÆÐ¥è@jŸh1gæÂÞ"³±£*ÌëÒFÄeAΘr°œ¤ÍaϬå+PS€¶kl©Áo•_¿j=ÇO$¤|£©O[áäÃvØí$í9ˆTâ¡Ô;T¦¸Ô(
-ÊÆî¨vL	#j“ߦtC>'k@³…–¡"úök[†«¥I§©
-5¶u,Z³›fk3Õé¥R	ŠÔéÿY¤—þ,s¹GÏòzä“…¸ávR¬ÿ"¶â#	s@ÂZÿÀm¡ãåÉÏ3ç‚ØãØÙ7Z^n˜5ËÜ&£RÔPÊù’ËGªŸýú »&ܳ!Ìñ½è/'ÏiáÞñyòæs DH•–v)4uÇ¡>âââØ À_k|È™¿éPÑ8ñVR¥ÅC$q^@Äù³J؍윗Æ0`RfzXbî%Lcï9=váoÕˆ{£Y0’ó5ü@)Ytk(×ðN†ôläIm[Ÿ1¼Ÿ+{7¼¤òB­å¼¯¨‡MF;®c°kÌ©–c!œyß¼«!ÇC³™ò14ªö¢@çP@Ac ïgA@ê}ÿØtþ¾þe5‚RvûÂg~–­
-Ëy6ãóÙNhîàóQ×gDb çºâÈâÌ3ÈŠ8)&1ì±g‡"·\¯=/ùÙlà Û^³h%<‘œé^‰Øt;°
-YÍ–óæ@_§ÖývÝÅeroc°".qjù½÷þw|Ì  Kㆠ)
-ždqaÝLÙ|¥õõ:¬KÙB0…&º‡L˜QlƒkøôA‚š¤ðþšƒ.œzâš3ÕÌÉFûN‡ÃÛ?ìÒË"„é­”nÉgîg±¬ŠØ”“”õªæê7º°~(-³ÊF7­xsPš‘¡açõA‹S~ÛÚ%	ë"ŽkBëäc‰$Ń°ÄN™•…Ì*LѪ|’€P¦óg E˜ZÁ<<D·;“»Ù(É Çí0t9Lþ>FkÒuìðéÂ=âç®ê}ý‘‡^Ý\ÇüvÓò(Bõj¨žÃ|Œ´ k&ô¾´5¸Vÿ‚{®àõæšß±@Ïç`€,@ÕoU+¿ÖŠs9N•²"á!öŠ¾³¡Ž#¾ˆ—ryá ¸…ò½KŠ,+«ªÀÍjKýoÃ. ö8R±ì‹LK@ŠyõZ“ßšE\š‰øiœ>ÎÝŽÇii~›Ër¼Â?	í57¨0×B¹¶²½^dæ%s Û|RÞ®’o¹,BÄèìpIÔE“7	üt‡m€†Æ˳ ˜iþ*ĐeàF7ô _b f§2 7ܨB<Ð;/ê˜Þ"@T”\Ì£¦õüAK…ëœû* I•Ç>XØŸuz‹@6ú€X‹?ÑXû½‡±õ}Ý8s¶¡ÛÔU4]5fx'Ï¢KÁÊcJáU€O2{îËX+¿QÚØT$äõ=MŠ ŽodGûxݍZx‰c3/{_R‚›‚~×›Ù kEXg„s¬‘––/_hô6¸ †š—ÛÑ
-ü@YƒOÝÕfFÊØïoeåÙ°;à ÎôÔV`ÈF«Ð{þ¬?Ck´ÖÖh]9èðªá—%VRÌ £F‰ôî•ÇʏšÆµe‚vG®†Úö(Û"¤îf¶0®Š!}ÄÒj\–’eg£1¹}ó?Äî1¯
+xÚ½ZY“ã¶~÷¯Ð›©ÊŠ&‚äTåavœ8›ªØ[ÎÄNUœ®î¬D*âhÇ“_Ÿ¾ ‚gìÆ3ÄÙ Ý_P6ÛβÙw_eò}yÿÕ7,ÕLÙÔX§g÷›™2&-\9sy‘j“ÏîW³$j¾PJçÉ«¹Jš¹QÉÎí|a²duYbmßRß?ïÿÌUZå9QÌfmÒR(¥0ŒÉÙäÇ*{ø×6X<¬eþ¬J+§ÌVej€$ÍÕÌu™¼›ë"YÃŒŽ–†¿míKÍv¾°Æ$[ìoðõ,±U'+òi¬Ï8OýP}âþ‹oôdŽØy9x24;wI}Æ"-ºæõ	Ê'âK½ÄI;Ú wâZëƒXKcÛðš¿dÊ⊫þÀ:9q‘OÞ=ƒ0.º,Ó¸«v%$ê7ÌNÞ@f¬_°‡OBmuÇS´(næS˲="‡ßø
+æ¶MO²Ý™ƒ¥Fkþ’åÎK¥9/\nùNÂÆ°až¼0UžüžÅ@©‘ 7s£æ!ÅÌ¥UaJ‘§Ú9•ÚÊz±½'›Úb
+oþŠªÖ©ÊŠ“Íអ1¿›8B‘– PÙ'@OÀUŸ{ý%NpsssMFe@§ðCw¸¥s¿¯5]¤…ª>‰!ê#òbb) ¤‹Ïe½Kmã•Ö¨K–l›•,Í ÃZ;Öx¸ªà@K-Pv‡³‚:w +
+Ç‚Páq·'ò%M ãP—Çw„•›ÔUf(¸“R‘ÎëRP-€`Ûu¢^ý°ð¥¯nׄ
+–Ü:R_6,r$œØv\À¢2!6¢,!ñzÅ­ûÿÞá?¬\H¶;a0œäO-žç‘à»ñSpyl;F:]äUøO&Õý±¯·¨\Ÿ¥€'i=Ftí‰ëœ0éA îŒÒšÎÀ£-…M¢¥é¬|œæ¯á‰=ñðÃbÊ›0ž±i’
+„û@ £ÍÃZ¬h3Þ vœH4‰a]†'î;¶"ÔXÁ“äbþw¾Yè08ã
+ÉÛšLmʵÛâíåĦ)â…Ñ‚¹ÀïJħ>°\Lœùž×ek¼_Îå䇧yiAXº²|“$’píÞ.¸.{åJÝÔÌ
+ïà•`—{æBxs<yåU£æ‚%ßæj˶lD¶`€hèé"›*FW͇8ãPîh‚4óL¾\ª1S*mÀY„·A€é*_ðÂ%,÷£ái+vi€ŒGƒ7u£áÝZ–‘½\HAiìå«O´²vhëoAÀ8ÉÈö÷3ŽÜÁÈŠd—¸ûstMØÍU(ò^Îõ*ȧwjð¾°ÿè¹²cš+‘HèÚû¢é¥ÿ‰»ˆe— f¢;бéwv2m´“ÝZ;>³Ü[oö+OBqnžƒbFMU$ß	»Ø'}Æý¡W^rŠqܲn¸.+$½à)zSâvtk´Õü!Ùbð¡•W“à:q	Þ*¡ËÕEœn¿ÿ·úÓ\)…¢‚mÇþúÀ+bñínXÀªT)°’Z¥y&Ë=0ijÞâàcp·Kî|Sø”Þ·c?
+7à!D@-Öºí‹àÎÛ}þ|ô‡?âž¼ î{%šz¨VD–…k⼈¸‘€íHîàÄÌX‰Ã¦Ú`ѝ²ûXÀˆòÄÇúû„k\w/2!Dê‡Z®Ï_1ÿWø»™ðéàkj7:ÚOÌÅۯׇ T™°>ñùú¨ö=‡(SqrOC±8LE,ªHUòrŠV÷áý䟸8ÿ”󮬧üØŸ'}÷¢Ò_|C$†nßåð²þÖcYd@OEϺp]¢"íd¨t¼>G2I.õÉS»ÀÔDž6ͺm<V«.ôDù^ßÁ¿[»Ší,Ðì—[J—{Ãï…HÉV~—]!ƒïíÄ;MÒƒ;y
+Õ»ö–¾áÏ_¾…Æ¿z
+§¦M.Èü	¶™Š¸”†ë	:ð›+¤ îu¿Æ,„¶|h@kˁež¶á[b²ejÆ<fçcé±"¸nV¹b°º=ó gUþ¾d£Ÿ5®”˜~0ðH’‘Þñ=„›hßÆÙ(é}ˆÞŒÄ"F$0bä!‹½ÀmÆöbÒáýA<eC¨…åeœˆ3¹þXy^%ßb×-‰Ž9E.Ñÿý‡Up
+I@™+÷ÛCî-àÎ{ìrRÚnÓo|N¡J0SƒÍWYš©òC0h¾´èßÌeæÐvÃŽÁÚ®‘¹o=ƒAº«<5Æ}tÎÏè,vüj/™kï²ëÈQåýUvpJ“Zîhµ—H;¨Ò1$ÿس± 4/³’³í®Ï]iÕçthz”ÉÀw;Rr AMè‡x=h8Åûžc—Š¹—Dº|ȽaX‰ŽEݱGÓÓÂàšÝCñ\^Äû^±äyW…D­¾ÈïÅãt±¤QßëÍ
+C$ŸCcå'ìŒNK,é(U/ñ¥‘£àÒƒ’)r	ø8;—
+-}¤ÆÅ«é¬Hµ¼ñÇ_¥";‡q 9ñ"°ðT¢‡ý™‚g f —R|à𓙺áv²û´øY{| I럹m$K.÷±¼q®·:ؾ’$õ°f‘Û¬O^>y…ë Š°óÞÓ§ڍ‚f
+üI)ߊÌñ
+g8=à’ ¶tÉç(‹‡LOPD9ېæè¸HiŒ‚ß
+8u¨ÀË䜚Æ­›§AÌ@“§Ò‰nZt¨G˜»á˧9Ü3n at d}³¼GÏ#¾A8ð@vÞׂ^
+o±Ð{P©ÅáJëà&¬¸/~%šð² ZóZß^Ënž÷ œCíÓ:VS¤l3÷LžDì ÏqÛž£|Æîè±J3;2'»Àtñ¥«œ^ŸÉ$"Ë+¾fèÙö9½†;Ä?î(£EI6r(&<PðR$ÄÑ®$O[µ
+[Žõ¯>YÛƒì–ûBzÊÏ¡-ö
+,ˆOC†ÓåA;ŸS¾
+8•I1õï§ø?øζ*Áw–#îä:$€¯”z³À,·§àÙQŽšŸc‘§>ý³GŒÌÕsvèÅ3B_jýéBÏ+íû".qix##ôÕëChXDŒÿcÐL¸õÉÚ%?ÌtB`7Ë
+uí3}ù0!ÛØg)ÚèlC\C¹S{ÙÍ"ÇÛ˜æWïÙo³c£#Ã9ÌŽW ³ÊÌ)y“ZI”ªuš»kû^¼s“'/EµQõ;I at QÇ+ä߆àæ8P.ì¼(Êw	j¼|uçãVJMIrQümJtRºáƒÅ&”­5ùT¾zŸºzAo¯¹J嬸£”pD„wàÑ1ÏÞ¡–±”8EÌ¿/ú8ª‡ÞµE€‘g($
+H¹ôªáeo
+ZÊõÅa_GIu9îׁ$¯º¡ÄÈ4²ûòõZüµð4ò Ïpìó‹
+çûùKÏÊp*G»Ñ±·:Jåq>˜Ln$Di´ßÞ-Ž.vÐ%E#ÏyR3Ò)̧šI/L¦Ó
+y )?=ý	´«R]ªÿ
+ì*.ŸÛ^qCï@Bå䡘=öö|ô7”—|~óªgo‘¹¾âW't.A6ü»&S—WÊ
+ëi˜N¬n"¼.C̲UZèÐz'¤Ç[z˜X6©7=PCHE3úÓ…%M/÷4|åÏ°cü¨`L‘Pþâ6åÑ÷äÞt\᧞h+ÔBš8ƒe΍Î:~‘¨1m’üKB몄ޑXŒÃ^½]s'ý8Æ1g×ôf¹Œ}RWEú]qˆ¡Ÿõj~RŠ=›(ا¾®•-u=ml*²¤G¯µˆàX#ÞÇęߋ¯ XÅ3(£»5É÷­§qÂ^oægÄÚÓ¸_BÔFöË¿Z:rKiýú&u’Ö¢)„»j7Q 8- XÄ‹ž[,[&*Äúfu"ö‰gÿ|dãG±fø+žì³Ì(»ò D³ÄÔ␠röñR~¨µ’$µ!|»¿CØ„ç "o“£Ã gÊUœDt+Ë‚YbcþpÿÕ]~“€
 endstream
 endobj
 122 0 obj <<
@@ -381,100 +387,105 @@
 /D [122 0 R /XYZ 133.768 304.216 null]
 >> endobj
 121 0 obj <<
-/Font << /F80 116 0 R /F8 89 0 R /F11 120 0 R /F7 125 0 R /F70 118 0 R /F93 126 0 R /F48 83 0 R >>
+/Font << /F81 116 0 R /F8 89 0 R /F11 120 0 R /F7 125 0 R /F71 118 0 R /F94 126 0 R /F96 127 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
-130 0 obj <<
-/Length 2124      
+132 0 obj <<
+/Length 2558      
 /Filter /FlateDecode
 >>
 stream
-xÚ­XIsÛ6¾ûWhœ¨%ÀÝmÚ´™6qm¦ñÍɁ)™±Dª¢äDÿ¾o	JtÚ´9Xà­ß[ ²šø“W¾üÿùöâÛ_ÓI¦²ØÄ“ÛåDJâtG‰2A4¹-&wÞ;?ò§Ú{ó~Z˜èé,Б—×0/x¼‡á}	?;ø+—ðÓìJÙ¶†ÙÚÙ†;p{Ó(ör<RÁ_Ž«USóVüRœŠ€2®­hCN„C¯ Ã¹šÎ ñ^7S“xñ§|œšÔ#É®pkêÞ"ë|±Èãjúþö70ÎLk•Eb肨;¤Spkɺã×ùàÇ
-æÓ™‰½r‡k ë’÷°ípœ«–?7h)d_Öü¡…ñᝯcäQñÈ¿çUÜÙð׊’T¦Vƒå‘ÙŠ;h'nú„ë­ðªÐo+^\ sv¥D{´£øx/,Öè…Àˆ[ÅÐ=Ñ þ‚)ó@Ê=¦!úà&4[â	ífNÞ$O‰¡qÛÖ1
-°tiïÈGéŒÕ'ïŒCX-’‚w§¡§PQÀ¿?aM
-F èm•&¬¶Q°ÙLÁ&ôn9	"'Gí+ÆÓqâ­—ª ÕLæ¦J
-ñdnG¨ôß:Çc>•I¸)_ ªÖI‚ú‚×æ89Š‰íi¦¢(iIÊ¥œæ¸Öž’˜èügE8oÏõŽÁtqd	*Fã­KÄ^
-½‰ï]õÅ.;æ„0œÈD¡	†hÜ‹9¹zÙàxÔ#í{{^¤YÎ<'-HÅxã—?]ñɼ}p,@;ŒæŽBÉ22;Æ0®µ[Ž}T«Z2&í–û’ÇO%\绑³®”QÏâÁ$¦K*&	DjÁW9Ìk	<HÆÇyÙZ
-¦“Ç”“W‡ƒÚsô?TAf}]`¶šü&U©îÐVõ¬)S*yD‘)X€3p=ã§Dà([<è(ž<Ô=µvÎ”3ã§Cð<œK©È×V°©×’¦Ã˜sÝŠPVY<lxIjãÒŠ±p"z$àL¤ }XND‡*؍UAMŽÜ(Ý5ľKôt$œ3¡Q™N슧|?Bò³Žö–pƒŽx Ò¼*¹Ü#«•„ÿ=Ï+ÁTó¶ŽÛ Tqt·\ð)Ÿ”’€ãþÄw¡¯R8îÎgvõŠé\X’ým1‚© 
-ÿ4²³Xeá)°Ï3á¹£2•dÙ	À‘ëVòÕµ÷¶$ÏeIŒ
-âÎ?
-ÖþgšNb„ÚE€›Ütˆ‡nkœöŽ‹ÿNLè6 -É2ú¬)~
-ŒJβI˜&Ô¬Á¿eŒr×5wôu4Pa%âv’r4o¨7)z½ÁNUM2HqV¦BÂz/ÿ•8o'óãrØrVè`;2]³Í>Ò™Š“SA-‰BïCiuCèeþ@-œwŒÉâyëØw™
-“.…¬ÄõÀsc¹Êè®’©y9P¯žfÖ1}×M²l(2¨T휋,å.¯a:ÝvÃq-ÔWþ#ÑF ÂQY¸fSŠ©}¸ùÙ°"“IÉ)~ì½ýý
-úvƒ„çà"ïuiÓ$ÝA´\MøP%Ò®;Üï,g‡õ(LÉš¥3îzoøã¿Dº`r<•¬eXÓW:¼A“ÖÏ¢gZóðmwFö/Ž8øóÕÅäN{ZÖø>	ÆyOZžûêä>acö7Ö
-]8÷då´ó×53Và_ä²c
-ªa:IT–@YÇF@ÎÎt¬p'Qø&¤ÌÉ滣  §«•*9S:³T™,œgÓ¢.x¸ÈI£öhË_§ãÁi'ù8ÚdAÖ`@Ø㝍QCR•\!côÞ\b¸µ3ý;Äß{frI:¶ûË!¡'l'W ßRIÑ9%ů")˜Â˜Q‘쥌ç4ð½Ë…Cž¨4€¥á¿-òUзƒÝÅ% à‚6·´{®†®"öªI‘ãÜ"ðÈ’®žR=å±¢µY°ýŽ¿wYÆ-&­îé(4õð¢Ûeó÷ðÅ7jº7|YÌĐÊÃh4f>±;¾Ÿ9!0ÀÂ7¹…< );=ü¯@¢Š±Á5{ô³g@ü™ýL¿ïÔ=ɼ¢"QÕkÑÌ? í hÒôä|öåœgVt‡¿XŠJTÝ cŽ[iñ;Þû‘9
-àz¤
-s@Ü®eǬ»†JÛô6äc‹uNo#×Ó™öc#lƒÅHîyA´õš AÔw%(Ô’`MM9µiøâƒLžóÖeµæw2šm(³pZ
-öm(DZ.N²û/ºJ*~x~öÝM—®ª/(f次öbß@Q‡>6\»J¾³aG
-?Æ„M¦èi‘sèQ B»Œº9¶wŒECq¡$PêùÊv/ФÍâ‹ù¢ôºYz01ÊF¹ ¨©ŸŸKïB’·•ë²åù–ž+˜)÷vŸÕg™/®Oö3Œº'
-«ØÒÛGÒ’²™XwÑPaÝð3Ÿk
-HÆ$"G¬G,,µ±‡[ö„åfK	¸¬÷½ôÔ¶.\ðƒµJy%=)š¢dÓ[˜bnqß‹^uÚ–žZ	PGâfLIŽám·-š‚úÙ1´ÿ±¥÷7”¨¦—tJ%¤çžZŸ}{=Ə5[‰Ë¡WøÙ$ºþ
-¸
-7[é6ííëĉ³p at V|g>pM|ÂBÍöÄ»d€sœHhøPB”ä%\ð…Šãý2*!Ûæ\Ê=|‰¾¶)©¼öò^hS½Ûã¸-Nœ© ®<³.&Zh‡r`¼’þr{ñ7ì.!¯
+xÚ­YK“œºÞûWtÙYÐUn˜Ä‰s]‰ïd‘¸â©ÊÂñ‚¡éžŽiè´íù÷9/xŒsx1ÓIGçñ—ð7Ǎ¿yû̗ߟîžýö/é&S™	Íæî°	´V‰I7&NT¨ãÍÝ~óÁû¼—·§màå=üÃASow:Mh,Cœz€¿’›V–O5î¬ðµñöD"W۝ñ÷s³
+ïþ+áõg;hÔ/ôv–…¾Üî"ß÷r\”Ò‚rÿ®v~Ï»k$Œ/Ï8¸ßîBã•-sÔxÍ;˜~Óm?Þýt³•Å¢ <­ƒƒbûГˆÄ¾èê¿üÀÂV	g¥ šÅÅ
+O{g’—qÊgÍ•¼IÅùnë#O•ÈÖ(n‡H}Ð!ÐÀµ› —ŸóO3ãI ³:ǵH„%\½D6:–7L†h'ïÞi­ÅPÂW>™×¸³¹"…ämÁ†é‡ˆ78-LTd‘*Xnƒ0ònÅøIì]Ú
+Ú‹Ù™[d:Uh™Û™ªÁ<W‹éáתǬc«}Ö1Î$¸(/PÖäŸñ¨rÏs÷øð(LNœ+ÍT§À-qy°¶!˜¢‚€EQ+Ùز Èï–r›D¥&¶Ú5öî,[ÂöAèÕH¼wŽ´|Z‚ãG¡ž‚ ·¾WãÊyö¨‡¢`TŽ÷6Bäøœ±VÄ#¿{÷ÆzÉòÎèœmG/
+y
+¿ì.ì¼änFà°‘¡ÇñW—¢Õñ—¢±Kp¸Xñ	@ÂF$<¯\$FxEhŒw­­?v¿Ä3QÄ ã\+˜1±ÊRcM\N.‚•|‰‰0…®íÁ²n#(…ÜÏ'A]ÉÐÛEa È!^Ð8IF[{fµ½Zÿæó‚Àe1ÅÄžøiÉR¬ŒîÎxf>ÐÚìt !Õ˜©Ê)¾›ö$>ð@–Üi?ÐÆ>¢p„ôèÔKý¥‰2:yC2ìRùT$w“Ž”Žc×OÛFNaF»²ÈÙùÊÏ=Såý
+ùP+“ä/„!´É'ʳÇ$ð4í}å§ÓOVæ–$p}Kû±$jŠ¥ø?l¸¯-Ê”I~¥Ñ^Š¥@Àâ6[Êð™1.Y2˜8#>æ»ãõìD奥2íZª~2 .®?ýà1iêÌË9öÒj<©9ãž«ºB''É0þ$^1TA%íK¸ 8£lyûÈŠ
+@ÑÒœ-X»¡Š±Z[dß#»”WCf˜_+ÂKžùéö
+ ò_$ðW—kQ-—fVGDÿùÿ³ObTäG®›4-3Ò h™Û IµÂê.ôCEÙTy?‚Û@a2ƒ‰Uçüs,k›ïO¿šfNœ Ì	©d☰’‚xÿÀÕ<ïGò˜.×âz
+þg¹ÙK<êåW‰Zy>g⢡
+G 00»A²‹#ï߸…R“³¾QYOõêʁ9ÂÍ¢ðHµPÞu+Pg2¤™ãP»vZVíf
+Á;Ùï*-ž*–=„Þž	CŸ(Ç’‰9LR&­÷k*QÐtÅʶ&"îZT‰ Jg¬2g
+Y{÷eˆ(Ìàû¿½“
+tÏÝŸk£|tØ(ˆ¼ŸI’®Ñ¶
+څ׶ƊQ‚CO+Œg-×ñZ$›uWD(ÇŸ¾‘è‚$Æz­+{~Õ‰f¨l¢˜“[¿ÚœÕ<ü€òB3€šZì(qð·Ï6/9n4A)v-ÍBàÏL:w[áܺŠX÷쀝npë‹&æËŽ5HÙÙ&QYâmÆœ½ˆIü<HJî[Žì‚€|_8({²¦TŒ©
+!ù»ûÅä¦ý}N"Ý’0d­ùn3ÙMáSoG¥¤Žê:àßU2ŠH²’-dŒæÀ.+€p#â}@~äSž“]ÿ|Jé	í	¥êK—UêïÉ)~«Zf…S¤ú\Æ÷4ð½ç…ì§, ľ¬œA—˜üÏH‹}¥ý`žC áåüSÙÒ^Áe©4ÎÜf¸5l94W¹ïÀt/ÞhÃ_÷;~o#Ž»‡±ÿæd[»½x8Dœsïd¨Âp>ZÝPßó}N=IH™$¢BÖ…ÂW6ÇïwŽL ð›ÜB>j9mþU~À³@¥ ¢DòâaÿO&ÿ—gó3ð–Ä	Ò	IÑÜÛ,J³ýÙ÷Ÿ¼³¬;狦(=Õ
+æñ"Å'¾ÇfG¦ \\Æ^·•¬Ø
+=k¤‚ÞG¼­¨pi×ÝlwoB9†0¸_‰\¯©©¬*‚QoK$°W‚5)èãTU%òŠ—N•d3|:S`¡|‚ͽ³îL.ÒѵàQVÿ‚Nw*—øâÕâ½.IT1ýkò™{–0ðŒïO µ/Îä\íIÞ³bW¿¢Ï׬2,Ìj	u¢ ÏC¡…Õ/™Œª7Ö·Á¤!­˜Pâ'Õxe·‚®×¨Ò¦øîsµ]5ÅuÓÚAéÊA. jêoîåVÖ…$/+«²ãçKÙ‡rÙòÍcyq3[Ï0.U¬`gÜK8#))š‰v‹†+®î&
+Á¡€dMÃdˆjEÃ’G¸°fgGž/€ËºõüH·‚ÕÞ?h‰³ÏLr¦ÙŒ&Ÿ+F6ÀŠ«ÚÄÜU5¨GëâáÚBdŽám—ÍžjÙ5´ÿýBW…ÈQ·ÄJHΞJŸ¾»YS%nk.ÖS+ð³JÆÛhóV©8í%å̈µ°CžÐ
+N{ižÐPs™Y—°ÄÙ
+‡‚6â9ù¯ÜL±¿£]V9œ„Š=tõÖÞؐÎÔ^=§ö!Ô?UãøÓòæë²|@dóêŧëZüqÛ)|>ÎR\ÅÁÐßñ'¿°ò
+4)ðŸé¶r¯Lä•Ó\à盚é£-¯eéyì§ËŠ_I%nFn:Þ‚lu5-•Þ›R\0»RÀf>g£‚¡×©l%×KW…ç
+(Ýš¦Þ?·©¶køÊzõ&UIö#ïþ_%cw+š2Çâ‹
+~k
+Ólþ	ÉVƒØ‚f)XÐVŒT–¤£
+ðË…Yÿ*pÅâÒ‚2Íä¶ËՁF¯ —ö ‡@G#º¬­íõÝÙeÛ0ÆGæ‘¿Ñ—¾Ž:Þûñ˜üy'¼Ò}Æ‘JÇ+	ŠÒÈQ_Nmv›(jçŠÀvö:@<vDp'Ÿ6±+65€Ì¥^ò~¨üS[½S`?®Ñ¬X'KçòW`ÌÝÀÅ]ºr¬Á7Ì7îqz€Ù+#õ°¤ÂC­EÊ¥ãcHiK5Ç™JCKä,×W~ý
+xœä— •?~õßL¯@±¾ò
+¸~¤’¢É¢?ß=ûˆËW
 endstream
 endobj
-129 0 obj <<
+131 0 obj <<
 /Type /Page
-/Contents 130 0 R
-/Resources 128 0 R
+/Contents 132 0 R
+/Resources 130 0 R
 /MediaBox [0 0 612 792]
 /Parent 90 0 R
-/Annots [ 127 0 R ]
+/Annots [ 128 0 R ]
 >> endobj
-127 0 obj <<
+128 0 obj <<
 /Type /Annot
 /Subtype /Link
 /Border[0 0 0]/H/I/C[0 1 0]
-/Rect [465.983 490.436 472.957 498.845]
+/Rect [413.607 490.871 420.581 499.28]
 /A << /S /GoTo /D (cite.tjart19) >>
 >> endobj
-131 0 obj <<
-/D [129 0 R /XYZ 132.768 705.06 null]
+133 0 obj <<
+/D [131 0 R /XYZ 132.768 705.06 null]
 >> endobj
 18 0 obj <<
-/D [129 0 R /XYZ 133.768 617.47 null]
+/D [131 0 R /XYZ 133.768 617.905 null]
 >> endobj
-128 0 obj <<
-/Font << /F8 89 0 R /F80 116 0 R /F87 119 0 R /F11 120 0 R /F93 126 0 R /F98 132 0 R >>
+130 0 obj <<
+/Font << /F8 89 0 R /F81 116 0 R /F88 119 0 R /F11 120 0 R /F94 126 0 R /F99 134 0 R >>
 /ProcSet [ /PDF /Text ]
 >> endobj
-137 0 obj <<
-/Length 1134      
+138 0 obj <<
+/Length 747       
 /Filter /FlateDecode
 >>
 stream
-xÚ}VKÛ6¾ûWè(1—E=ÒndÛÉi[è¡íA±e¯±–äÚV²äÇw¾R²`caØr†óæ7Ö‘Ž´rYtÜ‚úÏßg:ÂëÛüËÙݧ"JUfI-7‘±VåYe.W‰uÑrý¿Ìÿ]~!ÁK9­LF:˜¿››ø4_¤eWX\¼®ÎtVjú=ËQ·‘5ÓZDq«]ÓˆoX±éqoÙXÍ<)â~s(­×ÂëÃõú(Uë
-ŒêO|«¥©éæ‹$×ðk/G›Îß·aF	maŒ*O@e«#ýt§Á=ë ·yG:Èͦ‚ÐóœlÀÄÒj¾Èmÿ5/R+Ùwʍdu’þÔ*cB^7>9 4‘Þ*«àì1Åû«:å‰2頝¸ ½œ†Ξ½%X|6ÄV°÷Ž¸.¡áô	úúí“$.1N%ÎLSwö¾õºuÅè?;?zÎÌêX‹	›¥>r>¶v£èª‚‚ÚË>û,uæ{K)w¦@ÊmÌvóøt Êgq½ºóR5Õ”å¾Kí˜Ç4µO±Aº²þ6wÔï¡•ï°ú'D_g¢“
-Q‰/jN%Ê\(Ñóu
-•dyàߣ‹8¥Gd­·Ü”pà€ÄPŸý£¾ÑY®TE24Béû⻪}£»îé›ÒWßè.«t1À Y6$÷r3†` 'Ð=wŸÊ"ÊU™k
-㬲¶$"SeQˆ¦_¨~ÖÄ[tÇA蟉^¹ÙñƒPÒ¡ÒGÜDýErMÅáµXheæÜcÑ”Dv™Ýsºþ¶œvÝD¦pÊRÜ6EÔ&Z5³ÿ(Ì4ÏÉ}Aבff¸éî>7&úµ›ýAŸÀZ­‹µË7PÙ&†zÅJ’–OÒq9µ5ºGVVá%w-8„Ä;_Êc!:úU^îU²pU~
-| °ÆíU/ œsGL0lyÇ]@ÙU-çõË`0àW¸òU<`:¼½úÖs©qs; ÔÅk«ý¸ÉµZGM¼}|ø@feüáÀˆ|–݆_K#B«¯àÐû6¯ÆÌU{?Ëø˜q:ÍG[»Ñ›¶“•¹Õ‰Jp#.”
-#Ç	â9„<mÁ)Q pM%“†Œz‰_y”	‚2É°EŽÀìºvðPöyh\üÄ×<ئڌ°7õJ.¸È4¶ì¶	®ŽI|w+ø…üy
-#qûwBýØ9Wah'ø÷ îミD3䙫ê€U]Ò+/ÔWav¿ŠÖ=·ÔI6žøQ	¸úÿPaŒþ‘£KΦ÷Ô«»/—„@ùÌ~5²|"ü–\¼cA«2©*ÓtªOÞ|뇤1“rhÈVu×qâ\þh`k‰àVrÝãÀ“²ó´~üü ½A7N¼Úßå?P B¯|ÿÃbhiR~ý‚qJF®G¢Mhdè⍙èÔ01ßO œò•åhö‘(x´t)‚õÿîðžE
+xÚmU[o›0~ϯð#Hŵ1Æ°›ÔfkÕ=eSÞ¶=PIÔ Y[+õÇï\LCº*ŠýÙÇçöc£ÄZ(q;Sã,m
+@‰¬Güývv½œ]Þä¹p2wJ‹e-´1Ò¥™H­“±±b¹?‚OadÖ¡{Æ Gëm‹•,aÜ
+Gûê ãñ§²êÀŸk
+\ÈVÂXî<ѳä#N*Hhèð×òë)ðWó—åLSðZèÌJ§ÂäVæiÙÌ~C¢‰s&§#SLÂQÓo\Þ5Z|îfßà7Š¢Ñj41K,e"—y
+’	IÆ%RiÇ$-7QF.Nƒà€¬”=[øw-Jl°Âr´ßÁP„±žh‡ô
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/adegenet -r 888


More information about the adegenet-commits mailing list