Meta-analysis

We estimated all models with running frequency as the dependent behavior variable (here). To summarize the results over our clubs, we will perform a meta-analysis using a Fisher-type combination of one-tailed p-values, described by Hedges and Olkin (2014) and Snijders and Bosker (2011) (Chapter 3). We also performed this meta-analysis on models with running volume as the dependent variable (find the script here)

We perform a double test:

  1. For detecting if there are any club-networks with a positive parameter value, the null hypothesis tested is: for all clubs, the value of this parameter is zero or less than zero; with the alternative hypothesis: for at least one club, the value of this parameter is greater than zero.
  2. For detecting if there are any club-networks with a negative parameter value, the null hypothesis tested is: for all clubs, the value of this parameter is zero or greater than zero; with the alternative hypothesis: for at least one club, the value of this parameter is less than zero.

For each of these combined tests, the p-value is given. We use for each test the significance level of α/2, which yields an overall combined test at significance level α. Four different overall results are possible. Indicating the right-sided and left-sided p-values by pr and pl respectively, these results are:

No evidence for any non-zero parameter values.

Evidence that some club-networks have a positive parameter value, but no evidence for any negative parameter values.

Evidence that some clubs have a negative parameter value, no evidence for any positive parameter values

Evidence that some clubs have a negative parameter value, and some others have a positive parameter value.



getting started

clean up

# empty environment
rm(list=ls())
# free up memory
gc()

general custom functions

  • fpackage.check: Check if packages are installed (and install if not) in R (source)
  • fload.R: function to load R-objects under new names.
fpackage.check <- function(packages) {
    lapply(packages, FUN = function(x) {
        if (!require(x, character.only = TRUE)) {
            install.packages(x, dependencies = TRUE)
            library(x, character.only = TRUE)
        }
    })
}

fload.R  <- function(fileName){
  load(fileName)
  get(ls()[ls() != "fileName"])
}

colorize <- function(x, color) {sprintf("<span style='color: %s;'>%s</span>", color, x) }


necessary packages

  • RSiena: for meta-analysis in siena08
  • knitr: generating tables
  • kableExtra: extend knitr’ table functionality
  • dplyr: data manipulation
packages = c("RSiena", "knitr", "kableExtra", "dplyr")
fpackage.check(packages)

First, we read in the sienaFit-objects of our 5 clubs. We estimated for each club 6 models, and we listed these models for each club.

We use fload.R to load the objects under new names. We list models 1-6 across clubs for subsequent meta-analysis.

# large lists, takes a lot of time to load
# in case of limited memory space, exclude club 3 for now.
club1 <-  fload.R("test/sienaFit/sienaFit_club1.RData")
club2 <-  fload.R("test/sienaFit/sienaFit_club2.RData")
club4 <-  fload.R("test/sienaFit/sienaFit_club4.RData")
club5 <-  fload.R("test/sienaFit/sienaFit_club5.RData")

# we list model 1-6
m1List <- list(club1[[1]], club2[[1]], club4[[1]], club5[[1]])
m2List <- list(club1[[2]], club2[[2]], club4[[2]], club5[[2]])
m3List <- list(club1[[3]], club2[[3]], club4[[3]], club5[[3]])
m4List <- list(club1[[4]], club2[[4]], club4[[4]], club5[[4]])
m5List <- list(club1[[5]], club2[[5]], club4[[5]], club5[[5]])
m6List <- list(club1[[6]], club2[[6]], club4[[6]], club5[[6]])

# remove the excess data, and add club 3's rsiena objects.
rm(club1, club2, club4, club5)
club3 <-  fload.R("test/sienaFit/sienaFit_club3.RData")
# when facing facing storage capacity issues, check the capacity:
#memory.limit()
# we increase the limit
#memory.limit(size=56000)

# add to the lists
m1List[[5]] <- club3[[1]]
m2List[[5]] <- club3[[2]]
m3List[[5]] <- club3[[3]]
m4List[[5]] <- club3[[4]]
m5List[[5]] <- club3[[5]]
m6List[[5]] <- club3[[6]]
rm(club3)


Models

We perform the meta-analysis seperately for 6 model specifications.

Model 1 (indegree)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m1List, function(x){x$theta})
standers <- sapply(m1List, function(x){x$se}) 

(eff.names <-
    m1List[[1]]$effects[m1List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m1List, bound=100)

efnames <- names(ans8[1:43])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:43,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=43, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m1.RData")

Model 2 (avAlt)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m2List, function(x){x$theta})
standers <- sapply(m2List, function(x){x$se}) 

(eff.names <-
    m2List[[1]]$effects[m2List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m2List, bound=100)

efnames <- names(ans8[1:44])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:44,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=44, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m2.RData")

Model 3 (avAttHigher)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m3List, function(x){x$theta})
standers <- sapply(m3List, function(x){x$se}) 

(eff.names <-
    m3List[[1]]$effects[m3List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m3List, bound=100)

efnames <- names(ans8[1:44])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:44,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=44, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m3.RData")

Model 4 (avAttLower)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m4List, function(x){x$theta})
standers <- sapply(m4List, function(x){x$se}) 

(eff.names <-
    m4List[[1]]$effects[m4List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m4List, bound=100)

efnames <- names(ans8[1:44])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:44,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=44, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m4.RData")

Model 5 (avAttHigher+Lower)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m5List, function(x){x$theta})
standers <- sapply(m5List, function(x){x$se}) 

