e1071/0000755000175100001440000000000014672000036011023 5ustar hornikuserse1071/tests/0000755000175100001440000000000012212345174012170 5ustar hornikuserse1071/tests/clustering.R0000755000175100001440000000033314173734135014503 0ustar hornikusers## cmeans clustering should also work on data frames library(e1071) data(iris) set.seed(123) cm1 <- cmeans(iris[,1:4], 10) bc1 <- bclust(iris[,1:4], 3, base.centers=20,iter.base=50, base.method="cmeans") e1071/MD50000644000175100001440000001172014672000036011334 0ustar hornikusers1c81c392c5d8b8a306e6761de06ae76b *DESCRIPTION 982e8477f7b00c70533f633e265ad65b *NAMESPACE e8db4b66edf88cba9f12e4b0498fb742 *R/bclust.R b6dce356797c9f7cb3077469773b030e *R/bincombinations.R aa8bc82108cc500067f9f46a973cb1d1 *R/cmeans.R fd4d3eb836e8d3c0cfcdfc2ea51950c3 *R/countpattern.R 27d13b1b67006a82641886f51d02e2da *R/cshell.R 971efff8ec1f8b3a4a0f3dd6c58e4014 *R/discrete.R d41d8cd98f00b204e9800998ecf8427e *R/e1071-deprecated.R 4287fb25fb942b55d950e9de2d1aaa36 *R/element.R 3db01176430fe3f275e2a344476d2956 *R/fclustIndex.R 1a7bbce6f191976a433fac624f4bc352 *R/gknn.R 6daec6d2db476530b6d439af0aafdce1 *R/hamming.distance.R 56906cfd1a1ce8fcc772e85fc39f0325 *R/hamming.window.R 3c39c73411e9280258b9e5043a654900 *R/hanning.window.R b7afef78d7b3bfac19b3055a0757410a *R/ica.R 0a3d0a8de11821b3cacd9ae5ca508d59 *R/impute.R 7086a3457d63ee76c4e17555c7ebeaf8 *R/interpolate.R 16536adfb4a3b2b639e7a9f30b36ef87 *R/kurtosis.R a80e8dbdf74e45dd91d2c70d425d92cd *R/lca.R 2cfaaf8eb47a18898183615f1f6b8c44 *R/matchClasses.R e1a0bc54714aa36210b46236bea1fd50 *R/matchControls.R ac88f22d04fa8e5745033f4b67bb8beb *R/moment.R f5c9270a10ba4ae08cb4e526226eef03 *R/naiveBayes.R 8e1ad1d11cc51d56f3567d0465bb1b71 *R/plot.stft.R 89c1c475c981b0ee83ca5663f1b1554d *R/probplot.R 387e1108e948f03d5aea9649e368b699 *R/rbridge.R 3789f8392daf68d346c780027d5ad876 *R/rectangle.window.R 37584ee4f166291d086f2597090ae0d8 *R/rwiener.R e8ffd78b776e92a731f11e8bd5beb15e *R/scale_data_frame.R edceb942c772b6cd6b28ff5154d3f392 *R/shortestPaths.R 48af933aaa58ec5f8619f9e0537b78ff *R/sigmoid.R c81f35fe8c448b8d8f054e77ded9c3fb *R/skewness.R 326c8c290cc1063b4e186ee94402a616 *R/sparse.R bed8f86b4b9c45ebf4c847960b7a6824 *R/stft.R 5442c3e5e3f0954c0ab7a023e7f7e959 *R/svm.R 5c6e3ee47a44caa44e5a246063cee71d *R/tune.R e61d16a4b1a8c3c2a1531728a96340c0 *build/vignette.rds 68626e61ce610c6721d972902a12da4e *inst/NEWS.Rd d21d74fc8cbec7080242794d7fc0ba26 *inst/doc/svmdoc.R 081f05623463a7fa3c617ad45f7069a9 *inst/doc/svmdoc.Rnw 413ced236ba48c2c1259df12b3904ddb *inst/doc/svmdoc.pdf 933b9271f77c78689c5b152376fe680d *inst/doc/svminternals.Rnw 741070b45365df06202034c02e8d186e *inst/doc/svminternals.pdf e7d7541d75e4ecda9570a9f8f90d2439 *man/Discrete.Rd e1741200d5204babfd7752fd283e03e8 *man/bclust.Rd 168807874afed9032ae4b1732f25a73e *man/bincombinations.Rd 0e3344d6bc722ca82c755c346d3bd524 *man/bootstrap.lca.Rd 964b1c10eea943f824c2865c9d728249 *man/boxplot.bclust.Rd 8603274376f301d1d9ddf5a096c4b765 *man/classAgreement.Rd 5394b0243c4f5ea7d0adc29d906e9615 *man/cmeans.Rd 1f2181682f48caf798cb7d49bd7f3c07 *man/countpattern.Rd d9d767fa46dda39f428f73555ba21d23 *man/cshell.Rd e9df0cc673e6fcbb343ddb75ab347c0f *man/e1071-deprecated.Rd fb37ec4196c22c3702a7f83616f0f132 *man/element.Rd 36da964aaa376b6e05fc9f696fa270da *man/fclustIndex.Rd c0db4ff8714f87f8cc868612d1dac379 *man/gknn.Rd 88d0e6f9c58e13547be01a5c53483321 *man/hamming.distance.Rd c4a293671687db22aedd5d1bcd4cb670 *man/hamming.window.Rd b14517cf4646473fb9c342fafbceb4b3 *man/hanning.window.Rd ab9bfe34bf36c1d7d728f7e40a97e29b *man/hsv_palette.Rd 03db09cc98b364bc8220ce2d0f04be43 *man/ica.Rd 8122102191f249f0b38a07292f3e6ac5 *man/impute.Rd e39603b710ecc4a5f3ac9545344aea83 *man/interpolate.Rd 4c9ff24c9bd4ba15ac8005964b0a46f6 *man/kurtosis.Rd af416938566e2bfacc767d33908a5fc3 *man/lca.Rd 2c4b89670725817a00a37b1e4c2782ad *man/matchClasses.Rd 67f40907ed7de0fd6a019956ad2221eb *man/matchControls.Rd d7d971f2e38d972135df9dae8babf2d7 *man/moment.Rd d85b6a16d76b0971e2ee98aaf8ad0c4c *man/naiveBayes.Rd 694a2cbf822a403fc9a6a1c9ac408b37 *man/permutations.Rd 4c5574df4e6adeb8520097531cc02234 *man/plot.stft.Rd 027c1963b36b104e9d4e5584fc78e57f *man/plot.svm.Rd dd163128b5fd3a26a3142787cfc0f500 *man/plot.tune.Rd 6c5c209c6af13e83d78890033eaa06c3 *man/predict.svm.Rd 25c76212b1f8cb24c5ed64ff60283412 *man/probplot.Rd b47af3167e2df93d92a5a74949eabf7c *man/rbridge.Rd 3f17fe6c456abcb866ead028c1935bce *man/read.matrix.csr.Rd 233e2fedbbd374142e6747bf74a3fe95 *man/rectangle.window.Rd 16b7402d275eb839a9e2de21f5c3ee27 *man/rwiener.Rd 729d268bb006a7273520cc1b151b49fb *man/scale_data_frame.Rd cc985e432831de33f9dce6832388a00c *man/shortestPaths.Rd 8b5d2082ad2377650db04cb01a963e99 *man/sigmoid.Rd 5dbf4948c6c7ead41a658be75a24e3fb *man/skewness.Rd fe077a9a20d0e3349a32a3369758f97e *man/stft.Rd 781b6f6acc056c672e9ad2f4ec25b460 *man/svm.Rd 7252b01ee4a9b9c7576efa1ce93d9d55 *man/tune.Rd a920400b80897304d8c7e7c861a3eabc *man/tune.control.Rd 15d610bda133f5de095350ca73b8013f *man/tune.wrapper.Rd 5d842f7e574d57c03ba5acf39a14bd7a *man/write.svm.Rd 62ac92a3511202ebdc653874d8f27f93 *src/Rsvm.c 71dbe4e867b5c029eb630a96aee6f552 *src/cmeans.c 050b21afdf680cb53c7ad07985f34bd6 *src/cshell.c 3e8de7ef56baf940ba9fb88d6e73617e *src/floyd.c 3f15bfd42342c6dba3813acbc77f1821 *src/init.c ca6a3b182d63c83f0898f41c87ea7200 *src/svm.cpp 4f931941b24dc9018fb40924706039dd *src/svm.h 0cf3205810ff1e471ee07ab3d4c2bfad *tests/clustering.R 7f8951b054765414b6c2bdf282954286 *vignettes/svm.pdf 081f05623463a7fa3c617ad45f7069a9 *vignettes/svmdoc.Rnw 933b9271f77c78689c5b152376fe680d *vignettes/svminternals.Rnw e1071/R/0000755000175100001440000000000014671766074011250 5ustar hornikuserse1071/R/sigmoid.R0000755000175100001440000000023314173734133013013 0ustar hornikuserssigmoid <- function(x) 1/(1 + exp(-x)) dsigmoid <- function(x) sigmoid(x) * (1 - sigmoid(x)) d2sigmoid <- function(x) dsigmoid(x) * (1 - 2 * sigmoid(x)) e1071/R/hamming.window.R0000755000175100001440000000023114173734133014304 0ustar hornikusershamming.window <- function (n) { if (n == 1) c <- 1 else { n <- n-1 c <- 0.54 - 0.46*cos(2*pi*(0:n)/n) } return(c) } e1071/R/stft.R0000755000175100001440000000144614173734133012347 0ustar hornikusersstft <- function(X, win=min(80,floor(length(X)/10)), inc=min(24, floor(length(X)/30)), coef=64, wtype="hanning.window") { numcoef <- 2*coef if (win > numcoef) { win <- numcoef cat ("stft: window size adjusted to", win, ".\n") } numwin <- trunc ((length(X) - win) / inc) ## compute the windows coefficients wincoef <- eval(parse(text=wtype))(win) ## create a matrix Z whose columns contain the windowed time-slices z <- matrix (0, numwin + 1, numcoef) y <- z st <- 1 for (i in 0:numwin) { z[i+1, 1:win] <- X[st:(st+win-1)] * wincoef y[i+1,] <- fft(z[i+1,]) st <- st + inc } Y<- list (values = Mod(y[,1:coef]), windowsize=win, increment=inc, windowtype=wtype) class(Y) <- "stft" return(Y) } e1071/R/moment.R0000755000175100001440000000033714173734133012664 0ustar hornikusersmoment <- function(x, order = 1, center = FALSE, absolute = FALSE, na.rm = FALSE) { if (na.rm) x <- x[!is.na(x)] if (center) x <- x - mean(x) if (absolute) x <- abs(x) sum(x ^ order) / length(x) } e1071/R/lca.R0000644000175100001440000001572714533656212012133 0ustar hornikuserslca <- function(x, k, niter=100, matchdata=FALSE, verbose=FALSE) { ## if x is a data matrix -> create patterns if (is.matrix(x)) { if (matchdata) { x <- countpattern(x, matching=TRUE) xmat <- x$matching x <- x$pat } else x <- countpattern(x, matching=FALSE) } else ## if no data ist given, matchdata must be FALSE matchdata <- FALSE n <- sum(x) npat <- length(x) nvar <- round(log(npat)/log(2)) ## build matrix of all possible binary vectors b <- matrix(0, 2^nvar, nvar) for (i in 1:nvar) b[, nvar+1-i] <- rep(rep(c(0,1),c(2^(i-1),2^(i-1))),2^(nvar-i)) ## initialize probabilities classprob <- runif(k) classprob <- classprob/sum(classprob) names(classprob) <- 1:k p <- matrix(runif(nvar*k), k) pas <- matrix(0, k, npat) classsize <- numeric(k) for (i in 1:niter) { for (j in 1:k) { ## P(pattern|class) mp <- t(b)*p[j,]+(1-t(b))*(1-p[j,]) pas[j,] <- drop(exp(rep(1,nvar)%*%log(mp))) # column product } ## P(pattern|class)*P(class) pas <- pas * classprob ## P(class|pattern) sump <- drop(rep(1,k)%*%pas) # column sums pas <- t(t(pas)/sump) spas <- t(t(pas)*x) classsize <- drop(spas%*%rep(1,npat)) # row sums classprob <- classsize/n p <- pas%*%(x*b)/classsize if (verbose) cat("Iteration:", i, "\n") } for (j in 1:k) { mp <- t(b)*p[j,]+(1-t(b))*(1-p[j,]) pas[j,] <- drop(exp(rep(1,nvar)%*%log(mp)))*classprob[j] # column product } ## LogLikelihood pmust <- drop(rep(1,k)%*%pas) # column sums ll <- sum(x*log(pmust)) ## Likelihoodquotient xg0 <- x[x>0] ll0 <- sum(xg0*log(xg0/n)) lq <- 2*(ll0-ll) ## bic bic <- -2*ll+log(n)*(k*(nvar+1)-1) bicsat <- -2*ll0+log(n)*(2^nvar-1) ## chisq ch <- sum((x-n*pmust)^2/(n*pmust)) ## P(class|pattern) sump <- drop(rep(1,k)%*%pas) # column sums pas <- t(t(pas)/sump) mat <- max.col(t(pas)) if (matchdata) mat <- mat[xmat] colnames(p) <- 1:nvar rownames(p) <- 1:k lcaresult <- list(classprob=classprob, p=p, matching=mat, logl=ll, loglsat=ll0, chisq=ch, lhquot=lq, bic=bic, bicsat=bicsat, n=n, np=(k*(nvar+1)-1), matchdata=matchdata) class(lcaresult) <- "lca" return(lcaresult) } print.lca <- function(x, ...) { cat("LCA-Result\n") cat("----------\n\n") cat("Datapoints:", x$n, "\n") cat("Classes: ", length(x$classprob), "\n") cat("Probability of classes\n") print(round(x$classprob,3)) cat("Itemprobabilities\n") print(round(x$p,2)) } summary.lca <- function(object, ...) { nvar <- ncol(object$p) object$npsat <- 2^nvar-1 object$df <- 2^nvar-1-object$np object$pvallhquot <- 1-pchisq(object$lhquot,object$df) object$pvalchisq <- 1-pchisq(object$chisq,object$df) object$k <- length(object$classprob) ## remove unnecessary list elements object$classprob <- NULL object$p <- NULL object$matching <- NULL class(object) <- "summary.lca" return(object) } print.summary.lca <- function(x, ...) { cat("LCA-Result\n") cat("----------\n\n") cat("Datapoints:", x$n, "\n") cat("Classes: ", x$k, "\n") cat("\nGoodness of fit statistics:\n\n") cat("Number of parameters, estimated model:", x$np, "\n") cat("Number of parameters, saturated model:", x$npsat, "\n") cat("Log-Likelihood, estimated model: ", x$logl, "\n") cat("Log-Likelihood, saturated model: ", x$loglsat, "\n") cat("\nInformation Criteria:\n\n") cat("BIC, estimated model:", x$bic, "\n") cat("BIC, saturated model:", x$bicsat, "\n") cat("\nTestStatistics:\n\n") cat("Likelihood ratio: ", x$lhquot, " p-val:", x$pvallhquot, "\n") cat("Pearson Chi^2: ", x$chisq, " p-val:", x$pvalchisq, "\n") cat("Degress of freedom:", x$df, "\n") } bootstrap.lca <- function(l, nsamples=10, lcaiter=30, verbose=FALSE) { n <- l$n classprob <- l$classprob nclass <- length(l$classprob) prob <- l$p nvar <- ncol(l$p) npat <- 2^nvar ## build matrix of all possible binary vectors b <- matrix(0, npat, nvar) for (i in 1:nvar) b[, nvar+1-i] <- rep(rep(c(0,1),c(2^(i-1),2^(i-1))),2^(nvar-i)) ll <- lq <- ll0 <- ch <- numeric(nsamples) for (i in 1:nsamples) { ## generate data cm <- sample(1:nclass, size=n, replace=TRUE, prob=classprob) x <- matrix(runif(n*nvar), nrow=n) x <- (xX): ", x$pvalzratio, "\n") cat("P-Val: ", x$pvalratio, "\n\n") cat("Pearson's Chisquare\n\n") cat("Mean:", x$chisqmean, "\n") cat("SDev:", x$chisqsd, "\n") cat("Value in Data Set:", x$chisqorg, "\n") cat("Z-Statistics: ", x$zchisq, "\n") cat("P(Z>X): ", x$pvalzchisq, "\n") cat("P-Val: ", x$pvalchisq, "\n\n") } predict.lca <- function(object, x, ...) { if (object$matchdata) stop("predict.lca: only possible, if lca has been called with matchdata=FALSE") else { x <- countpattern(x, matching=TRUE) return(object$matching[x$matching]) } } e1071/R/gknn.R0000644000175100001440000000772314533650064012325 0ustar hornikusersgknn <- function(x, ...) UseMethod("gknn") gknn.formula <- function (formula, data = NULL, ..., subset, na.action = na.pass, scale = TRUE) { call <- match.call() if (!inherits(formula, "formula")) stop("method is only for formula objects") m <- match.call(expand.dots = FALSE) if (inherits(eval.parent(m$data), "matrix")) m$data <- as.data.frame(eval.parent(m$data)) m$... <- NULL m$scale <- NULL m[[1L]] <- quote(stats::model.frame) m$na.action <- na.action m <- eval(m, parent.frame()) Terms <- attr(m, "terms") attr(Terms, "intercept") <- 0 x <- model.matrix(Terms, m) y <- model.extract(m, "response") attr(x, "na.action") <- attr(y, "na.action") <- attr(m, "na.action") attr(x, "xlevels") <- .getXlevels(Terms, m) if (length(scale) == 1) scale <- rep(scale, ncol(x)) if (any(scale)) { remove <- unique(c(which(labels(Terms) %in% names(attr(x, "contrasts"))), which(!scale)) ) scale <- !attr(x, "assign") %in% remove } ret <- gknn.default (x, y, scale = scale, ..., na.action = na.action) ret$call <- call ret$call[[1]] <- as.name("gknn") ret$terms <- Terms ret$na.action <- attr(x, "na.action") class(ret) <- c("gknn.formula", class(ret)) return (ret) } gknn.default <- function(x, y, k = 1, method = NULL, scale = TRUE, use_all = TRUE, FUN = mean, ...) { if (length(scale) == 1) scale <- rep(scale, ncol(x)) if (is.numeric(x) && any(scale)) { tmp <- scale(x[,scale]) x[,scale] <- tmp attr(x, "scaled:center") <- attr(tmp, "scaled:center") attr(x, "scaled:scale") <- attr(tmp, "scaled:scale") } structure(list( x = x, y = y, k = k, FUN = FUN, method = method, use_all = use_all, scaled = is.numeric(x) && any(scale), scale = scale), class = "gknn" ) } predict.gknn <- function(object, newdata, type = c("class", "votes", "prob"), ..., na.action = na.pass) { if (missing(newdata)) return(fitted(object)) type = match.arg(type) if (inherits(object, "gknn.formula")) { if(is.null(colnames(newdata))) colnames(newdata) <- colnames(object$x) newdata <- na.action(newdata) act <- attr(newdata, "na.action") newdata <- model.matrix(delete.response(terms(object)), as.data.frame(newdata), xlev = attr(object$x, "xlevels")) } else { newdata <- na.action(as.matrix(newdata)) act <- attr(newdata, "na.action") } if (object$scaled) newdata[,object$scale] <- scale(newdata[,object$scale, drop = FALSE], center = attr(object$x, "scaled:center"), scale = attr(object$x, "scaled:scale") ) d <- dist(object$x, newdata, method = object$method) FUN <- function(x) { o <- order(x) ks <- which(x[o][object$k] == x) ## check for ties on kth place if (!object$use_all) ks <- sample(c(ks, ks), 1) ## handle ties lab <- object$y[c(head(o[1:object$k], -1), ks)] if (is.numeric(lab)) object$FUN(lab) else { tab <- table(lab) switch(type, class = levels(object$y)[sample(rep(which(tab == max(tab)), 2), 1)], ## break class tie by random prob = prop.table(tab), tab) } } ret <- apply(d, 2, FUN) if (is.matrix(ret)) t(ret) else if (is.numeric(object$y)) napredict(act, ret) else napredict(act, factor(ret, levels = levels(object$y))) } print.gknn <- function(x, ...) { cat("Object of class 'gknn'.\n") } fitted.gknn <- function(object, ...) napredict(object$na.action, object$y) e1071/R/probplot.R0000755000175100001440000000367114173734133013232 0ustar hornikusersprobplot <- function(x, qdist=qnorm, probs=NULL, line=TRUE, xlab=NULL, ylab="Probability in %", ...) { DOTARGS <- as.list(substitute(list(...)))[-1] DOTARGS <- paste(names(DOTARGS), DOTARGS, sep="=", collapse=", ") xlab=deparse(substitute(x)) x <- sort(x) QNAME <- deparse(substitute(qdist)) DOTS <- list(...) qdist <- match.fun(qdist) QFUN <- function(p){ args=DOTS args$p=p do.call("qdist", args) } y <- QFUN(ppoints(length(x))) if(is.null(probs)){ probs <- c(.01, .05, seq(.1,.9, by=.1), .95, .99) if(length(x)>=1000) probs <- c(0.001, probs, .999) } qprobs <- QFUN(probs) plot(x, y, axes=FALSE, type="n", ylim=range(c(y,qprobs)), xlab=xlab, ylab=ylab) box() abline(h=qprobs, col="grey") axis(1) axis(2, at=qprobs, labels=100*probs) points(x, y) QTEXT <- paste("Quantile: ", QNAME, sep="") if(nchar(DOTARGS)) QTEXT <- paste(QTEXT, DOTARGS, sep=", ") mtext(QTEXT, side=1, line=3, adj=1) xl <- quantile(x, c(0.25, 0.75)) yl <- qdist(c(0.25, 0.75), ...) slope <- diff(yl)/diff(xl) int <- yl[1] - slope * xl[1] if(line){ abline(int, slope, col="red") } z <- list(qdist=QFUN, int=int, slope=slope) class(z) <- "probplot" invisible(z) } lines.probplot <- function(x, h=NULL, v=NULL, bend=FALSE, ...) { if(is.null(h) & is.null(v)){ abline(x$int, x$slope, ...) } pu <- par("usr") if(!is.null(h)){ h <- x$qdist(h) if(!bend){ abline(h=h, ...) } else{ v <- c(v, (h-x$int)/x$slope) } } if(!is.null(v)){ if(!bend){ abline(v=v, ...) } else{ h <- v*x$slope+x$int segments(v, pu[3], v, h, ...) segments(pu[1], h, v, h, ...) } } } e1071/R/svm.R0000644000175100001440000006570114533645520012176 0ustar hornikuserssvm <- function (x, ...) UseMethod ("svm") svm.formula <- function (formula, data = NULL, ..., subset, na.action = na.omit, scale = TRUE) { call <- match.call() if (!inherits(formula, "formula")) stop("method is only for formula objects") m <- match.call(expand.dots = FALSE) if (inherits(eval.parent(m$data), "matrix")) m$data <- as.data.frame(eval.parent(m$data)) m$... <- NULL m$scale <- NULL m[[1L]] <- quote(stats::model.frame) m$na.action <- na.action m <- eval(m, parent.frame()) Terms <- attr(m, "terms") attr(Terms, "intercept") <- 0 x <- model.matrix(Terms, m) y <- model.extract(m, "response") attr(x, "na.action") <- attr(y, "na.action") <- attr(m, "na.action") attr(x, "xlevels") <- .getXlevels(Terms, m) if (length(scale) == 1) scale <- rep(scale, ncol(x)) if (any(scale)) { remove <- unique(c(which(labels(Terms) %in% names(attr(x, "contrasts"))), which(!scale) ) ) scale <- !attr(x, "assign") %in% remove } class(x) <- c("svm.formula", class(x)) ret <- svm.default (x, y, scale = scale, ..., na.action = na.action) ret$call <- call ret$call[[1]] <- as.name("svm") ret$terms <- Terms if (!is.null(attr(m, "na.action"))) ret$na.action <- attr(m, "na.action") class(ret) <- c("svm.formula", class(ret)) return (ret) } svm.default <- function (x, y = NULL, scale = TRUE, type = NULL, kernel = "radial", degree = 3, gamma = if (is.vector(x)) 1 else 1 / ncol(x), coef0 = 0, cost = 1, nu = 0.5, class.weights = NULL, cachesize = 40, tolerance = 0.001, epsilon = 0.1, shrinking = TRUE, cross = 0, probability = FALSE, fitted = TRUE, ..., subset, na.action = na.omit) { yorig <- y if(inherits(x, "Matrix")) { loadNamespace("SparseM") loadNamespace("Matrix") x <- as(x, "matrix.csr") } if(inherits(x, "simple_triplet_matrix")) { loadNamespace("SparseM") ind <- order(x$i, x$j) x <- new("matrix.csr", ra = x$v[ind], ja = x$j[ind], ia = as.integer(cumsum(c(1, tabulate(x$i[ind])))), dimension = c(x$nrow, x$ncol)) } if (sparse <- inherits(x, "matrix.csr")) loadNamespace("SparseM") ## NULL parameters? if(is.null(degree)) stop(sQuote("degree"), " must not be NULL!") if(is.null(gamma)) stop(sQuote("gamma"), " must not be NULL!") if(is.null(coef0)) stop(sQuote("coef0"), " must not be NULL!") if(is.null(cost)) stop(sQuote("cost"), " must not be NULL!") if(is.null(nu)) stop(sQuote("nu"), " must not be NULL!") if(is.null(epsilon)) stop(sQuote("epsilon"), " must not be NULL!") if(is.null(tolerance)) stop(sQuote("tolerance"), " must not be NULL!") xlevels <- attr(x, "xlevels") xhold <- if (fitted) x else NULL x.scale <- y.scale <- NULL formula <- inherits(x, "svm.formula") ## determine model type if (is.null(type)) type <- if (is.null(y)) "one-classification" else if (is.factor(y)) "C-classification" else "eps-regression" type <- pmatch(type, c("C-classification", "nu-classification", "one-classification", "eps-regression", "nu-regression"), 99) - 1 if (type > 10) stop("wrong type specification!") kernel <- pmatch(kernel, c("linear", "polynomial", "radial", "sigmoid"), 99) - 1 if (kernel > 10) stop("wrong kernel specification!") nac <- attr(x, "na.action") ## scaling, subsetting, and NA handling if (sparse) { scale <- rep(FALSE, ncol(x)) if(!is.null(y)) na.fail(y) x <- SparseM::t(SparseM::t(x)) ## make shure that col-indices are sorted } else { x <- as.matrix(x) ## subsetting and na-handling for matrices if (!formula) { if (!missing(subset)) { x <- x[subset,] y <- y[subset] if (!is.null(xhold)) xhold <- as.matrix(xhold)[subset,] } if (is.null(y)) x <- na.action(x) else { df <- na.action(data.frame(y, x, check.names = FALSE)) y <- df[,1] x <- as.matrix(df[,-1], rownames.force = TRUE) nac <- attr(x, "na.action") <- attr(y, "na.action") <- attr(df, "na.action") } } ## scaling if (length(scale) == 1) scale <- rep(scale, ncol(x)) if (any(scale)) { co <- !apply(x[,scale, drop = FALSE], 2, var) if (any(co)) { warning(paste("Variable(s)", paste(sQuote(colnames(x[,scale, drop = FALSE])[co]), sep="", collapse=" and "), "constant. Cannot scale data.") ) scale <- rep(FALSE, ncol(x)) } else { xtmp <- scale_data_frame(x[,scale]) x[,scale] <- xtmp x.scale <- attributes(xtmp)[c("scaled:center","scaled:scale")] if (is.numeric(y) && (type > 2)) { yorig <- y y <- scale(y) y.scale <- attributes(y)[c("scaled:center","scaled:scale")] y <- as.vector(y) } } } } ## further parameter checks nr <- nrow(x) if (cross > nr) stop(sQuote("cross"), " cannot exceed the number of observations!") ytmp <- y attributes(ytmp) <- NULL if (!is.vector(ytmp) && !is.factor(y) && type != 2) stop("y must be a vector or a factor.") if (type != 2 && length(y) != nr) stop("x and y don't match.") if (cachesize < 0.1) cachesize <- 0.1 if (type > 2 && !is.numeric(y)) stop("Need numeric dependent variable for regression.") lev <- NULL weightlabels <- NULL ## in case of classification: transform factors into integers if (type == 2) # one class classification --> set dummy y <- rep(1, nr) else if (is.factor(y)) { lev <- levels(y) y <- as.integer(y) } else { if (type < 3) { if(any(as.integer(y) != y)) stop("dependent variable has to be of factor or integer type for classification mode.") y <- as.factor(y) lev <- levels(y) y <- as.integer(y) } else lev <- unique(y) } if (type < 3 && !is.null(class.weights)) { if (is.character(class.weights) && class.weights == "inverse") { class.weights <- 1 / table(y) names(class.weights) = lev } if (is.null(names(class.weights))) stop("Weights have to be specified along with their according level names !") weightlabels <- match (names(class.weights), lev) if (any(is.na(weightlabels))) stop("At least one level name is missing or misspelled.") } nclass <- 2 if (type < 2) nclass <- length(lev) if (type > 1 && length(class.weights) > 0) { class.weights <- NULL warning(sQuote("class.weights"), " are set to NULL for regression mode. For classification, use a _factor_ for ", sQuote("y"), ", or specify the correct ", sQuote("type"), " argument.") } err <- empty_string <- paste(rep(" ", 255), collapse = "") if (is.null(type)) stop("type argument must not be NULL!") if (is.null(kernel)) stop("kernel argument must not be NULL!") if (is.null(degree)) stop("degree argument must not be NULL!") if (is.null(gamma)) stop("gamma argument must not be NULL!") if (is.null(coef0)) stop("coef0 seed argument must not be NULL!") if (is.null(cost)) stop("cost argument must not be NULL!") if (is.null(nu)) stop("nu argument must not be NULL!") if (is.null(cachesize)) stop("cachesize argument must not be NULL!") if (is.null(tolerance)) stop("tolerance argument must not be NULL!") if (is.null(epsilon)) stop("epsilon argument must not be NULL!") if (is.null(shrinking)) stop("shrinking argument must not be NULL!") if (is.null(cross)) stop("cross argument must not be NULL!") if (is.null(sparse)) stop("sparse argument must not be NULL!") if (is.null(probability)) stop("probability argument must not be NULL!") cret <- .C (R_svmtrain, ## data as.double (if (sparse) x@ra else t(x)), as.integer (nr), as.integer(ncol(x)), as.double (y), ## sparse index info as.integer (if (sparse) x@ia else 0), as.integer (if (sparse) x@ja else 0), ## parameters as.integer (type), as.integer (kernel), as.integer (degree), as.double (gamma), as.double (coef0), as.double (cost), as.double (nu), as.integer (weightlabels), as.double (class.weights), as.integer (length (class.weights)), as.double (cachesize), as.double (tolerance), as.double (epsilon), as.integer (shrinking), as.integer (cross), as.integer (sparse), as.integer (probability), ## results nclasses = integer (1), nr = integer (1), # nr of support vectors index = integer (nr), labels = integer (nclass), nSV = integer (nclass), rho = double (nclass * (nclass - 1) / 2), coefs = double (nr * (nclass - 1)), sigma = double (1), probA = double (nclass * (nclass - 1) / 2), probB = double (nclass * (nclass - 1) / 2), cresults = double (cross), ctotal1 = double (1), ctotal2 = double (1), error = err ) if (cret$error != empty_string) stop(paste(cret$error, "!", sep="")) cret$index <- cret$index[1:cret$nr] ret <- list ( call = match.call(), type = type, kernel = kernel, cost = cost, degree = degree, gamma = gamma, coef0 = coef0, nu = nu, epsilon = epsilon, sparse = sparse, scaled = scale, x.scale = x.scale, y.scale = y.scale, nclasses = cret$nclasses, #number of classes levels = lev, tot.nSV = cret$nr, #total number of sv nSV = cret$nSV[1:cret$nclasses], #number of SV in diff. classes labels = cret$labels[1:cret$nclasses], #labels of the SVs. SV = if (sparse) SparseM::t(SparseM::t(x[cret$index])) else t(t(x[cret$index,,drop = FALSE])), #copy of SV index = cret$index, #indexes of sv in x ##constants in decision functions rho = cret$rho[1:(cret$nclasses * (cret$nclasses - 1) / 2)], ##probabilites compprob = probability, probA = if (!probability) NULL else cret$probA[1:(cret$nclasses * (cret$nclasses - 1) / 2)], probB = if (!probability) NULL else cret$probB[1:(cret$nclasses * (cret$nclasses - 1) / 2)], sigma = if (probability) cret$sigma else NULL, ##coefficiants of sv coefs = if (cret$nr == 0) NULL else t(matrix(cret$coefs[1:((cret$nclasses - 1) * cret$nr)], nrow = cret$nclasses - 1, byrow = TRUE)), na.action = nac, xlevels = xlevels ) ## cross-validation-results if (cross > 0) if (type > 2) { scale.factor <- if (any(scale)) crossprod(y.scale$"scaled:scale") else 1; ret$MSE <- cret$cresults * scale.factor; ret$tot.MSE <- cret$ctotal1 * scale.factor; ret$scorrcoeff <- cret$ctotal2; } else { ret$accuracies <- cret$cresults; ret$tot.accuracy <- cret$ctotal1; } class (ret) <- "svm" if (fitted) { ret$fitted <- na.action(predict(ret, xhold, decision.values = TRUE)) ret$decision.values <- attr(ret$fitted, "decision.values") attr(ret$fitted, "decision.values") <- NULL if (type > 1) ret$residuals <- yorig - ret$fitted } ret } predict.svm <- function (object, newdata, decision.values = FALSE, probability = FALSE, ..., na.action = na.omit) { if (missing(newdata)) return(fitted(object)) if (object$tot.nSV < 1) stop("Model is empty!") if(inherits(newdata, "Matrix")) { loadNamespace("SparseM") loadNamespace("Matrix") newdata <- as(newdata, "matrix.csr") } if(inherits(newdata, "simple_triplet_matrix")) { loadNamespace("SparseM") ind <- order(newdata$i, newdata$j) newdata <- new("matrix.csr", ra = newdata$v[ind], ja = newdata$j[ind], ia = as.integer(cumsum(c(1, tabulate(newdata$i[ind])))), dimension = c(newdata$nrow, newdata$ncol)) } sparse <- inherits(newdata, "matrix.csr") if (object$sparse || sparse) loadNamespace("SparseM") act <- NULL if ((is.vector(newdata) && is.atomic(newdata))) newdata <- t(t(newdata)) if (sparse) newdata <- SparseM::t(SparseM::t(newdata)) preprocessed <- !is.null(attr(newdata, "na.action")) rowns <- if (!is.null(rownames(newdata))) rownames(newdata) else 1:nrow(newdata) if (!object$sparse) { if (inherits(object, "svm.formula")) { if(is.null(colnames(newdata))) colnames(newdata) <- colnames(object$SV) newdata <- na.action(newdata) act <- attr(newdata, "na.action") newdata <- model.matrix(delete.response(terms(object)), as.data.frame(newdata), xlev = object$xlevels) } else { ## FIXME: would be safer, but users might provide new data with ## other colnames than the training data ... ## if (!is.null(colnames(newdata))) ## newdata <- newdata[,colnames(object$SV)] newdata <- na.action(as.matrix(newdata)) act <- attr(newdata, "na.action") } } if (!is.null(act) && !preprocessed) rowns <- rowns[-act] if (ncol(object$SV) != ncol(newdata)) stop ("test data does not match model !") if (any(object$scaled)) newdata[,object$scaled] <- scale_data_frame(newdata[,object$scaled, drop = FALSE], center = object$x.scale$"scaled:center", scale = object$x.scale$"scaled:scale" ) ret <- .C (R_svmpredict, as.integer (decision.values), as.integer (probability), ## model as.double (if (object$sparse) object$SV@ra else t(object$SV)), as.integer (nrow(object$SV)), as.integer(ncol(object$SV)), as.integer (if (object$sparse) object$SV@ia else 0), as.integer (if (object$sparse) object$SV@ja else 0), as.double (as.vector(object$coefs)), as.double (object$rho), as.integer (object$compprob), as.double (if (object$compprob) object$probA else 0), as.double (if (object$compprob) object$probB else 0), as.integer (object$nclasses), as.integer (object$tot.nSV), as.integer (object$labels), as.integer (object$nSV), as.integer (object$sparse), ## parameter as.integer (object$type), as.integer (object$kernel), as.integer (object$degree), as.double (object$gamma), as.double (object$coef0), ## test matrix as.double (if (sparse) newdata@ra else t(newdata)), as.integer (nrow(newdata)), as.integer (if (sparse) newdata@ia else 0), as.integer (if (sparse) newdata@ja else 0), as.integer (sparse), ## decision-values ret = double(nrow(newdata)), dec = double(nrow(newdata) * object$nclasses * (object$nclasses - 1) / 2), prob = double(nrow(newdata) * object$nclasses) ) ret2 <- if (is.character(object$levels)) # classification: return factors factor (object$levels[ret$ret], levels = object$levels) else if (object$type == 2) # one-class-classification: return TRUE/FALSE ret$ret == 1 else if (any(object$scaled) && !is.null(object$y.scale)) # return raw values, possibly scaled back ret$ret * object$y.scale$"scaled:scale" + object$y.scale$"scaled:center" else ret$ret names(ret2) <- rowns ret2 <- napredict(act, ret2) if (decision.values) { colns = c() for (i in 1:(object$nclasses - 1)) for (j in (i + 1):object$nclasses) colns <- c(colns, paste(object$levels[object$labels[i]], "/", object$levels[object$labels[j]], sep = "")) attr(ret2, "decision.values") <- napredict(act, matrix(ret$dec, nrow = nrow(newdata), byrow = TRUE, dimnames = list(rowns, colns) ) ) } if (probability && object$type < 2) { if (!object$compprob) warning("SVM has not been trained using `probability = TRUE`, probabilities not available for predictions.") else attr(ret2, "probabilities") <- napredict(act, matrix(ret$prob, nrow = nrow(newdata), byrow = TRUE, dimnames = list(rowns, object$levels[object$labels]) ) ) } ret2 } print.svm <- function (x, ...) { cat("\nCall:", deparse(x$call, 0.8 * getOption("width")), "\n", sep="\n") cat("Parameters:\n") cat(" SVM-Type: ", c("C-classification", "nu-classification", "one-classification", "eps-regression", "nu-regression")[x$type+1], "\n") cat(" SVM-Kernel: ", c("linear", "polynomial", "radial", "sigmoid")[x$kernel+1], "\n") if (x$type==0 || x$type==3 || x$type==4) cat(" cost: ", x$cost, "\n") if (x$kernel==1) cat(" degree: ", x$degree, "\n") if (x$type==1 || x$type==2 || x$type==3) cat(" gamma: ", x$gamma, "\n") if (x$kernel==1 || x$kernel==3) cat(" coef.0: ", x$coef0, "\n") if (x$type==1 || x$type==2 || x$type==4) cat(" nu: ", x$nu, "\n") if (x$type==3) { cat(" epsilon: ", x$epsilon, "\n\n") if (x$compprob) cat("Sigma: ", x$sigma, "\n\n") } cat("\nNumber of Support Vectors: ", x$tot.nSV) cat("\n\n") } summary.svm <- function(object, ...) structure(object, class="summary.svm") print.summary.svm <- function (x, ...) { print.svm(x) if (x$type<2) { cat(" (", x$nSV, ")\n\n") cat("\nNumber of Classes: ", x$nclasses, "\n\n") cat("Levels:", if(is.numeric(x$levels)) "(as integer)", "\n", x$levels) } cat("\n\n") if (x$type==2) cat("\nNumber of Classes: 1\n\n\n") if ("MSE" %in% names(x)) { cat(length (x$MSE), "-fold cross-validation on training data:\n\n", sep="") cat("Total Mean Squared Error:", x$tot.MSE, "\n") cat("Squared Correlation Coefficient:", x$scorrcoef, "\n") cat("Mean Squared Errors:\n", x$MSE, "\n\n") } if ("accuracies" %in% names(x)) { cat(length (x$accuracies), "-fold cross-validation on training data:\n\n", sep="") cat("Total Accuracy:", x$tot.accuracy, "\n") cat("Single Accuracies:\n", x$accuracies, "\n\n") } cat("\n\n") } plot.svm <- function(x, data, formula = NULL, fill = TRUE, grid = 50, slice = list(), symbolPalette = palette(), svSymbol = "x", dataSymbol = "o", ...) { if (x$type < 3) { if (is.null(formula) && ncol(data) == 3) { formula <- formula(delete.response(terms(x))) formula[2:3] <- formula[[2]][2:3] } if (is.null(formula)) stop("missing formula.") if (fill) { sub <- model.frame(formula, data) xr <- seq(min(sub[, 2]), max(sub[, 2]), length.out = grid) yr <- seq(min(sub[, 1]), max(sub[, 1]), length.out = grid) l <- length(slice) if (l < ncol(data) - 3) { slnames <- names(slice) slice <- c(slice, rep(list(0), ncol(data) - 3 - l)) names <- labels(delete.response(terms(x))) names(slice) <- c(slnames, names[!names %in% c(colnames(sub), slnames)]) } for (i in names(which(vapply(data, is.factor, NA)))) if (!is.factor(slice[[i]])) { levs <- levels(data[[i]]) lev <- if (is.character(slice[[i]])) slice[[i]] else levs[1] fac <- factor(lev, levels = levs) if (is.na(fac)) stop(paste("Level", dQuote(lev), "could not be found in factor", sQuote(i))) slice[[i]] <- fac } lis <- c(list(yr), list(xr), slice) names(lis)[1:2] <- colnames(sub) new <- expand.grid(lis)[, labels(terms(x))] preds <- predict(x, new) filled.contour(xr, yr, matrix(as.numeric(preds), nrow = length(xr), byrow = TRUE), plot.axes = { axis(1) axis(2) colind <- as.numeric(model.response(model.frame(x, data))) dat1 <- data[-x$index,] dat2 <- data[x$index,] coltmp1 <- symbolPalette[colind[-x$index]] coltmp2 <- symbolPalette[colind[x$index]] points(formula, data = dat1, pch = dataSymbol, col = coltmp1) points(formula, data = dat2, pch = svSymbol, col = coltmp2) }, levels = 1:(length(levels(preds)) + 1), key.axes = axis(4, 1:(length(levels(preds))) + 0.5, labels = levels(preds), las = 3), plot.title = title(main = "SVM classification plot", xlab = names(lis)[2], ylab = names(lis)[1]), ...) } else { plot(formula, data = data, type = "n", ...) colind <- as.numeric(model.response(model.frame(x, data))) dat1 <- data[-x$index,] dat2 <- data[x$index,] coltmp1 <- symbolPalette[colind[-x$index]] coltmp2 <- symbolPalette[colind[x$index]] points(formula, data = dat1, pch = dataSymbol, col = coltmp1) points(formula, data = dat2, pch = svSymbol, col = coltmp2) invisible() } } } write.svm <- function (object, svm.file = "Rdata.svm", scale.file = "Rdata.scale", yscale.file = "Rdata.yscale") { ret <- .C (R_svmwrite, ## model as.double (if (object$sparse) object$SV@ra else t(object$SV)), as.integer (nrow(object$SV)), as.integer(ncol(object$SV)), as.integer (if (object$sparse) object$SV@ia else 0), as.integer (if (object$sparse) object$SV@ja else 0), as.double (as.vector(object$coefs)), as.double (object$rho), as.integer (object$compprob), as.double (if (object$compprob) object$probA else 0), as.double (if (object$compprob) object$probB else 0), as.integer (object$nclasses), as.integer (object$tot.nSV), as.integer (object$labels), as.integer (object$nSV), as.integer (object$sparse), ## parameter as.integer (object$type), as.integer (object$kernel), as.integer (object$degree), as.double (object$gamma), as.double (object$coef0), ## filename as.character(svm.file) )$ret write.table(data.frame(center = object$x.scale$"scaled:center", scale = object$x.scale$"scaled:scale"), file=scale.file, col.names=FALSE, row.names=FALSE) if (!is.null(object$y.scale)) write.table(data.frame(center = object$y.scale$"scaled:center", scale = object$y.scale$"scaled:scale"), file=yscale.file, col.names=FALSE, row.names=FALSE) } coef.svm <- function(object, ...) { if (object$kernel != 0 || object$nclasses > 2) stop("Only implemented for regression or binary classification with linear kernel.") ret <- if (inherits(object$SV, "matrix.csr")) { loadNamespace("SparseM") drop(crossprod(object$coefs, SparseM::as.matrix(object$SV))) } else drop(crossprod(object$coefs, object$SV)) trm <- object$terms if(!is.null(trm)) names(ret) <- labels(trm) c(`(Intercept)` = -object$rho, ret) } e1071/R/bincombinations.R0000644000175100001440000000035114246371157014540 0ustar hornikusers## Kopie in mlbench bincombinations <- function(p) { retval <- matrix(0, nrow=2^p, ncol=p) for(n in 1:p){ retval[,n] <- rep(c(rep(0, (2^p/2^n)), rep(1, (2^p/2^n))), length.out = 2^p) } retval } e1071/R/fclustIndex.R0000644000175100001440000001521314533655727013664 0ustar hornikusersfclustIndex <- function ( y, x, index= "all" ) { clres <- y ########################################################################### ################SESSION 1: MEASURES######################################### ########################################################################### gath.geva <- function (clres,x)#for m=2 { xrows <- dim(clres$membership)[1] xcols <- dim(clres$centers)[2] ncenters <- dim(clres$centers)[1] scatter <- array(0.0, c(xcols, xcols, ncenters)) scatternew <- array(0.0, c(xcols, xcols, ncenters)) fhv <-as.double(0) apd <-as.double(0) pd <- as.double(0) control <- as.double(0) for (i in 1:ncenters){ paronomastis <- as.double(0) paronomastis2 <- as.double(0) for (j in 1:xrows){ paronomastis <- paronomastis+clres$membership[j,i] diff <- x[j,]-clres$centers[i,] scatternew[,,i] <- clres$membership[j,i]*(t(t(diff))%*%t(diff)) scatter[,,i] <- scatter[,,i]+scatternew[,,i] }#xrows scatter[,,i] <- scatter[,,i]/paronomastis for (j in 1:xrows){ diff <- x[j,]-clres$centers[i,] control <- (t(diff)%*%solve(scatter[,,i]))%*%t(t(diff)) if (control<1.0) paronomastis2 <- paronomastis2+clres$membership[j,i] ## else ## cat("...") }#xrows fhv <- fhv+sqrt(det(scatter[,,i])) apd <- apd+paronomastis2/sqrt(det(scatter[,,i])) pd <- pd+paronomastis2 }#ncenters pd <- pd/fhv apd <- apd/ncenters retval <- list(fuzzy.hypervolume=fhv,average.partition.density=apd, partition.density=pd) return(retval) } xie.beni <- function(clres){#for all m xrows <- dim(clres$membership)[1] minimum<--1 error <- clres$withinerror #sd ncenters <- dim(clres$centers)[1] for (i in 1:(ncenters-1)){ for (j in (i+1):ncenters){ diff<- clres$centers[i,]-clres$centers[j,] diffdist <- t(diff)%*%t(t(diff)) if (minimum==-1) minimum <- diffdist if (diffdist 1) sample(y, 1) else y } retval <- rep("", length(cases)) for (k in 1 : length(cases)) { retval[k] <- controls[which.is.min(d[cases[k], controls])] if (!replace) controls <- controls[controls != retval[k]] } fac <- rep(NA, nrow(m2)) names(fac) <- rownames(m2) fac[cases] <- "case" fac[retval] <- "cont" fac <- factor(fac) list(cases = cases, controls = retval, factor = fac) } e1071/R/e1071-deprecated.R0000755000175100001440000000000014173734133014203 0ustar hornikuserse1071/R/bclust.R0000644000175100001440000001605014246371157012661 0ustar hornikusers"bclust" <- function (x, centers = 2, iter.base = 10, minsize = 0, dist.method = "euclidean", hclust.method = "average", base.method = "kmeans", base.centers = 20, verbose = TRUE, final.kmeans = FALSE, docmdscale=FALSE, resample=TRUE, weights=NULL, maxcluster=base.centers, ...) { x <- as.matrix(x) xr <- nrow(x) xc <- ncol(x) CLUSFUN <- get(base.method) object <- list(allcenters = matrix(0, ncol = xc, nrow = iter.base * base.centers), allcluster = NULL, hclust = NULL, members = NULL, cluster = NULL, centers = NULL, iter.base = iter.base, base.centers = base.centers, prcomp = NULL, datamean = apply(x, 2, mean), colnames = colnames(x), dist.method = dist.method, hclust.method = hclust.method, maxcluster = maxcluster) class(object) <- "bclust" optSEM <- getOption("show.error.messages") if(is.null(optSEM)) optSEM <- TRUE on.exit(options(show.error.messages = optSEM)) if (verbose) cat("Committee Member:") for (n in 1:iter.base) { if (verbose){ cat(" ", n, sep = "") } if(resample){ x1 <- x[sample(xr, replace = TRUE, prob=weights), ] } else{ x1 <- x } for(m in 1:20){ if(verbose) cat("(",m,")",sep="") options(show.error.messages = FALSE) tryres <- try(CLUSFUN(x1, centers = base.centers, ...)) if(!inherits(tryres, "try-error")) break } options(show.error.messages = optSEM) if(m==20) stop("Could not find valid cluster solution in 20 replications\n") object$allcenters[((n - 1) * base.centers + 1):(n * base.centers),] <- tryres$centers } object$allcenters <- object$allcenters[complete.cases(object$allcenters),,drop=FALSE] object$allcluster <- knn1(object$allcenters, x, factor(1:nrow(object$allcenters))) if(minsize > 0){ object <- prune.bclust(object, x, minsize=minsize) } if (verbose) cat("\nComputing Hierarchical Clustering\n") object <- hclust.bclust(object, x = x, centers = centers, final.kmeans = final.kmeans, docmdscale=docmdscale) object } "centers.bclust" <- function (object, k) { centers <- matrix(0, nrow = k, ncol = ncol(object$allcenters)) for (m in 1:k) { centers[m, ] <- apply(object$allcenters[object$members[,k-1] == m, , drop = FALSE], 2, mean) } centers } "clusters.bclust" <- function (object, k, x=NULL) { if(missing(x)) allcluster <- object$allcluster else allcluster <- knn1(object$allcenters, x, factor(1:nrow(object$allcenters))) return(object$members[allcluster, k - 1]) } "hclust.bclust" <- function (object, x, centers, dist.method = object$dist.method, hclust.method = object$hclust.method, final.kmeans = FALSE, docmdscale = FALSE, maxcluster=object$maxcluster) { d <- dist(object$allcenters, method = dist.method) if(hclust.method=="diana"){ if (system.file(package = "cluster") == "") stop("Could not load required package 'cluster'!") object$hclust <- stats::as.hclust(cluster::diana(d, diss=TRUE)) } else object$hclust <- stats::hclust(d, method = hclust.method) if(docmdscale){ object$cmdscale <- cmdscale(d) } object$members <- cutree(object$hclust, 2:maxcluster) object$cluster <- clusters.bclust(object, centers) object$centers <- centers.bclust(object, centers) if (final.kmeans) { kmeansres <- kmeans(x, centers = object$centers) object$centers <- kmeansres$centers object$cluster <- kmeansres$cluster } object } "plot.bclust" <- function (x, maxcluster=x$maxcluster, main = deparse(substitute(x)), ...) { opar <- par(c("mar", "oma")) on.exit(par(opar)) par(oma = c(0, 0, 3, 0)) layout(matrix(c(1, 1, 2, 2), 2, 2, byrow = TRUE)) par(mar = c(0, 4, 4, 1)) plot(x$hclust, labels = FALSE, hang = -1) x1 <- 1:maxcluster x2 <- 2:maxcluster y <- rev(x$hclust$height)[x1] z <- abs(diff(y)) par(mar = c(4, 4, 1, 2)) plot(x1, ((y - min(y))/(max(y) - min(y))), type = "l", xlab = "", ylab = "", ylim = c(0, 1)) lines(x2, z/sum(z), col = "grey") text(x2, z/sum(z), labels = as.character(x2)) # lx2 <- length(x2) # abline(h=qexp(.95, rate = length(x2)), lty=3, col="grey") # abline(h=qexp(.95^(1/lx2), rate = length(x2)), lty=3, col="grey") mtext(main, outer = TRUE, cex = 1.5) layout(1) } "boxplot.bclust" <- function (x, n = nrow(x$centers), bycluster = TRUE, main = deparse(substitute(x)), oneplot=TRUE, which=1:n, ...) { N <- length(which) opar <- par(c("mfrow", "oma", "mgp","xpd")) on.exit(par(opar)) par(xpd=NA) memb <- x$members[, (n - 1)] tmemb <- table(memb) cendf <- as.data.frame(x$allcenters) ylim <- range(x$allcenters) if (bycluster) { if(oneplot){ if (N <= 3) { par(mfrow = c(N, 1)) } else { par(mfrow = c(ceiling(N/2), 2)) } } tcluster <- table(clusters.bclust(x, n)) for (k in which) { boxplot(cendf[memb == k, ], col = "grey", names = rep("",ncol(cendf)), ylim = ylim, ...) if (!is.null(x$datamean)) { lines(x$datamean, col = "red") } if(!is.null(x$colnames)){ text(1:length(x$colnames)+0.2, par("usr")[3], adj=1,srt=35, paste(x$colnames, " ")) } title(main = paste("Cluster ", k, ": ", tmemb[k], " centers, ", tcluster[k], " data points", sep = "")) } } else { a <- ceiling(sqrt(ncol(cendf))) if(oneplot){ par(mfrow = c(a, ceiling(ncol(cendf)/a))) } memb <- as.factor(memb) for (k in 1:ncol(cendf)) { boxplot(cendf[, k] ~ memb, col = "grey", ylim = ylim, ...) title(main = x$colnames[k]) abline(h = x$datamean[k], col = "red") } } } ### prune centers that contain not at least minsize data points prune.bclust <- function(object, x, minsize=1, dohclust=FALSE, ...){ ok <- FALSE while(!all(ok)){ object$allcluster <- knn1(object$allcenters, x, factor(1:nrow(object$allcenters))) ok <- table(object$allcluster) >= minsize object$allcenters <- object$allcenters[ok, ] } if(dohclust){ object <- hclust.bclust(object, x, nrow(object$centers), ...) } object } e1071/R/naiveBayes.R0000644000175100001440000001324414246371157013455 0ustar hornikusersnaiveBayes <- function(x, ...) UseMethod("naiveBayes") naiveBayes.default <- function(x, y, laplace = 0, ...) { call <- match.call() Yname <- deparse(substitute(y)) x <- as.data.frame(x) if (is.logical(y)) y <- factor(y, levels = c("FALSE", "TRUE")) ## estimation-function est <- function(var) if (is.numeric(var)) { cbind(tapply(var, y, mean, na.rm = TRUE), tapply(var, y, sd, na.rm = TRUE)) } else { if (is.logical(var)) var <- factor(var, levels = c("FALSE", "TRUE")) tab <- table(y, var) (tab + laplace) / (rowSums(tab) + laplace * nlevels(var)) } ## create tables apriori <- table(y) tables <- lapply(x, est) isnumeric <- vapply(x, is.numeric, NA) ## fix dimname names for (i in 1:length(tables)) names(dimnames(tables[[i]])) <- c(Yname, colnames(x)[i]) names(dimnames(apriori)) <- Yname structure(list(apriori = apriori, tables = tables, levels = names(apriori), isnumeric = isnumeric, call = call ), class = "naiveBayes" ) } naiveBayes.formula <- function(formula, data, laplace = 0, ..., subset, na.action = na.pass) { call <- match.call() Yname <- as.character(formula[[2]]) if (is.data.frame(data)) { ## handle formula m <- match.call(expand.dots = FALSE) m$... <- NULL m$laplace = NULL m$na.action <- na.action m[[1L]] <- quote(stats::model.frame) m <- eval(m, parent.frame()) Terms <- attr(m, "terms") if (any(attr(Terms, "order") > 1)) stop("naiveBayes cannot handle interaction terms") Y <- model.extract(m, "response") X <- m[,gsub("`", "", labels(Terms)), drop = FALSE] return(naiveBayes(X, Y, laplace = laplace, ...)) } else if (is.array(data)) { nam <- names(dimnames(data)) ## Find Class dimension Yind <- which(nam == Yname) ## Create Variable index # deps <- strsplit(as.character(formula)[3], ".[+].")[[1]] deps <- labels(terms(formula, data = data)) if (length(deps) == 1 && deps == ".") deps <- nam[-Yind] Vind <- which(nam %in% deps) ## create tables apriori <- margin.table(data, Yind) tables <- lapply(Vind, function(i) (margin.table(data, c(Yind, i)) + laplace) / (as.numeric(apriori) + laplace * dim(data)[i])) names(tables) <- nam[Vind] isnumeric = rep(FALSE, length(Vind)) names(isnumeric) <- nam[Vind] structure(list(apriori = apriori, tables = tables, levels = names(apriori), isnumeric = isnumeric, call = call ), class = "naiveBayes" ) } else stop("naiveBayes formula interface handles data frames or arrays only") } print.naiveBayes <- function(x, ...) { cat("\nNaive Bayes Classifier for Discrete Predictors\n\n") cat("Call:\n") print(x$call) cat("\nA-priori probabilities:\n") print(x$apriori / sum(x$apriori)) cat("\nConditional probabilities:\n") for (i in x$tables) {print(i); cat("\n")} } predict.naiveBayes <- function(object, newdata, type = c("class", "raw"), threshold = 0.001, eps = 0, ...) { type <- match.arg(type) newdata <- as.data.frame(newdata) ## fix factor levels to be identical with training data for (i in names(object$tables)) { if (!is.null(newdata[[i]]) && !is.numeric(newdata[[i]])) newdata[[i]] <- factor(newdata[[i]], levels = colnames(object$tables[[i]])) if (object$isnumeric[i] != is.numeric(newdata[[i]])) warning(paste0("Type mismatch between training and new data for variable '", i, "'. Did you use factors with numeric labels for training, and numeric values for new data?")) } attribs <- match(names(object$tables), names(newdata)) isnumeric <- vapply(newdata, is.numeric, NA) islogical <- vapply(newdata, is.logical, NA) newdata <- data.matrix(newdata) len <- length(object$apriori) L <- vapply(seq_len(nrow(newdata)), function(i) { ndata <- newdata[i, ] L <- log(object$apriori) + apply(log(vapply(seq_along(attribs), function(v) { nd <- ndata[attribs[v]] if (is.na(nd)) rep.int(1, len) else { prob <- if (isnumeric[attribs[v]]) { msd <- object$tables[[v]] msd[, 2][msd[, 2] <= eps] <- threshold dnorm(nd, msd[, 1], msd[, 2]) } else object$tables[[v]][, nd + islogical[attribs[v]]] prob[prob <= eps] <- threshold prob } }, double(len))), 1, sum) if (type == "class") L else { ## Numerically unstable: ## L <- exp(L) ## L / sum(L) ## instead, we use: vapply(L, function(lp) { 1/sum(exp(L - lp)) }, double(1)) } }, double(len)) if (type == "class") { if (is.logical(object$levels)) L[2,] > L[1,] else factor(object$levels[apply(L, 2, which.max)], levels = object$levels) } else t(L) } e1071/R/plot.stft.R0000755000175100001440000000021014173734133013310 0ustar hornikusersplot.stft <- function (x, col = gray (63:0/63), ...) { x <- x$values image(x=1:dim(x)[1], y=1:dim(x)[2], z=x, col=col, ...) } e1071/R/rwiener.R0000755000175100001440000000022314173734133013032 0ustar hornikusersrwiener <- function(end=1, frequency=1000) { z<-cumsum(rnorm(end*frequency)/sqrt(frequency)) ts(z, start=1/frequency, frequency=frequency) } e1071/R/discrete.R0000755000175100001440000000407514173734133013172 0ustar hornikusersrdiscrete <- function (n, probs, values = 1:length(probs), ...) { sample(values, size=n, replace=TRUE, prob=probs) } ddiscrete <- function (x, probs, values = 1:length(probs)) { if (length(probs) != length(values)) stop("ddiscrete: probs and values must have the same length.") if (sum(probs < 0) > 0) stop("ddiscrete: probs must not contain negative values.") if (!is.array(x) && !is.vector(x) && !is.factor(x)) stop("ddiscrete: x must be an array or a vector or a factor.") p <- probs/sum(probs) y <- as.vector(x) l <- length(y) z <- rep(0,l) for (i in 1:l) if (any(values == y[i])) z[i] <- p[values == y[i]] z <- as.numeric(z) if (is.array(x)) dim(z) <- dim(x) return(z) } pdiscrete <- function (q, probs, values = 1:length(probs)) { if (length(probs) != length(values)) stop("pdiscrete: probs and values must have the same length.") if (sum(probs < 0) > 0) stop("pdiscrete: probs must not contain negative values.") if (!is.array(q) & !is.vector(q)) stop("pdiscrete: q must be an array or a vector") p <- probs/sum(probs) y <- as.vector(q) l <- length(y) z <- rep(0,l) for (i in 1:l) z[i] <- sum(p[values <= y[i]]) z <- as.numeric(z) if (is.array(q)) dim(z) <- dim(q) return(z) } qdiscrete <- function (p, probs, values = 1:length(probs)) { if (length(probs) != length(values)) stop("qdiscrete: probs and values must have the same length.") if (sum(probs < 0) > 0) stop("qdiscrete: probs must not contain negative values.") if (!is.array(p) & !is.vector(p)) stop("qdiscrete: p must be an array or a vector") probs <- cumsum(probs)/sum(probs) y <- as.vector(p) l <- length(y) z <- rep(0,l) for (i in 1:l) z[i] <- length(values) - sum(y[i] <= probs) + 1 z <- as.numeric(z) z <- values[z] if (is.array(p)) dim(z) <- dim(p) return(z) } e1071/R/hamming.distance.R0000755000175100001440000000060014173734133014567 0ustar hornikusershamming.distance <- function(x,y){ z<-NULL if(is.vector(x) && is.vector(y)){ z <- sum(x != y) } else{ z <- matrix(0,nrow=nrow(x),ncol=nrow(x)) for(k in 1:(nrow(x)-1)){ for(l in (k+1):nrow(x)){ z[k,l] <- hamming.distance(x[k,], x[l,]) z[l,k] <- z[k,l] } } dimnames(z) <- list(dimnames(x)[[1]], dimnames(x)[[1]]) } z } e1071/R/kurtosis.R0000755000175100001440000000111514173734133013243 0ustar hornikuserskurtosis <- function(x, na.rm = FALSE, type = 3) { if(any(ina <- is.na(x))) { if(na.rm) x <- x[!ina] else return(NA) } if(!(type %in% (1 : 3))) stop("Invalid 'type' argument.") n <- length(x) x <- x - mean(x) r <- n * sum(x ^ 4) / (sum(x ^ 2) ^ 2) y <- if(type == 1) r - 3 else if(type == 2) { if(n < 4) stop("Need at least 4 complete observations.") ((n + 1) * (r - 3) + 6) * (n - 1) / ((n - 2) * (n - 3)) } else r * (1 - 1 / n) ^ 2 - 3 y } e1071/R/element.R0000755000175100001440000000050614173734133013014 0ustar hornikuserselement <- function(x, i) { if(!is.array(x)) stop("x is not an array") ni <- length(i) dx <- dim(x) if(length(i)!=length(dx)) stop("Wrong number of subscripts") if(ni==1){ return(x[i]) } else{ m1 <- c(i[1], i[2:ni]-1) m2 <- c(1,cumprod(dx)[1:(ni-1)]) return(x[sum(m1*m2)]) } } e1071/R/impute.R0000755000175100001440000000060714173734133012670 0ustar hornikusersimpute <- function(x, what=c("median", "mean")){ what <- match.arg(what) if(what == "median"){ retval <- apply(x, 2, function(z) {z[is.na(z)] <- median(z, na.rm=TRUE); z}) } else if(what == "mean"){ retval <- apply(x, 2, function(z) {z[is.na(z)] <- mean(z, na.rm=TRUE); z}) } retval } e1071/R/countpattern.R0000755000175100001440000000117214173734133014111 0ustar hornikuserscountpattern <- function(x, matching=FALSE) { nvar <- dim(x)[2] n <- dim(x)[1] ## build matrix of all possible binary vectors b <- matrix(0, 2^nvar, nvar) for (i in 1:nvar) b[, nvar+1-i] <- rep(rep(c(0,1),c(2^(i-1),2^(i-1))),2^(nvar-i)) namespat <- b[,1] for (i in 2:nvar) namespat <- paste(namespat, b[,i], sep="") xpat <- x[,1] for (i in 2:nvar) xpat <- 2*xpat+x[,i] xpat <- xpat+1 pat <- tabulate(xpat, nbins=2^nvar) names(pat) <- namespat if (matching) return(list(pat=pat, matching=xpat)) else return(pat) } e1071/R/cshell.R0000644000175100001440000001461714246371157012646 0ustar hornikuserscshell <- function (x, centers, iter.max = 100, verbose = FALSE, dist = "euclidean", method = "cshell", m=2, radius= NULL) { x <- as.matrix(x) xrows <- dim(x)[1] xcols <- dim(x)[2] xold <- x perm <- sample(xrows) x <- x[perm, ] ## initial values are given if (is.matrix(centers)) ncenters <- dim(centers)[1] else { ## take centers random vectors as initial values ncenters <- centers centers <- x[rank(runif(xrows))[1:ncenters], ]+0.001 } ## initialize radius if (missing(radius)) radius <- rep(0.2,ncenters) else radius <- as.double(radius) dist <- pmatch(dist, c("euclidean", "manhattan")) if (is.na(dist)) stop("invalid distance") if (dist == -1) stop("ambiguous distance") method <- pmatch(method, c("cshell")) if (is.na(method)) stop("invalid clustering method") if (method == -1) stop("ambiguous clustering method") initcenters <- centers ## dist <- matrix(0, xrows, ncenters) ## necessary for empty clusters pos <- as.factor(1 : ncenters) rownames(centers) <- pos iter <- integer(1) flag <- integer(1) retval <- .C(R_cshell, xrows = as.integer(xrows), xcols = as.integer(xcols), x = as.double(x), ncenters = as.integer(ncenters), centers = as.double(centers), iter.max = as.integer(iter.max), iter = as.integer(iter), verbose = as.integer(verbose), dist = as.integer(dist-1), U = double(xrows*ncenters), UANT = double(xrows*ncenters), m = as.double(m), ermin = double(1), radius = as.double(radius), flag = as.integer(flag) ) centers <- matrix(retval$centers, ncol = xcols, dimnames = dimnames(initcenters)) radius <- as.double(retval$radius) U <- retval$U U <- matrix(U, ncol=ncenters) UANT <- retval$UANT UANT <- matrix(UANT, ncol=ncenters) iter <- retval$iter flag <- as.integer(retval$flag) ## Optimization part while (((flag == 1) || (flag==4)) && (iter<=iter.max)) { flag <- 3 system <- function (spar=c(centers,radius), x, U, m, i) { k <- dim(x)[1] d <- dim(x)[2] nparam<-length(spar) v<-spar[1:(nparam-1)] r<-spar[nparam] ##distance matrix x_k - v_i distmat <- t(t(x)-v) ##norm from x_k - v_i normdist <- distmat[,1]^2 for (j in 2:d) normdist<-normdist+distmat[,j]^2 normdist <- sqrt(normdist) ##equation 5 op <- sum( (U[,i]^m) * (normdist-r) )^2 ##equation 4 equationmatrix <- ((U[,i]^m) * (1-r/normdist))*distmat ## ## This had just apply(), but optim() really needs a scalar ## fn. ## What do we really want here? op<- op+sum(apply(equationmatrix, 2, sum)^2) ## } for (i in 1:ncenters) { spar <- c(centers[i,],radius[i]) npar <- length(spar) optimres <- optim(spar, system, method="CG", x=x, U=U, m=m, i=i) centers[i,] <- optimres$par[1:(npar-1)] radius[i] <- optimres$par[npar] } retval <- .C(R_cshell, xrows = as.integer(xrows), xcols = as.integer(xcols), x = as.double(x), ncenters = as.integer(ncenters), centers = as.double(centers), iter.max = as.integer(iter.max), iter = as.integer(iter-1), verbose = as.integer(verbose), dist = as.integer(dist-1), U = as.double(U), UANT = as.double(UANT), m = as.double(m), ermin = double(1), radius = as.double(radius), flag = as.integer(flag) ) flag<-retval$flag if (retval$flag!=2) flag<-1 centers <- matrix(retval$centers, ncol = xcols, dimnames = dimnames(initcenters)) radius <- as.double(retval$radius) U <- retval$U U <- matrix(U, ncol=ncenters) UANT <- retval$UANT UANT <- matrix(UANT, ncol=ncenters) iter <- retval$iter } centers <- matrix(retval$centers, ncol = xcols, dimnames = list(pos, colnames(initcenters))) U <- matrix(retval$U, ncol = ncenters, dimnames = list(rownames(x), 1 : ncenters)) U <- U[order(perm),] clusterU <- apply(U, 1, which.max) clustersize <- as.integer(table(clusterU)) radius <- as.double(retval$radius) retval <- list(centers = centers, radius=radius, size = clustersize, cluster = clusterU, iter = retval$iter - 1, membership=U, withinerror = retval$ermin, call = match.call()) class(retval) <- c("cshell", "fclust") return(retval) } ## unfinished! ## ## predict.cshell <- function(object, newdata, ...){ ## xrows<-dim(newdata)[1] ## xcols<-dim(newdata)[2] ## ncenters <- object$centers ## cluster <- integer(xrows) ## clustersize <- integer(ncenters) ## f <- object$m ## radius <- object$radius ## if(dim(object$centers)[2] != xcols){ ## stop("Number of variables in cluster object and x are not the same!") ## } ## retval <- .C("cshell_assign", ## xrows = as.integer(xrows), ## xcols = as.integer(xcols), ## x = as.double(newdata), ## ncenters = as.integer(ncenters), ## centers = as.double(object$centers), ## dist = as.integer(object$dist-1), ## U = double(xrows*ncenters), ## f = as.double(f), ## radius = as.double(radius)) ## U <- retval$U ## U <- matrix(U, ncol=ncenters) ## clusterU <- apply(U,1,which.max) ## clustersize <- as.integer(table(clusterU)) ## object$iter <- NULL ## object$cluster <- clusterU ## object$size <- retval$clustersize ## object$membership <- U ## return(object) ## } e1071/R/sparse.R0000644000175100001440000000377514534322136012665 0ustar hornikusersread.matrix.csr <- function(file, fac = TRUE, ncol = NULL) { l <- strsplit(readLines(file), "[ ]+") ## extract y-values, if any y <- if (is.na(l[[1]][1]) || length(grep(":",l[[1]][1]))) NULL else vapply(l, function(x) x[1], character(1)) ## x-values rja <- do.call("rbind", lapply(l, function(x) do.call("rbind", strsplit(if (is.null(y)) x else x[-1], ":") ) ) ) ja <- as.integer(rja[,1]) ia <- cumsum(c(1, vapply(l, length, integer(1)) - !is.null(y))) max.ja <- max(ja) dimension <- c(length(l), if (is.null(ncol)) max.ja else max(ncol, max.ja)) x = new(getClass("matrix.csr", where = asNamespace("SparseM")), ra = as.numeric(rja[,2]), ja = ja, ia = as.integer(ia), dimension = as.integer(dimension)) if (length(y)) list(x = x, y = if (fac) as.factor(y) else as.numeric(y)) else x } write.matrix.csr <- function (x, file = "out.dat", y = NULL, fac = TRUE) { on.exit(sink()) x <- SparseM::as.matrix.csr(x) if (!is.null(y) & (length(y) != nrow(x))) stop(paste("Length of y (=", length(y), ") does not match number of rows of x (=", nrow(x), ")!", sep="")) sink(file) l <- length(x@ra) zerocols <- all(x@ja < ncol(x)) if (!is.null(y) && is.factor(y) && fac) y <- as.character(y) for (i in 1:nrow(x)) { if (!is.null(y)) cat (y[i],"") if ((x@ia[i] <= l) && (x@ia[i] < x@ia[i + 1])) { for (j in x@ia[i] : (x@ia[i + 1] - 1)) cat(x@ja[j], ":", x@ra[j], " ", sep="") if (zerocols) { cat(ncol(x), ":", 0, " ", sep="") zerocols <- FALSE } } cat("\n") } } na.fail.matrix.csr <- function(object, ...) { if (any(is.na(object@ra))) stop("missing values in object") else return(object) } e1071/R/shortestPaths.R0000755000175100001440000000146614173734133014244 0ustar hornikusersallShortestPaths <- function(x){ x <- as.matrix(x) x[is.na(x)] <- .Machine$double.xmax x[is.infinite(x) & x>0] <- .Machine$double.xmax if(ncol(x) != nrow(x)) stop("x is not a square matrix") n <- ncol(x) z <- .C(R_e1071_floyd, as.integer(n), double(n^2), as.double(x), integer(n^2) ) z <- list(length = matrix(z[[2]], n), middlePoints = matrix(z[[4]]+1, n)) z$length[z$length == .Machine$double.xmax] <- NA z } extractPath <- function(obj, start, end){ z <- integer(0) path <- function(i, j){ k <- obj$middlePoints[i, j] if (k != 0) { path(i,k); z <<- c(z, k) path(k,j); } } path(start,end) c(start, z, end) } e1071/R/scale_data_frame.R0000644000175100001440000000110314024400426014572 0ustar hornikusersscale_data_frame <- function(x, center = TRUE, scale = TRUE) { if (isFALSE(center) && isFALSE(scale)) return(x) if (!is.data.frame(x)) return (scale(x, center, scale)) i <- vapply(x, is.numeric, NA) | vapply(x, is.logical, NA) if (any(i)) { x[, i] <- tmp <- scale.default(x[, i, drop = FALSE], na.omit(center), na.omit(scale)) if(center || !is.logical(center)) attr(x, "scaled:center")[i] <- attr(tmp, "scaled:center") if(scale || !is.logical(scale)) attr(x, "scaled:scale")[i] <- attr(tmp, "scaled:scale") } x } e1071/R/interpolate.R0000755000175100001440000000364214173734133013715 0ustar hornikusersinterpolate <- function(x, a, adims=lapply(dimnames(a), as.numeric), method="linear"){ if(is.vector(x)) x<- matrix(x, ncol=length(x)) if(!is.array(a)) stop("a is not an array") ad <- length(dim(a)) method <- pmatch(method, c("linear", "constant")) if (is.na(method)) stop("invalid interpolation method") if(any(unlist(lapply(adims, diff))<0)) stop("dimensions of a not ordered") retval <- rep(0, nrow(x)) bincombi <- bincombinations(ad) convexcoeff <- function(x, y) { ok <- y>0 x[ok] <- y[ok]-x[ok] x } for(n in 1:nrow(x)){ ## the "leftmost" corner of the enclosing hypercube leftidx <- rep(0, ad) xabstand <- rep(0, ad) aabstand <- rep(0, ad) for(k in 1:ad){ if(x[n,k] < min(adims[[k]]) || x[n,k] > max(adims[[k]])) stop("No extrapolation allowed") else{ leftidx[k] <- max(seq(adims[[k]])[adims[[k]] <= x[n,k]]) ## if at the right border, go one step to the left if(leftidx[k] == length(adims[[k]])) leftidx[k] <- leftidx[k] - 1 xabstand[k] <- x[n,k] - adims[[k]][leftidx[k]] aabstand[k] <- adims[[k]][leftidx[k]+1] - adims[[k]][leftidx[k]] } } coefs <- list() if(method==1){ for(k in 1:(2^ad)){ retval[n] <- retval[n] + element(a, leftidx+bincombi[k,]) * prod((aabstand- convexcoeff(xabstand, aabstand*bincombi[k,]))/aabstand) } } else if(method==2){ retval[n] <- element(a, leftidx) } } names(retval) <- rownames(x) retval } e1071/R/matchClasses.R0000755000175100001440000001504014173734133013774 0ustar hornikusersclassAgreement <- function (tab, match.names=FALSE) { n <- sum(tab) ni <- apply(tab, 1, sum) nj <- apply(tab, 2, sum) ## patch for matching factors if (match.names && !is.null(dimnames(tab))) { lev <- intersect (colnames (tab), rownames(tab)) p0 <- sum(diag(tab[lev,lev]))/n pc <- sum(ni[lev] * nj[lev])/n^2 } else { # cutoff larger dimension m <- min(length(ni), length(nj)) p0 <- sum(diag(tab[1:m, 1:m]))/n pc <- sum((ni[1:m] / n) * (nj[1:m] / n)) } n2 <- choose(n, 2) rand <- 1 + (sum(tab^2) - (sum(ni^2) + sum(nj^2))/2)/n2 nis2 <- sum(choose(ni[ni > 1], 2)) njs2 <- sum(choose(nj[nj > 1], 2)) crand <- (sum(choose(tab[tab > 1], 2)) - (nis2 * njs2)/n2)/((nis2 + njs2)/2 - (nis2 * njs2)/n2) list(diag = p0, kappa = (p0 - pc)/(1 - pc), rand = rand, crand = crand) } matchClasses <- function(tab, method = "rowmax", iter=1, maxexact=9, verbose=TRUE){ methods <- c("rowmax", "greedy", "exact") method <- pmatch(method, methods) rmax <- apply(tab,1,which.max) myseq <- 1:ncol(tab) cn <- colnames(tab) rn <- rownames(tab) if(is.null(cn)){ cn <- myseq } if(is.null(rn)){ rn <- myseq } if(method==1){ retval <- rmax } if(method==2 | method==3){ if(ncol(tab)!=nrow(tab)){ stop("Unique matching only for square tables.") } dimnames(tab) <- list(myseq, myseq) cmax <- apply(tab,2,which.max) retval <- rep(NA, ncol(tab)) names(retval) <- colnames(tab) baseok <- cmax[rmax]==myseq for(k in myseq[baseok]){ therow <- (tab[k,])[-rmax[k]] thecol <- (tab[, rmax[k]])[-k] if(max(outer(therow, thecol, "+")) < tab[k, rmax[k]]){ retval[k] <- rmax[k] } else{ baseok[k] <- FALSE } } if(verbose){ cat("Direct agreement:", sum(baseok), "of", ncol(tab), "pairs\n") } if(!all(baseok)){ if(method==3){ if(sum(!baseok)>maxexact){ method <- 2 warning(paste("Would need permutation of", sum(!baseok), "numbers, resetting to greedy search\n")) } else{ iter <- gamma(ncol(tab)-sum(baseok)+1) if(verbose){ cat("Iterations for permutation matching:", iter, "\n") } perm <- permutations(ncol(tab)-sum(baseok)) } } ## rest for permute matching if(any(baseok)){ rest <- myseq[-retval[baseok]] } else{ rest <- myseq } for(l in 1:iter){ newretval <- retval if(method == 2){ ok <- baseok while(sum(!ok)>1){ rest <- myseq[!ok] k <- sample(rest, 1) if(any(ok)){ rmax <- tab[k, -newretval[ok]] } else{ rmax <- tab[k,] } newretval[k] <- as.numeric(names(rmax)[which.max(rmax)]) ok[k] <- TRUE } newretval[!ok] <- myseq[-newretval[ok]] } else{ newretval[!baseok] <- rest[perm[l,]] } if(l>1){ agree <- sum(diag(tab[,newretval]))/sum(tab) if(agree>oldagree){ retval <- newretval oldagree <- agree } } else{ retval <- newretval agree <- oldagree <- sum(diag(tab[,newretval]))/sum(tab) } } } } if(verbose){ cat("Cases in matched pairs:", round(100*sum(diag(tab[,retval]))/sum(tab), 2), "%\n") } if(any(as.character(myseq)!=cn)){ retval <- cn[retval] } names(retval) <- rn retval } compareMatchedClasses <- function(x, y, method="rowmax", iter=1, maxexact=9, verbose=FALSE) { if(missing(y)){ retval <- list(diag=matrix(NA, nrow=ncol(x), ncol=ncol(x)), kappa=matrix(NA, nrow=ncol(x), ncol=ncol(x)), rand=matrix(NA, nrow=ncol(x), ncol=ncol(x)), crand=matrix(NA, nrow=ncol(x), ncol=ncol(x))) for(k in 1:(ncol(x)-1)){ for(l in (k+1):ncol(x)){ tab <- table(x[,k], x[,l]) m <- matchClasses(tab, method=method, iter=iter, verbose=verbose, maxexact=maxexact) a <- classAgreement(tab[,m]) retval$diag[k,l] <- a$diag retval$kappa[k,l] <- a$kappa retval$rand[k,l] <- a$rand retval$crand[k,l] <- a$crand } } } else{ x <- as.matrix(x) y <- as.matrix(y) retval <- list(diag=matrix(NA, nrow=ncol(x), ncol=ncol(y)), kappa=matrix(NA, nrow=ncol(x), ncol=ncol(y)), rand=matrix(NA, nrow=ncol(x), ncol=ncol(y)), crand=matrix(NA, nrow=ncol(x), ncol=ncol(y))) for(k in 1:ncol(x)){ for(l in 1:ncol(y)){ tab <- table(x[,k], y[,l]) m <- matchClasses(tab, method=method, iter=iter, verbose=verbose, maxexact=maxexact) a <- classAgreement(tab[,m]) retval$diag[k,l] <- a$diag retval$kappa[k,l] <- a$kappa retval$rand[k,l] <- a$rand retval$crand[k,l] <- a$crand } } } retval } permutations <- function(n) { if(n ==1) return(matrix(1)) else if(n<2) stop("n must be a positive integer") z <- matrix(1) for (i in 2:n) { x <- cbind(z, i) a <- c(1:i, 1:(i - 1)) z <- matrix(0, ncol=ncol(x), nrow=i*nrow(x)) z[1:nrow(x),] <- x for (j in 2:i-1) { z[j*nrow(x)+1:nrow(x),] <- x[, a[1:i+j]] } } dimnames(z) <- NULL z } e1071/R/skewness.R0000755000175100001440000000105014173734133013220 0ustar hornikusersskewness <- function(x, na.rm = FALSE, type = 3) { if(any(ina <- is.na(x))) { if(na.rm) x <- x[!ina] else return(NA) } if(!(type %in% (1 : 3))) stop("Invalid 'type' argument.") n <- length(x) x <- x - mean(x) y <- sqrt(n) * sum(x ^ 3) / (sum(x ^ 2) ^ (3/2)) if(type == 2) { if(n < 3) stop("Need at least 3 complete observations.") y <- y * sqrt(n * (n - 1)) / (n - 2) } else if(type == 3) y <- y * ((1 - 1 / n)) ^ (3/2) y } e1071/R/tune.R0000644000175100001440000004453414325173177012350 0ustar hornikuserstune.control <- function(random = FALSE, nrepeat = 1, repeat.aggregate = mean, sampling = c("cross", "fix", "bootstrap"), sampling.aggregate = mean, sampling.dispersion = sd, cross = 10, fix = 2 / 3, nboot = 10, boot.size = 9 / 10, best.model = TRUE, performances = TRUE, error.fun = NULL) { structure(list(random = random, nrepeat = nrepeat, repeat.aggregate = repeat.aggregate, sampling = match.arg(sampling), sampling.aggregate = sampling.aggregate, sampling.dispersion = sampling.dispersion, cross = cross, fix = fix, nboot = nboot, boot.size = boot.size, best.model = best.model, performances = performances, error.fun = error.fun ), class = "tune.control" ) } tune <- function(METHOD, train.x, train.y = NULL, data = list(), validation.x = NULL, validation.y = NULL, ranges = NULL, predict.func = predict, tunecontrol = tune.control(), ... ) { call <- match.call() ## internal helper functions resp <- function(formula, data) { model.response(model.frame(formula, data)) } classAgreement <- function (tab) { n <- sum(tab) if (!is.null(dimnames(tab))) { lev <- intersect(colnames(tab), rownames(tab)) p0 <- sum(diag(tab[lev, lev])) / n } else { m <- min(dim(tab)) p0 <- sum(diag(tab[1:m, 1:m])) / n } p0 } ## parameter handling if (tunecontrol$sampling == "cross") validation.x <- validation.y <- NULL useFormula <- is.null(train.y) if (useFormula && (is.null(data) || length(data) == 0)) data <- model.frame(train.x) if (is.vector(train.x)) train.x <- t(t(train.x)) if (is.data.frame(train.y)) train.y <- as.matrix(train.y) ## prepare training indices if (!is.null(validation.x)) tunecontrol$fix <- 1 n <- nrow(if (useFormula) data else train.x) perm.ind <- sample(n) if (tunecontrol$sampling == "cross") { if (tunecontrol$cross > n) stop(sQuote("cross"), " must not exceed sampling size!") if (tunecontrol$cross == 1) stop(sQuote("cross"), " must be greater than 1!") } train.ind <- if (tunecontrol$sampling == "cross") tapply(1:n, cut(1:n, breaks = tunecontrol$cross), function(x) perm.ind[-x]) else if (tunecontrol$sampling == "fix") list(perm.ind[1:trunc(n * tunecontrol$fix)]) else ## bootstrap lapply(1:tunecontrol$nboot, function(x) sample(n, n * tunecontrol$boot.size, replace = TRUE)) ## find best model parameters <- if (is.null(ranges)) data.frame(dummyparameter = 0) else expand.grid(ranges) p <- nrow(parameters) if (!is.logical(tunecontrol$random)) { if (tunecontrol$random < 1) stop("random must be a strictly positive integer") if (tunecontrol$random > p) tunecontrol$random <- p parameters <- parameters[sample(1:p, tunecontrol$random),] p <- nrow(parameters) } model.variances <- model.errors <- c() ## - loop over all models for (para.set in 1:p) { sampling.errors <- c() ## - loop over all training samples for (sample in 1:length(train.ind)) { repeat.errors <- c() ## - repeat training `nrepeat' times for (reps in 1:tunecontrol$nrepeat) { ## train one model pars <- if (is.null(ranges)) NULL else lapply(parameters[para.set,,drop = FALSE], unlist) model <- if (useFormula) do.call(METHOD, c(list(train.x, data = data, subset = train.ind[[sample]]), pars, list(...) ) ) else do.call(METHOD, c(list(train.x[train.ind[[sample]],], y = train.y[train.ind[[sample]]]), pars, list(...) ) ) ## predict validation set pred <- predict.func(model, if (!is.null(validation.x)) validation.x else if (useFormula) data[-train.ind[[sample]],,drop = FALSE] else if (inherits(train.x, "matrix.csr")) train.x[-train.ind[[sample]],] else train.x[-train.ind[[sample]],,drop = FALSE] ) ## compute performance measure true.y <- if (!is.null(validation.y)) validation.y else if (useFormula) { if (!is.null(validation.x)) resp(train.x, validation.x) else resp(train.x, data[-train.ind[[sample]],]) } else train.y[-train.ind[[sample]]] if (is.null(true.y)) true.y <- rep(TRUE, length(pred)) repeat.errors[reps] <- if (!is.null(tunecontrol$error.fun)) tunecontrol$error.fun(true.y, pred) else if ((is.logical(true.y) || is.factor(true.y)) && (is.logical(pred) || is.factor(pred) || is.character(pred))) ## classification error 1 - classAgreement(table(pred, true.y)) else if (is.numeric(true.y) && is.numeric(pred)) ## mean squared error crossprod(pred - true.y) / length(pred) else stop("Dependent variable has wrong type!") } sampling.errors[sample] <- tunecontrol$repeat.aggregate(repeat.errors) } model.errors[para.set] <- tunecontrol$sampling.aggregate(sampling.errors) model.variances[para.set] <- tunecontrol$sampling.dispersion(sampling.errors) } ## return results best <- which.min(model.errors) pars <- if (is.null(ranges)) NULL else lapply(parameters[best,,drop = FALSE], unlist) structure(list(best.parameters = parameters[best,,drop = FALSE], best.performance = model.errors[best], method = if (!is.character(METHOD)) deparse(substitute(METHOD)) else METHOD, nparcomb = nrow(parameters), train.ind = train.ind, sampling = switch(tunecontrol$sampling, fix = "fixed training/validation set", bootstrap = "bootstrapping", cross = if (tunecontrol$cross == n) "leave-one-out" else paste(tunecontrol$cross,"-fold cross validation", sep="") ), performances = if (tunecontrol$performances) cbind(parameters, error = model.errors, dispersion = model.variances), best.model = if (tunecontrol$best.model) { modeltmp <- if (useFormula) do.call(METHOD, c(list(train.x, data = data), pars, list(...))) else do.call(METHOD, c(list(x = train.x, y = train.y), pars, list(...))) call[[1]] <- as.symbol("best.tune") modeltmp$call <- call modeltmp } ), class = "tune" ) } best.tune <- function(...) { call <- match.call() modeltmp <- tune(...)$best.model modeltmp$call <- call modeltmp } print.tune <- function(x, ...) { if (x$nparcomb > 1) { cat("\nParameter tuning of ", sQuote(x$method), ":\n\n", sep="") cat("- sampling method:", x$sampling,"\n\n") cat("- best parameters:\n") tmp <- x$best.parameters rownames(tmp) <- "" print(tmp) cat("\n- best performance:", x$best.performance, "\n") cat("\n") } else { cat("\nError estimation of ", sQuote(x$method), " using ", x$sampling, ": ", x$best.performance, "\n\n", sep="") } } summary.tune <- function(object, ...) structure(object, class = "summary.tune") print.summary.tune <- function(x, ...) { print.tune(x) if (!is.null(x$performances) && (x$nparcomb > 1)) { cat("- Detailed performance results:\n") print(x$performances) cat("\n") } } hsv_palette <- function(h = 2/3, from = 0.7, to = 0.2, v = 1) function(n) hsv(h = h, s = seq(from, to, length.out = n), v = v) plot.tune <- function(x, type=c("contour","perspective"), theta=60, col="lightblue", main = NULL, xlab = NULL, ylab = NULL, swapxy = FALSE, transform.x = NULL, transform.y = NULL, transform.z = NULL, color.palette = hsv_palette(), nlevels = 20, ...) { if (is.null(x$performances)) stop("Object does not contain detailed performance measures!") k <- ncol(x$performances) if (k > 4) stop("Cannot visualize more than 2 parameters") type = match.arg(type) if (is.null(main)) main <- paste("Performance of `", x$method, "'", sep="") if (k == 3) plot(x$performances[,1:2], type = "b", main = main) else { if (!is.null(transform.x)) x$performances[,1] <- transform.x(x$performances[,1]) if (!is.null(transform.y)) x$performances[,2] <- transform.y(x$performances[,2]) if (!is.null(transform.z)) x$performances[,3] <- transform.z(x$performances[,3]) if (swapxy) x$performances[,1:2] <- x$performances[,2:1] x <- xtabs(error~., data = x$performances[,-k]) if (is.null(xlab)) xlab <- names(dimnames(x))[1 + swapxy] if (is.null(ylab)) ylab <- names(dimnames(x))[2 - swapxy] if (type == "perspective") persp(x=as.double(rownames(x)), y=as.double(colnames(x)), z=x, xlab=xlab, ylab=ylab, zlab="accuracy", theta=theta, col=col, ticktype="detailed", main = main, ... ) else filled.contour(x=as.double(rownames(x)), y=as.double(colnames(x)), xlab=xlab, ylab=ylab, nlevels=nlevels, color.palette = color.palette, main = main, x, ...) } } ############################################# ## convenience functions for some methods ############################################# tune.svm <- function(x, y = NULL, data = NULL, degree = NULL, gamma = NULL, coef0 = NULL, cost = NULL, nu = NULL, class.weights = NULL, epsilon = NULL, ...) { call <- match.call() call[[1]] <- as.symbol("best.svm") ranges <- list(degree = degree, gamma = gamma, coef0 = coef0, cost = cost, nu = nu, class.weights = class.weights, epsilon = epsilon) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges = NULL modeltmp <- if (inherits(x, "formula")) tune("svm", train.x = x, data = data, ranges = ranges, ...) else tune("svm", train.x = x, train.y = y, ranges = ranges, ...) if (!is.null(modeltmp$best.model)) modeltmp$best.model$call <- call modeltmp } best.svm <- function(x, tunecontrol = tune.control(), ...) { call <- match.call() tunecontrol$best.model = TRUE modeltmp <- tune.svm(x, ..., tunecontrol = tunecontrol)$best.model modeltmp$call <- call modeltmp } tune.nnet <- function(x, y = NULL, data = NULL, size = NULL, decay = NULL, trace = FALSE, tunecontrol = tune.control(nrepeat = 5), ...) { call <- match.call() call[[1]] <- as.symbol("best.nnet") loadNamespace("nnet") predict.func <- predict useFormula <- inherits(x, "formula") if (is.factor(y) || (useFormula && is.factor(model.response(model.frame(formula = x, data = data)))) ) predict.func = function(...) predict(..., type = "class") ranges <- list(size = size, decay = decay) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges = NULL modeltmp <- if (useFormula) tune("nnet", train.x = x, data = data, ranges = ranges, predict.func = predict.func, tunecontrol = tunecontrol, trace = trace, ...) else tune("nnet", train.x = x, train.y = y, ranges = ranges, predict.func = predict.func, tunecontrol = tunecontrol, trace = trace, ...) if (!is.null(modeltmp$best.model)) modeltmp$best.model$call <- call modeltmp } best.nnet <- function(x, tunecontrol = tune.control(nrepeat = 5), ...) { call <- match.call() tunecontrol$best.model = TRUE modeltmp <- tune.nnet(x, ..., tunecontrol = tunecontrol)$best.model modeltmp$call <- call modeltmp } tune.randomForest <- function(x, y = NULL, data = NULL, nodesize = NULL, mtry = NULL, ntree = NULL, ...) { call <- match.call() call[[1]] <- as.symbol("best.randomForest") loadNamespace("randomForest") ranges <- list(nodesize = nodesize, mtry = mtry, ntree = ntree) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges = NULL modeltmp <- if (inherits(x, "formula")) tune("randomForest", train.x = x, data = data, ranges = ranges, ...) else tune("randomForest", train.x = x, train.y = y, ranges = ranges, ...) if (!is.null(modeltmp$best.model)) modeltmp$best.model$call <- call modeltmp } best.randomForest <- function(x, tunecontrol = tune.control(), ...) { call <- match.call() tunecontrol$best.model = TRUE modeltmp <- tune.randomForest(x, ..., tunecontrol = tunecontrol)$best.model modeltmp$call <- call modeltmp } tune.gknn <- function(x, y = NULL, data = NULL, k = NULL, ...) { call <- match.call() call[[1]] <- as.symbol("best.gknn") ranges <- list(k = k) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges = NULL modeltmp <- if (inherits(x, "formula")) tune("gknn", train.x = x, data = data, ranges = ranges, ...) else tune("gknn", train.x = x, train.y = y, ranges = ranges, ...) if (!is.null(modeltmp$best.model)) modeltmp$best.model$call <- call modeltmp } best.gknn <- function(x, tunecontrol = tune.control(), ...) { call <- match.call() tunecontrol$best.model = TRUE modeltmp <- tune.gknn(x, ..., tunecontrol = tunecontrol)$best.model modeltmp$call <- call modeltmp } knn.wrapper <- function(x, y, k = 1, l = 0, ...) list(train = x, cl = y, k = k, l = l, ...) tune.knn <- function(x, y, k = NULL, l = NULL, ...) { loadNamespace("class") ranges <- list(k = k, l = l) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges = NULL tune("knn.wrapper", train.x = x, train.y = y, ranges = ranges, predict.func = function(x, ...) knn(train = x$train, cl = x$cl, k = x$k, l = x$l, ...), ...) } rpart.wrapper <- function(formula, minsplit=20, minbucket=round(minsplit/3), cp=0.01, maxcompete=4, maxsurrogate=5, usesurrogate=2, xval=10, surrogatestyle=0, maxdepth=30, ...) rpart::rpart(formula, control = rpart::rpart.control(minsplit=minsplit, minbucket=minbucket, cp=cp, maxcompete=maxcompete, maxsurrogate=maxsurrogate, usesurrogate=usesurrogate, xval=xval, surrogatestyle=surrogatestyle, maxdepth=maxdepth), ... ) tune.rpart <- function(formula, data, na.action = na.omit, minsplit=NULL, minbucket=NULL, cp=NULL, maxcompete=NULL, maxsurrogate=NULL, usesurrogate=NULL, xval=NULL, surrogatestyle=NULL, maxdepth=NULL, predict.func = NULL, ...) { call <- match.call() call[[1]] <- as.symbol("best.rpart") loadNamespace("rpart") ranges <- list(minsplit=minsplit, minbucket=minbucket, cp=cp, maxcompete=maxcompete, maxsurrogate=maxsurrogate, usesurrogate=usesurrogate, xval=xval, surrogatestyle=surrogatestyle, maxdepth=maxdepth) ranges[vapply(ranges, is.null, NA)] <- NULL if (length(ranges) < 1) ranges <- NULL predict.func <- if (is.factor(model.response(model.frame(formula, data)))) function(...) predict(..., type = "class") else predict modeltmp <- tune("rpart.wrapper", train.x = formula, data = data, ranges = ranges, predict.func = predict.func, na.action = na.action, ...) if (!is.null(modeltmp$best.model)) modeltmp$best.model$call <- call modeltmp } best.rpart <- function(formula, tunecontrol = tune.control(), ...) { call <- match.call() tunecontrol$best.model = TRUE modeltmp <- tune.rpart(formula, ..., tunecontrol = tunecontrol)$best.model modeltmp$call <- call modeltmp } e1071/R/cmeans.R0000644000175100001440000001131014246371157012625 0ustar hornikuserscmeans <- function(x, centers, iter.max = 100, verbose = FALSE, dist = "euclidean", method = "cmeans", m = 2, rate.par = NULL, weights = 1, control = list()) { x <- as.matrix(x) xrows <- nrow(x) xcols <- ncol(x) if(missing(centers)) stop("Argument 'centers' must be a number or a matrix.") dist <- pmatch(dist, c("euclidean", "manhattan")) if(is.na(dist)) stop("invalid distance") if(dist == -1) stop("ambiguous distance") method <- pmatch(method, c("cmeans", "ufcl")) if(is.na(method)) stop("invalid clustering method") if(method == -1) stop("ambiguous clustering method") if(length(centers) == 1) { ncenters <- centers centers <- x[sample(1 : xrows, ncenters), , drop = FALSE] if(any(duplicated(centers))) { cn <- unique(x) mm <- nrow(cn) if(mm < ncenters) stop("More cluster centers than distinct data points.") centers <- cn[sample(1 : mm, ncenters), , drop = FALSE] } } else { centers <- as.matrix(centers) if(any(duplicated(centers))) stop("Initial centers are not distinct.") cn <- NULL ncenters <- nrow(centers) if (xrows < ncenters) stop("More cluster centers than data points.") } if(xcols != ncol(centers)) stop("Must have same number of columns in 'x' and 'centers'.") if(iter.max < 1) stop("Argument 'iter.max' must be positive.") if(method == 2) { if(missing(rate.par)) { rate.par <- 0.3 } } reltol <- control$reltol if(is.null(reltol)) reltol <- sqrt(.Machine$double.eps) if(reltol <= 0) stop("Control parameter 'reltol' must be positive.") if(any(weights < 0)) stop("Argument 'weights' has negative elements.") if(!any(weights > 0)) stop("Argument 'weights' has no positive elements.") weights <- rep_len(weights, xrows) weights <- weights / sum(weights) ## ## Do we really want to do this? perm <- sample(xrows) x <- x[perm, ] weights <- weights[perm] ## initcenters <- centers pos <- as.factor(1 : ncenters) rownames(centers) <- pos if(method == 1) { retval <- .C(R_cmeans, as.double(x), as.integer(xrows), as.integer(xcols), centers = as.double(centers), as.integer(ncenters), as.double(weights), as.double(m), as.integer(dist - 1), as.integer(iter.max), as.double(reltol), as.integer(verbose), u = double(xrows * ncenters), ermin = double(1), iter = integer(1)) } else if(method == 2) { retval <- .C(R_ufcl, x = as.double(x), as.integer(xrows), as.integer(xcols), centers = as.double(centers), as.integer(ncenters), as.double(weights), as.double(m), as.integer(dist - 1), as.integer(iter.max), as.double(reltol), as.integer(verbose), as.double(rate.par), u = double(xrows * ncenters), ermin = double(1), iter = integer(1) ) } centers <- matrix(retval$centers, ncol = xcols, dimnames = list(1 : ncenters, colnames(initcenters))) u <- matrix(retval$u, ncol = ncenters, dimnames = list(rownames(x), 1 : ncenters)) u <- u[order(perm), ] iter <- retval$iter - 1 withinerror <- retval$ermin cluster <- apply(u, 1, which.max) clustersize <- as.integer(table(cluster)) retval <- list(centers = centers, size = clustersize, cluster = cluster, membership = u, iter = iter, withinerror = withinerror, call = match.call()) class(retval) <- c("fclust") return(retval) } print.fclust <- function(x, ...) { cat("Fuzzy c-means clustering with", length(x$size), "clusters\n") cat("\nCluster centers:\n") print(x$centers, ...) cat("\nMemberships:\n") print(x$membership, ...) cat("\nClosest hard clustering:\n") print(x$cluster, ...) cat("\nAvailable components:\n") print(names(x), ...) invisible(x) } e1071/R/hanning.window.R0000755000175100001440000000022714173734133014313 0ustar hornikusershanning.window <- function (n) { if (n == 1) c <- 1 else { n <- n-1 c <- 0.5 - 0.5*cos(2*pi*(0:n)/n) } return(c) } e1071/R/rectangle.window.R0000755000175100001440000000005614173734133014635 0ustar hornikusersrectangle.window <- function (n) rep (1, n) e1071/R/rbridge.R0000755000175100001440000000026514173734133013003 0ustar hornikusersrbridge <- function(end=1, frequency=1000) { z <- rwiener(end=end, frequency=frequency) ts(z - time(z)*as.vector(z)[frequency], start=1/frequency, frequency=frequency) } e1071/R/ica.R0000755000175100001440000000306614173734133012123 0ustar hornikusersica <- function(X, lrate, epochs=100, ncomp=dim(X)[2], fun="negative") { if (!is.matrix(X)) { if (is.data.frame(X)) X <- as.matrix(X) else stop("ica: X must be a matrix or a data frame") } if (!is.numeric(X)) stop("ica: X contains non numeric elements") m <- dim(X)[1] n <- dim(X)[2] Winit <- matrix(rnorm(n*ncomp), ncomp, n) W <- Winit if (!is.function(fun)) { funlist <- c("negative kurtosis", "positive kurtosis", "4th moment") p <- pmatch(fun, funlist) if (is.na(p)) stop("ica: invalid fun") funname <- funlist[p] if (p == 1) fun <- tanh else if (p == 2) fun <- function(x) {x - tanh(x)} else if (p == 3) fun <- function(x) {sign(x)*x^2} } else funname <- as.character(substitute(fun)) for (i in 1:epochs) for (j in 1:m) { x <- X[j,, drop=FALSE] y <- W%*%t(x) gy <- fun(y) W <- W + lrate*gy%*%(x-t(gy)%*%W) } colnames(W) <- NULL pr <- X%*%t(W) retval <- list(weights = W, projection = pr, epochs = epochs, fun = funname, lrate = lrate, initweights = Winit) class(retval) <- "ica" return(retval) } print.ica <- function(x, ...) { cat(x$epochs, "Trainingssteps with a learning rate of", x$lrate, "\n") cat("Function used:", x$fun,"\n\n") cat("Weightmatrix\n") print(x$weights, ...) } plot.ica <- function(x, ...) pairs(x$pr, ...) e1071/vignettes/0000755000175100001440000000000014671766073013056 5ustar hornikuserse1071/vignettes/svmdoc.Rnw0000644000175100001440000004344514623570663015046 0ustar hornikusers\documentclass[a4paper]{article} \usepackage{hyperref, graphicx, color, alltt} \usepackage{Sweave} \usepackage[round]{natbib} \definecolor{Red}{rgb}{0.7,0,0} \definecolor{Blue}{rgb}{0,0,0.8} \definecolor{hellgrau}{rgb}{0.55,0.55,0.55} \newcommand{\pkg}[1]{\texttt{#1}} \newenvironment{smallexample}{\begin{alltt}\small}{\end{alltt}} \begin{document} %\VignetteIndexEntry{Support Vector Machines---the Interface to libsvm in package e1071} %\VignetteDepends{e1071,randomForest,xtable} %\VignetteKeywords{classification, regression, machine learning, benchmarking, support vector machines} %\VignettePackage{e1071} \SweaveOpts{engine=R,eps=FALSE} \setkeys{Gin}{width=0.8\textwidth} \title{Support Vector Machines \footnote{A smaller version of this article appeared in R-News, Vol.1/3, 9.2001}\\ \large The Interface to \texttt{libsvm} in package \pkg{e1071}} \author{by David Meyer\\ FH Technikum Wien, Austria\\ \url{David.Meyer@R-Project.org} } \maketitle \sloppy ``Hype or Hallelujah?'' is the provocative title used by \cite{svm:bennett+campbell:2000} in an overview of Support Vector Machines (SVM). SVMs are currently a hot topic in the machine learning community, creating a similar enthusiasm at the moment as Artificial Neural Networks used to do before. Far from being a panacea, SVMs yet represent a powerful technique for general (nonlinear) classification, regression and outlier detection with an intuitive model representation. The package \pkg{e1071} offers an interface to the award-winning\footnote{The library won the IJCNN 2001 Challenge by solving two of three problems: the Generalization Ability Challenge (GAC) and the Text Decoding Challenge (TDC). For more information, see: \url{http://www.csie.ntu.edu.tw/~cjlin/papers/ijcnn.ps.gz}.} C++-implementation by Chih-Chung Chang and Chih-Jen Lin, \texttt{libsvm} (current version: 2.6), featuring: \begin{itemize} \item $C$- and $\nu$-classification \item one-class-classification (novelty detection) \item $\epsilon$- and $\nu$-regression \end{itemize} and includes: \begin{itemize} \item linear, polynomial, radial basis function, and sigmoidal kernels \item formula interface \item $k$-fold cross validation \end{itemize} For further implementation details on \texttt{libsvm}, see \cite{svm:chang+lin:2001}. \section*{Basic concept} SVMs were developed by \cite{svm:cortes+vapnik:1995} for binary classification. Their approach may be roughly sketched as follows: \begin{description} \item[Class separation:] basically, we are looking for the optimal separating hyperplane between the two classes by maximizing the \textit{margin} between the classes' closest points (see Figure \ref{fig:svm1})---the points lying on the boundaries are called \textit{support vectors}, and the middle of the margin is our optimal separating hyperplane; \item[Overlapping classes:] data points on the ``wrong'' side of the discriminant margin are weighted down to reduce their influence (\textit{``soft margin''}); \item[Nonlinearity:] when we cannot find a \textit{linear} separator, data points are projected into an (usually) higher-dimensional space where the data points effectively become linearly separable (this projection is realised via \textit{kernel techniques}); \item[Problem solution:] the whole task can be formulated as a quadratic optimization problem which can be solved by known techniques. \end{description} \noindent A program able to perform all these tasks is called a \textit{Support Vector Machine}. \begin{figure}[htbp] \begin{center} \includegraphics[width=8cm]{svm} \caption{Classification (linear separable case)} \label{fig:svm1} \end{center} \end{figure} Several extensions have been developed; the ones currently included in \texttt{libsvm} are: \begin{description} \item[$\nu$-classification:] this model allows for more control over the number of support vectors \cite[see][]{svm:scholkopf+smola+williamson:2000} by specifying an additional parameter $\nu$ which approximates the fraction of support vectors; \item[One-class-classification:] this model tries to find the support of a distribution and thus allows for outlier/novelty detection; \item[Multi-class classification:] basically, SVMs can only solve binary classification problems. To allow for multi-class classification, \texttt{libsvm} uses the \textit{one-against-one} technique by fitting all binary subclassifiers and finding the correct class by a voting mechanism; \item[$\epsilon$-regression:] here, the data points lie \textit{in between} the two borders of the margin which is maximized under suitable conditions to avoid outlier inclusion; \item[$\nu$-regression:] with analogue modifications of the regression model as in the classification case. \end{description} \section*{Usage in R} The R interface to \texttt{libsvm} in package \pkg{e1071}, \texttt{svm()}, was designed to be as intuitive as possible. Models are fitted and new data are predicted as usual, and both the vector/matrix and the formula interface are implemented. As expected for R's statistical functions, the engine tries to be smart about the mode to be chosen, using the dependent variable's type ($y$): if $y$ is a factor, the engine switches to classification mode, otherwise, it behaves as a regression machine; if $y$ is omitted, the engine assumes a novelty detection task. \section*{Examples} In the following two examples, we demonstrate the practical use of \texttt{svm()} along with a comparison to classification and regression forests as implemented in \texttt{randomForest()}. \subsection*{Classification} In this example, we use the glass data from the \href{http://www.ics.uci.edu/mlearn/MLRepository.html}{UCI Repository of Machine Learning Databases} for classification. The task is to predict the type of a glass on basis of its chemical analysis. We start by splitting the data into a train and test set: <<>>= library(e1071) library(randomForest) data(Glass, package="mlbench") ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- Glass[testindex,] trainset <- Glass[-testindex,] @ Both for SVM and randomForest (via \texttt{randomForest()}), we fit the model and predict the test set values: <<>>= ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1) svm.pred <- predict(svm.model, testset[,-10]) @ (The dependent variable, \texttt{Type}, has column number 10. \texttt{cost} is a general penalizing parameter for $C$-classification and \texttt{gamma} is the radial basis function-specific kernel parameter.) <<>>= ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) @ A cross-tabulation of the true versus the predicted values yields: <<>>= ## compute svm confusion matrix table(pred = svm.pred, true = testset[,10]) ## compute randomForest confusion matrix table(pred = rf.pred, true = testset[,10]) @ %% results table <>= library(xtable) rf.acc <- c() sv.acc <- c() rf.kap <- c() sv.kap <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Glass[testindex,]) trainset <- na.omit(Glass[-testindex,]) ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 8, gamma = 0.0625) svm.pred <- predict(svm.model, testset[,-10]) tab <- classAgreement(table(svm.pred, testset[,10])) sv.acc[i] <- tab$diag sv.kap[i] <- tab$kappa ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) tab <- classAgreement(table(rf.pred, testset[,10])) rf.acc[i] <- tab$diag rf.kap[i] <- tab$kappa } x <- rbind(summary(sv.acc), summary(rf.acc), summary(sv.kap), summary(rf.kap)) rownames <- c() tab <- cbind(rep(c("svm","randomForest"),2), round(x,2)) colnames(tab)[1] <- "method" rownames(tab) <- c("Accuracy","","Kappa"," ") xtable(tab, label = "tab:class", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for classification (10 replications)") @ \noindent Finally, we compare the performance of the two methods by computing the respective accuracy rates and the kappa indices (as computed by \texttt{classAgreement()} also contained in package \pkg{e1071}). In Table \ref{tab:class}, we summarize the results of \Sexpr{reps} replications---Support Vector Machines show worse results. \subsection*{Non-linear $\epsilon$-Regression} The regression capabilities of SVMs are demonstrated on the ozone data. Again, we split the data into a train and test set. <<>>= library(e1071) library(randomForest) data(Ozone, package="mlbench") ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sqrt(crossprod(svm.pred - testset[,3]) / N) ## random Forest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) sqrt(crossprod(rf.pred - testset[,3]) / N) @ <>= rf.res <- c() sv.res <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sv.res[i] <- sqrt(crossprod(svm.pred - testset[,3]) / N) ## randomForest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) rf.res[i] <- sqrt(crossprod(rf.pred - testset[,3]) / N) } xtable(rbind(svm = summary(sv.res), randomForest = summary(rf.res)), label = "tab:reg", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for regression (Root Mean Squared Error, 10 replications)") @ \noindent We compare the two methods by the root mean squared error (RMSE)---see Table \ref{tab:reg} for a summary of \Sexpr{reps} replications. In this case, \texttt{svm()} does a better job than \texttt{randomForest()}. \section*{Elements of the \texttt{svm} object} The function \texttt{svm()} returns an object of class ``\texttt{svm}'', which partly includes the following components: \begin{description} \item[\textbf{\texttt{SV}:}] matrix of support vectors found; \item[\textbf{\texttt{labels}:}] their labels in classification mode; \item[\textbf{\texttt{index}:}] index of the support vectors in the input data (could be used e.g., for their visualization as part of the data set). \end{description} If the cross-classification feature is enabled, the \texttt{svm} object will contain some additional information described below. \section*{Other main features} \begin{description} \item[Class Weighting:] if one wishes to weight the classes differently (e.g., in case of asymmetric class sizes to avoid possibly overproportional influence of bigger classes on the margin), weights may be specified in a vector with named components. In case of two classes A and B, we could use something like: \texttt{m <- svm(x, y, class.weights = c(A = 0.3, B = 0.7))} \item[Cross-classification:] to assess the quality of the training result, we can perform a $k$-fold cross-classification on the training data by setting the parameter \texttt{cross} to $k$ (default: 0). The \texttt{svm} object will then contain some additional values, depending on whether classification or regression is performed. Values for classification: \begin{description} \item[\texttt{accuracies}:] vector of accuracy values for each of the $k$ predictions \item[\texttt{tot.accuracy}:] total accuracy \end{description} Values for regression: \begin{description} \item[\texttt{MSE}:] vector of mean squared errors for each of the $k$ predictions \item[\texttt{tot.MSE}:] total mean squared error \item[\texttt{scorrcoef}:] Squared correlation coefficient (of the predicted and the true values of the dependent variable) \end{description} \end{description} \section*{Tips on practical use} \begin{itemize} \item Note that SVMs may be very sensitive to the proper choice of parameters, so allways check a range of parameter combinations, at least on a reasonable subset of your data. \item For classification tasks, you will most likely use $C$-classification with the RBF kernel (default), because of its good general performance and the few number of parameters (only two: $C$ and $\gamma$). The authors of \pkg{libsvm} suggest to try small and large values for $C$---like 1 to 1000---first, then to decide which are better for the data by cross validation, and finally to try several $\gamma$'s for the better $C$'s. \item However, better results are obtained by using a grid search over all parameters. For this, we recommend to use the \texttt{tune.svm()} function in \pkg{e1071}. \item Be careful with large datasets as training times may increase rather fast. \item Scaling of the data usually drastically improves the results. Therefore, \texttt{svm()} scales the data by default. \end{itemize} \section*{Model Formulations and Kernels} Dual representation of models implemented: \begin{itemize} \item $C$-classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha-\mathbf{e}^\top\alpha \nonumber\\ \mbox{s.t.} &&0\le\alpha_i\le C,~i=1,\ldots,l,\\ &&\mathbf{y}^\top\alpha=0~, \nonumber \end{eqnarray} where $\mathbf{e}$ is the unity vector, $C$ is the upper bound, $\mathbf{Q}$ is an $l$ by $l$ positive semidefinite matrix, $Q_{ij} \equiv y_i y_j K(x_i, x_j)$, and $K(x_i, x_j) \equiv \phi(x_i)^\top\phi(x_j)$ is the kernel. \item $\nu$-classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha \nonumber\\ \mbox{s.t.}&&0\le\alpha_i\le 1/l,~i=1,\ldots,l,\\ &&\mathbf{e}^\top \alpha \ge \nu, \nonumber\\ &&\mathbf{y}^\top\alpha=0~. \nonumber \end{eqnarray} where $\nu \in (0,1]$. \item one-class classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha \nonumber\\ \mbox{s.t.} &&0\le\alpha_i\le 1/(\nu l),~i=1,\ldots,l,\\ &&\mathbf{e}^\top\alpha=1~,\nonumber \end{eqnarray} \item $\epsilon$-regression:\\ \begin{eqnarray} \min_{\alpha, \alpha^*}&&\frac{1}{2}(\alpha-\alpha^*)^\top \mathbf{Q} (\alpha-\alpha^*) + \nonumber\\ &&\epsilon\sum_{i=1}^{l}(\alpha_i+\alpha_i^*) + \sum_{i=1}^{l}y_i(\alpha_i-\alpha_i^*) \nonumber\\ \mbox{s.t.} &&0\le\alpha_i, \alpha_i^*\le C,~i=1,\ldots,l,\\ &&\sum_{i=1}^{l}(\alpha_i-\alpha_i^*)=0~.\nonumber \end{eqnarray} \item $\nu$-regression:\\ \begin{eqnarray} \min_{\alpha, \alpha^*}&&\frac{1}{2}(\alpha-\alpha^*)^\top \mathbf{Q} (\alpha-\alpha^*) + \mathbf{z}^\top(\alpha_i-\alpha_i^*) \nonumber\\ \mbox{s.t.} &&0\le\alpha_i, \alpha_i^*\le C,~i=1,\ldots,l,\\ &&\mathbf{e}^\top(\alpha-\alpha^*)=0\nonumber\\ &&\mathbf{e}^\top(\alpha+\alpha^*)=C\nu~.\nonumber \end{eqnarray} \end{itemize} \noindent Available kernels:\\ \\ \noindent \begin{table}[h] \centering \begin{tabular}{|l|l|l|} \hline kernel & formula & parameters \\ \hline \hline linear & $\bf u^\top v$& (none) \\ polynomial & $(\gamma \mathbf{u^\top v}+c_0)^d$ & $\gamma, d, c_0$\\ radial basis fct. & $\exp\{-\gamma|\mathbf{u-v}|^2\}$&$\gamma$\\ sigmoid & $\tanh\{\gamma \mathbf{u^\top v}+c_0\}$ &$\gamma, c_0$\\ \hline \end{tabular} \end{table} \section*{Conclusion} We hope that \texttt{svm} provides an easy-to-use interface to the world of SVMs, which nowadays have become a popular technique in flexible modelling. There are some drawbacks, though: SVMs scale rather badly with the data size due to the quadratic optimization algorithm and the kernel transformation. Furthermore, the correct choice of kernel parameters is crucial for obtaining good results, which practically means that an extensive search must be conducted on the parameter space before results can be trusted, and this often complicates the task (the authors of \texttt{libsvm} currently conduct some work on methods of efficient automatic parameter selection). Finally, the current implementation is optimized for the radial basis function kernel only, which clearly might be suboptimal for your data. \begin{thebibliography}{5} \bibitem[Bennett \& Campbell(2000)]{svm:bennett+campbell:2000} Bennett, K.~P. \& Campbell, C. (2000). \newblock Support vector machines: Hype or hallelujah? \newblock \emph{SIGKDD Explorations}, \textbf{2}(2). \newblock \url{http://www.acm.org/sigs/sigkdd/explorations/issue2-2/bennett.pdf}. \bibitem[Chang \& Lin(2001)]{svm:chang+lin:2001} Chang, C.-C. \& Lin, C.-J. (2001). \newblock {LIBSVM}: a library for support vector machines. \newblock Software available at \url{http://www.csie.ntu.edu.tw/~cjlin/libsvm}, detailed documentation (algorithms, formulae, \dots) can be found in \url{http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.ps.gz} \bibitem[Cortes \& Vapnik(1995)]{svm:cortes+vapnik:1995} Cortes, C. \& Vapnik, V. (1995). \newblock Support-vector network. \newblock \emph{Machine Learning}, \textbf{20}, 1--25. \bibitem[Sch\"olkopf et~al.(2000)Sch\"olkopf, Smola, Williamson, \& Bartlett]{svm:scholkopf+smola+williamson:2000} Sch\"olkopf, B., Smola, A., Williamson, R.~C., \& Bartlett, P. (2000). \newblock New support vector algorithms. \newblock \emph{Neural Computation}, \textbf{12}, 1207--1245. \bibitem[Vapnik(1998)]{svm:vapnik:1998} Vapnik, V. (1998). \newblock \emph{Statistical learning theory}. \newblock New York: Wiley. \end{thebibliography} \end{document} e1071/vignettes/svm.pdf0000755000175100001440000006265414173734135014365 0ustar hornikusers%PDF-1.2 %Çì¢ 4 0 obj <> stream xœ•½KvË’4ß¿¢†f@‘÷Ì5EBbÂÜ‚±elctvC7FñçÉç‰ëzÛ»ê¸Ôû«XoFÞâ–‘‘å»~üOÿûoÿüãŸþ(ßç«Þÿýóø£~ýÇ?ênó{Ÿ¯öÌú]Æ×ŸÒ¿{ýú›@&ó»Ûß­°¿çÈø~: Ï÷ééûBVý>Š¥íßå ¡ÑZßEÑ´ïÎßœï2R¿úÞå»(âò=hߥPŸï†žvÿÞ 9߈÷‰>]À¾m ÀTîßÏ·Œ­Þ±¡ãƒõ! } = S%¤|oBú÷$åÁ¸/dÚhËþî„,´&dÊŒÎþ–)–Ûœ€ó½Mý&Þç{>¬çùÞõBž¢ZÏþÞïS¿çÈÖåißu¤#ýIå®]xÀíë}!s d}?K G°œ»‘Ä2¾«ô}W@FóäîÉxAöùoÌ{}×çÕûݰ§¿F¸ë÷3òÖó½ökšë.äóZŠ5?—kuÙîXÒK…{äU_«€ÞccÖ<º›¶wk.ÝMÛß5Ç÷Z™Öl²‚N'ë2Ò‰”Ö,X” ¶57܈qýÝžD®kÜ¥š™¢×˜ öDõkÜ¥Þ™1Öè2#gž5š,¹3Øõ{µÌ„€”™ùt»™Oæe@^ì¾úóý´$X#ËŒ€P®ü Á‚œâ»ûÉ}ßéÎþÞ\[¯)à§û5Í~—¢¾–¢/_@]®>l8¶¤½ùré²÷»Èï­iâ-ï^»Ôòäý½p=/ ¸âíy^Dñö¼éJ³³_Äv¥Ù˜/‚¬Û†lD{åÙj/º®Ë”iÿʸ>_üq…Ü|±P­6+c³+õf{±â•zÏ|që…ôóâèr¾O{qý…èþ™d¸6_ÒãJÏg¿$Ì•T ¢Ò,aV‰½«PŒšØŒI˜h‰šøÅ0í fRÜ–Ô弯º«ßW¾{®R|‡]í8¸jrJqíåÔdúÍ Î5 ¥+I§[W¤NÛ¦kü];‹¸Êv6rµî¬fšß¹ÑçX7 œ«ÝÈpÎ73Äeƒ[*.?>¬™¿ýñﯕóÿüñO_튲;L˜Aøç0ƒhB?}Õr¡^ãg^mðàOÍóÊ¿Zîì1¢yå7~Ú'wx^:^÷Ï+jzú ià-/OWþ!XUZZŸ—›‰èÒÒŠ¯«ÜùFÛuidÞUžèӾ鈬¥WñÚ\òLÿöÇ¿þúÿ¨çnÑU­MJÐ?3Ä9 õG¶õLœÛ?Ls…$iƒRi¹t€é#ôr!KiënEEsýu@ewÇ›ë¸Ó+´As5x„4/ÄTå¹Ô Jj¦MÏ]€ÉFªo—àþ­úø€'.Ñ4ÓØ§Ñ ¹Sê§ÑÚ¸SüG¸ïBÌ88`(BÌ€8—é*«qÀú˜r(/.À,•ƒÑ¹5sDx]ˆY<§,˜PbVѹ[ߎ@¶Lª4n›ÛV§p Q£bm Dl´ýû4·ã6~]ƒÜM/äî3dóóêýÊïýᆌyšáä‰nh'/ƾæ½`{Y0_Ô}éê6Ö}_’:#m;TwVÞ½}U`]y‡÷U“ce*ØÐ¤+SÊ^wÝG"¦}òÓ¹íË&°F ÄŸD±{Š" ¢Þ—û΋ð÷µžycÏ.SŠÃÓl²èÎc€Œ–ùp_Öç¼UiOfçÍáÆaor¥C$0F©>–¿„„ô6ÄWŸè8€,”„Šä¼fÊÆV‚ë½R¡³l5C¯ÙЇî³] õh*Ôö6Ô¬m¨b£ÐÖFE¡ÑÒ*¥Laņõ`D†~X!Æn¨ÿ„)c<ææŽó¡›DΫ0›ž?»iå<6^rÁ-4—nŹ|ù¢r*AT–9f—wÞ»‰D KMŸ„KVŸ¨K__ —о`&ÄmI]Ìûª»&ðqmá»çÅwصŽSk&§W^NM¦Þœà\:QºŽtÂu=êÄmªÖéßµ±óˆklç#×êÎk¦øÝ6p–uûÁÙÚm g}³BL2¸âÂãÖé÷×fߺsx¾6Eòýë.)Iü¶Z v׆„Ç_wåïï®Ú Uaoí«æº™5ow®O«íbåðwìë\Š"ŽŽÃ¡èÇ[qvŽñN­Foüæ#a;%qú ÒÜÄΛ—ZÆ%Ä6.ù]‚ú3C–hh@*¨dTe‰à 8.i•G!ó US¤TþfB¨rµñ4Ѭ=H#UÇ€vÞU‰Ï;®ç’Ç…¨yH™„Laßy¹ë¾!2¹G.È»ÑѾó²fÇ!u JÝ ¹ ý «K[K—zä.¬@.¿@´Ž1Å:˜W. Pè“„,!wQòŸko—Ž™_ ¬{¾ˆRöx°L˜ÄUAµr—ra„WqZãŠÄ~0õ«‚¸îã@>m,â¹f oãê¤Æ®®‘R¡1ÙÒèRüÆÖ\ÅM]?.¬ÚÒ‰g˜¦¿¡E36\ íÈÝüä­óºjŒÜûU`sï<«äæóšÅU„½­<Ñk–ôÑób\Ûç“ î™–ÉóZøûéžýóæÜìrò^ó£”6ÿèQB— —@”Xðr€ÑÓ¸¼¹wO4‡ô¹YòýI¤‹ý¼ÇåêsÈYŸNk‰MÆzëœÄJøñÁÜÙ g…qä¸"y—™˜*”±ÑÙ31?û$€4vnB$A† çH£dKˆ‹® w^Ô”–)ò>&Qú÷yMóræìy)úåÌ9ór]n²Ô%í—3eÏmÙûÓu¹tgúeÌ'o^¿|ùÔ¼ÁýÊçV3ôCó*è¤_;éÔLJýŠñþdr»ìßV"É~yWldÛ!àG&í¾UÇ:ù÷ Ù›YÒ3õËÍçɬÕ¹³c¿Šœeûn:uck@„˜Œõ)+‹‡¾+œYI„BƒÈÅÌW1‘˜MìEï&c„*=c&`c¢&„c1LPÇ‚™0E5 oJÁ7LJo +ßdW@N®¤œX\‘9A™®s’suèdé*ÓI×ÕªQ·k^£WÎÎ"®À\É;«…`ì¶‚rl˜ÆÔarã'³D…C2]D~|Z7?[~uÁª‚±xàïºg±vÿ:r4—|õ®Õ«_î//—Ò<Ÿ´âä _ææ‚i«‹IÜÇĸäþ€}-qÝU8ÇíË¥†m®8ulØ_ëpë_ZØØ—;ÍI,¾Ëwµî®\"À³— Kt eL@»>·‹½îF—+ êVÈÀA«\I0!w˜•¿™8g ¤ƒÝ‹\r¼´â• óöy ±\6]“+¾!ÊV_ÊÁ”ˆgë‰è\ö ô €ÛzÍ#ކsO¼PåTᮃC1„X9êDÂòù ˜ŠK¾8·—3E“uu·@Tùbk–@ŽX"yÞòè‰è`Ýà /8ÄóÝĆãlyTÔ\5vbÏJ€\ý‡S]eß ¹Í¡+Êe°Š-<×$œ€FƹöGiüÉÒ™ãjª?9ÒèΊ«x°ê©"ø´ª)x¹6ûÎïU}ó!j•½ ¹Qõt²å'ˆÉ(‡¸sÌ.ë¼w—‡>B—™> «>Q—¼¾.}Á\‚û¢º”÷…wMà›ãÚÂ7Ð5Šo±k'×LN&®½œ”\Ã9¹™tŠt=éTkªÔ Ûµ­hdcÐÚÆD¡ÙÑBû3†…` V„1uXÆøÉÙìŸ6ÍÏv^ƒ”øÂ}:ì<\µ¯}ÉC¼\s­¨]ųÖ ¼üÆ_|¸éCÖ/½Pj+*ù1Ò×¾†øízÁïåK/øµµÁf¶{Vû!\û×:6ÅeãNsÒÜ&þƒºzßÿÌzmáx½»zÿ<²ó„ÜåcÄ‚¸Ê¹¬Ì˜1<ŽÅ_ Y˜ö÷¥xF,lÅ» r±°õ7T“£•K6ø…¯Ð`|ÂV¼¼ya|‚¢A¤×ý[ïšø1‹ ži8 +†kŽˆ õ’Ë6[!Ô£Œ" ™¸rG<9ÎoþB5n…œhíJ°5ÆFbƒh¿Ô&ŽŽ 1×:\ó••1îûKÀb·˜pús¼]m„Š‹‚Š9ÁC!˜ï¢Õ#¹b»ªzõBÌ#y>zBmÕÀ˜¢Ê…€Y7y½»|;%D¢¹ê³t8?AÈ©/HåòâC†O}×CW__= pIsÀa¦Ö<Ïzª®—­E•cpZ¯ºiA¦5­{êzÙºã4NÞ›*>´—æAi‹qP*O¦‚º8ÖD(×´£$Zª‹ê"Ñy³Ód]¼ºLt['ýoAÚuò'hÇU3{ÔÉËçÄBuÒLlHY™qåÌ[ëUb$&çg@ÖÈ<¶/ä ×06Á±ù„4½  ´E˜w½ÌáÃ[—^ž™g°.½(-é,ש¶X²k?`‹u5GtíéË'kŽÀ´½ò¶,sùÖ-ܤŸ¼½ë’K?™®'ÚÒÉdÉ)­e!FnkYø‚‘äZ¬`d»¦œ´ÛW_ä¿¦Ý ‹ "°>™–,\b5ÄêÂ+;®iñ ƲK62±5âgͬˆÄ8¨t@ã3²Dü&d~†ˆ° ˆÊ³@l"/ú6±ã3Ñs0ñó4kab:ÖËDy¬©‰ûXwS ±7ª5bûT¯Ä«æ "PÝtbê+hÉT\Л©Á IS•A·ªLƒ´MÝù›J1µldª=XÍÔ¿s£ÚÁ¯fBO›™|¦ˆÉ†°UL~|Ø3?Ûxƒw®ßkùà¢Ý¿m¥Ûù/DÞÑ1[à!›O£5@1÷¯ã_VéâÚg«…þŒ‹ék]ª‘¿à­Ó/ý{›Ë<Ž­£wíç½¶ð±—;ÍIm<žHÔŸâ:SåB\÷Š8ºcü¶x€i4*UûñféBÚ[û5˜¡ÕÝ`«íz•„{!‹5 ºéU/×.DBzÕ+9ŠYÞ ÔaF†ðÌ…X@'øï¾Ód”ñ—°Å¶6½pâ­6õr{TEz\H¨©Â “Þ(‚G&Þ,¨©Ž%“ç `0¼¦7 ƒª£1@£#ÀRÖæšüo·à©  ‰Cæ(.¤Ëç…ðøBˆ`‘_ÀÐØ‹ÚwÛ»tj½£ª y‹ÌåB¦IeDÙ>¿A$0>A*¥{Æ\7ƒsSñaW[žÂ=Íœùš%øa¿V¢Ð ˜ ²üµžB‡yÍ ½w±-å‘îØ98gÏ» ×áé™à:äSI‘ à $ø {¢´rÕ‡k´G!¯‘œ\á*ä Œ“t9‰êá;äM‰s|‡œ‘sO9´™‡Ñ›ød.„ÓvN…q­ÌÍ€ô“9ž>È'K…‚°Äš%G@šç/!ÇÂŽóÙâ–ˆÞ4Ù.ÙgžÖ}ç™zt¤-¢#kË †ðHŽ,*â#uÇeÝÛVÿ¥oM»רyû<*'ïp[zýd4Ñ‘F%m©Â)©ÁÁ³3µ!^rÎL‘mÛt¥Ú†Ø‡š A”óEü ÆðLü°Ê•9¨M7·•Ëô´jæÄˆ³4fmÓMráç6“úÊò€¬žÅ }fш˜*^~†ˆ˜Êe ³H»Ô¹ Ä4@•™i*WÓ~5"xÚí ç{·E\6¸½âòãæùÙÎëW|­¯ÍûhüU4 ~´CÙ#7¡ýŠÄÓÑwv=iwâË•ÔÛ[Á;2Œ§‰Í%½‰Á¹<9üË(¼éÕV¸‘žŽ–ãñÞô›°•P0úèÓÌÔÚ›—c.W¤Ø\ýg†˜G˜þH±¤@Ì×q!÷Ï¡—P÷Ïù=: :áQ’a®@øóñL¸¡ÑóxT­O¤û\û 6MWÑúWqì½uY×IçæèE`EtÀÆp§FZUDàñ, eÜ:_ê³¾¹z!]\*g8˜FÈC%dÙˆï–pâKرœÕ²ØQÄ[lBLà0& xWrršWÏrÈ[ †ñ`¯+R2Å33pÏY1#càòj D&>.½Oâ53žÂEßf«Œ«¨ !S÷n\ívÏŸ„èOºŽå¯Çã¸<=ßX7n‹^=ß]Úȃ»/õ5,ÈxM˸^ ±pM—j º=b5Çj²V¾â?ª5ï B”püŽCÓhywê´[¦„––ˆ1€«f:b à“i 1€±Ó#c±f¦YĶ–É\ðïé#È å`„ÖÌAˆ k3sãŸÌˆ€pæÎ¬ã22)ɶ3Ç3.íÉR‡Ìò—€fð޵Y¬½÷ÜÔ‘éƒkz¡€p˜¯IÖGMZ_ˆªñ1¶TuúXt5k÷ÅÓ¯æÇô])¦y}ç µ_»[ôþ)(à2~]/*)f,8!³0ŒØÎc–ŠäyÌÉaD{T7º>^«9íŸÇ¢Û?Σ—qÎBòbf6;ú`Œ¨=sëy4ŽÌ9úœÇI¹]³dd¼„ b+˜|ù"R*CD’%Ì"ìRç*ÓUf¦I¨\MÑëKa²9VËäw¬¨ÉøXuÓ±3¦+|óLÄþšÊ p­ätâšËiɵ›Ó›k@§IS’N¶®G´]×:ù»>vqíldjÝøÌ¿³¢ήb=8?»ya,ïˆK·R\r|X2?Ûxöú¢¿“ù È´@º„$ÒöåtØ_kK äݰ/¸%O|9û{G«§i#1>r«½qäóxÄ89¢.ÀcÙyoòMÆ!­l„‚ÑFŸff==]ÍCåòg†¸O­ò|tOîS»Ä#“W}|•ºòBŒ‚A8ó|¶¹ø+µgC:pœöš°ŠùÐ*Õiƒßòäârâ¼§ &~#åø¼Ž•Ë©óþ«V»5„¼ ·ÐÃóàªîn*’\¿î ôøwù17H°)~^„ø‘GË îw=>ˉ8¯3÷+DÎå«i (Ïî4_Mƒ£j‘Õ Y~𝰠.D/òà7Xò÷ór6¬feÌC±ZrkpÍÛóá‰Dd!ž] ÂAe/ÌOÁ – i<2fÌR"õ¾(~Òqâ|^sX¼=Ìó\Rµ"VÇÝ÷bÍ-; ŠƒôóZô)^‚´18>¿ö'ì×ö"RLAe,Y@'Ä—à(¤„”ggr+£ÉŽ;I"r‰ Û2J¦ëÒÅÉ´Hi™? ‚oŸÌB€pÍËW3vfÄÒéß ^©¡ÁÏ€”™y;{g¹"ÒBvdùhþ2Ô_â˜O3žõ~ФõÄ·:ù$ö2—§Ís[ò·-żòÑP–k.w(ê’ÎåE]ö¹¦. ¶e®¡þYݶ¹Ìtµ­ËR5mûç´”O#‘9ݽ¨d4§ª6£´9‡žŒçl6Z%Ø9MaQÏ©qêNøs˜š5昰P{f ©åœÅæ•úL• çp/¥²* :såæ9ÌeoˆîœJ@Ô¹©’cõâ›pù "**ÅV•t©g†it*0Ó D¦¦IªÔM ¡’9ÖJ…wZNðiÉU Ķ˜žˆ­3]Ûkú&HÀt’S‰©­ $SmAl¦þ‚ MEÑšuº6Mëd¯º8ÃÔu0iô`0×ú΄n8£ºõà¼ì†ó»[!.ÂRîr~Y3¿øò_w òàË»ØÖô…-¨"ØÌôäqú/ô;ŽG_OUÿœ|©r!¤­šxЀmø;öô4ñþaÛü˃ )Þ†…Qcì¼/ù&£V6>bô±§YYd¨ :bò6þÏ ƒ6%=Ÿ…ªA˹Ü6UØ*º“€Àq‹ˆ›’ø:N#7YY§ÁÕà€Ëp £Ž“FŒ#–ö‚\m0š¿!^@Ò·‘pM[ÂDmHþ6*;itrÝ R÷±ˆ·!%PÙ©*DÊ ÐxÖh$D7„4 ;@LAC]§¥LdGY'뀀íñâæFŒÁÒC)!ÊO–(¡m=R§"éÃÅéQzÆ=!¦„ã£Æ_41óŸ#΃ÖÐ㱌U* TA„DcnL ò§p%*Ðnx¦êî&q]¿@8ß„•â"5—Rϸ\ytU"½Ò ’ƒÛ­˜e•°‹´õi«U:ñbAë9kŽ "Z»¾/4Â}aì]•D¶´½XZO¦5=O&¤AÑw:ÒP¨DkUb[=Ö=Ä@wšEU}2]W‰šI´Ð,¡ÎUBm! ‹ ï|† /Üz/jXâ׺ô â< H™ïí†$dƒÝ«„üH³ý%d<½¨˜‡‡{ZïC3c„Ãc0mÃ#.m¦—“K{­Fߟ+Ö­ˆŽ¯j÷3[ùîÑ”¶;~^ñ´£‡o²y$œ4<ÕÅŽNKqb4z‹S¥ÑdœûZ¹÷õt1ïkzȺ( ß8S'¾·¦p|ûM%9…¸Ö2"rŦñצùŒ]9™ºþtJvëÔîzØ9Âuµsësç,×ùÎ}n8‡ºíà\ìö…sºÛ . ÜNq‰ñaËü•·hwZx£Á:ÓÄydÐ|Á‡(zȨ}zù’ÛÓkŸiž„~UoVÙjˆÿŒø†d@hO’^ÏØGÿ‚Œ•hƒ@€À‡»‰èK¾É(¤•O0ÚØÓ¬Ô²\•ÇåÄ¢k=GàˆÒé3TÊ#yV•X$ö¿°š€RwÛõW`x—©Ý|†D,Y€Ò*±d÷gði”W˜| X³H¨U4Éb¥V‘S SÁÇñ ʃc爬ù¬²5Yæ&Eu!V²çÀ¯ sã6a]ô?†ƒ=ÄŒ§”•ÃÐx’99T §F8Z4D£ç€7šVމãÁêÉqs8|1xÍcëp@“áü±h»€ˆ‹"a^nç½ÃpX¯N‹·³I\»aÕ×<çÐà?_ \z½×ëJY/_Óq$:1Öý²‹%øÖ Þ2å݃Ày^Œ;ÂçE¨«ñ¼ˆ¤ö42‚´›‰Ð&rÓF"E8ÞY¾Ã©uBŠ>™¢'’Þf&z@jæ xì9%ç@¸æÎ_žÑ™ypÂ3z2ŸÂ@Xge@/æì®×"I$èeJi>ž¿„xPcöÀï݃sl„Àc³ˆ ›©ÇÙbD¨-X„éšFÄ‘-{D%ÙÖDä’m_D7ÙG”ADID$•ÑRD[½ED–ÑdDmÝFd—‘vDùG„˜±ˆ‘Eœ™qZÄ¢7F¸š1l„´SGØ›1~„Æ™pˆè9 agBæGˆ « ‰Ø=ŬB/õ®‚1Pegš…Ê×4S•Ái5TN§SY‹ªâ>­»j„´7¢4Òö1¤,öW”N"QKA%¦¸‚’L·µ™ú Š4T«Z4Ûm¿)ã`SØÁC¦ÔƒÏLñ;+ªiÌjÖC0´[Îôn…¸`pKŅLJ5óËm-R¸<"ïòˆG´ËªG»/ƒ›^ùîÄž“VY|s'=I4Þ¼qzð˜®h÷hà£WÐû’o2 ¶òñ£=ÍJl¼VîQEµŠh¼Q‹ž„9L+ÙppC¬Bx³CÑfÕ<à aQhÜKŸÇ¸îǵ?5N㉚nÉ…°9¯ðI çÈóEÙ_1‹°SŠÅÌ k í­†fSF“¦άˆµŒ9ôõS"W…l&lÍ®ŽÞ†ã1âK°·]¼S @Þ2œ+p\õ7ŒË½Öh8¬sZC£5NóÕâ ~úàŠ`Éò\Nâµ(d£k³0ÖèØ_”âMÐÀQS¢3_,ò_§ ¾†èY®» ¾Æ˜ÛG º}“·DÔ²(b7~ð6*ª¬^`Å‘«½zÆqq¾F7x¿–gÍöš$N€íµÈ«z­Rºæk9Y@íµä¬ÌöÚ–Î[™¼uAôy{]&K›ãd*¹G,ä&Bj²™Øq&HœËÛ‹hÁüçEØ•¦K&~~dþ¨¼ÔÊU¢/ù&£V6>ÁhcO³²100 –Û4Ûbä?Ô“É`,ó©Œé‚(9yiq'9¤cH™#K¤l蘕t½$¸“7R?ž ŒYü•a/ ¤—² úÀˆ²äZ Ó¹é*:wåì1ì6_™Ÿ-=˯,î2}ÿAåÌÏ‘W ¢2-aV¹—zјƧÂ3æ`6æiB8ÖÂu¬—ÊòXR÷±ì¦bkLmÄö™j‰-6õd`**HÅÔX“jº 8S†A•¦0ƒrM©u«Þ 0ÕLbê;ÉT|0›ZÎŽn&8Ǻ)á\íæ†s¾Y$.Š1òa×üö:¬*,|ð:­ª£ñ‰‹÷ ,KÈ¿:~¹åz|±ô ŠûÕøvF´:-§ÕæÕÞàü%/[Ìø6ßáíà@6ŒRÙú’/6iecŒ6þ47õñái$n 6_‚H &߃áßvøo¢pRÁÅAÇuj2>4¿7«[Uƒ°Ñ’ 8>`3ÙHo‡ªÁ}ŽCšøÐ1¿xHŸj mì´ÖD‘5æb+D<¾ˆÑi:bfòÔö¸ßDPë9.jÚ̵ÉóICøú„ñ}_ vO>w6Éy©Õ8SGfuÌõuäÒ 18=Öx°3wã½ ä7TÅ—êçB¨ÊzôZ‘ÃØÄ<ÕÙ´%\€ãŽC„¥Ô8«ÉÁ•=‚Êá–=‡¿@#U2¤É &Ìò€iê}Jhn¡ãÓ$äìŸç)þ¼³¼kHD}Zбt±|ч„óǾð%ƒ×ÖBÁ–¶·KùDâ(Éd"ÿ2)!§½È­÷9Š‹&‘, CÌLÖpìÀ Ò‡ógì̵ÉÕKpºŒ—Á­„ÀžàD@8qgÖÚ†’34 3ó<Ü8— ð`á}—pŸà÷âî^Bí»»KІ×ýDoSè~ê·ivs ØJ4 ÌŒÕjË×OW´ Ûp[õÖlµlgšÞ¤ÅîUÓíEÒáyíîLS©Ý¼ÀFGµ™Éh­ê)豄‹\i¶„ÿ[ɺló¢éw{èãKÊ>E:Á_ÅLƃE?Á¦¥Ú¤•K522v/î 7‘PÔ ±QÜße¢åGˆŠ¨€˜ Ì&ê¢w‡1B“˜1 “ª1S“¼%»Ûd<¾b&Á}EMÈÇ¢›ˆ1]›gú$6ØtNé¥ Ó]ALªÞœÞ\:Mº–t¢uMê„mÊÖißõ±ó‡ëlç!×ëÎg¦úÝ8pfuÂÚ gz³C\,„¥b¢ãÚùͯ‡Émø°é×Ã}éòŒÝ–ÛÐ1Ýcw9eø{ R/"Žø¶ÄúÒvúê…âÜZñ]ú£O¾9TIño—0G´ãóºŽSª2[òÍÆ"ílœ‚Óææ§/c\Ë’OßYÐ^¬¦?r^b:€tÆ+X |„Çâ|Š>kŽÙCþúÃh&‹„ÏYH’ÞY¹Ì¢Ž`èvÆYdÒ¹,4¥ê˜2Þ!QsÕ±spqñ¤ ¨s€ÃP/“:8IuP¿ Å´-Ö Õµ«Z8–òö-”ÿnQÓEÃùVŒE~ÁŸ-‡¡8ùi9~Ì ˜{ŒÊžŸ™ëèÁZ?|¯ÈbÕøVÊ«J¬¯– é¡ û¹PÝAìüΕôžn);E×<´ÜrLŽS‡µ‚Ü ¿jëñXVÆ|9°[$ŸôŽê»å"z÷œ4 œa[ŽÛÃ Š§çRz¨´fŽÛÃó¯Ò„8dŸWùB”ð¯'U8D•ÿ ›w·~ Äö÷RLjќ1:¹4¶XüÏHÉž!pb»"øLŒñ f™bñT&rªFËÊ%$éÆ`Ì«sâe΋ƒàü`„«3YAÝŒ•ùPž^N½?]ÒÆ¸Ñ;9F€Â&— Wæïó’±7 ~€XÜM`¶ØïÜÂw||â£3𠟣… ù2x$‘/•GùrzD’/¹G-ù¶xd“o?ùîz€”€Q9x •Ó‘c9­y¼–Ó£‡t9ÍzÌ—“µ‡…9é{è˜q‡—9ÿxü™ó˜Ç¨9z›³ªÇº9;{<œ³¼Ç̹Xð¸:{çâå'ˆ‰©QQ˜MÜEï&c„&5c&Yc¦&}c5LBÇŠ™÷E5AËnº ¶FÕEìži”ØaÓ:A¦™‚RLy5™~ Š3Tij2(×TiP·©ÛàSÉÁ%ªµƒ‘T¯¯™êwv4ë 8V ˆ`i·1œíÝqÉ`¦Š ·1óÛ‹OŠÙ»bËãÞ€/bö0‹ÙÛ³§_4ÆNZYüðYdžô$1{º©¶^-)f’=bö:óœ½^Ÿ|“J~lå5þˆÑÇžfõμMôâïCHÖKª•¥™1©ž–fϤš[ša“êriNªÝ¥™:©¾—fó¤`šñ“Ê„iVP*%¦™C©Ü˜&¥’dš”Ê–i‚R*m¦9L©ü™¤9E4-æ%Ô$S*UY“\ªTˆM³­R±6ÍÈJݬ†y}ÓÌ®¨ §É_©tœ&ˆ¥òršC–JÐižY*S§¹h©”’ÕR­;Íf‹rxšðö#€R"æ÷|!•ܻܫä祑i _½¦ù¥j*`ZMŒ…Ҍ´–šu˜Ö[ÓžhòbÚ7MpL[«Ii÷5Q2èCS)ÙóAešŽ™(Q36µjVg¢hÍüLT¯Ù¡‰34ƒ4qf™&ÓLÔÄ…öôBpªf´&nÖ¬×Äñ𛤂fÏ&É/áðׯÉ㘽˜Ž÷î ¬6@¯ºå“ð²\>Q/Ýå‹aÕ½|½¼þ—¯iTa²u÷:b¾7QÍÉöÏë‘ùGU(£/kæ´â¥Ïœœ¼<š‘\”P3²Œ2kFº^‰Í¨;еDA7ã’(úfŒ…áŒÙ¼vœñcT—3ž tÆ×Q¥Îx?*Ù©xˆZw&@¢žÉ˜!*©2d¼Ðª¬K=«tÓÀyÕÍçg71<]ج— n©¸äø°fþžÜ[«¢‡\Y«B'Y´V¡N2l¥väÞZU;ý¢ï´•VÃ#>­“§=qÔ’)ë_˜Eëm˜_ëø˜{ë}É7…´²ñ F{šÕ;÷¶öJ)úg†X(f½Tø%Fν­ð]ìœ{[áñ@I°©ð’”œ{[á[i9÷¶Â!Órîm…_§ir%÷nšVS‚.ÄA²†.à±¼_I,ª}¨Þ×Ü£ д(MOºµJ4ƒé4KN÷¯£å×$ê<{‚¬O/ ɪ ðœPI³ºK$•L¬ g¡ÉZ2-éRº.dYÞ£$}]ˆE2hbØ…hܪ%"h$¿ì¨”´¿¢r ˆR *1¥”dz-¨ÍT_P¤iÇ ZU AئcƒøMƒ¸®vr}î|æ:ßyÑÌgW·œ¥Ýºp¶w ÄECX)&>>,™¿'ï±”–w‹(ÊÈ»EtdäÝ®’äÝ2‘'¾À­ðèø—äÝŽ}RÞí8å˲dý 3h½ skón½/ù&£V6>ÁhcO³²W0†…þð”óg‚lbH¶4ήÏJò("“a$š×‹x4ÊóÕµ˜"TÇw˜jå<ª‹â’5Çø¦3OÉCÊ%xü==Q¤ ñòþñšÈ@O‹O-«€¤ŸýªÅ€hÓZÓ¡X™"-ßÍpU7]²Æ‹•zCÀ~!Äë5Ü3"Ë*×õÈÅSÙö¼Æ’Ò¸n’¥A½%¸­-{±¢Ê6¼ÖÕj=5ÈèÀ@[½¾DÑÂÕÞyœ|1¯áð«ŠîžY ÊE~E>³ð«…Ö3ÿü™ò\M‚tY½@¬U¼oÆÈ>yxˆ£e1ŸbmûH³D4.ß­ò…@þØ{­ÀA¼òõ{Iù[r$¯ñÁ)ß•¯àkçP\^»‹ ãž qɼüpAJ®³‚ŽôÑDkxî;Ó#/ÀåGÐ,§Q *È/¬'“>¢­ÏHÜ€ì%/dqÕƒÉiOæC}n!ñ* 5³3äÉÙ™áþd¡Ê,„àpÈòg~€X°»c¶Èè}ùû6@\Uõ×$æ1b²‰Zìa,Æ 6›G×tÚ»¢¾îñ½V$Ì÷oXŠŠïñ°rNxÁ}¾h¥û# JOÇ›#“œÇ&9Y"¬ïE¹hjO¦n$ßÖ ª´Ì$(¬;3b§Ä¼7fC`¢>&¢üèWγ€èÔ•¯ò¨ô¤¼HËÒ‘\OËÄc»\Êü ihYež÷mR1†g’3¦`Â5¦©ò7VÂDt¬–‰ñXQ“ô±ê¦ bgLcÄî™Vñ 6½4`º)èÄõ—Ó’ë8§7׃N“¦*l]›:i»Æuòw¥ì,âŠÛÙÈt»sš«çF7œc͈p¦v;ÃßmaÁ˜ù°i~{9 ˆqƒw‹ùv÷¯ª/[lÆ¿iÕDdÜ¿¤òÝä µÈüZñ (ÑnKâÜZ?Eú;Å_Áhñ­ó~ØÚÁ8éðþä›EÚÙ8§Í!ÍOm¾ç*+<܃à•Ì“€T«f θ4:€™žíê™KÝɈ9‘³«4ÃAÞÌ^¹æ½´äæ<â”nv ÿ5ÎÑG‹FÓÃÍghšçáX"Ÿõ¢ÑS7Ç5oñq‘Ñí|‡;ÞRA„‰°÷‡xìDÀM˜Í&Âý0«]„x†NˆibÄ<,BÔ?„@ NÜë¬#˜o0/«ŽšFˆ‰e`8^Wqò0ã±8Õ¯«Žø«Ñ¤b\_³WZG wozêÒå ¾|4Õr9(€ß ©È9šÌ´å äGÈ”·¤ËÍJÂ\äÆÃ;‡GìyÏA¾¦0†,WL󮛯¥r]–KòÐò’ÞÝï¯UGàkc:K®çÍër-ûÛäµìDmËò™4¹~ JBÜòyQ[ë2Þ ÈÆBò™j›ÞüeÃov^ÔêýÅ!”8‰‡ªÞ1›á†á¼8±N™wpk¥È]õò*˜’î¼Cå»ë!; P¬¬é_¶eìÖHÁ·ž‹•TõÑ»X¶ìÇJ³Ú,·Ä­§•@‹fúÉZí¨+ Ë¹½ò€®8ÒTÅób»²i`Û¹}ì¸`»»O÷´M¡€çÜG"’}ÌómtÄPë–i ù¸/jDüµåV Å"­·ïDÔÈüm™ì÷–ü>g ¨“63ó [§¤ ¶%ß!1!2“wbSü]_œŒpòé\ðµ=KRÂ^/‰Á-K•Ÿ!"D%˜¡U —úU)˜Æ¦’2_¥iÌPnZÊi¡Tp§ÅTáë­ò?íˆêˆ´iªFÒÆªª‰½Wm”ÈC5V"!Õj‰ÊTó%JT혨U5h¢hÕ²‰êUc¨®N¼#ê"æ?æ{º]"åÕ~ôðû°%NËÃÌïüL¯GfÔÿ±WZåXSçy½§=õ*GsÔª~|çû@Å_E~Šk”aZrÂäqQyU¤1—¯/G áÞ’ëÃ%ƒ"ê,›MÞ×ñ²pËx~€\ëI*ädJ=œx\µKõ›è\ž/ÍDU¯ç5 Ûk¢8nŽ×bàZm¾ …\ökQQ“åy-<ò-ŸØ¡_;Ǭù¼¹­½vB¾¤©Óà4tíVJp*»¦txmVpJEaý-£öþ~Ñ{¥V˨7úL·žæÂÛ1,®çï®* ð. ÝçKU< ¸ôÎ_*àÒÛÞéò* ¶`Iïxpy qi7Ãy°htá”' ayk(Äg —•'³Jæ‡J»§µ¦Ù” ˆ6wñw8øÐ3!êC$Ï¡+zðÈÍ@¼6ˆ—GYnûãÙAˆÆ˜]!Àg5·ûâ%bäH‘‚Ú oÌpé¯ÞL³^#įÏk[õŒ™.{!ÑWcI}‡X0TZyM¹k;¯;_{Üyos4_û‡¸$yÿÔ¶TŸLˆŠà€ i^:ÙSAk(Í;=¢ôy½eIxY£Â&Ò4ºÛìÌðòËË¥~Ÿ5¤\|p ¬¿è\ho08£@³ÚYŸ öƒÝí–$D‚Ý­¸Ôp€×@ü bµÀ1ʤœWçͱ6«Mæs¨VÐÌçéµ }-ª=‰éëU›¯ ,i-¶á¶èű}ñ£Šï:|Ý#á4ॠNâPa¤§ #·8XIÆÉÂÈÖOFÙP|åEýбzW¦ˆhc"ho½TFóó‡ñb”@4~…Y 3Wždd¶S‹‰XöDˆ@4œMEÌÏU"â,c‘—zW±TÉ™æ Ò5ÍS%°/…ÉèX-“ã±¢&ëcÕMÄΨÊð½S»«Z'€J)(Ä´VP‘k6§4×~N®!bM‡:Q»–uÂwMìÌáÚÚùÇ5ºó˜k}çC³ œUÝtpvvóÂYÞM a·˜èø°d~‹Ñã;8ñÂÒÃýëÔI¼Ý¦ÅV5fÙµG.G¦W¾[ñí9z˺ù®xÑçS$BúCÒ‹EçÍø†Äæh·Ûqn¾¬aýÉ7 Ûù8‰ÓçæçôXJ¡îÁÍù3C¬Â? ô*[eHBà'Å•°Ô&jrWSQBFjßጌ¿uo^E§í´jd€Ð±;/¾Ã€îºWõúxí/¤[õɵýµÂívxéoEgº9ÜoÅ«•µ$¾îu+TåÁ¼éZ†(œéVÐÛ|錶ªOò¥3ÚŠ—æKg´§t4„ƒÑVôŸf/ouœw++‡Í¤K~XA5Vr·3ÚêÞ#ÀÛJG2ØŠ'èY²äÇ‹‘Ýé–G ú“þ"@«½áµêñ„7"/QOˆ¿Ô^}ßm&ÑÄø&Ÿ±Îs€r˳DäV{-xê½X¸á¯;k~Ù²î×¶Œ)›[7ºlfl/½/ ¸vW/h¤Kø{"#}‹ HM˧%rÔk‰dÎÃ'k„üÔ™)aA=ñ‡8)g­ÿ–X ñG¼Ls6´G‚UÇÄÛ@cf-5—ø\†L@x®WCn$Jþý5¤YI|Ç\üÝí½ûË 6@YÈ<‰Þ”l¢]u^,Æýï|^ |5/i›¶å¶êÍkþÙΘË(v¯>V-Ív¸j¼hPA]öþŠQJõ2€FMUoقઆ5QV+ ht[4þ>h»¯¼§ä_4„-X¤hÀh°QÑ"HÁjÅ_4Pf,Z7ø~óùâéÒŒšŒï‹½”`’¡hBHRí“0?ALR%ˆ ³ÀlÏ;7™ã3¹s0Ñó4ñKa":–ËÄx,©IúXvÓ±5¦1bûL«ø«Ú PÅäd⺫F:ÕoNn®$]O:Ùš*uÊvmëÔï Ù9Ä•¶3‘+vg4WþÎŒf8¿ºá<íV†ó}X"&ÂZ1ùñaÑüVEj–û`=¼«T­››ûÿ˜k[$>Ñoó fõŠo­jõ=¶kVa8›xå´¿^ü]Œß¥çíÁç8qŠþä›EÚÙ8§Í!ÍO-¾5y2½Ò‡Žà?3D }BÑRñÕ­îÀ×Í™ÐöØ+O‹Eþ.Àž™Á ò!dké[@Ù Sx²sèˆ.¸ùL±§«pÉ…QìÁ+ÆS+ÅÞ‚YS9noä­T’†ø^yÏ$#w5[! ;åÕÌPìå ˜ZÚq 켘-Œûz<S·3C ·2bÔ L5'Ô4”ƒoAó… f"ïE#>·R‡…µ9ÜffÈš·M0·-ÏÒ4M4åëÕ“˜í‰¶fÈ£­ôeVÆ«Ùò×U_jšLÀ§¹e,?Aš¼å” å{¾#W¢çŽqÔ]¯±!ú¼Æ_ª¼aåsD 𬕭³ÔF^«yIŽñøzÎK•²V¶æSê6¥}AÆ\yòÞM–ŒJ»Ë¼»'ï?róø2‘“¼| Ê©}È Jƒ7ƒCvjœ[Œ‘ Xø@¸5NÕsó )þdÕ­Ìsë3[Æ?ð¶0Á×Y ÇE&(;œ_gÕÉŠ_™›i#s4ÇÕÙÑÒÇc:cÆÕ}Ø[Æø€Hùr• –sîÒ€Õ²„ù"’*CžŒU%]êW¥a›JÌ4~•ª1E¼iT8ÇJ™Õ4!¯ËmZ öCEl™j’ØUÕ5¾ïªŒ‚2L_õ˜N 3½Thº1(UÕg³iØ xÓÂΦ§ƒm\—;k¹¾wö3“À9Ô­çb·,œÓÃú0iŠIŒ+æg+ïÁÅýÂT`å=u1ïU¢ÜPNYµ÷f܉Žc9š/¸|W|{$ªNÛ=q'8+Ä_²?¸V‰y4ñ ¯¡D»oŸãdŠ‹÷'ßl,ÒÎÆIœ>‡4?±òÊ×ø£¢6ö¥ìþH8öŸ2è³îÇ6Aû+Æ: Pʹƒ¹Û úÀƒµ¶ªX1¿Wšþ)Õ˜îÞôýØ#YHÛ»¦@‡*n^Ö{¿Ú´Ÿ¼Ñõ=T‚Ò:-g¢nŒŠ¼TUÕaßäÄr)o}k!6&vÔ’Ö"Io,‚ù’÷È%aR,0?,®ÔW·Wß›òöU5H£á˜Ž¾–]—} !j¶½B£3ažkÝÇÛá–GBP2÷bž–„ÕäJ¢Oyßèoÿ‹`žŒûíS*3nn;DYIÜUGÃm‡°Izgqã;Fxó%œîq#üé®hGÀÇ&n„ð`nýñŒ=œ¹î<ºWÏë$»û1¼DÇÁ-É’‚hr±Lrß»×tÒÈšŽ2GÃ÷*Y‡4ž¡“ð7f… øAa¾‘f™õÖ+Ýr?ôæwÓ±yš©öF"ˆ'o/:ŽÜG::žùÔ+ê+zÐ^ŸÈ»KÚé7ð‹¼„‡¸¡KÉ\ë%…QzY~Cïîl™E¤%%:êùÛo2Á,:¥ø˜ˆy³²A{Žß !l¸^ȶÌc½„é¥YZÈ`~øøg{d·Xîíñ4è-/4k±¤Í(©†ú}Z¶!!!Vp)rRõ.ébðŸ" êØq¢òÉÛuŒ…·öoˆÒ×ß¼ñnD¡5¾ãÅêšDÑöðÏôE¯Ý-qnW¼'o°>"÷BCÌšÌÐàR©‚î6Cµ+}µJ_Ž‚BíšuÂ肆…Ò ý7Á ùu‡+Bòçª<…ë˪Aï ¦O±‹è¬Yªø 1?ŒûfTÁ m ¤ä~ríƒR#_J¢¢ï‡%†¿Ñf¤„ýóV 3·Ä³I$Øe€ÛÍj‘¦‚°ÚWzÆëp·‚Jì(LþPè÷’KMX\b?TZz^t¥24²o{˜æ >û¥åÊñ.<$\*7|²y1ïe•[™’kŠšµr,ý@CÔâDË÷5>^N‰÷q±,^éŒF0o¹³†KV³‡ŽÏ«÷ÚËýG+;ÎÅË ^u~¾Ðuk œkEl4 ž¼ i¥Ù Â,xç¶7³ÐDãÉ>qÞMò¾$@/åÅ‹ò¿,ãiA¦©dW|°|ªÀ?°3*Ú·ãuÿ€yJEA”¿çJL–ù¸uL±ÔKÔO4‚zSòͺBÔ8WÓs)^Ê~Çóädž»K’~Zµ¦Õ'â…‹ŽËÉ ÀËwtébæîÁ½+}{¾ DûðJcëÓLXóbè.Ånç2#óÂᇈ`â¶ç2¡Â£Í]/XÑâ²ý@CÔ“Åà¿Á7D$OÚëÅÞ=òf»!‚/qW3­¢ö'Á É5äqõÅšÖˆ¸ÀÔ£©§û%³ð¡z†x˜s} !êÑI¯’¢âǪÓÌåXTû <tØ,;ÿ¼Ñê%—1Z¡ ¨=q–&…ÈjàðúH< ²¤˜OûÄCÜpÿ³Ӧȹ¸w¤tT³S¼û(«T܉ä.cšöŒ÷A=Y,Ž62—´·n—䚯µ «jºgƒ_'tTŽoü¢> V¸Jœ‹/;â0]–ѼøP˸êXøhÊ%o9 ¾±â)¹š¥SàóaU÷µ]‹#´õ»†<˜Q¡†äjø Q£2éý=НMG}Î;ćoHpö€ELERc:Þóõð…%¿yáÜ“'”âôÔ-ÏqÕª(í&Ÿ›DÚFD]2W¨èà~J¿¯|hôÛ_¢ã““¸ iCꫦàánfÊQõ¬êà@züÀܽ æàV o\7äÜøZð³¯ðn_p@t#ÍÆƒ¢¢HÚ]„¼‘bȰþµp\¥²íxØì t¸Ï²ãÉ«‹a²Œµ`½8®;p74yã!n<†—ȯè¡Ùùb½œÉ)«ã¼{g¸öU‚²¯·³ŽSÀ#¿Éh³D™#‚ÿÚµ@ÝP{ðÆÑšVKÇq÷ŽdàAA×q‰y»åçSföÆCÜMb;ã$¸"xÂg¼—&+‰ó.ÎÌ%¼Í_Ð,ÏäŸhõaœB'ñrEðj eQgCš!ðþ—²äi´J‹ ò†¨!¼øNÂÏ&æµ45ùŠ0.Üpü8ÓŒë]ªª±<ÅóÁ|äQ´ôîÑS.ùhþ¬!¨¡ *Ê¿)¤ˆ÷w†œÇ±Pk®ŒÆjµ°}« <]&GO°±{ë1ãÛ·Q³Ú71"w[­"§Œk80:“ ÎRi ŽòXàásxF¸±=üF#˜'}Ï÷D]ä”q =FaŽÒ«Úu®—x¯i²T„–N«zT;”îßxÄŠÄ…/\;+Ïÿé‘ GÍQšˆÞ'¢À€øsÌüÀ#¸+ÒŸªUßx‰Oò¡—FlžÑ=ûkvÔ†Ö¨¡1$ ß'쨃 ç Ö²Þp5é‚×8¥óE1¹W‡£¯iøo^x÷`yXz‰ŠàÞ¬ÊÞqû®Ác“vuG•d½8‡ ƒ³I.œß8ïCƒ¸ã ~ˆO5݉ѹ,ªTȦ£Ix§çï¥IŸXÄB…Ç¢£g øe&|FãQª¢GžŽ®KiëÎëéý…F0à ¹ÄATÅöm4«;+F ê‡fbg"•X©‹Õ>ýyÁ1È^P¼o#·,o4‚úÐ$¦w¨õªŒˆ¦Â’SÄ|h$öj\Ì/XU¼Lz_óÆ#Fjge§+'—ž4à¸ÄäÊ’8SÞD`úð2¿»…ïHÊQã >,xÚKçm- I8güL[ïNë6<ˆ1õòžçÔKí“öFlÔ.ïxr¢ êEãXL1±Ha%¶cÕë®­+«ð,„\±|`̇Uý²¤ä¨ä~Œñø54"áà+Z‚±pp5ÿÉ ©ñ•S|¾ E&\Mö†0êjà”Ž¸p(H€#8¾ÓòFP‹Ëü.0µ ÉÂÒ<`ˆ‘ˆ_Óq›#äˆZ7(µµ­>ê'1$‘¸ÄI$G <ëÁÔ”ymb’>ß=åÜ4ÇH1„¯IŽhõ¦MÌŒz ¯EÚ˜¬È7A½-ɹè“CRÆŸœ"G4bIB„ÁIÄ;`žEr,éþ„Fb8õàJ‚¹zÇþEãÙwRbv¤4§{óˆ(\PŸ¦ú´ã],ÅA”T•Ÿx7ý\×h¤èê#Ï»Kë¸9eÙ/K¼êxòá+êþ@CÌ£èÛ(Lº˜‘Œk%(Â:\§KëÉ Á|èI¡kYLo4‚yN‰7el0Ë-S„9v°&'„߸­µ ~a!b(zø%–Üî]Ì(ù4M£]:j8À L!Ed(ã Îûà-¿y¡Ôx´ž"J`>ÌBgš–„넹ãÊ…7˜i¯ðImu  !æ¥Å_§"çPb˜N<†wDÐ!,uX¡ÂŽPTVUõàçÄÅê­wÿGÓ±;®R°4нÃ9×%ŠHŽOo,‚øYúÈ‚„'vÆ\ÂÛ¤W ‚þÑúÜB‡\NæW·ð"Fh$¢Pôä Ì›9:çÜ*¨‡T°gH(ša¢pHM}óà~øDv­GõÁ0³j…Íîo6ƒ øÈ9)†å“¾ør‘B?Ð5+£‘œ5 ®Åî:*®aúeL¥ETë‚7´<êþD#¨q¥zPeÏÿ#Ëà¿i‚ú!¯?^–Ãô‘ìñk4iâÁ'¢Æ¥þžÐr§ êÅt$â ³?|\µšŠPÃ#®p7!¡4‚úðY'Ô Z 20”;7”;[Ú=<Çœ2ø,% ÌJE ­ESó PßÃf‡ÑˆÊM•¶Þ=Z¢àø¶÷«N¼wö›oiB o–AK7ÌŸX3Ì×ç ÖÛÃŒœ™×ך(„*í@ÏŒêˆXæ þ ЦO<Äxþ&u—6ÏåêwnÌ/äB>Òý…ôÝg —®õ‹ÕÜ«<±óF#¨7«d!kR8 øaïä†Þ' Øå‚G`àqA úîC>NFb!æÆ¼}–‹\\ü4©¸>)>B¬ï+*„s,qAñõFn³åù.ÕC W+ìGýÜ÷¸ç4_ «æ1xJ®K?°ˆhê `U JjÜ3ºRë;_I×Ä}¿´¾CÇÕJ¥A§LVÛMûo,l3ðC¬=á(ªˆu0¸0¦gðFý¦(bCƒëˆ'ˆvä…" !F㿉š˜•v-ÍÏI|‰áùBuÞú6>¶„K a†ßÔ§—ïŸp¢Lì’?7—eÛùµØl;ôm*⟔^½ÊÐ=k¥o|ÇÉÚñ§À Á•z”¯>¶ŒÑ^¬1“4O‰PêCb\Z5šŒ¸ñ á)›8•U_k$Ÿ¶ý€a0µj±î™ý&öÕðøÖKGʼnÆ/³˜Åˆº¢Y¿YŠ×°¨õ”:B¤ŠÔ¿¶Áøo|ÀŽÆ'e]ù¼ß óáBâ \,„¼ø//=ˆwդįl ”ÇýSk4^A"]a§¯CCÒ¶úþ™àU¨õÊÇßð'îü[ƒÙoí³‘p­—z”¯>ié£VŸIš§ЀfG%š‚’Ø0qÇÑEÔ‚h6Žž·JÑpÃ%HãžÝK¤•Þ ÕïS³Ú /­¥tB?±¢”Ä;o… ñ4LüfŸ•‘l¹^IAkΑâ?ñ±Gš‰v’gû^‘_Hg=Ü xç‚ÃWE2÷hP·ù“¥¢‹°/ÓŒì9ýÆ›Ðh¹Î’‚.IÙfŸöŠ\]”:ñ•¾@o»˜óé˜×Áõ§ö*ß|DÒÒÇ+xu.yžJ:àT”}èr«wIgÈÑ ÞG:¹rÿQ­ °äæc½SãdÆpÆh»÷oªFž☵/Jli¥ãñ× Çåõƒ¦hIU´ÑQ¥šc¿‰ž˜:J³~¯Ì/$ÄÚ._t¨3VŽ"ìh‰D ~ñyvùî;\ÑJi‰³ý¡iû†Ä´ÔØóOÁŠÐù³¥‡­Y£â¤¯x6!µ•ŒwÇ"iéã¼:—4OM£bž>B­CiáE»G:zè¶…|ãÞ?ÔÜÔ«ÞA#¥%¨÷Ç^4Ô‹Ÿø½¿£)ŽX»Bœ¨"Öá Ì_Ü£|S´æßÀHÌŽçHømê  Ô6‰ñøo|Ȏǧe}¥©¿—ç:*|V3'á¦ëž$` nb\³«È(¬èÏ%áŸ8ÌÝ?kú†D¡Ô’õòþæXá4áŸÒgŠ—Å.â+E\´e¬ÀÌ|ëU¾ùˆ¤¥Wðê\ÒÒ²©¡C¬MÕ“öؼþ_Oßõ§·CŽCÂ:WêQ¾ùx¤¥ŽU°ú<ÒÕŠ>’6ÜPPn7q·L©3ùhY+^xJPsÍÂK)¥tÕÞQ7Ÿå€pƒ1^¿šÿxšc¶¾ªcÖñ nª³Gbã7¨§0ŸŒvÔ´¾P”›a¢>ÿÙñø¼¼¯˜û{}~!"¤ü´¯ƒ,ÚÏÂJ*\|&Ý ”ŠüÕÙj¸ðMѯ³¶ý”_Wý©%*MÊŸ…މܗ¥.B@zúÆ”h¯DÂÚžÔ£|óñHK«`õy¤9ª ÂÃÔpÂØe2Ç@À'_Z³bàAf¾л¾(ŒdŸ/V¶§ƒî­¸¯5tí'ÛŠ19/…áY  nÓÅÎe¶û“~¹Å´zÇ‚Ëþ=rOˆBbT Æ~6<>%ë)Íú½2¿É 5¼³ÚØ×~^†ò°¶·$à¦õk -îÎÛó¯Õ—=(įzÛd-Û´wψ·Ù‹aÒkSqÖÒa¦v,XiÔxŸúÕF¤m­ gKóH³TB04_8EÒ&ÎkI¥”!®¯ÚµÜ¾Þc œœy³1õIr*Žž"^ã'VÂ5Ð °ô®Öcˆm8ëÑ«°Q_H?™úàA ‘Œ“Ôl –þðáøo|ÄŽÇg¥]ÅÄ?ç7¢A³øÆÿ\Ük{åŠWË*oÃVE•.-ßÍZî|E(¾úótÒ²Xeiâ…m(”Â^§>²Ögú‚ÐÉÔNôv¬4h¢Oùê#’¶:Ú>Ó<Ò,U“¡ÄŸ%SC¨Ã½°“=ÐQŽfÍd2t„­ò‰63+¨7F²<ü'n83`¼#·q|,nu”ðàÑÚƒgÒ‰ØÐà‹¬èiú‘Óhì71`C“&¥]ż_+ó› «¶ŽÚAÝ=."üá­7ë!I',Þøæ“Ù%úÕlmiâ5{G{[¨—“¾P²y;Dá?—Ü;úÔ¯>"i«£VŸGš¥ÒOíRTF:C®:Üï•¡Zo”!šp!ä_ `g{\±W-|Ä/—³4ÈñÀjRÌÚ׎YÇ«i fÄNÔ×o¶Ö3 NvÑâ@21ÿMŒYñ¤yi_iîïõù…Œ€ñAà´šBÈ‘a µZUž¼)R—½áŽ­©ý±k°ªìnß«Ú.Öº¨icØ‹Z>Ö»¼®Húöo…9ŸÑ¶<¼}vÜ©oûnc³ö:râöYåY›ŸV‚:ïo‘Ê‹ëKœñämê#AOWGKGMB\/㱨;[-yŠæÇúoŽV:$–)fí fߣ®iŠ9‹Õ;${-ÿF¯íä=1{_ ¦;y<ö›³á‰yY_1÷õùÕ_M•€Àzú«™¨Ïžúœ ývk€¿­P5>iÇLÿ¶¦ì©¶³‚ߊuªç˜=NKºEÖ«| ÅÛUjPÇ*nNïQ¾úx¤­UðúLÒ<–¸Mzo’}L×?<ý¼Þ÷!ÃìM£75èø3y0‹œŠñÞ¶D°ÛoÚö˜E“\kWfd£I>•Dó¿èSž$R¦%wÔ$¾-c¿‰Ÿ“v”fý^™ßHˆœ|øÿùç¡'Ñî¨PPŠ?ÝýMo ^[ð$T¶ý~Dµw¥#d;éP~ôƒzèiŠ“¢Å¾U¾›èípÞLXÙWô(_}_?©ÌŠJXŠ¢Ž kRä±èoÒxMš’ô“~-Ëo>kÞZº„’1É@‚³Ù ¤É{ 7G&ï)ÜXѯfÊhK3t¯™AÚ«¾Å½Zú‚lËÔŽ/ªVD¥>å«HÚêhÕç‘fù>¤…«ÈNNá.±ÓU¸Tìn=¤…g&~bÞ›@cžèʼ@>÷éÉ)ÿDWÀRWzHKÃñßøˆÏʺò‰,ÎßuHs?‘¦ÜÃ"G-õ¾È1Ì=3rHs¿~5ŸŽ¶4â5öªÏ%õ™¾PÛD;} ¢æCZô)_}DÒvûÑ/æ‘fù>¤õùqHëóãFsçuHë WWø·óIŒ–2>i}|Òúø<¤1áuHK¿ÑÓU ÑXêIii4ö›°¡™Ÿ‡´4ï×Êü]‡´Úø^›ŸÒxŸŽi0y¾ü$F#'Ôx%Þòw=M{k?úú[`·Ë ë]ž8À¹*}ã‘+Úʉ,pË-ú¶ï>6m?fàöYåYA=¬Ú†&Ñq|õ³‹ÙÁppz™q»ËD‚ÚpK‡ª­k­Ù~¤˜jÃDêû7E+^8Ä*fí %@³‡ù`ä¸<¿Y,Ù•ð@Î2ŠÚûbŠvËãñßø˜ OÌËúй¬ÏotÅS›îBº³' •m~hÆ{X]ùNé&iëãÌ>›4WSpEj*â%†$wXþ¨ y,{¶Ã¼ç;Ô>váÑ÷µx–)øo–¦vÅOôIñÀÒ¯õÔ¯Ž&RG0v¾¶î¿ÁÔ‰ØñÀBÌÖ’ÐÖÌ£ñŸø€OÊ»Š‰¿ç7JâéBIîžfå€"ìF´a‹›i‘]›ËtLçuÖJí†ú‡ëÐûísØå)¸%¾ÂêѶ‘ñ3N£WýjcÒ¶>^Áì³Is5w“ŠCˆucà|G]äeÑë$)_HŸFøÎžšzR—"(:"25÷š?ñ´(GS±uU± §hÒ$½ÐðCÅoà{Exnà)R;.õ…ôr†Mùxü7>dÇÓ²¾bêïåùÕ¿ ¶F6…F¤‡æÛüÓ|¦e sv#âH-ø®‘™Ñí§Ð)jËh»¦–Žb­jiŸŒGt‹¯ð[÷h[3˜‘ñD¯úÕÆ¤mm¼ŠÙg“æªÑk8¾ •IGj´\ ŽÙ¶µép£À P[ƒ«Iÿ’€ „€Ãç4-œå¿YVÏYñ\ÚwÌ9»ŽVFÒ0-Ïs¨£Òo°íA $@ˆ}Ž4j`1ÿXñ¤Ii_yâï•ù¥°(bâ´™c‡Ì\,±V /Y GNéB XH à•xüÙô§”ÈÙ©†V}ÀÛúì[°¢h_ú:ñZ[©1ë˜;OkÞ«~µ1i[¯b¶Ùä¹ ýÓý“K¡ÿù·~ý·ÿðÇó?¡|ĵXïÂþÿÿ£~ý×í»ÝÜ-ÅñØÁw¹ÿ‡‚È×Þ_pAìûã?ÿÕÿ÷_ýÃÿþÇ÷÷ÅþÇÿòGA† l¯ûs{ùÛ»Ï×?':ÿÛÿøÃhXèëÙ2~¼rånôóü¨‚|Ðùÿ€ÎùûkÞô9ã÷wÀcÒò»vO]¹Ñ¿ñF¸”»ßR'×ôCŽkÍ\òI­þÙ[!Õ§¬÷ÐîAµAå A+µú¿õ…Ì¢ïõ\K­þãï}!Öæ©3·úÇ×NÔ¯ÿˆ[VM|ŽµË­à€Cm kUï«“Ñoä M:xµC!N½¢T’gªTL÷ðÂÈ{d(¸‰D$T9婹K(,4;Ì3Î'žWm1\Il)µ†ç„YÜÊ‹¦/†#^1j•¢>Zi‰MâÓ-‡ÅA³”;BçŠÒ[“~ªo‰ž`¦;¿@•­`ÿÆ#"å/i%Z}Ñ^,™|5ÞØ_HV»Æöè_ÿ¾³ªœwgS«ÿ­P°¢·vúÿë¿ú? r5w‚ü |.&áý?~眹®È­þ9·",·Ús1ðáîî“[ý'o…äè{JIãCª'®¤móšøWZ®k¿åÁz§Â“+ÊSE«ÿù×¥`5¥òÚ™—ÍRƫњ|`Õ+^“ú·ÇRàúõZIÿÙ¥øËñÁjí¿t¯P lÿü^ýå¬À¾å5«ÿˉgØi¢SÇ)&*«îˆ‹dI)GÔ•‘ZO­¤¾Î¢˜éSJzw¼H(…ÞÍq†´p>敬ÔÊ>xÙ\*Õ¼°¯(† {J/RÒ2hBߌröëßüͯÊ篵®Eò…)îæ¾ú¯ö¹ß{ôÜèßý.:åã««ß9œ®·+ÉR£¿GÙ äÓŸÜêŸï ²þÒÚ_uõŸgÖ\(¯þ§ß5dÇÁíµ‚‡†D•¥ÑZnõÿBކ~¾?˜ä‰–.CÜs<³ÑÄäùköµW磔Ecô ¨š[ý¿Ϧ㕀“[ý}›ÞÏ««÷÷lz¥BL­þ »¾ÿj€½ÈC5úÛï³Btæ|ÍêßüãÃïyÍêï 8uþ‹|™Röì]oÌŒDµ4–Çì(/+ oTšK—‘ï6RÜA¦×jbÑ©ºö°º&K胄(­›¥kE*\­±Þ´—Ë>Ј$üÿ4+zSendstream endobj 5 0 obj 25267 endobj 3 0 obj << /Type /Page /MediaBox [0 0 486 481] /Parent 2 0 R /Resources << /ProcSet [/PDF /Text] /Font << /R6 6 0 R >> >> /Contents 4 0 R >> endobj 6 0 obj <> endobj 2 0 obj << /Type /Pages /Kids [ 3 0 R ] /Count 1 >> endobj 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 7 0 obj << /CreationDate (D:20011015154900) /Producer (Aladdin Ghostscript 5.50) >> endobj xref 0 8 0000000000 65535 f 0000025651 00000 n 0000025592 00000 n 0000025373 00000 n 0000000015 00000 n 0000025352 00000 n 0000025521 00000 n 0000025700 00000 n trailer << /Size 8 /Root 1 0 R /Info 7 0 R >> startxref 25791 %%EOF e1071/vignettes/svminternals.Rnw0000644000175100001440000001615114623564771016275 0ustar hornikusers\documentclass[a4paper]{article} \usepackage{hyperref, graphicx, color, alltt,a4wide} \usepackage{Sweave} \newcommand{\pkg}[1]{\texttt{#1}} \definecolor{Red}{rgb}{0.7,0,0} \definecolor{Blue}{rgb}{0,0,0.8} \definecolor{hellgrau}{rgb}{0.55,0.55,0.55} \newenvironment{smallexample}{\begin{alltt}\small}{\end{alltt}} \begin{document} \SweaveOpts{concordance=TRUE} %\VignetteIndexEntry{svm() internals} %\VignetteDepends{xtable} %\VignetteKeywords{classification, regression, machine learning, benchmarking, support vector machines} %\VignettePackage{e1071} \SweaveOpts{engine=R,eps=FALSE} \setkeys{Gin}{width=0.8\textwidth} \title{\texttt{svm()} internals\\ \large Some technical notes about the \texttt{svm()} in package \pkg{e1071}} \author{by David Meyer\\ FH Technikum Wien, Austria\\ \url{David.Meyer@R-Project.org} } \maketitle \sloppy This document explains how to use the parameters in an object returned by \texttt{svm()} for own prediction functions. \section{Binary Classifier} For class prediction in the binary case, the class of a new data vector $n$ is usually given by \emph{the sign} of \begin{equation} \sum_i{a_i y_i K(x_i, n)} + \rho \end{equation} \noindent where $x_i$ is the $i$-th support vector, $y_i$ the corresponding label, $a_i$ the corresponding coefficiant, and $K$ is the kernel (for example the linear one, i.e. $K(u,v) = u ^{\top} v$). Now, the \texttt{libsvm} library interfaced by the \texttt{svm()} function actually returns $a_i y_i$ as $i$-th coefficiant and the \emph{negative} $\rho$, so in fact uses the formula: \[ \sum_i{\mathrm{coef}_i K(x_i, n)} - \rho \] \noindent where the training examples (=training data) are labeled \{1,-1\} (!). A simplified \textsf{R} function for prediction with linear kernel would be: \begin{smallexample} svmpred <- function (m, newdata, K=crossprod) \{ ## this guy does the computation: pred.one <- function (x) sign(sum(sapply(1:m$tot.nSV, function (j) K(m$SV[j,], x) * m$coefs[j] ) ) - m$rho ) ## this is just for convenience: if (is.vector(newdata)) newdata <- t(as.matrix(x)) sapply (1:nrow(newdata), function (i) pred.one(newdata[i,])) \} \end{smallexample} \noindent where \texttt{pred.one()} does the actual prediction for one new data vector, the remainder is just a convenience for prediction of multiple new examples. It is easy to extend this to other kernels, just replace \texttt{K()} with the appropriate function (see the help page for the formulas used) and supply the additional constants. As we will see in the next section, the multi-class prediction is more complicated, because the coefficiants of the diverse binary SVMs are stored in a compressed format. \section{Multiclass-classifier} To handle $k$ classes, $k>2$, \texttt{svm()} trains all binary subclassifiers (one-against-one-method) and then uses a voting mechanism to determine the actual class. Now, this means $k(k-1)/2$ classifiers, hence in principle $k(k-1)/2$ sets of SVs, coefficiants and rhos. These are stored in a compressed format: \begin{enumerate} \item Only one SV is stored in case it were used by several classifiers. The \texttt{model\$SV-matrix} is ordered by classes, and you find the starting indices by using \texttt{nSV} (number of SVs): \begin{smallexample} start <- c(1, cumsum(model$nSV)) start <- start[-length(start)] \end{smallexample} \texttt{sum(nSV)} equals the total number of (distinct) SVs. \item The coefficients of the SVs are stored in the \texttt{model\$coefs}-matrix, grouped by classes. Because the separating hyperplanes found by the SVM algorithm has SVs on both sides, you will have two sets of coefficients per binary classifier, and e.g., for 3 classes, you could build a \emph{block}-matrix like this for the classifiers $(i, j)$ ($i$,$j$=class numbers): \begin{table}[h] \center \begin{tabular}{|c|c|c|c|} \hline i $\backslash$ j & 0 & 1 & 2 \\\hline 0 & X & set (0, 1)& set (0, 2)\\\hline 1 & set (1, 0) & X & set (1, 2)\\\hline 2 & set (2, 0) & set (2, 1) & X\\\hline \end{tabular} \end{table} \noindent where set(i, j) are the coefficients for the classifier (i,j), lying on the side of class j. Because there are no entries for (i, i), we can save the diagonal and shift up the lower triangular matrix to get \begin{table}[h] \center \begin{tabular}{|c|c|c|c|} \hline i $\backslash$ j & 0 & 1 & 2 \\\hline 0 & set (1,0) & set (0,1) & set (0,2) \\\hline 1 & set (2,0) & set (2,1) & set (1,2) \\\hline \end{tabular} \end{table} \noindent Each set (., j) has length \texttt{nSV[j]}, so of course, there will be some filling 0s in some sets. \texttt{model\$coefs} is the \emph{transposed} of such a matrix, therefore for a data set with, say, 6 classes, you get 6-1=5 columns. The coefficients of (i, j) start at \texttt{model\$coefs[start[i],j]} and those of (j, i) at \texttt{model\$coefs[start[j],i-1]}. \item The $k(k-1)/2$ rhos are just linearly stored in the vector \texttt{model\$rho}. \end{enumerate} \newpage \noindent The following code shows how to use this for prediction: \begin{smallexample} ## Linear Kernel function K <- function(i,j) crossprod(i,j) predsvm <- function(object, newdata) \{ ## compute start-index start <- c(1, cumsum(object$nSV)+1) start <- start[-length(start)] ## compute kernel values kernel <- sapply (1:object$tot.nSV, function (x) K(object$SV[x,], newdata)) ## compute raw prediction for classifier (i,j) predone <- function (i,j) \{ ## ranges for class i and j: ri <- start[i] : (start[i] + object$nSV[i] - 1) rj <- start[j] : (start[j] + object$nSV[j] - 1) ## coefs for (i,j): coef1 <- object$coefs[ri, j-1] coef2 <- object$coefs[rj, i] ## return raw values: crossprod(coef1, kernel[ri]) + crossprod(coef2, kernel[rj]) \} ## compute votes for all classifiers votes <- rep(0,object$nclasses) c <- 0 # rho counter for (i in 1 : (object$nclasses - 1)) for (j in (i + 1) : object$nclasses) if (predone(i,j) > object$rho[c <- c + 1]) votes[i] <- votes[i] + 1 else votes[j] <- votes[j] + 1 ## return winner (index with max. votes) object$levels[which(votes %in% max(votes))[1]] \} \end{smallexample} In case data were scaled prior fitting the model (note that this is the default for \texttt{svm()}, the new data needs to be scaled as well before applying the predition functions, for example using the following code snipped (object is an object returned by \texttt{svm()}, \texttt{newdata} a data frame): \begin{smallexample} if (any(object$scaled)) newdata[,object$scaled] <- scale(newdata[,object$scaled, drop = FALSE], center = object$x.scale$"scaled:center", scale = object$x.scale$"scaled:scale" ) \end{smallexample} \noindent For regression, the response needs to be scaled as well before training, and the predictions need to be scaled back accordingly. \end{document} e1071/src/0000755000175100001440000000000014671766074011636 5ustar hornikuserse1071/src/Rsvm.c0000755000175100001440000002754614173734134012737 0ustar hornikusers #include #include #include #include #include #include "svm.h" #define Malloc(type,n) (type *)malloc((n)*sizeof(type)) /* * results from cross-validation */ struct crossresults { double* results; double total1; double total2; }; struct svm_node ** sparsify (double *x, int r, int c) { struct svm_node** sparse; int i, ii, count; sparse = (struct svm_node **) malloc (r * sizeof(struct svm_node *)); for (i = 0; i < r; i++) { /* determine nr. of non-zero elements */ for (count = ii = 0; ii < c; ii++) if (x[i * c + ii] != 0) count++; /* allocate memory for column elements */ sparse[i] = (struct svm_node *) malloc ((count + 1) * sizeof(struct svm_node)); /* set column elements */ for (count = ii = 0; ii < c; ii++) if (x[i * c + ii] != 0) { sparse[i][count].index = ii + 1; sparse[i][count].value = x[i * c + ii]; count++; } /* set termination element */ sparse[i][count].index = -1; } return sparse; } struct svm_node ** transsparse (double *x, int r, int *rowindex, int *colindex) { struct svm_node** sparse; int i, ii, count = 0, nnz = 0; sparse = (struct svm_node **) malloc (r * sizeof(struct svm_node*)); for (i = 0; i < r; i++) { /* allocate memory for column elements */ nnz = rowindex[i+1] - rowindex[i]; sparse[i] = (struct svm_node *) malloc ((nnz + 1) * sizeof(struct svm_node)); /* set column elements */ for (ii = 0; ii < nnz; ii++) { sparse[i][ii].index = colindex[count]; sparse[i][ii].value = x[count]; count++; } /* set termination element */ sparse[i][ii].index = -1; } return sparse; } /* Cross-Validation-routine from svm-train */ void do_cross_validation(struct svm_problem *prob, struct svm_parameter *param, int nr_fold, double* cresults, double* ctotal1, double* ctotal2) { int i; int total_correct = 0; double total_error = 0; double sumv = 0, sumy = 0, sumvv = 0, sumyy = 0, sumvy = 0; /* random shuffle */ GetRNGstate(); for(i=0; il; i++) { int j = i+((int) (unif_rand() * (prob->l-i)))%(prob->l-i); struct svm_node *tx; double ty; tx = prob->x[i]; prob->x[i] = prob->x[j]; prob->x[j] = tx; ty = prob->y[i]; prob->y[i] = prob->y[j]; prob->y[j] = ty; } PutRNGstate(); for(i=0; il/nr_fold; int end = (i+1)*prob->l/nr_fold; int j,k; struct svm_problem subprob; subprob.l = prob->l-(end-begin); subprob.x = Malloc(struct svm_node*,subprob.l); subprob.y = Malloc(double,subprob.l); k=0; for(j = 0; j < begin; j++) { subprob.x[k] = prob->x[j]; subprob.y[k] = prob->y[j]; ++k; } for(j = end; jl; j++) { subprob.x[k] = prob->x[j]; subprob.y[k] = prob->y[j]; ++k; } if(param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR) { struct svm_model *submodel = svm_train(&subprob,param); double error = 0; for(j=begin;jx[j]); double y = prob->y[j]; error += (v-y)*(v-y); sumv += v; sumy += y; sumvv += v*v; sumyy += y*y; sumvy += v*y; } svm_free_and_destroy_model(&submodel); /* printf("Mean squared error = %g\n", error/(end-begin)); */ cresults[i] = error/(end-begin); total_error += error; } else { struct svm_model *submodel = svm_train(&subprob,param); int correct = 0; for(j=begin;jx[j]); if(v == prob->y[j]) ++correct; } svm_free_and_destroy_model(&submodel); /* printf("Accuracy = %g%% (%d/%d)\n", */ /* 100.0*correct/(end-begin),correct,(end-begin)); */ cresults[i] = 100.0*correct/(end-begin); total_correct += correct; } free(subprob.x); free(subprob.y); } if(param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR) { /* printf("Cross Validation Mean squared error = %g\n",total_error/prob.l); printf("Cross Validation Squared correlation coefficient = %g\n", ((prob.l*sumvy-sumv*sumy)*(prob.l*sumvy-sumv*sumy))/ ((prob.l*sumvv-sumv*sumv)*(prob.l*sumyy-sumy*sumy)) ); */ *ctotal1 = total_error/prob->l; *ctotal2 = ((prob->l * sumvy - sumv * sumy) * (prob->l * sumvy - sumv*sumy)) / ((prob->l * sumvv - sumv * sumv) * (prob->l * sumyy - sumy * sumy)); } else /* printf("Cross Validation Accuracy = %g%%\n",100.0*total_correct/prob.l); */ *ctotal1 = 100.0 * total_correct / prob->l; } void svmtrain (double *x, int *r, int *c, double *y, int *rowindex, int *colindex, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, double *cost, double *nu, int *weightlabels, double *weights, int *nweights, double *cache, double *tolerance, double *epsilon, int *shrinking, int *cross, int *sparse, int *probability, int *nclasses, int *nr, int *index, int *labels, int *nSV, double *rho, double *coefs, double *sigma, double *probA, double *probB, double *cresults, double *ctotal1, double *ctotal2, char **error) { struct svm_parameter par; struct svm_problem prob; struct svm_model *model = NULL; int i; const char* s; /* set parameters */ par.svm_type = *svm_type; par.kernel_type = *kernel_type; par.degree = *degree; par.gamma = *gamma; par.coef0 = *coef0; par.cache_size = *cache; par.eps = *tolerance; par.C = *cost; par.nu = *nu; par.nr_weight = *nweights; if (par.nr_weight > 0) { par.weight = (double *) malloc (sizeof(double) * par.nr_weight); memcpy(par.weight, weights, par.nr_weight * sizeof(double)); par.weight_label = (int *) malloc (sizeof(int) * par.nr_weight); memcpy(par.weight_label, weightlabels, par.nr_weight * sizeof(int)); } par.p = *epsilon; par.shrinking = *shrinking; par.probability = *probability; /* set problem */ prob.l = *r; prob.y = y; if (*sparse > 0) prob.x = transsparse(x, *r, rowindex, colindex); else prob.x = sparsify(x, *r, *c); /* check parameters & copy error message */ s = svm_check_parameter(&prob, &par); if (s) { strcpy(*error, s); } else { /* call svm_train */ model = svm_train(&prob, &par); /* set up return values */ /* for (ii = 0; ii < model->l; ii++) for (i = 0; i < *r; i++) if (prob.x[i] == model->SV[ii]) index[ii] = i+1; */ svm_get_sv_indices(model, index); *nr = model->l; *nclasses = model->nr_class; memcpy (rho, model->rho, *nclasses * (*nclasses - 1)/2 * sizeof(double)); if (*probability && par.svm_type != ONE_CLASS) { if (par.svm_type == EPSILON_SVR || par.svm_type == NU_SVR) *sigma = svm_get_svr_probability(model); else { memcpy(probA, model->probA, *nclasses * (*nclasses - 1)/2 * sizeof(double)); memcpy(probB, model->probB, *nclasses * (*nclasses - 1)/2 * sizeof(double)); } } for (i = 0; i < *nclasses-1; i++) memcpy (coefs + i * *nr, model->sv_coef[i], *nr * sizeof (double)); if (*svm_type < 2) { memcpy (labels, model->label, *nclasses * sizeof(int)); memcpy (nSV, model->nSV, *nclasses * sizeof(int)); } /* Perform cross-validation, if requested */ if (*cross > 0) do_cross_validation (&prob, &par, *cross, cresults, ctotal1, ctotal2); /* clean up memory */ svm_free_and_destroy_model(&model); } /* clean up memory */ if (par.nr_weight > 0) { free(par.weight); free(par.weight_label); } for (i = 0; i < *r; i++) free (prob.x[i]); free (prob.x); } void svmpredict (int *decisionvalues, int *probability, double *v, int *r, int *c, int *rowindex, int *colindex, double *coefs, double *rho, int *compprob, double *probA, double *probB, int *nclasses, int *totnSV, int *labels, int *nSV, int *sparsemodel, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, double *x, int *xr, int *xrowindex, int *xcolindex, int *sparsex, double *ret, double *dec, double *prob) { struct svm_model m; struct svm_node ** train; int i; /* set up model */ m.l = *totnSV; m.nr_class = *nclasses; m.sv_coef = (double **) malloc (m.nr_class * sizeof(double*)); for (i = 0; i < m.nr_class - 1; i++) { m.sv_coef[i] = (double *) malloc (m.l * sizeof (double)); memcpy (m.sv_coef[i], coefs + i*m.l, m.l * sizeof (double)); } if (*sparsemodel > 0) m.SV = transsparse(v, *r, rowindex, colindex); else m.SV = sparsify(v, *r, *c); m.rho = rho; m.probA = probA; m.probB = probB; m.label = labels; m.nSV = nSV; /* set up parameter */ m.param.svm_type = *svm_type; m.param.kernel_type = *kernel_type; m.param.degree = *degree; m.param.gamma = *gamma; m.param.coef0 = *coef0; m.param.probability = *compprob; m.free_sv = 1; /* create sparse training matrix */ if (*sparsex > 0) train = transsparse(x, *xr, xrowindex, xcolindex); else train = sparsify(x, *xr, *c); /* call svm-predict-function for each x-row, possibly using probability estimator, if requested */ if (*probability && svm_check_probability_model(&m)) { for (i = 0; i < *xr; i++) ret[i] = svm_predict_probability(&m, train[i], prob + i * *nclasses); } else { for (i = 0; i < *xr; i++) ret[i] = svm_predict(&m, train[i]); } /* optionally, compute decision values */ if (*decisionvalues) for (i = 0; i < *xr; i++) svm_predict_values(&m, train[i], dec + i * *nclasses * (*nclasses - 1) / 2); /* clean up memory */ for (i = 0; i < *xr; i++) free (train[i]); free (train); for (i = 0; i < *r; i++) free (m.SV[i]); free (m.SV); for (i = 0; i < m.nr_class - 1; i++) free(m.sv_coef[i]); free(m.sv_coef); } void svmwrite (double *v, int *r, int *c, int *rowindex, int *colindex, double *coefs, double *rho, int *compprob, double *probA, double *probB, int *nclasses, int *totnSV, int *labels, int *nSV, int *sparsemodel, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, char **filename) { struct svm_model m; int i; char *fname = *filename; /* set up model */ m.l = *totnSV; m.nr_class = *nclasses; m.sv_coef = (double **) malloc (m.nr_class * sizeof(double*)); for (i = 0; i < m.nr_class - 1; i++) { m.sv_coef[i] = (double *) malloc (m.l * sizeof (double)); memcpy (m.sv_coef[i], coefs + i*m.l, m.l * sizeof (double)); } if (*sparsemodel > 0) m.SV = transsparse(v, *r, rowindex, colindex); else m.SV = sparsify(v, *r, *c); m.rho = rho; m.label = labels; m.nSV = nSV; if (*compprob) { m.probA = probA; m.probB = probB; } else { m.probA = NULL; m.probB = NULL; } /* set up parameter */ m.param.svm_type = *svm_type; m.param.kernel_type = *kernel_type; m.param.degree = *degree; m.param.gamma = *gamma; m.param.coef0 = *coef0; m.free_sv = 1; /* write svm model */ svm_save_model(fname, &m); for (i = 0; i < m.nr_class - 1; i++) free(m.sv_coef[i]); free(m.sv_coef); for (i = 0; i < *r; i++) free (m.SV[i]); free (m.SV); } e1071/src/svm.cpp0000644000175100001440000020004114671763131013133 0ustar hornikusers#include #include #include #include #include #include #include #include #include #include #include #include "svm.h" int libsvm_version = LIBSVM_VERSION; typedef float Qfloat; typedef signed char schar; #ifndef min template static inline T min(T x,T y) { return (x static inline T max(T x,T y) { return (x>y)?x:y; } #endif template static inline void swap(T& x, T& y) { T t=x; x=y; y=t; } template static inline void clone(T*& dst, S* src, int n) { dst = new T[n]; memcpy((void *)dst,(void *)src,sizeof(T)*n); } static inline double powi(double base, int times) { double tmp = base, ret = 1.0; for(int t=times; t>0; t/=2) { if(t%2==1) ret*=tmp; tmp = tmp * tmp; } return ret; } #define INF HUGE_VAL #define TAU 1e-12 #define Malloc(type,n) (type *)malloc( (unsigned int) ((n)*sizeof(type)) ) static void print_string_stdout(const char *s) { /* fputs(s,stdout); fflush(stdout); */ Rprintf("%s", s); } static void (*svm_print_string) (const char *) = &print_string_stdout; #if 0 static void info(const char *fmt,...) { char buf[BUFSIZ]; va_list ap; va_start(ap,fmt); vsprintf(buf,fmt,ap); va_end(ap); (*svm_print_string)(buf); } #else static void info(const char *fmt,...) {} #endif // // Kernel Cache // // l is the number of total data items // size is the cache size limit in bytes // class Cache { public: Cache(int l,long int size); ~Cache(); // request data [0,len) // return some position p where [p,len) need to be filled // (p >= len if nothing needs to be filled) int get_data(const int index, Qfloat **data, int len); void swap_index(int i, int j); private: int l; long int size; struct head_t { head_t *prev, *next; // a circular list Qfloat *data; int len; // data[0,len) is cached in this entry }; head_t *head; head_t lru_head; void lru_delete(head_t *h); void lru_insert(head_t *h); }; Cache::Cache(int l_,long int size_):l(l_),size(size_) { head = (head_t *)calloc(l,sizeof(head_t)); // initialized to 0 size /= sizeof(Qfloat); size -= l * sizeof(head_t) / sizeof(Qfloat); size = max(size, 2 * (long int) l); // cache must be large enough for two columns lru_head.next = lru_head.prev = &lru_head; } Cache::~Cache() { for(head_t *h = lru_head.next; h != &lru_head; h=h->next) free(h->data); free(head); } void Cache::lru_delete(head_t *h) { // delete from current location h->prev->next = h->next; h->next->prev = h->prev; } void Cache::lru_insert(head_t *h) { // insert to last position h->next = &lru_head; h->prev = lru_head.prev; h->prev->next = h; h->next->prev = h; } int Cache::get_data(const int index, Qfloat **data, int len) { head_t *h = &head[index]; if(h->len) lru_delete(h); int more = len - h->len; if(more > 0) { // free old space while(size < more) { head_t *old = lru_head.next; lru_delete(old); free(old->data); size += old->len; old->data = 0; old->len = 0; } // allocate new space h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len); size -= more; swap(h->len,len); } lru_insert(h); *data = h->data; return len; } void Cache::swap_index(int i, int j) { if(i==j) return; if(head[i].len) lru_delete(&head[i]); if(head[j].len) lru_delete(&head[j]); swap(head[i].data,head[j].data); swap(head[i].len,head[j].len); if(head[i].len) lru_insert(&head[i]); if(head[j].len) lru_insert(&head[j]); if(i>j) swap(i,j); for(head_t *h = lru_head.next; h!=&lru_head; h=h->next) { if(h->len > i) { if(h->len > j) swap(h->data[i],h->data[j]); else { // give up lru_delete(h); free(h->data); size += h->len; h->data = 0; h->len = 0; } } } } // // Kernel evaluation // // the static method k_function is for doing single kernel evaluation // the constructor of Kernel prepares to calculate the l*l kernel matrix // the member function get_Q is for getting one column from the Q Matrix // class QMatrix { public: virtual Qfloat *get_Q(int column, int len) const = 0; virtual double *get_QD() const = 0; virtual void swap_index(int i, int j) const = 0; virtual ~QMatrix() {} }; class Kernel: public QMatrix { public: Kernel(int l, svm_node * const * x, const svm_parameter& param); virtual ~Kernel(); static double k_function(const svm_node *x, const svm_node *y, const svm_parameter& param); virtual Qfloat *get_Q(int column, int len) const = 0; virtual double *get_QD() const = 0; virtual void swap_index(int i, int j) const // no so const... { swap(x[i],x[j]); if(x_square) swap(x_square[i],x_square[j]); } protected: double (Kernel::*kernel_function)(int i, int j) const; private: const svm_node **x; double *x_square; // svm_parameter const int kernel_type; const int degree; const double gamma; const double coef0; static double dot(const svm_node *px, const svm_node *py); double kernel_linear(int i, int j) const { return dot(x[i],x[j]); } double kernel_poly(int i, int j) const { return powi(gamma*dot(x[i],x[j])+coef0,degree); } double kernel_rbf(int i, int j) const { return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j]))); } double kernel_sigmoid(int i, int j) const { return tanh(gamma*dot(x[i],x[j])+coef0); } double kernel_precomputed(int i, int j) const { return x[i][(int)(x[j][0].value)].value; } }; Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param) :kernel_type(param.kernel_type), degree(param.degree), gamma(param.gamma), coef0(param.coef0) { switch(kernel_type) { case LINEAR: kernel_function = &Kernel::kernel_linear; break; case POLY: kernel_function = &Kernel::kernel_poly; break; case RBF: kernel_function = &Kernel::kernel_rbf; break; case SIGMOID: kernel_function = &Kernel::kernel_sigmoid; break; case PRECOMPUTED: kernel_function = &Kernel::kernel_precomputed; break; } clone(x,x_,l); if(kernel_type == RBF) { x_square = new double[l]; for(int i=0;iindex != -1 && py->index != -1) { if(px->index == py->index) { sum += px->value * py->value; ++px; ++py; } else { if(px->index > py->index) ++py; else ++px; } } return sum; } double Kernel::k_function(const svm_node *x, const svm_node *y, const svm_parameter& param) { switch(param.kernel_type) { case LINEAR: return dot(x,y); case POLY: return powi(param.gamma*dot(x,y)+param.coef0,param.degree); case RBF: { double sum = 0; while(x->index != -1 && y->index !=-1) { if(x->index == y->index) { double d = x->value - y->value; sum += d*d; ++x; ++y; } else { if(x->index > y->index) { sum += y->value * y->value; ++y; } else { sum += x->value * x->value; ++x; } } } while(x->index != -1) { sum += x->value * x->value; ++x; } while(y->index != -1) { sum += y->value * y->value; ++y; } return exp(-param.gamma*sum); } case SIGMOID: return tanh(param.gamma*dot(x,y)+param.coef0); case PRECOMPUTED: //x: test (validation), y: SV return x[(int)(y->value)].value; default: return 0; // Unreachable } } // An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918 // Solves: // // min 0.5(\alpha^T Q \alpha) + p^T \alpha // // y^T \alpha = \delta // y_i = +1 or -1 // 0 <= alpha_i <= Cp for y_i = 1 // 0 <= alpha_i <= Cn for y_i = -1 // // Given: // // Q, p, y, Cp, Cn, and an initial feasible point \alpha // l is the size of vectors and matrices // eps is the stopping tolerance // // solution will be put in \alpha, objective value will be put in obj // class Solver { public: Solver() {}; virtual ~Solver() {}; struct SolutionInfo { double obj; double rho; double upper_bound_p; double upper_bound_n; double r; // for Solver_NU }; void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_, double *alpha_, double Cp, double Cn, double eps, SolutionInfo* si, int shrinking); protected: int active_size; schar *y; double *G; // gradient of objective function enum { LOWER_BOUND, UPPER_BOUND, FREE }; char *alpha_status; // LOWER_BOUND, UPPER_BOUND, FREE double *alpha; const QMatrix *Q; const double *QD; double eps; double Cp,Cn; double *p; int *active_set; double *G_bar; // gradient, if we treat free variables as 0 int l; bool unshrink; // XXX double get_C(int i) { return (y[i] > 0)? Cp : Cn; } void update_alpha_status(int i) { if(alpha[i] >= get_C(i)) alpha_status[i] = UPPER_BOUND; else if(alpha[i] <= 0) alpha_status[i] = LOWER_BOUND; else alpha_status[i] = FREE; } bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; } bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; } bool is_free(int i) { return alpha_status[i] == FREE; } void swap_index(int i, int j); void reconstruct_gradient(); virtual int select_working_set(int &i, int &j); virtual double calculate_rho(); virtual void do_shrinking(); private: bool be_shrunk(int i, double Gmax1, double Gmax2); }; void Solver::swap_index(int i, int j) { Q->swap_index(i,j); swap(y[i],y[j]); swap(G[i],G[j]); swap(alpha_status[i],alpha_status[j]); swap(alpha[i],alpha[j]); swap(p[i],p[j]); swap(active_set[i],active_set[j]); swap(G_bar[i],G_bar[j]); } void Solver::reconstruct_gradient() { // reconstruct inactive elements of G from G_bar and free variables if(active_size == l) return; int i,j; int nr_free = 0; for(j=active_size;j 2*active_size*(l-active_size)) { for(i=active_size;iget_Q(i,active_size); for(j=0;jget_Q(i,l); double alpha_i = alpha[i]; for(j=active_size;jl = l; this->Q = &Q; QD=Q.get_QD(); clone(p, p_,l); clone(y, y_,l); clone(alpha,alpha_,l); this->Cp = Cp; this->Cn = Cn; this->eps = eps; unshrink = false; // initialize alpha_status { alpha_status = new char[l]; for(int i=0;iINT_MAX/100 ? INT_MAX : 100*l); int counter = min(l,1000)+1; while(iter < max_iter) { // show progress and do shrinking if(--counter == 0) { counter = min(l,1000); if(shrinking) do_shrinking(); info("."); } int i,j; if(select_working_set(i,j)!=0) { // reconstruct the whole gradient reconstruct_gradient(); // reset active set size and check active_size = l; info("*"); if(select_working_set(i,j)!=0) break; else counter = 1; // do shrinking next iteration } ++iter; // update alpha[i] and alpha[j], handle bounds carefully const Qfloat *Q_i = Q.get_Q(i,active_size); const Qfloat *Q_j = Q.get_Q(j,active_size); double C_i = get_C(i); double C_j = get_C(j); double old_alpha_i = alpha[i]; double old_alpha_j = alpha[j]; if(y[i]!=y[j]) { double quad_coef = QD[i]+QD[j]+2*Q_i[j]; if (quad_coef <= 0) quad_coef = TAU; double delta = (-G[i]-G[j])/quad_coef; double diff = alpha[i] - alpha[j]; alpha[i] += delta; alpha[j] += delta; if(diff > 0) { if(alpha[j] < 0) { alpha[j] = 0; alpha[i] = diff; } } else { if(alpha[i] < 0) { alpha[i] = 0; alpha[j] = -diff; } } if(diff > C_i - C_j) { if(alpha[i] > C_i) { alpha[i] = C_i; alpha[j] = C_i - diff; } } else { if(alpha[j] > C_j) { alpha[j] = C_j; alpha[i] = C_j + diff; } } } else { double quad_coef = QD[i]+QD[j]-2*Q_i[j]; if (quad_coef <= 0) quad_coef = TAU; double delta = (G[i]-G[j])/quad_coef; double sum = alpha[i] + alpha[j]; alpha[i] -= delta; alpha[j] += delta; if(sum > C_i) { if(alpha[i] > C_i) { alpha[i] = C_i; alpha[j] = sum - C_i; } } else { if(alpha[j] < 0) { alpha[j] = 0; alpha[i] = sum; } } if(sum > C_j) { if(alpha[j] > C_j) { alpha[j] = C_j; alpha[i] = sum - C_j; } } else { if(alpha[i] < 0) { alpha[i] = 0; alpha[j] = sum; } } } // update G double delta_alpha_i = alpha[i] - old_alpha_i; double delta_alpha_j = alpha[j] - old_alpha_j; for(int k=0;k= max_iter) { if(active_size < l) { // reconstruct the whole gradient to calculate objective value reconstruct_gradient(); active_size = l; info("*"); } REprintf("\nWARNING: reaching max number of iterations\n"); } // calculate rho si->rho = calculate_rho(); // calculate objective value { double v = 0; int i; for(i=0;iobj = v/2; } // put back the solution { for(int i=0;iupper_bound_p = Cp; si->upper_bound_n = Cn; info("\noptimization finished, #iter = %d\n",iter); delete[] p; delete[] y; delete[] alpha; delete[] alpha_status; delete[] active_set; delete[] G; delete[] G_bar; } // return 1 if already optimal, return 0 otherwise int Solver::select_working_set(int &out_i, int &out_j) { // return i,j such that // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) // j: minimizes the decrease of obj value // (if quadratic coefficeint <= 0, replace it with tau) // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) double Gmax = -INF; double Gmax2 = -INF; int Gmax_idx = -1; int Gmin_idx = -1; double obj_diff_min = INF; for(int t=0;t= Gmax) { Gmax = -G[t]; Gmax_idx = t; } } else { if(!is_lower_bound(t)) if(G[t] >= Gmax) { Gmax = G[t]; Gmax_idx = t; } } int i = Gmax_idx; const Qfloat *Q_i = NULL; if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1 Q_i = Q->get_Q(i,active_size); for(int j=0;j= Gmax2) Gmax2 = G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } else { if (!is_upper_bound(j)) { double grad_diff= Gmax-G[j]; if (-G[j] >= Gmax2) Gmax2 = -G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } } if(Gmax+Gmax2 < eps || Gmin_idx == -1) return 1; out_i = Gmax_idx; out_j = Gmin_idx; return 0; } bool Solver::be_shrunk(int i, double Gmax1, double Gmax2) { if(is_upper_bound(i)) { if(y[i]==+1) return(-G[i] > Gmax1); else return(-G[i] > Gmax2); } else if(is_lower_bound(i)) { if(y[i]==+1) return(G[i] > Gmax2); else return(G[i] > Gmax1); } else return(false); } void Solver::do_shrinking() { int i; double Gmax1 = -INF; // max { -y_i * grad(f)_i | i in I_up(\alpha) } double Gmax2 = -INF; // max { y_i * grad(f)_i | i in I_low(\alpha) } // find maximal violating pair first for(i=0;i= Gmax1) Gmax1 = -G[i]; } if(!is_lower_bound(i)) { if(G[i] >= Gmax2) Gmax2 = G[i]; } } else { if(!is_upper_bound(i)) { if(-G[i] >= Gmax2) Gmax2 = -G[i]; } if(!is_lower_bound(i)) { if(G[i] >= Gmax1) Gmax1 = G[i]; } } } if(unshrink == false && Gmax1 + Gmax2 <= eps*10) { unshrink = true; reconstruct_gradient(); active_size = l; info("*"); } for(i=0;i i) { if (!be_shrunk(active_size, Gmax1, Gmax2)) { swap_index(i,active_size); break; } active_size--; } } } double Solver::calculate_rho() { double r; int nr_free = 0; double ub = INF, lb = -INF, sum_free = 0; for(int i=0;i0) r = sum_free/nr_free; else r = (ub+lb)/2; return r; } // // Solver for nu-svm classification and regression // // additional constraint: e^T \alpha = constant // class Solver_NU: public Solver { public: Solver_NU() {} void Solve(int l, const QMatrix& Q, const double *p, const schar *y, double *alpha, double Cp, double Cn, double eps, SolutionInfo* si, int shrinking) { this->si = si; Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking); } private: SolutionInfo *si; int select_working_set(int &i, int &j); double calculate_rho(); bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4); void do_shrinking(); }; // return 1 if already optimal, return 0 otherwise int Solver_NU::select_working_set(int &out_i, int &out_j) { // return i,j such that y_i = y_j and // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) // j: minimizes the decrease of obj value // (if quadratic coefficeint <= 0, replace it with tau) // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) double Gmaxp = -INF; double Gmaxp2 = -INF; int Gmaxp_idx = -1; double Gmaxn = -INF; double Gmaxn2 = -INF; int Gmaxn_idx = -1; int Gmin_idx = -1; double obj_diff_min = INF; for(int t=0;t= Gmaxp) { Gmaxp = -G[t]; Gmaxp_idx = t; } } else { if(!is_lower_bound(t)) if(G[t] >= Gmaxn) { Gmaxn = G[t]; Gmaxn_idx = t; } } int ip = Gmaxp_idx; int in = Gmaxn_idx; const Qfloat *Q_ip = NULL; const Qfloat *Q_in = NULL; if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1 Q_ip = Q->get_Q(ip,active_size); if(in != -1) Q_in = Q->get_Q(in,active_size); for(int j=0;j= Gmaxp2) Gmaxp2 = G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[ip]+QD[j]-2*Q_ip[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } else { if (!is_upper_bound(j)) { double grad_diff=Gmaxn-G[j]; if (-G[j] >= Gmaxn2) Gmaxn2 = -G[j]; if (grad_diff > 0) { double obj_diff; double quad_coef = QD[in]+QD[j]-2*Q_in[j]; if (quad_coef > 0) obj_diff = -(grad_diff*grad_diff)/quad_coef; else obj_diff = -(grad_diff*grad_diff)/TAU; if (obj_diff <= obj_diff_min) { Gmin_idx=j; obj_diff_min = obj_diff; } } } } } if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps || Gmin_idx == -1) return 1; if (y[Gmin_idx] == +1) out_i = Gmaxp_idx; else out_i = Gmaxn_idx; out_j = Gmin_idx; return 0; } bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4) { if(is_upper_bound(i)) { if(y[i]==+1) return(-G[i] > Gmax1); else return(-G[i] > Gmax4); } else if(is_lower_bound(i)) { if(y[i]==+1) return(G[i] > Gmax2); else return(G[i] > Gmax3); } else return(false); } void Solver_NU::do_shrinking() { double Gmax1 = -INF; // max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) } double Gmax2 = -INF; // max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) } double Gmax3 = -INF; // max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) } double Gmax4 = -INF; // max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) } // find maximal violating pair first int i; for(i=0;i Gmax1) Gmax1 = -G[i]; } else if(-G[i] > Gmax4) Gmax4 = -G[i]; } if(!is_lower_bound(i)) { if(y[i]==+1) { if(G[i] > Gmax2) Gmax2 = G[i]; } else if(G[i] > Gmax3) Gmax3 = G[i]; } } if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10) { unshrink = true; reconstruct_gradient(); active_size = l; } for(i=0;i i) { if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4)) { swap_index(i,active_size); break; } active_size--; } } } double Solver_NU::calculate_rho() { int nr_free1 = 0,nr_free2 = 0; double ub1 = INF, ub2 = INF; double lb1 = -INF, lb2 = -INF; double sum_free1 = 0, sum_free2 = 0; for(int i=0;i 0) r1 = sum_free1/nr_free1; else r1 = (ub1+lb1)/2; if(nr_free2 > 0) r2 = sum_free2/nr_free2; else r2 = (ub2+lb2)/2; si->r = (r1+r2)/2; return (r1-r2)/2; } // // Q matrices for various formulations // class SVC_Q: public Kernel { public: SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_) :Kernel(prob.l, prob.x, param) { clone(y,y_,prob.l); cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); QD = new double[prob.l]; for(int i=0;i*kernel_function)(i,i); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int start, j; if((start = cache->get_data(i,&data,len)) < len) { for(j=start;j*kernel_function)(i,j)); } return data; } double *get_QD() const { return QD; } void swap_index(int i, int j) const { cache->swap_index(i,j); Kernel::swap_index(i,j); swap(y[i],y[j]); swap(QD[i],QD[j]); } ~SVC_Q() { delete[] y; delete cache; delete[] QD; } private: schar *y; Cache *cache; double *QD; }; class ONE_CLASS_Q: public Kernel { public: ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param) :Kernel(prob.l, prob.x, param) { cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); QD = new double[prob.l]; for(int i=0;i*kernel_function)(i,i); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int start, j; if((start = cache->get_data(i,&data,len)) < len) { for(j=start;j*kernel_function)(i,j); } return data; } double *get_QD() const { return QD; } void swap_index(int i, int j) const { cache->swap_index(i,j); Kernel::swap_index(i,j); swap(QD[i],QD[j]); } ~ONE_CLASS_Q() { delete cache; delete[] QD; } private: Cache *cache; double *QD; }; class SVR_Q: public Kernel { public: SVR_Q(const svm_problem& prob, const svm_parameter& param) :Kernel(prob.l, prob.x, param) { l = prob.l; cache = new Cache(l,(long int)(param.cache_size*(1<<20))); QD = new double[2*l]; sign = new schar[2*l]; index = new int[2*l]; for(int k=0;k*kernel_function)(k,k); QD[k+l] = QD[k]; } buffer[0] = new Qfloat[2*l]; buffer[1] = new Qfloat[2*l]; next_buffer = 0; } void swap_index(int i, int j) const { swap(sign[i],sign[j]); swap(index[i],index[j]); swap(QD[i],QD[j]); } Qfloat *get_Q(int i, int len) const { Qfloat *data; int j, real_i = index[i]; if(cache->get_data(real_i,&data,l) < l) { for(j=0;j*kernel_function)(real_i,j); } // reorder and copy Qfloat *buf = buffer[next_buffer]; next_buffer = 1 - next_buffer; schar si = sign[i]; for(j=0;jl; double *minus_ones = new double[l]; schar *y = new schar[l]; int i; for(i=0;iy[i] > 0) y[i] = +1; else y[i] = -1; } Solver s; s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y, alpha, Cp, Cn, param->eps, si, param->shrinking); double sum_alpha=0; for(i=0;il)); for(i=0;il; double nu = param->nu; schar *y = new schar[l]; for(i=0;iy[i]>0) y[i] = +1; else y[i] = -1; double sum_pos = nu*l/2; double sum_neg = nu*l/2; for(i=0;ieps, si, param->shrinking); double r = si->r; info("C = %f\n",1/r); for(i=0;irho /= r; si->obj /= (r*r); si->upper_bound_p = 1/r; si->upper_bound_n = 1/r; delete[] y; delete[] zeros; } static void solve_one_class( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double *zeros = new double[l]; schar *ones = new schar[l]; int i; int n = (int)(param->nu*prob->l); // # of alpha's at upper bound for(i=0;il) alpha[n] = param->nu * prob->l - n; for(i=n+1;ieps, si, param->shrinking); delete[] zeros; delete[] ones; } static void solve_epsilon_svr( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double *alpha2 = new double[2*l]; double *linear_term = new double[2*l]; schar *y = new schar[2*l]; int i; for(i=0;ip - prob->y[i]; y[i] = 1; alpha2[i+l] = 0; linear_term[i+l] = param->p + prob->y[i]; y[i+l] = -1; } Solver s; s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, alpha2, param->C, param->C, param->eps, si, param->shrinking); double sum_alpha = 0; for(i=0;iC*l)); delete[] alpha2; delete[] linear_term; delete[] y; } static void solve_nu_svr( const svm_problem *prob, const svm_parameter *param, double *alpha, Solver::SolutionInfo* si) { int l = prob->l; double C = param->C; double *alpha2 = new double[2*l]; double *linear_term = new double[2*l]; schar *y = new schar[2*l]; int i; double sum = C * param->nu * l / 2; for(i=0;iy[i]; y[i] = 1; linear_term[i+l] = prob->y[i]; y[i+l] = -1; } Solver_NU s; s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, alpha2, C, C, param->eps, si, param->shrinking); info("epsilon = %f\n",-si->r); for(i=0;il); Solver::SolutionInfo si; switch(param->svm_type) { case C_SVC: solve_c_svc(prob,param,alpha,&si,Cp,Cn); break; case NU_SVC: solve_nu_svc(prob,param,alpha,&si); break; case ONE_CLASS: solve_one_class(prob,param,alpha,&si); break; case EPSILON_SVR: solve_epsilon_svr(prob,param,alpha,&si); break; case NU_SVR: solve_nu_svr(prob,param,alpha,&si); break; } info("obj = %f, rho = %f\n",si.obj,si.rho); // output SVs int nSV = 0; int nBSV = 0; for(int i=0;il;i++) { if(fabs(alpha[i]) > 0) { ++nSV; if(prob->y[i] > 0) { if(fabs(alpha[i]) >= si.upper_bound_p) ++nBSV; } else { if(fabs(alpha[i]) >= si.upper_bound_n) ++nBSV; } } } info("nSV = %d, nBSV = %d\n",nSV,nBSV); decision_function f; f.alpha = alpha; f.rho = si.rho; return f; } // Platt's binary SVM Probablistic Output: an improvement from Lin et al. static void sigmoid_train( int l, const double *dec_values, const double *labels, double& A, double& B) { double prior1=0, prior0 = 0; int i; for (i=0;i 0) prior1+=1; else prior0+=1; int max_iter=100; // Maximal number of iterations double min_step=1e-10; // Minimal step taken in line search double sigma=1e-12; // For numerically strict PD of Hessian double eps=1e-5; double hiTarget=(prior1+1.0)/(prior1+2.0); double loTarget=1/(prior0+2.0); double *t=Malloc(double,l); double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize; double newA,newB,newf,d1,d2; int iter; // Initial Point and Initial Fun Value A=0.0; B=log((prior0+1.0)/(prior1+1.0)); double fval = 0.0; for (i=0;i0) t[i]=hiTarget; else t[i]=loTarget; fApB = dec_values[i]*A+B; if (fApB>=0) fval += t[i]*fApB + log(1+exp(-fApB)); else fval += (t[i] - 1)*fApB +log(1+exp(fApB)); } for (iter=0;iter= 0) { p=exp(-fApB)/(1.0+exp(-fApB)); q=1.0/(1.0+exp(-fApB)); } else { p=1.0/(1.0+exp(fApB)); q=exp(fApB)/(1.0+exp(fApB)); } d2=p*q; h11+=dec_values[i]*dec_values[i]*d2; h22+=d2; h21+=dec_values[i]*d2; d1=t[i]-p; g1+=dec_values[i]*d1; g2+=d1; } // Stopping Criteria if (fabs(g1)= min_step) { newA = A + stepsize * dA; newB = B + stepsize * dB; // New function value newf = 0.0; for (i=0;i= 0) newf += t[i]*fApB + log(1+exp(-fApB)); else newf += (t[i] - 1)*fApB +log(1+exp(fApB)); } // Check sufficient decrease if (newf=max_iter) info("Reaching maximal iterations in two-class probability estimates\n"); free(t); } static double sigmoid_predict(double decision_value, double A, double B) { double fApB = decision_value*A+B; // 1-p used later; avoid catastrophic cancellation if (fApB >= 0) return exp(-fApB)/(1.0+exp(-fApB)); else return 1.0/(1+exp(fApB)) ; } // Method 2 from the multiclass_prob paper by Wu, Lin, and Weng static void multiclass_probability(int k, double **r, double *p) { int t,j; int iter = 0, max_iter=max(100,k); double **Q=Malloc(double *,k); double *Qp=Malloc(double,k); double pQp, eps=0.005/k; for (t=0;tmax_error) max_error=error; } if (max_error=max_iter) info("Exceeds max_iter in multiclass_prob\n"); for(t=0;tl); double *dec_values = Malloc(double,prob->l); // random shuffle GetRNGstate(); for(i=0;il;i++) perm[i]=i; for(i=0;il;i++) { int j = i+((int) (unif_rand() * (prob->l-i))) % (prob->l-i); swap(perm[i],perm[j]); } PutRNGstate(); for(i=0;il/nr_fold; int end = (i+1)*prob->l/nr_fold; int j,k; struct svm_problem subprob; subprob.l = prob->l-(end-begin); subprob.x = Malloc(struct svm_node*,subprob.l); subprob.y = Malloc(double,subprob.l); k=0; for(j=0;jx[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } for(j=end;jl;j++) { subprob.x[k] = prob->x[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } int p_count=0,n_count=0; for(j=0;j0) p_count++; else n_count++; if(p_count==0 && n_count==0) for(j=begin;j 0 && n_count == 0) for(j=begin;j 0) for(j=begin;jx[perm[j]],&(dec_values[perm[j]])); // ensure +1 -1 order; reason not using CV subroutine dec_values[perm[j]] *= submodel->label[0]; } svm_free_and_destroy_model(&submodel); svm_destroy_param(&subparam); } free(subprob.x); free(subprob.y); } sigmoid_train(prob->l,dec_values,prob->y,probA,probB); free(dec_values); free(perm); } // Return parameter of a Laplace distribution static double svm_svr_probability( const svm_problem *prob, const svm_parameter *param) { int i; int nr_fold = 5; double *ymv = Malloc(double,prob->l); double mae = 0; svm_parameter newparam = *param; newparam.probability = 0; svm_cross_validation(prob,&newparam,nr_fold,ymv); for(i=0;il;i++) { ymv[i]=prob->y[i]-ymv[i]; mae += fabs(ymv[i]); } mae /= prob->l; double std=sqrt(2*mae*mae); int count=0; mae=0; for(i=0;il;i++) if (fabs(ymv[i]) > 5*std) count=count+1; else mae+=fabs(ymv[i]); mae /= (prob->l-count); info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae); free(ymv); return mae; } // label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data // perm, length l, must be allocated before calling this subroutine static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm) { int l = prob->l; int max_nr_class = 16; int nr_class = 0; int *label = Malloc(int,max_nr_class); int *count = Malloc(int,max_nr_class); int *data_label = Malloc(int,l); int i; for(i=0;iy[i]; int j; for(j=0;jparam = *param; model->free_sv = 0; // XXX if(param->svm_type == ONE_CLASS || param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR) { // regression or one-class-svm model->nr_class = 2; model->label = NULL; model->nSV = NULL; model->probA = NULL; model->probB = NULL; model->sv_coef = Malloc(double *,1); if(param->probability && (param->svm_type == EPSILON_SVR || param->svm_type == NU_SVR)) { model->probA = Malloc(double,1); model->probA[0] = svm_svr_probability(prob,param); } decision_function f = svm_train_one(prob,param,0,0); model->rho = Malloc(double,1); model->rho[0] = f.rho; int nSV = 0; int i; for(i=0;il;i++) if(fabs(f.alpha[i]) > 0) ++nSV; model->l = nSV; model->SV = Malloc(svm_node *,nSV); model->sv_coef[0] = Malloc(double,nSV); model->sv_indices = Malloc(int,nSV); int j = 0; for(i=0;il;i++) if(fabs(f.alpha[i]) > 0) { model->SV[j] = prob->x[i]; model->sv_coef[0][j] = f.alpha[i]; model->sv_indices[j] = i+1; ++j; } free(f.alpha); } else { // classification int l = prob->l; int nr_class; int *label = NULL; int *start = NULL; int *count = NULL; int *perm = Malloc(int,l); // group training data of the same class svm_group_classes(prob,&nr_class,&label,&start,&count,perm); if(nr_class == 1) info("WARNING: training data in only one class. See README for details.\n"); svm_node **x = Malloc(svm_node *,l); int i; for(i=0;ix[perm[i]]; // calculate weighted C double *weighted_C = Malloc(double, nr_class); for(i=0;iC; for(i=0;inr_weight;i++) { int j; for(j=0;jweight_label[i] == label[j]) break; if(j == nr_class) REprintf("WARNING: class label %d specified in weight is not found\n", param->weight_label[i]); else weighted_C[j] *= param->weight[i]; } // train k*(k-1)/2 models bool *nonzero = Malloc(bool,l); for(i=0;iprobability) { probA=Malloc(double,nr_class*(nr_class-1)/2); probB=Malloc(double,nr_class*(nr_class-1)/2); } int p = 0; for(i=0;iprobability) svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]); f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]); for(k=0;k 0) nonzero[si+k] = true; for(k=0;k 0) nonzero[sj+k] = true; free(sub_prob.x); free(sub_prob.y); ++p; } // build output model->nr_class = nr_class; model->label = Malloc(int,nr_class); for(i=0;ilabel[i] = label[i]; model->rho = Malloc(double,nr_class*(nr_class-1)/2); for(i=0;irho[i] = f[i].rho; if(param->probability) { model->probA = Malloc(double,nr_class*(nr_class-1)/2); model->probB = Malloc(double,nr_class*(nr_class-1)/2); for(i=0;iprobA[i] = probA[i]; model->probB[i] = probB[i]; } } else { model->probA=NULL; model->probB=NULL; } int total_sv = 0; int *nz_count = Malloc(int,nr_class); model->nSV = Malloc(int,nr_class); for(i=0;inSV[i] = nSV; nz_count[i] = nSV; } info("Total nSV = %d\n",total_sv); model->l = total_sv; model->SV = Malloc(svm_node *,total_sv); model->sv_indices = Malloc(int,total_sv); p = 0; for(i=0;iSV[p] = x[i]; model->sv_indices[p++] = perm[i] + 1; } int *nz_start = Malloc(int,nr_class); nz_start[0] = 0; for(i=1;isv_coef = Malloc(double *,nr_class-1); for(i=0;isv_coef[i] = Malloc(double,total_sv); p = 0; for(i=0;isv_coef[j-1][q++] = f[p].alpha[k]; q = nz_start[j]; for(k=0;ksv_coef[i][q++] = f[p].alpha[ci+k]; ++p; } free(label); free(probA); free(probB); free(count); free(perm); free(start); free(x); free(weighted_C); free(nonzero); for(i=0;il; int *perm = Malloc(int,l); int nr_class; GetRNGstate(); if (nr_fold > l) { nr_fold = l; REprintf("WARNING: # folds > # data. Will use # folds = # data instead (i.e., leave-one-out cross validation)\n"); } fold_start = Malloc(int,nr_fold+1); // stratified cv may not give leave-one-out rate // Each class to l folds -> some folds may have zero elements if((param->svm_type == C_SVC || param->svm_type == NU_SVC) && nr_fold < l) { int *start = NULL; int *label = NULL; int *count = NULL; svm_group_classes(prob,&nr_class,&label,&start,&count,perm); // random shuffle and then data grouped by fold using the array perm int *fold_count = Malloc(int,nr_fold); int c; int *index = Malloc(int,l); for(i=0;ix[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } for(j=end;jx[perm[j]]; subprob.y[k] = prob->y[perm[j]]; ++k; } struct svm_model *submodel = svm_train(&subprob,param); if(param->probability && (param->svm_type == C_SVC || param->svm_type == NU_SVC)) { double *prob_estimates=Malloc(double,svm_get_nr_class(submodel)); for(j=begin;jx[perm[j]],prob_estimates); free(prob_estimates); } else for(j=begin;jx[perm[j]]); svm_free_and_destroy_model(&submodel); free(subprob.x); free(subprob.y); } free(fold_start); free(perm); PutRNGstate(); } int svm_get_svm_type(const svm_model *model) { return model->param.svm_type; } int svm_get_nr_class(const svm_model *model) { return model->nr_class; } void svm_get_labels(const svm_model *model, int* label) { if (model->label != NULL) for(int i=0;inr_class;i++) label[i] = model->label[i]; } void svm_get_sv_indices(const svm_model *model, int* indices) { if (model->sv_indices != NULL) for(int i=0;il;i++) indices[i] = model->sv_indices[i]; } int svm_get_nr_sv(const svm_model *model) { return model->l; } double svm_get_svr_probability(const svm_model *model) { if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && model->probA!=NULL) return model->probA[0]; else { REprintf("Model doesn't contain information for SVR probability inference\n"); return 0; } } double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values) { int i; if(model->param.svm_type == ONE_CLASS || model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) { double *sv_coef = model->sv_coef[0]; double sum = 0; for(i=0;il;i++) sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param); sum -= model->rho[0]; *dec_values = sum; if(model->param.svm_type == ONE_CLASS) return (sum>0)?1:-1; else return sum; } else { int nr_class = model->nr_class; int l = model->l; double *kvalue = Malloc(double,l); for(i=0;iSV[i],model->param); int *start = Malloc(int,nr_class); start[0] = 0; for(i=1;inSV[i-1]; int *vote = Malloc(int,nr_class); for(i=0;inSV[i]; int cj = model->nSV[j]; int k; double *coef1 = model->sv_coef[j-1]; double *coef2 = model->sv_coef[i]; for(k=0;krho[p]; dec_values[p] = sum; if(dec_values[p] > 0) ++vote[i]; else ++vote[j]; p++; } int vote_max_idx = 0; for(i=1;i vote[vote_max_idx]) vote_max_idx = i; free(kvalue); free(start); free(vote); return model->label[vote_max_idx]; } } double svm_predict(const svm_model *model, const svm_node *x) { int nr_class = model->nr_class; double *dec_values; if(model->param.svm_type == ONE_CLASS || model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) dec_values = Malloc(double, 1); else dec_values = Malloc(double, nr_class*(nr_class-1)/2); double pred_result = svm_predict_values(model, x, dec_values); free(dec_values); return pred_result; } double svm_predict_probability( const svm_model *model, const svm_node *x, double *prob_estimates) { if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && model->probA!=NULL && model->probB!=NULL) { int i; int nr_class = model->nr_class; double *dec_values = Malloc(double, nr_class*(nr_class-1)/2); svm_predict_values(model, x, dec_values); double min_prob=1e-7; double **pairwise_prob=Malloc(double *,nr_class); for(i=0;iprobA[k],model->probB[k]),min_prob),1-min_prob); pairwise_prob[j][i]=1-pairwise_prob[i][j]; k++; } if (nr_class == 2) { prob_estimates[0] = pairwise_prob[0][1]; prob_estimates[1] = pairwise_prob[1][0]; } else multiclass_probability(nr_class,pairwise_prob,prob_estimates); int prob_max_idx = 0; for(i=1;i prob_estimates[prob_max_idx]) prob_max_idx = i; for(i=0;ilabel[prob_max_idx]; } else return svm_predict(model, x); } static const char *svm_type_table[] = { "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL }; static const char *kernel_type_table[]= { "linear","polynomial","rbf","sigmoid","precomputed",NULL }; int svm_save_model(const char *model_file_name, const svm_model *model) { FILE *fp = fopen(model_file_name,"w"); if(fp==NULL) return -1; char *old_locale = setlocale(LC_ALL, NULL); if (old_locale) { old_locale = strdup(old_locale); } setlocale(LC_ALL, "C"); const svm_parameter& param = model->param; (void) fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]); (void) fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]); if(param.kernel_type == POLY) (void) fprintf(fp,"degree %d\n", param.degree); if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID) (void) fprintf(fp,"gamma %.17g\n", param.gamma); if(param.kernel_type == POLY || param.kernel_type == SIGMOID) (void) fprintf(fp,"coef0 %.17g\n", param.coef0); int nr_class = model->nr_class; int l = model->l; (void) fprintf(fp, "nr_class %d\n", nr_class); (void) fprintf(fp, "total_sv %d\n",l); { (void) fprintf(fp, "rho"); for(int i=0;irho[i]); (void) fprintf(fp, "\n"); } if(model->label) { (void) fprintf(fp, "label"); for(int i=0;ilabel[i]); (void) fprintf(fp, "\n"); } if(model->probA) // regression has probA only { (void) fprintf(fp, "probA"); for(int i=0;iprobA[i]); (void) fprintf(fp, "\n"); } if(model->probB) { (void) fprintf(fp, "probB"); for(int i=0;iprobB[i]); (void) fprintf(fp, "\n"); } if(model->nSV) { (void) fprintf(fp, "nr_sv"); for(int i=0;inSV[i]); (void) fprintf(fp, "\n"); } (void) fprintf(fp, "SV\n"); const double * const *sv_coef = model->sv_coef; const svm_node * const *SV = model->SV; for(int i=0;ivalue)); else while(p->index != -1) { (void) fprintf(fp,"%d:%.8g ",p->index,p->value); p++; } (void) fprintf(fp, "\n"); } setlocale(LC_ALL, old_locale); free(old_locale); if (ferror(fp) != 0 || fclose(fp) != 0) return -1; else return 0; } static char *line = NULL; static int max_line_len; static char* readline(FILE *input) { int len; if(fgets(line,max_line_len,input) == NULL) return NULL; while(strrchr(line,'\n') == NULL) { max_line_len *= 2; line = (char *) realloc(line,max_line_len); len = (int) strlen(line); if(fgets(line+len,max_line_len-len,input) == NULL) break; } return line; } // // FSCANF helps to handle fscanf failures. // Its do-while block avoids the ambiguity when // if (...) // FSCANF(); // is used // #define FSCANF(_stream, _format, _var) do{ if (fscanf(_stream, _format, _var) != 1) return false; }while(0) bool read_model_header(FILE *fp, svm_model* model) { svm_parameter& param = model->param; // parameters for training only won't be assigned, but arrays are assigned as NULL for safety param.nr_weight = 0; param.weight_label = NULL; param.weight = NULL; char cmd[81]; while(1) { FSCANF(fp,"%80s",cmd); if(strcmp(cmd,"svm_type")==0) { FSCANF(fp,"%80s",cmd); int i; for(i=0;svm_type_table[i];i++) { if(strcmp(svm_type_table[i],cmd)==0) { param.svm_type=i; break; } } if(svm_type_table[i] == NULL) { REprintf("unknown svm type.\n"); return false; } } else if(strcmp(cmd,"kernel_type")==0) { FSCANF(fp,"%80s",cmd); int i; for(i=0;kernel_type_table[i];i++) { if(strcmp(kernel_type_table[i],cmd)==0) { param.kernel_type=i; break; } } if(kernel_type_table[i] == NULL) { REprintf("unknown kernel function.\n"); return false; } } else if(strcmp(cmd,"degree")==0) FSCANF(fp,"%d",¶m.degree); else if(strcmp(cmd,"gamma")==0) FSCANF(fp,"%lf",¶m.gamma); else if(strcmp(cmd,"coef0")==0) FSCANF(fp,"%lf",¶m.coef0); else if(strcmp(cmd,"nr_class")==0) FSCANF(fp,"%d",&model->nr_class); else if(strcmp(cmd,"total_sv")==0) FSCANF(fp,"%d",&model->l); else if(strcmp(cmd,"rho")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->rho = Malloc(double,n); for(int i=0;irho[i]); } else if(strcmp(cmd,"label")==0) { int n = model->nr_class; model->label = Malloc(int,n); for(int i=0;ilabel[i]); } else if(strcmp(cmd,"probA")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->probA = Malloc(double,n); for(int i=0;iprobA[i]); } else if(strcmp(cmd,"probB")==0) { int n = model->nr_class * (model->nr_class-1)/2; model->probB = Malloc(double,n); for(int i=0;iprobB[i]); } else if(strcmp(cmd,"nr_sv")==0) { int n = model->nr_class; model->nSV = Malloc(int,n); for(int i=0;inSV[i]); } else if(strcmp(cmd,"SV")==0) { while(1) { int c = getc(fp); if(c==EOF || c=='\n') break; } break; } else { REprintf("unknown text in model file: [%s]\n",cmd); return false; } } return true; } svm_model *svm_load_model(const char *model_file_name) { FILE *fp = fopen(model_file_name,"rb"); if(fp==NULL) return NULL; char *old_locale = setlocale(LC_ALL, NULL); if (old_locale) { old_locale = strdup(old_locale); } setlocale(LC_ALL, "C"); // read parameters svm_model *model = Malloc(svm_model,1); model->rho = NULL; model->probA = NULL; model->probB = NULL; model->sv_indices = NULL; model->label = NULL; model->nSV = NULL; // read header if (!read_model_header(fp, model)) { REprintf("ERROR: fscanf failed to read model\n"); setlocale(LC_ALL, old_locale); free(old_locale); free(model->rho); free(model->label); free(model->nSV); free(model); return NULL; } // read sv_coef and SV int elements = 0; long pos = ftell(fp); max_line_len = 1024; line = Malloc(char,max_line_len); char *p,*endptr,*idx,*val; while(readline(fp)!=NULL) { p = strtok(line,":"); while(1) { p = strtok(NULL,":"); if(p == NULL) break; ++elements; } } elements += model->l; fseek(fp,pos,SEEK_SET); int m = model->nr_class - 1; int l = model->l; model->sv_coef = Malloc(double *,m); int i; for(i=0;isv_coef[i] = Malloc(double,l); model->SV = Malloc(svm_node*,l); svm_node *x_space = NULL; if(l>0) x_space = Malloc(svm_node,elements); int j=0; for(i=0;iSV[i] = &x_space[j]; p = strtok(line, " \t"); model->sv_coef[0][i] = strtod(p,&endptr); for(int k=1;ksv_coef[k][i] = strtod(p,&endptr); } while(1) { idx = strtok(NULL, ":"); val = strtok(NULL, " \t"); if(val == NULL) break; x_space[j].index = (int) strtol(idx,&endptr,10); x_space[j].value = strtod(val,&endptr); ++j; } x_space[j++].index = -1; } free(line); setlocale(LC_ALL, old_locale); free(old_locale); if (ferror(fp) != 0 || fclose(fp) != 0) return NULL; model->free_sv = 1; // XXX return model; } void svm_free_model_content(svm_model* model_ptr) { if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL) free((void *)(model_ptr->SV[0])); if(model_ptr->sv_coef) { for(int i=0;inr_class-1;i++) free(model_ptr->sv_coef[i]); } free(model_ptr->SV); model_ptr->SV = NULL; free(model_ptr->sv_coef); model_ptr->sv_coef = NULL; free(model_ptr->rho); model_ptr->rho = NULL; free(model_ptr->label); model_ptr->label= NULL; free(model_ptr->probA); model_ptr->probA = NULL; free(model_ptr->probB); model_ptr->probB= NULL; free(model_ptr->sv_indices); model_ptr->sv_indices = NULL; free(model_ptr->nSV); model_ptr->nSV = NULL; } void svm_free_and_destroy_model(svm_model** model_ptr_ptr) { if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL) { svm_free_model_content(*model_ptr_ptr); free(*model_ptr_ptr); *model_ptr_ptr = NULL; } } void svm_destroy_param(svm_parameter* param) { free(param->weight_label); free(param->weight); } const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param) { // svm_type int svm_type = param->svm_type; if(svm_type != C_SVC && svm_type != NU_SVC && svm_type != ONE_CLASS && svm_type != EPSILON_SVR && svm_type != NU_SVR) return "unknown svm type"; // kernel_type, degree int kernel_type = param->kernel_type; if(kernel_type != LINEAR && kernel_type != POLY && kernel_type != RBF && kernel_type != SIGMOID && kernel_type != PRECOMPUTED) return "unknown kernel type"; if(param->gamma < 0) return "gamma < 0"; if(param->degree < 0) return "degree of polynomial kernel < 0"; // cache_size,eps,C,nu,p,shrinking if(param->cache_size <= 0) return "cache_size <= 0"; if(param->eps <= 0) return "eps <= 0"; if(svm_type == C_SVC || svm_type == EPSILON_SVR || svm_type == NU_SVR) if(param->C <= 0) return "C <= 0"; if(svm_type == NU_SVC || svm_type == ONE_CLASS || svm_type == NU_SVR) if(param->nu <= 0 || param->nu > 1) return "nu <= 0 or nu > 1"; if(svm_type == EPSILON_SVR) if(param->p < 0) return "p < 0"; if(param->shrinking != 0 && param->shrinking != 1) return "shrinking != 0 and shrinking != 1"; if(param->probability != 0 && param->probability != 1) return "probability != 0 and probability != 1"; if(param->probability == 1 && svm_type == ONE_CLASS) return "one-class SVM probability output not supported yet"; // check whether nu-svc is feasible if(svm_type == NU_SVC) { int l = prob->l; int max_nr_class = 16; int nr_class = 0; int *label = Malloc(int,max_nr_class); int *count = Malloc(int,max_nr_class); int i; for(i=0;iy[i]; int j; for(j=0;jnu*(n1+n2)/2 > min(n1,n2)) { free(label); free(count); return "specified nu is infeasible"; } } } free(label); free(count); } return NULL; } int svm_check_probability_model(const svm_model *model) { return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && model->probA!=NULL && model->probB!=NULL) || ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && model->probA!=NULL); } void svm_set_print_string_function(void (*print_func)(const char *)) { if(print_func == NULL) svm_print_string = &print_string_stdout; else svm_print_string = print_func; } e1071/src/cshell.c0000755000175100001440000001766714173734135013266 0ustar hornikusers/*****************************************************************/ /* * Copyright (C)2000 Evgenia Dimitriadou * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include "R.h" int subcshell(int *xrows, int *xcols, double *x, int *ncenters, double *centers, int *itermax, int *iter, int *verbose, int *dist, double *U, double *UANT, double *f, double *ermin, double *radius, int *flag) { int k, col, i, m, n ; double serror; /*convergence parameters*/ double epsi1, epsi2, conv; double sum2; double temp,tempu, tempu1, tempu2, distance; int j; double suma; double exponente; /* *ermin=0.0;*/ serror=0.0; sum2=0; if ((*flag==0) || (*flag==5)){ /* UPDATE CENTERS*/ for(i=0;i<*ncenters;i++) { sum2=0; for(col=0;col<*xcols;col++) centers[i+(*ncenters)*col]=0.0; for(k=0;k<*xrows;k++) { temp=pow(U[k+(*xrows)*i],*f); sum2=sum2+temp; for(col=0;col<*xcols;col++) { centers[i+(*ncenters)*col]+= temp*x[k+(*xrows)*col]; } } for(col=0;col<*xcols;col++) centers[i+(*ncenters)*col]/=sum2; } /*UPDATE radius*/ for(i=0;i<*ncenters;i++) { sum2=0; radius[i]=0.0; for(k=0;k<*xrows;k++) { distance=0.0; temp=pow(U[k+(*xrows)*i],*f); sum2=sum2+temp; for(col=0;col<*xcols;col++) { if (*dist==0){ distance+= (x[k+(*xrows)*col]-centers[i+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); } else if(*dist ==1){ distance+=fabs(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); } } if (*dist==0){ radius[i]+= temp*sqrt(distance);} else if(*dist ==1){ radius[i]+= temp*distance;} } radius[i]/=sum2; } }/*flag=0*/ /*update UANT*/ for(i=0;i<*ncenters;i++){ for(k=0;k<*xrows;k++){ UANT[k+(*xrows)*i]=U[k+(*xrows)*i];}} /* UPDATE Membership Matrix */ exponente=2.0/(*f-1.0); for(i=0;i<*ncenters;i++) { for(k=0;k<*xrows;k++) { suma=0; for(j=0;j<*ncenters;j++) { tempu=0; tempu1=0; tempu2=0; for (col=0;col<*xcols;col++) { if (*dist==0){ tempu1+=(x[k+(*xrows)*col]-centers[i+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=(x[k+(*xrows)*col]-centers[j+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } else if(*dist ==1){ tempu1+=fabs(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=fabs(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } } if (*dist==0){ tempu=fabs(sqrt(tempu1)-radius[i])/fabs(sqrt(tempu2)-radius[j]); } else if(*dist ==1){ tempu=fabs((tempu1-radius[i])/(tempu2-radius[j])); } suma=suma+pow(tempu,exponente); } U[k+(*xrows)*i]=1.0/suma; } } /*ERROR MINIMIZATION*/ epsi1=0.002; epsi2=0.2; conv=0.0; for (m=0;m<*ncenters;m++){ for (k=0;k<*xrows;k++){ serror = 0.0; for(n=0;n<*xcols;n++){ if(*dist == 0){ serror += (x[k+(*xrows)*n] - centers[m+(*ncenters)*n])*(x[k+(*xrows)*n] - centers[m +(*ncenters)*n]); } else if(*dist ==1){ serror += fabs(x[k+(*xrows)*n] - centers[m + (*ncenters)*n]); } } if (*dist == 0){ serror=fabs(sqrt(serror)-radius[m]);} else if(*dist ==1){ serror=fabs(serror-radius[m]);} *ermin+=pow(U[k+(*xrows)*m],*f)*pow(serror,2); /* *ermin=*ermin/(*xrows));*/ /*Convergence check*/ conv += fabs(U[k+(*xrows)*m]-UANT[k+(*xrows)*m]); } } if (conv<= ((*xrows)*(*xcols)*epsi1)){ *flag=2; if (*verbose){ Rprintf("Iteration: %3d converged, Error: %13.10f\n",*iter,conv); }} else if (conv<= ((*xrows)*(*xcols)*epsi2)){ if (*verbose){ Rprintf("Iteration: %3d Epsi2: %13.10f\n",*iter,conv);} if (*flag==3) *flag=4; else *flag=1; } else if(*flag==3) *flag=5; if (*verbose){ Rprintf("Iteration: %3d Error: %13.10f\n",*iter,*ermin/(*xrows)); } return 0; } int cshell(int *xrows, int *xcols, double *x, int *ncenters, double *centers, int *itermax, int *iter, int *verbose, int *dist, double *U, double *UANT, double *f, double *ermin, double *radius, int *flag) { int k; int i,j,col; double suma,tempu,exponente,tempu1,tempu2; exponente=2.0/(*f-1.0); /* *flag=0;*/ if (*flag==0){ *iter=0; /*Initialize Membership Matrix */ for(i=0;i<*ncenters;i++) { for(k=0;k<*xrows;k++) { suma=0; for(j=0;j<*ncenters;j++) { tempu=0; tempu1=0; tempu2=0; for (col=0;col<*xcols;col++) { if (*dist==0){ tempu1+=(x[k+(*xrows)*col]-centers[i+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=(x[k+(*xrows)*col]-centers[j+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } else if(*dist ==1){ tempu1+=fabs(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=fabs(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } } if (*dist==0){ tempu=fabs(sqrt(tempu1)-radius[i])/fabs(sqrt(tempu2)-radius[j]); } else if(*dist ==1){ tempu=fabs((tempu1-radius[i])/(tempu2-radius[j])); } suma=suma+pow(tempu,exponente); } UANT[k+(*xrows)*i]=1.0/suma; } } for(i=0;i<*ncenters;i++) { for(j=0;j<*xrows;j++) U[j+(*xrows)*i]=UANT[j+(*xrows)*i]; } } while(((*iter)++ < *itermax) && ((*flag)!=1 && (*flag)!=2) && (*flag)!=4) { *ermin=0.0; subcshell(xrows, xcols, x, ncenters, centers, itermax, iter, verbose, dist, U, UANT, f, ermin, radius, flag); } return 0; } /*****************************************************************/ /*******only for prediction***************************************/ /*****************************************************************/ int cshell_assign(int *xrows, int *xcols, double *x, int *ncenters, double *centers, int *dist, double *U, double *f, double *radius) { int k, col, i; double tempu, tempu1, tempu2; int j; double suma; double exponente; exponente=2.0/(*f-1.0); for(i=0;i<*ncenters;i++) { for(k=0;k<*xrows;k++) { suma=0; for(j=0;j<*ncenters;j++) { tempu=0; tempu1=0; tempu2=0; for (col=0;col<*xcols;col++) { if (*dist==0){ tempu1+=(x[k+(*xrows)*col]-centers[i+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=(x[k+(*xrows)*col]-centers[j+(*ncenters)*col])*(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } else if(*dist ==1){ tempu1+=fabs(x[k+(*xrows)*col]-centers[i+(*ncenters)*col]); tempu2+=fabs(x[k+(*xrows)*col]-centers[j+(*ncenters)*col]); } } if (*dist==0){ tempu=fabs(sqrt(tempu1)-radius[i])/fabs(sqrt(tempu2)-radius[j]); } else if(*dist ==1){ tempu=fabs((tempu1-radius[i])/(tempu2-radius[j])); } suma=suma+pow(tempu,exponente); } U[k+(*xrows)*i]=1.0/suma; } } return 0; } e1071/src/init.c0000755000175100001440000000627514173734135012750 0ustar hornikusers #include #include #include void cmeans(double *x, int *nr_x, int *nc, double *p, int *nr_p, double *w, double *f, int *dist, int *itermax, double *reltol, int *verbose, double *u, double *ermin, int *iter); int cshell(int *xrows, int *xcols, double *x, int *ncenters, double *centers, int *itermax, int *iter, int *verbose, int *dist, double *U, double *UANT, double *f, double *ermin, double *radius, int *flag); int e1071_floyd(int *n, double *A, double *C, int *P); void ufcl(double *x, int *nr_x, int *nc, double *p, int *nr_p, double *w, double *f, int *dist, int *itermax, double *reltol, int *verbose, double *rate_par, double *u, double *ermin, int *iter); void svmtrain (double *x, int *r, int *c, double *y, int *rowindex, int *colindex, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, double *cost, double *nu, int *weightlabels, double *weights, int *nweights, double *cache, double *tolerance, double *epsilon, int *shrinking, int *cross, int *sparse, int *probability, int *nclasses, int *nr, int *index, int *labels, int *nSV, double *rho, double *coefs, double *sigma, double *probA, double *probB, double *cresults, double *ctotal1, double *ctotal2, char **error); void svmpredict (int *decisionvalues, int *probability, double *v, int *r, int *c, int *rowindex, int *colindex, double *coefs, double *rho, int *compprob, double *probA, double *probB, int *nclasses, int *totnSV, int *labels, int *nSV, int *sparsemodel, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, double *x, int *xr, int *xrowindex, int *xcolindex, int *sparsex, double *ret, double *dec, double *prob); void svmwrite (double *v, int *r, int *c, int *rowindex, int *colindex, double *coefs, double *rho, int *compprob, double *probA, double *probB, int *nclasses, int *totnSV, int *labels, int *nSV, int *sparsemodel, int *svm_type, int *kernel_type, int *degree, double *gamma, double *coef0, char **filename); static const R_CMethodDef CEntries[] = { {"cmeans", (DL_FUNC) &cmeans, 14}, {"cshell", (DL_FUNC) &cshell, 15}, {"e1071_floyd", (DL_FUNC) &e1071_floyd, 4}, {"svmpredict", (DL_FUNC) &svmpredict, 30}, {"svmtrain", (DL_FUNC) &svmtrain, 37}, {"svmwrite", (DL_FUNC) &svmwrite, 21}, {"ufcl", (DL_FUNC) &ufcl, 15}, {NULL, NULL, 0} }; void R_init_e1071(DllInfo *dll) { R_registerRoutines(dll, CEntries, NULL, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } e1071/src/floyd.c0000755000175100001440000000140314173734135013106 0ustar hornikusersint e1071_floyd(int *n, double *A, double *C, int *P) /* this function takes an nxn matrix C of edge costs and produces */ /* an nxn matrix A of lengths of shortest paths, and an nxn */ /* matrix P giving a point in the middle of each shortest path */ { int i,j,k; for (i=0; i<*n; i++) for (j=0; j<*n; j++) { A[i + *n * j] = C[i + *n * j]; P[i + *n * j] = -1; } for (i=0; i<*n; i++) A[i + *n * i] = 0; /* no self cycle */ for (k=0; k<*n; k++) for (i=0; i<*n; i++) for (j=0; j<*n; j++) if (A[i + *n * k]+A[k + *n * j] < A[i + *n * j]) { A[i + *n * j] = A[i + *n * k] + A[k + *n * j]; P[i + *n * j] = k; /* k is included in shortest path */ } return 0; } e1071/src/cmeans.c0000755000175100001440000001774014173734135013252 0ustar hornikusers/* C code for (weighted) fuzzy c-means, rewritten from scratch by KH. */ #include #include #include /* Enhance readability of matrix-subscripting for matrices stored in row-major order. */ #define MSUB(x, i, j, n) x[(i) + (n) * (j)] static double *d; static double *dwrk, *dwrk_x, *dwrk_w; static int *iwrk; static void cmeans_setup(int nr_x, int nr_p, int dist) { int len_u_d = nr_x * nr_p; d = (double *) R_alloc(len_u_d, sizeof(double)); if(dist == 1) { /* Needed for weighted medians. */ dwrk_x = (double *) R_alloc(nr_x, sizeof(double)); dwrk_w = (double *) R_alloc(nr_x, sizeof(double)); dwrk = (double *) R_alloc(nr_x, sizeof(double)); iwrk = (int *) R_alloc(nr_x, sizeof(int)); } } /* static void cmeans_copy_vector(double *from, double *to, int len) { int i; for(i = 0; i < len; i++) to[i] = from[i]; } static double cmeans_delta_old_new(double *old, double *new, int len) { int i; double sum = 0; for(i = 0; i < len; i++) sum += fabs(new[i] - old[i]); return(sum / len); } */ static int cmeans_sign(double x) { if(x == 0) return(0); return((x > 0) ? 1 : -1); } static double cmeans_weighted_median(double *x, double *w, int len) { int i; double sum, val, marg, mval, cumsum_w, cumsum_w_x; /* Sort x. */ for(i = 0; i < len; i++) iwrk[i] = i; rsort_with_index(x, iwrk, len); /* Permute w using iwrk, and normalize. */ sum = 0; for(i = 0; i < len; i++) { dwrk[i] = w[iwrk[i]]; sum += dwrk[i]; } for(i = 0; i < len; i++) { w[i] = dwrk[i] / sum; } cumsum_w = cumsum_w_x = 0; mval = R_PosInf; marg = *x; /* -Wall */ for(i = 0; i < len; i++) { cumsum_w += w[i]; cumsum_w_x += w[i] * x[i]; val = x[i] * (cumsum_w - .5) - cumsum_w_x; if(val < mval) { marg = x[i]; mval = val; } } return(marg); } /* Update the dissimilarities (between objects and prototypes) for a * single object (i.e., a single row of the dissimilarity matrix. */ static void ufcl_dissimilarities(double *x, double *p, int nr_x, int nc, int nr_p, int dist, int ix, double *d) { int ip, j; double sum, v; for(ip = 0; ip < nr_p; ip++) { sum = 0; for(j = 0; j < nc; j++) { v = MSUB(x, ix, j, nr_x) - MSUB(p, ip, j, nr_p); if(dist == 0) sum += v * v; else if(dist == 1) sum += fabs(v); } MSUB(d, ix, ip, nr_x) = sum; } } static void cmeans_dissimilarities(double *x, double *p, int nr_x, int nc, int nr_p, int dist, double *d) { int ix; for(ix = 0; ix < nr_x; ix++) { /* Loop over all objects ... */ ufcl_dissimilarities(x, p, nr_x, nc, nr_p, dist, ix, d); } } /* Update the memberships for a single object (i.e., a single row of the * membership matrix.) */ static void ufcl_memberships(double *d, int nr_x, int nr_p, double exponent, int ix, double *u) { int ip, n_of_zeroes; double sum, v; n_of_zeroes = 0; for(ip = 0; ip < nr_p; ip++) { if(MSUB(d, ix, ip, nr_x) == 0) n_of_zeroes++; } if(n_of_zeroes > 0) { v = 1 / n_of_zeroes; for(ip = 0; ip < nr_p; ip++) MSUB(u, ix, ip, nr_x) = ((MSUB(d, ix, ip, nr_x) == 0) ? v : 0); } else { /* Use the assumption that in general, pow() is more * expensive than subscripting. */ sum = 0; for(ip = 0; ip < nr_p; ip++) { v = 1 / pow(MSUB(d, ix, ip, nr_x), exponent); sum += v; MSUB(u, ix, ip, nr_x) = v; } for(ip = 0; ip < nr_p; ip++) MSUB(u, ix, ip, nr_x) /= sum; } } static void cmeans_memberships(double *d, int nr_x, int nr_p, double exponent, double *u) { int ix; for(ix = 0; ix < nr_x; ix++) { /* Loop over all objects ... */ ufcl_memberships(d, nr_x, nr_p, exponent, ix, u); } } static void cmeans_prototypes(double *x, double *u, double *w, int nr_x, int nc, int nr_p, double f, int dist, double *p) { int ix, ip, j; double sum, v; if(dist == 0) { /* Euclidean: weighted means. */ for(ip = 0; ip < nr_p; ip++) { for(j = 0; j < nc; j++) MSUB(p, ip, j, nr_p) = 0; sum = 0; for(ix = 0; ix < nr_x; ix++) { v = w[ix] * pow(MSUB(u, ix, ip, nr_x), f); sum += v; for(j = 0; j < nc; j++) MSUB(p, ip, j, nr_p) += v * MSUB(x, ix, j, nr_x); } for(j = 0; j < nc; j++) MSUB(p, ip, j, nr_p) /= sum; } } else { /* Manhattan: weighted medians. */ for(ip = 0; ip < nr_p; ip++) for(j = 0; j < nc; j++) { for(ix = 0; ix < nr_x; ix++) { dwrk_x[ix] = MSUB(x, ix, j, nr_x); dwrk_w[ix] = w[ix] * pow(MSUB(u, ix, ip, nr_x), f); } MSUB(p, ip, j, nr_p) = cmeans_weighted_median(dwrk_x, dwrk_w, nr_x); } } } static double cmeans_error_fn(double *u, double *d, double *w, int nr_x, int nr_p, double f) { int ix, ip; double sum; sum = 0; for(ix = 0; ix < nr_x; ix++) for(ip = 0; ip < nr_p; ip++) sum += w[ix] * pow(MSUB(u, ix, ip, nr_x), f) * MSUB(d, ix, ip, nr_x); return(sum); } void cmeans(double *x, int *nr_x, int *nc, double *p, int *nr_p, double *w, double *f, int *dist, int *itermax, double *reltol, int *verbose, double *u, double *ermin, int *iter) { double exponent = 1 / (*f - 1); double old_value, new_value; cmeans_setup(*nr_x, *nr_p, *dist); cmeans_dissimilarities(x, p, *nr_x, *nc, *nr_p, *dist, d); cmeans_memberships(d, *nr_x, *nr_p, exponent, u); old_value = new_value = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); *iter = 0; while((*iter)++ < *itermax) { cmeans_prototypes(x, u, w, *nr_x, *nc, *nr_p, *f, *dist, p); cmeans_dissimilarities(x, p, *nr_x, *nc, *nr_p, *dist, d); cmeans_memberships(d, *nr_x, *nr_p, exponent, u); new_value = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); if(fabs(old_value - new_value) < *reltol * (old_value + *reltol)) { if(*verbose) Rprintf("Iteration: %3d converged, Error: %13.10f\n", *iter, new_value); break; } else { if(*verbose) { *ermin = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); Rprintf("Iteration: %3d, Error: %13.10f\n", *iter, new_value); } old_value = new_value; } } *ermin = new_value; } /* Update prototypes based on a single object. */ static void ufcl_prototypes(double *x, double *u, double *w, int nr_x, int nc, int nr_p, double f, int dist, double lrate, int ix, double *p) { int ip, j; double grad; for(ip = 0; ip < nr_p; ip++) { for(j = 0; j < nc; j++) { grad = MSUB(x, ix, j, nr_x) - MSUB(p, ip, j, nr_p); if(dist == 1) grad = cmeans_sign(grad); MSUB(p, ip, j, nr_p) += lrate * w[ix] * pow(MSUB(u, ix, ip, nr_x), f) * grad; } } } void ufcl(double *x, int *nr_x, int *nc, double *p, int *nr_p, double *w, double *f, int *dist, int *itermax, double *reltol, int *verbose, double *rate_par, double *u, double *ermin, int *iter) { double exponent = 1 / (*f - 1); double old_value, new_value; int ix; double lrate; cmeans_setup(*nr_x, *nr_p, 0); /* Need some starting values ... */ cmeans_dissimilarities(x, p, *nr_x, *nc, *nr_p, *dist, d); cmeans_memberships(d, *nr_x, *nr_p, exponent, u); old_value = new_value = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); *iter = 0; while((*iter)++ < *itermax) { /* Turns out that sampling the objects is a bad idea ... */ lrate = *rate_par * (1 - (double) *iter / *itermax); for(ix = 0; ix < *nr_x; ix++) { ufcl_dissimilarities(x, p, *nr_x, *nc, *nr_p, *dist, ix, d); ufcl_memberships(d, *nr_x, *nr_p, exponent, ix, u); ufcl_prototypes(x, u, w, *nr_x, *nc, *nr_p, *f, *dist, lrate, ix, p); } new_value = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); if(fabs(old_value - new_value) < *reltol * (old_value + *reltol)) { if(*verbose) Rprintf("Iteration: %3d converged, Error: %13.10f\n", *iter, new_value); break; } else { if(*verbose) { *ermin = cmeans_error_fn(u, d, w, *nr_x, *nr_p, *f); Rprintf("Iteration: %3d, Error: %13.10f\n", *iter, new_value); } old_value = new_value; } } *ermin = new_value; } e1071/src/svm.h0000755000175100001440000000660514173734135012614 0ustar hornikusers#ifndef _LIBSVM_H #define _LIBSVM_H #define LIBSVM_VERSION 323 #ifdef __cplusplus extern "C" { #endif extern int libsvm_version; struct svm_node { int index; double value; }; struct svm_problem { int l; double *y; struct svm_node **x; }; enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */ enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */ struct svm_parameter { int svm_type; int kernel_type; int degree; /* for poly */ double gamma; /* for poly/rbf/sigmoid */ double coef0; /* for poly/sigmoid */ /* these are for training only */ double cache_size; /* in MB */ double eps; /* stopping criteria */ double C; /* for C_SVC, EPSILON_SVR and NU_SVR */ int nr_weight; /* for C_SVC */ int *weight_label; /* for C_SVC */ double* weight; /* for C_SVC */ double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */ double p; /* for EPSILON_SVR */ int shrinking; /* use the shrinking heuristics */ int probability; /* do probability estimates */ }; /* // // svm_model // */ struct svm_model { struct svm_parameter param; /* parameter */ int nr_class; /* number of classes, = 2 in regression/one class svm */ int l; /* total #SV */ struct svm_node **SV; /* SVs (SV[l]) */ double **sv_coef; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */ double *rho; /* constants in decision functions (rho[k*(k-1)/2]) */ double *probA; /* pariwise probability information */ double *probB; int *sv_indices; /* sv_indices[0,...,nSV-1] are values in [1,...,num_traning_data] to indicate SVs in the training set */ /* for classification only */ int *label; /* label of each class (label[k]) */ int *nSV; /* number of SVs for each class (nSV[k]) */ /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */ /* XXX */ int free_sv; /* 1 if svm_model is created by svm_load_model*/ /* 0 if svm_model is created by svm_train */ }; struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target); int svm_save_model(const char *model_file_name, const struct svm_model *model); struct svm_model *svm_load_model(const char *model_file_name); int svm_get_svm_type(const struct svm_model *model); int svm_get_nr_class(const struct svm_model *model); void svm_get_labels(const struct svm_model *model, int *label); void svm_get_sv_indices(const struct svm_model *model, int *sv_indices); int svm_get_nr_sv(const struct svm_model *model); double svm_get_svr_probability(const struct svm_model *model); double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values); double svm_predict(const struct svm_model *model, const struct svm_node *x); double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates); void svm_free_model_content(struct svm_model *model_ptr); void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr); void svm_destroy_param(struct svm_parameter *param); const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param); int svm_check_probability_model(const struct svm_model *model); //void svm_set_print_string_function(void (*print_func)(const char *)); #ifdef __cplusplus } #endif void svm_set_print_string_function(void (*print_func)(const char *)); #endif /* _LIBSVM_H */ e1071/NAMESPACE0000644000175100001440000000436214533656767012277 0ustar hornikusersuseDynLib("e1071", .registration = TRUE, .fixes = "R_") import(graphics) import(grDevices) importFrom("stats", "cmdscale", "complete.cases", "cutree", ".getXlevels", "delete.response", "dnorm", "fft", "fitted", "kmeans", "median", "model.extract", "model.frame", "model.matrix", "model.response", "na.fail", "na.omit", "na.pass", "napredict", "optim", "pchisq", "pnorm", "ppoints", "predict", "qnorm", "quantile", "rnorm", "runif", "sd", "terms", "time", "ts", "var", "xtabs") importFrom("proxy", "dist") importFrom("utils", "head") importFrom("methods", "as", "getClass", "new") importFrom("class", "knn", "knn1") if(getRversion() >= "2.5.0") importFrom("utils", "write.table") export(ddiscrete, pdiscrete, qdiscrete, rdiscrete, bclust, hclust.bclust, centers.bclust, clusters.bclust, bincombinations, bootstrap.lca, classAgreement, cmeans, countpattern, cshell, element, fclustIndex, gknn, hamming.distance, hamming.window, hanning.window, ica, impute, interpolate, kurtosis, lca, matchControls, matchClasses, compareMatchedClasses, moment, naiveBayes, permutations, rbridge, read.matrix.csr, write.matrix.csr, rectangle.window, rwiener, allShortestPaths, extractPath, sigmoid, dsigmoid, d2sigmoid, skewness, stft, svm, tune, tune.control, write.svm, probplot, hsv_palette, scale_data_frame) exportPattern("tune\\..+", "best\\..+") S3method(boxplot, bclust) S3method(coef, svm) S3method(gknn, default) S3method(gknn, formula) S3method(lines, probplot) S3method(naiveBayes, default) S3method(naiveBayes, formula) S3method(plot, bclust) S3method(plot, ica) S3method(plot, stft) S3method(plot, svm) S3method(plot, tune) S3method(predict, lca) S3method(predict, naiveBayes) S3method(predict, svm) S3method(predict, gknn) S3method(print, bootstrap.lca) S3method("print", "fclust") S3method(print, gknn) S3method(print, ica) S3method(print, lca) S3method(print, summary.lca) S3method(print, naiveBayes) S3method(print, svm) S3method(print, summary.svm) S3method(print, tune) S3method(print, summary.tune) S3method(summary, lca) S3method(summary, svm) S3method(summary, tune) S3method(svm, default) S3method(svm, formula) e1071/inst/0000755000175100001440000000000014671766074012024 5ustar hornikuserse1071/inst/doc/0000755000175100001440000000000014671766073012570 5ustar hornikuserse1071/inst/doc/svmdoc.Rnw0000644000175100001440000004344514623570663014560 0ustar hornikusers\documentclass[a4paper]{article} \usepackage{hyperref, graphicx, color, alltt} \usepackage{Sweave} \usepackage[round]{natbib} \definecolor{Red}{rgb}{0.7,0,0} \definecolor{Blue}{rgb}{0,0,0.8} \definecolor{hellgrau}{rgb}{0.55,0.55,0.55} \newcommand{\pkg}[1]{\texttt{#1}} \newenvironment{smallexample}{\begin{alltt}\small}{\end{alltt}} \begin{document} %\VignetteIndexEntry{Support Vector Machines---the Interface to libsvm in package e1071} %\VignetteDepends{e1071,randomForest,xtable} %\VignetteKeywords{classification, regression, machine learning, benchmarking, support vector machines} %\VignettePackage{e1071} \SweaveOpts{engine=R,eps=FALSE} \setkeys{Gin}{width=0.8\textwidth} \title{Support Vector Machines \footnote{A smaller version of this article appeared in R-News, Vol.1/3, 9.2001}\\ \large The Interface to \texttt{libsvm} in package \pkg{e1071}} \author{by David Meyer\\ FH Technikum Wien, Austria\\ \url{David.Meyer@R-Project.org} } \maketitle \sloppy ``Hype or Hallelujah?'' is the provocative title used by \cite{svm:bennett+campbell:2000} in an overview of Support Vector Machines (SVM). SVMs are currently a hot topic in the machine learning community, creating a similar enthusiasm at the moment as Artificial Neural Networks used to do before. Far from being a panacea, SVMs yet represent a powerful technique for general (nonlinear) classification, regression and outlier detection with an intuitive model representation. The package \pkg{e1071} offers an interface to the award-winning\footnote{The library won the IJCNN 2001 Challenge by solving two of three problems: the Generalization Ability Challenge (GAC) and the Text Decoding Challenge (TDC). For more information, see: \url{http://www.csie.ntu.edu.tw/~cjlin/papers/ijcnn.ps.gz}.} C++-implementation by Chih-Chung Chang and Chih-Jen Lin, \texttt{libsvm} (current version: 2.6), featuring: \begin{itemize} \item $C$- and $\nu$-classification \item one-class-classification (novelty detection) \item $\epsilon$- and $\nu$-regression \end{itemize} and includes: \begin{itemize} \item linear, polynomial, radial basis function, and sigmoidal kernels \item formula interface \item $k$-fold cross validation \end{itemize} For further implementation details on \texttt{libsvm}, see \cite{svm:chang+lin:2001}. \section*{Basic concept} SVMs were developed by \cite{svm:cortes+vapnik:1995} for binary classification. Their approach may be roughly sketched as follows: \begin{description} \item[Class separation:] basically, we are looking for the optimal separating hyperplane between the two classes by maximizing the \textit{margin} between the classes' closest points (see Figure \ref{fig:svm1})---the points lying on the boundaries are called \textit{support vectors}, and the middle of the margin is our optimal separating hyperplane; \item[Overlapping classes:] data points on the ``wrong'' side of the discriminant margin are weighted down to reduce their influence (\textit{``soft margin''}); \item[Nonlinearity:] when we cannot find a \textit{linear} separator, data points are projected into an (usually) higher-dimensional space where the data points effectively become linearly separable (this projection is realised via \textit{kernel techniques}); \item[Problem solution:] the whole task can be formulated as a quadratic optimization problem which can be solved by known techniques. \end{description} \noindent A program able to perform all these tasks is called a \textit{Support Vector Machine}. \begin{figure}[htbp] \begin{center} \includegraphics[width=8cm]{svm} \caption{Classification (linear separable case)} \label{fig:svm1} \end{center} \end{figure} Several extensions have been developed; the ones currently included in \texttt{libsvm} are: \begin{description} \item[$\nu$-classification:] this model allows for more control over the number of support vectors \cite[see][]{svm:scholkopf+smola+williamson:2000} by specifying an additional parameter $\nu$ which approximates the fraction of support vectors; \item[One-class-classification:] this model tries to find the support of a distribution and thus allows for outlier/novelty detection; \item[Multi-class classification:] basically, SVMs can only solve binary classification problems. To allow for multi-class classification, \texttt{libsvm} uses the \textit{one-against-one} technique by fitting all binary subclassifiers and finding the correct class by a voting mechanism; \item[$\epsilon$-regression:] here, the data points lie \textit{in between} the two borders of the margin which is maximized under suitable conditions to avoid outlier inclusion; \item[$\nu$-regression:] with analogue modifications of the regression model as in the classification case. \end{description} \section*{Usage in R} The R interface to \texttt{libsvm} in package \pkg{e1071}, \texttt{svm()}, was designed to be as intuitive as possible. Models are fitted and new data are predicted as usual, and both the vector/matrix and the formula interface are implemented. As expected for R's statistical functions, the engine tries to be smart about the mode to be chosen, using the dependent variable's type ($y$): if $y$ is a factor, the engine switches to classification mode, otherwise, it behaves as a regression machine; if $y$ is omitted, the engine assumes a novelty detection task. \section*{Examples} In the following two examples, we demonstrate the practical use of \texttt{svm()} along with a comparison to classification and regression forests as implemented in \texttt{randomForest()}. \subsection*{Classification} In this example, we use the glass data from the \href{http://www.ics.uci.edu/mlearn/MLRepository.html}{UCI Repository of Machine Learning Databases} for classification. The task is to predict the type of a glass on basis of its chemical analysis. We start by splitting the data into a train and test set: <<>>= library(e1071) library(randomForest) data(Glass, package="mlbench") ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- Glass[testindex,] trainset <- Glass[-testindex,] @ Both for SVM and randomForest (via \texttt{randomForest()}), we fit the model and predict the test set values: <<>>= ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1) svm.pred <- predict(svm.model, testset[,-10]) @ (The dependent variable, \texttt{Type}, has column number 10. \texttt{cost} is a general penalizing parameter for $C$-classification and \texttt{gamma} is the radial basis function-specific kernel parameter.) <<>>= ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) @ A cross-tabulation of the true versus the predicted values yields: <<>>= ## compute svm confusion matrix table(pred = svm.pred, true = testset[,10]) ## compute randomForest confusion matrix table(pred = rf.pred, true = testset[,10]) @ %% results table <>= library(xtable) rf.acc <- c() sv.acc <- c() rf.kap <- c() sv.kap <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Glass[testindex,]) trainset <- na.omit(Glass[-testindex,]) ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 8, gamma = 0.0625) svm.pred <- predict(svm.model, testset[,-10]) tab <- classAgreement(table(svm.pred, testset[,10])) sv.acc[i] <- tab$diag sv.kap[i] <- tab$kappa ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) tab <- classAgreement(table(rf.pred, testset[,10])) rf.acc[i] <- tab$diag rf.kap[i] <- tab$kappa } x <- rbind(summary(sv.acc), summary(rf.acc), summary(sv.kap), summary(rf.kap)) rownames <- c() tab <- cbind(rep(c("svm","randomForest"),2), round(x,2)) colnames(tab)[1] <- "method" rownames(tab) <- c("Accuracy","","Kappa"," ") xtable(tab, label = "tab:class", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for classification (10 replications)") @ \noindent Finally, we compare the performance of the two methods by computing the respective accuracy rates and the kappa indices (as computed by \texttt{classAgreement()} also contained in package \pkg{e1071}). In Table \ref{tab:class}, we summarize the results of \Sexpr{reps} replications---Support Vector Machines show worse results. \subsection*{Non-linear $\epsilon$-Regression} The regression capabilities of SVMs are demonstrated on the ozone data. Again, we split the data into a train and test set. <<>>= library(e1071) library(randomForest) data(Ozone, package="mlbench") ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sqrt(crossprod(svm.pred - testset[,3]) / N) ## random Forest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) sqrt(crossprod(rf.pred - testset[,3]) / N) @ <>= rf.res <- c() sv.res <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sv.res[i] <- sqrt(crossprod(svm.pred - testset[,3]) / N) ## randomForest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) rf.res[i] <- sqrt(crossprod(rf.pred - testset[,3]) / N) } xtable(rbind(svm = summary(sv.res), randomForest = summary(rf.res)), label = "tab:reg", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for regression (Root Mean Squared Error, 10 replications)") @ \noindent We compare the two methods by the root mean squared error (RMSE)---see Table \ref{tab:reg} for a summary of \Sexpr{reps} replications. In this case, \texttt{svm()} does a better job than \texttt{randomForest()}. \section*{Elements of the \texttt{svm} object} The function \texttt{svm()} returns an object of class ``\texttt{svm}'', which partly includes the following components: \begin{description} \item[\textbf{\texttt{SV}:}] matrix of support vectors found; \item[\textbf{\texttt{labels}:}] their labels in classification mode; \item[\textbf{\texttt{index}:}] index of the support vectors in the input data (could be used e.g., for their visualization as part of the data set). \end{description} If the cross-classification feature is enabled, the \texttt{svm} object will contain some additional information described below. \section*{Other main features} \begin{description} \item[Class Weighting:] if one wishes to weight the classes differently (e.g., in case of asymmetric class sizes to avoid possibly overproportional influence of bigger classes on the margin), weights may be specified in a vector with named components. In case of two classes A and B, we could use something like: \texttt{m <- svm(x, y, class.weights = c(A = 0.3, B = 0.7))} \item[Cross-classification:] to assess the quality of the training result, we can perform a $k$-fold cross-classification on the training data by setting the parameter \texttt{cross} to $k$ (default: 0). The \texttt{svm} object will then contain some additional values, depending on whether classification or regression is performed. Values for classification: \begin{description} \item[\texttt{accuracies}:] vector of accuracy values for each of the $k$ predictions \item[\texttt{tot.accuracy}:] total accuracy \end{description} Values for regression: \begin{description} \item[\texttt{MSE}:] vector of mean squared errors for each of the $k$ predictions \item[\texttt{tot.MSE}:] total mean squared error \item[\texttt{scorrcoef}:] Squared correlation coefficient (of the predicted and the true values of the dependent variable) \end{description} \end{description} \section*{Tips on practical use} \begin{itemize} \item Note that SVMs may be very sensitive to the proper choice of parameters, so allways check a range of parameter combinations, at least on a reasonable subset of your data. \item For classification tasks, you will most likely use $C$-classification with the RBF kernel (default), because of its good general performance and the few number of parameters (only two: $C$ and $\gamma$). The authors of \pkg{libsvm} suggest to try small and large values for $C$---like 1 to 1000---first, then to decide which are better for the data by cross validation, and finally to try several $\gamma$'s for the better $C$'s. \item However, better results are obtained by using a grid search over all parameters. For this, we recommend to use the \texttt{tune.svm()} function in \pkg{e1071}. \item Be careful with large datasets as training times may increase rather fast. \item Scaling of the data usually drastically improves the results. Therefore, \texttt{svm()} scales the data by default. \end{itemize} \section*{Model Formulations and Kernels} Dual representation of models implemented: \begin{itemize} \item $C$-classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha-\mathbf{e}^\top\alpha \nonumber\\ \mbox{s.t.} &&0\le\alpha_i\le C,~i=1,\ldots,l,\\ &&\mathbf{y}^\top\alpha=0~, \nonumber \end{eqnarray} where $\mathbf{e}$ is the unity vector, $C$ is the upper bound, $\mathbf{Q}$ is an $l$ by $l$ positive semidefinite matrix, $Q_{ij} \equiv y_i y_j K(x_i, x_j)$, and $K(x_i, x_j) \equiv \phi(x_i)^\top\phi(x_j)$ is the kernel. \item $\nu$-classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha \nonumber\\ \mbox{s.t.}&&0\le\alpha_i\le 1/l,~i=1,\ldots,l,\\ &&\mathbf{e}^\top \alpha \ge \nu, \nonumber\\ &&\mathbf{y}^\top\alpha=0~. \nonumber \end{eqnarray} where $\nu \in (0,1]$. \item one-class classification:\\ \begin{eqnarray} \min_\alpha&&\frac{1}{2}\alpha^\top \mathbf{Q} \alpha \nonumber\\ \mbox{s.t.} &&0\le\alpha_i\le 1/(\nu l),~i=1,\ldots,l,\\ &&\mathbf{e}^\top\alpha=1~,\nonumber \end{eqnarray} \item $\epsilon$-regression:\\ \begin{eqnarray} \min_{\alpha, \alpha^*}&&\frac{1}{2}(\alpha-\alpha^*)^\top \mathbf{Q} (\alpha-\alpha^*) + \nonumber\\ &&\epsilon\sum_{i=1}^{l}(\alpha_i+\alpha_i^*) + \sum_{i=1}^{l}y_i(\alpha_i-\alpha_i^*) \nonumber\\ \mbox{s.t.} &&0\le\alpha_i, \alpha_i^*\le C,~i=1,\ldots,l,\\ &&\sum_{i=1}^{l}(\alpha_i-\alpha_i^*)=0~.\nonumber \end{eqnarray} \item $\nu$-regression:\\ \begin{eqnarray} \min_{\alpha, \alpha^*}&&\frac{1}{2}(\alpha-\alpha^*)^\top \mathbf{Q} (\alpha-\alpha^*) + \mathbf{z}^\top(\alpha_i-\alpha_i^*) \nonumber\\ \mbox{s.t.} &&0\le\alpha_i, \alpha_i^*\le C,~i=1,\ldots,l,\\ &&\mathbf{e}^\top(\alpha-\alpha^*)=0\nonumber\\ &&\mathbf{e}^\top(\alpha+\alpha^*)=C\nu~.\nonumber \end{eqnarray} \end{itemize} \noindent Available kernels:\\ \\ \noindent \begin{table}[h] \centering \begin{tabular}{|l|l|l|} \hline kernel & formula & parameters \\ \hline \hline linear & $\bf u^\top v$& (none) \\ polynomial & $(\gamma \mathbf{u^\top v}+c_0)^d$ & $\gamma, d, c_0$\\ radial basis fct. & $\exp\{-\gamma|\mathbf{u-v}|^2\}$&$\gamma$\\ sigmoid & $\tanh\{\gamma \mathbf{u^\top v}+c_0\}$ &$\gamma, c_0$\\ \hline \end{tabular} \end{table} \section*{Conclusion} We hope that \texttt{svm} provides an easy-to-use interface to the world of SVMs, which nowadays have become a popular technique in flexible modelling. There are some drawbacks, though: SVMs scale rather badly with the data size due to the quadratic optimization algorithm and the kernel transformation. Furthermore, the correct choice of kernel parameters is crucial for obtaining good results, which practically means that an extensive search must be conducted on the parameter space before results can be trusted, and this often complicates the task (the authors of \texttt{libsvm} currently conduct some work on methods of efficient automatic parameter selection). Finally, the current implementation is optimized for the radial basis function kernel only, which clearly might be suboptimal for your data. \begin{thebibliography}{5} \bibitem[Bennett \& Campbell(2000)]{svm:bennett+campbell:2000} Bennett, K.~P. \& Campbell, C. (2000). \newblock Support vector machines: Hype or hallelujah? \newblock \emph{SIGKDD Explorations}, \textbf{2}(2). \newblock \url{http://www.acm.org/sigs/sigkdd/explorations/issue2-2/bennett.pdf}. \bibitem[Chang \& Lin(2001)]{svm:chang+lin:2001} Chang, C.-C. \& Lin, C.-J. (2001). \newblock {LIBSVM}: a library for support vector machines. \newblock Software available at \url{http://www.csie.ntu.edu.tw/~cjlin/libsvm}, detailed documentation (algorithms, formulae, \dots) can be found in \url{http://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.ps.gz} \bibitem[Cortes \& Vapnik(1995)]{svm:cortes+vapnik:1995} Cortes, C. \& Vapnik, V. (1995). \newblock Support-vector network. \newblock \emph{Machine Learning}, \textbf{20}, 1--25. \bibitem[Sch\"olkopf et~al.(2000)Sch\"olkopf, Smola, Williamson, \& Bartlett]{svm:scholkopf+smola+williamson:2000} Sch\"olkopf, B., Smola, A., Williamson, R.~C., \& Bartlett, P. (2000). \newblock New support vector algorithms. \newblock \emph{Neural Computation}, \textbf{12}, 1207--1245. \bibitem[Vapnik(1998)]{svm:vapnik:1998} Vapnik, V. (1998). \newblock \emph{Statistical learning theory}. \newblock New York: Wiley. \end{thebibliography} \end{document} e1071/inst/doc/svminternals.Rnw0000644000175100001440000001615114623564771016007 0ustar hornikusers\documentclass[a4paper]{article} \usepackage{hyperref, graphicx, color, alltt,a4wide} \usepackage{Sweave} \newcommand{\pkg}[1]{\texttt{#1}} \definecolor{Red}{rgb}{0.7,0,0} \definecolor{Blue}{rgb}{0,0,0.8} \definecolor{hellgrau}{rgb}{0.55,0.55,0.55} \newenvironment{smallexample}{\begin{alltt}\small}{\end{alltt}} \begin{document} \SweaveOpts{concordance=TRUE} %\VignetteIndexEntry{svm() internals} %\VignetteDepends{xtable} %\VignetteKeywords{classification, regression, machine learning, benchmarking, support vector machines} %\VignettePackage{e1071} \SweaveOpts{engine=R,eps=FALSE} \setkeys{Gin}{width=0.8\textwidth} \title{\texttt{svm()} internals\\ \large Some technical notes about the \texttt{svm()} in package \pkg{e1071}} \author{by David Meyer\\ FH Technikum Wien, Austria\\ \url{David.Meyer@R-Project.org} } \maketitle \sloppy This document explains how to use the parameters in an object returned by \texttt{svm()} for own prediction functions. \section{Binary Classifier} For class prediction in the binary case, the class of a new data vector $n$ is usually given by \emph{the sign} of \begin{equation} \sum_i{a_i y_i K(x_i, n)} + \rho \end{equation} \noindent where $x_i$ is the $i$-th support vector, $y_i$ the corresponding label, $a_i$ the corresponding coefficiant, and $K$ is the kernel (for example the linear one, i.e. $K(u,v) = u ^{\top} v$). Now, the \texttt{libsvm} library interfaced by the \texttt{svm()} function actually returns $a_i y_i$ as $i$-th coefficiant and the \emph{negative} $\rho$, so in fact uses the formula: \[ \sum_i{\mathrm{coef}_i K(x_i, n)} - \rho \] \noindent where the training examples (=training data) are labeled \{1,-1\} (!). A simplified \textsf{R} function for prediction with linear kernel would be: \begin{smallexample} svmpred <- function (m, newdata, K=crossprod) \{ ## this guy does the computation: pred.one <- function (x) sign(sum(sapply(1:m$tot.nSV, function (j) K(m$SV[j,], x) * m$coefs[j] ) ) - m$rho ) ## this is just for convenience: if (is.vector(newdata)) newdata <- t(as.matrix(x)) sapply (1:nrow(newdata), function (i) pred.one(newdata[i,])) \} \end{smallexample} \noindent where \texttt{pred.one()} does the actual prediction for one new data vector, the remainder is just a convenience for prediction of multiple new examples. It is easy to extend this to other kernels, just replace \texttt{K()} with the appropriate function (see the help page for the formulas used) and supply the additional constants. As we will see in the next section, the multi-class prediction is more complicated, because the coefficiants of the diverse binary SVMs are stored in a compressed format. \section{Multiclass-classifier} To handle $k$ classes, $k>2$, \texttt{svm()} trains all binary subclassifiers (one-against-one-method) and then uses a voting mechanism to determine the actual class. Now, this means $k(k-1)/2$ classifiers, hence in principle $k(k-1)/2$ sets of SVs, coefficiants and rhos. These are stored in a compressed format: \begin{enumerate} \item Only one SV is stored in case it were used by several classifiers. The \texttt{model\$SV-matrix} is ordered by classes, and you find the starting indices by using \texttt{nSV} (number of SVs): \begin{smallexample} start <- c(1, cumsum(model$nSV)) start <- start[-length(start)] \end{smallexample} \texttt{sum(nSV)} equals the total number of (distinct) SVs. \item The coefficients of the SVs are stored in the \texttt{model\$coefs}-matrix, grouped by classes. Because the separating hyperplanes found by the SVM algorithm has SVs on both sides, you will have two sets of coefficients per binary classifier, and e.g., for 3 classes, you could build a \emph{block}-matrix like this for the classifiers $(i, j)$ ($i$,$j$=class numbers): \begin{table}[h] \center \begin{tabular}{|c|c|c|c|} \hline i $\backslash$ j & 0 & 1 & 2 \\\hline 0 & X & set (0, 1)& set (0, 2)\\\hline 1 & set (1, 0) & X & set (1, 2)\\\hline 2 & set (2, 0) & set (2, 1) & X\\\hline \end{tabular} \end{table} \noindent where set(i, j) are the coefficients for the classifier (i,j), lying on the side of class j. Because there are no entries for (i, i), we can save the diagonal and shift up the lower triangular matrix to get \begin{table}[h] \center \begin{tabular}{|c|c|c|c|} \hline i $\backslash$ j & 0 & 1 & 2 \\\hline 0 & set (1,0) & set (0,1) & set (0,2) \\\hline 1 & set (2,0) & set (2,1) & set (1,2) \\\hline \end{tabular} \end{table} \noindent Each set (., j) has length \texttt{nSV[j]}, so of course, there will be some filling 0s in some sets. \texttt{model\$coefs} is the \emph{transposed} of such a matrix, therefore for a data set with, say, 6 classes, you get 6-1=5 columns. The coefficients of (i, j) start at \texttt{model\$coefs[start[i],j]} and those of (j, i) at \texttt{model\$coefs[start[j],i-1]}. \item The $k(k-1)/2$ rhos are just linearly stored in the vector \texttt{model\$rho}. \end{enumerate} \newpage \noindent The following code shows how to use this for prediction: \begin{smallexample} ## Linear Kernel function K <- function(i,j) crossprod(i,j) predsvm <- function(object, newdata) \{ ## compute start-index start <- c(1, cumsum(object$nSV)+1) start <- start[-length(start)] ## compute kernel values kernel <- sapply (1:object$tot.nSV, function (x) K(object$SV[x,], newdata)) ## compute raw prediction for classifier (i,j) predone <- function (i,j) \{ ## ranges for class i and j: ri <- start[i] : (start[i] + object$nSV[i] - 1) rj <- start[j] : (start[j] + object$nSV[j] - 1) ## coefs for (i,j): coef1 <- object$coefs[ri, j-1] coef2 <- object$coefs[rj, i] ## return raw values: crossprod(coef1, kernel[ri]) + crossprod(coef2, kernel[rj]) \} ## compute votes for all classifiers votes <- rep(0,object$nclasses) c <- 0 # rho counter for (i in 1 : (object$nclasses - 1)) for (j in (i + 1) : object$nclasses) if (predone(i,j) > object$rho[c <- c + 1]) votes[i] <- votes[i] + 1 else votes[j] <- votes[j] + 1 ## return winner (index with max. votes) object$levels[which(votes %in% max(votes))[1]] \} \end{smallexample} In case data were scaled prior fitting the model (note that this is the default for \texttt{svm()}, the new data needs to be scaled as well before applying the predition functions, for example using the following code snipped (object is an object returned by \texttt{svm()}, \texttt{newdata} a data frame): \begin{smallexample} if (any(object$scaled)) newdata[,object$scaled] <- scale(newdata[,object$scaled, drop = FALSE], center = object$x.scale$"scaled:center", scale = object$x.scale$"scaled:scale" ) \end{smallexample} \noindent For regression, the response needs to be scaled as well before training, and the predictions need to be scaled back accordingly. \end{document} e1071/inst/doc/svmdoc.R0000644000175100001440000001052314671766071014205 0ustar hornikusers### R code from vignette source 'svmdoc.Rnw' ################################################### ### code chunk number 1: svmdoc.Rnw:140-150 ################################################### library(e1071) library(randomForest) data(Glass, package="mlbench") ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- Glass[testindex,] trainset <- Glass[-testindex,] ################################################### ### code chunk number 2: svmdoc.Rnw:155-158 ################################################### ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 100, gamma = 1) svm.pred <- predict(svm.model, testset[,-10]) ################################################### ### code chunk number 3: svmdoc.Rnw:163-166 ################################################### ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) ################################################### ### code chunk number 4: svmdoc.Rnw:169-174 ################################################### ## compute svm confusion matrix table(pred = svm.pred, true = testset[,10]) ## compute randomForest confusion matrix table(pred = rf.pred, true = testset[,10]) ################################################### ### code chunk number 5: svmdoc.Rnw:179-215 ################################################### library(xtable) rf.acc <- c() sv.acc <- c() rf.kap <- c() sv.kap <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Glass) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Glass[testindex,]) trainset <- na.omit(Glass[-testindex,]) ## svm svm.model <- svm(Type ~ ., data = trainset, cost = 8, gamma = 0.0625) svm.pred <- predict(svm.model, testset[,-10]) tab <- classAgreement(table(svm.pred, testset[,10])) sv.acc[i] <- tab$diag sv.kap[i] <- tab$kappa ## randomForest rf.model <- randomForest(Type ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-10]) tab <- classAgreement(table(rf.pred, testset[,10])) rf.acc[i] <- tab$diag rf.kap[i] <- tab$kappa } x <- rbind(summary(sv.acc), summary(rf.acc), summary(sv.kap), summary(rf.kap)) rownames <- c() tab <- cbind(rep(c("svm","randomForest"),2), round(x,2)) colnames(tab)[1] <- "method" rownames(tab) <- c("Accuracy","","Kappa"," ") xtable(tab, label = "tab:class", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for classification (10 replications)") ################################################### ### code chunk number 6: svmdoc.Rnw:228-248 ################################################### library(e1071) library(randomForest) data(Ozone, package="mlbench") ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sqrt(crossprod(svm.pred - testset[,3]) / N) ## random Forest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) sqrt(crossprod(rf.pred - testset[,3]) / N) ################################################### ### code chunk number 7: svmdoc.Rnw:251-275 ################################################### rf.res <- c() sv.res <- c() reps <- 10 for (i in 1:reps) { ## split data into a train and test set index <- 1:nrow(Ozone) N <- trunc(length(index)/3) testindex <- sample(index, N) testset <- na.omit(Ozone[testindex,-3]) trainset <- na.omit(Ozone[-testindex,-3]) ## svm svm.model <- svm(V4 ~ ., data = trainset, cost = 1000, gamma = 0.0001) svm.pred <- predict(svm.model, testset[,-3]) sv.res[i] <- sqrt(crossprod(svm.pred - testset[,3]) / N) ## randomForest rf.model <- randomForest(V4 ~ ., data = trainset) rf.pred <- predict(rf.model, testset[,-3]) rf.res[i] <- sqrt(crossprod(rf.pred - testset[,3]) / N) } xtable(rbind(svm = summary(sv.res), randomForest = summary(rf.res)), label = "tab:reg", caption = "Performance of \\texttt{svm()} and\ \\texttt{randomForest()} for regression (Root Mean Squared Error, 10 replications)") e1071/inst/doc/svmdoc.pdf0000644000175100001440000062711014671766074014566 0ustar hornikusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 5965 /Filter /FlateDecode /N 81 /First 689 >> stream xœí\[“ãD–~ß_¡·˜@—¼Hʉ b¡{˜! gÙ‚™]‚Seº Õv…í¢aö·ï÷e*O¦lYåº4ìl®Péš:yò\¾sò¤TQº°Ma eLa mê¢-¬í‹®hê^}Ñ(×®PªiqªPΩ¢Áº³¸V˜¾Ã­h¤îqŒ6”Ã}¶°.âëzwEkl]4}Ñ:‹cWtFµ…ª‹®ÕxySôFãªèî ¥ ‡@Táz4¢lá\« Eƒ$O9ÜkÚ•ÃŽmh¦©;ÓºazH‚kí ­±Óô=º‰ ‚4hn¬é –›ÎêB£eeAÈh4ÞZàÁÆô ¼ÁN×h¼± 4hÙêÖ€ر`(ÁŽë PßØÎºÂŽLû#Á_)û9#ÙØG–쀦/û“ýáÈÒ‹Dq†Èö­±³Ið!n}|p/‚O5p"øuGß$G?—Ÿ~+ >W|¼Ï%ÁÇœÐB)tB UÄ -T—”Þ¡Z€Ti¡Ó¯#)†÷EJàÊT c‚ߌt«‘ ïQ#ô}u$‚Þ®Ž4ÐÑ5‘ú¸&R@?×D èКHAÏ+‘‚ž'RÐó¶HãA¤ÀÑyG ¸;Ͷ9Ms¤çÀk=Ýòc„“<ž‘N †éT]õÙ jÚÔÿŽž…Ê’Y­.ÛxZÃU ·õ®ÔÙSÖàJW¡©§Zö¯ô7‡Óžr‘<n Þ6þý}#÷Ê5,P;üž?;<0<9§œ€Y™r*%ŠT‹‰"ÕÄa¢H5ÁXRjH‰JJM`ž‰m&E"¬KŠd‰ä2•S:y3îr%Ó¢J|,’Bà°×8 ¡ÆéHªU:RA½2¢JD€‘b>I Ü3‘ꈉPGL¤€:bÚ itÄŽt¤†Žbm`áw¡#¦›Ñ‰ ›z´/=><:9=oxJFLmê)Ú&.5qxeVLr= Q¿è'×£‰ÿå’d“Æ@ÈlÒƈIc:† ¹ÆØ‘ÆØ¤1 5’Æ0ÞHZÚ¤1Œ>“Æ€–6¹AÐÒ&7ZÚäAK›Ü hi“- ‹Â²ª„E©… ‹*Z'¡…ñ¯‚ö‰úÛ"!ŠW"0 J`(#lA¡PN%(Ê©…B9• Pè£J×Û‹f.~´õb<ðž^ŒÞ#Ø„NY  C\A&tÊLØ .ap+°„® F²JèÈ“0HÂ`V ½ºzuÁ# ZŽ0^46i#`“,‚.kÁ"è²,‚^jÁ"Ž ˆùb‚àU,2¶eG¸£ŸÛ²Œwø à„1S™1S“ÆlŽêŠN9ü.l¢aé“w†ß4ÀÈåÄoMIgBß®àgý&?ÀЭ¦M=:%Gá1-oÓÎ[£–-[zð6C Ãy<ª<í°X®èHêp~è?S§Û'À…§„÷é¶tÙž²ì½\ äùsºìÃaKýÕtŸ¿ vXnúÀ˜t´øÿá®v&¶¡aÕuŽéµ€XšDÝä˜^7¹1ÓM2f¼ST˜âÿù”¨0Ê€¬€ì8¬R‡²ŒG²ÜàÏÑ[Ûþq²Œ×ÎÉò€¨O„Vœ& NÝñáóý¤áì ãs§(ñ;'#Z Ê€ÐǬ×G¬w#ÖsTá0ô4ß;Õßãþ(¢u³l¨w’íššpRŠ0õ“Çv±>ìo÷È2« Tú(Ibks]Òs’4Š>^ì–ᆿþýÏÿéß~ÿâÕ«O¡‹Ùèw¦ ¾\†,áf[DÅ›A¡Í˜Ä¹õ³€NÆÕi|>Ú]2ïØ“T/·Y®^_ÇCð™™Æ÷ªÕgÕ¿W‹›ÛëEuY]nÞ¼YTWÕòv·ºÙ¬›êõ‚'VÕÕMµ¾«n—ÛÕæªº½^U»›Åîºú©úùý¢âhòUãVŸÜ,^3m}™àZß;OÀ ¹Ÿ¬n–ô‘ àÔ_o–Gõé~q³ºühýúf‰;«W«ÝâåÇܳ¿úr¿|ówȶΥ"“±W’ÅœtM9‚Ö*GÐZåZg1'žËbN¨¦Äœ-²€OKÈI\4„œcƒÖªL{€‹:²Ò+ ðØT¾³×m4²?v&ó& ¿“úåtùX• ¿Öú<‰í};ÖIÖ^?µì³#þVIŸx(sO†QÒ)ÈqIñœ·ÎsàZv?º&Ïk“`@¯ÉsàÚ¤Ã+Q»åô[&@rm7ð`7´GÎËŽqaCWàqë æGÚÌÁÕNŒtëŽNÿÜ‹ÆÑã¼Á’Æ÷ ;ˆšLÇĹ£™ÓÄ̺›s§ùQ|­³øc–Å×P¼_SR|M9Hñ5å Å×”ƒ,¾f›É:@²øš³®I¶ˆg#-” ¯iÚ‰,}l)‰…Oy| ¼\ "y´\ÌÃÉvÎÃåGQ÷!o8ú‡8 ÊLÛ…¨¡ ħ¨? ‚€ùçf¦1t;a#Û#Lc hâ°ÌwT]Ë|ìŸ?¡Û9󨙱ËélŽŽU²Oìl k(õIž!{ÝHžÓíZš££tgstÌë&yÆûº$Ïx_—ä™oHòÌ7$yæ0ä¹O¶’Iã”a¥ -ðPZ²$¯<‹7JŽ•÷I¢„Hš¶UKšÄ°b!’ÁÊI“0|“4 #I“°BÒ$°ZÒ$– H”Dz -iÚq—eyMJ“_Ê„  —¤I:VTD 0FÒ$,±4 Øf$MÒó6™2…rÈ” K.$Üu¬Ñˆ€.ÓLM™§‰ë ·‚NÛÉ ÓÆÖ dÿ™cîS™6l¶q!1bÞ¶4÷› óÐß<¿* Šš!øÊÿ¨ÏN^¨ñÍ*†çFÆ¿@³ºa[²§¥«B—ßñÙ™p¯ÜÁÈIz¸ ðl*Pà÷¦™±#†?5½{lÇÁpë™ÁòŠGÙÅÙ`Ø4sNã^»hš”×fÚ(¡rhS“l&SOy]ƒi’Í„ÚÄYò‰|ÀÞyÍ•‰ÑÝ“k®"”PÍÕss²!ưò2ë?NɳÕO^ÉeDe45ºÏROÓ—„è€(X±ÒѲ¶ ™ˆž“ ×@öêG}‡2gº¾¤=”9ík8ççDxdJšG][Oã¯B`YÉÂS! NÛ~þ2D)U2]u@”Òªì§epÓÄ5‚îÎ×›ÂrüJDé¦.{_¨1E"9sût¢åEË lH× iZŸ=ÌÔv>ÄIÖZ.žâ|{_ü÷[åTŒ)Ÿ¹rŠÁ§påt锢.‰Ÿ®–:³@Šë„ò‚Êsª¥N—A*ŸN;åULï¬p)öþÝ.qÈf­Ë\~\¸”)·Ô-(^ªGEKõaÅÒA½’”)e¶é V‰¿¡Âh\¥”~ݘ”‚ʤslïÿ¿Ÿ™¯Ï¿Ç64zd³Í3xùÜÍF²ü`z²¶ž·ã`æVúq³x”3¡&5wÐÜæÈGL;ÁŽXöždä þ6Kðgs‚ì³ Ÿ„íQÀ¡ zúá|®7:ž¹Þ°†î1?å&-×C~Ã2 ‘Ûvh±mN4í±ŽŸˆÌ'3ýT¦ßóׇ™Íp‰ESó›¡‘ƒ)ΚÓÙ$g*›úËòæÇå~u¹˜(wJŒ=¥qÏQøxª¢1Êc6ýËV4šˆfNW4ކð†NrhkF1‡é„"Àt14&P7a ÐdÉ €w›y9ETÔÏ÷H”ëJBß5ޤ ¸´ÄÅ´^1þ%àŠ±êkhc¨zÁÚ!6=Jœ„¾˜‰do±ONœD$ùÎ'«Ë]yw¹bÞ¤zs³\l×Õ«Ï/–·›Ýj¿Ùþ\^ïßÜ<$g‚€¼ä:z&®|*6dØú–\)^jêW¤¿Øêý|‚CË•…eÛ²?}Ùš3¥îžb=Øå¬ìaTºGà0.‚8YÈÃHŒ ù ²R.Ñò@Ü7ß-hœ,ä‹Y!ßAÏ3òÍ.\6Ý\y×=•¯®›IAÄ_^ÄgêØKß°“Jùü#š †0ëÞÍVHÿ–£Ç%˜ “ºƒ<@íkF†‘äѪ§çÎ ý¹UæÄG«¦`ü¤5ŒŽ‘ÖN/¡zæUSü®‰Ü6ZBEÚä™3×S‘×¹‘Z§3xØH·{ç+¾Sñ°TFw”ÊPÍ/›Êp³(ï8¿²îh h€ölöbb½Õô~Zu›?gÉ•Ö\yRŽ–]Ù` ƒ4‡)Ž>äe'Ò¿%:~ß=‰."IÞe¼M L¢W2é«L{¤¯Fo°kéL‚¸ËœìHK˽’Mß—à÷«ê䕯!ĵNmv8š釬"ú!+ö†žÇŠÁa ‘•rF‰RÎȪ<á˜ÁË„ –Õx‘F'JG9Q#ôf!«·lv o ¾ŽWäÙgŽ_çˤl,g»gEÞÔr9Äç^£wðÚ'oÎjñx%àãŠøç҆ϓ(|djzÊá.­”+òf"«-EZJ‰Ý°¾Ë#„†@ñ.F*;–I)1TGêGÉE@ +5‹£LãY "š<ª<9Ÿ8?ajc\7=aêàÙZúVxÑa5µOÓyßKoeœ˜Ïû’|’ú;¡'2ä¿útºïx9CZ°Œ†ôIA7¤X¬#%A¾ À䉯ãÄhöä ã§ÎhsÝÞÌøÄRÖikÆP1mÎ/‘Ì‹Ë7¬¬v«×;n~¸ºª–?ÝÞl¶þ£v»jµÛÝ-Õªúv¹^/÷ûòöê»eTjà#†ûbÂ@"-Ö­ÿÿì)•wÞ£†å—¬Ëëæ|dʤËÑê3“,ÏPt³úv÷ã›Uµö®ìTçÓYŽUÏ1½%oÎ-¼ú5–CÇù¿Uà¢Sv¤kάc{¾‚¬ÐGTd±˜²Ù¹š¥‚N0[@ãwnNØÖ…³€æä€8X¨cñÀÒ;æÍ7órõÝwËírÍtí×¾”}6~}ŠÇ\üF?ïå]Xá.$¨ B€Rp@ ]~püt÷Áégœ|pî~öËÃ]¿ÒŃ[÷<°•MŠužìË!Ù$÷èH,¿]èì Xå~RF?“$¿ößzàÌø 6¦zèla㢗 iË;°imȵ´}@:]’* ùkøåF—^˜âó}²‘_á tˆ®Ž‡šÑRˆ™žÆAP„QÞñE6Ìu=d ¢è†DFÞä2tüÚ$æ÷÷ýLBX7çkûìÇ „Å‘ôÐÓïùÔÖñÞ'õc–ý"#ž÷›®ðúí³¦…¯Žò½Õ¤'lHWÏ1ûiذ1aiϱrðž°1\hà“•žo¾°©ål¢Îø¼¤çC­éøl:^›çcâl§BÁZ%šŒÊ§·ç‡#ØÍ…a öó\‹cOqÖò$6-ßXšhTê ƒ=éÄfžSÒxè6¢7¦e1)÷Ó$1öüÐHžܤ[÷[ǧ lr‡gö+š-?>>Öíø&~›o¡'àÂfJªÏñã~>ÅŽDQ{®¨’ofF²Yè!ç.­?ZïVéÄ,R~……õëá³+ü2Ž|‰…‹Ù«õÓÌüüŠ·Äák,Eøj ¿ >Êr¶qç+9D†ù +wÛŒ^´|˜5z"ð–/*«Ÿ³Iæï|Ëç¥ÄÛ¾I99ÐõcSè!EïÝ’û?mý ‰Ÿ;W즌bB#sáɸĵ9Û É™Þg§ì‚[„`¡0Lçöi^/|ärÐiÿå ´œʨ#CÜ?ˆý î½)žÁï?Öh&©y¢¯º??ª"Ä'ÆÓŽH{.Ëý$©ƒ*@ä¨[aDÎð‡#íÉÙâ:»9È E—æ({ ÈbÆ'#½˜úpsœÖ·¨ÇŒz×ݽ?DÊ;{vFãš"F}endstream endobj 83 0 obj << /Subtype /XML /Type /Metadata /Length 1387 >> stream GPL Ghostscript 9.55.0 2024-09-16T10:28:43+02:00 2024-09-16T10:28:43+02:00 LaTeX with hyperref endstream endobj 84 0 obj << /Type /ObjStm /Length 5420 /Filter /FlateDecode /N 81 /First 773 >> stream xœí\[“·±~?¿bO*er €™*—«¤•”ãŠu²^Ù‰åTè-ñxÅÝ,©;¿>_7·¹qÈ¥ÖªÄÅÚÙÁ\piôåëFcj]”EmŠªÖEm aš¦¨ëBJQuSÈÆŠ¢) ¥K[4¢¨L¥‹F•­dÑ(¼ÖÔESFTeÑèÂJ])êÒàºEÍ%®×¨ÚàyTÝX]º&d…T.ºBµi‰EhY”¸/*Yâ ÈšÏL!T%èMôUKÏÕ…¨DM• T)…3g«JÒ™À™FãBàOã>Îðg”¤k¨É– µ„g­©é.Ú°5uJ Zb`B Z+Üh£®k¼Aýi¸%‰6ꪳ1T—DMMmèZUȲ ú#ËÊЙÁ™­P—´8kh TÇ é]ÐÓKÌ„•„8S ºPgdJáŒ& 4ÁYC=Âè¥b*¢·R)Iwцª0«B¡ eˆ& m¨ý ‰“zMTÄ™ÆÓ ;ÎjÌ/ÑKV¥»hCóøÑG©Ê¢BÚj¢6ÚÐ Q¢BSˆ3´a0I ;Ú0<[m˜†f³-mIýÓhÂF8«è¬¡3´a¢»hÂp†6ja©>´Qs4Ú¨+¢žµ¦Õ%^ k’ΈVmÔ–èbÐ&ý3hükÿëóÏ‹åÅ»Õýåýíõ® ÒŠXSeqÅ%°::ãK÷j_ (Ñ—ðéKJ*”ð:íJè3õÛ0 bRá‹/Šåóíõí›Íö-Ó•Ÿx±¹ßí©ÞY¾¸ÝîŸ>½ý¹øk!ŠÏÀ§5PâoîÎËÕþ~C÷ÊE 6¥ËìÏ}µj«£N-_}øaÿËݺX~ƒ£Â¿Ûo·ta]hÕŽå¾OÕË¿lÞìßíЀ‹ÚÕ>ð“f¡Go>äW)nµ²ü/k¬Ô^Ƥ4 U(»°ï_ O2ñ~˜È’ø?N2xG‡i€ûC‰dA&ìy%’JàTmB©!yIGêÈF‚$(”$IQÂFÒ„ö0c«P‚|˜*”к ­ ’Åк y ­K"]h]²\†Ëf["Åd}•¤7¬¯ƒT‡õUö°¾Rµ'é‹Ú÷žTFí;î®­HqÔA:H®ƒtL¬¯€d¿ñ}#ño|;$ϯÖ¯ £–¯ ƒÖÊ?†QÊÆSÈ*¶ƒm*ðãÁUéÅXH›¶ðXéû†î«ÒWš %}ÁàN(X2œm¡¡ª}£0ªôÝA몴CJAt•æ(U ŸUÅg˜Qô \s’VLj=¡*³ÃAᆒ$–t—$ )ŸUÂ¥ÿשƒñš¡Út ¹‡Èµ ñèj!h5ƒX4…M{f5HWL[jÝv­£t¸Sô´2¨)žIöâݶk¬£øÜ4èߊ•DM‡Ú‘ÂÝWnüŸÜÀ¸ö"bFݨX¢Ú£ùª ±%ZH«T )µ„i‹z‡ ]Ðz’ô«ÒP%ž‡I"‚" ¾ö¸»‚œ‡½’Š<Œ3¶àaÍè b5ÀÄeÍÃ-³óœ‰ËI&®¦L[mÙÀýoch†1:˜FÝði{Ey{Å'D~ëXÆz¦fV õ4‹jÒ€UM4D`ˆ20°U'S)¢9o‰hΠhD4/Tgj–ª&5K:èA2KºŒX‡ZHÍ’.cÔ^è ¦TWÁ ¬ƒ@w‚  —‚u >zöÖÔ”ç`KøÇÀ*º ¨(ôˆT«ðÈ´bKÏß Þ*s¶$ÀÕ ƒ!:MµŠi®´\ ­`Ü¡ˆzW{  ¨©&oÇ;‡²óïð£ï¶'ãLO &¢6˜óˆÚÀ¼:¢60¯Ö)ƒêˆÚˆAjƒ$—* P ñN,²ÖCYõ`zÇ" g«Â–ƒ\S&\SÂt3É5Gr ìšœä…cu™h¨ã°ÍlÛ›Ì{P¢Õí ÷Z{&¬Èžà šû¨þ0÷A—TUTx°•OƒÜ:âi⮈§¿´IѼ6)š×&µ£Ú¤jS›Lm<ÍjÓf\i3®´Q‰¢õh·¡½´Ø­ÛвÍ6b{´n#¶§:}_`Œuí»¢H‹˜Ž*"LG ¦Ó;‰ßªH†ªÕµï4—®ƒo€Î ùÔðšµ&ÖÁš2œÍÓ;A>AÍ€æIûGO»@µP‚!3Öäó=@&1¼l‚ÕjóÑ 0d1<Ô‰¢gC²Å aŸj1&eß”“`¼gò+£ú¹«“»êy@›ˆ «2v¿ÛèÜÃÌá̪)i>hœ+ŠFys¥à“zI@A^®(rä%©¶ÃqÕ¶PspÕñ7ðd»½ÝÓ´µ¼ 6¸À|®·¸h¼cørýf³r¼ÅÚ´Ñ X›îEÍ1 ËÕ=^(|7×»Û÷×k§%™;„g~Òž¯Ö{T´¼|ö´þyÏ£õÌt¹z»þ-xR< xB…eÄHÊÃ'ãñ …¬œO(t õ‹F­\…v4­øv84yŠÉ¢/aª:ÜÉÂ*¶ÐšTt(ŒÇXÒ°Ê ‘ïÁ&¸M>j$Å”SÀ­N]ÐѰJ9S)»Q•‡N€¥$ø-‰­˜Šõeˆ­hòkÛ‹>¼Ò© SùŸ``å7 9 $%¨øŸ$SìÅlBè伨±m8?vœV?b*ö«bÇ9pòŽ]Ô¹ñºÇŽÐAæÊx/ס£0fGÈŒHP‡ М:E8Fõ€:L¨¨Ã„ª¡EÍpð/÷…ø|ï?bˆä›º)›(Ä7‹)'äé``pìw0j7)u·¦8ŒHåÃÈh‡O ‚ãäpHn¤/À`& ŸL`¦vKõ«·VÿÀ àäZ½‘Se'4æþjæº>ÄGm”O]D©6æ«h‰„#}'ž®vk7’?½úþ—Ï~ñòå—P&)Ýe—û³õîú~s·¿½/¼¾ŒÄìÒRä´4S´j=|²»fw[¡‚‹ÕÝÿ¬7oßù""ÿú¿—ë»Ýææv+~W,©SôÂg‚ÔÎÍêí®È~É·(q†*iåÅæfMà͸ô¿«÷ëY¾Ü¯n6×O¶ooÖxrùr³ÛHÜs6 ËWûõû?ƒƒÓ¡%tòd¿½³¾o# Ì…ÌÀm/PÔÀ›²ï^O)6 ü©05ÐÛöÃÍ =zµ¾Þ3ÉÌ‚\O8Ñ ¨óªT‹ŠÓ}š…†œý-™Œ¯6ÛŸ|ï8 Â/†ï¡ œzÖ矵(åPhŠÆû~yE´ÎWeñk¡gˆ²´ é¡Q–Ó|‘Üû8¿A ïÍ÷>2£ãa¤>E'Týë;è\X ?¯~™°´>שó#|,ñ#ôãÆ }„iÒôÂa”>ŽûÏã? £¾Ó2ÇÃ9ÅÛmòîC…R 7œgñÿÄå~b¼¤cñ/£2˜™ Ôr¶HÆË ¼Ôpˆœžâœâ‚PšQ~Ôæó¡rçÄŒU¥)@ÆC «‚™@µ……*<–¦Ò›ÍPõ›œÍ`&sl&UÁ˜Ï3çú°ÌOz>ÝŤN˜åàÌëêÄX7m•R¹Óhåù×aГúa¿Þª 5¡‹¥¤ó¶¯×ÐßlñF’Ì$ñ‘«•œ¹Iµ@#AuO,øÌ\ã™™TûÐÔÙ^Ú!%Ö<æ‚7pƒÑ­ÚÐ!xÜÑi¯jZ1>kuH‹}œ… Ñt[vŒh¹§›m;¸”%ÜòØÎjë®M. ñÝpKI¯QFTQæé·{•jӹɸÔ^ ¿ªdÕ&KÍ+•Ær«°¢“%ê’ ’¦Gª€bhÁ§²ø´¦ãhôòÜΟµ‹ÞOÊÏä‚épÖnSOìSI›ÂOœ† î¦ásænU2oóuÎÙm/äù»!ßWSþ9§ðâ ÝÍqŽ¢ùˆ3 AIâ–˜‘Övw&¡‡ê¨žn© U8Óñk=åì™2Ñ^e,òɤhn·‚h%@%Û|E¾ŒJ¿éV¬t»‹ÈÐ~+Î÷Tõa`L°ì$!-¿u²×{kº—ïùÀmYÓþ¶ž õî¼2s36!,và24fåO“ X=|s퉎"ÈÛ¯pHD`^dQxGÓ‡)õÒvAiºÐ¢ A˨F/hï%„WPšI©Mcæ†i‡¡Ç(YÞ‹êKn?j[²Š÷¤ú’å}©m©–¼7ÕqŒãôYôúá‘Eo„Yœ/Hs÷4æB&)–h»cGü‰c3T j@Ó[ié§[\ñ›JÒׇ×YŽß89[|‡~­ìV2ˆpÖN”ÛÍ“¹ôþæŠ>ØO T„ñ}·Î¼ÓrÜÅÌÜÅ,£/óöÆwMJúL€/¤Þž%—Ì÷m®ƒ÷ÀŒ>ݳÌçÏè›yMnÅÊècŸ¥§î•,³’m±ÐKá+½Ï–ïÌóØkK®t\¶ó$ñ×e›„”eªŒª&‘Ï®™ŸèN#Ø¢ :¢i‚ ÌÐ'D–u/ŽòØ‘e3?²Ì:¾žt #æðÓœ ÆµŽ Üœ2ÏÆd FIüâÔ-ÂyT"ß0|ZŒÂR7ƒqL.3m²¹Ó˜áèÅXÀ£Ìȧ¶|䀅™ÂеLœ-çq™£¿¦»>ýµaŽW¸ÈEÜT7²Ó8F9Ž V`ìªÍêÀñ~ŽÊ£ªÐ½nOSj›)‹ËFe èâÙŸ/_~ûû‹—W”‡ƒ·O¶»M¼ÐWqIºŒðºvb×¹Ë"R ‰¬L@I:þoè—>{ÚO†bÎQ+yãk¼_ñ¹­°îÈÌT‡}í2 è´YPô1 $ ÊCÔjùÃýêú§5æw—ëåúïV7ËwËÍòýr»¼Ý®—wË;roÖ?îÝ™{ôîæÃn¹_îÿÿvùóòŸëûÛ4‘мŒ6“JÉn ŒnÖ°nÔ•<—Ê#ò˜K•óÄÌT*6Tƒ¹TËï|2ìu_~ÿäõ«×œ¸e3ÓÚsn¡qû|×tù®ìíÆøÎVçÝ Üÿ¹HÂy.ݦåVJo°.+zd ¹ºÎ¤z &µCôÙ³Z´ Ðö½)~ñüWÏ¿aʦXèÐ@$> <± ]ø4jf` ÿ ýqHþ1~)š"lsfùauϨeÍ„ÏZôr³~× Ãlþ±ºYo¯×Ë·÷ëtŒƒ57ëÝνßl?ìFKŸ/qÏBû€Åûg‘/;œ2ÛÌÔÓÚ&ßçNo ¹¢ˆ‡ðñ‘+Šq;¸¢´<‘¼×ð–…¶DŸfôa ” /3úRÍÂÒ–èC–2´@Õ”>ÑYRñ¾æÃ—TÔ9–TÆ=¤ÞÛ×Còžö é·mþI?‹ÛÏܽ?ƒ?)™+ËßÝoJ ¼ì²äù?"8Á³S‘Ù»ÝË,$N¿¡<¦$4>½·ý´ß#nb/;aï¾üË‹Ë'l t6Ó=å3ਮK æbezµs¦{¡¸8Ãçaoú¨UÒ1‡ÞÕ æ0§ÀLk 1zÿáÙó‹?}êŸçÐ[x-” îz€Ä]Ä]ÏõØ…gºDÎ@KYvàÜî7·Û7›ÝÝÍê—lÓYUŽC¾)kŸ­{±’1f[‚I|äõW—/¾¦`ŒŸ"z ›®R#:mƒòC2_@I \§žŠÉüO)ÊEq¬^+̋Ѵ!«ç®ÐWÕ¹Ê|jüG’ØCJ¹û*Øð hŽJîÃç¾ÔðÇÏÛ’*ùè¾ä>}îKô<Á„Ï6?þà½%T÷W6ed°aÊ9Á„²r}ˆÜ¼½1á4Ñ"Ì–ã(9‘iK¸=\ç©Ìßγô˜­#cÒC84D!>=‚ò¶DÞ6:—[öUTŽ'jKLÞ(ṕ³eXÕpªLyé¦;€s‰JîÐr,4™y–P?=:`\2Ú:ŸjÒo‡Ÿ­Tµ›—À¡- =¥<]©Ë¾ŽÏiñ`UÓqÊ®«ãºæiLÿŸ¦õÓ©9@÷lTýT‰;°5Ïôe‹ö¬øŠÕ-èÈVm"TKNGœ#VKN+ü¨!h•®)ì‰a6z(xp9R`½²<  çËGµ˜^ñ¦šOßRÅh§Éµ“å¾²KI˜ÉtÂ-z Àí(jF†Êi9Îå‡ÀqŸzG¢‹œ~:!£UOöØ®%Ó§ÁG3œ…£õ6‰©VŒ×Y ê}²(SÐ,†µ˜"[£áùhrxûG\ê)’µ·„öÃêþ\ˆèIy´?Áå"œê‡)šRUδ¹7ÚJk`9ã„’"„¥qðÆ&Ã_çrº>¶™=Iï™!ªµ‚êáH0Á­ ë?Z>7øy†ø°híÁÓ'aN7Œîc8ó¬á!=>„ORÎ8«ŒñCê([^à ¶ƒGûa¾7Ä9ó\ °ø©sþq/¥ýÄ<˜ÙÎëw»ºëúÉ}žžRh¼ÆžÝ?ÅTS³'÷è‚ï Ü‡…‡ff‡ºè:=Cð{-Ånÿô’âM„‹lè£]õT>¼ Ë”ã‚Xvì_l8fendstream endobj 166 0 obj << /Filter /FlateDecode /Length 3252 >> stream xœµYKsÜÆ¾ó’ä’âÞœY‡;Ä<1P‰Lů²U±ÍrbÐÖ–4}È9?;Ý=3–ZËRI.¸À¼úñõ×݃‹ ÿâÿõö$[\Ÿüx"èí"þ[oŸ^œœ}'åBä\ £W'a‰XÈLsY˜…µø_,.¶'/Ø÷ûÝn¹’–µÝ°\)¡x&ØË<çEa óë¡íð½ä…+Ø7åz) å–ÝTï—ÿ¹ø Ô !8,t Ó<—p—Ú:·¸Øœ°O–¯`¢²ó‰+™FÚ.à….pê vqãáHiAɾl–ð«€A6øîª\ÓXcš m<_«ù¶Îò7ËèäºzÙßm¯3î2ç½`U3ºCEñØ‚Ý.‚ª`åµ?zžA[ÛxœY.Ž*+„ã0Ê:î\•}9ª÷Ï {V.QŬì®Ú$±,ûÆ?Ðtçó ³R†«,s‹ø®Ð.ìúÙ¸=¥ØÅÒ Xm4xsÜö¦©n÷ÛIáW¾9k\Ξîû¡«J:áŸ'ßždÜ…a©ûeèZf„ž(¸‘na Å È{V‚j4òÝ?¾[-W–™bÿêÚW;Þv׳ã߀öC3GjËM¡&h9Ñîwƒß&Ͼà#ŒBcަö4B,sLfRG§‹¬X¼°Òwf–;°÷JN 6Ùý÷_<ìh×=Û(ü©ýÖ싲®—H ¤±Ì×ûWåÍßÿ°\²€cUs( €&@ví’¶… ¼£_E¦Y»D0AÄ®Ë¡Š¯e1?x¨†z|4lßûMÜTÄížöf¦FžqY–;ñ&Oš#™]sµ0Êr«e°ú§¾iü0LB}‚²çåv÷2h‘Ö¨ßÎéÇORƒäraà¿u9Ï.FãPM€67›e³íßyKí¤v¾å v¹Dó @%)‰.é§ „"f(ðÝ]åïã0Lm¯â*Àoä÷èæ@ò4ÍË;duØ/±| –{–B80æ÷?|s¹äIŸÓxfYÙù8@_ï»Î7ËäÛ¡([I…ül€±(lEã§ì¦ð!DàÐîªuxDì Ihž(B„È£Y²mìrSQ¬öe×TÍu:À±u»ÝŽrí›jõ}X§h±‚ZwB Ãp¡§“@ÊëxDz9mÝWÛª.»(¿È™ Ì™ä¥Cý¾¯Ê~›TÉY9mF‹|}rñÉ‹H:'m·í6ZS(Ø ðHX‹ДEØÓn¨>ZWe^9öÜï»ñ’øs?„4¼wÏ@ã6m®‹<¡Ñæólèy3þv‘@‰ê®ÚÎ*´ ™ù30#V`š.î’\uí6É%ÆÕXfw¶¢™)ŠdŠ]Ù@î/Ñ5¹!©ò¤ È|Ϊô+-ßu¾G³EÿÎÆÊ´˜M”Ýû‚¬“e êØ×q.⑉ ±Ph€z8Љõǽ§ø®0²Âƒc×¾ñä‹p°xjÚ¦´–†}”g]—}_­Ž!â#dú¶!„†tÒùkP±‡—3<6›@È=û¡®|—âÁ± âg »¯›ñIפ‘*Âa°¯Æ,ƒ9s:bÛ ¢¹6¾¦#¶'ÑyPKC±¢Å# Ê/†”ØErÖaf±fV„ 5§Tk Ígâõ*ìy!YK'SÉ×þÙw}<±°¤w.P[KzSxÙ©î ’YŠ˜“ȯC§ì6«ûª!òy÷ ù¶Î•›§ ä zBe %ÕRL¼G ÒZr“YØ<"¨+`çýë ·„º?çy¦y©ÚîjŸ¸ˆ T4)a)çuí‘ ÁÎoª›ÕydÀ(†B>Zôü¦ –2á—f6,üÊ7ivÁ¾® Ž@mÏ‘Êÿ 4ØÎ$\Ž™ Ñ'I²l •nÓ—spÓ{ÿÁzX(Pt‘²€^VÄ&6e(ÒÂ…6²Ñûô¬:³<7n~Ú‡ëYµÈ¸Uâ`sèYß«`Üà]˼ÐgÙšZ w^*3 ÜbNR¹Œ û"::eóØŒ5k¿ŽÞ²HÁp©ø¿Îªs¬C5RýÝô²nwSEŠ­Œ¤&ê·¸ñƒÜé…ÔŠ+™Ð¶'YÃMËÇø3´=SÛ]îšêö} £2Š™ÙÉ9J éÕÁæêþ÷@Þ/äê‘¥¨í¡ÆÏÄ^ ${Y5e÷\{P`—‰©Êa·PÅKP AT(ùøJa·ëZì"Ðçà…›)§lËñ²`V.ÌÚ)kvíþú¦~˜è°¿M•ÆÔë±Mº WláÆ¼ì§3¢ëvÌU÷Sô̬…4aþu‡=—ÁD½ß•ÙáÉÑ€qÄ›k?L®ë²®F^ŸQæ,ˆ¦üop4«±§‹ímhБÝÁLWm—ØtM)©mwCµ ¹Á(nXj·›ñæåÊ(UK¬èNb,´¡#q¯÷ˆ»ºÄËí ]ûÄKÜ N?Œéx¦68¤!Qµ³tã2ŒÉë>@!7xŸª&) sÂiþASC/3¼tú©ÚV?“~´2\ÛFÏjNe²àRºä™mÙ-M>,\WÍQg* OkG_ÎîK‚ðEŸ©ˆÀMǃïP‘ǽ[Të/ànŒÖu /°å1áömV¾UÍx§<  ¾—@2˜méðYu½ï>Xö•…㪠m–Ã/XïÙઠØ&?ØYç·¤ÂÛè\?ÇG*vhq#À¸¹‡Ú}³)»*~![ £¸µ¯ñÆš9}rÁ0õ›£ÐÁOZŽAÝã®AæÁˆÃ+]­,»óáex›Û”Œh1bðWȶTbÃqV«`Ûj³©}DKáårú'ô€F‡A‹zÚ$‡Eû. ¸‘#‚a„ä8»é×hÃ&ÚÀøK¹?utěЇ¬´¸ |~"(ýÊ…0Nàw§-ôYR©Œoê“ïù+jf`¯ïà )0áiÀ*€¬Í4¯J»I;[=÷÷ýi’„ê´¥–¯¹8S4¤Ö‰ñû.”ê“)VA5Ëmi‰ vñ+ó >åÂTùåxE[›¡¯U/| ‡ðrk¾üêüùóø “Œðî… F£6×ã| ! å*Z‘ŽÉYßÖwVqÂ@¤4óÓÓ–2?6Üt~ßâ'¹—éÀeÐAB_ü´&å(4ûÜ7«Ä\"±A;¨­IÅ0ÞW?ÇöÉИœ=}‰…EQ˪pݬ€ð3Ä2°*jc茙+mpμdŸ? Ê@;xŽV‰kae”0½],eeÏOôÕ3¿FkàØkC¦Kcó“U žKvñ윾Áì&Q¾&å¶-5†Pç,¦ ´´©æ©ì¹ÓEwÀ>–>þÉ»–€Ù ’cC\™A)¿Hß ÃîÉÙÙýý=_÷TÙa8Vž7ÞûÍž÷gÿ]¿ª«ælGŽ·Cs°gÕ«uÓð]ϯ~»Šþ0Tæýš¥fr1~¬¾€BáΛ‡!ýíÉÿ‘¦úÊendstream endobj 167 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ3µÔ³T0P0UÐ5T05S03QH1ä2Ð30 !Œ‘œËU¨`j`T0²@< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶àÎãƒRÍŽ/Î$>db“›\á¹—åÞÚ/¿Â—üºï¿ö÷Ëúª¿ö¿îÿ_ÿøø,æüÿ?Mãþÿ÷ýCt}té¿[聯nÛ™»tÛ4iΓ ›¸yœs³q1(0q¹z*rDzOWendstream endobj 168 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ37ѳ°T0P0bsCC…C.=C Âɹ\… ff`A2 ËĬÀÀÀÈÈØÔФÆÉ“KßÓW¡¤¨4•K?¨KߤšKß)ÀYÁKß%hz,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQP[ðìà$‹ÿ“?üßÿüä‘?Èü¡ùC?—ü‡ûKî/˜ýeý¥z¯ÿõÞ¿~Ü~ýÿßþÿ¯ÿã—ý}-&2r6ÜÿÇ ÀÄåê©ÈK)l‰endstream endobj 169 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ36×31R0P0bcCKS…C.=C aŒä\®B#S° Pº@&f– 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú"i~[[ûÿÿoÝ:Ì-ÿ>qV&ÿ3k:ÿïÿØÁ¿ys¼ î7p04p¹z*rSÐLendstream endobj 170 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ37ѳ°T0P0bsC3c…C.=C aŒä\®B33° Paĺ@ÆfÆææ¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚g‡Y,ò1pxÌa£|¨}ýÉEYVœ{¬Â_Ú½Œÿ²>^º¶þÿõÿëÿã¿2_.RP4þ€…ÁËÕS! wóV¿endstream endobj 171 0 obj << /Filter /FlateDecode /Length 230 >> stream xœ33×3Q0P0UÐ5T03R03QH1ä2Ð30 !Œ‘œËU¨`jfT032@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°`Žˆ#óAæ‹3Ös|Èç4ø2ûR¾ç¾ùž{ó=÷™ý?úå×ýÿ¯ýªÿÿÏú?L]ÿ;þÿ½ý÷vÇ_w½ê¶÷ß-Û.ÝöÎÕR‡y¶ñذ!aƒ—«§B ÒžT…endstream endobj 172 0 obj << /Filter /FlateDecode /Length 245 >> stream xœ37ѳ°T0P0QÐ5²P07P03VH1ä2Ð30Š!Œ‘œËU¨`fjT°42L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïତ\¢¦Æré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÏ³5,ò1ÛqˆŸãÇšxO®x¡öá¥ùKó¾_¿ú»¶îþ¿ûÿ×ÿÿˆAà¯>ðþ¿>þ¯Þëë[v¯»ô,sé[\°·MèÃÁ&î­[ŸÈͳÿ¿ª •˜Ã?02p¹z*rQlÀendstream endobj 173 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ò31T0P0bK3c…C.=Âɹ\… &Æ`A * Èu ŒÍŒÍÍMAjœ<¹ô=}JŠJS¹ôøô=€ª¹ôœ ¹ô]¢†Çré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g›$§lbâ3h¾x¨Š³d²ÚRïvï¯wõ/Ç­­e_ñÿëñ¿õÿ¿þG¿ªøT$ì01(p¹z*rG†Hendstream endobj 174 0 obj << /Filter /FlateDecode /Length 245 >> stream xœ35Ö34S0P0QÐ5T0±T03QH1ä2Ð30 !Œ‘œËU¨`bbT032@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁN‹¢wÎ×v(\縠½øÀá/3¾ÔÆ{¿üZ·ãþÿïûßïó þ-'wøæ žH)£âmü‰ÛÛä¤îi;8“gmAy{s~ÝíûßþïßuíßÚ¼µé“½f{ç¨:6+jnäjæjœÂô€‰AËÕS! '(T|endstream endobj 175 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ35Ò31T0P0RÐ5T01U°°PH1ä2Ð3 !Œ‘œËU¨`bdT°°2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁ†üÿÿÿÇÿÿ[ÿõo}üõØÒCcêÕž9¸ÿ?*øeüݲÿÿõ¼½e¯sË.ÝHÔí:ÌÍ&ÂàÀÂåê©ÈnqTendstream endobj 176 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ37ѳ°T0P0QÐ5T07T03VH1ä2Ð30 !Œ‘œËU¨`ffT032@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ðì°Ç Oƒ|FRÂÿÿÌêsÖ•(øÿî?n°þÿ¯ÿÿ×}z}ëßôýߦ¾›¾M¨}Ã¥)÷6³ìHçÑsØù¬‰ƒ¡ËÕS! $6\Úendstream endobj 177 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ342Ö35Q0P°bCCSK …C.=C Âɹ\… †¦`Q 2 ÃÒ¬ÀÀÀÈÀÀÜÒ¤ÆÉ“KßÓW¡¤¨4•K?¤KߨšKß)ÀYÁKß%hz,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+é±³ãòtQP8˜ý;(K¯TLNìŒZêÿß™õÿÿ¿]úÿÿÿmÓÿÿÿw+•–Gá€äQ8`ÅăEçÆø³ãÿÍÿ'PUáø]HAzï±ý¿#8¸\=¹Qeendstream endobj 178 0 obj << /Filter /FlateDecode /Length 302 >> stream xœ37ѳ°T0P0WÐ5R0³P040PH1ä2Ð30Š!Œ‘œËU¨`f`*3²ÌXÄJ:yré{ú*”•¦ré‡Uré{€”qé;8+ré»DåÒwÓwvvrllô½t2Îù9¥¹yÅ@=vv\ž. j 7,ž^àjaxý!Û.uùŽfáXé/¹%³¿4g/9¾äoÕ~ÿÕ__ýÿòÿøûÿûïÿÏÿ”5ÿòöûÕ5¶íj¦ój³oò1zÓÈÔ­œ8O¢šŸÇÆàC¾Â‚c¼O¤˜RLZRLWüpïž|~ýíûß›wÿÿÝÖý«ßVmݵuËòËë.-“z¸aªÁ¥M N2†I´:¶6suH(1(0q¹z*r²Pp©endstream endobj 179 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ340Ô30S0P0RÐ5R°´T°´PH1ä2Ð30 !Œ‘œËU¨`ifT04# Ö@I'O.}O_…’¢ÒT.ýp J.}2.}§gC.}—h ±±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÇÎŽËÓEA!qûÿɾ ˲ ñˆûè¾¾uÿÝöu/ýß_²ÿm9ˆ±õÞïÞÿþ^zÿ̸^…`ÜÕÿ gľÞg”ì|ëÿ­¿ëA°ƒ¡ËÕS! àEt§endstream endobj 180 0 obj << /Filter /FlateDecode /Length 258 >> stream xœ33×3Q0P0WÐ5T03S03QH1ä2Ð30 !Œ‘œËU¨`jaT032ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[à¸Àä„m…ãCÉ.¹>æöÍU¾/Í—Ü›\ûGºª>÷ÿÿíÿÇIÄÙÿÿÿDêÄ Á Ö³xˆ·øÉ·pÂKš¾ì­Û«ïýß›õÿŸºý_ÿÿz[”µú¯þýk·|×=Ô¿í¹e›TØŽÄ&ήÃ"×$|²‰08°p¹z*r‘(\endstream endobj 181 0 obj << /Filter /FlateDecode /Length 228 >> stream xœ3µÔ³T0P0UÐ5T05S03QH1ä2Ð30 !Œ‘œËU¨`j`T0²@< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶`Á‰&Ó&'~Ž3šû.8îQ‘¾”ï¹WíËô±Á—â¿ìÿ²ÿkö‚C¯ÿ_ñÿÿÿ'W«ÿÿýý÷`ùÝòèßÙwóvgæ.Ý6íV4¯Ž™Ða6ÎÄŽˆÄ„“¸\=¹˜˜Pâendstream endobj 182 0 obj << /Filter /FlateDecode /Length 238 >> stream xœ]1nÃ0 EwB7°¥ÄR \Ò%C‹¢íl‰ 4DgèíKÒI‡ÏÀ³>eów§óë¹äMwm _¸é”Klx[ï- ^ð’‹2VǶ‡É3\窺ÓÛ\¿*j `Úý}¾b÷é#¯Ì>Öˆ·:ls¹ šú¦”@a‰ÿŽè[2±¤GôA°Ã@MÃ뇑Õ`½7¤Î€@§ +ÝެÖ; ¿€@zdA°Þô¬‚u4Bš@ u¤ž`H¬t«—›ûQ¶zþ>/ÈU=›ÑáÞ–Mú”¾¸¦\ð¯òºVžÒ„ú”bw›endstream endobj 183 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3±Ð37U0P0S0V0"3…C.=C Âɹ\… Æf`A B ÄÑ@)'O.}O_…’¢ÒT.ýp :.} ".}§gC.}—h ™±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÁÎ ñ߯ÿÿÿ/ô‰îÑ—í­j+_æ¾Ll»à˜¸—µí‹˜D…cbGk›˜D„ãCö–JqLJ¬mrB7*¼²ÌH|™{4·µ]menrÿÿÿÿkkX¸\=¹çáGRendstream endobj 184 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ]O1ƒ0 Üó ÿ €Ô² ºthUµý@p”' aèïKèÐá,ïN>Ëáz¹² Áá‹"Ë:ÐâÖ€#M–EÝ€¶w–'ÎÊ 9Ü”<Áf Sø]Í$ŸçS›Wu ¡Ó´x…O$ºªê;czA¬ÿ¤=0šÝÙ¨¾ mŠÿPR4•8n®!ÇÜ47I,Óïï|JÁñ`àSÇendstream endobj 185 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ñ34W0P0VÐ5T05T0³TH1ä2Ð30 !Œ‘œËU¨`bnTÒ@-@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸VS$UÿD*s߸ɦþ ñ‡{›|‹€ùKó—†Õ/Õí÷þïý?þ߈ Óøýÿûÿ=îïÖ»e[¾]Úcpi.sEbSŒ!w3«#ƒ—«§B  Ueendstream endobj 186 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö36V0P0VÐ5T01P01UH1ä2Ð30 !Œ‘œËU¨`lfT01ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Ølàáð¡O ÂÃàËìKùÞ—ò£_~ý²þþßüøãÿ,g¤Õ?¹Z¿ÿþ¡Û¿îíŽÝu·ìÒmoÞ–m ’Ä$48¸\=¹³#Aáendstream endobj 187 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ3²Ô3·T0P0bc3s…C.=C aŒä\®Bcc° Paĺ@@`lihRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\ðÓ‘½¥¢ù’?§ºgéõ¥ÿ·.‘ˆ³ÿM»Ÿ\ ~àþ\¨t´ÀÄ Àåê©ÈÈI±endstream endobj 188 0 obj << /Filter /FlateDecode /Length 252 >> stream xœ3±Ð37U0P0VÐ52T0±P01UH1ä2Ð30Š!Œ‘œËU¨`bbT032Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\Á­ØÏ"Ç!á.ÝRqØaš€cW”¯­úÚœªÚüå×þƒÁ÷u׫ޖ¯Ý²ÛÛM ‘õB’Ø‚ƒÿöÿ}ûýTÃÑæßä¤U¸3´/qtù0!ù¥üËÿÿß:9¨é¶w®n›Ða… ›¸yœN$t04pp¹z*r\¹ZÍendstream endobj 189 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ñ34W0P0bSC3K…C.=C aŒä\®Bs° Pa ĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;Þ䟦v¿ÿÃÀO¡:{Ž›ì/î/­›ü+üëÇí×ÿÇÿÿú,›ã·Ì»íC—«§B ÇÇSñendstream endobj 190 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ32×3°P0P0b#S3s…C.=C aŒä\®B#C° Pal–70045µ´4)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pVr\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÅfBõËÿÿŽo³ÿÿÿ§üñOYµßÿ£¿skX¸\=¹•f?_endstream endobj 191 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ô31S0P0bK3K…C.=C aŒä\®BS° Pa ĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;^埦v¿ÿÃÁ¯ýÿoè'ì¿~}Á^}ïK_@Ä×ó—¿~qìÇê—¿òWÿöïïßýûëóßßû÷ïË~êAš‡ë°08p¹z*r`Uµendstream endobj 192 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ³0Ô32U0P0bsK…C.=C aŒä\®BsS° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;3Æ3›³ðØJ+\ÜÄÏ¡vˆs§©çáê%/í^F…½~ìØýÐÿ_ãÿÿý ¼\6Ço‰÷D=éÿ˜¸\=¹:hUÓendstream endobj 193 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ35Ñ34W0P0bSC…C.=C aŒä\®Bs° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;Åz¥¾äùúM}7ùÝÔ¿5¹_ÿ_ÿÿ·þ?x¹\x备û01(p¹z*råßHWendstream endobj 194 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ3±Ð37U0P0VÐ5T01S01UH1ä2Ð30 !Œ‘œËU¨`bd*2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[pp†! ?ÇGö‰*ß—æKîM®ò}]ÿÒ|íÿ˯ëÿÿ)ÿÿÿÿÉU×ÿ®ûúïë­÷±ë¾n›v+:3q‹ØÁ¦ˆ$1ÇÎ, \®ž \&F}endstream endobj 195 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ñ34W0P0VÐ5´T05T01QH1ä2Ð30Š!Œ‘œËU¨`bnT032@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[l§9ÃÀ ñ¡´D‡Á“+Õää„kr¿Ü¿ü÷7þÿ¿ý?|ÙÿÿÒÿ××w}Ù¿îBŒ`Àô ‡â$Yß8}HØSQâ§pê#ƒ—«§B ‹ÕSendstream endobj 196 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ36׳4R0P0a3…C.=C aŒä\®Bc#° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú’ç3 Í·}J¹òR÷ÒûøøËñ[ÙÖÿÿ¿øÔ6Ú08°p¹z*r]<þendstream endobj 197 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ3¶Ð31S0P0VÐ5T06U01UH1ä2Ð30 !Œ‘œËU¨`lhT012ŒX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j yY¹Yx ú¹¤^¾´›üêoáþ÷ßÿ~8æüÄ élâ¹Ã7ª+òÙ>q·O¸Pccö¾üþþïa{£nW{'âjX!¡ÁÐÀÁåê©Èó¶A‚endstream endobj 198 0 obj << /Filter /FlateDecode /Length 187 >> stream xœ36׳4R0P0RÐ5T06V03TH1ä2Ð30 !Œ‘œËU¨`l`T032@X×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶ õ°üÿ¯ÿÿÖ½þõ:wKèã'W‚öÿ‡ƒ‡õ`ªôný®·×³Û.map`árõTäjGžendstream endobj 199 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ35Ñ34W0P0VÐ5T05T01QH1ä2Ð30 !Œ‘œËU¨`bnT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[l'y¾'Ånþ§¬"žàò»ÿ1Á×ÿÿã¿ÿ޽ØòÛë»W ïÃ6¡‡]ú÷08°p¹z*rVmIendstream endobj 200 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô31S0P0RÐ5T0±T01VH1ä2Ð30 !Œ‘œËU¨`bfT012Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPbú¯¶,€‡éîë[÷Ýöþ÷÷Òÿ­÷v÷þw½ê®þïØ×·ìÄèÏþŸýmÿ·L \®ž \²/A`endstream endobj 201 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ô31S0P0RÐ52P0±T01VH1ä2Ð30Š!Œ‘œËU¨`bfT032Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((1ýW[ÀÃt‹G÷õ­{»c_ÿ»^õ?Wÿwìë¿[ö¿-_ÿíÒÿ­÷ößö 'íÿ¶?ûö—ý_ö{¾¿lJüÒ_!›²&Ũl“ðæ “`dàrõTä¨M·endstream endobj 202 0 obj << /Filter /FlateDecode /Length 164 >> stream xœ32×3°P0P°PÐ5´T02P04PH1ä2Ð30Š!Œ‘œËU¨`hhT0²2,€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ô6nç°x¿gÖã:û»þ__[u}mÉ–-»8¸\=¹šÄ/endstream endobj 203 0 obj << /Filter /FlateDecode /Length 212 >> stream xœ3±Ð37U0P0QÐ5R01U03SH1ä2Ð30 !Œ‘œËU¨`b`T0³2€< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[°s†> ?ÇGöÍžíKîû/¹7¹þu­ÝöÛÿÿµÛþÿÿÙÿP ¶:þÿÿ¿ë¾þÿ}ýwfý¿[Ñ׳·M»‘˺áPD’ƒ —«§B ÎÅO endstream endobj 204 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ3±Ð37U0P°bC33…C.=C aŒä\®Bc#° Paĺ@†–ff–¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÇ‚»^7=ØxÊF\mÁüÿ¸Àå˧¤þ08°p¹z*rˆFendstream endobj 205 0 obj << /Filter /FlateDecode /Length 224 >> stream xœ3±Ð37U0Pa33…C.=C aŒä\®Bc ° Pa ĺ@†–ff–¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚g Žå$ªXx_š/˜})ÿö¥}ó£_þYþHñöýúŸ¦ž¹…_}]¿téµ½™™™¥K—.]°e×% àö^úRWßûÒ—é^[¦;ÿ-íúÁÐÀÁåê©ÈO Oendstream endobj 206 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ3±Ð37U0P0b33s…C.=C aŒä\®B#° Pal–70045µ´4)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô\Hð_· {ôãöÇM_}éë¯/«þVÁ9¯_Ö"¸Ç\‘~rŨ¿ó?pØ4sýg`ärõTäø`Mdendstream endobj 207 0 obj << /Filter /FlateDecode /Length 239 >> stream xœ3±Ð37U0P0QÐ5R01U03SH1ä2Ð30 !Œ‘œËU¨`b`T0³2€< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[¸á‚Š@…ãCÉ®/æ-ÍUœLš_šÄW}Ù7ýß䨭—þ_úý—ù-ü‡Ì ;²}™QåûÒüºtiõ÷¸ûãÿÌZÿÿÿï÷ÿ¯ý__ºÿeî¿iws—n›v+šGµM1±µM„Á…ËÕS! 1 U¬endstream endobj 208 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ37Ö3°T0P0bs 2TH1ä2Ð30òÆHÎå*T033 UÆ`yCc## 'O.}O_…’¢ÒT.ýp z.} b.}§g å 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-¸#µòÿK0|±ïÿÏý_÷Íÿ›¿üôËÿ—ö×Yÿ¯Hôÿ¥|°èã¿v1Fû_ÆïÿþþßäúÿKîÿiþoîë—÷8 æ8NÈ[ÿ‘A€ËÕS! þJ[endstream endobj 209 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ37Ñ31S0P0b3K3 …C.=C aŒä\®B3° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠Ê0íÀ“+©ŒslLxìy$þ®»ßöïïßýùÿóßßÿ¿~ÿÿoÿÿÿßÿ¾þÿ·?þÿ××@øéËú—UqÓ—>Ôç¬pL4ðR™ÂØÀÈ Àåê©ÈiÅU:endstream endobj 210 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ33Ö33V0P0b3 ²PH1ä2Ð30òÆHÎå*T055 U&@¬ TF¦ÆÆ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹ë§,£†ÀÃ÷Û¿ÁÿÛÿÿ×ÿÿÿ~¿âÜÿÿùÿÿÿ¿þß¾}âýÿg6ÿ±ß¿ÿßxüþ>´˜8õƒ—«§B §lQüendstream endobj 211 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ37Ö3°T0P0b3K3 …C.=C aŒä\®B3° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠rø¿Úb¶@…‚C<úÿ1ÁãÿÏ.bƒæN ™É¼ÿ¹\=¹ýÝU+endstream endobj 212 0 obj << /Filter /FlateDecode /Length 155 >> stream xœ36Õ34W0P0a#3 …C.=C aŒä\®B# ° Pa ĺ@@`djl RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(<¹ä°mÛþÿx€¿ŸŠC~C—«§B „C>endstream endobj 213 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ³°Ô36Q0P0b 3 …C.=C aŒä\®Bs ° Pa ĺ@@`djl RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜6-]¯¶ø;Ï®Œ]ÜÿÿÿݲÿÿmïÿÿÿçêS‰scýÿÿ·¾üÿﻞ…ŸÃbV3G›èÿL \®ž \?týendstream endobj 214 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ35Ñ34W0P0UÐ5R0±T07PH1ä2Ð30 !Œ‘œËU¨`blT072LXÄÊ9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j › "²[ä[j®;2× 8n}¹ß³ßókÝüøûëÌÿþÿýOSŸê÷‰¾e1}scëV8X;ᛜDE>Û'É#)"¡Nó³}¿}¿ö7ïÿýïÿ^Ûþ5»4;ÓOmÚa¯f^Ý™-!­Í\M  \®ž \ö.Uxendstream endobj 215 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ37Ð31R0P0b3s3 …C.=C aŒä\®B3c° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶#þÏ?þ³Ø&~ÙöëþÿµÿÿÉÿÿÿiçÿÿèð,`y‹œ3SýF.WO…@.„N¬endstream endobj 216 0 obj << /Filter /FlateDecode /Length 251 >> stream xœ340Ð3´P0P0RÐ5R°´P0³PH1ä2Ð30 !Œ‘œËU¨`ijT072Œ€XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.O-F®†ãÿÕ–83=1ÐãN4hæ^6#úýßÜíÿã—Mÿÿ?cWöþëÿoÝzïÿ?»îËËúÿ÷·M^úÿÿïL3 ìÛ%·âÿÿ¿µm÷u¨ìßïï0d}×ýÊfïµ­ÿSþÖ0þÿ–ëÿßšþÿí[ÿßU.WO…@.•t¼endstream endobj 217 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ3±Ð37U0P0QÐ5T0±P01UH1ä2Ð30 !Œ‘œËU¨`blT012L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÖ¸‰CNð`{ ‡ù‚Ù—ò›óý~çÿÿ»ÿÛƒ=õÿOd\Vlœ¡Ô~ÈX¸E¼E|é˪¸éë¯ÿŒÿýÿ­'W[¿û.Ýõï†çÖÃ< ‹65°™Gƒ¡ƒËÕS! ÍÆM8endstream endobj 218 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ35Ñ34W0P0VÐ5T05T0³TH1ä2Ð30 !Œ‘œËU¨`bnTÒ@-@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¶ãMþij÷û? ü«°ç¸qø‹@âƒÂ5¹_kÍ/ÿýÿöÿ÷ÿûïCÔ¼¾þý_ýßÞ¯·>è*ÙµEÜwé“]<M/;"šY¹\=¹ÆñUendstream endobj 219 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö36V0P0VÐ5T01P01UH1ä2Ð30 !Œ‘œËU¨`lfT01ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ppF„B…{›œ€ÃáCæKî-Øåùeׯø_ñ[W$VüüÿÿϬõõû[ï—nÛ]ºm÷ÒmÓ$uÛ"’6$,`bPàrõTä¯nAendstream endobj 220 0 obj << /Filter /FlateDecode /Length 361 >> stream xœ]’±nƒ@D{¾‚?nÏ–¬mœÆE¢(ÉÀqD„q‘¿ÏÌb§H1HÛƒ-Η—Ë4nyñ¾Îñ3mù0Nýšnó})ïÒ÷8e•Ëû1n²g¼¶KVœ_ÛåëgI9 Ò°ó[{MŇ?½)Î}º-mLk;}§ìT–zÍÒÔÿ;ªÝÞÑ RuW¨+ÍN5:) 'Vj Ñ© ˆš€G¢¨ Øô5ÖÛ°·AacÅ ‹ñδ⃚€=ñ¨&çÛ’Ø«Éù.}­&<­<\½9û–ÔäBp@A±žƒñÅ®ài%°‘ÝŠs6²[%¢W“ Â#È+–YÌCÄÁˆøbW€ñ)*^A:5á”_CpʉØiRŸ]5YðC( $ –ªäõKUˆ˜I¹†™±Ï_ÍeàZ=·(÷uMÓf»g»Å•§ô·žË¼°+‡²_¡¢¸*endstream endobj 221 0 obj << /Filter /FlateDecode /Length 221 >> stream xœ35Ô32Q0P0VÐ5T05P03TH1ä2Ð30 !Œ‘œËU¨`bfT032ŒX×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶ a‚ªm}í'^ûÿ 0á¨Â…?ê/ª^,ØÅ!ïhï¿ä¯Ý~ÿõ×ÿÔÖ¥¿Ÿ\õoïï¿ëgßz»îÖ —ý݇.o½Ú&aÐÆ ÀÄåê©È.NÏendstream endobj 222 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ35Ô32Q0P0UÐ5T01¡C.=C  Âɹ\… Æ–`A3 Èu ÀrNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb ;;.Oµ;ØØ(|ù0o^ÛüéKµÚ/¿î›¿þýޝýW~˜ZšÆÿݯovù~þ­ÛÞ‰­7u»nÝ:ÌÍ£#¡ÁÐÀÁåê©ÈèM@mendstream endobj 223 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ35Ô32Q0P0VÐÒ¦ && )†\z†@Q „1’s¹ LÌ À‚ f@†1u€%<¹ô=}JŠJS¹ôÃ*¹ô=€Ê¸ôœ ¹ô]¢¦Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…Í68´Q8T%uÑRà^Ú®2±ÉÉ—ÿ¯ýò¾í¾þwÝ­Øu‡9 £bK߈ef}ü÷ßýšÕ¬ofð'>d_ðåç ÁK ‹æ(Ü[ùx P欭·Þ.=̽áP´bK´èÖ61‰ˆÄq%&.WO…@.1š[endstream endobj 224 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ35Ô32Q0P°bS3#…C.=C aŒä\®Bc3° Paa–700´0177)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔìlH¨_þëÄäÿÿŸK.ÿÿû‰áTðÓ)°<(k ƒ —«§B @ºendstream endobj 225 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ35Ô32Q0P0UÐ52V06W03RH1ä2Ð30Š!Œ‘œËU¨`lhT°02@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j Äê—ÿ]˜[þÿE–Ìë÷>±þG¯×Ÿù'YuôÚ6¡®É!Û¶mãÑ`hààrõTäò®Eåendstream endobj 226 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ35Ô32Q0P0b33C…C.=C aŒä\®BcK° Paĺ@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ<Áý“Cï+ìÿ<¹Ü=9dÛ&.WO…@.íàAˆendstream endobj 227 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô32Q0CSC…C.=CˆŒ‘œËU¨`j`Qhbfè¥ A œ<¹ô=}JŠJS¹ôê¹ô=€J¹ôœ ¹ô]¢&Çré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ;,o:µÀ±E&ÂG]lÞÆ¢¬¾5m?·ü ýrùÿ×øÿÿÿ‡þÇ žf*œäˆÊüÿ_m¥É.WO…@.¼ÂR1endstream endobj 228 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ô32Q0P0SÐ5T01¡C.=C  Âɹ\… Æ`A3 „u ÀrNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb ;;.Oµ…ÍGl¾Ÿ¿#Û—Ù/ÁèôËÿÿ4÷ÿÿÿïʬµõ·ÞÇ®ÿY¶;3wé†CÑ¢[·nmãap`árõT俬C¾endstream endobj 229 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ35Ô32Q0P0b …C.=C aŒä\®B ¤XÂ0b] CcCCc'O.}O_…’¢ÒT.ýp 2.}0éà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææÛÙqyº(¨-¸Q´ŠE&ÂñaÉ+ßP9§_¬„cM/|½ýëÿëÿ¡à)ãÑÿj+X¸\=¹Ú<<”endstream endobj 230 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ô32Q0P0WÐ5T01Q01UH1ä2Ð30 !Œ‘œËU¨`lfT01ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èÉ–{½ÂùÐëõê U,__ÿûÉU³Éj®°DêÉ|ØÞö!ñ‰øzÅ 6]‰{ÖTl{ÿ~xØ6¡fÖ®•O¶‰²‰ÌZaÀÈ Àåê©ÈZÜCÜendstream endobj 231 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ35Ô32Q0P0RÐ5T01Q05UH1ä2Ð30 !Œ‘œËU¨`bhT052Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j žtµ­ÿëæÔ«­L±ÿ?Y?_þÿÿßîµ×·>l٦ͣcÀÈ Àåê©Èàw@üendstream endobj 232 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ35Ô32Q0P0bKc…C.=C aŒä\®B3° Pad–C3# 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmç …¨Ì£ËO®òÍ5ø‘WöÖûøo»¯ÿ]÷õöÞz çÿ¶éÿÇ·þßú;:€‘A€ËÕS! àD+endstream endobj 233 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ35Ô32Q0P0VÐ52V0±T01VH1ä2Ð30Š!Œ‘œËU¨`bjT032Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­¸" ±å­Ý¬É!³NVòüÝõ·üÝÞkÿÿ.Ýÿ?3ÿÿ¶é/ý_÷éöÿ_w}ÿ›ÿëMø¿ëÿ®¿ÂÓ_Ï_}Ýoo­>÷ÑÜÒ­6jà`hàrõTä3TÊendstream endobj 234 0 obj << /Filter /FlateDecode /Length 143 >> stream xœ35Ô32Q0P°P0´T01V02UH1ä2Ð30 !Œ‘œËU¨`lbT0Ò@lhi–ròäÒ÷ôU()*MåÒªãÒ÷P0ãÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠ:ìì¸<]ÔVº~ÊšÂàÀÂåê©ÈÌ€")endstream endobj 235 0 obj << /Filter /FlateDecode /Length 119 >> stream xœ35Ô32Q0P02ÆF †† )†\z† 8#9—«(i„0Œ €„.P™[€Ô8yré{ú*”•¦ré‡Õqé{€I§g å 4<–ËÓEAžÁ¾¡þÀÿ0XÀ¾AžËÕS! ùp&Xendstream endobj 236 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ35Ô32Q0P0UÐ5T01S03RH1ä2Ð30 !Œ‘œËU¨`b`T032LX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°s†>‡Â Èðwdû2ûå—Ùÿ=÷ƒ‰ÿ—òÿÿùxÿ xë¹êúÿÿ·ÞÇÛ}ýwfý¶éÙÛ¦ÿæQÝ6íhnnnbk›ƒ —«§B œLOšendstream endobj 237 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ35Ô32Q0P04&& fF )†\z† 8#9—«PÁØØ,TeÒbV```habnnRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-lNøò?þú×ë±;/¿j]'®¶B_þ?øÜ˜ùýëVF.WO…@.€C—endstream endobj 238 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ35Ô32Q0P0QÐ5T01W03RH1ä2Ð30 !Œ‘œËU¨`bdT032L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ñ ‹SÓåƒ-[–\UÙè½¶dË®ëku«®¯¡¿ú××__ÿWÿÿõõÿÿVý‚¿kW04pp¹z*r‰CAwendstream endobj 239 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ35Ô32Q0P0QÐ5T01W03RH1ä2Ð30 !Œ‘œËU¨`bdT032L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[¸áŒ‡œð!~Η/&Ä2ñ¾P¿”ïhïb·-¼DàËä—¥qËòWù_5¿Tuùe½ÿŸºé—ÿƒÀÛè+³Öÿÿ»>?úÖïÌòìÝ™åroˮݎm{ØzcòÙ¶¹[7ºaà´máà 01(p¹z*rPZuendstream endobj 240 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ35Ô32Q0P0bs3C…C.=C aŒä\®B° Paĺ@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµjÜ ùž\µÝ3}‹÷ÛþþÝ¿¿>ÿýþúÿÿÿŸÿ~ýúÿÿoÝÞú__¿ìÿ²·VŸ³ÂÛb^S×JSÇ †.WO…@.½NÚendstream endobj 241 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ35Ô32Q0P0bS3C…C.=aŒä\®B ° Pº@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµæÜ¾[~šFÝöfoz>-·îúÿÿÿsõÿÿÿwýÿß×òwüÿïëÿÃÈ{ûÿÿÿ]ÿÿÿ­¿ëÿ‡[“G—Ÿ\UÛ6«ƒ¡ËÕS! ­ÑcWendstream endobj 242 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ35Ô32Q0P0bs3C…C.=C aŒä\®B° Paĺ@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµüd,Mýó•?ñ¹·ý±ßþþíïÿßïÿÿÿÿúõû¦¯_ú°FõhéuîÖƒÅ.þ‡۪šYK·20r¹z*r—çIbendstream endobj 243 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ô32Q0P0RÐ5T05T03TH1ä2Ð30 !Œ‘œËU¨`baT032@X×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶b+“[Á»'Wm¦OXñá~Ûß¿ûëÿîÿ_öý²·Fõ¡žöº]ï÷Õhøwÿ}° L:HîßujýŠmvÛoM™uÄ`ƒ—«§B ýVñendstream endobj 244 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ35Ô32Q0P0UÐ5T05T01UH1ä2Ð30 !Œ‘œËU”4 *˜˜ Ž®¡XÎÉ“KßÓW¡¤¨4•K?¨KߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶Ð‹ÑEÀFá˹ù&‚_äoø¾åǽÿÿòJ=1PV I,Øá’üâ…𢆺¦/â×E¯ÿÿŸ­¶ú›xâòÃ,NÚâÕŠ¶-±mHkH`p`árõTäÀÄDNendstream endobj 245 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ô32Q0P0TÐ5T0±P03TH1ä2Ð30 !Œ‘œËU¨`bfT032 X×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶SAjåñ“«ÞO¬ÿ'6pøËþÐÞñcÍ«8óCùË~Õ篿¿úûÿ÷ûÁ âã¿í]=ûeÙƒé<ªG‹_VGoØÖÌ-p¨ƒ¡ËÕS! ø÷PQendstream endobj 246 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ35Ô32Q0P0WÐ5T01¡C.=C  Âɹ\… Ææ`A3 ÄÑ54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔìTðP¨p|ùò¡­Ëÿ¥/«|K®MøúëëÇëÿÿž\õ¿zBþÜåù·n¯Ýúpé†Ä2ílÞÓfVF.WO…@.n>äendstream endobj 247 0 obj << /Filter /FlateDecode /Length 298 >> stream xœ]’Ánƒ0 †ï ˜endstream endobj 248 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ31Ó34V0P0VÐ5T01Q0µPH1ä2Ð30 !Œ‘œËU¨`b`T0µ2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8£b‰ôÄÿNÍ“ÿŸøÿqÈ·TÌ_ÐÌȱßóËü¿ê×__ÿ¿Î$ùäjÝÿïÿoÇ»ž[v±EîVC>oËŽ$qÍG Œ\®ž \¹M¹endstream endobj 249 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ36Ó³4T0P0RÐ5T06U0¶PH1ä2Ð3 !Œ‘œËU¨`ldT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmA[b"ó! LJ ÷&W…/ùåûiݯÿUÇÿY~0üçþûï¡÷»n¯½¾eíèÌo§ƒM  \®ž \ ß>Cendstream endobj 250 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ32Õ36W0P0bcSK…C.=aŒä\®B# ° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-8ø¸‰ŸãcûqO«ø—õK$âìÿƒÀG«é“çñÔÿG—O þg`ärõTä ÉAÂendstream endobj 251 0 obj << /Filter /FlateDecode /Length 234 >> stream xœ31Ô35R0P0RÐ5´P01T0¶PH1ä2Ð30Š!Œ‘œËU”4 *˜šF@ Ôe–tòäÒ÷ôU()*MåÒªäÒ÷*ãÒw pV0äÒw‰šË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(¨-¸ æ|F½EÂívKA³£®šö’ëž];þWí?üݲÿÞ¶Koõ.]ìqza°UþÿûÕª‡|“;|ù÷^…|»ÉÚÿÿ»fÖÚÜ¥·n;Ì™ØÌ"&Ñ:ÁÅ…ÁËÕS! 'fT> stream xœ31Ó34V0P0bS …C.=C aŒä\®BC° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§g Ç%ht,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[Raìþ)ëGýø¤óGárŠü‚Ù_fÙ§ýrÿ¯ÿÿ×ÿG¾Î,çýÏ ÀÈåê©ÈV@Lendstream endobj 253 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ32Ö30W0P0aCS3…C.=C aŒä\®BC ° Paĺ@F¦Æ& %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú’Ç—ÿÿ¿MlíÿÿÒ‹¾þûÿ#ƒ—GÚ¤01(p¹z*r‰R=jendstream endobj 254 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ32Õ36W0PÐ5QÐ54W0´P05SH1ä2Ð30 !Œ‘œËU¨`dhT076i†æ`Y'O.}O_…’¢ÒT.ýp R.} :.}§g Ç%hl,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶°!Âñåÿ¿k 6þÿÿI⥈ý¡‚ÿ(àù¾yz[ÿ­Ô4õ¾ËڦͣÁÐÀÁåê©Ès¹A£endstream endobj 255 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö³0R0PacS …C.=C aŒä\®B° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmI…1û§¬õÿ¡@±ôÿž {ô[?ìÕ÷¾ôeê ýxÿë—¿$ׄ~˜¿ìßß¿ûóßß¿ýûûïo_.*N\aþ‡Á…ËÕS! MWM¢endstream endobj 256 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ32Ö30W0P0aCS …C.=C aŒä\®BC ° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmIEû§¬õÿ±ƒ¿×08°p¹z*rQt>üendstream endobj 257 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ3³Ô3R0Pa3scs…C.=C aŒä\®B3° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-©688CáÂ‡Þ ‰Ò _„3Ôž\½”«öáefMØôË"÷ÿ‡þÿÿ5þ?&ø7+óH[ªå”‡ûÿ1(0q¹z*rìæPendstream endobj 258 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ31Ó34V0P0bcs…C.=C aŒä\®BC° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. jK*‚ [ä7ñ;š«­›\Q²Oûåþ_ÿÿ¯ÿ |-&œYÎûŸA€‘ËÕS! U¹?vendstream endobj 259 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ31Ô35R0P0RÐ5T01P0¶PH1ä2Ð30 !Œ‘œËU¨`lnT0¶2Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¬áCó! ƒM<¶j_f_Ê÷Ü›¿üÚÿKùÿÿ÷ýÿÿÿäªë×}ýw+úzö¶i·"rY7ŠHãap`árõTäÊkA]endstream endobj 260 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ31Ó34V0P0RÐ54S01V06WH1ä2Ð30Š!Œ‘œËU¨`b`T052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[R‘–ÐÌa£œ"×Äcijåû&¸Öüê—ÿuÿëÿ¿ýKÿÿ›þwé×[ߦ³_?Ì¡Ïc²·#ŽG¼$÷oŽGÂý, \®ž \âH2endstream endobj 261 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ31Ö³0R0P0VÐ54S01Q06WH1ä2Ð30Š!Œ‘œËU¨`b`T052@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ðüÐt …ëÙ_²]çPû«þ«?üÒß/ûÿwý‚¾Áÿÿ×o½ÿ¶üÛõ\‰Ø-{ ÅI´>l} ’üÿò‰ôò? ,\®ž \~œKendstream endobj 262 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ36Ò35R0PacCcs…C.=C aŒä\®B# ° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-«îIdoÉ«â4ÊzYðõë_Óc±üÿ¿þ‡_…Vݘ¸\=¹î8äendstream endobj 263 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ36Ò37U0P0VÐ5T0Ò )†\z†@A „1’s¹ ŒÌ À‚ Æ–@†1ë€åœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹fNˆp¸Îñàø‚æ—v“¿|ü¿÷áäþ¹N¶íÛÛ>Üsä8ahccöþö¿¿Q÷—òjî1˜jÈÕØÔÀÁÐÀåê©È®-=øendstream endobj 264 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ36Ò3²T0P0TÐ5T0²P05TH1ä2Ð30 !Œ‘œËU¨`dfT052 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ½›êÿ_ÿÿ·ôzŒR¼¼ÚbÎÿPðGDþÝúu×÷èì6m6.WO…@.ò< endstream endobj 265 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ31Ó34V0P0RÐ5T01Q06WH1ä2Ð30 !Œ‘œËU¨`bhT0¶2Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. jK*$lœ=þOWì|xø?xýÿßî¿ë^âß²¤ážD¢ÞÑ‚„å ,\®ž \1Büendstream endobj 266 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö³0R0P0RÐ5T01R06SH1ä2Ð30 !Œ‘œËU¨`liT062Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQ0íü3k³ÃÝeÛ³wÝÛÛûßõªÿ¹ú¿c_ÿݲÿý]ýo—þoý]ÿw}C—«§B õ.>Ÿendstream endobj 267 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ3µÔ³4W0P0RÐ5T0µP06SH1ä2Ð30 !Œ‘œËU¨`jjT062Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQ0u[øÿSÖAÍ<ºËš¹ݽõÿö–ýÿ¿½Õw½þÿÛµK¿êÿ–]{ýòßïØëë—ÿ~[îùúÿí·úžÿÿ'w½üoWý÷uó«8¸\=¹6Oendstream endobj 268 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ31Ö³0R0P0bcc3…C.=aŒä\®BC° Pâè‘Ð  'O.}O_…’¢ÒT.ýp z.} b.}§g Ç%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQ0íÚÿäJSÊó2îª{bws—Þz7ínÙ´[o®¿}¿ü^÷ßèKù^¿jÕ¾æ{}­UûòžÕñˆAoâþL \®ž \r¡Aìendstream endobj 269 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ31Ö³0R0P0RÐ54W01R06SH1ä2Ð30Š!Œ‘œËU¨`liT052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQ0íü3k³ÃÝebosÿÇþ^úïVü÷wÓgÖßzÿvéÿì½õÛ¦ÿ©Žßúëߺ½uÓŸ&½¶73èä*NÝ-Û´X¸\=¹b8G6endstream endobj 270 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ36Ó³4T0P0bcc3…C.=Âɹ\… Ɔ`A * Èu €ÀÈ̤ÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYÈq‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôvý«>´nÒK½½A_vů÷¾ô_dË~ooï/M—þ{/½Zzi­êÏ’i?8¸\=¹69¨endstream endobj 271 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ32×3³P0PÐ5T06V0²P0µPH1ä2Ð30Š!Œ‘œËU”7 *™€ô cc°¤“'—¾§¯BIQi*—~8P%—¾P—¾S€³‚!—¾K4ÐÔX.}7}gg7 7ÀÆFßh—¾s~Nin^1P‹—§‹‚Úb=îµážº*[&½Ú·:ôÕþÞ¬ýÿmÒ;ÚÞýW[õË5 ÇVF.WO…@.Ò-2Üendstream endobj 272 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ32×3³P0Bcc#KS …C.=C° œ‘œËU¨`daT025€h1Ë8yré{ú*”•¦r釕qé{Õpé;8+ré»DŒåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j¶s4wû¿û¯¶êÙ‚3ÿÿ_õjÿÕªµá«®–Lºäí©·ŠA‰ËÕS! â»5¶endstream endobj 273 0 obj << /Filter /FlateDecode /Length 129 >> stream xœ³0Ö30Q0B#C c#c…C.=C° œ‘œËU¨`ad`QkÑa–pòäÒ÷ôU()*MåÒªâÒ÷PNÎ †\ú.Ñ@c¹ôÝôÝ€Ü}o] Œs~Nin^1P‡—§‹Â.WO…@.ÖSmendstream endobj 274 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ3±Ð31Q0P0bScSK…C.=aŒä\®BSC° Pâè¡¥%H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\pAóq‡ò¡6ÁÇü GYq¨ÌUÙÿzé¿fnÏã÷ÿCAÇ\ï“+Î3³7ËÿǾ\>åçãþÿ ƒ—«§B ÕmUaendstream endobj 275 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ó34V0P0bSK…C.=aŒä\®B#° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\pAˆÃFùP{‹@>‡Ú—Æ’Éÿ½ÿ{Ûc°§þÿÿÿšeÿÌêùüð?ð×äÓäÉþÿ8¸\=¹‘ÜPFendstream endobj 276 0 obj << /Filter /FlateDecode /Length 260 >> stream xœ33Ñ3µP0P0VÐ5R03T03PH1ä2Ð30 !Œ‘œËU¨`jnT032ŒXÄÊ9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ç<0=ÄÏñ¸Šóë^õKûë¿þýþë¯ÿ×/ýúzÛûõõKo•xÔ7ÆíeÖ(ç/}[6mëbÎuÓ£|ÁxÚ´µ×¦®[µmoTÔö¸×²K·Mûw+\„3·ºfÖ²[¯ÝʾáömÚ ³9B‰-ÛÙ´ylbap`árõTä8™_Øendstream endobj 277 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ32Ö30W0P0W06V0´P0µPH1ä2Ð30 !Œ‘œËU¨`h`T022ÌØØØ,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨mlç°Ø÷)kÙŠÿ¿^}·õÒ¥K¯˜¸\=¹Ü?.4endstream endobj 278 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ36Ò3²T0P°PÐ52P0²P03RH1ä2Ð30Š!Œ‘œËU¨`hiT°02,€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-8¶¶^ºôWWÿÒߪëëð¿÷ÿÿöÿÿÿÿ§©ÿÿÿßþÿ„ïëoÿÝ»ÿöíûùùùy˜¸\=¹-)J)endstream endobj 279 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ36Ò3²T0P0QÐ52P02Q03RH1ä2Ð30Š!Œ‘œËU¨`hiT°02L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(èñX(-ÎÏÏß»wÿíÛ÷¿¯ûþïû¿ÿßþÿÿŸÿ .ýÿÿWÿßþ¸ýq[_ÙïíýeË®K—.u­`hààrõTä;ðJ(endstream endobj 280 0 obj << /Filter /FlateDecode /Length 155 >> stream xœ33Ñ3µP0P0UÐ5S03P0±PH1ä2Ð30 !Œ‘œËU¨`jb„0LX×Ì,çäÉ¥ïé«PRTšÊ¥”çÒ÷“NÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚ÚÂ)1Fûÿ#Àφ{¾Î;Rë‘04pp¹z*rT>Qendstream endobj 281 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ32Ö30W0P0WÐ54S0´P°TH1ä2Ð30 !Œ‘œËU¨`h`T022̨É,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPÛØÎa±ïSÖ†3ÿ½þú:në¥K—^1(0q¹z*røv.\endstream endobj 282 0 obj << /Filter /FlateDecode /Length 109 >> stream xœ32×3³P0P0T04S02Q02TH1ä2Ð30 !Œ‘œËU¨`ddT0Ò† lf–ròäÒ÷ôU()*MåÒªãÒ÷P0åÒw pV0äÒw‰Ëåé¢ðÿÿdÄåê©È@×%Ùendstream endobj 283 0 obj << /Filter /FlateDecode /Length 111 >> stream xœ32Ö30W0PaCsK…C.=C aŒä\®BK°˜6b] 4˜™‚8yré{ú*”•¦ré‡+Xré{€§gC.}—h ¹±\ž. 2 õ ÿ`°žA†ËÕS! ‰c Nendstream endobj 284 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x~ðAãC9ƒ/ùŽl_f_û2û¿çþ¯ûÿ_ÊÿÿÿŸõ0ø3kmýÿ¿ë¾þÿ}ýwfý¶i·b×I;æL“hmfe`ärõTäù@Jendstream endobj 285 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ31Ô35R0P0bc3SS…C.=C aŒä\®B# ° Paĺ@†¦Æff 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂfFíuâ¬ý3ošrÿÇ.ŸòüÁÐÀÁåê©È„Q={endstream endobj 286 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ô35R0P0bc SS…C.=C aŒä\®Bcc° Paĺ@†¦Æff 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ3²/næçÈ÷Ü7ûR¾÷·_*$nçÿÿ”5GÏVÿuÜÖ×ÞÞku@OlÚ´i¢bõ&]Z«ïý²Ä¶ôRÿ&.WO…@.¢µ@üendstream endobj 287 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ31Ô35R0P0QÐ5R0¶P05UH1ä2Ð30 !Œ‘œËU¨`llT052L€X×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-‹1czØúà„ÿã×ëÄcôâYÿ‚^uu‚Û_¨É‹Ü÷ýúåþ=ûêÿõ?·ÈÙþ_uM\m…hù¯èÒm{—n¸t#‘µM›GÇ €‘A€ËÕS! k{F¿endstream endobj 288 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-pœ1Áñ!ûâÇŽÌUz“ª¼—¾þúêºo–möÿõqîÿ,™9¾P¸7¹6&÷ríõíÿÃÿ?¹Zÿÿ÷û_ÿKv_w½dÛë\Ý6¡­mb< \®ž \<Kendstream endobj 289 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x~ðAãCö–š|Ͻ,÷Ö¾4¿¾ºþeüÇßõÿÿþÿiúÿíßüÛÑE¯Kß.½‘¨'Ña°§þúú×1»¿¼öÕÿ«ï½dÛô–¦ÓŽ&¶6³20r¹z*rÄM1endstream endobj 290 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ32Ö30W0PaCsc3…C.=C aŒä\®BK°Paĺ@y 02³0©pòäÒ÷ôU()*MåÒW°äÒ÷ªåÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠ,íì¸<]Ô6è(<ú3ki›˜ýÿÿÿÿeâÓ?¹*"Ñ…ÁËÕS! yµ-endstream endobj 291 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ32Ö30W0P0WÐ54S0´P06SH1ä2Ð30Š!Œ‘œËU¨`h`T052̨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPÛØÎa±ÿ§©7Nýÿÿÿÿ\l‘‰¯4H³©ÿ[úëëú¨—™™¥ Œ\®ž \¡a2¯endstream endobj 292 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ3¶Ô32T0P0bcSSK…C.=Âɹ\… Æ`A * Èu €ÀÐÀÒ¤ÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYÁKß%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[ÈËtPªãÁÂùœ?ü×~¸§wÿ¿ÚʲIÇ/ýÕe]ºôÚ´éQ±uÓÿÇÿ‚þÿ?ù%_þÿÿ6±•A€‘ËÕS! ÖB]endstream endobj 293 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ33Ò3²P0P0bSK3…C.=C aŒä\®BSS° Pa ĺ@ƆF–F& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ) Fû_þÁ»ê_×Úÿºïÿoûåÿk¿üqÂßÿ›úûÿÒºÿ/ãå_~z¸ùßäúÿKîÿiþoÿöõË+[ñ´1Õ1(0q¹z*rFäQMendstream endobj 294 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ3µÐ³0R0P0bSSs…C.=C aŒä\®BS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((56<¹’ò`GµãþüÛßþûÿû?¬_ï}éË^}ÎBÖ?g$ض?JÿÊ~Ë__ÿoúõõKêLqÑ`dàrõTäÄQOÓendstream endobj 295 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ3µÔ³4W0P0UÐ5R05U0µTH1ä2Ð30 !Œ‘œËU¨`biT032LX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïତ\¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ æÈ³Hd?¤.bºÀáÖ!³-³_¨Yù{¾¾TåÿËÿW|Õ¯WÿÿmlÿÿÿŸoø†ýÿ~®_wÿë¶Ý™ùÑÙÛ¦öÎQm“ðN8‘$Æ£#¡ÁÐÀÁåê©È`IÂendstream endobj 296 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ35Ñ3R0P0bSCSs…C.=C aŒä\®Bs° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(p?¹’òÀ=£©ïÛß¿ÿÿÿÿßïÿÿÿ'ÿÿÿõÿñÜÇÿŸ9ôÇ~ÿ¿ÿ@ðã?¼°˜Ø¸ù ƒ—«§B ævL©endstream endobj 297 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ33Ò3²P0P0bSKSs…C.=C aŒä\®BSS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h±ÿ™Õ3ÇL¸ïrüTðñÿgƒÀÿèàËåÎ5©ù?8¸\=¹)ÐNBendstream endobj 298 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ31Ò33W0P0VÐ5R0¶T05WH1ä2Ð30 !Œ‘œËU¨`ljT0µ2ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-´?‘î&õœ¿7_üÿ¿©EYS‹ûîæ.Ý6í0‡Ž!7ƒ —«§B 0JAendstream endobj 299 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ35Ô³T0P0bKSs…C.=C aŒä\®BS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h2ô«-ÖàÙÍýâøøÿ¯ÿÿÛÿë×xo1å \®ž \ê$@iendstream endobj 300 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ37Ó34R0P0bscSs…C.=C aŒä\®B3K° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜²­]¯¶øäñÔË®—þÿݲÿÿÿo—þÿÿÛÁÉÕÿÉ*À䀵ÞXÿÿ¿ïzÿÍ™s™OÌßÚÀÁÐÀåê©ÈÏ7kçendstream endobj 301 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ33Ò3²P0P0bSKSs…C.=C aŒä\®BSS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜²¾çë:! î0÷tßõ·¾ýÏÿ„ÿEÅßþ£aû¿ÿÿþÿ¾ï—? ÷ÔNýûÀÈ Àåê©ÈE]›endstream endobj 302 0 obj << /Filter /FlateDecode /Length 231 >> stream xœ31Ó34V0P0QÐ5R01R0µTH1ä2Ð30 !Œ‘œËU¨`lnT032L€X×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïତ\¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g™šñ4èï’z¡[2ãË|Ï_µñÿæÙ×ÿ®ÿý&åªÝj«¶n̓5Íü‰olÛÛ>Üã}"±^q³OcóÛ÷ûîóþý_õ×ݨ»Q·‚;¤B$ ¦²)&¶:t`apàrõTäO_endstream endobj 303 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ3µÔ³4W0P0bSsJ1ä2Ð30òÆHÎå*T056 U Ž.P˜™˜ƒ”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j;âÿœ±´ˆg¹`7í~ô×ýÿÿGÿÿÿÿø­ûÿDÔÿG6­Òÿ8¸\=¹ Fdendstream endobj 304 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ33Ò3²P0P0RÐ5R03P05WH1ä2Ð30 !Œ‘œËU”4 *˜ZF@¬ "€rNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÂaûOY®ŒÓ¸3›¾mÏÞzoÿû»ú¿c_ï/2þnÁÍèúëÿ­¿ë04pp¹z*r¤µNßendstream endobj 305 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ô35R0P0VÐ5T01R0¶PH1ä2Ð30 !Œ‘œËU”4 *[Æ@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ô9l#`£ÜÌïÐ\•cköûïþ¿{×gÿÿ§™ñ‰ÐÁ…ú;qŠkúúeßþC]ÿÿí¿õäj`ëwߥÛÄ?Üp4ŒHšu°)‹A‰ËÕS! öWFÿendstream endobj 306 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ó34V0P0RÐ5T01V0µPH1ä2Ð30 !Œ‘œËU¨`b`T0µ2Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[RaÌþ)ëGýødùÃñ‡Û1ù3ê&×ך_®­»ÿ¿þ÷_ˆìõõÿãö^_zÿ (gÉËqÇ6¡—ͬ Œ\®ž \I€Kendstream endobj 307 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ36Ó³4T0P0VÐ5T06U0¶PH1ä2Ð3 !Œ‘œËU¨`lhT0¶2ŒX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ž%92²1øÐÄöeò%ÏúK_e‡í©_ñÿÿOÓ¸ÿ»ßí^{=Ww˶K‡¦I´¶q1(0q¹z*ṙ;ºendstream endobj 308 0 obj << /Filter /FlateDecode /Length 506 >> stream xœ]TËnÛ@»ë+ô–ö1ãÆ^’K-ж? Ç:Ð!² 8‡þ}IÊé¡  43äp½>=¿¾¼®Ë½=ýØoÓ¯zo¯Ë:ïõãö¹OµëÛ²6}hçeº?˜žÓû°5§çoÃöûÏV[ÔëÁ¿ïõôÓú³^õGÓt›ëÇ6LuÖ·Ú\º®\®×ÒÔuþïS¶£c¼>J{”Á;4\ú¾Áñµ"€éXБt*èX¨âÀ¯ÁËA_Ï倇™ô©ðPI9U“cGÊ©ši<ÒZxŒ è@3)ìG­é¨“æ"€¤ðå9Òs„£(W‘®P"€2”ÁMâš@4“tu4“tuS,虚Iº‰ºx'€2œÍ$ÝDÝ„$ˆG®”Á&$A„> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcS° P•Hµ‚.P™Y”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ž5>h|ÈÞò募ù‚æ*óëKîû¯¿ú]´僳EYûï=‘¾Ÿyûé6¡‡vÝ:ÌÍ£#¡ÁÐÀÁåê©ÈâT>ýendstream endobj 310 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ31Ö3µT0P0bcKS#…C.=C aŒä\®BcC° Paĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ @ŽK4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ Y ù¯ýßõ‡¹åÿŸZ¿ãÉÕz…¹ÿ‘ÀO‡ÀJS/&.WO…@.Êÿ; endstream endobj 311 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ31Ö3µT0P0b e¨bÈe g`ä!Œ‘œËU¨`lbª2LX¨ÀÀÀÐÂÀĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYH¹DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j+–ópÿ4iþþü ¸çÔÀÁÐÀåê©È'< endstream endobj 312 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ö3µT0PÐ5&¦ Æf )†\z >Âɹ\…@y° P•H ˆª#3 #'O.}O_…’¢ÒT.ýp .} j.}§gC.}—h á±\únúÎÎn@n€¾7Ð$.}çüœÒܼb ;;.OµgÎsT¨âQxìkiêÌ}ôɹ(îs«~eþZ¿êÿÿ_ëÿc ƒ.I§WËS®j­/oà`hàrõTäv¦K'endstream endobj 313 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0bcKc3…C.=C aŒä\®Bc#° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-’lgÑç^·Ë„óAóQÛúoWf-8>…­Û”ù¦€j{›M›é‰œe¼O£“0¥”«ˆË7ˆ‹A‰ËÕS! .9endstream endobj 314 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ31Ö3µT0P0b#c3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­xe*»ÕÏ7lS„cÏÿ­÷ö¿-_ÿ;öõ¿ëU¨œþìoÛ01(p¹z*rÝ7>Gendstream endobj 315 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ðüàCö¹yózξP¸7¹ÖnrýKó“ë¿üºÿÿËÇûÿÿÿÿ»Ò4êÿÿo—þÿݲÿ¶÷Ö{»c·l“ðNÚ¶máÃ\ L\®ž \€(Iõendstream endobj 316 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ31Ö3µT0Pac S#…C.=C aŒä\®B# ° Pa ĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚6æËëcK¯sO )*]ç /ÿ|ê<úäªC—«§B )=endstream endobj 317 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[qÄSÈ?øàÂÌLÏU¡]/3K×GE}]DñK}ý¿ôÿ¯øÿ@~02p¹z*r“ ;Ìendstream endobj 318 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ31Ö3µT0P0bCSC…C.=aŒä\®BcK° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[±ÀèèŸYëÜïÿ‚'Ë4h~ôû‰q@þ‚û¾_×Úÿ¯Éü½þozö­¸½KsÆŸ¬HÌeãbP`ârõTä¸3G‹endstream endobj 319 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ]±n! †wž‚7¸ƒÓA"E^’%C«ªí c"†pˆ\†¾}±/éÐáCú°-ù÷p<ŸÎ%¯zøh ~ѪS.±Ñ}y4$}¡k.ÊX3®O“o¡ªáøê÷O%Ý(mþn4|ºi'_fÂ%Ò½¤Ê•Ôaá(*ñ_i¿ \Ò³sêŒõÓ ] ]«¡+vuëgÑëa݃`½Y„^õ¬ëW½Áúq'{¾6â•9ü+«ÆGkTV¹\€ƒçBG¬Kå)ÝQ¿q*m?endstream endobj 320 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ36Ö3°P0P0b#sc …C.=C aŒä\®B#C° Pa ĺ@@`dalRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j y¸cô’Ü:#Çý\î¼`ÞÀÁÐÀåê©Èˆã6endstream endobj 321 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ]O1ƒ0 ÜóŠü Zº º0´ªÚ~ 8Ê€…0ô÷%:t8K结Ϣë¯=ÙÈÅ#8xa䯒8»%òGKL–\[ˆ;Ë&å™ènÊ¿?ùj@³ñ»šP<ëÓ9¯ä§qö 0(‘5EÑ6Æ´ IÿI{`0»³’mFy©êì?”M%Ž›–bn𛤖ð÷Œw>¥ø ö2> stream xœ31Ô35R0P0Bc3cs…C.=C Âɹ\… Æ`Ac# ÊRNž\úž¾ %E¥©\úá@u\ú@E\úNÎ †\ú.Ñ@3c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚBŸC™/â÷÷÷ÿòÿÑÿ'Wõÿ®¿uëÖaîl6.&.WO…@.Ó¶/Sendstream endobj 323 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ]O1ƒ0 Üó ÿ €TA%ÄB—­ª¶Žƒ2àD! ý}I€ÎÒùîä³ì¯—+Ûò¾(‚±¬Ín H0ÐhY”h‹qgy⤼ýMù÷Ǭ2¿«‰äót.òªÜBè4Í^!Å#‰¶(ºÖ˜Në?i fw6M—QÕ5fÿ¡¤h*qÜ\B ޹in’ X¦ß3Þù”‚â HSendstream endobj 324 0 obj << /Filter /FlateDecode /Length 273 >> stream xœ]‘1nÃ0 w½B?°ÉJ\Ò%C‹¢íl‰ Õ]^§òõ]PS¦æoÓ»o|ê[QX#>ʰNù†j4Æ”@aŽÿžúS«˜Óž:CÃÎ=FhØÙ²&hØ4öGè5²"ÆF~µÆ•º2¤•º2¤4Ùè,Æ8þ‘£D'ÉÕ8ô 3ðTž½${NöRÇzôÌJm¼´òÜÊHyŒã c(’RÝQj)ò¾öÅðêøûÎuxÖŠy“KÉ%øKÆ¿c–µp•&Ôù±“endstream endobj 325 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2543 >> stream xœu•yPWǧÄÖԤƀšîq»x¦bÊu#èÆ(*&ñZÔL`kfa`î™îùÍÉ܈0"#ÞWŒŠ&êFct“T6‡Fc­+îZoȳRÛýcÊ]Ýýºßû½ßïûù}ÁKÅ#bLvnîªó‡g&¦‰©£/ò;~vÈ0Rø’Ô5uܽçPïDÄŽG•x$AÈ*M¬ÓãmÌ–Ék%;‹UÂÙ‹¿š)\8þbá±¢¤@$æŠTÅb‰HŽ” ß–”ˆU5ÂÙYÅ*•üµy󪪪æŠ$ʹ2ÅÎ¥™ÂªU±pƒX)Vì Wʤ*áZ‘D,üu‹s½eË$òJ•X!Ì•ŠRQ¹¼X´S$‘ˆäÅ%ÒJ±\YR.“.àñxÏe¯®®)(Ì+)+ýµ%Ïéwu9½v¿šIÓ`¤*AÁ(a':w©”é&-T™ÜLƒŽ²> ÔADe¶<ŒÏ¦}‰>ópøoBz»">£ÃLË ›‘rœÒ‘ÉõP­å¾…šm¶ ÝÈzÐÕÆ0Z<ùiOš¾5f©ÖqÁ¹ï†öÑ-µqDÙ B  ºHÍ ž¨s7>::ƒ2™†H Êsºä=›A§ƒ*]Tœqn…˜èð&ÜÃkèÀ@¿o¯÷izÉÔÄ_tÑÐ]$ºŠ÷ѵû|ô:'ðìm½ÜÐ-õ2K•”dm º#ÚÝ?³>\’W¼Q¥¥WßõKœ¾ z?8¼N‡ÏA÷<¹ÚÞäž^C^¹úÍ",¤ks‹E;À *ØjwG[`ÙQéÕHeÛNU¹zàºÇI‹ùø<´û ÀX«‰¥K…R–YXÛÝõDGèÔD=Eî Ds¢â}ä'Ô‰‰WÐ@6×ù4úZ³Æ@±c¹µÆTa’›åÛñ›iVÍ{+V¹Yw¤ïXÓåž;tã!W"äѲ¾-™Ex†a8¿ÝÑè¦:Ä»¸¼MP¦ÐW˜ªé‚i5 Ÿ\ø‘äbOÓ¾}Tý&íÖ‚%bé6ƒíNu#„ ôûü!ØCÆä.½ª´vë–#E—?¾‡Fï£R9º(깇>CÒø ab‚ –›]WW«aÕ`"•ͺ=mñ“ù}9x NÇÓñ´²þ¦ý$è17pè³F3•5 rüäà¡ÈÞËtìü¹Ãç և圤Mºáâ ¢"~ƒŸ -ØÁ_¯É4°jÊh3[ žä@Ü}ÂaÒSLÕ:¬¯é“vlçzo,ž€gá™sέúÙ‹~wñnþôàØM Ý\‚'ÏÚŒëqÖÚÒ«¿¹È[·lªòèÀF_Ö êÊàpü`|``r­ÆfÓ[é ÄÄ%–ŠþZâIw‰/òQßÐhA¤®Q%—WÈ«Ãê¶Ö®Ö.jÙÓA°“ƒªÃq‡9,†Q›#þ-Ôv™vYõ´±b;&kßÓWÔ—Â.2¿§øÄƒ>4Ã7Rv`4ªfMéÚÍœQ˜ü­ížpë%zDp4ø}pDrtøÚ…ø(þoÕUËl§ºÎ5ÿ©:žñô¦µnÄ/T‹/´ÛôPnßQ”ëiïa¾ª…U`+£gµ¬täúxÁ™®ŽÆ¾(Õ~$pî¿0¨Z®Ú¼ÈêúÀ&W««‘v5 üpeMç¢@¬¹»»µíÄÙc‡O‚ìà°Y;xÍØìŸC!hGœeog´¿Kµ»l›ñõlªD\X Öpu>­‹ ˆcñQàÿ3ª&u~.#»Á8œÑsOFÇš 6}ÑâãûÛ#š¨æƒÁ ÿmõú %Ðn³»Ý{èTÔ…ßmA|B UQ>Úa\Uô–V)dòHÅþ`ÈåóSN‡ÝnÒn·Õ½Q¼®´”æì•†4¹­îÀ—Ec)nxB|û„Þ9+èT¶I¥J¥TÚ¦ììlkëäzŸÁΖŸßŽ&^à'Vå 8#v |:“‰13~ôK®¥¬`K×ù ³¡ÉÃXÏ€6lǯñH'@ æž|¿ˆÓ†íaîಟ>ú´õÒm*´qùQ ÏÆÎ56˜fغfëNn£d9|ÞÖ¤ q-ˆä;l^ÇSÍOËòדoþQðòÒ¥:®6ë$G?>¹ñºOÓÇo~°§È¿°¤òj¶0.kI\ú”@¿´ó¡A?ƒ{Hô‡ÎÎZkQ›ªèÊåLB©s›¼!oô`€jýÚÞs„!W¨ûÇQFü‹†`0 ®‘S1ƒ‰¡6eÌ*˜i‹Ùn>T^*8¹HCKz5’2¶Ý“’Âãý ,shendstream endobj 326 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ3µÔ³0T0P0QÐ5T05S05UH1ä2Ð3 !Œ‘œËU¨`jh*2L€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 7L`ñ0Pæ°QøÐ‘"×ÄöE¸Ê÷¥Ýäª{“ÿ¾¬ûuÿÿËúÚöýs™Ãÿ«­þïÿ©¢û×¾nÛ½mÚ­hÕ6 :†Ü¼‰M'4”˜¸\=¹Ç^Ffendstream endobj 327 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ36Ó35Q0Pacc …C.=C aŒä\®B# ° Pº@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB~ö¹yó_þÿÿïúÛÜÄÖþÿÿÿOXÞÿÏ×ýþ,à‘ Û?&.WO…@.HZendstream endobj 328 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ37Ö3°P0P0bsCS…C.=C aŒä\®B33° Pº@@`b`d RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ä<Ìʸ ¡ñ!{‹\ïC¦<_¯¦|¾é_î/ý¹¦>þoýÿÿñÿ±ªG÷ÿoà`hàrõTä¬&Miendstream endobj 329 0 obj << /Filter /FlateDecode /Length 221 >> stream xœ33Õ37W0P0QÐ5T03R05UH1ä2Ð30 !Œ‘œËU¨`jnT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°`ˆ‡@<‡Â‡Žd~ƒ/ùž{Õ¾Ì~ùuoþòkÿ¯ýªÿºÿÿ?ëÿ@09týÿ{»ã¿¯ÿvé®îë\Ý-Û.ÝHÔmfÙpDÇ`CÂ&Þà  \®ž \MJendstream endobj 330 0 obj << /Filter /FlateDecode /Length 228 >> stream xœ37Ö3°P0P0VÐ52V0³T05QH1ä2Ð30Š!Œ‘œËU¨`fjT072Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-äbžÂvp¢["{‹œà‚…GO®d‘>̹oö«_u³ÿýÿþûÿÿ¿ý‡‚¥ÿÿÿŠÿ[õ·lìÒ[±K{o˜®øà÷õ<úlܧ0×ÙC~T=ü‡Á…ËÕS! îZ–endstream endobj 331 0 obj << /Filter /FlateDecode /Length 229 >> stream xœ35Ô³°T0P0QÐ5T0±P05UH1ä2Ð30 !Œ‘œËU¨`blT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¤¡MFP¢F ± }QÁ^&þ%òž¿jëæÿ¸ÿþ÷à KS‰ŒSG›¾±ÝÛ¾½íÃ|öìN­f{xŽ-îíßû_k×‡ß ¸v( aÊ?E'--…  \®ž \nÿKãendstream endobj 332 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô34S0P0RÐ5T01Q07SH1ä2Ð30 !Œ‘œËU¨`bhT072Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 8ÿÿÿ×ÿë¿þ­-½£'(rüϬgžÿÈàOósãÒíÿwõþnÙv(Z´máæKX¸\=¹õÎP2endstream endobj 333 0 obj << /Filter /FlateDecode /Length 240 >> stream xœ³4Ö3U0Pa 3 #…C.=C aŒä\®B ° Pa ĺ@†ÆF& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚6CÂÒ¶†‚‡'W/¨ãý]'ýûÛßý÷ÿÿö þêÿÿ²oo­þzïCqM¼;bÄ?yHœkH°Wœ½¼M~ûÃöïoÿý]ÿ»þÿw°ú×ÿã×ÿ*ªúà袴÷ ƒ—«§B $`Õendstream endobj 334 0 obj << /Filter /FlateDecode /Length 243 >> stream xœ33Õ37W0P0QÐ5T03U05UH1ä2Ð30 !Œ‘œËU¨`f`T0²L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[àÈcœ" '`£ð¡‹‰}ã^ƒû¹/ïoÿ¿ýÿ¿{×·¾­øÿÿÿ„³‚ò&+¸ÇÝdÚ}Ȫý…>‡¾cUÜôõ×—þófýÿ×ÿìɡחäšÞòæÑ©Hl޹&á›p(1Å  Ñ…ÁËÕS! ¼ÙQ[endstream endobj 335 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ3µÐ31W0P0QÐ5T05Q05UH1ä2Ð30 !Œ‘œËU¨`biT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[p§_Á±FáCó!~…|O[ÕKþÞ—þ_úúëkö­o[åö?þÿÿÿäÐ÷ÿë¾+Μ¿mß¶ëyÛ®çênÙ&áÍc0툎Á†ÄéE L\®ž \žIFendstream endobj 336 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ]A E÷œ‚´E[4if££^€Â`X”¬ oï0U.Ƀ?É|ªÝaˆa–Õ9Oöгô!ºŒé™-Êï!ŠFIìü1>íh’¨vG“n¯„’è?™«K×¶|Õ,CvrøHÆb6ñŽ¢¯kè½Ñý=m–Á’kŒÒk ¢ï`”n‡¢+`H]Ñ¥)CºFé¦.ŠÀ¨Ž2¤ÒŽTÓJÒ/ö]¡ìXÚ~ËIûÌãÌ_•KÓñ÷kiJeJâ âTj1endstream endobj 337 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ö37W0P0bCcs…C.=C aŒä\®B ¤XÂ0b]  °°4µ)qòäÒ÷ôU()*MåÒ*ãÒ÷“NÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚Ú‚§Œ²·øå;2ó{~Yöëkþ_ý÷;þÙ,0Ú¯¶úÿö'f±¿³wÝÑ“HÔmãÌq:ØÚÌÊ ÀÈåê©È2y;)endstream endobj 338 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ32Ó35V0Pa#SSK…C.=C aŒä\®B#C° Pa ĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j‹-T¾ü÷ÿÿ?ûÛ†CÇÿÿW:¯ÿÿäâúÿHàÇ\ç:&.WO…@.&>Nendstream endobj 339 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ32Ó35V0Pa#3S …C.=C aŒä\®B##° Pal–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÑÌ ÿ'¿ÿ|4eûÃàÀÂåê©Èk>Eendstream endobj 340 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ35Ö30U0P0bS#cs…C.=C aŒä\®B ° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-šÏ‘Ágàð¡ùâ¡*ΦVq/íEkë¿þ¿þ+®ÿÁÐÀÁåê©È&ï?endstream endobj 341 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ31×37U0P0bScs…C.=C aŒä\®BC° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ›ŽØØJñ>d‘¨ò}i¾äþ¯ûþkÿÿ)ÿÿÿŸoØþÿUoË×»tÛ;W·Mè°À†C'¸\=¹5J=endstream endobj 342 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ35Ö30U0P0RÐ54S05P06WH1ä2Ð30Š!Œ‘œËU¨`bnT052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[4³gŽLBãCvá<_OóCù«¿ýÿöÿÿíÿ`°>þßÞºÝq¯·ìæ,¸3_`Áƒ8{°”p€Ä.WO…@.õ¤EÚendstream endobj 343 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ3¶Ô36V0P0bcsJ1ä2Ð30òÆHÎå*T061 UF@¬ T–¦– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú¢ù’$>Ìëó÷4ʪz¾þWö­‡>¾þ²¹04pp¹z*r \:endstream endobj 344 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ36×33W0P0aScs…C.=C aŒä\®BcC° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j 9OèLM,h_üЊÃnò—¿ï×ö¼àl<¹ŠýàÛ7¶{ì¤~âÉTÜðì°ÝûÝ_³K³Ù„:‚'465p04p¹z*r¸Ì?endstream endobj 345 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ36×34Q0P0bc#Sc…C.=C aŒä\®B#K° Paĺ@@`naiRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<ÛTÿÿúÿ¯Kÿìpu³Ÿ¤Îò þ¹ìQ×îV½]Ú¦Í&ÂàÀÂåê©Èq½?lendstream endobj 346 0 obj << /Filter /FlateDecode /Length 169 >> stream xœ32Ó35V0P0b#Ccs…C.=C aŒä\®BCc° Pº@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­yÜ"7ÿèOSïoÿÿÿÓg[ûîOYÓß&¶20r¹z*rÛ{1“endstream endobj 347 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ3³Ð³4W0P0UÐ5T03Q0µPH1ä2Ð30 !Œ‘œËU”4 *˜Z¦@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-œâÁfÄ{DG ›Eê) ®ÀÁÆC,_š/ø{¾,­ò÷~ïý>>¾êÿEÖàÀÿÿÿŸ\õý‰´Þÿïwëóö–½Î-÷Î-“ŠÎÌ1Ùp˜3犀Ž!7›N[@#ƒ—«§B |ÎF)endstream endobj 348 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ31Ó31R0P0b3cs…C.=C aŒä\®B#° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-äHœç±O ÊDÄÖ¹vûÛÿoÿo}[‘Xñ‚ÒžvΦ‡²òô+k«bjëÿ¯]3ký6jåW¤o´|8TÉéð€‰AËÕS! 5å@×endstream endobj 349 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ]1Â0 E÷œ"7h›Ò¤Ê , \ M”¡iÚÛã¸ÀÀð"=Ç–¾]ì‡cð³,.i²7œ¥óaHøœ–dQöøðATJÞÎã׎&Šb2ñþŠ(©Ýêg3bqmË-—ªuÈN>£±˜Lx èÊ:ç@`þ¾vë@ï>µFéšú»M ŒÒ›-i[£tÓgm€QšŠ¤;`”®Ê¬úÕYÕÒ©†´%Õ”0CZsÎo¢9/ÿÝUÚ%% 3_ˆ/÷GŒSÌS’oýn endstream endobj 350 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ3¶Ð3R0P°TÐ5T0¶T06WH1ä2Ð30 !Œ‘œËU¨`diT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁÏMü÷(̾”7Ý{é¥×/³£¼êsèzwèeñÏçm^ÿ냗oد·º—¾l;Ý"vCa›bbSC—«§B K%<Øendstream endobj 351 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3¶Ð3R0P0QÐ54W01T06WH1ä2Ð30Š!Œ‘œËU¨`lfT052@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸á‡Â‡~³Œ >±z“/½ú²:~éõW[ÿ–þZÆõ¯öýÿºôë×ÛÞ¥·9n½ oM~ý·noZ?çú+™™™ž«8õqó8le`ärõTä²_Lendstream endobj 352 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ32Õ31S0P0WÐ5T0²P05UH1ä2Ð30 !Œ‘œËU¨`d`T052ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ذa~éµßÜòÿÿŸØÞ"×ãïõeÿ—ý±úÿ#^íMXýõuüë¸ýA…×_¯-ýÿ²ôWü¯è¥#X¸\=¹n8@þendstream endobj 353 0 obj << /Filter /FlateDecode /Length 235 >> stream xœ33׳4T0P0WÐ5T07P06WH1ä2Ð3 !Œ‘œËU¨`fdT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[lÆQ#óÃñEÂñÅ‘Cf9Êi_74å(Ì~¹e­ö%§¹ê¿^_[´o߿տ<5®¿Zý¿éjéëUÿÿ†ÇíZÿõëÚúUñׯG½Ž ­ÿ¿nÚÞÚ°ý__/]÷úª!7/[3ƒ—«§B 0ÈT\endstream endobj 354 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ31Ó3³P0P0WÐ5T0±T06WH1ä2Ð30 !Œ‘œËU¨`bhT0¶2ÌX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹Í8jTñ»© n®ºáh~93n’Èÿ¸­_ï_ÿ2%ûjýÁìµ¥ÿ_¯-ýõ7ûË‚}û׆íZÿÿËÖõkë×_ºz}™bâ‚C  \®ž \^'G‘endstream endobj 355 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ò31Q0P°TÐ5T01R06WH1ä2Ð30 !Œ‘œËU¨`ldT0¶2,X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[pðcBó!›Äj&WÅM}i·}Ý^ý/û¶~ý¿âküúЗuÓ£N®ºž™7}鶦ۜ‰ ˜¸\=¹¹=òendstream endobj 356 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ò31Q0B]C3#cs…C.=C°(œ‘œËU¨`bhT056€ê1K9yré{ú*”•¦ré‡Õqé{qé;8+9.Ñ@3c¹ôÝôÝ€Ü}o v.}çüœÒܼb ;;.Oµm‡çÈ(d_\ív£6ŠsoÄúUù—¾®¾þëÕ¾ý×ÿií¿þký×øWûcë¦í¿îýuUìÒ¯·¢–eÔ›Ñú°éJýúë¿þÖ¯Mrf•cP`ârõTä´Jàendstream endobj 357 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ36Õ30T0P0WÐ5T01T06WH1ä2€!Œ‘œËU¨`llT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[’cù¸EBáK~ÆMö« öF{¨¯X¿ôúºÕ[eyõãY__ÿ··N$®`hààrõTä$ø;Rendstream endobj 358 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ36Ö³4U0P0SÐ5T06U06WH1ä2Ð30 !Œ‘œËU¨`daT01Ì€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°ós¿;ïCéK{mÖþ¿¶¶Ìö“ƒ7ûáÛ·ïó>·“¯ýü|½lý¥€Ø¥j«¦ÝŠæQØ¦ÍÆÅ ÀÄåê©ÈÌ!9éendstream endobj 359 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ32×3µT0P0WÐ5T06R05RH1ä2Ð30 !Œ‘œËU¨`dbT052ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ðŒÝ?þÿõõ«þ__³`NÊ•àƒö¯¯ÿÛ[!.rÊÿz«}ýõ¥—Þ.Ý-°áPC—«§B ê&A)endstream endobj 360 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ31Ñ35S0P0WÐ5T01W06WH1ä2Ð30 !Œ‘œËU¨`liT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[4‡g…ã„8“¼ÌÚ±õë/]¿~}Ýþ«Éëv]oZú?êõ×ë¯öqcý×x Ì¿½k«~_ŠÜr=W}!g×aƒL \®ž \—ÊGRendstream endobj 361 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ3¶Ð3R0P0WÐ5T01T06WH1ä2Ð30 !Œ‘œËU¨`llT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[4›õÐ!õÅÂ~S¿ìÛ¿ö×^Ýÿ_‡F¿>ô7ûë¯×±õ@\7ýÿ¯ø_q»¯gæM»á´!aƒ—«§B *D@žendstream endobj 362 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ò31Q0P°TÐ5T²ŒÍR ¹ ô ‚@c$çr*›€Œ-€ K Ö54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôì<à¡ð¡ß,ã‚OÜô%¿~ùfVýÕÛúoúëµ¥ÿ_ˆÿú¡ÿúemö¯“«ÖVÅÝZ¿Xxí†Éë$–ió$:°08p¹z*rØßA£endstream endobj 363 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ3¶Ð3R0P°TÐ5T0¶T06WH1ä2Ð30 !Œ‘œËU¨`diT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁÏMü÷²H ÷|Ét)ê×ëKëeõ¯¯ÿñúסwK®½Õ½ôaÚ ÇÜ&n§Ã¬ Œ\®ž \fA9ûendstream endobj 364 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ]±ŽÃ †wž‚7H  ¤Rå¥]:Üétw/@ÀTJM‡¾}m7½á†éÃßϧs™WÝ}µ%þàªó\RÃÛroõ„—¹(cušãº™¬ñªêŽ¡þ>*j*ÀüòÏpÅî{GÙ2¯¦¸$¼Õ±…rAuè{8ä Kúwd¶Ž)o¥Î€`ý0éÒÄ:€`=ÕzHw¬{¬7=kÁ:'Š ¬RGêé‰ )_åiˆ—AýžÕ@:Ê7Þïåq6ï(t¼·†e•% Îe.ø—q]*wiB=zt+endstream endobj 365 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ36Ð31Q0P0U0R02S02VH1ä2Ð30Š!Œ‘œËU¨`d`T022L(’ròäÒ÷ôU()*MåÒŠré{qé;8+)—h ™±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm‘¸pm]À/}MSLJ:†l:È|ˆŸã[<Ÿb↠ºä³eê÷-`bPàrõTäå©0}endstream endobj 366 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1ƒ0 Üó ÿ @¥vA,tahUµý@p”' aèïKèÐá,ïN>Ë~¸l#ÈGpø¢Ʋ´¸5 ÁH“eQ7 -Æå‰³òBö7åßO°È~W3ÉçùTVu ¡Ó´x…O$ÚªêZc:A¬ÿ¤=0šÝÙ¨®àÒÿ¡¤h*qÜ\C ޹in’ X¦ß3Þù”‚ â \ŒSÀendstream endobj 367 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ3¶Ô3´T0P0RÐ5T06W01SH1ä2Ð30 !Œ‘œËU¨`lbT012Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[óðDºý‘²ÿ`0áÿƒæýuM> stream xœ36Ô36U0P0RÐ5T0²T06TH1ä2Ð30 !Œ‘œËU¨`dfT062@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èÏÉÂÏñÐVMnòËøíK_ý¯:þÏòÁžÁ½ßuÛ{×áIJCÜ> stream xœ32Ô35U0P0b#3s…C.=aŒä\®B#° Paĺ@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x>GáCŸù’¹zÓ9¶>þçùzÔendstream endobj 370 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ36Õ32W0P0RÐ54U06Q06PH1ä2Ð30Š!Œ‘œËU¨`lhT012Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ôòs‰ $²s<úÖÄ£·;Ê·ÿ—ï øw+þíÒ½Óõ;¢ÚÄûÿ×¾¹&̾á‹\oó^…ZµÇ/ÿÿ»æì«»eÃÁ&n§ƒM  \®ž \Eáendstream endobj 371 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3¶Ô3´T0P0bcs3…C.=C aŒä\®Bc° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-+àîŸ~ÿ?ü™þÃñ—ãÏ}еæÿãÿÖÿG/— µ•òþ`hààrõTäG/C endstream endobj 372 0 obj << /Filter /FlateDecode /Length 165 >> stream xœ3´Ô3µT0P0bCs3…C.=C aŒä\®BC° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Ëyùòÿ¿k×ìÿ?ùdç_ÿþZ47p04p¹z*rëb8Oendstream endobj 373 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ3´Ô3µT0P0bC 3…C.=C aŒä\®BCS° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-+8~rõûÿ˜`¹PÃ=&.WO…@.õ*9ùendstream endobj 374 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ3µÐ3·P0P0bS c…C.=C aŒä\®BSS° Paĺ@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú²‚ôƒü­ Ù§I™%ž\½`¶£ù.¿ÉÃ/û_­ÿþ,›U¨a¼r®s}C—«§B Õ¹F{endstream endobj 375 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ3¶Ô3´T0P0bcsc…C.=C aŒä\®Bc° Paĺ@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú²‚þV ÇÙÕÖ å'‰_®ÿúÿú$ðoV¡FzÀý†.WO…@.ãš;Žendstream endobj 376 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ36Õ32W0P0RÐ5T06V06TH1ä2Ð30 !Œ‘œËU¨`l`T062@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èsè?ÇCöÍU¾/Í×¾4ÿ7¹þ¿ìÿÿÿ'‡®ÿvé®þ·K·½y š l8ÔÀÁÐÀåê©È¸ 9™endstream endobj 377 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ3¶Ô3´T0P0RÐ54V06W06PH1ä2Ð30Š!Œ‘œËU¨`lbT012Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[VÐß*¡ð%§yr¸£ùF»Ù/íÏÿÿwÿ ¸~ýßô¿KïVŘì<Û²·#NB_(ú×b [ ƒ —«§B Ü Adendstream endobj 378 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ32×3±T0P0a3c…C.=C aŒä\®B#c° Paĺ@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú²œF7 ·o¾qâ¥+n½¨ÿõ .w*T04pp¹z*r„4endstream endobj 379 0 obj << /Filter /FlateDecode /Length 187 >> stream xœ32׳0R0P0RÐ5T02S06TH1ä2Ð30 !Œ‘œËU¨`dlT062@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[lœ˜È¶Ãí¨Üä—6Áÿþ×~8æèmÅwøF…ù„'’¶½¿ýýÛô[‡‚Z[¹\=¹îà8ˆendstream endobj 380 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ32×31V0P0TÐ5T02V01TH1ä2Ð30 !Œ‘œËU¨`dhT012@]”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹Ä9ÿý=þ:·pÔÉ•2œÿ!àˆ¸v·êí5‰‡8¸\=¹CÔ9endstream endobj 381 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ36×32V0P0TÐ5T06S0²TH1ä2Ð30 !Œ‘œËU¨`lbT062 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. VœO®6ñˆ}}›·»ôß­øÿÛ¦ÿά¿õ>þíÒÿÙ{ë7ÆÿŽßÊ ÀÈåê©È©c5“endstream endobj 382 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ35г4Q0P0TÐ5T05P0²TH1ä2Ð30 !Œ‘œËU¨`baT062 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. VF’u¾JâͬWMw_¿¿mëÿ—ëîì_ÿëÖ{óöÿÝ2Ûûÿ¿¿[æêÿÿýíRÉþÿïo,ÓþÿmÖÿ¿Ë01(p¹z*roEendstream endobj 383 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ36×32V0P0bc3#K…C.=aŒä\®Bc° Pah–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEÁŠ·fÖ†:ÖܱK÷æ.ݶ;³lÚ×Ño_¾>ýÞsoô¥½ê—òo _]ák±Å™÷C—«§B ªQ:cendstream endobj 384 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ36×32V0P0TÐ54Q06S0²TH1ä2Ð30Š!Œ‘œËU¨`lbT012 ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQ°â|rµ‰GìëÛüØu_ÿÝŠÿ¶ûzöÞúmÓÿ‚yoÂÿ][7ýõµÐ™uÓ6eMŠUÝ‘èÀÂàÀåê©Ècð@Åendstream endobj 385 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ36Ô36U0P0a #K…C.=C aŒä\®B#S° Pad–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÿó¦‚ÕKvy‡¾Ú«ï}]êÒ¥ëk¶ìúõRWoëu °DĆ.WO…@.‹4»endstream endobj 386 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ32×31V0P0SÐ54W02V05PH1ä2Ð30Š!Œ‘œËU¨`hfT032@ .°¤“'—¾§¯BIQi*—~8P%—¾P—¾S€³‚!—¾K4ÐÔX.}7}gg7 7ÀÆFߨKß9?§47¯¨ÅÎŽËÓEAmÁ¯K@pÝ{mÉ~ï/û¿ìÿïýÿŸÝþÿÿ~šÆÿÿ»ÿÿíÿ·ÿî¿}ïÞo@ðŽA‰ËÕS! 8Cqendstream endobj 387 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ32×31V0P0QÐ54W02T05PH1ä2Ð30Š!Œ‘œËU¨`hfT032L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQÐã{ÐÕ»wï¾oßßçûŸ„ßþÿÿýýÿÿÿÿöÇÿÿÿéÿ¥¿â—^Û›™™éÂàÀÂåê©ÈwïAÄendstream endobj 388 0 obj << /Filter /FlateDecode /Length 155 >> stream xœ3´Ô3µT0P0SÐ54V04S°PH1ä2Ð30 !Œ‘œËU¨`iS022Ì€¨Ç,çäÉ¥ïé«PRTšÊ¥®`É¥ïTÅ¥ïତ\¢fÆré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ –vv\ž. j;t-ö=¹š#ñÿzüú¨—™™¥ Œ\®ž \Üû(åendstream endobj 389 0 obj << /Filter /FlateDecode /Length 106 >> stream xœ32Ö35T0P0T04V0Òæ )†\z A „1’s¹  - À‚ &@Ú„ ÀRNž\úž¾ %E¥©\úá@u\ú &\úNÎ †\ú.Ñ@#c¹<]þÿ?G\®ž \³!æendstream endobj 390 0 obj << /Filter /FlateDecode /Length 99 >> stream xœ3´Ô3µT0P0bCS …C.=C aŒä\®B °˜63€ ;yré{ú*”•¦ré‡+Xpé{€§gC.}—h i±\ž. 6uÿ Î†ËÕS! t‡'endstream endobj 391 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ36Õ32W0P0QÐ54W06T05PH1ä2Ð30Š!Œ‘œËU¨`dfT032L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ÿzýõµUðúz0Dâ@˜pÎ×  \®ž \ÄB-endstream endobj 392 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ36Õ32W0P0VÐ5T06R01QH1ä2Ð30 !Œ‘œËU¨`daT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈsȉŸã!û’{“kí&׿®iþÿÿÙÿ ðgÖÚúÿÙ{ëÿÝŠ¾ž½mÚaÎÄŽˆD.WO…@.+=¤endstream endobj 393 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ36Õ32W0P0bc…C.=C aŒä\®B#c° Paĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂÓÜë¸e¾N´ÿ~U:ü`hààrõTäéÍ8ƒendstream endobj 394 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ36Õ32W0P0a#…C.=C aŒä\®B# ° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú"ÉÖ~އ/8¶/¹7¹*Þ÷臷ßÿÌZ²ñßÖ×q[¶ìº¢¢¢K/½T]úR¯}Ý”.WO…@.ú_A> stream xœ36Õ32W0P0VÐ5T06R01QH1ä2Ð30 !Œ‘œËU¨`daT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈsÈ‘½¥ ù‚Ú—Ùß¾Èþ¿ýõ›Ð㯿b33uºêäëóçïýýw¿MÉÇú/ ‹²šÖ]ÏÛ&‘Ø"&ÑÚ&ÂàÀÂåê©ÈMfADendstream endobj 396 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ36Õ32W0P0VÐ5T06R01QH1ä2Ð30 !Œ‘œËU¨`daT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈßÚÂÏñÐVMnr•ÿÒº_÷cÊ÷ÿ¯ÿçZþïuþ®Ûnb‡9 ŽèI„ö¯ÿúëÙ®Ëëã½_/Ù6é6gŽÓa.&.WO…@.¥?>endstream endobj 397 0 obj << /Filter /FlateDecode /Length 156 >> stream xœ3´Ô3µT0P0bCS#K…C.=C aŒä\®B °Paf–C °'O.}O_…’¢ÒT.ýp .} R.}§gC.}—h Á±\únúÎÎn@n€¾·‚.PÆ9?§47¯XÁÂÎŽËÓEAmGTaͬ¥[ûÿÿÿW}¹ûÉUÝ \®ž \Œœ,?endstream endobj 398 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ò³0V0P0bSCs…C.=C aŒä\®B ° Paĺ@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-X°Ccùÿå¿êéÍßÿË÷ÿÚ/ÿ_šÿGf,¬?Ý(«öÿ¿çþ¯ûæÿ¾~í‹T!OÓË \®ž \\›Iendstream endobj 399 0 obj << /Filter /FlateDecode /Length 208 >> stream xœ35г4Q0P0QÐ5T01W01SH1ä2Ð30 !Œ‘œËU¨`bd*2L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8炇Ô!lƒf[„eT¾Ì›üoòõËׯ‡ÿ?Êþÿÿ“«öÜ¿¿Û½öïÖ/Û^çÜŠæQm;ÄÍ#¡Ú¦°!aƒ—«§B ÄTB9endstream endobj 400 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ35Ö³0U0P0bSS…C.=C aŒä\®B3° Pa ĺ@†–f¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚‚ÃKSå¾³ý1cŸûûïoÿ¿ýÿýýÿÿýÿAà×ÿÿÞÿ×ǯ÷¾ôe¯>‡®£FG C—«§B  Cªendstream endobj 401 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ31Ó30T0P0bcS…C.ˆÂɹ\… &`A * Èu ,,ÍLAjœ<¹ô=}JŠJS¹ôøô=€ª¹ôœ ¹ô]¢†Çré»é;;»¹66úÞ º@çüœÒܼb ;;.OîÉAv<åìßþþýÿýÿÿ}š÷ÿøÿ||œýó¦¿@ÁÿÿÿÔ‰ÿ_•òü`hààrõTäcFBendstream endobj 402 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ35Õ36V0P0QÐ5T05R01SH1ä2Ð30 !Œ‘œËU¨`bn„0L€X×Ð,çäÉ¥ïé«PRTšÊ¥”çÒ÷“NÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb b;;.Oµ…s.X7±ípoå-hdæ?ä¸õ‚O…ç—ùžÿ/ÕÖÍ_þÿÇÂÿÿOdž\•bôümýþû@¸ýÿö·ë¤¿I=ÜÐûÇ ¡©ÆóCBƒ—«§B tHIµendstream endobj 403 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ32Õ3Q0P0acS…C.=C aŒä\®B#° Pä)èXXš™‚Ô8yré{ú*”•¦r釕pé{Usé;8+ré»D åÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. 'WJN]ÿüµ˜Ë\ÁÐÀÁåê©Èf~7áendstream endobj 404 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ36Ó32T0P0VÐ5T06R01UH1ä2Ð3 !Œ‘œËU¨`daT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[TÓôùÖTp^Æùÿ×W¾ñž¹K7\:,°á  ƒ—«§B ^Û> stream xœ35Ò³0V0PaSS…C.=C aŒä\®B3° Pa ĺ@†–f¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚b³øäÀó[oÇìªÿ¿ýwýþï¼ý÷$ –ßÿïß¿ÿ/÷ ä 9d¼g`ärõT䉹N}endstream endobj 406 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ35Ô³°T0P0VÐ5T05R01UH1ä2Ð30 !Œ‘œËU¨`baT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP9¸“™‰s¥<ŸÜƒÃßþîÏÿýÿÿÿ__}éË^}q1þ˜¿±¯ßŸÉ}Ø÷ïÿµÙ™./d—¶iù:‡h04pp¹z*rì~Hêendstream endobj 407 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ35г4Q0P0bKS…C.=C aŒä\®B3° Paĺ@†–f¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÊz;™õÜü‡ÿÿºÿOíßüÿÿ&þG—O„Ê30r¹z*rÒl=Gendstream endobj 408 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ35Ò³0V0P0TÐ5T05R01UH1ä2Ð30 !Œ‘œËU¨`j`T012 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. šúÕ–e°Ìeûúuûß²Ý×gÖßzû{é¿[ñßPxßßMòŽoýÿ;~+ƒ#—«§B á[Dcendstream endobj 409 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ36Õ32W0P0VÐ5T06U06TH1ä2Ð30 !Œ‘œËU”4 *Æ@¬ Ê9yré{ú*”•¦ré‡ré{Uqé;8+9.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb ;;.OµE3Ûš/nl_0ûBîïú¿oíìÿ?”ŽQ6?ÄúõeU|LEèÿ¿åO®†ß2˜‘£r|#ç  †.WO…@.ö;Áendstream endobj 410 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ3¶Ô3´T0P0RÐ5T06W01SH1ä2Ð30 !Œ‘œËU¨`lbT012Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[VÀÝ?9üþø3ý‡Â_i…¿,÷E$jãý/××ÿþ –ø²ÿ××w»½›4/ýÈ,‘æ,9¢ãÌÊ ÀÈåê©ÈkœBxendstream endobj 411 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ36Ô36U0P0RÐ5T0²T06TH1ä2Ð30 !Œ‘œËU¨`dfT062@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èsœCNðà^…{ü½/}ý•øoñÿÿ“Cþºýn÷Ú­·½y›"’Ä$48¸\=¹ŠÖ5Íendstream endobj 412 0 obj << /Filter /FlateDecode /Length 424 >> stream xœ]“;nä@ DsB7©?¤ ˜Ø‰/ ï^@Ój ¬äqàÛoÛÞ`ƒàD²øÑéáéñi[oýé帖ßõÖ/ë6õãúy”Ú_êÛºucèçµÜ¾ÉËû´w§‡çiÿóµ×/Ô¥ñ¯é½ž^%GÿklAå:×}*õ˜¶·Ú‡ÁÎËb]Ýæÿ¥Ð".Ë÷«áΚ4̼·& •X¬IãHœ­Ic VkÒ‰‹5iLÀ0Gs…ÌTb4ðŽ ÑmDÚˆ“¹€èêœ&yªÄT qÉccS2ðž(æ^ˆj®‹§B*äi ¢HòBÉŸ¢9 /³P†ßìž3 eÉ^(ODÉ^H9+Aq“™uqÒb ~Å=gŽ]FZ*ö+Ù\AÅS!«xfáØö) Ç.Øžø…ct#>º‘ ¶'¾AáœÛ£‚ˆ?Es;l²_Åö( ),¨Ûؾ‚º™¨<³Âd Š¡RÀàwùs€> stream xœ36Ð31Q0P0b#Scc…C.=C aŒä\®BC ° Paĺ@@`ial RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-š![°ñ\¥©ü$à§ÒpA‰ËÕS! †&2€endstream endobj 414 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 ÜóŠü ¤tA,tahUµý@p”' aèïKtèp–Îw'ŸE?\r‰‹GôðÂÄ­#qñkä#NŽ˜¬¹qV&Ì:0ÑßtxòÍ€vçw=£x*%ËJî!ð— £¦ Y[U]kmÇÌŸtF{8ÙÔ—Fÿ©äh.qÞä°Æˆ”JÓÒ$p„¿g‚9Å7°/1S5endstream endobj 415 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ36Õ32W0P0bcC…C.=C aŒä\®BcC° Paĺ@@`ihfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ;æÿÿ$müÿÿ%ÿCü—?´¯7¶kâ_ò×þ£ÿ×ÿÿoý™µü×·ÝÙ‡c;¯˜ï1^t#Æ`ƒ —«§B †_@endstream endobj 416 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ36Õ32W0P0aC#K…C.=C aŒä\®B#s° Pal–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm!Ï‘~ζ¶Rò͵v“ÿv¿òÀ¼fÖ2ÇŠ·ÖÙí7uû³ytLÛ¸˜¸\=¹üI2Vendstream endobj 417 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ36Õ32W0P0RÐ54S06Q06PH1ä2Ð30Š!Œ‘œËU¨`lhT012Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ô,s*p|È&ÜbuQ`KÚõƒ-³åÕÿÿ¿õ®žDlץ׳++¾?åߨØÙ|ùB• ß/ö®ü—ÿßæ¦\ezp°L›GwÁ†„L \®ž \JEUendstream endobj 418 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ36Õ32W0P0bcC…C.=aŒä\®Bc#° Pº@@`ihfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OVþŸ¦öÿÿÿŸüŸÃžócýɳæ/ýÿßþÿPðcò&‰üøw L\®ž \ªŠ;ëendstream endobj 419 0 obj << /Filter /FlateDecode /Length 169 >> stream xœ36Õ32W0P0bcC#…C.=C aŒä\®B#° Paĺ@@`nad RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-äam‘ÿÿO"âÿOÇ£f­sJÿÿ,öÌZÊ ÀÈåê©Èߥ5³endstream endobj 420 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ36Õ32W0P0VÐ54U02U01RH1ä2Ð30Š!Œ‘œËU¨`dhT052Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]ÔìˆpüÿÇ`ãÿOQ™ÿ+Y?ÿ‡ƒ×6%—º?L)U[¡»Æ`ƒ—«§B  ;$endstream endobj 421 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ36Õ32W0P0bc#C…C.=C aŒä\®B#s° Paĺ@@`ihfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ/dâO®z¢Wÿ<Õî>¹*€‘A€ËÕS! ˜G6ïendstream endobj 422 0 obj << /Filter /FlateDecode /Length 165 >> stream xœ36Õ32W0P0bc#K…C.=aŒä\®Bc#° Pah–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEÁDù¡„ãC‹}¾>sîsþªÛÿÿõè´Vlûú«§B Ó7 endstream endobj 423 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ36Õ32W0P0TÐ54U06V0²TH1ä2Ð30Š!Œ‘œËU¨`lhT012@ .°¤“'—¾§¯BIQi*—~8P%—¾P—¾S€³ã 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQ0Q~dÐ|ˆOïÉ•“g?4¹ïÿß÷ÿþÿÿ¿Þ¿ôþë[= ïþu…¬o+öÔÿÿÿÿŸÊƒý?8¸\=¹Z@Vendstream endobj 424 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ36Õ32W0P0bcc#K…C.=C aŒä\®Bc° Pad–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÅ‚€À„æË­j+Š4ÒÞÇòÇÖÇÿ­ÿÿÿÿ¿ÀŠý“C01(p¹z*r^Ó1„endstream endobj 425 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ36Õ32W0P0bc#K…C.=C aŒä\®B#° Paj–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm±ú¡ƒÜ×¹?Úé _þ»5YmÅÛ¹î<¶í™O$Uä…Xl¯“ U[q˜•A€‘ËÕS! mà2½endstream endobj 426 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ36Õ32W0P0bc 2WH1ä2Ð30òÆHÎå*T027 UF@¬ T–¦– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú" žàÿÿÿŸ ÿ”5Íõüø$dkÿ?ûzfNmŽŽé†L \®ž \¼5.endstream endobj 427 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ36Õ32W0P0bc#K…C.=aŒä\®Bc#° Pah–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEÁDäÂÜÿfÍi?ÿ®_߰ǯqï#÷6á†.WO…@.vD9endstream endobj 428 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ36Õ32W0P0bc#K…C.=aŒä\®Bc#° Pah–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÅ‚P±ùO®ªm8Çô0?þÿÿ¿¿'Ùkÿÿÿåï³£Þÿÿ=þÿË¿ÿv<þ¿üæ †.WO…@.í@Žendstream endobj 429 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ36Õ32W0P0bc##K…C.=C aŒä\®B ¤XÂ02Ë¡X…“'—¾§¯BIQi*—~8P—¾˜t pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠŠíì¸<]Ôv]þÿœñúÒ—¹ª]QÜÞPÀ)ðqÉ\½éÞ‚Ÿ²¦08°p¹z*r†/­endstream endobj 430 0 obj << /Filter /FlateDecode /Length 155 >> stream xœ36Õ32W0P0U06R06P01TH1ä2Ð30 !Œ‘œËU¨`dbT°Ò¦@lld–ròäÒ÷ôU()*MåÒªãÒ÷P°äÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠ:ìì¸<]Ô–(Dñ²s®å> stream xœ36Õ32W0P04FÆ – )†\z†@.Âɹ\… –`10mh $tò `fnRáäÉ¥ïé«PRTšÊ¥®`É¥ï"œœ ¹ô]¢Çryº(Ø1Ô3üo€Áz;.WO…@.ÀV îendstream endobj 432 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ36Õ32W0P0QÐ5S06T01SH1ä2Ð30 !Œ‘œËU¨`dfT052L€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÜÍüõ:nÜÖ×@ôõ52 |eõäªC—«§B =Ö;”endstream endobj 433 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ36Õ32W0P04FÆ F– )†\z†@>Âɹ\… –`1 "°<X€U8yré{ú*”•¦ré‡+Xré{Õré;8+ré»DMŽåÒwÓwvvrllô½t2Îù9¥¹yÅ –vv\ž. j;¢ ë|ƒnÿÿÿó³9ñ“C¶-`bPàrõTä¹î+›endstream endobj 434 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ36Õ32W0P0aS#K…C.=C aŒä\®BcC° Pal–C ° 'O.}O_…’¢ÒT.ýp r.} Z.}§g Ç%ht,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[ÀÏa˾ü¾ùýËßWØk¤¡'£ÔXó£ÆéßÞü­“C$ô…Wm¯H±æÈbP`ârõTäõ±3Âendstream endobj 435 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ36Õ32W0P0bcC#K…C.=C aŒä\®B#S° Pæè¡X…“'—¾§¯BIQi*—~8P9—¾P-—¾S€³‚!—¾K4ÐèX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶óœ@…ãëu=§ìUÛ%ßõúßOSŸæã™_7üæQÝø67±µM„Á…ËÕS! ^÷4!endstream endobj 436 0 obj << /Filter /FlateDecode /Length 272 >> stream xœ]‘Ánƒ0 †ï> stream xœ­XKsÜÆ¾óîcR{RfSZóÂÌè’Šh;±-»b‘%WJÊÄ‚»ñXáAŠ:ägçœîž,H­tH\ªƒž™~|ýu7>¬Ò„¯RüþÍYºÚ}8ã´º ŠfõòêìüµV°¤©2±ºº9ó{øŠ •ØT¬Lš%\¸ÕUsÆ.º¶¨§¡êÚõÕ{ÚÊW.q™Èp§à‰åÖ®®^]ýù-ûmmEâ¬r¬\oDf’”+¶ïð``Ý.—Ç}>®ÿuõ#)gfib……®¶gl¸kNÝË-(o½Ì[v軵°pªQì®Ú–Þ’%Î –·áÆÔ°26c·™à} oÓTò¥FÕV­æ’µkÛ­l,û›¼XªÝÅßL(ãMšÝ¯ÑFg,ëúzo¬»9n¾|óóð-'…î÷Uág{rÅÆ¸„½Úpž8­¹7¯íèh›ÙÅ%ù6'%·ì RÊŸ¹ÏQ$M3Íî¼pªÐH¥È8v}ŒEÑ5eØÈÁSþ§³ì®î0Õy6;0¸ôú¦&7´1u¬%Ï9¡,gÈ·äÅi>ݰª ÇCLþP~¬®ëÅÕMçoD»¶e]Wí.YoLæà&Å®öe? k–Ãújv‘‡Þàá(Ķ}î]¦!.×yáàê[t¿ƒ áë¦ÝþÅz“¥)ì’žx†`C‘“’)HƒWú¾à)ùæ:ßÖáѱûjÜÓVЍG>æápÍP}*ç ÛiÓ*4 í íÒàŠ}˜r0e”ø%8¤;ŒUS}‚EÈÈ (Y^ïºThŽ‚y ”6%p.NÕìöˆ‹¾-k/ÉÀÆ>o‡›®oètÀ|¿¶•ÌØÔ£6³ªM×—àNé…€·Ù,¥D—Èp]Ñõ=à<ƒkŠùh8-ªb4”)qÓ í÷ySBZ¸&)RUü ø/ú©¨òúxØC÷ »ë1¯Öèt¥à¶Ý…w€âGaš‚fø“òroÖ¬/7 à¹xS="ªðç²Ô!3÷èu…Ø’Ê Œ$¢ÇhHàá#ÆdeM ®Ö“£‚Sò6¾w|Ëv¨(·ÁöŒzX–¡Û…j­÷MCL­”¶´¼ ¸ÚÑ0íØpeŠûr¤ŒW­ücQ¡j'êAX”è®ñt¥|]€–@Û²&l¦6H4ïÖÈöðïþ¾j)3,ê ØjNiàïÑò™ƒ¢šUÓ<ò¤˜k(_ž5c¤^)iµÜÆ%î‰C‘Zx<ª¬!¼Ôƒ-ñŒWH@=æÁð›©-ÄU–À$°R@ÚÂ}!îØœˆ;¼dï1â‡üƒË¹nrðí:ÍC²ûôÿPIütƒÓ¥4Ü«wùXÒÄ‹.R=tègM5Ôiòþ_c´´‡¶º¥ ‚„Þ$AÊ!oph‚‰72ª©Ÿ×ÏÍÝœ­>çé6ìYÛr|FßÑzÕcO±¬p"Í¥‰îç¼@‚@=;½ZkÔ”ã‡j3`‡¶Z|àïTÅ3øq!V³“/ÖçÇ€éÉïQhø&jY s5vDÔ³iöKyN…\˜«ƒo#ûñ+Eài¹}¨]PÌiˆ@©ä }ÿK9…–Çâ^8G$!šÃ´žÆÐÚDýõ(µ™”A„Ÿì ÊœB”‹o O#8¡ÐP8X¿áó\Œû)%½ô¹h1OzDCi:¢ñp,à ¡Amá–:$ŽU”9ôEDûo›šðÏ!p'=ÆñS–™ïIbÛë< ¼²û§7‰#nCoŒFVK?øXŠI’Ñlx…fyÚÎþëÙ¸Bendstream endobj 438 0 obj << /Filter /FlateDecode /Length 27449 >> stream xœ¥½Í“ž9r'vï‹wO>XŽà±èK¾éäuìÚ±ay­U‡ö0Ú‡¬é.©Höì™õÿí³ñËo¼Ó¬® Ǧ+ù¼ ‘_Hd&~ÿêºO¯.üOþÿ݇ï®W?|÷ûïA_Éÿ½ûðêß}ÿÝßüç¼ú«u¿zÿÝwü“ô*åz?¯üj\ý>åõêûßýæî?ýáuÉ÷WºúÝÃç§·?ýôøñ‡×oÊ,÷×5ïÞ=½ýòåáËß¾þ¯ßÿGÂ;"Þ«Ý÷Q6îïßoLïß~}ûúM.×þe¹ûiÿç¸_sÞ}züø:Ï Ìãîëù"møÇýßûÖ\w_| ¸û7üüéãÿvÏ í¤~÷åñýƒcýô;üfOavùÍþãºÒÝûÇ/ï>?~xüø–Ku#õo?¼ýü†Öðf^÷£÷WoRº_­žú{ŠoJÁšûÝÛÏø#僚?¾Þ«¸Òhw¯¯ j©Üýð#A¯±ôð^?®wï?½–5ÿñ£@W¹ûú‰qcŸÞÿüNÑ/ZÃãgz“äñãÿüóÃGþ`CòÝ?ß åËÞ7§|ÞÄYM ÿo¾|úÝ^ki´n¬õu»0ô¢…¥+Ñœþí/nbÛ¼°rf\wÿüúï^ÿ/ÆAoòj÷W]›lë>Ï+ñÀÿ×§OÞ~~üÊL´òÝŸ~™WÆu?«±Ê|تٕÈñîíÇŸ¾Êß+ÝýÕÇ÷ü ñí/Rü8m ÌìuKÄD›"¿4©Í‚ ¿øòðÓÛÏo¿~úü×{¤š@æižÃºåéýŸëªÄÓ5ƒ§ ó­ëÚŸþ$L—fºoc ×5!ß¿<¼#ö©×¤«œlüà¿ýÈÿ½ÖÜüðó—Ÿß>=ýéŸ_Ë[(~|üáLJÏoÞ?~xøøåñÓÇ·Oþã/?½;Õk¿mÂÓ å—$BüoI׊¿6ãëZ[»],Vdëø?¿ûþùÍÝÃÿ´—òøûêáéOà¹û­QíáݧàíkoÁºcÖ‰_òüö ß$pðØ þúããù{6Ðôõ›Ö‰vÐ üwü v{m!{ûôøÿ÷.쪺JÞüE_Ô-ª>Äèlñ_æ°¼òýHU„å_>|x‚¼¼Ñ87øë â¼ÚÝ»?>þþç‡/¿È‡µÝ§küŠpXM,‚c.âÿþüiÓëƒjì­/?=ý Êü²®zŸdz ÐEuóƧ'ú³ç|}ûå_ù/0Þ;p!}¹y#ì¨ÿ»OŸ?0ÿŽ~÷óÓ[bmƽð‹|ýŠÿ¬d^~ÿóÛ÷[âß)š-Y?}Ýjü¿¿Éé{±W»•ÙzQ°? HƒË7F²w?ºK—Àšöf ¬ù h÷3U¦Ø÷ôû:÷ýñæ ?é×óî_?Šº/Iô}eÂ=€‹V®›RïXµµ=Þÿ{^Ö¶Äkïø›­6ÊUdUÿ«®``I?|~ûÁ×(R!fDM ÈéJéá3íÿæéÉg»·ú‹žI»ûÅ>~QÒôM§§'^ü7Å`#e(ýãÏ?ýÄšvÛÀOŸÉ Râÿôz€nuSSUñ»­_õƒz÷÷oßý=ý-÷"õ)bq¡ø÷ß÷pz&&_•ºöfµW9÷±'´ÿ¿Öû²^}~xõ_^}ün›œÍŒ3Áõyõù‡ïr/ÐO¯ê°f¯>DH¿¿Ö«'†ÌÈÞ¸¬|Cö`S!~µî·Ð ¤à›í^\]!ðlÕŸO¿Ÿd .€Ê€½pl6)÷s)¤Ò¶ë&X*Lÿ†lçË 5Òï› .ÛÉdÏÊ €yŸ ò}- Y‚&ÝjÝ7Y&”׆¬ë>7…$¬DmC H±`á2ï+±U¢tógŸ é<ú§E¬¢DÎ $Hã± # X( Ó†Ôû,ƒgLƒ UO¼Ÿ2xå[ÄVaÈäo¶%*ça<°ï!²Ÿi`~Òán&óqÌ{Ôv޾÷æœaÊÌq¾Š­ìæ±Ðmªæ<ˆÚzmÈUšn+ŸÒA÷mÜK:öfŸnöo‹1·ïñUïO6¸ éV¹ 8-²Ó•yÓå6äÊWnÏ´ôƒs¯‹iêܽ!% @[‹‰lBH™Qښ̹&k€ŒÅڢȒ±n¬_‚è·5°À ‡ qH³Ñ¿ >1ŒyŒžÏéí©ÇÈ78–Ù§0Š‘bC®rk+ÍtP´wHw zo¶ã²/}óh?ö®o<÷·gål垌m…O6$¼Ô¯ûº"»µ…!#GnH×î#OKg“a9¸Cê)!rR´OA-’†sQ‰Âؤ4Êë†ôC¤7@[Å~Cò¡6à‡öhUvÓ4̳ÑT"ÚÌ1«Æ³ÁU)úüTqÚT·ú*Eý:TC;­T‹;=UÓ;ÍÕø¾¨Åð½S«âû«–Çy@­“³‰Z0g%1rÎmj#ÕV:ת=uÎV›ëܯvÙDL·ŠÚv23ÿ&ˆæ"˜°º¡í®†y싨JpEÕÆOóôÝvœîKÎ{¨?~w½úß¿ûý+x£Û‹mÚÞàuU"1©·=ä%ÝŽ:ˆÔ¦ý0L»º×oJÄf;ö³ŸlÜGIJ†ì—´-V™ÊðK,ßêÊu½ßì}OåÀ³‰ÏfĆ*¤¯Ãt챡±EÙP¾î“6Oßýã«ØÐ=pßou³v"Šd©‡eܸÚ>ÿ•¥°ë>èhlHƯZVA˜¬ Z+÷•b[OppÛ3¶ßBÜÀÈ€žk{Ú"ÝÛÀn[¾!{­C! tÛ2'?ê´VÖRÈ6Œ²Ôìo\16($ÒÌm XÓ¿Aöå+ –B²ˆlàdжĉEß&Z­m‰ËS!‰"Û&'¬`‹ t°Ñj±¶|ûO¥ï6È-3D¸¶õk %t@¶þL潜֎ÑA“s†›n<[Ô[:Vº7¤Íƒ{{?†.Q¡èm‘©»‚ã:vDpCR?Ät þ:Óª uÆV3ë̯¦Ø¥C͵KXt“1µù.†ê¸¨ªïàâ¬þ…‹¼ú ®ÌO1Õqú2ðÍ_܌ś=á~}`Q˜²ýã€òdú&Õ´“{ÍÂVUسšYÓo¶‹¯+X X&s“Íô&{iœVúñ âåÀ³ ̖ÆÚdó˜Ž~ãSV<¶*Ê×}ÒFüÅ žù^+NTƒüE‡4ö+7„ÞJG*`4œ¨FSÈ`ÞϤ€JŸ,9Ýâø4C NqtzÊ €V‚ûÛåG™œ\–ÚPH#H½o €êÅ9( ÞD ·:Ël.:«ÐÁÇ ™DÀ *©0Å)¹ö¶MhssWQfCØ)¹:kðnquRò}ËKæl- !Dȹ5-ö³C„Pxv _d:$÷-RYÊüg—?ÙÒ2e¶Å7ú–9>x\°‹!lœ/X—Ê&ßt&ï†ô©¢æ†ÈN¶çÿ,p®n °X'yq/Ran[æÖ8æ¿Ù}¥c•O“•²P[Ÿ¤i¹UNN‘Ú•OÙaCö¯ë:6~·uÿMÆ·~CR:ØJ³,´ÿm¬Èeåøp\ûÁ«83׃Ÿ7¤¦Èòüó(…Ž…QrJf5é*# ¸!­BʃFA.<± ër•¨ Ec‚ÂP@³üm@•:âöæ8ÉÁÙ'wÁéˆ Hd)â"“Z9#Ä>/Ÿ´Jr陚œQŒä©B㶤*1'ÛºTlëd{SV¶VHÉXV¸$]b˜“ù¼‘Û.qQ”¯½+õ`YÄçÁÖ×P’*çoˆÌX…ãêJd  1‰"CºÂ!†ˆsÖCT7„O*&Η^-˜È#\:µpéÕ‚©Ž éA·|ûOQM„ÔWÀ)*.Œ+jÐ禪Òç¯êÔרs¤êc£’jl'¤*u'¶*~ß± ¾gj>|_ÕÄØÎ«ræPKå $¶ÌyLÍó¡šDçU5›ÎÏjYçÕúº\¨…vÙ#nÒ¥fÞP]RõLŽÍ¡0Y7ŸÃôù%¦3NßåþáÅqhbJþ!ø=ÞÉ4T@Yd¯{Ó¤¬dºò´×àÅ é7[ÿ–v ÙZbš¬ÑPµÈŽM¦²)§z|ƒ$ƒ|àÙg;ccmB¤s>úÏYñزt(_ùIñs¥+»º}T‰Á:DÏyë'(€ºÅ 8'TœV“Bp|ÛèÅ#>j…묀„¿³†òV„“~S„ÝÙÇÁ ©÷‚„n7  ¿ÒÒ…V{¢G @@ŸŠÈ#ÞôÅ~ÕM'¾ª$†Èt`6*N«éXÞ†$9œBÄI‚àf‹ j›sa‰¨{—xÊ0äü·9„·‚DI¥ ˆŶ‚mÈ5¢n™êAøDb7g+Úšãöm™"ÖöÞú›§c\€û½zpÊEqÔÈMÛTŒ|pÜÅö9p¥Ü.νø(p÷EwiQ®ÊTv)¹Èõ‚„»Î|ÈîDÚ!».±WaÞv¡Þk‚eæ&W2Ob.>äs&^¤c®âÑúèĔͰéý‹-bû(:Y("Šë b•ý WU[m4…Ë”º×n».{ÏkûWÕû°=®šba|€ƒÎâXåPt‡5ÈôSË< m ¢Ñ±(½0¶(FŸŸ*O_ƒ*X[¥ê`'„êi'–êr'¨ê{'º˜ß5¾wjXl{Õö8¨}r.Q朤vιMm¡s¤ÚKçZµ©ÎÙjwûÕ6»„¨ùv)Rï’&^€ £ú .°êK¸P›¿a‚o>‰)ó[Lœ¾Í <Ƚnf‘íM`¶Ï²µE•E7Ë=)ŽÅK˵ŃŠ}ÓOz•{C3. ~èHpõ„óIJ*{\ Eü`ïtjŽMkÒ">N-Lk›Š~â³U4¾"ÊW¨"ncEóþYžä·~ˆ%ó ¯Kl ùæ•Äž‚s ’˜Y,ÉôM‘S äU…ÏêEÜTQÀ|H€¨=©|êÚ!ŒH%ÈrPÂydÉI ¨ I0wÚ«r%¡< Ðè€p´¨^..W–íª|dÝM¨¥ÏmH•4,@’@dÆ,v¦3$‘RDhºçÕ q——E*„ S ,ßåÒd·²8™!NŠ·pjY!iÙS@YUæ;%t]EêÂMÙ›6ɽ áÈK~tÉÈÏ@&]yEÀ$#àxç =†žœÿ¦7©#.aRê„­qCE" i/„šù äLdµç¿,ìHÁåQ‹»VÆ$ž¶-c»úÞä&È€”y¨ Î q6+85ÏÈŠ€”ÙµÀ @‘ëËöc爒H©QzÊàK }F)¤æ(©€¤Cš¹r”øÂú*h@Æ¡9¢§âç Ãæ,˜gs¦Ñ7oŒu̼QŽU€=Ž…nîí ®üòA°yÙ”…¨cÉÕ¤~,ÛuÞ›¡ž‚n_š¡[œ7;_ äýÿ£FVA%Ãj‘É+²JzŽ\Ie=r. %2w;W$»„d*©Š"ˆ¬@Ä,w¥«¢Ò˲ _*ª<"¬-2Ÿ»fT¨Zdö 9‡ryÂJ*BXÄ¢ëÂà¢ÃEg†EˆR ň!Ê9L¸U•¼S] ïŒ Û<5'¾¿jrœÔ,9ŸˆårVRãæì¦ÐYR¤³­Rcm3¶ÆýfMBÌh›™a7I3ãoÒh‚ ¬ù&Óæg˜Ü›/bºÁýÕ7>Í ÜE0ׯi^¸?UÙ^ÍÞ™Â*М<Š5^¦‰2{à>o–†DO¹L|e(X¯´”×ŨË¿°Òß`ïñÐ.ä8VE1Û1ûÆæ¬xºd,_úIñ¡™r±ü°2%¾%* >¢†kã’ Zcu-Jx@œ&EMÙ †‡2y0íõkÛÿß²B(Ýñ(ÓÓƒ CAB|Û Ÿº*wÊÊKrñ ¥íŒ,lF›—M˜-MÛT­fva°ÚÌfá/&øŸñtɶ˜E§Ç„Û*#EI‰!BRNµÛ&ñàB³M)Ü9<Ül€Jü€ ñø,Wzæ<®© ¥'™îPKÔ9Ó>•äZg†pü åÃDÍiI2øsÎ aÒHFÌ•ÒvÂà…x;LpŸ2S:L³v, k%ÒbŸgs$V¥x]¤''ºD‚WɯòM©sž|ãpÑ^ÍÝžŒ1®ÃÛÁ$ûðF)-ÎH¸c,³áú{ Y/ÎîrŽÝ¢¨su‘Dç|Ä0ú!œr%ˆŽQÊp¿ÚID¾ù!¬]”C ‡9d‡Õqèoê¡; 2ÂØß‚˜—e˜¥*AÇFÞ\=¦×‹ªdY’{ú±HÍ5:tÍ40Zmèí g3wDiÞ$¯À¶¥i^m‹@ÜÞ¦ÑocK56Aåà$ŠÈm[(ä`¢‰ðL:¸–Å$rö¡§r»ñ@ºh”Ÿªo“°j6P¥ÐÒOMR«ä8¹4×!á.øªù ¦6Dñ+_•Žä+?©#¾"J!+8"u*šVŽH\nY9³'$6ÈKE´€K8V¾bžH5 È\o¯v®JÃé§7… gf7@.Â3ïå“L< w¹…`·èÐÂåJˆÞc~IkÇçIw è3Pe^“!‰ ¿&-C¢/]V¤*®= D®$§‰ÖÔ¤6)Ä0k9¡aZ. ¬iÈ#}™n6¤+ª—€hºBJSü.äISX™/rñÝ:”ðÈyÉ|—ÜlRòjbH•o“8-qZîBQ寖›Œþ„K=#¤ˆ˜¹ˆ4Ž~ñ¥Q˜áÅ÷r¾ŠÄE®a¥‰ów5Òà;§X¢«íHRÜ̃ìIî lg°ùýØ<0È86L4&£ÍƒQp`Î3]‹/±œá.2Ð'Áäõà[êórðöE¶1ò?n?g‘‹]… EÈP釤qp5JãÅ.GX·F¡¾H'EÁG‡C5\œväÚC¢`~¢‰Ÿ‚ÁóèÐõ8;ĈZ‹+@©ç¸JÄšZ”@àÔ\ݪ¨ý±µ — [FÊ"-€4‚h½Y‘‹¢FL¸!õþˆH­5°•ˆƒÇÖŠzˆ½HœGv:¾Pª°!RsZèp¸ÿ–Ã?]ùãO½œàhÙ®"äÔÈ’Ó? ÔÝ#f5¶ÖÔ¸G±°nF.ãLcºPÀ‹#W º!O¾2$Ѩay¯+dÚÙ'1`ÙñˆÈ e,G¨ÎÔÌMw²p9çózþYH½F´™,Bš-Kœ_^„påb\ež2´Q"ó /P+SN h¦D@òýë:]Éåvç2'Ñ„ÝEwŽ~p@æR¸À%™ó~”ÃÕ"—%ÊiŠŒ˜¸F40+`Üœ8IÉ> ¦®ËD¢¶ö6Ê„%áf©8èæ©’Ô Õ²]òdˆåÃdù‘f—$Úͦ¡jD}ˆ™šeê-ñ]6„¹kK;ѳi!ŽrùW\v!bæme¿5ŒL™¹>9œDÓŒóÇYˆÜ@]"´äpè%7Ð(…£2‰¢Q³ðÕw 8ŽÜäÁۮбȕíB\Iš»%ÊÙ³¥êÖøG·Ï.ºÅ[Ë _äl+Lâ§e$?•(³ù©DØ1ÅÂágeè4•–Êôi¨÷£‚±!B]žd·*`~pQ„o‡œ&m¹©¢œšrµJ»xT!¤¦×ª46¤zå9€(§Ñ³—â5gc«´é™¦´˜2µUšÂ5J˜R6j™â6Ššr7ª›°Q¡ÙhlAlcÍÈØÞ›!2þ0ce“UKù3y¶´@“yK4½`é…¦;,Ñô˳~“¸hº,`}F_7‰‹¦7}ª[}¥ª~ª¡bªÅ¦ªè…æj |SÔZøÆ©EñÍU«ã  –É™D­—ñ‘8g5²€Î‹j"_ÕŒ:K«©5®Wkì‚¡Û…G­º ˜~Au \JÕ}pIVÃ¥]½Õ様Ê8}™—Ü?÷v“¹ˆ¥ž™‹Ø¬3s ãÌ\$eu¤ Ú7–Nhx¦Kí¸É\´ùXPlwf.b«ÏÌEÚƒc¨Ùn2õŸ±bñUéH¾ò“:â1¢Ã<Õ¾ìÓW&Ñ!Úתp»Šö¡ÒÃí—rêTO¿jRdé]]â!€P•ã¥æ署}%@Õb×’T-t§<Ü•5…PÍQJ"©èÈ¿0 @[I­:µ'Çäc¨?4‘`AœZ‡VÔ¸'ÁCmŸÂÕX³q²:ÚJ4P!A!,¬€ðIvJR+:MI+§×Sï ¼R’~¦—«@½­"_4.XÌ’\3‘Õ‘Àg’Y Wf Mɰ¥¼îÊý`ÑÁ" ~¸¾f˜èªÀÙÌ"5qÏBø¹Žé\U7*„ô±‹TúùüЃ6k(| Ö‰î¶5’¢p‹'V澞h‘Ñ’çÉ…¯¾-rA¶.ó…eØ^œ¹[ä€ÌÊ-0I&ø(³^ ¼–3WÂ:?n•®9ÏfîÏø„ìëË%GD$Ê!B‰{¸”!Œ1AL šóµ tâ#Aè™”Q1lÈ8•‡A’Øªç —è<ÅœðK<--ÜÔ ¦¥%ƒºˆ„벚–<ó¡¤HK[¯+¹O葤iiFÉžVÒ-çIK;­ël÷x‡ÓÔÒ\å@rà“„ãSä¤4µ •2 ׌ ™¦6_W¦M(+푱z ó§)…Ê%JP‚—0£"L+‚¨TXñxãlQ é9Çd€Ú¢Z¤ä¨:I‡zyBZ*D‘Ä¢ìÂà¢ÃüDi†5ˆb ëÝh!ê9Ћ5¸STt¼Ó\Ì@Ø1aëÄœ„í‹X@¬R`±\ÎIbÜœÕÄþn8–Íh`j±´Î÷bŒƒhˆÁâ#6=ˆ˜Ø}—Bq ‚ Šû„Y\Œ ð↸N0OÅÔÆéͼÀgW);ðsw`û$l¯âTɹ½U’/!L‘ˆ),9Õø ´îªì‚ìmQçAým™ÌªŒÖÓñMãîbOãâ–0Vã¾\a>òM˜³à ë’±ÂÚOúèó.{ã(1¡ÑáëC€ôKß´XÄMhH.Mæ5æ­x@ž–XœÆ‹g¤§ô6 (”¡ÁCŸ¸~­ ažrO·`•ž2e¬Ê¡ÿ ‘·œÐö”š™ µÅë "\¶ …Ð^mtCÿEC-}ºqðKl€dð_þŽ åÍ< ©œ/ E¦kX©GU—Rœ®0î[–Ø'7Îu*ôy©s±B e—Ì5§vçR‰°#]:Êú®u¶ðagÑ´°»ß¥ã­sH'‡9r‘¼¥8­_œÄåÜØØÛ Û¤I¯ñt›œßä<߸s\‹ÆŠ ;m0ú|µÎYp.ƒüˆHÓÖ™§]”›dŒ¹¸Ã¾ŒC%´Æ»éZC!ÍÞÉx2õ-4ÅŒ¨W=Foö™Î°ig2]¦Že¶¢l¢¤Ø7çƒ\MW#)lù8È^õVÍv¦jÕv¯}ZKw¸jã?ã‚jïË)§T{¥N¹ÉÚÜÇU½?4®¬j£sµ=½1wÕ´\€ª——&$ÖŸž¥¨ÚkC*fõ2®IDÚ_;¤µ¨×ajòCè˲w«D-X“{SE»Ü˜zy2nþdЊžó¡UúìT_ú T¥ú*Uí:%T5×›‡Â5UÁ;ÅÕø®¨¡°S[â{«öÆ÷_m’óˆÚ-ç#µmÎkbþœÕB:ËònO«‰u¾W3첡¦ÚåG͹˘š|—Cu LTÕspaVïÂ^× æµ˜Þ8ý˜—<í‚Zn¬~Qç§]t.“@¾÷½—©]¢LKöŽTcYifÙô›Þõ Å3ŠI»zC_¢ÕùŒ¥ê›Žñ“ÅÅþÍâ&²a¨ÕùÉŸŽ~ãSV<¾,ÊW~RGcŒSTñµÄ ¢õª€PÌøRKBšH ©  @3b K!ˆ_js hõeq–žùÕ„1@o(]jÝð&õ‰âÙzÙèÒ'mñ"Ýõ\SC1ž(«TŽHDc1›tY„qñ5HJa¤ ˆŠâÃ$>-¢ÆÎ±rD†@÷©Z„‘n€L;ÞÑ[Qœ¦ÿÄÎ}È<ŽT±(qäo~Ø¥T¸\rf@ÇÔÅ0J3‘dçbº$Iú¦±ž‘Óžœ¯‘”3øóN—yÚ*`æ@jzøô$Šæ/±‡°F‰O8 «ª4~ÍI‰‡íçAn¼®µŽ-)Ü -l[‘×Å|kËÅüj»/šÀ ™{\&Ê“oœÑ¨‰‰s¢„ˆœY37ä üœ;w>qžÏ\÷ä"³—dG"V.^¹²Ôz “] ¤™Ó΂#Õ©²žé9‡  rár×™F|2l„¸.‹sÊØuéK¶:¿º´]×P—Å9y™u›Äœ"!ê² ¦«nµYz$hË‹Lô:õuKݘ:‡Eyï*¢=Ë6·Î·¾N­wÔ©o)Õ©èÊd€\+2bØf­¸˜ê‘¡b Ó×i# @ŠA¸ùþ²¸b—–Ň<*°ìZ`Jãzít¨r H;¢}€èõë@4þ—åa„i1Â"­ÿŸƒTéÙïÖas—§|ô!Ïø §ÍGV! 5¬Ttn kå@0Qܨ¢ÜáÅ„Í#6P IØd±5Äf›Jìšóœ˜>åI1cÅ|®8_Ìp1ÕA‚Äš)‹$‘‚ «â7yf×"ˆ¼xA-˜‡bšãôb^[ÔÖ,œêüY? Ù[Sï}1½—é*z£Úíѽ&FM¾Ú]%âiöÖŽŽ%qC™™K»Í¤û~ÿFÓDOçÖüa,Iïó‘oœOX—ŒÖ~ÒÇz‘»lËatˆž4É”a ‰J€pf¡&3å:¥£&<·øÙڌ˛–8uƲäª\Å?°,@ò‘¤•«x –ÈH¡t+MöÊ•®A< ÊA±”±\¹’ÐÓÊÐ}æW!õ,s*iHOÓ¾ôžÂ†îéäVXšZà“d©phœ?t9@8GQ¯-µ%¿§Ý¡ »f) q4u/ñ,»/HJ ŸGñ¦@‘ÔByÆæhˆ· ò‘lˆvïåHQÄyüdÊ„"ÏÝ:æÜ-­RFÏÍÒ*õM›jó‘U Æy Í™® 9I’¢R wé h’—Šè‰Ïþ¤q»wI:ùþr§È©ñùÄù$Uöÿ—’æx¿m·³¹µ™;íD¾M™Iꬤך³J’[h"²ÑÑ1JsŠ‹.±i”·D‚Ä^K‘Mª/Š6DÉ¿g(™rØ€t*ƒhÎâsMI2Ä’´dC[Z“MÏRŸl –¥«Ô*£ƒ¥X­, Ëèi©ZFsÍæ²m±„/Û:K ³íµÄ1cË,36Ñä3ã$ËO3n³6ãHËs3®µ\8elK—3Þç|:Í·3ñ±”<“0KÛ3)´Ô>“TKÿ3i¶A“xK#4­`©†¦9,Ñ´ËsÕR"šÌ1«¶óÑU#ú Eiú"T¯úBUõ:1T;;ÁTƒMUÉ ÍÕ ø¦¨¥ð}Skâ{«Ç÷_­’óˆZ.c#5nÎijÅF:êu¦VSk|¯ÖØEC-¶‹Zu1µü&…긜ªᲬN†Ë»9"ªÌW1¥qú3/zÜ…ûÝ{#$Ÿ©^&‚ÒgÓ2þ 4¦änê{R‹)c‰ƒö%Ë?´±¦¿Õ&ó±T]Br›Ž~ãS4¾*ÉW~R笑öŒ°jZ¤äMÖ´Éû°I­“·jÓj(oç¦SÞòM«ª¼-œV^yë8­Î²îrZÀå è´ÈË›Ôi!˜7²Ób1ov§eÞO‹Î¼gž¦y_=-^óÞ{Rßæíù¤üÍ;øi…œ5ùÓ":洞vÞ+P‹ñ¼Ÿ ìyÏA-êó¾„Zøç½ ¥6ÐÛjù ·@ÔCo“¨eˆÞJQ*Ÿp¹c„ÈëVoµÎR:6?_dÓÓâK_hú*µˆÓ)¡…žN--uŠjÁ¨S]‹Jmc¤æÔ·NªR}sµpÕ÷_‹[G´Öù¨pó¬le¶\Bę̈e¶Î°ZŠëL­åºÎøZÒk²¡U¿.>Zì"¦ÕÃ.†Z`ì¢*5È.ÍZ¦ì¯¥Ì®´ÜÙô†¼ÏâsiuÊC-jƒ5Üz°Éô¼I›½¾cÜt•ÞëM)áýà”ZÞ3N ê}å”èÞ{N7ÆûÓéæy;Ý`ïsǯY#¨ÕÍÞ¡P+ ½‰¡VI{£CýÆ›!*o˜¨cICEŒw\Ô²eù@뚃Ö>û(Zí3Ño|¶ŠÇW¤…UŸ”¹©N‰,À‡±ö¼\™”R …Í”•¬Ë¯8¥¤n-‚JiXçv§©í%¥’*Áµ`€¤ƒg¯»æ‚¬Ä.ø“×l¥œµôTêºRÖø¶Ö~¥,ÉT†¿ÖQK~TG§Ü­>™kÐRÖd ­SdÕÑ í¤ ®Ë ´Ô@kâÑÒ$.šKå²Ò$®«䬽KEäiy2Wð0êèT¬LW*)Gu4 í¨ŽDŸJÕ! 㨅~Âa“á*Ȉ™+%ãè\MgxÙ|´Ø˜«2ÃJ%”îÄàÚN§–‚Juh ºT†‘*Ó°yR‰6XªUHEk`)z Ì$…±á¤x60%××:ÏJn`k)Ò ¬/…¼A<¤Ø7ˆ»”IÉpD)+²*¥ÇAž¥<9ȼT0½ UÎAuÄ[ú’nª®S OÐà——0˯ؗqž´Ð«[É·ÐâjVò-ôºªMYhzé³âFwz6nÍ¥ÕºyWÒöץŒ-jÔ]ÄÄkà’ªîƒK³º.ñê…¨N0?ÅÔÆéËüõÑ`†Úb}ôµªI×5ƒ´*É]èR%UHë£1²önoPL×"X•\ fKº¸Ë|ÈdVe<*×òo¤²9àáâç0”ÔG‡éÈ'>cÁV%#…•ŸÔQ;)Ó‹jO?DˆfâR$EKúÊkßÍâ€"ÇÛz4#ô”üÏNˆð椕àupí:w»]%älm亮» ö/ hÛ{éá!z„ûУ۹Z¤Â!õÜ¥`Mð—@ÔHÜd![<¢о­ÚmÛ¿øbˆ;ädrñ}^ÚI¥ ž¶Èà tY—¥µ+ ,—=#Y”åÒ¾ … 둇B gA";‰ÖXé× ­’åU+ǼWSÆ1:R¿Î‚”+.YfåX'’ÕJäÂ/N­½ÍâwŠæÄ-GœêY® |cP;{n^’‡Å|ƒÓdŽu&@×µâL‚Êqp‘< 8 Êzpc’w˜œcQIÝ®NráäœÛÎrˆF¢Ê‚ =Ї€áµB(O‡AM‰ùÚ…9q{_—÷”$×TBJ"˦6 ¢eíÏ@.=ãÙÚyŒ}Y{йû±†K;òÙ:-QSIqYk$!Ö¶‡Ò‘CéyéADIŽw€GܤiJ7Ù:$ ­c{)}¨G@²•𬰠²äP!|„¤-Î>W^ó4.åGdz5ãPÊÒC!B‰| ÈÁúÈ ›‡x¢ï+±!ïLÁR€0­¢§¦©¬"¯Dž‘&¥;±Ì"nD/P*ÕŠºÃÓàT¿<a=!Eæã˜%iÐGf(j3¬‚5kX¨(ß@ QÐ^úR˜Ó”õ| »˜ß±aóÄ¢„ –ÒœÄ(>ÃxIŒ[à71€'ÅH¾Cx»®ƒùÕ›|¨µvR‹îR¦VßQ=Võ\ ÕÁp¡W'ă:*¦;N_æ%#Ò‚™¸ŸN–ÄÉ$¯„SŠ|fÚ&×¢6ôÁ°D)ÉsËöEšú8“¼©‡×'LÞÄâËSC<2–Ê`éü¢Ê³‹Ž¤.©fÐq'¢øTIXŽ –i"^"ú‚RD²R¨çC„a:@ ü…8VŒ®Úz¨j7Sô#¥˜{ÕÞ¥€ÐcWt=RSµB mMé…¬ÍHµ)„îešP'IÄš›<ËæÛ4˜±"îÚ´ŽŒzM&†LðÙíÏù´ƒw0è±0´P]P´!aytM¯‚†SCñti‘ÁY ŸÂ¹X–‚^‹o1p.gÀ¤;–.­KñP]…ð1 ß#êÚÍt°D°V¾§ëêj >me×54ɧ ®]NÐHŸ¼!¬[Ñl_~Ô¥duâó¹Þ yÅÊ£T«Ä±Qç–ù¡v‹g£k@!]Žè2QÌWJ¤êýèÖŨ¥U‚FPÒv+ÅQ}HW–¶)(Pœ5n ÄÔ¶¹ô°C‹ @DôÈ$Ril„¿i³ÓP|F³3nDÕåL‘c!zW÷)·MÊ÷M4Pà9K@ˆIj,¥Ë•BÔß­bjf@ZŠß9éßu¾jÃ!ÙÊc¿ Iâ7:bÍë²Á·B«ã˜ ›ï¸`ÛW’mŸlqÑôcƒ¼¬™3Jž¢Ã—¶³µÆÁoì~EžÌšP`|»Ý¸µÞÎÚñרQìSB²>âaR¤%§"fYßý0I̱“¤•ó‹³²¶ýh¯èöU£î@¼üÔ/Ï@TM€h2ClÚÎ7hó3­ik0Åjë4åk´0kÔßFLÓðFp³¶)f)lãÌšØæšÅ10«dLb†ËÉŒ›ñš@ãG3’ƳjG­ÍÒë›56ñ0‹m"dVÝÄÌ ¿‰¢9&®æ@˜H›“abï~ˆª÷U’õðg^R½–±Äöó?°$ta€eL(•‚3kEu,Q}™â’‘µž]¾i—Á žfÒ«cõK\s›ìfWf£{}ûfpïµ€gpß·0(ÑŽùØ76gÃcë²±|í'}4º(‡=”Ô/¾6ˆõmÌ”t€FoäU¥æçÊem*¤×pžR _´û'.õ¸‚^Ú›fªB =ÿ9¤©FSGWN«¨¨Ÿ2®yC©ºÜ¥É%õr¶B‘cçJòj!ª{|‹^¹Èe!*î\’ì ^HÔÐÍBŽN¬¢¨ÃˆÌ7€yĬÐÞâŒY¡¿…†‰8FˆF&¿ÍÕ›R’Áõñµ¢7ŠP0/…&%ôÂUš­ ‹±k­Ò-ÜTCô fV·€hx„«ç¼E p¥üdÊ”"ï*9f”í®cty8ÌŠ<«¸è¢(®ôÊ2g£Æ%}IŒ`׎"Œ¦85Óë[Fwœ¬G‹{ƒó85ª°ýä:öG3b[eô¹ù“r ¢cEn¢Ò¿9Ž‚ =r%""ßRIሼC ÍØøÚt“œ i &GoÉ&hø“ÅW%sEa¤ H‹2wlQ½H>T‡C†ØÆç ÚçÃ1÷8rµÇ'trµÈöÛ°éÇ"Ó9ˆPíu %”uM1bZ‡#x™ºÙ²'EqÔmƒUœÇÎ{YDw¿T°rȆ¤ƒ‰JÑ<5å³¢ýýŒ‹>ìhüZÔpO—K©©|_ì2Re£\‡ìdµÐ&_ÙŸÅôp‡Êi¶·ÛU–óT=«òž­¶ê„<Õt¨Þð Õ-ÏATGˆè1ǬºÎGW}è3Té«P½ê+UÝëÔPõìS.$Uï4W;`ûb¶ÂöÎì‰í¯™ã3KÆ'fº”•̺·©4†4iLkvÔøÚl­²¾™c“3Ù&AfÓMÊÔ쫚c`¢j΃‰³9&òæƒWW®2nü˜—D/î… [DÔT¸^EP^Ã+ZAD©Úí–”Uæ‘g>¾A¤ x¶…H*r] ˜?*_Õ [dóZÇ7™ëÈ èÚ1ýÄækHlM6­û†6ê+.yB’ºÚ}ˆ€¥¼81.³Ä’¡RAŒ™ùJÜÅY¼ zÍ¢×`šY•=—È»=äÙð@&Aìêo.Ö»¨™í á‡<µB›ÜæáO<ÏI£ë…æµ,ó¡S²¬—B¨ßÖÊÖþ^Ú—­¬+Yþà&’á©–8)ïŠ.=^BÝÔ–/‘9Â{¶›tJ:’[‚ é¬ÕõÊaLôÀ‰D}¸SS.¹ûÜê]£2–~¤ñêQå ÉiI™bÛÖÔ‹‹‘åAÝéïÈÔù<@L±:×a¬}2#ùÈ[0Ê1¹ÞÙbúü;׉†%ö*/ùz‘é©8Ôɹ´¾’£}ı+mq¿?ß¹¦/Ûîr¼1r@£ ¼È%Ïæ“$U,pGC¶ÊÍÝŒeQј®nLœ¿!Dc—Ž–åé^“ ¼s8)£(eDI‘ ŠªÌCž¥ÏBy¹÷ jA.‹‚ê0ÈôË¢o4ßð¢È;c.ªhz£Þ—cèF6ã"­×¥Ñahë1£Õ°‹q¥g_–,#4ïúŽ£í‹Ÿwtëü䢻Ûožò^—Æ$~ªTFò“§2›N•ýüª<ëg\aë®]Œó¢8¥£_öÂ’HP³‡†TÊüÄ­’h-3MZÛT³¯²ÙCæý(¯z`Ê¡:št’7åò @”D‡¬¢ç|dU…69Q–>}Õ§¾DÕ¹NÕËíö¡°@NÕïNrµ¾-j'|çÔ–øîª½1P“ä<¢fËùHM›óšZ?cGµÎ±jC«ÕÎ:ç«-véP{í¤6Ý¥Lí¾K¢ú.¬ê>˜<«‡á"¯^ˆ«óTLuÎÌKüÅÁEèÔ»‘ÝŸ^$ĵ,Q~H|£j 'êÆ«ÖwÃ’´yžö’K±w×õÁ³ÅÛÒ:¼sÞØÎ  xkÖ¨ò}D²–Y½R%]ZÚCŸ».áYîË:&¬£¿SÉI¸¾»ÑËô‰)^#BÅk”“óä ¨J¾iPå—ÚÃÊ/ ´)½_ Vñ’ý²úqI€.[TK•µÿæä‡‘ Ò—B8*Y—­Â…ˆEoÐã+Ç{´KÊr³ Ý/¹}H"ÔS^dÊ;Ü Ô¯ЕŒoðôawt.ËrÇC!Ÿw=k7™‹cÍ”çGNt°‰³ã¨PXAᎠa•eÊ……Q¢ ¾1sbî Zš\»ÑžOÇÆàÈun^ÉrçcŒ³ÿÁ…Õ[àLã¸)Ô{ÎnÒƒÏRºôžÍS®¶Œ¯ñþçÁú™»yñÈl/‚IÁ e¹‹ôš Ê"AXq{vȳô* "Ÿ¥ÈÕÕBn¼®: "âgÉ&¬x/m€§c_ÚzÖ¦ç}(iþ×o Ð¯®<¢t¸šMWhuU{„Gè‰`Z$¿ÔÞÙ®\š¤i;‡,¯¸·yݾ4´´ÉºrH^z¤\”×›a´¼Ô¬+/¢Ý™_óÒˆ¹ò4 BNáû¼Ô§PÙ$ò“—=5$2ˆ?¥’OÖ&o"«€të®HÏN …/Š|^Úá]Õ ÂG¢9ò:4Ë·þdÍd²êŠØX½ÅYú¤DK†y‹& kce–/ú8H_s2Š^¤Ý¶CìCØ2±!a[õ]4ßz±E;Ä^“¸L¬ž3¢FcUµÎÍj_ãÕ»Pˆ™v¹C¶ÞÅOýQuôOñ)\ÈÍï0E`¾‰)‹Ã}yQÇÅ&Ü@½$?0ó×%;;T/‘EÓ&C4E6“d&(°o¬/ˆ¢)Ù啇‚UÒŽ 2ÿ’%@;å ¾iz1ìý¨ <ûXrž óÑo|΂Ǘ%C…•ŸÔaqo™ÔÜTª„ù!ÓBoúÔÎ’Hª$¬Ü#™•~$½˜ Bå=èš´’¸Ì 2Ú‚ê$¸ ¨©ñŽï¿¹U‚—ž‚ƒ+ ‹‘tn±–ZåÞ$¡’ Ö8ʺ!“Î6 e] øsèLp¦‘¥bC:?Ö&׉nHãWÉšÔVÝ o( ©\¼¹!Wݹ¹W³¼„ÎŽÄ Þ Â“Ô³?d†ƒ°åoÑ;Z½°Ëµ“®ê’b³!ƒŸH{0 óVvy¤|C?áÔå•éÛ+;½P‘l™_çz’øMª¹xº†¸.f"¹rã’0µÊ P|ö(+;ÖW?ºå4¨üz@ S-ü^–“’JgÖ•å…ý¨‰ß£ò=«s³ï+ú[÷wNÙ T¨ƒMä²m©4ÚÙ°t~[ÎYµ4&¥³s¡ ¤Àñ…’Þ‚P”ʸ&7¥«šdÁȇ𡠠Z ³³ qá—,\ÎKæß\”Ìéê R\÷,D½ ˜¥¯y\ž‹ ¼ØŽø"ʲùÈB‹t2wb”Á×0N¯"Z×HZ¸‘¹Ñ¼HZ¾oËFÖæ±uZòïÛ«ÅûÎ%)Ç*›hm¾qÎ.9òZžºßÊŽYz;Ëfé ål½!ÉÙ^«ò].rWòªìäÆg—¯Ü”GDµpß…Ðó!È8íôCÒse7Ô”û»º@÷õS¥< Õ ¢¾±¨·0´¨@ŸžjI_‚jR_¦(['„êc'–êl'¨êu'ºê~Û5¾ojB|oÕÌøþ«)rQså\ÔO6Sƒç¬¨FÑÙU §³´Wg{5À&b¡]rĆ»p©™wTWÀ…ÔÜdó(LØÍë0…`ž‰)Ó{ùu‘ØŠ6€ž¦ùÀLO}:r»ÓT¦´•Xjš˜´êÒT7 øJÇ7MÕ8žæb+ciàØ¦Ó«®¨_âØ'³•š!ÒïC‘4ù\ôŸ¯"ñ5é@¾îƒ4ì^¯~ø.#£~ïDC\¤Òm}éÔ·½Á•öUJöPiÀV)k¥nìúôgx°[Ú*­åIûÀ»¶¶ŒŒ3:PŸˆØ®=>iãý+mlpƒ‡q/joÚr£2ÌÜ7jk†.’Ò‹˜µ¡µ¬4…›tèjhFÚ¤K؆PW~ðµQM"IÅKû«d‡Óš©ëUÃcžÙúau,íššêuâaÜPÌûgC; ×Fù¼\Îi¨diì²$ž:Éí_é«'ÆÜ)㺑Ø1A^»É:0uªbk)irmdÔ„tq<Ñ0j¼#º ‰þ ]2:¨¡D»Æ²<¼ÍÖHjÓ O£Q“Ë} x·T«6hÆ$y²}k°zZÛK¹D vZó(.8P Ú=YkÀø ½ŒÚ.hd¾YàB¿ýsËà)”ÞWײì&NÚ¿º´FùÄøkéµ(aüß Á¥YÝ*Ž·E]Ýnf¤·ËšENÿ7x77…«‹Í$%„p~ÕÊK“X&U­mˆ¶åÕ!«ÆfPáîg¬D…ÈæNTN¹7Çê.~ jNK‘û£…w¦9wûÄø3›ì9èþ ¸ g¶#ž"Õ?èö°Õâ=òUⲉ9.-9ñ0îJ]‰*‚WÜ­#^6“Ö°#7¡‹™.}´ n~RôŠë #î™5¤ùàµ)cj Z²C· —10{c5­Ã:ñ0n©by¸vL26sË“–òlÚ(Í*jŽP?œûôgh5J°·#k~ùÈtëZ1D–œwÍÐ\”w <8²f‘ÝàaÜEoɨ ¸›ÜZ6ñ(rk·«ƒPƒ=žxw[1}¸G‘¹KTéèüØKÏE2*F•\F{ÃîãžG³vÔÖbéûJcVyž@ßsãâ¬N4la‚œHñ¼¤q:÷ÅGð)Miy­ ®çÅŠÄ»xÔ¡øus„ÕO<Œ;kgï jòÇgùÙ­¡oËØ»P—BµÖDá·¼uu¢aÔuI?íº¼ÎF%ß(õ’¸f’G|4íDCÈT)Ëñ¦ã,ÿµSoGàž¬G*æáß Ö#uëØËbÔz¶M €x7rx1®ºØ¸Iï,n +Á5ޱ†‹s®CÏI±?ñ§¸ô‰nºBr=d¥eU¢\,¹.¹¥Àƒ'‰¿90â"‘žkâæ5nœã³j’Š&½,ZYnõªxs·xwç .q&d4 ²]Ý"°Ñ0êÆ/$8LB­§¶*‘t:œê¡AŽJ• ¢HâíŸx÷ Àöáîí’Òié’-ÙßtbmE'Mj¥ÍñnÑ0ê5¤×u~ݨáæGp^”Ïâtoœoå 8¥“×´XÞ‰‡p£åŽÞ8¥7" FX­«\¬I fGí¥r‘ƒ š`Q_³Êí«oÑ0êÊ/&\©KŒ:qyÅöÌeO ?É%Ã…Ú!¢éªr aÔJÊô|PÒÍeµ&'çÔÑܵ¬*ù}·rÿ(Iá £æ\¿&ÍZðRý摲’ä>ío¨PwCtÛÒ WVá ›[4„­ý÷ÞnÕB½:SBÜ>¼$9BXöüËä bbû^¦æ§Ü"aÄ…NêevºFâJ%<w{•W¨wOÁU#‡ ðtÇÀ¯štÚ¹ÅøqzÙ NAêN0XE޲æFÏßíóžÜÚ¼<™Øo0ÞA·õûGT?Ä‹ÒüË@„‰1(C½Àk`¼:¶•¡¹•·hõ¢G~Ëh<Û¨ ?¡RF‘Ý(¸^[€déWò¤’‡2øöôgx·”–Á텻ЅRV‰È { aˆ7 ÷e ¡VËO††QW:gzϘ(‚ê{Z•Zø˜¦ˆjÔL¿‘”Ž[,Œ¹S¯Ž‚‚‚Æ™ä%nK8Eƒ–N5œ’x ªöÁ¨‰h<Ú‰‡qãä·A…B6jô²Þ†¼4}Ô®Hà‚”AŽkPGô XƒÝð,„ ¥ >êÔP˜YëÒºôÄ.Ô%¼W’BíT =#B˸ÁÃîd¥ƒ\«¬?°cº—¶OqEk‹+uDnÛÒæ…„ªUŽÀ=ýÆÝ)¬Õ²äáÜA/î6t›–âlÞ­†ÎÛ|TÀ‰ Ò¬¤ûDè…*Âunömˆµˆ÷¼è½è щƒkqú^K±õ‰‡=³D÷áûÐ\¥Ï dQ4TóUd¢bÂæE´{½m¨ÏybaÌ…r?’õ½[Mq¨$³ÔÖ€âPúX'‰Å¡<¥(àaÜýâàQer ºEhûȦÎs'2´ŒC…e[5ŽA‰wp0ÒIíŽ(rt1)8€PŒvR/# @É!gÜÁ(¹?ѰKÆ=¯ÞkêD XD Ò’«®ý õÓhij'ĹH‹·|ékD7xw¦êO ]D1>âx ¢ ­qŠÛdà”¿ G 8¯âãnT­ÔRѧZ_f·D=ÔÉ'ÍÄh‡É˜UÈ&7oyƒ†Q ™RèˆÃ-pÀ—•“OJïªQŠ0¼€=‚çòÄø!AˆÞwöÈ.rrîa8Ö²E+)þ$‡„IÁÿ†ûn+‘°?–(=„‚Fh!‡üà»qxx¡)òßC“«H¡'¹Š<±0æMøu‹ÿÀ·'ðâVïB¡+#$ž€rké5Óý«¬Žæ‰‡qwŠƒRÈ(KÊ2É(òÔä~‚›'¬œ-¸ÌAy*rÏq aÔÛÕD˜z¥Ê–n"O¬á¯ÉyA8K dð»fà÷ÕÕe xØ»¸…"FÅ&wLÈíaOX)ø3ô„°øÕ^H¥xš'ÆTD„š eäwåNŤêØGä&ß|âšRã‰ä/ñ,O<Œ»ñ] ‚FÅ&‡éZcHºc\vôÑýjEuÓLtÖ¥¸´ê’_ÏG…ÊEê[ÅÚõDØ«¤½'‰b°­‰YÄÿ­y6… B08úÄÁ–<Œ—%ˆcmjq°…ž¹N}bUZùµOŠ>ñY×V`’<$Œ}‹‡q£ÜBâFlAL‚,Y—¢Ç%ƒ& czõ»pø‰í7xwãŽÔ8¢0vAU7õúÇs=D\[Qkò!ýØ ®­èÅŒ%aì[<Œ»pF%Gm¡®ü•¯ËY™¢S'?£ÑxŸ ®­Šd-q†Â ÆÝ¨Ã'Gm¡àtæøëR:eŽ?±UÄ­Õì€âpˉ†1N–¾–ı .­(ü$aìBÙÐ]£Â4üfJû aÆUö^[ºt•Eô‰5)΄àDŸ8üBN£Oœ&uƒ‡q#-Q«$aì‚+«ŽpÏ’0vA±öÕ8üÄ6±K»¸Š|v¿Áøëà°Õ0vA™Ùž ÅŸX“⌾¥ƒPlqk…˜P^¹Åøe¯íßI»tî`O(V¥{ýSŠc0kËBh•?9Ð0jœûÇŽ(]ÐÞk³ëÖC²)¥óëH…ŽR A«¸Á1(>¾ßà!ܸmBDi¯4k\ZuŽ@±E¦Ä(¶ˆ¸²*ˆ$5‰bß a¼…ÄŸbGpÔH™—cEã«Ò¡|å'u$c¾Òc¿Ô"žJQ Sz¡@Â8¯Øj”ÃÞȤVpt=:Åcàw:—ð¿}RçTNÐÀÝaçLFªC§2™:ä%ÞíöPË‘ðEãÖ<ŽDܰ0NÕ¶ß6ù&L·yszYV}æÜG÷¹™{믥¤¬Œ³*è½€$ù6•ª4Ã.rö!§´†gc¬ß`…,<ŠDUIY™N-éìGfRòöc+ß4n¿ÐT¾ CÕ& åm:òM˜rÓ÷lY2–¯ü¤ óÞv‚.:•Åᑊ`-ŒÓŠŸ¾£'M¨_ü>6‘E''­M>e«óÓ8¯ü™[ÿ$IôßÑ\’âàC]‰mµÎÆ,¬U;¾èrßïX¤ÉA‰Ú ÇÉè'6_Cãk’‘|Ùe~ùèÔ¤¾,~ °^Rl¤Ii€Ã0Ž)s(ˆIòàC‘’_5\ºBý&IlÐñ\r¨÷¡.¹Ñ¶éØË‡´ÄVoº¼°ìxSޱº?ì§olΆÇ×¥cÙÒOêˆê[Iú¯]CNëÈ„€OÛ/®%ÝÆ»s”å’æÓÛ‘ä¼°¶šœºWÉ’b#™BþÍ”½áA¿Êp²¡Ð—¢0€gcO«³)æ ŸÌ5$À¡XÇHˆ,¦c6öÍXñ„UÉP¾ð“6/PK:íŒ&h2Rö@ ‘]REM¤¢çíWE rRc} Ý¿KÔ·â!8j¬cV©ê èÝ}¡I#ûf..‘u< Ö1èYŽéè'6cÅV%#…•ŸÔLÜd§âN-s–Á¢ÒìŠ4Þ>œ“}Ô¢±¨‹Û%hH0pqT3/ªé7Y²UOjr6²± €Nç’—¾7„;dø'ÈÃ8 nè¥}J˜Çdì›°¢±5Ù@¶îÚ¼€áØÀÌã|犎ÁXyó2—†ÒÈZ½¸¨“›I©™yþ’| Ÿdé¢âh‘ïJL*i˦ƒd¤¤‹DæWøfp QÀ3(VÆ=!­>ûƦlxlY6–-ý†<‚cLÖž8‘Ï<&×Áä³G…{Q~Ò&Ù±IR™z×0ø±‘JW¾ãø¦Ë¥¼¡éòÆŸÕ¦¨&›NërÝŽÓ_îÇ7Ö<ûPmð3)>ýÄg¬h|U:”¯ü¤Î ˜¿@ ~Á±T,r Öl„àe.©Ðüœ ÍŽ¥hHt¬`¤ã›.-Q—ê<…±štrñù4yÃVI™…þM/ì8žÆ†±Úd?Ûç£ßøœ¯KÇòµŸô.ìp¥-ÕâÀQâfƒ½ÈYñ¦,-‘8¸K6S¸•(”PK­«†}ÃÑÈÇ":l4t6Yïvºu1ílktæv4Ôý&Ç¡»ŽéØ76eÃã˲ŽÄ¶ô“:/àBü‚;AUI©Â"—`å`VÇ¥4Ìbu¹æáì¨.Ï5u¾#Šß˜.7<…_Öð¡r—«M'W9žjdÒ¿!Öh(¦rŒÔ¬¯Îƾ±_•å+?©#<8·ïK×\Ã@¤!ophBÀó±olΆÇÖecÙÒOê¨5.C&°8'¨ŒÚ¤ÛŽäm½+×ev§5¶n'%Iï1mm‰ÐþÍ•ä²FñdÎò±qØ,<¼è’kÊ¥ µÜåľɜŠðàÅ…yŒ•†vа¶|ãsñ+_•å+?©ó’¨4g‹<=Bzhùð©3â႞§Ghߘ—fxÌ“³±ÌÛ³ù˜GˆUž!(qz„Ô õðñ´ßéÚ7>gÅãëÒ±|í'}„ 3ߪUÔïÐ,Y‘¹£5 Ò‡)áI’ö |QEZ»xs ±I\·±ñ·o¯Xò’Š ”«ÄNm2Y[u@‚[;¾™œæxp3?k)¾EðÉØ'6aCc‹²¡lÝ7´yâ0?Ô!I‰ 夼U”‹yà<•R³ñä¦ü6Ù¶/ 1P(MiIãp"ÆS˜JÎ’?%'Î?‘÷Ì %9ô8hY|.öÎÕpØrl[òI½A–°$ ÔÎ0ª–p¸=qxSbéœa´!E#ÒSc©Ù4‡C¿ÃnVÏHpѱJïvU±äµ»&oïÇ7šgâx*• DZ 7ÂóÑo|ΊÇ×%c…µŸôyÉÅHã÷Ûð‹4˜¢\¿¬Íˆ‘KWj‘WeY  (¹ ³é*õ$/h†&%éP –^WÈsr½ŠÌa‘mßTz±> ©¿e#•ÅMú|2ú‰OX°øšd °î“6ƃ"Žp0>ðmJ§®ÿö¢(AœÂ¾’ÕÓ9c µrGD÷ÈîçUû¢M­P,-kÞ‘Žd9u<“ÚÅc@®Y>þ½ÈÅŽã(‰sî|zß;NE?±É*_ äKv’¼ˆå.~Ì{jåOå¼eÂ(ŒÜ¹mÕK3z_ÓR¾¸žµkÑ›~b)G†E_·ñ‘ªžl6Öf¨r¥ü¦4.¦u<8Ã¥c¬ÂIpa:úOYñøªt,_ùI½¹«9óû–Ü*»÷³äVÙ=¤…¢žèD-ég鎖~¢®˜!1oÍ2Î&c^EÙsüf.îYãxæ\~«C!«z“±Ol†ÆÖdCùºOÚ¼ä:äêæ'²×‡EªùðŽ7ÙÔ’$;÷²ìóÄ yk6–yt6óú°Ê|x† „ºÑͨ¥n´¬g3?šçcߨœ ­ËÆòµŸô¹9ÿzPϤ Ós«GÌôlëQ5=ÿzä;±èœáñÔ#Ë¢|6‹ê™4|#çÖ€Gζa,9ÿ†ùè7>gÅãëÒ±|í'}þ‚ó¯GõTêñ0=¹zÌL·VÓó¯‡Þô‹Î àÙ@ã³ÉXP¥á9¸:9Û†‘äü&£ßø„¯I‡òuŸ´9Ï¿zËåpþm‰“RŸìàÚ¨N—“»ãysG¿ E’Ù£ßd V*š$/ËùPIs2l:I¯xåP¿Ñ¦6އ·q,>Çùè7>gÅcËÒ¡|å'u^~þ¥_p}ƒœI kíJˆRyàlÄB-&7,šž'/ɲoôJÇ“4íÅÆBMr×Ð|®¥©Å|&ßð¹5âá³m‹Ï¿q>úÏYñøºt,_ûI½¹øv r!"Y6-‹š¥8{ao,K(žjÍ*’ýÀÍ[©Ç¿ç®™¶Š#é…·“´ˆÀ¦’$‡–bì3~Òø]=ÇÒ¸KT ÏLtŸŠ} SU¶Å|Ðä%× _H¡vU¥b¤’´›øŠ§¬TÊ‹§ÖíÎ .¨þ˜õø&[®µâIZÆdc%Ë}ÖùÀ< Ssñ“ÓäEBÇCÕ3q(rÓÑOlƆÅVe#ùÊOêèÙ£ð…Ôà’#¸Î•Z_QSUwÖ]“Äö~äÂy’H&å x€Y3ùø{Óˆ‘tKOÔQ¬™ŽÍÿð2ÑÖ„Ÿ·°o²<áx’¾¹eq}tœŒ|&,x¢d¬°ê“2/9†pe4]æsð«ìR&G*qÆ1²¤+6NV£ªx> m[ +#~ƒU¦ˆ„èY Úåy%=wÉÝØÔÛ!,2ã›,Ïö8ž4ä.JÞ‰³‘OÂŒMX• V~RGŸ¼'X9ØDõ |¨¯œέ\Xˆb©F¨Tñ^©òå‘ |öé»ËŒ~ƒê¢M™Z°¦C¡_/™ånŒãMAÐÃ7"èÒoŽ¡®&Ñ ›|f,hªd¨°ò“:/ÑÜ\Ž~ÁµLŸê&¬³(!Rå‘9.Z•Á³­¸¯t¥„àcŠß`‘r9,x@ÑŠ2â&«ê è g¨¤uyð2|“¤û»ã‘œ0ÖÕ¤’ÍG¾ sþ}pþ–£ÙóQrçÇj}&öMÖÐØ‚t$[s$Ê‹î;Ĩ¶,¹X£@iT̃•ªß‹b{¨šâ¨ˆH-K¶ö8üI¶Ö/ŠÅjÐl T4ŸP'“4´—ÙPÄo‡ížÁ¡= µŸ×1ûƦlxlU6–.ü†6úrÂâDÿu-鲓P†`R;¸ßÈn囈”Ø/FB1ke:0ávmêáʾ™:kÅ3±í  ‘æHÚÔZ&3ûÒ>÷H×?¿™üÀ¶a¹õ&]xy}cV4¾(Ê~C›—ôe^܈sñR…šÜÕAž2*Ò¤¢Z•:H¥³ã6N 'ÝÎ¥­ôí8¶¤¡C“šc”’Ë2™ÉUŲD¨ÒðÍä{Çsq b´ìÇLì›­"ñé@¾êÊ0÷ýþ»t1/!á«÷ýwóŸ E>·“Y^}ÿ»ïв Ý^½A=à5ö¶ÑôýÏôoi3.[q»ï“í÷¾»û^ÿ/ßýûï¿û‡ïh(4¨Øö«¡Šµôztz•¨oE}õùáÕyõñÙ9%$+ó¤Ð l»ôá«D ît£ÁÿƒÿÙÏP©Û÷á[ˆÊQÌ:üðí/þµË{ÛìwÈËiÇï>ãwWJ›SøwùÂ+~õøÝ/]'Æ:øø’ñÐ,£Ÿã}üÅ])xu~Ÿ2zGlTí)¶û"»’Qiƒ&8xD““¢p¨QZÍΠgB]÷Üü„j:s¢ŠÖ½Þ4ƒ<Õ†s2÷×¥Ö_Žð"1]©Q0ÍM“nÐÑzpr[ÌÁµpWÎöÞçà¡1Žô9% u´Ä›Æ£†KT>^è™nî8:©…AÔXz>^äµTy”âéÏðþzw£l½åfÛO¤¯W yÍ,\ÿø’íÇãµ{åáw¿¹ûù5züŽYî~znµïÿø¯ßÿÇ_–LÝÊ1‹O/aÞBÒtüî[Â’rßô•ßqëêø³¯·?Ë2Ï­ ªÿ¯­×㇯¾E-ô—´ß¡çÖ<~÷O/Ñ"ÈgXóüá÷~¸}P5^¯èÁ¬Ö޾{eàͺž'Í/Í”šùâ!ÀÜ^°ƒ· DÇÅ–ùbúÇ+–¹ò™zrPEjÝ$Gý2+÷?•ÒÝóGÒ"m ¹&žÒe'ªê«yÈÏÐm•ÙAqÿ6n¢VpwÁMß$À YÐÔ¢ Íù Ô4pÿ3Ú笾þB«u#לؓÐÂï¾?#Õ·»HO—Ìð³_æ¶S ;KÁBìW?½h°‚‹Ë~öY¨5s ¿ú&¿ƒ¡Õîa^0X´©‘Œ¿, 7SÄ­ìW/±¨8‰Öhÿ›mPU¡þðM=ºY¥­Û]GO£”hèÿã[C÷2zØöŽ^páwzáÆ£\øÙ‹w¾¢I\øá·ívïGoÇï^âaókŸ/˜èíFîñHBýwO/Z Šÿ×9ÑoñÛ1Ñû¤èÇ Ⱦ՟ô/öÆäMÔƒ™ÜO·]C"Êyrƒ"zÝBº«Ÿ¿âk™šÐ4„‰wnßT¡Žƒµéc‚ÜZ”ôVéâýÜàQíùËZq{f¯à*æNÄ5§1Ö}0€ÎÞæ”„ë?<þðóç‡×oЛk­y—þöõ›ZëÝÿöôöË—Ç¿z÷öëã§øgœvçÝ?ß==~|xýÚ^ãÝÛÏôOw_~zûùíoŸ Q¹{÷öËÃ?¿&}ƒÞl 4¹Ÿ›Dß¿ßCÿãÃ^Ó[cÞ=|~ûôú ÝØìI<ü·¯¿ì¿†ãK¿ûñ->¾öéìN~vÕ½»ü›ýï¿}ýFÿýáá#à<ã÷q”§O?Ñgü×û¿{ý·æ{¿¶F{ƒÃîØ¿øñAFÝ3ùôñá‹âº{÷óçÏ5.P®Ñï¾>ýÉþéñã»§×éîç÷Œ¦ŽrÇTZ›–ïõ³¶¿3·è áu«Ø7ôzä6`›B›Ô¿ýò‡Ìøç–RGÖ yÁwo??ü-•ZXõ³7¨5Ù®ÓýÜsäIlÇ*|¾˜­ç&Hß¼‹ð·¿4 »Î!³øÍÝ×7­¨õœw>9¥ß?<é?ô»·OOŸˆ†)·»?Ò/:qÌï>}¦?öOÁ‘ÞJÿÑq3¢nñ×ÏŸ%v‰ñíÿ¢½¾Ò•ù ë†æ=CÁ ÆÌãîç¯3¦ÐšqQÛû§¿Ûß~úöå矔‰6~úüUx¼á( ;XÓ$°ê»¯Ÿ>ïÕà¾%éËÃý”´ ðýÜ‹›éÕçþBѦ®÷û¼œñ¾ÃvçH´ÿñ­ðÇÿ÷é_™FcOù§ßÉ4Ö–•¯úßyïÌ}œÐ_< dîCt˜ÄÝ_›úýÿ¹@\Sm­qçëºú¿%üÓ6Ošmeäø­‘ïO®ýßëî öà–ö–>þîOàŸl v÷ö£|‰ÿ~ÿþ¢Ŷawоn¶bốU¼ÕØ «Aœ²–¦‚÷Çy«S*w?ª Þ’öÓOŸ?1ku÷ß?¼ý m†&☠ICáèÐÝï>¿}§ªž žÇ§Aãy>ð¼üÓü3ÿ»×¿¤[Xóç½:4û™dîþÓÇÖ2/Ð5èX7®t£kèA†ö º†þ¡l5ñø@ß VòŸäŸ6ãÿÕÇ÷ø£ÓV³bÀõÑþÊ|/Öºÿ…U€ày«ß½ü²ÇøíÏD:Ò¨—_7šü7›1Þ á¯=«y·z¾û™ìÙRÛ™õç*’ÿa²Šd4{F?³ÑJµÕíÑÙg3ÀãÃç¿ù(Û¾¿ ûóôÕþIÑ€`_h뿱sè‡wcç~s÷÷??}}ämÛ˜&0µ»›]ü%¾ERQ+S·ñ·o¿<¾Û«ýÓk Ø±Æ›ZæÝ?þÓßoÄ·›Þï WüÇ^öGØ]\kb¿|zú­u{vp>×Ýo?¾ýü'ùÕ¦®Íí oSB+‹¢Û´Mf+’4Âo¶ôl—æ(»F¼~cÿ}ÿúÍìä Ü}O³¿fÞ†hÿ¸2{(H÷ôi ñÑÚß0g"Ò“ÇÏÁòEÂþõ/z°j%‹|<ç9lWì*&G?y°+‰ ßþkäjLWO÷dûFoÞþðöñã—¯oöÿ¢‡€"½Ë=„‡w¶à?>þþg( ª)½Õ¶Ô qÝýÕׯ¬_'SdÕÿQ·˜ÿî[n+j •?£ÝÙÞÉú‚¥q²¸oE€1ˆ+t¾§Šroʧí¾ûªò#œåúð\‡ÈØ[a÷P>ÉÚ䛑8o?>~ùðw¿l)\¹ÿ±æ–ÂÙ~IŠ7O"7@}»Ï?|~øòå[ʶcõ—IéŸþZ´¼¨ÓUÎh¢·5áÛ¯P‹(øÚT ôñ#k m¿~Ñ/6‡þ2«áš' ½¼™Aµ±)K#õí³üñá5¡IÛùø‹Š—Þ}º¹x‘·Êøjdþ#ïÅh\þç,. ëþ÷Ä6´Â­ßÈÐƉñÃÛÏ?ˆgÿWx=ûd¡o™èG圵­ØÛm¢IÛÔµµÙx¯¯v÷óÇ÷Ÿ• Óæõǯñ¼Õ7_~dã‹[Ø;æËí œ>2;¯ïs²7ÅÆXt¦ùù‹Jžm8L,‰ïîr8^ÿ×­éendstream endobj 439 0 obj << /Filter /FlateDecode /Length 235 >> stream xœ31×37U0P0VÐ54W01W0¶PH1ä2Ð30Š!Œ‘œËU¨`blT052@ .°¤“'—¾§¯BIQi*—~8P%—¾P—¾S€³‚!—¾K4ÐÔX.}7}gg7 7ÀÆFߨKß9?§47¯¨ÅÎŽËÓEAmá2n…v9?q?uŽ9M/.]Ê}]7wýñèÿ@Põë½m—n$êrÄÜâö˜ø§>î÷í'3ì%¾±Ý»·`^Ͼ&…¸‰{«ÿß:¹êzö¶i‡9›YÄ$ZÛÄM8¸\=¹AÿP¸endstream endobj 440 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ3·Ô3µP0P0b e®bÈe g`ä!Œ‘œËU¨`nfª2ŒX¨,,M-AJœ<¹ô=}JŠJS¹ôÃê¹ô=€Š¹ôœ ¹ô]¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµEó9üx„›{™ñ(|èæøhËTÂùäÊ˨ð]Qñ"GͯÖÿ ÿµþ?&øh*É–"‘ÿÿƒ —«§B ÍhJ\endstream endobj 441 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ35Ö30U0P0bS#cs…C.=C aŒä\®B ° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-šÙÈ–b$´þÿäà ‡Ìëÿ£‚ø¿õw«ýs”;®HßX'#¡ÃàÀÂåê©È¶˜>Ÿendstream endobj 442 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ35Ð3Q0P0b cs…C.=C aŒä\®BS° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((1ýr¥ó°å᯷ÞÇ®ƒ÷wÅÛ}={oˆ(|[ÿ¶î:`apàrõTä„í>%endstream endobj 443 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ35Ð3Q0P0RÐ54S0±P06WH1ä2Ð30Š!Œ‘œËU¨`bjT052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPbúÿäJçaËÃ_o½]!îïŠÿ¶ûzöÞ2Qø¶þmÝu úúëëüé~‹®¯-Ù²äªÊ¥vÎ׃L \®ž \alICendstream endobj 444 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ö30U0P0bSCS …C.=C aŒä\®B ° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÁ ü ÎT¸4Æ (Ükâ|©·?nå—ëÿÇ]ïÿÿÂT—ú“+…›þc?fÍd“þ€…ÁËÕS! #Núendstream endobj 445 0 obj << /Filter /FlateDecode /Length 135 >> stream xœ5ŒÍ Â@ „õ:'a^ÀfÓ¥¸‡ÒC·êɃxªÞ¬âOŸ_SAÂä›I¼fÁÓQ©ósϳÂeN Zý‡~Àƒyá~ÁºNš€Yu‚¤ßÏñ9X²a€Ô]¤Bš£½> stream xœ³4Ð33U0P0b Ss…C.=C aŒä\®B ° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨Üv}«Ú¢ô@û³Ëz×ÿ»ôÿ¿[ñ êÿÿmÓÿÿάG¢`R8T€¥ŽÖÿ»þÿmý¯záJ ñ[o`apàrõTäi­hìendstream endobj 447 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ37Ñ37V0Pas#Ss…C.=C aŒä\®B3 ° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((Ø¿÷É7góÝÙûgûÿ÷?ÿýÿeÕ¿ÇŲ¯¯ÿ ÿ¿¿\1—qù¾ÿ Œ\®ž \Z~[žendstream endobj 448 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ37Ô37V0P0UÐ5T03W0µPH1ä2Ð30 !Œ‘œËU¨`fhT0µ2LX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j bÚXŸ˜ˆd>¤!`£ÐÌÏ¡pø‚ã^µ/³/åG_Êÿ«öHäÿÿ2ûÿÿÇûÿÿÿÿÓ4êmýÿªÿ[ïí¿í]õ¶ìÒ½m—n{'¶l“ðæ1h:,°áÐÁ¦â| L\®ž \6)P„endstream endobj 449 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ33Õ3²P0P0b3Ss…C.=C aŒä\®BS3° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨*ìÔåã“™ÕáÁcÏöwþíÿ·ÿ¿ÿ¿þ_úéË^}–­‡ìT0ù< Nýap`árõTä¸~F}endstream endobj 450 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ35Ö30U0P0bS ²PH1ä2Ð30òÆHÎå*T017 UF`y 0243©pòäÒ÷ôU()*MåÒ*çÒ÷ªåÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔÍlöø?9øýx’þÁáÂ95ùË~ø~­»ÿ¿îÿ_ˆÜõÿ¿âÿ–í]z·ØäP¬Á!îGôš¹t`apàrõTäû»MÈendstream endobj 451 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ31Ò31Q0P0aKcs…C.=C aŒä\®BcS° Pa ĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ljTè*nâwk®pŒ›ô²êoÕ¿k“ã$â ÿÿ?¹êõOžïù¯suwÝæn“pÌ ãÑ‘Ð`hààrõTä¡‘9¾endstream endobj 452 0 obj << /Filter /FlateDecode /Length 283 >> stream xœ]‘1nÃ0 EwB7°-ÇR\Ò%C‹¢íd™> stream xœ31Ô35R0P0RÐ5T01P05UH1ä2Ð30 !Œ‘œËU¨`lnT052Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[$Áb ¢pˆß×þÿÿ¿Ë6âÑqÿÿ§ù2‡r3?‡ÂáKùž{վ̾ö«6ÿ¯Úÿÿ?ÞÿÿÿgÖÚú[ïãß.Ý[¶;3wiÛ…hÕ6Å„ƒ, \®ž \PpH}endstream endobj 454 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ó34V0P0bSK…C.=aŒä\®B#° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\0ÇF ÕMð!{‹ÐC–]qÓÿM¿ä? |”?¹â<³ü,à¯É§É“ýÿ7p04p¹z*r)]Pendstream endobj 455 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ31Ô35R0P0UÐ52T06W03RH1ä2Ð30Š!Œ‘œËU¨`lhT°02L¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j g½þúÚÞ:(̾þ ap`árõTäriH±endstream endobj 456 0 obj << /Filter /FlateDecode /Length 443 >> stream xœ]“=nÜ0„{B7X‰?ïÙÀ‚ݸH$¹€~(C…µ‚¼.rûÌŒì)FÀ·ËyÅËÓËó˶ÞÛËã6ýª÷vY·ù¨ï·cªíX_×­éC;¯Óý“ôœÞ†½¹<}ößöÚbA]Nþ>¼ÕËO3×Oýišns}߇©ÃöZ›kו범¦nó¥|:Æåsi¥Tð†kß)8žÀ±HÀ‘8 8ç"Ê)3ñ±œòP‰ôÉ99Ð'o”·–S#q)§<&`DÀ¨10*d4b(ЉC‘€ÜQDü¨-¤˜àKò&zS,ðhEr¿ ©Gî7caÖâüHLEDø²¼Î ^bzQæ(C@SÈÌQ†1vŽbW†1vŽbW–‹Ü4 SM“]™ È® •›j7ve¨ÜT{Ïýš0µa¬ÎЄ© ãö b:cu†½RÁL^”Béud G^WæŽå8òº2w,֑ו¹ã‹y©ô"G^ Èý:òRÀ øëkå÷Ì›ñuÚéã8êv×õÑõà­X·úï†í·®jþ„äÒendstream endobj 457 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ32Õ31S0PÐ5RÐ54W06W0µTH1ä2Ð30 !Œ‘œËU¨`laT073i†æ`Y'O.}O_…’¢ÒT.ýp R.} :.}§gC.}—h ±±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚ÚÂY…‡øÝÕ—–4}]¿nëÛŠ××ÿƒÐ5çæëkå!ôooý×uæÖËf_QYrµ¶#"‹A‰ËÕS! êOâendstream endobj 458 0 obj << /Filter /FlateDecode /Length 208 >> stream xœ31Ò31Q0P0UÐ5T²L-R ¹ ô ‚@c$çr*[€L- S Ö54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô> stream xœ3¶Ð3R0P0UÐ5T01R0µPH1ä2Ð30 !Œ‘œËU¨`lfT0µ2LX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¼±R¢þ'Ë¿ý__ÿjŽ?Üî‡Uyè{¿,õÚåý+±ªoeÉô¥G3ô~ØU³¯È_pÿþ¾í—'õÿ¿ºnõÿ¿¥¯Wý½ô79W+iÉuÇVF.WO…@.²ÿPÄendstream endobj 460 0 obj << /Filter /FlateDecode /Length 169 >> stream xœ32Ô32R0P0WÐ5T02S0µPH1ä2Ð30 !Œ‘œËU¨`haT0µ2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ø)ñ¿b}üú¯¿þc#\ÿø›µ?nõ5ß°ÝÞ<Õ\ L\®ž \'°?dendstream endobj 461 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ3¶Ð3R0P°TÐ54S01R06WH1ä2Ð30Š!Œ‘œËU¨`ldT052,¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[°ó ãå³­ fGFù¯_ò+týõU3ë_í ÿlkü¯«õ¯¯íW[µoÚ­_»U‹F$ì©­ú}ýߪëÊ’ÿ¹\=¹+zEðendstream endobj 462 0 obj << /Filter /FlateDecode /Length 219 >> stream xœ35Õ34W0P0WÐ5T0µP06WH1ä2Ð30 !Œ‘œËU¨`j`T0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[4›mÆf…=,_’2—{]_ú·þÚúkó¦ïÿ¿êñºÕ˯?XþëÚ¾ýWK_¯úÿ?6l×ú¯ÿöÿ}µ~íÕj_Ý‹û¦öܲá¨aD"3+ƒ#—«§B ¦îN endstream endobj 463 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3²Ô³´T0P04T06V01T0µPH1ä2Ð30Š!Œ‘œËU¨`diT025鯯`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm¡wó« ¼v­ ÷ÔU‘z«ÿ†¯úg´ÖkÇŽýÿÿO™uÃGƒ¡ƒËÕS! …)4úendstream endobj 464 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3²Ô³´T0P04R06V01R0µPH1ä2Ð30Š!Œ‘œËU¨`diT025鯯`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm±™ŒŽšðÕê]ëÿ—oÎ4ÎLîÿ·újÖÞ0 ±Ë3SuÉ´IQž®ª¡ Œ\®ž \fí2Áendstream endobj 465 0 obj << /Filter /FlateDecode /Length 110 >> stream xœ3²Ô37T0P0W04S0²T02TH1ä2Ð3 !Œ‘œËU”4 *˜is 643K9yré{ú*”•¦ré‡Õqé{(˜ré;8+Ù.Ñ@#c¹<]êÿÿ¢ÿPôËÕS! 0$Èendstream endobj 466 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ37Ñ31S0Pa cSs…C.=C aŒä\®Bs3° Pâ艑‰9H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ mAÖ×—)&AúÞÃ/¶ìlýŸ«iÝ–ýÿcUÿC¨¿Z¯IíZ·úÿµé¿®íQ_㑤¤X·÷C—«§B É,`›endstream endobj 467 0 obj << /Filter /FlateDecode /Length 230 >> stream xœ31Ó3³P0P0SÐ5R05Q0µTH1ä2Ð30 !Œ‘œËU¨`bnT032Ì€X×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïତ\¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…SÒ„Y¤"¸»îÈvÝÑ0Êɯ¸Éñ/ë_ÇÖÿ_[ÿ?ùïÛ5r?Tó'>ÜcÞü„‡½ùá÷¿ÿkvüÿúëÿß ÿ—þûê{oÙí¥öáP4ªÓ‚C 01(p¹z*rz'P~endstream endobj 468 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ33Ô37R0P04WÐ5R07V05WH1ä2Ð30Š!Œ‘œËU¨`jjT0µ4éºF`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAõ`ÿ•Y¤JÉ͈¾~ýúÒÿK_½ÿnúzóÿÒ—õ·¢ÿA8¯¿¾,‡‹¿þz´îú×ë_ÿ–~`dàrõTä×Ošendstream endobj 469 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ3¶Ð3R0P°TÐ5T0¶P0µPH1ä2Ð30 !Œ‘œËU¨`daT0µ2@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈÏ>ÃþOçßú××ÿíÂçYäçØrø~ýr?nêÿø×¯ÿGýú¥jýõU_ö¯­º49Ô{×]½KwT7r³q1(0q¹z*rÈ>Eendstream endobj 470 0 obj << /Filter /FlateDecode /Length 297 >> stream xœ]’±rƒ0 †wžÂo(Xjî8-é’¡½^Û#r 1!Cß¾’H:tø||Ø¿-,ÊÓùõœ§-”뜾d 㔇Unó}Mz¹L¹¨! SÚæcºvKQžÞºåûg‘  dÜý½»Jù‰Ðø«z¥yÛÒ%Y»|‘¢­*nÇ‘ Éÿ)€=Ñ¥µ.5€* ´uÍŽE ïÐT}4 öI5ØŠGSdˆ,‹º úV±7vT-‹šÃ=;˜Fv€Ð³º úVhç"±£z0}aGµ1=²£5W¦=;:‹¦‰U2Õò @ôÅÂŽj4ÙQµ,éŪv.iäEVö½¤‘WU‘ßõóRíÚ­Ï~…t_WÉ›wÙ»hÍ›²üý˼X*(Å/AZ˜wendstream endobj 471 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ]A E÷œ‚”’š6uӅƨ Ã`X”Ú.¼½eÚºpñH>3Ÿ™OÕ´—6†‰W÷<À'îCtÇa΀¼Ãwˆ¬–ܘ6E'ô6±ª¹Úôú$äKúUßlÕC AWõj‚Áá˜,`¶ñì,„9{oF÷W:¬†ÎoJBê˜Ež !u-ŠCH­t‘ÎR©RÕÊR‹#ÍÚ_-cK€}_sÎ'JI)Êò!âï#ÒŠ‹/°/Ö`¦endstream endobj 472 0 obj << /Filter /FlateDecode /Length 2653 >> stream xœ•YK“ÛÆ¾óä¢Ë>x˜"!Ì (QªbÅIÙe¹Ê –:`I,‰ˆ Ö¨Õæàßž~Ì «Èµƒ™žîžî¯¿žýuGrãŸÿÝV³x¾Ÿý:“4:÷?Ûjþízöò´É<‹²D%óõÝŒ—ȹT&r±š§qI•Í×ÕìFüa±’ï×?À"­Õh‘¬M”……ëÝL¬šbßm[Ö§W‹õh¶ÍNd”™,áÙ7â¡ì‹•Ñ:Š¥ù)?Öûs#*Ê\*ªz±Ri”e©»rÓ2NŠÛ¼ƒ-Z¿66¢¾ r¤èEøˆA¡0&Y,H,ŽÃ¢<SR”§Kah÷ʨÈfÎÍWl°&e ¶Ç„{}+°Vló¶ˆÁWé\šH›D¡ù+ðl§óÚg´a¿´ù4ÖI‚–ÒîøÇN¼ë匽¨d䤛¯œ­ÿx#Ödnba±„ð˜‚æå(‡RœèŠæ.ßöÓDW÷r³‘\—ùFù³<–·íÇjê5(§À Šä. ;ÝçÛœX§©ø°°8hád÷Åä†V‚kRí7,dœÊ©ýÄ¡1™Ÿ¶ SÆ’Ò(…AuÐ{#6‹ÿ+ë„­L–¡O!Ò(ÈQb¤-÷§b‡#p<.AßÑ3×-‡§³Vs\KÑ¢ÀGF¥WÑ2>’sÙ•yOˆ_\®¹0_H˜¢­¨‡âø¾§È­u 㘠0 b³ÂY8ïÛ#„Ý*•’bümã-‹†±¼¡m$Ùñ¢ëÈ,ü¦ä§þʼnSñà·†´Üå]D¸K÷M±+·#9Þyô¬Å¹=çÇ%9„Ü`eˆYÞ-Q¤jð¢5Á‚D–ø4Æ'FŽÚvuó²Ê»¦üD$—òF •¸«›Šž&â|ÌÃ4ÓŒòWeÞÊ„M.«ûcA‡’%FT¬ÃL…CËÁåNañ×v05ÑÁÔâÓ½1•¡ö쬌ÔåðÅaü½û¦ ÏN´JÛ•ÛüSqw>m ö0h­¢ød[I\*ŠÓ¾<~ØÞfã°¡á8QI J´¼†£™Ž¡‘Š¶Ê›nP!ÇIè4ˆÎúܶò0Ù‡;à,ö³[¢ v8ÔmqòÆÂÄSyÚ“î—vƒd4.¤¹$žvŸ°Lèüli ––À §\æ5ßôgÛ™¸ Ç#e¥Ø( G>Ún—åTY%€i4$Fƒj ÒmÀ+{XÚ,^-V‰6$¿¼›–éiÜ¥|Á›NÉÏ"+•ëå—íèLñ}¦$d×ÒCXµ])a˜»¸’¯ ªLpZiÑB1ç£Sâ€!¦ ?8ÄèÏöª\Ò°º “%~0˜0EóP¶Ð°h%œ)Ch EqÏ¥_B`Ôm uâqøÊíñvÑ“SÂO‚N_R l­».)?ys¢dÖĤñ7°úÚ¨vdßgÚØi›”Ô¸ÉÜè8Jf›ˆqÑ63†ÁwÍ5ΫC¤CÜ‹)ÿ £½–\ØX0ឈïŒØù¶óBBƒÊÑâ1ÐD‹O‚CcË›.V¸wæÃ„œ ]›´Z^µ5hFy ®D½éÕ!.†eǨ¤d×ÏðŒ49CÏ3Ô¤?‚¸Èwéà¡/Ö”‘4#GƒEâÈ*`¡&|†hx ƒ@·îPåøäcï [G,œƒŸgg|½„ä£ÅM^³*¾&y 9Ж¢{ÐÄÉqÁ£²aÑ_+ Ezâ&o7Ô«2»FÞ(="]Øõ¢†5,bh<[ô„Ã/@»7âxÄKÁ¶º_øÚé×_UÇÛâ´=|õtù×_ã/(r1 w`ÒÝ #ÃN +He’ðή Àu#«³+«KàßС©žÿ¼â1ùêÔÔÞ´Ïúì'¯Ø!œ;/fsºz 8ñìH¯U þ¸ÛfñR?u*í•a£’ ‘-6{Kù†5_«ñÓ´L4%mŠÎ¸HÖÝøm‡æd¾"Í‚b“][Ë‚Vk'…”aS¼¤'Ї1‹,Œ}ù-õÓIiæ<ôYÊ}ñϽõ/”Ó;z wሹ}i8WP üF|,óéÊçzqå¼ôK 76?HÓ¬!*uQ>QÇW\yågßBÀ]ë±ÊI+h¯"Üî²ôø Œ¯ehVÜÔz¤0}¸{JœpÉw[ÇsÑþ¹ÈÎÕgr¾FUMæð{¸H×§RÜaXŠßðQÓyEËax—ãDÎ~C¦¾!ˆ8 GA¿­Ç©îçÊ8^†A±Ï«*r*Lyš,h:z:Èýl°ùQ _â}ÆÝ,AÈûgâè*ü7¾;¾ÝƒIÃÅ@ŠwÀyÈSOî–ÏThst¸¯\?‚ß§H;„žLF7Œ:ã‹‚užäÜcçp®N^G(ͧ¾Lž«þ–évtëÐ"õ2ŽžQÒ¢¼’tŽSJš(MâËÞ“”  |Ä*¾/NEC埜húû¼ñ\ùÌÌ´½Ê,  åùºÆ3è@ò :ÉfBHšj£e ¢BÛs#Þ ˆ&À€¤ž„Èáÿ$üäÕu3C{ làÉ¥·Šp=ï.ê©;ï8’úÒ]žN1dQ€|»’üå™”§^¨¾òÞ@ëSp¢RÀâ²+'¶žsǯÁ¦À[ćáf£9àѸ¼ Iòû@iïvT߇;=¿¤¹»'w N¡’ÐEµÉ´âZ²á¤ñÓ+{TcŠòú²NŽ9ÃÀèÌØxc𻡠†!ï‹  N Ø¡3.¦s†º”ŸgÿP©”endstream endobj 473 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ð3R0P0bS …C.=C aŒä\®BS° Pº@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂi~:ÍUšU¸W8²|_2·*þeýÛ̺ëmâýÿÁàÈdî¾®Šõÿ±€ŠŒÿ°08p¹z*r4Pendstream endobj 474 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ36Ó35Q0Pac c…C.=C aŒä\®B#K° Paĺ@†¦¦†– 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB.Vù?³¦óÿ' „bÌ?02p¹z*ráHaendstream endobj 475 0 obj << /Filter /FlateDecode /Length 182 >> stream xœ35Ö3¶T0P0bS 2QH1ä2Ð30òÆHÎå*T013 UÆ@¬ T&FÆ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚBÎCóE_ب/~ûBuràK륿~Åÿ ¿õr}öñõÿ_ÿGÿT’ÿ08°p¹z*rzNCÔendstream endobj 476 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ37Ö3°P0P0QÐ5T07T05QH1ä2Ð30 !Œ‘œËU¨`ffT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈŬ± pBÌþÿfMi®-xøˆÿÿõÿõúë¹Òñ^r7¼¼Û¾IxoŒ1Ø‘X$Í<……A€‘ËÕS! %>Mäendstream endobj 477 0 obj << /Filter /FlateDecode /Length 266 >> stream xœ³4Õ30T0P0WÐ5T°°P°0VH1ä2€!Œ‘œËU¨`a`T°02ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[¸¦„Y’mC·â,¶ Žk® È®QŽÈáMdâ]£Ð,Ëòe^S…çK»y“/UýªŠÿ2ÿ˾ÿK¿ÿ­ÿÄól×ÿÿÿÿ4ÿ¿ˆÛòÿíÿ×î¿Îÿz{íõ]wË.Ýþí«c6í°wŽê†K‡yTÛ‚ÛZÛ\˜XÛ[›¹®-V\»„Á…ËÕS! D`:endstream endobj 478 0 obj << /Filter /FlateDecode /Length 247 >> stream xœ³4×37S0P0QÐ5T°´P°0RH1ä2Ð30 !Œ‘œËU¨`ilT°1L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQÐjÜæ²´9¢(‹£”—ñ'Ó׊Äù·¿ýý÷wÿ¿¿ÿÿû¿þúõõ×—½úÞ‡ââœ]kœ숱+ecþQ¼?ÿþÿúý`ÅïÁ¤Â‘Úåÿ÷}{ýÿ¶jÌÖÞ‰-Ž&®‘š`°€‰AËÕS! ¶új9endstream endobj 479 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ]±n! †wž‚78 9h¤“—tÉЪjû„3C8D.Cß¾¶/éÐáCú0¶Ì?O¯§ZV=|ô%}áªs©sÇÛrï õ/¥*ëô\Òú09Ó565ßbûþi¨éæÍßã‡Oïwre·¦´Ìxk1aõ‚j2¦œAaÿ•¬Ù:Îùñt¿Á…ý ¨it ¸0²zªx©Ž3ë‚ Þ²zHë¬aM P5°"ÎÓÒ ©' 45Èds½Ÿ ò8Œçßuº÷Žu•Ä$¢Tü µ-»4¡~ÁTpÞendstream endobj 480 0 obj << /Filter /FlateDecode /Length 102 >> stream xœ31Ô35R0B#C##c…C.=C° œ‘œËU¨`bh`QkÑa–pòäÒ÷ôU()*MåÒªâÒ÷P0âÒw pV²]¢Æryº(üÉåê©È¸!vendstream endobj 481 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3³Ô3R0P0b3sSK…C.=aŒä\®B3S° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\pÆ ƒ“…G Â½M½•ŸC!G¡¹ÂÑs¯‚‡¸§Êÿ/«ÿ_Zw}Á¡?õÿÁ@ḋû§,ãÿð7ø•¹|ÊœYE™ÿÿ30r¹z*rpMaWendstream endobj 482 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ31Ô35R0PaS3…C.=C aŒä\®Bcs° Paĺ@F¦Æ& %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ) ñëö¯Ûõo×§×K_}Yõ·*nÜôõ×Áœ_ñqû¦ƒ™…­Ú~š²=?ú~U²sþ`hààrõTä,ÁIendstream endobj 483 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ô35R0P0UÐ5R01T05SH1ä2Ð30 !Œ‘œËU¨`ljT0µ2@]#°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶³ ó>ÿD…û³¯ÇˆÕ_úÒ=dW¬S¬®ÞÖKu«®¯­Ûú·þëë¯ÿÿ_ÿÙY L\®ž \ú¿>endstream endobj 484 0 obj << /Filter /FlateDecode /Length 234 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x~ðAãCöŇùš«÷ª¿úZ·>üÿ¿ÿ¿ã^ïO\zëÃë\Ý6¡·¬mÚÙ‰Û[>ôå;²ÉM®ð°›\Ëöe~À_ó;yóïW[µ÷Ú­·K·M;Ì™cà˜Øu˜›‹A‰ËÕS! Ô[PMendstream endobj 485 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ3²Ô³´T0P0aKSs…C.=C aŒä\®B#3° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(<¹T˜[ÿ;xyd9ïF.WO…@.>(endstream endobj 486 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ33Ñ3µP0P0b3CSs…C.=C aŒä\®B ¤XÂ0b]  0121)qòäÒ÷ôU()*MåÒ*ãÒ÷“NÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚3÷?_7?ÖS|—Y?ìÛ·WßûÒ8ñaú‚½úþ×/ýòWÂÿÒ_5 ÔïÊ_öëWþíÿ·¿ýÿöw?æÿÏ¿ýû÷e?µ K$ò04pp¹z*rôÜSxendstream endobj 487 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ó35T0P0bS#Ss…C.=Âɹ\… &–`A * Èu €ÀÄÈĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYÁKß%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQPJlÒ±4•´H°]ûÃýûÛÿoÿÿÿÿÿÿöÙÿeßÕ— ;ZdÿG€å¸\=¹OæF¨endstream endobj 488 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ33Ô34R0P0VÐ5R03T05WH1ä2Ð30 !Œ‘œËU”4 *˜ZÆ@¬kd–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]”§¸2î(Ê2*xø–™ÿpÝýíoÿ¿ýÿý?\ÿ7ýßô¥/ô9+v4½žÙ”•¨*ø¿ÿ>P„ÿ·þÿþoæ^—k|׫nGšò.Œ0XÀÄ Àåê©ÈúèS«endstream endobj 489 0 obj << /Filter /FlateDecode /Length 251 >> stream xœ³0Õ36Q0P0RÐ5R°0V05WH1ä2Ð30 !Œ‘œËU¨`a`T0µ2Œ€XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.O…cN¬ÿŸ\9Éà¨`ÂtÃGáÐÝ[ÿvÿ½½þß×»»þ¿ÿî«ÿïÉ¥ŸõÿggÖÚÿ»vé—ÿÿ·ßŠ›üÿßýÌ*ÿÿ¿ë¦/¹ÿÿûë]¾×ÿß_÷Ò<þÝî%wëÿþßèþÿ}¬ýïëþÿ¾^þ¿·ä#ƒ—«§B „Ðgúendstream endobj 490 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ33Ò3²P0P0b3CSs…C.=aŒä\®BSK° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((2ÛÊr18¥^p™uw|té¶ýÑ™õÛ¦Ýú›»þÚ­èì¯@~öö8ÝݪèzÑ}×ÿÃÀË'ÿ¹\=¹èHendstream endobj 491 0 obj << /Filter /FlateDecode /Length 519 >> stream xœ]”MnÛ0„÷>…n`‰?ï9@ÀM²É¢EÑö²DZDgÑÛwf˜tÑÅøl?Îp(êüôòü²­÷îüã¸M¿ê½[Öm>êûíã˜jw­¯ëvB7¯Óý“ô9½ûéüômÜÿÙk‡?Ô¥ñ÷ñ­žZ4}5´¡é6×÷}œê1n¯õôØ÷åqYÊ©nó?åK›¸.Ÿr‘‚ã8)xÄZ$`+M®ÄKiò0J“‡JœJ“ÇÈUµräÊ«jåÈ•#S@ÆÀ„4b(Љ©HÀ"âGm!ŽD/p""`TÈȘ€ ‰ ¸—"O ˜!)FbŒ„I1c¤X$à…ˆb’ÊI,ßI@ú&xR!=žI¾‰¾˜‚gv•Pò•]a È%ÔF…<1UF¢¬T™12e¥Ê,'£§¬®2ËɘÒi”ÑSVWN#LHÁK¶nÚ~æŽ &ÖŒÃ`b͈4˜X3b±†1ŠÑÈàiò5> stream xœ31Ö3µT0P0bcSC…C.=C aŒä\®BcK° Pa ĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[¸`ATýï'F»ÿÁ'N{ùù…¯;½Pøåù¥}Üäÿòñ@™ûj«öÛ]¿îÖÓ‰e*I›æZÇìH4e`ärõTäË…E,endstream endobj 493 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ31Ö3µT0P0asSC…C.=C aŒä\®Bcc° PâèZ˜X‚”8yré{ú*”•¦ré‡Õsé{sé;8+)—h Ù±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmá‚‹‡ø9_^ëÕ÷\·_þÿÿSÌÝ?M½ÿGŸ'_þ«ƒ¡ËÕS! •ö>íendstream endobj 494 0 obj << /Filter /FlateDecode /Length 233 >> stream xœ31Ö3µT0P0RÐ5´T01V06WH1ä2Ð30Š!Œ‘œËU¨`b`T052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[p[a2çC6áCâÜ®ñgNè5ñ]›œ[òxí—ÿ@ðm÷õìmÓsfÔfèsæ>þï>'ö UüŽ/_œ‘¨â~aï/{ùÿß5³–MçÑ;Ì™#¡º1"17á`ÂA.WO…@.GLðendstream endobj 495 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö3µT0P0bcSC…C.=aŒä\®BC° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[±ÀØõϬuî÷ÿÁ“å™?Ì_~üDÊÿ«_þÖÖý þ•º.ÿi깂¡ƒËÕS! AHñendstream endobj 496 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ31Ö3µT0P0QÐ5´P06T05RH1ä2Ð30Š!Œ‘œËU¨`dfT072L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸@L ~ùßõ‡¹åÿŸ¸üò%¯ìdðoóÝÌ5±Ù-‹–\ÕÛpMBƒ¡ƒËÕS! |N@†endstream endobj 497 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0b#SC…C.=C aŒä\®BcK° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1ǘõϬuîóÿÁ“Ò_õÿßVòÿ›¾ôeU„X¿üèõû¾_kí}¿Ü¿¿ûÛ¿¿Ÿ†q¼h]þÓÔsC—«§B  1I{endstream endobj 498 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X–ðè{Ë—'Wù•y¦˜¿úå¯_ÿ_ÿG–> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcS° P•Hµ‚.P™Y”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j Ú&4âç°µ•â}¡por¯ûþKîÿ?jþÿÿVµÕñßv_ÏÞ6={۴Ü9a×$"[¹\=¹á|;}endstream endobj 500 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö3µT0P0TÐ5´P01T06SH1ä2Ð30Š!Œ‘œËU¨`liT052 ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[± -ñh?‡ÅNSež¹ ÷÷Í~ýíWý¿ßÿàßîõõ®oÙ[íÝ&ôh×óI}8Xñ žªwÿ4õbP`ârõTädæHñendstream endobj 501 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ31Ö3µT0P0bCc3…C.=C aŒä\®Bc ° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x!r¶›ENøPÊÕ0§"õÇ ß’ëÎ׿^ÿÿ ~º<úçÔÀÁÐÀåê©ÈmÓ8»endstream endobj 502 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ31Ö3µT0P0bc 3…C.=C aŒä\®BcS° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ômëªÿÿÿÿOçÀzµ•)ê 6üdßïÿÿÿ·íÞmâI»Gs³‰08°p¹z*rZ:4endstream endobj 503 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X è°èòÿÉ¡5ýÉûÿ£€¿õ_ß–¬˜òêî›×š20r¹z*rAOendstream endobj 504 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x¥ô6ySÖÖËO>´ù¹úÿ?ÙüµÿŸï}ùÿ¿Üúÿ×þþÛ½<þÿ5 Ô½y;ÿ_þ¿êVƒ—«§B 4@HÀendstream endobj 505 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ31Ö3µT0P0b#c3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨í¼Ð˜¹üÿoß”8¶Š¸i·¢K·í‘ß–nÝ7oï‹GUá«¿Ü›\uoò—{S_Ý [з:[vrèºy L\®ž \é¤C9endstream endobj 506 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ31Ö3µT0P0b e¦bÈe g`ä!Œ‘œËU”4 BÆ@¬ TFfF %Nž\úž¾ %E¥©\úá@e\ú`Ò)ÀYÁKß%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+*¶³ãòtQPÛuùÿóf§/{õ½/ÝòÙbÓ„.€ÂÞ—êÞK/½,Ù(¯¶Ò…ÁËÕS! .Ê97endstream endobj 507 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ31Ö3µT0P0S01T0¶P05TH1ä2Ð30 !Œ‘œËU¨`lhTÒ@-@lÊ9yré{ú*”•¦ré‡ré{Uqé;8+9.Ñ@Cc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb¾ Í~ÍQÙŽ-[Ò»:We5eMHt`apàrõTäÿÌ*endstream endobj 508 0 obj << /Filter /FlateDecode /Length 117 >> stream xœ31Ö3µT0P0W04S06W02TH1ä2Ð30 !Œ‘œËU¨`diT0Òæ@lhf–ròäÒ÷ôU()*MåÒªãÒ÷P0åÒw pV0äÒw‰Ëåé¢Pÿÿÿ‡ÿÿÿÿ€aŸËÕS! H)Ìendstream endobj 509 0 obj << /Filter /FlateDecode /Length 119 >> stream xœ31Ö3µT0P04F †† )†\z†@>Âɹ\…@I° „ah$t*€ÀØÈܤÆÉ“KßÓW¡¤¨4•K?¨ŽKßL:8+)—h á±\ž. ò ö õþ?€Áúö ò \®ž \¶&pendstream endobj 510 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ31Ö3µT0P0UÐ5W0¶T0µPH1ä2Ð30 !Œ‘œËU¨`llT032@X×Ü,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œµåoéú¨¯¿¾ Bb®GeÊeMap`árõTäÙÑ@†endstream endobj 511 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ31Ö3µT0P0aS#…C.=C aŒä\®BcS° P•Hµ‚.P¡¥±¹¡)H“'—¾§¯BIQi*—~8P—¾P5—¾S€³‚!—¾K4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ð,ãƒ^GEö–/rǾ˜â_rß_ö}yýÉU±ëì×m}·õÒ¥ëÞ@À™¡«««£º`Ë–-úUž‡¸—^8>9dƒ—«§B eO@»endstream endobj 512 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ31Ö3µT0P04F Æf )†\z†@>Âɹ\… ††`A * ¡ TFfF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ @ŽK4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶A×Öb¿ÚÊÜÜäÿÿÿ?; å8°08p¹z*r-endstream endobj 513 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Vl«pøÐüðågCùö÷.?l­Øÿϱ¶HÄ»õЋú®Œ¿X?ìX·ÿÿ>ßà¸Co b;%ÖÞØp¨ÂÀqC—«§B ”£AËendstream endobj 514 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ö3µT0P0bc3…C.=C aŒä\®Bcc° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-xbÔÄÏa£7¯óÈ ñ¥_®MH,±úú1þÿÉUõ÷ž˜ÄgÞþ¶íÒ ƒØ®[‡#:°08p¹z*r5;oendstream endobj 515 0 obj << /Filter /FlateDecode /Length 321 >> stream xœ]’Anƒ@ E÷œ‚C2N¤È›t“E«ªí`0‹"dÑÛ÷“tÑÅCz‰Í|3.Η—Ë8¬yñ¾LéÓÖ¼Æn±Ût_’å­}cV…¼Òú0¦k3gÅùµ™¿~fËQ`ýæoÍÕŠ(µÿTmMiêì67É–fü¶ìT–zê{ÍlìþýdëhûGiètCê PÓ ©kj¯Rï (q BmÔâ°S¬Ô ²o©(Œ^¼OÔZhGÝ©5ê^ x4ªeª(ê@™*Ô2U<ª¤*©H=^mÕFjRÊ"F'!FïÅèê½@Ù+ø¬Ê‚¼â™Ë#yÅ3—*òŠg.y / ;?H@9 àL~mÏûá ržWŸ§û²Ø¸úÂøBp†Ñþvjžfvå û´k©Øendstream endobj 516 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3¶Ð35R0P0QÐ5T01Q06WH1ä2Ð30 !Œ‘œËU¨`liT0¶2L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÞ$cáØÂÏq;ãà^µK_æ*ÌÕøî½6ûubUßÖëÿ´ÿÖí¿þú¯ÀÇ«¿ÎÒ>TõëJUÔzƒ•ž«8µ½/åêv%‰ñ(jà`hàrõTä•DËendstream endobj 517 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ31Ð36R0P0WÐ54W01V06WH1ä2Ð30Š!Œ‘œËU¨`ljT052̨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[4›U YáHÆ‘ËK³½_ÿº¾6³þÿªã¡ñëY½¿®¿þzmé0þúÿßþ¸Ýë³· ænïúúëù««u{õ×Moò¾Y&tX`ÃA.WO…@.`ÅMrendstream endobj 518 0 obj << /Filter /FlateDecode /Length 232 >> stream xœ3µÔ31R0P04RÐ5R0³P0µTH1ä2Ð30Š!Œ‘œËU¨`jjT034éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïତ\¢¦Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ28'œºšÈ6MpÁúC,Ò1 ³cYŽfÚ }™ïµe¾÷ëKkkõ×G]úéß–ýò—þ__ÿãõŸ¶)u[Ã_«­ŽÛ·;³6ozö®Ø¥Û„n;æL“Hhº±Æ ’õ9ƒ#—«§B Õ€NÑendstream endobj 519 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ33Ò3³T0P0b3SSs…C.=C aŒä\®B3° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-xâ!Ì~øDÎLžà÷Û¾æß~ùïký¾ýµõ{ë×ÿ­_=þõ¯—õ×øÚÞªõ_½ÿMúuµVoõ¥«úq“¾ˆ-Ô÷^Ðt¥о@@#ƒ—«§B {4Lþendstream endobj 520 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ó36V0P0b3#Ss…C.=C aŒä\®BS3° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-˜ÿÄħ‘ý‚}vüýõëýÛúÿEóñÿ«þ÷‡¾^ÿúRÜ.ù¯ç[_ýûþkýÒø×ëã콿®ú[²ÿÕôõ¡¯WýŠe½ÒÈÑñ«ƒ¡ËÕS! /ÝObendstream endobj 521 0 obj << /Filter /FlateDecode /Length 237 >> stream xœ33Ñ32Q0P04RÐ5R0³P0µTH1ä2Ð30Š!Œ‘œËU¨`jjT034éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïତ\¢¦Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ28'œºšÈ6MpÁúC,Ò1 ³cYŽfÚ }™ïµe¾÷ëKkkõ×G]úéß–ýò—þ__ÿãµâùÎf³£¾þW[µ?þÿ¶ýÑ×Ý™»î†»xâ’ Y£æó(žÐ÷`hààrõTä?ûRendstream endobj 522 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ36Ò30R0P0a#Ss…C.=C aŒä\®Bcs° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-øÿÄÌýõ_ëqk-f5š20r¹z*rRï=Áendstream endobj 523 0 obj << /Filter /FlateDecode /Length 231 >> stream xœ33Ö³0U0P0bs#Ss…C.=C aŒä\®B3s° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x¢Pÿ7ÅÌGÒò÷ëñ¥—âš®ê{/˜¾t÷¥—úÞÓìò¾tUŸó˾]Ë__p·_Zµ`~×¾}ó½~Äû_ÿþêï×õ_þWýûÿkûÿ¸•O™¹íg`ärõTä£mQ™endstream endobj 524 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ35Ò3°P0P0a#Ss…C.=C aŒä\®B3° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-hØ¿¦­«ôÚþë¯ÿÖ¡Kö¯úõ²þÚÞªõ±á¯—~½ª×ôŠÓ¥Ö…ÁËÕS! hTCendstream endobj 525 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ33Ô37R0P0b ÃÔ\!ÅË@ÏÀÈB#9—«PÁÌÜ,Td˜±.P˜™˜ƒ”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j žœÿ÷“wŠÂ¢Ú­_×––Ûÿuë÷uûß_½þnWýÿèøª×ÿþÆÖ½^ÿ&üëÕÿz¨pý: pÿëåÿýþ~ý×Õó§Ì}¼¾ƒ¡ËÕS! #]­endstream endobj 526 0 obj << /Filter /FlateDecode /Length 305 >> stream xœ]’1nÃ0 EwŸB7°­XR\’%C‹¢íd™ ÇÄK,W®ŽMCÇœ©â2ü+ÙnÛÑççÒnGŠ ÝžD;RDPGŠh„R¬Kz źØ@{Rlp-4‘b]o¡)¢ ʤÈQ^ÔI§1úú–Ñ*¿U¨$òšÊ£‘—D@tÝ“"ÚA% °¡EH/‰€TTë½V%uÐLŠ(B¹V ŠFA"Ñ sžÀvzTž@´ÕI¼®CÁx_Ó4é±,\V}:cŒv,ü÷LæiÆ.#T¿¤ Ÿíendstream endobj 527 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ31×37U0P0QÐ5T01Q05QH1ä2Ð30 !Œ‘œËU¨`liT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Øìp¤u=‡­”ôǽj_f_Êÿ›ÿWíÿÿèÿÿïÿ'W]ÿÿÿß×[ÿ÷Öo›öuÛ´[Ñ<ª#S =8¸\=¹­LGšendstream endobj 528 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ31×37U0P0bCS…C.=C aŒä\®Bcc° Paĺ@@`b`d RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œsÃëaALç’z“MYòÿ±€)æÿ¹\=¹|V=qendstream endobj 529 0 obj << /Filter /FlateDecode /Length 208 >> stream xœ31×37U0PacS…C.=C aŒä\®Bcs° Pa ĺ@@`b`d RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<Åø ñ!{‹\-‹ô%Þ—÷yçý¿ýrÈî =[ý×q[v]ºt!63CWW—ÅQoº÷ÒKQ\[öMw¾[zÝËþƒ—«§B 5>@Pendstream endobj 530 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ]=ƒ …{NÁ ð'ÑÆ¡1…™L’ à²8ƒXäöÔ)3ßòÞÎ[Ö·Áè@ÙÃ[xa Jéqµ›¤ÎÚ²¢RC8(¿°GX? ÷þ8¤Ñ€jç»X=›K›Gå+quÐ 3#銂wJq‚Fþ}Õ{`R‡³ŽÎ¤ª­¯> stream xœ]± †wž‚7h¡bÒÜ¢‹ƒÆ¨/@á0 R‚íàÛ ×ÖÁá#ùàþpwÍát<Å0ñæšG{ljû]Æ÷8g‹|ÀgˆLHî‚V£Ó¾LbÍálÒã“—ô‹_Ì ››Š®Ä²£Ãw2³‰Od}ÛBï=0ŒîïI/Á¯•ÒÁ‚î$°¾3@-ñ^í€Z‰ªˆ¢]Õ=R‹¶*!U‰õ@UÔÉögmªŽ·MÃíœ3Ɖv@3ÖÑBÄßšÒ˜jŠØÄ?g¤endstream endobj 532 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-hKøàð¡ùâÃö¾/ÍÌ~ø‹wßÿÿÿÿ®Ï>ªÿ:nË® ªV<ø$eŸÏc÷íÛÿý÷÷›~hþ§ÿ?êªç*î“n{'þæeݨcÈÍ£#¡ÁÐÀÁåê©Èˆ%Kžendstream endobj 533 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ33Ö31V0PaS Ss…C.=C aŒä\®BS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((%.±4•´°¨v8üá~Ûßýù·ÿßþýÿÿÏÿÿH‚Áëÿÿ¿ìÿõÿúëKÿ/}Ù«ï}(Nè2‡FWSSC—«§B )N‡endstream endobj 534 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ33Ò3²P0P0VÐ5R0µT05WH1ä2Ð30 !Œ‘œËU¨`jj*2ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h1ÚOœÜXTža°w}öœàë½ÝËÿm»~évì®ÛÞ9ªÛ¦fÙpDÇ`›:ƒ#—«§B 7NÇendstream endobj 535 0 obj << /Filter /FlateDecode /Length 461 >> stream xœ]“ÍnÛ0„ïz ½%ŠÜµ€—ä’C‹¢í ÈèYPœCß¾3C§‡FÆ'kwö‡<=¿¾¼në½=ý8nÓ¯ro—u›òqû<¦Ò^ËÛº5}hçuº?HÏé}Ü›Óó·qÿýg/->(Kåïã{9ýL—³^õ5hºÍåc§rŒÛ[ižº.?-KnÊ6ÿ÷W<׈ëòø´Ÿ²Ï?ù¡ <ç*3ñ’«<"ã;ôÄ9Wùˆ%Wù0—\åC(‘&bŸ% ‡,ÏÄ1KÀ…xÍRðØ#â¢b#ccÈЉH•*2UŒY^ˆ–%à•ˆæ¨FeFsTHWvÑäpL’Œ3'˜$%fN0I2J#1e)¸±…Ï$_çèFž4v§‘¡SG‰UL¬Ñ×`bÕˆK1˜X5âR &V˜Ù`b22e†‰ÉȸÃnMû5.Åкi¿=Û7ÌØ4gã` “0­Û8XÃ$¨`¦±j È…¢K ÈXǪ) }ºŠì8+G®";NÒQ «ÈŽFŽ©eä(²Aǹ €A'þëhóðó}Ýšvú<޲Ýu×t—x…Ö­ü»ŽûmgT 5é¯îendstream endobj 536 0 obj << /Filter /FlateDecode /Length 275 >> stream xœ33Õ37W0P0QÐ52U03Q05QH1ä2Ð30Š!Œ‘œËU¨`jiT01L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œ3G¾HB€ÃFÀ`ž@¢• —úy…éKþªÝ÷ºý:±õrÿ¯ûÿAàß×ÿÙ{óc×ÝŠÎÌ1hº°VƱ„Gl‰“•üåÿï?ü¤!¥3…Íà‡í>¹{÷~øs/*ÐûÒ‘ör‰¼çþŠõõÿGšF½-_»eGbÁ-îÄ– ç;"¦˜„30r¹z*rà‘c–endstream endobj 537 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ34°Ô33R0P0bCsS…C.=C Âɹ\…@†`Q 2 Èu*€ÀÄÀȤÆÉ“KßÓW¡¤¨4•K?¤KߨšKß)ÀYÈq‰šË¥ï¦ïìì䨨è{+èeœósJsóŠAzìì¸<]Ôrfy8ÅOŠãšäÙ„= ‡ø9[>ô÷¶Ôä;š5åùz5å²Ü“U÷ü«íõo×_]ý—]ùý¿Öÿ_õÿ?Äþ©ì8!pB ÿÿÿL \®ž \ `b³endstream endobj 538 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ3³Ô31V0P0b3sSc…C.=C aŒä\®B3° Paĺ@@`naiRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨1µþÿ¯¶H–ÙÑ":Gw˾m—n{ç–]ú²íu®î–½e—n¬]·mûíÛ÷}ùúÞ}ò¥ü°/{Õ~å{îÕû2ûRþêKµj_ó9· /°ôþÿƒ¡ƒËÕS! „»M>endstream endobj 539 0 obj << /Filter /FlateDecode /Length 233 >> stream xœ³0Ó36T0P0b #J1ä2Ð3‰!Œ‘œËU¨`nnª2L€X¨ÀÀÀÐÂØÈ¤ÆÉ“KßÓW¡¤¨4•K?¨KߨšKß)ÀYÁKß%hx,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQ°þô_má¹…Sþ4»í“?üþ¿ýÿþÿ¿ÿÿÿO¸8ý7úgÿëÿÿõë×7}üÿÿó õƒÿþýÿÿþ')ãÿÿ—þÿÿøÿëÿ×ÿíÿÿúëë×@UKÖè·~bã>R[ÃàÀÂåê©È8@fÔendstream endobj 540 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ340Ô30W0P0QÐ5T°4W°0RH1ä2Ð30 !Œ‘œËU¨`idT°02L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPeˆÿÿäŠåÑ^¦‚Cÿ‰¥¿Þ½·ÿvüÚ­wõ.Ý-»tÛ;±e›„7wªEi›bbk37·ÂÍ.WO…@. anendstream endobj 541 0 obj << /Filter /FlateDecode /Length 237 >> stream xœ]Anƒ0E÷>…ovÁ¦šM²É¢QÕöÆ"1–C½}f†¤‹.Òã ó›ÃéxÊ˦›ÏºÆoÜô¼äTñ¶ÞkD=áeÉÊX–¸=MžñŠj¡üüÔ4€óîçpÅæË ¼2û¡¸&¼•±†|A5¶-Œó súÑ·äÄ4?G»ë»jì-Ö÷+%½¤Ž®Ò‰•·§†Õƒ@úÆú‚õ¦e PêYÖ9IÒžÔÓ )_ålÇôÕë÷yA®êÕŒŽ÷Z1oÒ§ôÅ5-ÿ*/káSšPL7wkendstream endobj 542 0 obj << /Filter /FlateDecode /Length 208 >> stream xœ31Ö3µT0P0RÐ5´P01R06SH1ä2Ð30Š!Œ‘œËU¨`liT052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ñÊT¼t§©×¦ÇžÛ«×þ{]¿õÞþ·åë¿]ýwÿ¥ÿù_¶ÿþ·Íþuý­¿U«þlQxí[«'ô+&ìÚµkX¸\=¹çšIvendstream endobj 543 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ö3µT0P04QеP06W0µPH1ä2Ð30Š!Œ‘œËU¨`ddT033éº`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÓ¡Òµºº¬KAàÚÞìkÓ__}ýOéÿÿO®úÿ}ÿ÷ýo¿ï¯þ¾6|ûö¾"‹A‰ËÕS! HCšendstream endobj 544 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ31Ö3µT0P0WеP06P0µPH1ä2Ð30 !Œ‘œËU¨`ddT032ÌX×Â,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­8  x÷äªêŠ|0¨ûþ¾vÿûú÷õÿÞÿ‚uû¿¾þúúËÖ×q[/À¡¨ÀР¬¦†.WO…@.ÎlD:endstream endobj 545 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö3µT0P0bCSC…C.=C aŒä\®Bc ° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[éúäjÊŽ¶¾ÿ@°õñÿÿOlÕÿÿ/ÿÿ¿øÿÿ¿ãìAâÿz>Þ59´ƒ¡ËÕS! fÂA[endstream endobj 546 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ31Ö3µT0P0b#SC…C.=C aŒä\®BcK° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[éúù ?ËÿÿÿÿùÝ:.ÿüiüUÏ ÀÈåê©ÈPe> stream xœ]‘An„0 E÷œ"78Ty3ÝÌ¢UÕö̈ÅÄ0‹Þ¾ß†é¢‹‡ôH~bÇùùòzIÓæòuŽ_²¹qJÃ*÷ù±Fq½\§”•Þ Sܳo¼uK–Ÿßºåûg‡ 2îþÞÝ$ÿlÚÚ~•{(΃ܗ.ÊÚ¥«d§¢àÓ8r&iø·äD?[}Ë;Á }áàZá ŇªQ-Ù€’j`¡5±áCÝC›š šJÈ‘e]%ÏT³T±Õ29Ú³Z5lø€ ¸“ì^D ¨—¬æ²Pl`5¨lx"[6 Úl@µ£€^¨žÐM°ŽŠV—(¾Ö2ð¸ÏWÔwÖ‰=äâc]%m6V›NkJò7ùe^4å@ö ˜”Üendstream endobj 548 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ36Ô34R0P0b#Ks…C.=C aŒä\®B#° Pâè±%Ð  'O.}O_…’¢ÒT.ýp z.} b.}§gC.}—h Ù±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm‘ '‡­­ýåÿÿoý]»Æ`ãÿÿŸTVÿÿRpÿTðÇ7qC—«§B »¦BÈendstream endobj 549 0 obj << /Filter /FlateDecode /Length 157 >> stream xœ36Ô34R0P0bc3K…C.=C aŒä\®B#S° Paĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú")žúOY±ÿñ€GÁmÿ˜¸\=¹‘HB{endstream endobj 550 0 obj << /Filter /FlateDecode /Length 182 >> stream xœ33Ò32Q0Pa3 eªbÈe g`ä!Œ‘œËU¨`jjª2L€X¨ÀÀÀÐÀÂÒ̤ÆÉ“KßÓW¡¤¨4•K?¨KߨšKß)ÀYÁKß%hx,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[$Ù®ÎzŒÃFዜà§*–OY!³ïí÷~4ûõÿõÿýÇ‚g†IÿÿÁÐÀÁåê©È“íFÞendstream endobj 551 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ35Ó30T0P0VÐ5T05V01SH1ä2€!Œ‘œËU¨`biT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8gñ‰„4 LJBlrÌU¾/îm_rßíÿµ_~Ýÿÿ_öÿÿÿŸ²¶þÿÿv鿯·ÞGgÖo8™ØÌ"v4±µ™u¹†.WO…@.³8GPendstream endobj 552 0 obj << /Filter /FlateDecode /Length 212 >> stream xœ31Ñ3´T0P0QÐ5T0Òf )†\z†@A „1’s¹ ŒM À‚ &æ@† ë€åœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ½X¹Yx Ú[/.ðkâ¿P«þº÷õ¿ÉVmMYŽ9±nøQÍŸÏûöá‡|×H¶‡‡g³ý»÷÷ïÕõ·.µqºúg $<`bPàrõTäÈlCendstream endobj 553 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ31Ö35S0P0RÐ5T0¶P03VH1ä2Ð30 !Œ‘œËU¨`ljT032Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Øœ°ÿÿßúÿñ׿þ-½ÎÝâ°ñ¿Ú¢)LÿáàOû~õo÷Úÿ±[¶]ºñMLê`+ƒ#—«§B =Fïendstream endobj 554 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ33Ò32Q0P0bSKs…C.=C aŒä\®BS3° Paĺ@@`lihRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œáÁúD„ç {S…»£\#Û‡&î%ó&}}Y7oméÿÿ[¶>þÿÿÿ«Šþ¾®<ÿqOS'‡ÿÿÿ€‰AËÕS! µIW¨endstream endobj 555 0 obj << /Filter /FlateDecode /Length 247 >> stream xœ³0г4T0P0SÐ5T07U0³TH1ä2Ð3 !Œ‘œËU¨`faT072Ì€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[pŃw&Ï¦× âMhŽpI(Û’Åó6‘‰§Dø‚¿çK[õ%_æí›7ýÞô{ûö_ýÿWÀÂTþÿÿÿj«ïOHÝÿßïõk÷_ÏÛûw˶K·c·l“ŠÎÌ1˜&a0íDÃÂÄ®ƒ­mbÎ:rŽ+,8¸\=¹V´endstream endobj 556 0 obj << /Filter /FlateDecode /Length 224 >> stream xœ35Ñ31S0P0VÐ5T05QrR ¹ ô ‚@c$çr*˜€LÌ c Ö54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô69hLXdÐ|ˆß­‘ùï·{³ë×ÿû¶:N"ÎþÿéŽzþ¬E¾s¼Pç_°Ga¯þúøuvûÿÖ]ó Žw|cR(òpo›PEÒn ÇΘ20r¹z*rÖzFbendstream endobj 557 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ3±Ô3·T0P0QÐ5T01W01SH1ä2Ð30 !Œ‘œËU¨`bd*2L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[à¨`#(¡#Páøbò߇ª—ü×Ç{ÿ÷þ¶5û0÷ÂÿÿÿŸòÿû›Æê¿[÷–íÎÌ]ºáÒa¡k 6:!ÐÁÐÀÁåê©È¾üBendstream endobj 558 0 obj << /Filter /FlateDecode /Length 212 >> stream xœ]1Â0 E÷œ"7hhZ¤*KY@¸@š8(CÓ(”Û»-÷ôâ|ËßE:ž‚ŸyqM“¹ÃÌ6Ákz'|€§¬Üz3¯DÕŒ:²¢?ëøøDàù¸…/z„âV·ËSµ˜ÌdᵤÃXW–ªsN1ö¯Õ.†Á­?+£H¢É•uû"‰fßf”•"‰¦sGR·¶ˆEÊÞ1‘4J6ˆ HBÊÑ)RFI‹m+àŽ˜v ÇÍ;%3„"cRàwµ8Etñ,ö\ükendstream endobj 559 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ31Ö3µT0P0bSC…C.=C aŒä\®Bcs° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[˜ù¿’­ÿ×ÿ¿õëOèÿão¹ÎQ¥n×È~©–åWüÖ¥__Ùø5þÿú¯ëo\µ~Ý­Øu‡¹7jþ®6Õ“ðou`apàrõTä¾#D4endstream endobj 560 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ö3µT0P0bcc3…C.=C aŒä\®BcS° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Øi1Áñ!ûò–/þ{Y~…{~½ôõú5åWÆõEYKÌâËw}ÛÍ£w˜e›vvbbk3+ƒ#—«§B ¢›9zendstream endobj 561 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ31Ö3µT0P0aSSC…C.=C aŒä\®B° Pä)èZ˜X‚”8yré{ú*”•¦ré‡Upé{sé;8+)—h Ù±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmá´Œ‡ì-_//öv 羺®ýÜ~öõµùâ÷™ÿ¿¾þ¥4UâO® `dàrõTäDû<ïendstream endobj 562 0 obj << /Filter /FlateDecode /Length 235 >> stream xœ31Ö3µT0P0TÐ5´T0±P06WH1ä2Ð30Š!Œ‘œËU¨`bfT01 ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸Š[q^Có!uŽÒϵÂ3ô9¬£8o]Úøòë¯ÿÿ¯¿¾~émÙ¥7ª c3‹gDµq/üÿ¾Î±YŒŸÃ–}ùbƒÄ µ ÷ýE¯ÿ_7uͬeB[¶æ„:ÌͣӮĠÀÄåê©È@1L‰endstream endobj 563 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ31Ö3µT0P0bcSC…C.=aŒä\®BC° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[$Âvªþ÷Ã[_ÿÿ_ÿdùƒæóZÿ[I?˜¿~½÷ëׯÿ__õÿÿßÒ_ëÿƒ™–<ÙúÖðÉÕZSF.WO…@.èINendstream endobj 564 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ31Ö3µT0P0bcKS#…C.=C aŒä\®BcC° Paĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ @ŽK4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶pÃM§Ú×ÿ¯ýæ–ÿâõõý·NÞÿ¿>þÿ¯¯ÿ¡ÔVñÉ! ˜¸\=¹S<²endstream endobj 565 0 obj << /Filter /FlateDecode /Length 212 >> stream xœ31Ö3µT0P0b3SC…C.=C aŒä\®Bc° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[$ÜXUÿû‰á¬¯ÿÿ¯2ùï×Õ¯ö´ÿ÷¾ôaÚ ½I_öê{âù§ÿÓîGø’¿ñþ—ëWÝ÷ûÊœy—×e­u`apàrõTäžIáendstream endobj 566 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ31Ö3µT0P0b e¨bÈe g`ä!Œ‘œËU¨`lbª2LX¨ÀÀÀÐÂÀĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYH¹DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j‹D/ÿ¿ÏqöõÿÿöÖÿFý ¸Ÿ¬¶zC—«§B Ìq=Aendstream endobj 567 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ31Ö3µT0CSc3…C.=CˆŒ‘œËU¨`bbQhlfè¥ÀÈ̤ÀÉ“KßÓW¡¤¨4•K?¨šKߨ”Kß)ÀYÁKß%hr,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[’–Þb󊳩&ªvùƧ”\:ýZ¿êËêWûÿ­þÿÿjøªõÿÿÿÿZµ HA¸12³ðé½[]®¶2Ô…ÁËÕS! „Gÿendstream endobj 568 0 obj << /Filter /FlateDecode /Length 187 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Öœ±•E>ÑN¿¦ýÂüþׯ/ýúõëÿ×ë¯Öÿÿ·ëoø0ó_PQÔ·Ÿ²öÍjà`hàrõTäø @Ìendstream endobj 569 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ31Ö3µT0P0bcc3…C.=C aŒä\®BcS° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-عÀCáCóåCU&Ò÷²üò}iîùßûÿÑú_ñëÃve͙۲Û;±)Ztö ‡³20r¹z*rÍ];‰endstream endobj 570 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ31Ö3µT0PÐ5RÐ5´P01Q06SH1ä2Ð30 !Œ‘œËU¨`bjT051i†`Y'O.}O_…’¢ÒT.ýp R.} :.}§gC.}—h ±±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚ÚB.Ž3ªNüš}û$Á3å‡ã>á/÷¦_ý~ýÿõëÿÿ¯Í¾þúú¥ÿ¾úœeÓy„íºøEܱõaÓÇ¿õëÿ_ÿõÿ”ÿ¢¬½, \®ž \ä>J`endstream endobj 571 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö3µT0P0b3c3…C.=C aŒä\®Bc° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-¶ba]¡ð›ûå-nÅ>—÷ú¾³.Éíz½þÒ¿ýÿãöÿÿúú¿¦záÉU_¹\=¹…ð8endstream endobj 572 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ31Ö3µT0P0b#c3…C.=C aŒä\®BcS° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-lrÙà|¨`Ë?u‡æûöÖÍz·íøä¶n«æ›ªímr¼O8.+ÄͰËÎ÷ýÿÿºßî¸C1qÚ+æ8z®jwljà`hàrõTä)ñ@…endstream endobj 573 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ31Ö3µT0P°b#3…C.=C aŒä\®Bcc° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<Û,}ýÿÿ¸ýYÖAY;…÷™ÿ¿¾ŠtØþªÿÿúëëׇ9s£#›8¸\=¹ ~<ƒendstream endobj 574 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ31Ö3µT0P0bcc3…C.=C aŒä\®BcS° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X ¸öþÉU¾);Ú¬ÿÿ-ýµþÿÿëñ«þC˜_ÿ‡¾Ô;ô¶õQvØûôxQ.WO…@.ɬ?endstream endobj 575 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ31Ö3µT0P°b c3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x¡Õ÷Um¥?‡á¼½×/ý„÷wÅÿŠÿ‹Äùí7ƒ—«§B Л=endstream endobj 576 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0b c3…C.=C aŒä\®B° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x¥Ôk¾fÖêãÆ â×ÿíÿõ·þIÙ¾¹Uÿ¯/Ûÿ¯O·Vë×ÿ¿¥Q¿öÿ½þzLá׿õ—ß:5p04p¹z*r8Dîendstream endobj 577 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ31Ö3µT0P0b3c3…C.=C aŒä\®B#° Pa ĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-)5½{5ïךöéí—n{—ìöÎÕ_»e›ö·]·®ûû»‹{î­UûµWýÒ^µ¯_fŸºÐ±ûz¥©×&.WO…@.XÚ@*endstream endobj 578 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ö3µT0P0TÐ5´P0±P06SH1ä2Ð30Š!Œ‘œËU¨`bfT052 ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[4—5*ûûëÌOòúóßMÿ7½îeýËú[Ñÿ`Ì]±ÿãöGËÇ_û[7ýeÝôg-[¤^.åЛê¹*š›Gƒ¡ƒËÕS! µ/Dßendstream endobj 579 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ31Ö3µT0P04V01T01S05TH1ä2Ð30Š!Œ‘œËU¨`ldT040é&@&HÒÉ“KßÓW¡¤¨4•K?¨’KߨŒKß)ÀYÁKß%hj,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[4=Âq¹o"Û ÕÅ>ᦳ&‡Ìˆeap`árõTä? (Cendstream endobj 580 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ31Ö3µT0P04S02W01V05RH1ä2Ð30Š!Œ‘œËU¨`dfT025éFæ`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAm㇙Ë_^ÿÿ·dÿÿ¯ÂÿÖÖ/ýú?äSÖT.WO…@._2Äendstream endobj 581 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ31Ö3µT0P0bsSC…C.=C aŒä\®B° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[àØ°ŒoVýÿU_ãÿÿ[}µþßêÉB‡jÿ¦Ø ÿ _õ?ôÕ~î˜+ýÊ·tÒ!µ¬½áÿÁªW½5½êÀÂàÀåê©ÈáVGjendstream endobj 582 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ö3µT0P0´PеP01S0µPH1ä2Ð30Š!Œ‘œËU¨`dnT033éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-X˜yèšÐ¥ QQÜÞ ðeË®ëk«€èoÕÿ¾ýÿÿÿó þûÿí÷uß¾}û}ûö}þ­ Œ\®ž \ÃäA4endstream endobj 583 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ31Ö3µT0P0SеP06U0µPH1ä2Ð30 !Œ‘œËU¨`daT032@X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôú0?|ùö{Û·oßß×îûþwÿßýÿèß®ÿÿ¯¯µU××–lÙï ±º:ª 6L Ñš"ÂàÀÂåê©È˜NC«endstream endobj 584 0 obj << /Filter /FlateDecode /Length 167 >> stream xœ31Ö3µT0P04VÐ54R06T04TH1ä2Ð30 !Œ‘œËU¨`hnT026i@m`Y'O.}O_…’¢ÒT.ýp R.} :.}§gC.}—h ±±\únúÎÎn@n€¾7P;—¾s~Nin^1P‹—§‹‚Ú¢ÙŽ/_þÿþ¶Nžýu¬nɆiœ®!š¦Ž, \®ž \Ü!,endstream endobj 585 0 obj << /Filter /FlateDecode /Length 116 >> stream xœ31Ö3µT0P0"3#C…C.=C (Âɹ\… F–`ASaf–sòäÒ÷ôU()*MåÒ*äÒ÷P0åÒw pV0äÒw‰šËåé¢Pÿÿÿ‡ÿÿÿÿ€aŸËÕS! G(*endstream endobj 586 0 obj << /Filter /FlateDecode /Length 119 >> stream xœ31Ö3µT0P04F– †† )†\z†@>Âɹ\…@I° „ah$t*€ÀØÈܤÆÉ“KßÓW¡¤¨4•K?¨ŽKßL:8+)—h á±\ž. ü öêÔ?ø vƒ—«§B z&Bendstream endobj 587 0 obj << /Filter /FlateDecode /Length 167 >> stream xœ31Ö3µT0P0QÐ5W0±P0µPH1ä2Ð30 !Œ‘œËU¨`blT032L€X×Ü,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\·åoéºé/3ë¦M aLz âàbL ÊšÂàÀÂåê©È½,@qendstream endobj 588 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ31Ö3µT0P°PÐ5T01U05RH1ä2Ð30 !Œ‘œËU¨`lfT052,€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8çC„B…¿¿¿[Úá*Î/³/ÕÖ;ôÿÒß]ñ/ëÿêÿÿ±dÿÿ/ûAÐë§iÈÞêõÞ¹µº[¶Ixwݺ‘˜ØÊ ÀÈåê©ÈùÛE(endstream endobj 589 0 obj << /Filter /FlateDecode /Length 182 >> stream xœ31Ö3µT0P04Æ ¦F )†\z† 8#9—«PÁÈÜ,TeÒ$t* -Í MAŠœ<¹ô=}JŠJS¹ôÃ:¸ô=€Ê¹ôœ ¹ô]¢¦Çré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ… /ÿõzÝ®—‰EV[/:}˜žfÿÿõõÿÿöÖ#¨A;öÌZÊ ÀÈåê©Èeö@endstream endobj 590 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ31Ö3µT0P0SÐ5T01U05RH1ä2Ð30 !Œ‘œËU¨`laT052Ì€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[àè0Áñ!{Ë—/æ‹ Ü/ÔæïÿŸ™f·+~iË–MÒ‚ª¾ìzøö‰ˆ<ûíûùÿ÷~=?u½øë«zÓve5sæH¨MlÝÚ&Æ#ÂàÀÂåê©È}D> stream xœ31Ö3µT0P04TÐ5T0±P05RH1ä2Ð30Š!Œ‘œËU¨`lfT056éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPÛ¹!ãĤåÿv>8·ØË7È{ÉFﵺººú—.]ú«·õÒ븭 ôõuÜþ¸ý__ÿÿúºvC—«§B ¨D@aendstream endobj 592 0 obj << /Filter /FlateDecode /Length 169 >> stream xœ31Ö3µT0P04ÆÆ Æf )†\z†@>Âɹ\… †¦`A * ¡ TFfF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú¢¦Cüq¯ÿmÍ£SÿÿÿŸÝ@Þã_“C_óh04pp¹z*rÝA0Òendstream endobj 593 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ö3µT0P°T0Q01¡C.=C Âɹ\… Æf`A# ÈM ÀRNž\úž¾ %E¥©\úá@u\ú@E\úNÎ †\ú.Ñ@3c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚kb¥­­-bÓ"3tT[Ä¢"YAQ\ŠEYóî>\ÍŸÏûÆÆ|÷ N5?ÿ¾‰, \®ž \<·7sendstream endobj 594 0 obj << /Filter /FlateDecode /Length 151 >> stream xœ31Ö3µT0P0S04S01S06QH1ä2Ð30 !Œ‘œËU¨`liT0´2Ì€ØDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.OµM—ÿ]³ÿÿ”ËõϬ¥ Œ\®ž \B'•endstream endobj 595 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ31Ö3µT0P0S0Q01V01SH1ä2Ð30Š!Œ‘œËU¨`lfT012@°”“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K4ÐÌX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶hâa½æËß¾}cc¾áÛ‡{‡Wóçó9Û7<|ÍÍ¡«£°¡éB„7‡ŽÂ– M‡À[DœVš:æh04pp¹z*r¿*;-endstream endobj 596 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ö3µT0P0bKSC…C.=C aŒä\®B3° Paĺ@†@­@%Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[¤kÿ^á³ýõ«õÿÿ¿ºîüÿÿJîZõÿÿ?¾¾þßFüõúËñqö¿¾þÿ¿>þ§çï>ßð \®ž \2%@³endstream endobj 597 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ö3µT0P0WÐ5T01S05RH1ä2Ð30 !Œ‘œËU¨`laT052ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8çL6‹TAs”lÆ…/Uœ/M—¾´ÿ·õúÒßQýñëã?^"~Ùÿ¶âæ­ÿ/íó ­[÷ºôaëmîï7‡m8´Æ A‰ËÕS!  3EÝendstream endobj 598 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ31Ö3µT0P0bS 2TH1ä2Ð30òÆHÎå*T017 UF@¬ T```ha`b RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµE"Lº&ßÿ½Mj8/[Whõýÿÿÿ±ù¯×ÿ¯ÿÿ¶ôß®ÿßÿý¿ÿz}ýûÿKÿÍÛÿïÿÿëá¿^ÿÿÿ{lýºýÿlÖÊéÿ[rUmƒ—«§B \æRMendstream endobj 599 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ31Ö3µT0PaS 2TH1ä2Ð30òÆHÎå*T010 U–@¬ T```ha`b RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ]—ÿ?oš'dz5üÿÿ?³–¬Mvþÿ}üÿ__‘¨ŸÉ&ÿ¿-`bPàrõTä½Ê?[endstream endobj 600 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ31Ö3µT0P04SÐ5W05P0µPH1ä2Ð30Š!Œ‘œËU¨`llT035éºæ`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmaØü_Ï»þÇÿ_ÿõÿ/\”PŒöOS/&.WO…@.û@Çendstream endobj 601 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ31Ö3µT0P0RÐ5W06S0µPH1ä2Ð30 !Œ‘œËU¨`llT032Œ€X×Ü,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨- ›ÿ}Âé÷±õÿ__ÿÿo/êõßú¯'‡,`bPàrõTäµ8AYendstream endobj 602 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ö3µT0P0bc3…C.=C aŒä\®Bcs° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ôH˜àøÂ–}ù™#?Ìß¾µ;ôñÿ'žÐ O?Ĩ¶^¼R+ÂþBè…þª®×ë.mØ”ÕÌzcÊ«»¹yÔÛ8L¹\=¹T•@¯endstream endobj 603 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ31Ö3µT0P°bSC…C.=C aŒä\®BcS° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQPÛé`¾üÿ>×·Uÿÿ__ÿ©øCó‡æ û~òÌç0?T7ûÒ¯}¿þÿúõÿÿ×µU«~Å¿\úPïÒæ˜ð@›¦É!ÍÜ :°08p¹z*rÙËJ:endstream endobj 604 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ31Ö3µT0Pac3…C.=C aŒä\®Bc° Pa ĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ØÉó ñ¡z”º°c‰¸çZ5qç¥×öºÇÿÿæl{rÕýìm{[o$êvÝ:̘pÐ…ÁËÕS! gŽ7endstream endobj 605 0 obj << /Filter /FlateDecode /Length 428 >> stream xœ]“»nã0E{}…þÀ231L“4)6XlödŠ TDd»Ø¿Ï½Ã$Å×À±ø8Ã!O/Ï/ërë¿÷Ky«·~^Öi¯×Ë}/µ?×÷e펡Ÿ–rû"ÿ-ãÖž~Ûß[í1 Î_Çzø“OâÛ¤r™êuKÝÇõ½vÃ`ól]]§ÿ>¥Øfœç¯¡!X‹5`´2ñÁZ4LÄ“µh¨Äb-ÄÉZ4bµ‘8[‹ÆŒPd€Ü x€B„| ªy€…8š8¡]#Q#B!ºF¢F„BtD$枉X• ¹p©„ 9™'h‰gójdl’}#áW¾x ™+ Uü`3 ª¯(ó$«J[™')Ù> stream xœ½KÓFøžKo=õ`Á¡ã »óö•JT*UЗ oâÝu‰`;Àòëû}ó°¬·°¨ªrÈxæ›ïýœ·MYDñçÿ×õ‚F—‹· fw#ÿ·®£Ÿ–‹ï_HžEyšk®£åÅÂ]aã25”GÕ)ãy´¬gäqœÁÓÜddÝîº.é‹óöè«]ãOrMv¸–)¥†ôW%~ø¤oe@ É»˜gO%)Ûî'?¨`¤ó7x¸íà÷m¹©Ö}¹   P J‘b{(»öº*·›îaüzù›ÐLÌS&E´üc±üîŒü'Š+rÿ>þK`“õ®ÞúÒtïêpÂह8tUœ0 škIPl<¤Œ‘zÜ.ú¶ú`‰3–æJå'Ô@kÛre%rbé¾uªàÒ0RnøVu°R"€÷e×weö€Ñ׫8+èDX¨˜Žü¹‰–›…õü{‘„CÇ$ÃÃ3Ï£Š)ÂÆ%——Ò—D»z\fNx•j“±Ì1ϲQãÌÌRd#™£]ÄÚœpD=Rá¶Ü‘»J ÆåhÌ#f¥ý \'h—ºô.þ \ú¸>ÅWöŸ¬‚ÙlL%ƒ©Ñ§¤·ô¿ÇlEÚ¢Ùìê'; DZðçÑÉ}°¹Ã0פëöhBBY‘öªt‘ɹ!.ž\4ÿÿ1%‰ùOc*¿SÖýóÙ ú”kð£[¡Gt,â„ö bŸï¬óA4_DŸŒÍáºK‹kµÊ-¢Ÿ—‹ç ½‡úüË*®ªIÆY*DT/¤Qbº³]¼¼k7<5&’T¤J+WÄ벿‚xã@Œe’`=Í™åúi<áªIo–çÖb—®¤ òü€'œRò rÑ0ßã}»@¢õ;ÏîÒQ At¡›fùDô°ó¢ šf°”3ú+5f—õ¡-Ö׎´+ôRçØxÐ4µ\£ý¤´z { 8 –ó)Fd¨ +P¿L¸3øBIOOk¡Ï~±Y™‚ÖÉ¥@Çh¥¥—ÅC[ &²lÊ~ÞQ™ ’4“ÖS£,3‰pnrÏÌC¿û}1þX)#F©[ŽI…Òê "uÄ’Òž%K\s«é…sz9ædV54»©eÕè9Õ ênØÇ©f´nÆ •ϸ¤Â”;õH·ñé;jÛ¤ î¤b”T¹éðÈ¥ÙswS1rpß>%s½kÕ\B¨†4Ê °«Ú»lÈÊu_½˜*ýÎbȈöðÞ=ÎT }³ÙŒ䜼G°!=ìm¿‘šL&îža~s©·uј|k8ÒG*˜óuÛºÑã˶œºd]6·;%¸8ÛàÓŶ³VqÐtÆÞÎ}Q5È ×hJd߃qöÅ:€MpY·$Æ´'HJˆP60gKÍ_«8µÀúׯmuš1†„å&~v5,jï:î (³`»ˆC¤*ÃäD,›÷]ñIÊ¡JÈ)¾3 AžeÖ\8pô@§{˜~u]´ÕÇÒÇ;@jÅOÊÂäI€£k¶}ú 0„' ›G|®øúåa‚c]éÇ…W±AÌ øZ£;³\B cÚ²ÀÜO½åñÝâ $<:€ƒtʶ½á<¼O5ÜuåìYOƒÇ@–trrë Ðó0m3y¶k’-P*Úø[ ™O!µ¶IÑ;ÍWäRÙ,^ •Vçœ$/JœÎÎX3™€éE˜T#‰%€ÛI¥$Üv¾Rò¾8¯¶U_¡r,d®¬epAöòÕS÷ËyãËÔÈvîÕÛó²Y_Ý»‰c:ô{ÍDN™aî®Ôaø*Âs—Õ_¸áÊ}1ú @§¤¡Î”lÞFòCâ§®‡M»{ïåºÉð3pœŒÛFÐÝp¼Ã`߬Wd[6—ýÕŠø·¿ lŒTVñ÷â–2ài0r%Ðh=ІŒú|ñA0ì endstream endobj 607 0 obj << /Filter /FlateDecode /Length 255 >> stream xœ33Ñ3µP0P0UÐ54S02,R ¹ ô ¢@c$çr*˜š€ÌM ê2K:yré{ú*”•¦ré‡Uré{•qé;8+ré»DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]ÔÜ™#}ù ¼ˆ\ïC‰*߇jr“«|_šÿ›\ußí—_÷ùþÿ·ý¿ÿŸòÿ@ ¶:þÛþ÷ño—þÿ™çh´Gáï–„[Ñ™fÓ—ü»]½tû­èjѶwbG—¶âБøaT}ìz}ìºK7þÿº¿víƒL \®ž \=öa=endstream endobj 608 0 obj << /Filter /FlateDecode /Length 459 >> stream xœ]“½n¤@„sž‚7Xfºw¥Õ$vâÀ'Ëw/ÀÏ`˜Exøí¯ª°/¸ >˜þ©næôðôø´.÷úô²ßÆßå^ÏË:íåãö¹¥ÊÛ²Vm¨§e¼“žã{¿U§‡ç~ûóµ•Ê|ð¯þ½œ^Ó%êU{·©|lýXö~}+ÕµiòužsUÖé¿Oñ|D ó÷ÑÖ²Oà˜%à ç|ÈÃD¼äC ‘u¸k‰S>ä] –|Ȼء' ˜ˆm–€¬‹ èÄ.KÀ31f x!¦,{"Úïd¡ˆž% - ¤$€´€óºFtÕUdWxH@fŽˆ£Bêâ¥à‰ö#¬S! ¬‹wRH%¸Ir”h!ÁM’£D E’ 9SâLm$Ö5 Æ4œÄ̆4v¤¢#C;RÑ‘a0¦á˜R!«)³q)†Á˜†c\Ša0¦á æLÃiiÐ`ÎdÐ8 êMë6:2x¥‚™cÕûµ9K@Æ:6OY×Ñ «É†Óp4èj²áº ºšlXÈÑ ¢ 9¤€4èØ úã~mþü¼F?·¦?÷½¬wÝ5Ý%^¡e-ÿ®ãvÛUCÕ_¯CíÒendstream endobj 609 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ö3µT0P0b3c3…C.=C aŒä\®B#° Pa ĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ZkïýóÁ…½úÞ‡¸—l÷Ù²¡éâö]%î{“^ª/}È7}áŸRµ•, \®ž \ZÃ9endstream endobj 610 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ31Ö3µT0P0WÐ5T01U05RH1ä2Ð30 !Œ‘œËU¨`lnT052@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmas #󡪪Ï}MüË—üúïýˆþfêÿÿÿÿ—g=\2H,ýÿñWü¯¯kf-zØúhÛ®ÃÜl\ L\®ž \HFendstream endobj 611 0 obj << /Filter /FlateDecode /Length 417 >> stream xœ]“;NÄ@DsŸÂ7Xï|ºAB@BBÀ¼ã1r€×2KÀí©ê‚²ôìù¼™nnïïî×åÒžösy©—~^Öi¯çϽÔþTß–µ;†~ZÊå‡üYÞÇ­;Ü>ŒÛë×V{ ¨sãÇñ½ž%´WÇ6©œ§ú±¥îãúV»›a°›y¶®®Ó¿O)´§ùghÖ¢A ­E†L¼² ñÚZ4Tb±Gâd-±Z‹ÆHœ­EcF(2@n„<@!B^Õ<ÀBÍœ‰Pˆ®‘¨¡]#Q#B!ºF¢FóOD|aB.Ü7A0¹d&æ“y‚ ÷ÍX5ûÊ2¾âΙK nQü&3 ôÅyu’ÌäÕI6–¢³ÀHÜJè,8«øy…΂ ˆWAxu‚ ˆWá8!(M’Î0õYP/D|0ÎÊy킳2@ÎU„r_… ºäpM„ ºäÀ¢(Õ%n¤dBò‚ T”‹ïËßd‹²Ù{»/Ÿû^׋ÿÞñlôe­?ÍvÞ8«Gºoˆ1Û¶endstream endobj 612 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[xò BãCö¹yGkì&×î¿¿ÿwÜõþõQ/³—6ErÇMÿðí“4sõÛ·ïÿÞ?_k[«3kÙôÌÜu›¢E·nؘpÐ…ÁËÕS! G3F$endstream endobj 613 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ31Ö3µT0P0QÐ5T01P05TH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[³¤äÿ¯çÍÚÿÁ`òò&þŽ»Ÿ ùM¼æ/ûUû^üïþ?ß/ýzýÒÉUKoEgߊfãÌ »&‘˜pÐ…ÁËÕS! ¿åEbendstream endobj 614 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[à8c‚Çy—/Z–pîU½7ýúê(ß«¯¿¾>)ùàx”EN¸{®çA¶‡l/wÕ½ü½ÿÉÕúÿßþí^{}×ÝjïÄ–mÞIÛ¶m8t˜•A€‘ËÕS! 5²I>endstream endobj 615 0 obj << /Filter /FlateDecode /Length 228 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÖ0ÁáCó!~—ÇUæ‡ø—Ü÷_ûåÿÿÿ¿3ë·MÏÞp("±Eìhb믯ÍgÜpl_Ð\k7¹Ê÷¿Èýÿÿ|ƒ½ÿ]ÏÕݲ#±LÂ;iÛ†C‡¹Ù¸˜¸\=¹«¹LTendstream endobj 616 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÖ0Áñ!ûòå‹÷²H_Êw´¿7ùËÚêúÿ÷ß«­~›ÿ6wm›ØaÖ7õ¶‰ó¨¶qmü·õµÞu¿-×/}Ù[Å™c0]tö ‡³20r¹z*ré-Fpendstream endobj 617 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0b#S#…C.=C aŒä\®BcK° Pº@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚âæÿùßbÿë¿ÿ/ÿ_ûÿÿ¾©ÿÿÿiÁÿ—Ü—ÿ7ÿóùÿ/åÿÿíWÍZŽYeošF½|ÀÄ Àåê©ÈL¼endstream endobj 618 0 obj << /Filter /FlateDecode /Length 312 >> stream xœ]’Anƒ@ E÷œbnÌ€'‘"o’M­ª¶ ƒ‰Xd@„,zû~›¤‹.Òc°ýÁ”ÇóéœÇÕ•Ë”¾duØûEîÓcIâ.rsQ{×i}š]Ó­›‹òøÖÍß?³8< ÃæïÝMÊOªÈnÕ[Qšz¹Ï]’¥ËW)UŇaàBrÿïÈ·[Åex>êw¼}ÏÐ=oD/ЀFŠ¡U­Ù€’ªgUÐjË´S%6 ÕÈ4©"B°AcD#hŒ3›Ûè\\ ¨¶"œ¶¦ˆ@£ÕVÔ°ÕV„Dd©PE²(&6 úFÔ³á‰*Uaª_ƒ6 š*â;)Pm1$Ú j¯Š¼Ñ2W;[Ìkº#Ýök¹.=–Eòj¿„­\7=fùûkæiÖ*Š_‡¡”endstream endobj 619 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ35Ô34T0P0VÐ5T0±P01SH1ä2Ð3 !Œ‘œËU¨`bbT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[àèäx,‘½å‹‡ù‡{“«|_š/}u?níÿõ׿ߩ—Waÿiÿþû'Éòü×yÛ®çênÙ&ápPÇ0"1±uÂ9.WO…@.|«Aendstream endobj 620 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ35Ó30T0P0VÐ52T05Q01UH1ä2€ˆ!Œ‘œËU¨`j`T032Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Øé`¡Ó.Áa£pè!÷¢Æ¹µ,z“kÕn]»õòøßüÿ poÿÛòµ[¶]º‘¨Ëõ0ãŽøÄÅÿÿý~?Á ^)ñ<~âû–óz™ÓN»MÈ¿§}ÿÿÛ”«Ù[o{çê6³lã:,°áÐÁ¦†kX¸\=¹ð.Z_endstream endobj 621 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ31Õ37U0P0bcS…C.=C aŒä\®BcK° Pa ĺ@†–f¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú"É®šd¹yÂÏÕ—Ì4ÕŠ}}´þú­—ëyôåÿíÿ\Øÿ30r¹z*rÇ:•endstream endobj 622 0 obj << /Filter /FlateDecode /Length 135 >> stream xœ36×36Q0P0T0´P06T02WH1ä2Ð30 !Œ‘œËU¨`diTц la–ròäÒ÷ôU()*MåÒªãÒ÷PNÎ †\ú.Ñ@#c¹ôÝôÝ€Ü}o] Œs~Nin^1P‡—§‹Âÿ†.WO…@.B îendstream endobj 623 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ³0×3µT0P0b 3 …C.=C aŒä\®BsK° Paĺ@@`djl RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h1.ûþ}r@OÛÚïŸ3ÿ×ïûï>ÁYßC,슎¿‚ÿûAàß¿VlÛk¿ÿ`hààrõTä€:mUendstream endobj 624 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ³0Ö35S0P0VÐ5T°0Q0³PH1ä2Ð30 !Œ‘œËU¨`a`T0³2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPh\rpŒEQ–H ûé—÷çßþöÿ÷÷ÿïÿÁ¿ý_öÙ··FaꃦG;ôÄù',ØRôA`?ˆPøþþÿýo{_©:è]Ol٦͛¸Ò”uÁ&.WO…@. í]Rendstream endobj 625 0 obj << /Filter /FlateDecode /Length 224 >> stream xœ]1n!E{NÁ °i5ݸˆ%¹ ƒEaáu‘Û{˜µS¤xHa€ùÃát<•¼Êá³-áW™r‰ o˽”3^rÚȘÃú4^ÃÕW1>|ýù­(é¦ÍÏþŠÃ—U{ÞÒ[SX"ÞªØ|¹ ˜”‚)%Xâ¿’V[ÇœžGM„ ·3 ¦=cÆ`IGŒqã©ÕÀÎ]G`Œ£MR é®ë;0ÆiÕ5CUוéK7&`H-ÿûõÁ>Bã5» ÷Ö°¬œ'ÒƒÈÿB­Kí]’\xqµendstream endobj 626 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ]O1ƒ0 Üó ÿ Ъ ]Šª¶‰2àD! ý}I:œ¥óÝÉgÙõ·žmùN¿0Y6·0âdYÔ'0VÇå©gå…ìîÊ¿?a3 >¨åóZ•U]BÚ\¼ÒO(šªj¢V ›?iŒt8©-8Ó%û%ES‰ã&è5䘛æ&©€eü=ãO)Ø ¾[åSÀendstream endobj 627 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 351 >> stream xœcd`ab`dddwöõõ441ÕH3þaú!ËÜÝøƒù‡3kc7s7ËÊï…¾g ~Oãÿž,ÀÀÂȘ_ÚÒãœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@ܧ¡œós JKR‹|óSR‹òR Š3sòó ù»˜Y’tðýoœÿ=wÅwµŒ;Ï3ßþ½\tÖœîÙ3»+å›±-yvìГnŽlsf€‚™l¿ùKkþ6üÍ|ÍáÝéS›§Nì˜ØÚÑÙÕÞ&ŸZ”VŸÛͼîͼޥS6Ëó•-øáçÂI<< sÀ@endstream endobj 628 0 obj << /Filter /FlateDecode /Length 2480 >> stream xœ­YK“Û¸¾ë”\rɦJU{”’¸xpUqÊ›ÚÔ:›]«6‡‘‰3CG"Ç$åñøßžî@R²Æ±S©9ˆ$€F?¾¯»y;癘sü‹¿ÛÃŒÏogog‚¾ÎãÏö0¾ž}ó“¶|î3o¥¯ofa‰˜ ©3Çå<ç6ÒÏׇÙûÓbe¤a}ÙõU½+߇×?¬ÂoWî÷åb%؆Ñð2|ÿûf±x½þÛLˆÌÏ×ßÏÖ¿;Ö•=,3¹É¸ˆâtæ½du‘5‡ªß°>45ˆæ™wÒæž] :,WêuÜ`*µ-ª:ˆå†?!aCm4CéW«K2Ii«Î”þúëQ^÷îð ó`4;4»rO¯çöDÞ°Ÿu˜ûïð“-Ó¸`»¢/âJ¡Ø'Æå%÷ Ì\Žs¶M×´Bp·9ì¶8ŠQŸ8‡Ã »-¸o˺RPü‰8RmÁ›ÝèÍdòrÜ#Fùêr´º·-HضM×Ý·eo¬Ùm&ÛÓ–Î±Õ p®–$1ÚæØ7§ C|ç|ë<ãVŠùJ¸Lyøz7cWKñz±~3[£LãqôŠ]‰åëÑ¥2sRY›âOèRwŸ€K[Ô»æÞ û¶iÁAFœ-noF¡̉ÿƒ¸oƒÓ´W’‘¼T ò |úq„@‰„3: ho\çŠMâ*yü]n…Ø8ìgÿѧ8=}$ýÅ諜{Kâ_¬g?Îh;€ûיР¤qsùËüü0ÓÆûÙ«O¤a! KÉ3ÍÅ\{™))C~YÕøZxb£@¾+%)¬?‡Ç^Bd L’sx¡Ç¸Hµ»´ÈÅE4©xŸ–%s´s&SvbOúòå ѵsã ö`]Aæ€ $™Ê8 WZ€™Ê(o5“ô-—a†R0ß)G–€0æ 6*Ó¬6Ó¥^’E+-3b¢¶ÁMôq ‰by’2‚¸ŽCÞƒ7˜ãI 76¤Fz$º]eÖ:,ÊÅ—ZPGæS—Æ/ÿƒKc©ÖÚdÆÇR½&“¸“¬¸Æ¢,ÁáœçL>[¬´° §fÿXH‡¬±¬lošöPÔÛ4S@¹¹H!ÁóÌ(;#w¨~Ù€>çêl/­ŒÁÏiR~š/tQÚŒö=ÉNZL…C«àihŸ‡\UÞÂú®jjüæ¨flØO F|`kú4;¼ €H%2éÔB^½=”€”BŒö¢m›v‰ïšRŽà‰I¶¾ßWÛ¢‡½»¨¹8ð±øçÂ!H´gàj" :n›Ã=l> #û;zÔ@ë)L<·ìa!sø”CjÄaÃeí¹f».Ê–]‡U2gI®HrCMnq% Á+rÍqdb¢ª HÍÑ|Zæ—h~TŽ}ùêÅfñ«®,/µAg8ˆTf91o?Õ^„¼‘™ðz®<Ø!È3‰øŠ²¿Xžå™ MäEP©hgAgÝZ§ö1}wÈ’ø¬"táˆÈ®Z[,ì»:MQŒªß¶EW./2NrHÖ|ã|¦s1i—(»¨&€«¯‘È Åʾ/ÛqäMsYa}–«ü¤(‚ꀑ t°KÍåÇt­ŠtŸ 5¬òã)çLf]>húKL¥ÆÔ‡»jj»KþQ Rcܵ_`{h€1£:U½Ýwr\äÄë•”Ø/ägYý¦Ùï›M•U} Þ»ª;ûêÃÊ*ÅPËLd,,¡v´‰Ð¨“Tm£3g mÏOŽhWì»l[éö"ô0ø »Ò™qu†-°ÛÉÙMY@Œ³±µÁzVJVÖØì–©rÓòpZÔ0cyõ_²$j©å´8`RÃJZnÃá¼Ê€vÕ~ŸŒ’Äeœ³-]ï„ϺæR(jÄy*+v» í.ö㉮ª©ŸOŠ./»m[%æIè@‡3 ¢&&FÔä! æI)¤âkdjò~×!BlN=ãô§ ,Rº$è”|©(9‰E†ZF½²'ŒUªÛ»ºõ³‹…ÖÁAÂäEoBQÁ¿Y¤ WSÑ ×Uwê…¢hôM\ÐÛlÚ7¹««]¡ltÈQAް]õë²Ã)ëþ1Œ¡=›x–S7HnŠƒØÿ…0[Ð蜃È#h¬Hõ¢{<@ãßB­¤ot‚ž S ýTÊðJ†…Ï:?*®~Z&šj7N˜ä, Ô5*vð A1M^í}ÛàtJo~=Hêþͱ¤Ã¤æŠô‹‡É³®ëêö–€ã¨ºO¼‰×Xôê88¤š Ÿ¢½­êÍé%ŧ¢F€âD‹C1|~$YgÉÒqÞ…Û´pÈ&u¶ÜV_e¢=” ÓŠôù<¿‡mªþn¸ôª‹ŠÁÆÒõÐmpÑJÝÈðÐÉ[ÒOa‰ X‰oš°!¥&è>qV¤aàÂà`Z ‡²?‡Gìôð„>Èy¾¤ç©SÇÁXph!=vi òf+8Ø@?•ÌÝWÿ]r¹}’pšƒD4´>gÿWÀ®÷ýpw ßä“,ÊÊ*ÄLjðöí=\=w›Û ‹OôAQ1æ¡ýÅk¢L-Ç5ÏÇ)Ãí8^Hä›Åg!ñ‚h ¸s.“Ìp$ýqö¶¢endstream endobj 629 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ31Ö3µT0P0SÐ5´P01Q06SH1ä2Ð30Š!Œ‘œËU¨`lnT052Ì€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[°sÆjÞ‚Yó¶øÅ²È;ÚM~Ykºôëë¯Ç¯ÖÿÛm¶Úª½ënŶÞH,³ý–ý#1ŒG_þëëÿÿãöÿWØq¶úuC—«§B hE±endstream endobj 630 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0bSS#…C.=C aŒä\®BcK° Pa ĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ)i¥×¿^|zéˤKÿ/}Ù«ï©$¼/ýòŽ÷q/ïÿžmf-x·þßþëÿdþëÀÂàÀåê©È†ñGendstream endobj 631 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ31Ö3µT0P04PÐ5T0£C.=C (Âɹ\… &`AS#.°¤“'—¾§¯BIQi*—~8P%—¾P—¾S€³‚!—¾K4ÐÔX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmE›¨ëúªÉ!óÙ*8lâ¿þúéÿÖ_ÿKöÙf_ýw d½¾þßûÿÚëÿ×ǯ³Ûÿë~+ƒ#—«§B ú"Hvendstream endobj 632 0 obj << /Filter /FlateDecode /Length 382 >> stream xœ]’;nÃ0D{B7ÌÏÒ 6Nã"AäE*, ²]äö™YÚ)RŒ€g’;³ëmNç—ó<Ýêæ}[Òg¾Õã4[¾.÷-åºÏßÓ\íL=Léö ý¦K·VÍéµ[¿~Ö\ãB ¿u—Ü|ˆ?èO»ò(-C¾®]Ê[7çêØ¶ñ8ޱÊóðïÈJyÑ«ÆÆ"i}îcQ0ñ‹‚ÉÄ‹‚݇X¬!æX¬%ޱ(X´ÈDi„* î‰.ª€"<­ú:úZxZõuôµð´êëèë$ª€='”ñ‰F‰œ¦òD|T&Vö}T™ ‰¯FÒyE3{VäÍì9+A^ÑÌž³UxËÊQ#af QdfÁŒEç¼k‰èU´_Ü"eDôÝP@NRÐ dG3¦€¬àÔ·å`þ[Ê8-º¨2U@U (º=Ï5á"q%ŸX§û¶åù¦{«{Éuœæü·Úë²òU U¿"ÿÈ(endstream endobj 633 0 obj << /Filter /FlateDecode /Length 164 >> stream xœ31Ö3µT0P04UÐ54R0² R ¹ ô Â@c$çr*š€ŒŒ @š€P›XÖÉ“KßÓW¡¤¨4•K?¨”KߨŽKß)ÀYÁKß%hl,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶æá…ªªúûß÷>‰»þzé:¡C¡\¾Œ \®ž \ª¢-Cendstream endobj 634 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ31Ö3µT0P0U0Q0¶T01SH1ä2Ð30Š!Œ‘œËU¨`llT012LØÄ,åäÉ¥ïé«PRTšÊ¥TÇ¥ïTÄ¥ïà¬`È¥ï 43–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-¸ &PÚºFaô¦CQܺ: [6€Xœ­±'×É>\ÍÏû°}{›Ü= ëy›ìÃ÷< \®ž \Ë6çendstream endobj 635 0 obj << /Filter /FlateDecode /Length 152 >> stream xœ31Ö3µT0P0V04S01T06QH1ä2Ð30 !Œ‘œËU¨`lnT0´2ŒØÐÌ,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­t}rU§þÿ)‘î“«¸\=¹R&ûendstream endobj 636 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö3µT0P0bCSC…C.=aŒä\®BcK° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1™¿]àÉU;9ï›?æoÿû^Ö¿~YÇY[zøáçƒí÷çß¿ýÿý~ ÌúõñÞ‡~xkø¯XiêXÀÈ Àåê©ÈAHaendstream endobj 637 0 obj << /Filter /FlateDecode /Length 221 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èy”µ‰m^ó‡öu½ìþÚMþòqoõÿ¿[ÕVÙ~ßð®c·æAʼnLù SŸH\VÜ(aÞ~ûï~­;ñÿßêoY›¸Ôª»k剠¬  ˜¸\=¹RHendstream endobj 638 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ31Ö3µT0P0RÐ5T01R05TH1ä2Ð30 !Œ‘œËU¨`liT052@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Ñ&êºü§©çÉ縷ÞÛÿÿÝ‚„_oâרþÖÿ¿+8¸\=¹WK”endstream endobj 639 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ31Ö3µT0P04WÐ5W01T0µPH1ä2Ð30Š!Œ‘œËU¨`dlT035éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­t}U!ñ|âµ™µ”A€‘ËÕS! Å.1²endstream endobj 640 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ31Ö3µT0P0VÐ5W02W0µPH1ä2Ð30 !Œ‘œËU¨`dlT032@]s°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ÒõÉÕ‰÷ÿ1Á¿Ã'W58¸\=¹»í:Mendstream endobj 641 0 obj << /Filter /FlateDecode /Length 393 >> stream xœ]’½nÜ0„{=…Þà$ò¸<Æ6vã"Aäte¨°NÏEÞ>3C;EŠðñggVÜÓÓËó˶ÞûÓãV~Õ{¿¬Û|Ô÷ÛÇQj­¯ëÖ¡Ÿ×rÿ$}ËÛ´w§§oÓþûÏ^{¨KãïÓ[=ý´pÑÒØ.•Û\ß÷©ÔcÚ^k÷8 þ¸,ÞÕmþo+^Úëòy4\¼)‡ÙÞ”C%oÊq$ÎÞ”c VoÊ1#\)`"Ž.\fbt x!šKÀ+1»,DŒ 2"`TÈÈ8"…|fH‘€ ‰5 ÈX“€Œ5 Hß„DI©Ò;I»™•ÓÕ¥©L’ŒlLLF‰¥ &&£ÄƪÖ*³;»d –\B)Z7µoü±†ÖMíã ­›Ú"Z7µoìȈ fÚÅûP@>Š-.ù72šËjpà+dxfù,•áI…³JexRÀQ³õ5D3ì×|öåã8êv×Tkj9¬ëVÿ þ~Ûy«‡º¿…öÌþendstream endobj 642 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ35Ó35T0P0bSSs…C.=Âɹ\… ¦†`A * Èu €ÀÄÈĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYÈq‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ýO®8yØ=CþpÝ¿ÿÿ¿ÿÿ¿îŸcùÿÿÿåÿýýÐÇÿŸ þó¿ÿ¿ÿëÿÿ¯íÿÿ?þÿ—ý ™_/'\èèÀÄ Àåê©ÈPQYendstream endobj 643 0 obj << /Filter /FlateDecode /Length 509 >> stream xœ]”½nÜ0„{=…Þà$’»´»q‘ Hòú¡ Ö ò¹ÈÛgfd§H1|¶v8³'Þåéåùe[ïíåÇq›~Õ{»¬Û|Ô÷ÛÇ1Õv¬¯ëÖô¡×éþIúœÞ†½¹<}ößöÚ⺜ü}x«—ŸÞwúSM·¹¾ïÃTa{­ÍµëÊuYJS·ù¿™ŸãòùhG©; \û¾H!ãèE:q,p$NENĹH!‡ åT3ñ±œÊ¡9§Ùȃç45[Ë©#0"`TÈhDŒ ™ 0c‘€ÄT$à#ÑŠˆ(U0² $ Á@² $ +À@ru0BN0!`RÈÄ “B&†Lˆ#1‘€Œ‘plC™ÊàJ›iep59ûª›êûª›ê2”3ÌÜ³ÃÆÒx®ÃÆO+ä°ñÓŠõ6~Z±¾#¾«‚ótÄwUp9ã×AÎoбE×&áD9×&{tlѵIç÷ëØ¢k“ÎÕ9^׫âìëØÜ5‹×„jv)³o dŒŒ¼Y™;.'#oV掫ËÈ›•¹ãAy©tPF^ Ⱦy)`ÐMûºR¼t¼¾_·µ>Ž£nwÝqÝa^Ýu«ÿ~öÛΩjþpeendstream endobj 644 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ37Ö3°P0P0bsC c…C.=C aŒä\®B33° Paĺ@†¦¦†– 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB.ÆúOY1öÿáà'»{ûC |ñã~ ç~Gó—õ¾¿âE¿Üÿ[ÿõÿÿ¿õÿ±#ÓEÙþÿcP`ârõTä6–ZGendstream endobj 645 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ31Ð3R0PÐ5WÐ52Q06T°0QH1ä2Ð30 !Œ‘œËU¨`lnT04°0éF&`i'O.}O_…’¢ÒT.ýp Z.}B.}§gC.}—h Á±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÇÎŽËÓEAmᔊ‡ìË—ÿªÿÿ¶îÚ5‰ˆÿÿÿÿäYâ‘ ÿÿ„ù5ùÿ˜àÉûyÿåÝkë×_š²úÒ-ï‚iGt×D02p¹z*rBSdendstream endobj 646 0 obj << /Filter /FlateDecode /Length 256 >> stream xœ³´Ð3·P0P0WÐ5T°4R°0VH1ä2Ð30 !Œ‘œËU¨`ab„0ÌX×Ð,çäÉ¥ïé«PRTšÊ¥”çÒ÷“NÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb b;;.Oµ…ËJx-ÙZ%yîQøà¶ áC_ƒC‡y‹@âKóÍU¾/Í—ÜÛ¾äÞäªûþk¿üº7¹þ?ºÿÿÿ þSþ&‡®»þÿÿ½ýoË×ÿ¿íýwËþ{Û.½-_»ewì–m—n{çê˜5ÝHÔ1HhºaàÍãt˜› —/ap`árõTäÀgcendstream endobj 647 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ37Ö3°P0P0VÐ5T0³T°0VH1ä2Ð30 !Œ‘œËU¨`fjT°02ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈÅPÿ)+Æþ?üäëWêùÐ „½,ü ‡²ýðýrß÷ë—û÷÷ßÿÿ÷÷ÿÿ÷¡*ýÿ¿þßÞºÝñë.½Õ»ôäGfÉ ï›¸—i/8ôBBÇq s#ƒ—«§B ׆`¢endstream endobj 648 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ]‘Ánà †ïy Þ °J•/í¥‡UÓ¶ `*%ˆ¦‡½}m§Ýa‡é™Ÿþp:žJ^UÿÙ–ð«J¹Ä†·åÞª/¹t£V1‡õi²†«¯]øðõç·¢¢L›Ÿýû/kl[SX"ÞªØ|¹`·ا–øïh4[Çœž¥“A»ÉiA;cIíé̪A ¬o FVºÆÊUÔBjA Õ¬ï N¬;´VÖ©c hk¥A •bš—!å™àdŒa'¼ÞÊip®¯U¸·†e•ð%\Î4üûŸºTîRD÷óþ‚ endstream endobj 649 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ33Ð37T0C3CS#…C.=¨Œ‘œËU¨`f`Qhjfè¥ -Í MA*œ<¹ô=}JŠJS¹ôÃʹô=€j¹ôœ ¹ô]¢FÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…s~X~ðtg‘PxtÙŸ³åq´ÿ“«"ÏÔÒ>y$ÚûÚ‡Ö†¿ûÿ7üÿÿ«õÿq‚Ÿ¡BW¦mÌ\úÿÝ“«j³8¸\=¹ˆZ&endstream endobj 650 0 obj << /Filter /FlateDecode /Length 233 >> stream xœ33Ð37T0P°PÐ5T05Q05VH1ä2Ð3 !Œ‘œËU¨`bj*2,€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Ø$±ìœSÇìÛÒëî{E˜åêæi¾¾ÿï§iü¶ÉªMÙB'2n:µáˆAEâƒÃ'ô„7¤9ëû4{Ü cïί»ýïûÕ¥µ­mBÍ,‹W¾Mlme™µÂH"Á…ËÕS! y¯Jendstream endobj 651 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ33Ð37T0P0VÐ5T0µP05TH1ä2Ð3 !Œ‘œËU¨`jbT052ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[±œõJTn½ŸoP¶ÒGžuÿ·ÞÛÿ¶|ýïØ×ÿ®WááôgÿÏþp¨ƒ¡ËÕS! æIæendstream endobj 652 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ]1à EwNá@H‡ˆ%]2´ªÚ^€€‰ˆ¡·o I‡ß’íÿ­gÚ×Á» ô‘‚~aë¼I¸„5i„'çIÃÁ8®V=«HhSñý‰›íÞßÕŒô)Ú¦Žš=¤ƒÁ%*Iù Iǘ쬕½ù[ñ=0ÚÃ)Œ¬âB0IºVÈ*Þ²KŸÆr©0 ×”Ðç ^Á óøû-†XR°‰|¯iVÂendstream endobj 653 0 obj << /Filter /FlateDecode /Length 182 >> stream xœ35Ö30U0P0bS#S …C.=C aŒä\®B ° Pal–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÑÌæ€ÿ“ƒßÿ‡€'^ uu}Â_„릵¿þ?þoýðÑÔˆÇüC—«§B ¥PHoendstream endobj 654 0 obj << /Filter /FlateDecode /Length 224 >> stream xœ³´Ð37R0P0RÐ5T°4W05WH1ä2Ð30 !Œ‘œËU¨`ibT0µ2Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQÐdÕdþÿrà„ƒ;ŒÎó}»¾ÿÞî»Õo½ûzo÷òø¿¯w•þß6+Þüßßòèõ˽«özÿ÷hï—PþÛrO ~Ÿíëåÿ«^~_7ÿ/‘¹Ȩjà`hàrõTä\Keendstream endobj 655 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ]±nÄ †wž‚7H ¤RäåºÜЪjû„8'†#ˆË }ûÚÎ]‡Ò‡m„ÿæt~=ç´ëæ£nñ w½¦¼T¼m÷QÏxIY«—÷‡É¯¡¨æôÊ÷OAM ¸þ®Ø|ºñ¸2ÇPܼ•±†|A5µ-Lë óò¯dÚcb^­]Áúަ¾Áú~$<Ö{Kê Ö3ë‚õtIJNš]Ç:‚@Ú³¾€`½iY#Tõ¬‚uô ÿûùA^Ãxî®ã½VÌ»$&‰p)ã_¨e+<¥ õ öqendstream endobj 656 0 obj << /Filter /FlateDecode /Length 3537 >> stream xœµZKoäÆÎY9|ZssOàaØïî5’Ã:v‚8`¯à‹•5CI\ÏC&9+ëäg§ªº›lލ•¯±‡%9ý¨®ÇW_UëçEYðE‰ÿâÿëÝY¹¸>ûùŒÓ×Eüo½[¼9?ûó÷º,¾ðF˜ÅùÕY˜Â\¨Â•baKSpá绳Ù—í¡ëVëmÕuÍ«uÕ7‡%/J®´bû×Ëÿœÿ“–ãùr¥(´°äùèË•48G2X¤î:|ðÎYSãKYxÏÙÏÇjÛôKáà'¡Ù}˜æb‡«8 žãøÁ;Ö·Uƒâ”–;¶_®pQzÖ,q°†÷×i´dmÝ·ýçøö`w°«“8Ž­«}”µtìv¹WѬnWtÒ•µ…‘Z,VVÔʆ^ÚÌó–©¢R¸6™R¤,xi“N~Z®ÊBážÓ .à£WW‡í70([“¼R¬Åe¼ÆzFf)••¬£¯ÞJÏ«5ªÂ å8C†¨™QGÁ¬û¸,E6ªÚkRªzß:IÇ6U_Åßa§Ë¥ÀÏRá`HÉ-ë꾟̉KZRÿmÕ*]aJ—Ôª9›µÕ®îëvyþŽô#reÚBËÒý°5zh–«QøÂGÒ©Y8¸ª5bbS–ÒÏ™ÅBpçÒà ¶©¯*ð¨×Ë•´oXy±,àÍ(ЙgçpÚ´P.¿ƒ0Õ.îʺ÷»9é¹/T:ãìp Ëjrúwu°©ò ìÔiZžÝ5Û-¾IÚ4½o(×lš¼¹C¦Y†u‡]rG+¬QÑ F†«Í¦Aï¨`má(ÖØû¥ÆãÂZÕöXwQ£3І FZï7d|á0¼‚_ ‡ÙÝM ¶é]²`öa'ôÄ4ÂCð^CüvñWArŒ.ÜgâvˆÖÿ)Äk½;)¥H°–0â(ž”#Í eÔa.âëYÃrW(¡qV­×ǶZ7°ÜgW‹BxíÿzÎú®àF¸ÁüïÉz¬\¯ûQ( žQ‡qËû(¿7ÁP  7 ­.§««õ2Ùìfœœ–ÆñýàÉ'ñc]!¹~^ü¸Âq€¢xìÛ¶Þ4kÔe7ã+¡ ÊA+® ¥xJ&}9"Ùý`‹\Ç€éV¥h}\ÉR¸1Sõèåé̃:ôÃn\p'Úg<ÏqF×ý€×¡Û|ûö«áº0Î~t‡ÙÕ”ðÈÞŽu€Á&é§=´]Î?žÓx@ÒRý&N#yᬠN#½‹Ðߨ×8!W¬4°³|‰bOœäT…ÄAJ¼•I9ÙÅ61ô¸ZõÀ#`“{<ëÖ‡¶]ê«9é!BJ#^"ýÛÁÆ\Zâòõ6åކÇÄYýiÆÈ(”äá¹£½‚´½^ PvOšñäÙÆu»RX„+˜Ê™8\ª­ö×uxÅ_H4…Ö®•…Ÿ]Xù°ö¾lö~AHÁÈR4N±m]uý¸ úPøÉÇ2c já¬-Œª¾:~w¼>Ÿî‡,q8&lé‘Ù³î¸Jn–¥Ágùã×K‡kkCœNMv `IcQ=m(YñØ}³òö8'6;(‰†˜ÌBŸÈ› À›ïƒBÇÒu‹F¶<´õç³^Ç’#6×:WF ±_'¤êöTM‡T½bšj¢õ"W-©Ÿ5<[îcýlcçù[Ê*˜Ú€Ö‘ê£f¾^zR”Yín)©ÀÙ1t1¨ä¶Y«Á„ôö ènöÆ*ÕÖ”þíX%Ÿw¨Õ[Pl½`¬Oä>ösò.Ãî0–°Ümˆ%°æ¶ÞÅFòŒ¾Þ¼þpÅϱwãlî¡ÓŒuâ¡_~8qæ¥ÊI¥’:G\åãÁ°(A£ÈÔðÜáh6ßq;È© ö§-<¨j ­t)eSÌ%¬•*,õû(îx6Ù^"»¶ å˜å6Ä)áWçgßaŽ_Ü•‹¿Ÿ «l!Ä’(Œ[ìà ^0ÉáËöìíã7¡“MÓM(¬YX\Ó94Þ„21gYk¼†Ã:0žlBÀ¹Fu˜Bq8õBAñ90Ìù+Îqà8\Ä9bÒÌqôb5™ò]œ"ÍÁ+5íLrއ2 1-”ªžß¶“†žÆ¦b£9aØÜyu!4Þf~ø¼§z}xÞ‡G˜Ö'`$B»ó¡ZôÅœwCXŠ!Q³2™èÄâýA9ÜmüñT''HY ×?ªîIDÀ;é0ÝÊ+#‚"Š{lÌÙȞÖöd΋¤„àcΰ/?áL¶UpÖÎ"€£Ã]ô_àÖZ³;jXËÕë¸%Öf޽ÆG”2>f_Ããã¼l¡€xá×_<ùk…9#ò‚ñ˜M\œr‹×I~¸Oº'Êi™ÏGª z©çb$=å»{€ÇÅŒ’Ëy%ã­ˆq™’?¤"Ð*À±KJ)¤©;äsš‚5Þ›Åà.à ÀüýŒæžõXÓ¥R8•`±r?îño;b½Û±Á‹ªÏgÏ‹µ´–þ™µphXñP${"Òmº út¬òÇrñpÜoò4Qft“rŒH䬚•¨ÚÏ·!%XA 'ÞRŒ‚Ÿz5·>¤@¾ DÔý¼ûÀâN¼`m=ÜÙõú!kñã`ìj‚±ÁpÞøèê]³©_ Tø{›]Õ·Í/ó&÷À3J1Q ½„F/À){Ȇ4ÆÌA+˜#¦û¼;¥ZÓ}©<&ºÉœo¦÷`ɱK~ÁNpôô èýƒª~y˜p¦tÑ@×AWYòybO0&PTÿ”Þ¦J˜Õ¤Ÿ“”2‰&TE¦8ì°Ñ¡„~ù, öé!¶Ÿ¶K¦égØ%ævAÞñb»÷«Ì"äËÍbœ{Ê,'Ü ˜Ð7Ï ý±:þôAúÈUO Ï°‰þ1¥š‡,G}B="„’…áZÈŒùRŠ”ƒg üdÊG×Ó¯Å”ß ¾-^úôWG ý• ý…/ýÉE_ÖDá¢/¶I÷õ6tJ8@ƒBΊÉÀNkš¡þîì?nendstream endobj 657 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ]±nà †wž‚70àRɺ%]2´ªÚ¾†#bFÄúö=ÎI‡ÒÇqüÃéüz.y“ÃG[Ãn2åÞÖ{ (¼ä"´‘1‡ía¼†«¯b8½ùúýSQÒL»¿û+Ÿö¨xKïMax«>`óå‚bV æ”@`‰ÿJZíKzÕãh³‰°ãFC:z`HiÜ|1îp$µ㦥+U,W§Øõš¬ºÒ%–/²®+c¬º&`H-¿ûùÀþ…Æóï2Ü[òqbœH"ü µ®µwIBüËrWendstream endobj 658 0 obj << /Filter /FlateDecode /Length 436 >> stream xœ]“±nÜ0D{}…þà$ŠÜµ»q#Hò:Š2TX'Èç"ï™Ñ9EŠ!ðN·³Ã%yzzy~Y—[{ú¹_ËïzkçeöúqýÜKm/õmY›>´ÓRnwÒZÞÇ­9=ý·?·Úâu>øu|¯§_ýÔEå:Õm,u×·Úœ».Ÿç97uþûãQq™ïí-KÁ±K–€…X³< Ààù®À¯á!ò0ó!•HY =qʇ|DºÊy ó€Ä0û,™ ‹¼Ç,±És Y ³|$¢.ª6²6"oTæÈÌX¤.ÜQD"*¤Â¾ ®IÎé8d Hç„&IÒHD“¤FÎýâ›¶Ø×`c‡lì°b ƒV¥,7YÁÕäláL§`a7¦Áˆ0Bß1'Ó¬ŒƒµK–€Ü á|LgdaT0S-&AU;g ÈZÇqQ@Æpäueî8G^W掣säueîØÈ‘— Qy)`¯[û}=yù¾o~[>÷½®7½½>ƒe­ÿžÔvÝXÕBÍeåáEendstream endobj 659 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ31Ö3µT0P0b#SC…C.=C aŒä\®BcK° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[!rÕ“muÿA ûøÿ?­ûýÿÿüÿÿó¦z°Àÿæ ‘ÿÿO‰Ëù5p04p¹z*rÇDendstream endobj 660 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ö3µT0P0b#SC…C.=C aŒä\®BcK° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1G"0óÛ’«ÙìMÏ…Ý®ÿ‚\ýÿÿÿ]ÿÿ÷5„üÿÿûúÿòÇÿìÿÿ¿íÏþø þ8<ºügÖ’+ ,\®ž \²ÓYendstream endobj 661 0 obj << /Filter /FlateDecode /Length 299 >> stream xœ]’Mnƒ0F÷œÂ7 Œ)šMºÉ¢UÕö`†ŠE "dÑÛ÷›qÒE/ÒÃãùñ¤<_^.iÞ]ù¾-ñSv7ÍiÜä¶Ü·(nï9µwã÷‡Ùo¼ökQž_ûõëg‡™²¿õW)?¨=Ú§:_ŠË(·µ²õé[ŠSUñiš¸4þ;ò>ߦG¨?p&ø‘¡GÎ/ªÂ™Ð4Ðyh§Z³%ÕÀ4BÛŽ Ú^udÃwƒžv >tG(! YªnPõl@5˜H9X›$d%ËŒ+PbêUÑ>Ùu¥ÙÀiPE Š'²S §@u"šØ€êDE‚ª´É€"Á UUQ|«mà­ŸªÏ® |îËÅû¶IÚm˶E]Þœäï°.«Þr øŠ«˜´endstream endobj 662 0 obj << /Filter /FlateDecode /Length 234 >> stream xœ37Ö3°P0P0QÐ5T07P°0VH1ä2Ð30 !Œ‘œËU¨`fjT°02@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°&@§maýÿ?m×vÔÿ‡ƒæîÒ›øñ²ê’_àp|AóK»É@ôêoÕߪÿ¯¿þÿQýgÖúÿÿÿ¿ÿþ®·ë×Ýz»îbK­ÐÃ=Y‹ænãžp£ÓÁ‘A€ËÕS! Uc#endstream endobj 663 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ³0Ò33S0P0bs  #…C.=C aŒä\®Bsc° Paĺ@†ÆF& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹ëµízÚÒöñ¿ƒïïÿÿû5@ò'Û³ýÿ¯ÿÿ[[[#Þÿÿÿ\§?ò÷ïßÿÿ¤âÿñÿ0ðÈ­Ùüƒ —«§B «ïZ½endstream endobj 664 0 obj << /Filter /FlateDecode /Length 241 >> stream xœ340Ò³4S0P0bK  #…C.=C aŒä\®BKc° Paĺ@†ÆF& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ªãýÿ?MY¬šyìÙ¸/}˜¾ôe÷¥/{õ½‘Ù‡â¦/}ú²×ÞÿЯºùË_¿üU×ÿŸ3~É}‘ûœ¿öÍ~ Âûë÷çßûÛßAÌÛ߃™ ±/|Ø86äÿÀÄ Àåê©È!hendstream endobj 665 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ342Ñ37W0P0bC#C #…C.=C Âɹ\… ††f`Q 2 Èu* -Œ,L@Šœ<¹ô=}JŠJS¹ôÃA:¸ô=€Ê¹ôœ ¹ô]¢ÆÇré»é;;»¹66úÞ º@çüœÒܼb;;.O5†uW×?¹"¸È@øÏ£ŒGÿÿÝŠÿÿÿwfýÿmÓaXìíR )˜úC96©7áÿßÖÿÿwHþpÜz¤ƒI…Cóïúo¸\=¹¹x‰Aendstream endobj 666 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ³4Ô31W0P0b 3 C…C.=C aŒä\®B ° Pa ĺ@@`f`l RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµñÿÿ\‘°jþ©`|BÀ­épmþµ¿ù×þÿÍÿÿÿÚ øøm;œ=!Ëô?vð“G«þÿ.WO…@.|dXìendstream endobj 667 0 obj << /Filter /FlateDecode /Length 252 >> stream xœ]‘Ánà †ïy Þ P¥Ê—öÒæiÛ 0U%ˆ¦‡¾}m§Ýa‡é‹íXüôÇóé\æUõ_m‰?¸ª<—Ôð¶Ü[D5áe.6*Íq}™œñj×?Bý}TTÔ€yóÏpÅþÛéQ>ém(. o5Dl¡\°; r†KúWÒv›˜ò«ut ?N@:`¼Õ¬ c§HjG¨H”gÝÒÄJnkFV ‚ñŽÿìö ¯ÖU=+ídŒsREH-kÔ‘zº-Cºc¥%^ {‰à}WNƒs}Ǩâ½5,«„/ár¦sÁ¿÷©Kå)EtOŠ‚ˆendstream endobj 668 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ÿ ÀP ]ZUm?eÀ‰Búû’:œ¥óÝÉgÙ×mù_ÁXÖ·$i²,Ê ´Åx°¥`ƒøLmS†endstream endobj 669 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1802 >> stream xœµTmPSg¾!$÷*_%Ù;‚­IvdV°¨ ÓQ¬Tjµ[¥ÂG ò-ùH8Iù¤$)D ¢ˆ"E,ÕVGe–ºZíêàêLµ[©ë(ιôuvö¥Óý±ÿºsgÞ¹ï¼ç}ÏóœóœG@9:P@ºÅßoòï/Ü›î-nžˆibh¢HÎBpv<ñÓ Aƒ;&ºá¶7(¡@²¿($5-[Ÿ QxÇú(ü–û*–úù(‚TJublLŠ"4F“ TÅhøM²""56Q©ÉVx¯JÐhÒV.Y’™™¹8Fµqª:þ=_Ef¢&A±E¹_©> ŒS¬KMÑ(6Ũ”Š)p‹§ÖTUZ†F©V„¦Æ)Õ)E¹§¤ib²” ‰*?ÿ¥Þ>o0*œŠ¤‚©íÔ:jõ!µ‰r§$””’Q³¨Ù”3õ%áiSŽÔ—`ŸÃ,‡kÂw„_8²Ž£¢"›x®8J|Žv§£èNçÊ];'êͰJÐa•#s¤}è€c,±Ð»µ°^–LwÇÁõ'Ê/8Ï·ÓëµÐ'ÇôË›—®_«Ü"#ùÿ3öcPCy;ƒ4<{òÉüÆ}æp†¨OSCéÝqšüY+J¦¥}ßVïóhÈ6;úZ9Ï^u‹äÕ#Ã5œ3;L¯ÉЛGJ¢åÒû¯frž0\4Úà8 ê»~o]MWäöFÞ^þŒ,J>#ŽréX ÄDgf0&ÒÀâ~ºmp m˜[W—qY»<(Vi>“&Ï·€ÌŒ+ç¡mÁfLµã ³àåÎmbçÅâ|;™Õâò•§ŒÉøi£‰Û'o¶Þ¼.»¬ÞJó:Ù»7Ê\9ÖšcÇ$«íÿ'ç­’Þ»;Ÿàò‘[-s¤ª/ñáöpìñ˜~`,WëïË/©#èpu‰v_Y_… £hè…ÓñÝq§·Û LÀº¨ *sŽ­õ3³­®´s—A~¼k ¶˜ËqKå{iéÙ/?Ñ­ÕmT­IT ÑÌÊ1õ5ŸdÎ÷4õ3Ÿ‚]@û†$îÞ±§ëÂW½£PÉÃkž]PÇ„؃lû©SÍ6ûÉ3 ýÆN§ëUåé ‚mƃ¾ÄÉ´E_ur!·ð`iIh Gàó¢0B¥'44T›§n”oÐçˆ2¤§n| †òþ°g„õXDœv†oÖÏdÚf´lнúæéÞe˜ŠBXÛ:¯þíÎ*íÑ\(¢¢¼´r&™n7\2ZùVŸ.o×O…GB¶QÓÆwi3ß%•ƒ­’ÖQ,Vó…åÐ+ØJôyÐr˜5äÍ89):Àb‡Øj˳È1âN˜%^Ä].'sÇ"®}(lª9d,-Ò—Ò˼ü¡¶Cl»¦[õ ÃIfz`<­¸·W0=1Bt¸Ãþÿfe9D‡å(|ñ«þ§Û§Æ]^I¾{µvxŽôG\Ëmb‰b2äFuÉ9±Î$ê0 ›¡ ºfm(«8-—>?Ìb;Ô–Ô䌴ô4kº½µÅÒ!s¸ý߆0å ¤'üQ5ÉT»û7/¹ÿ›— üê%º 넇Upz«F…ܧx‹…{¥÷nïzp, 8}Ïâ¤u¥ð.¬9ìfõÙ•·2`îXÎýÔ1Rñ=ü!ñä›[²Ÿj¯Àø®ÃpÕP:}WÝ0œÝä]«a#¬´åùnQí^$:¾ˆÝösf¦ÝbÿÄŸØf0jd¡-ƒ$à•l柺hc^7ÐñºYR²¸Ëôzøïté&©'ÑþºÚîIpÇÇŸÛ%Æ1úñ´²¥wÙW/ÐeW†à_ž(ö¿G\‰(hÉÒˆ `jìª;c˶%ÒC¹Nöù¡î¯y|veÀ»ÛWm •“­dŸV zØï)çhq+‹ÔâRUqta^ñ¡ ÁãŸø ={pqàÒÄ"áDÞcšÀl΂|ùë§âü,ÈÌl‚9÷ÙÆÖOŸäÉ_ÿSœ7}RÏÃö &Ë/fÁ³¯…ø€³`cN#qGI†. >…Áè†îGëxï01GÊL%…þéfÙ'Ä¡€ù6Ö—¯ˆè q{øa 0•‡MG~÷4æòo÷¢‰…ïµè²EaèöÎB`JÊÊJt oÊ–ÿì}™,¢²z/yŸ¼A$ xê:¦äpYeÍEé7²At¨C!<˜¤½Â‚}=xÞ,àD=BnæLÚEý wÒâzhÊÌ„¬|é$tþ cäwâ|È2›¡©^Æ(1õüâÛ#@§!.›(bɼرû.ŒÅyb× +Òˆ)µ•V1ÙSGÛg8Éf;.7;ϲV;;˜](ê?Ü)!§endstream endobj 670 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1002 >> stream xœm’LuÀïhÇÀnkBÜîn‰ËÀ˜þ1†èQ kºÍ9I [lWn´PÚ£=(Ôµ¥ôúãú…£¿A ”þ€Š â†Ùt‚ˆÔ–ÅÅ8Œ&úç÷ºÛ;õÿyyï—÷yïóPDœ‡ (š_'—7T=ÈöóO¢üž<~¯ŠìáìÑ XŠÅ3wÁc~ªvÁ¦ÝˆEuÆ>wžî1hZÔ Yª*#Ÿ©®®*'Ÿ=x°š¬m§ •RGÊ•ŒšjW2¹BK¾¡Wi(¦‡,}^Í0ôs••&“©BÙn¬ÐZŽ”•“& £&ORFÊÐE5“õzCS¶Sä6\Åv¬Ó·Ó e åúfÊ SjiµAüfM«¶¦A^EŽ"2DŽ<‚z‘‚Üjˆù­C×óªò ¢BÞ#áïØS<‘‚g—Ñ/oŠøo³åÒþ_ôcCn¿ÍtØÁp‡×â]˜%BË€u°œ“ëÃO Ý]ïiM Dx\xBØ'<õô7õ·?[ž]X$ƯÚ ¦cïÎÆÂ+` [ÇâuÓ,nkê>¡XKŽø}a¢vLÊê;MÝ}U›`çZ×?Mü©EâÒæ•h `ß¿ØëæX¯‡ð¥y¥¿¡P|}öü)»C:j‹éi]‡ÎîJ¦“©$.(î IÝV— ˜±Ó‹Ôµ¿– }ÈàìuãLÍÛg›fr…cSÆý1" &ƒ : úqIÖ¼m]¿Ìj î“ný>K@ Û€Ë<,ÞÓÐzLù¦7Êmpþó¾ôõ€ r¶W +7ª!¶uëÃ>'¦^¾b›Øjæ“ÉP®Õʹa¡´N°3pÁ]Ø iYÍ¡> ` ç–6Òˆ^ýޏ´¶266ÁÔ‘ù°‚{e¨“˜&øº@ é‰|A(¸¸óf¾S\5Q\xq°¸Aþ/ÕâÒendstream endobj 671 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ]1Â0 E÷œ"7HPR•¥,@¸@š8U†:Qšܞƥ ß’íÿ­gÑõ—}æâž‚yBæÎ£M0‡%àŒY-¹õ&;ªfÒ‘‰îªãë¯p[ÓˆGÓœiTo!,ÌQHG`mU©Ö9ÅíßJnÁí΃"IYŸk HRê#Åwc¹T˜vn–”3Xáñ¿ßbˆ%ÅW±±V×endstream endobj 672 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 485 >> stream xœcd`ab`dddsö Ž4±T~H3þaú!ËÜÝýóÈO/Önæn–…?b…¾— ~/àÿž#ÀÀÊȘWÜÔ7Ã9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU;NL:çç”–¤)øæ§¤å%Ù™ÅÙ@2rK€Ö¤–ä00001Û10v1v3032²¬zô£ƒïÇݵ ~HÍgü>ó$ó÷ëß{Eï®ß0sÉôy“§ôwÏã˜S7«²¥³»©^î·ŒÁ¬ï½s;—ävKÖW4—6õçö4Ê÷VMrî-ù-ýL¢qbG_S7Ge]MUùô¶)íòßµ},ÓÓj‹ê%+š›Ú»+8ªfÔÌÔÛ=eºÜw™gÕ¿MYKç5OÚ´pJûÊ®©rsZ.w.úÎc-±´¨ª›cîŒYsæ×Ohê—çû%нà'ËÆV{˜dÿ”ý~”möâîÅKJº«äÿª³Õu-êž#ÿýèŸOlÕÝ%K€’³äøŠÿ´_Âö[~:û®=Ü{æóð1/`÷Åüendstream endobj 673 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 929 >> stream xœumL[e€ßKÛ{/X ›‰ÎÞ;• ád™KÇæ\çŠháëBëÖ–\n²á(Ð{Ú.P>Í€²É‡£R¥qa5›Ã¸é‚‰‰ó‡$þÐD‰ó¾øòÃN~í‡9?Î99OÎsƒ´ ˆa®Ø\Tž—{·Ì 3d[yD´býʺYz 赋ÿLÅö-¸*—§ Ã8]ÝÅÎF·lk°*bfm–˜WX¸'[ÌÏÍ-Ÿ³K²­¶Ú!š««d¯VâÍ)±ÔYk“·˜¹Ïª({wíjiiÉ©¶7å8å†ýYÙb‹M±ŠÇ¥&In–êħCVÛ%qó¸œÍTì´7ºIÍÎ:Iv „XW³»Mz¡2ôzYP ÊG\ü/¤EõèKÆÌ„¾ }†õTO¤á:þãÓTÌÆ£ ³[ÓZÉáÛÆg9| _ãÌݰ(¤-ÄÑ»tÜ­¨h)WX^V´¿ïÝeþåžI;'~çúÍ”Ö: ·áÊ*o k½!’c¦É5 ½±ìÜÀ ð1Nö:Td¨ô7û®ê«à&æúºTÕÛÛ)PžhžÖ-ÇØ7½yª Î8Vó¶Âáâ ýˆ< £~†C¡»Z!7bÌæ65cMM“×~¯Æ¿gÕÞ·UU Uãš ÿ£yic»bqYN|ÒÛÁëë ž»0 |¸é¢Íéh­+Õ|þí[ŸÍ˜ $Q¢0ó¤HC^%Æà°ßƒ|¨ܦ {–ëblÿÚ¥Èðß³t~uv€:Ó]£0a")ì8®ÔU°;N¥_ÀÈEO ã½ñ­øÜuGCj°Ã853—<ß¼~U¨”—Owï~œn¡ýþ.Àù—ÿ>?Þ =mÞžÓ¡Ùrüäá8±]Åéׄ°Ö¿èû(žŽFGæ'‚ŸnõYyÃú_´ ?õ^ô§Q£Ì Þ‰“#xïÔÇø™•Ë80ÃãS4?Jeê¦ͤõ´ o£;𙩰/5ÍRÝ侟ÿs'}„q÷ï[ݪà‘Ìj(`‡º›< †4ùfΆUˆÂ¾þä×ÞY‚eXmùøé à”ÍzòW¸áú!àËOØ,_‡¿GÀS’vϤ>1: ×cvV¿Oo@è_—ººÿendstream endobj 674 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 924 >> stream xœu’]lEÇïâÔ¾´&´Wé—}}@m¥âº!¢ Š%R%A¢‘ª’’J–sþ¨¿Rûâ«Ý‚]Û‰íĹ8J\;€£X‰A¢J À ¨¼Â <ðÊû®»±ÉBH»;;šÑÌï?–iocX–Õ ½}Ú´õ}bñá6|D$Û´6£»@«mûÝÇ_=ƒníC™§Ql/£aYïx|fávmÀ;ô9lv‘?n9ÁŸîí=s’ï6™zù³nÁç°˜=ü Y´ n³H?äµ81ÈﳋâØK§NI’d4»ýF¯Ïöò‰“¼äíüyÁ/øÂ(Îëù7ÍnWŠðºÇÆEÁÇzGŸÇæÌÔ®Ž›]ôq¨ñXÁ%¸èüþíÃ0œõŠÑíë~–aÞaF˜ËÌlŠ6Íf˜:¦™c¾`ϳûsÛ+m˪½8Ù‰“$[ÅÖe쨰Èõ Õñï:h¼ÿ-bó3ééiÈqr "ÇLϦôäšFÁi¹b÷Sã©ÉT"p3³©‰u›<œÀØ82¬38×…5÷ƒÈpräYš˜6¼1=\{ïód2PçU÷b‹ÎZ ê™õ~¼]¿_sè.EzKÆ!v¢¹øü¾OJ]¥x²tùŠE¹˜È… †V¥vá\KúŸiù—›ýKjrHÖ4v7öèw·ï·†µ­–Þ§æO‰æçendstream endobj 675 0 obj << /Filter /FlateDecode /Length 2689 >> stream xœí[ËŽÜÆ à]g‘M‚l²à’ +õ~Èp€8d§d4^´gzäqæaÏÈr”/ðgçÜ"Y¬b³ÉfÏL¤!¨A×ãÖ}œsn‘ú¾âLTœþkÿ¾¸]ñêíêû•ˆO«ö¯‹Ûê˳Õïþj¤¯ VÚêìjÕL•P9í*Ç-2Tg·«ú§õÙ·˜ ŒÍ&Ä_‚¦]®ÞÔ¿^oÄWg‰ë†l˜aÆî›aõæâfûøxý›‹í»ëû»WͺFèl‚óÌsWm”aXÞ5«ß®7œÉàƒ«¯é§ Þ{[ßÑo˹ íÖÂV–§|³µÒ‡jcðÈ Õ,õó8ŸsaM7)ß^IÆ…„$f[­dçŸÎV¯WŠ_ý·þy%p˜UY§4ƒÁ·xbs.=¹Yýí°ó‹M;çcM kZ,àUt¾s>bãl08¬W*øìd6x-Tw2Ÿ¹Ã2-pêJ3Ýçüžæøà©.z¼ØÇISmŠ)¯Û)Ê63JË<âa¼íÒbߦ";6V2å´¬6Â3­„Œþ~dïØXj(ŤE›\âí)óì¡äµiû_öÉ2f¬àŒRæ ­E:Ùh)™ÊtÐA6“b:ŠŒvÝeá@Ä*æìY5Ȇ̪&÷†vk¤!ïüÅÍz#9«Týùzc8­.ÓtA¸±m$2=ø´–@é9¯±å¨¯ Ö²¡}¥»÷õ+ú‰LäíÏìióóó~@g©—ôtà…"5«px‹/õy-Ï×]Àó Eâ†? ¼¢U »ε­`‹áÎÏÔ°æöka$½e‘M™¶>ûÕ’l z†*svÌS… ”`Öz׺@‹f4+páÅ8ÈX§K= Ks>(ÒŒ|àQØûyÆÇó ø/\ÿj:KX‚ÆW)7&ÚTÿøÍîa7V8’È¥7&'-Y€˜’²GÙœ0XåÇO¨¹ï+é¼Nyàˆ0ÂXi²Rš‚Í´tNu£ÅWÓ! ²=bÝáhÁõçž$L`‰CꆆâlËßßí _o˜2€ƒŒ>vlç—-§+õDN§ìˆœN¥u4§cÛÈéN8]ZtÖ•Û˜Ž<èAxÚ'и$ÑŠÐRA˜g§q 2¨5·Ki=9’LÀD¬©Á¶g¤Q:e2¸˜ÑÀ`™ÁÅϦ¡œ~)é'°ü&=úY¯q9ÅÃý@Äîa^¹Q‡yÏÝ;q¸ Ý%`ÿìAÈŠ÷”{…ù ¸Xu{AhKƒõo§MÜÅ4)×¢òö2Ù¿yµ ôI’G¨nKý¦Á g:ÎR¹ã„‘èyHí†N<ý}Ÿéò`¹–ÂûØ•H"•"Cél–g!ýBÐpp«£mÀÃË€Óæ 4Ÿ#gö„5AQ()g¡0Ê0 "oî;Òœ™Xž^óIÌŽ¤Ûæ9(4FÄ"õRã0sÍ,Ý"]ìqIZn‹à8piºi üât.¸åé:ÒK·TÀ)¨Ë-ÒíCëw-Çì‚Hˆ—_‹2H1% ÃÊ :"­3x[r‘7aV H쨊9/Ff+±K Þ´8F7ã$þ$7Gôx<Ìõx¡—¡Ç&‘"ŸS²¦c&z„ÆÊ…—ŠÞÀs*ÖU¾Eþû#‹„¬]ra p‘nYÿæÿcí›à À¤Sû¦SûVúœÚ7`$rC"àÝeé°lék± ˆ*'²÷Ç«e—©·XL ø§_˜Dà&ÇÈNN‹ Î t[p]óx\'Å‚"¨€ÀCS hÍø¡[mt|Ú¤£\j—}vÀpz§a4÷³Ïñv¦Á6š^â…h°ÇnlOl°…Ÿë¯eÓ_›a{­h¥8þFÒ¢½6ÔÒ“Úk äšpSÔùý5<¸´¿þÔ»© ;ØØ¥IGt×fñ…v”p“WÚûݵãjAw=))÷Â!êGºãÂp¸u) uÀMÿ¢ì_s·›œêq&‚å%ÞÈ+‰—£­*?ÑÖ•¿¨¨>†Ê§6ä8•y¤Š¯aè3¼Éñ}ý/¨üöðdÑñ•ÿ•ý¼UIå›/i$Lj=ø$bÁKšƱÿjjéïÏKjÉÅpù‰Ç :ÚÐ7 êôWh3:CQ‘G爛ÎO :“%lœÏ ÄIØ(õ¶Œs7ÿQŽ×L‘ã›÷„ÍRX 4©\¸úýÚ ðÆ×Ûë›í×7»ök’Pÿc %ŽÃÉz÷p·»yl¾'‰²M1 öÌÕçÚuH´§1^zƒ²YŽÍ|’YM÷=¬' A+ቹ%)û7™! Û‹föFJ CóÞžœj€´Ñ¥W÷·kl`Øú‡›moÒôòPg¤'§Z -OŸÄöÔßm¶·»w»‡ÇÔW¥x¤³¹ý¡5²ù öI9Š[x¿Õ<)FY¯y´Ñˆw£N ·kîîé¬7×w»íCö½PÑ´mõc¶åSAî·}Sÿ0Ù4AýXzS  ò´×K^ISÞ»”9”NØgÕ©ŽMI”9ö¼¾»¿Û5 ^¦PÚ8‹»Þ‹»±PsE•Ó<ÿ”°ü?Xýÿ&pÊ×÷7îîo¯·c•žŒ(òbƈŸµI±Œ­ÎÚûh¤±ˆŸÄ÷½ÊñF—Ÿ‹óbÒû½}JÕPÁ'rèE´‡>ï½M úô¯ìøôª†â¦‰bÎȆݻÃ(N}YÞe•¥•Ò¦(¶é´0õ°²Š´A"ÒþÞåBû²×þI«£%˜q"Xœ[-¦Xp:^QÒ¾¬_­‡¸§= ·µëôa{I5 q¡ê¯·×ÝW«Á×Wèh÷‹9YT–÷i¶Õœ[%® èHTýÏÞé5ðRp!Ý¢=€ {Ørþj¦  [RÅÃ(È(P´Ã¿¾ÂÚÖúƒ2è] %C‚›=³Ë•¯K÷@cðE¦Ìÿɾу—*ÎÒ~Á|rŠ–rº¬ßöÿ¨«Û”3emOçÌL)ç93 _Yhi÷²ôL©ä)iÞ“˜R™mêÇë··÷×—û )m[Ø“¸±ßöMý.eH½½ë+¨þføJ¢,&‚Éö~½¾:âŸ×¼©>Ÿl¥ÔþÛŽg§Ôx™5C©Ãbr\‰œRÇj)%LQ]ObÅ9¡I è÷­«ؾB ªtɽ¯Wÿæ#Èendstream endobj 676 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ÿ ÀP ]ZUm?eÀ‰Búû’:œ¥óÝÉgÙ×mù_ÁXÖ·$i²,Ê ´Åx°> stream xœ]’Ánƒ0Dï|ØM$äKrÉ¡UÕöÀ˜ˆCrèßwfIzèaÏØììx³Óå|™Æ-Í>Ö9|Å-Æ©_ã}~¬!¦]¼ŽSR¸´Ãö${†[»$Ùé­]¾–˜bCv~oo1û”2·¥b?æ>Þ—6ĵ®1iòÜ7Ãà“8õÿ>•ÏÝðÜZorŠgÒ¸ƒß¥®'ý.u‘Øû]Z:bô»´,X3•Xzð@¬¼ x$ÖÞl‰êM@ÚÀš ˆ6šªð&§•¯bXwDÔ«[ó¬ ¦XÝš-jŠÕ­Ù‚ ¦X]ü(ÞdG b6„ ’K" ±4ŠœØy¾š+¤(–¤°}AN”±ÍȉÖÄÁ›€<«¸0 Ⱥ ƒj&sf¥0¨f2g’ ƒj&sR8¢\ÅŽp寻åísŽ^c“†ÇºÆi³a³aâ Sü›Çe^x*…’_’›µóendstream endobj 678 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 416 >> stream xœcd`ab`dddsö Ž4±ÔH3þaú!ËÜÝýãåTÖÆnæn–…?Ä„¾g ~Oçÿž"ÀÀÂȘWÜÔçœ_PY”™žQ¢ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*€§&ós JKR‹|óSR‹ò‹ìÌâl   ŒÌ Œ] LŒŒ,Ëtðý,Y»à‡Ô|Æï·¯3ÿý¾B´wþìï"ÝS8æÖÌ,/«­®iœõ[¸¯Lî·þ‹Æ‰í}MÝ’Õ•5¥ÕS§µË*=R~¸"¸L?«ª¥¥£ªµ»”£tnÍìi«æÝû.#×QVó[¸»‘£ffõ‚ù³fÎRý]¤s¾Üw#IíýSº%gϵpvãÔ†~ù…Aóƒç^ð|ÍœI“úæLì^ȱ°rVuS{Gk£_ñâŸö Ù~+Og?Ìu˜ûðB æe`¦õ¢àendstream endobj 679 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 394 >> stream xœcd`ab`dddwöu0415H3þaú!ËÜ-ó«C†5»›µ‡‡±›‡¹›‡eÙ&¡ïÅ‚ß ø¿ç 0°02æ—¶LqÎ/¨,ÊLÏ(QÐHÖT0´´4×Q020°TpÌM-ÊLNÌSðM,ÉHÍM,rr‚ó“3SK*4l2JJ ¬ôõËËËõs‹õò‹Òí4uÊ3K2‚R‹S‹ÊRSÜòóJüsS .ÔƒPÎù¹¥%©E ¾ù)©EyÅ¥¹ ãóóR2‹ r+#»˜Yº~tðɰ.zæ‘ ËÇÝŒ2,Ÿ€lÑï¼ß¯°±¥(+ºÿfÏ-kÓ,üÒÍñç=Û‰?^NšÜÛ×=A²»·»¯eꟴŸ‚?v°}—ê~V;¥ó`ó£ª[‘KªÏÇ­µâXÂö›÷ûZV™ßIl%Ý]]­]ÝÝ ?–þÍø3ëÏçÆúî¶î.Ɇ)ÝsåøÊç³Éü®œÏ¾‹k·Ke>çæI<<@ÌËÀî“ùendstream endobj 680 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 621 >> stream xœoHqÆçÍÛeçßÚ‹¨vÎ" - 90('i„½ZóØfn·ng‡0Gj†úµ^˜Æ˜ÉÔ™ )EbH¾0J¤Ì¤ A!Bo’ß]—ÐöæáyÞ<Ïç!!‘ÉÛ›lisB=L¨G2Ô£$(Ú¼Vœ Œá‰úµ_ÉÇ͹¸1‘á½~“ý’Çå–9‹³ˆ+«¬´såVk%Wë$ÓáãìÙ-xr*´sE§G;9Ëi·,û«JKE)qx%¢äª)*æìæš„€ ÝZ¹:Ñ's ¯À¥ÉJÒ‹^‡,Hœ]l$BÈ`-+¯F( ÈŒ2SW‰h°mjŽºªÄ5:N,ná¹-R ãuàŒP²e­ý•ýÙ) õ èyô(â àè:«õS 4Ì(›]˰ ð¾D–&’+Ïá ,¶7Ž]â¡j¡6T¯XÏv8NMABN¼Œxø‰hy¦™!Ñ|¾Þ:xh—1«°§ÿ Û Th\ÔøνûfôO¾fŽ'c!„³é²ïxgw;A¼ßŽ;¤zŸ3y¨þŽî ¡îÞ¾èJ¡×S¶çâoç7–?¾ƒ_4Î>¶¡Ôól¥—_Ü=z¿5×lžýôarèß‹ÕUöºk.VïÓ{º{`ÄCª•ÊùK`zŸY Ö4™ÔFðOSd ¦c±{'©PÒDX­H÷›Â1ˆMËd÷,TP)ƒ0›£DU>‚}£#QJwÜ7&²’ûÍY[”Ù¿Ç0É1&¡ÿ¤o Nendstream endobj 681 0 obj << /Type /XRef /Length 979 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 682 /ID [<0bbc96cd841663631b85036881acb31d><0ec217abde3e968a2dadb3939eb07ae7>] >> stream xœí—ËoMQÅÏÙ÷ö–{U«-¥­–x«xE¼‰G$#bȈ‰™ÄÈ?b@BH<â‘ÆDÂDÄÀÐûÑ^ªª—*g­›î_â?w°òegŸoßZëÛçÜd¿&I½ðS²…ô?þ³8–´Ü½ô'.ÜÎñø¿âÿ:Ž%½}™âu¿2­Ó…Â6¡Wš„K„ë…Å ƒãI©¹“ÂNíÙ­x‘p•°CØ/ì6 íߦx‚p8æI§ ƒp:Ö+ÂVa>æ©fpþ÷™Â!á|U«x5vºþááKáDáfäߪ ÐQ³V.+žÞüÔW<Û Ådú™óêy"ìƒ.ß„®“°•¨þàŽf¡»’ð8ò¸¯Úß«x ÌÿŠ}¥/„uÂïÂzèâÓG°þê¤Âv¸¥lTðì}d03{À˜ëŸ ]„WuG]‡Ëê¨ Ì–QáðæªzpÖ0´†7 Â¥Èó#öšâž°5ÛQo¡]#Ô´«?ƒyŸ5O•ÿÂwé,íL*ð¶}èé[ ×­Ñžuà'óCZ­Ê5¼"æÏÓøv:r/¯ÀÀ t¡ÌA³™¸æAÔÐ¥‘ŸP„®ÿ5*).dø„ø ¸* Ó{Êè}½ßTµÈ“FÃ~ùóQ†GÎDT«ª€íhôüè^‹u))îÆ¹ª!äqŠîAמµ9`Æx Z,'5§áØø¹ié|ºÂ}ÂB¿#. ;àóì[׳Öð,û-ãýa/\d/G×£±NÎlhFwÚ“ŒÀ3õQëÄ^½#ìƒÊ~SxÖšcá,:2ÿËWB‘¥p”»;5û¡”]ÑÕð…3‘§lèÎ +‘Í<×€+ÏÔQœõ ÚþZÈÅ ƒÕÔ—Cõ-3ªÑÝ pû;c…)ü:QÛtx>5Í@˜q¶!pX÷g’~Þ–²}X™ŠNuóùÍÿ쪞ÆÚª_z¾¥}{øŽ-ãô&øD<9ªö–âð¡ók¦B?ü3ù!öÜVìÛoÜþ9B½+à ‹Ôf=_÷¿+é38|:õlê6ºÇ<ƒa;T6«;µîJ6C¯åpÚøŸ+ŸÜŸ £ð€¹=!ì k£‚UÅýåœÍlZ{8‹k¶ÅÆ ózÏæuŸ—ŒïOÒ Úã/Ýê¹{Éoù2Øä endstream endobj startxref 207202 %%EOF e1071/inst/doc/svminternals.pdf0000644000175100001440000026702714671766074016027 0ustar hornikusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 4706 /Filter /FlateDecode /N 65 /First 535 >> stream xœÝ\isܶþÞ_oM¦ã%qìdgŸ_mvûÝÅvõ~Ïê…Ö‹]^Ýüó_ÍÅÞx¾Ú_7tÕ.àds³ÞC@НV˜óGÈ-Öº3Ø‚~^‡µ{t„•¯×›=½&l{lÖûf›Æ¿_®–Ÿn~E/J×zA,­øÂÖôÂËåý‚ÏšÝæf{)hü§‚K¶„Øn.^5{ŒS¼<} xš_÷àñã´î’†Xmw{ÖÒöù×uNÊHíö½Óf·(¾ûþÙP ¾à­õÍõ5ýwš» âв‹Çí'oš7oJ°˜³Æ_ƒ?°\…v…61­’¸wÑÞ—þÏõ5í¯¦þÓ‚^ë‡Âk}¼¶ø±=üej"à§‹“—Ûæç@‚.~.±FíñP©vÝ#x—ã÷çðuµÜÒÊü‚—¼¬¡n=K5  ¸m€Û+®a<öŸ­/6—«õ[Ò9î¹c,š…DÄaôSO ÎÁV`|Rʯý£ËývåHµ h+G²üúµgN7ADòºwØ'@4Ï7_¯W¡a•ÎØ‘²øvu¹¿"AÄJÜb~G¶Ÿ×“$ÂM J U±ÙH/ŒRdž‚•ÌÈjY ìfÛ’­!¥ì“sR ò~”4s”´«Ò£¤©ªÅ®u{)ÃÝö¢Rñ‘ 2¨ á¯¦Ñ BGÌrx±!™M8fmF q^VúŒ4uÄ9„¬jðVTlVG@Á:B Ö ¯NTǤ‰êÖ‘¤m "P€\”2Š3õ‹ò\“[Ô6È') 䎔òDʃ!w0À`h´yz<€®¦¶ ø+<@¶ã<@à¼Ê¥n‚ºr¼Ò60`Ñ´Üïêïbå=Þb0øw„w?x7^wxoÏð.ç;Úc^Q-xË–Ê.lv*{?#jC¶ï‚· ?F.L~›[/döŠVàúªlEóFÿpó¹ŽJâåt•?jáÖ3»kËcßØÉ _ Ü•»ëÞ)ÃËsÒÇE’îðœä‹(?`O.¢Q¤!¢ áÐgÂÅE’!p™HBD£$)¢Q:b$;b$£LňžD1€2Bî¿ p´ÉI› PS/£) =2™RQŒ *@`)‰b$(JÉ„EH>”‘ÛÌt ùP’˜úƒÈ‡ á˜|€G„?•gb»ÿ,>ïstÿýÉçùÀs{@÷Å.`ýA§Þj/fB%«CÁg2;Dödw ¬Î>qD¦“è€-uð‹N¢c)ªÍI'Ñ,:‰ùIt(Îýn",$d&÷<¸If³›d1»I†³› Ô7Ga‚GXÍ`pP Î<º¶”È][žû¶¼ŠBLQ}bŠì£St` ‰Ž^ÅâÑ 3×ÈdF/ÌåCx™ÛÜÚ(Ä%BƒºE[HI„jD¼U_¼†\¼)gÿ°b#Få[dò-Få[ÏÊwpŽFåá¡ÀÔ­ˆÜx9÷MÀ®¸S| {S¥Ž*˜“üˆOr6Ñ]ŠÌ¶ö)?:ÏK¾ŒnJ¹4°jéJhXÖôÔCëîIØD×t+uOS?·JM'ë—êŸÓ;€ÂýºS\¬š·œÄXIP2()Ê%¤R@ê Q’‚:g»Öí ¢Ïi=Còˆ>—ƒP܉ӿã=<âqN#ïHÉÈÿ½c0i¼1S÷á\ Èë<ìàuNr‘¼~N¹¿DrÊò%’Sª/ê\AÉÁ@sAƒDeWSJ°mPZ09þÅèø×Ô¨‡¬ÌÖ¤âÎÇ ¬ ­45âõN†Èx. ¯tæ£'Üñü¨%´ê¥ÃlDµáZFçähÉK‹Q®¤ÎãÛO—»Æ¯üóÏŸ}ùìû¿œ¼xñ ˆÉŒÅ@„á-;l6>OºÙ²6ÈšÃ=Ÿôæª{ ÄÂÙY þ®ªéѬªÏáNôI*)rŽ'-&{¡Õ”3ËÚeðË„æ'» JéUðÀŠ“åû/šÕ۫к(ƒøQñU±,.6ïÞ-‹·”án¶ÅªøWñS±.¶W›bw½Ü]7ÅÏůÅo»d¢ó‘ Qž^/ßR¢½«[¥j¡ùi®Vˆž®®! "ÄÜtëïËwÍ€ží—׫‹'ë·× z/V»ÂÎáºxµoÞ}㢛Œ´WL«)Á“»I $wªˆ'wªˆ§H „æy¶Cð<Ý!xr7¡§BˆíP4v½ ºÏؽ‚L¦ù0¦I„ØuÜ4‰˜ÁB¬,» ÷!©ø‰å[Â2¡÷˜˜Ÿ~vò@ãϾëŠ9ïcÃÚAÄq‰¶¿Â))GÌ©âІŽ(ìn T º\íÞ_/;üŽw‚áËö!ÂåŠõÙ=ä2vï¢â@v'Ë6Ëî ×Oοýúù¹“§*C5°²~²Þ­Ò„tbùÖe_¹–}ïz íªbÝ  Êðî›ó«ª#¢¹ä$›}lƒÏ Whˆ²eÙ]\ˆkØžQýÅÉW¯ž|‰áÏ:\=‡êà‰æ˜Ö}LóC͘„(HÖtM­FæÔæÕñ‡ri:ËrèeèòXstQ4Eóï›åuñ¦Ø›uS¼§ÂÔuófﯶôVñþúfWìÙL˜¤qÆ¡E˜«Òt‰sº¤=Ô(MJiñ]»\¥ìžžœóò&{õ}.²zà¬"²pOV(}Ì“éÿ¹Z”­ÅPr|å’ëš‘^×Ëý~uÑì7ï3RLjJx°™4Dÿ¦ÿ.JÅ¿8XtÏ¿ýâôü‰¿#»j`ŸG¶ly À>¬ðýÞŽãÅýŸË‹Ÿ¼ùnµ¾Ùäa¶’L\4"ÉAf"'õ(}°(«£üKÚ6$ÆŠ>³“‡#:«¡w`qîèíÙ¾°÷œ½¹Šžë)wU²”ä2¥n±XÙñ¥eÇ—–_Z¦Ô-üe™j—”ˆJidö2¯ ™R·˜=–(­+T' :i•R·´W+¥ná’«ä×cv•üzÌžRÚpÜEJiS2"¥´ádˆ”Ò†61¥-©@‘´?,Ëa å°DLgt³ÙŠ¼ì˜¼¥ÑŠF 0P$f²5í? ÐǦV1]a´˜Å¶nc\h`è˜Ã®éXȤnyF%&°k@Ð&°»™7Ýçv©G3oÏŽ2¼”62|¸>"Ç+ª¹ðFRÊSÖ1ášÚíÍÁ2A÷i8òx|ì|̉YæO3=¤ýIÊÜi…W¬øúìY@î“ Š•ü­N—?¯./šßšíßÎA‘ÐÖµÅfûöcÇ!Ÿn¶—ͶõEO\ƒ3Wê>£}n?’¿•b¦Ô I'«zaàÁ$%¯3Ò?_­ŠÐ¦¶ê™K-‡MT.³¬Cƒj-&6¨ˆ.Ë”ŒŒ ŠäcƒôDhh‰Ð0ŒÇW(/iC£r@Û'¨Ñ3* …kš>Lâ*´­lý‘êoÐ&URÔÿÝjÜtÅíþE6(à*ß±’*n”#ŒÛW¨\·¯.²í+"Žv`•Ž8,ÎC[•ã;EÄw0¬H•½¼˜‡þ"–ùÈŒ—ùÈ8¤Vjóý/ÇÍÀzøà|îÝÎøûÀžÎž¯þùZ÷Tv®ãktÑ/ê°³F›ØY†©+ÌuË^sК8À hØözàú {zX‰pÖ±´¹ö6×^"+B0²‚a·˜ÆÌv±Í•1_VZ¤mùI›`¾l“Í—ÄnI’æKZ„Ïv½ååJç<Æzy±6]Été“¿"ƒÕ“A#n€õ(3N–™G'ËÌ£“eæÑÉ2óèd^#“eæÑI>æÑ ªöÒ›°N%Ën 3µº·ŽjG^²môAÀ2~w¼Û¢8;SŽóKždk'Ýâ,}¦“í×”±ŒRÑ;‘%Sq¶e¼k¡¡ÄƒWj1í,ãÍm9¨RÛî•hý!åÚ±Ão<äh§ÐÖ‘™jm8R©Öíør‹º[F`.p×8ÿn‘ý¡÷t¬‡×ˆúƒÅÍjàMhÙ»ÇÍ·1û\¦h4d¶&‚åÙSÇýbä ȦÂûÞiNdg'p^Q††¹C"Ó¾à^ Yä.ˆ¹ "Eî‚LU›³ú²s¿¥ÈÜo)ÆößÙ>=xåyöÓ )æô©+1»òqª8·%èH|j ¿EÕÕŸ]§¶d-u,C¿N™€nˆŸÇîyˆNUÚ ®ÎHÅ…Œå韰<£D_Ðcg”L“!ßÛýÜK†¬ë½¿÷ î¸ïèþÙ‚»æî”84 ÇýÝ€>Û»[hóxü¾[hoó‰>t-ƒýŸ‹ GÕù0|îm±ìžlÀÍÜ–°gVŽ?ÿŸï˜-ˆ…?p‘fIæféVrŽHš®¿HÂÂ>!xTf’P1tOßÓt*3ôLòV¦Á] =&e–ä“2Ó02}ƒ“—v*„j郜{û«X\¤ô¤ó:p,dKà‡-úÈÀ~·}¦}׃j&£ê|ÅhøòøpGy»xºw]è¨äÞ\Zn.ÙÖI¯AmȨ`f¾ HÉ­n>k°ãðá¿ ¨ç™unÎÿêÛ€ÙÆïç§’óM… ‰Î¨nÉ%`U§Âuºzó¦3LÞïΩ!ÿ ˜rš—6‚6…ëå2I·¡¼¯>k][Ú£èUÚŠåQ˜+o´<ŸyþòÆ)þŒÈ£Q0N…XeéOÜ}¼»ô'MQ“Óþ¦ôêkwêׯykî•n-½¾í/Á‹NX„l-~ë…Ç¥x!òÂÓúÏ÷_\ÄvX½ïO Õ·¡¸l¡êÃãüIgÏEµòVÝYs‡tg½»˜—ÞV'ô;›¬¬7ÇnŽa´õ–7PÅ[gdööÕÔÞ´:“ZioM=”‚ÎHhèý·œŠgÞ?ó~ÙMÛXh†²^)zeè}§6ºn6úòP¸7„žÆ;í…›Ù²Ú% fp´<©ã®­C©Ú%Ÿž"š¦›8Z4N†îãßÒ8Ñ®'Úqu˜%Žm#Wo2G-¶§ä(`ÙÂÇGá“¶°÷·›?ÐÐô¡ÌöjC_ø;ÈæÇ‘«Um#E˜×îŸ?¹Âu”£@©²%êGÿÙ$P®•&[ºi«[D¨¯ƒÒ©H|ŽVMAQJšIºÿÞå>ض žÃ[½•÷z( .¢ŒžW”òXú¿W0ff [Êx\i§€«ˆš§ßnZœô0s ‚æzQ§­Þiö¡0Ü&v]K¶ýv @îTŒÊzæVèÎDI1ßÅå Œ{¿ÓŠÊ2ÃL·­ÃsÔæ¶ž’cŽÙ½Wy_ÿï(¾¸ÝÍî(Ôà®ÝÇ×öª"°\WQÌù݇™²U‡âÀy½zn¯ðæ%÷uESÚô!ôAìL°Ò·1ÓÀÅñˆæ÷'5i¹]˜"ˆ`¢‚Çãl¹Ûg×õ}Z Hê>´%£³<ÿ£¸þz3Yendstream endobj 67 0 obj << /Subtype /XML /Type /Metadata /Length 1387 >> stream GPL Ghostscript 9.55.0 2024-09-16T10:28:44+02:00 2024-09-16T10:28:44+02:00 LaTeX with hyperref endstream endobj 68 0 obj << /Filter /FlateDecode /Length 2496 >> stream xœµYmoãÆîgÿ„"(T䀬R‹å¾r7íMÚEÓMÎH Ø÷'Ó6‰THÊ>#Èï3»\¾Èò“CqN”vvÞžyf†þa‘&|‘Ò¿þÿõö$]\ŸüpÂý·‹þ¿õvñåÙÉï¿åfÁ³Dp­gW'A„/„2‰Uja,O„ÈgÛÖÞm/ØÅryv 1¡§bÊ&:Ë yvyrÎÊj)t✔¬+š*ß´Ë×g‡ÂÕ$NÙ üªÞË•&I¹€üz‰Î9vS•ë|C?e¬ª»¢¥^ Ëß,W"ƒ€–¬ÞwQܰªÍT57*цƒçŽÍm”*1Zò‰gƒi»|0íû¥–dˆcùõq…šbez}O3~LÛ $6³‹•°‰µ™ Zß=ʱ‡^}ªÙ_ò%¹œ:ÁîÊËÑåþ¸µ–7f%u"ÓÔö6ýµ_ýmŒàÙ‰Fü£€÷÷"âßï·£Êÿ”EuÚËØŒ}±o»¦Ì½Š¿ž|s’&Æ9ÁÇPó4är!'T"3¾0=g|¹‚]0˱/Ë*o¨ôŒaÞäm[~ÔWÖ¡í‚'–;ïøjiI·áÞ /gkº‚…ÜÌV:bUŸŒ!kÁ7Ñ l·Å)¥ÞÇ=žå¾ž':=õUÔ²Œj,«Šûþ{+ÙeÞå£wž8R B jpJ]ƒÛRMS^±ÂÄ”Áø4€£ÊŽÉÚ bàÔvÔºoIžJÎö`{Ò¬ÀJ›‡Ñëòn€AQA ª~Ôk X0r¹ÐFI骀X[^Wǰ‰ü"ý j8¢¦8§Š·Zã>•(¥³àäÉ/>á1$*[€`2i}{H2«ï£ÝzùÈG)qœE† >ƒáÙ€üœd âçŽë„‘0Æ/=GL$Ï¡™ÌÉH$GÓ£bÔìÏ×cì\Í×Jκ!ls$ñL ‘tÁ$Ðç¸ùä¹KÐ÷‡ª|DHó*Tú|ÖÚüø¡z·hȰ Ã$LQ›þ4ü‹~Þé‹·ùv·‰‚H\‹‚?’m¼û¡YVEÞeÔ"ëŠ&¯:5¬LŠäx†]–+ŸôíÙÊTÿ²ÝÅ8ò!•±F`#ò¡ aʇ„_Œ¹/ßǘæõȤûG\ š/"(21ž¾½Ìç$cQ\Ó`’ ðj&òØ6tÂmÆãøq±L<ÿ P Ù1Ÿ_ÿf{»G"…Ò~rœPßl¶V(Líú›7åL×G'k2—k:6~ ¤Í Y÷{;UJfho¿Ê×4ßc÷ K¨•‚õ\<3ˆ§:I¥}ÿ°}ÒŠ!SqF' :¬"~úLU&Y‡> stream xœ½[[ë¶îóþ† ðCÊÅZI‰¢Ú¦@EïhÏ"pö<(¶ÎZ_6’“ý÷ýfx•W»I 8kQg8óÍÃóí¢ÈÅ¢ îïzS,n¾½<ºpÖûÅw7¿ý¯”rÑä–zq÷ñÆ~"M±¨¥Ê ]-îö7Ù§m7tË»Gš¯Šd¾lòºPôÕÝæ&{ºM~ }{êüŒ*ûx>8UHMÈQÙ}6v}$ì%KèlÛíž"ïOíCxçt<ûÞ8V:mǸÄyì6Ø}—µ$s»@•秧ݳE^]äª,=’$í”I(Ev$³v³éido<€ÍñÔŸ¬Õ*;¹ÕG™Ã>ÄÅr"ËŠ œ}²H®MF$H§õ§ž‘VW&Û^VYaá!ëvNÁñF0ÎðäŸÌgy߯…“Ÿ[S3X­!·ÑRš± yõž} |:ÿ)ÀHú5”¾ñ4á ¾†¤Ù €öu -D‰wû…œoñ‰ëûåš…™Á©´ì x^ˆšÔ ƒlÚÊú)§³’ ic¿U5&%l½~ÝÚáÙ/ ³w_þÓ-ÍžiSE6Âßu7U8}0¹J;lXC7ŽvjÉ«@ÛSî°” ì]•Z’}Ñp×Þ|%´U4 ‰öŸ¤Ö‹ÕNÿœ[cb¢RäF¿ÂÝÒ°†×ƒ“-{ä-пón@¨2ùº4¹ðþ ¹¹ »ÒÕ­&¯ àÊy 櫃#bÇ1]WU¹’Ê$ë’Ç×ÐÆ‰„) cé‚õM¶STÊCdÆ)•¤鹸 À0U¿ÊøÝþ5§”:ÄÞÓ€ÐEÁª å–¬±,Øõ¼Ø—%܈CzS)#Ä òA>¤’Þ‚i£ÕIcxB„äUû@ôN+ú½ïN[ÿŒëA‹œ—µ¤ ”|¼pVìbKö/°7ö“Ñ>§þðàg#vkë ä÷ü-“¥`d×Ù¦;uþ?t~È{á’=„OGì²¹ÍDÈþu\z9}º%™Ù(ic¯‡h±ïZˆ~¤d^¦Ò ­ÕÌ!¨Ê+?ó>ã° Ó³ëæ¦&ë{u]­'˜Rf0•_Xfõ`W"„NAú|ƒƒ VÆm1ûÜ™ÔdE’l¦ÌZFk ’Ú'ù k¢+U7¹.« Ÿ»uÙ{º:ñlýaÍ9Ò,ÇE.+õºçø¥8gýšRª×W¨¤Fš]›K•¼æZð«Ò²úÿª„(S¢cgà »œ„¯w_. „ÇÛi8$R63¢HÐe;1j›ßø¥†í‘­¯¬8¸Û² jðJLYV»`N’hW^D;1¿5í¬wBÙSÊzâ\øû‰FÈ\¶Vðñ …,Ö­à`iÿ>ì(×”()[²Ø‡Š¤c7Ò¦#<^GVù¹±¬Ö67Z·íù ›8ùš4ülèl7?i¤1,hYg)ˆ¯ûއð-g„Žr´6ÚQmó“»í|ö­HeéQ±?nºÝ¯Þ}¹‚÷EBqúïgc="ŒòY;äÀf݈5ÃEP8¨À‚ÁÊt;.É !<(u¤ç6Îî#“Ï™&Ê„›v°áÅNEá‚âYe7º´t^°C::ôõœÀ¤¶jïÙ€Ã\µÒÐN£Ÿ±¦“ÍÎûð3ÍN‡¸UoŠ„<2EâAi¼_þÎ3ÑÐÒ%ÑBœ6y Û_¡®m ïMYп¬xCXÑï’!¼fY`¬‰ÛäÅy?ž‘¡X`o÷K¸&®&ð­ls»°vɺ³k[:c\›&½_íºÃÃi{o¿¹_~˜*KÇX?c˜öò×/3®*‰¯ï¾E°£O˜TK§ãÉJV–‡ ç˜Dzâ ï‘ÁÀÒúD^ ñJ¡ÍÚdF–ƒ»‚ÞøuæM&þäŽùÒ¶~¾¬-:w¸,²#Õü`™ O|¡É/ý¥þÙŽRiý&O©¢3â—ÖivÖ¡ðy¡‚¿k=uëc÷ÑÖm†Uͺl¾MH\W{ö·Þ}©ìa8žŸÜ–!rË—I]Bȳc–ì\‰¯´‡_t++hY•y­Íe±æJ;Nù|ù¥ kìžÚ¡u¾Àå ÛhñO.o–àkxÚµö 6¯üx<³á§êÂOpª8¡e¨l‹oÚÝÃqèOÛ}Ú¶cä25mO„BŸnRÿp¤ãú’æŒýÆ:JríBL}ãÌQ̧ÞWòÅm;w”åO€…ÇØt´¹Kx!—2¸.siåricäÓÔÚÜh¨~Ýsˆ_·þüAº`à¨uùÃÒc2çIöÈÍž¿±#ª3eyNâŠ;xE8‡šŽo×Çónã%àÎýÎ&È3Ø éiFòé¯wÇeEÕQ ËþæµÂ¸)c ê,$º›]ÿ „n“ å Ü{¯†Øe÷å&Oâ\ õ˹<OÈKÍO(BŒùÙ=M.‘¤ èú=œ¬Nõ‘Fk¨ÐèYŠ2¯” …Ì‹Äö²J¨Ž}ý öæê÷ii”p5·¢ÊK% 5­È§ Jxdòb?—¾®ULš?÷çSî4fSÜ œµ[`°¦c'N=lÿóÝÍnHÏ‹O7Åâ/äyQ£-JÔÓ9ÂøþF5È…KFv7ïü$…\-‡|÷ÉW$!žóÓZR`qU/ì)¯á>BïvQn¦¾‡p˜¯-öë„ ™b ïRªFæå„m7ò3øÖX*Iù."Ed@9òÙ„¢¹ž"ªgê¢L(Š@Q•ù—L(ú‘ŸA‘C€˜P”‘"ã#%hRz/2#ÂH:ÉHØ€‰ Âœ"WêåÐ9‹†¨L•kל*^Â!Œ¹–¢¹Ð‚_½DC$ñq-ÁFçÞ$¹šŽ.ú>+lÕ}4y”ÀL+™Q%yåÅ‹œðâ Y ˜ œt€I< „ÜH:I7u.ËBFh?çJ!½Qp;Sk €‰¨®¦ˆªBb­„â ) 'Å"•bSd&îZfBhY™Éö¿zélňª«): ýˆÝÏb(²âA9‰ð€ˆ«Cn$DgµH0¤•Kýs0D½¹ª¾ðŸ1‘`DÕµ=†"ÅR”ob(2Qu-3ÞEýfæ]T`&Ü•ÌPuTWz¢‹¯^IJH0 *ЋøéF~:S‚Ú~’UåU%­„ì- NÒî³þÖ  ~{´'ŠßúsʘóIßBNü.£Ü'™.ZlŽÒU Ò ÏîlË.ÀE#ýFm{Ùfå5lÍè?hÜù†ˆ%D|õÈǵŠë¬/\Ót¦¦ùà³ÝÎ%–vSEÒ&M[ïÓ¯¨-Ïî|%`l¦¤ë´HáÊB²bkiœÊ„ÊÔ¡ŸÄáEÍÝò¤w59Žp´­«Ó°¬øÊòÒÃødOç!9d²îçfö˜«ãÁ0 º°Ïë¥oÅP CçÖý‚cÏKHîW°&>ÚŠ…±Ý¤Áo$ýrÓžZ?nôøAñ%W^Rñ%(Nn³ç%ïGÁ„ŽK…V‡½¡“aÓfü\]f¶¢*‘Yè—œÔë•ø¼ŠØ_wçýÁß.%}†j€Û›š[Xú‡Ú›Ú5áH¾P÷jlú_s·ÏX#ãWX͵šíW¨ºNó&Ú2¶…/›—e ¤¿ç¥Þ÷n?Ìê_HrHx\0]CWŒ >+Ë|é<Ä#3ßðõ´Þ2o{P¯p»‚÷Ϲ]œ^2OÍ‚oÆhQÕ™ãúñÃm¿¯ð¨\KŸXç|C „++=íH«‹Žôü 7·Ë‹hoÜ¥ŠÇþ?ê>ÕËKnoܨeŒú‡oTii‚îܪWYáU¾1öúªØIzåF•J·O—¼£öÇ¥»ï}%ük×»çÄÏ^è-ÃÅFÿeÒ¬¥ÿó0oFæªòý4 (p5{ui“–b  ’5]›*À‹ÅeRRüçæM8l»endstream endobj 70 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ37Ô³´T0P0bsC3c…C.=aŒä\®B3K° Paĺ@ÆfÆææ¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚;? jħ88¶È$² ”ͪZ7«0óµÚŠé†&æÛ$­_6Õþ³êÿÿ[ýÿÿÿWûÿ¶Lžä/ÔðÿSÖd_.WO…@.Všegendstream endobj 71 0 obj << /Filter /FlateDecode /Length 255 >> stream xœ37Ô³´T0P°TÐ5T03V03QH1ä2Ð30 !Œ‘œËU¨`jlT032,X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[àxÁró„‚ÌÍ1 _¯ÛeÊþ¢Mò@­Â_›ð½ÕÿÿÌZþý۵òí›WdF HN aêVp8bP‘ø°}BÂ1Ç]=m=Íq;Ì›+?˜/û¸}ïÝÿõÕ±Q·n\“Pesº*sV+17±µM”MdÖÇ‚L \®ž \ W…endstream endobj 72 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ37Ô³´T0P0VÐ5T0³T03RH1ä2Ð30 !Œ‘œËU¨`fjT032@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPÛÉÆÃºlNùµÕѾ)ž2ç}ýŸ½·þÖûøo»¯ÿ]GçOuüïø6.WO…@.œ.Pîendstream endobj 73 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ37Ô³´T0P02VÐ54V03P040PH1ä2Ð30Š!Œ‘œËU¨`lfT0446iº`&PÚÉ“KßÓW¡¤¨4•K?¨–KߤKß)ÀYÁKß%hp,—¾›¾³³`c£ï ÔϥSš›W ÔcgÇå颠¶pÖ–×ÜQÜÞÞŽ™Pºt鯨ø¥×öf_Û[·7ûú¿½õ¯¯ÿÿSúÿÿÿïj«ÿÿ¿÷ÿïûÿ÷þ¾ÿûHÜ»ÿöí¿{÷«¡€??ñí=¹o ˜¸\=¹—ÇYðendstream endobj 74 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ37Ô³´T0P04RÐ54V0±T040PH1ä2Ð30Š!Œ‘œËU¨`lfT0446iº`&PÚÉ“KßÓW¡¤¨4•K?¨–KߤKß)ÀYÁKß%hp,—¾›¾³³`c£ï ÔϥSš›W ÔcgÇå颠¶óÀÙåâ|¾Á·oß>\ oßþ»wÿíû{ßßû$þßû$þßý¿^ÿÿ·ÿëëÿq[_} $bõ/]ú««[² 6L›6mJˆ¦©wƒ—«§B ã¢`ˆendstream endobj 75 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ]Aƒ E÷œ‚ Ø€M ›vã¢MÓöƒa!ÄEo_í¢‹?ÉcæÈ¥¿öÎFLaV/ˆØX§,óàFëPM±¶*š¤Gär“þýñ€Ó˜Âw9y6M“ŸêbR³†ÅKAºPWU¢3F pú¯u*†Áì“´Eœj‘ð,Š8…„L‹,ÊX•3‘EyÕæåÇšíŸ-ñ«5p1Ÿ•coi­ƒßå~ö› '¡/ -]Xendstream endobj 76 0 obj << /Filter /FlateDecode /Length 227 >> stream xœ3µÔ³T0P0UÐ5T05S03QH1ä2Ð30 !Œ‘œËU¨`j`T0²@< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶àÎãƒRÍŽ/Î$>db“›\á¹—åÞÚ/¿Â—üºï¿ö÷Ëúª¿ö¿îÿ_ÿøø,æüÿ?Mãþÿ÷ýCt}té¿[聯nÛ™»tÛ4iΓ ›¸yœs³q1(0q¹z*rDzOWendstream endobj 77 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ36×31R0P0bcCKS…C.=C aŒä\®B#S° Pº@&f– 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú"i~[[ûÿÿoÝ:Ì-ÿ>qV&ÿ3k:ÿïÿØÁ¿ys¼ î7p04p¹z*rSÐLendstream endobj 78 0 obj << /Filter /FlateDecode /Length 165 >> stream xœ36×31R0P0bc#C…C.=C Âɹ\… Ff`A2 ËÔ¬ÀÀÀÈÈØÔФÆÉ“KßÓW¡¤¨4•K?¨KߤšKß)ÀYÁKß%hz,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+ê±³ãòtQP[ÐvdšLýÉ•ÿ÷ÿ'ü›7ÇãÀý†.WO…@.y¼U½endstream endobj 79 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ37ѳ°T0P0bsC3c…C.=C aŒä\®B33° Paĺ@ÆfÆææ¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚g‡Y,ò1pxÌa£|¨}ýÉEYVœ{¬Â_Ú½Œÿ²>^º¶þÿõÿëÿã¿2_.RP4þ€…ÁËÕS! wóV¿endstream endobj 80 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ò31T0P0bK3c…C.=Âɹ\… &Æ`A * Èu ŒÍŒÍÍMAjœ<¹ô=}JŠJS¹ôøô=€ª¹ôœ ¹ô]¢†Çré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g›$§lbâ3h¾x¨Š³d²ÚRïvï¯wõ/Ç­­e_ñÿëñ¿õÿ¿þG¿ªøT$ì01(p¹z*rG†Hendstream endobj 81 0 obj << /Filter /FlateDecode /Length 245 >> stream xœ35Ö34S0P0QÐ5T0±T03QH1ä2Ð30 !Œ‘œËU¨`bbT032@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁN‹¢wÎ×v(\縠½øÀá/3¾ÔÆ{¿üZ·ãþÿïûßïó þ-'wøæ žH)£âmü‰ÛÛä¤îi;8“gmAy{s~ÝíûßþïßuíßÚ¼µé“½f{ç¨:6+jnäjæjœÂô€‰AËÕS! '(T|endstream endobj 82 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ35Ò31T0P0RÐ5T01U°°PH1ä2Ð3 !Œ‘œËU¨`bdT°°2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁ†üÿÿÿÇÿÿ[ÿõo}üõØÒCcêÕž9¸ÿ?*øeüݲÿÿõ¼½e¯sË.ÝHÔí:ÌÍ&ÂàÀÂåê©ÈnqTendstream endobj 83 0 obj << /Filter /FlateDecode /Length 258 >> stream xœ33×3Q0P0WÐ5T03S03QH1ä2Ð30 !Œ‘œËU¨`jaT032ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[à¸Àä„m…ãCÉ.¹>æöÍU¾/Í—Ü›\ûGºª>÷ÿÿíÿÇIÄÙÿÿÿDêÄ Á Ö³xˆ·øÉ·pÂKš¾ì­Û«ïýß›õÿŸºý_ÿÿz[”µú¯þýk·|×=Ô¿í¹e›TØŽÄ&ήÃ"×$|²‰08°p¹z*r‘(\endstream endobj 84 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ]Mƒ …÷œ‚¨4jL »qѦi{„Á°⢷/ŒÚEä›™7?Ãx­‰´x'_©6VXÝ$Ð fcIŨ22„¯\„'Åpþýñ@Sèïbây¹tªv“t V/$ag }Yò^kNÀª¿T½&}T6G±¶žxš£X›‚ ;ŽbmUf”•²mFà(Ö$KžuvÍcóç¾Tn!€x%^‘—7~áÏ.šD¾þ`®endstream endobj 85 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ñ34W0P0VÐ5T05T0³TH1ä2Ð30 !Œ‘œËU¨`bnTÒ@-@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¸VS$UÿD*s߸ɦþ ñ‡{›|‹€ùKó—†Õ/Õí÷þïý?þ߈ Óøýÿûÿ=îïÖ»e[¾]Úcpi.sEbSŒ!w3«#ƒ—«§B  Ueendstream endobj 86 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö36V0P0VÐ5T01P01UH1ä2Ð30 !Œ‘œËU¨`lfT01ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Ølàáð¡O ÂÃàËìKùÞ—ò£_~ý²þþßüøãÿ,g¤Õ?¹Z¿ÿþ¡Û¿îíŽÝu·ìÒmoÞ–m ’Ä$48¸\=¹³#Aáendstream endobj 87 0 obj << /Filter /FlateDecode /Length 252 >> stream xœ3±Ð37U0P0VÐ52T0±P01UH1ä2Ð30Š!Œ‘œËU¨`bbT032Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\Á­ØÏ"Ç!á.ÝRqØaš€cW”¯­úÚœªÚüå×þƒÁ÷u׫ޖ¯Ý²ÛÛM ‘õB’Ø‚ƒÿöÿ}ûýTÃÑæßä¤U¸3´/qtù0!ù¥üËÿÿß:9¨é¶w®n›Ða… ›¸yœN$t04pp¹z*r\¹ZÍendstream endobj 88 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ñ34W0P0bSC3K…C.=C aŒä\®Bs° Pa ĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;Þ䟦v¿ÿÃÀO¡:{Ž›ì/î/­›ü+üëÇí×ÿÇÿÿú,›ã·Ì»íC—«§B ÇÇSñendstream endobj 89 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ32×3°P0P0b#S3s…C.=C aŒä\®B#C° Pal–70045µ´4)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pVr\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµÅfBõËÿÿŽo³ÿÿÿ§üñOYµßÿ£¿skX¸\=¹•f?_endstream endobj 90 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ô31S0P0bK3K…C.=C aŒä\®BS° Pa ĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;^埦v¿ÿÃÁ¯ýÿoè'ì¿~}Á^}ïK_@Ä×ó—¿~qìÇê—¿òWÿöïïßýûëóßßû÷ïË~êAš‡ë°08p¹z*r`Uµendstream endobj 91 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ32×3°P0P0b#S3K…C.=C aŒä\®B#C° Pa ĺ@†F¦FÆ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ @ŽK4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ØÎðϬùµÿñ/Jy?02p¹z*rNZD¼endstream endobj 92 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ³0Ô32U0P0bsK…C.=C aŒä\®BsS° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;3Æ3›³ðØJ+\ÜÄÏ¡vˆs§©çáê%/í^F…½~ìØýÐÿ_ãÿÿý ¼\6Ço‰÷D=éÿ˜¸\=¹:hUÓendstream endobj 93 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ35Ñ34W0P0bSC…C.=C aŒä\®Bs° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Úb;Åz¥¾äùúM}7ùÝÔ¿5¹_ÿ_ÿÿ·þ?x¹\x备û01(p¹z*råßHWendstream endobj 94 0 obj << /Filter /FlateDecode /Length 207 >> stream xœ3±Ð37U0P0VÐ5T01S01UH1ä2Ð30 !Œ‘œËU¨`bd*2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[pp†! ?ÇGö‰*ß—æKîM®ò}]ÿÒ|íÿ˯ëÿÿ)ÿÿÿÿÉU×ÿ®ûúïë­÷±ë¾n›v+:3q‹ØÁ¦ˆ$1ÇÎ, \®ž \&F}endstream endobj 95 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ñ34W0P0VÐ5´T05T01QH1ä2Ð30Š!Œ‘œËU¨`bnT032@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[l§9ÃÀ ñ¡´D‡Á“+Õää„kr¿Ü¿ü÷7þÿ¿ý?|ÙÿÿÒÿ××w}Ù¿îBŒ`Àô ‡â$Yß8}HØSQâ§pê#ƒ—«§B ‹ÕSendstream endobj 96 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ36׳4R0P0a3…C.=C aŒä\®Bc#° Pa ĺ@†Æ††Æ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú’ç3 Í·}J¹òR÷ÒûøøËñ[ÙÖÿÿ¿øÔ6Ú08°p¹z*r]<þendstream endobj 97 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ3¶Ð31S0P0VÐ5T06U01UH1ä2Ð30 !Œ‘œËU¨`lhT012ŒX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j yY¹Yx ú¹¤^¾´›üêoáþ÷ßÿ~8æüÄ élâ¹Ã7ª+òÙ>q·O¸Pccö¾üþþïa{£nW{'âjX!¡ÁÐÀÁåê©Èó¶A‚endstream endobj 98 0 obj << /Filter /FlateDecode /Length 187 >> stream xœ36׳4R0P0RÐ5T06V03TH1ä2Ð30 !Œ‘œËU¨`l`T032@X×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶ õ°üÿ¯ÿÿÖ½þõ:wKèã'W‚öÿ‡ƒ‡õ`ªôný®·×³Û.map`árõTäjGžendstream endobj 99 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ35Ñ34W0P0VÐ5T05T01QH1ä2Ð30 !Œ‘œËU¨`bnT012ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[l'y¾'Ånþ§¬"žàò»ÿ1Á×ÿÿã¿ÿ޽ØòÛë»W ïÃ6¡‡]ú÷08°p¹z*rVmIendstream endobj 100 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô31S0P0RÐ5T0±T01VH1ä2Ð30 !Œ‘œËU¨`bfT012Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQPbú¯¶,€‡éîë[÷Ýöþ÷÷Òÿ­÷v÷þw½ê®þïØ×·ìÄèÏþŸýmÿ·L \®ž \²/A`endstream endobj 101 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ô31S0P0RÐ52P0±T01VH1ä2Ð30Š!Œ‘œËU¨`bfT032Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((1ýW[ÀÃt‹G÷õ­{»c_ÿ»^õ?Wÿwìë¿[ö¿-_ÿíÒÿ­÷ößö 'íÿ¶?ûö—ý_ö{¾¿lJüÒ_!›²&Ũl“ðæ “`dàrõTä¨M·endstream endobj 102 0 obj << /Filter /FlateDecode /Length 164 >> stream xœ32×3°P0P°PÐ5´T02P04PH1ä2Ð30Š!Œ‘œËU¨`hhT0²2,€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½Ú¹ôósJsóŠZìì¸<]Ô6nç°x¿gÖã:û»þ__[u}mÉ–-»8¸\=¹šÄ/endstream endobj 103 0 obj << /Filter /FlateDecode /Length 212 >> stream xœ3±Ð37U0P0QÐ5R01U03SH1ä2Ð30 !Œ‘œËU¨`b`T0³2€< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[°s†> ?ÇGöÍžíKîû/¹7¹þu­ÝöÛÿÿµÛþÿÿÙÿP ¶:þÿÿ¿ë¾þÿ}ýwfý¿[Ñ׳·M»‘˺áPD’ƒ —«§B ÎÅO endstream endobj 104 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ3±Ð37U0P°bC33…C.=C aŒä\®Bc#° Paĺ@†–ff–¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÇ‚»^7=ØxÊF\mÁüÿ¸Àå˧¤þ08°p¹z*rˆFendstream endobj 105 0 obj << /Filter /FlateDecode /Length 224 >> stream xœ3±Ð37U0Pa33…C.=C aŒä\®Bc ° Pa ĺ@†–ff–¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚g Žå$ªXx_š/˜})ÿö¥}ó£_þYþHñöýúŸ¦ž¹…_}]¿téµ½™™™¥K—.]°e×% àö^úRWßûÒ—é^[¦;ÿ-íúÁÐÀÁåê©ÈO Oendstream endobj 106 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ3±Ð37U0P0b33s…C.=C aŒä\®B#° Pal–70045µ´4)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô\Hð_· {ôãöÇM_}éë¯/«þVÁ9¯_Ö"¸Ç\‘~rŨ¿ó?pØ4sýg`ärõTäø`Mdendstream endobj 107 0 obj << /Filter /FlateDecode /Length 239 >> stream xœ3±Ð37U0P0QÐ5R01U03SH1ä2Ð30 !Œ‘œËU¨`b`T0³2€< &°œ“'—¾§¯BIQi*—~8PŠKߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[¸á‚Š@…ãCÉ®/æ-ÍUœLš_šÄW}Ù7ýß䨭—þ_úý—ù-ü‡Ì ;²}™QåûÒüºtiõ÷¸ûãÿÌZÿÿÿï÷ÿ¯ý__ºÿeî¿iws—n›v+šGµM1±µM„Á…ËÕS! 1 U¬endstream endobj 108 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ37Ö3°T0P0bs 2TH1ä2Ð30òÆHÎå*T033 UÆ`yCc## 'O.}O_…’¢ÒT.ýp z.} b.}§g å 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-¸#µòÿK0|±ïÿÏý_÷Íÿ›¿üôËÿ—ö×Yÿ¯Hôÿ¥|°èã¿v1Fû_ÆïÿþþßäúÿKîÿiþoîë—÷8 æ8NÈ[ÿ‘A€ËÕS! þJ[endstream endobj 109 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ37Ñ31S0P0b3K3 …C.=C aŒä\®B3° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠Ê0íÀ“+©ŒslLxìy$þ®»ßöïïßýùÿóßßÿ¿~ÿÿoÿÿÿßÿ¾þÿ·?þÿ××@øéËú—UqÓ—>Ôç¬pL4ðR™ÂØÀÈ Àåê©ÈiÅU:endstream endobj 110 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ33Ö33V0P0b3 ²PH1ä2Ð30òÆHÎå*T055 U&@¬ TF¦ÆÆ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹ë§,£†ÀÃ÷Û¿ÁÿÛÿÿ×ÿÿÿ~¿âÜÿÿùÿÿÿ¿þß¾}âýÿg6ÿ±ß¿ÿßxüþ>´˜8õƒ—«§B §lQüendstream endobj 111 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ37Ö3°T0P0b3K3 …C.=C aŒä\®B3° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠rø¿Úb¶@…‚C<úÿ1ÁãÿÏ.bƒæN ™É¼ÿ¹\=¹ýÝU+endstream endobj 112 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ³°Ô36Q0P0b 3 …C.=C aŒä\®Bs ° Pa ĺ@@`djl RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜6-]¯¶ø;Ï®Œ]ÜÿÿÿݲÿÿmïÿÿÿçêS‰scýÿÿ·¾üÿﻞ…ŸÃbV3G›èÿL \®ž \?týendstream endobj 113 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ35Ñ34W0P0UÐ5R0±T07PH1ä2Ð30 !Œ‘œËU¨`blT072LXÄÊ9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j › "²[ä[j®;2× 8n}¹ß³ßókÝüøûëÌÿþÿýOSŸê÷‰¾e1}scëV8X;ᛜDE>Û'É#)"¡Nó³}¿}¿ö7ïÿýïÿ^Ûþ5»4;ÓOmÚa¯f^Ý™-!­Í\M  \®ž \ö.Uxendstream endobj 114 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ37Ð31R0P0b3s3 …C.=C aŒä\®B3c° Pâè‘©±1H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³‚!—¾K4ÐìX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶#þÏ?þ³Ø&~ÙöëþÿµÿÿÉÿÿÿiçÿÿèð,`y‹œ3SýF.WO…@.„N¬endstream endobj 115 0 obj << /Filter /FlateDecode /Length 251 >> stream xœ340Ð3´P0P0RÐ5R°´P0³PH1ä2Ð30 !Œ‘œËU¨`ijT072Œ€XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.O-F®†ãÿÕ–83=1ÐãN4hæ^6#úýßÜíÿã—Mÿÿ?cWöþëÿoÝzïÿ?»îËËúÿ÷·M^úÿÿïL3 ìÛ%·âÿÿ¿µm÷u¨ìßïï0d}×ýÊfïµ­ÿSþÖ0þÿ–ëÿßšþÿí[ÿßU.WO…@.•t¼endstream endobj 116 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ3±Ð37U0P0QÐ5T0±P01UH1ä2Ð30 !Œ‘œËU¨`blT012L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÖ¸‰CNð`{ ‡ù‚Ù—ò›óý~çÿÿ»ÿÛƒ=õÿOd\Vlœ¡Ô~ÈX¸E¼E|é˪¸éë¯ÿŒÿýÿ­'W[¿û.Ýõï†çÖÃ< ‹65°™Gƒ¡ƒËÕS! ÍÆM8endstream endobj 117 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ35Ñ34W0P0VÐ5T05T0³TH1ä2Ð30 !Œ‘œËU¨`bnTÒ@-@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-¶ãMþij÷û? ü«°ç¸qø‹@âƒÂ5¹_kÍ/ÿýÿöÿ÷ÿûïCÔ¼¾þý_ýßÞ¯·>è*ÙµEÜwé“]<M/;"šY¹\=¹ÆñUendstream endobj 118 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö36V0P0VÐ5T01P01UH1ä2Ð30 !Œ‘œËU¨`lfT01ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ppF„B…{›œ€ÃáCæKî-Øåùeׯø_ñ[W$VüüÿÿϬõõû[ï—nÛ]ºm÷ÒmÓ$uÛ"’6$,`bPàrõTä¯nAendstream endobj 119 0 obj << /Filter /FlateDecode /Length 356 >> stream xœ]’±nƒ@D{¾‚?nÏ–¬mœÆE¢(ÉÀqD„q‘¿ÏÌb§H1Hvæ–½-Η—Ë4nyñ¾Îñ3mù0Nýšnó})ïÒ÷8e•Ëû1n²g¼¶KVœ_ÛåëgI9 Ò°ó[{MÅG]íUµ›âܧÛÒÆ´¶ÓwÊNe©§aÐ,Mý¿OõÃÑ RuW¨+ÍN5œÐ+5…èÔ ÄFMÀ#QÔì€ |yz6VܰïL@+>¨ Ø{59ßE ¯Õä‚§×#Æ[”o‰AM.œ)v®g² _±ž=£1²Gñ AŒìQ‰èÕä‚p‚T±dX€hP¬IX€G5¹P•ÄNMøÊÿ Ul°ÂY þ†r"VœÔäœePÞ€ €<7 £`]•üý€±]y ¢Ê5ìWþ¼[Þ>÷è¹6y¼¯kš6[6[&îÐ8¥¿}\æ…®Ê~ÄVµ;endstream endobj 120 0 obj << /Filter /FlateDecode /Length 221 >> stream xœ35Ô32Q0P0VÐ5T05P03TH1ä2Ð30 !Œ‘œËU¨`bfT032ŒX×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶ a‚ªm}í'^ûÿ 0á¨Â…?ê/ª^,ØÅ!ïhï¿ä¯Ý~ÿõ×ÿÔÖ¥¿Ÿ\õoïï¿ëgßz»îÖ —ý݇.o½Ú&aÐÆ ÀÄåê©È.NÏendstream endobj 121 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ35Ô32Q0P0UÐ5T01¡C.=C  Âɹ\… Æ–`A3 Èu ÀrNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb ;;.Oµ;ØØ(|ù0o^ÛüéKµÚ/¿î›¿þýޝýW~˜ZšÆÿݯovù~þ­ÛÞ‰­7u»nÝ:ÌÍ£#¡ÁÐÀÁåê©ÈèM@mendstream endobj 122 0 obj << /Filter /FlateDecode /Length 249 >> stream xœ35Ô32Q0P0VÐÒ¦ && )†\z†@Q „1’s¹ LÌ À‚ f@†1u€%<¹ô=}JŠJS¹ôÃ*¹ô=€Ê¸ôœ ¹ô]¢¦Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…Í68´Q8T%uÑRà^Ú®2±ÉÉ—ÿ¯ýò¾í¾þwÝ­Øu‡9 £bK߈ef}ü÷ßýšÕ¬ofð'>d_ðåç ÁK ‹æ(Ü[ùx P欭·Þ.=̽áP´bK´èÖ61‰ˆÄq%&.WO…@.1š[endstream endobj 123 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ35Ô32Q0P°bS3#…C.=C aŒä\®Bc3° Paa–700´0177)qòäÒ÷ôU()*MåÒªçÒ÷*æÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔìlH¨_þëÄäÿÿŸK.ÿÿû‰áTðÓ)°<(k ƒ —«§B @ºendstream endobj 124 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ35Ô32Q0P0UÐ52V06W03RH1ä2Ð30Š!Œ‘œËU¨`lhT°02@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬ä¸DMåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j Äê—ÿ]˜[þÿE–Ìë÷>±þG¯×Ÿù'YuôÚ6¡®É!Û¶mãÑ`hààrõTäò®Eåendstream endobj 125 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô32Q0CSC…C.=CˆŒ‘œËU¨`j`Qhbfè¥ A œ<¹ô=}JŠJS¹ôê¹ô=€J¹ôœ ¹ô]¢&Çré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ;,o:µÀ±E&ÂG]lÞÆ¢¬¾5m?·ü ýrùÿ×øÿÿÿ‡þÇ žf*œäˆÊüÿ_m¥É.WO…@.¼ÂR1endstream endobj 126 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ô32Q0P0SÐ5T01¡C.=C  Âɹ\… Æ`A3 „u ÀrNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o n.}çüœÒܼb ;;.Oµ…ÍGl¾Ÿ¿#Û—Ù/ÁèôËÿÿ4÷ÿÿÿïʬµõ·ÞÇ®ÿY¶;3wé†CÑ¢[·nmãap`árõT俬C¾endstream endobj 127 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ35Ô32Q0P0b …C.=C aŒä\®B ¤XÂ0b] CcCCc'O.}O_…’¢ÒT.ýp 2.}0éà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææÛÙqyº(¨-¸Q´ŠE&ÂñaÉ+ßP9§_¬„cM/|½ýëÿëÿ¡à)ãÑÿj+X¸\=¹Ú<<”endstream endobj 128 0 obj << /Filter /FlateDecode /Length 214 >> stream xœ35Ô32Q0P0WÐ5T01Q01UH1ä2Ð30 !Œ‘œËU¨`lfT01ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èÉ–{½ÂùÐëõê U,__ÿûÉU³Éj®°DêÉ|ØÞö!ñ‰øzÅ 6]‰{ÖTl{ÿ~xØ6¡fÖ®•O¶‰²‰ÌZaÀÈ Àåê©ÈZÜCÜendstream endobj 129 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ35Ô32Q0P0RÐ5T01Q05UH1ä2Ð30 !Œ‘œËU¨`bhT052Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j žtµ­ÿëæÔ«­L±ÿ?Y?_þÿÿßîµ×·>l٦ͣcÀÈ Àåê©Èàw@üendstream endobj 130 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ35Ô32Q0P0bKc…C.=C aŒä\®B3° Pad–C3# 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmç …¨Ì£ËO®òÍ5ø‘WöÖûøo»¯ÿ]÷õöÞz çÿ¶éÿÇ·þßú;:€‘A€ËÕS! àD+endstream endobj 131 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ35Ô32Q0P0VÐ52V0±T01VH1ä2Ð30Š!Œ‘œËU¨`bjT032Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­¸" ±å­Ý¬É!³NVòüÝõ·üÝÞkÿÿ.Ýÿ?3ÿÿ¶é/ý_÷éöÿ_w}ÿ›ÿëMø¿ëÿ®¿ÂÓ_Ï_}Ýoo­>÷ÑÜÒ­6jà`hàrõTä3TÊendstream endobj 132 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ35Ô32Q0P04WеP01V0³TH1ä2Ð30Š!Œ‘œËU¨`djT077éº`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmáÂD«kÓ¦5]×q[¶¾ŽÛúú+þ¼þÿÿß“Cÿÿû‚ïë¾ß~_÷ äîÝ}ÏëÀÂàÀåê©ÈäLÄendstream endobj 133 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ35Ô32Q0P°PеP06Q0³TH1ä2Ð30 !Œ‘œËU¨`djT072,€XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ72Þ=¹j»Ç|;ì¯~û}õ÷ý øÿ{ý X·ÿÜ~ Üú:nËÖ×±º@ £ºT4Tm…C—«§B ý&Fendstream endobj 134 0 obj << /Filter /FlateDecode /Length 143 >> stream xœ35Ô32Q0P°P0´T01V02UH1ä2Ð30 !Œ‘œËU¨`lbT0Ò@lhi–ròäÒ÷ôU()*MåÒªãÒ÷P0ãÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠ:ìì¸<]ÔVº~ÊšÂàÀÂåê©ÈÌ€")endstream endobj 135 0 obj << /Filter /FlateDecode /Length 119 >> stream xœ35Ô32Q0P02ÆF †† )†\z† 8#9—«(i„0Œ €„.P™[€Ô8yré{ú*”•¦ré‡Õqé{€I§g å 4<–ËÓEAžÁ¾¡þÀÿ0XÀ¾AžËÕS! ùp&Xendstream endobj 136 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ35Ô32Q0P0UÐ5T01S03RH1ä2Ð30 !Œ‘œËU¨`b`T032LX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°s†>‡Â Èðwdû2ûå—Ùÿ=÷ƒ‰ÿ—òÿÿùxÿ xë¹êúÿÿ·ÞÇÛ}ýwfý¶éÙÛ¦ÿæQÝ6íhnnnbk›ƒ —«§B œLOšendstream endobj 137 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ35Ô32Q0P04&& fF )†\z† 8#9—«PÁØØ,TeÒbV```habnnRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-lNøò?þú×ë±;/¿j]'®¶B_þ?øÜ˜ùýëVF.WO…@.€C—endstream endobj 138 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ35Ô32Q0P0QÐ5T01W03RH1ä2Ð30 !Œ‘œËU¨`bdT032L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ñ ‹SÓåƒ-[–\UÙè½¶dË®ëku«®¯¡¿ú××__ÿWÿÿõõÿÿVý‚¿kW04pp¹z*r‰CAwendstream endobj 139 0 obj << /Filter /FlateDecode /Length 248 >> stream xœ35Ô32Q0P0QÐ5T01W03RH1ä2Ð30 !Œ‘œËU¨`bdT032L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[¸áŒ‡œð!~Η/&Ä2ñ¾P¿”ïhïb·-¼DàËä—¥qËòWù_5¿Tuùe½ÿŸºé—ÿƒÀÛè+³Öÿÿ»>?úÖïÌòìÝ™åroˮݎm{ØzcòÙ¶¹[7ºaà´máà 01(p¹z*rPZuendstream endobj 140 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ35Ô32Q0P0bs3C…C.=C aŒä\®B° Paĺ@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµjÜ ùž\µÝ3}‹÷ÛþþÝ¿¿>ÿýþúÿÿÿŸÿ~ýúÿÿoÝÞú__¿ìÿ²·VŸ³ÂÛb^S×JSÇ †.WO…@.½NÚendstream endobj 141 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ35Ô32Q0P0bS3C…C.=aŒä\®B ° Pº@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.OµæÜ¾[~šFÝöfoz>-·îúÿÿÿsõÿÿÿwýÿß×òwüÿïëÿÃÈ{ûÿÿÿ]ÿÿÿ­¿ëÿ‡[“G—Ÿ\UÛ6«ƒ¡ËÕS! ­ÑcWendstream endobj 142 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ35Ô32Q0P0bs3C…C.=C aŒä\®B° Paĺ@@`ddnRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµüd,Mýó•?ñ¹·ý±ßþþíïÿßïÿÿÿÿúõû¦¯_ú°FõhéuîÖƒÅ.þ‡۪šYK·20r¹z*r—çIbendstream endobj 143 0 obj << /Filter /FlateDecode /Length 218 >> stream xœ35Ô32Q0P0RÐ5T05T03TH1ä2Ð30 !Œ‘œËU¨`baT032@X×ÒRÏÒÒÒ$ïäÉ¥ïé«PRTšÊ¥TÌ¥ïTÉ¥ïà¬`È¥ï 48–KßMßÙÙ È °±Ñ÷Z˥Sš›W ÔbgÇå颠¶b+“[Á»'Wm¦OXñá~Ûß¿ûëÿîÿ_öý²·Fõ¡žöº]ï÷Õhøwÿ}° L:HîßujýŠmvÛoM™uÄ`ƒ—«§B ýVñendstream endobj 144 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ35Ô32Q0P0UÐ5T05T01UH1ä2Ð30 !Œ‘œËU”4 *˜˜ Ž®¡XÎÉ“KßÓW¡¤¨4•K?¨KߨŠKß)ÀYÁKß%hh,—¾›¾³³`c£ï ÔͥSš›W ÔbgÇå颠¶Ð‹ÑEÀFá˹ù&‚_äoø¾åǽÿÿòJ=1PV I,Øá’üâ…𢆺¦/â×E¯ÿÿŸ­¶ú›xâòÃ,NÚâÕŠ¶-±mHkH`p`árõTäÀÄDNendstream endobj 145 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ35Ô32Q0P0WÐ5T01¡C.=C  Âɹ\… Ææ`A3 ÄÑ54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]ÔìTðP¨p|ùò¡­Ëÿ¥/«|K®MøúëëÇëÿÿž\õ¿zBþÜåù·n¯Ýúpé†Ä2ílÞÓfVF.WO…@.n>äendstream endobj 146 0 obj << /Filter /FlateDecode /Length 301 >> stream xœ]’1nÃ0 EwŸB7°MKT\Ò%C‹¢íl™.> stream xœ31Ó34V0P0VÐ5T01Q0µPH1ä2Ð30 !Œ‘œËU¨`b`T0µ2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[8£b‰ôÄÿNÍ“ÿŸøÿqÈ·TÌ_ÐÌȱßóËü¿ê×__ÿ¿Î$ùäjÝÿïÿoÇ»ž[v±EîVC>oËŽ$qÍG Œ\®ž \¹M¹endstream endobj 148 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ36Ó³4T0P0RÐ5T06U0¶PH1ä2Ð3 !Œ‘œËU¨`ldT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmA[b"ó! LJ ÷&W…/ùåûiݯÿUÇÿY~0üçþûï¡÷»n¯½¾eíèÌo§ƒM  \®ž \ ß>Cendstream endobj 149 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ32Õ36W0P0bcSK…C.=aŒä\®B# ° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-8ø¸‰ŸãcûqO«ø—õK$âìÿƒÀG«é“çñÔÿG—O þg`ärõTä ÉAÂendstream endobj 150 0 obj << /Filter /FlateDecode /Length 234 >> stream xœ31Ô35R0P0RÐ5´P01T0¶PH1ä2Ð30Š!Œ‘œËU”4 *˜šF@ Ôe–tòäÒ÷ôU()*MåÒªäÒ÷*ãÒw pV0äÒw‰šË¥ï¦ïìì䨨è{µsé;çç”ææµØÙqyº(¨-¸ æ|F½EÂívKA³£®šö’ëž];þWí?üݲÿÞ¶Koõ.]ìqza°UþÿûÕª‡|“;|ù÷^…|»ÉÚÿÿ»fÖÚÜ¥·n;Ì™ØÌ"&Ñ:ÁÅ…ÁËÕS! 'fT> stream xœ31Ó34V0P0bS …C.=C aŒä\®BC° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§g Ç%ht,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[Raìþ)ëGýø¤óGárŠü‚Ù_fÙ§ýrÿ¯ÿÿ×ÿG¾Î,çýÏ ÀÈåê©ÈV@Lendstream endobj 152 0 obj << /Filter /FlateDecode /Length 170 >> stream xœ32Ö30W0P0aCS3…C.=C aŒä\®BC ° Paĺ@F¦Æ& %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú’Ç—ÿÿ¿MlíÿÿÒ‹¾þûÿ#ƒ—GÚ¤01(p¹z*r‰R=jendstream endobj 153 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ32Õ36W0PÐ5QÐ54W0´P05SH1ä2Ð30 !Œ‘œËU¨`dhT076i†æ`Y'O.}O_…’¢ÒT.ýp R.} :.}§g Ç%hl,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶°!Âñåÿ¿k 6þÿÿI⥈ý¡‚ÿ(àù¾yz[ÿ­Ô4õ¾ËڦͣÁÐÀÁåê©Ès¹A£endstream endobj 154 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö³0R0PacS …C.=C aŒä\®B° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmI…1û§¬õÿ¡@±ôÿž {ô[?ìÕ÷¾ôeê ýxÿë—¿$ׄ~˜¿ìßß¿ûóßß¿ýûûïo_.*N\aþ‡Á…ËÕS! MWM¢endstream endobj 155 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ32Ö30W0P0aCS …C.=C aŒä\®BC ° Pad–#C3C 'O.}O_…’¢ÒT.ýp r.} Z.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmIEû§¬õÿ±ƒ¿×08°p¹z*rQt>üendstream endobj 156 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ3³Ô3R0Pa3scs…C.=C aŒä\®B3° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-©688CáÂ‡Þ ‰Ò _„3Ôž\½”«öáefMØôË"÷ÿ‡þÿÿ5þ?&ø7+óH[ªå”‡ûÿ1(0q¹z*rìæPendstream endobj 157 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ31Ó34V0P0bcs…C.=C aŒä\®BC° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. jK*‚ [ä7ñ;š«­›\Q²Oûåþ_ÿÿ¯ÿ |-&œYÎûŸA€‘ËÕS! U¹?vendstream endobj 158 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ31Ô35R0P0RÐ5T01P0¶PH1ä2Ð30 !Œ‘œËU¨`lnT0¶2Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¬áCó! ƒM<¶j_f_Ê÷Ü›¿üÚÿKùÿÿ÷ýÿÿÿäªë×}ýw+úzö¶i·"rY7ŠHãap`árõTäÊkA]endstream endobj 159 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ31Ó34V0P0RÐ54S01V06WH1ä2Ð30Š!Œ‘œËU¨`b`T052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[R‘–ÐÌa£œ"×Äcijåû&¸Öüê—ÿuÿëÿ¿ýKÿÿ›þwé×[ߦ³_?Ì¡Ïc²·#ŽG¼$÷oŽGÂý, \®ž \âH2endstream endobj 160 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ36Ò35R0PacCcs…C.=C aŒä\®B# ° Paĺ@@`aij RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-«îIdoÉ«â4ÊzYðõë_Óc±üÿ¿þ‡_…Vݘ¸\=¹î8äendstream endobj 161 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ36Ò37U0P0VÐ5T0Ò )†\z†@A „1’s¹ ŒÌ À‚ Æ–@†1ë€åœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹fNˆp¸Îñàø‚æ—v“¿|ü¿÷áäþ¹N¶íÛÛ>Üsä8ahccöþö¿¿Q÷—òjî1˜jÈÕØÔÀÁÐÀåê©È®-=øendstream endobj 162 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ36Ò3²T0P0TÐ5T0²P05TH1ä2Ð30 !Œ‘œËU¨`dfT052 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ½›êÿ_ÿÿ·ôzŒR¼¼ÚbÎÿPðGDþÝúu×÷èì6m6.WO…@.ò< endstream endobj 163 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ31Ó34V0P0RÐ5T01Q06WH1ä2Ð30 !Œ‘œËU¨`bhT0¶2Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. jK*$lœ=þOWì|xø?xýÿßî¿ë^âß²¤ážD¢ÞÑ‚„å ,\®ž \1Büendstream endobj 164 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö³0R0P0RÐ5T01R06SH1ä2Ð30 !Œ‘œËU¨`liT062Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQ0íü3k³ÃÝeÛ³wÝÛÛûßõªÿ¹ú¿c_ÿݲÿý]ýo—þoý]ÿw}C—«§B õ.>Ÿendstream endobj 165 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ3µÔ³4W0P0RÐ5T0µP06SH1ä2Ð30 !Œ‘œËU¨`jjT062Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQ0u[øÿSÖAÍ<ºËš¹ݽõÿö–ýÿ¿½Õw½þÿÛµK¿êÿ–]{ýòßïØëë—ÿ~[îùúÿí·úžÿÿ'w½üoWý÷uó«8¸\=¹6Oendstream endobj 166 0 obj << /Filter /FlateDecode /Length 195 >> stream xœ31Ö³0R0P0bcc3…C.=aŒä\®BC° Pâè‘Ð  'O.}O_…’¢ÒT.ýp z.} b.}§g Ç%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQ0íÚÿäJSÊó2îª{bws—Þz7ínÙ´[o®¿}¿ü^÷ßèKù^¿jÕ¾æ{}­UûòžÕñˆAoâþL \®ž \r¡Aìendstream endobj 167 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ31Ö³0R0P0RÐ54W01R06SH1ä2Ð30Š!Œ‘œËU¨`liT052Œ€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQ0íü3k³ÃÝebosÿÇþ^úïVü÷wÓgÖßzÿvéÿì½õÛ¦ÿ©Žßúëߺ½uÓŸ&½¶73èä*NÝ-Û´X¸\=¹b8G6endstream endobj 168 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ô35R0P0SÐ52T06S03RH1ä2Ð30Š!Œ‘œËU¨`diT°02Ì€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-XÌÚR{ˆuéÒ¥¿¾þGë£^f&²N©hš¯ú#ñíÛ÷÷¥ÿ¾ÿ]]]‘ðá,s…C—«§B ¥Pµendstream endobj 169 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ô35R0P0SÐ52T06S03RH1ä2Ð30Š!Œ‘œËU¨`diT°02Ì€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(Øpq¶45øpøpuíû{ÿ‘Àß÷÷îÝ“>lpGµ¥b¡®®ÞÖ×ÈÒq[_{s&² ,ot`hààrõTä]nMÛendstream endobj 170 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ó34V0P0bSK…C.=aŒä\®B#° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\pAˆÃFùP{‹@>‡Ú—Æ’Éÿ½ÿ{Ûc°§þÿÿÿšeÿÌêùüð?ð×äÓäÉþÿ8¸\=¹‘ÜPFendstream endobj 171 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3³Ô3R0P0b3sSK…C.=aŒä\®B3S° Paĺ@@`h`i RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-\pÆ ƒ“…G Â½M½•ŸC!G¡¹ÂÑs¯‚‡¸§Êÿ/«ÿ_Zw}Á¡?õÿÁ@ḋû§,ãÿð7ø•¹|ÊœYE™ÿÿ30r¹z*rpMaWendstream endobj 172 0 obj << /Filter /FlateDecode /Length 168 >> stream xœ32Ö30W0PaCs3…C.=C aŒä\®BK°Paĺ@ycC#K#'O.}O_…’¢ÒT.ýpK.} b.}§gC.}—h Ñ±\únúÎÎn@n€¾·‚.PÆ9?§47¯XÁÒÎŽËÓEAmƒŽÂ£ÿ“Cöÿ‚oHäÇÿÿMÙÅŸ\Õ1XÀÄ Àåê©È:endstream endobj 173 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ36Ò3²T0P°PÐ52P0²P03RH1ä2Ð30Š!Œ‘œËU¨`hiT°02,€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-8¶¶^ºôWWÿÒߪëëð¿÷ÿÿöÿÿÿÿ§©ÿÿÿßþÿ„ïëoÿÝ»ÿöíûùùùy˜¸\=¹-)J)endstream endobj 174 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ36Ò3²T0P0QÐ52P02Q03RH1ä2Ð30Š!Œ‘œËU¨`hiT°02L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(èñX(-ÎÏÏß»wÿíÛ÷¿¯ûþïû¿ÿßþÿÿŸÿ .ýÿÿWÿßþ¸ýq[_ÙïíýeË®K—.u­`hààrõTä;ðJ(endstream endobj 175 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ32Ö30W0P0WÐ54S0´P°TH1ä2Ð30 !Œ‘œËU¨`h`T022̨É,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQPÛØÎa±ïSÖ†3ÿ½þú:në¥K—^1(0q¹z*røv.\endstream endobj 176 0 obj << /Filter /FlateDecode /Length 109 >> stream xœ32×3³P0P0T04S02Q02TH1ä2Ð30 !Œ‘œËU¨`ddT0Ò† lf–ròäÒ÷ôU()*MåÒªãÒ÷P0åÒw pV0äÒw‰Ëåé¢ðÿÿdÄåê©È@×%Ùendstream endobj 177 0 obj << /Filter /FlateDecode /Length 111 >> stream xœ32Ö30W0PaCsK…C.=C aŒä\®BK°˜6b] 4˜™‚8yré{ú*”•¦ré‡+Xré{€§gC.}—h ¹±\ž. 2 õ ÿ`°žA†ËÕS! ‰c Nendstream endobj 178 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ31Ô35R0P0bc3SS…C.=C aŒä\®B# ° Paĺ@†¦Æff 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂfFíuâ¬ý3ošrÿÇ.ŸòüÁÐÀÁåê©È„Q={endstream endobj 179 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ32Ö30W0PaCsc3…C.=C aŒä\®BK°Paĺ@y 02³0©pòäÒ÷ôU()*MåÒW°äÒ÷ªåÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠ,íì¸<]Ô6è(<ú3ki›˜ýÿÿÿÿeâÓ?¹*"Ñ…ÁËÕS! yµ-endstream endobj 180 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ33Ñ3µP0P0U04T03P06TH1ä2Ð30 !Œ‘œËU¨`jbT022LØÐÐ,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­t`ñÿÿÿ?“Úž\Õ`hààrõTäƒ{(Ùendstream endobj 181 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ33Ò3²P0P0bSK3…C.=C aŒä\®BSS° Pa ĺ@ƆF–F& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ) Fû_þÁ»ê_×Úÿºïÿoûåÿk¿üqÂßÿ›úûÿÒºÿ/ãå_~z¸ùßäúÿKîÿiþoÿöõË+[ñ´1Õ1(0q¹z*rFäQMendstream endobj 182 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ35Ñ3R0P0bSCSs…C.=C aŒä\®Bs° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(p?¹’òÀ=£©ïÛß¿ÿÿÿÿßïÿÿÿ'ÿÿÿõÿñÜÇÿŸ9ôÇ~ÿ¿ÿ@ðã?¼°˜Ø¸ù ƒ—«§B ævL©endstream endobj 183 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ33Ò3²P0P0bSKSs…C.=C aŒä\®BSS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜²¾çë:! î0÷tßõ·¾ýÏÿ„ÿEÅßþ£aû¿ÿÿþÿ¾ï—? ÷ÔNýûÀÈ Àåê©ÈE]›endstream endobj 184 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ3µÔ³4W0P0bSsJ1ä2Ð30òÆHÎå*T056 U Ž.P˜™˜ƒ”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j;âÿœ±´ˆg¹`7í~ô×ýÿÿGÿÿÿÿø­ûÿDÔÿG6­Òÿ8¸\=¹ Fdendstream endobj 185 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ô35R0P0VÐ5T01R0¶PH1ä2Ð30 !Œ‘œËU”4 *[Æ@¬kh–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{usé;çç”ææµØÙqyº(¨-ô9l#`£ÜÌïÐ\•cköûïþ¿{×gÿÿ§™ñ‰ÐÁ…ú;qŠkúúeßþC]ÿÿí¿õäj`ëwߥÛÄ?Üp4ŒHšu°)‹A‰ËÕS! öWFÿendstream endobj 186 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ó34V0P0RÐ5T01V0µPH1ä2Ð30 !Œ‘œËU¨`b`T0µ2Œ€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[RaÌþ)ëGýødùÃñ‡Û1ù3ê&×ך_®­»ÿ¿þ÷_ˆìõõÿãö^_zÿ (gÉËqÇ6¡—ͬ Œ\®ž \I€Kendstream endobj 187 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ36Ó³4T0P0VÐ5T06U0¶PH1ä2Ð3 !Œ‘œËU¨`lhT0¶2ŒX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j ž%92²1øÐÄöeò%ÏúK_e‡í©_ñÿÿOÓ¸ÿ»ßí^{=Ww˶K‡¦I´¶q1(0q¹z*ṙ;ºendstream endobj 188 0 obj << /Filter /FlateDecode /Length 392 >> stream xœ]’±NÄ0Dû|Eþà;Ù=$ä ~ ç8(Åå¢pü=3  Kï²³žõíáîáþa™¯õáy»ä×r­§y·òqùÜr©Oå}^ª6Ô㜯?¤3Ÿ‡µ:Ü=ëÛ×Zj”iç§á\/1´ú©ÝMù2–uÈe–÷RÝ6Mº¦T•eü÷)wÇiú)ms’‚ã–$ڴ˃i—‡‘x“vy(D¶Q«ØÇ´Ëc ²«:GvF‰dç8$ 8á‹òvôv(ìTܱ‡<Ñ• }æ×¾KRð~|&oÏb Ir^‹Ir"ƒÏv/'²>IÁî4ÝkLež$ '2<ŒéqЈ‡1=NÛ1œi@4ž’dfó™ž  fòb8 (ï”$ ½Ž?›2†#¯+ssCD^WææHD^Wæ†9òR¡ÓE޼ó:R@uF" Øk·~—ˆkÆ…ýÝÏ:n[Y®Újm-—u^Êß⯗•®ª¾§Îhendstream endobj 189 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ31Ö3µT0P0bcKS#…C.=C aŒä\®BcC° Paĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ @ŽK4ÐðX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ Y ù¯ýßõ‡¹åÿŸZ¿ãÉÕz…¹ÿ‘ÀO‡ÀJS/&.WO…@.Êÿ; endstream endobj 190 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ31Ö3µT0P0b e¨bÈe g`ä!Œ‘œËU¨`lbª2LX¨ÀÀÀÐÂÀĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYH¹DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j+–ópÿ4iþþü ¸çÔÀÁÐÀåê©È'< endstream endobj 191 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ö3µT0PÐ5&¦ Æf )†\z >Âɹ\…@y° P•H ˆª#3 #'O.}O_…’¢ÒT.ýp .} j.}§gC.}—h á±\únúÎÎn@n€¾7Ð$.}çüœÒܼb ;;.OµgÎsT¨âQxìkiêÌ}ôɹ(îs«~eþZ¿êÿÿ_ëÿc ƒ.I§WËS®j­/oà`hàrõTäv¦K'endstream endobj 192 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ31Ö3µT0P0bcKc3…C.=C aŒä\®Bc#° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-’lgÑç^·Ë„óAóQÛúoWf-8>…­Û”ù¦€j{›M›é‰œe¼O£“0¥”«ˆË7ˆ‹A‰ËÕS! .9endstream endobj 193 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ31Ö3µT0P0b#c3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­xe*»ÕÏ7lS„cÏÿ­÷ö¿-_ÿ;öõ¿ëU¨œþìoÛ01(p¹z*rÝ7>Gendstream endobj 194 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ31Ö3µT0P04QеP06W0µPH1ä2Ð30Š!Œ‘œËU¨`ddT033éº`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmÓ¡Òµºº¬KAàÚÞìkÓ__}ýOéÿÿO®úÿ}ÿ÷ýo¿ï¯þ¾6|ûö¾"‹A‰ËÕS! HCšendstream endobj 195 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ31Ö3µT0P0WеP06P0µPH1ä2Ð30 !Œ‘œËU¨`ddT032ÌX×Â,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­8  x÷äªêŠ|0¨ûþ¾vÿûú÷õÿÞÿ‚uû¿¾þúúËÖ×q[/À¡¨ÀР¬¦†.WO…@.ÎlD:endstream endobj 196 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ31Ö3µT0P0bCSC…C.=aŒä\®BcK° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[±ÀèèŸYëÜïÿ‚'Ë4h~ôû‰q@þ‚û¾_×Úÿ¯Éü½þozö­¸½KsÆŸ¬HÌeãbP`ârõTä¸3G‹endstream endobj 197 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ]1Ž1 Eûœ"7˜™ bVBn ¡­`/¥ …¡àö›8°Å?ÒË·e»Ãþ⢇ï2Ó…bò…ó³ë+ßbR“Ñ>Òò&yéî²vG—^™u-àÐùäî<œW+¯©7Ñìù‘qqéÆj;ޏ 'ÿÏ‚Þp ïJ³Á.0+~a®h Š ¬©au¬¸ÓØPdÀBC"cmsÁ¢ÈÀ¸‘M>3ÛR-Þ'¦g)œ¹dlÑbâ¿3å9·.]¥~‘ gHendstream endobj 198 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ3µÔ³0T0P0QÐ5T05S05UH1ä2Ð3 !Œ‘œËU¨`jh*2L€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 7L`ñ0Pæ°QøÐ‘"×ÄöE¸Ê÷¥Ýäª{“ÿ¾¬ûuÿÿËúÚöýs™Ãÿ«­þïÿ©¢û×¾nÛ½mÚ­hÕ6 :†Ü¼‰M'4”˜¸\=¹Ç^Ffendstream endobj 199 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ36Ó35Q0Pacc …C.=C aŒä\®B# ° Pº@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB~ö¹yó_þÿÿïúÛÜÄÖþÿÿÿOXÞÿÏ×ýþ,à‘ Û?&.WO…@.HZendstream endobj 200 0 obj << /Filter /FlateDecode /Length 158 >> stream xœ36Ó35Q0Pac c…C.=C aŒä\®B#K° Paĺ@†¦¦†– 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚB.Vù?³¦óÿ' „bÌ?02p¹z*ráHaendstream endobj 201 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ37Ö3°P0P0bsCS…C.=C aŒä\®B33° Pº@@`b`d RâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ä<Ìʸ ¡ñ!{‹\ïC¦<_¯¦|¾é_î/ý¹¦>þoýÿÿñÿ±ªG÷ÿoà`hàrõTä¬&Miendstream endobj 202 0 obj << /Filter /FlateDecode /Length 182 >> stream xœ35Ö3¶T0P0bS 2QH1ä2Ð30òÆHÎå*T013 UÆ@¬ T&FÆ %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚBÎCóE_ب/~ûBuràK륿~Åÿ ¿õr}öñõÿ_ÿGÿT’ÿ08°p¹z*rzNCÔendstream endobj 203 0 obj << /Filter /FlateDecode /Length 229 >> stream xœ35Ô³°T0P0QÐ5T0±P05UH1ä2Ð30 !Œ‘œËU¨`blT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¤¡MFP¢F ± }QÁ^&þ%òž¿jëæÿ¸ÿþ÷à KS‰ŒSG›¾±ÝÛ¾½íÃ|öìN­f{xŽ-îíßû_k×‡ß ¸v( aÊ?E'--…  \®ž \nÿKãendstream endobj 204 0 obj << /Filter /FlateDecode /Length 216 >> stream xœ3³Ô31V0P0VÐ52Q03S05VH1ä2Ð30Š!Œ‘œËU¨`fdT072Œ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(h2ÖÿŸ8—YãÂ:‰Øu_o½ý·»ôõÞ²Ý׳÷–ÿz{]èãÛºë@ôDüúº>êÙ¯Ë_®ém}í«iê©7éeYwÒ¶ ‡³20r¹z*rb|XÉendstream endobj 205 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ37Ö3°P0P0bs …C.=C aŒä\®B33° Pa ĺ@†¦f&fF 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚kμB’ Ÿ¸xÙ›LY*Ü_(ÜpØåùRoÜô—¯®Çÿ»¾õaëãÿ@ðϱè£üŸY]άòõÿñ‚GÞ]Íõÿ¹\=¹ê `> stream xœ33Õ37W0P04¦æ æ )†\z† 8#9—«PÁÄÌ,TeÒ$t* ÍAJœ<¹ô=}JŠJS¹ôÃê¹ô=€Š¹ôœ ¹ô]¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…Ór côĹ›žÚyÆÔ+îù3«Yþ?>pŠåÿF.WO…@.I=endstream endobj 207 0 obj << /Filter /FlateDecode /Length 240 >> stream xœ³4Ö3U0Pa 3 #…C.=C aŒä\®B ° Pa ĺ@†ÆF& 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚6CÂÒ¶†‚‡'W/¨ãý]'ýûÛßý÷ÿÿö þêÿÿ²oo­þzïCqM¼;bÄ?yHœkH°Wœ½¼M~ûÃöïoÿý]ÿ»þÿw°ú×ÿã×ÿ*ªúà袴÷ ƒ—«§B $`Õendstream endobj 208 0 obj << /Filter /FlateDecode /Length 266 >> stream xœ³4Õ30T0P0WÐ5T°°P°0VH1ä2€!Œ‘œËU¨`a`T°02ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[¸¦„Y’mC·â,¶ Žk® È®QŽÈáMdâ]£Ð,Ëòe^S…çK»y“/UýªŠÿ2ÿ˾ÿK¿ÿ­ÿÄól×ÿÿÿÿ4ÿ¿ˆÛòÿíÿ×î¿Îÿz{íõ]wË.Ýþí«c6í°wŽê†K‡yTÛ‚ÛZÛ\˜XÛ[›¹®-V\»„Á…ËÕS! D`:endstream endobj 209 0 obj << /Filter /FlateDecode /Length 243 >> stream xœ33Õ37W0P0QÐ5T03U05UH1ä2Ð30 !Œ‘œËU¨`f`T0²L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[àÈcœ" '`£ð¡‹‰}ã^ƒû¹/ïoÿ¿ýÿ¿{×·¾­øÿÿÿ„³‚ò&+¸ÇÝdÚ}Ȫý…>‡¾cUÜôõ×—þófýÿ×ÿìɡחäšÞòæÑ©Hl޹&á›p(1Å  Ñ…ÁËÕS! ¼ÙQ[endstream endobj 210 0 obj << /Filter /FlateDecode /Length 230 >> stream xœ]Anà E÷œ‚Ø`ZÉšM²É¢QÕö‹`DœEoŸ™IÒEéÁÿün<KÞt÷ÙÖø›N¹, ¯ë­EÔ3žsQÆê%ÇíI²ÆK¨ªÛ„úó[Q“ÓƒOá‚Ý×`zÙ2P\¼Ö±…rF5õ=L)²ü;¢œ$æô´š"ëiUÓ`@dýàG "ëGÏ8€ˆðБщy73î@d=m¾ƒˆ&÷Œt‰“‹r"ë(¢&OF–9Kï~=¿Àe¼þ®ã­5,›4&p¹à_©u­œÒ$u×2pÖendstream endobj 211 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2128 >> stream xœu•yp×ÇWÈÀsêÒ©CÒ]‘ t8óG)…†b7N$„-cËèôÚ’,Y–d+ýtZ·-#¯>ñ.w)g1 ¡3m™¦3!´¶Ã óÖ,ít1´Mfš?Þìîì¾÷ûìï}¿ß'"ò&"‘hjIYYéâEOoßà^q¯Nâ~ ¶ðÇ/ŽÛ'C òú^Í_õ]ì} +§áŠéDžH¤np¸KÔ£®vw -S9WºxéÒ%ó¤o-Z´TºR)×ÕVÊTÒ2]#WÊháat£º²VN¥s–×дæ' êõú2eýµn÷ÛsçIõµttƒ¼^®k”WIW©U´ô=™R.}†·àÙ¥D­Ô4Ðr´L]%שt5j‚ U ²µc­¢îíe?IÍD11ØJ”kˆµÄ:‚"^$¦‹¼Ä4ᧉ<⸨Vtw’CÏ[=™˜˜òÒ”¿LýñTËÔ£hÇrµ²Ü|V„µ_ß¹(aÌN\Ș²·':#™6ÒçOœçØ{Ea6̆²Át¤×lï?ó埋V+ÊÊùï™vRvÚÛV´m¨æÄƒüF$fÆŒÙEêW+6–jrIJ¹è¾(Kí=sO‚ èêÎÑ’Ååké&Òu~WT€¡Êf4Õ6¯7²ÅÀóùØ0™¾‘99 (·(«e3UÈ]{M\މñÃó’ø®!í‚l¶c =œ¼~4àu73dóFÃj F[ò›8¢z0h ¶Ïec!Œ:›£f—Ö[ÛJŠwð%-›¼îÊeÅ€6ÛŽœïùÃþkT¢/”‚½èXÝÈÖyÕülû3<GˆÌÝ>8rP´Ã[WoU9ÍTõœÆ2(Gó®éÎ^>ƦÉBÎðœWt96†_~ æj8$9«í0êêµ –3n%»ôI-ìF²÷x#Ÿ¿…:}¾ûfÿd[ú¿uçË¿Q·÷G²½€"i¨ÓÙ4#µƒG– ؉xâŽé8^~ÿé´P:÷¬ôè 1—ÏJŒ#ªîí€ø|~:ÿ&ÿÆüs¥¿Ïœ Þ£"²!ÅÉoë`Óãú]€4Ìþ ëÄRñÃþXôà0–µõ€‚(Ýkª7740ä>!qÁcnÚñá.“ÐÖæs‡N àiÙãTÿÅc#£€>K-u:=N¯‹*¿ýã¢~ææH¼wàëLÅ#¸¿RôàÚ¡`_ â‹ù ™¶V²tL=솪Àn8Uðº£ôŽÓæ¥XOÔÍ`TÒNד™ü™¢[ø·Ñaì&ÌÈE!mõ;)5”0jPÁϪ‰É0´ï’^o‚êð„°‚ÛË0-üÌ'ƒE¶*OërA·Vá«zn ‡êÖ+ `=]€Ú’‰ÛÁP­†Î¶0h§R§“g’§ñ\ŒŠ0âÙ„<àœ¡Üéµ[­ ·&ÀOŽÂáÀ¨°ÂY†} zº†ìÔ.Ÿ%jB…Üo¬lò.–ÝM²¢Þûøê}1¾ÏIÂû³÷¯CöA—EíÒë ™â†nv sôôúTí5›èRw壘 Ðëx‰î©R"ÔO >º’´wÈþÁž¦w«y)e*«‘í'ÐИ̅Ø.èAÝ ³R§­«8¥?zeøz8@&ª‡«Æ=¼€%¹§R°{Ü¥®®¯Teò@B!gáeìá;‡¿fI®‰{IL Êh›ð–Íä4ÛI«uÛèÐ:4NÍvþÝ"·yç;¥€¶XŽO2x‡êøE0™ÿg²î£}ƒÿ»Öa *g7À6ôÖ§Ê‹‡Ó==¤esKyå&m­\U!È`{ éP$!•ˆEcIÁ@ýš V˜Ê·­þäáÃ/ñä²?Ë>üý»¢[cG„ Ÿ,É4wÐVcH5íËöeûÈO $‰^¤;’ù6/~ ¯ÑÑè¶Q­Úí<2í´i- hDÛkN ¡8;ú¿P4®S¼·åy(†SÙKB mŒÝæ@–ûXõ©˜›%ímN×ÓJZ©O™²ÝÝû»I¾âŸK$†oØ(l¡ŒÑ¾¶öýBß:¬{5:UãîÊц“׿:ó·yŸ›Ê@ 3.Ȇ¶ÎÞð:êóí¹KÇ/”êtËhÆênÒVÝK°¸ú°¹úë¯Äxt|…Ä1 ]ÜêÑ’­^«ŒHpMûI¿ÃF2z~ö“›îæ ™ÓW4ÙM„ÉPô. ç™?š àflžÏÓóaýhåé¾îŽ–ÌŸûFÈè‹é-;,ñát0ì ‚iB >[×û£xçÀ@vßÉ3ÇüÂà¿7áñAÄé÷‚×ïù˜±WAË„!ö÷²‡úèÛÕ­ËJÈZyU¥ÜŒ Ç;«º¸ÁŒè ‹Ç—`ƒ$Š„ ‰Ö5ôäW8UdióÈj·[í!gÊAq,ï{"Œf‡Ë öÖ¨=ôœtÓÇÔ…öH„KY1Þá“\ѪRèujMF{ ‘ FcdÀïóùù|Þæ•5ï+”`a}ä¹Cñ[¿ÃùB23| ëñÆŒè<÷²˜[;¾M"DA|(nZÆÉüßÿUæ²€¼å“¶tX˜˜â÷táuvãŠ?àWJ˜ay2Ç[Ò]‰Î€_Ø<³™ÊÍ @8Kð,<÷Qé…â¾ö&_¨¤ðt^.yÇt+ eIáLÌ‹ ³£Gnžbû ¨V}¨âó4å”bÝÇur@… ,W'±’ÂËâSû_øü;ä yK2ù¹pAAüÎ…–›endstream endobj 212 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ3¶Ð3R0P°TÐ5T0¶T06WH1ä2Ð30 !Œ‘œËU¨`diT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁÏMü÷(̾”7Ý{é¥×/³£¼êsèzwèeñÏçm^ÿ냗oد·º—¾l;Ý"vCa›bbSC—«§B K%<Øendstream endobj 213 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ3¶Ð3R0P0QÐ54W01T06WH1ä2Ð30Š!Œ‘œËU¨`lfT052@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸á‡Â‡~³Œ >±z“/½ú²:~éõW[ÿ–þZÆõ¯öýÿºôë×ÛÞ¥·9n½ oM~ý·noZ?çú+™™™ž«8õqó8le`ärõTä²_Lendstream endobj 214 0 obj << /Filter /FlateDecode /Length 208 >> stream xœ31Ò31Q0P0UÐ5T²L-R ¹ ô ‚@c$çr*[€L- S Ö54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ô> stream xœ32Õ31S0P0WÐ5T0²P05UH1ä2Ð30 !Œ‘œËU¨`d`T052ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ذa~éµßÜòÿÿŸØÞ"×ãïõeÿ—ý±úÿ#^íMXýõuüë¸ýA…×_¯-ýÿ²ôWü¯è¥#X¸\=¹n8@þendstream endobj 216 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ31Ó3³P0P0WÐ5T0±T06WH1ä2Ð30 !Œ‘œËU¨`bhT0¶2ÌX$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j‹Í8jTñ»© n®ºáh~93n’Èÿ¸­_ï_ÿ2%ûjýÁìµ¥ÿ_¯-ýõ7ûË‚}û׆íZÿÿËÖõkë×_ºz}™bâ‚C  \®ž \^'G‘endstream endobj 217 0 obj << /Filter /FlateDecode /Length 196 >> stream xœ36Ö³4U0P0SÐ5T06U06WH1ä2Ð30 !Œ‘œËU¨`daT01Ì€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[°ós¿;ïCéK{mÖþ¿¶¶Ìö“ƒ7ûáÛ·ïó>·“¯ýü|½lý¥€Ø¥j«¦ÝŠæQØ¦ÍÆÅ ÀÄåê©ÈÌ!9éendstream endobj 218 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ32×3µT0P0WÐ5T06R05RH1ä2Ð30 !Œ‘œËU¨`dbT052ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ðŒÝ?þÿõõ«þ__³`NÊ•àƒö¯¯ÿÛ[!.rÊÿz«}ýõ¥—Þ.Ý-°áPC—«§B ê&A)endstream endobj 219 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ3¶Ð3R0P0WÐ5T01T06WH1ä2Ð30 !Œ‘œËU¨`llT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[4›õÐ!õÅÂ~S¿ìÛ¿ö×^Ýÿ_‡F¿>ô7ûë¯×±õ@\7ýÿ¯ø_q»¯gæM»á´!aƒ—«§B *D@žendstream endobj 220 0 obj << /Filter /FlateDecode /Length 202 >> stream xœ31Ò31Q0P°TÐ5T²ŒÍR ¹ ô ‚@c$çr*›€Œ-€ K Ö54Ë9yré{ú*”•¦ré‡ré{Uqé;8+ré»D åÒwÓwvvrllô½º¹ôósJsóŠZìì¸<]Ôì<à¡ð¡ß,ã‚OÜô%¿~ùfVýÕÛúoúëµ¥ÿ_ˆÿú¡ÿúemö¯“«ÖVÅÝZ¿Xxí†Éë$–ió$:°08p¹z*rØßA£endstream endobj 221 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ]Á @ï|°ÁtÌdée^vÐõ+†ÃÁyðï…ÎyððH^i¡mÑõÇÞ»…—8›.Ü:?F|ίhøpž ÉGg–¯Ñi&XÑt¸¿ò”€võ³ž°¸V• X‹Ì<â3hƒQû²¶,¡µúñïJ­ƒýfÖ©ö$Ý!U &U@$­²6@$Ýe=!•(³"²N/°VÕ@HU6ÔÉögn*·MÃÍ+Fô í€fÌ£9¿5…9ä*ž`3§f–endstream endobj 222 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 394 >> stream xœcd`ab`dddwöu0415H3þaú!ËÜ-ó«C†5»›µ‡‡±›‡¹›‡eÙ&¡ïÅ‚ß ø¿ç 0°02æ—¶LqÎ/¨,ÊLÏ(QÐHÖT0´´4×Q020°TpÌM-ÊLNÌSðM,ÉHÍM,rr‚ó“3SK*4l2JJ ¬ôõËËËõs‹õò‹Òí4uÊ3K2‚R‹S‹ÊRSÜòóJüsS .ÔƒPÎù¹¥%©E ¾ù)©EyÅ¥¹ ãóóR2‹ r+#»˜Yº~tðɰ.zæ‘ ËÇÝŒ2,Ÿ€lÑï¼ß¯°±¥(+ºÿfÏ-kÓ,üÒÍñç=Û‰?^NšÜÛ×=A²»·»¯eꟴŸ‚?v°}—ê~V;¥ó`ó£ª[‘KªÏÇ­µâXÂö›÷ûZV™ßIl%Ý]]­]ÝÝ ?–þÍø3ëÏçÆúî¶î.Ɇ)ÝsåøÊç³Éü®œÏ¾‹k·Ke>çæI<<@ÌËÀî“ùendstream endobj 223 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 396 >> stream xœ~þCMMI7'øøø‹÷òù+Œ ‹ ‹ ©÷õ÷]÷Z÷Wns‚Copyright (c) 1997, 2009 American Mathematical Society (), with Reserved Font Name CMMI7.CMMI7Computer ModerniJ“øˆø(§ø§÷è÷ÒªÓ÷Øù›¡opnqnz˜v¦¨¦§¦û`ü‡~†‹z\³eÂï·÷š˜~‹ˆ}Š…€‡t;_bd‹w†˜¡¢’ž”¡•¦–¦–¥”£¯æ—ޕޗ‹•ºc±T(]ûz~™‹Ž™Œ–Ž¥á·¯°‹›”ƒpt…|rMwŸøC••—÷pŸû`•« Ü  7Ÿ « [Ò—8endstream endobj 224 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1147 >> stream xœM’mPTeÇïåîî½âî®w µ»·É)ðXÍóed})J)§FD¸°»‹Ë₉¼®ìzb B–·XÉMQ++µidôK å“M2½ˆŽáœKºÀ8Ó—gž3gæ÷?¿ç<4¥ £hšÖ˜Sv˜¦oÏË iyQ˜ü Ä7%MU©AË€Vuz‘ªC.îÂôyCÓ¶¢*³½°Ô‘—kqŠ1Y±¢)))q™¸"!!IÜ`•yY™61%Ói‘¬™N¥(SíYy’³TŒYcq: WÇÇ»\®¸LkQœÝ‘».v™èÊsZÄR‘ä8 e‹›í6§øF¦Ug†‹›9Ívka±Srˆ)ölÉa£(*Üž%å˜V¬‰]JQÛ¨Ôfj ¥§ ”@Í¡Â)-5W1¤T”…ºI¯¦;éûaÙaÝ Í¼ÃtËžHÙSÑ)'èžQìeä|ÜÇãü‘¢[Bh¢#ü?KqF<¸‡ì'ïò{ £½ð¢c¾ƒ3p®t v_jÁ œ/îÚÓµ¶ƒ¹°³8£xw†mp‘ò¶ŠNìèÔŸÅ·ÆË:Ÿ2È ÓÆcâ/ç¾:ñýÑÜ~a¯Çm…ÃÜþ“®ž.kïÍõg×]<¡È<Á0IæOÄ ‡ N¡¶¡¡p¬®Á—]Üã6×Snò 4ý¾; .w ˜Ïš<ÆiÔNN>ê/ObÆÝÙç1Œðb ׯÀýhÔ˜n“H¢Þ¿"õ2øZû›>ï*í²T{á¨GøäÆ•«ÀÝ=¿:é•]kÒRŒ$쫨/E&eVÓƒÉj‡æˆµ&£òPMõkP¬ì~ê$F‡0.D3µœ™2ãm¾¥ üþ(3>þKSV.W´å?I:ß<Û9d|ü‡æÐl§Yûiâkÿ7ÕOO\epŒÔðàƒºƒ­D‡ú|ܸ0ù3LÆ(Ô}ÔuàãŽ×úÜ•¦-İMx›„•am#‰øš¨¯“¨_·6WÌwüh|OaŸC?U`DªßĨU7*s×Öº=àm+5Þ‹ù–¬"YŸC6’yD¸\Q÷pîcµõ ¿ßDÃ5á kBƦµ_nÇ !¼è§euˆ‘—ãÁé?×üÄœÂ>M3´¹\PR&>ÒÇ–=1F¥Ò”A‰ßmÍBdq@6·¢­±> !{›Ø`ø­¹B¸*ѯ8¡ÕÞòk#(ê?å; endstream endobj 225 0 obj << /Filter /FlateDecode /Length 162 >> stream xœ]O1ƒ0 Üó ÿ Vê‚XèÂЪjûà8(NÂÐß—èÐá,ïN>Ë®¿öìÈGôø¢Ö±‰4û%"Á@£cQ+0ÓÎÊÄI!»›ïO X d7~×ÉçI]ʪÞBè ÍA#EÍ#‰¦ªÚÆÚV›?i vwž¨-PJŸ‹ÿPr4—8n.1§Ò´4ÉÓï™àCNÁ ñ^2SÃendstream endobj 226 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 301 >> stream xœcd`ab`dddsö Ž4±ÔH3þaú!ËÜÝýóÈO/ÖÆnæn–…ßW }ÏüžÊÿ=I€…‘1¯¸©Ç9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU;OL:çç”–¤)øæ§¤åå$–N-É/````´c`ìb`bdd±ùÑÁ÷K {ÁO–=Œ?¬ö0ÿÈþ))úý(ÛìÅÝ‹—”tWÉÿUg«)ê..ZÔ=GþûÑ?ŸØª»K–%gÉñ/þi¿„í·ütö=\{¸÷Ìçáb^¬§k$endstream endobj 227 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 340 >> stream xœcd`ab`dddwö Ž441UH3þaú!ËÜý»ï§×Ï&Önæn–•ßO }OüÃÿ=B€™‘1¿´Å9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU€8NB9çç”–¤)øæ§¤å10001Ée ¶ G±h&ýèàû9÷{ÕfÆ{?¾3ÿTÿ^%:gn÷üù•ÝUò6²UUv——Ïíž#Ï÷£ãwß‚_Áóÿgþ¡ú»LtBí„ÆÝÓ¦L™ÖÛÝÛ6]þ÷«_­s:&ÕuK6455tvwN¨—ç+^üÓ~!Ûoéi웹6sËq±ˆ¥ÕópnžÍÃļ =Ÿ~endstream endobj 228 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ35Ö33V0P°bS#S …C.=C aŒä\®Bc° PÂ@y 0243©pòäÒ÷ôU()*MåÒ*çÒ÷ªåÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]´4±ðÉXÏlzÏöíý¿ïï¿ÿ¿þëú¨‡º:B]+úÞûûþÞß·Aøï~ µÿö_ f`ärõTä]D™endstream endobj 229 0 obj << /Filter /FlateDecode /Length 163 >> stream xœ]O1à Üy? ¡BíeI— ­ª¶ ÆD 1ˆ¡¿o I‡gé|wòYtýµ'—¸xD/LÜ:2g¿D@>àèˆÕ’ige¤ÝM‡÷' _ h7~׊çIª²ª·xƒsЀQÓˆ¬©ª¶±¶eHæOÚƒÝJ¶ò¬.Å(9šK79,1"¥Ò´4Éáï™àCNñì 2LS> stream xœ3¶Ô32V0P0bcK3…C.=C aŒä\®Bc3° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-œ3§äÿ÷âïÿÿÿÿ§}~ÿ!¹]/.ìâ°›üåW¼ÿŸÚúÿÿkf­úëý·Ý¼e‡ÞøfÝ5M"Æ`VC—«§B š±EDendstream endobj 231 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ3¶Ô32V0PcSc#…C.=C aŒä\®BcC° Pal•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pVr\¢&Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g™œø9lÔ—/*ªb‘~ùe½ç¯¿¿ªà±4û®àúmî~ÞïäÃщ X¸\=¹Çq4endstream endobj 232 0 obj << /Filter /FlateDecode /Length 173 >> stream xœ3¶Ô32V0P0bc3…C.=C aŒä\®BcC° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬ä¸DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j çˆq¾|y­ç>÷êXþÿÿŸªtÿ4õV¬þŸW\þ«ƒ¡ËÕS! ›I<endstream endobj 233 0 obj << /Filter /FlateDecode /Length 219 >> stream xœ3¶Ô32V0P0RÐ5´P0"c…C.=C (Âɹ\… Ʀ`ASC Ⱥ À’Nž\úž¾ %E¥©\úá@•\ú@e\úNÎ @Ê%hj,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶p ·bz‹„?GlFs”±Á¼&Þ­?¾üòýÛ¦gÿ;ÌY›Yܡϣ/ÿ>Å!FžßñåçYx¿ÈY/ÿÿ;Ò4êaëmï)Ü7ÖlÛpèDñ.WO…@.‰ÇHLendstream endobj 234 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3¶Ô32V0CcK3…C.=CˆŒ‘œËU¨`laQhbfè¥ÀÂÔ̤ÀÉ“KßÓW¡¤¨4•K?¨šKߨ”Kß)ÀYÁKß%hr,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1ÇèèŸYë¼÷ÿÿÿÿÏ”?uÂ~?1þàûåomý×ÿð3Tøš®ýÉU¾, \®ž \«JCÜendstream endobj 235 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ3¶Ô32V0P0bcSs…C.=C aŒä\®B#K° Pa ĺ@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<Û|ùÿßµkêÿÛíªÿýľþ? ü òxë¹ê ƒ—«§B êÞ:7endstream endobj 236 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ3¶Ô32V0P0QÐ54W0²T01WH1ä2Ð30Š!Œ‘œËU¨`dbT01@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[àUUÿ;:âÿ?÷°ùß'(ïÿu>¾\u4dÖÒ X¸\=¹5=?endstream endobj 237 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ3¶Ô32V0P0bcS3…C.=C aŒä\®Bc° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­¸Â¡ÿäj‘üþÿè@ãHœoPC—«§B Rá9"endstream endobj 238 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ3¶Ô32V0PÐ5&† ÆF )†\z >Âɹ\…@y° P•H‹TÆÉ“KßÓW¡¤¨4•K?¨ŒKߨ†Kß)ÀYÈq‰Ë¥ï¦ïìì䨨è{õsé;çç”ææµØÙqyº(¨­ø9GàAÓ!…G‡ ‹²vU,ªQþúÿÿ×øÿ(à‡„Ã!vñòÐÝ“CV-`bPàrõTäšñB$endstream endobj 239 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ3¶Ô32V0CcKc#…C.=CˆŒ‘œËU¨`laUhe…<¹ô=}JŠJS¹ôÃj¸ô=€ ¸ôœ ¹ô]¢æÅré»é;;»¹66úÞ º@çüœÒܼb ;;.OµsÒ6ñs=¹ªRáä–ûþׯÿÿSm“.ÿ™µä ƒ —«§B š;endstream endobj 240 0 obj << /Filter /FlateDecode /Length 177 >> stream xœ3¶Ô32V0P0bcSc#…C.=C aŒä\®Bc° Pab•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôú:ÄÏakk+9ù‚ã^µ_µùËÿiîÿÿw¥iÔÿ­·½ÿ¶ ÝöNÚ¶máÃ\ L\®ž \k™5Ëendstream endobj 241 0 obj << /Filter /FlateDecode /Length 192 >> stream xœ3¶Ô32V0B]Csc 2RH1ä2Ð30‹Âɹ\… Æf`AK¨°”“'—¾§¯BIQi*—~8P—¾P—¾S€³‚!—¾K4ÐÌX.}7}gg7 7ÀÆFߨKß9?§47¯¨ÅÎŽËÓEAmÅœžCÝ6 ž\µ™È²üP~‹ôË¿êÿýþÿÿÿ¯wû¿¾Õ»¾eG¢žöºJýÄ ƒ8ûÿ 05$þäªF.WO…@.ËðCèendstream endobj 242 0 obj << /Filter /FlateDecode /Length 166 >> stream xœ3¶Ô32V0P0bcsc#…C.=C aŒä\®Bc° Pad•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔV´iΨð÷™µêÄ,ñq³^ì’Û¿þõ0Ðt‰?¹*€‘A€ËÕS! Ä3Fendstream endobj 243 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ3¶Ô32V0P0bcc#…C.=C aŒä\®B# ° Paj•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔM2ˆP¬ˆ-}–”Äa[¿5Ym…¼bóM?Ýö69éµF,Áì§¶Ý_˜´j¹@PÖƒL \®ž \e3Ñendstream endobj 244 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ3¶Ô32V0P0bcC…C.=C aŒä\®BcC° Paĺ@@`ihfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïତ\¢fÇré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…¼Í"ÿ@S%þäªHáýÿÁàDù‡æÿÿ¯Ý-ïºuëpD¢ ƒ—«§B ”Û:!endstream endobj 245 0 obj << /Filter /FlateDecode /Length 157 >> stream xœ3¶Ô32V0CcKc#…C.=CˆŒ‘œËU¨`laUhe…<¹ô=}JŠJS¹ôÃj¸ô=€ ¸ôœ ¹ô]¢æÅré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµs-Ž.ÿ¯¶ê§žÂßÿÈ`ý?ñ6ñ¤¬°?Æ«³\ap`árõTäPÆ9endstream endobj 246 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ3¶Ô32V0P0bcsc#…C.=C aŒä\®Bc° Pad•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔV´yéÚŸ\å›ò¡ùyöÞú[ïã¿í¾þÿíÒÿ¿3ëÿŽoý¿õw#ƒ—«§B Þ;7éendstream endobj 247 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3¶Ô32V0P0bc c#…C.=aŒä\®Bc3° Pah•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔV¼ð²Îš3kmÂ9F†ýÿ·ÞÛÿÿ¿jýò·Ë¦ÿÿÿqõÿ¿ÿ€ûãÿw%e–ßÊbP`ârõTä7?)endstream endobj 248 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ3¶Ô32V0P0bcsc#…C.=C aŒä\®Bc° Pad•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôv*º¿íò?Œo›¾t{tö®˜°k¿cË—¯›o¹Wûê¯|¯¯ùžŸ¶°”ÄwûÌZrý#ƒ—«§B PÑ;Uendstream endobj 249 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ3¶Ô32V0P0RÐ54W0"#…C.=C (Âɹ\… Æ&`AK Ⱥ À’Nž\úž¾ %E¥©\úá@•\ú@e\úNÎ †\ú.Ñ@Sc¹ôÝôÝ€Ü}o v.}çüœÒܼb ;;.Oµm^ºö'Wù¦ühJ{ýõþ®ïÑÿ¿Mûÿwéþw«þï¿[õþcôÿèÿñëã×G&ÿp\7·ê‹Ð£m»næbP`ârõTäí¥EXendstream endobj 250 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ3¶Ô32V0P0QÐ5S06U05RH1ä2Ð30 !Œ‘œËU¨`l`T0µ2L€X×Ì,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ܘ0GGo‹Ÿëõøÿ°NèüšÐrµÝ'&®† ý¯}#wnuÁ‡Y L\®ž \ù_?Æendstream endobj 251 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ3¶Ô32V0P0QÐ5S06U05RH1ä2Ð30 !Œ‘œËU¨`l`T0µ2L€X×Ì,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­8cÆaQðäj‘ñƒ{¿ÿCA5ÿÜj¾[Ä…š^C…¾^gÙ´µODÓÔaƒ—«§B Û@endstream endobj 252 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ3¶Ô32V0Pc33…C.=C aŒä\®Bc#° Pa ĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ôáHX¹ü?üZúÿ§Ca¥©·ÒC¹úÿÿ_í ŠBDT[*Áò@ðÛ×…ÁËÕS! ìtAïendstream endobj 253 0 obj << /Filter /FlateDecode /Length 225 >> stream xœ3¶Ô32V0P0QÐ5S06U05RH1ä2Ð30 !Œ‘œËU¨`l`T0µ2L€X×Ì,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-xƨùÿÿCö&ö¹yÂÏ*|“¾ýuOuö¯ÿï³¾-¹jSýÍöâó ¿Þ~ž¸îçã¼ùÝ÷ÿÿú¾Tmõúªèª…Ñ¢[Û¶‰ñˆñÖÿëÀÂàÀåê©È AN> stream xœ3¶Ô32V0P04VÐ5S06V05RH1ä2Ð30Š!Œ‘œËU¨`hiT0µ0éºf`I'O.}O_…’¢ÒT.ýp J.} 2.}§gC.}—h ©±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmaër(nïµ%».ýÕ¿ôÿÒÿëÿÿrÕþÿíÿ·ÿî¿ý>¿îÛ7¹{w¾u`apàrõTäQþ>^endstream endobj 255 0 obj << /Filter /FlateDecode /Length 189 >> stream xœ3¶Ô32V0P0SÐ5S02S05RH1ä2Ð30 !Œ‘œËU¨`hiT0µ2Ì€XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµb¬'‡|ûpïÞß·ï·ÿ®ßþûÿßõÿÿÿÿÿéÿ¥¿â—®›õ2QWcU«ÚJ.WO…@.0”?¦endstream endobj 256 0 obj << /Filter /FlateDecode /Length 186 >> stream xœ3¶Ô32V0P0U0W06Q0¶TH1ä2Ð30Š!Œ‘œËU¨`daT062LØÜ,åäÉ¥ïé«PRTšÊ¥TÇ¥ïTÄ¥ïà¬`È¥ï 43–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<Û¾üÿÿŸá“v´·Ü[øÐs•`tDbbk›øCö9ªB÷ÉÜ|ÛÕVè˜öÙÿÿ¿•A€‘ËÕS! Ï 6iendstream endobj 257 0 obj << /Filter /FlateDecode /Length 159 >> stream xœ3¶Ô32V0P04VÐ54P02W’)†\z†@a „1’s¹ Ê À‚ FP›XÖÉ“KßÓW¡¤¨4•K?(É¥ïTÇ¥ïà¬`È¥ï 46–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[sóÿ^û÷÷üºnš8§k¨ç*VF.WO…@.ø*—endstream endobj 258 0 obj << /Filter /FlateDecode /Length 116 >> stream xœ3¶Ô32V0P0S04Q06V0´TH1ä2Ð30 !Œ‘œËU¨`dfT0Ò ¶¡‰XÊÉ“KßÓW¡¤¨4•K?¨ŽKßCÁ”Kß)ÀYÁKß%hd,—§‹Býÿÿ ÿÿÿ?à >—«§B ÿ‰(7endstream endobj 259 0 obj << /Filter /FlateDecode /Length 117 >> stream xœ3¶Ô32V0P04F¦ † )†\z†@>Âɹ\…@I° „ah$t*€ÀÐĬÆÉ“KßÓW¡¤¨4•K?¨ŽKßL:8+ré»D åòtQc¨o¨oøAl9.WO…@.™#ùendstream endobj 260 0 obj << /Filter /FlateDecode /Length 167 >> stream xœ3¶Ô32V0P0bcs…C.=C aŒä\®B#3° Pº@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-<úü×ë_¯×…müì:9D¼ÿ?2øy(ûÞ>&.WO…@..;õendstream endobj 261 0 obj << /Filter /FlateDecode /Length 157 >> stream xœ3¶Ô32V0P04F¦ ÆF )†\z†@>Âɹ\… †`A *¨Œ“'—¾§¯BIQi*—~8P—¾P —¾S€³‚!—¾K4ÐÈX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶AGáŸþäý<:õÿÿŸ­pü¯¶²N"€‘A€ËÕS! œ¼*endstream endobj 262 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ3¶Ô32V0P0BcS#…C.=C Âɹ\… Æ`Ac ÊRNž\úž¾ %E¥©\úá@u\ú@E\úNÎ †\ú.Ñ@3c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ)æ&f&².m›&áaNqZ÷ä:>íƒoß> e>|ÏëÀÂàÀåê©È¯ 5Ñendstream endobj 263 0 obj << /Filter /FlateDecode /Length 152 >> stream xœ3¶Ô32V0P0V04Q06S06RH1ä2Ð30 !Œ‘œËU”4 *ZÆ@lhb–sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pV0äÒw‰Ë¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ÔvòOÈúÿ§·íϬ‡, \®ž \rØ'Æendstream endobj 264 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ3¶Ô32V0P0bcs3…C.=aŒä\®BcS° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­h3Ø÷èšoPýšyl»þVÅM_}éË*cùËßO^_ö÷×¾ù«¿¿úû÷ÿÝ_¿gÁ!öoºž«ü_1(0q¹z*r!MKendstream endobj 265 0 obj << /Filter /FlateDecode /Length 209 >> stream xœ3¶Ô32V0P0QÐ5T06U01WH1ä2Ð30 !Œ‘œËU¨`l`T0±2L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[$% £pùÜ®þ(Ôª¿|üúþÿ¬c¾á{Û¾yÁ™¶QǶ½í“|LÓ“ÿüÚß{Výÿmú­[‰¯Dž,¹ªèÀÂàÀåê©È$ûDlendstream endobj 266 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ3¶Ô32V0P0TÐ5T0¶P01SH1ä2Ð30 !Œ‘œËU¨`lfT012 XDåœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ ¹ô]¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j+Ú´Þ&oÊÚzùÉÉÇÿÿ¿]úÿÿ·Ý×ÿÿß6‚ÿÝŠÿÿïë- þÿÿÿÆøÿ[02p¹z*r·²H=endstream endobj 267 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ3¶Ô32V0P04UÐ5S06W05RH1ä2Ð30Š!Œ‘œËU¨`dhT0µ0éºf`I'O.}O_…’¢ÒT.ýp J.} 2.}§g Ç%hj,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[éúªÂð?ü˜çÔÀÁÐÀåê©È~ë0ƒendstream endobj 268 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ3¶Ô32V0P0RÐ5S02Q05RH1ä2Ð30 !Œ‘œËU¨`dhT0µ2Œ€X×Ì,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬ä¸D åÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j+]Ÿ\M1¼ÿLQ¨4õbP`ârõTäÝ6+endstream endobj 269 0 obj << /Filter /FlateDecode /Length 183 >> stream xœ3¶Ô32V0PcKc#…C.=C aŒä\®BcS° Pal•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ô«0}h¾PÅ¿¯¦žíÛ|í£ÿf=qœ¡'+ÄúBü`alýÿlµ•ëyÄ“²ÃÞó¼N8ȶ€‰AËÕS! ÝÎ5°endstream endobj 270 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ3¶Ô32V0P0bcSc#…C.=C aŒä\®B#K° Paj•pòäÒ÷ôU()*MåÒªâÒ÷*áÒw pV0äÒw‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]Ôždg‘¾|Ý­é‹ø’뎭KlkJÿß™µþ›cõmÿÚ­EË]»&aÀÈ Àåê©Èý™3›endstream endobj 271 0 obj << /Filter /FlateDecode /Length 395 >> stream xœ]’ÁnÂ0DïùŠüÁŽwAB¾Ð ‡VUÛŽSå@8ôï;³†z¤¯Ç³Ënާ—Ó4ÞêÍû:§Ï|«‡qê×|ïkÊõ9Sµuu?¦Ûƒì7]º¥Ú_»åëgÉ5 òPø­»ä͇o½}Ú–KiîóuéR^»é;W‡¦‰‡aˆUžúG~Wnœ‡G©ó±Hšm,R·'îb‘ºž¸Eê2±‹EêbŠEê·Ä>©wÄ‹Ô{ JL@!ÂÆ›•§•‡7«–V6Þ¬ZZµçhrxŸ2shrªvŠÂ`Å’ˆ° f%PA,j€°‘bÅ~“›F`¿¢ wé,xDì!a*Ñh²AÁØÄF Æ&6ºmCD¯bý ÇŽh& r"VŒ±Q@+¢ ÈÑ)þl ÈwÕB6œ†" ZÈfGD@µ R¤\k)R@6¨4g$¢€Ávë¹D\3.ìs?ët_×<Ýl«mk¹¬ã”ÿ™Þª¡êûUÎpendstream endobj 272 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ31Ö³0R0P0VÐ54S01Q06WH1ä2Ð30Š!Œ‘œËU¨`b`T052@¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[ðüÐt …ëÙ_²]çPû«þ«?üÒß/ûÿwý‚¾Áÿÿ×o½ÿ¶üÛõ\‰Ø-{ ÅI´>l} ’üÿò‰ôò? ,\®ž \~œKendstream endobj 273 0 obj << /Filter /FlateDecode /Length 204 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-x~ðAãC9ƒ/ùŽl_f_û2û¿çþ¯ûÿ_ÊÿÿÿŸõ0ø3kmýÿ¿ë¾þÿ}ýwfý¶i·b×I;æL“hmfe`ärõTäù@Jendstream endobj 274 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ô35R0P0bc SS…C.=C aŒä\®Bcc° Paĺ@†¦Æff 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚÂ3²/næçÈ÷Ü7ûR¾÷·_*$nçÿÿ”5GÏVÿuÜÖ×ÞÞku@OlÚ´i¢bõ&]Z«ïý²Ä¶ôRÿ&.WO…@.¢µ@üendstream endobj 275 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-hKøàð¡ùâÃö¾/ÍÌ~ø‹wßÿÿÿÿ®Ï>ªÿ:nË® ªV<ø$eŸÏc÷íÛÿý÷÷›~hþ§ÿ?êªç*î“n{'þæeݨcÈÍ£#¡ÁÐÀÁåê©Èˆ%Kžendstream endobj 276 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ31Ô35R0P0QÐ5R0¶P05UH1ä2Ð30 !Œ‘œËU¨`llT052L€X×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-‹1czØúà„ÿã×ëÄcôâYÿ‚^uu‚Û_¨É‹Ü÷ýúåþ=ûêÿõ?·ÈÙþ_uM\m…hù¯èÒm{—n¸t#‘µM›GÇ €‘A€ËÕS! k{F¿endstream endobj 277 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ31Ô35R0P0VÐ5R0¶T05UH1ä2Ð30 !Œ‘œËU¨`ljT052ŒX×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-pœ1Áñ!ûâÇŽÌUz“ª¼—¾þúêºo–möÿõqîÿ,™9¾P¸7¹6&÷ríõíÿÃÿ?¹Zÿÿ÷û_ÿKv_w½dÛë\Ý6¡­mb< \®ž \<Kendstream endobj 278 0 obj << /Filter /FlateDecode /Length 206 >> stream xœ3µÐ³0R0P0bSSs…C.=C aŒä\®BS° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº((56<¹’ò`GµãþüÛßþûÿû?¬_ï}éË^}ÎBÖ?g$ض?JÿÊ~Ë__ÿoúõõKêLqÑ`dàrõTäÄQOÓendstream endobj 279 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ35Ó35T0P0bSSs…C.=Âɹ\… ¦†`A * Èu €ÀÄÈĤÄÉ“KßÓW¡¤¨4•K?¨žKߨ˜Kß)ÀYÈq‰šË¥ï¦ïìì䨨è{+èeœósJsóŠZìì¸<]ýO®8yØ=CþpÝ¿ÿÿ¿ÿÿ¿îŸcùÿÿÿåÿýýÐÇÿŸ þó¿ÿ¿ÿëÿÿ¯íÿÿ?þÿ—ý ™_/'\èèÀÄ Àåê©ÈPQYendstream endobj 280 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ3²Ô³´T0P0aKSs…C.=C aŒä\®B#3° Paĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(<¹T˜[ÿ;xyd9ïF.WO…@.>(endstream endobj 281 0 obj << /Filter /FlateDecode /Length 199 >> stream xœ37Ó34R0P0bscSs…C.=C aŒä\®B3K° Pa ĺ@@`bdbRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(˜²­]¯¶øäñÔË®—þÿݲÿÿÿo—þÿÿÛÁÉÕÿÉ*À䀵ÞXÿÿ¿ïzÿÍ™s™OÌßÚÀÁÐÀåê©ÈÏ7kçendstream endobj 282 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ33Ñ3µP0P0UÐ5R0Ò– )†\z†@A „1’s¹ LM À‚ f†@†)ë€åœ<¹ô=}JŠJS¹ôà ¹ô=€ª¸ôœ€”K4ÐÐX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶àÎéƒÌåEäšx²HTù>T“›\åûÒüòë*ßÿKîÿºï¿öÿ¿í—ÿÿ)ÿj«c×ÿÿvéÿß™ù±ë¾n›þ;3wé¶i·"rY7ŠHlãqL8èÀÂàÀåê©ÈzÝQ(endstream endobj 283 0 obj << /Filter /FlateDecode /Length 231 >> stream xœ31Ó34V0P0QÐ5R01R0µTH1ä2Ð30 !Œ‘œËU¨`lnT032L€X×È,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïତ\¢†Æré»é;;»¹66úÞ º@çüœÒܼb ;;.Oµ…g™šñ4èï’z¡[2ãË|Ï_µñÿæÙ×ÿ®ÿý&åªÝj«¶n̓5Íü‰olÛÛ>Üã}"±^q³OcóÛ÷ûîóþý_õ×ݨ»Q·‚;¤B$ ¦²)&¶:t`apàrõTäO_endstream endobj 284 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ33Ò3²P0P0RÐ5R03P05WH1ä2Ð30 !Œ‘œËU”4 *˜ZF@¬ "€rNž\úž¾ %E¥©\úá@…\ú@U\úNÎ †\ú.Ñ@Cc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÂaûOY®ŒÓ¸3›¾mÏÞzoÿû»ú¿c_ï/2þnÁÍèúëÿ­¿ë04pp¹z*r¤µNßendstream endobj 285 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ33Ò3²P0P0b3Ss…C.=C aŒä\®B ¤XÂ0b]  0121)qòäÒ÷ôU()*MåÒ*ãÒ÷“NÎ †\ú.Ñ@³c¹ôÝôÝ€Ü}o] Œs~Nin^1P±—§‹‚ÚŠîÿŸ4N2Ýð{£»ë×íµ[¿l{}=Ww××Ûk·ì-{]²;¶ëuíþÛ·ÿÚÅ–¬ûõeöÕ}{Õ¾Ö­÷Ü[7ûR~ü²/³¯¿Ü}¨¼‰Gá‘„’€ù.WO…@.êqSHendstream endobj 286 0 obj << /Filter /FlateDecode /Length 452 >> stream xœ]“Ánœ@Dï|°0ÌtÛ’5ûâC¬(ÉÀ0XÌ"¼>äï]UØ9äP+=–©®îf.ÏOÏÛzk/?kù]oí²nóQ߯G©íT_×­éC;¯åöEú-oãÞ\ŒûŸ¿{mñB]N~ßêåדõç¡rëû>–zŒÛkmº.?,Knê6ÿ÷WôóÄ´|½Ú—,Ç/°f)x€á.Ÿò0ïó)•Ès:;ôÄ9Ÿò!i#«V2QÀDì³4bÈЉC–€wÄ”%àH´,'â˜%àBD„A1"cD‰*YÏ$ E¸F9G:G4G…4vDØP!MND7THEVK–‚'bBÞ¤Ìéž³¤3^‘‚;g•0Ô¤Á:‡ch ™Ø‘! )db]ƒ«ÎÜ‚ÁÕNgnÁßÔ‚ÑÙPÄTÈØ¾y–€*„š¦ºp¢WÓB{ök˜¢i’ÆÙ”% 4¬Ú´nãè ƒ¡‚™Îb0Pg1 ȳŽÍS@Æpäueî8+G^WæŽëväueîXÈ‘— Q…y)`¯Oüû[æ×Î{ó}MÚòqu»éréòðά[ýwÿöëÎS-Ô|‚sëFendstream endobj 287 0 obj << /Filter /FlateDecode /Length 205 >> stream xœ31Ö3µT0P0bcSC…C.=C aŒä\®BcK° Pa ĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[¸`ATýï'F»ÿÁ'N{ùù…¯;½Pøåù¥}Üäÿòñ@™ûj«öÛ]¿îÖÓ‰e*I›æZÇìH4e`ärõTäË…E,endstream endobj 288 0 obj << /Filter /FlateDecode /Length 197 >> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcS° P•Hµ‚.P™Y”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j ž5>h|ÈÞò募ù‚æ*óëKîû¯¿ú]´僳EYûï=‘¾Ÿyûé6¡‡vÝ:ÌÍ£#¡ÁÐÀÁåê©ÈâT>ýendstream endobj 289 0 obj << /Filter /FlateDecode /Length 175 >> stream xœ31Ö3µT0P0asSC…C.=C aŒä\®Bcc° PâèZ˜X‚”8yré{ú*”•¦ré‡Õsé{sé;8+)—h Ù±\únúÎÎn@n€¾·‚.PÆ9?§47¯¨ÅÎŽËÓEAmá‚‹‡ø9_^ëÕ÷\·_þÿÿSÌÝ?M½ÿGŸ'_þ«ƒ¡ËÕS! •ö>íendstream endobj 290 0 obj << /Filter /FlateDecode /Length 184 >> stream xœ31Ö3µT0P0bcSC…C.=aŒä\®BC° Pº@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[±ÀØõϬuî÷ÿÁ“å™?Ì_~üDÊÿ«_þÖÖý þ•º.ÿi깂¡ƒËÕS! AHñendstream endobj 291 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ31Ö3µT0P0QÐ5´P06T05RH1ä2Ð30Š!Œ‘œËU¨`dfT072L€¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[¸@L ~ùßõ‡¹åÿŸ¸üò%¯ìdðoóÝÌ5±Ù-‹–\ÕÛpMBƒ¡ƒËÕS! |N@†endstream endobj 292 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X–ðè{Ë—'Wù•y¦˜¿úå¯_ÿ_ÿG–> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcS° P•Hµ‚.P™Y”8yré{ú*”•¦ré‡Õsé{sé;8+ré»DÍŽåÒwÓwvvrllô½t2Îù9¥¹yÅ@-vv\ž. j Ú&4âç°µ•â}¡por¯ûþKîÿ?jþÿÿVµÕñßv_ÏÞ6={۴Ü9a×$"[¹\=¹á|;}endstream endobj 294 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö3µT0P0TÐ5´P01T06SH1ä2Ð30Š!Œ‘œËU¨`liT052 ¨Ë,éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷jçÒwÎÏ)ÍÍ+j±³ãòtQP[± -ñh?‡ÅNSež¹ ÷÷Í~ýíWý¿ßÿàßîõõ®oÙ[íÝ&ôh×óI}8Xñ žªwÿ4õbP`ârõTädæHñendstream endobj 295 0 obj << /Filter /FlateDecode /Length 179 >> stream xœ31Ö3µT0P0bCc3…C.=C aŒä\®Bc ° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x!r¶›ENøPÊÕ0§"õÇ ß’ëÎ׿^ÿÿ ~º<úçÔÀÁÐÀåê©ÈmÓ8»endstream endobj 296 0 obj << /Filter /FlateDecode /Length 180 >> stream xœ31Ö3µT0P0bc 3…C.=C aŒä\®BcS° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-ômëªÿÿÿÿOçÀzµ•)ê 6üdßïÿÿÿ·íÞmâI»Gs³‰08°p¹z*rZ:4endstream endobj 297 0 obj << /Filter /FlateDecode /Length 172 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­X è°èòÿÉ¡5ýÉûÿ£€¿õ_ß–¬˜òêî›×š20r¹z*rAOendstream endobj 298 0 obj << /Filter /FlateDecode /Length 198 >> stream xœ31Ö3µT0P0b#c3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨í¼Ð˜¹üÿoß”8¶Š¸i·¢K·í‘ß–nÝ7oï‹GUá«¿Ü›\uoò—{S_Ý [з:[vrèºy L\®ž \é¤C9endstream endobj 299 0 obj << /Filter /FlateDecode /Length 237 >> stream xœ31Ö3µT0P0UÐ5W0¶T0µPH1ä2Ð30 !Œ‘œËU¨`llT032@X×Ü,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-lfìªÿÿ¿…Ÿ…ŸÃF}ù¢’B[¦ƒûĤ/Ý_ß¿õoý÷­f-ï¯;üÃ>ù†m{›œôa~¶Ÿçîçýý¬öCóûwúÿ¿þ­õ\õú~tEÜ—mü,Û”¶mÛpè`ÓÁÖÿÿ02p¹z*r:¨Ttendstream endobj 300 0 obj << /Filter /FlateDecode /Length 164 >> stream xœ31Ö3µT0P04UÐ54R0² R ¹ ô Â@c$çr*š€ŒŒ @š€P›XÖÉ“KßÓW¡¤¨4•K?¨”KߨŽKß)ÀYÁKß%hl,—¾›¾³³`c£ï ÔΥSš›W ÔbgÇå颠¶æá…ªªúûß÷>‰»þzé:¡C¡\¾Œ \®ž \ª¢-Cendstream endobj 301 0 obj << /Filter /FlateDecode /Length 117 >> stream xœ31Ö3µT0P0W04S06W02TH1ä2Ð30 !Œ‘œËU¨`diT0Òæ@lhf–ròäÒ÷ôU()*MåÒªãÒ÷P0åÒw pV0äÒw‰Ëåé¢Pÿÿÿ‡ÿÿÿÿ€aŸËÕS! H)Ìendstream endobj 302 0 obj << /Filter /FlateDecode /Length 119 >> stream xœ31Ö3µT0P04F †† )†\z†@>Âɹ\…@I° „ah$t*€ÀØÈܤÆÉ“KßÓW¡¤¨4•K?¨ŽKßL:8+)—h á±\ž. ò ö õþ?€Áúö ò \®ž \¶&pendstream endobj 303 0 obj << /Filter /FlateDecode /Length 171 >> stream xœ31Ö3µT0Pac S#…C.=C aŒä\®B# ° Pa ĺ@†–Ææ†¦ 5Nž\úž¾ %E¥©\úá@ \ú@Õ\úNÎ †\ú.Ñ@Ãc¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚Ú‚6æËëcK¯sO )*]ç /ÿ|ê<úäªC—«§B )=endstream endobj 304 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ31Ö3µT0P0b#SC…C.=C aŒä\®BcK° Paĺ@†&– %Nž\úž¾ %E¥©\úá@õ\ú@Å\úNÎ @Ê%hv,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[Ñ&¢±åÿ“«j›*$½~Y[7}ýÒ¯/«âöM¿¾ôeÕ¯ú_uýú²_þÆû~ý]k~ùïïúßuÿðþ¿{‰ÌÝþŸ²&02p¹z*rÑêKoendstream endobj 305 0 obj << /Filter /FlateDecode /Length 221 >> stream xœ31Ö3µT0P0QÐ5T01P05RH1ä2Ð30 !Œ‘œËU¨`ljT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[èy”µ‰m^ó‡öu½ìþÚMþòqoõÿ¿[ÕVÙ~ßð®c·æAʼnLù SŸH\VÜ(aÞ~ûï~­;ñÿßêoY›¸Ôª»k剠¬  ˜¸\=¹RHendstream endobj 306 0 obj << /Filter /FlateDecode /Length 174 >> stream xœ31Ö3µT0P0RÐ5T01R05TH1ä2Ð30 !Œ‘œËU¨`liT052@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[Ñ&êºü§©çÉ縷ÞÛÿÿÝ‚„_oâרþÖÿ¿+8¸\=¹WK”endstream endobj 307 0 obj << /Filter /FlateDecode /Length 153 >> stream xœ31Ö3µT0P04WÐ5W01T0µPH1ä2Ð30Š!Œ‘œËU¨`dlT035éº (éäÉ¥ïé«PRTšÊ¥TÉ¥ïTÆ¥ïà¬`È¥ï 45–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­t}U!ñ|âµ™µ”A€‘ËÕS! Å.1²endstream endobj 308 0 obj << /Filter /FlateDecode /Length 154 >> stream xœ31Ö3µT0P0VÐ5W02W0µPH1ä2Ð30 !Œ‘œËU¨`dlT032@]s°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶ÒõÉÕ‰÷ÿ1Á¿Ã'W58¸\=¹»í:Mendstream endobj 309 0 obj << /Filter /FlateDecode /Length 203 >> stream xœ31Ö3µT0P0ac3…C.=C aŒä\®BcK° Paĺ@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-Vl«pøÐüðågCùö÷.?l­Øÿϱ¶HÄ»õЋú®Œ¿X?ìX·ÿÿ>ßà¸Co b;%ÖÞØp¨ÂÀqC—«§B ”£AËendstream endobj 310 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ31Ö3µT0P0bc3…C.=C aŒä\®Bcc° Pº@@`dfaRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-xbÔÄÏa£7¯óÈ ñ¥_®MH,±úú1þÿÉUõ÷ž˜ÄgÞþ¶íÒ ƒØ®[‡#:°08p¹z*r5;oendstream endobj 311 0 obj << /Filter /FlateDecode /Length 337 >> stream xœ]’Mnƒ@ …÷œ‚ÆN¤È›t“E«ªíÈ`*DÈ¢·ï³'颋écü÷bïNç—ó4nåî}Ó§nå0Nýª·ù¾&-/ú=NEÊ~LÛƒü7]»¥Ø^»åëgÑ:d~뮺ûhÚÚ?Õ9)ͽޖ.éÚMßZ«JŽÃ …Ný¿§°Ï—áZÉâpà^²8ô†Éâ †I²¸© {Éâ&ªdqÓâ°½ˆ+p´Ü؈ h}#‰+0û+£S2D“訪’WF e(—²™ nÈE›™¢¸k• MÈ‘ÍLðJî)@x%÷[W†¸ð aÜ>±!&2"†uЃqÍ>c%& ý9Œ‰Ø§ªÌ>c"ö©ª½!&2…Ö*c‹ÏuÙBí4ž—P¦ûºê´ùýø}ØYŒ“þØ2/–UBÅ/ȬÑendstream endobj 312 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ35Ô34S0P0RÐ5T01Q07SH1ä2Ð30 !Œ‘œËU¨`bhT072Œ€X$”sòäÒ÷ôU()*MåÒ*äÒ÷ªâÒw pVr\¢†Æré»é;;»¹66úÞ@Ý\úÎù9¥¹yÅ@-vv\ž. j 8ÿÿÿ×ÿë¿þ­-½£'(rüϬgžÿÈàOósãÒíÿwõþnÙv(Z´máæKX¸\=¹õÎP2endstream endobj 313 0 obj << /Filter /FlateDecode /Length 190 >> stream xœ37Ö3°P0P0QÐ5T07T05QH1ä2Ð30 !Œ‘œËU¨`ffT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈŬ± pBÌþÿfMi®-xøˆÿÿõÿõúë¹Òñ^r7¼¼Û¾IxoŒ1Ø‘X$Í<……A€‘ËÕS! %>Mäendstream endobj 314 0 obj << /Filter /FlateDecode /Length 136 >> stream xœ5L»Â@ CŒù ÿÍåŽ †ªC¯TœR™Sa£ ý_þ\$%vl'ó-s8¼!,> stream xœ33Õ37W0P0as …C.=C aŒä\®BSc° P•Hµ‚.P¡¡9H…“'—¾§¯BIQi*—~8P9—¾P-—¾S€³‚!—¾K4ÐèX.}7}gg7 7ÀÆFß[A(㜟Sš›W ÔbgÇå颠¶pÎÞ'ñ,r¶ì-~Ê_(Ü›\ŹWýÛ¾ùw}ûÿ§©÷ßu×Ù¸{³ÿf_Û›YºtéµiÓ¦Gq{{;fffèê*IM÷^°Ë3³*núõÓ½/Åò{Ç–^-íÛßÀÁÐÀåê©È OGendstream endobj 316 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ342Ñ37W0P0bC#C #…C.=C Âɹ\… ††f`Q 2 Èu* -Œ,L@Šœ<¹ô=}JŠJS¹ôÃA:¸ô=€Ê¹ôœ ¹ô]¢ÆÇré»é;;»¹66úÞ º@çüœÒܼb;;.O5†uW×?¹"¸È@øÏ£ŒGÿÿÝŠÿÿÿwfýÿmÓaXìíR )˜úC96©7áÿßÖÿÿwHþpÜz¤ƒI…Cóïúo¸\=¹¹x‰Aendstream endobj 317 0 obj << /Filter /FlateDecode /Length 215 >> stream xœ3µÐ31W0P0QÐ5T05Q05UH1ä2Ð30 !Œ‘œËU¨`biT052L€X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[p§_Á±FáCó!~…|O[ÕKþÞ—þ_úúëkö­o[åö?þÿÿÿäÐ÷ÿë¾+Μ¿mß¶ëyÛ®çênÙ&áÍc0툎Á†ÄéE L\®ž \žIFendstream endobj 318 0 obj << /Filter /FlateDecode /Length 226 >> stream xœ]AŽÃ E÷œ‚È$¨RĦ³ébFUÛ 0‹DÓEo_Ûig1‹oéÁ76¿Û¾%¯²;¶%œa•)—Øà¾> stream xœ]’1nÃ0 EwŸB7°#GT\’%C‹¢í™ɾéÖÍU}|ëæïŸYd(üÞݤþl›mJRšz¹Ï]’¥ËW©MÇaàJrÿïÊû’qž¡~ËEÑï¸ã¢è{Å=E/Љ‹b»Qì¹(¶ˆ3ØZðVƒCË&ƒ Ä&£Ý^Øä#%E¸s¦Hp%sF 6T¬´IBûd#m’›«ÎÙl1Ù€H¢A²&DM•'j…MÀ 8° ¨F‰V¨ÙÛ[¿UŸ]øÚ—Ke‘¼Ú–m‹º¼1Ëß0O³f9¨úïý™eendstream endobj 320 0 obj << /Filter /FlateDecode /Length 217 >> stream xœ31Ò31Q0P°TÐ5T01W0µPH1ä2Ð30 !Œ‘œËU¨`lnT0µ2@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[py‚žü'^ùõ×ý­ ûÂ8ì9>g/˜ñeµç×/ó½¶þŠ­_«=~Õÿkv«¿þZTøoÿúÐõ¯ÕVm}Yµ¯ÇoÛ!¿I3Ö8¶20r¹z*r M'endstream endobj 321 0 obj << /Filter /FlateDecode /Length 222 >> stream xœ3¶Ð3R0P0UÐ5T01R0µPH1ä2Ð30 !Œ‘œËU¨`lfT0µ2LX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ð¼±R¢þ'Ë¿ý__ÿjŽ?Üî‡Uyè{¿,õÚåý+±ªoeÉô¥G3ô~ØU³¯È_pÿþ¾í—'õÿ¿ºnõÿ¿¥¯Wý½ô79W+iÉuÇVF.WO…@.²ÿPÄendstream endobj 322 0 obj << /Filter /FlateDecode /Length 169 >> stream xœ32Ô32R0P0WÐ5T02S0µPH1ä2Ð30 !Œ‘œËU¨`haT0µ2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ø)ñ¿b}üú¯¿þc#\ÿø›µ?nõ5ß°ÝÞ<Õ\ L\®ž \'°?dendstream endobj 323 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ò31Q0P°TÐ5T01R06WH1ä2Ð30 !Œ‘œËU¨`ldT0¶2,X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[pðcBó!›Äj&WÅM}i·}Ý^ý/û¶~ý¿âküúЗuÓ£N®ºž™7}鶦ۜ‰ ˜¸\=¹¹=òendstream endobj 324 0 obj << /Filter /FlateDecode /Length 211 >> stream xœ31Ò31Q0B]C3#cs…C.=C°(œ‘œËU¨`bhT056€ê1K9yré{ú*”•¦ré‡Õqé{qé;8+9.Ñ@3c¹ôÝôÝ€Ü}o v.}çüœÒܼb ;;.Oµm‡çÈ(d_\ív£6ŠsoÄúUù—¾®¾þëÕ¾ý×ÿií¿þký×øWûcë¦í¿îýuUìÒ¯·¢–eÔ›Ñú°éJýúë¿þÖ¯Mrf•cP`ârõTä´Jàendstream endobj 325 0 obj << /Filter /FlateDecode /Length 178 >> stream xœ36Õ30T0P0WÐ5T01T06WH1ä2€!Œ‘œËU¨`llT0¶2ÌX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[’cù¸EBáK~ÆMö« öF{¨¯X¿ôúºÕ[eyõãY__ÿ··N$®`hààrõTä$ø;Rendstream endobj 326 0 obj << /Filter /FlateDecode /Length 201 >> stream xœ3¶Ð3R0P°TÐ5T0¶P0µPH1ä2Ð30 !Œ‘œËU¨`daT0µ2@X×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÈÏ>ÃþOçßú××ÿíÂçYäçØrø~ýr?nêÿø×¯ÿGýú¥jýõU_ö¯­º49Ô{×]½KwT7r³q1(0q¹z*rÈ>Eendstream endobj 327 0 obj << /Filter /FlateDecode /Length 188 >> stream xœ3¶Ð3R0P°TÐ5T0¶T06WH1ä2Ð30 !Œ‘œËU¨`diT0¶2@]C°œ“'—¾§¯BIQi*—~8P!—¾P—¾S€³‚!—¾K4ÐÐX.}7}gg7 7ÀÆFߨ›Kß9?§47¯¨ÅÎŽËÓEAmÁÁÏMü÷²H ÷|Ét)ê×ëKëeõ¯¯ÿñúסwK®½Õ½ôaÚ ÇÜ&n§Ã¬ Œ\®ž \fA9ûendstream endobj 328 0 obj << /Filter /FlateDecode /Length 219 >> stream xœ]±ŽÂ0 †÷> stream xœ•XKÛ6¾û7ô`äR­ŠÔ‹Z4Z Ú쥑‹íƒ"Ók9²äHòzEÿ{‡oÊÖnRìaWäð›á<>Îì×iàãiÀÔïâ0 ¦w“¯,V§êWq˜þ¾˜üü7¡á4ó³„$ÓÅv"àiLSúAO‡É-vÌ›‡!¬!Ú6UÕx$õ³,ˆÐ¹¬ïø^„ û΢5ÞœPø‡h#MP·óæŸQJƒd„MйSØ8E; L):ËÅŒbÔ7Zy‚N¶Àû]ÙixnW«Ï$èØ²M ¡Þ›ƒYAŠ)*=®=†ƒM}ã­ŠûÇS ÷O"~$H§‹ÛÉâ§%zùÒ›Ç$†ãÝ–5Ë[þqôx[³Ê.mOuÑ—M- 1@Å™Fú ¥ôËüê„t\Šê*gû•gжéºcÛlô‡&ØÏ0ÕÐü¦ÝýÁž‘ ¤Õ[q倂”q+Ô|Þ³¢Ÿ)!ŒjvÞä}®À­ÝèïÇ ¦>%ñt®—7“¡[Šæp<õŒ/pǧ¨ëó¶Ÿ—õ†=˳ֆ’¿ZÄK.Ô`àLÑNË艕D¹Ta‹ÞT6ŒrŸš²›ñµTŒ›rdTö±‡üp¬ŒÁÌšJ`¦™ñ“ñέz#ÆÆa9*OMÂuy<*… ¯¨-þl@yÅ< á„ª´óni&exYký76'²Ë’F$¼ýìA"€R‚Gó‰D‘’ìæ¤“`%~@S¬EÔø1†ŸüÅQ¹™ks©Î7umk #7…q`ºa¼çç!¦¥ Ð ìñè[–׿©îé%àG‘«Ï¾Íê>KÝ’@zkÊ„£¶Õ†gâ)Q«!’ƈ€du‚6ms4¸oí³òþ·ÛïÖ³§_¶Æ<'o/Þi®”`ί|¡öÕ ©ýF}1鳄D$ˆxÕ@/›èKTñë…óV -~"çæaê'àC(š&DÞí½GEEÈA"LCÁ©-»kt›MÍËÆ¢ %E¤²í£¬Î †ªÅ;“F‚Ž4³¥‘¨Iñ(¾9¤6%`¨MhO$µ¥rŒ½¤¶Tvs#Ô&À€gÚ¼¬F„áÎ*-HÜ[¸Cx74ŒªÜ¤ ï¡øÊ܃“Ðç¼ð„•IŒ¾h1Šò¢hÚ ˜X=rçg0•/G¢€¿uS(*Ú ˆeÈCùn1ù ~þ<çdendstream endobj 330 0 obj << /Filter /FlateDecode /Length 348 >> stream xœ]’Anƒ0E÷œ‚€ Œ Í&ÙdѪj{c†ˆE²èíûgHºèâYz‰gü§8]ΗiÜòâcÓ—lù0Ný*÷ù±&É;¹ŽSæ|Þi{š­é—¬8½Ååûg‘dØý=Þ¤ø¬|e?¹½(ͽܗ˜dÓU²¶,¹ÎdêÿýU•{E7<·ºÄ†X³Öx'ø^õÈ;Á‹ªn´Í•SÞ UÅb@ª‘ (¢´5±áCÝ©¢«â›XB›š š%ÇT7“gª! ‡ÔhHBíµ’6| I8“ì\t€6 š™pW²û¢‰Èîë4!>ÙÐÚ±%U| ²¯†Ðž Odµø0 Ôj6 ZðB Tcä –¹<ª"`°¥v¨øÚ:T ÎÞøõ˜úÜ:8¯9ÉÓc]eÚlºlzthÆIþp™­ÊAö ¯a³pendstream endobj 331 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ3¶Ô32V0Cc 3…C.=CˆŒ‘œËU¨`lnQhbfè¥ÀÂÔ̤ÀÉ“KßÓW¡¤¨4•K?¨šKߨ”Kß)ÀYÁKß%hr,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1Çh»Ì¬õO*ÿÁ“U_þÿ¿õIø¯¾÷¥/{T_VÅM¿_sùË}߯µöÛßþý]÷3´Å9Ö°ÒÔû+ƒ#—«§B TþDÈendstream endobj 332 0 obj << /Filter /FlateDecode /Length 161 >> stream xœ3¶Ô32V0P°P02Q06T01WH1ä2Ð30 !Œ‘œËU¨`ddT022,€ØÈÄ,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨m”‘Hd›ÿÿÿ?ß°ýÿAàÛ¬†.WO…@.*-Æendstream endobj 333 0 obj << /Filter /FlateDecode /Length 210 >> stream xœ3¶Ô32V0P0VÐ5S06S05RH1ä2Ð30 !Œ‘œËU¨`ldT0µ2ŒX×Ì,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­¹axÙß·äüŠ­s¾þ_ý߯+³–ì«w5WÏô××__×ǯR¿&æ/ùê¿äÿõ—VçjëýÛÿ7ùrÔߺkosM¹\=¹ü,Mendstream endobj 334 0 obj << /Filter /FlateDecode /Length 156 >> stream xœ3¶Ô32V0P0V0S06S01PH1ä2Ð30Š!Œ‘œËU¨`ldT062ŒØÌ,åäÉ¥ïé«PRTšÊ¥TÇ¥ïTÄ¥ïà¬`È¥ï 43–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-lføò >Ï訙Õ<‡ÂûÀÈ Àåê©Èʰ2©endstream endobj 335 0 obj << /Filter /FlateDecode /Length 200 >> stream xœ3¶Ô32V0P0VÐ5T06S01WH1ä2Ð30 !Œ‘œËU¨`ldT0±2ŒX×Ð,çäÉ¥ïé«PRTšÊ¥TÈ¥ïTÅ¥ïà¬`È¥ï 44–KßMßÙÙ È °±Ñ÷êæÒwÎÏ)ÍÍ+j±³ãòtQP[ÐÞ¨ÐøòåËg÷²H_Ê_~)ÿ¯Úÿ—_÷ÿùxÿÿÿÿšúêÿÿŸ«ÿ;öõÖ{»c·l“ðNÚ¶mÛ†„L \®ž \›ÊD¯endstream endobj 336 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ3¶Ô32V0P0bcSs…C.=C aŒä\®Bc° Paĺ@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-äe:ȾàCóå‹ íì&ךK_/¯?¹*¦>¶noöÒ¥ë¦Á@Ó¥C.¶/Õ½—^8>9dƒ—«§B æþ=žendstream endobj 337 0 obj << /Filter /FlateDecode /Length 176 >> stream xœ3¶Ô32V0P0BcS#…C.=C Âɹ\… Æ`Ac ÊRNž\úž¾ %E¥©\úá@u\ú@E\úNÎ †\ú.Ñ@3c¹ôÝôÝ€Ü}o] Œs~Nin^1P‹—§‹‚ÚŠ©å|¾Á‡ùóyl÷|ûpø6”ùþ5‡®ŽÂ– M—q{C™]­AYM  \®ž \M6Gendstream endobj 338 0 obj << /Filter /FlateDecode /Length 194 >> stream xœ3¶Ô32V0P0bcss…C.=C aŒä\®Bc° Paĺ@†Æ@hRãäÉ¥ïé«PRTšÊ¥ÔÀ¥ïTÍ¥ïà¬`È¥ï 4<–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨-xÞøòßüÿŸë£ÿÿÿíÿÿåÿŒ/³œKùÿü÷ÿ?ó¿çþÿÿ£2³ðYgÍ™µÖ…ÁËÕS! ¸7DÛendstream endobj 339 0 obj << /Filter /FlateDecode /Length 185 >> stream xœ3¶Ô32V0P0bcs3…C.=aŒä\®BcS° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­ÐØ?9ôäG6ëÿ@}üÿŸ–ýþÿüÿÿó¡ýÿ·ÿÿO8_7(ó©åøäL \®ž \AAendstream endobj 340 0 obj << /Filter /FlateDecode /Length 181 >> stream xœ3¶Ô32V0P0bcs3…C.=C aŒä\®Bc° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­t}r5åG³ìÿÿÿßVüÿ?aúËÿÿåÿÿ·Qÿÿw=‚S«ôŸ\Õ`hààrõTäA®=òendstream endobj 341 0 obj << /Filter /FlateDecode /Length 164 >> stream xœ3¶Ô32V0P0bc33…C.=aŒä\®Bc° Paĺ@@`ajfRâäÉ¥ïé«PRTšÊ¥TÏ¥ïTÌ¥ïà¬`È¥ï 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­¸ÆýÎÒ4nSìdðϱû ˆž¢zÌ7<€‘A€ËÕS! Be;endstream endobj 342 0 obj << /Filter /FlateDecode /Length 191 >> stream xœ3¶Ô32V0Ccs3…C.=CˆŒ‘œËU¨`lfQhaè¥ÀÂÔ̤ÀÉ“KßÓW¡¤¨4•K?¨šKߨ”Kß)ÀYÁKß%hr,—¾›¾³³`c£ï­  ”qÎÏ)ÍÍ+j±³ãòtQP[1‡‡û§iÌôúÿÿÿÿ´üáøÃñcí'G;á…ûþß/ÿÿ~(~½ôÿú̲½KsÆŸ¬æÎÐ`hààrõTä;ÿ@íendstream endobj 343 0 obj << /Filter /FlateDecode /Length 463 >> stream xœ]“;nÜ@Dsž‚7Xî|ºµ€0‰”(°aؾ?Caq jøö®ª‘8(o9=UÝ­9=½<¿l×{úqÜæ_õÞ¯×m9êûíã˜k?Õ×ëÖC¿\çû'éïü6îÝééÛ¸ÿþ³×êÚøûøVO?ã¹ýtnEóm©ïû8×cÜ^k÷8 åq]KW·å¿OéÒ*¦õóh¥Éƒ`,M6db*M.Ä\š<ŒÄ‡Òäa!^J“‡JœJ“Ç8—&gâRš<b-M#1P!ˆ¼Q™#3DZHÀ•“(£D£“(£D£“(£D#‘€¼9¡¹¤Äop"¢›¤Ž2oN0¡BžxsÆØ(|å¬2ê²j‡3ê²jm&"QV*£‘!‚)F¦‘¡9Sƒ™‡ ·Z»™s6,Ä´”Ì9òš2 ž&_c*ó"Ù¯a]¦•á ÖeZÙ™;B _9vC^k™9—€»!>ÌT‹¡R@Õ®E²Ö±L È޼®ÌgåÈëÊ<<‘וy ‘#/’Œy) ûu¤€º‰(`ÖøúOç[à«úzDýüqu»ëééiñE]·úïuî·U=Ôý9nò:endstream endobj 344 0 obj << /Filter /FlateDecode /Length 193 >> stream xœ31Ö3µT0P0bcc3…C.=aŒä\®BC° Pâè‘™…H‰“'—¾§¯BIQi*—~8P=—¾P1—¾S€³ã 4;–KßMßÙÙ È °±Ñ÷VÐÊ8çç”ææµØÙqyº(¨­x¥ô6ySÖÖËO>´ù¹úÿ?ÙüµÿŸï}ùÿ¿Üúÿ×þþÛ½<þÿ5 Ô½y;ÿ_þ¿êVƒ—«§B 4@HÀendstream endobj 345 0 obj << /Filter /FlateDecode /Length 213 >> stream xœ]±! †wž‚7¸;ôML]4F}Ša#x¾½¥¨ƒÃGòÑ6éßf»ßíc˜esÊ“½à,}ˆ.ãczf‹rÄ[ˆ¢SÒ;Œ_{7I4ÛƒI×WBI è«Í›óbÑóWW‡ìäð‘ŒÅlâ Ŧmaã=Œî¯´®£ÿtªT´r@º†ŠVH:tÀ(ÝE—ÀrµFiê!uÀ¨ah‹"0¤=©€Qº]ÕÀjÞó»QY¹„ÿf•ö™3Æ™/Ä(ÁCÄßӔʔ$ÄÐ|m·endstream endobj 346 0 obj << /Type /XRef /Length 547 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 347 /ID [<52201b3bb2cc9777547d19af6e3ac4e2><718226c59d6809a35da016a489de5b74>] >> stream xœí”ÍNSQ…Ïݦ-½È_-þ`½V  Q£Q¦ø*ú ¼ƒsâÀÈ8‘ôH:–(Š – ÞµçK|&vðeçôœ}÷^{c!ÿYBŸø5X¾üç©ñ8TÞ6ÇÅ7ù,ÒrÎþ9“+âc±-Ž–Ó&wı"*OòPìgÄ.qXP†iÅ%Q~H2qCñþ=/‰gÄcäA=ÞÅ®8¿ew±³!ö‹û¨ÿ‘Äiôë5Tµò šœÃ©œõªRñH¼*þBý |×w¾›âeñ´šŠšX†ú½£:”† å8M» ݾ¡õ•¬‹=P»O 3}. } \item The \file{svmdoc} file in \file{inst/doc} now is a vignette. } } \section{Changes in version 1.3-12}{ \itemize{ \item The \code{x} argument of \code{cmeans()} and \code{bclust()} is now automatically coerced to a matrix. \item Started \file{tests} directory \item New method: \code{naiveBayes()} classifier for categorical predictors \item optimization of \code{read.matrix.csr()} which used to be rather slow \item Bug fixes for the \code{svm()} interface: when the data included categorical predictors, the scaling procedure did not only affect the metric variables, but also the binary variables in the model matrix. \item Function \code{scaclust()} removed. Bug has to be fixed. } } \section{Changes in version 1.3-10}{ \itemize{ \item Now supports libsvm 2.4 } } \section{Changes in version 1.3-9}{ \itemize{ \item \code{rdiscrete()} is now simply a wrapper for \code{sample()} and provided for backwards compatibility only. \item Minor bug fixes in \code{svm()} and \code{tune()} (mostly interface issues). New plot function for objects of class \code{svm} working for the 2d-classification case. } } \section{Changes in version 1.3-7}{ \itemize{ \item \code{svm()} now supports the matrix.csr format, as handled by the \cpkg{SparseM} package. Predictors and response variable (if numeric) are scaled per default. \item A new \code{plot()} function for \code{svm()} objects visualizes classification models by plotting data and support vectors in the data input space, along with the class borders. \item A new generic \code{tune()} function allows parameter tuning of arbitrary functions using, e.g., boot strapping, or cross validation. Several convenience wrappers (e.g., for \code{svm()}, \code{nnet()}, and \code{rpart()}) do exist. } } \section{Changes in version 1.3-3}{ \itemize{ \item Bug fixes in various bclust routines: \code{stop()} if required packages are not found \item \code{svm()} now interfaces LIBSVM 2.35 which is a bug fix release. A call with invalid parameters now no longer causes R to be terminated, and the C(++) code became completely silent. \item Bugs fixed in \code{fclustIndex()} function and \code{print.fclust()}. } } \section{Changes in version 1.3-1}{ \itemize{ \item Functions \code{rmvnorm()} and \code{dmvnorm()} for multivariate normal distributions have been moved to package \cpkg{mvtnorm}. \item Bug fixes in \code{print.fclust()} and \code{fclustIndex()}. \item fixed \file{floyd.c} (ANSI C pedantic warnings) } } \section{Changes in version 1.2-1}{ \itemize{ \item Bug fixes in \file{cmeans.c}, \file{cshell.c} and \file{scaclust.c} (R header files included and unused variables removed) \item Bug fixes in \file{Rsvm.c} and \file{svm.R} (incomplete list of returned Support Vectors). \item Encapsulate kmeans call in \code{bclust()} in a \code{try()} construct, because kmeans gives an error when a cluster becomes empty (which can happen for almost every data set from time to time). } } \section{Changes in version 1.2-0}{ \itemize{ \item Added functions for bagged clustering, see help(bclust). \item \code{read.pnm()} and \code{write.pgm()} have been removed from \cpkg{e1071}, much improved versions can now be found in the new packagepixmap. \item Lots of documentation updates and bugfixes. \item Support Vector Machine interface now upgraded to libsvm V. 2.31 featuring: \itemize{ \item Multi-Class Classification \item weighting of classes for C-classification (for asymmetric sample sizes) \item \eqn{\nu}-regression \item Formula Interface \item \eqn{k}-fold cross-validation } In addition, an introductory article is provided in directory \file{docs/} (\file{svmdoc.pdf}). \item \code{classAgreement()} now features an option to match factor levels \item updated API design for the fuzzy clustering functions (\code{cmeans()}, \code{cshell()}, \code{scaclust()}). Documentation updates and function name changes (\code{cmeanscl()} to \code{cmeans()}, \code{validity.measures()} to \code{fclustIndex()}) } } e1071/build/0000755000175100001440000000000014671766073012145 5ustar hornikuserse1071/build/vignette.rds0000644000175100001440000000052714671766073014510 0ustar hornikusers‹ÅQ=OÃ0M›´ÐŠJX=ÂЊN쨊„„X¯Î¥µšØ‘mØøå —ÆéG€™H±}ïüîžß½õ=Ïk{A@«OGHK—þA…{=Úûf•FŠŸdî!BZÔ³Á·ÏïY¦´e¯È­ÒìøBH4£ÑÈ.Ý•Ô82«X"fT É2àK˜#ÃÉõÍÄU:§ÜåÛ6ûCZÅ¿J+ñCÆqý—ßp“¯îùïì«8Ñ #•†J£±ë~X˜%èh­è~ÑŽËžñŒ±à`…’õ#4Ω°Ù!ƒ´2Œ%Z 9¯uÌPòE z¹Ã.ŒózUyí¨æ_[í=O:Ò­ž®ƒPMî‹°ÛÀœ†îت‡t4Å edêÞãg®tÔlÔÓ*×ÍNKÿ¿h)ŠbÝT´1£1º~Ʊ&>Eëo)Ò…ùe1071/man/0000755000175100001440000000000014671763131011611 5ustar hornikuserse1071/man/matchControls.Rd0000644000175100001440000000547214671763131014730 0ustar hornikusers\name{matchControls} \alias{matchControls} \title{Find Matched Control Group} \usage{ matchControls(formula, data = list(), subset, contlabel = "con", caselabel = NULL, dogrep = TRUE, replace = FALSE) } \arguments{ \item{formula}{A formula indicating cases, controls and the variables to be matched. Details are described below.} \item{data}{an optional data frame containing the variables in the model. By default the variables are taken from the environment which \code{matchControls} is called from.} \item{subset}{an optional vector specifying a subset of observations to be used in the matching process.} \item{contlabel}{A string giving the label of the control group.} \item{caselabel}{A string giving the labels of the cases.} \item{dogrep}{If \code{TRUE}, then \code{contlabel} and \code{contlabel} are matched using \code{\link{grep}}, else string comparison (exact equality) is used.} \item{replace}{If \code{FALSE}, then every control is used only once.} } \description{ Finds controls matching the cases as good as possible. } \details{ The left hand side of the \code{formula} must be a factor determining whether an observation belongs to the case or the control group. By default, all observations where a grep of \code{contlabel} matches, are used as possible controls, the rest is taken as cases. If \code{caselabel} is given, then only those observations are taken as cases. If \code{dogrep = TRUE}, then both \code{contlabel} and \code{caselabel} can be regular expressions. The right hand side of the \code{formula} gives the variables that should be matched. The matching is done using the \code{\link[cluster]{daisy}} distance from the \code{cluster} package, i.e., a model frame is built from the formula and used as input for \code{\link[cluster]{daisy}}. For each case, the nearest control is selected. If \code{replace = FALSE}, each control is used only once. } \value{ Returns a list with components \item{cases}{Row names of cases.} \item{controls}{Row names of matched controls.} \item{factor}{A factor with 2 levels indicating cases and controls (the rest is set to \code{NA}.} } \author{Friedrich Leisch} \examples{ Age.case <- 40 + 5 * rnorm(50) Age.cont <- 45 + 10 * rnorm(150) Age <- c(Age.case, Age.cont) Sex.case <- sample(c("M", "F"), 50, prob = c(.4, .6), replace = TRUE) Sex.cont <- sample(c("M", "F"), 150, prob = c(.6, .4), replace = TRUE) Sex <- as.factor(c(Sex.case, Sex.cont)) casecont <- as.factor(c(rep("case", 50), rep("cont", 150))) ## now look at the group properties: boxplot(Age ~ casecont) barplot(table(Sex, casecont), beside = TRUE) m <- matchControls(casecont ~ Sex + Age) ## properties of the new groups: boxplot(Age ~ m$factor) barplot(table(Sex, m$factor)) } \keyword{manip} e1071/man/svm.Rd0000644000175100001440000002546714173734133012720 0ustar hornikusers\name{svm} \alias{svm} \alias{svm.default} \alias{svm.formula} \alias{summary.svm} \alias{print.summary.svm} \alias{coef.svm} \alias{print.svm} \title{Support Vector Machines} \description{ \code{svm} is used to train a support vector machine. It can be used to carry out general regression and classification (of nu and epsilon-type), as well as density-estimation. A formula interface is provided. } \usage{ \method{svm}{formula}(formula, data = NULL, ..., subset, na.action = na.omit, scale = TRUE) \method{svm}{default}(x, y = NULL, scale = TRUE, type = NULL, kernel = "radial", degree = 3, gamma = if (is.vector(x)) 1 else 1 / ncol(x), coef0 = 0, cost = 1, nu = 0.5, class.weights = NULL, cachesize = 40, tolerance = 0.001, epsilon = 0.1, shrinking = TRUE, cross = 0, probability = FALSE, fitted = TRUE, ..., subset, na.action = na.omit) } \arguments{ \item{formula}{a symbolic description of the model to be fit.} \item{data}{an optional data frame containing the variables in the model. By default the variables are taken from the environment which \sQuote{svm} is called from.} \item{x}{a data matrix, a vector, or a sparse matrix (object of class \code{\link[Matrix]{Matrix}} provided by the \pkg{Matrix} package, or of class \code{\link[SparseM]{matrix.csr}} provided by the \pkg{SparseM} package, or of class \code{\link[slam]{simple_triplet_matrix}} provided by the \pkg{slam} package).} \item{y}{a response vector with one label for each row/component of \code{x}. Can be either a factor (for classification tasks) or a numeric vector (for regression).} \item{scale}{A logical vector indicating the variables to be scaled. If \code{scale} is of length 1, the value is recycled as many times as needed. Per default, data are scaled internally (both \code{x} and \code{y} variables) to zero mean and unit variance. The center and scale values are returned and used for later predictions.} \item{type}{\code{svm} can be used as a classification machine, as a regression machine, or for novelty detection. Depending of whether \code{y} is a factor or not, the default setting for \code{type} is \code{C-classification} or \code{eps-regression}, respectively, but may be overwritten by setting an explicit value.\cr Valid options are: \itemize{ \item \code{C-classification} \item \code{nu-classification} \item \code{one-classification} (for novelty detection) \item \code{eps-regression} \item \code{nu-regression} } } \item{kernel}{the kernel used in training and predicting. You might consider changing some of the following parameters, depending on the kernel type.\cr \describe{ \item{linear:}{\eqn{u'v}{u'*v}} \item{polynomial:}{\eqn{(\gamma u'v + coef0)^{degree}}{(gamma*u'*v + coef0)^degree}} \item{radial basis:}{\eqn{e^(-\gamma |u-v|^2)}{exp(-gamma*|u-v|^2)}} \item{sigmoid:}{\eqn{tanh(\gamma u'v + coef0)}{tanh(gamma*u'*v + coef0)}} } } \item{degree}{parameter needed for kernel of type \code{polynomial} (default: 3)} \item{gamma}{parameter needed for all kernels except \code{linear} (default: 1/(data dimension))} \item{coef0}{parameter needed for kernels of type \code{polynomial} and \code{sigmoid} (default: 0)} \item{cost}{cost of constraints violation (default: 1)---it is the \sQuote{C}-constant of the regularization term in the Lagrange formulation.} \item{nu}{parameter needed for \code{nu-classification}, \code{nu-regression}, and \code{one-classification}} \item{class.weights}{a named vector of weights for the different classes, used for asymmetric class sizes. Not all factor levels have to be supplied (default weight: 1). All components have to be named. Specifying \code{"inverse"} will choose the weights \emph{inversely} proportional to the class distribution.} \item{cachesize}{cache memory in MB (default 40)} \item{tolerance}{tolerance of termination criterion (default: 0.001)} \item{epsilon}{epsilon in the insensitive-loss function (default: 0.1)} \item{shrinking}{option whether to use the shrinking-heuristics (default: \code{TRUE})} \item{cross}{if a integer value k>0 is specified, a k-fold cross validation on the training data is performed to assess the quality of the model: the accuracy rate for classification and the Mean Squared Error for regression} \item{fitted}{logical indicating whether the fitted values should be computed and included in the model or not (default: \code{TRUE})} \item{probability}{logical indicating whether the model should allow for probability predictions.} \item{\dots}{additional parameters for the low level fitting function \code{svm.default}} \item{subset}{An index vector specifying the cases to be used in the training sample. (NOTE: If given, this argument must be named.)} \item{na.action}{A function to specify the action to be taken if \code{NA}s are found. The default action is \code{na.omit}, which leads to rejection of cases with missing values on any required variable. An alternative is \code{na.fail}, which causes an error if \code{NA} cases are found. (NOTE: If given, this argument must be named.)} } \value{ An object of class \code{"svm"} containing the fitted model, including: \item{SV}{The resulting support vectors (possibly scaled).} \item{index}{The index of the resulting support vectors in the data matrix. Note that this index refers to the preprocessed data (after the possible effect of \code{na.omit} and \code{subset})} \item{coefs}{The corresponding coefficients times the training labels.} \item{rho}{The negative intercept.} \item{sigma}{In case of a probabilistic regression model, the scale parameter of the hypothesized (zero-mean) laplace distribution estimated by maximum likelihood.} \item{probA, probB}{numeric vectors of length k(k-1)/2, k number of classes, containing the parameters of the logistic distributions fitted to the decision values of the binary classifiers (1 / (1 + exp(a x + b))).} } \details{ For multiclass-classification with k levels, k>2, \code{libsvm} uses the \sQuote{one-against-one}-approach, in which k(k-1)/2 binary classifiers are trained; the appropriate class is found by a voting scheme. \code{libsvm} internally uses a sparse data representation, which is also high-level supported by the package \pkg{SparseM}. If the predictor variables include factors, the formula interface must be used to get a correct model matrix. \code{plot.svm} allows a simple graphical visualization of classification models. The probability model for classification fits a logistic distribution using maximum likelihood to the decision values of all binary classifiers, and computes the a-posteriori class probabilities for the multi-class problem using quadratic optimization. The probabilistic regression model assumes (zero-mean) laplace-distributed errors for the predictions, and estimates the scale parameter using maximum likelihood. For linear kernel, the coefficients of the regression/decision hyperplane can be extracted using the \code{coef} method (see examples). } \note{ Data are scaled internally, usually yielding better results. Parameters of SVM-models usually \emph{must} be tuned to yield sensible results! } \references{ \itemize{ \item Chang, Chih-Chung and Lin, Chih-Jen:\cr \emph{LIBSVM: a library for Support Vector Machines}\cr \url{https://www.csie.ntu.edu.tw/~cjlin/libsvm/} \item Exact formulations of models, algorithms, etc. can be found in the document:\cr Chang, Chih-Chung and Lin, Chih-Jen:\cr \emph{LIBSVM: a library for Support Vector Machines}\cr \url{https://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.ps.gz} \item More implementation details and speed benchmarks can be found on: Rong-En Fan and Pai-Hsune Chen and Chih-Jen Lin:\cr \emph{Working Set Selection Using the Second Order Information for Training SVM}\cr \url{https://www.csie.ntu.edu.tw/~cjlin/papers/quadworkset.pdf} } } \author{ David Meyer (based on C/C++-code by Chih-Chung Chang and Chih-Jen Lin)\cr \email{David.Meyer@R-project.org} } \seealso{ \code{\link{predict.svm}} \code{\link{plot.svm}} \code{\link{tune.svm}} \code{\link[SparseM]{matrix.csr}} (in package \pkg{SparseM}) } \examples{ data(iris) attach(iris) ## classification mode # default with factor response: model <- svm(Species ~ ., data = iris) # alternatively the traditional interface: x <- subset(iris, select = -Species) y <- Species model <- svm(x, y) print(model) summary(model) # test with train data pred <- predict(model, x) # (same as:) pred <- fitted(model) # Check accuracy: table(pred, y) # compute decision values and probabilities: pred <- predict(model, x, decision.values = TRUE) attr(pred, "decision.values")[1:4,] # visualize (classes by color, SV by crosses): plot(cmdscale(dist(iris[,-5])), col = as.integer(iris[,5]), pch = c("o","+")[1:150 \%in\% model$index + 1]) ## try regression mode on two dimensions # create data x <- seq(0.1, 5, by = 0.05) y <- log(x) + rnorm(x, sd = 0.2) # estimate model and predict input values m <- svm(x, y) new <- predict(m, x) # visualize plot(x, y) points(x, log(x), col = 2) points(x, new, col = 4) ## density-estimation # create 2-dim. normal with rho=0: X <- data.frame(a = rnorm(1000), b = rnorm(1000)) attach(X) # traditional way: m <- svm(X, gamma = 0.1) # formula interface: m <- svm(~., data = X, gamma = 0.1) # or: m <- svm(~ a + b, gamma = 0.1) # test: newdata <- data.frame(a = c(0, 4), b = c(0, 4)) predict (m, newdata) # visualize: plot(X, col = 1:1000 \%in\% m$index + 1, xlim = c(-5,5), ylim=c(-5,5)) points(newdata, pch = "+", col = 2, cex = 5) ## weights: (example not particularly sensible) i2 <- iris levels(i2$Species)[3] <- "versicolor" summary(i2$Species) wts <- 100 / table(i2$Species) wts m <- svm(Species ~ ., data = i2, class.weights = wts) ## extract coefficients for linear kernel # a. regression x <- 1:100 y <- x + rnorm(100) m <- svm(y ~ x, scale = FALSE, kernel = "linear") coef(m) plot(y ~ x) abline(m, col = "red") # b. classification # transform iris data to binary problem, and scale data setosa <- as.factor(iris$Species == "setosa") iris2 = scale(iris[,-5]) # fit binary C-classification model m <- svm(setosa ~ Petal.Width + Petal.Length, data = iris2, kernel = "linear") # plot data and separating hyperplane plot(Petal.Length ~ Petal.Width, data = iris2, col = setosa) (cf <- coef(m)) abline(-cf[1]/cf[3], -cf[2]/cf[3], col = "red") # plot margin and mark support vectors abline(-(cf[1] + 1)/cf[3], -cf[2]/cf[3], col = "blue") abline(-(cf[1] - 1)/cf[3], -cf[2]/cf[3], col = "blue") points(m$SV, pch = 5, cex = 2) } \keyword{neural} \keyword{nonlinear} \keyword{classif} e1071/man/e1071-deprecated.Rd0000755000175100001440000000051214173734134014732 0ustar hornikusers\name{e1071-deprecated} \alias{e1071-deprecated} \title{Deprecated Functions in Package e1071} \description{ These functions are provided for compatibility with older versions of package \pkg{e1071} only, and may be defunct as soon as of the next release. } %\usage{ %} \seealso{ \code{\link{Deprecated}} } \keyword{misc} e1071/man/plot.svm.Rd0000755000175100001440000000437314173734134013672 0ustar hornikusers\name{plot.svm} \alias{plot.svm} %- Also NEED an `\alias' for EACH other topic documented here. \title{Plot SVM Objects} \description{ Generates a scatter plot of the input data of a \code{svm} fit for classification models by highlighting the classes and support vectors. Optionally, draws a filled contour plot of the class regions. } \usage{ \method{plot}{svm}(x, data, formula, fill = TRUE, grid = 50, slice = list(), symbolPalette = palette(), svSymbol = "x", dataSymbol = "o", ...) } %- maybe also `usage' for other objects documented here. \arguments{ \item{x}{An object of class \code{svm}} \item{data}{data to visualize. Should be the same used for fitting.} \item{formula}{formula selecting the visualized two dimensions. Only needed if more than two input variables are used.} \item{fill}{switch indicating whether a contour plot for the class regions should be added.} \item{grid}{granularity for the contour plot.} \item{slice}{a list of named values for the dimensions held constant (only needed if more than two variables are used). The defaults for unspecified dimensions are 0 (for numeric variables) and the first level (for factors). Factor levels can either be specified as factors or character vectors of length 1.} \item{symbolPalette}{Color palette used for the class the data points and support vectors belong to.} \item{svSymbol}{Symbol used for support vectors.} \item{dataSymbol}{Symbol used for data points (other than support vectors).} \item{\dots}{additional graphics parameters passed to \code{filled.contour} and \code{plot}.} } \author{David Meyer\cr \email{David.Meyer@R-project.org}} \seealso{\code{\link{svm}}} \examples{ ## a simple example data(cats, package = "MASS") m <- svm(Sex~., data = cats) plot(m, cats) ## more than two variables: fix 2 dimensions data(iris) m2 <- svm(Species~., data = iris) plot(m2, iris, Petal.Width ~ Petal.Length, slice = list(Sepal.Width = 3, Sepal.Length = 4)) ## plot with custom symbols and colors plot(m, cats, svSymbol = 1, dataSymbol = 2, symbolPalette = rainbow(4), color.palette = terrain.colors) } \keyword{neural}% at least one, from doc/KEYWORDS \keyword{classif}% __ONLY ONE__ keyword per line \keyword{nonlinear}% __ONLY ONE__ keyword per line e1071/man/naiveBayes.Rd0000755000175100001440000000764314173734134014201 0ustar hornikusers\name{naiveBayes} \alias{naiveBayes} \alias{naiveBayes.default} \alias{naiveBayes.formula} \alias{print.naiveBayes} \alias{predict.naiveBayes} \title{Naive Bayes Classifier} \description{ Computes the conditional a-posterior probabilities of a categorical class variable given independent predictor variables using the Bayes rule. } \usage{ \S3method{naiveBayes}{formula}(formula, data, laplace = 0, ..., subset, na.action = na.pass) \S3method{naiveBayes}{default}(x, y, laplace = 0, ...) \S3method{predict}{naiveBayes}(object, newdata, type = c("class", "raw"), threshold = 0.001, eps = 0, ...) } \arguments{ \item{x}{A numeric matrix, or a data frame of categorical and/or numeric variables.} \item{y}{Class vector.} \item{formula}{A formula of the form \code{class ~ x1 + x2 + \dots}. Interactions are not allowed.} \item{data}{Either a data frame of predictors (categorical and/or numeric) or a contingency table.} \item{laplace}{positive double controlling Laplace smoothing. The default (0) disables Laplace smoothing.} \item{\dots}{Currently not used.} \item{subset}{For data given in a data frame, an index vector specifying the cases to be used in the training sample. (NOTE: If given, this argument must be named.)} \item{na.action}{A function to specify the action to be taken if \code{NA}s are found. The default action is not to count them for the computation of the probability factors. An alternative is na.omit, which leads to rejection of cases with missing values on any required variable. (NOTE: If given, this argument must be named.)} \item{object}{An object of class \code{"naiveBayes"}.} \item{newdata}{A dataframe with new predictors (with possibly fewer columns than the training data). Note that the column names of \code{newdata} are matched against the training data ones.} \item{type}{If \code{"raw"}, the conditional a-posterior probabilities for each class are returned, and the class with maximal probability else.} \item{threshold}{Value replacing cells with probabilities within \code{eps} range.} \item{eps}{double for specifying an epsilon-range to apply laplace smoothing (to replace zero or close-zero probabilities by \code{theshold}.)} } \value{ An object of class \code{"naiveBayes"} including components: \item{apriori}{Class distribution for the dependent variable.} \item{tables}{A list of tables, one for each predictor variable. For each categorical variable a table giving, for each attribute level, the conditional probabilities given the target class. For each numeric variable, a table giving, for each target class, mean and standard deviation of the (sub-)variable.} } \details{ The standard naive Bayes classifier (at least this implementation) assumes independence of the predictor variables, and Gaussian distribution (given the target class) of metric predictors. For attributes with missing values, the corresponding table entries are omitted for prediction. } \author{David Meyer \email{David.Meyer@R-project.org}. Laplace smoothing enhancement by Jinghao Xue.} \examples{ ## Categorical data only: data(HouseVotes84, package = "mlbench") model <- naiveBayes(Class ~ ., data = HouseVotes84) predict(model, HouseVotes84[1:10,]) predict(model, HouseVotes84[1:10,], type = "raw") pred <- predict(model, HouseVotes84) table(pred, HouseVotes84$Class) ## using laplace smoothing: model <- naiveBayes(Class ~ ., data = HouseVotes84, laplace = 3) pred <- predict(model, HouseVotes84[,-1]) table(pred, HouseVotes84$Class) ## Example of using a contingency table: data(Titanic) m <- naiveBayes(Survived ~ ., data = Titanic) m predict(m, as.data.frame(Titanic)) ## Example with metric predictors: data(iris) m <- naiveBayes(Species ~ ., data = iris) ## alternatively: m <- naiveBayes(iris[,-5], iris[,5]) m table(predict(m, iris), iris[,5]) } \keyword{classif} \keyword{category} e1071/man/lca.Rd0000644000175100001440000000412514246371156012641 0ustar hornikusers\name{lca} \alias{lca} \alias{print.lca} \alias{summary.lca} \alias{print.summary.lca} \alias{predict.lca} \title{Latent Class Analysis (LCA)} \usage{ lca(x, k, niter=100, matchdata=FALSE, verbose=FALSE) } \arguments{ \item{x}{Either a data matrix of binary observations or a list of patterns as created by \code{\link{countpattern}}} \item{k}{Number of classes used for LCA} \item{niter}{Number of Iterations} \item{matchdata}{If \code{TRUE} and \code{x} is a data matrix, the class membership of every data point is returned, otherwise the class membership of every pattern is returned.} \item{verbose}{If \code{TRUE} some output is printed during the computations.} } \description{ A latent class analysis with \code{k} classes is performed on the data given by \code{x}. } \value{ An object of class \code{"lca"} is returned, containing \item{w}{Probabilities to belong to each class} \item{p}{Probabilities of a `1' for each variable in each class} \item{matching}{Depending on \code{matchdata} either the class membership of each pattern or of each data point} \item{logl, loglsat}{The LogLikelihood of the model and of the saturated model} \item{bic, bicsat}{The BIC of the model and of the saturated model} \item{chisq}{Pearson's Chisq} \item{lhquot}{Likelihood quotient of the model and the saturated model} \item{n}{Number of data points.} \item{np}{Number of free parameters.} } \references{Anton K. Formann: ``Die Latent-Class-Analysis'', Beltz Verlag 1984} \author{Andreas Weingessel} \seealso{ \code{\link{countpattern}}, \code{\link{bootstrap.lca}} } \examples{ ## Generate a 4-dim. sample with 2 latent classes of 500 data points each. ## The probabilities for the 2 classes are given by type1 and type2. type1 <- c(0.8, 0.8, 0.2, 0.2) type2 <- c(0.2, 0.2, 0.8, 0.8) x <- matrix(runif(4000), nrow = 1000) x[1:500,] <- t(t(x[1:500,]) < type1) * 1 x[501:1000,] <- t(t(x[501:1000,]) < type2) * 1 l <- lca(x, 2, niter=5) print(l) summary(l) p <- predict(l, x) table(p, c(rep(1,500),rep(2,500))) } \keyword{multivariate} \keyword{cluster} e1071/man/predict.svm.Rd0000755000175100001440000000755214173734134014350 0ustar hornikusers\name{predict.svm} \alias{predict.svm} \title{Predict Method for Support Vector Machines} \description{ This function predicts values based upon a model trained by \code{svm}. } \usage{ \method{predict}{svm}(object, newdata, decision.values = FALSE, probability = FALSE, ..., na.action = na.omit) } \arguments{ \item{object}{Object of class \code{"svm"}, created by \code{svm}.} \item{newdata}{An object containing the new input data: either a matrix or a sparse matrix (object of class \code{\link[Matrix]{Matrix}} provided by the \pkg{Matrix} package, or of class \code{\link[SparseM]{matrix.csr}} provided by the \pkg{SparseM} package, or of class \code{\link[slam]{simple_triplet_matrix}} provided by the \pkg{slam} package). A vector will be transformed to a n x 1 matrix.} \item{decision.values}{Logical controlling whether the decision values of all binary classifiers computed in multiclass classification shall be computed and returned.} \item{probability}{Logical indicating whether class probabilities should be computed and returned. Only possible if the model was fitted with the \code{probability} option enabled.} \item{na.action}{A function to specify the action to be taken if \sQuote{NA}s are found. The default action is \code{na.omit}, which leads to rejection of cases with missing values on any required variable. An alternative is \code{na.fail}, which causes an error if \code{NA} cases are found. (NOTE: If given, this argument must be named.)} \item{\dots}{Currently not used.} } \value{ A vector of predicted values (for classification: a vector of labels, for density estimation: a logical vector). If \code{decision.value} is \code{TRUE}, the vector gets a \code{"decision.values"} attribute containing a n x c matrix (n number of predicted values, c number of classifiers) of all c binary classifiers' decision values. There are k * (k - 1) / 2 classifiers (k number of classes). The colnames of the matrix indicate the labels of the two classes. If \code{probability} is \code{TRUE}, the vector gets a \code{"probabilities"} attribute containing a n x k matrix (n number of predicted values, k number of classes) of the class probabilities. } \note{ If the training set was scaled by \code{svm} (done by default), the new data is scaled accordingly using scale and center of the training data. } \author{ David Meyer (based on C++-code by Chih-Chung Chang and Chih-Jen Lin)\cr \email{David.Meyer@R-project.org} } \seealso{ \code{\link{svm}} } \examples{ data(iris) attach(iris) ## classification mode # default with factor response: model <- svm(Species ~ ., data = iris) # alternatively the traditional interface: x <- subset(iris, select = -Species) y <- Species model <- svm(x, y, probability = TRUE) print(model) summary(model) # test with train data pred <- predict(model, x) # (same as:) pred <- fitted(model) # compute decision values and probabilites pred <- predict(model, x, decision.values = TRUE, probability = TRUE) attr(pred, "decision.values")[1:4,] attr(pred, "probabilities")[1:4,] ## try regression mode on two dimensions # create data x <- seq(0.1, 5, by = 0.05) y <- log(x) + rnorm(x, sd = 0.2) # estimate model and predict input values m <- svm(x, y) new <- predict(m, x) # visualize plot (x, y) points (x, log(x), col = 2) points (x, new, col = 4) ## density-estimation # create 2-dim. normal with rho=0: X <- data.frame(a = rnorm(1000), b = rnorm(1000)) attach(X) # traditional way: m <- svm(X, gamma = 0.1) # formula interface: m <- svm(~., data = X, gamma = 0.1) # or: m <- svm(~ a + b, gamma = 0.1) # test: newdata <- data.frame(a = c(0, 4), b = c(0, 4)) predict (m, newdata) # visualize: plot(X, col = 1:1000 \%in\% m$index + 1, xlim = c(-5,5), ylim=c(-5,5)) points(newdata, pch = "+", col = 2, cex = 5) } \keyword{neural} \keyword{nonlinear} \keyword{classif} e1071/man/Discrete.Rd0000755000175100001440000000302514173734133013642 0ustar hornikusers\name{Discrete} \alias{ddiscrete} \alias{pdiscrete} \alias{qdiscrete} \alias{rdiscrete} \title{Discrete Distribution} \description{ These functions provide information about the discrete distribution where the probability of the elements of \code{values} is proportional to the values given in \code{probs}, which are normalized to sum up to 1. \code{ddiscrete} gives the density, \code{pdiscrete} gives the distribution function, \code{qdiscrete} gives the quantile function and \code{rdiscrete} generates random deviates. } \usage{ ddiscrete(x, probs, values = 1:length(probs)) pdiscrete(q, probs, values = 1:length(probs)) qdiscrete(p, probs, values = 1:length(probs)) rdiscrete(n, probs, values = 1:length(probs), ...) } \arguments{ \item{x,q}{vector or array of quantiles.} \item{p}{vector or array of probabilities.} \item{n}{number of observations.} \item{probs}{probabilities of the distribution.} \item{values}{values of the distribution.} \item{...}{ignored (only there for backwards compatibility)} } \details{ The random number generator is simply a wrapper for \code{\link{sample}} and provided for backwards compatibility only. } \author{Andreas Weingessel and Friedrich Leisch} \examples{ ## a vector of length 30 whose elements are 1 with probability 0.2 ## and 2 with probability 0.8. rdiscrete (30, c(0.2, 0.8)) ## a vector of length 100 whose elements are A, B, C, D. ## The probabilities of the four values have the relation 1:2:3:3 rdiscrete (100, c(1,2,3,3), c("A","B","C","D")) } \keyword{distribution} e1071/man/stft.Rd0000755000175100001440000000317214173734134013064 0ustar hornikusers\name{stft} \title{Computes the Short Time Fourier Transform of a Vector} \usage{stft(X, win=min(80,floor(length(X)/10)), inc=min(24, floor(length(X)/30)), coef=64, wtype="hanning.window")} \alias{stft} \arguments{ \item{X}{The vector from which the stft is computed.} \item{win}{Length of the window. For long vectors the default window size is 80, for short vectors the window size is chosen so that 10 windows fit in the vector.} \item{inc}{Increment by which the window is shifted. For long vectors the default increment is 24, for short vectors the increment is chosen so that 30 increments fit in the vector.} \item{coef}{Number of Fourier coefficients} \item{wtype}{Type of window used} } \description{This function computes the Short Time Fourier Transform of a given vector \code{X}. First, time-slices of length \code{win} are extracted from the vector. The shift of one time-slice to the next one is given by \code{inc}. The values of these time-slices are smoothed by mulitplying them with a window function specified in \code{wtype}. For the thus obtained windows, the Fast Fourier Transform is computed.} \value{Object of type stft. Contains the values of the stft and information about the parameters. \item{values}{A matrix containing the results of the stft. Each row of the matrix contains the \code{coef} Fourier coefficients of one window.} \item{windowsize}{The value of the parameter \code{win}} \item{increment}{The value of the parameter \code{inc}} \item{windowtype}{The value of the parameter \code{wtype}} } \author{Andreas Weingessel} \seealso{plot.stft} \examples{x<-rnorm(500) y<-stft(x) plot(y) } \keyword{ts} e1071/man/probplot.Rd0000755000175100001440000000433414173734134013746 0ustar hornikusers\name{probplot} \alias{probplot} \alias{lines.probplot} \title{Probability Plot} \description{ Generates a probability plot for a specified theoretical distribution, i.e., basically a \code{\link[stats]{qqplot}} where the y-axis is labeled with probabilities instead of quantiles. The function is mainly intended for teaching the concept of quantile plots. } \usage{ probplot(x, qdist=qnorm, probs=NULL, line=TRUE, xlab=NULL, ylab="Probability in \%", ...) \S3method{lines}{probplot}(x, h=NULL, v=NULL, bend=FALSE, ...) } \arguments{ \item{x}{A data vector for \code{probplot}, an object of class \code{probplot} for the \code{lines} method.} \item{qdist}{A character string or a function for the quantiles of the target distribution.} \item{probs}{Vector of probabilities at which horizontal lines should be drawn.} \item{line}{Add a line passing through the quartiles to the plot?} \item{xlab, ylab}{Graphical parameters.} \item{h}{The y-value for a horizontal line.} \item{v}{The x-value for a vertical line.} \item{bend}{If \code{TRUE}, lines are ``bent'' at the quartile line, else regular \code{abline}s are added. See examples.} \item{\dots}{Further arguments for \code{qdist} and graphical parameters for lines.} } \author{Friedrich Leisch} \seealso{\code{\link[stats]{qqplot}}} \examples{ ## a simple example x <- rnorm(100, mean=5) probplot(x) ## the same with horizontal tickmarks at the y-axis opar <- par("las") par(las=1) probplot(x) ## this should show the lack of fit at the tails probplot(x, "qunif") ## for increasing degrees of freedom the t-distribution converges to ## normal probplot(x, qt, df=1) probplot(x, qt, df=3) probplot(x, qt, df=10) probplot(x, qt, df=100) ## manually add the line through the quartiles p <- probplot(x, line=FALSE) lines(p, col="green", lty=2, lwd=2) ## Make the line at prob=0.5 red lines(p, h=0.5, col="red") ### The following use the estimted distribution given by the green ### line: ## What is the probability that x is smaller than 7? lines(p, v=7, bend=TRUE, col="blue") ## Median and 90\% confidence interval lines(p, h=.5, col="red", lwd=3, bend=TRUE) lines(p, h=c(.05, .95), col="red", lwd=2, lty=3, bend=TRUE) par(opar) } \keyword{hplot} e1071/man/ica.Rd0000755000175100001440000000342314173734134012637 0ustar hornikusers\name{ica} \alias{ica} \alias{plot.ica} \alias{print.ica} \title{Independent Component Analysis} \usage{ ica(X, lrate, epochs=100, ncomp=dim(X)[2], fun="negative") } \arguments{ \item{X}{The matrix for which the ICA is to be computed} \item{lrate}{learning rate} \item{epochs}{number of iterations} \item{ncomp}{number of independent components} \item{fun}{function used for the nonlinear computation part} } \description{ This is an R-implementation of the Matlab-Function of Petteri.Pajunen@hut.fi. For a data matrix X independent components are extracted by applying a nonlinear PCA algorithm. The parameter \code{fun} determines which nonlinearity is used. \code{fun} can either be a function or one of the following strings "negative kurtosis", "positive kurtosis", "4th moment" which can be abbreviated to uniqueness. If \code{fun} equals "negative (positive) kurtosis" the function tanh (x-tanh(x)) is used which provides ICA for sources with negative (positive) kurtosis. For \code{fun == "4th moments"} the signed square function is used. } \value{ An object of class \code{"ica"} which is a list with components \item{weights}{ICA weight matrix} \item{projection}{Projected data} \item{epochs}{Number of iterations} \item{fun}{Name of the used function} \item{lrate}{Learning rate used} \item{initweights}{Initial weight matrix} } \references{ Oja et al., ``Learning in Nonlinear Constrained Hebbian Networks'', in Proc. ICANN-91, pp. 385--390. Karhunen and Joutsensalo, ``Generalizations of Principal Component Analysis, Optimization Problems, and Neural Networks'', Neural Networks, v. 8, no. 4, pp. 549--562, 1995. } \note{Currently, there is no reconstruction from the ICA subspace to the original input space.} \author{Andreas Weingessel} \keyword{multivariate} e1071/man/rbridge.Rd0000755000175100001440000000113214173734134013514 0ustar hornikusers\name{rbridge} \alias{rbridge} \title{Simulation of Brownian Bridge} \usage{ rbridge(end = 1, frequency = 1000) } \arguments{ \item{end}{the time of the last observation.} \item{frequency}{the number of observations per unit of time.} } \description{ \code{rwiener} returns a time series containing a simulated realization of the Brownian bridge on the interval [0,\code{end}]. If W(t) is a Wiener process, then the Brownian bridge is defined as W(t) - t W(1). } \seealso{ rwiener } \examples{ # simulate a Brownian bridge on [0,1] and plot it x <- rbridge() plot(x,type="l") } \keyword{distribution} e1071/man/gknn.Rd0000644000175100001440000000752514077325003013036 0ustar hornikusers\name{gknn} \alias{gknn} \alias{gknn.default} \alias{gknn.formula} \alias{print.gknn} \alias{predict.gknn} \title{Generalized k-Nearest Neighbors Classification or Regression} \description{ \code{gknn} is an implementation of the k-nearest neighbours algorithm making use of general distance measures. A formula interface is provided. } \usage{ \method{gknn}{formula}(formula, data = NULL, ..., subset, na.action = na.pass, scale = TRUE) \method{gknn}{default}(x, y, k = 1, method = NULL, scale = TRUE, use_all = TRUE, FUN = mean, ...) \method{predict}{gknn}(object, newdata, type = c("class", "votes", "prob"), ..., na.action = na.pass) } \arguments{ \item{formula}{a symbolic description of the model to be fit.} \item{data}{an optional data frame containing the variables in the model. By default the variables are taken from the environment which \sQuote{gknn} is called from.} \item{x}{a data matrix.} \item{y}{a response vector with one label for each row/component of \code{x}. Can be either a factor (for classification tasks) or a numeric vector (for regression).} \item{k}{number of neighbours considered.} \item{scale}{a logical vector indicating the variables to be scaled. If \code{scale} is of length 1, the value is recycled as many times as needed. By default, numeric \emph{matrices} are scaled to zero mean and unit variance. The center and scale values are returned and used for later predictions. Note that the default metric for data frames is the Gower metric which \emph{standardizes} the values to the unit interval.} \item{method}{Argument passed to \code{dist()} from the \code{proxy} package to select the distance metric used: a function, or a mnemonic string referencing the distance measure. Defaults to \code{"Euclidean"} for metric matrices, to \code{"Jaccard"} for logical matrices and to \code{"Gower"} for data frames. } \item{use_all}{controls handling of ties. If true, all distances equal to the kth largest are included. If false, a random selection of distances equal to the kth is chosen to use exactly k neighbours.} \item{FUN}{function used to aggregate the k nearest target values in case of regression.} \item{object}{object of class \code{gknn}.} \item{newdata}{matrix or data frame with new instances.} \item{type}{character specifying the return type in case of class predictions: for \code{"class"}, the class labels; for \code{"prob"}, the class distribution for all k neighbours considered; for \code{"votes"}, the raw counts.} \item{\dots}{additional parameters passed to \code{dist()}} \item{subset}{An index vector specifying the cases to be used in the training sample. (NOTE: If given, this argument must be named.)} \item{na.action}{A function to specify the action to be taken if \code{NA}s are found. The default action is \code{na.pass}. (NOTE: If given, this argument must be named.)} } \value{ For \code{gknn()}, an object of class \code{"gknn"} containing the data and the specified parameters. For \code{predict.gknn()}, a vector of predictions, or a matrix with votes for all classes. In case of an overall class tie, the predicted class is chosen by random. } \author{ David Meyer (\email{David.Meyer@R-project.org}) } \seealso{ \code{\link[proxy]{dist}} (in package \pkg{proxy}) } \examples{ data(iris) model <- gknn(Species ~ ., data = iris) predict(model, iris[c(1, 51, 101),]) test = c(45:50, 95:100, 145:150) model <- gknn(Species ~ ., data = iris[-test,], k = 3, method = "Manhattan") predict(model, iris[test,], type = "votes") model <- gknn(Species ~ ., data = iris[-test], k = 3, method = "Manhattan") predict(model, iris[test,], type = "prob") } \keyword{nonlinear} \keyword{classif} e1071/man/fclustIndex.Rd0000755000175100001440000001753314173734134014402 0ustar hornikusers\name{fclustIndex} \title{Fuzzy Cluster Indexes (Validity/Performance Measures)} \usage{fclustIndex(y, x, index = "all")} \alias{fclustIndex} \arguments{ \item{y}{An object of a fuzzy clustering result of class \code{"fclust"}} \item{x}{Data matrix} \item{index}{The validity measures used: \code{"gath.geva"}, \code{"xie.beni"}, \code{"fukuyama.sugeno"}, \code{"partition.coefficient"}, \code{"partition.entropy"}, \code{"proportion.exponent"}, \code{"separation.index"} and \code{"all"} for all the indexes.}} \description{ Calculates the values of several fuzzy validity measures. The values of the indexes can be independently used in order to evaluate and compare clustering partitions or even to determine the number of clusters existing in a data set.} \details{ The validity measures and a short description of them follows, where \eqn{N} is the number of data points, \eqn{u_{ij}} the values of the membership matrix, \eqn{v_j} the centers of the clusters and \eqn{k} te number of clusters. \describe{ \item{\bold{gath.geva}:}{ Gath and Geva introduced 2 main criteria for comparing and finding optimal partitions based on the heuristics that a better clustering assumes clear separation between the clusters, minimal volume of the clusters and maximal number of data points concentrated in the vicinity of the cluster centroids. These indexes are only for the cmeans clustering algorithm valid. For the first, the ``fuzzy hypervolume'' we have: \eqn{F_{HV}=\sum_{j=1}^{c}{[\det(F_j)]}^{1/2}}, where \eqn{F_j=\frac{\sum_{i=1}^N u_{ij}(x_i-v_j)(x_i-v_j)^T}{\sum_{i=1}^{N}u_{ij}}}, for the case when the defuzzification parameter is 2. For the second, the ``average partition density'': \eqn{D_{PA}=\frac{1}{k}\sum_{j=1}^k\frac{S_j}{{[\det(F_j)]}^{1/2}}}, where \eqn{S_j=\sum_{i=1}^N u_{ij}}. Moreover, the ``partition density'' which expresses the general partition density according to the physical definition of density is calculated by: \eqn{P_D=\frac{S}{F_{HV}}}, where \eqn{S=\sum_{j=1}^k\sum_{i=1}^N u_{ij}}. } \item{\bold{xie.beni}:}{ This index is a function of the data set and the centroids of the clusters. Xie and Beni explained this index by writing it as a ratio of the total variation of the partition and the centroids $(U,V)$ and the separation of the centroids vectors. The minimum values of this index under comparison support the best partitions. \eqn{u_{XB}(U,V;X)=\frac{\sum_{j=1}^k\sum_{i=1}^Nu_{ij}^2{||x_i-v_j||}^2}{N(\min_{j\neq l}\{{||v_j-v_l||}^2\})}} } \item{\bold{fukuyama.sugeno}:}{ This index consists of the difference of two terms, the first combining the fuzziness in the membership matrix with the geometrical compactness of the representation of the data set via the prototypes, and the second the fuzziness in its row of the partition matrix with the distance from the $i$th prototype to the grand mean of the data. The minimum values of this index also propose a good partition. \eqn{u_{FS}(U,V;X)=\sum_{i=1}^{N}\sum_{j=1}^k (u_{ij}^2)^q(||x_i-v_j||^2-||v_j-\bar v||^2)} } \item{\bold{partition.coefficient}:}{ An index which measures the fuzziness of the partition but without considering the data set itself. It is a heuristic measure since it has no connection to any property of the data. The maximum values of it imply a good partition in the meaning of a least fuzzy clustering. \eqn{F(U;k)=\frac{tr (UU^T)}{N}=\frac{}{N}=\frac{||U||^2}{N}} \itemize{ \item \eqn{F(U;k)} shows the fuzziness or the overlap of the partition and depends on \eqn{kN} elements. \item \eqn{1/k\leq F(U;k)\leq 1}, where if \eqn{F(U;k)=1} then \eqn{U} is a hard partition and if \eqn{F(U;k)=1/k} then \eqn{U=[1/k]} is the centroid of the fuzzy partion space \eqn{P_{fk}}. The converse is also valid. } } \item{\bold{partition.entropy}:}{ It is a measure that provides information about the membership matrix without also considering the data itself. The minimum values imply a good partition in the meaning of a more crisp partition. \eqn{H(U;k)=\sum_{i=1}^{N} h(u_i)/N}, where \eqn{h(u)=-\sum_{j=1}^{k} u_j\,\log _a (u_j)} the Shannon's entropy. \itemize{ \item \eqn{H(U;k)} shows the uncertainty of a fuzzy partition and depends also on \eqn{kN} elements. Specifically, \eqn{h(u_i)} is interpreted as the amount of fuzzy information about the membership of \eqn{x_i} in \eqn{k} classes that is retained by column \eqn{u_j}. Thus, at \eqn{U=[1/k]} the most information is withheld since the membership is the fuzziest possible. \item \eqn{0\leq H(U;k)\leq \log_a(k)}, where for \eqn{H(U;k)=0} \eqn{U} is a hard partition and for \eqn{H(U;k)=\log_a(k)} \eqn{U=[1/k]}. } } \item{\bold{proportion.exponent}:}{ It is a measure \eqn{P(U;k)} of fuzziness adept to detect structural variations in the partition matrix as it becomes more fuzzier. A crisp cluster in the partition matrix can drive it to infinity when the partition coefficient and the partition entropy are more sensitive to small changes when approaching a hard partition. Its evaluation does not also involve the data or the algorithm used to partition them and its maximum implies the optimal partition but without knowing what maximum is a statistically significant maximum. \itemize{ \item \eqn{0\leq P(U;k)<\infty}, since the \eqn{[0,1]} values explode to \eqn{[0,\infty)} due to the natural logarithm. Specifically, \eqn{P=0} when and only when \eqn{U=[1/k]}, while \eqn{P\rightarrow\infty} when any column of \eqn{U} is crisp. \item \eqn{P(U;k)} can easily explode and it is good for partitions with large column maximums and at detecting structural variations. } } \item{\bold{separation.index (known as CS Index)}:}{ This index identifies unique cluster structure with well-defined properties that depend on the data and a measure of distance. It answers the question if the clusters are compact and separated, but it rather seems computationally infeasible for big data sets since a distance matrix between all the data membership values has to be calculated. It also presupposes that a hard partition is derived from the fuzzy one.\cr \eqn{D_1(U;k;X,d)=\min_{i+1\,\leq\,l\,\leq\,k-1}\left\{\min_{1\,\leq\,j\,\leq\,k}\left\{\frac{dis(u_j,u_l)}{\max_{1\leq m\leq k}\{dia(u_m)\}}\right\}\right\}}, where \eqn{dia} is the diameter of the subset, \eqn{dis} the distance of two subsets, and \eqn{d} a metric. \eqn{U} is a CS partition of \eqn{X} \eqn{\Leftrightarrow D_1>1}. When this holds then \eqn{U} is unique. } } } \value{ Returns a vector with the validity measures values. } \references{ James C. Bezdek, \emph{Pattern Recognition with Fuzzy Objective Function Algorithms}, Plenum Press, 1981, NY.\cr L. X. Xie and G. Beni, \emph{Validity measure for fuzzy clustering}, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. \bold{3}, n. 8, p. 841-847, 1991.\cr I. Gath and A. B. Geva, \emph{Unsupervised Optimal Fuzzy Clustering}, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. \bold{11}, n. 7, p. 773-781, 1989.\cr Y. Fukuyama and M. Sugeno, \emph{A new method of choosing the number of clusters for the fuzzy $c$-means method}, Proc. 5th Fuzzy Syst. Symp., p. 247-250, 1989 (in japanese).} \author{Evgenia Dimitriadou} \seealso{\code{\link{cmeans}}} \examples{ # a 2-dimensional example x<-rbind(matrix(rnorm(100,sd=0.3),ncol=2), matrix(rnorm(100,mean=1,sd=0.3),ncol=2)) cl<-cmeans(x,2,20,verbose=TRUE,method="cmeans") resultindexes <- fclustIndex(cl,x, index="all") resultindexes } \keyword{cluster} e1071/man/skewness.Rd0000755000175100001440000000325714173734134013752 0ustar hornikusers\name{skewness} \alias{skewness} \title{Skewness} \description{ Computes the skewness. } \usage{ skewness(x, na.rm = FALSE, type = 3) } \arguments{ \item{x}{a numeric vector containing the values whose skewness is to be computed.} \item{na.rm}{a logical value indicating whether \code{NA} values should be stripped before the computation proceeds.} \item{type}{an integer between 1 and 3 selecting one of the algorithms for computing skewness detailed below.} } \details{ If \code{x} contains missings and these are not removed, the skewness is \code{NA}. Otherwise, write \eqn{x_i} for the non-missing elements of \code{x}, \eqn{n} for their number, \eqn{\mu}{mu} for their mean, \eqn{s} for their standard deviation, and \eqn{m_r = \sum_i (x_i - \mu)^r / n}{m_r = \sum_i (x_i - mu)^r / n} for the sample moments of order \eqn{r}. Joanes and Gill (1998) discuss three methods for estimating skewness: \describe{ \item{Type 1:}{ \eqn{g_1 = m_3 / m_2^{3/2}}{g_1 = m_3 / m_2^(3/2)}. This is the typical definition used in many older textbooks.} \item{Type 2:}{ \eqn{G_1 = g_1 \sqrt{n(n-1)} / (n-2)}{ G_1 = g_1 * sqrt(n(n-1)) / (n-2)}. Used in SAS and SPSS. } \item{Type 3:}{ \eqn{b_1 = m_3 / s^3 = g_1 ((n-1)/n)^{3/2}}{ b_1 = m_3 / s^3 = g_1 ((n-1)/n)^(3/2)}. Used in MINITAB and BMDP.} } All three skewness measures are unbiased under normality. } \value{ The estimated skewness of \code{x}. } \references{ D. N. Joanes and C. A. Gill (1998), Comparing measures of sample skewness and kurtosis. \emph{The Statistician}, \bold{47}, 183--189. } \examples{ x <- rnorm(100) skewness(x) } \keyword{univar} e1071/man/tune.Rd0000644000175100001440000001115614325173527013057 0ustar hornikusers\name{tune} \alias{tune} \alias{best.tune} \alias{print.tune} \alias{summary.tune} \alias{print.summary.tune} \title{Parameter Tuning of Functions Using Grid Search} \description{ This generic function tunes hyperparameters of statistical methods using a grid search over supplied parameter ranges. } \usage{ tune(METHOD, train.x, train.y = NULL, data = list(), validation.x = NULL, validation.y = NULL, ranges = NULL, predict.func = predict, tunecontrol = tune.control(), ...) best.tune(...) } \arguments{ \item{METHOD}{either the function to be tuned, or a character string naming such a function.} \item{train.x}{either a formula or a matrix of predictors.} \item{train.y}{the response variable if \code{train.x} is a predictor matrix. Ignored if \code{train.x} is a formula.} \item{data}{data, if a formula interface is used. Ignored, if predictor matrix and response are supplied directly.} \item{validation.x}{an optional validation set. Depending on whether a formula interface is used or not, the response can be included in \code{validation.x} or separately specified using \code{validation.y}. Only used for bootstrap and fixed validation set (see \code{\link{tune.control}})} \item{validation.y}{if no formula interface is used, the response of the (optional) validation set. Only used for bootstrap and fixed validation set (see \code{\link{tune.control}})} \item{ranges}{a named list of parameter vectors spanning the sampling space. The vectors will usually be created by \code{seq}.} \item{predict.func}{optional predict function, if the standard \code{predict} behavior is inadequate.} \item{tunecontrol}{object of class \code{"tune.control"}, as created by the function \code{tune.control()}. If omitted, \code{tune.control()} gives the defaults.} \item{\dots}{Further parameters passed to the training functions.} } \value{ For \code{tune}, an object of class \code{tune}, including the components: \item{best.parameters}{a 1 x k data frame, k number of parameters.} \item{best.performance}{best achieved performance.} \item{performances}{if requested, a data frame of all parameter combinations along with the corresponding performance results.} \item{train.ind}{list of index vectors used for splits into training and validation sets.} \item{best.model}{if requested, the model trained on the complete training data using the best parameter combination.} \code{best.tune()} returns the best model detected by \code{tune}. } \details{ As performance measure, the classification error is used for classification, and the mean squared error for regression. It is possible to specify only one parameter combination (i.e., vectors of length 1) to obtain an error estimation of the specified type (bootstrap, cross-classification, etc.) on the given data set. For convenience, there are several \code{tune.foo()} wrappers defined, e.g., for \code{nnet()}, \code{randomForest()}, \code{rpart()}, \code{svm()}, and \code{knn()}. Cross-validation randomizes the data set before building the splits which---once created---remain constant during the training process. The splits can be recovered through the \code{train.ind} component of the returned object. } \author{ David Meyer\cr \email{David.Meyer@R-project.org} } \seealso{\code{\link{tune.control}}, \code{\link{plot.tune}}, \code{\link{tune.svm}}, \link{tune.wrapper}} \examples{ data(iris) ## tune `svm' for classification with RBF-kernel (default in svm), ## using one split for training/validation set obj <- tune(svm, Species~., data = iris, ranges = list(gamma = 2^(-1:1), cost = 2^(2:4)), tunecontrol = tune.control(sampling = "fix") ) ## alternatively: ## obj <- tune.svm(Species~., data = iris, gamma = 2^(-1:1), cost = 2^(2:4)) summary(obj) plot(obj) ## tune `knn' using a convenience function; this time with the ## conventional interface and bootstrap sampling: x <- iris[,-5] y <- iris[,5] obj2 <- tune.knn(x, y, k = 1:5, tunecontrol = tune.control(sampling = "boot")) summary(obj2) plot(obj2) ## tune `gknn' using the formula interface. ## (Use Euclidean distances instead of Gower metric) obj3 <- tune.gknn(Species ~ ., data = iris, k = 1:5, method = "Euclidean") summary(obj3) plot(obj3) ## tune `rpart' for regression, using 10-fold cross validation (default) data(mtcars) obj4 <- tune.rpart(mpg~., data = mtcars, minsplit = c(5,10,15)) summary(obj4) plot(obj4) ## simple error estimation for lm using 10-fold cross validation tune(lm, mpg~., data = mtcars) } \keyword{models} e1071/man/write.svm.Rd0000644000175100001440000000410714246406243014034 0ustar hornikusers\name{write.svm} \alias{write.svm} \title{Write SVM Object to File} \description{ This function exports an SVM object (trained by \code{svm}) to two specified files. One is in the format that the function 'svm_load_model()' of libsvm can read. The other is for scaling data, containing a data with centers and scales for all variables. } \usage{ write.svm(object, svm.file = "Rdata.svm", scale.file = "Rdata.scale", yscale.file = "Rdata.yscale") } \arguments{ \item{object}{Object of class \code{"svm"}, created by \code{svm}.} \item{svm.file}{filename to export the svm object to.} \item{scale.file}{filename to export the scaling data of the explanatory variables to.} \item{yscale.file}{filename to export the scaling data of the dependent variable to, if any.} } \details{ This function is useful when SVM models trained in R shall be used in other environments. The SVM model is saved in the standard format of libsvm. The scaling data are written to separate files because scaling data are not included in the standard format of libsvm. The format of the scaling data file is a n times 2 matrix: the n-th row corresponds to the n-th dimension of the data, the columns being formed of the corresponding mean and scale. If scaling information for the dependent variable exists (in case of regression models), it is stored in yet another file (1 times 2 matrix). } \author{ Tomomi TAKASHINA (based on 'predict.svm' by David Meyer) \email{t.takashina@computer.org} } \seealso{ \code{\link{svm}} } \examples{ data(iris) attach(iris) ## classification mode # default with factor response: model <- svm (Species~., data=iris) # export SVM object to (temporary) files svm_file <- tempfile() scale_file <- tempfile() write.svm(model, svm.file = svm_file, scale.file = scale_file) # read scale file # the n-th row is corresponding to n-th dimension. The 1st column contains the # center value, the 2nd column is the scale value. read.table(scale_file) # clean up unlink(svm_file) unlink(scale_file) } \keyword{neural} \keyword{nonlinear} \keyword{classif} e1071/man/tune.wrapper.Rd0000644000175100001440000000512114324555763014536 0ustar hornikusers\name{tune.wrapper} \alias{tune.wrapper} \alias{tune.rpart} \alias{best.rpart} \alias{tune.svm} \alias{best.svm} \alias{tune.nnet} \alias{best.nnet} \alias{tune.randomForest} \alias{best.randomForest} \alias{tune.gknn} \alias{best.gknn} \alias{tune.knn} \title{Convenience Tuning Wrapper Functions} \description{ Convenience tuning wrapper functions, using \code{tune}. } \usage{ tune.svm(x, y = NULL, data = NULL, degree = NULL, gamma = NULL, coef0 = NULL, cost = NULL, nu = NULL, class.weights = NULL, epsilon = NULL, ...) best.svm(x, tunecontrol = tune.control(), ...) tune.nnet(x, y = NULL, data = NULL, size = NULL, decay = NULL, trace = FALSE, tunecontrol = tune.control(nrepeat = 5), ...) best.nnet(x, tunecontrol = tune.control(nrepeat = 5), ...) tune.rpart(formula, data, na.action = na.omit, minsplit = NULL, minbucket = NULL, cp = NULL, maxcompete = NULL, maxsurrogate = NULL, usesurrogate = NULL, xval = NULL, surrogatestyle = NULL, maxdepth = NULL, predict.func = NULL, ...) best.rpart(formula, tunecontrol = tune.control(), ...) tune.randomForest(x, y = NULL, data = NULL, nodesize = NULL, mtry = NULL, ntree = NULL, ...) best.randomForest(x, tunecontrol = tune.control(), ...) tune.gknn(x, y = NULL, data = NULL, k = NULL, ...) best.gknn(x, tunecontrol = tune.control(), ...) tune.knn(x, y, k = NULL, l = NULL, ...) } \arguments{ \item{formula, x, y, data}{formula and data arguments of function to be tuned.} \item{predict.func}{predicting function.} \item{na.action}{function handling missingness.} \item{minsplit, minbucket, cp, maxcompete, maxsurrogate, usesurrogate, xval, surrogatestyle, maxdepth}{\code{rpart} parameters.} \item{degree, gamma, coef0, cost, nu, class.weights, epsilon}{\code{svm} parameters.} \item{k, l}{\code{(g)knn} parameters.} \item{mtry, nodesize, ntree}{\code{randomForest} parameters.} \item{size, decay, trace}{parameters passed to \code{nnet}.} \item{tunecontrol}{object of class \code{"tune.control"} containing tuning parameters.} \item{\dots}{Further parameters passed to \code{tune}.} } \value{ \code{tune.foo()} returns a tuning object including the best parameter set obtained by optimizing over the specified parameter vectors. \code{best.foo()} directly returns the best model, i.e. the fit of a new model using the optimal parameters found by \code{tune.foo}. } \details{For examples, see the help page of \code{tune()}.} \author{ David Meyer\cr \email{David.Meyer@R-project.org} } \seealso{\code{\link{tune}}} \keyword{models} e1071/man/element.Rd0000755000175100001440000000064514173734134013537 0ustar hornikusers\name{element} \title{Extract Elements of an Array} \usage{ element(x, i) } \alias{element} \arguments{ \item{x}{Array of arbitrary dimensionality.} \item{i}{Vector of the same length as \code{x} has dimension.} } \description{ Returns the element of \code{x} specified by \code{i}. } \author{Friedrich Leisch} \seealso{\link{Extract}} \examples{ x <- array(1:20, dim=c(2,5,2)) element(x, c(1,4,2)) } \keyword{array} e1071/man/sigmoid.Rd0000755000175100001440000000073714173734134013543 0ustar hornikusers\name{sigmoid} \alias{sigmoid} \alias{dsigmoid} \alias{d2sigmoid} \title{The Logistic Function and Derivatives} \description{ Sigmoid \eqn{1/(1 + \exp(-x))}{1/(1 + exp(-x))}, first and second derivative.} \usage{ sigmoid(x) dsigmoid(x) d2sigmoid(x) } \arguments{ \item{x}{a numeric vector} } \author{Friedrich Leisch} \examples{ plot(sigmoid, -5, 5, ylim = c(-.2, 1)) plot(dsigmoid, -5, 5, add = TRUE, col = 2) plot(d2sigmoid, -5, 5, add = TRUE, col = 3) } \keyword{math} e1071/man/impute.Rd0000755000175100001440000000101014173734134013374 0ustar hornikusers\name{impute} \alias{impute} \title{Replace Missing Values} \usage{ impute(x, what = c("median", "mean")) } \arguments{ \item{x}{A matrix or dataframe.} \item{what}{What to impute.} } \description{ Replaces missing values of a matrix or dataframe with the medians (\code{what="median"}) or means (\code{what="mean"}) of the respective columns.} \value{ A matrix or dataframe. } \author{Friedrich Leisch} \examples{ x<- matrix(1:10, ncol=2) x[c(1,3,7)] <- NA print(x) print(impute(x)) } \keyword{manip} e1071/man/hamming.distance.Rd0000755000175100001440000000122714173734134015314 0ustar hornikusers\name{hamming.distance} \alias{hamming.distance} \title{Hamming Distances of Vectors} \usage{ hamming.distance(x, y) } \arguments{ \item{x}{a vector or matrix.} \item{y}{an optional vector.} } \description{ If both \code{x} and \code{y} are vectors, \code{hamming.distance} returns the Hamming distance (number of different elements) between this two vectors. If \code{x} is a matrix, the Hamming distances between the rows of \code{x} are computed and \code{y} is ignored. } \examples{ x <- c(1, 0, 0) y <- c(1, 0, 1) hamming.distance(x, y) z <- rbind(x,y) rownames(z) <- c("Fred", "Tom") hamming.distance(z) hamming.distance(1:3, 3:1) } \keyword{multivariate} e1071/man/plot.stft.Rd0000755000175100001440000000160414173734134014037 0ustar hornikusers\name{plot.stft} \alias{plot.stft} \title{Plot Short Time Fourier Transforms} \description{ An object of class \code{"stft"} is plotted as a gray scale image. The x-axis corresponds to time, the y-axis to frequency. If the default colormap is used, dark regions in the plot correspond to high values at the particular time/frequency location. } \usage{ \method{plot}{stft}(x, col = gray(63:0/63), \dots) } \arguments{ \item{x}{An object of class \code{"stft"} as obtained by the function \code{stft}.} \item{col}{An optional colormap. By default 64 gray values are used, where white corresponds to the minimum value and black to the maximum.} \item{\dots}{further arguments to be passed to or from methods.} } \value{No return value. This function is only for plotting.} \author{Andreas Weingessel} \seealso{stft} \examples{x<-rnorm(500) y<-stft(x) plot(y) } \keyword{ts} e1071/man/read.matrix.csr.Rd0000755000175100001440000000302214173734134015102 0ustar hornikusers\name{read.matrix.csr} \alias{read.matrix.csr} \alias{write.matrix.csr} %- Also NEED an `\alias' for EACH other topic documented here. \title{Read/Write Sparse Data} \description{ reads and writes a file in sparse data format. } \usage{ read.matrix.csr(file, fac = TRUE, ncol = NULL) write.matrix.csr(x, file = "out.dat", y = NULL, fac = TRUE) } %- maybe also `usage' for other objects documented here. \arguments{ \item{x}{An object of class \code{matrix.csr}} \item{y}{A vector (either numeric or a factor)} \item{file}{The filename.} \item{fac}{If \code{TRUE}, the y-values (if any) are interpreted as factor levels.} \item{ncol}{Number of columns, detected automatically. Can be used to add empty columns (possibly not stored in the sparse format).} } \value{ If the data file includes no y variable, \code{read.matrix.csr} returns an object of class \code{matrix.csr}, else a list with components: \item{x}{object of class \code{matrix.csr}} \item{y}{vector of numeric values or factor levels, depending on \code{fac}.} } \author{ David Meyer\cr \email{David.Meyer@R-project.org} } \seealso{\code{\link[SparseM]{matrix.csr}}} \examples{ \dontrun{ library(methods) if (require(SparseM)) { data(iris) x <- as.matrix(iris[,1:4]) y <- iris[,5] xs <- as.matrix.csr(x) write.matrix.csr(xs, y = y, file = "iris.dat") xs2 <- read.matrix.csr("iris.dat")$x if (!all(as.matrix(xs) == as.matrix(xs2))) stop("Error: objects are not equal!") } } } \keyword{IO}% at least one, from doc/KEYWORDS e1071/man/rwiener.Rd0000755000175100001440000000075714173734134013565 0ustar hornikusers\name{rwiener} \alias{rwiener} \title{Simulation of Wiener Process} \usage{ rwiener(end = 1, frequency = 1000) } \arguments{ \item{end}{the time of the last observation.} \item{frequency}{the number of observations per unit of time.} } \description{ \code{rwiener} returns a time series containing a simulated realization of the Wiener process on the interval [0,\code{end}] } \examples{ # simulate a Wiener process on [0,1] and plot it x <- rwiener() plot(x,type="l") } \keyword{distribution} e1071/man/tune.control.Rd0000755000175100001440000000523014173734134014533 0ustar hornikusers\name{tune.control} \alias{tune.control} \title{Control Parameters for the Tune Function} \description{ Creates an object of class \code{tune.control} to be used with the \code{tune} function, containing various control parameters. } \usage{ tune.control(random = FALSE, nrepeat = 1, repeat.aggregate = mean, sampling = c("cross", "fix", "bootstrap"), sampling.aggregate = mean, sampling.dispersion = sd, cross = 10, fix = 2/3, nboot = 10, boot.size = 9/10, best.model = TRUE, performances = TRUE, error.fun = NULL) } \arguments{ \item{random}{if an integer value is specified, \code{random} parameter vectors are drawn from the parameter space.} \item{nrepeat}{specifies how often training shall be repeated.} \item{repeat.aggregate}{function for aggregating the repeated training results.} \item{sampling}{sampling scheme. If \code{sampling = "cross"}, a \code{cross}-times cross validation is performed. If \code{sampling = "boot"}, \code{nboot} training sets of size \code{boot.size} (part) are sampled (with replacement) from the supplied data. If \code{sampling = "fix"}, a single split into training/validation set is used, the training set containing a \code{fix} part of the supplied data. Note that a separate validation set can be supplied via \code{validation.x} and \code{validation.y}. It is only used for \code{sampling = "boot"} and \code{sampling = "fix"}; in the latter case, \code{fix} is set to 1.} \item{sampling.aggregate,sampling.dispersion}{functions for aggregating the training results on the generated training samples (default: mean and standard deviation).} \item{cross}{number of partitions for cross-validation.} \item{fix}{part of the data used for training in fixed sampling.} \item{nboot}{number of bootstrap replications.} \item{boot.size}{size of the bootstrap samples.} \item{best.model}{if \code{TRUE}, the best model is trained and returned (the best parameter set is used for training on the complete training set).} \item{performances}{if \code{TRUE}, the performance results for all parameter combinations are returned.} \item{error.fun}{function returning the error measure to be minimized. It takes two arguments: a vector of true values and a vector of predicted values. If \code{NULL}, the misclassification error is used for categorical predictions and the mean squared error for numeric predictions.} } \value{ An object of class \code{"tune.control"} containing all the above parameters (either the defaults or the user specified values). } \author{ David Meyer\cr \email{David.Meyer@R-project.org} } \seealso{\code{\link{tune}}} \keyword{models} e1071/man/kurtosis.Rd0000755000175100001440000000317014173734133013764 0ustar hornikusers\name{kurtosis} \alias{kurtosis} \title{Kurtosis} \description{ Computes the kurtosis. } \usage{ kurtosis(x, na.rm = FALSE, type = 3) } \arguments{ \item{x}{a numeric vector containing the values whose kurtosis is to be computed.} \item{na.rm}{a logical value indicating whether \code{NA} values should be stripped before the computation proceeds.} \item{type}{an integer between 1 and 3 selecting one of the algorithms for computing kurtosis detailed below.} } \details{ If \code{x} contains missings and these are not removed, the kurtosis is \code{NA}. Otherwise, write \eqn{x_i} for the non-missing elements of \code{x}, \eqn{n} for their number, \eqn{\mu}{mu} for their mean, \eqn{s} for their standard deviation, and \eqn{m_r = \sum_i (x_i - \mu)^r / n}{m_r = \sum_i (x_i - mu)^r / n} for the sample moments of order \eqn{r}. Joanes and Gill (1998) discuss three methods for estimating kurtosis: \describe{ \item{Type 1:}{ \eqn{g_2 = m_4 / m_2^2 - 3}. This is the typical definition used in many older textbooks.} \item{Type 2:}{ \eqn{G_2 = ((n+1) g_2 + 6) * (n-1) / ((n-2)(n-3))}. Used in SAS and SPSS. } \item{Type 3:}{ \eqn{b_2 = m_4 / s^4 - 3 = (g_2 + 3) (1 - 1/n)^2 - 3}. Used in MINITAB and BMDP.} } Only \eqn{G_2} (corresponding to \code{type = 2}) is unbiased under normality. } \value{ The estimated kurtosis of \code{x}. } \references{ D. N. Joanes and C. A. Gill (1998), Comparing measures of sample skewness and kurtosis. \emph{The Statistician}, \bold{47}, 183--189. } \examples{ x <- rnorm(100) kurtosis(x) } \keyword{univar} e1071/man/matchClasses.Rd0000755000175100001440000000667014173734134014524 0ustar hornikusers\name{matchClasses} \alias{matchClasses} \alias{compareMatchedClasses} \title{Find Similar Classes in Two-way Contingency Tables} \usage{ matchClasses(tab, method="rowmax", iter=1, maxexact=9, verbose=TRUE) compareMatchedClasses(x, y, method="rowmax", iter=1, maxexact=9, verbose=FALSE) } \arguments{ \item{tab}{Two-way contingency table of class memberships} \item{method}{One of \code{"rowmax"}, \code{"greedy"} or \code{"exact"}.} \item{iter}{Number of iterations used in greedy search.} \item{verbose}{If \code{TRUE}, display some status messages during computation.} \item{maxexact}{Maximum number of variables for which all possible permutations are computed.} \item{x, y}{Vectors or matrices with class memberships.} } \description{ Try to find a mapping between the two groupings, such that as many cases as possible are in one of the matched pairs. } \details{ If \code{method="rowmax"}, then each class defining a row in the contingency table is mapped to the column of the corresponding row maximum. Hence, some columns may be mapped to more than one row (while each row is mapped to a single column). If \code{method="greedy"} or \code{method="exact"}, then the contingency table must be a square matrix and a unique mapping is computed. This corresponds to a permutation of columns and rows, such that sum of the main diagonal, i.e., the trace of the matrix, gets as large as possible. For both methods, first all pairs where row and columns maxima correspond and are bigger than the sum of all other elements in the corresponding columns and rows together are located and fixed (this is a necessary condition for maximal trace). If \code{method="exact"}, then for the remaining rows and columns, all possible permutations are computed and the optimum is returned. This can get computationally infeasible very fast. If more than \code{maxexact} rows and columns remain after applying the necessary condition, then \code{method} is reset to \code{"greedy"}. If \code{method="greedy"}, then a greedy heuristic is tried \code{iter} times. Repeatedly a row is picked at random and matched to the free column with the maximum value. \code{compareMatchedClasses()} computes the contingency table for each combination of columns from \code{x} and \code{y} and applies \code{matchClasses} to that table. The columns of the table are permuted accordingly and then the table is passed to \code{\link{classAgreement}}. The resulting agreement coefficients (diag, kappa, \ldots) are returned. The return value of \code{compareMatchedClasses()} is a list containing a matrix for each coefficient; with element (k,l) corresponding to the k-th column of \code{x} and l-th column of \code{y}. If \code{y} is missing, then the columns of \code{x} are compared with each other. } \author{Friedrich Leisch} \seealso{\code{\link{classAgreement}}} \examples{ ## a stupid example with no class correlations: g1 <- sample(1:5, size=1000, replace=TRUE) g2 <- sample(1:5, size=1000, replace=TRUE) tab <- table(g1, g2) matchClasses(tab, "exact") ## let pairs (g1=1,g2=4) and (g1=3,g2=1) agree better k <- sample(1:1000, size=200) g1[k] <- 1 g2[k] <- 4 k <- sample(1:1000, size=200) g1[k] <- 3 g2[k] <- 1 tab <- table(g1, g2) matchClasses(tab, "exact") ## get agreement coefficients: compareMatchedClasses(g1, g2, method="exact") } \keyword{category} e1071/man/hanning.window.Rd0000755000175100001440000000142314173734134015031 0ustar hornikusers\name{hanning.window} \title{Computes the Coefficients of a Hanning Window.} \usage{hanning.window(n)} \alias{hanning.window} \arguments{ \item{n}{The length of the window.} } \description{The filter coefficients \eqn{w_i}{w(i)} of a Hanning window of length \code{n} are computed according to the formula \deqn{w_i = 0.5 - 0.5 \cos\frac{2\pi i}{n-1}}{ w(i) = 0.5 - 0.5*cos(2*pi*i/(n-1))} } \value{A vector containing the filter coefficients.} \references{For a definition of the Hanning window, see for example\cr Alan V. Oppenheim and Roland W. Schafer: "Discrete-Time Signal Processing", Prentice-Hall, 1989.} \author{Andreas Weingessel} \seealso{stft, hamming.window} \examples{hanning.window(10) x<-rnorm(500) y<-stft(x, wtype="hanning.window") plot(y) } \keyword{ts} e1071/man/permutations.Rd0000755000175100001440000000054414173734134014636 0ustar hornikusers\name{permutations} \alias{permutations} \title{All Permutations of Integers 1:n} \description{ Returns a matrix containing all permutations of the integers \code{1:n} (one permutation per row). } \usage{ permutations(n) } \arguments{ \item{n}{Number of element to permute.} } \author{Friedrich Leisch} \examples{ permutations(3) } \keyword{datagen} e1071/man/cshell.Rd0000644000175100001440000000660514246371156013361 0ustar hornikusers\name{cshell} \alias{cshell} \title{Fuzzy C-Shell Clustering} \usage{ cshell(x, centers, iter.max=100, verbose=FALSE, dist="euclidean", method="cshell", m=2, radius = NULL) } \arguments{ \item{x}{The data matrix, were columns correspond to the variables and rows to observations.} \item{centers}{Number of clusters or initial values for cluster centers} \item{iter.max}{Maximum number of iterations} \item{verbose}{If \code{TRUE}, make some output during learning} \item{dist}{Must be one of the following: If \code{"euclidean"}, the mean square error, if \code{"manhattan"}, the mean absolute error is computed. Abbreviations are also accepted.} \item{method}{Currently, only the \code{"cshell"} method; the c-shell fuzzy clustering method} \item{m}{The degree of fuzzification. It is defined for values greater than \emph{1}} \item{radius}{The radius of resulting clusters} } \description{ The \emph{c}-shell clustering algorithm, the shell prototype-based version (ring prototypes) of the fuzzy \emph{k}means clustering method. } \details{ The data given by \code{x} is clustered by the fuzzy \emph{c}-shell algorithm. If \code{centers} is a matrix, its rows are taken as the initial cluster centers. If \code{centers} is an integer, \code{centers} rows of \code{x} are randomly chosen as initial values. The algorithm stops when the maximum number of iterations (given by \code{iter.max}) is reached. If \code{verbose} is \code{TRUE}, it displays for each iteration the number the value of the objective function. If \code{dist} is \code{"euclidean"}, the distance between the cluster center and the data points is the Euclidean distance (ordinary kmeans algorithm). If \code{"manhattan"}, the distance between the cluster center and the data points is the sum of the absolute values of the distances of the coordinates. If \code{method} is \code{"cshell"}, then we have the \emph{c}-shell fuzzy clustering method. The parameters \code{m} defines the degree of fuzzification. It is defined for real values greater than 1 and the bigger it is the more fuzzy the membership values of the clustered data points are. The parameter \code{radius} is by default set to \emph{0.2} for every cluster. } \value{ \code{cshell} returns an object of class \code{"cshell"}. \item{centers}{The final cluster centers.} \item{size}{The number of data points in each cluster.} \item{cluster}{Vector containing the indices of the clusters where the data points are assigned to. The maximum membership value of a point is considered for partitioning it to a cluster.} \item{iter}{The number of iterations performed.} \item{membership}{a matrix with the membership values of the data points to the clusters.} \item{withinerror}{Returns the sum of square distances within the clusters.} \item{call}{Returns a call in which all of the arguments are specified by their names.} } \author{Evgenia Dimitriadou} \references{ Rajesh N. Dave. \emph{Fuzzy Shell-Clustering and Applications to Circle Detection in Digital Images.} Int. J. of General Systems, Vol. \bold{16}, pp. 343-355, 1996. } \examples{ ## a 2-dimensional example x <- rbind(matrix(rnorm(50, sd = 0.3), ncol = 2), matrix(rnorm(50, mean = 1, sd=0.3), ncol = 2)) cl <- cshell(x, 2, 20, verbose = TRUE, method = "cshell", m = 2) print(cl) } \keyword{cluster} e1071/man/scale_data_frame.Rd0000644000175100001440000000571614024346715015340 0ustar hornikusers\name{scale_data_frame} \alias{scale_data_frame} \title{Scaling and Centering of Data Frames} \description{ \code{scale_data_frame} centers and/or scales the columns of a data frame (or matrix). } \usage{ scale_data_frame(x, center = TRUE, scale = TRUE) } \arguments{ \item{x}{a data frame or a numeric matrix (or vector). For matrices or vectors, \code{scale()} is used.} \item{center}{either a logical value or numeric-alike vector of length equal to the number of columns of \code{x}, where \sQuote{numeric-alike} means that \code{\link{as.numeric}(.)} will be applied successfully if \code{\link{is.numeric}(.)} is not true.} \item{scale}{either a logical value or a numeric-alike vector of length equal to the number of columns of \code{x}.} } \value{ For \code{scale.default}, the centered, scaled data frame. Non-numeric columns are ignored. Note that logicals are treated as 0/1-numerics to be consistent with \code{scale()}. The numeric centering and scalings used (if any) are returned as attributes \code{"scaled:center"} and \code{"scaled:scale"} - but only for the numeric/logical columns. } \details{ The value of \code{center} determines how column centering is performed. If \code{center} is a numeric-alike vector with length equal to the number of numeric/logical columns of \code{x}, then each column of \code{x} has the corresponding value from \code{center} subtracted from it. If \code{center} is \code{TRUE} then centering is done by subtracting the column means (omitting \code{NA}s) of \code{x} from their corresponding columns, and if \code{center} is \code{FALSE}, no centering is done. The value of \code{scale} determines how column scaling is performed (after centering). If \code{scale} is a numeric-alike vector with length equal to the number of numeric/logiocal columns of \code{x}, then each column of \code{x} is divided by the corresponding value from \code{scale}. If \code{scale} is \code{TRUE} then scaling is done by dividing the (centered) columns of \code{x} by their standard deviations if \code{center} is \code{TRUE}, and the root mean square otherwise. If \code{scale} is \code{FALSE}, no scaling is done. The root-mean-square for a (possibly centered) column is defined as \eqn{\sqrt{\sum(x^2)/(n-1)}}{sqrt(sum(x^2)/(n-1))}, where \eqn{x} is a vector of the non-missing values and \eqn{n} is the number of non-missing values. In the case \code{center = TRUE}, this is the same as the standard deviation, but in general it is not. (To scale by the standard deviations without centering, use \code{scale(x, center = FALSE, scale = apply(x, 2, sd, na.rm = TRUE))}.) } \references{ Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) \emph{The New S Language}. Wadsworth & Brooks/Cole. } \seealso{ \code{\link{sweep}} which allows centering (and scaling) with arbitrary statistics. } \examples{ require(stats) data(iris) summary(scale_data_frame(iris)) } \keyword{array} e1071/man/shortestPaths.Rd0000755000175100001440000000422014173734134014752 0ustar hornikusers\name{allShortestPaths} \alias{allShortestPaths} \alias{extractPath} \title{Find Shortest Paths Between All Nodes in a Directed Graph} \description{ \code{allShortestPaths} finds all shortest paths in a directed (or undirected) graph using Floyd's algorithm. \code{extractPath} can be used to actually extract the path between a given pair of nodes. } \usage{ allShortestPaths(x) extractPath(obj, start, end) } \arguments{ \item{x}{matrix or distance object} \item{obj}{return value of \code{allShortestPaths}} \item{start}{integer, starting point of path} \item{end}{integer, end point of path} } \details{ If \code{x} is a matrix, then \code{x[i,j]} has to be the length of the direct path from point \code{i} to point \code{j}. If no direct connection from point \code{i} to point \code{j} exist, then \code{x[i,j]} should be either \code{NA} or \code{Inf}. Note that the graph can be directed, hence \code{x[i,j]} need not be the same as \code{x[j,i]}. The main diagonal of \code{x} is ignored. Alternatively, \code{x} can be a distance object as returned by \code{\link{dist}} (corresponding to an undirected graph). } \value{ \code{allShortestPaths} returns a list with components \item{length}{A matrix with the total lengths of the shortest path between each pair of points.} \item{middlePoints}{A matrix giving a point in the middle of each shortest path (or 0 if the direct connection is the shortest path), this is mainly used as input for \code{extractPath}.} \code{extractPath} returns a vector of node numbers giving with the shortest path between two points. } \references{Kumar, V., Grama, A., Gupta, A. and Karypis, G. Introduction to Parallel Programming - Design and Analysis of Algorithms, Benjamin Cummings Publishing, 1994, ISBN 0-8053-3170-0} \author{Friedrich Leisch} \examples{ ## build a graph with 5 nodes x <- matrix(NA, 5, 5) diag(x) <- 0 x[1,2] <- 30; x[1,3] <- 10 x[2,4] <- 70; x[2,5] <- 40 x[3,4] <- 50; x[3,5] <- 20 x[4,5] <- 60 x[5,4] <- 10 print(x) ## compute all path lengths z <- allShortestPaths(x) print(z) ## the following should give 1 -> 3 -> 5 -> 4 extractPath(z, 1, 4) } \keyword{optimize} e1071/man/bclust.Rd0000644000175100001440000001160114246371156013373 0ustar hornikusers\name{bclust} \alias{bclust} \alias{hclust.bclust} \alias{plot.bclust} \alias{centers.bclust} \alias{clusters.bclust} \title{Bagged Clustering} \usage{ bclust(x, centers=2, iter.base=10, minsize=0, dist.method="euclidean", hclust.method="average", base.method="kmeans", base.centers=20, verbose=TRUE, final.kmeans=FALSE, docmdscale=FALSE, resample=TRUE, weights=NULL, maxcluster=base.centers, ...) hclust.bclust(object, x, centers, dist.method=object$dist.method, hclust.method=object$hclust.method, final.kmeans=FALSE, docmdscale = FALSE, maxcluster=object$maxcluster) \method{plot}{bclust}(x, maxcluster=x$maxcluster, main, ...) centers.bclust(object, k) clusters.bclust(object, k, x=NULL) } \arguments{ \item{x}{Matrix of inputs (or object of class \code{"bclust"} for plot).} \item{centers, k}{Number of clusters.} \item{iter.base}{Number of runs of the base cluster algorithm.} \item{minsize}{Minimum number of points in a base cluster.} \item{dist.method}{Distance method used for the hierarchical clustering, see \code{\link{dist}} for available distances.} \item{hclust.method}{Linkage method used for the hierarchical clustering, see \code{\link{hclust}} for available methods.} \item{base.method}{Partitioning cluster method used as base algorithm.} \item{base.centers}{Number of centers used in each repetition of the base method.} \item{verbose}{Output status messages.} \item{final.kmeans}{If \code{TRUE}, a final kmeans step is performed using the output of the bagged clustering as initialization.} \item{docmdscale}{Logical, if \code{TRUE} a \code{\link{cmdscale}} result is included in the return value.} \item{resample}{Logical, if \code{TRUE} the base method is run on bootstrap samples of \code{x}, else directly on \code{x}.} \item{weights}{Vector of length \code{nrow(x)}, weights for the resampling. By default all observations have equal weight.} \item{maxcluster}{Maximum number of clusters memberships are to be computed for.} \item{object}{Object of class \code{"bclust"}.} \item{main}{Main title of the plot.} \item{\dots}{Optional arguments top be passed to the base method in \code{bclust}, ignored in \code{plot}.} } \description{ Cluster the data in \code{x} using the bagged clustering algorithm. A partitioning cluster algorithm such as \code{\link{kmeans}} is run repeatedly on bootstrap samples from the original data. The resulting cluster centers are then combined using the hierarchical cluster algorithm \code{\link{hclust}}. } \details{ First, \code{iter.base} bootstrap samples of the original data in \code{x} are created by drawing with replacement. The base cluster method is run on each of these samples with \code{base.centers} centers. The \code{base.method} must be the name of a partitioning cluster function returning a list with the same components as the return value of \code{\link{kmeans}}. This results in a collection of \code{iter.base * base.centers} centers, which are subsequently clustered using the hierarchical method \code{\link{hclust}}. Base centers with less than \code{minsize} points in there respective partitions are removed before the hierarchical clustering. The resulting dendrogram is then cut to produce \code{centers} clusters. Hence, the name of the argument \code{centers} is a little bit misleading as the resulting clusters need not be convex, e.g., when single linkage is used. The name was chosen for compatibility with standard partitioning cluster methods such as \code{\link{kmeans}}. A new hierarchical clustering (e.g., using another \code{hclust.method}) re-using previous base runs can be performed by running \code{hclust.bclust} on the return value of \code{bclust}. } \value{ \code{bclust} and \code{hclust.bclust} return objects of class \code{"bclust"} including the components \item{hclust}{Return value of the hierarchical clustering of the collection of base centers (Object of class \code{"hclust"}).} \item{cluster}{Vector with indices of the clusters the inputs are assigned to.} \item{centers}{Matrix of centers of the final clusters. Only useful, if the hierarchical clustering method produces convex clusters.} \item{allcenters}{Matrix of all \code{iter.base * base.centers} centers found in the base runs.} } \author{Friedrich Leisch} \references{ Friedrich Leisch. Bagged clustering. Working Paper 51, SFB ``Adaptive Information Systems and Modeling in Economics and Management Science'', August 1999. \url{https://epub.wu.ac.at/1272/1/document.pdf}} \seealso{\code{\link{hclust}}, \code{\link{kmeans}}, \code{\link{boxplot.bclust}}} \keyword{multivariate} \keyword{cluster} \examples{ data(iris) bc1 <- bclust(iris[,1:4], 3, base.centers=5) plot(bc1) table(clusters.bclust(bc1, 3)) centers.bclust(bc1, 3) } e1071/man/plot.tune.Rd0000755000175100001440000000375214173734134014040 0ustar hornikusers\name{plot.tune} \alias{plot.tune} %- Also NEED an `\alias' for EACH other topic documented here. \title{Plot Tuning Object} \description{ Visualizes the results of parameter tuning. } \usage{ \method{plot}{tune}(x, type = c("contour", "perspective"), theta = 60, col = "lightblue", main = NULL, xlab = NULL, ylab = NULL, swapxy = FALSE, transform.x = NULL, transform.y = NULL, transform.z = NULL, color.palette = hsv_palette(), nlevels = 20, ...) } %- maybe also `usage' for other objects documented here. \arguments{ \item{x}{an object of class \code{tune}} \item{type}{choose whether a contour plot or a perspective plot is used if two parameters are to be visualized. Ignored if only one parameter has been tuned.} \item{theta}{angle of azimuthal direction.} \item{col}{the color(s) of the surface facets. Transparent colors are ignored.} \item{main}{main title} \item{xlab, ylab}{titles for the axes. N.B. These must be character strings; expressions are not accepted. Numbers will be coerced to character strings.} \item{swapxy}{if \code{TRUE}, the parameter axes are swaped (only used in case of two parameters).} \item{transform.x, transform.y, transform.z}{functions to transform the parameters (\code{x} and \code{y}) and the error measures (\code{z}). Ignored if \code{NULL}.} \item{color.palette}{color palette used in contour plot.} \item{nlevels}{number of levels used in contour plot.} \item{\dots}{Further graphics parameters.} } \author{ David Meyer (based on C/C++-code by Chih-Chung Chang and Chih-Jen Lin)\cr \email{David.Meyer@R-project.org} } \seealso{\code{\link{tune}}} \examples{ data(iris) obj <- tune.svm(Species~., data = iris, sampling = "fix", gamma = 2^c(-8,-4,0,4), cost = 2^c(-8,-4,-2,0)) plot(obj, transform.x = log2, transform.y = log2) plot(obj, type = "perspective", theta = 120, phi = 45) } \keyword{models}% __ONLY ONE__ keyword per line e1071/man/bincombinations.Rd0000755000175100001440000000052314173734133015256 0ustar hornikusers\name{bincombinations} \title{Binary Combinations} \usage{ bincombinations(p) } \alias{bincombinations} \arguments{ \item{p}{Length of binary vectors} } \description{ Returns a matrix containing the \eqn{2^p} vectors of length \code{p}. } \author{Friedrich Leisch} \examples{ bincombinations(2) bincombinations(3) } \keyword{utilities} e1071/man/hsv_palette.Rd0000755000175100001440000000143514173734134014422 0ustar hornikusers\name{hsv_palette} \alias{hsv_palette} \title{Sequential color palette based on HSV colors} \description{ Computes a sequential color palette based on HSV colors by varying the saturation, given hue and value. } \usage{ hsv_palette(h = 2/3, from = 0.7, to = 0.2, v = 1) } %- maybe also 'usage' for other objects documented here. \arguments{ \item{h}{hue} \item{from}{lower bound for saturation} \item{to}{upper bound for saturation} \item{v}{value} } \value{ A function with one argument: the size of the palette, i.e., the number of colors. } \author{David Meyer \email{David.Meyer@R-project.org}} \seealso{\code{\link[grDevices]{hsv}}} \examples{ pie(rep(1, 10), col = hsv_palette()(10)) pie(rep(1, 10), col = hsv_palette(h = 0)(10)) } \keyword{hplot}% __ONLY ONE__ keyword per line e1071/man/countpattern.Rd0000755000175100001440000000202414173734134014625 0ustar hornikusers\name{countpattern} \alias{countpattern} \title{Count Binary Patterns} \usage{ countpattern(x, matching=FALSE) } \arguments{ \item{x}{A matrix of binary observations} \item{matching}{If TRUE an additional vector is returned which stores which row belongs to which pattern} } \description{ Every row of the binary matrix \code{x} is transformed into a binary pattern and these patterns are counted. } \value{ A vector of length \code{2\^ncol(x)} giving the number of times each pattern occurs in the rows of \code{x}. The names of this vector are the binary patterns. They are sorted according to their numeric value. If \code{matching} is \code{TRUE}, a list of the following two vectors is returned. \item{pat}{Numbers of patterns as described above.} \item{matching}{Vector giving the position of the pattern of each row of \code{x} in \code{pat}.} } \author{Andreas Weingessel} \examples{ xx <- rbind(c(1,0,0),c(1,0,0),c(1,0,1),c(0,1,1),c(0,1,1)) countpattern(xx) countpattern(xx, matching=TRUE) } \keyword{multivariate} e1071/man/bootstrap.lca.Rd0000644000175100001440000000523314246371156014656 0ustar hornikusers\name{bootstrap.lca} \alias{bootstrap.lca} \alias{print.bootstrap.lca} \title{Bootstrap Samples of LCA Results} \description{ This function draws bootstrap samples from a given LCA model and refits a new LCA model for each sample. The quality of fit of these models is compared to the original model. } \usage{ bootstrap.lca(l, nsamples=10, lcaiter=30, verbose=FALSE) } \arguments{ \item{l}{An LCA model as created by \code{\link{lca}}} \item{nsamples}{Number of bootstrap samples} \item{lcaiter}{Number of LCA iterations} \item{verbose}{If \code{TRUE} some output is printed during the computations.} } \details{ From a given LCA model \code{l}, \code{nsamples} bootstrap samples are drawn. For each sample a new LCA model is fitted. The goodness of fit for each model is computed via Likelihood Ratio and Pearson's Chisquare. The values for the fitted models are compared with the values of the original model \code{l}. By this method it can be tested whether the data to which \code{l} was originally fitted come from an LCA model. } \value{ An object of class \code{bootstrap.lca} is returned, containing \item{logl, loglsat}{The LogLikelihood of the models and of the corresponding saturated models} \item{lratio}{Likelihood quotient of the models and the corresponding saturated models} \item{lratiomean, lratiosd}{Mean and Standard deviation of \code{lratio}} \item{lratioorg}{Likelihood quotient of the original model and the corresponding saturated model} \item{zratio}{Z-Statistics of \code{lratioorg}} \item{pvalzratio, pvalratio}{P-Values for \code{zratio}, computed via normal distribution and empirical distribution} \item{chisq}{Pearson's Chisq of the models} \item{chisqmean, chisqsd}{Mean and Standard deviation of \code{chisq}} \item{chisqorg}{Pearson's Chisq of the original model} \item{zchisq}{Z-Statistics of \code{chisqorg}} \item{pvalzchisq, pvalchisq}{P-Values for \code{zchisq}, computed via normal distribution and empirical distribution} \item{nsamples}{Number of bootstrap samples} \item{lcaiter}{Number of LCA Iterations} } \references{Anton K. Formann: ``Die Latent-Class-Analysis'', Beltz Verlag 1984} \author{Andreas Weingessel} \seealso{\code{\link{lca}}} \examples{ ## Generate a 4-dim. sample with 2 latent classes of 500 data points each. ## The probabilities for the 2 classes are given by type1 and type2. type1 <- c(0.8, 0.8, 0.2, 0.2) type2 <- c(0.2, 0.2, 0.8, 0.8) x <- matrix(runif(4000), nrow = 1000) x[1:500,] <- t(t(x[1:500,]) < type1) * 1 x[501:1000,] <- t(t(x[501:1000,]) < type2) * 1 l <- lca(x, 2, niter=5) bl <- bootstrap.lca(l,nsamples=3,lcaiter=5) bl } \keyword{multivariate} e1071/man/interpolate.Rd0000755000175100001440000000214214173734134014426 0ustar hornikusers\name{interpolate} \title{Interpolate Values of Array} \usage{ interpolate(x, a, adims=lapply(dimnames(a), as.numeric), method="linear") } \alias{interpolate} \arguments{ \item{x}{Matrix of values at which interpolation shall take place.} \item{a}{Array of arbitrary dimension.} \item{adims}{List of the same structure as \code{dimnames(a)}.} \item{method}{Interpolation method, one of \code{"linear"} or \code{"constant"}.} } \description{ For each row in matrix \code{x}, the hypercube of \code{a} containing this point is searched. The corners of the hypercube are linearly interpolated. By default, \code{dimnames(a)} is taken to contain the coordinate values for each point in \code{a}. This can be overridden using \code{adims}. If \code{method=="constant"}, the value of the ``lower left'' corner of the hypercube is returned. } \author{Friedrich Leisch} \seealso{\code{\link{approx}}, \code{\link{spline}}} \examples{ x <- seq(0,3,0.2) z <- outer(x,x, function(x,y) sin(x*y)) dimnames(z) <- list(x,x) sin(1.1*2.1) interpolate(c(1.1, 2.1),z) } \keyword{arith} \keyword{multivariate} e1071/man/hamming.window.Rd0000755000175100001440000000142714173734134015033 0ustar hornikusers\name{hamming.window} \title{Computes the Coefficients of a Hamming Window.} \usage{hamming.window(n)} \alias{hamming.window} \arguments{ \item{n}{The length of the window.} } \description{The filter coefficients \eqn{w_i}{w(i)} of a Hamming window of length \code{n} are computed according to the formula \deqn{w_i = 0.54 - 0.46 \cos\frac{2\pi i}{n-1}}{ w(i) = 0.54 - 0.46*cos(2*pi*i/(n-1))} } \value{A vector containing the filter coefficients.} \references{For a definition of the Hamming window, see for example\cr Alan V. Oppenheim and Roland W. Schafer: "Discrete-Time Signal Processing", Prentice-Hall, 1989.} \author{Andreas Weingessel} \seealso{stft, hanning.window} \examples{hamming.window(10) x<-rnorm(500) y<-stft(x, wtype="hamming.window") plot(y) } \keyword{ts} e1071/man/moment.Rd0000755000175100001440000000231214173734134013376 0ustar hornikusers\name{moment} \alias{moment} \title{Statistical Moment} \description{ Computes the (optionally centered and/or absolute) sample moment of a certain order. } \usage{ moment(x, order=1, center=FALSE, absolute=FALSE, na.rm=FALSE) } \arguments{ \item{x}{a numeric vector containing the values whose moment is to be computed.} \item{order}{order of the moment to be computed, the default is to compute the first moment, i.e., the mean.} \item{center}{a logical value indicating whether centered moments are to be computed.} \item{absolute}{a logical value indicating whether absolute moments are to be computed.} \item{na.rm}{a logical value indicating whether \code{NA} values should be stripped before the computation proceeds.} } \details{ When \code{center} and \code{absolute} are both \code{FALSE}, the moment is simply \code{sum(x ^ order) / length(x)}. } \author{Kurt Hornik and Friedrich Leisch} \seealso{ \code{\link{mean}}, \code{\link{var}}} \examples{ x <- rnorm(100) ## Compute the mean moment(x) ## Compute the 2nd centered moment (!= var) moment(x, order=2, center=TRUE) ## Compute the 3rd absolute centered moment moment(x, order=3, center=TRUE, absolute=TRUE) } \keyword{univar} e1071/man/cmeans.Rd0000755000175100001440000001206714173734134013355 0ustar hornikusers\name{cmeans} \alias{cmeans} \alias{print.fclust} \title{Fuzzy C-Means Clustering} \description{ The fuzzy version of the known \emph{k}means clustering algorithm as well as an on-line variant (Unsupervised Fuzzy Competitive learning). } \usage{ cmeans(x, centers, iter.max = 100, verbose = FALSE, dist = "euclidean", method = "cmeans", m = 2, rate.par = NULL, weights = 1, control = list()) } \arguments{ \item{x}{The data matrix where columns correspond to variables and rows to observations.} \item{centers}{Number of clusters or initial values for cluster centers.} \item{iter.max}{Maximum number of iterations.} \item{verbose}{If \code{TRUE}, make some output during learning.} \item{dist}{Must be one of the following: If \code{"euclidean"}, the mean square error, if \code{"manhattan"}, the mean absolute error is computed. Abbreviations are also accepted.} \item{method}{If \code{"cmeans"}, then we have the \eqn{c}-means fuzzy clustering method, if \code{"ufcl"} we have the on-line update. Abbreviations are also accepted.} \item{m}{A number greater than 1 giving the degree of fuzzification.} \item{rate.par}{A number between 0 and 1 giving the parameter of the learning rate for the on-line variant. The default corresponds to \eqn{0.3}.} \item{weights}{a numeric vector with non-negative case weights. Recycled to the number of observations in \code{x} if necessary.} \item{control}{a list of control parameters. See \bold{Details}.} } \details{ The data given by \code{x} is clustered by generalized versions of the fuzzy \emph{c}-means algorithm, which use either a fixed-point or an on-line heuristic for minimizing the objective function \deqn{\sum_i \sum_j w_i u_{ij}^m d_{ij},} where \eqn{w_i} is the weight of observation \eqn{i}, \eqn{u_{ij}} is the membership of observation \eqn{i} in cluster \eqn{j}, and \eqn{d_{ij}} is the distance (dissimilarity) between observation \eqn{i} and center \eqn{j}. The dissimilarities used are the sums of squares (\code{"euclidean"}) or absolute values (\code{"manhattan"}) of the element-wise differences. If \code{centers} is a matrix, its rows are taken as the initial cluster centers. If \code{centers} is an integer, \code{centers} rows of \code{x} are randomly chosen as initial values. The algorithm stops when the maximum number of iterations (given by \code{iter.max}) is reached, or when the algorithm is unable to reduce the current value \code{val} of the objective function by \code{reltol * (abs(val) * reltol)} at a step. The relative convergence tolerance \code{reltol} can be specified as the \code{reltol} component of the list of control parameters, and defaults to \code{sqrt(.Machine$double.eps)}. If \code{verbose} is \code{TRUE}, each iteration displays its number and the value of the objective function. If \code{method} is \code{"cmeans"}, then we have the \eqn{c}-means fuzzy clustering method, see for example Bezdek (1981). If \code{"ufcl"}, we have the On-line Update (Unsupervised Fuzzy Competitive Learning) method due to Chung and Lee (1992), see also Pal et al (1996). This method works by performing an update directly after each input signal (i.e., for each single observation). The parameters \code{m} defines the degree of fuzzification. It is defined for real values greater than 1 and the bigger it is the more fuzzy the membership values of the clustered data points are. } \value{ An object of class \code{"fclust"} which is a list with components: \item{centers}{the final cluster centers.} \item{size}{the number of data points in each cluster of the closest hard clustering.} \item{cluster}{a vector of integers containing the indices of the clusters where the data points are assigned to for the closest hard clustering, as obtained by assigning points to the (first) class with maximal membership.} \item{iter}{the number of iterations performed.} \item{membership}{a matrix with the membership values of the data points to the clusters.} \item{withinerror}{the value of the objective function.} \item{call}{the call used to create the object.} } \author{ Evgenia Dimitriadou and Kurt Hornik } \references{ J. C. Bezdek (1981). \emph{Pattern recognition with fuzzy objective function algorithms}. New York: Plenum. Fu Lai Chung and Tong Lee (1992). Fuzzy competitive learning. \emph{Neural Networks}, \bold{7}(3), 539--551. Nikhil R. Pal, James C. Bezdek, and Richard J. Hathaway (1996). Sequential competitive learning and the fuzzy c-means clustering algorithms. \emph{Neural Networks}, \bold{9}(5), 787--796. } \examples{ # a 2-dimensional example x<-rbind(matrix(rnorm(100,sd=0.3),ncol=2), matrix(rnorm(100,mean=1,sd=0.3),ncol=2)) cl<-cmeans(x,2,20,verbose=TRUE,method="cmeans",m=2) print(cl) # a 3-dimensional example x<-rbind(matrix(rnorm(150,sd=0.3),ncol=3), matrix(rnorm(150,mean=1,sd=0.3),ncol=3), matrix(rnorm(150,mean=2,sd=0.3),ncol=3)) cl<-cmeans(x,6,20,verbose=TRUE,method="cmeans") print(cl) } \keyword{cluster} e1071/man/boxplot.bclust.Rd0000755000175100001440000000214514173734133015064 0ustar hornikusers\name{boxplot.bclust} \alias{boxplot.bclust} \title{Boxplot of Cluster Profiles} \usage{ \method{boxplot}{bclust}(x, n=nrow(x$centers), bycluster=TRUE, main=deparse(substitute(x)), oneplot=TRUE, which=1:n, ...) } \arguments{ \item{x}{Clustering result, object of class \code{"bclust"}.}% \item{n}{Number of clusters to plot, by default the number of clusters used in the call of \code{\link{bclust}}.} \item{bycluster}{If \code{TRUE} (default), a boxplot for each cluster is plotted. If \code{FALSE}, a boxplot for each variable is plotted.} \item{main}{Main title of the plot, by default the name of the cluster object.} \item{oneplot}{If \code{TRUE}, all boxplots appear on one screen (using an appropriate rectangular layout).} \item{which}{Number of clusters which should be plotted, default is all clusters.} \item{...}{Additional arguments for \code{\link{boxplot}}.} } \description{ Makes boxplots of the results of a bagged clustering run. } \author{Friedrich Leisch} \keyword{hplot} \examples{ data(iris) bc1 <- bclust(iris[,1:4], 3, base.centers=5) boxplot(bc1) } e1071/man/classAgreement.Rd0000755000175100001440000000610414173734133015036 0ustar hornikusers\name{classAgreement} \alias{classAgreement} \title{Coefficients Comparing Classification Agreement} \description{ \code{classAgreement()} computes several coefficients of agreement between the columns and rows of a 2-way contingency table. } \usage{ classAgreement(tab, match.names=FALSE) } \arguments{ \item{tab}{A 2-dimensional contingency table.} \item{match.names}{Flag whether row and columns should be matched by name.} } \details{ Suppose we want to compare two classifications summarized by the contingency table \eqn{T=[t_{ij}]} where \eqn{i,j=1,\ldots,K} and \eqn{t_{ij}} denotes the number of data points which are in class \eqn{i} in the first partition and in class \eqn{j} in the second partition. If both classifications use the same labels, then obviously the two classification agree completely if only elements in the main diagonal of the table are non-zero. On the other hand, large off-diagonal elements correspond to smaller agreement between the two classifications. If \code{match.names} is \code{TRUE}, the class labels as given by the row and column names are matched, i.e. only columns and rows with the same dimnames are used for the computation. If the two classification do not use the same set of labels, or if identical labels can have different meaning (e.g., two outcomes of cluster analysis on the same data set), then the situation is a little bit more complicated. Let \eqn{A} denote the number of all pairs of data points which are either put into the same cluster by both partitions or put into different clusters by both partitions. Conversely, let \eqn{D} denote the number of all pairs of data points that are put into one cluster in one partition, but into different clusters by the other partition. Hence, the partitions disagree for all pairs \eqn{D} and agree for all pairs \eqn{A}. We can measure the agreement by the Rand index \eqn{A/(A+D)} which is invariant with respect to permutations of the columns or rows of \eqn{T}. Both indices have to be corrected for agreement by chance if the sizes of the classes are not uniform. } \value{ A list with components \item{diag}{Percentage of data points in the main diagonal of \code{tab}.} \item{kappa}{\code{diag} corrected for agreement by chance.} \item{rand}{Rand index.} \item{crand}{Rand index corrected for agreement by chance.} } \references{ J.~Cohen. A coefficient of agreement for nominal scales. Educational and Psychological Measurement, 20, 37--46, 1960. Lawrence Hubert and Phipps Arabie. Comparing partitions. Journal of Classification, 2, 193--218, 1985. } \author{Friedrich Leisch} \seealso{\code{\link{matchClasses}}} \examples{ ## no class correlations: both kappa and crand almost zero g1 <- sample(1:5, size=1000, replace=TRUE) g2 <- sample(1:5, size=1000, replace=TRUE) tab <- table(g1, g2) classAgreement(tab) ## let pairs (g1=1,g2=1) and (g1=3,g2=3) agree better k <- sample(1:1000, size=200) g1[k] <- 1 g2[k] <- 1 k <- sample(1:1000, size=200) g1[k] <- 3 g2[k] <- 3 tab <- table(g1, g2) ## both kappa and crand should be significantly larger than before classAgreement(tab) } \keyword{category} e1071/man/rectangle.window.Rd0000755000175100001440000000106514173734134015355 0ustar hornikusers\name{rectangle.window} \title{Computes the Coefficients of a Rectangle Window.} \usage{rectangle.window(n)} \alias{rectangle.window} \arguments{ \item{n}{The length of the window.} } \description{Returns the filter coefficients of a rectangle window. That is a vector of \code{n} 1. The purpose of this function is just to have a name for the R command \code{rep (1, n)}. } \value{A vector of length \code{n} filled with 1.} \author{Andreas Weingessel} \seealso{stft} \examples{x<-rnorm(500) y<-stft(x, wtype="rectangle.window") plot(y) } \keyword{ts} e1071/DESCRIPTION0000644000175100001440000000360514672000036012535 0ustar hornikusersPackage: e1071 Version: 1.7-16 Title: Misc Functions of the Department of Statistics, Probability Theory Group (Formerly: E1071), TU Wien Imports: graphics, grDevices, class, stats, methods, utils, proxy Suggests: cluster, mlbench, nnet, randomForest, rpart, SparseM, xtable, Matrix, MASS, slam Authors@R: c(person(given = "David", family = "Meyer", role = c("aut", "cre"), email = "David.Meyer@R-project.org", comment = c(ORCID = "0000-0002-5196-3048")), person(given = "Evgenia", family = "Dimitriadou", role = c("aut","cph")), person(given = "Kurt", family = "Hornik", role = "aut", email = "Kurt.Hornik@R-project.org", comment = c(ORCID = "0000-0003-4198-9911")), person(given = "Andreas", family = "Weingessel", role = "aut"), person(given = "Friedrich", family = "Leisch", role = "aut"), person(given = "Chih-Chung", family = "Chang", role = c("ctb","cph"), comment = "libsvm C++-code"), person(given = "Chih-Chen", family = "Lin", role = c("ctb","cph"), comment = "libsvm C++-code")) Description: Functions for latent class analysis, short time Fourier transform, fuzzy clustering, support vector machines, shortest path computation, bagged clustering, naive Bayes classifier, generalized k-nearest neighbour ... License: GPL-2 | GPL-3 LazyLoad: yes NeedsCompilation: yes Packaged: 2024-09-16 08:28:45 UTC; meyer Author: David Meyer [aut, cre] (), Evgenia Dimitriadou [aut, cph], Kurt Hornik [aut] (), Andreas Weingessel [aut], Friedrich Leisch [aut], Chih-Chung Chang [ctb, cph] (libsvm C++-code), Chih-Chen Lin [ctb, cph] (libsvm C++-code) Maintainer: David Meyer Repository: CRAN Date/Publication: 2024-09-16 09:53:34 UTC