[adegenet-commits] r887 - in pkg: R inst/doc inst/doc/figs man
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun May 29 22:20:59 CEST 2011
Author: jombart
Date: 2011-05-29 22:20:56 +0200 (Sun, 29 May 2011)
New Revision: 887
Added:
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
Removed:
pkg/inst/doc/figs/-006.pdf
pkg/inst/doc/figs/-010.pdf
pkg/inst/doc/figs/-011.pdf
pkg/inst/doc/figs/-012.pdf
pkg/inst/doc/figs/-013.pdf
pkg/inst/doc/figs/-014.pdf
pkg/inst/doc/figs/-015.pdf
pkg/inst/doc/figs/-016.pdf
pkg/inst/doc/figs/-018.pdf
pkg/inst/doc/figs/-019.pdf
pkg/inst/doc/figs/-020.pdf
pkg/inst/doc/figs/-021.pdf
pkg/inst/doc/figs/-022.pdf
pkg/inst/doc/figs/-023.pdf
pkg/inst/doc/figs/-024.pdf
pkg/inst/doc/figs/-025.pdf
pkg/inst/doc/figs/-026.pdf
pkg/inst/doc/figs/-027.pdf
pkg/inst/doc/figs/-028.pdf
pkg/inst/doc/figs/-029.pdf
pkg/inst/doc/figs/-030.pdf
pkg/inst/doc/figs/-031.pdf
pkg/inst/doc/figs/-032.pdf
pkg/inst/doc/figs/-033.pdf
pkg/inst/doc/figs/-034.pdf
pkg/inst/doc/figs/-036.pdf
pkg/inst/doc/figs/-037.pdf
pkg/inst/doc/figs/-038.pdf
pkg/inst/doc/figs/-040.pdf
pkg/inst/doc/figs/-041.pdf
pkg/inst/doc/figs/-043.pdf
Modified:
pkg/R/dapc.R
pkg/inst/doc/.RData
pkg/inst/doc/adegenet-dapc.Rnw
pkg/inst/doc/adegenet-dapc.pdf
pkg/man/adegenet.package.Rd
Log:
Corrected dapc vignette up to H3N2.
Modified: pkg/R/dapc.R
===================================================================
--- pkg/R/dapc.R 2011-05-29 16:21:07 UTC (rev 886)
+++ pkg/R/dapc.R 2011-05-29 20:20:56 UTC (rev 887)
@@ -69,6 +69,7 @@
n.pca <- round(n.pca)
U <- pcaX$c1[, 1:n.pca, drop=FALSE] # principal axes
+ rownames(U) <- colnames(x) # force to restore names
XU <- pcaX$li[, 1:n.pca, drop=FALSE] # principal components
XU.lambda <- sum(pcaX$eig[1:n.pca])/sum(pcaX$eig) # sum of retained eigenvalues
names(U) <- paste("PCA-pa", 1:ncol(U), sep=".")
@@ -184,6 +185,13 @@
res$call <- match.call()
+ ## restore centring/scaling
+ res$pca.cent <- attr(X, "scaled:center")
+
+ if(scale) {
+ res$pca.norm <- attr(X, "scaled:scale")
+ }
+
return(res)
} # end dapc.genind
@@ -864,6 +872,7 @@
method = c("plug-in", "predictive", "debiased"), ...){
if(!inherits(object,"dapc")) stop("x is not a dapc object")
+ method <- match.arg(method)
x <- as.lda(object)
@@ -878,8 +887,8 @@
## centre/scale data
for(i in 1:nrow(newdata)){ # this is faster for large, flat matrices)
newdata[i,] <- (newdata[i,] - object$pca.cent) / object$pca.norm
- newdata[i, is.na(newdata[i, ])] <- 0 # replace NAs
}
+ newdata[is.na(newdata)] <- 0
## project as supplementary individuals
XU <- newdata %*% as.matrix(object$pca.loadings)
Modified: pkg/inst/doc/.RData
===================================================================
(Binary files differ)
Modified: pkg/inst/doc/adegenet-dapc.Rnw
===================================================================
--- pkg/inst/doc/adegenet-dapc.Rnw 2011-05-29 16:21:07 UTC (rev 886)
+++ pkg/inst/doc/adegenet-dapc.Rnw 2011-05-29 20:20:56 UTC (rev 887)
@@ -21,7 +21,7 @@
\newcommand{\code}[1]{{{\tt #1}}}
-\title{An introduction to Discriminant Analysis of Principal Components (DAPC)}
+\title{A tutorial for Discriminant Analysis of Principal Components (DAPC) using \textit{adegenet} \Sexpr{packageDescription("adegenet", fields = "Version")}}
\author{Thibaut Jombart}
\date{\today}
@@ -35,7 +35,7 @@
\begin{document}
-\SweaveOpts{prefix.string = figs/, echo=TRUE, eval=TRUE, fig = FALSE, eps = FALSE, pdf = TRUE}
+\SweaveOpts{prefix.string = figs/dapc, echo=TRUE, eval=TRUE, fig = FALSE, eps = FALSE, pdf = TRUE}
\definecolor{Soutput}{rgb}{0,0,0.56}
@@ -55,7 +55,8 @@
\cite{np145}. This methods aims to identify and describe genetic clusters, although it can in fact
be applied to any quantitative data. We illustrate how to use \code{find.clusters} to identify
clusters, and \code{dapc} to describe the relationships between these clusters. More advanced
- topics are then introduced, such as the stability of DAPC results and supplementary individuals.
+ topics are then introduced, such as advanced graphics, assessing the stability of DAPC results and
+ using supplementary individuals.
\end{abstract}
@@ -76,15 +77,16 @@
%%%%%%%%%%%%%%%%
Investigating genetic diversity using multivariate approaches relies on finding synthetic variables
-built as linear combinations of alleles (i.e. $a_1 \mbox{allele}_1 + a_2 \mbox{allele}_2 + ... $)
-and which reflect as well as possible the genetic variation between the studied individuals.
+built as linear combinations of alleles (i.e. $\mbox{new-variable} = a_1 \mbox{allele}_1 + a_2 \mbox{allele}_2 + ... $
+where $a_1$, $a_2$ etc. are real coefficients)
+and which reflect as well as possible the genetic variation amongst the studied individuals.
However, most of the time we are not only interested in the diversity amongst individuals, but
also and possibly more in the diversity between groups of individuals.
Typically, one will be analysing individual data to identify populations, or more largely genetic
clusters, and then describe these clusters.
-A problem occuring in traditional methods is focussing on the entire variation.
-Genetic data can be described using a standard multivariate ANOVA model:
+A problem occuring in traditional methods is they usually focus on the entire genetic variation.
+Genetic variability can be decomposed using a standard multivariate ANOVA model as:
$$
\mbox{total variance} = \mbox{(variance between groups)} + \mbox{(variance within groups)}
$$
@@ -93,7 +95,7 @@
VAR(\m{X}) = B(\m{X}) + W(\m{X})
$$
-That is, usual approaches such as Principal Component Analysis (PCA) or Principal Coordinate
+Usual approaches such as Principal Component Analysis (PCA) or Principal Coordinates
Analysis (PCoA / MDS) focus on $VAR(\m{X})$. That is, they only describe the global diversity,
possibly overlooking differences between groups. On the contrary, DAPC optimizes $B(\m{X})$ while
minimizing $W(\m{X})$: it seeks synthetic variables, the \textit{discriminant functions}, which show
@@ -118,8 +120,8 @@
\subsection{Rationale}
%%%%%%%%%%%%%%%%
DAPC in itself requires prior groups to be defined. However, groups are often unknown or uncertain,
-and there is a need for identifying genetic clusters before describing them. This can be achieved by
-using $k$-means, a clustering algorithm which finds $k$ groups maximizing the variation between
+and there is a need for identifying genetic clusters before describing them. This can be achieved
+using $k$-means, a clustering algorithm which finds a given (say, $k$) of groups maximizing the variation between
groups, $B(\m{X})$. To identify the optimal number of clusters, $k$-means is run sequentially with
increasing values of $k$, and different clustering solutions are compared using Bayesian Information
Criterion (BIC). Ideally, the optimal clustering solution should correspond to the lowest BIC. In
@@ -128,11 +130,10 @@
While $k$-means could be performed on the raw data, we prefer running the algorithm after
transforming the data using PCA. This transformation has the major advantage of reducing the
-number of variables so as to speed up the clustering algorithm. Note this does not imply a loss of
-information and different results from the raw data, since one can retain all the principal
-components (PCs) and therefore all the variation in the original data. However, in practice, a reduced
-number of PCs is often sufficient to identify the existing clusters, while allowing the clusters to
-be obtained essentially instantaneously.
+number of variables so as to speed up the clustering algorithm. Note this does not imply a necessary
+loss of information since all the principal components (PCs) can be retained, and therefore all the variation in the original data.
+However in practice, a reduced number of PCs is often sufficient to identify the existing clusters,
+while making the analysis essentially instantaneous.
%%%%%%%%%%%%%%%%
@@ -140,13 +141,14 @@
%%%%%%%%%%%%%%%%
Identification of the clusters is achieved by \code{find.clusters}. This function first transforms
-the data using PCA, asking the users to specify the number of retained PCs interactively unless the
+the data using PCA, asking the user to specify the number of retained PCs interactively unless the
argument \code{n.pca} is provided. Then, it runs $k$-means algorithm (function \code{kmeans} from
the \textit{stats} package) with increasing values of $k$, unless the argument \code{n.clust} is
-provided. See \code{?find.clusters} for other arguments.
+provided, and computes associated summary statistics (by default, BIC).
+See \code{?find.clusters} for other arguments.
-\code{find.clusters} is a generic function with methods for \texttt{data.frame}, and objects with
-the class \texttt{genind} (usual genetic markers) and \texttt{genlight} (genome wide SNP data).
+\code{find.clusters} is a generic function with methods for \texttt{data.frame}, objects with
+the class \texttt{genind} (usual genetic markers) and \texttt{genlight} (genome-wide SNP data).
Here, we illustrate its use using a toy dataset simulated in \cite{tjart19}, \texttt{dapcIllus}:
<<>>=
library(adegenet)
@@ -160,8 +162,9 @@
x <- dapcIllus$a
x
@
-\texttt{x} is a dataset of 600 individuals simulated under an 6 island model for 30 microsatellite markers.
-We use \code{find.clusters} to identify clusters, although true clusters are, in this case, known.
+\texttt{x} is a dataset of 600 individuals simulated under an island model (6 islands) for 30 microsatellite markers.
+We use \code{find.clusters} to identify clusters, although true clusters are, in this case, known
+(and accessible using \texttt{pop(x)}).
We specify that we want to evaluate up to $k=40$ groups (\texttt{max.n.clust=40}):
<<eval=TRUE,echo=FALSE>>=
load("Robjects/grp.RData")
@@ -187,7 +190,7 @@
\noindent This graph shows a clear decrease of BIC until $k=6$ clusters, after which BIC increases.
In this case, the elbow in the curve also matches the smallest BIC, and clearly indicates 6 clusters
-should be retained. In practice, the choice is often trickier to make.
+should be retained. In practice, the choice is often trickier to make for empirical dataset.
\\
The output of \texttt{find.clusters} is a list:
@@ -202,12 +205,14 @@
The components are respectively the chosen summary statistics (here, BIC) for different values of
$k$ (slot \texttt{Kstat}), the selected number of clusters and the associated BIC (slot
\texttt{stat}), the group memberships (slot \texttt{grp}) and the group sizes (slot \texttt{size}).
-Here, since we knew the actual groups, we can check how well they have been retrieved by the procedure.
+Here, since we know the actual groups, we can check how well they have been retrieved by the procedure.
Actual groups are accessed using \texttt{pop}:
<<fig=TRUE>>=
table(pop(x), grp$grp)
table.value(table(pop(x), grp$grp), col.lab=paste("inf", 1:6), row.lab=paste("ori", 1:6))
@
+
+\noindent
Rows correspond to actual groups ("ori''), while columns correspond to inferred groups ("inf'').
Here, we can see that original groups have nearly been perfectly identified by the method.
@@ -262,12 +267,12 @@
themselves referred to as \textit{discriminant functions}.
Moreover, being based on the Discriminant Analysis, DAPC also provides membership probabilities of
-each individual to the different groups based on the retained discriminant functions. While these
-are different from the admixture coefficients of software like STRUCTURE, they can be still be
+each individual for the different groups based on the retained discriminant functions. While these
+are different from the admixture coefficients of software like STRUCTURE, they can still be
interpreted as proximities of individuals to the different clusters. Membership
probabilities also provide indications of how clear-cut genetic clusters are. Loose clusters will
result in fairly flat distributions of membership probabilities of individuals across clusters,
-possibly sign of admixture in the case of island models.
+pointing to possible admixture.
Lastly, using the allele loadings, it is possible to represent new individuals (which have not participated to the analysis)
onto the factorial planes, and derive membership probabilities as welll. Such individuals are
@@ -281,7 +286,7 @@
DAPC is implemented by the function \texttt{dapc}, which first transforms the data using PCA, and
then performs a Discriminant Analysis on the retained principal components. Like
-\texttt{find.clusters}, \texttt{dapc} is a generic function with methods for texttt{data.frame}, and objects with
+\texttt{find.clusters}, \texttt{dapc} is a generic function with methods for \texttt{data.frame}, and objects with
the class \texttt{genind} (usual genetic markers) and \texttt{genlight} (genome wide SNP data).
We run the analysis on the previous toy dataset, using the inferred groups stored in \texttt{grp\$grp}:
@@ -293,10 +298,10 @@
dapc1 <- dapc(x, grp$grp)
@
-The method displays the same graph of cumulated variance for the PCA step. However, unlike
+The method displays the same graph of cumulated variance as in \texttt{find.cluster}. However, unlike
$k$-means, DAPC can benefit from not using too many PCs. Indeed, retaining too many components with
respect to the number of individuals can lead to over-fitting and unstability in the membership
-probabilities returned by the method (see section below about the stability of DAPC results).
+probabilities returned by the method (see section below about the stability of membership probabilities).
\begin{center}
\includegraphics[width=.7\textwidth]{figs/findclust-pca.pdf}
@@ -380,10 +385,11 @@
add.scatter.eig(dapc1$eig, 5,1,2, posi="bottomright", inset=.03, csub=1)
@
-We can also add a minimum spanning tree based on the (squared) distances between populations onto
-the DAPC scatterplot. This allows one to bear in mind the proximities between populations, which can
-be misinterpreted when looking at discriminant functions of lesser rank.
-We also add the centre of each group with crosses.
+We can also add a minimum spanning tree based on the (squared) distances between populations in the
+entire space.
+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).
<<>>=
@@ -422,14 +428,16 @@
%%%%%%%%%%%%%%%%
In DAPC, the variable actually analyzed are principal components of a PCA.
-Loadings of these variables are generally uninformative.
-However, we also compute contributions of the alleles, which can be interpreted and sometimes very informative.
+Loadings of these variables are generally uninformative, since PCs themself do not all have
+straightforward interpretations.
+However, we can also compute contributions of the alleles, which can turn out to be very informative.
In general, there are many alleles and their contribution is best plotted for a single discriminant
function at a time.
Variable contributions are stored in the \texttt{var.contr} slot of a \texttt{dapc} object.
They can be plotted using \texttt{loadingplot}.
-We illustrate this using the seasonal influenza dataset \texttt{H3N2}:
+We illustrate this using the seasonal influenza dataset \texttt{H3N2}, which contains 1903 isolates
+genotyped for 125 SNPs of hemagglutinin segment (see \texttt{?H3N2}):
<<>>=
data(H3N2)
H3N2
@@ -551,7 +559,7 @@
%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
-\section{Ensuring stability of DAPC results}
+\section{On the stability of group membership probabilities}
%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%
@@ -778,4 +786,22 @@
Overall, groups are fairly well retrieved, but we can notice that individuals of Blonde d'Aquitaine
breed are poorly identified compared to other breeds.
+\begin{thebibliography}{9}
+
+\bibitem{tjart19}
+ Jombart T, Devillard S and Balloux, F (2010).
+ Discriminant analysis of principal components: a new method for the analysis of genetically structured populations.
+ \textit{BMC Genetics} 11: 94.
+
+\bibitem{tjart05}
+ Jombart, T. (2008) adegenet: a R package for the multivariate
+ analysis of genetic markers. \textit{Bioinformatics} 24: 1403-1405.
+
+\bibitem{np145}
+ R Development Core Team (2011). R: A language and environment for
+ statistical computing. R Foundation for Statistical Computing,
+ Vienna, Austria. ISBN 3-900051-07-0.
+
+\end{thebibliography}
+
\end{document}
Modified: pkg/inst/doc/adegenet-dapc.pdf
===================================================================
--- pkg/inst/doc/adegenet-dapc.pdf 2011-05-29 16:21:07 UTC (rev 886)
+++ pkg/inst/doc/adegenet-dapc.pdf 2011-05-29 20:20:56 UTC (rev 887)
@@ -111,340 +111,370 @@
73 0 obj
<< /S /GoTo /D [74 0 R /Fit ] >>
endobj
-76 0 obj <<
-/Length 1064
+79 0 obj <<
+/Length 1093
/Filter /FlateDecode
>>
stream
-xÚVKoÛ8¾çWè(5#R$EÙ¤Y @`a`Ý[võk%%
ÿýÎÕ¸-ö ÔçñÍ7ËlÙ7å/Æßç7·ÖdºVF;Í×vªbæµÁdóUö%¿;³ª,óm¡óCaê¼oÅ̸|õ
-_ðôÛ#ÉH?òøúÛíÞÛ¼
-TÒh>îàuFmÚ´¸.¾Î?e¶RÁèlf´:pLO-Gþqrb+ä÷æÇý"<RÃ>;Öø»tåCa|~¢§{Xjttû¨c¦Ás±ðVUËfUÁ:ö;ÁLàydÌ}:îIKL ª Áhk±óyªgÞh"¨~y sMl}W2¨WÌÞs¹*
-^LcRÏ:o©>?°5mÍ´6*¸§|zH°«µÏßp¾I°ö=¾Y5 bÈ:+Ȧ}ÂëH¤v,\ÓG×ôù$ÏA¡ËûÑçÏ8ýtc ¥#HIwÇÔXMmóãGwÉ04|£E)âY=áY¤<;ÖCªÁê«}÷³{þþ
7-fmpµ¡cI*Ë*)|sÄ]²øúG Âo£Å¦.½ÙØm-LmÕ®Ê7͡鯸®jeKôKÌ÷ÂqÍ6ÉÝUvúµ¬rÎý*g;æ<³¶Èó1IZþÏ;:?zïO)*×ÂHbÿö
-8XëI õ}! 7VI}j{Yà9ãÐ,w¶ë³èHFsRÙþL¶l]j8Züì
-ÛÄ. `Éù|¹>ì¨{ÛO3<zµ
-iëO;²8àÜaÛѸ&JBF+Í=ãt3¯ÿ}63$ÑËZ¼ágF ¦¾ºP[p¥|Ôù_¤ø!;BAÛ
f(æü<´NaÂöHGy=9µ2aàòZP?H}%úâ·Ew
s=u²xÄH¢%'fòbm«(Hâ¶÷¡ÏtôJWæ:'ü}tðCö!|]eýËtÊL¨LuÙ®¸lÝeMÓAÚ¥¦:É TÑG6C;£Ú7ö7ØìFÃËI} äNa+Åü³»Õ
ùV¸0À´lVtóÀD'àôbÜ.¥Çqa
-ûDªÕgCºD5+îC§cÞ½¦³õ
w.:ÓÏSb¹lScõ©@ïPÔÙü¢û[jr²ä/¢H2´ÜhÃÐÅÈ~BAJï4Öðx,Ü·ÔλºáòJrûà½ñÔHÖ*NgÜL}´ì}z!ú8¿ùSo
+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óÊ=çúwaLYÊáé^%¯u¡`ôÙã
+[ ãðZp´f²Ñ¸+
+Ámh^^ìD ·®íUH(Â
ö¹´¥ÐNòR§
+û^°?Ô
+H*ýr:dÊ3Í D^8i ¡RUó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çÍJeúüX!èz¥J:`B4¶s(e2îJ,¦µ£N,(+¡µö±ê
+õ33Ü}\8m¨
+½÷÷ÅÉT]UÅåòíÇ1â¬N¿ñ×>@¾Ì_É,Xý×¢å{HÈzã":.~¢Æn§)\HÖOYxØÙGÚa¼ÝÛäu$9ÐkPªk~Ð"e±qÏt¢íSÜ`nÚ £Ä×õ¼yhg Sl¶§wrmx³¢(ü3±A&ÑsG15zY£Ô[A°ìÞøýËRPľÐË+~þ°ôíÌÐ+ëeúW%bBªH¡R@Ãnö"æú!þ/~iª (½ØK¥PÎDêïêǰдý°n¶úþ1YüsT1â,q°!ÂÀÔSc{±·¥é}ê¹ôVÈR}ã2ü±sWÙJnâ&=2¡TmâkW·óÆ}°²:blê¡zZoÙO7þÈ=ð@k~
+äîé:ù7´©#Vt4ÁBà!&Ølª¶y¡>\: Ýê¦ÝáxQoYFú´¿Ä=ó
=×=?ã¿£Saëph¢°¨ °G0T6ÿ@è¬Äºiò³ìG²
+¿rrU¤ÒñH¢ÿ\¶ÀÂfüG9·=©a¾£Þ>:8äx«, Ik¡aѼãõ:¸æV7ÿ°ø
endstream
endobj
74 0 obj <<
/Type /Page
-/Contents 76 0 R
-/Resources 75 0 R
+/Contents 79 0 R
+/Resources 78 0 R
/MediaBox [0 0 612 792]
-/Parent 86 0 R
+/Parent 90 0 R
+/Annots [ 75 0 R 76 0 R 77 0 R ]
>> endobj
+75 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [330.869 471.816 337.461 479.582]
+/A << /S /GoTo /D (cite.tjart19) >>
+>> endobj
+76 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [160.234 460.857 166.826 468.624]
+/A << /S /GoTo /D (cite.tjart05) >>
+>> endobj
77 0 obj <<
+/Type /Annot
+/Subtype /Link
+/Border[0 0 0]/H/I/C[0 1 0]
+/Rect [253.936 460.857 260.528 468.624]
+/A << /S /GoTo /D (cite.np145) >>
+>> endobj
+80 0 obj <<
/D [74 0 R /XYZ 132.768 705.06 null]
>> endobj
-78 0 obj <<
+81 0 obj <<
/D [74 0 R /XYZ 133.768 667.198 null]
>> endobj
-75 0 obj <<
-/Font << /F42 79 0 R /F19 80 0 R /F49 81 0 R /F54 82 0 R /F59 83 0 R /F61 84 0 R /F8 85 0 R >>
+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 >>
/ProcSet [ /PDF /Text ]
>> endobj
-107 0 obj <<
-/Length 939
+114 0 obj <<
+/Length 940
/Filter /FlateDecode
>>
stream
-xÚíXKoÛ0¾÷WøhìZO˧¡ëkÛiRìPìà¦Ij /8Nîפ$Çy5M: -cËHë#ùL4¸>IÝýkçäô*Ë&!5:ý dÚZe *èÜ·áù$bá8,¬{ÍÓ,úÓùqÂ@PTÀ>üº:ò$×\£À49KrYQ,s®Âï uÒ&Q,ÒðæpuëÒ*Cáþ;Ûë4ç¡ØªÓ´TÂqr)^¥Þ¤rrþ*j¨|\áÖ[UgX&Q¬Òo2ÏwÝ^±ò#[9&ÓL;PýÛ=¼m³rgV4cÏÚáí?#Îcø
-»CgçyR5³¯éMIvÇ¥ð=`Q¹dRP+ø R×wæÃå¨Û
«WMv4nqå@,ç ÛxÙ¯ó±Xp¤2_ö2~ô²C½ T-(¹è"BSgÏ¢ë¡í®*Rùi{iÉ&På!
-ê·IijðÉ";*Æ7á3|6QdCÖ92=ãÜwï*uÅE8q6T÷Ø!/
Iñeõó·½ 4ó¾3$ï.ð$S·Â3Þ±]CF
-F4Ung;HÂÌa×HîE" 7ÂïË!2ç(âHdÛÜ'ß3æÄÈvÙA z";·úç¡ü»¨$ìd¶³çf]rç¦<ººaR¯
-XwªüÝñ^`\¸!PÿDÜu«®rà=FJYÖÇânèÉèmB975ô7_PÅ&8Q¼³ÇÙkÔ- Õþ ªÉØÛæY\5ÂÍw45>·BR,ÅopÁìCº OÿCã m"½DÌf®z¯VÒ(%Ð밤ж´9lû6^`Ûqctãj/tX¯Ë$3
-¨Ízh_)Ûò7Ú±·(v
-ÛÐó>`wW
-¨÷Oíh»ÖÜ¥rº(¾°Å)l·În£¢ªç¬$¬6&j¡÷svW{RlgÀÙJ|ÔþCO¯kÁM¦å+\ÔZ ®µ©TN$û´ÈFì[Âp©KXe#ïf¹õ¶7w\D¹±7Z4õmxµðòü8T$®BÙâeïps®¤u鶰lÏ°TÇÂtw¨å:«fJ&3hR-ýß`íÅrP
+xÚíXKoÛ0¾÷Wøhìêéȧ¡ëkÛiRìPìà¦Ij /8Nîפ$ÇI¦I´rplYi}$?aÁ0`Áõ s÷¯ÝÓ+î©Rt2é¤&Hu'RÝûà6<F<DU¿~Gº?N8bA9ìïkØaAd©HQ bÁw¬(ÅÐáw!ªiÓ(,¼§\½ª°ÊP¸ÿÎà6)ËD(·ê4
+pL© æ W§NoRA9gB¿ò
+F*ä#¸õ×Õ
IkÆð¦²l×í+?°µcò§Tÿv§AcoÓ¬ÂÍØ·¶ExÏó~`e#ÂÞÈÙyNTÎíkzSÝq)|X´³bRPiø R7pæÃå¨Û«WEv4nqí@< ÛxÙ¯ó±X
+0z8zÙ¡^DAPêÂA tK)ógÞóÐö6@L}Zà^ZÒª:Té@ý6D'|²ÈóI$Lø#¦uÙ¢uyILÏ8÷àçÝ»ÒE]>BN
+ÕÕ=vÁKaY? âí`·fÞÂwÆñÝaêxÆ»
+¶«É¨ÆÐÈ¡ílI{B"àɽHd*Fú}Ù!DæElûd{Æ<Ùn";TOdç¶ @ÿ#}ÌvöóÜѼGî\3W7L«BëN½;Þëq CSK7ê_»jÔU¼ÇHkËú8ß<y½M)gà¦þKªhÓÅ;{Øy-i@½?Ãrº ö¶yWqó]MÏGñ-.Øù.(ØhM¤ÙÜUïåZ¥SrºÒ0ÍâÀ¦Õl;Î`Ln\-â
ª
+`¹âF5£Yí+U3QþF;öÅNnûz~¢Âìîj¢!õ¾q×[`¡TÌŶ8¹íÖÙíTTöUk¢é~ÎÐjw½'õ¨f¼¯ÅGõà?ôôóÜ©I¬[¾ÜÕI:iêçc*æeÛ©µâ¶iµÀ¾%¬1PzµÕ6ònV[opÇEûãeSOàÙW³/ñÇÿCEâf¸i-)^ö7çJúXnKÉ÷K},Lw\³êi®U¢öĤÊÿ
+Ö\|Ù=ù$
+r&
endstream
endobj
-106 0 obj <<
+113 0 obj <<
/Type /Page
-/Contents 107 0 R
-/Resources 105 0 R
+/Contents 114 0 R
+/Resources 112 0 R
/MediaBox [0 0 612 792]
-/Parent 86 0 R
-/Annots [ 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R ]
+/Parent 90 0 R
+/Annots [ 94 0 R 95 0 R 96 0 R 97 0 R 98 0 R 99 0 R 100 0 R 101 0 R 102 0 R 103 0 R 104 0 R 105 0 R 106 0 R 107 0 R 108 0 R 109 0 R 110 0 R 111 0 R ]
>> endobj
-87 0 obj <<
+94 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [132.772 634.321 212.801 643.188]
/A << /S /GoTo /D (section.1) >>
>> endobj
-88 0 obj <<
+95 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 622.366 214.236 631.273]
/A << /S /GoTo /D (subsection.1.1) >>
>> endobj
-89 0 obj <<
+96 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [132.772 598.516 347.624 609.315]
/A << /S /GoTo /D (section.2) >>
>> endobj
-90 0 obj <<
+97 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 588.493 214.236 597.4]
/A << /S /GoTo /D (subsection.2.1) >>
>> endobj
-91 0 obj <<
+98 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 574.605 219.367 585.255]
/A << /S /GoTo /D (subsection.2.2) >>
>> endobj
-92 0 obj <<
+99 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 562.65 380.749 573.489]
/A << /S /GoTo /D (subsection.2.3) >>
>> endobj
-93 0 obj <<
+100 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [132.772 540.453 299.355 551.532]
/A << /S /GoTo /D (section.3) >>
>> endobj
-94 0 obj <<
+101 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 530.71 214.236 539.616]
/A << /S /GoTo /D (subsection.3.1) >>
>> endobj
-95 0 obj <<
+102 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 516.822 219.367 527.472]
/A << /S /GoTo /D (subsection.3.2) >>
>> endobj
-96 0 obj <<
+103 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 504.867 312.716 515.706]
/A << /S /GoTo /D (subsection.3.3) >>
>> endobj
-97 0 obj <<
+104 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 492.912 322.618 503.751]
/A << /S /GoTo /D (subsection.3.4) >>
>> endobj
-98 0 obj <<
+105 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 480.956 312.735 491.796]
/A << /S /GoTo /D (subsection.3.5) >>
>> endobj
-99 0 obj <<
+106 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [132.772 459.039 325.706 469.838]
/A << /S /GoTo /D (section.4) >>
>> endobj
-100 0 obj <<
+107 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 447.083 404.5 457.923]
/A << /S /GoTo /D (subsection.4.1) >>
>> endobj
-101 0 obj <<
+108 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 435.128 247.975 445.968]
/A << /S /GoTo /D (subsection.4.2) >>
>> endobj
-102 0 obj <<
+109 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [132.772 413.211 313.791 424.01]
/A << /S /GoTo /D (section.5) >>
>> endobj
-103 0 obj <<
+110 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 403.188 214.236 412.095]
/A << /S /GoTo /D (subsection.5.1) >>
>> endobj
-104 0 obj <<
+111 0 obj <<
/Type /Annot
/Subtype /Link
/Border[0 0 0]/H/I/C[1 0 0]
/Rect [147.716 389.3 219.367 399.95]
/A << /S /GoTo /D (subsection.5.2) >>
>> endobj
-108 0 obj <<
-/D [106 0 R /XYZ 132.768 705.06 null]
+115 0 obj <<
+/D [113 0 R /XYZ 132.768 705.06 null]
>> endobj
-110 0 obj <<
-/D [106 0 R /XYZ 133.768 647.382 null]
+117 0 obj <<
+/D [113 0 R /XYZ 133.768 647.382 null]
>> endobj
-105 0 obj <<
-/Font << /F77 109 0 R /F67 111 0 R /F8 85 0 R /F84 112 0 R /F11 113 0 R >>
+112 0 obj <<
+/Font << /F80 116 0 R /F70 118 0 R /F8 89 0 R /F87 119 0 R /F11 120 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
-116 0 obj <<
+123 0 obj <<
/Length 3013
/Filter /FlateDecode
>>
stream
-xÚ½ZKsãƾï¯àÍPÅ1À` l8JU죲Sç Å, (¹òúקíÊÎyôÌôóë&í"Y|ó&çÍý¯þ\cã̺tq¿Y,W.\^Äi/î×EæjiLGwW&j¯2àåØ]-³$ZWøµë¨ïß÷e&®ò(&eÅ¥Pa³Ñ÷5|vð¯kñußðürQÅKÌ6eçßµWi½¿J¨=-
-ÛZßÚíÕÒfY´ÅþÿQÏ
-[ÓhCÞ#æówÔ¸ÿ¬Jæ罡ٹê#¾Ò¢
-¬àýøR¯pÒ#m;qf/iìZ^ó§ÄX\q= Ø@''.òÉûÄ` >ËDw%$ê=í6ÝgéÙ ÁUQ-´©ÃdêYudïîÆs¶kzÝ5Îßëééý)Éònb«1`Ó*ËÜÂ1éxµ¨ÎÂÅU8"Sç ±¼^è«ÁÉ.ɦilâStKX¼éþaæË,Ëá#I¹×Åò tö(¼¢ý
-'yl;tçNRÆUêeñöíÛ9dIª#@À`Äi
-J±Æw=?ÐW¨@<TT<Ç'¸
-ÕóóÏ9êxGu½£è3õþÓû¶!Ý=ù
i#1ÚK3r£vÏ;hÔy-¹cǶ§+f
¸³Új³æÖ³^ÞK~I}e¢¿t¸Ö³ú®Á} 4Ê\
-ìÈA4°¬HGK«<0#°OHÑ;VÞÛNà®ödì?è$®áè=(bÆãð`Z°¼](AíÔ
bMçh·=±v¡{#wÐQí{f at Z9vR2
9×ÉG»æTLê
©
¬{èª#Å°wqCÏG"ÀhÁæBUÀò«h:ÜôS-%K
-zxy£FðE#,hÄ=RD¿þDÊë
-þÃUiI+lÂ2lìóNìy9Õeê$K¬yº1Læ£;"bk2zØ¢(WíÆ"lÙ
-«fabæ$v KßåÄàã÷¶Q¡BëeÇÖ°áÜKRÈ{#}¬lù{M:ó)x'cûf «½èlï
-¨§ cAUÖãÀõÕÒA'L,`vÀÖÙVgéݬp(/¾¤»^³ÜD¹9B(â UJѺçEvòÜÈjʲP9 ]ML?Ç2>2W££
-o¦Èo8ü
-kÌÄS©èygÜbÝr_ J§ GúÖÜy" w°X#H»dÆ«`¼þö;úÃ1$:£á¹ê·¬Ul ÔÄyÑÉ\kæhÃ]®hÝ"ú¥"©ps:* )È
Ql·Ö´L]Üê_/;5ýá~ð³ªôÛG.Ï0`9/Ú9nÄÛ9Rè5=<bs²ÓÎy%á@bA at 6!@ä@eST: Pi\õæÊÎÿ³Ên
-òLèmr´×ß_®Éɪ )%3¨°9D;7E[ _ÏìϱÉ=Cnæh%à>½üWîÎ?%õýqF at I\Tégß©a
-ÒÏr,¬ûG4BF)²<a¿ác tÖOÞ[×b9«ÁN©ÐFKÇßU
Èv*ÍÛî °¥
-â&u]³§xZ/ôÄ6ìí53Á^tÀ/oÁ/¼eEf¸ÖQ>y
×í8ôÜn¤»æ¶¯ða¢¿AÛáï¼?®rããE5¡ÑµsÉ_îâb0ßÝ ,eZ{`ªÒØÚj6 `%6ÖIöBp¾|ä`Þvß=¨rÀç %+8*´LZfäjÀ¾¼"EÞ
-N@í^äýnäJi;´ ¤c¢¦FÜ> GL /¸à§<û
-x0Eï«Î Â2Gõú6Í@ ëTG;Føï°À?SØ+÷ ÇW|~GÄøø¨h¼á¶r{Øø ìfRn0+ðÙçÞÿ[HFËJTô=KmfRnBhÞ#ÿàSÈÇ ÃA³U(Éðrm´JÂãf9Ue¯ëxEÖ=붴ýL»R}Õª
-bglÅKP=º
øÚ3&(ERûD¹0öUa^6".rÆ£Èå$m{f-_´}#`K
-~§üúEë8~"!åM}Þ 'wÃn'iÏQ¤¥Þ¡x 2Å¥&@iP6fpGµcJQü¾0¥ò9Y-´QÐ4\-M8M}lب±cÑý4[©N/JP¤NÿÏ"µ¸4ðgË=z×',Ä
-·bý°IzÐúGn/·H~9ÄÇξÑòrìYæ6¢RÎ\>Rýè×G!Øm4á
- dïDÿx 8yH÷ϳ7#%Bª¬°´H¡©;õÇ&øZãCÎÔÈø°HÆ·*Å("Ë"ÎUúðÀndç¼42ÓÃCp/aûÀ鱯FÜóͯñàÇ J©øÈ¢[ë@¹Æw2¤#Oj«ØúáÝ\ÉØ»á%j-ßà}E=l20Úq]cHµ«áÌmwô®;ÍfÊÇШÚC¼©÷ýcÓAúúçÔJ1ØíùE¶>*,çÙÏg;¡¹ÏG]ëß!3cÌ +â¤Ä°{ÄÜr½ö²äg³C8lnÍ> lðLr¦{%bÓQîÀ6<f5[Î}eZ÷ëuɽÁ¸Ä¹å÷Þûßñ1,¤(xÅ
u3eóÖ×ë°.e
-Àè".0aF±M®áãMLjÂûO\hºpêkÎT3'í;r
-oÿ°K/¦·Rº%WT\¸Å²*bSNRÖ«ßèÂú¡¶Ì*ݵâÍAiF·G-Nùmk$¬78n %Â;eV2«0E«òIBÌajóðÝþLîf£$L·ÇÐå0A:úûHשç÷ûn¨÷õ'zswóÛ]Ë£=Ô«¡zó1Ò¬ÐûBÒÖàZýî¹×»[~Ç>_.° U¿UüZ+Îå8EWÊØ3(úÎB8<ù"^Êå
£àÈ÷.)² ¬¬ª7¨-õ¿
-» ØãHŲ,2-)æÕkMR|kZqi&>âÇqú8w;§¥ù-n.Ëñ
-ÿ,´×Ü0 Â\ äØÊzÌ|lðIy»J¾å²£³ÃE$QMÞ0$ðÓ ¶/CÌ`R¤ù«CÝÐ|1nÈÜp£
-ñ@Hcz QQjp1fÖó-®sé«&Uû`aÖé-AÚè?b-þDcíôÆÖÛ;)p:ælC·©«hºjÌðNÿLÇ« döܱV~5¢´±©HÈë=yßÈ<öñºµðÇf^ö¾&¤7#ý¶;!6³AÖ°Î2ç"X#--_¾Ðè]pÿ@
-5/·§ø
-²º«Í±ßß8Êʳawé©$ÀV¡üX#~Öh ¬ÑºrÐáUÃÝ]+/+J*¬¤AFéÝ+5kËí \
-µíQ¶EHÝÿÌla\Cú¥Õ¸,%ËÎFcþtÿæ
-Æ1ó
+xÚ½ZKsãƾï¯àÍPÅÄbÁ Ø*$%väªØ)Ge§*Î"AYPråõ¯O?ZÉÎyôÌôóë&ûE²øæM"Ï«Û7o¿.
±qf]º¸Ý,LÅ
+./â4Ë·ëÅ¿"s±4&Í£µðrè.YO+üÚvÔ÷ïÛo¢«<'Ébfq)bÆälôC
+Ç-üëZ|Ý52QÅKÌ6eçß´i}¸H¨=-
+÷µ¾µ÷KeÑ=ö·øzVØFkòi4¿¥~øüÈý'mT2{ì<íÍÎ]Tðmx`ýïÄz
hÜk5;!ÐHc×ò?'ÆâëáÀ:9qOÞ$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¤xn !Ý?Íae9|d")÷£XÎ
W´¿ã$ÏÍcgóîÜIʸJ½,Þ½{7Ç,Iu8-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,/BDPD[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º1Læ;"bk2zØ¢(WíÆ"lÙ
+«fabæ$v KßåÄàã÷}£B
Öó(+aé¥÷. FúXÙò÷tçS ñNÆöÍV;ÑÙÞPOǪ¬ÇË¥0O YÀ>l)³3ZNÒ»YáQ^|=Jw½f3¸rsPÄ>¨¢uÏlå¹Õe¡r8A"º
+~e|`®,GGÞL1ß$*:pøÖ§.*R%Ñ;òθźå¾@8
+Nô¹ó49Eî"a±FvÉWÁ:xùÝ÷8ôÇcHtF/öÂs
+ÔïX!ªØ ©ó$4££7¹×Ìл\ѺEô>JERáætTR£Øniº¸'Ô¿^vj úÃ#}ðªôÛG.Ï0`9/Ú9nÄÛ9Rè5=<bs²ÓÎy%$ " È&üó¨ lJ*«³¾Õü±WYÓùQÙMAI ½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üü,øÂkvQdkå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ã
+·íÛÃÆ`7r @XyÁOf{ÿï -+Q1Ò÷,µq^I¹ 5¢y/v@JüO!&pÍV¡$ÃËMh´Q8]pÜ,§£ìu½¯èÁºçoÝ¢ÕVv iWª/R :ãAUALðLx ªG·_{ÆÐ¥è@jh1gæÂÞ"³±£*ÌëÒFÄeAÎr°¤ÍaϬå+PS¶kl©Áo_¿j=ÇO$¤|£©O[áäÃvØí$í9Tâ¡Ô;T¦¸Ô(
+ÊÆî¨vL #jߦtC>'k@³
¡"úök[«¥I§©
+5¶u,Z³fk3Õé¥R ÔéÿY¤þ,s¹GÏòzä
¸ávR¬ÿ"¶â# s@ÂZÿÀm¡ãåÉÏ3çØãØÙ7Z^n5ËÜ&£RÔPÊùËGªýú »&ܳ!Ìñ½è/'ÏiáÞñyòæs DHv)4uÇ¡>âââØ À_k|È¿éPÑ8ñVR¥ÅC$q^@Äù³JØìÆ0`RfzXbî%Lcï9=váoÕ{£Y0ó5ü@)Ytk(×ðNôläIm[1¼+{7¼¤òB弯¨MF;®c°kÌ©c!yß¼«!ÇC³ò14ªö¢@çP@Ac ïgA@ê}ÿØtþ¾þe5RvûÂg~
+Ëy6ãóÙNhîàóQ×gDb çºâÈâÌ3È8)&1ì±g"·\¯=/ùÙlà Û^³h%<é^Øt;°
+YÍóæ@_§ÖývÝÅeroc°".qjù½÷þw|Ì Kã )
+dqaÝLÙ|¥õõ:¬KÙB0
&ºLQlkøôA¤ðþ.zâ3ÕÌÉFûNÃÛ?ìÒË"énÉgîg±¬Øõªæê7º°~(-³ÊF7xsP¡açõAS~ÛÚ% ë"kBëäc$Å°ÄN
Ì*LѪ|P¦óg EZÁ<<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ÔE7 ütmÆ˳ iþ*ÄeàF7ô _b f§2 7ܨB<Ð;/êÞ"@T\Ì£¦õüAK
ëû* IÇ>XØuz@6úX?ÑXû½±õ}Ã8s¶¡ÛÔU4]5fx'Ï¢KÁÊcJáUO2{îÃX+¿QÚØT$äõ=M odGûxÝZxc3/{_R~×Ù kEXgs¬/_hô6¸ ÛÑ
+ü@YOÝÕfFÊØïoeåÙ°;à ÎôÔV`ÈF«Ð{þ¬?Ck´ÖÖh]9èðªáî®%VRÌ £FôîÇÊƵevG®Úö(Û"¤îf¶0®!}ÄÒj\eg£1¹}ó?Äî1¯
endstream
endobj
-115 0 obj <<
+122 0 obj <<
/Type /Page
-/Contents 116 0 R
-/Resources 114 0 R
+/Contents 123 0 R
+/Resources 121 0 R
/MediaBox [0 0 612 792]
-/Parent 86 0 R
+/Parent 90 0 R
>> endobj
-117 0 obj <<
-/D [115 0 R /XYZ 132.768 705.06 null]
+124 0 obj <<
+/D [122 0 R /XYZ 132.768 705.06 null]
>> endobj
2 0 obj <<
-/D [115 0 R /XYZ 133.768 667.198 null]
+/D [122 0 R /XYZ 133.768 667.198 null]
>> endobj
6 0 obj <<
-/D [115 0 R /XYZ 133.768 647.382 null]
+/D [122 0 R /XYZ 133.768 647.382 null]
>> endobj
10 0 obj <<
-/D [115 0 R /XYZ 133.768 332.852 null]
+/D [122 0 R /XYZ 133.768 332.852 null]
>> endobj
14 0 obj <<
-/D [115 0 R /XYZ 133.768 304.216 null]
+/D [122 0 R /XYZ 133.768 304.216 null]
>> endobj
-114 0 obj <<
-/Font << /F77 109 0 R /F8 85 0 R /F11 113 0 R /F7 118 0 R /F67 111 0 R /F90 119 0 R /F92 120 0 R >>
+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 >>
/ProcSet [ /PDF /Text ]
>> endobj
-123 0 obj <<
-/Length 2133
+130 0 obj <<
+/Length 2124
/Filter /FlateDecode
>>
stream
-xÚX[Ó6~ß_YúàÌl-ß·¥¥e
-lZ¦ìðàÄNÖ¬c§±³ßs-'^ZZa#YÒ¹~ç"¹³Í̽ºpå÷Û§/YªÒHG³ÛõÌó}GÉ,
-c¥ýpvÏÞ9ïÝÐ{Îð§
7_ø^èd5Ìsw0¼+àÏþkøÓìÙVÁ¬²¶áFÎÃ<ð?ÃÕ²©y+~©'N
@×6´!#ÂÓáLÍ;¯¹Oø§xëÄ!É®pkbÞ!ëlÕ +äq5ÿpûgáy*
-ÅÐQ÷H'?àÖuǯ5òÁ[,ç9Å×@Ö5ïaÛá8&V-nÐRȾ¨ùCãÃ{×GÉ Ç«¸³á!®å©Lë#³wÐNÜô×[áU¢ß6¼¸BçÌJöh'-ðéNXTè_[ÅÐQß÷Gþ)ó@ʦ!úà&4[ìífIÞ$O¡qÛÖ2
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/adegenet -r 887
More information about the adegenet-commits
mailing list