(eff.names <-
    m5List[[1]]$effects[m5List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m5List, bound=100)

efnames <- names(ans8[1:45])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:45,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=45, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m5.RData")


additional check: are results driven by club 5?

we note that club 5 displayed the most significant influence effects. Following the suggestion of an anonymous reviewer, we checked the robustness of our aggregate findings by excluding this club from our summary of estimates.

Note, that the results of club 5 are in the 4th object of our list!!

# remove club 5
m5List_ <- m5List[-4]

# We extract the parameter estimates and standard errors 
parameters <- sapply(m5List_, function(x){x$theta})
standers <- sapply(m5List_, function(x){x$se}) 

ans8 <- siena08(m5List_, bound=100)

Fishers <- t(sapply(1:45,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# reorder
colnames(Fishers)
Fishers <- Fishers[, c(2,4,1,3,5)]

# so, now: we exclude from our previously made table, the columns representing club 5 results;
# and we replace the Fisher statistics with the above

df3 <- df2[-c(5:10)]
df3 <- cbind(df3, round(Fishers,3))


save(df3, file = "test/sienaFit/meta-analysis/meta_freq_m5_withoutclub5.RData")

Model 6 (avSim)

We extract the parameter estimates and standard errors for our models.

We use siena08 to perform Fisher’s method for combining independent p-values.

# We extract the parameter estimates and standard errors 
parameters <- sapply(m6List, function(x){x$theta})
standers <- sapply(m6List, function(x){x$se}) 

(eff.names <-
    m6List[[1]]$effects[m6List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m6List, bound=100)

efnames <- names(ans8[1:44])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:44,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=44, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=27)", "Club 2 (N=58)", "Club 4 (N=9)", "Club 5 (N=76)", "Club 3 (N=159)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_freq_m6.RData")


Results

And we present the results:

Model 1 (indegree)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.522 (0.519) 5.598 (0.54) 4.741 (0.581) 0.984 (0.762) 6.052 (0.579) 0.211 319.673 1.000 0.000 10
constant kudonet rate (period 2) 1.405 (0.525) 6.069 (0.553) 3.235 (0.397) 0.513 (0.41) 5.357 (0.533) 0.230 322.463 1.000 0.000 10
constant kudonet rate (period 3) 0.572 (0.235) 6.09 (0.552) 3.498 (0.435) 1.129 (0.702) 6.229 (0.621) 0.126 321.550 1.000 0.000 10
constant kudonet rate (period 4) 0.66 (0.261) 4.224 (0.403) 8.406 (1.214) 0.537 (0.429) 4.987 (0.5) 0.233 290.767 1.000 0.000 10
constant kudonet rate (period 5) 0.328 (0.175) 5.064 (0.457) 7.461 (0.935) 0.706 (0.465) 5.893 (0.538) 0.195 338.659 1.000 0.000 10
constant kudonet rate (period 6) 1.044 (0.347) 5.06 (0.472) 4.867 (0.592) 1.05 (0.63) 7.184 (0.666) 0.101 337.605 1.000 0.000 10
constant kudonet rate (period 7) 0.715 (0.287) 5.75 (0.532) 5.533 (0.786) 2.598 (1.432) 5.467 (0.512) 0.084 316.001 1.000 0.000 10
constant kudonet rate (period 8) 1.626 (0.515) 5.657 (0.516) 9.896 (1.233) 1.008 (0.581) 5.621 (0.506) 0.086 348.169 1.000 0.000 10
constant kudonet rate (period 9) 0.507 (0.208) 4.894 (0.436) 6.904 (0.732) 2.277 (1.415) 6.606 (0.578) 0.125 380.889 1.000 0.000 10
constant kudonet rate (period 10) 1.962 (0.596) 3.4 (0.342) 5.279 (0.705) 0.408 (0.319) 6.411 (0.563) 0.212 323.544 1.000 0.000 10
constant kudonet rate (period 11) 1.587 (0.522) 4.923 (0.433) 11.436 (2.015) 1.594 (1.021) 6.905 (0.571) 0.124 345.900 1.000 0.000 10
outdegree (density) -7.397 (1.509) -6.963 (0.373) -4.818 (0.18) 3.362 (2.874) -3.904 (0.182) 1578.454 4.223 0.000 0.937 10
reciprocity 5.651 (0.744) 4.415 (0.257) 4.385 (0.137) 2.613 (0.7) 3.797 (0.178) 0.000 1883.621 1.000 0.000 10
GWESP I -> K -> J (69) 1.237 (0.345) 0.87 (0.131) 1.235 (0.075) 2.136 (0.643) 1.712 (0.097) 0.001 677.584 1.000 0.000 10
indegree - popularity (sqrt) 0.257 (0.31) 0.173 (0.042) 0.68 (0.059) -1.247 (0.911) -0.093 (0.031) 18.478 165.943 0.047 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.514 (0.049) 0 (NA) 0 (NA) 118.001 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.726 (0.187) 0.771 (0.091) 0.244 (0.021) -1.56 (0.885) 0.07 (0.019) 6.489 262.962 0.773 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.015) 0 (NA) 0 (NA) 0 (NA) 42.959 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.431 (0.35) 2.548 (0.127) 3.921 (2.016) 0.563 (0.219) 0.293 431.989 1.000 0.000 8
gender alter 0.225 (0.349) 0.166 (0.07) -0.123 (0.061) 0 (NA) 0.159 (0.048) 8.238 27.289 0.411 0.001 8
gender ego -0.438 (0.405) 0.086 (0.071) -0.121 (0.066) 0 (NA) -0.14 (0.05) 23.115 4.738 0.003 0.785 8
same gender -0.491 (0.31) 0.193 (0.067) 0.063 (0.06) 0 (NA) 0.084 (0.046) 6.132 23.127 0.632 0.003 8
freq_run alter -0.203 (0.334) 0.093 (0.032) 0.096 (0.039) 0.208 (0.61) -0.015 (0.033) 5.774 26.233 0.834 0.003 10
freq_run ego -0.597 (0.377) -0.1 (0.031) 0.025 (0.041) -0.181 (0.577) 0.046 (0.033) 22.980 8.728 0.011 0.558 10
freq_run similarity -5.114 (1.702) -0.077 (0.127) 0.371 (0.163) -3.613 (2.368) 0.218 (0.122) 21.448 16.268 0.018 0.092 10
higher freq_run 1.225 (1.811) 0.508 (0.186) 0.25 (0.212) -0.306 (2.682) -0.323 (0.204) 8.157 19.897 0.613 0.030 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.684 (0.165) -1.578 (0.113) 0 (NA) -1.206 (0.105) 361.893 0.000 0.000 1.000 6
rate freq_run (period 1) 3.537 (1.61) 2.347 (0.559) 1.952 (0.297) 7.016 (10.666) 2.593 (0.571) 0.618 108.317 1.000 0.000 10
rate freq_run (period 2) 2.411 (0.869) 1.97 (0.48) 1.837 (0.27) 3.453 (3.419) 3.321 (0.731) 0.346 114.772 1.000 0.000 10
rate freq_run (period 3) 3.591 (1.4) 2.556 (0.598) 2.273 (0.361) 1.633 (1.04) 2.833 (0.601) 0.130 111.813 1.000 0.000 10
rate freq_run (period 4) 2.595 (1.08) 1.809 (0.432) 2.14 (0.338) 3.171 (2.881) 2.545 (0.525) 0.308 110.105 1.000 0.000 10
rate freq_run (period 5) 2.668 (1.085) 1.538 (0.34) 2.061 (0.296) 4.315 (3.916) 2.793 (0.508) 0.305 129.285 1.000 0.000 10
rate freq_run (period 6) 4.335 (1.889) 2.568 (0.567) 2.041 (0.302) 0.831 (0.588) 3.842 (0.879) 0.185 114.999 1.000 0.000 10
rate freq_run (period 7) 3.139 (1.307) 2.519 (0.542) 2.023 (0.293) 1.266 (0.897) 3.686 (0.803) 0.181 120.613 1.000 0.000 10
rate freq_run (period 8) 1.722 (0.572) 3.544 (0.844) 1.464 (0.211) 9.245 (22.933) 2.17 (0.428) 0.844 122.534 1.000 0.000 10
rate freq_run (period 9) 1.889 (0.64) 2.689 (0.629) 1.674 (0.223) 1.531 (0.94) 3.602 (0.68) 0.109 137.560 1.000 0.000 10
rate freq_run (period 10) 3.166 (1.162) 2.218 (0.527) 1.721 (0.245) 1.005 (0.61) 2.081 (0.441) 0.109 122.219 1.000 0.000 10
rate freq_run (period 11) 1.564 (0.535) 1.329 (0.316) 1.813 (0.251) 2.021 (1.4) 2.175 (0.452) 0.158 126.489 1.000 0.000 10
freq_run linear shape -0.084 (0.072) -0.199 (0.071) -0.094 (0.031) -0.422 (0.312) -0.043 (0.044) 37.951 0.807 0.000 1.000 10
freq_run quadratic shape -0.108 (0.024) -0.019 (0.013) -0.029 (0.009) -0.211 (0.079) 0.005 (0.009) 57.245 2.672 0.000 0.988 10
freq_run indegree 0.01 (0.018) 0.013 (0.005) 0.002 (0.009) 0.157 (0.136) 0.007 (0.004) 2.177 24.109 0.995 0.007 10
freq_run: effect from gender -0.109 (0.114) 0.026 (0.086) -0.2 (0.057) 0 (NA) -0.118 (0.063) 28.160 2.371 0.000 0.967 8
freq_run: effect from freq_other -0.044 (0.047) 0.003 (0.019) 0.006 (0.014) -0.072 (0.127) 0.044 (0.018) 7.968 14.835 0.632 0.138 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 2 (avAlt)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.532 (0.543) 5.593 (0.543) 4.747 (0.613) 0.989 (0.839) 6.057 (0.626) 0.259 294.982 1.000 0.000 10
constant kudonet rate (period 2) 1.399 (0.512) 6.073 (0.565) 3.227 (0.408) 0.519 (0.392) 5.362 (0.538) 0.201 312.629 1.000 0.000 10
constant kudonet rate (period 3) 0.574 (0.233) 6.097 (0.553) 3.489 (0.449) 1.147 (0.736) 6.211 (0.643) 0.137 309.838 1.000 0.000 10
constant kudonet rate (period 4) 0.658 (0.273) 4.217 (0.417) 8.398 (1.023) 0.54 (0.421) 4.992 (0.463) 0.226 319.436 1.000 0.000 10
constant kudonet rate (period 5) 0.328 (0.175) 5.063 (0.471) 7.494 (0.93) 0.711 (0.487) 5.888 (0.544) 0.212 329.237 1.000 0.000 10
constant kudonet rate (period 6) 1.039 (0.356) 5.065 (0.481) 4.868 (0.563) 1.055 (0.613) 7.191 (0.644) 0.091 348.558 1.000 0.000 10
constant kudonet rate (period 7) 0.711 (0.288) 5.76 (0.515) 5.522 (0.788) 2.64 (1.462) 5.472 (0.522) 0.086 319.740 1.000 0.000 10
constant kudonet rate (period 8) 1.602 (0.507) 5.65 (0.497) 9.889 (1.281) 1.009 (0.615) 5.633 (0.483) 0.105 364.844 1.000 0.000 10
constant kudonet rate (period 9) 0.507 (0.208) 4.89 (0.423) 6.911 (0.694) 2.297 (1.423) 6.626 (0.576) 0.124 400.933 1.000 0.000 10
constant kudonet rate (period 10) 1.965 (0.572) 3.396 (0.34) 5.276 (0.722) 0.407 (0.314) 6.416 (0.534) 0.206 337.633 1.000 0.000 10
constant kudonet rate (period 11) 1.586 (0.495) 4.933 (0.422) 11.421 (1.985) 1.624 (1.11) 6.9 (0.591) 0.150 345.189 1.000 0.000 10
outdegree (density) -7.377 (1.547) -6.95 (0.36) -4.822 (0.18) 3.302 (2.896) -3.91 (0.178) 1623.942 4.126 0.000 0.941 10
reciprocity 5.664 (0.765) 4.413 (0.261) 4.392 (0.138) 2.578 (0.658) 3.792 (0.178) 0.000 1847.616 1.000 0.000 10
GWESP I -> K -> J (69) 1.238 (0.348) 0.869 (0.13) 1.236 (0.075) 2.16 (0.669) 1.705 (0.098) 0.002 675.188 1.000 0.000 10
indegree - popularity (sqrt) 0.258 (0.317) 0.173 (0.042) 0.681 (0.058) -1.255 (0.916) -0.09 (0.032) 17.581 167.333 0.062 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.515 (0.049) 0 (NA) 0 (NA) 116.634 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.731 (0.182) 0.769 (0.088) 0.245 (0.02) -1.573 (0.883) 0.071 (0.019) 6.569 271.228 0.765 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.014) 0 (NA) 0 (NA) 0 (NA) 44.193 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.438 (0.343) 2.548 (0.124) 3.935 (2.001) 0.568 (0.223) 0.273 453.633 1.000 0.000 8
gender alter 0.224 (0.356) 0.166 (0.07) -0.123 (0.062) 0 (NA) 0.159 (0.048) 8.148 27.409 0.419 0.001 8
gender ego -0.435 (0.405) 0.086 (0.071) -0.119 (0.065) 0 (NA) -0.139 (0.049) 23.079 4.734 0.003 0.786 8
same gender -0.497 (0.316) 0.193 (0.067) 0.064 (0.06) 0 (NA) 0.084 (0.045) 6.075 23.418 0.639 0.003 8
freq_run alter -0.219 (0.332) 0.093 (0.031) 0.095 (0.039) 0.24 (0.605) -0.015 (0.033) 5.898 26.246 0.824 0.003 10
freq_run ego -0.588 (0.373) -0.099 (0.031) 0.026 (0.04) -0.215 (0.58) 0.047 (0.033) 22.810 8.697 0.011 0.561 10
freq_run similarity -5.152 (1.668) -0.077 (0.128) 0.371 (0.161) -3.613 (2.326) 0.225 (0.127) 22.112 16.367 0.015 0.090 10
higher freq_run 1.151 (1.84) 0.502 (0.187) 0.245 (0.212) -0.132 (2.627) -0.324 (0.202) 8.200 19.507 0.609 0.034 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.688 (0.169) -1.583 (0.114) 0 (NA) -1.203 (0.105) 358.179 0.000 0.000 1.000 6
rate freq_run (period 1) 3.557 (1.739) 2.327 (0.566) 1.948 (0.293) 8.179 (22.694) 2.71 (0.553) 0.932 110.568 1.000 0.000 10
rate freq_run (period 2) 2.409 (0.955) 1.966 (0.474) 1.84 (0.287) 3.499 (3.215) 3.324 (0.782) 0.309 105.760 1.000 0.000 10
rate freq_run (period 3) 3.576 (1.598) 2.55 (0.66) 2.27 (0.365) 1.664 (1.083) 2.896 (0.612) 0.154 105.554 1.000 0.000 10
rate freq_run (period 4) 2.593 (1.067) 1.785 (0.393) 2.144 (0.328) 3.364 (3.974) 2.611 (0.543) 0.458 115.105 1.000 0.000 10
rate freq_run (period 5) 2.636 (1.111) 1.539 (0.348) 2.057 (0.311) 5.228 (5.738) 2.899 (0.618) 0.417 113.913 1.000 0.000 10
rate freq_run (period 6) 4.335 (1.736) 2.557 (0.586) 2.04 (0.307) 0.845 (0.61) 3.843 (0.867) 0.186 113.365 1.000 0.000 10
rate freq_run (period 7) 3.2 (1.185) 2.499 (0.613) 2.015 (0.284) 1.215 (0.829) 3.83 (0.802) 0.155 122.079 1.000 0.000 10
rate freq_run (period 8) 1.711 (0.571) 3.507 (0.781) 1.467 (0.201) 8.29 (20.435) 2.213 (0.451) 0.841 128.868 1.000 0.000 10
rate freq_run (period 9) 1.868 (0.663) 2.688 (0.633) 1.677 (0.243) 1.555 (0.959) 3.688 (0.737) 0.113 124.496 1.000 0.000 10
rate freq_run (period 10) 3.16 (1.065) 2.213 (0.478) 1.719 (0.252) 0.995 (0.637) 2.103 (0.417) 0.125 127.828 1.000 0.000 10
rate freq_run (period 11) 1.578 (0.524) 1.328 (0.309) 1.811 (0.255) 2.054 (1.334) 2.184 (0.447) 0.130 127.446 1.000 0.000 10
freq_run linear shape -0.084 (0.071) -0.169 (0.081) -0.095 (0.034) -0.375 (0.319) -0.137 (0.052) 39.366 0.561 0.000 1.000 10
freq_run quadratic shape -0.108 (0.024) -0.018 (0.013) -0.029 (0.009) -0.23 (0.084) -0.018 (0.011) 63.030 0.276 0.000 1.000 10
freq_run indegree 0.011 (0.018) 0.013 (0.005) 0.001 (0.009) 0.157 (0.142) 0.007 (0.004) 2.155 24.993 0.995 0.005 10
freq_run average alter -0.002 (0.095) -0.057 (0.078) 0.009 (0.075) -0.225 (0.229) 0.212 (0.052) 9.170 24.988 0.516 0.005 10
freq_run: effect from gender -0.108 (0.114) 0.013 (0.09) -0.199 (0.058) 0 (NA) -0.059 (0.066) 24.349 2.421 0.002 0.965 8
freq_run: effect from freq_other -0.044 (0.049) 0.002 (0.019) 0.007 (0.015) -0.1 (0.134) 0.046 (0.019) 8.350 14.557 0.595 0.149 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 3 (avAttHigher)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.534 (0.536) 5.6 (0.551) 4.75 (0.619) 1.005 (0.732) 6.059 (0.634) 0.181 289.727 1.000 0.000 10
constant kudonet rate (period 2) 1.397 (0.504) 6.074 (0.587) 3.236 (0.417) 0.519 (0.394) 5.357 (0.554) 0.203 296.106 1.000 0.000 10
constant kudonet rate (period 3) 0.578 (0.238) 6.091 (0.533) 3.495 (0.44) 1.138 (0.702) 6.222 (0.613) 0.123 331.522 1.000 0.000 10
constant kudonet rate (period 4) 0.669 (0.265) 4.221 (0.407) 8.452 (1.122) 0.532 (0.418) 4.984 (0.47) 0.226 310.578 1.000 0.000 10
constant kudonet rate (period 5) 0.33 (0.178) 5.054 (0.471) 7.489 (0.891) 0.707 (0.453) 5.886 (0.545) 0.187 334.731 1.000 0.000 10
constant kudonet rate (period 6) 1.051 (0.354) 5.071 (0.461) 4.87 (0.584) 1.058 (0.639) 7.168 (0.663) 0.103 345.547 1.000 0.000 10
constant kudonet rate (period 7) 0.708 (0.284) 5.748 (0.543) 5.517 (0.815) 2.629 (1.467) 5.462 (0.507) 0.087 309.677 1.000 0.000 10
constant kudonet rate (period 8) 1.633 (0.534) 5.662 (0.5) 9.926 (1.156) 1.008 (0.659) 5.636 (0.507) 0.132 364.549 1.000 0.000 10
constant kudonet rate (period 9) 0.504 (0.203) 4.898 (0.438) 6.923 (0.768) 2.31 (1.452) 6.609 (0.551) 0.128 385.651 1.000 0.000 10
constant kudonet rate (period 10) 1.954 (0.571) 3.399 (0.341) 5.268 (0.693) 0.403 (0.304) 6.412 (0.54) 0.196 338.589 1.000 0.000 10
constant kudonet rate (period 11) 1.589 (0.519) 4.935 (0.442) 11.491 (1.819) 1.625 (1.05) 6.911 (0.589) 0.128 340.135 1.000 0.000 10
outdegree (density) -7.367 (1.552) -6.935 (0.368) -4.836 (0.18) 3.311 (2.84) -3.908 (0.175) 1622.270 4.210 0.000 0.937 10
reciprocity 5.668 (0.759) 4.399 (0.261) 4.384 (0.138) 2.603 (0.661) 3.793 (0.178) 0.000 1860.940 1.000 0.000 10
GWESP I -> K -> J (69) 1.246 (0.346) 0.867 (0.13) 1.235 (0.075) 2.129 (0.635) 1.707 (0.095) 0.001 690.209 1.000 0.000 10
indegree - popularity (sqrt) 0.255 (0.316) 0.172 (0.042) 0.679 (0.058) -1.238 (0.91) -0.091 (0.031) 18.275 169.468 0.050 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.513 (0.049) 0 (NA) 0 (NA) 116.604 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.725 (0.185) 0.766 (0.091) 0.245 (0.021) -1.566 (0.88) 0.071 (0.019) 6.565 263.660 0.766 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.089 (0.015) 0 (NA) 0 (NA) 0 (NA) 41.856 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.44 (0.347) 2.536 (0.125) 3.928 (2.007) 0.563 (0.223) 0.278 439.415 1.000 0.000 8
gender alter 0.206 (0.35) 0.165 (0.071) -0.123 (0.061) 0 (NA) 0.158 (0.048) 8.231 26.730 0.411 0.001 8
gender ego -0.431 (0.406) 0.084 (0.07) -0.121 (0.065) 0 (NA) -0.14 (0.049) 23.346 4.713 0.003 0.788 8
same gender -0.492 (0.317) 0.192 (0.066) 0.063 (0.06) 0 (NA) 0.083 (0.046) 6.014 23.288 0.646 0.003 8
freq_run alter -0.203 (0.349) 0.094 (0.032) 0.097 (0.04) 0.232 (0.605) -0.015 (0.033) 5.714 26.307 0.839 0.003 10
freq_run ego -0.59 (0.387) -0.101 (0.032) 0.024 (0.04) -0.198 (0.576) 0.047 (0.034) 22.539 8.683 0.013 0.562 10
freq_run similarity -5.096 (1.701) -0.076 (0.131) 0.375 (0.163) -3.55 (2.344) 0.225 (0.124) 21.282 16.563 0.019 0.085 10
higher freq_run 1.198 (1.913) 0.508 (0.189) 0.261 (0.208) -0.195 (2.665) -0.326 (0.204) 8.149 19.828 0.614 0.031 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.682 (0.165) -1.58 (0.116) 0 (NA) -1.203 (0.105) 354.656 0.000 0.000 1.000 6
rate freq_run (period 1) 3.655 (1.734) 2.329 (0.524) 1.958 (0.307) 7.285 (12.663) 2.692 (0.562) 0.699 109.592 1.000 0.000 10
rate freq_run (period 2) 2.406 (0.899) 1.998 (0.458) 1.844 (0.28) 3.536 (3.326) 3.377 (0.819) 0.318 109.756 1.000 0.000 10
rate freq_run (period 3) 3.56 (1.402) 2.578 (0.589) 2.276 (0.346) 1.64 (1.074) 2.889 (0.59) 0.142 117.925 1.000 0.000 10
rate freq_run (period 4) 2.629 (1.154) 1.817 (0.407) 2.154 (0.336) 3.249 (3.778) 2.598 (0.596) 0.456 107.691 1.000 0.000 10
rate freq_run (period 5) 2.62 (1.099) 1.543 (0.339) 2.077 (0.33) 4.351 (3.696) 2.855 (0.611) 0.272 111.478 1.000 0.000 10
rate freq_run (period 6) 4.407 (1.739) 2.63 (0.621) 2.063 (0.321) 0.837 (0.59) 3.866 (0.797) 0.173 113.627 1.000 0.000 10
rate freq_run (period 7) 3.25 (1.314) 2.6 (0.609) 2.033 (0.315) 1.241 (0.867) 3.868 (0.845) 0.172 111.278 1.000 0.000 10
rate freq_run (period 8) 1.727 (0.601) 3.665 (0.93) 1.485 (0.224) 8.495 (20.166) 2.216 (0.458) 0.825 112.813 1.000 0.000 10
rate freq_run (period 9) 1.866 (0.605) 2.722 (0.604) 1.688 (0.257) 1.551 (0.988) 3.715 (0.754) 0.122 122.794 1.000 0.000 10
rate freq_run (period 10) 3.193 (1.271) 2.31 (0.532) 1.736 (0.245) 0.986 (0.608) 2.102 (0.433) 0.120 124.397 1.000 0.000 10
rate freq_run (period 11) 1.583 (0.526) 1.364 (0.309) 1.835 (0.264) 1.992 (1.406) 2.197 (0.448) 0.166 126.209 1.000 0.000 10
freq_run linear shape -0.125 (0.084) -0.368 (0.127) -0.152 (0.046) -0.361 (0.353) -0.179 (0.078) 46.007 0.503 0.000 1.000 10
freq_run quadratic shape -0.095 (0.027) 0.007 (0.021) -0.017 (0.012) -0.229 (0.11) 0.022 (0.012) 31.360 8.919 0.001 0.540 10
freq_run average attraction higher 1.561 (1.713) 2.977 (1.835) 2.688 (1.689) -0.777 (2.734) 2.813 (1.306) 2.546 24.387 0.990 0.007 10
freq_run indegree 0 (0.022) 0.009 (0.006) -0.015 (0.014) 0.163 (0.142) 0.001 (0.005) 6.729 12.814 0.751 0.234 10
freq_run: effect from gender -0.096 (0.114) 0.019 (0.087) -0.182 (0.059) 0 (NA) -0.07 (0.068) 21.743 2.543 0.005 0.960 8
freq_run: effect from freq_other -0.061 (0.05) -0.001 (0.019) 0.006 (0.015) -0.073 (0.127) 0.044 (0.018) 9.185 14.261 0.515 0.161 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 4 (avAttLower)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.531 (0.536) 5.613 (0.528) 4.744 (0.569) 1.003 (0.778) 6.068 (0.615) 0.212 316.159 1.000 0.000 10
constant kudonet rate (period 2) 1.386 (0.51) 6.078 (0.565) 3.229 (0.384) 0.515 (0.41) 5.362 (0.542) 0.227 319.390 1.000 0.000 10
constant kudonet rate (period 3) 0.566 (0.231) 6.091 (0.552) 3.478 (0.446) 1.136 (0.743) 6.22 (0.641) 0.145 311.134 1.000 0.000 10
constant kudonet rate (period 4) 0.666 (0.251) 4.227 (0.4) 8.39 (1.024) 0.536 (0.436) 5 (0.479) 0.241 322.086 1.000 0.000 10
constant kudonet rate (period 5) 0.333 (0.171) 5.064 (0.472) 7.472 (0.83) 0.698 (0.466) 5.888 (0.537) 0.191 348.595 1.000 0.000 10
constant kudonet rate (period 6) 1.031 (0.351) 5.072 (0.48) 4.859 (0.599) 1.056 (0.632) 7.193 (0.667) 0.100 331.673 1.000 0.000 10
constant kudonet rate (period 7) 0.707 (0.28) 5.758 (0.52) 5.512 (0.766) 2.573 (1.476) 5.469 (0.505) 0.095 327.378 1.000 0.000 10
constant kudonet rate (period 8) 1.604 (0.495) 5.671 (0.493) 9.865 (1.181) 1.026 (0.618) 5.631 (0.496) 0.101 371.254 1.000 0.000 10
constant kudonet rate (period 9) 0.511 (0.213) 4.894 (0.439) 6.889 (0.751) 2.276 (1.396) 6.619 (0.551) 0.122 388.026 1.000 0.000 10
constant kudonet rate (period 10) 1.953 (0.539) 3.4 (0.331) 5.274 (0.694) 0.405 (0.319) 6.402 (0.537) 0.215 347.057 1.000 0.000 10
constant kudonet rate (period 11) 1.575 (0.493) 4.933 (0.438) 11.42 (2.137) 1.603 (1.043) 6.914 (0.608) 0.130 323.595 1.000 0.000 10
outdegree (density) -7.472 (1.55) -6.943 (0.37) -4.819 (0.182) 3.383 (2.867) -3.902 (0.177) 1597.647 4.258 0.000 0.935 10
reciprocity 5.661 (0.749) 4.409 (0.261) 4.395 (0.14) 2.638 (0.732) 3.796 (0.172) 0.000 1859.751 1.000 0.000 10
GWESP I -> K -> J (69) 1.231 (0.34) 0.867 (0.129) 1.238 (0.074) 2.107 (0.622) 1.704 (0.097) 0.001 687.966 1.000 0.000 10
indegree - popularity (sqrt) 0.294 (0.314) 0.173 (0.042) 0.679 (0.059) -1.237 (0.915) -0.092 (0.031) 18.104 162.873 0.053 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.516 (0.051) 0 (NA) 0 (NA) 110.140 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.732 (0.185) 0.768 (0.091) 0.244 (0.021) -1.578 (0.875) 0.071 (0.019) 6.668 263.459 0.756 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.015) 0 (NA) 0 (NA) 0 (NA) 42.115 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.44 (0.342) 2.548 (0.124) 3.996 (2.017) 0.577 (0.225) 0.268 455.019 1.000 0.000 8
gender alter 0.22 (0.355) 0.166 (0.072) -0.123 (0.062) 0 (NA) 0.159 (0.048) 8.186 26.942 0.416 0.001 8
gender ego -0.456 (0.404) 0.086 (0.071) -0.121 (0.065) 0 (NA) -0.14 (0.049) 23.538 4.717 0.003 0.787 8
same gender -0.485 (0.318) 0.194 (0.067) 0.063 (0.06) 0 (NA) 0.084 (0.045) 5.903 23.282 0.658 0.003 8
freq_run alter -0.201 (0.327) 0.092 (0.032) 0.095 (0.04) 0.224 (0.614) -0.015 (0.034) 5.772 25.622 0.834 0.004 10
freq_run ego -0.6 (0.375) -0.098 (0.032) 0.027 (0.041) -0.188 (0.58) 0.047 (0.034) 22.406 8.721 0.013 0.559 10
freq_run similarity -5.16 (1.615) -0.072 (0.13) 0.379 (0.157) -3.534 (2.25) 0.225 (0.126) 22.797 17.077 0.012 0.073 10
higher freq_run 1.244 (1.817) 0.495 (0.188) 0.243 (0.215) -0.241 (2.731) -0.323 (0.206) 8.061 19.186 0.623 0.038 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.687 (0.167) -1.585 (0.114) 0 (NA) -1.205 (0.101) 371.049 0.000 0.000 1.000 6
rate freq_run (period 1) 3.684 (1.718) 2.302 (0.53) 1.96 (0.296) 6.111 (7.241) 2.672 (0.591) 0.477 110.210 1.000 0.000 10
rate freq_run (period 2) 2.376 (0.898) 1.965 (0.44) 1.831 (0.293) 3.261 (2.765) 3.318 (0.737) 0.262 109.762 1.000 0.000 10
rate freq_run (period 3) 3.679 (1.629) 2.501 (0.596) 2.262 (0.338) 1.603 (1.081) 2.852 (0.572) 0.167 117.010 1.000 0.000 10
rate freq_run (period 4) 2.467 (0.86) 1.778 (0.399) 2.142 (0.347) 3.104 (3.44) 2.55 (0.546) 0.409 111.087 1.000 0.000 10
rate freq_run (period 5) 2.545 (1.016) 1.535 (0.333) 2.056 (0.304) 3.756 (2.675) 2.882 (0.632) 0.179 118.568 1.000 0.000 10
rate freq_run (period 6) 4.336 (2.069) 2.543 (0.557) 2.037 (0.312) 0.826 (0.586) 3.77 (0.774) 0.202 115.906 1.000 0.000 10
rate freq_run (period 7) 3.234 (1.295) 2.519 (0.571) 1.995 (0.293) 1.329 (0.914) 3.782 (0.834) 0.164 117.312 1.000 0.000 10
rate freq_run (period 8) 1.709 (0.569) 3.451 (0.854) 1.472 (0.212) 8.685 (35.241) 2.277 (0.484) 1.033 117.126 1.000 0.000 10
rate freq_run (period 9) 1.853 (0.63) 2.676 (0.592) 1.681 (0.234) 1.584 (0.945) 3.695 (0.789) 0.099 128.637 1.000 0.000 10
rate freq_run (period 10) 3.163 (1.231) 2.26 (0.492) 1.723 (0.226) 1.006 (0.656) 2.068 (0.414) 0.139 136.208 1.000 0.000 10
rate freq_run (period 11) 1.592 (0.552) 1.34 (0.303) 1.821 (0.243) 1.931 (1.315) 2.193 (0.449) 0.151 133.111 1.000 0.000 10
freq_run linear shape -0.006 (0.078) 0.063 (0.154) -0.041 (0.043) -0.311 (0.339) 0.234 (0.076) 9.369 17.918 0.497 0.056 10
freq_run quadratic shape -0.071 (0.028) 0.043 (0.035) -0.012 (0.013) -0.153 (0.099) 0.063 (0.016) 19.528 25.395 0.034 0.005 10
freq_run average attraction lower 4.835 (2.263) 5.879 (3.167) 3.165 (1.93) 2.585 (3.155) 8.928 (2.06) 0.663 47.916 1.000 0.000 10
freq_run indegree 0.048 (0.026) 0.017 (0.006) 0.023 (0.016) 0.193 (0.153) 0.024 (0.006) 0.461 47.650 1.000 0.000 10
freq_run: effect from gender -0.185 (0.121) 0.034 (0.091) -0.205 (0.059) 0 (NA) -0.087 (0.067) 27.726 2.402 0.001 0.966 8
freq_run: effect from freq_other -0.048 (0.048) 0.008 (0.02) 0.008 (0.015) -0.047 (0.131) 0.031 (0.02) 7.376 11.352 0.690 0.331 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 5 (avAttHigher+Lower)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.523 (0.524) 5.603 (0.539) 4.749 (0.551) 1.02 (0.75) 6.061 (0.611) 0.185 317.493 1.000 0.000 10
constant kudonet rate (period 2) 1.389 (0.52) 6.076 (0.58) 3.237 (0.433) 0.525 (0.403) 5.368 (0.535) 0.210 301.211 1.000 0.000 10
constant kudonet rate (period 3) 0.568 (0.23) 6.096 (0.548) 3.483 (0.457) 1.14 (0.717) 6.221 (0.639) 0.129 311.358 1.000 0.000 10
constant kudonet rate (period 4) 0.66 (0.261) 4.216 (0.399) 8.424 (1.048) 0.531 (0.437) 4.997 (0.485) 0.249 316.411 1.000 0.000 10
constant kudonet rate (period 5) 0.327 (0.173) 5.056 (0.469) 7.493 (0.904) 0.713 (0.48) 5.886 (0.549) 0.202 331.660 1.000 0.000 10
constant kudonet rate (period 6) 1.029 (0.349) 5.07 (0.46) 4.871 (0.602) 1.061 (0.616) 7.181 (0.659) 0.090 344.074 1.000 0.000 10
constant kudonet rate (period 7) 0.704 (0.284) 5.751 (0.497) 5.528 (0.804) 2.574 (1.432) 5.467 (0.52) 0.087 327.540 1.000 0.000 10
constant kudonet rate (period 8) 1.605 (0.521) 5.657 (0.491) 9.913 (1.264) 1.022 (0.635) 5.631 (0.501) 0.113 359.512 1.000 0.000 10
constant kudonet rate (period 9) 0.504 (0.21) 4.895 (0.432) 6.904 (0.817) 2.313 (1.319) 6.614 (0.574) 0.098 367.989 1.000 0.000 10
constant kudonet rate (period 10) 1.958 (0.55) 3.4 (0.34) 5.292 (0.702) 0.405 (0.315) 6.418 (0.568) 0.210 325.101 1.000 0.000 10
constant kudonet rate (period 11) 1.567 (0.504) 4.938 (0.424) 11.422 (2.565) 1.646 (1.016) 6.908 (0.591) 0.110 330.342 1.000 0.000 10
outdegree (density) -7.464 (1.573) -6.962 (0.368) -4.826 (0.181) 3.161 (2.745) -3.9 (0.175) 1622.091 4.163 0.000 0.940 10
reciprocity 5.665 (0.754) 4.424 (0.256) 4.388 (0.139) 2.627 (0.646) 3.793 (0.176) 0.000 1864.632 1.000 0.000 10
GWESP I -> K -> J (69) 1.225 (0.342) 0.871 (0.132) 1.236 (0.076) 2.107 (0.619) 1.708 (0.095) 0.001 684.135 1.000 0.000 10
indegree - popularity (sqrt) 0.294 (0.317) 0.173 (0.042) 0.68 (0.059) -1.183 (0.867) -0.093 (0.031) 18.802 163.191 0.043 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.515 (0.05) 0 (NA) 0 (NA) 113.691 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.735 (0.187) 0.771 (0.091) 0.244 (0.021) -1.542 (0.842) 0.071 (0.019) 6.792 264.233 0.745 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.015) 0 (NA) 0 (NA) 0 (NA) 42.566 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.433 (0.345) 2.544 (0.127) 3.918 (1.9) 0.567 (0.227) 0.273 429.915 1.000 0.000 8
gender alter 0.22 (0.356) 0.167 (0.071) -0.123 (0.062) 0 (NA) 0.159 (0.048) 8.063 27.650 0.427 0.001 8
gender ego -0.456 (0.404) 0.086 (0.07) -0.121 (0.065) 0 (NA) -0.141 (0.049) 23.740 4.740 0.003 0.785 8
same gender -0.486 (0.317) 0.194 (0.067) 0.062 (0.06) 0 (NA) 0.084 (0.046) 5.957 23.253 0.652 0.003 8
freq_run alter -0.205 (0.332) 0.093 (0.032) 0.097 (0.039) 0.216 (0.576) -0.016 (0.033) 5.810 26.108 0.831 0.004 10
freq_run ego -0.594 (0.389) -0.099 (0.032) 0.025 (0.04) -0.186 (0.547) 0.047 (0.034) 22.285 8.769 0.014 0.554 10
freq_run similarity -5.16 (1.7) -0.077 (0.128) 0.38 (0.168) -3.453 (2.12) 0.22 (0.125) 22.063 16.129 0.015 0.096 10
higher freq_run 1.22 (1.843) 0.501 (0.191) 0.252 (0.21) -0.182 (2.494) -0.328 (0.204) 8.187 19.362 0.611 0.036 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.691 (0.166) -1.58 (0.117) 0 (NA) -1.204 (0.103) 356.498 0.000 0.000 1.000 6
rate freq_run (period 1) 3.662 (1.668) 2.326 (0.536) 1.963 (0.312) 4.752 (4.503) 2.683 (0.55) 0.343 110.212 1.000 0.000 10
rate freq_run (period 2) 2.383 (0.917) 1.987 (0.483) 1.847 (0.287) 3.236 (3.274) 3.318 (0.719) 0.362 109.374 1.000 0.000 10
rate freq_run (period 3) 3.689 (1.571) 2.537 (0.597) 2.284 (0.37) 1.48 (0.895) 2.837 (0.626) 0.119 107.463 1.000 0.000 10
rate freq_run (period 4) 2.452 (1) 1.801 (0.408) 2.155 (0.334) 3.189 (3.98) 2.545 (0.517) 0.490 113.870 1.000 0.000 10
rate freq_run (period 5) 2.543 (1.037) 1.547 (0.35) 2.073 (0.315) 3.765 (3.189) 2.876 (0.619) 0.267 114.146 1.000 0.000 10
rate freq_run (period 6) 4.38 (1.742) 2.6 (0.589) 2.062 (0.323) 0.8 (0.57) 3.765 (0.882) 0.179 109.124 1.000 0.000 10
rate freq_run (period 7) 3.223 (1.42) 2.558 (0.553) 2.011 (0.294) 1.295 (0.905) 3.759 (0.823) 0.182 118.946 1.000 0.000 10
rate freq_run (period 8) 1.71 (0.598) 3.542 (0.844) 1.487 (0.22) 4.847 (6.024) 2.256 (0.5) 0.477 114.450 1.000 0.000 10
rate freq_run (period 9) 1.864 (0.685) 2.707 (0.661) 1.691 (0.231) 1.516 (0.953) 3.678 (0.788) 0.121 125.211 1.000 0.000 10
rate freq_run (period 10) 3.212 (1.153) 2.295 (0.536) 1.738 (0.245) 0.904 (0.533) 2.061 (0.399) 0.098 129.312 1.000 0.000 10
rate freq_run (period 11) 1.607 (0.566) 1.355 (0.308) 1.834 (0.28) 1.709 (0.996) 2.186 (0.484) 0.093 116.494 1.000 0.000 10
freq_run linear shape -0.007 (0.1) -0.079 (0.31) -0.087 (0.078) 0.149 (0.668) 0.243 (0.154) 8.549 10.092 0.575 0.432 10
freq_run quadratic shape -0.071 (0.03) 0.041 (0.037) -0.009 (0.013) -0.203 (0.128) 0.062 (0.016) 18.223 25.183 0.051 0.005 10
freq_run average attraction higher -0.034 (1.836) 1.437 (2.406) 1.559 (2.086) -4.544 (5.303) -0.136 (1.703) 7.356 8.597 0.691 0.571 10
freq_run average attraction lower 4.776 (2.43) 4.44 (4.337) 2.398 (2.286) 6.187 (5.882) 9.015 (2.642) 1.017 34.915 1.000 0.000 10
freq_run indegree 0.047 (0.032) 0.014 (0.008) 0.008 (0.028) 0.306 (0.238) 0.025 (0.009) 1.432 29.042 0.999 0.001 10
freq_run: effect from gender -0.184 (0.123) 0.028 (0.093) -0.192 (0.06) 0 (NA) -0.089 (0.071) 25.486 2.289 0.001 0.971 8
freq_run: effect from freq_other -0.047 (0.051) 0.005 (0.02) 0.007 (0.015) -0.026 (0.147) 0.031 (0.02) 7.030 11.327 0.723 0.333 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.


and the Fisher results excluding club 5:

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics, excluding club 5
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Fminus pminus Fplus pplus df
constant kudonet rate (period 1) 1.523 (0.524) 5.603 (0.539) 4.749 (0.551) 1.02 (0.75) 0.185 1.000 212.793 0.000 8
constant kudonet rate (period 2) 1.389 (0.52) 6.076 (0.58) 3.237 (0.433) 0.525 (0.403) 0.210 1.000 193.910 0.000 8
constant kudonet rate (period 3) 0.568 (0.23) 6.096 (0.548) 3.483 (0.457) 1.14 (0.717) 0.129 1.000 210.306 0.000 8
constant kudonet rate (period 4) 0.66 (0.261) 4.216 (0.399) 8.424 (1.048) 0.531 (0.437) 0.249 1.000 203.798 0.000 8
constant kudonet rate (period 5) 0.327 (0.173) 5.056 (0.469) 7.493 (0.904) 0.713 (0.48) 0.202 1.000 210.018 0.000 8
constant kudonet rate (period 6) 1.029 (0.349) 5.07 (0.46) 4.871 (0.602) 1.061 (0.616) 0.090 1.000 218.742 0.000 8
constant kudonet rate (period 7) 0.704 (0.284) 5.751 (0.497) 5.528 (0.804) 2.574 (1.432) 0.087 1.000 210.257 0.000 8
constant kudonet rate (period 8) 1.605 (0.521) 5.657 (0.491) 9.913 (1.264) 1.022 (0.635) 0.113 1.000 226.389 0.000 8
constant kudonet rate (period 9) 0.504 (0.21) 4.895 (0.432) 6.904 (0.817) 2.313 (1.319) 0.098 1.000 228.515 0.000 8
constant kudonet rate (period 10) 1.958 (0.55) 3.4 (0.34) 5.292 (0.702) 0.405 (0.315) 0.210 1.000 190.854 0.000 8
constant kudonet rate (period 11) 1.567 (0.504) 4.938 (0.424) 11.422 (2.565) 1.646 (1.016) 0.110 1.000 186.866 0.000 8
outdegree (density) -7.464 (1.573) -6.962 (0.368) -4.826 (0.181) 3.161 (2.745) 1115.847 0.000 4.163 0.842 8
reciprocity 5.665 (0.754) 4.424 (0.256) 4.388 (0.139) 2.627 (0.646) 0.000 1.000 1392.126 0.000 8
GWESP I -> K -> J (69) 1.225 (0.342) 0.871 (0.132) 1.236 (0.076) 2.107 (0.619) 0.001 1.000 355.699 0.000 8
indegree - popularity (sqrt) 0.294 (0.317) 0.173 (0.042) 0.68 (0.059) -1.183 (0.867) 5.290 0.726 163.189 0.000 8
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.515 (0.05) 0 (NA) 113.691 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.735 (0.187) 0.771 (0.091) 0.244 (0.021) -1.542 (0.842) 6.792 0.559 245.507 0.000 8
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.015) 0 (NA) 0 (NA) 42.566 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.433 (0.345) 2.544 (0.127) 3.918 (1.9) 0.261 1.000 419.790 0.000 6
gender alter 0.22 (0.356) 0.167 (0.071) -0.123 (0.062) 0 (NA) 8.062 0.234 12.088 0.060 6
gender ego -0.456 (0.404) 0.086 (0.07) -0.121 (0.065) 0 (NA) 11.300 0.080 4.736 0.578 6
same gender -0.486 (0.317) 0.194 (0.067) 0.062 (0.06) 0 (NA) 5.888 0.436 16.496 0.011 6
freq_run alter -0.205 (0.332) 0.093 (0.032) 0.097 (0.039) 0.216 (0.576) 3.518 0.898 25.343 0.001 8
freq_run ego -0.594 (0.389) -0.099 (0.032) 0.025 (0.04) -0.186 (0.547) 22.120 0.005 3.698 0.883 8
freq_run similarity -5.16 (1.7) -0.077 (0.128) 0.38 (0.168) -3.453 (2.12) 21.984 0.005 9.622 0.293 8
higher freq_run 1.22 (1.843) 0.501 (0.191) 0.252 (0.21) -0.182 (2.494) 2.344 0.969 19.251 0.014 8
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.691 (0.166) -1.58 (0.117) 0 (NA) 212.320 0.000 0.000 1.000 4
rate freq_run (period 1) 3.662 (1.668) 2.326 (0.536) 1.963 (0.312) 4.752 (4.503) 0.343 1.000 81.362 0.000 8
rate freq_run (period 2) 2.383 (0.917) 1.987 (0.483) 1.847 (0.287) 3.236 (3.274) 0.362 1.000 83.079 0.000 8
rate freq_run (period 3) 3.689 (1.571) 2.537 (0.597) 2.284 (0.37) 1.48 (0.895) 0.119 1.000 81.983 0.000 8
rate freq_run (period 4) 2.452 (1) 1.801 (0.408) 2.155 (0.334) 3.189 (3.98) 0.490 1.000 84.573 0.000 8
rate freq_run (period 5) 2.543 (1.037) 1.547 (0.35) 2.073 (0.315) 3.765 (3.189) 0.267 1.000 87.556 0.000 8
rate freq_run (period 6) 4.38 (1.742) 2.6 (0.589) 2.062 (0.323) 0.8 (0.57) 0.179 1.000 86.069 0.000 8
rate freq_run (period 7) 3.223 (1.42) 2.558 (0.553) 2.011 (0.294) 1.295 (0.905) 0.182 1.000 93.141 0.000 8
rate freq_run (period 8) 1.71 (0.598) 3.542 (0.844) 1.487 (0.22) 4.847 (6.024) 0.477 1.000 89.190 0.000 8
rate freq_run (period 9) 1.864 (0.685) 2.707 (0.661) 1.691 (0.231) 1.516 (0.953) 0.121 1.000 98.407 0.000 8
rate freq_run (period 10) 3.212 (1.153) 2.295 (0.536) 1.738 (0.245) 0.904 (0.533) 0.098 1.000 97.473 0.000 8
rate freq_run (period 11) 1.607 (0.566) 1.355 (0.308) 1.834 (0.28) 1.709 (0.996) 0.093 1.000 91.180 0.000 8
freq_run linear shape -0.007 (0.1) -0.079 (0.31) -0.087 (0.078) 0.149 (0.668) 8.432 0.392 4.363 0.823 8
freq_run quadratic shape -0.071 (0.03) 0.041 (0.037) -0.009 (0.013) -0.203 (0.128) 18.223 0.020 4.738 0.785 8
freq_run average attraction higher -0.034 (1.836) 1.437 (2.406) 1.559 (2.086) -4.544 (5.303) 5.838 0.665 7.335 0.501 8
freq_run average attraction lower 4.776 (2.43) 4.44 (4.337) 2.398 (2.286) 6.187 (5.882) 1.017 0.998 18.837 0.016 8
freq_run indegree 0.047 (0.032) 0.014 (0.008) 0.008 (0.028) 0.306 (0.238) 1.424 0.994 18.038 0.021 8
freq_run: effect from gender -0.184 (0.123) 0.028 (0.093) -0.192 (0.06) 0 (NA) 20.966 0.002 2.069 0.913 6
freq_run: effect from freq_other -0.047 (0.051) 0.005 (0.02) 0.007 (0.015) -0.026 (0.147) 6.908 0.547 5.677 0.683 8
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 6 (avSim)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running frequency dynamics across 5 Strava clubs
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Club 5 (N=76) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.533 (0.577) 5.602 (0.539) 4.751 (0.574) 0.986 (0.782) 6.056 (0.595) 0.227 315.075 1.000 0.000 10
constant kudonet rate (period 2) 1.387 (0.504) 6.067 (0.585) 3.235 (0.394) 0.522 (0.408) 5.349 (0.548) 0.218 305.645 1.000 0.000 10
constant kudonet rate (period 3) 0.576 (0.229) 6.087 (0.525) 3.496 (0.448) 1.12 (0.724) 6.208 (0.656) 0.138 319.626 1.000 0.000 10
constant kudonet rate (period 4) 0.66 (0.253) 4.214 (0.402) 8.427 (1.06) 0.531 (0.418) 4.988 (0.468) 0.225 321.046 1.000 0.000 10
constant kudonet rate (period 5) 0.33 (0.168) 5.063 (0.473) 7.483 (0.905) 0.699 (0.481) 5.896 (0.539) 0.201 334.877 1.000 0.000 10
constant kudonet rate (period 6) 1.04 (0.349) 5.066 (0.47) 4.88 (0.578) 1.052 (0.634) 7.187 (0.644) 0.103 350.154 1.000 0.000 10
constant kudonet rate (period 7) 0.702 (0.288) 5.757 (0.532) 5.532 (0.786) 2.613 (1.427) 5.472 (0.537) 0.083 305.903 1.000 0.000 10
constant kudonet rate (period 8) 1.621 (0.501) 5.657 (0.489) 9.884 (1.232) 1.007 (0.797) 5.647 (0.517) 0.219 356.129 1.000 0.000 10
constant kudonet rate (period 9) 0.509 (0.206) 4.889 (0.459) 6.921 (0.728) 2.247 (1.429) 6.615 (0.57) 0.133 374.034 1.000 0.000 10
constant kudonet rate (period 10) 1.965 (0.555) 3.403 (0.349) 5.296 (0.705) 0.405 (0.301) 6.406 (0.529) 0.186 338.979 1.000 0.000 10
constant kudonet rate (period 11) 1.585 (0.529) 4.929 (0.434) 11.449 (1.972) 1.602 (1.02) 6.905 (0.578) 0.123 343.038 1.000 0.000 10
outdegree (density) -7.363 (1.503) -6.965 (0.356) -4.826 (0.184) 3.403 (3.801) -3.905 (0.182) 1581.306 3.371 0.000 0.971 10
reciprocity 5.679 (0.77) 4.425 (0.256) 4.391 (0.135) 2.629 (0.872) 3.789 (0.175) 0.003 1917.155 1.000 0.000 10
GWESP I -> K -> J (69) 1.249 (0.35) 0.873 (0.13) 1.239 (0.074) 2.124 (0.639) 1.704 (0.096) 0.001 696.052 1.000 0.000 10
indegree - popularity (sqrt) 0.266 (0.305) 0.172 (0.041) 0.678 (0.059) -1.241 (0.906) -0.091 (0.031) 17.813 164.012 0.058 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.515 (0.049) 0 (NA) 0 (NA) 118.854 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.728 (0.186) 0.771 (0.089) 0.245 (0.02) -1.576 (1.139) 0.071 (0.019) 4.971 269.803 0.893 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.015) 0 (NA) 0 (NA) 0 (NA) 43.823 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.434 (0.343) 2.539 (0.126) 3.971 (2.045) 0.564 (0.224) 0.281 436.689 1.000 0.000 8
gender alter 0.207 (0.357) 0.166 (0.07) -0.123 (0.061) 0 (NA) 0.158 (0.049) 8.325 26.684 0.402 0.001 8
gender ego -0.439 (0.404) 0.085 (0.07) -0.122 (0.064) 0 (NA) -0.14 (0.049) 23.414 4.709 0.003 0.788 8
same gender -0.484 (0.321) 0.193 (0.067) 0.062 (0.06) 0 (NA) 0.084 (0.046) 5.853 23.223 0.664 0.003 8
freq_run alter -0.21 (0.331) 0.094 (0.032) 0.096 (0.039) 0.204 (0.721) -0.016 (0.034) 5.971 26.107 0.818 0.004 10
freq_run ego -0.588 (0.376) -0.101 (0.032) 0.025 (0.041) -0.18 (0.56) 0.048 (0.035) 22.543 8.695 0.013 0.561 10
freq_run similarity -5.109 (1.746) -0.079 (0.128) 0.381 (0.165) -3.614 (3.817) 0.225 (0.126) 18.980 16.684 0.041 0.082 10
higher freq_run 1.153 (1.811) 0.509 (0.188) 0.251 (0.212) -0.314 (3.046) -0.33 (0.21) 8.118 19.686 0.617 0.032 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.69 (0.168) -1.581 (0.112) 0 (NA) -1.201 (0.103) 368.974 0.000 0.000 1.000 6
rate freq_run (period 1) 3.755 (2.051) 2.329 (0.536) 1.961 (0.308) 6.804 (12.893) 2.735 (0.661) 0.778 100.932 1.000 0.000 10
rate freq_run (period 2) 2.413 (0.854) 1.989 (0.479) 1.85 (0.284) 3.352 (2.717) 3.437 (0.847) 0.235 107.894 1.000 0.000 10
rate freq_run (period 3) 3.656 (1.46) 2.566 (0.636) 2.28 (0.351) 1.671 (1.108) 2.934 (0.64) 0.149 110.494 1.000 0.000 10
rate freq_run (period 4) 2.573 (1.015) 1.812 (0.412) 2.163 (0.336) 3.087 (3.243) 2.627 (0.554) 0.385 112.679 1.000 0.000 10
rate freq_run (period 5) 2.598 (1.061) 1.557 (0.358) 2.068 (0.295) 4.034 (3.527) 2.919 (0.648) 0.285 117.947 1.000 0.000 10
rate freq_run (period 6) 4.476 (1.779) 2.622 (0.633) 2.059 (0.306) 0.833 (0.604) 3.923 (0.831) 0.187 115.348 1.000 0.000 10
rate freq_run (period 7) 3.336 (1.319) 2.588 (0.61) 2.019 (0.304) 1.267 (0.854) 3.944 (0.963) 0.154 109.923 1.000 0.000 10
rate freq_run (period 8) 1.709 (0.559) 3.616 (0.837) 1.485 (0.216) 9.927 (347.433) 2.296 (0.508) 0.002 115.485 1.000 0.000 8
rate freq_run (period 9) 1.857 (0.648) 2.723 (0.608) 1.688 (0.243) 1.553 (0.903) 3.819 (0.85) 0.092 122.636 1.000 0.000 10
rate freq_run (period 10) 3.248 (1.255) 2.301 (0.505) 1.731 (0.24) 1.026 (0.631) 2.112 (0.403) 0.116 132.625 1.000 0.000 10
rate freq_run (period 11) 1.606 (0.556) 1.36 (0.309) 1.838 (0.26) 2.023 (1.339) 2.228 (0.464) 0.139 125.922 1.000 0.000 10
freq_run linear shape -0.102 (0.072) -0.225 (0.074) -0.103 (0.032) -0.43 (0.395) -0.095 (0.047) 44.415 0.506 0.000 1.000 10
freq_run quadratic shape -0.073 (0.03) 0.029 (0.027) -0.01 (0.013) -0.19 (0.147) 0.046 (0.014) 17.903 20.221 0.057 0.027 10
freq_run average similarity 2.086 (1.192) 2.441 (1.231) 1.92 (0.898) 0.418 (1.495) 3.282 (0.836) 1.151 44.126 1.000 0.000 10
freq_run indegree 0.011 (0.018) 0.011 (0.006) 0.003 (0.009) 0.156 (0.206) 0.006 (0.004) 2.268 20.713 0.994 0.023 10
freq_run: effect from gender -0.124 (0.113) 0.022 (0.087) -0.189 (0.058) 0 (NA) -0.047 (0.067) 22.809 2.684 0.004 0.953 8
freq_run: effect from freq_other -0.068 (0.049) 0.002 (0.019) 0.007 (0.015) -0.065 (0.344) 0.039 (0.018) 8.722 13.291 0.559 0.208 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p-values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative

References

Hedges, L. V., and I. Olkin. 2014. Statistical Methods for Meta-Analysis. Academic press.
Snijders, T. A. B., and R. J. Bosker. 2011. Multilevel Analysis: An Introduction to Basic and Advanced Multilevel Modeling. Sage.
LS0tDQp0aXRsZTogIk1ldGEtYW5hbHlzaXMiDQpkYXRlOiAiTGFzdCBjb21waWxlZCBvbiBgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVCLCAlWScpYCINCmJpYmxpb2dyYXBoeTogcmVmZXJlbmNlcy5iaWINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjc3M6IHR3ZWFrcy5jc3MNCiAgICB0b2M6IG5vDQogICAgdG9jX2Zsb2F0OiBubw0KICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgdG9jX2RlcHRoOiAxDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgY29kZV9kb3dubG9hZDogeWVzDQotLS0NCg0KYGBge3IsIGdsb2JhbHNldHRpbmdzLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCByZXN1bHRzPSdoaWRlJ30NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0Kb3B0c19jaHVuayRzZXQodGlkeS5vcHRzPWxpc3Qod2lkdGguY3V0b2ZmPTEwMCksdGlkeT1UUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSxjb21tZW50ID0gIiM+IiwgY2FjaGU9VFJVRSwgY2xhc3Muc291cmNlPWMoInRlc3QiKSwgY2xhc3Mub3V0cHV0PWMoInRlc3QyIikpDQpvcHRpb25zKHdpZHRoID0gMTAwKQ0KcmdsOjpzZXR1cEtuaXRyKCkNCg0KDQoNCmBgYA0KDQpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0NCmtsaXBweTo6a2xpcHB5KHBvc2l0aW9uID0gYygndG9wJywgJ3JpZ2h0JykpDQoja2xpcHB5OjprbGlwcHkoY29sb3IgPSAnZGFya3JlZCcpDQoja2xpcHB5OjprbGlwcHkodG9vbHRpcF9tZXNzYWdlID0gJ0NsaWNrIHRvIGNvcHknLCB0b29sdGlwX3N1Y2Nlc3MgPSAnRG9uZScpDQpgYGANCg0KDQotLS0tDQoNCiMgTWV0YS1hbmFseXNpcyANCg0KV2UgZXN0aW1hdGVkIGFsbCBtb2RlbHMgd2l0aCBydW5uaW5nIGZyZXF1ZW5jeSBhcyB0aGUgZGVwZW5kZW50IGJlaGF2aW9yIHZhcmlhYmxlIChbaGVyZV0oaHR0cHM6Ly9yb2JmcmFua2VuLmdpdGh1Yi5pby9TdHJhdmEvb3RoZXIpKS4gVG8gc3VtbWFyaXplIHRoZSByZXN1bHRzIG92ZXIgb3VyIGNsdWJzLCB3ZSB3aWxsIHBlcmZvcm0gYSBtZXRhLWFuYWx5c2lzIHVzaW5nIGEgRmlzaGVyLXR5cGUgY29tYmluYXRpb24gb2Ygb25lLXRhaWxlZCBwLXZhbHVlcywgZGVzY3JpYmVkIGJ5IEBoZWRnZXMyMDE0IGFuZCBAYm9za2VyMjAxMSAoQ2hhcHRlciAzKS4gV2UgYWxzbyBwZXJmb3JtZWQgdGhpcyBtZXRhLWFuYWx5c2lzIG9uIG1vZGVscyB3aXRoIHJ1bm5pbmcgdm9sdW1lIGFzIHRoZSBkZXBlbmRlbnQgdmFyaWFibGUgKGZpbmQgdGhlIHNjcmlwdCBbaGVyZV0oaHR0cHM6Ly9yb2JmcmFua2VuLmdpdGh1Yi5pby9TdHJhdmEvdm9sX21ldGEuaHRtbCkpIA0KDQpXZSBwZXJmb3JtIGEgZG91YmxlIHRlc3Q6DQoNCjEuIEZvciBkZXRlY3RpbmcgaWYgdGhlcmUgYXJlIGFueSBjbHViLW5ldHdvcmtzIHdpdGggYSBwb3NpdGl2ZSBwYXJhbWV0ZXIgdmFsdWUsIHRoZSBudWxsIGh5cG90aGVzaXMgdGVzdGVkIGlzOiBmb3IgYWxsIGNsdWJzLCB0aGUgdmFsdWUgb2YgdGhpcyBwYXJhbWV0ZXIgaXMgemVybyBvciBsZXNzIHRoYW4gemVybzsgd2l0aCB0aGUgYWx0ZXJuYXRpdmUgaHlwb3RoZXNpczogZm9yIGF0IGxlYXN0IG9uZSBjbHViLCB0aGUgdmFsdWUgb2YgdGhpcyBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIHplcm8uDQoyLiBGb3IgZGV0ZWN0aW5nIGlmIHRoZXJlIGFyZSBhbnkgY2x1Yi1uZXR3b3JrcyB3aXRoIGEgbmVnYXRpdmUgcGFyYW1ldGVyIHZhbHVlLCB0aGUgbnVsbCBoeXBvdGhlc2lzIHRlc3RlZCBpczogZm9yIGFsbCBjbHVicywgdGhlIHZhbHVlIG9mIHRoaXMgcGFyYW1ldGVyIGlzIHplcm8gb3IgZ3JlYXRlciB0aGFuIHplcm87IHdpdGggdGhlIGFsdGVybmF0aXZlIGh5cG90aGVzaXM6IGZvciBhdCBsZWFzdCBvbmUgY2x1YiwgdGhlIHZhbHVlIG9mIHRoaXMgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiB6ZXJvLg0KDQpGb3IgZWFjaCBvZiB0aGVzZSBjb21iaW5lZCB0ZXN0cywgdGhlICpwKi12YWx1ZSBpcyBnaXZlbi4gV2UgdXNlIGZvciBlYWNoIHRlc3QgdGhlIHNpZ25pZmljYW5jZSBsZXZlbCBvZiAqzrEqLzIsIHdoaWNoIHlpZWxkcyBhbiBvdmVyYWxsIGNvbWJpbmVkIHRlc3QgYXQgc2lnbmlmaWNhbmNlIGxldmVsICrOsSouIEZvdXIgZGlmZmVyZW50IG92ZXJhbGwgcmVzdWx0cyBhcmUgcG9zc2libGUuIEluZGljYXRpbmcgdGhlIHJpZ2h0LXNpZGVkIGFuZCBsZWZ0LXNpZGVkICpwKi12YWx1ZXMgYnkgKnA8c3ViPnI8L3N1Yj4qIGFuZCAqcDxzdWI+bDwvc3ViPiogcmVzcGVjdGl2ZWx5LCB0aGVzZSByZXN1bHRzIGFyZToNCg0KLSAqcDxzdWI+cjwvc3ViPiogJFxndCQgKs6xKi8yICYgKnA8c3ViPmw8L3N1Yj4qICRcZ3QkICrOsSovMjoNCg0KTm8gZXZpZGVuY2UgZm9yIGFueSBub24temVybyBwYXJhbWV0ZXIgdmFsdWVzLg0KDQotICpwPHN1Yj5yPC9zdWI+KiAkXGxlcSQgKs6xKi8yICYgKnA8c3ViPmw8L3N1Yj4qICRcZ3QkICrOsSovMjoNCg0KRXZpZGVuY2UgdGhhdCBzb21lIGNsdWItbmV0d29ya3MgaGF2ZSBhIHBvc2l0aXZlIHBhcmFtZXRlciB2YWx1ZSwgYnV0IG5vIGV2aWRlbmNlIGZvciBhbnkgbmVnYXRpdmUgcGFyYW1ldGVyIHZhbHVlcy4NCg0KLSAqcDxzdWI+cjwvc3ViPiogJFxndCQgKs6xKi8yICYgKnA8c3ViPmw8L3N1Yj4qICRcbGVxJCAqzrEqLzI6DQoNCkV2aWRlbmNlIHRoYXQgc29tZSBjbHVicyBoYXZlIGEgbmVnYXRpdmUgcGFyYW1ldGVyIHZhbHVlLCBubyBldmlkZW5jZSBmb3IgYW55IHBvc2l0aXZlIHBhcmFtZXRlciB2YWx1ZXMNCg0KLSAqcDxzdWI+cjwvc3ViPiogJFxsZXEkICrOsSovMiAmICpwPHN1Yj5sPC9zdWI+KiAkXGxlcSQgKs6xKi8yOg0KDQpFdmlkZW5jZSB0aGF0IHNvbWUgY2x1YnMgaGF2ZSBhIG5lZ2F0aXZlIHBhcmFtZXRlciB2YWx1ZSwgYW5kIHNvbWUgb3RoZXJzIGhhdmUgYSBwb3NpdGl2ZSBwYXJhbWV0ZXIgdmFsdWUuDQoNCjxicj4NCg0KLS0tLQ0KDQojIGdldHRpbmcgc3RhcnRlZA0KDQojIyBjbGVhbiB1cA0KYGBge3IsIHJlc3VsdHM9J2hpZGUnfQ0KIyBlbXB0eSBlbnZpcm9ubWVudA0Kcm0obGlzdD1scygpKQ0KIyBmcmVlIHVwIG1lbW9yeQ0KZ2MoKQ0KYGBgDQoNCg0KIyMgZ2VuZXJhbCBjdXN0b20gZnVuY3Rpb25zDQoNCi0gYGZwYWNrYWdlLmNoZWNrYDogQ2hlY2sgaWYgcGFja2FnZXMgYXJlIGluc3RhbGxlZCAoYW5kIGluc3RhbGwgaWYgbm90KSBpbiBSIChbc291cmNlXShodHRwczovL3ZiYWxpZ2EuZ2l0aHViLmlvL3ZlcmlmeS10aGF0LXItcGFja2FnZXMtYXJlLWluc3RhbGxlZC1hbmQtbG9hZGVkLykpDQotIGBmbG9hZC5SYDogZnVuY3Rpb24gdG8gbG9hZCBSLW9iamVjdHMgdW5kZXIgbmV3IG5hbWVzLg0KDQpgYGB7ciwgcmVzdWx0cz0naGlkZSd9DQoNCmZwYWNrYWdlLmNoZWNrIDwtIGZ1bmN0aW9uKHBhY2thZ2VzKSB7DQogICAgbGFwcGx5KHBhY2thZ2VzLCBGVU4gPSBmdW5jdGlvbih4KSB7DQogICAgICAgIGlmICghcmVxdWlyZSh4LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7DQogICAgICAgICAgICBpbnN0YWxsLnBhY2thZ2VzKHgsIGRlcGVuZGVuY2llcyA9IFRSVUUpDQogICAgICAgICAgICBsaWJyYXJ5KHgsIGNoYXJhY3Rlci5vbmx5ID0gVFJVRSkNCiAgICAgICAgfQ0KICAgIH0pDQp9DQoNCmZsb2FkLlIgIDwtIGZ1bmN0aW9uKGZpbGVOYW1lKXsNCiAgbG9hZChmaWxlTmFtZSkNCiAgZ2V0KGxzKClbbHMoKSAhPSAiZmlsZU5hbWUiXSkNCn0NCg0KY29sb3JpemUgPC0gZnVuY3Rpb24oeCwgY29sb3IpIHtzcHJpbnRmKCI8c3BhbiBzdHlsZT0nY29sb3I6ICVzOyc+JXM8L3NwYW4+IiwgY29sb3IsIHgpIH0NCg0KYGBgDQoNCjxicj4NCg0KIyMgbmVjZXNzYXJ5IHBhY2thZ2VzDQoNCi0gYFJTaWVuYWA6IGZvciBtZXRhLWFuYWx5c2lzIGluIHNpZW5hMDgNCi0gYGtuaXRyYDogZ2VuZXJhdGluZyB0YWJsZXMNCi0gYGthYmxlRXh0cmFgOiBleHRlbmQgYGtuaXRyYCcgdGFibGUgZnVuY3Rpb25hbGl0eQ0KLSBgZHBseXJgOiBkYXRhIG1hbmlwdWxhdGlvbg0KDQoNCmBgYHtyLCByZXN1bHRzPSdoaWRlJ30NCnBhY2thZ2VzID0gYygiUlNpZW5hIiwgImtuaXRyIiwgImthYmxlRXh0cmEiLCAiZHBseXIiKQ0KZnBhY2thZ2UuY2hlY2socGFja2FnZXMpDQpgYGANCg0KDQpGaXJzdCwgd2UgcmVhZCBpbiB0aGUgc2llbmFGaXQtb2JqZWN0cyBvZiBvdXIgNSBjbHVicy4gV2UgZXN0aW1hdGVkIGZvciBlYWNoIGNsdWIgNiBtb2RlbHMsIGFuZCB3ZSBsaXN0ZWQgdGhlc2UgbW9kZWxzIGZvciBlYWNoIGNsdWIuIA0KDQpXZSB1c2UgYGZsb2FkLlJgIHRvIGxvYWQgdGhlIG9iamVjdHMgdW5kZXIgbmV3IG5hbWVzLiBXZSBsaXN0IG1vZGVscyAxLTYgYWNyb3NzIGNsdWJzIGZvciBzdWJzZXF1ZW50IG1ldGEtYW5hbHlzaXMuDQoNCmBgYHtyIGdldCBkYXRhLCBldmFsPUZ9DQoNCiMgbGFyZ2UgbGlzdHMsIHRha2VzIGEgbG90IG9mIHRpbWUgdG8gbG9hZA0KIyBpbiBjYXNlIG9mIGxpbWl0ZWQgbWVtb3J5IHNwYWNlLCBleGNsdWRlIGNsdWIgMyBmb3Igbm93Lg0KY2x1YjEgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvc2llbmFGaXRfY2x1YjEuUkRhdGEiKQ0KY2x1YjIgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvc2llbmFGaXRfY2x1YjIuUkRhdGEiKQ0KY2x1YjQgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvc2llbmFGaXRfY2x1YjQuUkRhdGEiKQ0KY2x1YjUgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvc2llbmFGaXRfY2x1YjUuUkRhdGEiKQ0KDQojIHdlIGxpc3QgbW9kZWwgMS02DQptMUxpc3QgPC0gbGlzdChjbHViMVtbMV1dLCBjbHViMltbMV1dLCBjbHViNFtbMV1dLCBjbHViNVtbMV1dKQ0KbTJMaXN0IDwtIGxpc3QoY2x1YjFbWzJdXSwgY2x1YjJbWzJdXSwgY2x1YjRbWzJdXSwgY2x1YjVbWzJdXSkNCm0zTGlzdCA8LSBsaXN0KGNsdWIxW1szXV0sIGNsdWIyW1szXV0sIGNsdWI0W1szXV0sIGNsdWI1W1szXV0pDQptNExpc3QgPC0gbGlzdChjbHViMVtbNF1dLCBjbHViMltbNF1dLCBjbHViNFtbNF1dLCBjbHViNVtbNF1dKQ0KbTVMaXN0IDwtIGxpc3QoY2x1YjFbWzVdXSwgY2x1YjJbWzVdXSwgY2x1YjRbWzVdXSwgY2x1YjVbWzVdXSkNCm02TGlzdCA8LSBsaXN0KGNsdWIxW1s2XV0sIGNsdWIyW1s2XV0sIGNsdWI0W1s2XV0sIGNsdWI1W1s2XV0pDQoNCiMgcmVtb3ZlIHRoZSBleGNlc3MgZGF0YSwgYW5kIGFkZCBjbHViIDMncyByc2llbmEgb2JqZWN0cy4NCnJtKGNsdWIxLCBjbHViMiwgY2x1YjQsIGNsdWI1KQ0KY2x1YjMgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvc2llbmFGaXRfY2x1YjMuUkRhdGEiKQ0KIyB3aGVuIGZhY2luZyBmYWNpbmcgc3RvcmFnZSBjYXBhY2l0eSBpc3N1ZXMsIGNoZWNrIHRoZSBjYXBhY2l0eToNCiNtZW1vcnkubGltaXQoKQ0KIyB3ZSBpbmNyZWFzZSB0aGUgbGltaXQNCiNtZW1vcnkubGltaXQoc2l6ZT01NjAwMCkNCg0KIyBhZGQgdG8gdGhlIGxpc3RzDQptMUxpc3RbWzVdXSA8LSBjbHViM1tbMV1dDQptMkxpc3RbWzVdXSA8LSBjbHViM1tbMl1dDQptM0xpc3RbWzVdXSA8LSBjbHViM1tbM11dDQptNExpc3RbWzVdXSA8LSBjbHViM1tbNF1dDQptNUxpc3RbWzVdXSA8LSBjbHViM1tbNV1dDQptNkxpc3RbWzVdXSA8LSBjbHViM1tbNl1dDQpybShjbHViMykNCg0KYGBgDQoNCg0KPGJyPg0KDQojIE1vZGVscyB7LnRhYnNldCAudGFic2V0LWZhZGV9IA0KDQpXZSBwZXJmb3JtIHRoZSBtZXRhLWFuYWx5c2lzIHNlcGVyYXRlbHkgZm9yIDYgbW9kZWwgc3BlY2lmaWNhdGlvbnMuDQoNCjwhLS0NCg0KLSBjanBsdXM6IHRlc3Qgc3RhdGlzdGljIGZvciBjb21iaW5hdGlvbiBvZiByaWdodCBvbmUtc2lkZWQgRmlzaGVyIGNvbWJpbmF0aW9uIHRlc3QNCi0gY2pwbHVzcDogcC12YWx1ZSBmb3IgY2pwbHVzDQotIGNqbWludXM6IHRlc3Qgc3RhdGlzdGljIGZvciBjb21iaW5hdGlvbiBvZiBsZWZ0IG9uZS1zaWRlZCBGaXNoZXIgY29tYmluYXRpb24gdGVzdA0KLSBjam1pbnVzcDogcC12YWx1ZSBmb3IgY2ptaW51cw0KLSBkZjogZGVncmVlcyBvZiBmcmVlZG9tDQoNCmh0dHBzOi8vc2VhcmNoLnItcHJvamVjdC5vcmcvQ1JBTi9yZWZtYW5zL1JTaWVuYS9odG1sL3NpZW5hMDguaHRtbCANCg0KDQotLT4gDQoNCiMjIE1vZGVsIDEgKGluZGVncmVlKQ0KDQpXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgZm9yIG91ciBtb2RlbHMuDQoNCldlIHVzZSAqc2llbmEwOCogdG8gcGVyZm9ybSBGaXNoZXIncyBtZXRob2QgZm9yIGNvbWJpbmluZyBpbmRlcGVuZGVudCAqcCotdmFsdWVzLg0KDQpgYGB7ciBldmFsID0gRkFMU0UsICByZXN1bHRzPSdoaWRlJ30NCiMgV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIA0KcGFyYW1ldGVycyA8LSBzYXBwbHkobTFMaXN0LCBmdW5jdGlvbih4KXt4JHRoZXRhfSkNCnN0YW5kZXJzIDwtIHNhcHBseShtMUxpc3QsIGZ1bmN0aW9uKHgpe3gkc2V9KSANCg0KKGVmZi5uYW1lcyA8LQ0KICAgIG0xTGlzdFtbMV1dJGVmZmVjdHNbbTFMaXN0W1sxXV0kZWZmZWN0cyRpbmNsdWRlLCdlZmZlY3ROYW1lJ10pIA0KKGVmZi5uYW1lcyA8LSBlZmYubmFtZXMpDQoNCiNjb21iaW5lIHBhcmFtZXRlcnMgYW5kIHN0ZC5lcnJvcnMgd2l0aCBlZmZlY3QgbmFtZXMNCnJvd25hbWVzKHBhcmFtZXRlcnMpIDwtIGVmZi5uYW1lcw0Kcm93bmFtZXMoc3RhbmRlcnMpIDwtIGVmZi5uYW1lcw0KDQojIHByaW50IHJvdW5kZWQgdG8gMyBkZWNpbWFscw0Kcm91bmQocGFyYW1ldGVycywzKQ0Kcm91bmQoc3RhbmRlcnMsMykNCg0KYW5zOCA8LSBzaWVuYTA4KG0xTGlzdCwgYm91bmQ9MTAwKQ0KDQplZm5hbWVzIDwtIG5hbWVzKGFuczhbMTo0M10pDQplZm5hbWVzIDwtIHN1YnN0cmluZyhlZm5hbWVzLCA4KQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDMsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgd2UgbWFrZSAoYW5kIHNhdmUpIGEgZGF0YWZyYW1lIGNvbWJpbmluZyBjbHViIGVzdGltYXRlcyAoc3RkLiBlcnJvcnMpIHdpdGggZmlzaGVyIHRlc3Qgc3RhdGlzdGljcw0KcGFyX3N0YW5kZXJzIDwtIHBhc3RlKHJvdW5kKHBhcmFtZXRlcnMsIDMpLCAiICgiLCByb3VuZChzdGFuZGVycywgMyksICIpIiwgc2VwPSIiKQ0KZGYgPC0gYXMuZGF0YS5mcmFtZShtYXRyaXgocGFyX3N0YW5kZXJzLCBucm93PTQzLCBuY29sPTUpKQ0Kcm93bmFtZXMoZGYpIDwtIGVmbmFtZXMNCmNvbG5hbWVzKGRmKSA8LSAoYygiQ2x1YiAxIChOPTI3KSIsICJDbHViIDIgKE49NTgpIiwgIkNsdWIgNCAoTj05KSIsICJDbHViIDUgKE49NzYpIiwgIkNsdWIgMyAoTj0xNTkpIikpDQpkZjIgPC0gY2JpbmQoZGYsIHJvdW5kKEZpc2hlcnMsIDMpKQ0KZGYyIDwtIGRmMlssIGMoMSwyLDUsMyw0LDcsNiw5LDgsMTApXSAjIHJlb3JkZXINCnNhdmUoZGYyLCBmaWxlID0gInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX2ZyZXFfbTEuUkRhdGEiKQ0KYGBgDQoNCiMjIE1vZGVsIDIgKGF2QWx0KQ0KV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIGZvciBvdXIgbW9kZWxzLg0KDQpXZSB1c2UgKnNpZW5hMDgqIHRvIHBlcmZvcm0gRmlzaGVyJ3MgbWV0aG9kIGZvciBjb21iaW5pbmcgaW5kZXBlbmRlbnQgKnAqLXZhbHVlcy4NCg0KYGBge3IgZXZhbCA9IEZBTFNFLCAgcmVzdWx0cz0naGlkZSd9DQojIFdlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyANCnBhcmFtZXRlcnMgPC0gc2FwcGx5KG0yTGlzdCwgZnVuY3Rpb24oeCl7eCR0aGV0YX0pDQpzdGFuZGVycyA8LSBzYXBwbHkobTJMaXN0LCBmdW5jdGlvbih4KXt4JHNlfSkgDQoNCihlZmYubmFtZXMgPC0NCiAgICBtMkxpc3RbWzFdXSRlZmZlY3RzW20yTGlzdFtbMV1dJGVmZmVjdHMkaW5jbHVkZSwnZWZmZWN0TmFtZSddKSANCihlZmYubmFtZXMgPC0gZWZmLm5hbWVzKQ0KDQojY29tYmluZSBwYXJhbWV0ZXJzIGFuZCBzdGQuZXJyb3JzIHdpdGggZWZmZWN0IG5hbWVzDQpyb3duYW1lcyhwYXJhbWV0ZXJzKSA8LSBlZmYubmFtZXMNCnJvd25hbWVzKHN0YW5kZXJzKSA8LSBlZmYubmFtZXMNCg0KIyBwcmludCByb3VuZGVkIHRvIDMgZGVjaW1hbHMNCnJvdW5kKHBhcmFtZXRlcnMsMykNCnJvdW5kKHN0YW5kZXJzLDMpDQoNCmFuczggPC0gc2llbmEwOChtMkxpc3QsIGJvdW5kPTEwMCkNCg0KZWZuYW1lcyA8LSBuYW1lcyhhbnM4WzE6NDRdKQ0KZWZuYW1lcyA8LSBzdWJzdHJpbmcoZWZuYW1lcywgOCkNCg0KRmlzaGVycyA8LSB0KHNhcHBseSgxOjQ0LA0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihpKXtjKGFuczhbW2ldXSRjanBsdXMsIGFuczhbW2ldXSRjam1pbnVzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuczhbW2ldXSRjanBsdXNwLCBhbnM4W1tpXV0kY2ptaW51c3AsIDIqYW5zOFtbaV1dJG4xICl9KSkNCkZpc2hlcnMgPC0gYXMuZGF0YS5mcmFtZShGaXNoZXJzKQ0Kcm93bmFtZXMoRmlzaGVycykgPC0gZWZuYW1lcw0KbmFtZXMoRmlzaGVycykgPC0gYygnRnBsdXMnLCAnRm1pbnVzJywgJ3BwbHVzJywgJ3BtaW51cycsICdkZicpDQojcm91bmQoRmlzaGVycywzKQ0KDQojIHdlIG1ha2UgKGFuZCBzYXZlKSBhIGRhdGFmcmFtZSBjb21iaW5pbmcgY2x1YiBlc3RpbWF0ZXMgKHN0ZC4gZXJyb3JzKSB3aXRoIGZpc2hlciB0ZXN0IHN0YXRpc3RpY3MNCnBhcl9zdGFuZGVycyA8LSBwYXN0ZShyb3VuZChwYXJhbWV0ZXJzLCAzKSwgIiAoIiwgcm91bmQoc3RhbmRlcnMsIDMpLCAiKSIsIHNlcD0iIikNCmRmIDwtIGFzLmRhdGEuZnJhbWUobWF0cml4KHBhcl9zdGFuZGVycywgbnJvdz00NCwgbmNvbD01KSkNCnJvd25hbWVzKGRmKSA8LSBlZm5hbWVzDQpjb2xuYW1lcyhkZikgPC0gKGMoIkNsdWIgMSAoTj0yNykiLCAiQ2x1YiAyIChOPTU4KSIsICJDbHViIDQgKE49OSkiLCAiQ2x1YiA1IChOPTc2KSIsICJDbHViIDMgKE49MTU5KSIpKQ0KZGYyIDwtIGNiaW5kKGRmLCByb3VuZChGaXNoZXJzLCAzKSkNCmRmMiA8LSBkZjJbLCBjKDEsMiw1LDMsNCw3LDYsOSw4LDEwKV0gIyByZW9yZGVyDQpzYXZlKGRmMiwgZmlsZSA9ICJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX20yLlJEYXRhIikNCmBgYA0KDQojIyBNb2RlbCAzIChhdkF0dEhpZ2hlcikNCldlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyBmb3Igb3VyIG1vZGVscy4NCg0KV2UgdXNlICpzaWVuYTA4KiB0byBwZXJmb3JtIEZpc2hlcidzIG1ldGhvZCBmb3IgY29tYmluaW5nIGluZGVwZW5kZW50ICpwKi12YWx1ZXMuDQpgYGB7ciBldmFsID0gRkFMU0UsICByZXN1bHRzPSdoaWRlJ30NCiMgV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIA0KcGFyYW1ldGVycyA8LSBzYXBwbHkobTNMaXN0LCBmdW5jdGlvbih4KXt4JHRoZXRhfSkNCnN0YW5kZXJzIDwtIHNhcHBseShtM0xpc3QsIGZ1bmN0aW9uKHgpe3gkc2V9KSANCg0KKGVmZi5uYW1lcyA8LQ0KICAgIG0zTGlzdFtbMV1dJGVmZmVjdHNbbTNMaXN0W1sxXV0kZWZmZWN0cyRpbmNsdWRlLCdlZmZlY3ROYW1lJ10pIA0KKGVmZi5uYW1lcyA8LSBlZmYubmFtZXMpDQoNCiNjb21iaW5lIHBhcmFtZXRlcnMgYW5kIHN0ZC5lcnJvcnMgd2l0aCBlZmZlY3QgbmFtZXMNCnJvd25hbWVzKHBhcmFtZXRlcnMpIDwtIGVmZi5uYW1lcw0Kcm93bmFtZXMoc3RhbmRlcnMpIDwtIGVmZi5uYW1lcw0KDQojIHByaW50IHJvdW5kZWQgdG8gMyBkZWNpbWFscw0Kcm91bmQocGFyYW1ldGVycywzKQ0Kcm91bmQoc3RhbmRlcnMsMykNCg0KYW5zOCA8LSBzaWVuYTA4KG0zTGlzdCwgYm91bmQ9MTAwKQ0KDQplZm5hbWVzIDwtIG5hbWVzKGFuczhbMTo0NF0pDQplZm5hbWVzIDwtIHN1YnN0cmluZyhlZm5hbWVzLCA4KQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDQsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgd2UgbWFrZSAoYW5kIHNhdmUpIGEgZGF0YWZyYW1lIGNvbWJpbmluZyBjbHViIGVzdGltYXRlcyAoc3RkLiBlcnJvcnMpIHdpdGggZmlzaGVyIHRlc3Qgc3RhdGlzdGljcw0KcGFyX3N0YW5kZXJzIDwtIHBhc3RlKHJvdW5kKHBhcmFtZXRlcnMsIDMpLCAiICgiLCByb3VuZChzdGFuZGVycywgMyksICIpIiwgc2VwPSIiKQ0KZGYgPC0gYXMuZGF0YS5mcmFtZShtYXRyaXgocGFyX3N0YW5kZXJzLCBucm93PTQ0LCBuY29sPTUpKQ0Kcm93bmFtZXMoZGYpIDwtIGVmbmFtZXMNCmNvbG5hbWVzKGRmKSA8LSAoYygiQ2x1YiAxIChOPTI3KSIsICJDbHViIDIgKE49NTgpIiwgIkNsdWIgNCAoTj05KSIsICJDbHViIDUgKE49NzYpIiwgIkNsdWIgMyAoTj0xNTkpIikpDQpkZjIgPC0gY2JpbmQoZGYsIHJvdW5kKEZpc2hlcnMsIDMpKQ0KZGYyIDwtIGRmMlssIGMoMSwyLDUsMyw0LDcsNiw5LDgsMTApXSAjIHJlb3JkZXINCnNhdmUoZGYyLCBmaWxlID0gInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX2ZyZXFfbTMuUkRhdGEiKQ0KYGBgDQoNCg0KIyMgTW9kZWwgNCAoYXZBdHRMb3dlcikNCldlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyBmb3Igb3VyIG1vZGVscy4NCg0KV2UgdXNlICpzaWVuYTA4KiB0byBwZXJmb3JtIEZpc2hlcidzIG1ldGhvZCBmb3IgY29tYmluaW5nIGluZGVwZW5kZW50ICpwKi12YWx1ZXMuDQoNCmBgYHtyIGV2YWwgPSBGQUxTRSwgIHJlc3VsdHM9J2hpZGUnfQ0KIyBXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgDQpwYXJhbWV0ZXJzIDwtIHNhcHBseShtNExpc3QsIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG00TGlzdCwgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQooZWZmLm5hbWVzIDwtDQogICAgbTRMaXN0W1sxXV0kZWZmZWN0c1ttNExpc3RbWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQooZWZmLm5hbWVzIDwtIGVmZi5uYW1lcykNCg0KI2NvbWJpbmUgcGFyYW1ldGVycyBhbmQgc3RkLmVycm9ycyB3aXRoIGVmZmVjdCBuYW1lcw0Kcm93bmFtZXMocGFyYW1ldGVycykgPC0gZWZmLm5hbWVzDQpyb3duYW1lcyhzdGFuZGVycykgPC0gZWZmLm5hbWVzDQoNCiMgcHJpbnQgcm91bmRlZCB0byAzIGRlY2ltYWxzDQpyb3VuZChwYXJhbWV0ZXJzLDMpDQpyb3VuZChzdGFuZGVycywzKQ0KDQphbnM4IDwtIHNpZW5hMDgobTRMaXN0LCBib3VuZD0xMDApDQoNCmVmbmFtZXMgPC0gbmFtZXMoYW5zOFsxOjQ0XSkNCmVmbmFtZXMgPC0gc3Vic3RyaW5nKGVmbmFtZXMsIDgpDQoNCkZpc2hlcnMgPC0gdChzYXBwbHkoMTo0NCwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oaSl7YyhhbnM4W1tpXV0kY2pwbHVzLCBhbnM4W1tpXV0kY2ptaW51cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnM4W1tpXV0kY2pwbHVzcCwgYW5zOFtbaV1dJGNqbWludXNwLCAyKmFuczhbW2ldXSRuMSApfSkpDQpGaXNoZXJzIDwtIGFzLmRhdGEuZnJhbWUoRmlzaGVycykNCnJvd25hbWVzKEZpc2hlcnMpIDwtIGVmbmFtZXMNCm5hbWVzKEZpc2hlcnMpIDwtIGMoJ0ZwbHVzJywgJ0ZtaW51cycsICdwcGx1cycsICdwbWludXMnLCAnZGYnKQ0KI3JvdW5kKEZpc2hlcnMsMykNCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDQsIG5jb2w9NSkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MjcpIiwgIkNsdWIgMiAoTj01OCkiLCAiQ2x1YiA0IChOPTkpIiwgIkNsdWIgNSAoTj03NikiLCAiQ2x1YiAzIChOPTE1OSkiKSkNCmRmMiA8LSBjYmluZChkZiwgcm91bmQoRmlzaGVycywgMykpDQpkZjIgPC0gZGYyWywgYygxLDIsNSwzLDQsNyw2LDksOCwxMCldICMgcmVvcmRlcg0Kc2F2ZShkZjIsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfZnJlcV9tNC5SRGF0YSIpDQpgYGANCg0KIyMgTW9kZWwgNSAoYXZBdHRIaWdoZXIrTG93ZXIpDQoNCldlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyBmb3Igb3VyIG1vZGVscy4NCg0KV2UgdXNlICpzaWVuYTA4KiB0byBwZXJmb3JtIEZpc2hlcidzIG1ldGhvZCBmb3IgY29tYmluaW5nIGluZGVwZW5kZW50ICpwKi12YWx1ZXMuDQoNCmBgYHtyIGV2YWwgPSBGQUxTRSwgIHJlc3VsdHM9J2hpZGUnfQ0KIyBXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgDQpwYXJhbWV0ZXJzIDwtIHNhcHBseShtNUxpc3QsIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG01TGlzdCwgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQooZWZmLm5hbWVzIDwtDQogICAgbTVMaXN0W1sxXV0kZWZmZWN0c1ttNUxpc3RbWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQooZWZmLm5hbWVzIDwtIGVmZi5uYW1lcykNCg0KI2NvbWJpbmUgcGFyYW1ldGVycyBhbmQgc3RkLmVycm9ycyB3aXRoIGVmZmVjdCBuYW1lcw0Kcm93bmFtZXMocGFyYW1ldGVycykgPC0gZWZmLm5hbWVzDQpyb3duYW1lcyhzdGFuZGVycykgPC0gZWZmLm5hbWVzDQoNCiMgcHJpbnQgcm91bmRlZCB0byAzIGRlY2ltYWxzDQpyb3VuZChwYXJhbWV0ZXJzLDMpDQpyb3VuZChzdGFuZGVycywzKQ0KDQphbnM4IDwtIHNpZW5hMDgobTVMaXN0LCBib3VuZD0xMDApDQoNCmVmbmFtZXMgPC0gbmFtZXMoYW5zOFsxOjQ1XSkNCmVmbmFtZXMgPC0gc3Vic3RyaW5nKGVmbmFtZXMsIDgpDQoNCkZpc2hlcnMgPC0gdChzYXBwbHkoMTo0NSwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oaSl7YyhhbnM4W1tpXV0kY2pwbHVzLCBhbnM4W1tpXV0kY2ptaW51cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnM4W1tpXV0kY2pwbHVzcCwgYW5zOFtbaV1dJGNqbWludXNwLCAyKmFuczhbW2ldXSRuMSApfSkpDQpGaXNoZXJzIDwtIGFzLmRhdGEuZnJhbWUoRmlzaGVycykNCnJvd25hbWVzKEZpc2hlcnMpIDwtIGVmbmFtZXMNCm5hbWVzKEZpc2hlcnMpIDwtIGMoJ0ZwbHVzJywgJ0ZtaW51cycsICdwcGx1cycsICdwbWludXMnLCAnZGYnKQ0KI3JvdW5kKEZpc2hlcnMsMykNCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDUsIG5jb2w9NSkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MjcpIiwgIkNsdWIgMiAoTj01OCkiLCAiQ2x1YiA0IChOPTkpIiwgIkNsdWIgNSAoTj03NikiLCAiQ2x1YiAzIChOPTE1OSkiKSkNCmRmMiA8LSBjYmluZChkZiwgcm91bmQoRmlzaGVycywgMykpDQpkZjIgPC0gZGYyWywgYygxLDIsNSwzLDQsNyw2LDksOCwxMCldICMgcmVvcmRlcg0Kc2F2ZShkZjIsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfZnJlcV9tNS5SRGF0YSIpDQpgYGANCg0KPGJyPg0KDQojIyMgYWRkaXRpb25hbCBjaGVjazogYXJlIHJlc3VsdHMgZHJpdmVuIGJ5IGNsdWIgNT8NCndlIG5vdGUgdGhhdCBjbHViIDUgZGlzcGxheWVkIHRoZSBtb3N0IHNpZ25pZmljYW50IGluZmx1ZW5jZSBlZmZlY3RzLiBGb2xsb3dpbmcgdGhlIHN1Z2dlc3Rpb24gb2YgYW4gYW5vbnltb3VzIHJldmlld2VyLCB3ZSBjaGVja2VkIHRoZSByb2J1c3RuZXNzIG9mIG91ciBhZ2dyZWdhdGUgZmluZGluZ3MgYnkgZXhjbHVkaW5nIHRoaXMgY2x1YiBmcm9tIG91ciBzdW1tYXJ5IG9mIGVzdGltYXRlcy4NCg0KYHIgY29sb3JpemUoIk5vdGUsIHRoYXQgdGhlIHJlc3VsdHMgb2YgY2x1YiA1IGFyZSBpbiB0aGUgKio0dGgqKiBvYmplY3Qgb2Ygb3VyIGxpc3QhISIsICJyZWQiKWANCg0KDQpgYGB7ciBldmFsID0gRkFMU0UsICByZXN1bHRzPSdoaWRlJ30NCiMgcmVtb3ZlIGNsdWIgNQ0KbTVMaXN0XyA8LSBtNUxpc3RbLTRdDQoNCiMgV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIA0KcGFyYW1ldGVycyA8LSBzYXBwbHkobTVMaXN0XywgZnVuY3Rpb24oeCl7eCR0aGV0YX0pDQpzdGFuZGVycyA8LSBzYXBwbHkobTVMaXN0XywgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQphbnM4IDwtIHNpZW5hMDgobTVMaXN0XywgYm91bmQ9MTAwKQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDUsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgcmVvcmRlcg0KY29sbmFtZXMoRmlzaGVycykNCkZpc2hlcnMgPC0gRmlzaGVyc1ssIGMoMiw0LDEsMyw1KV0NCg0KIyBzbywgbm93OiB3ZSBleGNsdWRlIGZyb20gb3VyIHByZXZpb3VzbHkgbWFkZSB0YWJsZSwgdGhlIGNvbHVtbnMgcmVwcmVzZW50aW5nIGNsdWIgNSByZXN1bHRzOw0KIyBhbmQgd2UgcmVwbGFjZSB0aGUgRmlzaGVyIHN0YXRpc3RpY3Mgd2l0aCB0aGUgYWJvdmUNCg0KZGYzIDwtIGRmMlstYyg1OjEwKV0NCmRmMyA8LSBjYmluZChkZjMsIHJvdW5kKEZpc2hlcnMsMykpDQoNCg0Kc2F2ZShkZjMsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfZnJlcV9tNV93aXRob3V0Y2x1YjUuUkRhdGEiKQ0KYGBgDQoNCg0KIyMgTW9kZWwgNiAoYXZTaW0pDQoNCldlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyBmb3Igb3VyIG1vZGVscy4NCg0KV2UgdXNlICpzaWVuYTA4KiB0byBwZXJmb3JtIEZpc2hlcidzIG1ldGhvZCBmb3IgY29tYmluaW5nIGluZGVwZW5kZW50ICpwKi12YWx1ZXMuDQoNCmBgYHtyIGV2YWwgPSBGQUxTRSwgIHJlc3VsdHM9J2hpZGUnfQ0KIyBXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgDQpwYXJhbWV0ZXJzIDwtIHNhcHBseShtNkxpc3QsIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG02TGlzdCwgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQooZWZmLm5hbWVzIDwtDQogICAgbTZMaXN0W1sxXV0kZWZmZWN0c1ttNkxpc3RbWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQooZWZmLm5hbWVzIDwtIGVmZi5uYW1lcykNCg0KI2NvbWJpbmUgcGFyYW1ldGVycyBhbmQgc3RkLmVycm9ycyB3aXRoIGVmZmVjdCBuYW1lcw0Kcm93bmFtZXMocGFyYW1ldGVycykgPC0gZWZmLm5hbWVzDQpyb3duYW1lcyhzdGFuZGVycykgPC0gZWZmLm5hbWVzDQoNCiMgcHJpbnQgcm91bmRlZCB0byAzIGRlY2ltYWxzDQpyb3VuZChwYXJhbWV0ZXJzLDMpDQpyb3VuZChzdGFuZGVycywzKQ0KDQphbnM4IDwtIHNpZW5hMDgobTZMaXN0LCBib3VuZD0xMDApDQoNCmVmbmFtZXMgPC0gbmFtZXMoYW5zOFsxOjQ0XSkNCmVmbmFtZXMgPC0gc3Vic3RyaW5nKGVmbmFtZXMsIDgpDQoNCkZpc2hlcnMgPC0gdChzYXBwbHkoMTo0NCwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oaSl7YyhhbnM4W1tpXV0kY2pwbHVzLCBhbnM4W1tpXV0kY2ptaW51cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnM4W1tpXV0kY2pwbHVzcCwgYW5zOFtbaV1dJGNqbWludXNwLCAyKmFuczhbW2ldXSRuMSApfSkpDQpGaXNoZXJzIDwtIGFzLmRhdGEuZnJhbWUoRmlzaGVycykNCnJvd25hbWVzKEZpc2hlcnMpIDwtIGVmbmFtZXMNCm5hbWVzKEZpc2hlcnMpIDwtIGMoJ0ZwbHVzJywgJ0ZtaW51cycsICdwcGx1cycsICdwbWludXMnLCAnZGYnKQ0KI3JvdW5kKEZpc2hlcnMsMykNCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDQsIG5jb2w9NSkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MjcpIiwgIkNsdWIgMiAoTj01OCkiLCAiQ2x1YiA0IChOPTkpIiwgIkNsdWIgNSAoTj03NikiLCAiQ2x1YiAzIChOPTE1OSkiKSkNCmRmMiA8LSBjYmluZChkZiwgcm91bmQoRmlzaGVycywgMykpDQpkZjIgPC0gZGYyWywgYygxLDIsNSwzLDQsNyw2LDksOCwxMCldICMgcmVvcmRlcg0Kc2F2ZShkZjIsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfZnJlcV9tNi5SRGF0YSIpDQoNCmBgYA0KDQoNCiMgey19DQoNCjxicj4NCg0KIyBSZXN1bHRzIHsudGFic2V0IC50YWJzZXQtZmFkZX0gDQoNCkFuZCB3ZSBwcmVzZW50IHRoZSByZXN1bHRzOg0KDQojIyBNb2RlbCAxIChpbmRlZ3JlZSkNCg0KYGBge3IgZWNobz1GfQ0KbG9hZCgidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfZnJlcV9tMS5SRGF0YSIpDQoNCm9wdGlvbnMoa25pdHIua2FibGUuTkEgPSAnLScpDQoNCmtuaXRyOjprYWJsZShkZjIsIGRpZ2l0cz0zLCAiaHRtbCIsIGNhcHRpb249Ik1ldGEtYW5hbHlzaXMgb2YgcGFyYW1ldGVyIGVzdGltYXRlcyBmb3IgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiBvZiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIGZyZXF1ZW5jeSBkeW5hbWljcyBhY3Jvc3MgNSBTdHJhdmEgY2x1YnMiKSAlPiUgDQogIGthYmxlRXh0cmE6OmthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIikpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gIkVzdGltYXRlcyBhcmUgZ2l2ZW4gd2l0aCBzdGFuZGFyZCBlcnJvcnMgaW4gcGFyZW50aGVzZXMuIEFsbCBjb252ZXJnZW5jZSB0IHJhdGlvcyA8LjEwOyBvdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW8gPC4xNS4iLA0KICAgICAgICAgICBhbHBoYWJldCAgPSBjKCJTb21lIHN0cnVjdHVyYWwgbmV0d29yayBlZmZlY3RzIHdlcmUgcmF0aGVyIGltcG9ydGFudCBmb3Igc29tZSBjbHVicywgYnV0IG5vdCBmb3Igb3RoZXJzOyBmb3IgdGhlIGxhdHRlciwgd2UgZml4ZWQgdGhlc2UgZWZmZWN0cyB0byAwIChTRT1OQSkuIiwgIldlIGZpeGVkIGdlbmRlciBlZmZlY3RzIG9uIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIHRvIDAgaW4gY2x1YiA0LiBWYXJpYXRpb24gYmV0d2VlbiB0aGUgZ2VuZGVycyB3YXMgbm90IHN1ZmZpY2llbnQgZm9yIG1vZGVsIGNvbnZlcmdlbmNlLiBTY29yZeKAk3R5cGUgdGVzdHMgaW5kaWNhdGVkIHRoYXQgZ2VuZGVyIGVmZmVjdHMgd2VyZSBub3Qgc2lnbmlmaWNhbnQuIiwgIlRoZSBGaXNoZXIgVGVzdCBjb21iaW5lcyBpbmRlcGVuZGVudCBw4oCTdmFsdWVzIHRvIHRlc3Qgd2hldGhlciB0aGVyZSBpcyBldmlkZW5jZSBpbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGNsdWJzIG9mIGEgcGFyYW1ldGVyIGJlaW5nIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLiIpKQ0KDQpgYGANCg0KIyMgTW9kZWwgMiAoYXZBbHQpDQoNCmBgYHtyIGVjaG89Rn0NCmxvYWQoInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX2ZyZXFfbTIuUkRhdGEiKQ0KDQpvcHRpb25zKGtuaXRyLmthYmxlLk5BID0gJy0nKQ0KDQprbml0cjo6a2FibGUoZGYyLCBkaWdpdHM9MywgImh0bWwiLCBjYXB0aW9uPSJNZXRhLWFuYWx5c2lzIG9mIHBhcmFtZXRlciBlc3RpbWF0ZXMgZm9yIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24gb2Yga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgYWNyb3NzIDUgU3RyYXZhIGNsdWJzIikgJT4lIA0KICBrYWJsZUV4dHJhOjprYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIpKSAlPiUNCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJFc3RpbWF0ZXMgYXJlIGdpdmVuIHdpdGggc3RhbmRhcmQgZXJyb3JzIGluIHBhcmVudGhlc2VzLiBBbGwgY29udmVyZ2VuY2UgdCByYXRpb3MgPC4xMDsgb3ZlcmFsbCBtYXhpbXVtIGNvbnZlcmdlbmNlIHJhdGlvIDwuMTUuIiwNCiAgICAgICAgICAgYWxwaGFiZXQgID0gYygiU29tZSBzdHJ1Y3R1cmFsIG5ldHdvcmsgZWZmZWN0cyB3ZXJlIHJhdGhlciBpbXBvcnRhbnQgZm9yIHNvbWUgY2x1YnMsIGJ1dCBub3QgZm9yIG90aGVyczsgZm9yIHRoZSBsYXR0ZXIsIHdlIGZpeGVkIHRoZXNlIGVmZmVjdHMgdG8gMCAoU0U9TkEpLiIsICJXZSBmaXhlZCBnZW5kZXIgZWZmZWN0cyBvbiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIGZyZXF1ZW5jeSBkeW5hbWljcyB0byAwIGluIGNsdWIgNC4gVmFyaWF0aW9uIGJldHdlZW4gdGhlIGdlbmRlcnMgd2FzIG5vdCBzdWZmaWNpZW50IGZvciBtb2RlbCBjb252ZXJnZW5jZS4gU2NvcmXigJN0eXBlIHRlc3RzIGluZGljYXRlZCB0aGF0IGdlbmRlciBlZmZlY3RzIHdlcmUgbm90IHNpZ25pZmljYW50LiIsICJUaGUgRmlzaGVyIFRlc3QgY29tYmluZXMgaW5kZXBlbmRlbnQgcOKAk3ZhbHVlcyB0byB0ZXN0IHdoZXRoZXIgdGhlcmUgaXMgZXZpZGVuY2UgaW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBjbHVicyBvZiBhIHBhcmFtZXRlciBiZWluZyBwb3NpdGl2ZSBvciBuZWdhdGl2ZS4iKSkNCg0KYGBgDQoNCiMjIE1vZGVsIDMgKGF2QXR0SGlnaGVyKQ0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX20zLlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQojIyBNb2RlbCA0IChhdkF0dExvd2VyKQ0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX200LlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQoNCiMjIE1vZGVsIDUgKGF2QXR0SGlnaGVyK0xvd2VyKQ0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX201LlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KPGJyPg0KDQpgciBjb2xvcml6ZSgiYW5kIHRoZSBGaXNoZXIgcmVzdWx0cyBleGNsdWRpbmcgY2x1YiA1OiIsICJyZWQiKWANCg0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX201X3dpdGhvdXRjbHViNS5SRGF0YSIpDQoNCm9wdGlvbnMoa25pdHIua2FibGUuTkEgPSAnLScpDQoNCmtuaXRyOjprYWJsZShkZjMsIGRpZ2l0cz0zLCAiaHRtbCIsIGNhcHRpb249Ik1ldGEtYW5hbHlzaXMgb2YgcGFyYW1ldGVyIGVzdGltYXRlcyBmb3IgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiBvZiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIGZyZXF1ZW5jeSBkeW5hbWljcywgZXhjbHVkaW5nIGNsdWIgNSIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQoNCiMjIE1vZGVsIDYgKGF2U2ltKQ0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV9mcmVxX202LlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyBmcmVxdWVuY3kgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHAtdmFsdWVzIHRvIHRlc3Qgd2hldGhlciB0aGVyZSBpcyBldmlkZW5jZSBpbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGNsdWJzIG9mIGEgcGFyYW1ldGVyIGJlaW5nIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIikpDQoNCmBgYA0KDQotLS0tDQoNCg0KIyMjIFJlZmVyZW5jZXMgDQo=


Copyright © 2021 Rob Franken