Supporting Information: ‘Sex differences in allometry for phenotypic traits in mice indicate that females are not scaled males’

Laura A. B. Wilson, Susanne R. K. Zajitschek, Malgorzata Lagisz, Jeremy Mason, Hamed Haselimashhadi & Shinichi Nakagawa

This document mainly provides the description of the main dataset, and the R scripts and their outputs for the paper “Sex differences in allometry for phenotypic traits indicate that females are not scaled males”.

Setting-up

Loading packages

# older version of the orchaRd package
#devtools::install_github("itchyshin/orchard_plot", subdir = "orchaRd", force = TRUE, build_vignettes = TRUE)
#install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))

pacman::p_load(tidyverse,
               purrr,
               metafor, 
               poolr,
               patchwork,
               orchaRd, # older version: 
               broom.mixed,
               here,
               nlme,
               pander,
               brms,
               kableExtra,
               formatR,
               knitr,
               brms,
               rstan,
               cmdstanr
               )

check_cmdstan_toolchain(fix = TRUE, quiet = TRUE)

Loading custom functions

We load custom function not included in the packages above.

  • functions for calculating ‘parameters’ (intercepts, slopes and residuals SDs for both males and females and model fit) : get_parmetersN
  • functions for drawing orchard plots (modified from the original): orchard_plot2 and associated functions.
# function to get what we need from these 2 models (you can include models in this function as well)
get_parmetersN<- function(i){
  
  # grand-mean centering of weights
  ln_c_weight <- scale(log(i[["weight"]]), center = TRUE, scale = TRUE)
  i[,"ln_c_weight"] <- ln_c_weight
  
  if(i[["nmeta"]][1] == 1 && i[["nstrain"]][1] == 1){
  
    # female model 
    model_f <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                                #strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    # male model
    model_m <- lme(log(data_point2) ~ relevel(sex, ref = "male")*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                                 #strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    # neutral model
    model_n <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                                 #strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
      
  } else if (i[["nmeta"]][1] == 1) {
    
    # female model 
    model_f <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                     strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    # male model
    model_m <- lme(log(data_point2) ~ relevel(sex, ref = "male")*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                     strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    # neutral model
    model_n <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                     strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
  } else if (i[["nstrain"]][1] == 1){
    
    # female model 
    model_f <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                     #strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    # male model
    model_m <- lme(log(data_point2) ~ relevel(sex, ref = "male")*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                     #strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    # neutral model
    model_n <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                     #strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
  } else {
    # female model 
    model_f <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                                 strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    # male model
    model_m <- lme(log(data_point2) ~ relevel(sex, ref = "male")*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                                 strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    # neutral model
    model_n <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                                 strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
  }
  # getting all we want
  females <- broom.mixed::tidy(model_f)
  males <- broom.mixed::tidy(model_m)
  # gets variance weights
  weights <- attr(model_f$modelStruct$varStruct, "weights")
  male_correction <- 1/weights[which(names(weights) == "male")[1]]
  female_correction <- 1/weights[which(names(weights) == "female")[1]]
  
  # get parameters
  parameter_name <- tolower(i[["parameter_name"]][1])
  procedure_name <- i[["procedure_name"]][1]# "procedure_name"
  m_n <- sum(i[["sex"]] == "male") # sample size for males 
  f_n <- sum(i[["sex"]] == "female") # N fo females
  f_intercept <- as.numeric(females[1, 4])
  f_intercept_se <- as.numeric(females[1, 5])
  f_slope <- as.numeric(females[3, 4])
  f_slope_se <- as.numeric(females[3, 5])
  m_intercept <- as.numeric(males[1, 4])
  m_intercept_se <- as.numeric(males[1, 5])
  m_slope  <- as.numeric(males[3, 4])
  m_slope_se  <- as.numeric(males[3, 5])
  fm_diff_int  <- as.numeric(males[2, 4])
  fm_diff_int_se  <- as.numeric(males[2, 5])
  fm_diff_int_p  <- as.numeric(males[2, 8])
  fm_diff_slope <- as.numeric(males[4, 4])
  fm_diff_slope_se <- as.numeric(males[4, 5])
  fm_diff_slope_p <- as.numeric(males[4, 8])
  
  # variance component
  #group_sd <- as.numeric(VarCorr(model_f)[,2][2])
  #g_slope_sd <- as.numeric(VarCorr(model_f)[,2][3])
  #batch_sd <- as.numeric(VarCorr(model_f)[,2][5])
  f_sd <- as.numeric(tail(VarCorr(model_f)[,2],1))*female_correction
  m_sd <- as.numeric(tail(VarCorr(model_f)[,2],1))*male_correction
  
  # model fit
  r_m <- sqrt(MuMIn::r.squaredGLMM(model_n)[1,1])
  r_c <- sqrt(MuMIn::r.squaredGLMM(model_n)[1,2])
  # putting it together
  paras <- data.frame(parameter_name, procedure_name, 
             f_n, m_n, f_intercept, f_intercept_se, f_slope, f_slope_se, 
             m_intercept, m_intercept_se, m_slope, m_slope_se, 
             fm_diff_int, fm_diff_int_se, fm_diff_int_p,
             fm_diff_slope, fm_diff_slope_se, fm_diff_slope_p,
             f_sd, m_sd, r_m, r_c)
  names(paras) <- c('parameter_name', 'procedure_name', 
                    'f_n', 'm_n','f_intercept', 'f_intercept_se', 'f_slope', 'f_slope_se',
                    'm_intercept', 'm_intercept_se', 'm_slope', 'm_slope_se',
                    'fm_diff_int', 'fm_diff_int_se', 'fm_diff_int_p',
                    'fm_diff_slope', 'fm_diff_slope_se', 'fm_diff_slope_p',
                    'f_sd', 'm_sd', 'r_m', 'r_c') # variance component
  invisible(paras)
  
}

# function to compare two models
get_strain_p<- function(i){
  
  # centering weights separately for each 
  ln_c_weight <- scale(log(i[["weight"]]), center = TRUE, scale = TRUE)
  i[,"ln_c_weight"] <- ln_c_weight
  
  if (i[["nmeta"]][1] == 1) {
    
    # model with strain as random factor 
    model_1 <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                     strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    # model without strain as random factor 
    model_2 <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(#metadata_group = ~ ln_c_weight, 
                     #strain_name = ~ ln_c_weight,
                     date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
    
    
  }  else {

    # model with strain as random factor 
    model_1 <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                                 strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    # model without strain as random factor 
    model_2 <- lme(log(data_point2) ~ sex*ln_c_weight, 
                   random = list(metadata_group = ~ ln_c_weight, 
                                 #strain_name = ~ ln_c_weight,
                                 date_of_experiment = ~ 1),
                   #weights = varIdent(form = ~1 | sex),
                   control = lmeControl(opt = "optim"),
                   data = i)
    
  }
  
  # anova 
  p_value <- anova(model_1, model_2)$p[[2]]
  delta_aic <- anova(model_1, model_2)$AIC[1] - anova(model_1, model_2)$AIC[2] 
  
  # get parameters
  parameter_name <- tolower(i[["parameter_name"]][1])
  procedure_name <- i[["procedure_name"]][1]# "procedure_name"
  
  paras <- data.frame(parameter_name, procedure_name, delta_aic, p_value)
  names(paras) <- c('parameter_name', 'procedure_name', 'delta_aic', 'p_value') # variance component
  invisible(paras)
  
}


# getting ride of traits which do not run
get_para_poss <- possibly(.f = get_parmetersN, 
                          otherwise = NULL)


# getting ride of traits with do not run

get_para_poss2 <- possibly(.f = get_strain_p, 
                          otherwise = NULL)

# functions

orchard_plot2 <- function (object, mod = "Int", xlab, N = "none", alpha = 0.5, 
          angle = 90, cb = FALSE, k = TRUE, transfm = c("none", "tanh"), 
          point.size = 2.5, branch.size = 5,
          condition.lab = "Condition", legend.on = TRUE) 
{
  transfm <- match.arg(transfm)
  if (any(class(object) %in% c("rma.mv", "rma"))) {
    if (mod != "Int") {
      object <- mod_results(object, mod)
    }
    else {
      object <- mod_results(object, mod = "Int")
    }
  }
  mod_table <- object$mod_table
  data <- object$data
  data$moderator <- factor(data$moderator, levels = mod_table$name, 
                           labels = mod_table$name)
  data$scale <- (1/sqrt(data[, "vi"]))
  legend <- "Precision (1/SE)"
 
  # sample size 
  if(any(N != "none")){
    data$scale <- N
    legend <- "Sample size (N)" # we want to use italic
  }
  
  if (transfm == "tanh") {
    cols <- sapply(mod_table, is.numeric)
    mod_table[, cols] <- Zr_to_r(mod_table[, cols])
    data$yi <- Zr_to_r(data$yi)
    label <- xlab
  }
  else {
    label <- xlab
  }
  mod_table$K <- as.vector(by(data, data[, "moderator"], function(x) length(x[, 
                                                                              "yi"])))
  group_no <- length(unique(mod_table[, "name"]))
  cbpl <- c("#E69F00", "#009E73", "#F0E442", "#0072B2", "#D55E00", 
            "#CC79A7", "#56B4E9", "#999999")
  if (names(mod_table)[2] == "condition") {
    condition_no <- length(unique(mod_table[, "condition"]))
    plot <- ggplot2::ggplot() + ggbeeswarm::geom_quasirandom(data = data, 
                                                             ggplot2::aes(y = yi, x = moderator, size = scale, 
                                                                          colour = moderator), alpha = alpha) + ggplot2::geom_hline(yintercept = 0, 
                                                                                                                                    linetype = 2, colour = "black", alpha = alpha) + 
      ggplot2::geom_linerange(data = mod_table, ggplot2::aes(x = name, 
                                                             ymin = lowerCL, ymax = upperCL), size = branch.size, 
                              position = ggplot2::position_dodge2(width = 0.3)) + 
      ggplot2::geom_pointrange(data = mod_table, ggplot2::aes(y = estimate, 
                                                              x = name, ymin = lowerPR, ymax = upperPR, shape = as.factor(condition), 
                                                              fill = name), size = 0.5, position = ggplot2::position_dodge2(width = 0.3)) + 
      ggplot2::scale_shape_manual(values = 20 + (1:condition_no)) + 
      ggplot2::coord_flip() + ggplot2::theme_bw() + ggplot2::guides(fill = "none", 
                                                                    colour = "none") + ggplot2::theme(legend.position = c(0, 
                                                                                                                          1), legend.justification = c(0, 1)) + ggplot2::theme(legend.title = ggplot2::element_text(size = 9)) + 
      ggplot2::theme(legend.direction = "horizontal") + 
      ggplot2::theme(legend.background = ggplot2::element_blank()) + 
      ggplot2::labs(y = label, x = "", size = legend) + 
      ggplot2::scale_size_continuous(breaks = c(200, 2000, 20000), guide = guide_legend()) + 
      ggplot2::labs(shape = condition.lab) + ggplot2::theme(axis.text.y = ggplot2::element_text(size = 10, 
                                                                                                colour = "black", hjust = 0.5, angle = angle))
    plot <- plot + ggplot2::annotate("text", y = (max(data$yi) + 
                                                    (max(data$yi) * 0.1)), x = (seq(1, group_no, 1) + 
                                                                                  0.3), label = paste("italic(k)==", mod_table$K[1:group_no]), 
                                     parse = TRUE, hjust = "right", size = 3.5)
  }
  else {
    plot <- ggplot2::ggplot(data = mod_table, ggplot2::aes(x = estimate, 
                                                           y = name)) + ggbeeswarm::geom_quasirandom(data = data, 
                                                                                                     ggplot2::aes(x = yi, y = moderator, size = scale, 
                                                                                                                  colour = moderator), groupOnX = FALSE, alpha = alpha) + 
      ggplot2::geom_errorbarh(ggplot2::aes(xmin = lowerPR, 
                                           xmax = upperPR), height = 0, show.legend = FALSE, 
                              size = 0.5, alpha = 0.6) + ggplot2::geom_errorbarh(ggplot2::aes(xmin = lowerCL, 
                                                                                              xmax = upperCL), height = 0, show.legend = FALSE, 
                                                                                 size = branch.size) + ggplot2::geom_vline(xintercept = 0, 
                                                                                                                   linetype = 2, colour = "black", alpha = alpha) + 
      ggplot2::geom_point(ggplot2::aes(fill = name), size = point.size, 
                          shape = 21) + ggplot2::theme_bw() + ggplot2::guides(fill = "none", 
                                                                              colour = "none") + ggplot2::theme(legend.position = c(1, 
                                                                                                                                    0), legend.justification = c(1, 0)) + ggplot2::theme(legend.title = ggplot2::element_text(size = 9)) + 
      ggplot2::theme(legend.direction = "horizontal") + 
      ggplot2::theme(legend.background = ggplot2::element_blank()) + 
      ggplot2::labs(x = label, y = "", size = legend) + 
      ggplot2::scale_size_continuous(breaks = c(200, 2000, 20000), guide = guide_legend()) + 
      ggplot2::theme(axis.text.y = ggplot2::element_text(size = 10, 
                                                         colour = "black", hjust = 0.5, angle = angle))
    if (k == TRUE) {
      plot <- plot + ggplot2::annotate("text", x = (max(data$yi) + 
                                                      (max(data$yi) * 0.1)), y = (seq(1, group_no, 
                                                                                      1) + 0.3), label = paste("italic(k)==", mod_table$K), 
                                       parse = TRUE, hjust = "right", size = 3.5)
    }
  }
  if (cb == TRUE) {
    plot <- plot + ggplot2::scale_fill_manual(values = cbpl) + 
      ggplot2::scale_colour_manual(values = cbpl)
  }
  
  if (legend.on == FALSE){
    plot <- plot + ggplot2::theme(legend.position = "none")
  }
  
  
  return(plot)
}

# mod_result old

#' @title get_est
#' @description Function gets estimates from rma objects (metafor)
#' @param model rma.mv object
#' @param mod the name of a moderator. If meta-analysis (i.e. no moderator, se mod = "Int")
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @export

get_est <- function (model, mod) {
  name <- firstup(as.character(stringr::str_replace(row.names(model$beta), {{mod}}, "")))
  
  estimate <- as.numeric(model$beta)
  lowerCL <- model$ci.lb
  upperCL <- model$ci.ub
  
  table <- tibble::tibble(name = factor(name, levels = name, labels = name), estimate = estimate, lowerCL = lowerCL, upperCL = upperCL)
  
  return(table)
}


#' @title get_pred
#' @description Function to get prediction intervals (crediblity intervals) from rma objects (metafor)
#' @param model rma.mv object
#' @param mod the name of a moderator
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @export

get_pred <- function (model, mod) {
  
  name <- firstup(as.character(stringr::str_replace(row.names(model$beta), {{mod}}, "")))
  len <- length(name)
  
  if(len != 1){
    newdata <- matrix(NA, ncol = len, nrow = len)
    
    pred <- metafor::predict.rma(model, newmods = diag(len),
                                 tau2.levels = 1:len,
                                 gamma2.levels = 1:len)
  }
  else {
    pred <- metafor::predict.rma(model)
  }
  lowerPR <- pred$cr.lb
  upperPR <- pred$cr.ub
  
  table <- tibble::tibble(name = factor(name, levels = name, labels = name), lowerPR = lowerPR, upperPR = upperPR)
  return(table)
}

#' @title firstup
#' @description Uppercase moderator names
#' @param x a character string
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @return Returns a character string with all combinations of the moderator level names with upper case first letters
#' @export
firstup <- function(x) {
  substr(x, 1, 1) <- toupper(substr(x, 1, 1))
  x
}

#' @title get_data
#' @description Collects and builds the data used to fit the rma.mv or rma model in metafor
#' @param model rma.mv object
#' @param mod the moderator variable
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @return Returns a data frame
#' @export
#'
get_data <- function(model, mod){
  X <- as.data.frame(model$X)
  names <- vapply(stringr::str_split(colnames(X), {{mod}}), function(x) paste(unique(x), collapse = ""), character(1L))
  
  moderator <- matrix(ncol = 1, nrow = dim(X)[1])
  
  for(i in 1:ncol(X)){
    moderator <- ifelse(X[,i] == 1, names[i], moderator)
  }
  moderator <- firstup(moderator)
  yi <- model$yi
  vi <- model$vi
  type <- attr(model$yi, "measure")
  
  data <- data.frame(yi, vi, moderator, type)
  return(data)
  
}

#' @title mod_results
#' @description Using a metafor model object of class rma or rma.mv it creates a table of model results containing the mean effect size estimates for all levels of a given categorical moderator, their corresponding confidence intervals and prediction intervals
#' @param model rma.mv object
#' @param mod the name of a moderator; put "Int" if the intercept model (meta-analysis) or no moderators.
#' @return A data frame containing all the model results including mean effect size estimate, confidence and prediction intervals
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @examples
#' \dontrun{data(eklof)
#' eklof<-metafor::escalc(measure="ROM", n1i=N_control, sd1i=SD_control,
#' m1i=mean_control, n2i=N_treatment, sd2i=SD_treatment, m2i=mean_treatment,
#' data=eklof)
#' # Add the unit level predictor
#' eklof$Datapoint<-as.factor(seq(1, dim(eklof)[1], 1))
#' # fit a MLMR - accouting for some non-independence
#' eklof_MR<-metafor::rma.mv(yi=yi, V=vi, mods=~ Grazer.type-1, random=list(~1|ExptID,
#' ~1|Datapoint), data=eklof)
#' results <- mod_results(eklof_MR, mod = "Grazer.type")
#' }
#' @export

mod_results <- function(model, mod) {
  
  if(all(class(model) %in% c("rma.mv", "rma.uni", "rma")) == FALSE) {stop("Sorry, you need to fit a metafor model of class rma.mv or rma")}
  
  data <- get_data(model, mod)
  
  # Get confidence intervals
  CI <- get_est(model, mod)
  
  # Get prediction intervals
  PI <- get_pred(model, mod)
  
  model_results <- list(mod_table = cbind(CI, PI[,-1]), data = data)
  
  class(model_results) <- "orchard"
  
  return(model_results)
  
}
# TODO - I think we can improve `mod` bit?

#' @title print.orchard
#' @description Print method for class 'orchard'
#' @param object x an R object of class orchard
#' @param ... Other arguments passed to print
#' @author Shinichi Nakagawa - s.nakagawa@unsw.edu.au
#' @author Daniel Noble - daniel.noble@anu.edu.au
#' @return Returns a data frame
#' @export
#'
print.orchard <- function(object, ...){
  return(object$mod_table)
}

# function to calculate SMD (standardized mean difference; Cohen's) and lnRR (log response ratio)

extra_effect <- function (i){

i %>% group_by(sex) %>% summarise(mean = mean(data_point),
                                     sd = sd(data_point),
                                     n = n()) -> sex_specific

sex_specific
sex_specific[1, "mean"]

# get parameters
parameter_name <- tolower(i[["parameter_name"]][1])
mean_female <- sex_specific[1, "mean"]
mean_male <- sex_specific[2, "mean"]
sd_female <- sex_specific[1, "sd"]
sd_male <- sex_specific[2, "sd"]
n_female <- sex_specific[1, "n"]
n_male <- sex_specific[2, "n"]

# putting it together
paras <- data.frame(parameter_name, 
                    mean_female, mean_male,
                    sd_female, sd_male,
                    n_female, n_male)
names(paras) <- c('parameter_name',
                  'mean_female', 'mean_male',
                  'sd_female', 'sd_male',
                  'n_female', 'n_male') # variance component


paras <- escalc("SMD", 
             m1i = mean_female, m2i = mean_male, 
             sd1i = sd_female, sd2i = sd_male, 
             n1i = n_female, n2i = n_male, 
             data = paras, var.names=c("SMD","v_SMD"))
paras <- escalc("ROM", 
             m1i = mean_female, m2i = mean_male, 
             sd1i = sd_female, sd2i = sd_male, 
             n1i = n_female, n2i = n_male, 
             data = paras, var.names=c("lnRR","v_lnRR"), replace = F)

invisible(paras)

}

Loading raw data and creating a list of trait data

Below we see sub-strain information and sample size for each sub-strains

# loading data
allometry <- readRDS(here("data/allometryNEW.rds"))


#STEP 1 remove rows with missing  data and NA 
allometrynew<-allometry[complete.cases(allometry),]

# getting rid of NA for data_point and weight

allometrynew2 <- allometrynew %>% 
  filter(!is.na(data_point), !is.na(weight)) %>% 
  group_by(parameter_name, sex, metadata_group, strain_name) %>%
  mutate(count = n()) %>% 
  ungroup() %>% 
  group_by(parameter_name) %>% # adjusting interval data
  mutate(min_val = min(data_point),
         data_point2 = if_else(min_val > 0, data_point, data_point + abs(min_val)),
         min_val2 = min( data_point[data_point!=min(data_point)]),
         data_point2 = if_else(min_val == 0, data_point2 + min_val2, data_point2),
         ratio_int =  if_else(min_val > 0, "ratio", "interval"),
         new_min = min(data_point2),
         nmeta = n_distinct(metadata_group),
         nstrain = n_distinct(strain_name),
         sex = as.factor(sex),
         parameter_name = if_else(parameter_name == "Latency to fall_Mean", 
                                  "Latency to fall mean"  , parameter_name)) %>% 
  ungroup() %>% 
  filter(count > 49) %>% # this can be adjusted
  filter(parameter_name != "BMC/Body weight", 
         parameter_name != "Body weight",  
         parameter_name != "Body Weight", 
         parameter_name != "Body weight after experiment" , 
         parameter_name != "Body weight before experiment",
         parameter_name != "Test duration") %>% 
  filter(!is.infinite(data_point2), !is.infinite(log(data_point2))) # removing infite and 0

# dim(allometry)
# dim(allometrynew)
# dim(allometrynew2)
# 
# # the number of traits
# length(unique(allometrynew2$parameter_name))
# 
# # the number of substrains
# length(unique(allometrynew2$strain_name))
# strain information
unique(allometrynew2$strain_name)
## [1] "C57BL/6N"                   "B6Brd;B6Dnk;B6N-Tyr<c-Brd>"
## [3] "C57BL/6N;C57BL/6NTac"       "C57BL/6NTac"               
## [5] "C57BL/6NJ"                  "C57BL/6NCrl"               
## [7] "C57BL/6NJcl"
# # check there is no 0
# sum(is.infinite(log(allometrynew2$data_point2)))

# # the number of interval scale traits
# allometrynew2 %>% group_by(parameter_name) %>% summarise(ratio_int = ratio_int[1]) -> sum_ri
# sum(sum_ri$ratio_int == "interval")


#split dataframe by parameter to generate a list of dfs
#all_list<-split(allometrynew2, allometrynew2$parameter_name)

#saveRDS(all_list, file = here("data", "dat_list2.rds"))

Loading a list of trait data and group category

# loading data
dat_list <- readRDS(here("data/dat_list2.rds"))

# grouping for category and parameter_group (this is from Zajitschek et al.
# 2020 eLife; slightly modfied)
dat_category <- read_csv(here("data/cateogry_parameter3.csv"))

Data preparation

Obtaining intersepcts, slopes, residual SDs and model fits

#run function across list of matrices
processing <-map_dfr(dat_list, get_para_poss)
dat <- data.frame(processing, row.names = NULL)

dat %>% left_join(dat_category, by = ("parameter_name" = "parameter_name") ) %>% arrange(Category)  -> dat

#dim(dat)

#write_csv(dat, here("data/test4.csv"))
write_csv(dat, here("data/data_parameters7.csv"))


# first getting p values - the contrasts between males and females for 

dat <-read_csv(here("data/data_parameters7.csv"))

#assess number of traits with sig shifts in intercept and slope

# getting lnVR to compare SDs and SD and Zr (variance for Zr)

dat %>% mutate(lnVR = log(f_sd/m_sd) + 1/(2*(f_n-3)) - 1/(2*(m_n-3)), 
               VlnVR = 1/(2*(f_n-3)) + 1/(2*(m_n-3)), 
               low_lnVR = lnVR - qnorm(0.975)*VlnVR, 
               high_lnVR = lnVR + qnorm(0.975)*VlnVR,
               t_val_sd = lnVR/sqrt(VlnVR),
               p_val_sd = 2*(1-pt(abs(t_val_sd), f_n-1 + m_n-1)),
               # r squared
               Zr = atanh(r_m),
               VZr = 1/((f_n + m_n) - 3)
               ) -> dat

write_csv(dat, here("data/data_parameters8.csv"))

Obtaining SMD (standardised mean difference) and lnRR (log response rato)

extra_dat <- map_dfr(dat_list, extra_effect)

extra <- data.frame(processing, row.names = NULL)
dat <- read_csv(here("data/data_parameters8.csv"))

pos <- match(dat$parameter_name, extra_dat$parameter_name)

extra <- extra_dat[pos, ]
extra <- data.frame(extra, row.names = NULL)


write_csv(extra, here("data/data_smd_lnrr.csv"))

Main dataset and meta-data

# loading data
dat <- read_csv(here("data/data_parameters8.csv"))
# creating observation level random effect
dat$obs <- 1:dim(dat)[1]
# making character strings into factors
dat <- dat %>%
    mutate_if(is.character, as.factor)
# visualizing
kable(dat, "html") %>%
    kable_styling("striped", position = "left") %>%
    scroll_box(width = "100%", height = "250px")
parameter_name procedure_name f_n m_n f_intercept f_intercept_se f_slope f_slope_se m_intercept m_intercept_se m_slope m_slope_se fm_diff_int fm_diff_int_se fm_diff_int_p fm_diff_slope fm_diff_slope_se fm_diff_slope_p f_sd m_sd r_m r_c Category parameter_group lnVR VlnVR low_lnVR high_lnVR t_val_sd p_val_sd Zr VZr obs
activity onset with respect to dark onset median Sleep Wake 273 259 0.3929632 0.0450594 -0.0083631 0.0448121 0.2542691 0.0376782 -0.0179367 0.0336847 0.1386941 0.0556845 0.0130907 0.0095736 0.0547846 0.8613509 0.3593388 0.2969758 0.2241775 0.3920506 Behaviour activity onset with respect to dark onset median 0.1905138 0.0038050 0.1830562 0.1979714 3.0885202 0.0021170 0.2280504 0.0018904 1
average duration Rotarod 621 612 4.0963541 0.0599142 -0.0589499 0.0563663 4.0553848 0.0605089 -0.0509210 0.0564671 0.0409693 0.0507882 0.4200245 -0.0080289 0.0473202 0.8652985 0.5134660 0.5715872 0.1198498 0.4012784 Behaviour average duration -0.1072451 0.0016301 -0.1104400 -0.1040502 -2.6562746 0.0080030 0.1204287 0.0008130 2
breath rate during sleep mean Sleep Wake 864 842 0.9671175 0.0056705 0.0298463 0.0047447 1.0100184 0.0051139 0.0305743 0.0037669 -0.0429009 0.0060587 0.0000000 -0.0007280 0.0054384 0.8935342 0.0748341 0.0649490 0.5035914 0.6860983 Behaviour breath rate during sleep mean 0.1416557 0.0011767 0.1393495 0.1439619 4.1295925 0.0000381 0.5541062 0.0005872 3
breath rate during sleep standard deviation Sleep Wake 864 842 -0.2493341 0.0070060 0.0006745 0.0065398 -0.2209202 0.0064617 0.0076416 0.0055388 -0.0284139 0.0085624 0.0009263 -0.0069671 0.0079197 0.3791537 0.1057847 0.1010671 0.1568210 0.4112851 Behaviour breath rate during sleep standard deviation 0.0456060 0.0011767 0.0432998 0.0479122 1.3295208 0.1838542 0.1581258 0.0005872 4
center average speed Open Field 8692 8660 2.3395900 0.2404754 0.0125155 0.0114003 2.2539661 0.2404728 0.0113172 0.0110078 0.0856239 0.0070941 0.0000000 0.0011983 0.0064985 0.8536991 0.2614795 0.2631793 0.0413201 0.9528332 Behaviour center average speed -0.0064800 0.0001153 -0.0067060 -0.0062540 -0.6034727 0.5462021 0.0413436 0.0000576 5
center distance travelled Open Field 9025 8992 7.2483880 0.2945856 -0.0122990 0.0276790 7.1996680 0.2945709 0.0012373 0.0266997 0.0487201 0.0150661 0.0012243 -0.0135363 0.0136226 0.3204001 0.5665792 0.5335339 0.0245238 0.8852912 Behaviour center distance travelled 0.0600940 0.0001110 0.0598764 0.0603117 5.7027517 0.0000000 0.0245288 0.0000555 6
center permanence time Open Field 9381 9328 5.0773365 0.1499848 -0.0420593 0.0260885 5.1327209 0.1499634 -0.0317306 0.0247237 -0.0553843 0.0166622 0.0008895 -0.0103287 0.0150532 0.4926283 0.6482511 0.5852829 0.0293690 0.7140145 Behaviour center time 0.1021825 0.0001069 0.1019729 0.1023921 9.8813303 0.0000000 0.0293774 0.0000535 7
center resting time Open Field 6471 6443 3.2498507 0.3279626 -0.0178543 0.0482180 3.3168406 0.3277007 -0.0381292 0.0464941 -0.0669899 0.0336948 0.0468200 0.0202749 0.0313858 0.5182989 1.0453107 0.9485191 0.0152589 0.7500625 Behaviour center time 0.0971672 0.0001549 0.0968636 0.0974709 7.8060866 0.0000000 0.0152601 0.0000775 8
conditioning baseline % freezing time Fear Conditioning 168 238 1.8021540 0.2347223 -0.1616376 0.1852964 2.0698578 0.1653381 -0.1460974 0.1560132 -0.2677038 0.2532856 0.2913190 -0.0155402 0.2367137 0.9476964 0.9855756 0.9794872 0.0586042 0.6517738 Behaviour conditioning baseline freezing time 0.0070993 0.0051580 -0.0030101 0.0172088 0.0988506 0.9213059 0.0586714 0.0024814 9
conditioning baseline average motion index Fear Conditioning 168 238 4.6543336 0.1247686 0.1191657 0.0870117 4.4562756 0.1013402 0.0046073 0.0826992 0.1980580 0.1234018 0.1094536 0.1145584 0.1169754 0.3281306 0.4371868 0.5098784 0.0675720 0.7970570 Behaviour conditioning baseline average motion index -0.1529091 0.0051580 -0.1630185 -0.1427997 -2.1290912 0.0338509 0.0676751 0.0024814 10
conditioning baseline freeze count Fear Conditioning 291 333 1.1929093 0.3911518 -0.1234196 0.1235858 1.5339730 0.3879389 -0.1843134 0.1268607 -0.3410637 0.1574600 0.0307668 0.0608937 0.1532962 0.6913629 0.7766872 0.8537249 0.0802702 0.6742417 Behaviour conditioning baseline freeze count -0.0943504 0.0032513 -0.1007228 -0.0879781 -1.6546947 0.0984909 0.0804433 0.0016103 11
conditioning baseline freezing time Fear Conditioning 291 333 1.0636939 0.7763817 -0.1456472 0.1652806 1.4295471 0.7737160 -0.2034467 0.1725388 -0.3658532 0.2176805 0.0934298 0.0577995 0.2116368 0.7848804 1.0449141 1.1709399 0.0549177 0.7739505 Behaviour conditioning baseline freezing time -0.1136512 0.0032513 -0.1200235 -0.1072788 -1.9931866 0.0466774 0.0549730 0.0016103 12
conditioning baseline maximum motion index Fear Conditioning 168 238 6.9535028 0.0744705 0.1674745 0.0582072 6.7979581 0.0552786 0.0195030 0.0526346 0.1555447 0.0813038 0.0565965 0.1479715 0.0766870 0.0545194 0.3055010 0.3349078 0.1278045 0.6598783 Behaviour conditioning baseline maximum motion index -0.0909995 0.0051580 -0.1011089 -0.0808901 -1.2670678 0.2058610 0.1285072 0.0024814 13
conditioning post-shock % freezing time Fear Conditioning 168 238 3.0818654 0.1396283 -0.2259029 0.1124000 3.3747223 0.0969107 -0.1139595 0.0948784 -0.2928569 0.1537518 0.0576834 -0.1119434 0.1439286 0.4372617 0.6048891 0.6061758 0.1103729 0.6067092 Behaviour conditioning post-shock freezing time -0.0012223 0.0051580 -0.0113317 0.0088871 -0.0170191 0.9864298 0.1108244 0.0024814 14
conditioning post-shock average motion index Fear Conditioning 168 238 4.1928388 0.1792397 0.2909889 0.1400271 3.8386335 0.1206153 0.1262876 0.1070792 0.3542052 0.1865821 0.0585173 0.1647013 0.1721488 0.3393998 0.7496078 0.6490194 0.1079650 0.7026911 Behaviour conditioning post-shock average motion index 0.1449902 0.0051580 0.1348807 0.1550996 2.0188286 0.0441652 0.1083874 0.0024814 15
conditioning post-shock freeze count Fear Conditioning 291 333 2.4912997 0.2398401 -0.2201170 0.0854729 2.7568871 0.2352243 -0.1675540 0.0807586 -0.2655875 0.1150677 0.0213891 -0.0525630 0.1121019 0.6393496 0.6259041 0.6204732 0.1372844 0.5597664 Behaviour conditioning post-shock freeze count 0.0089358 0.0032513 0.0025634 0.0153081 0.1567136 0.8755214 0.1381567 0.0016103 16
conditioning post-shock freezing time Fear Conditioning 291 333 2.9607659 0.5291496 -0.2672919 0.1229912 3.2309523 0.5252200 -0.2089406 0.1169762 -0.2701864 0.1564922 0.0848542 -0.0583512 0.1519567 0.7011375 0.8335708 0.8205890 0.1170610 0.7214260 Behaviour conditioning post-shock freezing time 0.0159172 0.0032513 0.0095449 0.0222896 0.2791525 0.7802206 0.1176002 0.0016103 17
conditioning post-shock maximum motion index Fear Conditioning 168 238 7.1104114 0.1231744 0.1126414 0.1041915 7.0837905 0.0767801 0.0857655 0.0810997 0.0266209 0.1392151 0.8484697 0.0268759 0.1299582 0.8362903 0.5932629 0.5469635 0.1438784 0.4382333 Behaviour conditioning post-shock maximum motion index 0.0821582 0.0051580 0.0720488 0.0922677 1.1439631 0.2533163 0.1448838 0.0024814 18
conditioning shock average motion index Fear Conditioning 168 238 6.5785074 0.0790756 0.1174832 0.0626659 6.6413140 0.0524880 0.0549625 0.0481255 -0.0628066 0.0835782 0.4529048 0.0625207 0.0772154 0.4187004 0.3375430 0.2949573 0.2707497 0.6968581 Behaviour conditioning shock average motion index 0.1357650 0.0051580 0.1256556 0.1458744 1.8903785 0.0594228 0.2776727 0.0024814 19
conditioning shock maximum motion index Fear Conditioning 168 238 7.6842121 0.0794155 0.0555018 0.0659558 7.8455593 0.0527638 0.0661811 0.0543784 -0.1613472 0.0895806 0.0725935 -0.0106792 0.0839023 0.8987949 0.3655110 0.3590340 0.3076035 0.5671884 Behaviour conditioning shock maximum motion index 0.0187821 0.0051580 0.0086726 0.0288915 0.2615195 0.7938252 0.3178963 0.0024814 20
conditioning shock minimum motion index Fear Conditioning 168 238 2.8310036 0.3579315 0.6692219 0.3035130 2.3645407 0.2376721 0.0029774 0.2546726 0.4664629 0.4140573 0.2607445 0.6662445 0.3903782 0.0888252 1.7290140 1.7584580 0.1233223 0.4151157 Behaviour conditioning shock minimum motion index -0.0159833 0.0051580 -0.0260928 -0.0058739 -0.2225504 0.8239979 0.1239533 0.0024814 21
conditioning tone % freezing time Fear Conditioning 168 238 2.6521544 0.2082752 -0.0068658 0.1739291 2.6008746 0.1311233 -0.0926523 0.1348604 0.0512798 0.2322901 0.8254177 0.0857866 0.2161209 0.6916698 0.9739933 0.8838882 0.0701445 0.4899381 Behaviour conditioning tone freezing time 0.0979765 0.0051580 0.0878671 0.1080860 1.3642155 0.1732592 0.0702599 0.0024814 22
conditioning tone average motion index Fear Conditioning 168 238 4.3384394 0.2055953 0.1805578 0.1661248 4.3272623 0.1281358 -0.0186303 0.1196458 0.0111771 0.2181663 0.9591717 0.1991882 0.2003315 0.3208089 0.9109603 0.7319176 0.0991057 0.6238896 Behaviour conditioning tone average motion index 0.2197340 0.0051580 0.2096246 0.2298435 3.0595548 0.0023644 0.0994321 0.0024814 23
conditioning tone freeze count Fear Conditioning 291 333 1.1864828 0.1910845 -0.0715428 0.0900741 1.2018581 0.1852017 -0.0636802 0.0876415 -0.0153754 0.1270620 0.9037329 -0.0078626 0.1242257 0.9495578 0.6804015 0.7035057 0.0768375 0.4772825 Behaviour conditioning tone freeze count -0.0331720 0.0032513 -0.0395443 -0.0267996 -0.5817621 0.5609377 0.0769892 0.0016103 24
conditioning tone freezing time Fear Conditioning 291 333 1.1182331 0.2264972 -0.1225882 0.1555423 1.1305938 0.2090955 -0.1159762 0.1489973 -0.0123607 0.2179966 0.9548051 -0.0066120 0.2124703 0.9751861 1.1543608 1.1639042 0.0866774 0.4696605 Behaviour conditioning tone freezing time -0.0080124 0.0032513 -0.0143847 -0.0016400 -0.1405188 0.8882956 0.0868955 0.0016103 25
conditioning tone maximum motion index Fear Conditioning 168 238 6.4593455 0.1272725 0.1265700 0.1040948 6.4904289 0.0829776 -0.0692060 0.0820900 -0.0310834 0.1397156 0.8240810 0.1957760 0.1298561 0.1326038 0.5705884 0.5233730 0.1120496 0.5730043 Behaviour conditioning tone maximum motion index 0.0872763 0.0051580 0.0771669 0.0973857 1.2152262 0.2249895 0.1125221 0.0024814 26
context % freezing time Fear Conditioning 168 238 3.6727950 0.0927098 -0.1188721 0.0770129 3.7541878 0.0625942 0.0137215 0.0647980 -0.0813929 0.1052126 0.4397190 -0.1325936 0.0988040 0.1805230 0.4262883 0.4303336 0.0823129 0.4988817 Behaviour context % freezing time -0.0085421 0.0051580 -0.0186516 0.0015673 -0.1189398 0.9053821 0.0824996 0.0024814 27
context average motion index Fear Conditioning 168 238 3.6132459 0.1661232 0.1971578 0.1338535 3.4325415 0.1190793 -0.0054102 0.1184090 0.1807044 0.1857027 0.3312240 0.2025681 0.1749436 0.2477400 0.7176001 0.7674251 0.0685276 0.5846227 Behaviour context average motion index -0.0662258 0.0051580 -0.0763352 -0.0561164 -0.9221216 0.3570155 0.0686352 0.0024814 28
context freeze count Fear Conditioning 291 333 3.4475236 0.2234376 -0.1218805 0.0652260 3.6401049 0.2204180 -0.1080921 0.0610306 -0.1925814 0.0904250 0.0336669 -0.0137884 0.0886111 0.8764045 0.5117614 0.5093700 0.0931394 0.5561545 Behaviour context freeze count 0.0049047 0.0032513 -0.0014676 0.0112771 0.0860176 0.9314801 0.0934102 0.0016103 29
context freezing time Fear Conditioning 291 333 4.1179455 0.6446314 -0.1518358 0.0848966 4.2804907 0.6428553 -0.0606357 0.0799279 -0.1625452 0.1180718 0.1692143 -0.0912001 0.1153785 0.4296327 0.6500497 0.6477469 0.0505653 0.8220115 Behaviour context freezing time 0.0037698 0.0032513 -0.0026025 0.0101422 0.0661141 0.9473083 0.0506084 0.0016103 30
context maximum motion index Fear Conditioning 168 238 6.7774427 0.0878068 0.1698320 0.0711927 6.6407575 0.0661459 -0.0328102 0.0676252 0.1366852 0.1011153 0.1773728 0.2026422 0.0962456 0.0360058 0.3812654 0.4496842 0.1072734 0.5536005 Behaviour context maximum motion index -0.1641473 0.0051580 -0.1742567 -0.1540378 -2.2855702 0.0227967 0.1076877 0.0024814 31
cue baseline % freezing time Fear Conditioning 168 238 1.9889040 0.2069501 -0.3515990 0.1651238 2.7587549 0.1498715 -0.3168469 0.1468298 -0.7698509 0.2294514 0.0008855 -0.0347522 0.2161583 0.8723715 0.8787548 0.9444639 0.1592520 0.6219508 Behaviour cue baseline % freezing time -0.0712089 0.0051580 -0.0813183 -0.0610995 -0.9915052 0.3220324 0.1606191 0.0024814 32
cue baseline average motion index Fear Conditioning 168 238 4.8603364 0.1235994 0.2382554 0.0959988 4.3540635 0.0994163 0.2123462 0.0975502 0.5062730 0.1396443 0.0003340 0.0259092 0.1338922 0.8466804 0.4960040 0.6381056 0.1636089 0.6282879 Behaviour cue baseline average motion index -0.2510172 0.0051580 -0.2611266 -0.2409078 -3.4951386 0.0005263 0.1650926 0.0024814 33
cue baseline freeze count Fear Conditioning 291 333 2.1921003 0.4330090 -0.2772443 0.0935855 2.7558687 0.4313170 -0.1703181 0.0962167 -0.5637684 0.1240540 0.0000069 -0.1069261 0.1203039 0.3745254 0.6001634 0.6554146 0.1412103 0.7781577 Behaviour cue baseline freeze count -0.0878450 0.0032513 -0.0942174 -0.0814726 -1.5406040 0.1239218 0.1421603 0.0016103 34
cue baseline freezing time Fear Conditioning 291 333 2.4155381 0.2585257 -0.3717700 0.1083950 3.1504651 0.2545311 -0.2692392 0.1149071 -0.7349270 0.1590950 0.0000049 -0.1025308 0.1551362 0.5089668 0.7603859 0.8583266 0.1691469 0.6568488 Behaviour cue baseline freezing time -0.1209377 0.0032513 -0.1273101 -0.1145654 -2.1209764 0.0343188 0.1707883 0.0016103 35
cue baseline maximum motion index Fear Conditioning 168 238 7.2343443 0.0765119 0.1042197 0.0636010 7.0804259 0.0551632 0.0420783 0.0579975 0.1539183 0.0890902 0.0849832 0.0621414 0.0845683 0.4629788 0.3505362 0.3935991 0.0877404 0.4727205 Behaviour cue baseline maximum motion index -0.1149662 0.0051580 -0.1250756 -0.1048567 -1.6007775 0.1102078 0.0879666 0.0024814 36
cue tone % freezing time Fear Conditioning 168 238 3.1168025 0.1514895 -0.3542802 0.1246391 3.5998841 0.0951315 -0.0912398 0.0941415 -0.4830815 0.1654432 0.0037420 -0.2630404 0.1530774 0.0866709 0.6892142 0.5973727 0.1496055 0.5705014 Behaviour cue tone % freezing time 0.1439135 0.0051580 0.1338041 0.1540229 2.0038368 0.0457547 0.1507369 0.0024814 37
dark side distance travelled Light-Dark Test 111 84 8.1153014 0.0753531 0.0064378 0.0822942 8.0124258 0.0744948 0.0935716 0.0630834 0.1028756 0.1024815 0.3169980 -0.0871338 0.1018222 0.3934432 0.3355864 0.2443481 0.0929921 0.4230523 Behaviour distance travelled 0.3157423 0.0108025 0.2945698 0.3369147 3.0378840 0.0027122 0.0932615 0.0052083 38
dark side time spent Light-Dark Test 1844 1791 6.6143141 0.2056841 0.0541208 0.0380300 6.4560785 0.2061648 0.0511079 0.0382597 0.1582356 0.0199875 0.0000000 0.0030130 0.0196223 0.8779760 0.3454670 0.4998886 0.1014382 0.6537127 Behaviour time spent -0.3694963 0.0005512 -0.3705767 -0.3684159 -15.7377342 0.0000000 0.1017883 0.0002753 39
dark sleep bout lengths mean Sleep Wake 864 842 5.2922976 0.0133363 0.0473609 0.0130485 5.5092929 0.0139672 0.0972972 0.0128391 -0.2169953 0.0183454 0.0000000 -0.0499363 0.0173861 0.0041321 0.2158973 0.2465996 0.5793367 0.6223104 Behaviour dark sleep bout lengths mean -0.1329786 0.0011767 -0.1352848 -0.1306723 -3.8766331 0.0001099 0.6614637 0.0005872 40
dark sleep bout lengths standard deviation Sleep Wake 864 842 5.6445364 0.0174139 0.0221068 0.0165579 5.8472614 0.0160181 0.0141177 0.0140271 -0.2027250 0.0216646 0.0000000 0.0079891 0.0202119 0.6927013 0.2704850 0.2587710 0.3787037 0.4972531 Behaviour dark sleep bout lengths standard deviation 0.0442578 0.0011767 0.0419515 0.0465640 1.2902167 0.1971505 0.3985454 0.0005872 41
data confidence level Sleep Wake 864 842 -0.0168946 0.0030380 0.0060759 0.0029289 -0.0079778 0.0019265 0.0035108 0.0015344 -0.0089168 0.0032503 0.0061510 0.0025651 0.0031151 0.4103918 0.0499253 0.0258886 0.1984623 0.4414541 Behaviour data confidence level 0.6567093 0.0011767 0.6544030 0.6590155 19.1445974 0.0000000 0.2011313 0.0005872 42
distance travelled - total Open Field 8942 8881 8.9043516 0.2183624 0.0086096 0.0184437 8.8102005 0.2183619 0.0030167 0.0182533 0.0941511 0.0056040 0.0000000 0.0055929 0.0050663 0.2696395 0.2055166 0.1962026 0.0543498 0.9672064 Behaviour distance travelled - total 0.0463786 0.0001123 0.0461586 0.0465986 4.3774111 0.0000121 0.0544034 0.0000561 43
fecal boli Light-Dark Test 1504 1489 0.5787835 0.0269220 -0.0778628 0.0274033 1.0972487 0.0294130 -0.0194165 0.0271624 -0.5184652 0.0382840 0.0000000 -0.0584462 0.0363997 0.1084593 0.6531191 0.7751150 0.2986857 0.3596170 Behaviour fecal boli -0.1712553 0.0006696 -0.1725676 -0.1699429 -6.6182180 0.0000000 0.3080759 0.0003344 44
forelimb and hindlimb grip strength measurement mean Grip Strength 12362 12416 5.2933529 0.0459615 0.0545330 0.0049107 5.2826804 0.0459493 0.0556144 0.0048535 0.0106725 0.0031752 0.0007775 -0.0010814 0.0029108 0.7102659 0.1275168 0.1313132 0.2022502 0.8611055 Behaviour limb strength -0.0293372 0.0000807 -0.0294954 -0.0291789 -3.2649952 0.0010961 0.2050777 0.0000404 45
forelimb and hindlimb grip strength normalised against body weight Grip Strength 12355 12405 2.1845186 0.0461535 -0.0882221 0.0045416 2.1662528 0.0461424 -0.0904439 0.0044457 0.0182658 0.0031645 0.0000000 0.0022218 0.0028977 0.4432490 0.1269845 0.1310596 0.3600477 0.8752096 Behaviour limb strength -0.0315873 0.0000808 -0.0317457 -0.0314290 -3.5141450 0.0004420 0.3769407 0.0000404 46
forelimb grip strength measurement mean Grip Strength 12367 12430 4.5980573 0.0548313 0.0563462 0.0063167 4.6020124 0.0548080 0.0523697 0.0062490 -0.0039550 0.0039822 0.3206386 0.0039765 0.0036568 0.2768645 0.1634425 0.1623253 0.1814901 0.8474284 Behaviour limb strength 0.0068591 0.0000807 0.0067010 0.0070172 0.7636581 0.4450783 0.1835231 0.0000403 47
forelimb grip strength normalised against body weight Grip Strength 12360 12419 1.4908015 0.0555700 -0.0863769 0.0061208 1.4867869 0.0555469 -0.0937890 0.0060402 0.0040146 0.0039777 0.3128535 0.0074121 0.0036501 0.0423029 0.1631490 0.1621222 0.2898712 0.8578859 Behaviour limb strength 0.0063132 0.0000807 0.0061549 0.0064714 0.7026192 0.4822997 0.2984256 0.0000404 48
horizontal activity Light-Dark Test 111 84 7.3933457 0.0721430 -0.0525762 0.0755423 7.2351411 0.0871729 0.1575586 0.0731973 0.1582046 0.1070974 0.1416246 -0.2101347 0.1029029 0.0428183 0.2969726 0.2843255 0.1655313 0.5358302 Behaviour horizontal activity 0.0419769 0.0108025 0.0208045 0.0631494 0.4038770 0.6867503 0.1670685 0.0052083 49
latency to center entry Open Field 6566 6537 2.0931259 0.2290947 0.1083144 0.0610565 2.0426466 0.2282904 0.0442207 0.0588930 0.0504794 0.0620672 0.4160619 0.0640937 0.0578094 0.2675799 1.8985648 1.8992626 0.0290622 0.4640912 Behaviour latency to center entry -0.0003678 0.0001527 -0.0006671 -0.0000685 -0.0297622 0.9762572 0.0290704 0.0000763 50
latency to fall mean Rotarod 1869 1970 4.8010718 0.0218026 -0.1095312 0.0149888 4.8406826 0.0210153 -0.0718215 0.0129962 -0.0396108 0.0200023 0.0477464 -0.0377097 0.0180761 0.0370364 0.3550101 0.3505268 0.1650963 0.6629921 Behaviour latency to fall mean 0.0127228 0.0005221 0.0116994 0.0137462 0.5567832 0.5777081 0.1666213 0.0002607 51
latency to first transition into dark Light-Dark Test 1844 1791 2.0119635 0.9883525 0.0129457 0.0838104 2.4456263 0.9890541 -0.0377039 0.0755815 -0.4336628 0.0776939 0.0000000 0.0506497 0.0684271 0.4592322 1.4343852 1.4171543 0.0900926 0.7892896 Behaviour latency to first transition into dark 0.0120774 0.0005512 0.0109970 0.0131578 0.5144064 0.6069992 0.0903376 0.0002753 52
latency to immobility Tail Suspension 586 585 3.0946530 0.5394271 0.0099267 0.0263194 3.1363488 0.5391710 -0.0618324 0.0250611 -0.0416958 0.0308780 0.1771912 0.0717591 0.0275393 0.0092954 0.3337296 0.3220518 0.0394455 0.9219264 Behaviour latency to immobility 0.0356173 0.0017167 0.0322526 0.0389821 0.8596254 0.3901718 0.0394660 0.0008562 53
learning difference Rotarod 620 612 4.7360646 0.0370784 -0.0416609 0.0375144 4.7515668 0.0356695 0.0048195 0.0353372 -0.0155022 0.0324975 0.6334354 -0.0464803 0.0326130 0.1543708 0.3920740 0.3710799 0.0517688 0.1522584 Behaviour learning difference 0.0550227 0.0016314 0.0518252 0.0582201 1.3622683 0.1733626 0.0518151 0.0008137 54
learning slope Rotarod 620 611 3.5849741 0.0364960 -0.0296480 0.0368189 3.6061067 0.0330152 -0.0072492 0.0325646 -0.0211326 0.0326756 0.5179301 -0.0223989 0.0325882 0.4920151 0.4110924 0.3390814 0.0362355 0.1704154 Behaviour learning slope 0.1925660 0.0016327 0.1893658 0.1957661 4.7656357 0.0000021 0.0362514 0.0008143 55
light side distance travelled Light-Dark Test 111 84 6.2160171 0.2228831 -0.3434353 0.2377321 5.8556402 0.2885069 0.4879536 0.2461458 0.3603770 0.3507006 0.3057225 -0.8313889 0.3357293 0.0143335 0.9393093 0.9889885 0.1851685 0.4948512 Behaviour distance travelled -0.0530811 0.0108025 -0.0742535 -0.0319086 -0.5107144 0.6101347 0.1873295 0.0052083 56
light side time spent Light-Dark Test 1844 1791 4.9959798 0.4866964 -0.1117423 0.0873124 5.2896809 0.4868624 -0.1209044 0.0861397 -0.2937011 0.0307513 0.0000000 0.0091621 0.0280279 0.7437696 0.5951422 0.5804452 0.1016756 0.8330696 Behaviour time spent 0.0249970 0.0005512 0.0239166 0.0260774 1.0646816 0.2870908 0.1020282 0.0002753 57
light sleep bout lengths mean Sleep Wake 864 842 6.2863405 0.0109107 0.0075886 0.0104969 6.4285493 0.0108855 -0.0142297 0.0097947 -0.1422088 0.0143728 0.0000000 0.0218182 0.0134846 0.1058660 0.1716964 0.1848297 0.3447557 0.4550385 Behaviour light sleep bout lengths mean -0.0737221 0.0011767 -0.0760283 -0.0714158 -2.1491689 0.0317615 0.3594797 0.0005872 58
light sleep bout lengths standard deviation Sleep Wake 864 842 6.6743858 0.0179187 -0.0245829 0.0164860 6.7915747 0.0157157 -0.0695019 0.0130185 -0.1171889 0.0209498 0.0000000 0.0449190 0.0192945 0.0200369 0.2668549 0.2323942 0.1541689 0.4349426 Behaviour light sleep bout lengths standard deviation 0.1382547 0.0011767 0.1359485 0.1405610 4.0304462 0.0000581 0.1554081 0.0005872 59
locomotor activity Combined SHIRPA and Dysmorphology 9460 9489 3.0430039 0.0632753 0.0154575 0.0200237 2.9032303 0.0632905 0.0006849 0.0198709 0.1397735 0.0101521 0.0000000 0.0147726 0.0092607 0.1106868 0.3437165 0.3873084 0.1338877 0.6564308 Behaviour locomotor activity -0.1194040 0.0001056 -0.1196109 -0.1191970 -11.6205751 0.0000000 0.1346964 0.0000528 60
ma threshold inducing clonic seizure Electroconvulsive Threshold Testing 788 750 1.8071320 0.0127034 0.0129308 0.0066151 1.9332268 0.0127758 0.0306331 0.0063916 -0.1260947 0.0087527 0.0000000 -0.0177023 0.0080827 0.0287037 0.0949735 0.0957594 0.4234437 0.8663596 Behaviour ma threshold inducing clonic seizure -0.0082727 0.0013063 -0.0108329 -0.0057124 -0.2288896 0.8189852 0.4518807 0.0006515 61
peak wake with respect to dark onset median Sleep Wake 864 842 1.3679602 0.0277614 0.0641907 0.0258587 1.0209329 0.0324532 -0.0030927 0.0291277 0.3470273 0.0392922 0.0000000 0.0672834 0.0363729 0.0645310 0.4081548 0.5555201 0.2851148 0.4328934 Behaviour peak wake with respect to dark onset median -0.3082735 0.0011767 -0.3105797 -0.3059673 -8.9868870 0.0000000 0.2932406 0.0005872 62
percent time in dark Light-Dark Test 1844 1791 4.3956442 0.0196318 0.0475267 0.0367672 4.2770321 0.0226399 0.0394525 0.0371551 0.1186122 0.0184895 0.0000000 0.0080742 0.0183422 0.6598205 0.3209702 0.4710839 0.1055887 0.2305118 Behaviour percent time -0.3836961 0.0005512 -0.3847765 -0.3826157 -16.3425392 0.0000000 0.1059837 0.0002753 63
percent time in light Light-Dark Test 1844 1791 2.5003619 0.2854131 -0.1401193 0.1156939 2.8327383 0.2858239 -0.1275830 0.1124837 -0.3323764 0.0437837 0.0000000 -0.0125363 0.0404367 0.7565628 0.8840319 0.7885454 0.1205723 0.5772761 Behaviour percent time 0.1142951 0.0005512 0.1132147 0.1153755 4.8681020 0.0000012 0.1211617 0.0002753 64
percentage center time Open Field 9048 8998 2.5998397 0.1572872 -0.0472088 0.0270129 2.6585972 0.1572805 -0.0330638 0.0256620 -0.0587575 0.0169937 0.0005464 -0.0141451 0.0153236 0.3559735 0.6468697 0.5842991 0.0317340 0.7235701 Behaviour percentage center time 0.1017315 0.0001109 0.1015142 0.1019488 9.6617761 0.0000000 0.0317446 0.0000554 65
periphery average speed Open Field 8693 8662 2.0081555 0.2303779 0.0169313 0.0131553 1.9081514 0.2303750 0.0104057 0.0129378 0.1000041 0.0052138 0.0000000 0.0065256 0.0047362 0.1682819 0.1930063 0.1828226 0.0505319 0.9735880 Behaviour periphery average speed 0.0542062 0.0001153 0.0539802 0.0544321 5.0485916 0.0000004 0.0505750 0.0000576 66
periphery distance travelled Open Field 9026 8992 8.5891024 0.2085688 0.0276798 0.0216123 8.4770995 0.2085715 0.0226659 0.0214775 0.1120028 0.0058077 0.0000000 0.0050139 0.0052899 0.3432319 0.2143748 0.2132647 0.0547178 0.9608289 Behaviour periphery distance travelled 0.0051917 0.0001110 0.0049740 0.0054093 0.4926869 0.6222398 0.0547725 0.0000555 67
periphery permanence time Open Field 9382 9328 6.8718134 0.0299727 0.0087570 0.0066538 6.8692905 0.0299776 0.0113802 0.0065495 0.0025229 0.0030704 0.4112669 -0.0026231 0.0027619 0.3422568 0.1094064 0.1155737 0.0528743 0.7620211 Behaviour periphery time -0.0548394 0.0001069 -0.0550489 -0.0546298 -5.3032593 0.0000001 0.0529236 0.0000535 68
periphery resting time Open Field 6472 6443 5.7436910 0.2406244 -0.0143612 0.0174661 5.7605300 0.2406232 -0.0248838 0.0173611 -0.0168390 0.0085817 0.0497643 0.0105226 0.0079993 0.1883858 0.2478046 0.2598288 0.0185898 0.9509265 Behaviour periphery time -0.0473828 0.0001549 -0.0476864 -0.0470791 -3.8067177 0.0001415 0.0185920 0.0000774 69
repetitive beam break (‘stereotypy counts’) Light-Dark Test 111 84 5.6497987 0.0811326 0.0704782 0.0909241 5.8862536 0.0849960 -0.0836239 0.0738097 -0.2364550 0.1161111 0.0433850 0.1541021 0.1158556 0.1854068 0.3798610 0.3100351 0.2835955 0.3913126 Behaviour repetitive beam break (‘stereotypy counts’) 0.2015766 0.0108025 0.1804041 0.2227490 1.9394498 0.0539044 0.2915877 0.0052083 70
side changes Light-Dark Test 1844 1791 3.6310644 0.4977882 0.1101852 0.0388187 3.4566824 0.4979360 -0.0116791 0.0350345 0.1743820 0.0276785 0.0000000 0.1218643 0.0258036 0.0000024 0.5520806 0.5215928 0.0723511 0.8544497 Behaviour side changes 0.0567989 0.0005512 0.0557185 0.0578793 2.4192018 0.0156034 0.0724777 0.0002753 71
sleep bout lengths mean Sleep Wake 864 842 5.9160819 0.0100447 0.0277226 0.0099389 6.0621562 0.0103782 0.0275142 0.0096211 -0.1460742 0.0138471 0.0000000 0.0002084 0.0132242 0.9874263 0.1663868 0.1859924 0.4645746 0.5162762 Behaviour sleep bout lengths mean -0.1114062 0.0011767 -0.1137124 -0.1090999 -3.2477479 0.0011858 0.5031293 0.0005872 72
sleep bout lengths standard deviation Sleep Wake 864 842 6.4372043 0.0158995 -0.0131297 0.0148157 6.5492646 0.0140408 -0.0542257 0.0118616 -0.1120603 0.0189274 0.0000000 0.0410960 0.0175130 0.0190716 0.2407255 0.2138523 0.1637244 0.4172816 Behaviour sleep bout lengths standard deviation 0.1183565 0.0011767 0.1160503 0.1206627 3.4503664 0.0005735 0.1652113 0.0005872 73
sleep daily percent Sleep Wake 864 842 3.7297052 0.0058653 -0.0100492 0.0055022 3.7999902 0.0050212 0.0111070 0.0042411 -0.0702851 0.0069175 0.0000000 -0.0211563 0.0064253 0.0010151 0.0899794 0.0761820 0.3731787 0.5146524 Behaviour sleep daily percent 0.1664406 0.0011767 0.1641343 0.1687468 4.8521280 0.0000013 0.3921110 0.0005872 74
sleep dark phase percent Sleep Wake 864 842 3.0339754 0.0160112 -0.0149231 0.0156794 3.2256667 0.0127382 0.0651138 0.0112816 -0.1916913 0.0191512 0.0000000 -0.0800369 0.0182338 0.0000121 0.2635742 0.2073675 0.4335350 0.5099030 Behaviour sleep phase percent 0.2398268 0.0011767 0.2375206 0.2421330 6.9915067 0.0000000 0.4642416 0.0005872 75
sleep light phase percent Sleep Wake 864 842 4.1259163 0.0051281 -0.0093598 0.0046532 4.1544696 0.0044173 -0.0103828 0.0035621 -0.0285533 0.0058411 0.0000011 0.0010229 0.0053594 0.8486586 0.0752252 0.0627068 0.1227691 0.4475686 Behaviour sleep phase percent 0.1820011 0.0011767 0.1796949 0.1843074 5.3057551 0.0000001 0.1233916 0.0005872 76
time immobile Tail Suspension 586 585 4.8382734 0.0674485 -0.0354047 0.0230744 4.9356328 0.0666591 -0.0496508 0.0239969 -0.0973593 0.0296438 0.0010553 0.0142460 0.0261203 0.5855911 0.2879618 0.3300342 0.0959699 0.6083682 Behaviour time immobile -0.1363699 0.0017167 -0.1397346 -0.1330051 -3.2912906 0.0010271 0.0962662 0.0008562 77
time mobile dark side Light-Dark Test 1844 1791 5.2877080 0.1970329 0.0720169 0.0331574 5.0330285 0.1975291 0.0262878 0.0333337 0.2546795 0.0213131 0.0000000 0.0457291 0.0197919 0.0209225 0.3556065 0.4884262 0.1758641 0.6587485 Behaviour time mobile -0.3173716 0.0005512 -0.3184520 -0.3162912 -13.5176205 0.0000000 0.1777115 0.0002753 78
time mobile light side Light-Dark Test 1844 1791 4.0674553 0.1847405 -0.0136773 0.0557180 4.1338340 0.1850950 -0.0924787 0.0537418 -0.0663788 0.0297276 0.0256226 0.0788014 0.0268309 0.0033374 0.5729983 0.5466722 0.0770543 0.5719806 Behaviour time mobile 0.0470253 0.0005512 0.0459449 0.0481057 2.0029189 0.0452602 0.0772074 0.0002753 79
total distance travelled Light-Dark Test 111 84 8.3074025 0.0704497 -0.0533860 0.0736987 8.1531407 0.0854014 0.1538294 0.0716995 0.1542618 0.1047396 0.1428034 -0.2072154 0.1005845 0.0410384 0.2895251 0.2785499 0.1664589 0.5378201 Behaviour total distance travelled 0.0371015 0.0108025 0.0159290 0.0582739 0.3569682 0.7215056 0.1680224 0.0052083 80
total holepokes Hole-board Exploration 1357 1324 3.6681451 0.0158187 0.0554439 0.0151613 3.5520795 0.0169397 0.0499979 0.0145752 0.1160656 0.0207966 0.0000000 0.0054460 0.0187895 0.7719602 0.3194311 0.3683197 0.1195821 0.3663792 Behaviour total holepokes -0.1424190 0.0007478 -0.1438846 -0.1409534 -5.2081304 0.0000002 0.1201571 0.0003734 81
vertical activity (rearing) Light-Dark Test 111 84 4.2583974 0.1547048 0.1936752 0.1694120 4.0386826 0.2044003 0.1477888 0.1766367 0.2197148 0.2506956 0.3821405 0.0458864 0.2410915 0.8492981 0.6829218 0.7340029 0.1151428 0.3962937 Behaviour vertical activity (rearing) -0.0736758 0.0108025 -0.0948482 -0.0525033 -0.7088644 0.4792640 0.1156558 0.0052083 82
whole arena average speed Open Field 9384 9328 2.1529941 0.1895958 0.0103399 0.0129308 2.0615866 0.1895895 0.0068122 0.0127009 0.0914076 0.0050160 0.0000000 0.0035277 0.0045350 0.4366542 0.1890698 0.1791981 0.0542274 0.9678864 Behaviour whole arena average speed 0.0536242 0.0001069 0.0534147 0.0538338 5.1860235 0.0000002 0.0542807 0.0000535 83
whole arena permanence Open Field 9051 8998 7.0900462 0.0000254 -0.0000047 0.0000080 7.0900572 0.0000254 -0.0000078 0.0000081 -0.0000111 0.0000103 0.2848159 0.0000031 0.0000085 0.7142900 0.0003328 0.0003915 0.0109986 0.6361878 Behaviour whole arena -0.1624324 0.0001108 -0.1626496 -0.1622151 -15.4280162 0.0000000 0.0109990 0.0000554 84
whole arena resting time Open Field 9379 9323 5.7677502 0.2339048 -0.0237320 0.0161198 5.7905890 0.2338878 -0.0384231 0.0158521 -0.0228388 0.0059370 0.0001201 0.0146910 0.0053292 0.0058449 0.2227345 0.2072980 0.0273176 0.9717077 Behaviour whole arena 0.0718228 0.0001070 0.0716132 0.0720325 6.9441625 0.0000000 0.0273244 0.0000535 85
cone b-wave amplitude Electroretinography 109 106 4.7599459 0.0355396 -0.0334524 0.0361318 4.7927587 0.0371480 -0.0382785 0.0352101 -0.0328127 0.0502380 0.5147572 0.0048261 0.0502177 0.9235795 0.1826788 0.2073646 0.1126656 0.3950130 Eye cone b-wave amplitude -0.1268861 0.0095714 -0.1456456 -0.1081265 -1.2969621 0.1960474 0.1131460 0.0047170 86
cone b-wave amplitude-left Electroretinography 2 88 90 4.7366037 0.0627737 -0.0165718 0.0643149 4.7549584 0.0530981 0.0010740 0.0527666 -0.0183547 0.0487613 0.7072435 -0.0176458 0.0501367 0.7254655 0.2341936 0.1656133 0.0352267 0.2741236 Eye cone b-wave amplitude 0.3466279 0.0116295 0.3238346 0.3694213 3.2142778 0.0015558 0.0352413 0.0057143 87
cone b-wave amplitude-right Electroretinography 2 88 90 4.6797350 0.0396465 -0.0160930 0.0400185 4.6943386 0.0406544 -0.0433743 0.0396774 -0.0146037 0.0395297 0.7124283 0.0272814 0.0385176 0.4800876 0.1410758 0.1846999 0.1637512 0.3745252 Eye cone b-wave amplitude -0.2693002 0.0116295 -0.2920935 -0.2465068 -2.4972181 0.0134356 0.1652388 0.0057143 88
cone b-wave implicit time Electroretinography 109 106 3.8078484 0.0115692 0.0016493 0.0112032 3.7996605 0.0099185 -0.0025788 0.0086198 0.0081879 0.0138902 0.5565161 0.0042281 0.0140631 0.7641366 0.0535270 0.0440410 0.0742520 0.6683812 Eye cone b-wave implicit time 0.1949281 0.0095714 0.1761686 0.2136877 1.9924524 0.0475982 0.0743889 0.0047170 89
cone b-wave implicit time-left Electroretinography 2 88 90 3.6994092 0.0095085 0.0077061 0.0094943 3.6888561 0.0080919 -0.0100385 0.0078725 0.0105531 0.0077776 0.1772711 0.0177446 0.0074861 0.0193013 0.0332622 0.0252082 0.2459276 0.5294324 Eye cone b-wave implicit time 0.2773872 0.0116295 0.2545939 0.3001806 2.5722093 0.0109306 0.2510736 0.0057143 90
cone b-wave implicit time-right Electroretinography 2 88 90 3.7011509 0.0088203 0.0082119 0.0087594 3.6799317 0.0077265 -0.0049738 0.0074764 0.0212191 0.0074991 0.0054326 0.0131857 0.0071342 0.0669334 0.0304230 0.0262671 0.2935941 0.5841045 Eye cone b-wave implicit time 0.1470169 0.0116295 0.1242235 0.1698103 1.3632866 0.1745336 0.3024948 0.0057143 91
eye size Electroretinography 109 106 1.1717768 0.0083331 0.0057816 0.0080876 1.1857920 0.0065100 -0.0058223 0.0055514 -0.0140153 0.0095971 0.1464807 0.0116040 0.0097753 0.2372522 0.0392531 0.0271982 0.1768871 0.6729457 Eye eye size 0.3667432 0.0095714 0.3479837 0.3855027 3.7486546 0.0002290 0.1787674 0.0047170 92
eye size-left Electroretinography 2 88 90 1.1741130 0.0048771 0.0048224 0.0049236 1.1804754 0.0043205 -0.0001414 0.0042380 -0.0063624 0.0041387 0.1267475 0.0049638 0.0040616 0.2239613 0.0174252 0.0153890 0.2838146 0.4725799 Eye eye size 0.1244045 0.0116295 0.1016112 0.1471979 1.1536020 0.2502275 0.2918260 0.0057143 93
eye size-right Electroretinography 2 88 90 1.1728326 0.0033952 0.0041316 0.0034762 1.1787821 0.0033374 -0.0020137 0.0032878 -0.0059495 0.0031433 0.0607068 0.0061454 0.0031668 0.0545592 0.0126370 0.0143716 0.2898198 0.4129712 Eye eye size -0.1284857 0.0116295 -0.1512791 -0.1056923 -1.1914467 0.2350825 0.2983695 0.0057143 94
interpupillary distance Electroretinography 197 196 2.4380565 0.0089435 0.0024424 0.0029902 2.4483882 0.0087773 0.0046893 0.0022936 -0.0103317 0.0037524 0.0063065 -0.0022469 0.0036397 0.5375388 0.0220403 0.0202830 0.3114381 0.6114450 Eye interpupillary distance 0.0830740 0.0051680 0.0729449 0.0932031 1.1555914 0.2485540 0.3221372 0.0025641 95
left anterior chamber depth Eye Morphology 76 77 5.9362887 0.0167139 0.0427650 0.0172484 5.9306787 0.0133149 0.0070548 0.0129697 0.0056100 0.0144287 0.6988932 0.0357101 0.0148868 0.0198049 0.0506303 0.0341372 0.3794858 0.6994703 Eye left anterior chamber depth 0.3942562 0.0136061 0.3675888 0.4209236 3.3799647 0.0009228 0.3994588 0.0066667 96
left corneal thickness Eye Morphology 76 77 4.6367513 0.0319422 0.0305948 0.0330263 4.5912138 0.0242986 0.0123541 0.0238761 0.0455376 0.0258417 0.0834972 0.0182407 0.0269657 0.5015464 0.0993737 0.0497623 0.1212388 0.4994023 Eye corneal thickness 0.6917224 0.0136061 0.6650550 0.7183898 5.9301472 0.0000000 0.1218381 0.0066667 97
left inner nuclear layer Eye Morphology 75 77 3.1922875 0.0402708 0.0343779 0.0410180 3.1566302 0.0389161 0.0008290 0.0384609 0.0356572 0.0297611 0.2359192 0.0335489 0.0300860 0.2695700 0.0930703 0.1092257 0.1081321 0.5139294 Eye inner nuclear layer -0.1598729 0.0137012 -0.1867267 -0.1330190 -1.3658264 0.1740379 0.1085566 0.0067114 98
left outer nuclear layer Eye Morphology 75 77 3.7553480 0.0395318 -0.0411443 0.0278511 3.7784736 0.0362162 0.0142664 0.0213474 -0.0231256 0.0264552 0.3857743 -0.0554107 0.0265711 0.0416052 0.0580967 0.0493776 0.0566948 0.9830572 Eye outer nuclear layer 0.1627997 0.0137012 0.1359458 0.1896535 1.3908306 0.1663366 0.0567557 0.0067114 99
left posterior chamber depth Eye Morphology 75 77 6.2963967 0.0084387 0.0017446 0.0083949 6.2932614 0.0061141 0.0000011 0.0051876 0.0031353 0.0083860 0.7099088 0.0017435 0.0085919 0.8399331 0.0244016 0.0145372 0.0275267 0.8827247 Eye posterior chamber depth 0.5181289 0.0137012 0.4912751 0.5449828 4.4264800 0.0000183 0.0275336 0.0067114 100
left total retinal thickness Eye Morphology 1222 1261 5.4677120 0.0418067 0.0032828 0.0021769 5.4681947 0.0417835 -0.0004130 0.0013827 -0.0004826 0.0022441 0.8297284 0.0036959 0.0022416 0.0993424 0.0403134 0.0259756 0.0237385 0.9120030 Eye total retinal thickness 0.4395374 0.0008076 0.4379545 0.4411203 15.4664265 0.0000000 0.0237430 0.0004032 101
max left eye lens density Eye Morphology 907 942 2.1723083 0.0195221 0.0160386 0.0169214 2.1269957 0.0181120 0.0293343 0.0143852 0.0453126 0.0150057 0.0025695 -0.0132958 0.0146144 0.3630765 0.2068967 0.1819754 0.0776843 0.6307797 Eye max eye lens density 0.1283686 0.0010856 0.1262409 0.1304963 3.8960820 0.0001012 0.0778411 0.0005417 102
max right eye lens density Eye Morphology 896 940 2.2002966 0.0206834 0.0155218 0.0179629 2.1629733 0.0192492 0.0327781 0.0154246 0.0373234 0.0158948 0.0189867 -0.0172563 0.0154358 0.2637597 0.2161152 0.1947696 0.0758212 0.6280352 Eye max eye lens density 0.1040205 0.0010935 0.1018772 0.1061638 3.1456027 0.0016840 0.0759670 0.0005456 103
mean left eye lens density Eye Morphology 907 942 1.8604779 0.0139891 0.0165643 0.0114109 1.8361623 0.0132860 0.0283749 0.0099690 0.0243155 0.0101023 0.0161971 -0.0118107 0.0097594 0.2263820 0.1348207 0.1259803 0.0989529 0.6982171 Eye mean eye lens density 0.0678410 0.0010856 0.0657133 0.0699687 2.0590251 0.0396318 0.0992778 0.0005417 104
mean right eye lens density Eye Morphology 896 940 1.9109776 0.0144222 0.0202038 0.0111655 1.8805606 0.0139062 0.0291081 0.0099984 0.0304170 0.0098524 0.0020543 -0.0089043 0.0094439 0.3458903 0.1269518 0.1260334 0.1001870 0.7412178 Eye mean eye lens density 0.0072869 0.0010935 0.0051436 0.0094302 0.2203577 0.8256171 0.1005243 0.0005456 105
min left eye lens density Eye Morphology 907 942 1.5802401 0.0099558 0.0041729 0.0087144 1.5672765 0.0093724 0.0139052 0.0076113 0.0129636 0.0076717 0.0912598 -0.0097323 0.0074406 0.1910599 0.1032527 0.0966649 0.0639918 0.6167108 Eye min eye lens density 0.0659495 0.0010856 0.0638218 0.0680772 2.0016178 0.0454719 0.0640793 0.0005417 106
min right eye lens density Eye Morphology 896 940 1.6255900 0.0104945 0.0033711 0.0088919 1.6202055 0.0098897 0.0117267 0.0077541 0.0053845 0.0078564 0.4932075 -0.0083556 0.0075971 0.2715669 0.1049264 0.0978915 0.0550421 0.6550367 Eye min eye lens density 0.0694252 0.0010935 0.0672819 0.0715685 2.0994342 0.0359150 0.0550978 0.0005456 107
right anterior chamber depth Eye Morphology 74 76 5.8864041 0.0939958 0.0454571 0.0972134 5.9088171 0.0662430 0.0008085 0.0663662 -0.0224129 0.0678973 0.7425780 0.0446486 0.0720437 0.5379860 0.3012121 0.0445532 0.1516148 0.3280283 Eye anterior chamber depth 1.9113246 0.0138916 1.8840976 1.9385515 16.2165624 0.0000000 0.1527928 0.0068027 108
right corneal thickness Eye Morphology 75 76 4.5934362 0.0326966 0.0106308 0.0332640 4.6229852 0.0514984 -0.0050191 0.0490023 -0.0295490 0.0543116 0.5885568 0.0156499 0.0526657 0.7674471 0.0853730 0.2640478 0.0876635 0.4151909 Eye corneal thickness -1.1290047 0.0137938 -1.1560399 -1.1019694 -9.6128997 0.0000000 0.0878891 0.0067568 109
right inner nuclear layer Eye Morphology 71 75 3.1851590 0.0415651 0.0029792 0.0424356 3.1515566 0.0344353 -0.0122462 0.0338940 0.0336024 0.0347926 0.3385340 0.0152255 0.0354062 0.6689228 0.1165745 0.0924917 0.1657853 0.6499986 Eye inner nuclear layer 0.2318196 0.0142974 0.2037973 0.2598420 1.9387502 0.0544875 0.1673297 0.0069930 110
right outer nuclear layer Eye Morphology 71 75 3.8366987 0.0411854 0.0276416 0.0308456 3.7885439 0.0386538 0.0133542 0.0272513 0.0481548 0.0289330 0.1019438 0.0142874 0.0279916 0.6118796 0.0501008 0.0647724 0.0513844 0.9781193 Eye outer nuclear layer -0.2564333 0.0142974 -0.2844557 -0.2284110 -2.1445994 0.0336631 0.0514297 0.0069930 111
right posterior chamber depth Eye Morphology 72 75 6.2887208 0.0093485 -0.0058608 0.0094794 6.2965541 0.0079585 -0.0061995 0.0076191 -0.0078333 0.0091458 0.3955823 0.0003387 0.0091468 0.9706022 0.0252662 0.0250891 0.1105265 0.6829920 Eye posterior chamber depth 0.0073356 0.0141908 -0.0204779 0.0351491 0.0615787 0.9509831 0.1109799 0.0069444 112
right total retinal thickness Eye Morphology 1200 1250 5.4714816 0.0404829 0.0041696 0.0031973 5.4719824 0.0404699 0.0023537 0.0028777 -0.0005008 0.0021789 0.8182406 0.0018159 0.0021483 0.3980491 0.0359944 0.0296496 0.0435983 0.9101588 Eye total retinal thickness 0.1939311 0.0008187 0.1923265 0.1955356 6.7778525 0.0000000 0.0436259 0.0004087 113
rod a-wave amplitude Electroretinography 108 106 5.0316103 0.0635232 0.0365486 0.0633114 4.4660092 0.0950339 0.2269419 0.0905291 0.5656011 0.1114432 0.0000012 -0.1903933 0.1098954 0.0854524 0.3040800 0.5446975 0.3909238 0.5887973 Eye rod a-wave amplitude -0.5830322 0.0096163 -0.6018798 -0.5641847 -5.9455105 0.0000000 0.4128900 0.0047393 114
rod a-wave amplitude-left Electroretinography 2 88 89 4.2115201 0.2197574 -0.2503910 0.2246210 4.4483797 0.1697711 0.0267613 0.1692579 -0.2368596 0.1545518 0.1279322 -0.2771523 0.1592117 0.0842030 0.8100048 0.2819804 0.1829123 0.3245975 Eye rod a-wave amplitude 1.0552711 0.0116963 1.0323468 1.0781954 9.7575250 0.0000000 0.1849941 0.0057471 115
rod a-wave amplitude-right Electroretinography 2 88 88 4.4223108 0.0812767 -0.0513003 0.0832136 4.4022328 0.0824088 0.0191339 0.0807012 0.0200780 0.0777864 0.7967475 -0.0704341 0.0775770 0.3656928 0.2998582 0.3616463 0.0905466 0.3260973 Eye rod a-wave amplitude -0.1873569 0.0117647 -0.2104153 -0.1642985 -1.7273453 0.0858801 0.0907953 0.0057803 116
rod a-wave implicit time Electroretinography 109 106 2.8795026 0.0125133 0.0080846 0.0128616 2.8111922 0.0106098 -0.0021799 0.0101187 0.0683103 0.0161773 0.0000437 0.0102644 0.0163118 0.5302232 0.0671268 0.0600533 0.4326568 0.5087558 Eye rod a-wave implicit time 0.1112130 0.0095714 0.0924535 0.1299725 1.1367604 0.2569157 0.4631608 0.0047170 117
rod a-wave implicit time-left Electroretinography 2 86 90 3.0855511 0.0147375 -0.0072252 0.0148605 3.0445857 0.0130836 -0.0123394 0.0128745 0.0409654 0.0126217 0.0015098 0.0051142 0.0124516 0.6819858 0.0521901 0.0478881 0.4656808 0.5839650 Eye rod a-wave implicit time 0.0863021 0.0117712 0.0632309 0.1093732 0.7954453 0.4274383 0.5045408 0.0057803 118
rod a-wave implicit time-right Electroretinography 2 87 90 3.0956373 0.0142091 0.0005169 0.0144123 3.0442629 0.0131628 -0.0090702 0.0129672 0.0513744 0.0125462 0.0000756 0.0095872 0.0124630 0.4432072 0.0514602 0.0520203 0.4682790 0.5622055 Eye rod a-wave implicit time -0.0106195 0.0116995 -0.0335501 0.0123111 -0.0981794 0.9219022 0.5078637 0.0057471 119
rod b-wave amplitude Electroretinography 109 106 5.9925366 0.0431116 -0.0410973 0.0422167 6.2019449 0.0447824 -0.0443906 0.0407486 -0.2094083 0.0582961 0.0004561 0.0032933 0.0582687 0.9550110 0.1992254 0.2260429 0.2762841 0.6140759 Eye rod b-wave amplitude -0.1264254 0.0095714 -0.1451849 -0.1076659 -1.2922531 0.1976697 0.2836545 0.0047170 120
rod b-wave amplitude-left Electroretinography 2 88 90 6.0043538 0.0639126 -0.0346755 0.0645223 6.0924437 0.0542428 -0.0239224 0.0532974 -0.0880899 0.0515869 0.0901926 -0.0107531 0.0508002 0.8327056 0.2288448 0.1700985 0.1262252 0.4502565 Eye rod b-wave amplitude 0.2968014 0.0116295 0.2740081 0.3195948 2.7522370 0.0065392 0.1269020 0.0057143 121
rod b-wave amplitude-right Electroretinography 2 88 90 5.9927945 0.0416643 -0.0460836 0.0426873 6.0828954 0.0398053 -0.0464908 0.0392827 -0.0901009 0.0372808 0.0171013 0.0004072 0.0377348 0.9914069 0.1554400 0.1644146 0.1885856 0.3269960 Eye rod b-wave amplitude -0.0559960 0.0116295 -0.0787894 -0.0332026 -0.5192505 0.6042384 0.1908702 0.0057143 122
rod b-wave implicit time Electroretinography 109 106 3.8152662 0.0142385 -0.0113621 0.0135633 3.8134123 0.0129348 -0.0162566 0.0111172 0.0018538 0.0172715 0.9146796 0.0048945 0.0174332 0.7793213 0.0634114 0.0571168 0.1778487 0.6874958 Eye rod b-wave implicit time 0.1044079 0.0095714 0.0856484 0.1231674 1.0672020 0.2870887 0.1797602 0.0047170 123
rod b-wave implicit time-left Electroretinography 2 87 90 3.9524501 0.0119035 0.0031417 0.0120683 3.9269220 0.0106905 -0.0082112 0.0105418 0.0255281 0.0101618 0.0132835 0.0113530 0.0101041 0.2633556 0.0430703 0.0396997 0.3258317 0.4747225 Eye rod b-wave implicit time 0.0816967 0.0116995 0.0587660 0.1046273 0.7553018 0.4510833 0.3381577 0.0057471 124
rod b-wave implicit time-right Electroretinography 2 87 90 3.9272396 0.0184100 -0.0192718 0.0188061 3.9233360 0.0156628 -0.0046673 0.0155620 0.0039036 0.0144788 0.7879083 -0.0146045 0.0147895 0.3253259 0.0681811 0.0502322 0.2144275 0.3710464 Eye rod b-wave implicit time 0.3057152 0.0116995 0.2827846 0.3286458 2.8263975 0.0052555 0.2178077 0.0057471 125
% pre-pulse inhibition - global Acoustic Startle and Pre-pulse Inhibition (PPI) 8612 8634 5.2746035 0.0147235 -0.0050482 0.0023240 5.2797968 0.0147023 -0.0030177 0.0020362 -0.0051933 0.0025181 0.0391914 -0.0020304 0.0023253 0.3825750 0.0986343 0.0899158 0.0238926 0.5791338 Hearing pre-pulse inhibition 0.0925453 0.0001160 0.0923179 0.0927727 8.5922667 0.0000000 0.0238971 0.0000580 126
% pre-pulse inhibition - ppi1 Acoustic Startle and Pre-pulse Inhibition (PPI) 8611 8635 5.9211633 0.0105150 -0.0019376 0.0015849 5.9193827 0.0105328 -0.0010930 0.0016148 0.0017807 0.0018762 0.3425850 -0.0008446 0.0017398 0.6273647 0.0652632 0.0792810 0.0262880 0.5394703 Hearing pre-pulse inhibition -0.1945705 0.0001160 -0.1947978 -0.1943431 -18.0646728 0.0000000 0.0262940 0.0000580 127
% pre-pulse inhibition - ppi2 Acoustic Startle and Pre-pulse Inhibition (PPI) 8612 8634 5.5359225 0.0101861 -0.0026330 0.0020022 5.5373937 0.0101774 -0.0030368 0.0018539 -0.0014712 0.0022186 0.5072641 0.0004038 0.0020496 0.8438083 0.0830383 0.0844297 0.0244452 0.4997802 Hearing pre-pulse inhibition -0.0166173 0.0001160 -0.0168447 -0.0163900 -1.5428182 0.1228932 0.0244501 0.0000580 128
% pre-pulse inhibition - ppi3 Acoustic Startle and Pre-pulse Inhibition (PPI) 8611 8635 5.6759369 0.0083945 -0.0034787 0.0014451 5.6813949 0.0083919 -0.0021663 0.0013454 -0.0054581 0.0015996 0.0006464 -0.0013124 0.0014780 0.3745948 0.0596705 0.0609997 0.0290932 0.5399940 Hearing pre-pulse inhibition -0.0220321 0.0001160 -0.0222595 -0.0218048 -2.0455498 0.0408158 0.0291014 0.0000580 129
% pre-pulse inhibition - ppi4 Acoustic Startle and Pre-pulse Inhibition (PPI) 4200 4252 4.9868007 0.0196753 -0.0044345 0.0039307 5.0031103 0.0196049 -0.0029153 0.0035504 -0.0163096 0.0042898 0.0001447 -0.0015192 0.0038964 0.6966292 0.1158990 0.1075925 0.0457119 0.5379375 Hearing pre-pulse inhibition 0.0743695 0.0002368 0.0739054 0.0748336 4.8327819 0.0000014 0.0457437 0.0001184 130
12khz-evoked abr threshold Auditory Brain Stem Response 3560 3763 3.4984420 0.1058937 0.0010173 0.0073150 3.4906718 0.1059313 0.0099774 0.0072656 0.0077702 0.0085703 0.3646345 -0.0089601 0.0073870 0.2252051 0.1932256 0.2242375 0.0105786 0.9129282 Hearing abr threshold -0.1488396 0.0002735 -0.1493757 -0.1483034 -8.9991752 0.0000000 0.0105790 0.0001366 131
18khz-evoked abr threshold Auditory Brain Stem Response 3561 3758 3.4343386 0.0807563 0.0029793 0.0079950 3.3965810 0.0808096 0.0102952 0.0080092 0.0377576 0.0084836 0.0000087 -0.0073159 0.0074978 0.3292377 0.1932622 0.2263483 0.0373828 0.8653808 Hearing abr threshold -0.1580195 0.0002737 -0.1585559 -0.1574831 -9.5518113 0.0000000 0.0374002 0.0001367 132
24khz-evoked abr threshold Auditory Brain Stem Response 3539 3751 3.5630273 0.0527809 -0.0099366 0.0125223 3.5192374 0.0528506 0.0082645 0.0123710 0.0437899 0.0089077 0.0000009 -0.0182011 0.0084293 0.0308754 0.2085047 0.2361251 0.0705692 0.7555782 Hearing abr threshold -0.1243921 0.0002748 -0.1249307 -0.1238535 -7.5037555 0.0000000 0.0706867 0.0001372 133
30khz-evoked abr threshold Auditory Brain Stem Response 3391 3648 3.9084952 0.0448776 -0.0113944 0.0109235 3.8521336 0.0449399 0.0001886 0.0105845 0.0563617 0.0098000 0.0000000 -0.0115826 0.0090314 0.1997352 0.2362465 0.2481254 0.0984544 0.6843921 Hearing abr threshold -0.0490479 0.0002848 -0.0496060 -0.0484898 -2.9066005 0.0036652 0.0987743 0.0001421 134
6khz-evoked abr threshold Auditory Brain Stem Response 3556 3764 3.8513077 0.0841968 -0.0105297 0.0055534 3.8672297 0.0842177 -0.0013144 0.0054866 -0.0159220 0.0058460 0.0064795 -0.0092152 0.0051348 0.0727663 0.1266588 0.1487595 0.0172438 0.9395629 Hearing abr threshold -0.1608265 0.0002737 -0.1613629 -0.1602901 -9.7217470 0.0000000 0.0172456 0.0001367 135
click-evoked abr threshold Auditory Brain Stem Response 2158 2367 3.1105165 0.1356064 -0.0069876 0.0083696 3.1046310 0.1356127 -0.0137656 0.0083191 0.0058856 0.0083359 0.4802111 0.0067781 0.0079132 0.3917605 0.1450208 0.1564655 0.0278366 0.9479668 Hearing abr threshold -0.0759380 0.0004435 -0.0768073 -0.0750687 -3.6057878 0.0003146 0.0278438 0.0002211 136
response amplitude - bn Acoustic Startle and Pre-pulse Inhibition (PPI) 8690 8697 2.2831095 0.4471997 0.0712339 0.0193053 2.2773061 0.4471699 0.0880121 0.0176547 0.0058035 0.0162208 0.7205141 -0.0167782 0.0153841 0.2754578 0.6551651 0.5929821 0.0400444 0.9474249 Hearing response amplitude 0.0997232 0.0001151 0.0994976 0.0999487 9.2964762 0.0000000 0.0400658 0.0000575 137
response amplitude - pp1 Acoustic Startle and Pre-pulse Inhibition (PPI) 8690 8697 2.3045061 0.4445194 0.0994603 0.0238462 2.2658869 0.4444666 0.1045565 0.0217082 0.0386192 0.0188834 0.0408589 -0.0050962 0.0178430 0.7751805 0.7643376 0.6574091 0.0456946 0.9324418 Hearing response amplitude 0.1507032 0.0001151 0.1504777 0.1509287 14.0489807 0.0000000 0.0457264 0.0000575 138
response amplitude - pp1_s Acoustic Startle and Pre-pulse Inhibition (PPI) 8616 8635 4.6783959 0.5102334 0.0828131 0.0240880 4.8923588 0.5102230 0.0817718 0.0232686 -0.2139629 0.0155776 0.0000000 0.0010412 0.0143769 0.9422652 0.5659783 0.5541509 0.0800714 0.9670992 Hearing response amplitude 0.0211187 0.0001160 0.0208914 0.0213460 1.9610296 0.0498916 0.0802432 0.0000580 139
response amplitude - pp2 Acoustic Startle and Pre-pulse Inhibition (PPI) 8690 8697 2.6231830 0.4848738 0.0638120 0.0136392 2.5797054 0.4848764 0.0700607 0.0132321 0.0434776 0.0108775 0.0000645 -0.0062487 0.0101181 0.5368624 0.3836286 0.4144021 0.0261436 0.9808115 Hearing response amplitude -0.0771620 0.0001151 -0.0773875 -0.0769365 -7.1932604 0.0000000 0.0261496 0.0000575 140
response amplitude - pp2_s Acoustic Startle and Pre-pulse Inhibition (PPI) 8616 8635 4.2181847 0.5120598 0.0870921 0.0247218 4.4163525 0.5120489 0.0883831 0.0236893 -0.1981678 0.0172900 0.0000000 -0.0012910 0.0159826 0.9356232 0.6264944 0.6146387 0.0784389 0.9599208 Hearing response amplitude 0.0191054 0.0001160 0.0188781 0.0193327 1.7740762 0.0760682 0.0786004 0.0000580 141
response amplitude - pp3 Acoustic Startle and Pre-pulse Inhibition (PPI) 8690 8697 2.8506887 0.5065468 0.0373036 0.0160473 2.8342722 0.5065473 0.0635162 0.0155317 0.0164165 0.0117663 0.1629707 -0.0262126 0.0109056 0.0162475 0.4155243 0.4366571 0.0215713 0.9798751 Hearing response amplitude -0.0496069 0.0001151 -0.0498324 -0.0493813 -4.6244930 0.0000038 0.0215747 0.0000575 142
response amplitude - pp3_s Acoustic Startle and Pre-pulse Inhibition (PPI) 8616 8635 3.9181293 0.5222213 0.0974323 0.0205029 4.0709459 0.5222138 0.0900160 0.0194237 -0.1528166 0.0172995 0.0000000 0.0074163 0.0159790 0.6425644 0.6240315 0.6272934 0.0696570 0.9612607 Hearing response amplitude -0.0052135 0.0001160 -0.0054408 -0.0049862 -0.4841121 0.6283125 0.0697700 0.0000580 143
response amplitude - pp4 Acoustic Startle and Pre-pulse Inhibition (PPI) 4200 4253 2.5348942 0.8114546 -0.0040156 0.0191722 2.5640064 0.8114471 0.0091987 0.0189956 -0.0291121 0.0153503 0.0579317 -0.0132143 0.0142102 0.3524420 0.3728196 0.4077612 0.0063670 0.9895838 Hearing response amplitude -0.0895855 0.0002368 -0.0900496 -0.0891214 -5.8219082 0.0000000 0.0063671 0.0001183 144
response amplitude - pp4_s Acoustic Startle and Pre-pulse Inhibition (PPI) 4200 4253 3.1334002 0.8048000 0.0718255 0.0337455 3.3058207 0.8047808 0.0623291 0.0332733 -0.1724205 0.0215578 0.0000000 0.0094964 0.0203507 0.6407745 0.5242427 0.5560285 0.0517307 0.9803904 Hearing response amplitude -0.0588633 0.0002368 -0.0593274 -0.0583992 -3.8253583 0.0001315 0.0517769 0.0001183 145
response amplitude - s Acoustic Startle and Pre-pulse Inhibition (PPI) 8619 8637 4.9782721 0.4964215 0.0679687 0.0202102 5.1946617 0.4964060 0.0711068 0.0191925 -0.2163896 0.0141892 0.0000000 -0.0031382 0.0131618 0.8115497 0.5302697 0.4947192 0.0779023 0.9707077 Hearing response amplitude 0.0693955 0.0001159 0.0691682 0.0696227 6.4448159 0.0000000 0.0780604 0.0000580 146
aortic diameter (dao) Echo 1266 1225 0.2325750 0.0034406 0.0305897 0.0051025 0.2278177 0.0033872 0.0384653 0.0048528 0.0047572 0.0042814 0.2666334 -0.0078756 0.0041145 0.0557427 0.0603292 0.0638261 0.4390952 0.5731112 Heart aortic diameter (dao) -0.0563587 0.0008050 -0.0579366 -0.0547808 -1.9863242 0.0471068 0.4711093 0.0004019 147
cardiac output Echo 2963 1965 2.7693275 0.0722969 0.0782671 0.0093506 2.7387835 0.0725407 0.0765211 0.0097353 0.0305440 0.0111758 0.0063025 0.0017461 0.0096846 0.8569299 0.2034888 0.2120790 0.2449642 0.6555222 Heart cardiac output -0.0414340 0.0004238 -0.0422646 -0.0406034 -2.0127802 0.0441921 0.2500485 0.0002030 148
cv Electrocardiogram (ECG) 4301 4295 0.6568179 0.2060366 -0.0248413 0.0423704 0.3525507 0.2063758 0.0322804 0.0390823 0.3042672 0.0283197 0.0000000 -0.0571217 0.0264667 0.0309404 0.7611737 0.7676703 0.1527483 0.6338991 Heart cv -0.0084989 0.0002328 -0.0089553 -0.0080426 -0.5569881 0.5775500 0.1539532 0.0001164 149
ejection fraction Echo 3128 2139 4.1162139 0.1720701 -0.0065697 0.0052377 4.1102819 0.1720903 -0.0146319 0.0049765 0.0059321 0.0062245 0.3406327 0.0080622 0.0054843 0.1416172 0.1272400 0.1111662 0.0406571 0.9314174 Heart ejection fraction 0.1349746 0.0003941 0.1342022 0.1357470 6.7992097 0.0000000 0.0406795 0.0001900 150
end-diastolic diameter Echo 1558 563 1.4039107 0.0130530 0.0276104 0.0052679 1.3976736 0.0141218 0.0379727 0.0063868 0.0062371 0.0067325 0.3543599 -0.0103623 0.0046767 0.0268443 0.0525365 0.0718276 0.4135463 0.6326958 Heart end-diastolic diameter -0.3133332 0.0012144 -0.3157134 -0.3109530 -8.9913619 0.0000000 0.4398815 0.0004721 151
end-systolic diameter Echo 1558 563 1.0969226 0.0476913 0.0277740 0.0073441 1.0944722 0.0486197 0.0460272 0.0096593 0.0024504 0.0119432 0.8374637 -0.0182531 0.0084606 0.0311120 0.0994403 0.1271815 0.2546421 0.6666901 Heart end-systolic diameter -0.2466294 0.0012144 -0.2490096 -0.2442492 -7.0772385 0.0000000 0.2603705 0.0004721 152
fractional shortening Echo 3151 2163 3.5119504 0.2464776 -0.0117209 0.0058295 3.5076257 0.2465062 -0.0194246 0.0055980 0.0043247 0.0084055 0.6069237 0.0077037 0.0073360 0.2937159 0.1690823 0.1565112 0.0374655 0.9354674 Heart fractional shortening 0.0771852 0.0003903 0.0764202 0.0779502 3.9068578 0.0000947 0.0374830 0.0001883 153
heart weight Heart Weight 9886 9813 4.8138798 0.0292507 0.0798139 0.0073469 4.8688653 0.0292609 0.1026247 0.0073971 -0.0549855 0.0028201 0.0000000 -0.0228107 0.0026096 0.0000000 0.1115926 0.1241589 0.5407043 0.8247245 Heart heart weight -0.1067079 0.0001016 -0.1069070 -0.1065089 -10.5885034 0.0000000 0.6051504 0.0000508 154
heart weight normalised against body weight Heart Weight 7967 7890 1.5458659 0.0317870 -0.0777059 0.0080891 1.5989217 0.0318015 -0.0565438 0.0081371 -0.0530557 0.0031827 0.0000000 -0.0211621 0.0029461 0.0000000 0.1152269 0.1289484 0.2784713 0.7701360 Heart heart weight -0.1125101 0.0001262 -0.1127574 -0.1122628 -10.0161228 0.0000000 0.2860241 0.0000631 155
heart weight normalised against tibia length Heart Weight 139 129 -0.3438548 0.0035320 -0.1097516 0.0035755 -0.3539314 0.0034500 -0.1145397 0.0033713 0.0100766 0.0033263 0.0033734 0.0047881 0.0034046 0.1638057 0.0154228 0.0142236 0.9881755 0.9924102 Heart heart weight 0.0806520 0.0076447 0.0656686 0.0956354 0.9224315 0.3571395 2.5624001 0.0037736 156
hr Echo 9526 8437 6.4157259 0.0890117 0.0001235 0.0022757 6.4224703 0.0890134 0.0030215 0.0021146 -0.0067443 0.0020664 0.0011020 -0.0028980 0.0018935 0.1259233 0.0818650 0.0752685 0.0167981 0.9598735 Heart hr 0.0840034 0.0001118 0.0837843 0.0842225 7.9450834 0.0000000 0.0167996 0.0000557 157
hrv Electrocardiogram (ECG) 3950 3937 2.8101112 0.1897751 -0.0326526 0.0450726 2.5120010 0.1898351 0.0211121 0.0429543 0.2981101 0.0285810 0.0000000 -0.0537648 0.0269571 0.0461413 0.7406416 0.7557051 0.1666197 0.5888710 Heart hrv -0.0201349 0.0002538 -0.0206322 -0.0196375 -1.2639316 0.2062919 0.1681878 0.0001268 158
lvawd Echo 1731 747 -0.2209667 0.0903991 0.0259143 0.0111833 -0.2495192 0.0906234 0.0428903 0.0116620 0.0285525 0.0100208 0.0044278 -0.0169760 0.0075796 0.0252239 0.1174324 0.1131778 0.1477718 0.7749342 Heart lvawd 0.0365204 0.0009614 0.0346361 0.0384047 1.1778354 0.2389754 0.1488617 0.0004040 159
lvaws Echo 1708 723 0.1352815 0.1001515 0.0314588 0.0095686 0.1002235 0.1004100 0.0276395 0.0105200 0.0350580 0.0109849 0.0014388 0.0038193 0.0082712 0.6443068 0.1200125 0.1234788 0.1083762 0.8000757 Heart lvaws -0.0288747 0.0009877 -0.0308106 -0.0269388 -0.9187662 0.3583091 0.1088035 0.0004119 160
lvidd Echo 3150 2163 1.2531180 0.1458367 0.0362950 0.0040624 1.2400574 0.1458636 0.0349979 0.0043865 0.0130606 0.0053176 0.0140845 0.0012971 0.0046501 0.7802994 0.0959225 0.1098988 0.1116903 0.9317424 Heart lvidd -0.1360921 0.0003904 -0.1368572 -0.1353270 -6.8880861 0.0000000 0.1121582 0.0001883 161
lvids Echo 3150 2163 0.8063441 0.2937833 0.0439434 0.0093211 0.7965278 0.2938268 0.0480849 0.0097216 0.0098162 0.0101344 0.3327977 -0.0041414 0.0088462 0.6396948 0.1855115 0.2048199 0.0769188 0.9375978 Heart lvids -0.0990868 0.0003904 -0.0998519 -0.0983217 -5.0151215 0.0000005 0.0770711 0.0001883 162
lvpwd Echo 3150 2163 -0.4186086 0.1084551 0.0189338 0.0099154 -0.4251415 0.1084560 0.0300481 0.0099089 0.0065329 0.0045329 0.1496006 -0.0111142 0.0039139 0.0045369 0.0868471 0.0805154 0.1039365 0.9244021 Heart lvpwd 0.0756281 0.0003904 0.0748630 0.0763932 3.8277952 0.0001308 0.1043132 0.0001883 163
lvpws Echo 3127 2139 -0.2101400 0.2008430 0.0221425 0.0080404 -0.2200992 0.2008408 0.0240808 0.0079096 0.0099592 0.0049887 0.0459610 -0.0019383 0.0043690 0.6573258 0.1008333 0.0849728 0.0533978 0.9667717 Heart lvpws 0.1710639 0.0003941 0.1702914 0.1718364 8.6166147 0.0000000 0.0534487 0.0001900 164
mean r amplitude Electrocardiogram (ECG) 4456 4380 -0.4806964 0.1466258 0.0527562 0.0246810 -0.6699178 0.1468176 0.0802256 0.0234733 0.1892215 0.0215925 0.0000000 -0.0274694 0.0193194 0.1551080 0.5455585 0.5772556 0.0834568 0.7160057 Heart mean r amplitude -0.0564771 0.0002265 -0.0569210 -0.0560331 -3.7525067 0.0001762 0.0836514 0.0001132 165
mean sr amplitude Electrocardiogram (ECG) 3946 3935 -0.2165070 0.1224309 0.0296193 0.0198716 -0.3902844 0.1225519 0.0501523 0.0186127 0.1737774 0.0224782 0.0000000 -0.0205331 0.0195904 0.2946216 0.5257788 0.5665266 0.0865487 0.6896956 Heart mean sr amplitude -0.0746438 0.0002540 -0.0751416 -0.0741461 -4.6838588 0.0000029 0.0867658 0.0001269 166
pnn5(6>ms) Electrocardiogram (ECG) 2978 2907 -1.0907565 0.6195759 -0.0982230 0.1962650 -2.1089457 0.6199069 -0.0079088 0.1802203 1.0181892 0.1271009 0.0000000 -0.0903142 0.1206873 0.4542947 3.0599184 2.7419754 0.1616577 0.5243887 Heart pnn5(6>ms) 0.1097055 0.0003402 0.1090387 0.1103724 5.9474876 0.0000000 0.1630884 0.0001700 167
pq Electrocardiogram (ECG) 3950 3937 3.0043414 0.0277965 -0.0150378 0.0070672 3.0091921 0.0277942 -0.0002364 0.0065732 -0.0048507 0.0052597 0.3564337 -0.0148014 0.0049864 0.0030044 0.1477109 0.1367142 0.0481020 0.3979820 Heart pq 0.0773635 0.0002538 0.0768661 0.0778609 4.8563651 0.0000012 0.0481391 0.0001268 168
pr Electrocardiogram (ECG) 6377 6275 3.4535075 0.0763485 -0.0031197 0.0042296 3.4414141 0.0763534 0.0021404 0.0040027 0.0120934 0.0031421 0.0001194 -0.0052601 0.0028877 0.0685481 0.1091538 0.1046189 0.0305232 0.8697262 Heart pr 0.0424322 0.0001582 0.0421222 0.0427422 3.3739872 0.0007431 0.0305326 0.0000791 169
qrs Electrocardiogram (ECG) 6327 6274 2.3499596 0.0469512 0.0016917 0.0027140 2.3359516 0.0469608 0.0042148 0.0025517 0.0140079 0.0026055 0.0000001 -0.0025231 0.0023918 0.2915029 0.0834786 0.0876232 0.0358666 0.8258386 Heart qrs -0.0484557 0.0001588 -0.0487670 -0.0481445 -3.8452567 0.0001210 0.0358820 0.0000794 170
qtc Electrocardiogram (ECG) 5179 5078 4.1126507 0.1553599 -0.0016851 0.0029902 4.1060021 0.1553653 0.0051122 0.0027795 0.0066486 0.0024943 0.0077007 -0.0067973 0.0021745 0.0017784 0.0668699 0.0673306 0.0085737 0.9857065 Heart qtc -0.0068678 0.0001951 -0.0072502 -0.0064854 -0.4916603 0.6229701 0.0085739 0.0000975 171
qtc dispersion Electrocardiogram (ECG) 4457 4382 2.6410902 0.4847901 -0.0024706 0.0151613 2.6630827 0.4848029 -0.0242374 0.0129869 -0.0219925 0.0159659 0.1684072 0.0217668 0.0151819 0.1516894 0.4864708 0.4537246 0.0116327 0.9022593 Heart qtc dispersion 0.0696845 0.0002264 0.0692407 0.0701284 4.6308414 0.0000037 0.0116332 0.0001132 172
respiration rate Echo 2282 1568 5.0513146 0.3108613 0.0254183 0.0116913 5.0439525 0.3109170 0.0430719 0.0087872 0.0073621 0.0151806 0.6277315 -0.0176537 0.0137439 0.1990729 0.3080600 0.2111328 0.0592816 0.8597573 Heart respiration rate 0.3777072 0.0005389 0.3766510 0.3787634 16.2707642 0.0000000 0.0593512 0.0002599 173
rmssd Electrocardiogram (ECG) 3950 3937 0.3806281 0.1686621 -0.0520266 0.0628873 0.1748007 0.1687249 0.0084693 0.0614650 0.2058274 0.0274561 0.0000000 -0.0604959 0.0254452 0.0174576 0.7102867 0.7247517 0.1388563 0.5699883 Heart rmssd -0.0201608 0.0002538 -0.0206582 -0.0196635 -1.2655631 0.2057069 0.1397592 0.0001268 174
rr Electrocardiogram (ECG) 6377 6275 4.4811695 0.0932204 0.0016066 0.0016594 4.4685810 0.0932218 0.0023273 0.0015249 0.0125886 0.0015313 0.0000000 -0.0007207 0.0014169 0.6110017 0.0516972 0.0505883 0.0217556 0.9759933 Heart rr 0.0216820 0.0001582 0.0213720 0.0219920 1.7240381 0.0847254 0.0217590 0.0000791 175
st Electrocardiogram (ECG) 5499 5491 3.1626430 0.2659844 0.0071010 0.0058709 3.1461556 0.2659861 0.0134272 0.0056415 0.0164874 0.0034814 0.0000022 -0.0063262 0.0030946 0.0409584 0.1005646 0.0986868 0.0138377 0.9850793 Heart st 0.0188487 0.0001821 0.0184919 0.0192056 1.3968419 0.1624893 0.0138385 0.0000910 176
stroke volume Echo 2964 1965 3.4506062 0.1752146 0.0788959 0.0088612 3.4246996 0.1753205 0.0649559 0.0095066 0.0259066 0.0111797 0.0205371 0.0139401 0.0097392 0.1524121 0.1978520 0.2142275 0.1650488 0.8447502 Heart stroke volume -0.0796051 0.0004237 -0.0804356 -0.0787747 -3.8673182 0.0001115 0.1665725 0.0002030 177
basophil cell count Hematology 4440 4413 -3.3640277 0.1637387 0.0161801 0.0160820 -3.2532649 0.1637404 0.0463625 0.0161915 -0.1107629 0.0151898 0.0000000 -0.0301824 0.0137253 0.0279049 0.3918542 0.3930465 0.0991372 0.8784942 Hematology basophil count -0.0030389 0.0002261 -0.0034820 -0.0025959 -0.2021172 0.8398297 0.0994639 0.0001130 178
basophil differential count Hematology 4577 4518 -1.1039558 0.2630235 0.0106698 0.0250449 -1.1167902 0.2629847 0.0209347 0.0245219 0.0128344 0.0271149 0.6359879 -0.0102648 0.0245497 0.6758679 0.7530239 0.7011097 0.0093899 0.8410308 Hematology basophil count 0.0714312 0.0002201 0.0709999 0.0718625 4.8152804 0.0000015 0.0093902 0.0001100 179
eosinophil cell count Hematology 4465 4431 -2.0664095 0.2048268 0.0066811 0.0181203 -1.8596275 0.2048307 0.0041411 0.0182895 -0.2067820 0.0170112 0.0000000 0.0025399 0.0154293 0.8692486 0.4411912 0.4440694 0.1077185 0.8957366 Hematology eosinophils -0.0065034 0.0002250 -0.0069444 -0.0060625 -0.4335854 0.6646000 0.1081380 0.0001124 180
eosinophil differential count Hematology 4618 4555 0.5411424 0.2662663 -0.0211115 0.0198111 0.5647194 0.2662408 -0.0163708 0.0193932 -0.0235769 0.0227221 0.2994789 -0.0047406 0.0203165 0.8155043 0.6191434 0.5814516 0.0102685 0.8866884 Hematology eosinophils 0.0628078 0.0002182 0.0623801 0.0632354 4.2520822 0.0000214 0.0102689 0.0001091 181
eosinophils Immunophenotyping 1050 1048 7.1189602 0.2244071 -0.0197579 0.0353026 7.0751653 0.2243211 0.0149621 0.0362125 0.0437949 0.0318603 0.1694405 -0.0347200 0.0294878 0.2391868 0.3697443 0.4469256 0.0293770 0.8909756 Hematology eosinophils -0.1895815 0.0009560 -0.1914553 -0.1877078 -6.1314287 0.0000000 0.0293855 0.0004773 182
hematocrit Hematology 9685 9560 3.8991583 0.0155434 0.0000010 0.0023885 3.9118801 0.0155480 0.0001432 0.0024291 -0.0127218 0.0014173 0.0000000 -0.0001422 0.0013121 0.9136993 0.0523562 0.0572887 0.0499081 0.9055227 Hematology hematocrit -0.0900330 0.0001040 -0.0902368 -0.0898292 -8.8301649 0.0000000 0.0499496 0.0000520 183
hemoglobin Hematology 9686 9560 2.6820845 0.0125981 -0.0009041 0.0026678 2.6829121 0.0126128 -0.0011795 0.0027588 -0.0008276 0.0013942 0.5527997 0.0002754 0.0012926 0.8312814 0.0456595 0.0620824 0.0023932 0.8825099 Hematology hemoglobin -0.3072526 0.0001040 -0.3074563 -0.3070488 -30.1351759 0.0000000 0.0023932 0.0000520 184
large unstained cell (luc) count Hematology 3288 3286 -3.0144436 0.0805922 0.0080132 0.0196666 -2.7143764 0.0806835 0.0568929 0.0188058 -0.3000672 0.0187495 0.0000000 -0.0488796 0.0170180 0.0040902 0.4103348 0.4120348 0.2831909 0.7480677 Hematology luc -0.0041344 0.0003045 -0.0047313 -0.0035376 -0.2369294 0.8127189 0.2911478 0.0001522 185
large unstained cell (luc) differential count Hematology 3290 3285 -0.2777784 0.0707623 0.0225640 0.0129214 -0.2166073 0.0708436 0.0466265 0.0123587 -0.0611710 0.0142634 0.0000183 -0.0240625 0.0126938 0.0580594 0.3064455 0.3168942 0.1224038 0.7812543 Hematology luc -0.0335284 0.0003045 -0.0341252 -0.0329317 -1.9215333 0.0547077 0.1230207 0.0001522 186
lymphocyte cell count Hematology 4465 4431 1.6289973 0.0501935 0.0176077 0.0139684 1.8458867 0.0501481 0.0096700 0.0138205 -0.2168893 0.0103935 0.0000000 0.0079377 0.0095121 0.4040339 0.2740793 0.2564243 0.2877435 0.7641180 Hematology lymphocytes 0.0665834 0.0002250 0.0661425 0.0670243 4.4391384 0.0000091 0.2961043 0.0001124 187
lymphocyte differential count Hematology 4719 4654 4.4253712 0.0098356 0.0029168 0.0028576 4.4097115 0.0099822 -0.0066337 0.0034221 0.0156598 0.0027483 0.0000000 0.0095505 0.0025419 0.0001730 0.0487460 0.0954445 0.0962743 0.6854130 Hematology lymphocytes -0.6719244 0.0002135 -0.6723429 -0.6715059 -45.9827785 0.0000000 0.0965734 0.0001067 188
mean cell hemoglobin concentration Hematology 9674 9555 3.3888619 0.0104815 0.0001201 0.0006329 3.3770754 0.0104878 -0.0001633 0.0007529 0.0117864 0.0007907 0.0000000 0.0002833 0.0007134 0.6912472 0.0248615 0.0363387 0.0613675 0.9469458 Hematology hemoglobin -0.3795620 0.0001040 -0.3797660 -0.3793581 -37.2108867 0.0000000 0.0614447 0.0000520 189
mean cell volume Hematology 9703 9574 3.8880890 0.0095480 0.0009525 0.0006566 3.8789588 0.0095485 0.0027005 0.0006662 0.0091302 0.0004839 0.0000000 -0.0017480 0.0004463 0.0000900 0.0183403 0.0189921 0.0560727 0.9574028 Hematology mean cell volume -0.0349274 0.0001038 -0.0351308 -0.0347240 -3.4284199 0.0006084 0.0561316 0.0000519 190
mean corpuscular hemoglobin Hematology 9654 9537 2.6779685 0.0083361 0.0011157 0.0006204 2.6571607 0.0083443 0.0023208 0.0007446 0.0208078 0.0008113 0.0000000 -0.0012050 0.0007254 0.0966767 0.0256778 0.0373770 0.1063755 0.9303021 Hematology hemoglobin -0.3754293 0.0001043 -0.3756336 -0.3752249 -36.7693487 0.0000000 0.1067795 0.0000521 191
mean platelet volume Hematology 7512 7457 1.8609900 0.0502340 0.0014642 0.0015943 1.8452387 0.0502342 0.0039025 0.0016607 0.0157513 0.0013286 0.0000000 -0.0024383 0.0012727 0.0553943 0.0450493 0.0453726 0.0251880 0.9828455 Hematology mean platelet volume -0.0071515 0.0001337 -0.0074135 -0.0068895 -0.6185687 0.5362099 0.0251933 0.0000668 192
monocyte cell count Hematology 4467 4431 -2.0625364 0.0848847 0.0762034 0.0202304 -1.9076883 0.0848758 0.0941727 0.0202491 -0.1548480 0.0156854 0.0000000 -0.0179693 0.0143063 0.2091391 0.4046603 0.4013340 0.2409251 0.7631789 Hematology monocytes 0.0082529 0.0002249 0.0078121 0.0086938 0.5502867 0.5821366 0.2457560 0.0001124 193
monocyte differential count Hematology 4720 4654 0.7552199 0.0692551 0.0586611 0.0123153 0.6842846 0.0692486 0.0698053 0.0122374 0.0709353 0.0113272 0.0000000 -0.0111442 0.0102907 0.2788669 0.3010870 0.2924415 0.0996198 0.7760948 Hematology monocytes 0.0291332 0.0002135 0.0287147 0.0295516 1.9938189 0.0462008 0.0999513 0.0001067 194
monocytes Immunophenotyping 1009 1012 7.9560460 0.1377357 -0.0339908 0.0279319 8.0265174 0.1376446 0.1009585 0.0288816 -0.0704714 0.0311211 0.0236789 -0.1349493 0.0284749 0.0000023 0.3588980 0.4270630 0.1057276 0.8496586 Hematology monocytes -0.1738918 0.0009926 -0.1758372 -0.1719464 -5.5195185 0.0000000 0.1061242 0.0004955 195
neutrophil cell count Hematology 4466 4428 -0.4818559 0.0893921 0.0026586 0.0182265 -0.2156183 0.0895317 0.0487407 0.0191860 -0.2662376 0.0139615 0.0000000 -0.0460821 0.0127772 0.0003122 0.3156714 0.3980927 0.2567781 0.8019629 Hematology neutrophils -0.2319840 0.0002250 -0.2324251 -0.2315430 -15.4646886 0.0000000 0.2626560 0.0001125 196
neutrophil differential count Hematology 4655 4610 2.2834609 0.0637993 -0.0129262 0.0159027 2.3268470 0.0639389 0.0336396 0.0166239 -0.0433862 0.0106719 0.0000484 -0.0465658 0.0097764 0.0000019 0.2348289 0.3120059 0.0730831 0.8078654 Hematology neutrophils -0.2841660 0.0002160 -0.2845894 -0.2837426 -19.3345480 0.0000000 0.0732136 0.0001080 197
platelet count Hematology 9637 9528 6.9004534 0.0367664 0.0101107 0.0047427 7.0845484 0.0367832 -0.0051972 0.0048952 -0.1840951 0.0043604 0.0000000 0.0153079 0.0040088 0.0001347 0.1638227 0.1771765 0.2880756 0.8519963 Hematology platelet count -0.0783622 0.0001044 -0.0785668 -0.0781576 -7.6695710 0.0000000 0.2964665 0.0000522 198
red blood cell count Hematology 9689 9572 2.3133984 0.0110677 -0.0010517 0.0026315 2.3353803 0.0110780 -0.0028850 0.0026899 -0.0219819 0.0014174 0.0000000 0.0018333 0.0013142 0.1630394 0.0503148 0.0595021 0.0868856 0.8739074 Hematology red blood cell count -0.1677130 0.0001039 -0.1679166 -0.1675094 -16.4556679 0.0000000 0.0871053 0.0000519 199
red blood cell distribution width Hematology 7553 7496 2.6256197 0.0394497 -0.0050708 0.0023718 2.6449208 0.0394527 0.0037772 0.0024542 -0.0193011 0.0011062 0.0000000 -0.0088480 0.0010620 0.0000000 0.0327936 0.0429444 0.0523797 0.9791211 Hematology red blood cell distribution width -0.2696730 0.0001330 -0.2699336 -0.2694125 -23.3876537 0.0000000 0.0524277 0.0000665 200
white blood cell count Hematology 9368 9229 1.7920073 0.0463897 0.0085835 0.0096538 2.0436528 0.0463849 0.0006568 0.0096310 -0.2516455 0.0064258 0.0000000 0.0079267 0.0059970 0.1862610 0.2582148 0.2455714 0.3146762 0.7889187 Hematology white blood cell count 0.0502032 0.0001076 0.0499924 0.0504141 4.8401177 0.0000013 0.3257272 0.0000538 201
b cell total FACS 293 288 11.9195027 0.0605821 0.0158366 0.0311272 11.7813048 0.0724319 0.0745528 0.0521454 0.1381978 0.0624283 0.0273108 -0.0587162 0.0594978 0.3241990 0.2884615 0.5261263 0.0792306 0.7545951 Immunology B cells -0.6010099 0.0034785 -0.6078277 -0.5941921 -10.1902338 0.0000000 0.0793970 0.0017301 202
b cells Immunophenotyping 751 754 12.2007224 0.1818636 0.0168079 0.0167056 12.2172677 0.1818418 -0.0021696 0.0158855 -0.0165453 0.0223089 0.4584478 0.0189775 0.0189705 0.3173357 0.2281914 0.2651172 0.0255363 0.9140166 Immunology B cells -0.1499848 0.0013342 -0.1525998 -0.1473697 -4.1061247 0.0000424 0.0255419 0.0006658 203
b1 total FACS 293 288 9.0745129 0.0803298 0.0399507 0.0348106 8.7735644 0.0838847 0.0311693 0.0439473 0.3009485 0.0580099 0.0000003 0.0087814 0.0545017 0.8720641 0.3287590 0.4256165 0.1593293 0.8777272 Immunology B cells -0.2582441 0.0034785 -0.2650619 -0.2514263 -4.3785759 0.0000142 0.1606985 0.0017301 204
b1b cells Immunophenotyping 742 745 8.6899643 0.2817741 0.0042648 0.0247713 8.5866744 0.2818838 0.0099933 0.0263301 0.1032899 0.0300973 0.0006203 -0.0057285 0.0268998 0.8313985 0.2713069 0.3802137 0.0450292 0.9499813 Immunology B cells -0.3374803 0.0013504 -0.3401272 -0.3348335 -9.1835396 0.0000000 0.0450597 0.0006739 205
b2 immature + mzb FACS 268 283 9.2331574 0.0768383 0.0474127 0.0307563 9.0973698 0.0846427 0.0530083 0.0506610 0.1357876 0.0603840 0.0249989 -0.0055956 0.0579554 0.9231255 0.2729488 0.5045630 0.0578832 0.8436473 Immunology B cells -0.6143074 0.0036725 -0.6215054 -0.6071094 -10.1368831 0.0000000 0.0579479 0.0018248 206
b2 mature FACS 268 282 11.7330830 0.0680873 0.0231261 0.0393664 11.5948551 0.0789864 0.0843585 0.0598656 0.1382279 0.0728478 0.0583867 -0.0612324 0.0700699 0.3826399 0.3576649 0.5970362 0.0726091 0.7137417 Immunology B cells -0.5122866 0.0036789 -0.5194971 -0.5050760 -8.4460482 0.0000000 0.0727372 0.0018282 207
b2 total FACS 293 288 11.8450512 0.0630988 0.0182796 0.0335993 11.7163353 0.0763613 0.0812073 0.0563408 0.1287159 0.0673955 0.0567374 -0.0629277 0.0642862 0.3281299 0.3118801 0.5693769 0.0710051 0.7375941 Immunology B cells -0.6019540 0.0034785 -0.6087718 -0.5951363 -10.2062414 0.0000000 0.0711248 0.0017301 208
cd24+ cd4 t cells Immunophenotyping 74 77 7.1866296 0.2029629 0.0491390 0.0940238 7.0820674 0.1996845 -0.1113400 0.0849895 0.1045622 0.0887163 0.2408843 0.1604790 0.0839114 0.0581979 0.2826177 0.3101040 0.0948942 0.9554532 Immunology cd4 t -0.0925271 0.0137990 -0.1195727 -0.0654816 -0.7876716 0.4321401 0.0951806 0.0067568 209
cd24+ cd8 t cells Immunophenotyping 74 77 7.3621029 0.1712154 0.0551753 0.0979922 7.2567695 0.1669534 -0.0651071 0.0884711 0.1053334 0.0919906 0.2544691 0.1202824 0.0871579 0.1701367 0.2959759 0.3209977 0.0835543 0.9252060 Immunology cd4 t -0.0808704 0.0137990 -0.1079160 -0.0538248 -0.6884393 0.4922466 0.0837495 0.0067568 210
cd4 cd25- nkt cells Immunophenotyping 546 539 7.2726766 0.3180728 0.0373386 0.0416381 6.9877810 0.3179942 -0.0090359 0.0382880 0.2848955 0.0400531 0.0000000 0.0463745 0.0396973 0.2430452 0.3555452 0.3727937 0.1409976 0.9225609 Immunology cd4 nkt -0.0473849 0.0018536 -0.0510179 -0.0437518 -1.1005917 0.2713190 0.1419433 0.0009242 211
cd4 cd25- t cells Immunophenotyping 686 685 10.4911591 0.1577595 -0.0368807 0.0202570 10.5162463 0.1576881 -0.0120954 0.0201980 -0.0250872 0.0278914 0.3686097 -0.0247854 0.0245623 0.3131608 0.2641842 0.3332383 0.0335867 0.8579162 Immunology cd4 t -0.2322123 0.0014652 -0.2350841 -0.2293406 -6.0664765 0.0000000 0.0335993 0.0007310 212
cd4 cd25+ nkt cells Immunophenotyping 612 608 3.9963736 0.4216493 0.0432723 0.0374484 3.8676080 0.4214523 -0.0003261 0.0340483 0.1287656 0.0428651 0.0027343 0.0435983 0.0408503 0.2861193 0.4214466 0.4117176 0.0399636 0.9488730 Immunology cd4 nkt 0.0233499 0.0016475 0.0201210 0.0265789 0.5752781 0.5652095 0.0399849 0.0008217 213
cd4 cd25+ t cells Immunophenotyping 686 685 8.1363839 0.3275928 0.0066616 0.0306938 8.1977670 0.3275680 -0.0498657 0.0330467 -0.0613832 0.0339258 0.0706771 0.0565273 0.0313744 0.0718713 0.2931131 0.4131594 0.0262555 0.9452919 Immunology cd4 t -0.3432762 0.0014652 -0.3461480 -0.3404045 -8.9679859 0.0000000 0.0262616 0.0007310 214
cd4 cd44-cd62l- t cells Immunophenotyping 447 444 7.6717684 0.5717067 -0.0109977 0.0426998 7.6628628 0.5719739 0.0250349 0.0447309 0.0089057 0.0521044 0.8643374 -0.0360326 0.0500289 0.4716252 0.3907268 0.5231237 0.0122061 0.9465220 Immunology cd4 t -0.2918170 0.0022599 -0.2962463 -0.2873876 -6.1385345 0.0000000 0.0122067 0.0011261 215
cd4 cd44-cd62l+ nkt cells Immunophenotyping 686 685 2.7608844 0.5321785 0.0461638 0.0783062 2.6312707 0.5318860 -0.0548294 0.0788164 0.1296137 0.0465311 0.0054377 0.1009932 0.0448262 0.0244598 0.4504297 0.5100077 0.0483451 0.9516502 Immunology cd4 nkt -0.1242250 0.0014652 -0.1270967 -0.1213532 -3.2453390 0.0012015 0.0483829 0.0007310 216
cd4 cd44+cd62l- nkt cells Immunophenotyping 686 685 6.9858932 0.2947943 0.0402389 0.0378631 6.6704900 0.2944257 -0.0416305 0.0369000 0.3154031 0.0390777 0.0000000 0.0818694 0.0362165 0.0239856 0.3918683 0.4175254 0.1471127 0.9294686 Immunology cd4 nkt -0.0634207 0.0014652 -0.0662924 -0.0605489 -1.6568458 0.0977798 0.1481880 0.0007310 217
cd4 cd44+cd62l- t cells Immunophenotyping 686 685 9.2413889 0.1922286 -0.0288321 0.0216907 9.2421747 0.1921056 -0.0040765 0.0213632 -0.0007858 0.0287738 0.9782169 -0.0247556 0.0254741 0.3313709 0.2757208 0.3347471 0.0263126 0.8922579 Immunology cd4 t -0.1939877 0.0014652 -0.1968595 -0.1911160 -5.0678704 0.0000005 0.0263187 0.0007310 218
cd4 cd44+cd62l+ nkt cells Immunophenotyping 686 685 4.9562198 0.5106608 0.0225485 0.0329072 4.8806873 0.5103895 -0.0104145 0.0298585 0.0755326 0.0361306 0.0368030 0.0329631 0.0332454 0.3216603 0.3890930 0.3579999 0.0253508 0.9632397 Immunology cd4 nkt 0.0832847 0.0014652 0.0804130 0.0861564 2.1757872 0.0297417 0.0253562 0.0007310 219
cd4 cd44+cd62l+ t cells Immunophenotyping 591 594 9.2042174 0.5476362 -0.0456147 0.0313633 9.2607985 0.5474205 -0.0331145 0.0324637 -0.0565811 0.0372453 0.1290669 -0.0125002 0.0339871 0.7131127 0.3272539 0.4112434 0.0235435 0.9592869 Immunology cd4 t -0.2284448 0.0016964 -0.2317696 -0.2251200 -5.5465348 0.0000000 0.0235479 0.0008460 220
cd4 effector FACS 300 298 9.4960930 0.0405401 0.0847897 0.0323331 9.1969895 0.0535390 0.0712907 0.0483947 0.2991035 0.0591897 0.0000006 0.0134990 0.0572860 0.8138062 0.3184624 0.5095519 0.2149775 0.5258580 Immunology cd4 t -0.4700387 0.0033784 -0.4766603 -0.4634171 -8.0868050 0.0000000 0.2183842 0.0016807 221
cd4 nkt cells Immunophenotyping 689 688 7.2734873 0.2481185 0.0280920 0.0349430 7.0066331 0.2477804 -0.0261852 0.0343107 0.2668542 0.0353939 0.0000000 0.0542772 0.0329429 0.0997218 0.3555300 0.3826071 0.1475332 0.9140391 Immunology cd4 nkt -0.0734000 0.0014588 -0.0762592 -0.0705409 -1.9217632 0.0548420 0.1486178 0.0007278 222
cd4 resting/naive FACS 300 298 10.1274429 0.0567784 0.0234214 0.0423463 9.9884423 0.0645893 0.0395497 0.0535887 0.1390005 0.0698693 0.0471931 -0.0161283 0.0668815 0.8095387 0.4159304 0.5479444 0.0869220 0.5941274 Immunology cd4 t -0.2756673 0.0033784 -0.2822889 -0.2690458 -4.7427330 0.0000026 0.0871420 0.0016807 223
cd4 t cells Immunophenotyping 689 688 10.6602656 0.1496242 -0.0282135 0.0199172 10.6889773 0.1495609 -0.0158952 0.0199361 -0.0287117 0.0274906 0.2965250 -0.0123183 0.0242458 0.6115159 0.2616241 0.3308124 0.0285636 0.8437952 Immunology cd4 t -0.2346437 0.0014588 -0.2375029 -0.2317845 -6.1434519 0.0000000 0.0285714 0.0007278 224
cd4 t cells total FACS 300 298 10.8660941 0.0405426 0.0435468 0.0291798 10.6968494 0.0474551 0.0535350 0.0391537 0.1692447 0.0499502 0.0007584 -0.0099882 0.0478284 0.8346613 0.2841590 0.4017522 0.1342687 0.6158130 Immunology cd4 t -0.3463128 0.0033784 -0.3529344 -0.3396913 -5.9581574 0.0000000 0.1350844 0.0016807 225
cd44+ t-regs Immunophenotyping 74 77 6.4142899 0.3464085 0.0788246 0.0972336 6.4432399 0.3446804 -0.0118208 0.0891012 -0.0289500 0.0937990 0.7581318 0.0906454 0.0884255 0.3073760 0.2892269 0.3366369 0.0289092 0.9844958 Immunology cd44+ t-regs -0.1515078 0.0137990 -0.1785534 -0.1244622 -1.2897664 0.1991301 0.0289173 0.0067568 226
cd62l+ t-regs Immunophenotyping 74 77 6.4180336 0.2812496 -0.0902263 0.0986311 6.6497834 0.2784320 -0.1194662 0.0885545 -0.2317497 0.0924034 0.0134764 0.0292399 0.0873990 0.7385442 0.2965012 0.3182877 0.0568762 0.9768146 Immunology cd62l+ t-regs -0.0706192 0.0137990 -0.0976647 -0.0435736 -0.6011718 0.5486391 0.0569376 0.0067568 227
cd8 cd25- nkt cells Immunophenotyping 610 606 6.0536202 0.3553975 0.0044823 0.0383828 6.0625248 0.3552696 0.0171038 0.0370775 -0.0089046 0.0335181 0.7905556 -0.0126215 0.0323768 0.6967488 0.3166204 0.3330137 0.0140354 0.9542404 Immunology cd8 nkt -0.0504856 0.0016529 -0.0537252 -0.0472459 -1.2417739 0.2145598 0.0140363 0.0008244 228
cd8 cd25- t cells Immunophenotyping 612 608 10.3899717 0.1994956 -0.0050572 0.0217009 10.4021797 0.1996328 -0.0147601 0.0227966 -0.0122080 0.0307070 0.6910398 0.0097028 0.0288501 0.7367046 0.2721457 0.3474754 0.0129354 0.8662365 Immunology cd8 t -0.2443617 0.0016475 -0.2475907 -0.2411328 -6.0203976 0.0000000 0.0129361 0.0008217 229
cd8 cd25+ nkt cells Immunophenotyping 610 606 2.1729062 0.3046197 0.0407470 0.0435764 2.2504351 0.3039231 0.0014502 0.0380094 -0.0775290 0.0557826 0.1649015 0.0392968 0.0522954 0.4525741 0.5628468 0.5328868 0.0461671 0.8974238 Immunology cd8 nkt 0.0546930 0.0016529 0.0514533 0.0579326 1.3452617 0.1787919 0.0462000 0.0008244 230
cd8 cd44-cd62l- t cells Immunophenotyping 559 558 7.5011501 0.4656408 -0.0574485 0.0353733 7.5008540 0.4654814 -0.0251022 0.0342215 0.0002962 0.0474389 0.9950198 -0.0323463 0.0420149 0.4415813 0.4137371 0.5057117 0.0315409 0.9423880 Immunology cd8 t -0.2007375 0.0018002 -0.2042658 -0.1972092 -4.7311906 0.0000025 0.0315514 0.0008977 231
cd8 cd44-cd62l+ t cells Immunophenotyping 686 685 9.5796019 0.2737433 -0.0115785 0.0229396 9.5854770 0.2736436 -0.0336611 0.0227065 -0.0058751 0.0312255 0.8507931 0.0220826 0.0273467 0.4195540 0.2889021 0.3655790 0.0246459 0.9395192 Immunology cd8 t -0.2353957 0.0014652 -0.2382674 -0.2325240 -6.1496405 0.0000000 0.0246509 0.0007310 232
cd8 cd44+cd62l- t cells Immunophenotyping 686 685 7.4014758 0.2425725 -0.0093423 0.0288769 7.4230507 0.2423894 0.0031606 0.0290146 -0.0215749 0.0341438 0.5275971 -0.0125029 0.0311337 0.6880684 0.3288252 0.3896972 0.0107405 0.9028877 Immunology cd8 t -0.1698451 0.0014652 -0.1727168 -0.1669733 -4.4371501 0.0000098 0.0107409 0.0007310 233
cd8 cd44+cd62l+ nkt cells Immunophenotyping 684 683 5.5996673 0.3690667 0.0069959 0.0408929 5.6704335 0.3688090 -0.0087357 0.0403072 -0.0707663 0.0343851 0.0398258 0.0157316 0.0325268 0.6287320 0.3475611 0.3595268 0.0297962 0.9556697 Immunology cd8 nkt -0.0338494 0.0014695 -0.0367296 -0.0309693 -0.8830097 0.3773865 0.0298050 0.0007331 234
cd8 cd44+cd62l+ t cells Immunophenotyping 686 685 9.0166448 0.2236296 0.0080339 0.0263078 9.0442687 0.2234967 0.0120188 0.0267102 -0.0276239 0.0304993 0.3652848 -0.0039849 0.0279011 0.8864575 0.2888164 0.3512879 0.0272095 0.9105328 Immunology cd8 t -0.1958162 0.0014652 -0.1986879 -0.1929444 -5.1156379 0.0000004 0.0272162 0.0007310 235
cd8 effector FACS 300 298 7.3494436 0.0562415 0.0414376 0.0371744 7.2093653 0.0645418 0.0806716 0.0502420 0.1400783 0.0640776 0.0292697 -0.0392340 0.0611273 0.5212681 0.3585878 0.5120033 0.0854662 0.6710800 Immunology cd8 t -0.3561690 0.0033784 -0.3627906 -0.3495474 -6.1277278 0.0000000 0.0856752 0.0016807 236
cd8 naive FACS 300 298 10.0540925 0.0716774 0.0182919 0.0523206 9.9016899 0.0828172 0.0549711 0.0683978 0.1524025 0.0880967 0.0842522 -0.0366791 0.0843308 0.6637895 0.5113149 0.7005530 0.0767267 0.5929040 Immunology cd8 t -0.3148958 0.0033784 -0.3215173 -0.3082742 -5.4176404 0.0000001 0.0768778 0.0016807 237
cd8 nkt cells Immunophenotyping 687 686 6.0249622 0.2916676 0.0249798 0.0343304 6.0619909 0.2914318 -0.0059064 0.0339954 -0.0370287 0.0319123 0.2461734 0.0308862 0.0298965 0.3017860 0.3168398 0.3431004 0.0282779 0.9434454 Immunology cd8 nkt -0.0796279 0.0014631 -0.0824954 -0.0767603 -2.0817776 0.0375479 0.0282854 0.0007299 238
cd8 resting FACS 300 298 8.8826975 0.0625542 0.0276100 0.0471208 8.8444276 0.0698202 0.1107339 0.0577272 0.0382699 0.0762553 0.6159813 -0.0831239 0.0729470 0.2550311 0.4644633 0.5884541 0.0881694 0.5863871 Immunology cd8 t -0.2366277 0.0033784 -0.2432493 -0.2300062 -4.0710744 0.0000531 0.0883989 0.0016807 239
cd8 t cells Immunophenotyping 689 688 10.3389092 0.1702640 -0.0123689 0.0206959 10.3517418 0.1701704 -0.0176807 0.0206312 -0.0128326 0.0277525 0.6438924 0.0053118 0.0246210 0.8292291 0.2664379 0.3291365 0.0229523 0.8659405 Immunology cd8 t -0.2113323 0.0014588 -0.2141915 -0.2084731 -5.5331122 0.0000000 0.0229563 0.0007278 240
cd8 t cells total FACS 300 298 10.4662855 0.0426158 0.0228012 0.0314386 10.3136954 0.0565546 0.0739069 0.0496817 0.1525901 0.0599009 0.0111495 -0.0511056 0.0578110 0.3771108 0.3042686 0.5210247 0.1105333 0.5370235 Immunology cd8 t -0.5378979 0.0033784 -0.5445195 -0.5312763 -9.2542928 0.0000000 0.1109868 0.0016807 241
cdc cd11b type FACS 186 180 8.3040000 0.0831624 0.0474707 0.0372063 8.2724483 0.0918030 0.0044393 0.0541508 0.0315517 0.0704500 0.6545685 0.0430314 0.0647859 0.5070511 0.2736622 0.3910511 0.0366946 0.8497994 Immunology cdcs -0.3570364 0.0055571 -0.3679281 -0.3461447 -4.7894809 0.0000024 0.0367111 0.0027548 242
cdc cd8a type FACS 186 180 8.5615593 0.1365981 0.0358264 0.0550459 8.4427076 0.1445240 0.0126751 0.0726609 0.1188517 0.0981574 0.2268868 0.0231513 0.0897576 0.7966313 0.4066400 0.5192869 0.0451303 0.8904096 Immunology cdcs -0.2446209 0.0055571 -0.2555126 -0.2337291 -3.2814773 0.0011325 0.0451610 0.0027548 243
cdcs Immunophenotyping 749 752 8.6981906 0.2495776 0.0019779 0.0212427 8.8725326 0.2496659 -0.0299651 0.0223949 -0.1743420 0.0226132 0.0000000 0.0319430 0.0207186 0.1234013 0.2041053 0.2861119 0.0934454 0.9562889 Immunology cdcs -0.3377444 0.0013378 -0.3403665 -0.3351224 -9.2340648 0.0000000 0.0937188 0.0006676 244
dc total FACS 186 180 9.1767356 0.1062538 0.0395347 0.0421734 9.1005049 0.1140207 0.0053474 0.0593936 0.0762307 0.0783228 0.3311710 0.0341873 0.0717775 0.6342005 0.3101216 0.4265257 0.0381350 0.8854989 Immunology dc total -0.3188007 0.0055571 -0.3296924 -0.3079090 -4.2765663 0.0000243 0.0381535 0.0027548 245
dn cd25- nkt cells Immunophenotyping 607 603 6.3283273 0.5762643 0.0374959 0.0285274 6.1825166 0.5762794 -0.0477058 0.0278680 0.1458107 0.0333572 0.0000137 0.0852018 0.0316993 0.0073183 0.3005611 0.3432163 0.0523718 0.9796501 Immunology dn nkt -0.1327154 0.0016611 -0.1359712 -0.1294596 -3.2562462 0.0011603 0.0524198 0.0008285 246
dn cd25- t cells Immunophenotyping 607 603 8.5860554 0.2870643 0.0153422 0.0242281 8.3638657 0.2872268 -0.0293373 0.0256362 0.2221897 0.0311618 0.0000000 0.0446795 0.0293718 0.1285512 0.2658347 0.3515925 0.1447845 0.9240247 Immunology dn t -0.2796038 0.0016611 -0.2828596 -0.2763480 -6.8602340 0.0000000 0.1458091 0.0008285 247
dn cd25+ nkt cells Immunophenotyping 607 603 2.4169638 0.5301234 -0.0018419 0.0553257 2.3812757 0.5297935 0.0238333 0.0520025 0.0356881 0.0506636 0.4813482 -0.0256751 0.0487802 0.5987726 0.4938287 0.4797155 0.0091589 0.9595471 Immunology dn nkt 0.0289901 0.0016611 0.0257343 0.0322458 0.7112869 0.4770438 0.0091591 0.0008285 248
dn cd25+ t cells Immunophenotyping 607 603 4.6877058 0.5079186 0.0760616 0.0709274 4.6524524 0.5077623 -0.0376220 0.0700610 0.0352534 0.0454670 0.4383192 0.1136836 0.0439639 0.0098625 0.4173996 0.4605239 0.0283588 0.9560776 Immunology dn t -0.0983263 0.0016611 -0.1015820 -0.0950705 -2.4124891 0.0159922 0.0283664 0.0008285 249
dn cd44-cd62l- t cells Immunophenotyping 554 553 6.0191627 0.2982195 0.0264711 0.0320131 5.7178459 0.2980543 0.0034874 0.0331855 0.3013168 0.0361114 0.0000000 0.0229837 0.0334955 0.4927886 0.3154761 0.3797122 0.1539480 0.9258208 Immunology dn t -0.1853322 0.0018165 -0.1888926 -0.1817719 -4.3483997 0.0000150 0.1551818 0.0009058 250
dn cd44-cd62l+ nkt cells Immunophenotyping 681 680 1.9568869 0.4897412 0.0728534 0.0551103 1.5825072 0.4892092 0.0018692 0.0535525 0.3743797 0.0549823 0.0000000 0.0709843 0.0510963 0.1650531 0.5600681 0.5797489 0.1129935 0.9214060 Immunology dn nkt -0.0345378 0.0014760 -0.0374307 -0.0316448 -0.8989771 0.3688241 0.1134781 0.0007364 251
dn cd44-cd62l+ t cells Immunophenotyping 681 680 6.5751970 0.2910096 0.0082418 0.0265226 6.3002473 0.2908746 -0.0641615 0.0266670 0.2749497 0.0317081 0.0000000 0.0724033 0.0282296 0.0104590 0.2974568 0.3660911 0.1766073 0.9311667 Immunology dn t -0.2076144 0.0014760 -0.2105073 -0.2047214 -5.4039575 0.0000001 0.1784786 0.0007364 252
dn cd44+cd62l- nkt cells Immunophenotyping 681 680 6.0880018 0.3051513 0.0249393 0.0314607 5.9016436 0.3049530 -0.0650061 0.0314749 0.1863582 0.0330522 0.0000000 0.0899454 0.0306287 0.0033889 0.3185232 0.3616276 0.1044970 0.9500927 Immunology dn nkt -0.1269208 0.0014760 -0.1298137 -0.1240278 -3.3035981 0.0009794 0.1048799 0.0007364 253
dn cd44+cd62l- t cells Immunophenotyping 681 680 6.9031565 0.5317351 0.0029614 0.0372473 6.6643493 0.5316222 -0.0114059 0.0372451 0.2388072 0.0309176 0.0000000 0.0143673 0.0282197 0.6107693 0.2977301 0.3429390 0.0897792 0.9722009 Immunology dn t -0.1413661 0.0014760 -0.1442590 -0.1384731 -3.6795926 0.0002427 0.0900215 0.0007364 254
dn cd44+cd62l+ nkt cells Immunophenotyping 681 680 5.7236387 0.4082076 0.0276221 0.0300706 5.7050980 0.4079484 -0.0568451 0.0277114 0.0185407 0.0350697 0.5971354 0.0844672 0.0314002 0.0072559 0.3558331 0.3679692 0.0315354 0.9572523 Immunology dn nkt -0.0335384 0.0014760 -0.0364313 -0.0306455 -0.8729652 0.3828363 0.0315459 0.0007364 255
dn nkt cells Immunophenotyping 745 744 6.6980622 0.3070580 0.0272069 0.0256141 6.5799510 0.3069998 -0.0545167 0.0250777 0.1181112 0.0292101 0.0000561 0.0817236 0.0264058 0.0020153 0.2919727 0.3347295 0.0766184 0.9498933 Immunology dn nkt -0.1366635 0.0013486 -0.1393067 -0.1340202 -3.7214133 0.0002055 0.0767689 0.0006729 256
dn t cells Immunophenotyping 687 686 8.6243064 0.2266865 0.0108640 0.0224939 8.4093022 0.2265913 -0.0276595 0.0226847 0.2150042 0.0280081 0.0000000 0.0385235 0.0250181 0.1238951 0.2643614 0.3262321 0.1524724 0.9192083 Immunology dn t -0.2102933 0.0014631 -0.2131608 -0.2074257 -5.4978710 0.0000000 0.1536707 0.0007299 257
follicular b cells Immunophenotyping 381 377 12.1984990 0.2423859 0.0275597 0.0238301 12.1998610 0.2430763 -0.0196964 0.0271545 -0.0013620 0.0352711 0.9692104 0.0472561 0.0302088 0.1182623 0.2117501 0.3635926 0.0304712 0.8899022 Immunology follicular b cells -0.5406415 0.0026596 -0.5458543 -0.5354287 -10.4832788 0.0000000 0.0304806 0.0013245 258
follicular b cells (cd21/35+) Immunophenotyping 452 454 12.0099114 0.3111353 0.0240319 0.0192532 11.9999375 0.3114812 -0.0026699 0.0230403 0.0099740 0.0284895 0.7263708 0.0267019 0.0278887 0.3386646 0.1834554 0.3064409 0.0173003 0.9329343 Immunology follicular b cells -0.5130486 0.0022222 -0.5174041 -0.5086931 -10.8833784 0.0000000 0.0173020 0.0011074 259
gd + b1 FACS 300 298 9.4580996 0.0525061 0.0366873 0.0271245 9.1968753 0.0544667 0.0377088 0.0318268 0.2612243 0.0432050 0.0000000 -0.0010215 0.0406798 0.9799775 0.2613835 0.3139393 0.2018015 0.8369350 Immunology B cells -0.1832224 0.0033784 -0.1898439 -0.1766008 -3.1522588 0.0017015 0.2046098 0.0016807 260
gd t cells Immunophenotyping 74 77 7.0318066 0.1168745 -0.0251115 0.0792596 6.8030576 0.1112502 -0.0924426 0.0692808 0.2287490 0.0706834 0.0015656 0.0673311 0.0674842 0.3204173 0.2442430 0.2287532 0.2989221 0.9046699 Immunology t cells 0.0658058 0.0137990 0.0387603 0.0928514 0.5601964 0.5761867 0.3083355 0.0067568 261
inkt FACS 300 298 8.1179704 0.0596666 0.0493382 0.0281211 7.7050314 0.0608905 0.0010540 0.0317127 0.4129390 0.0438785 0.0000000 0.0482842 0.0411837 0.2415861 0.2713833 0.3101684 0.3108020 0.8794460 Immunology inkt -0.1335945 0.0033784 -0.1402161 -0.1269729 -2.2984335 0.0218824 0.3214329 0.0016807 262
klrg1+ cd4 t cells Immunophenotyping 74 77 6.8514114 0.1297705 0.0903343 0.0878699 6.5840610 0.1245898 0.0103273 0.0783323 0.2673504 0.0806382 0.0012107 0.0800070 0.0767199 0.2991160 0.2684393 0.2740165 0.1714029 0.8927175 Immunology klrg1 -0.0202780 0.0137990 -0.0473236 0.0067676 -0.1726241 0.8631812 0.1731117 0.0067568 263
klrg1+ cd4+ nkt cells Immunophenotyping 74 77 3.9533606 0.2039937 0.1402696 0.1244417 3.6618637 0.1958590 -0.0141709 0.1084641 0.2914969 0.1108512 0.0096673 0.1544405 0.1057474 0.1467750 0.3825910 0.3557319 0.1193669 0.9242639 Immunology klrg1 0.0730749 0.0137990 0.0460293 0.1001204 0.6220769 0.5348420 0.1199387 0.0067568 264
klrg1+ t-regs Immunophenotyping 74 77 4.7559834 0.3074192 0.0015473 0.1311332 4.8039884 0.3017226 -0.0436951 0.1149904 -0.0480051 0.1185223 0.6861766 0.0452424 0.1126633 0.6887134 0.3994343 0.3862354 0.0163867 0.9668366 Immunology klrg1 0.0338878 0.0137990 0.0068423 0.0609334 0.2884826 0.7733783 0.0163882 0.0067568 265
macrophages FACS 299 294 7.2651993 0.1061899 0.0264847 0.0335624 7.0538836 0.1102756 0.0551372 0.0466040 0.2113157 0.0594103 0.0004111 -0.0286525 0.0558198 0.6079660 0.3142346 0.4619202 0.0754934 0.9270329 Immunology macrophages -0.3852814 0.0034074 -0.3919598 -0.3786030 -6.6003399 0.0000000 0.0756374 0.0016949 266
mzb Immunophenotyping 138 140 9.9467794 0.1161933 -0.0769031 0.0999696 10.0211954 0.1078324 0.0244238 0.0878631 -0.0744160 0.0680803 0.2755353 -0.1013268 0.0652476 0.1218386 0.3531930 0.2424779 0.0595274 0.8491211 Immunology mzb 0.3761584 0.0073533 0.3617461 0.3905707 4.3866046 0.0000164 0.0595979 0.0036364 267
mzb (cd21/35 high) Immunophenotyping 450 452 9.7265898 0.6771381 -0.0093722 0.0407788 9.7693740 0.6766408 -0.0297704 0.0341095 -0.0427842 0.0458542 0.3511093 0.0203982 0.0457319 0.6557037 0.4020318 0.3814203 0.0141295 0.9458243 Immunology mzb 0.0526342 0.0022322 0.0482593 0.0570091 1.1140532 0.2655538 0.0141304 0.0011123 268
nk cells (panel a) Immunophenotyping 750 749 9.1881632 0.1918838 -0.0208628 0.0214493 9.2749087 0.1918297 -0.0102567 0.0201877 -0.0867455 0.0256477 0.0007426 -0.0106060 0.0221504 0.6321564 0.2657773 0.3001858 0.0540503 0.8976342 Immunology nk cells -0.1217439 0.0013396 -0.1243694 -0.1191183 -3.3263034 0.0009014 0.0541031 0.0006684 269
nk klrg1+ cells Immunophenotyping 74 77 6.9868405 0.1926440 0.1404393 0.0878846 6.8175771 0.1885756 -0.0674353 0.0771013 0.1692634 0.0794362 0.0351455 0.2078746 0.0755219 0.0068330 0.2678451 0.2591797 0.0919137 0.9616203 Immunology nk cells 0.0331727 0.0137990 0.0061272 0.0602183 0.2823952 0.7780324 0.0921738 0.0067568 270
nk subsets (q1) Immunophenotyping 603 602 6.6534346 0.4013868 0.0655084 0.0654565 6.6691339 0.4014065 0.0103765 0.0658651 -0.0156994 0.0358706 0.6617280 0.0551319 0.0350139 0.1156908 0.3181851 0.3951938 0.0458587 0.9328153 Immunology nk cells -0.2167443 0.0016681 -0.2200136 -0.2134749 -5.3069142 0.0000001 0.0458909 0.0008319 271
nk subsets (q2) Immunophenotyping 603 602 7.4781408 0.3030198 -0.0094310 0.0308295 7.3989999 0.3032331 0.0090820 0.0334179 0.0791410 0.0338513 0.0196009 -0.0185129 0.0324359 0.5683024 0.2663537 0.3914005 0.0373635 0.9481108 Immunology nk cells -0.3849076 0.0016681 -0.3881769 -0.3816383 -9.4243392 0.0000000 0.0373809 0.0008319 272
nk subsets (q3) Immunophenotyping 537 533 7.4835100 0.2535282 0.0260596 0.0291813 7.6807962 0.2540081 -0.0617345 0.0311417 -0.1972862 0.0339803 0.0000000 0.0877941 0.0334834 0.0088966 0.2548861 0.3730494 0.1273392 0.8929828 Immunology nk cells -0.3809013 0.0018797 -0.3845855 -0.3772171 -8.7854747 0.0000000 0.1280343 0.0009372 273
nk subsets (q4) Immunophenotyping 537 533 7.7129429 0.0750042 -0.0443945 0.0315059 7.7715207 0.0772361 -0.0123384 0.0344354 -0.0585778 0.0367825 0.1116319 -0.0320561 0.0361806 0.3758651 0.2745255 0.4101613 0.0474584 0.7048798 Immunology nk cells -0.4015135 0.0018797 -0.4051977 -0.3978293 -9.2608942 0.0000000 0.0474941 0.0009372 274
nk total FACS 300 298 9.6749006 0.0554235 -0.0505064 0.0318475 9.7631747 0.0649091 0.0124765 0.0479880 -0.0882741 0.0590955 0.1358659 -0.0629829 0.0563689 0.2643841 0.3015653 0.4912944 0.0560026 0.7182654 Immunology nkt cells -0.4880684 0.0033784 -0.4946900 -0.4814468 -8.3969987 0.0000000 0.0560613 0.0016807 275
nkt cells (panel a) Immunophenotyping 750 749 8.0398149 0.2415691 0.0194700 0.0317342 7.8865208 0.2414825 -0.0256584 0.0312694 0.1532941 0.0284517 0.0000001 0.0451284 0.0268140 0.0926360 0.2923169 0.3208026 0.0958870 0.9309090 Immunology nkt cells -0.0929884 0.0013396 -0.0956140 -0.0903629 -2.5406435 0.0111651 0.0961825 0.0006684 276
nkt cells (panel b) Immunophenotyping 674 672 7.4255388 0.4658754 0.0165510 0.0349487 7.2323708 0.4658636 -0.0234268 0.0346611 0.1931680 0.0348847 0.0000000 0.0399778 0.0322495 0.2153782 0.3255260 0.3876450 0.0883457 0.9490853 Immunology nkt cells -0.1746497 0.0014925 -0.1775750 -0.1717244 -4.5206903 0.0000067 0.0885766 0.0007446 277
nkt dn klrg1+ cells Immunophenotyping 74 77 4.5910155 0.2030527 0.0761069 0.1174133 4.5048044 0.1997136 0.0171032 0.1090916 0.0862111 0.1145112 0.4530073 0.0590037 0.1081555 0.5863910 0.3506541 0.4222358 0.0316386 0.9155278 Immunology nkt cells -0.1854783 0.0137990 -0.2125238 -0.1584327 -1.5789526 0.1164676 0.0316492 0.0067568 278
nkt effector FACS 300 298 8.3752317 0.0602510 0.0483191 0.0325017 7.9463755 0.0648418 0.0209653 0.0418168 0.4288562 0.0545719 0.0000000 0.0273539 0.0516256 0.5964492 0.3109454 0.4184540 0.3004721 0.8183404 Immunology nkt cells -0.2969610 0.0033784 -0.3035826 -0.2903395 -5.1090819 0.0000004 0.3100385 0.0016807 279
nkt resting FACS 300 298 7.8587327 0.0650750 -0.0134496 0.0335053 7.7137389 0.0660414 0.0014803 0.0365198 0.1449938 0.0513050 0.0048987 -0.0149300 0.0481617 0.7566918 0.3252153 0.3563717 0.1233032 0.8432387 Immunology nkt cells -0.0914983 0.0033784 -0.0981198 -0.0848767 -1.5741865 0.1159750 0.1239339 0.0016807 280
nkt subsets (q1) Immunophenotyping 603 602 6.1449735 0.3541571 -0.0042115 0.0231923 6.0514224 0.3541643 -0.0267432 0.0236231 0.0935511 0.0311362 0.0027299 0.0225317 0.0292432 0.4412010 0.2765632 0.3365313 0.0643094 0.9441414 Immunology nkt cells -0.1962531 0.0016681 -0.1995224 -0.1929838 -4.8051945 0.0000017 0.0643983 0.0008319 281
nkt subsets (q3) Immunophenotyping 537 533 5.8261556 0.4844815 -0.0075241 0.0693822 5.5799756 0.4847556 -0.0499663 0.0693021 0.2461800 0.0446519 0.0000000 0.0424423 0.0441181 0.3363147 0.3572612 0.4588490 0.1306087 0.9325895 Immunology nkt cells -0.2502611 0.0018797 -0.2539453 -0.2465769 -5.7722626 0.0000000 0.1313591 0.0009372 282
nkt total FACS 300 298 8.8775082 0.0589283 0.0262054 0.0282746 8.5642772 0.0609087 0.0018793 0.0333673 0.3132310 0.0452183 0.0000000 0.0243261 0.0425298 0.5675925 0.2717274 0.3286266 0.2481409 0.8634428 Immunology nkt cells -0.1901341 0.0033784 -0.1967556 -0.1835125 -3.2711714 0.0011329 0.2534307 0.0016807 283
number of live cells acquired panel 1 FACS 308 305 12.4539861 0.0615267 -0.0344933 0.0536521 12.3906205 0.0674572 0.0688374 0.0613773 0.0633655 0.0829258 0.4451415 -0.1033307 0.0802228 0.1983047 0.5621636 0.6485364 0.0581656 0.4338133 Immunology number of live cells acquired panel 1 -0.1429415 0.0032950 -0.1493995 -0.1364835 -2.4901892 0.0130321 0.0582313 0.0016393 284
number of live cells acquired panel 2 FACS 308 304 12.6111317 0.0719857 -0.0100956 0.0525575 12.4716101 0.0856598 0.0619780 0.0719428 0.1395216 0.0912310 0.1267964 -0.0720735 0.0873231 0.4095443 0.5269835 0.7513915 0.0707193 0.5975416 Immunology number of live cells acquired panel 2 -0.3547793 0.0033005 -0.3612481 -0.3483105 -6.1754716 0.0000000 0.0708376 0.0016420 285
others Immunophenotyping 750 749 12.2430990 0.1633566 0.0064537 0.0190211 12.2836983 0.1634433 -0.0087319 0.0197813 -0.0405993 0.0234579 0.0837601 0.0151856 0.0211125 0.4721179 0.2256913 0.2957858 0.0371311 0.8699172 Immunology others -0.2704683 0.0013396 -0.2730938 -0.2678427 -7.3897731 0.0000000 0.0371482 0.0006684 286
percentage of live gated events in panel a Immunophenotyping 726 726 4.2100029 0.1640848 0.0017119 0.0182976 4.2500287 0.1640755 0.0040294 0.0182402 -0.0400259 0.0049824 0.0000000 -0.0023175 0.0047986 0.6292266 0.0526214 0.0518753 0.0561220 0.9911341 Immunology percentage of live gated events 0.0142797 0.0013831 0.0115688 0.0169905 0.3839611 0.7010636 0.0561810 0.0006901 287
percentage of live gated events in panel b Immunophenotyping 726 731 4.2031465 0.1513490 0.0013800 0.0160709 4.2379474 0.1513392 0.0044118 0.0160047 -0.0348010 0.0050680 0.0000000 -0.0030318 0.0048574 0.5326397 0.0539020 0.0535132 0.0533061 0.9891591 Immunology percentage of live gated events 0.0072449 0.0013784 0.0045433 0.0099464 0.1951402 0.8453104 0.0533567 0.0006878 288
rp macrophage (f4/80+) Immunophenotyping 233 231 8.6275443 0.0823357 0.0186464 0.0373540 8.6706959 0.0799098 0.0462321 0.0271743 -0.0431516 0.0428983 0.3151070 -0.0275857 0.0344596 0.4239122 0.2767995 0.2064540 0.0841023 0.9230459 Immunology rp macrophage (f4/80+) 0.2931968 0.0043669 0.2846378 0.3017558 4.4368303 0.0000114 0.0843014 0.0021692 289
t cells (panel a) Immunophenotyping 689 688 11.3230087 0.1606356 -0.0179235 0.0194309 11.3244194 0.1605746 -0.0152245 0.0194158 -0.0014107 0.0267916 0.9580183 -0.0026990 0.0236179 0.9090379 0.2549471 0.3217076 0.0290239 0.8599529 Immunology t cells -0.2325882 0.0014588 -0.2354474 -0.2297290 -6.0896348 0.0000000 0.0290321 0.0007278 290
t cells (panel b) Immunophenotyping 746 748 11.2855856 0.0982081 -0.0386792 0.0194053 11.2900815 0.0982687 -0.0211818 0.0192255 -0.0044959 0.0258722 0.8620733 -0.0174975 0.0222309 0.4313946 0.2534872 0.3152274 0.0561206 0.8611976 Immunology t cells -0.2179792 0.0013441 -0.2206136 -0.2153449 -5.9456749 0.0000000 0.0561796 0.0006707 291
t subset Immunophenotyping 603 603 10.2268951 0.1368441 -0.0233470 0.0200359 10.3568850 0.1375538 -0.0083339 0.0247828 -0.1299899 0.0287922 0.0000071 -0.0150131 0.0272451 0.5817374 0.2064392 0.3604913 0.0808821 0.8928278 Immunology t cells -0.5574621 0.0016667 -0.5607287 -0.5541955 -13.6549775 0.0000000 0.0810592 0.0008313 292
t/nkt/b1 FACS 300 298 11.5313263 0.0403729 0.0352608 0.0281767 11.3618193 0.0472192 0.0561460 0.0383110 0.1695070 0.0486792 0.0005407 -0.0208851 0.0465630 0.6539595 0.2731480 0.3925544 0.1386576 0.6353287 Immunology nkt cells -0.3626727 0.0033784 -0.3692943 -0.3560511 -6.2396211 0.0000000 0.1395566 0.0016807 293
total cell count in spleen FACS 296 289 18.6706416 0.0264905 0.0798543 0.0205304 18.4575254 0.0247584 0.0781255 0.0187010 0.2131162 0.0286825 0.0000000 0.0017287 0.0271529 0.9492617 0.2117467 0.1829534 0.2675409 0.6454046 Immunology total cell count in spleen 0.1461176 0.0034547 0.1393464 0.1528887 2.4859651 0.0131991 0.2742132 0.0017182 294
total number of acquired events in panel a Immunophenotyping 748 748 12.9855244 0.2043769 -0.0024225 0.0247115 12.9736621 0.2046815 -0.0235675 0.0274493 0.0118623 0.0267656 0.6577068 0.0211450 0.0248002 0.3940458 0.2295319 0.3654752 0.0290169 0.8805795 Immunology number events -0.4651566 0.0013423 -0.4677874 -0.4625258 -12.6963036 0.0000000 0.0290251 0.0006698 295
transitional b cells Immunophenotyping 138 140 9.5197138 0.1216018 0.0504471 0.1042537 9.8154818 0.1130127 -0.0412511 0.0917276 -0.2957679 0.0712852 0.0000473 0.0916982 0.0682536 0.1804660 0.3680383 0.2559489 0.2601302 0.8491765 Immunology B cells 0.3632633 0.0073533 0.3488510 0.3776756 4.2362271 0.0000310 0.2662480 0.0036364 296
transitional b cells (cd21/35 low) Immunophenotyping 452 454 9.4770438 0.4676355 0.0453178 0.0350580 9.5221362 0.4679141 -0.0035261 0.0345771 -0.0450924 0.0369937 0.2232732 0.0488439 0.0365622 0.1819997 0.2703613 0.3576273 0.0385475 0.9592461 Immunology B cells -0.2797274 0.0022222 -0.2840829 -0.2753719 -5.9338994 0.0000000 0.0385666 0.0011074 297
tregs FACS 300 298 8.5220250 0.0443123 0.0681287 0.0277122 8.3385765 0.0481212 0.0582085 0.0345139 0.1834485 0.0455229 0.0000644 0.0099201 0.0431855 0.8184108 0.2679443 0.3465087 0.1358444 0.7275501 Immunology tregs -0.2571403 0.0033784 -0.2637619 -0.2505188 -4.4239845 0.0000115 0.1366894 0.0016807 298
tregs effector FACS 300 298 7.7357657 0.0464936 0.0845892 0.0298556 7.5306254 0.0562437 0.0720079 0.0447716 0.2051404 0.0550929 0.0002186 0.0125813 0.0527284 0.8115086 0.2850892 0.4611739 0.1372418 0.6562695 Immunology tregs -0.4809846 0.0033784 -0.4876062 -0.4743630 -8.2751244 0.0000000 0.1381133 0.0016807 299
tregs resting FACS 300 298 7.8654337 0.0555481 0.0657956 0.0366888 7.6770021 0.0611668 0.0689423 0.0460549 0.1884316 0.0604706 0.0019372 -0.0031467 0.0575043 0.9563824 0.3559238 0.4647010 0.1102073 0.6881667 Immunology tregs -0.2666888 0.0033784 -0.2733104 -0.2600673 -4.5882622 0.0000055 0.1106568 0.0016807 300
area under glucose response curve Intraperitoneal glucose tolerance test (IPGTT) 11466 11410 9.2629740 0.0502520 0.0368471 0.0228014 9.6353903 0.0502450 0.0708959 0.0227567 -0.3724162 0.0070775 0.0000000 -0.0340489 0.0066353 0.0000003 0.3247884 0.3024580 0.4987662 0.7264594 Metabolism area under glucose response curve 0.0712311 0.0000875 0.0710597 0.0714025 7.6170409 0.0000000 0.5476624 0.0000437 301
fasted blood glucose concentration Intraperitoneal glucose tolerance test (IPGTT) 11523 11489 4.5134481 0.0489552 0.0125459 0.0079548 4.5464956 0.0489607 0.0425179 0.0079812 -0.0330475 0.0031965 0.0000000 -0.0299720 0.0029532 0.0000000 0.1352472 0.1389464 0.1660960 0.8431129 Metabolism fasted blood glucose concentration -0.0269848 0.0000869 -0.0271552 -0.0268144 -2.8941705 0.0038052 0.1676492 0.0000435 302
glucose Clinical Chemistry 9104 9141 5.1694231 0.1485846 -0.0074694 0.0128310 5.2205912 0.1485653 0.0151447 0.0129702 -0.0511681 0.0042852 0.0000000 -0.0226141 0.0039675 0.0000000 0.1690984 0.1621887 0.0420345 0.9717748 Metabolism glucose 0.0417210 0.0001097 0.0415061 0.0419359 3.9841833 0.0000680 0.0420593 0.0000548 303
initial response to glucose challenge Intraperitoneal glucose tolerance test (IPGTT) 11503 11460 5.3980778 0.0269270 -0.0172614 0.0126205 5.5518514 0.0269532 -0.0244373 0.0126485 -0.1537736 0.0055607 0.0000000 0.0071759 0.0052109 0.1685027 0.2467478 0.2487965 0.2160437 0.5475239 Metabolism initial response to glucose challenge -0.0082683 0.0000871 -0.0084391 -0.0080976 -0.8858509 0.3757071 0.2195023 0.0000436 304
insulin Insulin Blood Level 1186 1206 6.5862230 0.2251236 0.2500342 0.0412360 6.7770431 0.2245668 0.4210472 0.0377419 -0.1908201 0.0412082 0.0000039 -0.1710130 0.0395800 0.0000163 0.7108825 0.6062049 0.4226372 0.7388924 Metabolism insulin 0.1592961 0.0008383 0.1576531 0.1609391 5.5018668 0.0000000 0.4508983 0.0004186 305
respiratory exchange ratio Indirect Calorimetry 2859 6426 -0.1015081 0.0092962 -0.0118279 0.0020214 -0.0860823 0.0091519 -0.0090039 0.0016030 -0.0154258 0.0018833 0.0000000 -0.0028240 0.0016027 0.0781118 0.0353752 0.0336322 0.1181863 0.7969724 Metabolism respiratory exchange ratio 0.0506218 0.0002529 0.0501261 0.0511175 3.1830989 0.0014619 0.1187412 0.0001077 306
total food intake Indirect Calorimetry 2489 3941 1.2202326 0.1202135 -0.0102818 0.0159969 1.2380037 0.1197303 -0.0055305 0.0132616 -0.0177712 0.0138668 0.2000489 -0.0047512 0.0132190 0.7192923 0.2565224 0.2644627 0.0104981 0.8738865 Metabolism total food intake -0.0304102 0.0003281 -0.0310533 -0.0297672 -1.6788817 0.0932237 0.0104985 0.0001556 307
total water intake Indirect Calorimetry 1083 2502 1.8704910 0.4928407 0.0209250 0.0196772 1.7900943 0.4925616 0.0006942 0.0142939 0.0803967 0.0182505 0.0000109 0.0202308 0.0148745 0.1738965 0.2298251 0.1342473 0.0173803 0.9934336 Metabolism total water intake 0.5378982 0.0006630 0.5365986 0.5391977 20.8895573 0.0000000 0.0173820 0.0002792 308
body length Body Composition (DEXA lean/fat) 8439 8475 2.2674687 0.0135819 0.0290265 0.0021409 2.2589450 0.0135793 0.0284485 0.0021478 0.0085238 0.0006060 0.0000000 0.0005780 0.0005507 0.2939573 0.0222031 0.0227660 0.3682457 0.9481084 Morphology body length -0.0250340 0.0001183 -0.0252658 -0.0248022 -2.3017624 0.0213607 0.3863921 0.0000591 309
bone area Body Composition (DEXA lean/fat) 10900 10938 2.1633065 0.0323593 0.0824692 0.0153567 2.1231266 0.0323512 0.0847535 0.0153760 0.0401799 0.0019040 0.0000000 -0.0022843 0.0017554 0.1931831 0.0797376 0.0828493 0.4266618 0.8731530 Morphology bone area -0.0382811 0.0000916 -0.0384607 -0.0381016 -3.9995955 0.0000637 0.4558085 0.0000458 310
bone mineral content (excluding skull) Body Composition (DEXA lean/fat) 10900 10938 -0.7593848 0.0596445 0.1194575 0.0216326 -0.8383747 0.0596386 0.1272177 0.0216513 0.0789898 0.0021576 0.0000000 -0.0077602 0.0020035 0.0001077 0.0904720 0.0965475 0.4169303 0.9205882 Morphology bone mineral content (excluding skull) -0.0649941 0.0000916 -0.0651736 -0.0648145 -6.7905511 0.0000000 0.4439706 0.0000458 311
bone mineral density (excluding skull) Body Composition (DEXA lean/fat) 10901 10938 -2.9338356 0.0680930 0.0375074 0.0062762 -2.9731911 0.0680924 0.0413518 0.0062966 0.0393555 0.0011374 0.0000000 -0.0038444 0.0010398 0.0002184 0.0438206 0.0513934 0.1408504 0.9737452 Morphology bone mineral density (excluding skull) -0.1594052 0.0000916 -0.1595847 -0.1592257 -16.6549597 0.0000000 0.1417931 0.0000458 312
fat mass Body Composition (DEXA lean/fat) 11011 11011 1.5042419 0.1058972 0.3828757 0.0295880 1.3935671 0.1059060 0.3110447 0.0296770 0.1106748 0.0045340 0.0000000 0.0718309 0.0041513 0.0000000 0.1713127 0.2134857 0.5803954 0.9325691 Morphology fat mass -0.2200790 0.0000908 -0.2202570 -0.2199009 -23.0904672 0.0000000 0.6630588 0.0000454 313
fat/body weight Body Composition (DEXA lean/fat) 11000 11008 -1.7488656 0.1059845 0.2362343 0.0295102 -1.8603934 0.1059931 0.1641502 0.0295995 0.1115278 0.0045361 0.0000000 0.0720841 0.0041538 0.0000000 0.1713013 0.2136235 0.3560662 0.9107433 Morphology fat mass -0.2207914 0.0000909 -0.2209696 -0.2206132 -23.1578486 0.0000000 0.3723737 0.0000454 314
lean mass Body Composition (DEXA lean/fat) 11012 11012 2.8897429 0.0219196 0.1069080 0.0030912 2.9274280 0.0219208 0.1173986 0.0031454 -0.0376852 0.0011904 0.0000000 -0.0104906 0.0010839 0.0000000 0.0426002 0.0569964 0.7141805 0.9591301 Morphology lean mass -0.2911300 0.0000908 -0.2913081 -0.2909520 -30.5464639 0.0000000 0.8956650 0.0000454 315
lean/body weight Body Composition (DEXA lean/fat) 11001 11009 -0.3775910 0.0268470 -0.0396128 0.0032375 -0.3407288 0.0268445 -0.0293422 0.0032904 -0.0368622 0.0011876 0.0000000 -0.0102706 0.0010821 0.0000000 0.0424420 0.0569992 0.2022049 0.9153021 Morphology lean mass -0.2948969 0.0000909 -0.2950751 -0.2947188 -30.9318607 0.0000000 0.2050304 0.0000454 316
left kidney Organ Weight 1066 1118 -1.8859884 0.0058648 0.0893003 0.0049537 -1.7669034 0.0053179 0.0976054 0.0045551 -0.1190850 0.0068119 0.0000000 -0.0083051 0.0065775 0.2068567 0.0992489 0.0869714 0.8225738 0.8478376 Morphology kidney weight 0.1320729 0.0009188 0.1302721 0.1338737 4.3571629 0.0000138 1.1647252 0.0004585 317
number of caudal vertebrae X-ray 2789 2739 3.2366936 0.0406679 0.0010135 0.0007591 3.2341859 0.0406661 0.0013921 0.0007902 0.0025077 0.0008163 0.0021364 -0.0003786 0.0007802 0.6275338 0.0192581 0.0177858 0.0097459 0.9802188 Morphology number of caudal vertebrae 0.0795265 0.0003622 0.0788166 0.0802364 4.1785669 0.0000298 0.0097462 0.0001810 318
number of center entries Open Field 6567 6540 4.5084002 0.2353913 -0.0044965 0.0217276 4.4841652 0.2353619 0.0053132 0.0214710 0.0242350 0.0114552 0.0343976 -0.0098097 0.0106416 0.3566380 0.3440418 0.3306239 0.0152250 0.9171448 Morphology number of center entries 0.0397812 0.0001527 0.0394820 0.0400804 3.2196878 0.0012864 0.0152261 0.0000763 319
number of digits X-ray 5769 5715 2.9958364 0.0000690 -0.0000051 0.0000489 2.9957977 0.0000636 -0.0000050 0.0000453 0.0000387 0.0000519 0.4566154 -0.0000001 0.0000515 0.9984993 0.0020481 0.0017195 0.0138123 0.0913693 Morphology number of digits 0.1748482 0.0001743 0.1745067 0.1751897 13.2456884 0.0000000 0.0138132 0.0000871 320
number of lumbar vertebrae X-ray 4714 4664 1.7916792 0.0002160 0.0000293 0.0001731 1.7911860 0.0002990 -0.0001462 0.0002866 0.0004933 0.0003069 0.1080369 0.0001755 0.0003017 0.5606985 0.0070207 0.0135018 0.0262256 0.0597709 Morphology number of lumbar vertebrae -0.6539620 0.0002134 -0.6543803 -0.6535437 -44.7659149 0.0000000 0.0262316 0.0001067 321
number of rears - total Open Field 5470 5426 4.7813669 0.1092349 0.0644057 0.0202613 4.8196521 0.1092745 0.0795043 0.0182460 -0.0382852 0.0156597 0.0145104 -0.0150986 0.0142105 0.2880383 0.4849618 0.4482444 0.1393226 0.6652238 Morphology number of rears - total 0.0787307 0.0001837 0.0783708 0.0790907 5.8095133 0.0000000 0.1402347 0.0000918 322
number of ribs left X-ray 5854 5791 2.5650721 0.0000950 0.0000809 0.0000714 2.5648603 0.0000905 0.0000586 0.0000696 0.0002118 0.0000991 0.0326492 0.0000223 0.0000962 0.8164591 0.0035548 0.0036056 0.0205375 0.2218439 Morphology number of ribs -0.0141705 0.0001718 -0.0145073 -0.0138337 -1.0809913 0.2797234 0.0205403 0.0000859 323
number of ribs right X-ray 5854 5791 2.5648736 0.0000708 -0.0000575 0.0000587 2.5648957 0.0000765 -0.0000435 0.0000668 -0.0000221 0.0000862 0.7976561 -0.0000140 0.0000834 0.8665871 0.0028114 0.0033565 0.0118363 0.2465830 Morphology number of ribs -0.1772021 0.0001718 -0.1775389 -0.1768653 -13.5177774 0.0000000 0.0118369 0.0000859 324
number of signals Electrocardiogram (ECG) 6006 5936 3.1516321 0.2422932 0.0007387 0.0080461 3.1517773 0.2423164 0.0093961 0.0073829 -0.0001452 0.0096245 0.9879654 -0.0086574 0.0084633 0.3063637 0.3003117 0.3027687 0.0083034 0.8873002 Morphology number of signals -0.0081491 0.0001676 -0.0084776 -0.0078207 -0.6295330 0.5290122 0.0083036 0.0000838 325
number of thoracic vertebrae X-ray 4714 4664 2.5649681 0.0000217 0.0000045 0.0000221 2.5649714 0.0000216 -0.0000090 0.0000212 -0.0000033 0.0000306 0.9143255 0.0000135 0.0000306 0.6598251 0.0010793 0.0010851 0.0048632 0.0049705 Morphology number of thoracic vertebrae -0.0053150 0.0002134 -0.0057333 -0.0048968 -0.3638329 0.7159910 0.0048633 0.0001067 326
right kidney Organ Weight 1067 1120 -1.8320682 0.0057359 0.0913512 0.0050004 -1.7210810 0.0052410 0.1015180 0.0046849 -0.1109872 0.0069268 0.0000000 -0.0101668 0.0067107 0.1299263 0.1003178 0.0903670 0.8199338 0.8391281 Morphology kidney weight 0.1044864 0.0009176 0.1026880 0.1062848 3.4494056 0.0005725 1.1566154 0.0004579 327
spleen weight Immunophenotyping 3267 3274 -1.7720012 0.6393158 0.0971945 0.0151605 -2.0341133 0.6393337 0.1209100 0.0161184 0.2621121 0.0076098 0.0000000 -0.0237155 0.0074233 0.0014076 0.1253791 0.2327126 0.0441473 0.9954062 Morphology spleen weight -0.6184620 0.0003060 -0.6190618 -0.6178621 -35.3525336 0.0000000 0.0441760 0.0001530 328
tibia length X-ray 5527 5485 2.9019939 0.0062543 0.0148203 0.0008767 2.8935691 0.0062531 0.0099889 0.0008683 0.0084248 0.0005920 0.0000000 0.0048314 0.0005592 0.0000000 0.0166677 0.0168473 0.2488198 0.9040186 Morphology tibia length -0.0107208 0.0001817 -0.0110769 -0.0103646 -0.7952849 0.4264650 0.2541543 0.0000908 329
alanine aminotransferase Clinical Chemistry 8396 8423 3.4874107 0.0747084 -0.0304715 0.0170334 3.6409471 0.0746065 -0.0046435 0.0174551 -0.1535364 0.0094940 0.0000000 -0.0258281 0.0087038 0.0030075 0.3524561 0.3690391 0.1296504 0.7128524 Physiology alanine aminotransferase -0.0459765 0.0001190 -0.0462097 -0.0457434 -4.2154432 0.0000251 0.1303843 0.0000595 330
albumin Clinical Chemistry 8422 8460 3.4315732 0.0259716 0.0086694 0.0040263 3.3593105 0.0259692 0.0014579 0.0041060 0.0722627 0.0013490 0.0000000 0.0072115 0.0012318 0.0000000 0.0432126 0.0571820 0.2613473 0.9186962 Physiology albumin -0.2801068 0.0001185 -0.2803390 -0.2798745 -25.7301459 0.0000000 0.2675540 0.0000592 331
albumin to creatinine ratio Urinalysis 363 362 2.4548142 0.0570822 -0.1252606 0.0460314 2.9504468 0.0523461 -0.0229111 0.0439907 -0.4956327 0.0454436 0.0000000 -0.1023495 0.0433387 0.0184796 0.3935686 0.3020302 0.4375430 0.6563707 Physiology albumin to creatinine ratio 0.2647243 0.0027816 0.2592724 0.2701762 5.0192965 0.0000007 0.4691880 0.0013850 332
alkaline phosphatase Clinical Chemistry 8343 8388 4.9687362 0.1355736 -0.0664509 0.0077797 4.6129991 0.1355679 -0.0556250 0.0079168 0.3557371 0.0031327 0.0000000 -0.0108259 0.0028562 0.0001511 0.1107696 0.1217699 0.3705617 0.9813576 Physiology alkaline phosphatase -0.0946799 0.0001196 -0.0949142 -0.0944455 -8.6581291 0.0000000 0.3890741 0.0000598 333
alpha-amylase Clinical Chemistry 5517 5586 6.4036853 0.0724331 0.0521590 0.0063120 6.5320656 0.0724323 0.0666765 0.0064111 -0.1283803 0.0034354 0.0000000 -0.0145175 0.0033097 0.0000116 0.1037533 0.1051884 0.4794181 0.9019706 Physiology alpha-amylase -0.0137355 0.0001802 -0.0140888 -0.0133823 -1.0231144 0.3062761 0.5222284 0.0000901 334
aspartate aminotransferase Clinical Chemistry 8332 8368 4.2556704 0.1141884 -0.0861944 0.0218818 4.2636478 0.1141233 -0.0420546 0.0221186 -0.0079774 0.0086580 0.3568620 -0.0441398 0.0079198 0.0000000 0.3213276 0.3236880 0.1021412 0.8502306 Physiology aspartate aminotransferase -0.0073188 0.0001198 -0.0075536 -0.0070839 -0.6686537 0.5037257 0.1024986 0.0000599 335
body temp Echo 1057 491 3.6077807 0.0016312 0.0010904 0.0012145 3.6077533 0.0020157 -0.0002666 0.0013383 0.0000273 0.0019402 0.9887565 0.0013570 0.0015386 0.3779587 0.0212314 0.0164000 0.0328890 0.4809629 Physiology body temp 0.2576496 0.0014990 0.2547117 0.2605876 6.6547621 0.0000000 0.0329009 0.0006472 336
calcium Clinical Chemistry 8366 8425 2.2056032 0.0184403 0.0074432 0.0035003 2.2028542 0.0184374 0.0068829 0.0035127 0.0027490 0.0007217 0.0001400 0.0005603 0.0006516 0.3898838 0.0259170 0.0262927 0.0589771 0.9694585 Physiology calcium -0.0143900 0.0001192 -0.0146236 -0.0141565 -1.3182714 0.1874308 0.0590456 0.0000596 337
chloride Clinical Chemistry 6176 6149 4.6981018 0.0112407 0.0017731 0.0030901 4.6902264 0.0112397 0.0005723 0.0030961 0.0078754 0.0004391 0.0000000 0.0012008 0.0004137 0.0037118 0.0142676 0.0133934 0.0589853 0.9670659 Physiology chloride 0.0632276 0.0001624 0.0629094 0.0635458 4.9622464 0.0000007 0.0590538 0.0000812 338
creatine kinase Clinical Chemistry 4339 4390 5.2852262 0.2662480 -0.0660269 0.0601441 5.2439815 0.2662488 -0.0992179 0.0610648 0.0412447 0.0264201 0.1185384 0.0331911 0.0255856 0.1945820 0.7026097 0.6870068 0.0965535 0.7299028 Physiology creatine kinase 0.0224587 0.0002293 0.0220093 0.0229081 1.4831856 0.1380612 0.0968552 0.0001146 339
creatinine Clinical Chemistry 7564 7667 -1.2054495 0.4960204 -0.0018385 0.0076667 -1.3208381 0.4960129 -0.0187812 0.0080595 0.1153886 0.0048768 0.0000000 0.0169427 0.0044951 0.0001645 0.1689517 0.1685035 0.0341133 0.9961069 Physiology creatinine 0.0026573 0.0001314 0.0023998 0.0029147 0.2318404 0.8166651 0.0341265 0.0000657 340
free fatty acids Clinical Chemistry 3135 3249 -0.1305858 0.3651900 0.0637712 0.0175310 -0.1803098 0.3650933 0.0707192 0.0186169 0.0497240 0.0107872 0.0000041 -0.0069480 0.0098092 0.4787779 0.2730127 0.2555672 0.0692082 0.9467246 Physiology free fatty acids 0.0660387 0.0003137 0.0654239 0.0666535 3.7286913 0.0001941 0.0693190 0.0001567 341
fructosamine Clinical Chemistry 4390 4468 5.4174268 0.0770499 0.0054853 0.0099175 5.3673952 0.0770482 0.0099498 0.0099436 0.0500316 0.0019494 0.0000000 -0.0044645 0.0018774 0.0174293 0.0504986 0.0536649 0.1248456 0.9451030 Physiology fructosamine -0.0608108 0.0002260 -0.0612536 -0.0603679 -4.0454727 0.0000527 0.1255004 0.0001129 342
glycerol Clinical Chemistry 1977 2014 -2.0714219 0.0439023 0.0523846 0.0242027 -2.1483852 0.0441933 0.1215904 0.0247769 0.0769633 0.0106424 0.0000000 -0.0692058 0.0108494 0.0000000 0.1962345 0.2167725 0.2447197 0.5892212 Physiology glycerol -0.0995334 0.0005019 -0.1005172 -0.0985497 -4.4427247 0.0000091 0.2497883 0.0002508 343
glycosilated hemoglobin a1c (hba1c) Clinical Chemistry 362 362 1.3851574 0.0163787 0.0115224 0.0034473 1.4190149 0.0163582 0.0158937 0.0032525 -0.0338575 0.0043985 0.0000000 -0.0043713 0.0040774 0.2840813 0.0291122 0.0301586 0.5355267 0.8402156 Physiology hemoglobin -0.0353112 0.0027855 -0.0407707 -0.0298517 -0.6690521 0.5036761 0.5978624 0.0013870 344
hdl cholesterol Plasma Chemistry 483 470 4.0927576 0.0901694 0.0541639 0.0206114 4.3339220 0.0899763 0.0563073 0.0190307 -0.2411644 0.0139172 0.0000000 -0.0021434 0.0126617 0.8656167 0.1368063 0.1113546 0.5953681 0.8933132 Physiology hdl-cholesterol 0.2058175 0.0021123 0.2016774 0.2099576 4.4781778 0.0000084 0.6859409 0.0010526 345
hdl-cholesterol Clinical Chemistry 8305 8353 4.0492511 0.0328432 0.0739518 0.0067656 4.1932566 0.0327973 0.0617097 0.0068286 -0.1440055 0.0036489 0.0000000 0.0122422 0.0033481 0.0002566 0.1411759 0.1338616 0.5380177 0.8165442 Physiology hdl-cholesterol 0.0532007 0.0001201 0.0529653 0.0534361 4.8543823 0.0000012 0.6013616 0.0000600 346
iron Clinical Chemistry 6746 6815 -2.0224213 0.0582280 0.0375757 0.0093828 -2.2076104 0.0582039 0.0152778 0.0093246 0.1851891 0.0040012 0.0000000 0.0222979 0.0037856 0.0000000 0.1474967 0.1234585 0.3318302 0.8084656 Physiology iron 0.1779013 0.0001476 0.1776121 0.1781904 14.6456329 0.0000000 0.3448835 0.0000738 347
lactate dehydrogenase Clinical Chemistry 540 542 5.5411952 0.1244656 -0.0525081 0.0361943 5.6908611 0.1247023 -0.0302598 0.0363625 -0.1496659 0.0400743 0.0001989 -0.0222484 0.0377248 0.5554927 0.3284270 0.3524362 0.1034099 0.6914074 Physiology lactate dehydrogenase -0.0705516 0.0018587 -0.0741947 -0.0669086 -1.6364301 0.1020409 0.1037809 0.0009268 348
ldl-cholesterol Clinical Chemistry 2576 2619 2.0427552 0.2396326 -0.1109281 0.0817547 1.9354255 0.2396306 0.0118165 0.0818784 0.1073297 0.0080671 0.0000000 -0.1227446 0.0079639 0.0000000 0.1647633 0.1753414 0.1707536 0.9621836 Physiology ldl-cholesterol -0.0622219 0.0003855 -0.0629773 -0.0614664 -3.1692381 0.0015373 0.1724428 0.0001926 349
lipase Clinical Chemistry 1182 1199 4.0607117 0.0178796 0.0005371 0.0181520 4.0359400 0.0165985 -0.0271932 0.0163806 0.0247717 0.0150048 0.0989019 0.0277303 0.0150430 0.0654086 0.2401279 0.2152304 0.1052347 0.3965395 Physiology lipase 0.1094690 0.0008421 0.1078184 0.1111196 3.7722179 0.0001658 0.1056257 0.0004205 350
magnesium Clinical Chemistry 2380 2372 1.9765405 0.5520735 0.0160806 0.0128914 1.9028063 0.5520692 0.0043209 0.0130741 0.0737342 0.0029481 0.0000000 0.0117597 0.0028177 0.0000306 0.0625734 0.0605627 0.0279914 0.9984934 Physiology magnesium 0.0326604 0.0004214 0.0318344 0.0334863 1.5909982 0.1116765 0.0279987 0.0002106 351
microalbumin (calculated) Urinalysis 358 356 -0.3350678 0.0992541 -0.1893237 0.0550981 0.2658125 0.0950855 -0.0832326 0.0520871 -0.6008803 0.0521981 0.0000000 -0.1060910 0.0491814 0.0313542 0.4512230 0.3360728 0.4157666 0.6664001 Physiology microalbumin (calculated) 0.2946259 0.0028249 0.2890893 0.3001626 5.5433318 0.0000000 0.4425629 0.0014065 352
phosphorus Clinical Chemistry 8332 8421 1.8823755 0.0469773 -0.0052985 0.0079849 1.8334718 0.0469317 0.0172573 0.0080952 0.0489038 0.0042609 0.0000000 -0.0225558 0.0038832 0.0000000 0.1621762 0.1550744 0.0822299 0.8166521 Physiology phosphorus 0.0447790 0.0001194 0.0445449 0.0450131 4.0975275 0.0000420 0.0824160 0.0000597 353
potassium Clinical Chemistry 6153 6110 1.5300513 0.0672164 -0.0282192 0.0110674 1.6124227 0.0672089 -0.0139817 0.0111060 -0.0823715 0.0028232 0.0000000 -0.0142375 0.0026698 0.0000001 0.0958638 0.0851860 0.1379238 0.9132281 Physiology potassium 0.1180912 0.0001632 0.1177714 0.1184110 9.2446810 0.0000000 0.1388085 0.0000816 354
sodium Clinical Chemistry 6174 6141 4.9850002 0.0084283 0.0027132 0.0021211 4.9949166 0.0084275 0.0022571 0.0021268 -0.0099164 0.0003624 0.0000000 0.0004562 0.0003415 0.1816804 0.0118313 0.0109774 0.1403481 0.9735266 Physiology sodium 0.0749122 0.0001625 0.0745937 0.0752307 5.8768871 0.0000000 0.1412807 0.0000812 355
thyroxine Clinical Chemistry 1451 1465 1.4885512 0.0147412 -0.0014116 0.0134483 1.3749037 0.0145962 0.0261282 0.0135829 0.1136475 0.0094286 0.0000000 -0.0275397 0.0094684 0.0036606 0.1674618 0.1409476 0.2583731 0.5721188 Physiology thyroxine 0.1723702 0.0006873 0.1710231 0.1737173 6.5748938 0.0000000 0.2643643 0.0003433 356
total bilirubin Clinical Chemistry 8250 8216 -2.7999936 0.2912573 -0.0149502 0.0413627 -2.8379057 0.2912309 0.0115109 0.0416602 0.0379120 0.0112689 0.0007693 -0.0264611 0.0103835 0.0108325 0.4131978 0.4264122 0.0180796 0.9420033 Physiology total bilirubin -0.0314804 0.0001215 -0.0317185 -0.0312422 -2.8558716 0.0042973 0.0180815 0.0000607 357
total cholesterol Clinical Chemistry 8895 8888 4.5137849 0.0293405 0.0749688 0.0070564 4.6025157 0.0292923 0.0790868 0.0071422 -0.0887308 0.0032927 0.0000000 -0.0041180 0.0030283 0.1739043 0.1299355 0.1261812 0.4926154 0.8248195 Physiology total cholesterol 0.0293195 0.0001125 0.0290990 0.0295400 2.7642115 0.0057119 0.5395079 0.0000562 358
total protein Clinical Chemistry 8348 8441 3.8900952 0.0142165 0.0117084 0.0028174 3.8832784 0.0142063 0.0093458 0.0028354 0.0068168 0.0010825 0.0000000 0.0023626 0.0009823 0.0161718 0.0410728 0.0384044 0.1047001 0.8768655 Physiology total protein 0.0671750 0.0001192 0.0669414 0.0674086 6.1534810 0.0000000 0.1050852 0.0000596 359
triglycerides Clinical Chemistry 8654 8690 4.3483605 0.0936382 0.1097582 0.0224171 4.4940983 0.0935474 0.1412863 0.0225588 -0.1457378 0.0074806 0.0000000 -0.0315281 0.0069058 0.0000050 0.3008457 0.2772580 0.3357096 0.8493813 Physiology triglycerides 0.0816495 0.0001154 0.0814234 0.0818756 7.6021584 0.0000000 0.3492493 0.0000577 360
uibc (unsaturated iron binding capacity) Clinical Chemistry 1207 1236 3.4584012 0.0233027 0.0170954 0.0130189 3.5113985 0.0221970 0.0532161 0.0104348 -0.0529973 0.0106702 0.0000007 -0.0361207 0.0107465 0.0007895 0.1924423 0.1219646 0.3171165 0.5267786 Physiology uibc (unsaturated iron binding capacity) 0.4560755 0.0008208 0.4544668 0.4576843 15.9191100 0.0000000 0.3284380 0.0004098 361
urea (blood urea nitrogen - bun) Clinical Chemistry 8307 8434 3.1999937 0.0392664 0.0150826 0.0092693 3.1881203 0.0392040 0.0178335 0.0092122 0.0118734 0.0037644 0.0016127 -0.0027509 0.0034783 0.4290248 0.1595248 0.1235928 0.0587308 0.7866078 Physiology urea (blood urea nitrogen - bun) 0.2552079 0.0001195 0.2549737 0.2554422 23.3442262 0.0000000 0.0587985 0.0000597 362
uric acid Clinical Chemistry 359 357 2.7077842 0.2246100 -0.0213698 0.0519723 2.8952954 0.2247217 0.0054386 0.0499219 -0.1875112 0.0713638 0.0088073 -0.0268083 0.0680181 0.6936129 0.4872496 0.5281760 0.1380184 0.5998811 Physiology uric acid -0.0806610 0.0028169 -0.0861821 -0.0751400 -1.5197644 0.1290129 0.1389049 0.0014025 363
  • parameter_name: the name of phenotypic traits
  • f_n: the number of females for a particular trait
  • m_n: the number of males for a particular trait
  • f_intercept: the intercept (phenotypic mean) for females
  • f_intercept_se: standard error for the intercept (phenotypic mean) for females
  • f_slope: the slope for females
  • f_slope_se: standard error for the slope for females
  • m_intercept: the intercept (phenotypic mean) for males
  • m_intercept_se: standard error for the intercept (phenotypic mean) for males
  • m_slope: the slope for males
  • m_slope_se: standard error for the slope for males
  • fm_diff_int: difference in intercepts between females and males
  • fm_diff_int_se: standard error for the difference in intercepts between females and males
  • fm_diff_int_p: p value associated with fm_diff_int
  • fm_diff_slope: difference in slopes between females and males
  • fm_diff_slope_se: standard error for for the difference in intercepts between females and males
  • fm_diff_slope_p: p value associated with fm_diff_slope
  • batch_sd: the square-root of the variance component for “batch” (see the text)
  • f_sd: female residual standard deviation
  • m_sd: female residual standard deviation
  • r_m: marginal R squared (variance accounted for by fixed effects)
  • r_c: conditional R squared (variance accounted for by fixed and random effects)
  • Category: 9 function categories (see the text)
  • parameter_group: Grouping for non-independent traits
  • lnVR: log ratio between f_sd and m_sd
  • VlnVR: the sampling variance for lnVR
  • low_lnVR: lower confidence limit for lnVR
  • high_lnVR: upper confidence limit for lnVR
  • t_val_sd: t values associated with lnVR and VlnVR
  • p_val_sd: p values associated with lnVR and VlnVR
  • Zr: transformed value of sqrt(r_c)
  • VZr: sampling variance for Zr
  • obs: unique observation level ID

Extra: dataset for comparing models with and wihout substrains

short_list <- discard(dat_list, ~.x[["nstrain"]][[1]] == 1)

processing2 <- map_dfr(short_list, get_para_poss2)
dat_short <- data.frame(processing2, row.names = NULL)

dat_short %>%
    left_join(dat_category, by = ("parameter_name" = "parameter_name")) %>%
    arrange(Category) -> dat_short

dim(dat_short)

# write_csv(dat, here('data/test4.csv'))
write_csv(dat_short, here("data/data_comparision.csv"))

Dataset (SMD & lnRR) and meta-data

# loading data
extra <- read_csv(here("data/data_smd_lnrr.csv"))

# making character strings into factors
extra <- extra %>%
    mutate_if(is.character, as.factor)
# visualizing
kable(extra, "html", digits = 3) %>%
    kable_styling("striped", position = "left") %>%
    scroll_box(width = "100%", height = "250px")
parameter_name mean_female mean_male sd_female sd_male n_female n_male SMD v_SMD lnRR v_lnRR
activity onset with respect to dark onset median -0.566 -0.832 0.651 0.443 273 259 0.474 0.008 -0.385 0.006
average duration 71.136 64.781 30.496 30.908 621 612 0.207 0.003 0.094 0.001
breath rate during sleep mean 2.581 2.817 0.233 0.233 864 842 -1.014 0.003 -0.088 0.000
breath rate during sleep standard deviation 0.784 0.811 0.088 0.087 864 842 -0.309 0.002 -0.034 0.000
center average speed 11.606 10.591 8.972 8.192 8692 8660 0.118 0.000 0.092 0.000
center distance travelled 1962.828 1884.877 2599.143 2487.279 9025 8992 0.031 0.000 0.041 0.000
center permanence time 189.170 190.387 136.651 128.829 9381 9328 -0.009 0.000 -0.006 0.000
center resting time 59.834 54.061 87.108 68.871 6471 6443 0.073 0.000 0.101 0.001
conditioning baseline % freezing time 15.202 14.520 16.111 17.524 168 238 0.040 0.010 0.046 0.013
conditioning baseline average motion index 91.839 112.441 53.725 72.423 168 238 -0.315 0.010 -0.202 0.004
conditioning baseline freeze count 5.622 6.727 6.320 7.020 291 333 -0.165 0.006 -0.179 0.008
conditioning baseline freezing time 11.275 13.608 16.921 19.173 291 333 -0.128 0.006 -0.188 0.014
conditioning baseline maximum motion index 882.827 980.324 331.017 373.311 168 238 -0.273 0.010 -0.105 0.001
conditioning post-shock % freezing time 35.954 32.610 21.968 19.655 168 238 0.162 0.010 0.098 0.004
conditioning post-shock average motion index 58.786 73.013 46.930 60.119 168 238 -0.258 0.010 -0.217 0.007
conditioning post-shock freeze count 17.722 17.306 9.413 8.696 291 333 0.046 0.006 0.024 0.002
conditioning post-shock freezing time 40.267 39.897 31.481 29.991 291 333 0.012 0.006 0.009 0.004
conditioning post-shock maximum motion index 1238.333 1529.685 877.054 980.114 168 238 -0.310 0.010 -0.211 0.005
conditioning shock average motion index 637.375 863.000 240.418 315.617 168 238 -0.785 0.011 -0.303 0.001
conditioning shock maximum motion index 2130.482 2903.311 852.724 1049.080 168 238 -0.793 0.011 -0.310 0.002
conditioning shock minimum motion index 28.786 43.105 49.953 67.311 168 238 -0.235 0.010 -0.404 0.028
conditioning tone % freezing time 23.830 17.905 25.486 21.999 168 238 0.252 0.010 0.286 0.013
conditioning tone average motion index 73.399 106.504 58.771 78.105 168 238 -0.467 0.010 -0.372 0.006
conditioning tone freeze count 3.471 2.895 2.682 2.721 291 333 0.213 0.006 0.181 0.005
conditioning tone freezing time 6.242 4.904 6.174 5.587 291 333 0.228 0.006 0.241 0.007
conditioning tone maximum motion index 581.762 739.496 332.049 385.941 168 238 -0.432 0.010 -0.240 0.003
context % freezing time 50.098 48.144 20.047 18.895 168 238 0.101 0.010 0.040 0.002
context average motion index 38.893 43.189 32.139 34.189 168 238 -0.129 0.010 -0.105 0.007
context freeze count 40.588 42.535 16.277 16.073 291 333 -0.120 0.006 -0.047 0.001
context freezing time 107.323 117.916 70.969 66.658 291 333 -0.154 0.006 -0.094 0.002
context maximum motion index 776.405 856.046 323.742 477.512 168 238 -0.189 0.010 -0.098 0.002
cue baseline % freezing time 17.967 20.847 17.096 18.182 168 238 -0.162 0.010 -0.149 0.009
cue baseline average motion index 118.238 115.088 77.303 80.623 168 238 0.040 0.010 0.027 0.005
cue baseline freeze count 13.622 14.189 8.819 9.343 291 333 -0.062 0.006 -0.041 0.003
cue baseline freezing time 22.103 25.489 17.762 20.416 291 333 -0.176 0.006 -0.143 0.004
cue baseline maximum motion index 1327.589 1333.571 551.131 571.449 168 238 -0.011 0.010 -0.004 0.002
cue tone % freezing time 45.321 42.824 26.328 23.109 168 238 0.102 0.010 0.057 0.003
dark side distance travelled 3612.025 3451.180 1046.112 875.235 111 84 0.164 0.021 0.046 0.002
dark side time spent 872.663 786.430 169.568 186.729 1844 1791 0.484 0.001 0.104 0.000
dark sleep bout lengths mean 196.815 275.374 45.239 72.727 864 842 -1.300 0.003 -0.336 0.000
dark sleep bout lengths standard deviation 288.807 362.143 86.114 99.944 864 842 -0.787 0.003 -0.226 0.000
data confidence level 0.981 0.996 0.047 0.026 864 842 -0.399 0.002 -0.015 0.000
distance travelled - total 8370.626 7736.597 7581.407 7038.308 8942 8881 0.087 0.000 0.079 0.000
fecal boli 1.387 2.940 1.778 2.931 1504 1489 -0.641 0.001 -0.751 0.002
forelimb and hindlimb grip strength measurement mean 178.448 189.931 44.106 46.794 12362 12416 -0.253 0.000 -0.062 0.000
forelimb and hindlimb grip strength normalised against body weight 8.899 7.660 2.458 2.065 12355 12405 0.546 0.000 0.150 0.000
forelimb grip strength measurement mean 88.752 96.197 24.016 26.942 12367 12430 -0.292 0.000 -0.081 0.000
forelimb grip strength normalised against body weight 4.422 3.878 1.310 1.166 12360 12419 0.439 0.000 0.131 0.000
horizontal activity 1848.712 1726.762 544.983 510.898 111 84 0.229 0.021 0.068 0.002
latency to center entry 27.143 31.009 43.374 53.548 6566 6537 -0.079 0.000 -0.133 0.001
latency to fall mean 156.823 140.029 58.717 56.588 1869 1970 0.291 0.001 0.113 0.000
latency to first transition into dark 87.017 116.062 121.668 146.346 1844 1791 -0.216 0.001 -0.288 0.002
latency to immobility 17.961 18.610 15.001 18.473 586 585 -0.039 0.003 -0.036 0.003
learning difference 48.185 46.225 36.511 36.329 620 612 0.054 0.003 0.042 0.002
learning slope 16.171 15.474 11.516 11.148 620 611 0.061 0.003 0.044 0.002
light side distance travelled 988.720 848.131 630.358 570.962 111 84 0.231 0.021 0.153 0.009
light side time spent 291.185 385.387 147.433 188.410 1844 1791 -0.558 0.001 -0.280 0.000
light sleep bout lengths mean 543.596 625.461 99.016 121.363 864 842 -0.740 0.003 -0.140 0.000
light sleep bout lengths standard deviation 839.302 873.340 238.980 229.493 864 842 -0.145 0.002 -0.040 0.000
locomotor activity 20.741 18.870 7.226 7.312 9460 9489 0.257 0.000 0.095 0.000
ma threshold inducing clonic seizure 6.091 7.197 0.849 1.030 788 750 -1.174 0.003 -0.167 0.000
peak wake with respect to dark onset median 4.105 3.279 1.753 2.063 864 842 0.432 0.002 0.225 0.001
percent time in dark 81.053 74.475 10.923 14.378 1844 1791 0.516 0.001 0.085 0.000
percent time in light 18.943 25.521 10.923 14.377 1844 1791 -0.516 0.001 -0.298 0.000
percentage center time 15.808 15.936 11.460 10.817 9048 8998 -0.011 0.000 -0.008 0.000
periphery average speed 7.729 7.102 7.126 6.587 8693 8662 0.091 0.000 0.085 0.000
periphery distance travelled 6115.889 5599.607 5417.612 4966.559 9026 8992 0.099 0.000 0.088 0.000
periphery permanence time 1007.504 1006.825 136.904 129.653 9382 9328 0.005 0.000 0.001 0.000
periphery resting time 404.112 401.567 197.056 203.117 6472 6443 0.013 0.000 0.006 0.000
repetitive beam break (‘stereotypy counts’) 288.892 347.214 125.016 112.701 111 84 -0.485 0.022 -0.184 0.003
side changes 58.579 54.456 28.984 23.656 1844 1791 0.156 0.001 0.073 0.000
sleep bout lengths mean 369.173 447.305 63.139 86.568 864 842 -1.033 0.003 -0.192 0.000
sleep bout lengths standard deviation 651.291 689.298 163.853 162.717 864 842 -0.233 0.002 -0.057 0.000
sleep daily percent 42.188 45.218 4.193 3.744 864 842 -0.762 0.003 -0.069 0.000
sleep dark phase percent 21.727 27.001 5.828 5.587 864 842 -0.923 0.003 -0.217 0.000
sleep light phase percent 62.649 63.436 5.110 4.628 864 842 -0.161 0.002 -0.012 0.000
time immobile 144.203 150.442 38.538 42.560 586 585 -0.154 0.003 -0.042 0.000
time mobile dark side 200.270 167.504 52.685 50.104 1844 1791 0.637 0.001 0.179 0.000
time mobile light side 81.717 89.026 37.422 38.659 1844 1791 -0.192 0.001 -0.086 0.000
total distance travelled 4600.745 4299.311 1328.931 1247.073 111 84 0.232 0.021 0.068 0.002
total holepokes 39.892 38.909 13.254 14.933 1357 1324 0.070 0.001 0.025 0.000
vertical activity (rearing) 72.279 84.655 45.196 59.915 111 84 -0.237 0.021 -0.158 0.009
whole arena average speed 8.277 7.610 7.167 6.625 9384 9328 0.097 0.000 0.084 0.000
whole arena permanence 1199.976 1199.971 0.499 0.567 9051 8998 0.010 0.000 0.000 0.000
whole arena resting time 495.530 501.309 292.220 303.475 9379 9323 -0.019 0.000 -0.012 0.000
cone b-wave amplitude 121.464 119.178 22.576 25.214 109 106 0.095 0.019 0.019 0.001
cone b-wave amplitude-left 118.212 117.811 23.395 19.353 88 90 0.019 0.022 0.003 0.001
cone b-wave amplitude-right 109.903 107.374 16.832 20.117 88 90 0.136 0.023 0.023 0.001
cone b-wave implicit time 44.978 44.803 3.272 2.671 109 106 0.058 0.019 0.004 0.000
cone b-wave implicit time-left 40.227 39.722 1.460 1.190 88 90 0.378 0.023 0.013 0.000
cone b-wave implicit time-right 40.250 39.500 1.392 1.192 88 90 0.577 0.023 0.019 0.000
eye size 3.226 3.262 0.165 0.126 109 106 -0.241 0.019 -0.011 0.000
eye size-left 3.225 3.257 0.056 0.056 88 90 -0.571 0.023 -0.010 0.000
eye size-right 3.221 3.246 0.041 0.046 88 90 -0.559 0.023 -0.008 0.000
interpupillary distance 11.422 11.607 0.281 0.266 197 196 -0.673 0.011 -0.016 0.000
left anterior chamber depth 365.358 378.890 23.208 15.677 76 77 -0.681 0.028 -0.036 0.000
left corneal thickness 100.929 100.038 12.105 6.456 76 77 0.092 0.026 0.009 0.000
left inner nuclear layer 23.793 23.658 2.323 2.653 75 77 0.054 0.026 0.006 0.000
left outer nuclear layer 46.681 46.228 8.378 8.574 75 77 0.053 0.026 0.010 0.001
left posterior chamber depth 542.647 542.405 21.955 16.310 75 77 0.012 0.026 0.000 0.000
left total retinal thickness 243.821 244.259 11.973 10.644 1222 1261 -0.039 0.002 -0.002 0.000
max left eye lens density 8.915 8.753 3.176 2.478 907 942 0.057 0.002 0.018 0.000
max right eye lens density 9.202 9.108 3.413 2.745 896 940 0.030 0.002 0.010 0.000
mean left eye lens density 6.396 6.416 1.380 1.125 907 942 -0.016 0.002 -0.003 0.000
mean right eye lens density 6.703 6.721 1.342 1.288 896 940 -0.014 0.002 -0.003 0.000
min left eye lens density 4.860 4.847 0.645 0.605 907 942 0.021 0.002 0.003 0.000
min right eye lens density 5.092 5.099 0.698 0.681 896 940 -0.011 0.002 -0.001 0.000
right anterior chamber depth 354.653 368.885 43.679 18.602 74 76 -0.424 0.027 -0.039 0.000
right corneal thickness 99.062 110.960 14.037 98.951 75 76 -0.167 0.027 -0.113 0.011
right inner nuclear layer 24.305 23.263 3.761 2.354 71 75 0.333 0.028 0.044 0.000
right outer nuclear layer 47.795 46.484 7.919 8.689 71 75 0.157 0.028 0.028 0.001
right posterior chamber depth 541.031 541.139 17.775 18.092 72 75 -0.006 0.027 0.000 0.000
right total retinal thickness 244.966 245.183 11.246 10.531 1200 1250 -0.020 0.002 -0.001 0.000
rod a-wave amplitude -218.520 -253.051 43.912 55.406 108 106 0.689 0.020 -0.147 0.001
rod a-wave amplitude-left -158.795 -160.231 31.899 26.956 88 89 0.048 0.023 -0.009 0.001
rod a-wave amplitude-right -135.423 -138.128 23.917 25.989 88 88 0.108 0.023 -0.020 0.001
rod a-wave implicit time 17.721 16.625 1.250 1.090 109 106 0.931 0.021 0.064 0.000
rod a-wave implicit time-left 22.012 20.822 1.203 1.087 86 90 1.034 0.026 0.056 0.000
rod a-wave implicit time-right 22.103 20.867 1.172 1.124 87 90 1.073 0.026 0.058 0.000
rod b-wave amplitude 425.489 484.471 99.313 113.019 109 106 -0.553 0.019 -0.130 0.001
rod b-wave amplitude-left 429.023 444.717 84.317 77.282 88 90 -0.193 0.023 -0.036 0.001
rod b-wave amplitude-right 419.562 429.040 59.677 68.861 88 90 -0.146 0.023 -0.022 0.001
rod b-wave implicit time 45.641 44.627 3.724 3.658 109 106 0.274 0.019 0.022 0.000
rod b-wave implicit time-left 51.977 50.478 2.333 2.100 87 90 0.673 0.024 0.029 0.000
rod b-wave implicit time-right 51.632 50.456 3.210 2.601 87 90 0.402 0.023 0.023 0.000
% pre-pulse inhibition - global 44.693 45.073 20.734 20.870 8612 8634 -0.018 0.000 -0.008 0.000
% pre-pulse inhibition - ppi1 19.204 18.725 29.972 30.969 8611 8635 0.016 0.000 0.025 0.001
% pre-pulse inhibition - ppi2 48.556 48.514 22.585 22.779 8612 8634 0.002 0.000 0.001 0.000
% pre-pulse inhibition - ppi3 59.414 60.200 19.855 20.198 8611 8635 -0.039 0.000 -0.013 0.000
% pre-pulse inhibition - ppi4 65.323 67.051 18.735 18.235 4200 4252 -0.093 0.000 -0.026 0.000
12khz-evoked abr threshold 27.933 26.885 13.730 14.444 3560 3763 0.074 0.001 0.038 0.000
18khz-evoked abr threshold 28.629 27.193 11.239 12.135 3561 3758 0.123 0.001 0.051 0.000
24khz-evoked abr threshold 36.692 35.255 11.114 12.279 3539 3751 0.122 0.001 0.040 0.000
30khz-evoked abr threshold 51.580 48.488 14.987 15.587 3391 3648 0.202 0.001 0.062 0.000
6khz-evoked abr threshold 40.901 39.635 11.972 14.567 3556 3764 0.095 0.001 0.031 0.000
click-evoked abr threshold 29.828 27.827 10.015 10.368 2158 2367 0.196 0.001 0.069 0.000
response amplitude - bn 33.333 36.923 46.779 49.967 8690 8697 -0.074 0.000 -0.102 0.000
response amplitude - pp1 26.598 30.249 26.065 29.395 8690 8697 -0.131 0.000 -0.129 0.000
response amplitude - pp1_s 316.456 405.106 265.676 334.603 8616 8635 -0.293 0.000 -0.247 0.000
response amplitude - pp2 45.372 47.590 45.607 45.862 8690 8697 -0.049 0.000 -0.048 0.000
response amplitude - pp2_s 209.505 265.893 201.900 249.562 8616 8635 -0.248 0.000 -0.238 0.000
response amplitude - pp3 60.004 65.979 58.231 63.736 8690 8697 -0.098 0.000 -0.095 0.000
response amplitude - pp3_s 169.353 211.970 166.948 206.557 8616 8635 -0.227 0.000 -0.224 0.000
response amplitude - pp4 93.220 104.287 83.846 95.658 4200 4253 -0.123 0.000 -0.112 0.000
response amplitude - pp4_s 140.853 167.493 134.423 147.671 4200 4253 -0.189 0.000 -0.173 0.000
response amplitude - s 383.617 496.334 284.371 363.230 8619 8637 -0.345 0.000 -0.258 0.000
aortic diameter (dao) 1.238 1.298 0.085 0.098 1266 1225 -0.646 0.002 -0.047 0.000
cardiac output 14.902 16.172 3.519 3.898 2963 1965 -0.346 0.001 -0.082 0.000
cv 2.769 2.264 2.713 2.715 4301 4295 0.186 0.000 0.201 0.001
ejection fraction 66.255 73.603 20.266 18.244 3128 2139 -0.377 0.001 -0.105 0.000
end-diastolic diameter 4.058 4.215 0.257 0.371 1558 563 -0.539 0.002 -0.038 0.000
end-systolic diameter 3.064 3.149 0.362 0.480 1558 563 -0.216 0.002 -0.028 0.000
fractional shortening 38.740 44.222 16.666 15.035 3151 2163 -0.342 0.001 -0.132 0.000
heart weight 115.912 138.810 19.705 26.318 9886 9813 -0.985 0.000 -0.180 0.000
heart weight normalised against body weight 4.941 4.762 0.997 1.067 7967 7890 0.173 0.000 0.037 0.000
heart weight normalised against tibia length 0.772 0.642 0.052 0.049 139 129 2.557 0.027 0.185 0.000
hr 667.303 700.167 137.100 120.279 9526 8437 -0.254 0.000 -0.048 0.000
hrv 20.637 17.007 18.737 18.743 3950 3937 0.194 0.001 0.193 0.001
lvawd 0.765 0.810 0.108 0.133 1731 747 -0.385 0.002 -0.057 0.000
lvaws 1.096 1.132 0.165 0.202 1708 723 -0.203 0.002 -0.032 0.000
lvidd 3.376 3.190 0.795 0.804 3150 2163 0.233 0.001 0.057 0.000
lvids 2.239 1.971 0.973 0.954 3150 2163 0.277 0.001 0.127 0.000
lvpwd 0.617 0.611 0.104 0.133 3150 2163 0.051 0.001 0.010 0.000
lvpws 0.752 0.699 0.220 0.237 3127 2139 0.233 0.001 0.073 0.000
mean r amplitude 0.665 0.592 0.404 0.378 4456 4380 0.187 0.000 0.117 0.000
mean sr amplitude 0.910 0.808 0.523 0.486 3946 3935 0.203 0.001 0.119 0.000
pnn5(6>ms) 6.952 4.128 14.089 10.916 2978 2907 0.224 0.001 0.521 0.004
pq 20.939 21.001 2.975 2.865 3950 3937 -0.021 0.001 -0.003 0.000
pr 29.291 29.004 5.233 4.801 6377 6275 0.057 0.000 0.010 0.000
qrs 10.575 10.470 1.359 1.381 6327 6274 0.076 0.000 0.010 0.000
qtc 54.516 53.824 20.434 19.579 5179 5078 0.035 0.000 0.013 0.000
qtc dispersion 21.015 21.130 9.946 9.814 4457 4382 -0.012 0.000 -0.005 0.000
respiration rate 180.212 213.596 68.458 55.255 2282 1568 -0.526 0.001 -0.170 0.000
rmssd 2.266 2.089 3.665 3.917 3950 3937 0.047 0.001 0.081 0.002
rr 83.689 82.728 15.151 15.174 6377 6275 0.063 0.000 0.012 0.000
st 29.648 29.493 5.855 5.833 5499 5491 0.027 0.000 0.005 0.000
stroke volume 28.919 28.380 8.899 9.501 2964 1965 0.059 0.001 0.019 0.000
basophil cell count 0.033 0.041 0.035 0.046 4440 4413 -0.209 0.000 -0.231 0.001
basophil differential count 0.475 0.465 0.427 0.406 4577 4518 0.024 0.000 0.021 0.000
eosinophil cell count 0.165 0.206 0.126 0.144 4465 4431 -0.300 0.000 -0.220 0.000
eosinophil differential count 2.529 2.489 1.917 1.777 4618 4555 0.022 0.000 0.016 0.000
eosinophils 1967.483 1803.098 1540.299 1373.059 1050 1048 0.113 0.002 0.087 0.001
hematocrit 50.025 50.788 4.641 4.859 9685 9560 -0.161 0.000 -0.015 0.000
hemoglobin 14.898 14.974 1.261 1.413 9686 9560 -0.057 0.000 -0.005 0.000
large unstained cell (luc) count 0.044 0.067 0.036 0.057 3288 3286 -0.491 0.001 -0.429 0.000
large unstained cell (luc) differential count 0.698 0.796 0.451 0.528 3290 3285 -0.201 0.001 -0.132 0.000
lymphocyte cell count 5.272 6.478 2.260 2.212 4465 4431 -0.539 0.000 -0.206 0.000
lymphocyte differential count 82.776 81.380 5.938 8.357 4719 4654 0.193 0.000 0.017 0.000
mean cell hemoglobin concentration 29.888 29.588 2.249 2.516 9674 9555 0.126 0.000 0.010 0.000
mean cell volume 48.482 48.169 2.771 2.723 9703 9574 0.114 0.000 0.006 0.000
mean corpuscular hemoglobin 14.568 14.323 0.870 1.094 9654 9537 0.249 0.000 0.017 0.000
mean platelet volume 6.088 6.018 1.346 1.339 7512 7457 0.052 0.000 0.011 0.000
monocyte cell count 0.160 0.194 0.138 0.139 4467 4431 -0.242 0.000 -0.190 0.000
monocyte differential count 2.437 2.445 1.413 1.456 4720 4654 -0.006 0.000 -0.003 0.000
monocytes 3814.217 4261.458 2799.282 3105.231 1009 1012 -0.151 0.002 -0.111 0.001
neutrophil cell count 0.740 1.006 0.580 0.789 4466 4428 -0.384 0.000 -0.307 0.000
neutrophil differential count 11.315 12.696 5.162 8.040 4655 4610 -0.205 0.000 -0.115 0.000
platelet count 1027.483 1235.722 209.364 266.154 9637 9528 -0.870 0.000 -0.185 0.000
red blood cell count 10.319 10.544 0.750 0.806 9689 9572 -0.289 0.000 -0.022 0.000
red blood cell distribution width 14.084 14.291 2.443 2.447 7553 7496 -0.084 0.000 -0.015 0.000
white blood cell count 6.420 8.057 2.563 2.587 9368 9229 -0.636 0.000 -0.227 0.000
b cell total 180285.253 161619.066 82172.478 80131.054 293 288 0.230 0.007 0.109 0.002
b cells 232294.791 237769.968 132923.298 138209.068 751 754 -0.040 0.003 -0.023 0.001
b1 total 10711.382 9530.295 8915.593 6564.388 293 288 0.150 0.007 0.117 0.004
b1b cells 9980.577 9260.505 9787.782 9650.805 742 745 0.074 0.003 0.075 0.003
b2 immature + mzb 13074.601 11807.611 7205.378 6541.044 268 283 0.184 0.007 0.102 0.002
b2 mature 149363.239 139269.404 72414.856 71764.598 268 282 0.140 0.007 0.070 0.002
b2 total 169106.693 152082.247 79096.134 76716.978 293 288 0.218 0.007 0.106 0.002
cd24+ cd4 t cells 1757.378 1505.974 1032.426 799.161 74 77 0.272 0.027 0.154 0.008
cd24+ cd8 t cells 1991.892 1736.896 1264.160 908.041 74 77 0.231 0.027 0.137 0.009
cd4 cd25- nkt cells 1976.842 1405.670 1662.403 1214.487 546 539 0.392 0.004 0.341 0.003
cd4 cd25- t cells 45216.851 43791.466 24435.353 23581.356 686 685 0.059 0.003 0.032 0.001
cd4 cd25+ nkt cells 111.337 99.265 142.922 130.869 612 608 0.088 0.003 0.115 0.006
cd4 cd25+ t cells 6151.691 6272.482 5873.471 5895.804 686 685 -0.021 0.003 -0.019 0.003
cd4 cd44-cd62l- t cells 3758.324 3829.428 4436.485 4454.874 447 444 -0.016 0.004 -0.019 0.006
cd4 cd44-cd62l+ nkt cells 48.343 41.291 62.011 49.341 686 685 0.126 0.003 0.158 0.004
cd4 cd44+cd62l- nkt cells 1629.124 1130.111 1394.712 995.835 686 685 0.412 0.003 0.366 0.002
cd4 cd44+cd62l- t cells 13381.452 12753.911 8641.940 8269.686 686 685 0.074 0.003 0.048 0.001
cd4 cd44+cd62l+ nkt cells 324.691 287.146 379.205 352.277 686 685 0.103 0.003 0.123 0.004
cd4 cd44+cd62l+ t cells 18152.354 17723.517 12657.385 12073.987 591 594 0.035 0.003 0.024 0.002
cd4 effector 13121.677 11324.594 4016.021 4057.326 300 298 0.445 0.007 0.147 0.001
cd4 nkt cells 2014.807 1468.176 1637.691 1217.867 689 688 0.379 0.003 0.317 0.002
cd4 resting/naive 26855.353 24093.376 7900.099 8340.447 300 298 0.340 0.007 0.109 0.001
cd4 t cells 51971.430 50766.722 27677.605 27137.889 689 688 0.044 0.003 0.023 0.001
cd4 t cells total 53511.200 49205.201 14795.444 15161.757 300 298 0.287 0.007 0.084 0.001
cd44+ t-regs 1177.770 1230.857 882.980 936.075 74 77 -0.058 0.027 -0.044 0.015
cd62l+ t-regs 1074.568 1156.039 752.260 824.692 74 77 -0.103 0.027 -0.073 0.013
cd8 cd25- nkt cells 682.072 693.931 526.069 572.453 610 606 -0.022 0.003 -0.017 0.002
cd8 cd25- t cells 39547.443 38546.181 20966.222 20462.930 612 608 0.048 0.003 0.026 0.001
cd8 cd25+ nkt cells 19.025 19.107 52.892 37.684 610 606 -0.002 0.003 -0.004 0.019
cd8 cd44-cd62l- t cells 2997.894 2893.778 3656.077 3589.811 559 558 0.029 0.004 0.035 0.005
cd8 cd44-cd62l+ t cells 22247.239 20980.943 13175.815 12121.979 686 685 0.100 0.003 0.059 0.001
cd8 cd44+cd62l- t cells 2082.364 2113.032 1943.811 2000.553 686 685 -0.016 0.003 -0.015 0.003
cd8 cd44+cd62l+ nkt cells 488.348 514.302 413.704 466.875 684 683 -0.059 0.003 -0.052 0.002
cd8 cd44+cd62l+ t cells 10907.137 11156.054 7080.674 7481.743 686 685 -0.034 0.003 -0.023 0.001
cd8 effector 1731.237 1674.671 1226.621 1077.882 300 298 0.049 0.007 0.033 0.003
cd8 naive 25645.703 22843.275 8465.471 8105.572 300 298 0.338 0.007 0.116 0.001
cd8 nkt cells 653.309 671.345 516.937 567.610 687 686 -0.033 0.003 -0.027 0.002
cd8 resting 7977.683 8466.362 3278.354 3575.184 300 298 -0.142 0.007 -0.059 0.001
cd8 t cells 38229.486 37185.922 20562.069 20065.030 689 688 0.051 0.003 0.028 0.001
cd8 t cells total 36600.630 34098.416 10197.738 10432.406 300 298 0.242 0.007 0.071 0.001
cdc cd11b type 4634.957 4839.767 1841.464 2151.660 186 180 -0.102 0.011 -0.043 0.002
cdc cd8a type 7500.274 7305.600 5422.221 4485.754 186 180 0.039 0.011 0.026 0.005
cdcs 8577.055 9811.335 6419.133 7398.494 749 752 -0.178 0.003 -0.134 0.002
dc total 12132.425 12150.283 6689.519 5911.295 186 180 -0.003 0.011 -0.001 0.003
dn cd25- nkt cells 1274.578 1089.720 1028.997 906.662 607 603 0.190 0.003 0.157 0.002
dn cd25- t cells 7338.443 5961.720 4513.749 4056.483 607 603 0.321 0.003 0.208 0.001
dn cd25+ nkt cells 54.059 55.114 224.719 233.535 607 603 -0.005 0.003 -0.019 0.058
dn cd25+ t cells 246.919 273.869 387.910 560.343 607 603 -0.056 0.003 -0.104 0.011
dn cd44-cd62l- t cells 587.756 478.260 588.796 526.667 554 553 0.196 0.004 0.206 0.004
dn cd44-cd62l+ nkt cells 22.144 16.768 38.881 34.084 681 680 0.147 0.003 0.278 0.011
dn cd44-cd62l+ t cells 1245.263 974.669 995.235 1104.147 681 680 0.257 0.003 0.245 0.003
dn cd44+cd62l- nkt cells 671.009 557.247 554.299 517.717 681 680 0.212 0.003 0.186 0.002
dn cd44+cd62l- t cells 2241.570 1877.009 1852.598 1666.320 681 680 0.207 0.003 0.177 0.002
dn cd44+cd62l+ nkt cells 601.297 553.759 486.179 427.057 681 680 0.104 0.003 0.082 0.002
dn nkt cells 1280.345 1115.836 964.094 865.105 745 744 0.180 0.003 0.138 0.002
dn t cells 7476.610 6137.653 4773.930 4353.897 687 686 0.293 0.003 0.197 0.001
follicular b cells 204839.029 208487.037 100736.922 105417.699 381 377 -0.035 0.005 -0.018 0.001
follicular b cells (cd21/35+) 187815.754 188252.359 108926.155 114547.321 452 454 -0.004 0.004 -0.002 0.002
gd + b1 14080.307 11561.963 5958.601 6030.095 300 298 0.420 0.007 0.197 0.002
gd t cells 1276.054 939.104 552.110 356.427 74 77 0.724 0.028 0.307 0.004
inkt 3571.507 2730.436 1614.805 1599.535 300 298 0.523 0.007 0.269 0.002
klrg1+ cd4 t cells 1010.730 854.117 648.314 526.057 74 77 0.264 0.027 0.168 0.010
klrg1+ cd4+ nkt cells 83.486 56.805 130.221 67.648 74 77 0.257 0.027 0.385 0.051
klrg1+ t-regs 270.730 285.416 264.803 338.188 74 77 -0.048 0.027 -0.053 0.031
macrophages 2336.351 2048.150 2016.934 2028.295 299 294 0.142 0.007 0.132 0.006
mzb 26978.087 26471.736 21002.804 16165.990 138 140 0.027 0.014 0.019 0.007
mzb (cd21/35 high) 29846.089 30549.409 26802.473 27734.010 450 452 -0.026 0.004 -0.023 0.004
nk cells (panel a) 11662.708 12029.626 6415.523 6456.234 750 749 -0.057 0.003 -0.031 0.001
nk klrg1+ cells 1353.770 1174.364 656.042 588.945 74 77 0.287 0.027 0.142 0.006
nk subsets (q1) 1413.711 1316.329 1766.024 1497.553 603 602 0.059 0.003 0.071 0.005
nk subsets (q2) 2867.224 2652.231 2034.222 2092.164 603 602 0.104 0.003 0.078 0.002
nk subsets (q3) 2053.926 2475.484 1348.753 1656.303 537 533 -0.279 0.004 -0.187 0.002
nk subsets (q4) 2436.508 2488.034 950.900 935.114 537 533 -0.055 0.004 -0.021 0.001
nk total 18660.807 19453.960 10016.577 8840.302 300 298 -0.084 0.007 -0.042 0.002
nkt cells (panel a) 4244.208 3523.714 2887.557 2420.783 750 749 0.270 0.003 0.186 0.001
nkt cells (panel b) 2433.458 2094.132 2645.949 2863.322 674 672 0.123 0.003 0.150 0.005
nkt dn klrg1+ cells 164.959 140.922 208.995 138.831 74 77 0.135 0.027 0.157 0.034
nkt effector 4628.890 3479.215 2215.548 2192.574 300 298 0.521 0.007 0.286 0.002
nkt resting 3102.520 2687.866 1620.966 1615.747 300 298 0.256 0.007 0.143 0.002
nkt subsets (q1) 523.166 464.018 474.929 426.611 603 602 0.131 0.003 0.120 0.003
nkt subsets (q3) 458.259 328.351 523.595 351.938 537 533 0.291 0.004 0.333 0.005
nkt total 7904.887 6268.084 3648.381 3652.869 300 298 0.448 0.007 0.232 0.002
number of live cells acquired panel 1 292555.636 282994.056 83037.652 84834.093 308 305 0.114 0.007 0.033 0.001
number of live cells acquired panel 2 375088.338 338597.204 160405.781 162515.215 308 304 0.226 0.007 0.102 0.001
others 241007.095 249840.850 138107.672 145694.469 750 749 -0.062 0.003 -0.036 0.001
percentage of live gated events in panel a 76.696 77.927 20.890 18.648 726 726 -0.062 0.003 -0.016 0.000
percentage of live gated events in panel b 74.107 75.320 19.065 17.238 726 731 -0.067 0.003 -0.016 0.000
rp macrophage (f4/80+) 6609.275 6728.671 4083.966 3537.611 233 231 -0.031 0.009 -0.018 0.003
t cells (panel a) 101294.347 97237.086 54749.130 53027.402 689 688 0.075 0.003 0.041 0.001
t cells (panel b) 90486.491 86626.999 39349.882 36717.015 746 748 0.101 0.003 0.044 0.000
t subset 34665.300 38149.673 16335.506 18221.533 603 603 -0.201 0.003 -0.096 0.001
t/nkt/b1 105076.727 95595.594 29342.369 30013.764 300 298 0.319 0.007 0.095 0.001
total cell count in spleen 126212837.838 113899411.765 33714018.169 29654358.449 296 289 0.387 0.007 0.103 0.000
total number of acquired events in panel a 488749.489 473845.556 269674.673 258876.175 748 748 0.056 0.003 0.031 0.001
transitional b cells 15238.746 20556.364 9556.019 13937.709 138 140 -0.443 0.015 -0.299 0.006
transitional b cells (cd21/35 low) 18736.903 19877.335 15368.824 16118.878 452 454 -0.072 0.004 -0.059 0.003
tregs 5197.517 4838.299 1946.635 1795.094 300 298 0.192 0.007 0.072 0.001
tregs effector 2324.330 2196.238 844.858 835.575 300 298 0.152 0.007 0.057 0.001
tregs resting 2815.943 2605.416 1212.614 1109.536 300 298 0.181 0.007 0.078 0.001
area under glucose response curve 12444.669 18659.572 5238.054 6365.969 11466 11410 -1.066 0.000 -0.405 0.000
fasted blood glucose concentration 98.380 105.360 25.690 26.678 11523 11489 -0.267 0.000 -0.069 0.000
glucose 235.851 258.754 70.518 82.653 9104 9141 -0.298 0.000 -0.093 0.000
initial response to glucose challenge 234.191 261.982 69.481 71.517 11503 11460 -0.394 0.000 -0.112 0.000
insulin 851.691 1634.307 950.762 1827.553 1186 1206 -0.536 0.002 -0.652 0.002
respiratory exchange ratio 0.907 0.907 0.047 0.048 2859 6426 0.002 0.001 0.000 0.000
total food intake 3.313 3.076 1.273 1.441 2489 3941 0.172 0.001 0.074 0.000
total water intake 3.298 37.817 0.813 38.909 1083 2502 -1.062 0.001 -2.440 0.000
body length 9.414 9.689 0.718 0.722 8439 8475 -0.382 0.000 -0.029 0.000
bone area 8.519 8.847 1.154 1.063 10900 10938 -0.295 0.000 -0.038 0.000
bone mineral content (excluding skull) 0.446 0.466 0.079 0.081 10900 10938 -0.258 0.000 -0.045 0.000
bone mineral density (excluding skull) 0.053 0.053 0.008 0.008 10901 10938 -0.051 0.000 -0.008 0.000
fat mass 4.454 5.998 1.867 2.439 11011 11011 -0.711 0.000 -0.298 0.000
fat/body weight 0.187 0.204 0.067 0.071 11000 11008 -0.260 0.000 -0.091 0.000
lean mass 17.485 21.306 2.141 2.890 11012 11012 -1.502 0.000 -0.198 0.000
lean/body weight 0.747 0.739 0.077 0.081 11001 11009 0.095 0.000 0.010 0.000
left kidney 0.142 0.185 0.016 0.021 1066 1118 -2.302 0.003 -0.266 0.000
number of caudal vertebrae 27.689 27.725 1.568 1.529 2789 2739 -0.023 0.001 -0.001 0.000
number of center entries 118.861 114.593 111.057 102.106 6567 6540 0.040 0.000 0.037 0.000
number of digits 20.001 20.001 0.042 0.035 5769 5715 0.004 0.000 0.000 0.000
number of lumbar vertebrae 5.999 5.995 0.039 0.074 4714 4664 0.062 0.000 0.001 0.000
number of rears - total 120.210 138.479 61.332 84.419 5470 5426 -0.248 0.000 -0.141 0.000
number of ribs left 13.001 13.000 0.049 0.047 5854 5791 0.032 0.000 0.000 0.000
number of ribs right 12.999 12.998 0.037 0.044 5854 5791 0.022 0.000 0.000 0.000
number of signals 30.376 30.538 15.681 15.955 6006 5936 -0.010 0.000 -0.005 0.000
number of thoracic vertebrae 13.000 13.000 0.015 0.015 4714 4664 0.000 0.000 0.000 0.000
right kidney 0.149 0.195 0.020 0.022 1067 1120 -2.146 0.003 -0.264 0.000
spleen weight 1.929 2.158 6.500 7.678 3267 3274 -0.032 0.001 -0.112 0.007
tibia length 17.911 18.079 0.748 0.730 5527 5485 -0.228 0.000 -0.009 0.000
alanine aminotransferase 39.565 44.903 33.264 47.759 8396 8423 -0.130 0.000 -0.127 0.000
albumin 28.334 26.615 3.632 3.413 8422 8460 0.488 0.000 0.063 0.000
albumin to creatinine ratio 14.421 20.831 6.741 8.340 363 362 -0.845 0.006 -0.368 0.001
alkaline phosphatase 131.144 84.926 60.413 40.935 8343 8388 0.896 0.000 0.435 0.000
alpha-amylase 533.775 663.842 93.241 113.037 5517 5586 -1.254 0.000 -0.218 0.000
aspartate aminotransferase 74.534 67.311 94.442 93.022 8332 8368 0.077 0.000 0.102 0.000
body temp 36.895 36.915 0.876 0.683 1057 491 -0.024 0.003 -0.001 0.000
calcium 9.114 9.146 0.604 0.623 8366 8425 -0.052 0.000 -0.003 0.000
chloride 111.353 109.892 2.760 2.739 6176 6149 0.532 0.000 0.013 0.000
creatine kinase 260.142 217.805 357.516 317.839 4339 4390 0.125 0.000 0.178 0.001
creatinine 3.552 3.502 15.307 15.205 7564 7667 0.003 0.000 0.014 0.005
free fatty acids 0.605 0.623 0.438 0.472 3135 3249 -0.040 0.001 -0.030 0.000
fructosamine 214.879 208.810 27.161 23.754 4390 4468 0.238 0.000 0.029 0.000
glycerol 0.127 0.139 0.029 0.038 1977 2014 -0.368 0.001 -0.094 0.000
glycosilated hemoglobin a1c (hba1c) 3.947 4.168 0.165 0.185 362 362 -1.260 0.007 -0.055 0.000
hdl cholesterol 60.045 83.092 11.098 15.248 483 470 -1.731 0.006 -0.325 0.000
hdl-cholesterol 53.864 68.740 10.761 13.710 8305 8353 -1.207 0.000 -0.244 0.000
iron 0.139 0.120 0.027 0.022 6746 6815 0.781 0.000 0.147 0.000
lactate dehydrogenase 275.586 302.159 163.588 162.732 540 542 -0.163 0.004 -0.092 0.001
ldl-cholesterol 16.900 17.785 5.843 7.841 2576 2619 -0.128 0.001 -0.051 0.000
lipase 61.188 57.860 32.135 27.138 1182 1199 0.112 0.002 0.056 0.000
magnesium 4.829 4.608 5.358 5.443 2380 2372 0.041 0.001 0.047 0.001
microalbumin (calculated) 0.988 1.436 0.474 0.548 358 356 -0.874 0.006 -0.374 0.001
phosphorus 6.734 6.455 1.717 1.566 8332 8421 0.170 0.000 0.042 0.000
potassium 4.149 4.445 0.705 0.620 6153 6110 -0.445 0.000 -0.069 0.000
sodium 147.152 148.594 3.866 2.975 6174 6141 -0.418 0.000 -0.010 0.000
thyroxine 4.504 4.077 0.858 0.670 1451 1465 0.555 0.001 0.100 0.000
total bilirubin 0.111 0.104 0.042 0.040 8250 8216 0.170 0.000 0.065 0.000
total cholesterol 82.066 99.617 15.348 24.679 8895 8888 -0.854 0.000 -0.194 0.000
total protein 48.340 48.505 3.785 3.625 8348 8441 -0.044 0.000 -0.003 0.000
triglycerides 82.473 114.712 32.572 43.605 8654 8690 -0.837 0.000 -0.330 0.000
uibc (unsaturated iron binding capacity) 31.831 34.908 5.972 5.612 1207 1236 -0.531 0.002 -0.092 0.000
urea (blood urea nitrogen - bun) 25.677 26.072 5.782 4.939 8307 8434 -0.073 0.000 -0.015 0.000
uric acid 16.405 20.678 11.039 15.058 359 357 -0.323 0.006 -0.232 0.003
# combining main data and extra data

dat_extra <- cbind(dat, extra[, 8:11])


write_csv(dat_extra, here("data/data_parameters_extra.csv"))
  • parameter_name: the name of phenotypic traits
  • mean_female: female mean for a particular phenotypic trait
  • mean_male: male mean for a particular phenotypic trait
  • sd_female: female standard deviation for a particular trait
  • sd_male: male standard deviation for a particular trait
  • n_female: the number of females for a particular trait
  • n_male: the number of males for a particular trait
  • SMD: standardized mean difference between males and females
  • v_SMD: sampling variance for SMD
  • lnRR: log response ratio between males and females
  • v_lnRR: sampling variance for lnRR

Data analysis

Preparation for categorizing into scenarios

Here, we merge p values for non-independent (closely related traits) using the custom functions for merging p values via the poolr package.

# here we need to collapse p values which are related split data into 2 ones
# with replications within parameter_group

dat %>%
    group_by(parameter_group) %>%
    mutate(count = n()) -> dat
#
dat1 <- dat[which(dat$count == 1), ]
# dim(dat1)

# taking out independent traits
dat2 <- dat[-which(dat$count == 1), ]

# nesting data into a lot of data sets and apply p_mod function
n_dat2 <- dat2 %>%
    group_by(parameter_group) %>%
    nest()

# function to get merged p value for intercepts
p_mod_int <- function(data) {

    len <- dim(data)[1]
    Rmat <- matrix(0.8, nrow = len, ncol = len)
    diag(Rmat) <- 1

    p_mod <- fisher(data$fm_diff_int_p, adjust = "liji", R = Rmat)
    p <- p_mod$p
    return(p)

}


# function to get merged p value for slopes
p_mod_slp <- function(data) {

    len <- dim(data)[1]
    Rmat <- matrix(0.8, nrow = len, ncol = len)
    diag(Rmat) <- 1

    p_mod <- fisher(data$fm_diff_slope_p, adjust = "liji", R = Rmat)
    p <- p_mod$p
    return(p)

}

# function to get merged p value for SD
p_mod_sd <- function(data) {

    len <- dim(data)[1]
    Rmat <- matrix(0.8, nrow = len, ncol = len)
    diag(Rmat) <- 1

    p_mod <- fisher(data$p_val_sd, adjust = "liji", R = Rmat)
    p <- p_mod$p
    return(p)

}


# merged dat2
m_dat2 <- n_dat2 %>%
    mutate(merged_p_sd = map_dbl(data, p_mod_sd), merged_p_int = map_dbl(data, p_mod_int),
        merged_p_slp = map_dbl(data, p_mod_slp))

The number of cases Scenario A

# full dataset
dat_slopes <- dat %>%
    filter(fm_diff_slope_p <= 0.05 & fm_diff_int_p > 0.05)

# 17 out of 363 traits sig slope diff - scenario A
nrow(dat_slopes)
## [1] 17
# reduced dataset
dat_slopes1 <- dat1 %>%
    filter(fm_diff_slope_p <= 0.05 & fm_diff_int_p > 0.05)

dat_slopes2 <- m_dat2 %>%
    filter(merged_p_slp <= 0.05 & merged_p_int > 0.05)

# 11 out of 219 traits sig slope diff - scenario A
nrow(dat_slopes1) + nrow(dat_slopes2)
## [1] 11

The number of Scenario B

# full dataset
dat_int <- dat %>%
    filter(fm_diff_int_p <= 0.05 & fm_diff_slope_p > 0.05)

# 154 out of 363 traits sig intercept diff same slope - scenario B
nrow(dat_int)
## [1] 154
# reduced dataset
dat_int1 <- dat1 %>%
    filter(fm_diff_int_p <= 0.05 & fm_diff_slope_p > 0.05)

dat_int2 <- m_dat2 %>%
    filter(merged_p_int <= 0.05 & merged_p_slp > 0.05)

# 93 out of 219 traits sig intercept diff same slope - scenario B
nrow(dat_int1) + nrow(dat_int2)
## [1] 93

The number of Scenario C

# full dataset
dat_intSlopes <- dat %>%
    filter(fm_diff_int_p <= 0.05 & fm_diff_slope_p <= 0.05)

# 70 out of 363 sig intercept and slope diff - scenario C
nrow(dat_intSlopes)
## [1] 70
# reduced dataset
dat_intSlopes1 <- dat1 %>%
    filter(fm_diff_int_p <= 0.05 & fm_diff_slope_p <= 0.05)

dat_intSlopes2 <- m_dat2 %>%
    filter(merged_p_int <= 0.05 & merged_p_slp <= 0.05)

# 57 out of 219 sig intercept and slope diff - scenario C
nrow(dat_intSlopes1) + nrow(dat_intSlopes2)
## [1] 57

Not in these scenarios

# full dataset
dat_intslopesNS <- dat %>%
    filter(fm_diff_slope_p > 0.05 & fm_diff_int_p > 0.05)
# 122 out of 363 - no sig difference between intercept and slope - scenario D
nrow(dat_intslopesNS)
## [1] 122
# reduced dataset
dat_intslopesNS1 <- dat1 %>%
    filter(fm_diff_slope_p > 0.05 & fm_diff_int_p > 0.05)

dat_intslopesNS2 <- m_dat2 %>%
    filter(merged_p_int > 0.05 & merged_p_slp > 0.05)

# 58 out of 219 no sig difference between intercept and slope - scenario D
nrow(dat_intslopesNS1) + nrow(dat_intslopesNS2)
## [1] 58

Sex difference in residual SD

# full dataset 249 out of 363 signficant differences in residual SDs
length(which(dat$p_val_sd <= 0.05))
## [1] 249
# hist(log(dat$p_val_sd)) # p = 0.05 ~ - 3

# 154 of out of 219 signficant differences in residual SDs
length(which(m_dat2$merged_p_sd <= 0.05)) + length(which(dat1$p_val_sd <= 0.05))
## [1] 154

Creating Figure 2

# set colour for males and females

colours <- c("#D55E00", "#009E73")  # c('#882255','#E69F00') 
colours2 <- c("#D55E00", "#7D26CD", "#009E73")

# sex bias in slope parameter under scenario A
dat_p1 <- dat_slopes %>%
    group_by_at(vars(Category)) %>%
    summarise(malebias = sum(m_slope > f_slope), femalebias = sum(f_slope > m_slope),
        total = malebias + femalebias, malepercent = malebias * 100/total, femalepercent = femalebias *
            100/total)


dat_p1 <- gather(as.data.frame(dat_p1), key = sex, value = percent, malepercent:femalepercent,
    factor_key = TRUE)


dat_p1$samplesize <- with(dat_p1, ifelse(sex == "malepercent", malebias, femalebias))

# Adding All
dat_p1 %>%
    group_by(sex) %>%
    summarise(malebias = sum(malebias), femalebias = sum(femalebias), total = sum(total),
        ) -> part

part %>%
    mutate(Category = "All", sex = c("malepercent", "femalepercent"), percent = c(100 *
        (malebias[1]/total[1]), 100 * (femalebias[1]/total[1])), samplesize = c(malebias[1],
        femalebias[1])) -> part


# select(Category, malebias, femalebias, total, sex, percent, samplesize)
dat_p1 <- bind_rows(dat_p1, part)



p1 <- ggplot(dat_p1) + aes(x = Category, y = percent, fill = sex) + geom_col() +
    geom_hline(yintercept = 50, linetype = "dashed", color = "gray40") + geom_text(data = subset(dat_p1,
    samplesize != 0), aes(label = samplesize), position = position_stack(vjust = 0.5),
    color = "white", size = 3.5) + scale_fill_manual(values = colours) + theme_bw(base_size = 18) +
    theme(strip.text.y = element_text(angle = 270, size = 10, margin = margin(t = 15,
        r = 15, b = 15, l = 15)), strip.text.x = element_text(size = 12), strip.background = element_rect(colour = NULL,
        linetype = "blank", fill = "gray90"), text = element_text(size = 14), panel.spacing = unit(0.5,
        "lines"), panel.border = element_blank(), axis.line = element_line(), panel.grid.major.x = element_line(linetype = "solid",
        colour = "gray95"), panel.grid.major.y = element_line(linetype = "solid",
        colour = "gray95"), panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank(),
        axis.title.x = element_blank(), axis.title.y = element_blank(), plot.title = element_text(size = 14),
        legend.position = "none") + coord_flip() + labs(title = "Scenario A - different slopes, \n                    same intercepts")



# sex bias in intercept parameter - scenario B
dat_p2 <- dat_int %>%
    group_by_at(vars(Category)) %>%
    summarise(malebias = sum(m_intercept > f_intercept), femalebias = sum(f_intercept >
        m_intercept), total = malebias + femalebias, malepercent = malebias * 100/total,
        femalepercent = femalebias * 100/total)

dat_p2 <- gather(as.data.frame(dat_p2), key = sex, value = percent, malepercent:femalepercent,
    factor_key = TRUE)

dat_p2$samplesize <- with(dat_p2, ifelse(sex == "malepercent", malebias, femalebias))

# addeing All
dat_p2 %>%
    group_by(sex) %>%
    summarise(malebias = sum(malebias), femalebias = sum(femalebias), total = sum(total),
        ) -> part2

part2 %>%
    mutate(Category = "All", sex = c("malepercent", "femalepercent"), percent = c(100 *
        (malebias[1]/total[1]), 100 * (femalebias[1]/total[1])), samplesize = c(malebias[1],
        femalebias[1])) -> part2


# select(Category, malebias, femalebias, total, sex, percent, samplesize)
dat_p2 <- bind_rows(dat_p2, part2)


p2 <- ggplot(dat_p2) + aes(x = Category, y = percent, fill = sex) + geom_col() +
    geom_hline(yintercept = 50, linetype = "dashed", color = "gray40") + geom_text(data = subset(dat_p2,
    samplesize != 0), aes(label = samplesize), position = position_stack(vjust = 0.5),
    color = "white", size = 3.5) + scale_fill_manual(values = colours) + theme_bw(base_size = 18) +
    theme(strip.text.y = element_text(angle = 270, size = 10, margin = margin(t = 15,
        r = 15, b = 15, l = 15)), strip.text.x = element_text(size = 12), strip.background = element_rect(colour = NULL,
        linetype = "blank", fill = "gray90"), text = element_text(size = 14), panel.spacing = unit(0.5,
        "lines"), panel.border = element_blank(), axis.line = element_line(), panel.grid.major.x = element_line(linetype = "solid",
        colour = "gray95"), panel.grid.major.y = element_line(linetype = "solid",
        color = "gray95"), panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank(),
        axis.title.x = element_blank(), axis.title.y = element_blank(), plot.title = element_text(size = 14),
        legend.position = "none") + coord_flip() + labs(title = "Scenario B - same slopes, \n            different intercepts")


# sex bias in sig intercept and slope parameter - scenario C
dat_p3 <- dat_intSlopes %>%
    group_by_at(vars(Category)) %>%
    summarise(malebias = sum(m_intercept > f_intercept & m_slope > f_slope), mixed = sum(m_intercept >
        f_intercept & m_slope < f_slope, m_intercept < f_intercept & m_slope > f_slope),
        femalebias = sum(f_intercept > m_intercept & f_slope > m_slope), total = malebias +
            mixed + femalebias, malepercent = malebias * 100/total, mixedpercent = mixed *
            100/total, femalepercent = femalebias * 100/total)

dat_p3 <- gather(as.data.frame(dat_p3), key = sex, value = percent, malepercent:femalepercent,
    factor_key = TRUE)
dat_p3$samplesize <- with(dat_p3, ifelse(sex == "malepercent", malebias, ifelse(sex ==
    "mixedpercent", mixed, femalebias)))


# adding All
dat_p3 %>%
    group_by(sex) %>%
    summarise(malebias = sum(malebias), mixed = sum(mixed), femalebias = sum(femalebias),
        total = sum(total), ) -> part3

part3 %>%
    mutate(Category = "All", sex = c("malepercent", "mixedpercent", "femalepercent"),
        percent = c(100 * (malebias[1]/total[1]), 100 * (mixed[1]/total[1]), 100 *
            (femalebias[1]/total[1])), samplesize = c(malebias[1], mixed[1], femalebias[1])) ->
    part3


# select(Category, malebias, femalebias, total, sex, percent, samplesize)
dat_p3 <- bind_rows(dat_p3, part3)

p3 <- ggplot(dat_p3) + aes(x = Category, y = percent, fill = sex) + geom_col() +
    geom_hline(yintercept = 50, linetype = "dashed", color = "gray40") + geom_text(data = subset(dat_p3,
    samplesize != 0), aes(label = samplesize), position = position_stack(vjust = 0.5),
    color = "white", size = 3.5) + scale_fill_manual(values = colours2) + theme_bw(base_size = 18) +
    theme(strip.text.y = element_text(angle = 270, size = 10, margin = margin(t = 15,
        r = 15, b = 15, l = 15)), strip.text.x = element_text(size = 12), strip.background = element_rect(colour = NULL,
        linetype = "blank", fill = "gray90"), text = element_text(size = 14), panel.spacing = unit(0.5,
        "lines"), panel.border = element_blank(), axis.line = element_line(), panel.grid.major.x = element_line(linetype = "solid",
        colour = "gray95"), panel.grid.major.y = element_line(linetype = "solid",
        color = "gray95"), panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank(),
        axis.title.y = element_blank(), plot.title = element_text(size = 14), legend.position = "none") +
    ylab("Percentage (%)") + coord_flip() + labs(title = "Scenario C - different slopes, \n                different intercepts")

# sex bias in sd
dat_p4 <- dat %>%
    filter(p_val_sd <= 0.05) %>%
    group_by_at(vars(Category)) %>%
    summarise(malebias = sum(m_sd > f_sd), femalebias = sum(f_sd > m_sd), total = malebias +
        femalebias, malepercent = malebias * 100/total, femalepercent = femalebias *
        100/total)


dat_p4 <- gather(as.data.frame(dat_p4), key = sex, value = percent, malepercent:femalepercent,
    factor_key = TRUE)

dat_p4$samplesize <- with(dat_p4, ifelse(sex == "malepercent", malebias, femalebias))


# addeing All
dat_p4 %>%
    group_by(sex) %>%
    summarise(malebias = sum(malebias), femalebias = sum(femalebias), total = sum(total),
        ) -> part4

part4 %>%
    mutate(Category = "All", sex = c("malepercent", "femalepercent"), percent = c(100 *
        (malebias[1]/total[1]), 100 * (femalebias[1]/total[1])), samplesize = c(malebias[1],
        femalebias[1])) -> part4


# select(Category, malebias, femalebias, total, sex, percent, samplesize)
dat_p4 <- bind_rows(dat_p4, part4)

p4 <- ggplot(dat_p4) + aes(x = Category, y = percent, fill = sex) + geom_col() +
    geom_hline(yintercept = 50, linetype = "dashed", color = "gray40") + geom_text(data = subset(dat_p4,
    samplesize != 0), aes(label = samplesize), position = position_stack(vjust = 0.5),
    color = "white", size = 3.5) + scale_fill_manual(values = colours) + theme_bw(base_size = 18) +
    theme(strip.text.y = element_text(angle = 270, size = 10, margin = margin(t = 15,
        r = 15, b = 15, l = 15)), strip.text.x = element_text(size = 12), strip.background = element_rect(colour = NULL,
        linetype = "blank", fill = "gray90"), text = element_text(size = 14), panel.spacing = unit(0.5,
        "lines"), panel.border = element_blank(), axis.line = element_line(), panel.grid.major.x = element_line(linetype = "solid",
        colour = "gray95"), panel.grid.major.y = element_line(linetype = "solid",
        color = "gray95"), panel.grid.minor.y = element_blank(), panel.grid.minor.x = element_blank(),
        axis.title.y = element_blank(), plot.title = element_text(size = 14), legend.position = "none") +
    ylab("Percentage (%)") + coord_flip() + labs(title = "Statistically significant\nsex difference in residual SDs")

# putting all together
(p1 + p2)/(p3 + p4) + plot_annotation(tag_levels = "A")

# note that the key was inserted using Illustrator

Fig. 2 Sex biases for mice phenotypic traits arrange in functional groups (see the main tex)

Functional categories in the dataset

par(mar = c(6, 6, 6, 6))
v = c(85, 39, 21, 31, 25, 111, 8, 22, 33)
t = c("behaviour", "eye", "hearing", "heart", "hematology", "immunology", "metabolism",
    "morphology", "physiology")
d = data.frame(trait = t, n = v)
d = d[order(d$n, decreasing = TRUE), ]
barplot(height = d$n, names.arg = d$trait, las = 3, col = seq_along(d$trait) + 1,
    ylim = c(0, 80))

Fig. S1 The number of traits in each of 9 functional categories.

Extra: Comparing models with and wihout substrains

# loading data
dat_short <- read_csv(here("data/data_comparision.csv"))


dat_short %>%
    group_by(parameter_group) %>%
    mutate(count = n()) -> dat_short
#
dat_short1 <- dat_short[which(dat_short$count == 1), ]
# dim(dat1)

# taking out independent traits
dat_short2 <- dat_short[-which(dat_short$count == 1), ]

# nesting data into a lot of data sets and apply p_mod function
n_dat_short2 <- dat_short2 %>%
    group_by(parameter_group) %>%
    nest()

# function to get merged p value for comparing models
p_comp <- function(data) {

    len <- dim(data)[1]
    Rmat <- matrix(0.8, nrow = len, ncol = len)
    diag(Rmat) <- 1

    p_mod <- fisher(data$p_value, adjust = "liji", R = Rmat)
    p <- p_mod$p
    return(p)

}

# merged data
m_dat_short2 <- n_dat_short2 %>%
    mutate(merged_p_comp = map_dbl(data, p_comp))

# short dataset
dat_sig <- dat_short %>%
    filter(p_value <= 0.05)

# 155 out of 248 traits sig comparisons
nrow(dat_short)
## [1] 248
nrow(dat_sig)
## [1] 155
# reduced dataset
dat_sig1 <- dat_short1 %>%
    filter(p_value <= 0.05)

dat_sig2 <- m_dat_short2 %>%
    filter(merged_p_comp <= 0.05)

# 98 out of 154 traits sig comparisons
nrow(dat_short1) + nrow(m_dat_short2)
## [1] 154
nrow(dat_sig1) + nrow(dat_sig2)
## [1] 98

Meta-analysis

Calculating absolute effect sizes

Here we convert our effect sizes to absolute values assuming folded normal distributions.

## for folded normal distribution see:
## https://en.wikipedia.org/wiki/Folded_normal_distribution

# folded mean
folded_mu <- function(mean, variance) {
    mu <- mean
    sigma <- sqrt(variance)
    fold_mu <- sigma * sqrt(2/pi) * exp((-mu^2)/(2 * sigma^2)) + mu * (1 - 2 * pnorm(-mu/sigma))
    fold_mu
}

# folded variance
folded_v <- function(mean, variance) {
    mu <- mean
    sigma <- sqrt(variance)
    fold_mu <- sigma * sqrt(2/pi) * exp((-mu^2)/(2 * sigma^2)) + mu * (1 - 2 * pnorm(-mu/sigma))
    fold_se <- sqrt(mu^2 + sigma^2 - fold_mu^2)
    # adding se to make bigger mean
    fold_v <- fold_se^2
    fold_v
}


dat <- dat %>%
    mutate(abs_int = folded_mu(fm_diff_int, fm_diff_int_se^2), abs_slope = folded_mu(fm_diff_slope,
        fm_diff_slope_se^2), abs_lnVR = folded_mu(lnVR, VlnVR), V_abs_int = folded_v(fm_diff_int,
        fm_diff_int_se^2), V_abs_slope = folded_v(fm_diff_slope, fm_diff_slope_se^2),
        V_abs_lnVR = folded_v(lnVR, VlnVR), total_n = f_n + m_n)

Comparing sex difference in intercepts

This is a meta-analytic model of sex differences in intercepts (mean traits). We use the rubust function calculates to see whether our results form the model is robust (consistent).

modelia <- rma.mv(yi = abs_int, V = V_abs_int, random = list(~1 | Category, ~1 |
    parameter_group, ~1 | obs), data = dat)
summary(modelia)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##  296.4722  -592.9444  -584.9444  -569.3779  -584.8324   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0011  0.0327      9     no         Category 
## sigma^2.2  0.0046  0.0676    219     no  parameter_group 
## sigma^2.3  0.0044  0.0663    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 53989.7808, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.0895  0.0132  6.7869  <.0001  0.0636  0.1153  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# robust variance estimator
robust(modelia, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0011  0.0327      9     no         Category 
## sigma^2.2  0.0046  0.0676    219     no  parameter_group 
## sigma^2.3  0.0044  0.0663    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 53989.7808, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Model Results:
## 
## estimate      se¹     tval¹   df¹    pval¹   ci.lb¹   ci.ub¹      
##   0.0895  0.0071   12.6879   218   <.0001   0.0756   0.1033   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t-test and confidence interval, df: residual method)
# I2 (heterogeneity)
i2_ml(modelia)
##           I2_Total        I2_Category I2_parameter_group             I2_obs 
##           99.99947           10.66137           45.50901           43.82909

This is a meta-regression model of sex differences in intercepts (mean traits) with a functional category as a moderator. We used the rubust function calculates to see whether our results form the model is robust (consistent).

model1a <- rma.mv(yi = abs_int, V = V_abs_int, mod = ~Category - 1, random = list(~1 |
    parameter_group, ~1 | obs), data = dat)
summary(model1a)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##  295.4703  -590.9406  -568.9406  -526.3783  -568.1687   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0047  0.0686    219     no  parameter_group 
## sigma^2.2  0.0044  0.0662    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 44316.0433, p-val < .0001
## 
## Test of Moderators (coefficients 1:9):
## QM(df = 9) = 261.7204, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se     zval    pval    ci.lb   ci.ub      
## CategoryBehaviour     0.1405  0.0130  10.8057  <.0001   0.1150  0.1660  *** 
## CategoryEye           0.0407  0.0200   2.0359  0.0418   0.0015  0.0799    * 
## CategoryHearing       0.0492  0.0424   1.1602  0.2460  -0.0339  0.1324      
## CategoryHeart         0.0642  0.0179   3.5836  0.0003   0.0291  0.0992  *** 
## CategoryHematology    0.0906  0.0228   3.9679  <.0001   0.0458  0.1353  *** 
## CategoryImmunology    0.1255  0.0168   7.4585  <.0001   0.0926  0.1585  *** 
## CategoryMetabolism    0.1132  0.0342   3.3097  0.0009   0.0461  0.1802  *** 
## CategoryMorphology    0.0469  0.0223   2.0997  0.0358   0.0031  0.0907    * 
## CategoryPhysiology    0.1085  0.0167   6.5152  <.0001   0.0759  0.1412  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
robust(model1a, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0047  0.0686    219     no  parameter_group 
## sigma^2.2  0.0044  0.0662    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 44316.0433, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Test of Moderators (coefficients 1:9):¹
## F(df1 = 9, df2 = 210) = 28.9630, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se¹     tval¹   df¹    pval¹    ci.lb¹ 
## CategoryBehaviour     0.1405  0.0139   10.1079   210   <.0001    0.1131  
## CategoryEye           0.0407  0.0108    3.7664   210   0.0002    0.0194  
## CategoryHearing       0.0492  0.0264    1.8678   210   0.0632   -0.0027  
## CategoryHeart         0.0642  0.0201    3.1883   210   0.0016    0.0245  
## CategoryHematology    0.0906  0.0180    5.0232   210   <.0001    0.0550  
## CategoryImmunology    0.1255  0.0153    8.2124   210   <.0001    0.0954  
## CategoryMetabolism    0.1132  0.0419    2.7023   210   0.0074    0.0306  
## CategoryMorphology    0.0469  0.0158    2.9675   210   0.0034    0.0157  
## CategoryPhysiology    0.1085  0.0206    5.2751   210   <.0001    0.0680  
##                      ci.ub¹      
## CategoryBehaviour   0.1679   *** 
## CategoryEye         0.0620   *** 
## CategoryHearing     0.1012     . 
## CategoryHeart       0.1038    ** 
## CategoryHematology  0.1261   *** 
## CategoryImmunology  0.1557   *** 
## CategoryMetabolism  0.1957    ** 
## CategoryMorphology  0.0781    ** 
## CategoryPhysiology  0.1491   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t/F-tests and confidence intervals, df: residual method)
# R2 (variance explained)
r2_ml(model1a)
##    R2_marginal R2_conditional 
##      0.1326077      0.5820628

Comparing sex difference in slopes

This is a meta-analytic model of sex differences in slopes. We used the rubust function calculates to see whether our results form the model is robust (consistent).

modelsa <- rma.mv(yi = abs_slope, V = V_abs_slope, random = list(~1 | Category, ~1 |
    parameter_group, ~1 | obs), data = dat)
summary(modelsa)  # not sig this means sometimes male is high other times female has steaper slops
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##     logLik    Deviance         AIC         BIC        AICc   
##   833.1152  -1666.2303  -1658.2303  -1642.6638  -1658.1183   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0001  0.0072      9     no         Category 
## sigma^2.2  0.0002  0.0149    219     no  parameter_group 
## sigma^2.3  0.0000  0.0000    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 2886.1197, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.0181  0.0028  6.4138  <.0001  0.0126  0.0236  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
robust(modelsa, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0001  0.0072      9     no         Category 
## sigma^2.2  0.0002  0.0149    219     no  parameter_group 
## sigma^2.3  0.0000  0.0000    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 2886.1197, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Model Results:
## 
## estimate      se¹     tval¹   df¹    pval¹   ci.lb¹   ci.ub¹      
##   0.0181  0.0014   12.9962   218   <.0001   0.0154   0.0209   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t-test and confidence interval, df: residual method)
# I2 (heterogeneity)
i2_ml(modelia)
##           I2_Total        I2_Category I2_parameter_group             I2_obs 
##           99.99947           10.66137           45.50901           43.82909

This is a meta-regression model of sex differences in slopes with a functional category as a moderator. We use the rubust function calculates to see whether our results form the model is robust (consistent).

model2a <- rma.mv(yi = abs_slope, V = V_abs_slope, mod = ~Category - 1, random = list(~1 |
    parameter_group, ~1 | obs), data = dat)
summary(model2a)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##     logLik    Deviance         AIC         BIC        AICc   
##   820.0868  -1640.1737  -1618.1737  -1575.6114  -1617.4017   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0002  0.0150    219     no  parameter_group 
## sigma^2.2  0.0000  0.0000    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 2375.7973, p-val < .0001
## 
## Test of Moderators (coefficients 1:9):
## QM(df = 9) = 227.8660, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se    zval    pval    ci.lb   ci.ub      
## CategoryBehaviour     0.0217  0.0030  7.2175  <.0001   0.0158  0.0275  *** 
## CategoryEye           0.0169  0.0043  3.9154  <.0001   0.0084  0.0254  *** 
## CategoryHearing       0.0086  0.0088  0.9838  0.3252  -0.0086  0.0258      
## CategoryHeart         0.0118  0.0032  3.6769  0.0002   0.0055  0.0180  *** 
## CategoryHematology    0.0141  0.0031  4.5811  <.0001   0.0081  0.0202  *** 
## CategoryImmunology    0.0373  0.0044  8.5081  <.0001   0.0287  0.0460  *** 
## CategoryMetabolism    0.0214  0.0061  3.5218  0.0004   0.0095  0.0333  *** 
## CategoryMorphology    0.0098  0.0038  2.6150  0.0089   0.0025  0.0172   ** 
## CategoryPhysiology    0.0193  0.0026  7.3198  <.0001   0.0141  0.0245  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
robust(model2a, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0002  0.0150    219     no  parameter_group 
## sigma^2.2  0.0000  0.0000    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 2375.7973, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Test of Moderators (coefficients 1:9):¹
## F(df1 = 9, df2 = 210) = 31.7213, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se¹    tval¹   df¹    pval¹   ci.lb¹   ci.ub¹ 
## CategoryBehaviour     0.0217  0.0030   7.3247   210   <.0001   0.0158   0.0275  
## CategoryEye           0.0169  0.0030   5.7321   210   <.0001   0.0111   0.0227  
## CategoryHearing       0.0086  0.0030   2.8515   210   0.0048   0.0027   0.0146  
## CategoryHeart         0.0118  0.0016   7.3875   210   <.0001   0.0086   0.0149  
## CategoryHematology    0.0141  0.0027   5.2585   210   <.0001   0.0088   0.0194  
## CategoryImmunology    0.0373  0.0041   9.1947   210   <.0001   0.0293   0.0454  
## CategoryMetabolism    0.0214  0.0055   3.8664   210   0.0001   0.0105   0.0323  
## CategoryMorphology    0.0098  0.0043   2.3101   210   0.0219   0.0014   0.0182  
## CategoryPhysiology    0.0193  0.0035   5.5593   210   <.0001   0.0125   0.0262  
##                         
## CategoryBehaviour   *** 
## CategoryEye         *** 
## CategoryHearing      ** 
## CategoryHeart       *** 
## CategoryHematology  *** 
## CategoryImmunology  *** 
## CategoryMetabolism  *** 
## CategoryMorphology    * 
## CategoryPhysiology  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t/F-tests and confidence intervals, df: residual method)
# R2 (variance explained)
r2_ml(model2a)
##    R2_marginal R2_conditional 
##      0.3072461      1.0000000

Comparing sex difference in resdiaul SDs

This is a meta-analytic model of sex differences in residual SDs. We use the rubust function calculates to see whether our results form the model is robust (consistent).

modelsda <- rma.mv(yi = abs_lnVR, V = V_abs_lnVR, random = list(~1 | Category, ~1 |
    parameter_group, ~1 | obs), data = dat)
summary(modelsda)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##  166.4576  -332.9152  -324.9152  -309.3487  -324.8032   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0040  0.0633      9     no         Category 
## sigma^2.2  0.0108  0.1041    219     no  parameter_group 
## sigma^2.3  0.0103  0.1015    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 15825.0243, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.1526  0.0241  6.3401  <.0001  0.1054  0.1998  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
robust(modelsda, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0040  0.0633      9     no         Category 
## sigma^2.2  0.0108  0.1041    219     no  parameter_group 
## sigma^2.3  0.0103  0.1015    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 15825.0243, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Model Results:
## 
## estimate      se¹     tval¹   df¹    pval¹   ci.lb¹   ci.ub¹      
##   0.1526  0.0131   11.6825   218   <.0001   0.1269   0.1783   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t-test and confidence interval, df: residual method)
# I2 (heterogeneity)
i2_ml(modelsda)
##           I2_Total        I2_Category I2_parameter_group             I2_obs 
##           98.83925           15.72988           42.60328           40.50609

This is a meta-regression model of sex differences in residual SDs with a functional category as a moderator. We use the rubust function calculates to see whether our results form the model is robust (consistent).

# meta-regression
model3a <- rma.mv(yi = abs_lnVR, V = V_abs_lnVR, mod = ~Category - 1, random = list(~1 |
    parameter_group, ~1 | obs), data = dat)
summary(model3a)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##  170.3852  -340.7703  -318.7703  -276.2081  -317.9984   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0112  0.1058    219     no  parameter_group 
## sigma^2.2  0.0102  0.1011    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 13783.4544, p-val < .0001
## 
## Test of Moderators (coefficients 1:9):
## QM(df = 9) = 277.5835, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se    zval    pval    ci.lb   ci.ub      
## CategoryBehaviour     0.1121  0.0176  6.3763  <.0001   0.0776  0.1465  *** 
## CategoryEye           0.2923  0.0330  8.8561  <.0001   0.2276  0.3570  *** 
## CategoryHearing       0.0877  0.0653  1.3423  0.1795  -0.0404  0.2157      
## CategoryHeart         0.0915  0.0272  3.3612  0.0008   0.0381  0.1448  *** 
## CategoryHematology    0.1557  0.0351  4.4373  <.0001   0.0869  0.2245  *** 
## CategoryImmunology    0.2336  0.0253  9.2207  <.0001   0.1840  0.2833  *** 
## CategoryMetabolism    0.1147  0.0521  2.2016  0.0277   0.0126  0.2168    * 
## CategoryMorphology    0.1602  0.0344  4.6576  <.0001   0.0928  0.2276  *** 
## CategoryPhysiology    0.1012  0.0255  3.9693  <.0001   0.0512  0.1512  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# R2 (variance explained)
r2_ml(model3a)
##    R2_marginal R2_conditional 
##      0.1888550      0.6128453

Comparing model fits

This is a meta-analytic model of Zr (transformed model fits). We use the rubust function calculates to see whether our results form the model is robust (consistent).

modelr0 <- rma.mv(yi = Zr, V = VZr, random = list(~1 | Category, ~1 | parameter_group,
    ~1 | obs), data = dat)
summary(modelr0)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##   90.2679  -180.5357  -172.5357  -156.9691  -172.4237   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0026  0.0507      9     no         Category 
## sigma^2.2  0.0152  0.1231    219     no  parameter_group 
## sigma^2.3  0.0212  0.1457    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 69539.1184, p-val < .0001
## 
## Model Results:
## 
## estimate      se    zval    pval   ci.lb   ci.ub      
##   0.1634  0.0219  7.4548  <.0001  0.1205  0.2064  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
robust(modelr0, cluster = dat$parameter_group)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0026  0.0507      9     no         Category 
## sigma^2.2  0.0152  0.1231    219     no  parameter_group 
## sigma^2.3  0.0212  0.1457    363     no              obs 
## 
## Test for Heterogeneity:
## Q(df = 362) = 69539.1184, p-val < .0001
## 
## Number of estimates:   363
## Number of clusters:    219
## Estimates per cluster: 1-11 (mean: 1.66, median: 1)
## 
## Model Results:
## 
## estimate      se¹     tval¹   df¹    pval¹   ci.lb¹   ci.ub¹      
##   0.1634  0.0152   10.7662   218   <.0001   0.1335   0.1934   *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 1) results based on cluster-robust inference (var-cov estimator: CR1,
##    approx t-test and confidence interval, df: residual method)
# funnel(modelr0)
i2_ml(modelr0)
##           I2_Total        I2_Category I2_parameter_group             I2_obs 
##           99.55208            6.56152           38.74789           54.24266

This is a meta-regression model of Zr (transformed model fits). with a functional category as a moderator. We use the rubust function calculates to see whether our results form the model is robust (consistent).

# meta-regression
modelr1 <- rma.mv(yi = Zr, mod = ~Category - 1, V = VZr, random = list(~1 | parameter_group,
    ~1 | obs), data = dat)

summary(modelr1)
## 
## Multivariate Meta-Analysis Model (k = 363; method: REML)
## 
##    logLik   Deviance        AIC        BIC       AICc   
##   93.8964  -187.7928  -165.7928  -123.2305  -165.0208   
## 
## Variance Components:
## 
##             estim    sqrt  nlvls  fixed           factor 
## sigma^2.1  0.0149  0.1222    219     no  parameter_group 
## sigma^2.2  0.0213  0.1461    363     no              obs 
## 
## Test for Residual Heterogeneity:
## QE(df = 354) = 56736.3506, p-val < .0001
## 
## Test of Moderators (coefficients 1:9):
## QM(df = 9) = 200.8114, p-val < .0001
## 
## Model Results:
## 
##                     estimate      se    zval    pval    ci.lb   ci.ub      
## CategoryBehaviour     0.1550  0.0222  6.9908  <.0001   0.1115  0.1984  *** 
## CategoryEye           0.1778  0.0390  4.5618  <.0001   0.1014  0.2541  *** 
## CategoryHearing       0.0415  0.0779  0.5330  0.5940  -0.1112  0.1943      
## CategoryHeart         0.1707  0.0351  4.8658  <.0001   0.1019  0.2395  *** 
## CategoryHematology    0.1047  0.0447  2.3426  0.0192   0.0171  0.1924    * 
## CategoryImmunology    0.0845  0.0305  2.7650  0.0057   0.0246  0.1443   ** 
## CategoryMetabolism    0.1967  0.0675  2.9158  0.0035   0.0645  0.3289   ** 
## CategoryMorphology    0.2743  0.0441  6.2137  <.0001   0.1877  0.3608  *** 
## CategoryPhysiology    0.2283  0.0329  6.9303  <.0001   0.1637  0.2928  *** 
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# R2 (variance explained)
r2_ml(modelr1)
##    R2_marginal R2_conditional 
##     0.09049896     0.46492272

Obtaining correlations among intercepts, slopes, SDs and model fits

# quad-variate model

mod_lnsd <- bf(log(abs_lnVR) | se(sqrt(V_abs_lnVR)/abs_lnVR) ~ -1 + Category + (1 |
    q | parameter_group))
mod_lnslp <- bf(log(abs_slope) | se(sqrt(V_abs_slope)/abs_slope) ~ -1 + Category +
    (1 | q | parameter_group))
mod_lnint <- bf(log(abs_int) | se(sqrt(V_abs_int)/abs_int) ~ -1 + Category + (1 |
    q | parameter_group))
mod_lnzr <- bf(log(Zr) | se(sqrt(VZr)/Zr) ~ -1 + Category + (1 | q | parameter_group))

fit_4b <- brm(mod_lnsd + mod_lnslp + mod_lnint + mod_lnzr, data = dat, chains = 2,
    cores = 2, iter = 4000, warmup = 1000, backend = "cmdstanr")

summary(fit_4b)

# saving the model
saveRDS(fit_4b, file = here("data", "fit_4b.rds"))
##  Family: MV(gaussian, gaussian, gaussian, gaussian) 
##   Links: mu = identity; sigma = identity
##          mu = identity; sigma = identity
##          mu = identity; sigma = identity
##          mu = identity; sigma = identity 
## Formula: log(abs_lnVR) | se(sqrt(V_abs_lnVR)/abs_lnVR) ~ -1 + Category + (1 | q | parameter_group) 
##          log(abs_slope) | se(sqrt(V_abs_slope)/abs_slope) ~ -1 + Category + (1 | q | parameter_group) 
##          log(abs_int) | se(sqrt(V_abs_int)/abs_int) ~ -1 + Category + (1 | q | parameter_group) 
##          log(Zr) | se(sqrt(VZr)/Zr) ~ -1 + Category + (1 | q | parameter_group) 
##    Data: dat (Number of observations: 363) 
##   Draws: 2 chains, each with iter = 4000; warmup = 1000; thin = 1;
##          total post-warmup draws = 6000
## 
## Group-Level Effects: 
## ~parameter_group (Number of levels: 219) 
##                                                 Estimate Est.Error l-95% CI
## sd(logabslnVR_Intercept)                            0.81      0.05     0.73
## sd(logabsslope_Intercept)                           1.23      0.07     1.09
## sd(logabsint_Intercept)                             1.29      0.07     1.17
## sd(logZr_Intercept)                                 0.96      0.05     0.86
## cor(logabslnVR_Intercept,logabsslope_Intercept)     0.14      0.08    -0.01
## cor(logabslnVR_Intercept,logabsint_Intercept)       0.07      0.08    -0.08
## cor(logabsslope_Intercept,logabsint_Intercept)      0.82      0.03     0.76
## cor(logabslnVR_Intercept,logZr_Intercept)           0.18      0.08     0.02
## cor(logabsslope_Intercept,logZr_Intercept)          0.37      0.07     0.23
## cor(logabsint_Intercept,logZr_Intercept)            0.53      0.06     0.41
##                                                 u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(logabslnVR_Intercept)                            0.91 1.00      988     1836
## sd(logabsslope_Intercept)                           1.37 1.00     1115     2274
## sd(logabsint_Intercept)                             1.44 1.00     1349     2396
## sd(logZr_Intercept)                                 1.07 1.00      963     1706
## cor(logabslnVR_Intercept,logabsslope_Intercept)     0.30 1.00      856     1500
## cor(logabslnVR_Intercept,logabsint_Intercept)       0.22 1.00      796     1741
## cor(logabsslope_Intercept,logabsint_Intercept)      0.88 1.00     1215     1951
## cor(logabslnVR_Intercept,logZr_Intercept)           0.33 1.00      617     1390
## cor(logabsslope_Intercept,logZr_Intercept)          0.51 1.00      503      931
## cor(logabsint_Intercept,logZr_Intercept)            0.63 1.00      815     1225
## 
## Population-Level Effects: 
##                                Estimate Est.Error l-95% CI u-95% CI Rhat
## logabslnVR_CategoryBehaviour      -2.28      0.11    -2.51    -2.05 1.01
## logabslnVR_CategoryEye            -1.31      0.20    -1.70    -0.91 1.00
## logabslnVR_CategoryHearing        -2.01      0.46    -2.91    -1.09 1.00
## logabslnVR_CategoryHeart          -2.61      0.16    -2.93    -2.30 1.00
## logabslnVR_CategoryHematology     -2.21      0.22    -2.63    -1.75 1.00
## logabslnVR_CategoryImmunology     -1.45      0.16    -1.77    -1.15 1.00
## logabslnVR_CategoryMetabolism     -2.71      0.31    -3.31    -2.08 1.00
## logabslnVR_CategoryMorphology     -2.27      0.22    -2.69    -1.83 1.00
## logabslnVR_CategoryPhysiology     -2.49      0.16    -2.80    -2.19 1.00
## logabsslope_CategoryBehaviour     -2.93      0.16    -3.25    -2.61 1.00
## logabsslope_CategoryEye           -3.88      0.30    -4.48    -3.30 1.00
## logabsslope_CategoryHearing       -4.63      0.73    -6.08    -3.18 1.00
## logabsslope_CategoryHeart         -4.31      0.24    -4.79    -3.84 1.00
## logabsslope_CategoryHematology    -4.80      0.27    -5.36    -4.29 1.00
## logabsslope_CategoryImmunology    -2.93      0.26    -3.43    -2.43 1.00
## logabsslope_CategoryMetabolism    -3.79      0.45    -4.68    -2.89 1.00
## logabsslope_CategoryMorphology    -5.95      0.32    -6.58    -5.31 1.01
## logabsslope_CategoryPhysiology    -4.07      0.21    -4.47    -3.65 1.01
## logabsint_CategoryBehaviour       -1.96      0.16    -2.28    -1.65 1.00
## logabsint_CategoryEye             -3.53      0.32    -4.16    -2.89 1.00
## logabsint_CategoryHearing         -3.20      0.75    -4.64    -1.71 1.00
## logabsint_CategoryHeart           -3.50      0.25    -4.00    -2.99 1.00
## logabsint_CategoryHematology      -3.23      0.21    -3.64    -2.82 1.01
## logabsint_CategoryImmunology      -2.04      0.26    -2.56    -1.54 1.00
## logabsint_CategoryMetabolism      -2.64      0.46    -3.53    -1.75 1.00
## logabsint_CategoryMorphology      -4.63      0.33    -5.26    -3.99 1.01
## logabsint_CategoryPhysiology      -2.56      0.19    -2.94    -2.18 1.01
## logZr_CategoryBehaviour           -2.07      0.12    -2.32    -1.84 1.00
## logZr_CategoryEye                 -1.77      0.25    -2.24    -1.29 1.00
## logZr_CategoryHearing             -2.92      0.55    -3.98    -1.84 1.00
## logZr_CategoryHeart               -2.41      0.19    -2.79    -2.05 1.00
## logZr_CategoryHematology          -3.17      0.16    -3.48    -2.86 1.00
## logZr_CategoryImmunology          -2.35      0.20    -2.75    -1.94 1.00
## logZr_CategoryMetabolism          -1.95      0.36    -2.64    -1.25 1.00
## logZr_CategoryMorphology          -2.16      0.25    -2.64    -1.68 1.00
## logZr_CategoryPhysiology          -1.44      0.15    -1.73    -1.14 1.00
##                                Bulk_ESS Tail_ESS
## logabslnVR_CategoryBehaviour        563     1185
## logabslnVR_CategoryEye              809     1526
## logabslnVR_CategoryHearing         2158     3007
## logabslnVR_CategoryHeart            832     1602
## logabslnVR_CategoryHematology       577     1331
## logabslnVR_CategoryImmunology       532     1077
## logabslnVR_CategoryMetabolism      1455     2060
## logabslnVR_CategoryMorphology       664     1363
## logabslnVR_CategoryPhysiology       551     1195
## logabsslope_CategoryBehaviour      1138     1995
## logabsslope_CategoryEye            1003     1943
## logabsslope_CategoryHearing        1555     2524
## logabsslope_CategoryHeart           999     1936
## logabsslope_CategoryHematology      591     1278
## logabsslope_CategoryImmunology      872     1550
## logabsslope_CategoryMetabolism     1294     2212
## logabsslope_CategoryMorphology      835     1640
## logabsslope_CategoryPhysiology      585     1293
## logabsint_CategoryBehaviour        1219     1879
## logabsint_CategoryEye              1156     1903
## logabsint_CategoryHearing          1590     2701
## logabsint_CategoryHeart            1042     1604
## logabsint_CategoryHematology        634     1580
## logabsint_CategoryImmunology        931     1710
## logabsint_CategoryMetabolism       1378     2387
## logabsint_CategoryMorphology        746     1594
## logabsint_CategoryPhysiology        506     1230
## logZr_CategoryBehaviour            1066     1869
## logZr_CategoryEye                  1261     2115
## logZr_CategoryHearing              1715     2789
## logZr_CategoryHeart                 997     1928
## logZr_CategoryHematology            551     1351
## logZr_CategoryImmunology            995     1766
## logZr_CategoryMetabolism           1291     2289
## logZr_CategoryMorphology            957     1880
## logZr_CategoryPhysiology            456     1070
## 
## Family Specific Parameters: 
##                   Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma_logabslnVR      0.00      0.00     0.00     0.00   NA       NA       NA
## sigma_logabsslope     0.00      0.00     0.00     0.00   NA       NA       NA
## sigma_logabsint       0.00      0.00     0.00     0.00   NA       NA       NA
## sigma_logZr           0.00      0.00     0.00     0.00   NA       NA       NA
## 
## Residual Correlations: 
##                                Estimate Est.Error l-95% CI u-95% CI Rhat
## rescor(logabslnVR,logabsslope)     0.09      0.04     0.01     0.16 1.00
## rescor(logabslnVR,logabsint)       0.04      0.03    -0.01     0.10 1.00
## rescor(logabsslope,logabsint)      0.27      0.03     0.20     0.33 1.00
## rescor(logabslnVR,logZr)           0.00      0.01    -0.02     0.03 1.00
## rescor(logabsslope,logZr)         -0.00      0.01    -0.02     0.02 1.00
## rescor(logabsint,logZr)            0.06      0.01     0.04     0.09 1.00
##                                Bulk_ESS Tail_ESS
## rescor(logabslnVR,logabsslope)     6002     5308
## rescor(logabslnVR,logabsint)       7519     4910
## rescor(logabsslope,logabsint)      6308     4367
## rescor(logabslnVR,logZr)           7879     4817
## rescor(logabsslope,logZr)          7632     4689
## rescor(logabsint,logZr)            8399     4324
## 
## Draws were sampled using sample(hmc). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).

Creating Figure 3

# colour-blind freindly colour
cbpl <- c("#E69F00", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7", "#56B4E9",
    "#AA4499", "#DDCC77")

point.size = 2
branch.size = 3.5

# intercept meta-analysis
p1 <- orchard_plot2(modelia, mod = "Int", xlab = "Absolute difference in standardized intercepts  (F-M)",
    angle = 45, point.size = point.size, N = dat$total_n, legend.on = TRUE, branch.size = branch.size,
    ) + scale_y_discrete(labels = "Overall") + scale_fill_manual(values = "#999999") +
    scale_colour_manual(values = "#999999")  #+
# xlim(c(-0.5, 1.5))

# intercept meta-regression
p2 <- orchard_plot2(model1a, mod = "Category", xlab = "Absolute difference in standardized intercepts  (F-M)",
    angle = 45, point.size = point.size, N = dat$total_n, legend.on = TRUE, branch.size = branch.size,
    ) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl)  #+
# xlim(c(-0.5, 1.5))

# slope meta-analysis
p3 <- orchard_plot2(modelsa, mod = "Int", xlab = "Absolute difference in standardized slopes (F-M)",
    angle = 45, point.size = point.size, k = F, N = dat$total_n, legend.on = FALSE,
    branch.size = branch.size, ) + scale_y_discrete(labels = "") + scale_fill_manual(values = "#999999") +
    scale_colour_manual(values = "#999999")  #+
# xlim(c(-1.5, 10))

# slope meta-regression
p4 <- orchard_plot2(model2a, mod = "Category", xlab = "Absolute difference in standardized slopes (F-M)",
    angle = 45, cb = F, point.size = point.size, k = F, N = dat$total_n, legend.on = FALSE,
    branch.size = branch.size, ) + scale_y_discrete(labels = rep("", 9)) + scale_fill_manual(values = cbpl) +
    scale_colour_manual(values = cbpl)  #+
# xlim(c(-1.5, 10))

# SD meta-analysis
p5 <- orchard_plot2(modelsda, mod = "Category", xlab = "Absolute relative difference in SD (lnVR: F/M)",
    angle = 45, point.size = point.size, k = F, N = dat$total_n, legend.on = FALSE,
    branch.size = branch.size, ) + scale_y_discrete(labels = "") + scale_fill_manual(values = "#999999") +
    scale_colour_manual(values = "#999999")  #+
# xlim(c(-0.2, 1.9))

# SD meta-regression
p6 <- orchard_plot2(model3a, mod = "Category", xlab = "Absolute relative difference in SD (lnVR: F/M)",
    angle = 45, cb = F, point.size = point.size, k = F, N = dat$total_n, legend.on = FALSE,
    branch.size = branch.size, ) + scale_y_discrete(labels = rep("", 9)) + scale_fill_manual(values = cbpl) +
    scale_colour_manual(values = cbpl)  #+
# xlim(c(-0.2, 1.9))


# putting it together
(p1 | p3 | p5)/(p2 | p4 | p6) + plot_layout(heights = c(1, 3)) + plot_annotation(tag_levels = "A")

Fig. 3 Orchard plots illustrating results of multilevel meta-analyses (see the main text)

Creating Figure S1

# meta-analysis with model fit
t1 <- orchard_plot2(modelr0, mod = "Int", xlab = "Zr (transformed variance accounted for)",
    angle = 45, point.size = point.size, branch.size = branch.size, k = F, N = dat$total_n) +
    scale_y_discrete(labels = "Overall") + scale_fill_manual(values = "#999999") +
    scale_colour_manual(values = "#999999")  #+
# xlim(c(-0.5, 1.5))

# meta-regression with model fit
t2 <- orchard_plot2(modelr1, mod = "Category", xlab = "Zr (transformed variance accounted for)",
    angle = 45, point.size = point.size, k = F, N = dat$total_n, branch.size = branch.size,
    ) + #scale_y_discrete(labels = 'Overall') + ) + #scale_y_discrete(labels =
    ) + #scale_y_discrete(labels = 'Overall') + 'Overall') +
scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl)  #+
# xlim(c(-0.5, 1.5))

(t1)/(t2) + plot_layout(heights = c(1, 3)) + plot_annotation(tag_levels = "A")

Fig. S1 Orchard plots illustrating results of multilevel meta-analyses for Zr (model fit)

Creating Figure 4

# creating added precision

# dat %>% mutate(pre_slp_int = 1/sqrt(V_abs_int/abs_int^2 +
# V_abs_slope/abs_slope^2), pre_slp_sd = 1/sqrt(V_abs_slope/abs_slope^2 +
# V_abs_lnVR/abs_lnVR^2), pre_int_sd = 1/sqrt(V_abs_int/abs_int^2 +
# V_abs_lnVR/abs_lnVR^2) ) -> dat

# colour-blind freindly colour
cbpl <- c("#E69F00", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7", "#56B4E9",
    "#AA4499", "#DDCC77")

f1 <- ggplot(data = dat) + geom_point(aes(x = log(abs_slope), y = log(abs_int), col = Category,
    size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(x = "ln(Absolute difference in standardized slopes)", y = "ln(Absolute difference in standardized intercepts)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -10, y = -0.5, label = "r = 0.82 [0.76, 0.88]", size = 3) + theme_bw() +
    theme(legend.key.size = unit(0.5, "cm"), legend.title = element_text(size = 10)) +
    guides(col = "none")

f2 <- ggplot(data = dat) + geom_point(aes(x = log(abs_slope), y = log(abs_lnVR),
    col = Category, size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(x = "ln(Absolute difference in standardized slopes)", y = "ln(Absolute relative difference in SD)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -9.8, y = 0.5, label = "r = 0.14 [-0.01., 0.30]", size = 3) + theme_bw() +
    theme(legend.key.size = unit(0.5, "cm"), legend.title = element_text(size = 10)) +
    guides(col = "none", size = "none")
# scale_size_continuous(breaks = c(200, 2000, 20000), guide = guide_legend()) +

f3 <- ggplot(data = dat) + geom_point(aes(x = log(abs_int), y = log(abs_lnVR), col = Category,
    size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(x = "ln(Absolute difference in standardized intercepts)", y = "ln(Absolute relative difference in SD)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -9.5, y = 0.5, label = "r = 0.07 [-0.08, 0.22]", size = 3) + theme_bw() +
    theme(legend.key.size = unit(0.5, "cm"), legend.title = element_text(size = 10)) +
    guides(size = "none")


(f3/f2/f1) + plot_annotation(tag_levels = "A")

Fig. 4 Bivariate ordinations of log absolute difference between males and females (see the main text)

Creating Figure S2

f4 <- ggplot(data = dat) + geom_point(aes(y = log(Zr), x = log(abs_int), col = Category,
    size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(y = "Zr (transformed variance accounted for)", x = "ln(Absolute difference in standardized intercepts)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -2.5, y = -6, label = "r = 0.53 [0.41., 0.63]", size = 3) + theme_bw() +
    theme(legend.key.size = unit(0.5, "cm"), legend.title = element_text(size = 10)) +
    guides(size = "none")  #+
# theme(legend.position= c(0.03, 0.97), legend.justification = c(0, 0.97))


f5 <- ggplot(data = dat) + geom_point(aes(y = log(Zr), x = log(abs_slope), col = Category,
    size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(y = "Zr (transformed variance accounted for)", x = "ln(Absolute difference in standardized slopes)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -2, y = -6, label = "r = 0.37 [0.23, 0.41]", size = 3) + theme_bw() + theme(legend.key.size = unit(0.5,
    "cm"), legend.title = element_text(size = 10)) + guides(col = "none", size = "none") +
    scale_size_continuous(breaks = c(200, 2000, 20000), guide = guide_legend()) +
    theme(legend.position = c(0.03, 0.97), legend.justification = c(0, 0.97))


f6 <- ggplot(data = dat) + geom_point(aes(y = log(Zr), x = log(abs_lnVR), col = Category,
    size = total_n)) + scale_fill_manual(values = cbpl) + scale_colour_manual(values = cbpl) +
    labs(y = "Zr (transformed variance accounted for)", x = "ln(Absolute relative difference in SD)") +
    labs(color = "Trait types", size = "Sample size (N)") + annotate(geom = "text",
    x = -0.25, y = -5, label = "r = 0.18 [0.02, 0.33]", size = 3) + theme_bw() +
    theme(legend.key.size = unit(0.5, "cm"), legend.title = element_text(size = 10)) +
    guides(col = "none")  #+
# scale_size_continuous(breaks = c(200, 2000, 20000), guide = guide_legend())


(f4/f5/f6) + plot_annotation(tag_levels = "A")

Fig. S2 Bivariate ordinations of log absolute difference between males and females (see the main text)

Software and package versions

sessionInfo() %>%
    pander()

R version 4.2.1 (2022-06-23)

Platform: x86_64-apple-darwin17.0 (64-bit)

locale: en_AU.UTF-8||en_AU.UTF-8||en_AU.UTF-8||C||en_AU.UTF-8||en_AU.UTF-8

attached base packages: stats, graphics, grDevices, utils, datasets, methods and base

other attached packages: cmdstanr(v.0.5.3), rstan(v.2.21.5), StanHeaders(v.2.21.0-7), knitr(v.1.40), formatR(v.1.12), kableExtra(v.1.3.4), brms(v.2.17.0), Rcpp(v.1.0.8.3), pander(v.0.6.5), nlme(v.3.1-157), here(v.1.0.1), broom.mixed(v.0.2.9.4), orchaRd(v.2.0), patchwork(v.1.1.1), poolr(v.1.1-1), metafor(v.3.8-1), metadat(v.1.2-0), Matrix(v.1.4-1), forcats(v.0.5.2), stringr(v.1.4.1), dplyr(v.1.0.10), purrr(v.0.3.5), readr(v.2.1.3), tidyr(v.1.2.1), tibble(v.3.1.8), ggplot2(v.3.3.6) and tidyverse(v.1.3.2)

loaded via a namespace (and not attached): readxl(v.1.4.1), backports(v.1.4.1), systemfonts(v.1.0.4), plyr(v.1.8.7), igraph(v.1.3.2), splines(v.4.2.1), crosstalk(v.1.2.0), listenv(v.0.8.0), rstantools(v.2.2.0), inline(v.0.3.19), digest(v.0.6.30), htmltools(v.0.5.3), fansi(v.1.0.3), magrittr(v.2.0.3), checkmate(v.2.1.0), googlesheets4(v.1.0.1), tzdb(v.0.3.0), globals(v.0.16.1), modelr(v.0.1.9), RcppParallel(v.5.1.5), matrixStats(v.0.62.0), vroom(v.1.6.0), svglite(v.2.1.0), xts(v.0.12.1), rmdformats(v.1.0.4), prettyunits(v.1.1.1), colorspace(v.2.0-3), rvest(v.1.0.3), haven(v.2.5.1), xfun(v.0.34), callr(v.3.7.2), crayon(v.1.5.2), jsonlite(v.1.8.3), zoo(v.1.8-11), glue(v.1.6.2), gtable(v.0.3.1), gargle(v.1.2.1), emmeans(v.1.8.0), webshot(v.0.5.3), distributional(v.0.3.0), pkgbuild(v.1.3.1), abind(v.1.4-5), scales(v.1.2.1), mvtnorm(v.1.1-3), DBI(v.1.1.3), miniUI(v.0.1.1.1), viridisLite(v.0.4.1), xtable(v.1.8-4), bit(v.4.0.4), stats4(v.4.2.1), DT(v.0.23), htmlwidgets(v.1.5.4), httr(v.1.4.4), threejs(v.0.3.3), posterior(v.1.2.2), ellipsis(v.0.3.2), pkgconfig(v.2.0.3), loo(v.2.5.1), farver(v.2.1.1), sass(v.0.4.2), dbplyr(v.2.2.1), utf8(v.1.2.2), labeling(v.0.4.2), tidyselect(v.1.2.0), rlang(v.1.0.6), reshape2(v.1.4.4), later(v.1.3.0), munsell(v.0.5.0), cellranger(v.1.1.0), tools(v.4.2.1), cachem(v.1.0.6), cli(v.3.4.1), generics(v.0.1.3), broom(v.1.0.1), mathjaxr(v.1.6-0), ggridges(v.0.5.3), evaluate(v.0.17), fastmap(v.1.1.0), yaml(v.2.3.6), bit64(v.4.0.5), processx(v.3.7.0), fs(v.1.5.2), future(v.1.28.0), mime(v.0.12), xml2(v.1.3.3), compiler(v.4.2.1), bayesplot(v.1.9.0), shinythemes(v.1.2.0), rstudioapi(v.0.14), reprex(v.2.0.2), bslib(v.0.4.0), stringi(v.1.7.8), highr(v.0.9), ps(v.1.7.1), Brobdingnag(v.1.2-7), lattice(v.0.20-45), markdown(v.1.1), shinyjs(v.2.1.0), tensorA(v.0.36.2), vctrs(v.0.4.2), pillar(v.1.8.1), lifecycle(v.1.0.3), furrr(v.0.3.0), jquerylib(v.0.1.4), bridgesampling(v.1.1-2), estimability(v.1.4.1), httpuv(v.1.6.5), R6(v.2.5.1), bookdown(v.0.26), promises(v.1.2.0.1), gridExtra(v.2.3), parallelly(v.1.32.1), codetools(v.0.2-18), colourpicker(v.1.1.1), gtools(v.3.9.2.2), assertthat(v.0.2.1), rprojroot(v.2.0.3), withr(v.2.5.0), shinystan(v.2.6.0), parallel(v.4.2.1), hms(v.1.1.2), grid(v.4.2.1), coda(v.0.19-4), rmarkdown(v.2.17), googledrive(v.2.0.0), shiny(v.1.7.1), lubridate(v.1.8.0), base64enc(v.0.1-3) and dygraphs(v.1.1.1.6)

LS0tCnRpdGxlOiAiU3VwcG9ydGluZyBJbmZvcm1hdGlvbjogJ1NleCBkaWZmZXJlbmNlcyBpbiBhbGxvbWV0cnkgZm9yIHBoZW5vdHlwaWMgdHJhaXRzIGluIG1pY2UgaW5kaWNhdGUgdGhhdCBmZW1hbGVzIGFyZSBub3Qgc2NhbGVkIG1hbGVzJyAiCnN1YnRpdGxlOiAiTGF1cmEgQS4gQi4gV2lsc29uLCBTdXNhbm5lIFIuIEsuIFphaml0c2NoZWssIE1hbGdvcnphdGEgTGFnaXN6LCBKZXJlbXkgTWFzb24sIEhhbWVkIEhhc2VsaW1hc2hoYWRpICYgU2hpbmljaGkgTmFrYWdhd2EiIAojYXV0aG9yczogCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCICVZJylgIgpvdXRwdXQ6IAogICAgCiAgICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjoKICAgICAgY29kZV9mb2xkaW5nOiBzaG93ICNoaWRlCiAgICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgICAgdG9jX2RlcHRoOiA0CmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogY29uc29sZQotLS0KCmBgYHtyLCBpbmNsdWRlID0gRkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKbWVzc2FnZSA9IEZBTFNFLAp3YXJuaW5nID0gRkFMU0UsCmNhY2hlID0gVFJVRSwgCnRpZHkgPSBUUlVFLCAKZWNobyA9IFRSVUUKKQoKcm0obGlzdCA9IGxzKCkpCmBgYAoKVGhpcyBkb2N1bWVudCBtYWlubHkgcHJvdmlkZXMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBtYWluIGRhdGFzZXQsIGFuZCB0aGUgUiBzY3JpcHRzIGFuZCB0aGVpciBvdXRwdXRzIGZvciB0aGUgcGFwZXIgIlNleCBkaWZmZXJlbmNlcyBpbiBhbGxvbWV0cnkgZm9yIHBoZW5vdHlwaWMgdHJhaXRzIGluZGljYXRlIHRoYXQgZmVtYWxlcyBhcmUgbm90IHNjYWxlZCBtYWxlcyIuCgojIFNldHRpbmctdXAgey50YWJzZXR9CgojIyBMb2FkaW5nIHBhY2thZ2VzCgpgYGB7ciwgcmVzdWx0cz0naGlkZSd9CiMgb2xkZXIgdmVyc2lvbiBvZiB0aGUgb3JjaGFSZCBwYWNrYWdlCiNkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoIml0Y2h5c2hpbi9vcmNoYXJkX3Bsb3QiLCBzdWJkaXIgPSAib3JjaGFSZCIsIGZvcmNlID0gVFJVRSwgYnVpbGRfdmlnbmV0dGVzID0gVFJVRSkKI2luc3RhbGwucGFja2FnZXMoImNtZHN0YW5yIiwgcmVwb3MgPSBjKCJodHRwczovL21jLXN0YW4ub3JnL3ItcGFja2FnZXMvIiwgZ2V0T3B0aW9uKCJyZXBvcyIpKSkKCnBhY21hbjo6cF9sb2FkKHRpZHl2ZXJzZSwKICAgICAgICAgICAgICAgcHVycnIsCiAgICAgICAgICAgICAgIG1ldGFmb3IsIAogICAgICAgICAgICAgICBwb29sciwKICAgICAgICAgICAgICAgcGF0Y2h3b3JrLAogICAgICAgICAgICAgICBvcmNoYVJkLCAjIG9sZGVyIHZlcnNpb246IAogICAgICAgICAgICAgICBicm9vbS5taXhlZCwKICAgICAgICAgICAgICAgaGVyZSwKICAgICAgICAgICAgICAgbmxtZSwKICAgICAgICAgICAgICAgcGFuZGVyLAogICAgICAgICAgICAgICBicm1zLAogICAgICAgICAgICAgICBrYWJsZUV4dHJhLAogICAgICAgICAgICAgICBmb3JtYXRSLAogICAgICAgICAgICAgICBrbml0ciwKICAgICAgICAgICAgICAgYnJtcywKICAgICAgICAgICAgICAgcnN0YW4sCiAgICAgICAgICAgICAgIGNtZHN0YW5yCiAgICAgICAgICAgICAgICkKCmNoZWNrX2NtZHN0YW5fdG9vbGNoYWluKGZpeCA9IFRSVUUsIHF1aWV0ID0gVFJVRSkKYGBgCgojIyBMb2FkaW5nIGN1c3RvbSBmdW5jdGlvbnMKCldlIGxvYWQgY3VzdG9tIGZ1bmN0aW9uIG5vdCBpbmNsdWRlZCBpbiB0aGUgcGFja2FnZXMgYWJvdmUuCgotICAgZnVuY3Rpb25zIGZvciBjYWxjdWxhdGluZyAncGFyYW1ldGVycycgKGludGVyY2VwdHMsIHNsb3BlcyBhbmQgcmVzaWR1YWxzIFNEcyBmb3IgYm90aCBtYWxlcyBhbmQgZmVtYWxlcyBhbmQgbW9kZWwgZml0KSA6IGBnZXRfcGFybWV0ZXJzTmAKLSAgIGZ1bmN0aW9ucyBmb3IgZHJhd2luZyBvcmNoYXJkIHBsb3RzIChtb2RpZmllZCBmcm9tIHRoZSBvcmlnaW5hbCk6IGBvcmNoYXJkX3Bsb3QyYCBhbmQgYXNzb2NpYXRlZCBmdW5jdGlvbnMuCgpgYGB7cn0KCiMgZnVuY3Rpb24gdG8gZ2V0IHdoYXQgd2UgbmVlZCBmcm9tIHRoZXNlIDIgbW9kZWxzICh5b3UgY2FuIGluY2x1ZGUgbW9kZWxzIGluIHRoaXMgZnVuY3Rpb24gYXMgd2VsbCkKZ2V0X3Bhcm1ldGVyc048LSBmdW5jdGlvbihpKXsKICAKICAjIGdyYW5kLW1lYW4gY2VudGVyaW5nIG9mIHdlaWdodHMKICBsbl9jX3dlaWdodCA8LSBzY2FsZShsb2coaVtbIndlaWdodCJdXSksIGNlbnRlciA9IFRSVUUsIHNjYWxlID0gVFJVRSkKICBpWywibG5fY193ZWlnaHQiXSA8LSBsbl9jX3dlaWdodAogIAogIGlmKGlbWyJubWV0YSJdXVsxXSA9PSAxICYmIGlbWyJuc3RyYWluIl1dWzFdID09IDEpewogIAogICAgIyBmZW1hbGUgbW9kZWwgCiAgICBtb2RlbF9mIDwtIGxtZShsb2coZGF0YV9wb2ludDIpIH4gc2V4KmxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QoI21ldGFkYXRhX2dyb3VwID0gfiBsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3N0cmFpbl9uYW1lID0gfiBsbl9jX3dlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9leHBlcmltZW50ID0gfiAxKSwKICAgICAgICAgICAgICAgICAgIHdlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgIAogICAgIyBtYWxlIG1vZGVsCiAgICBtb2RlbF9tIDwtIGxtZShsb2coZGF0YV9wb2ludDIpIH4gcmVsZXZlbChzZXgsIHJlZiA9ICJtYWxlIikqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCgjbWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3N0cmFpbl9uYW1lID0gfiBsbl9jX3dlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9leHBlcmltZW50ID0gfiAxKSwKICAgICAgICAgICAgICAgICAgIHdlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgICMgbmV1dHJhbCBtb2RlbAogICAgbW9kZWxfbiA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHNleCpsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KCNtZXRhZGF0YV9ncm91cCA9IH4gbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgICAgCiAgfSBlbHNlIGlmIChpW1sibm1ldGEiXV1bMV0gPT0gMSkgewogICAgCiAgICAjIGZlbWFsZSBtb2RlbCAKICAgIG1vZGVsX2YgPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiBzZXgqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCgjbWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IHZhcklkZW50KGZvcm0gPSB+MSB8IHNleCksCiAgICAgICAgICAgICAgICAgICBjb250cm9sID0gbG1lQ29udHJvbChvcHQgPSAib3B0aW0iKSwKICAgICAgICAgICAgICAgICAgIGRhdGEgPSBpKQogICAgCiAgICAjIG1hbGUgbW9kZWwKICAgIG1vZGVsX20gPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiByZWxldmVsKHNleCwgcmVmID0gIm1hbGUiKSpsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KCNtZXRhZGF0YV9ncm91cCA9IH4gbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgICBzdHJhaW5fbmFtZSA9IH4gbG5fY193ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZXhwZXJpbWVudCA9IH4gMSksCiAgICAgICAgICAgICAgICAgICB3ZWlnaHRzID0gdmFySWRlbnQoZm9ybSA9IH4xIHwgc2V4KSwKICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBsbWVDb250cm9sKG9wdCA9ICJvcHRpbSIpLAogICAgICAgICAgICAgICAgICAgZGF0YSA9IGkpCiAgICAjIG5ldXRyYWwgbW9kZWwKICAgIG1vZGVsX24gPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiBzZXgqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCgjbWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgIAogIH0gZWxzZSBpZiAoaVtbIm5zdHJhaW4iXV1bMV0gPT0gMSl7CiAgICAKICAgICMgZmVtYWxlIG1vZGVsIAogICAgbW9kZWxfZiA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHNleCpsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KG1ldGFkYXRhX2dyb3VwID0gfiBsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICAgICNzdHJhaW5fbmFtZSA9IH4gbG5fY193ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZXhwZXJpbWVudCA9IH4gMSksCiAgICAgICAgICAgICAgICAgICB3ZWlnaHRzID0gdmFySWRlbnQoZm9ybSA9IH4xIHwgc2V4KSwKICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBsbWVDb250cm9sKG9wdCA9ICJvcHRpbSIpLAogICAgICAgICAgICAgICAgICAgZGF0YSA9IGkpCiAgICAKICAgICMgbWFsZSBtb2RlbAogICAgbW9kZWxfbSA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHJlbGV2ZWwoc2V4LCByZWYgPSAibWFsZSIpKmxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QobWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgI3N0cmFpbl9uYW1lID0gfiBsbl9jX3dlaWdodCwKICAgICAgICAgICAgICAgICAgICAgZGF0ZV9vZl9leHBlcmltZW50ID0gfiAxKSwKICAgICAgICAgICAgICAgICAgIHdlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgICMgbmV1dHJhbCBtb2RlbAogICAgbW9kZWxfbiA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHNleCpsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KG1ldGFkYXRhX2dyb3VwID0gfiBsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICAgICNzdHJhaW5fbmFtZSA9IH4gbG5fY193ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZXhwZXJpbWVudCA9IH4gMSksCiAgICAgICAgICAgICAgICAgICAjd2VpZ2h0cyA9IHZhcklkZW50KGZvcm0gPSB+MSB8IHNleCksCiAgICAgICAgICAgICAgICAgICBjb250cm9sID0gbG1lQ29udHJvbChvcHQgPSAib3B0aW0iKSwKICAgICAgICAgICAgICAgICAgIGRhdGEgPSBpKQogIH0gZWxzZSB7CiAgICAjIGZlbWFsZSBtb2RlbCAKICAgIG1vZGVsX2YgPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiBzZXgqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdChtZXRhZGF0YV9ncm91cCA9IH4gbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJhaW5fbmFtZSA9IH4gbG5fY193ZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfb2ZfZXhwZXJpbWVudCA9IH4gMSksCiAgICAgICAgICAgICAgICAgICB3ZWlnaHRzID0gdmFySWRlbnQoZm9ybSA9IH4xIHwgc2V4KSwKICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBsbWVDb250cm9sKG9wdCA9ICJvcHRpbSIpLAogICAgICAgICAgICAgICAgICAgZGF0YSA9IGkpCiAgICAKICAgICMgbWFsZSBtb2RlbAogICAgbW9kZWxfbSA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHJlbGV2ZWwoc2V4LCByZWYgPSAibWFsZSIpKmxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QobWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgd2VpZ2h0cyA9IHZhcklkZW50KGZvcm0gPSB+MSB8IHNleCksCiAgICAgICAgICAgICAgICAgICBjb250cm9sID0gbG1lQ29udHJvbChvcHQgPSAib3B0aW0iKSwKICAgICAgICAgICAgICAgICAgIGRhdGEgPSBpKQogICAgIyBuZXV0cmFsIG1vZGVsCiAgICBtb2RlbF9uIDwtIGxtZShsb2coZGF0YV9wb2ludDIpIH4gc2V4KmxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QobWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICB9CiAgIyBnZXR0aW5nIGFsbCB3ZSB3YW50CiAgZmVtYWxlcyA8LSBicm9vbS5taXhlZDo6dGlkeShtb2RlbF9mKQogIG1hbGVzIDwtIGJyb29tLm1peGVkOjp0aWR5KG1vZGVsX20pCiAgIyBnZXRzIHZhcmlhbmNlIHdlaWdodHMKICB3ZWlnaHRzIDwtIGF0dHIobW9kZWxfZiRtb2RlbFN0cnVjdCR2YXJTdHJ1Y3QsICJ3ZWlnaHRzIikKICBtYWxlX2NvcnJlY3Rpb24gPC0gMS93ZWlnaHRzW3doaWNoKG5hbWVzKHdlaWdodHMpID09ICJtYWxlIilbMV1dCiAgZmVtYWxlX2NvcnJlY3Rpb24gPC0gMS93ZWlnaHRzW3doaWNoKG5hbWVzKHdlaWdodHMpID09ICJmZW1hbGUiKVsxXV0KICAKICAjIGdldCBwYXJhbWV0ZXJzCiAgcGFyYW1ldGVyX25hbWUgPC0gdG9sb3dlcihpW1sicGFyYW1ldGVyX25hbWUiXV1bMV0pCiAgcHJvY2VkdXJlX25hbWUgPC0gaVtbInByb2NlZHVyZV9uYW1lIl1dWzFdIyAicHJvY2VkdXJlX25hbWUiCiAgbV9uIDwtIHN1bShpW1sic2V4Il1dID09ICJtYWxlIikgIyBzYW1wbGUgc2l6ZSBmb3IgbWFsZXMgCiAgZl9uIDwtIHN1bShpW1sic2V4Il1dID09ICJmZW1hbGUiKSAjIE4gZm8gZmVtYWxlcwogIGZfaW50ZXJjZXB0IDwtIGFzLm51bWVyaWMoZmVtYWxlc1sxLCA0XSkKICBmX2ludGVyY2VwdF9zZSA8LSBhcy5udW1lcmljKGZlbWFsZXNbMSwgNV0pCiAgZl9zbG9wZSA8LSBhcy5udW1lcmljKGZlbWFsZXNbMywgNF0pCiAgZl9zbG9wZV9zZSA8LSBhcy5udW1lcmljKGZlbWFsZXNbMywgNV0pCiAgbV9pbnRlcmNlcHQgPC0gYXMubnVtZXJpYyhtYWxlc1sxLCA0XSkKICBtX2ludGVyY2VwdF9zZSA8LSBhcy5udW1lcmljKG1hbGVzWzEsIDVdKQogIG1fc2xvcGUgIDwtIGFzLm51bWVyaWMobWFsZXNbMywgNF0pCiAgbV9zbG9wZV9zZSAgPC0gYXMubnVtZXJpYyhtYWxlc1szLCA1XSkKICBmbV9kaWZmX2ludCAgPC0gYXMubnVtZXJpYyhtYWxlc1syLCA0XSkKICBmbV9kaWZmX2ludF9zZSAgPC0gYXMubnVtZXJpYyhtYWxlc1syLCA1XSkKICBmbV9kaWZmX2ludF9wICA8LSBhcy5udW1lcmljKG1hbGVzWzIsIDhdKQogIGZtX2RpZmZfc2xvcGUgPC0gYXMubnVtZXJpYyhtYWxlc1s0LCA0XSkKICBmbV9kaWZmX3Nsb3BlX3NlIDwtIGFzLm51bWVyaWMobWFsZXNbNCwgNV0pCiAgZm1fZGlmZl9zbG9wZV9wIDwtIGFzLm51bWVyaWMobWFsZXNbNCwgOF0pCiAgCiAgIyB2YXJpYW5jZSBjb21wb25lbnQKICAjZ3JvdXBfc2QgPC0gYXMubnVtZXJpYyhWYXJDb3JyKG1vZGVsX2YpWywyXVsyXSkKICAjZ19zbG9wZV9zZCA8LSBhcy5udW1lcmljKFZhckNvcnIobW9kZWxfZilbLDJdWzNdKQogICNiYXRjaF9zZCA8LSBhcy5udW1lcmljKFZhckNvcnIobW9kZWxfZilbLDJdWzVdKQogIGZfc2QgPC0gYXMubnVtZXJpYyh0YWlsKFZhckNvcnIobW9kZWxfZilbLDJdLDEpKSpmZW1hbGVfY29ycmVjdGlvbgogIG1fc2QgPC0gYXMubnVtZXJpYyh0YWlsKFZhckNvcnIobW9kZWxfZilbLDJdLDEpKSptYWxlX2NvcnJlY3Rpb24KICAKICAjIG1vZGVsIGZpdAogIHJfbSA8LSBzcXJ0KE11TUluOjpyLnNxdWFyZWRHTE1NKG1vZGVsX24pWzEsMV0pCiAgcl9jIDwtIHNxcnQoTXVNSW46OnIuc3F1YXJlZEdMTU0obW9kZWxfbilbMSwyXSkKICAjIHB1dHRpbmcgaXQgdG9nZXRoZXIKICBwYXJhcyA8LSBkYXRhLmZyYW1lKHBhcmFtZXRlcl9uYW1lLCBwcm9jZWR1cmVfbmFtZSwgCiAgICAgICAgICAgICBmX24sIG1fbiwgZl9pbnRlcmNlcHQsIGZfaW50ZXJjZXB0X3NlLCBmX3Nsb3BlLCBmX3Nsb3BlX3NlLCAKICAgICAgICAgICAgIG1faW50ZXJjZXB0LCBtX2ludGVyY2VwdF9zZSwgbV9zbG9wZSwgbV9zbG9wZV9zZSwgCiAgICAgICAgICAgICBmbV9kaWZmX2ludCwgZm1fZGlmZl9pbnRfc2UsIGZtX2RpZmZfaW50X3AsCiAgICAgICAgICAgICBmbV9kaWZmX3Nsb3BlLCBmbV9kaWZmX3Nsb3BlX3NlLCBmbV9kaWZmX3Nsb3BlX3AsCiAgICAgICAgICAgICBmX3NkLCBtX3NkLCByX20sIHJfYykKICBuYW1lcyhwYXJhcykgPC0gYygncGFyYW1ldGVyX25hbWUnLCAncHJvY2VkdXJlX25hbWUnLCAKICAgICAgICAgICAgICAgICAgICAnZl9uJywgJ21fbicsJ2ZfaW50ZXJjZXB0JywgJ2ZfaW50ZXJjZXB0X3NlJywgJ2Zfc2xvcGUnLCAnZl9zbG9wZV9zZScsCiAgICAgICAgICAgICAgICAgICAgJ21faW50ZXJjZXB0JywgJ21faW50ZXJjZXB0X3NlJywgJ21fc2xvcGUnLCAnbV9zbG9wZV9zZScsCiAgICAgICAgICAgICAgICAgICAgJ2ZtX2RpZmZfaW50JywgJ2ZtX2RpZmZfaW50X3NlJywgJ2ZtX2RpZmZfaW50X3AnLAogICAgICAgICAgICAgICAgICAgICdmbV9kaWZmX3Nsb3BlJywgJ2ZtX2RpZmZfc2xvcGVfc2UnLCAnZm1fZGlmZl9zbG9wZV9wJywKICAgICAgICAgICAgICAgICAgICAnZl9zZCcsICdtX3NkJywgJ3JfbScsICdyX2MnKSAjIHZhcmlhbmNlIGNvbXBvbmVudAogIGludmlzaWJsZShwYXJhcykKICAKfQoKIyBmdW5jdGlvbiB0byBjb21wYXJlIHR3byBtb2RlbHMKZ2V0X3N0cmFpbl9wPC0gZnVuY3Rpb24oaSl7CiAgCiAgIyBjZW50ZXJpbmcgd2VpZ2h0cyBzZXBhcmF0ZWx5IGZvciBlYWNoIAogIGxuX2Nfd2VpZ2h0IDwtIHNjYWxlKGxvZyhpW1sid2VpZ2h0Il1dKSwgY2VudGVyID0gVFJVRSwgc2NhbGUgPSBUUlVFKQogIGlbLCJsbl9jX3dlaWdodCJdIDwtIGxuX2Nfd2VpZ2h0CiAgCiAgaWYgKGlbWyJubWV0YSJdXVsxXSA9PSAxKSB7CiAgICAKICAgICMgbW9kZWwgd2l0aCBzdHJhaW4gYXMgcmFuZG9tIGZhY3RvciAKICAgIG1vZGVsXzEgPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiBzZXgqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCgjbWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgIAogICAgIyBtb2RlbCB3aXRob3V0IHN0cmFpbiBhcyByYW5kb20gZmFjdG9yIAogICAgbW9kZWxfMiA8LSBsbWUobG9nKGRhdGFfcG9pbnQyKSB+IHNleCpsbl9jX3dlaWdodCwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KCNtZXRhZGF0YV9ncm91cCA9IH4gbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgICAjc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgIAogICAgCiAgICAKICB9ICBlbHNlIHsKCiAgICAjIG1vZGVsIHdpdGggc3RyYWluIGFzIHJhbmRvbSBmYWN0b3IgCiAgICBtb2RlbF8xIDwtIGxtZShsb2coZGF0YV9wb2ludDIpIH4gc2V4KmxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QobWV0YWRhdGFfZ3JvdXAgPSB+IGxuX2Nfd2VpZ2h0LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgICMgbW9kZWwgd2l0aG91dCBzdHJhaW4gYXMgcmFuZG9tIGZhY3RvciAKICAgIG1vZGVsXzIgPC0gbG1lKGxvZyhkYXRhX3BvaW50MikgfiBzZXgqbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdChtZXRhZGF0YV9ncm91cCA9IH4gbG5fY193ZWlnaHQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc3RyYWluX25hbWUgPSB+IGxuX2Nfd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX29mX2V4cGVyaW1lbnQgPSB+IDEpLAogICAgICAgICAgICAgICAgICAgI3dlaWdodHMgPSB2YXJJZGVudChmb3JtID0gfjEgfCBzZXgpLAogICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGxtZUNvbnRyb2wob3B0ID0gIm9wdGltIiksCiAgICAgICAgICAgICAgICAgICBkYXRhID0gaSkKICAgIAogIH0KICAKICAjIGFub3ZhIAogIHBfdmFsdWUgPC0gYW5vdmEobW9kZWxfMSwgbW9kZWxfMikkcFtbMl1dCiAgZGVsdGFfYWljIDwtIGFub3ZhKG1vZGVsXzEsIG1vZGVsXzIpJEFJQ1sxXSAtIGFub3ZhKG1vZGVsXzEsIG1vZGVsXzIpJEFJQ1syXSAKICAKICAjIGdldCBwYXJhbWV0ZXJzCiAgcGFyYW1ldGVyX25hbWUgPC0gdG9sb3dlcihpW1sicGFyYW1ldGVyX25hbWUiXV1bMV0pCiAgcHJvY2VkdXJlX25hbWUgPC0gaVtbInByb2NlZHVyZV9uYW1lIl1dWzFdIyAicHJvY2VkdXJlX25hbWUiCiAgCiAgcGFyYXMgPC0gZGF0YS5mcmFtZShwYXJhbWV0ZXJfbmFtZSwgcHJvY2VkdXJlX25hbWUsIGRlbHRhX2FpYywgcF92YWx1ZSkKICBuYW1lcyhwYXJhcykgPC0gYygncGFyYW1ldGVyX25hbWUnLCAncHJvY2VkdXJlX25hbWUnLCAnZGVsdGFfYWljJywgJ3BfdmFsdWUnKSAjIHZhcmlhbmNlIGNvbXBvbmVudAogIGludmlzaWJsZShwYXJhcykKICAKfQoKCiMgZ2V0dGluZyByaWRlIG9mIHRyYWl0cyB3aGljaCBkbyBub3QgcnVuCmdldF9wYXJhX3Bvc3MgPC0gcG9zc2libHkoLmYgPSBnZXRfcGFybWV0ZXJzTiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlID0gTlVMTCkKCgojIGdldHRpbmcgcmlkZSBvZiB0cmFpdHMgd2l0aCBkbyBub3QgcnVuCgpnZXRfcGFyYV9wb3NzMiA8LSBwb3NzaWJseSguZiA9IGdldF9zdHJhaW5fcCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlID0gTlVMTCkKCiMgZnVuY3Rpb25zCgpvcmNoYXJkX3Bsb3QyIDwtIGZ1bmN0aW9uIChvYmplY3QsIG1vZCA9ICJJbnQiLCB4bGFiLCBOID0gIm5vbmUiLCBhbHBoYSA9IDAuNSwgCiAgICAgICAgICBhbmdsZSA9IDkwLCBjYiA9IEZBTFNFLCBrID0gVFJVRSwgdHJhbnNmbSA9IGMoIm5vbmUiLCAidGFuaCIpLCAKICAgICAgICAgIHBvaW50LnNpemUgPSAyLjUsIGJyYW5jaC5zaXplID0gNSwKICAgICAgICAgIGNvbmRpdGlvbi5sYWIgPSAiQ29uZGl0aW9uIiwgbGVnZW5kLm9uID0gVFJVRSkgCnsKICB0cmFuc2ZtIDwtIG1hdGNoLmFyZyh0cmFuc2ZtKQogIGlmIChhbnkoY2xhc3Mob2JqZWN0KSAlaW4lIGMoInJtYS5tdiIsICJybWEiKSkpIHsKICAgIGlmIChtb2QgIT0gIkludCIpIHsKICAgICAgb2JqZWN0IDwtIG1vZF9yZXN1bHRzKG9iamVjdCwgbW9kKQogICAgfQogICAgZWxzZSB7CiAgICAgIG9iamVjdCA8LSBtb2RfcmVzdWx0cyhvYmplY3QsIG1vZCA9ICJJbnQiKQogICAgfQogIH0KICBtb2RfdGFibGUgPC0gb2JqZWN0JG1vZF90YWJsZQogIGRhdGEgPC0gb2JqZWN0JGRhdGEKICBkYXRhJG1vZGVyYXRvciA8LSBmYWN0b3IoZGF0YSRtb2RlcmF0b3IsIGxldmVscyA9IG1vZF90YWJsZSRuYW1lLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gbW9kX3RhYmxlJG5hbWUpCiAgZGF0YSRzY2FsZSA8LSAoMS9zcXJ0KGRhdGFbLCAidmkiXSkpCiAgbGVnZW5kIDwtICJQcmVjaXNpb24gKDEvU0UpIgogCiAgIyBzYW1wbGUgc2l6ZSAKICBpZihhbnkoTiAhPSAibm9uZSIpKXsKICAgIGRhdGEkc2NhbGUgPC0gTgogICAgbGVnZW5kIDwtICJTYW1wbGUgc2l6ZSAoTikiICMgd2Ugd2FudCB0byB1c2UgaXRhbGljCiAgfQogIAogIGlmICh0cmFuc2ZtID09ICJ0YW5oIikgewogICAgY29scyA8LSBzYXBwbHkobW9kX3RhYmxlLCBpcy5udW1lcmljKQogICAgbW9kX3RhYmxlWywgY29sc10gPC0gWnJfdG9fcihtb2RfdGFibGVbLCBjb2xzXSkKICAgIGRhdGEkeWkgPC0gWnJfdG9fcihkYXRhJHlpKQogICAgbGFiZWwgPC0geGxhYgogIH0KICBlbHNlIHsKICAgIGxhYmVsIDwtIHhsYWIKICB9CiAgbW9kX3RhYmxlJEsgPC0gYXMudmVjdG9yKGJ5KGRhdGEsIGRhdGFbLCAibW9kZXJhdG9yIl0sIGZ1bmN0aW9uKHgpIGxlbmd0aCh4WywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5aSJdKSkpCiAgZ3JvdXBfbm8gPC0gbGVuZ3RoKHVuaXF1ZShtb2RfdGFibGVbLCAibmFtZSJdKSkKICBjYnBsIDwtIGMoIiNFNjlGMDAiLCAiIzAwOUU3MyIsICIjRjBFNDQyIiwgIiMwMDcyQjIiLCAiI0Q1NUUwMCIsIAogICAgICAgICAgICAiI0NDNzlBNyIsICIjNTZCNEU5IiwgIiM5OTk5OTkiKQogIGlmIChuYW1lcyhtb2RfdGFibGUpWzJdID09ICJjb25kaXRpb24iKSB7CiAgICBjb25kaXRpb25fbm8gPC0gbGVuZ3RoKHVuaXF1ZShtb2RfdGFibGVbLCAiY29uZGl0aW9uIl0pKQogICAgcGxvdCA8LSBnZ3Bsb3QyOjpnZ3Bsb3QoKSArIGdnYmVlc3dhcm06Omdlb21fcXVhc2lyYW5kb20oZGF0YSA9IGRhdGEsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2dwbG90Mjo6YWVzKHkgPSB5aSwgeCA9IG1vZGVyYXRvciwgc2l6ZSA9IHNjYWxlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSBtb2RlcmF0b3IpLCBhbHBoYSA9IGFscGhhKSArIGdncGxvdDI6Omdlb21faGxpbmUoeWludGVyY2VwdCA9IDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5ldHlwZSA9IDIsIGNvbG91ciA9ICJibGFjayIsIGFscGhhID0gYWxwaGEpICsgCiAgICAgIGdncGxvdDI6Omdlb21fbGluZXJhbmdlKGRhdGEgPSBtb2RfdGFibGUsIGdncGxvdDI6OmFlcyh4ID0gbmFtZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5bWluID0gbG93ZXJDTCwgeW1heCA9IHVwcGVyQ0wpLCBzaXplID0gYnJhbmNoLnNpemUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGdncGxvdDI6OnBvc2l0aW9uX2RvZGdlMih3aWR0aCA9IDAuMykpICsgCiAgICAgIGdncGxvdDI6Omdlb21fcG9pbnRyYW5nZShkYXRhID0gbW9kX3RhYmxlLCBnZ3Bsb3QyOjphZXMoeSA9IGVzdGltYXRlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ID0gbmFtZSwgeW1pbiA9IGxvd2VyUFIsIHltYXggPSB1cHBlclBSLCBzaGFwZSA9IGFzLmZhY3Rvcihjb25kaXRpb24pLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsID0gbmFtZSksIHNpemUgPSAwLjUsIHBvc2l0aW9uID0gZ2dwbG90Mjo6cG9zaXRpb25fZG9kZ2UyKHdpZHRoID0gMC4zKSkgKyAKICAgICAgZ2dwbG90Mjo6c2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IDIwICsgKDE6Y29uZGl0aW9uX25vKSkgKyAKICAgICAgZ2dwbG90Mjo6Y29vcmRfZmxpcCgpICsgZ2dwbG90Mjo6dGhlbWVfYncoKSArIGdncGxvdDI6Omd1aWRlcyhmaWxsID0gIm5vbmUiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSAibm9uZSIpICsgZ2dwbG90Mjo6dGhlbWUobGVnZW5kLnBvc2l0aW9uID0gYygwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSwgbGVnZW5kLmp1c3RpZmljYXRpb24gPSBjKDAsIDEpKSArIGdncGxvdDI6OnRoZW1lKGxlZ2VuZC50aXRsZSA9IGdncGxvdDI6OmVsZW1lbnRfdGV4dChzaXplID0gOSkpICsgCiAgICAgIGdncGxvdDI6OnRoZW1lKGxlZ2VuZC5kaXJlY3Rpb24gPSAiaG9yaXpvbnRhbCIpICsgCiAgICAgIGdncGxvdDI6OnRoZW1lKGxlZ2VuZC5iYWNrZ3JvdW5kID0gZ2dwbG90Mjo6ZWxlbWVudF9ibGFuaygpKSArIAogICAgICBnZ3Bsb3QyOjpsYWJzKHkgPSBsYWJlbCwgeCA9ICIiLCBzaXplID0gbGVnZW5kKSArIAogICAgICBnZ3Bsb3QyOjpzY2FsZV9zaXplX2NvbnRpbnVvdXMoYnJlYWtzID0gYygyMDAsIDIwMDAsIDIwMDAwKSwgZ3VpZGUgPSBndWlkZV9sZWdlbmQoKSkgKyAKICAgICAgZ2dwbG90Mjo6bGFicyhzaGFwZSA9IGNvbmRpdGlvbi5sYWIpICsgZ2dwbG90Mjo6dGhlbWUoYXhpcy50ZXh0LnkgPSBnZ3Bsb3QyOjplbGVtZW50X3RleHQoc2l6ZSA9IDEwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gImJsYWNrIiwgaGp1c3QgPSAwLjUsIGFuZ2xlID0gYW5nbGUpKQogICAgcGxvdCA8LSBwbG90ICsgZ2dwbG90Mjo6YW5ub3RhdGUoInRleHQiLCB5ID0gKG1heChkYXRhJHlpKSArIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1heChkYXRhJHlpKSAqIDAuMSkpLCB4ID0gKHNlcSgxLCBncm91cF9ubywgMSkgKyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMyksIGxhYmVsID0gcGFzdGUoIml0YWxpYyhrKT09IiwgbW9kX3RhYmxlJEtbMTpncm91cF9ub10pLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlID0gVFJVRSwgaGp1c3QgPSAicmlnaHQiLCBzaXplID0gMy41KQogIH0KICBlbHNlIHsKICAgIHBsb3QgPC0gZ2dwbG90Mjo6Z2dwbG90KGRhdGEgPSBtb2RfdGFibGUsIGdncGxvdDI6OmFlcyh4ID0gZXN0aW1hdGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBuYW1lKSkgKyBnZ2JlZXN3YXJtOjpnZW9tX3F1YXNpcmFuZG9tKGRhdGEgPSBkYXRhLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZ3Bsb3QyOjphZXMoeCA9IHlpLCB5ID0gbW9kZXJhdG9yLCBzaXplID0gc2NhbGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSBtb2RlcmF0b3IpLCBncm91cE9uWCA9IEZBTFNFLCBhbHBoYSA9IGFscGhhKSArIAogICAgICBnZ3Bsb3QyOjpnZW9tX2Vycm9yYmFyaChnZ3Bsb3QyOjphZXMoeG1pbiA9IGxvd2VyUFIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1heCA9IHVwcGVyUFIpLCBoZWlnaHQgPSAwLCBzaG93LmxlZ2VuZCA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSA9IDAuNSwgYWxwaGEgPSAwLjYpICsgZ2dwbG90Mjo6Z2VvbV9lcnJvcmJhcmgoZ2dwbG90Mjo6YWVzKHhtaW4gPSBsb3dlckNMLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtYXggPSB1cHBlckNMKSwgaGVpZ2h0ID0gMCwgc2hvdy5sZWdlbmQgPSBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSBicmFuY2guc2l6ZSkgKyBnZ3Bsb3QyOjpnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSAwLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmV0eXBlID0gMiwgY29sb3VyID0gImJsYWNrIiwgYWxwaGEgPSBhbHBoYSkgKyAKICAgICAgZ2dwbG90Mjo6Z2VvbV9wb2ludChnZ3Bsb3QyOjphZXMoZmlsbCA9IG5hbWUpLCBzaXplID0gcG9pbnQuc2l6ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSAyMSkgKyBnZ3Bsb3QyOjp0aGVtZV9idygpICsgZ2dwbG90Mjo6Z3VpZGVzKGZpbGwgPSAibm9uZSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvdXIgPSAibm9uZSIpICsgZ2dwbG90Mjo6dGhlbWUobGVnZW5kLnBvc2l0aW9uID0gYygxLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCksIGxlZ2VuZC5qdXN0aWZpY2F0aW9uID0gYygxLCAwKSkgKyBnZ3Bsb3QyOjp0aGVtZShsZWdlbmQudGl0bGUgPSBnZ3Bsb3QyOjplbGVtZW50X3RleHQoc2l6ZSA9IDkpKSArIAogICAgICBnZ3Bsb3QyOjp0aGVtZShsZWdlbmQuZGlyZWN0aW9uID0gImhvcml6b250YWwiKSArIAogICAgICBnZ3Bsb3QyOjp0aGVtZShsZWdlbmQuYmFja2dyb3VuZCA9IGdncGxvdDI6OmVsZW1lbnRfYmxhbmsoKSkgKyAKICAgICAgZ2dwbG90Mjo6bGFicyh4ID0gbGFiZWwsIHkgPSAiIiwgc2l6ZSA9IGxlZ2VuZCkgKyAKICAgICAgZ2dwbG90Mjo6c2NhbGVfc2l6ZV9jb250aW51b3VzKGJyZWFrcyA9IGMoMjAwLCAyMDAwLCAyMDAwMCksIGd1aWRlID0gZ3VpZGVfbGVnZW5kKCkpICsgCiAgICAgIGdncGxvdDI6OnRoZW1lKGF4aXMudGV4dC55ID0gZ2dwbG90Mjo6ZWxlbWVudF90ZXh0KHNpemUgPSAxMCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG91ciA9ICJibGFjayIsIGhqdXN0ID0gMC41LCBhbmdsZSA9IGFuZ2xlKSkKICAgIGlmIChrID09IFRSVUUpIHsKICAgICAgcGxvdCA8LSBwbG90ICsgZ2dwbG90Mjo6YW5ub3RhdGUoInRleHQiLCB4ID0gKG1heChkYXRhJHlpKSArIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF4KGRhdGEkeWkpICogMC4xKSksIHkgPSAoc2VxKDEsIGdyb3VwX25vLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSArIDAuMyksIGxhYmVsID0gcGFzdGUoIml0YWxpYyhrKT09IiwgbW9kX3RhYmxlJEspLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2UgPSBUUlVFLCBoanVzdCA9ICJyaWdodCIsIHNpemUgPSAzLjUpCiAgICB9CiAgfQogIGlmIChjYiA9PSBUUlVFKSB7CiAgICBwbG90IDwtIHBsb3QgKyBnZ3Bsb3QyOjpzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArIAogICAgICBnZ3Bsb3QyOjpzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9IGNicGwpCiAgfQogIAogIGlmIChsZWdlbmQub24gPT0gRkFMU0UpewogICAgcGxvdCA8LSBwbG90ICsgZ2dwbG90Mjo6dGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQogIH0KICAKICAKICByZXR1cm4ocGxvdCkKfQoKIyBtb2RfcmVzdWx0IG9sZAoKIycgQHRpdGxlIGdldF9lc3QKIycgQGRlc2NyaXB0aW9uIEZ1bmN0aW9uIGdldHMgZXN0aW1hdGVzIGZyb20gcm1hIG9iamVjdHMgKG1ldGFmb3IpCiMnIEBwYXJhbSBtb2RlbCBybWEubXYgb2JqZWN0CiMnIEBwYXJhbSBtb2QgdGhlIG5hbWUgb2YgYSBtb2RlcmF0b3IuIElmIG1ldGEtYW5hbHlzaXMgKGkuZS4gbm8gbW9kZXJhdG9yLCBzZSBtb2QgPSAiSW50IikKIycgQGF1dGhvciBTaGluaWNoaSBOYWthZ2F3YSAtIHMubmFrYWdhd2FAdW5zdy5lZHUuYXUKIycgQGF1dGhvciBEYW5pZWwgTm9ibGUgLSBkYW5pZWwubm9ibGVAYW51LmVkdS5hdQojJyBAZXhwb3J0CgpnZXRfZXN0IDwtIGZ1bmN0aW9uIChtb2RlbCwgbW9kKSB7CiAgbmFtZSA8LSBmaXJzdHVwKGFzLmNoYXJhY3RlcihzdHJpbmdyOjpzdHJfcmVwbGFjZShyb3cubmFtZXMobW9kZWwkYmV0YSksIHt7bW9kfX0sICIiKSkpCiAgCiAgZXN0aW1hdGUgPC0gYXMubnVtZXJpYyhtb2RlbCRiZXRhKQogIGxvd2VyQ0wgPC0gbW9kZWwkY2kubGIKICB1cHBlckNMIDwtIG1vZGVsJGNpLnViCiAgCiAgdGFibGUgPC0gdGliYmxlOjp0aWJibGUobmFtZSA9IGZhY3RvcihuYW1lLCBsZXZlbHMgPSBuYW1lLCBsYWJlbHMgPSBuYW1lKSwgZXN0aW1hdGUgPSBlc3RpbWF0ZSwgbG93ZXJDTCA9IGxvd2VyQ0wsIHVwcGVyQ0wgPSB1cHBlckNMKQogIAogIHJldHVybih0YWJsZSkKfQoKCiMnIEB0aXRsZSBnZXRfcHJlZAojJyBAZGVzY3JpcHRpb24gRnVuY3Rpb24gdG8gZ2V0IHByZWRpY3Rpb24gaW50ZXJ2YWxzIChjcmVkaWJsaXR5IGludGVydmFscykgZnJvbSBybWEgb2JqZWN0cyAobWV0YWZvcikKIycgQHBhcmFtIG1vZGVsIHJtYS5tdiBvYmplY3QKIycgQHBhcmFtIG1vZCB0aGUgbmFtZSBvZiBhIG1vZGVyYXRvcgojJyBAYXV0aG9yIFNoaW5pY2hpIE5ha2FnYXdhIC0gcy5uYWthZ2F3YUB1bnN3LmVkdS5hdQojJyBAYXV0aG9yIERhbmllbCBOb2JsZSAtIGRhbmllbC5ub2JsZUBhbnUuZWR1LmF1CiMnIEBleHBvcnQKCmdldF9wcmVkIDwtIGZ1bmN0aW9uIChtb2RlbCwgbW9kKSB7CiAgCiAgbmFtZSA8LSBmaXJzdHVwKGFzLmNoYXJhY3RlcihzdHJpbmdyOjpzdHJfcmVwbGFjZShyb3cubmFtZXMobW9kZWwkYmV0YSksIHt7bW9kfX0sICIiKSkpCiAgbGVuIDwtIGxlbmd0aChuYW1lKQogIAogIGlmKGxlbiAhPSAxKXsKICAgIG5ld2RhdGEgPC0gbWF0cml4KE5BLCBuY29sID0gbGVuLCBucm93ID0gbGVuKQogICAgCiAgICBwcmVkIDwtIG1ldGFmb3I6OnByZWRpY3Qucm1hKG1vZGVsLCBuZXdtb2RzID0gZGlhZyhsZW4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXUyLmxldmVscyA9IDE6bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYW1tYTIubGV2ZWxzID0gMTpsZW4pCiAgfQogIGVsc2UgewogICAgcHJlZCA8LSBtZXRhZm9yOjpwcmVkaWN0LnJtYShtb2RlbCkKICB9CiAgbG93ZXJQUiA8LSBwcmVkJGNyLmxiCiAgdXBwZXJQUiA8LSBwcmVkJGNyLnViCiAgCiAgdGFibGUgPC0gdGliYmxlOjp0aWJibGUobmFtZSA9IGZhY3RvcihuYW1lLCBsZXZlbHMgPSBuYW1lLCBsYWJlbHMgPSBuYW1lKSwgbG93ZXJQUiA9IGxvd2VyUFIsIHVwcGVyUFIgPSB1cHBlclBSKQogIHJldHVybih0YWJsZSkKfQoKIycgQHRpdGxlIGZpcnN0dXAKIycgQGRlc2NyaXB0aW9uIFVwcGVyY2FzZSBtb2RlcmF0b3IgbmFtZXMKIycgQHBhcmFtIHggYSBjaGFyYWN0ZXIgc3RyaW5nCiMnIEBhdXRob3IgU2hpbmljaGkgTmFrYWdhd2EgLSBzLm5ha2FnYXdhQHVuc3cuZWR1LmF1CiMnIEBhdXRob3IgRGFuaWVsIE5vYmxlIC0gZGFuaWVsLm5vYmxlQGFudS5lZHUuYXUKIycgQHJldHVybiBSZXR1cm5zIGEgY2hhcmFjdGVyIHN0cmluZyB3aXRoIGFsbCBjb21iaW5hdGlvbnMgb2YgdGhlIG1vZGVyYXRvciBsZXZlbCBuYW1lcyB3aXRoIHVwcGVyIGNhc2UgZmlyc3QgbGV0dGVycwojJyBAZXhwb3J0CmZpcnN0dXAgPC0gZnVuY3Rpb24oeCkgewogIHN1YnN0cih4LCAxLCAxKSA8LSB0b3VwcGVyKHN1YnN0cih4LCAxLCAxKSkKICB4Cn0KCiMnIEB0aXRsZSBnZXRfZGF0YQojJyBAZGVzY3JpcHRpb24gQ29sbGVjdHMgYW5kIGJ1aWxkcyB0aGUgZGF0YSB1c2VkIHRvIGZpdCB0aGUgcm1hLm12IG9yIHJtYSBtb2RlbCBpbiBtZXRhZm9yCiMnIEBwYXJhbSBtb2RlbCBybWEubXYgb2JqZWN0CiMnIEBwYXJhbSBtb2QgdGhlIG1vZGVyYXRvciB2YXJpYWJsZQojJyBAYXV0aG9yIFNoaW5pY2hpIE5ha2FnYXdhIC0gcy5uYWthZ2F3YUB1bnN3LmVkdS5hdQojJyBAYXV0aG9yIERhbmllbCBOb2JsZSAtIGRhbmllbC5ub2JsZUBhbnUuZWR1LmF1CiMnIEByZXR1cm4gUmV0dXJucyBhIGRhdGEgZnJhbWUKIycgQGV4cG9ydAojJwpnZXRfZGF0YSA8LSBmdW5jdGlvbihtb2RlbCwgbW9kKXsKICBYIDwtIGFzLmRhdGEuZnJhbWUobW9kZWwkWCkKICBuYW1lcyA8LSB2YXBwbHkoc3RyaW5ncjo6c3RyX3NwbGl0KGNvbG5hbWVzKFgpLCB7e21vZH19KSwgZnVuY3Rpb24oeCkgcGFzdGUodW5pcXVlKHgpLCBjb2xsYXBzZSA9ICIiKSwgY2hhcmFjdGVyKDFMKSkKICAKICBtb2RlcmF0b3IgPC0gbWF0cml4KG5jb2wgPSAxLCBucm93ID0gZGltKFgpWzFdKQogIAogIGZvcihpIGluIDE6bmNvbChYKSl7CiAgICBtb2RlcmF0b3IgPC0gaWZlbHNlKFhbLGldID09IDEsIG5hbWVzW2ldLCBtb2RlcmF0b3IpCiAgfQogIG1vZGVyYXRvciA8LSBmaXJzdHVwKG1vZGVyYXRvcikKICB5aSA8LSBtb2RlbCR5aQogIHZpIDwtIG1vZGVsJHZpCiAgdHlwZSA8LSBhdHRyKG1vZGVsJHlpLCAibWVhc3VyZSIpCiAgCiAgZGF0YSA8LSBkYXRhLmZyYW1lKHlpLCB2aSwgbW9kZXJhdG9yLCB0eXBlKQogIHJldHVybihkYXRhKQogIAp9CgojJyBAdGl0bGUgbW9kX3Jlc3VsdHMKIycgQGRlc2NyaXB0aW9uIFVzaW5nIGEgbWV0YWZvciBtb2RlbCBvYmplY3Qgb2YgY2xhc3Mgcm1hIG9yIHJtYS5tdiBpdCBjcmVhdGVzIGEgdGFibGUgb2YgbW9kZWwgcmVzdWx0cyBjb250YWluaW5nIHRoZSBtZWFuIGVmZmVjdCBzaXplIGVzdGltYXRlcyBmb3IgYWxsIGxldmVscyBvZiBhIGdpdmVuIGNhdGVnb3JpY2FsIG1vZGVyYXRvciwgdGhlaXIgY29ycmVzcG9uZGluZyBjb25maWRlbmNlIGludGVydmFscyBhbmQgcHJlZGljdGlvbiBpbnRlcnZhbHMKIycgQHBhcmFtIG1vZGVsIHJtYS5tdiBvYmplY3QKIycgQHBhcmFtIG1vZCB0aGUgbmFtZSBvZiBhIG1vZGVyYXRvcjsgcHV0ICJJbnQiIGlmIHRoZSBpbnRlcmNlcHQgbW9kZWwgKG1ldGEtYW5hbHlzaXMpIG9yIG5vIG1vZGVyYXRvcnMuCiMnIEByZXR1cm4gQSBkYXRhIGZyYW1lIGNvbnRhaW5pbmcgYWxsIHRoZSBtb2RlbCByZXN1bHRzIGluY2x1ZGluZyBtZWFuIGVmZmVjdCBzaXplIGVzdGltYXRlLCBjb25maWRlbmNlIGFuZCBwcmVkaWN0aW9uIGludGVydmFscwojJyBAYXV0aG9yIFNoaW5pY2hpIE5ha2FnYXdhIC0gcy5uYWthZ2F3YUB1bnN3LmVkdS5hdQojJyBAYXV0aG9yIERhbmllbCBOb2JsZSAtIGRhbmllbC5ub2JsZUBhbnUuZWR1LmF1CiMnIEBleGFtcGxlcwojJyBcZG9udHJ1bntkYXRhKGVrbG9mKQojJyBla2xvZjwtbWV0YWZvcjo6ZXNjYWxjKG1lYXN1cmU9IlJPTSIsIG4xaT1OX2NvbnRyb2wsIHNkMWk9U0RfY29udHJvbCwKIycgbTFpPW1lYW5fY29udHJvbCwgbjJpPU5fdHJlYXRtZW50LCBzZDJpPVNEX3RyZWF0bWVudCwgbTJpPW1lYW5fdHJlYXRtZW50LAojJyBkYXRhPWVrbG9mKQojJyAjIEFkZCB0aGUgdW5pdCBsZXZlbCBwcmVkaWN0b3IKIycgZWtsb2YkRGF0YXBvaW50PC1hcy5mYWN0b3Ioc2VxKDEsIGRpbShla2xvZilbMV0sIDEpKQojJyAjIGZpdCBhIE1MTVIgLSBhY2NvdXRpbmcgZm9yIHNvbWUgbm9uLWluZGVwZW5kZW5jZQojJyBla2xvZl9NUjwtbWV0YWZvcjo6cm1hLm12KHlpPXlpLCBWPXZpLCBtb2RzPX4gR3JhemVyLnR5cGUtMSwgcmFuZG9tPWxpc3QofjF8RXhwdElELAojJyB+MXxEYXRhcG9pbnQpLCBkYXRhPWVrbG9mKQojJyByZXN1bHRzIDwtIG1vZF9yZXN1bHRzKGVrbG9mX01SLCBtb2QgPSAiR3JhemVyLnR5cGUiKQojJyB9CiMnIEBleHBvcnQKCm1vZF9yZXN1bHRzIDwtIGZ1bmN0aW9uKG1vZGVsLCBtb2QpIHsKICAKICBpZihhbGwoY2xhc3MobW9kZWwpICVpbiUgYygicm1hLm12IiwgInJtYS51bmkiLCAicm1hIikpID09IEZBTFNFKSB7c3RvcCgiU29ycnksIHlvdSBuZWVkIHRvIGZpdCBhIG1ldGFmb3IgbW9kZWwgb2YgY2xhc3Mgcm1hLm12IG9yIHJtYSIpfQogIAogIGRhdGEgPC0gZ2V0X2RhdGEobW9kZWwsIG1vZCkKICAKICAjIEdldCBjb25maWRlbmNlIGludGVydmFscwogIENJIDwtIGdldF9lc3QobW9kZWwsIG1vZCkKICAKICAjIEdldCBwcmVkaWN0aW9uIGludGVydmFscwogIFBJIDwtIGdldF9wcmVkKG1vZGVsLCBtb2QpCiAgCiAgbW9kZWxfcmVzdWx0cyA8LSBsaXN0KG1vZF90YWJsZSA9IGNiaW5kKENJLCBQSVssLTFdKSwgZGF0YSA9IGRhdGEpCiAgCiAgY2xhc3MobW9kZWxfcmVzdWx0cykgPC0gIm9yY2hhcmQiCiAgCiAgcmV0dXJuKG1vZGVsX3Jlc3VsdHMpCiAgCn0KIyBUT0RPIC0gSSB0aGluayB3ZSBjYW4gaW1wcm92ZSBgbW9kYCBiaXQ/CgojJyBAdGl0bGUgcHJpbnQub3JjaGFyZAojJyBAZGVzY3JpcHRpb24gUHJpbnQgbWV0aG9kIGZvciBjbGFzcyAnb3JjaGFyZCcKIycgQHBhcmFtIG9iamVjdCB4IGFuIFIgb2JqZWN0IG9mIGNsYXNzIG9yY2hhcmQKIycgQHBhcmFtIC4uLiBPdGhlciBhcmd1bWVudHMgcGFzc2VkIHRvIHByaW50CiMnIEBhdXRob3IgU2hpbmljaGkgTmFrYWdhd2EgLSBzLm5ha2FnYXdhQHVuc3cuZWR1LmF1CiMnIEBhdXRob3IgRGFuaWVsIE5vYmxlIC0gZGFuaWVsLm5vYmxlQGFudS5lZHUuYXUKIycgQHJldHVybiBSZXR1cm5zIGEgZGF0YSBmcmFtZQojJyBAZXhwb3J0CiMnCnByaW50Lm9yY2hhcmQgPC0gZnVuY3Rpb24ob2JqZWN0LCAuLi4pewogIHJldHVybihvYmplY3QkbW9kX3RhYmxlKQp9CgojIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBTTUQgKHN0YW5kYXJkaXplZCBtZWFuIGRpZmZlcmVuY2U7IENvaGVuJ3MpIGFuZCBsblJSIChsb2cgcmVzcG9uc2UgcmF0aW8pCgpleHRyYV9lZmZlY3QgPC0gZnVuY3Rpb24gKGkpewoKaSAlPiUgZ3JvdXBfYnkoc2V4KSAlPiUgc3VtbWFyaXNlKG1lYW4gPSBtZWFuKGRhdGFfcG9pbnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2QgPSBzZChkYXRhX3BvaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBuKCkpIC0+IHNleF9zcGVjaWZpYwoKc2V4X3NwZWNpZmljCnNleF9zcGVjaWZpY1sxLCAibWVhbiJdCgojIGdldCBwYXJhbWV0ZXJzCnBhcmFtZXRlcl9uYW1lIDwtIHRvbG93ZXIoaVtbInBhcmFtZXRlcl9uYW1lIl1dWzFdKQptZWFuX2ZlbWFsZSA8LSBzZXhfc3BlY2lmaWNbMSwgIm1lYW4iXQptZWFuX21hbGUgPC0gc2V4X3NwZWNpZmljWzIsICJtZWFuIl0Kc2RfZmVtYWxlIDwtIHNleF9zcGVjaWZpY1sxLCAic2QiXQpzZF9tYWxlIDwtIHNleF9zcGVjaWZpY1syLCAic2QiXQpuX2ZlbWFsZSA8LSBzZXhfc3BlY2lmaWNbMSwgIm4iXQpuX21hbGUgPC0gc2V4X3NwZWNpZmljWzIsICJuIl0KCiMgcHV0dGluZyBpdCB0b2dldGhlcgpwYXJhcyA8LSBkYXRhLmZyYW1lKHBhcmFtZXRlcl9uYW1lLCAKICAgICAgICAgICAgICAgICAgICBtZWFuX2ZlbWFsZSwgbWVhbl9tYWxlLAogICAgICAgICAgICAgICAgICAgIHNkX2ZlbWFsZSwgc2RfbWFsZSwKICAgICAgICAgICAgICAgICAgICBuX2ZlbWFsZSwgbl9tYWxlKQpuYW1lcyhwYXJhcykgPC0gYygncGFyYW1ldGVyX25hbWUnLAogICAgICAgICAgICAgICAgICAnbWVhbl9mZW1hbGUnLCAnbWVhbl9tYWxlJywKICAgICAgICAgICAgICAgICAgJ3NkX2ZlbWFsZScsICdzZF9tYWxlJywKICAgICAgICAgICAgICAgICAgJ25fZmVtYWxlJywgJ25fbWFsZScpICMgdmFyaWFuY2UgY29tcG9uZW50CgoKcGFyYXMgPC0gZXNjYWxjKCJTTUQiLCAKICAgICAgICAgICAgIG0xaSA9IG1lYW5fZmVtYWxlLCBtMmkgPSBtZWFuX21hbGUsIAogICAgICAgICAgICAgc2QxaSA9IHNkX2ZlbWFsZSwgc2QyaSA9IHNkX21hbGUsIAogICAgICAgICAgICAgbjFpID0gbl9mZW1hbGUsIG4yaSA9IG5fbWFsZSwgCiAgICAgICAgICAgICBkYXRhID0gcGFyYXMsIHZhci5uYW1lcz1jKCJTTUQiLCJ2X1NNRCIpKQpwYXJhcyA8LSBlc2NhbGMoIlJPTSIsIAogICAgICAgICAgICAgbTFpID0gbWVhbl9mZW1hbGUsIG0yaSA9IG1lYW5fbWFsZSwgCiAgICAgICAgICAgICBzZDFpID0gc2RfZmVtYWxlLCBzZDJpID0gc2RfbWFsZSwgCiAgICAgICAgICAgICBuMWkgPSBuX2ZlbWFsZSwgbjJpID0gbl9tYWxlLCAKICAgICAgICAgICAgIGRhdGEgPSBwYXJhcywgdmFyLm5hbWVzPWMoImxuUlIiLCJ2X2xuUlIiKSwgcmVwbGFjZSA9IEYpCgppbnZpc2libGUocGFyYXMpCgp9CgpgYGAKCiMjIExvYWRpbmcgcmF3IGRhdGEgYW5kIGNyZWF0aW5nIGEgbGlzdCBvZiB0cmFpdCBkYXRhCgpCZWxvdyB3ZSBzZWUgc3ViLXN0cmFpbiBpbmZvcm1hdGlvbiBhbmQgc2FtcGxlIHNpemUgZm9yIGVhY2ggc3ViLXN0cmFpbnMKCmBgYHtyfQoKIyBsb2FkaW5nIGRhdGEKYWxsb21ldHJ5IDwtIHJlYWRSRFMoaGVyZSgiZGF0YS9hbGxvbWV0cnlORVcucmRzIikpCgoKI1NURVAgMSByZW1vdmUgcm93cyB3aXRoIG1pc3NpbmcgIGRhdGEgYW5kIE5BIAphbGxvbWV0cnluZXc8LWFsbG9tZXRyeVtjb21wbGV0ZS5jYXNlcyhhbGxvbWV0cnkpLF0KCiMgZ2V0dGluZyByaWQgb2YgTkEgZm9yIGRhdGFfcG9pbnQgYW5kIHdlaWdodAoKYWxsb21ldHJ5bmV3MiA8LSBhbGxvbWV0cnluZXcgJT4lIAogIGZpbHRlcighaXMubmEoZGF0YV9wb2ludCksICFpcy5uYSh3ZWlnaHQpKSAlPiUgCiAgZ3JvdXBfYnkocGFyYW1ldGVyX25hbWUsIHNleCwgbWV0YWRhdGFfZ3JvdXAsIHN0cmFpbl9uYW1lKSAlPiUKICBtdXRhdGUoY291bnQgPSBuKCkpICU+JSAKICB1bmdyb3VwKCkgJT4lIAogIGdyb3VwX2J5KHBhcmFtZXRlcl9uYW1lKSAlPiUgIyBhZGp1c3RpbmcgaW50ZXJ2YWwgZGF0YQogIG11dGF0ZShtaW5fdmFsID0gbWluKGRhdGFfcG9pbnQpLAogICAgICAgICBkYXRhX3BvaW50MiA9IGlmX2Vsc2UobWluX3ZhbCA+IDAsIGRhdGFfcG9pbnQsIGRhdGFfcG9pbnQgKyBhYnMobWluX3ZhbCkpLAogICAgICAgICBtaW5fdmFsMiA9IG1pbiggZGF0YV9wb2ludFtkYXRhX3BvaW50IT1taW4oZGF0YV9wb2ludCldKSwKICAgICAgICAgZGF0YV9wb2ludDIgPSBpZl9lbHNlKG1pbl92YWwgPT0gMCwgZGF0YV9wb2ludDIgKyBtaW5fdmFsMiwgZGF0YV9wb2ludDIpLAogICAgICAgICByYXRpb19pbnQgPSAgaWZfZWxzZShtaW5fdmFsID4gMCwgInJhdGlvIiwgImludGVydmFsIiksCiAgICAgICAgIG5ld19taW4gPSBtaW4oZGF0YV9wb2ludDIpLAogICAgICAgICBubWV0YSA9IG5fZGlzdGluY3QobWV0YWRhdGFfZ3JvdXApLAogICAgICAgICBuc3RyYWluID0gbl9kaXN0aW5jdChzdHJhaW5fbmFtZSksCiAgICAgICAgIHNleCA9IGFzLmZhY3RvcihzZXgpLAogICAgICAgICBwYXJhbWV0ZXJfbmFtZSA9IGlmX2Vsc2UocGFyYW1ldGVyX25hbWUgPT0gIkxhdGVuY3kgdG8gZmFsbF9NZWFuIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGF0ZW5jeSB0byBmYWxsIG1lYW4iICAsIHBhcmFtZXRlcl9uYW1lKSkgJT4lIAogIHVuZ3JvdXAoKSAlPiUgCiAgZmlsdGVyKGNvdW50ID4gNDkpICU+JSAjIHRoaXMgY2FuIGJlIGFkanVzdGVkCiAgZmlsdGVyKHBhcmFtZXRlcl9uYW1lICE9ICJCTUMvQm9keSB3ZWlnaHQiLCAKICAgICAgICAgcGFyYW1ldGVyX25hbWUgIT0gIkJvZHkgd2VpZ2h0IiwgIAogICAgICAgICBwYXJhbWV0ZXJfbmFtZSAhPSAiQm9keSBXZWlnaHQiLCAKICAgICAgICAgcGFyYW1ldGVyX25hbWUgIT0gIkJvZHkgd2VpZ2h0IGFmdGVyIGV4cGVyaW1lbnQiICwgCiAgICAgICAgIHBhcmFtZXRlcl9uYW1lICE9ICJCb2R5IHdlaWdodCBiZWZvcmUgZXhwZXJpbWVudCIsCiAgICAgICAgIHBhcmFtZXRlcl9uYW1lICE9ICJUZXN0IGR1cmF0aW9uIikgJT4lIAogIGZpbHRlcighaXMuaW5maW5pdGUoZGF0YV9wb2ludDIpLCAhaXMuaW5maW5pdGUobG9nKGRhdGFfcG9pbnQyKSkpICMgcmVtb3ZpbmcgaW5maXRlIGFuZCAwCgojIGRpbShhbGxvbWV0cnkpCiMgZGltKGFsbG9tZXRyeW5ldykKIyBkaW0oYWxsb21ldHJ5bmV3MikKIyAKIyAjIHRoZSBudW1iZXIgb2YgdHJhaXRzCiMgbGVuZ3RoKHVuaXF1ZShhbGxvbWV0cnluZXcyJHBhcmFtZXRlcl9uYW1lKSkKIyAKIyAjIHRoZSBudW1iZXIgb2Ygc3Vic3RyYWlucwojIGxlbmd0aCh1bmlxdWUoYWxsb21ldHJ5bmV3MiRzdHJhaW5fbmFtZSkpCiMgc3RyYWluIGluZm9ybWF0aW9uCnVuaXF1ZShhbGxvbWV0cnluZXcyJHN0cmFpbl9uYW1lKQoKIyAjIGNoZWNrIHRoZXJlIGlzIG5vIDAKIyBzdW0oaXMuaW5maW5pdGUobG9nKGFsbG9tZXRyeW5ldzIkZGF0YV9wb2ludDIpKSkKCiMgIyB0aGUgbnVtYmVyIG9mIGludGVydmFsIHNjYWxlIHRyYWl0cwojIGFsbG9tZXRyeW5ldzIgJT4lIGdyb3VwX2J5KHBhcmFtZXRlcl9uYW1lKSAlPiUgc3VtbWFyaXNlKHJhdGlvX2ludCA9IHJhdGlvX2ludFsxXSkgLT4gc3VtX3JpCiMgc3VtKHN1bV9yaSRyYXRpb19pbnQgPT0gImludGVydmFsIikKCgojc3BsaXQgZGF0YWZyYW1lIGJ5IHBhcmFtZXRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2YgZGZzCiNhbGxfbGlzdDwtc3BsaXQoYWxsb21ldHJ5bmV3MiwgYWxsb21ldHJ5bmV3MiRwYXJhbWV0ZXJfbmFtZSkKCiNzYXZlUkRTKGFsbF9saXN0LCBmaWxlID0gaGVyZSgiZGF0YSIsICJkYXRfbGlzdDIucmRzIikpCmBgYAoKIyMgTG9hZGluZyBhIGxpc3Qgb2YgdHJhaXQgZGF0YSBhbmQgZ3JvdXAgY2F0ZWdvcnkKCmBgYHtyfQojIGxvYWRpbmcgZGF0YQpkYXRfbGlzdCA8LSByZWFkUkRTKGhlcmUoImRhdGEvZGF0X2xpc3QyLnJkcyIpKQoKIyBncm91cGluZyBmb3IgY2F0ZWdvcnkgYW5kIHBhcmFtZXRlcl9ncm91cCAodGhpcyBpcyBmcm9tIFphaml0c2NoZWsgZXQgYWwuIDIwMjAgZUxpZmU7IHNsaWdodGx5IG1vZGZpZWQpCmRhdF9jYXRlZ29yeTwtcmVhZF9jc3YoaGVyZSgiZGF0YS9jYXRlb2dyeV9wYXJhbWV0ZXIzLmNzdiIpKSAKYGBgCgojIERhdGEgcHJlcGFyYXRpb24gey50YWJzZXR9CgojIyBPYnRhaW5pbmcgaW50ZXJzZXBjdHMsIHNsb3BlcywgcmVzaWR1YWwgU0RzIGFuZCBtb2RlbCBmaXRzCgpgYGB7ciwgIGV2YWw9RkFMU0V9CgojcnVuIGZ1bmN0aW9uIGFjcm9zcyBsaXN0IG9mIG1hdHJpY2VzCnByb2Nlc3NpbmcgPC1tYXBfZGZyKGRhdF9saXN0LCBnZXRfcGFyYV9wb3NzKQpkYXQgPC0gZGF0YS5mcmFtZShwcm9jZXNzaW5nLCByb3cubmFtZXMgPSBOVUxMKQoKZGF0ICU+JSBsZWZ0X2pvaW4oZGF0X2NhdGVnb3J5LCBieSA9ICgicGFyYW1ldGVyX25hbWUiID0gInBhcmFtZXRlcl9uYW1lIikgKSAlPiUgYXJyYW5nZShDYXRlZ29yeSkgIC0+IGRhdAoKI2RpbShkYXQpCgojd3JpdGVfY3N2KGRhdCwgaGVyZSgiZGF0YS90ZXN0NC5jc3YiKSkKd3JpdGVfY3N2KGRhdCwgaGVyZSgiZGF0YS9kYXRhX3BhcmFtZXRlcnM3LmNzdiIpKQoKCiMgZmlyc3QgZ2V0dGluZyBwIHZhbHVlcyAtIHRoZSBjb250cmFzdHMgYmV0d2VlbiBtYWxlcyBhbmQgZmVtYWxlcyBmb3IgCgpkYXQgPC1yZWFkX2NzdihoZXJlKCJkYXRhL2RhdGFfcGFyYW1ldGVyczcuY3N2IikpCgojYXNzZXNzIG51bWJlciBvZiB0cmFpdHMgd2l0aCBzaWcgc2hpZnRzIGluIGludGVyY2VwdCBhbmQgc2xvcGUKCiMgZ2V0dGluZyBsblZSIHRvIGNvbXBhcmUgU0RzIGFuZCBTRCBhbmQgWnIgKHZhcmlhbmNlIGZvciBacikKCmRhdCAlPiUgbXV0YXRlKGxuVlIgPSBsb2coZl9zZC9tX3NkKSArIDEvKDIqKGZfbi0zKSkgLSAxLygyKihtX24tMykpLCAKICAgICAgICAgICAgICAgVmxuVlIgPSAxLygyKihmX24tMykpICsgMS8oMioobV9uLTMpKSwgCiAgICAgICAgICAgICAgIGxvd19sblZSID0gbG5WUiAtIHFub3JtKDAuOTc1KSpWbG5WUiwgCiAgICAgICAgICAgICAgIGhpZ2hfbG5WUiA9IGxuVlIgKyBxbm9ybSgwLjk3NSkqVmxuVlIsCiAgICAgICAgICAgICAgIHRfdmFsX3NkID0gbG5WUi9zcXJ0KFZsblZSKSwKICAgICAgICAgICAgICAgcF92YWxfc2QgPSAyKigxLXB0KGFicyh0X3ZhbF9zZCksIGZfbi0xICsgbV9uLTEpKSwKICAgICAgICAgICAgICAgIyByIHNxdWFyZWQKICAgICAgICAgICAgICAgWnIgPSBhdGFuaChyX20pLAogICAgICAgICAgICAgICBWWnIgPSAxLygoZl9uICsgbV9uKSAtIDMpCiAgICAgICAgICAgICAgICkgLT4gZGF0Cgp3cml0ZV9jc3YoZGF0LCBoZXJlKCJkYXRhL2RhdGFfcGFyYW1ldGVyczguY3N2IikpCmBgYAoKCiMjIE9idGFpbmluZyBTTUQgKHN0YW5kYXJkaXNlZCBtZWFuIGRpZmZlcmVuY2UpIGFuZCBsblJSIChsb2cgcmVzcG9uc2UgcmF0bykKCmBgYHtyLCAgZXZhbD1GQUxTRX0KZXh0cmFfZGF0IDwtbWFwX2RmcihkYXRfbGlzdCwgZXh0cmFfZWZmZWN0KQoKZXh0cmEgPC0gZGF0YS5mcmFtZShwcm9jZXNzaW5nLCByb3cubmFtZXMgPSBOVUxMKQpkYXQgPC0gcmVhZF9jc3YoaGVyZSgiZGF0YS9kYXRhX3BhcmFtZXRlcnM4LmNzdiIpKQoKcG9zPC1tYXRjaChkYXQkcGFyYW1ldGVyX25hbWUsIGV4dHJhX2RhdCRwYXJhbWV0ZXJfbmFtZSkKCmV4dHJhIDwtIGV4dHJhX2RhdFtwb3MsIF0KZXh0cmEgPC0gZGF0YS5mcmFtZShleHRyYSwgcm93Lm5hbWVzID0gTlVMTCkKCgp3cml0ZV9jc3YoZXh0cmEsIGhlcmUoImRhdGEvZGF0YV9zbWRfbG5yci5jc3YiKSkKCmBgYAoKCgojIyBNYWluIGRhdGFzZXQgYW5kIG1ldGEtZGF0YQoKYGBge3J9CiMgbG9hZGluZyBkYXRhCmRhdCA8LSByZWFkX2NzdihoZXJlKCJkYXRhL2RhdGFfcGFyYW1ldGVyczguY3N2IikpCiMgY3JlYXRpbmcgb2JzZXJ2YXRpb24gbGV2ZWwgcmFuZG9tIGVmZmVjdApkYXQkb2JzIDwtIDE6ZGltKGRhdClbMV0KIyBtYWtpbmcgY2hhcmFjdGVyIHN0cmluZ3MgaW50byBmYWN0b3JzCmRhdCA8LSBkYXQgJT4lIG11dGF0ZV9pZihpcy5jaGFyYWN0ZXIsIGFzLmZhY3RvcikgCiMgdmlzdWFsaXppbmcKa2FibGUoZGF0LCAiaHRtbCIpICU+JSAKICBrYWJsZV9zdHlsaW5nKCJzdHJpcGVkIiwgcG9zaXRpb24gPSAibGVmdCIpICU+JSAKICBzY3JvbGxfYm94KHdpZHRoID0gIjEwMCUiLCAKICAgIGhlaWdodCA9ICIyNTBweCIpCgpgYGAKCi0gICAqKnBhcmFtZXRlcl9uYW1lKio6IHRoZSBuYW1lIG9mIHBoZW5vdHlwaWMgdHJhaXRzCi0gICAqKmZfbioqOiB0aGUgbnVtYmVyIG9mIGZlbWFsZXMgZm9yIGEgcGFydGljdWxhciB0cmFpdAotICAgKiptX24qKjogdGhlIG51bWJlciBvZiBtYWxlcyBmb3IgYSBwYXJ0aWN1bGFyIHRyYWl0Ci0gICAqKmZfaW50ZXJjZXB0Kio6IHRoZSBpbnRlcmNlcHQgKHBoZW5vdHlwaWMgbWVhbikgZm9yIGZlbWFsZXMKLSAgICoqZl9pbnRlcmNlcHRfc2UqKjogc3RhbmRhcmQgZXJyb3IgZm9yIHRoZSBpbnRlcmNlcHQgKHBoZW5vdHlwaWMgbWVhbikgZm9yIGZlbWFsZXMKLSAgICoqZl9zbG9wZSoqOiB0aGUgc2xvcGUgZm9yIGZlbWFsZXMKLSAgICoqZl9zbG9wZV9zZSoqOiBzdGFuZGFyZCBlcnJvciBmb3IgdGhlIHNsb3BlIGZvciBmZW1hbGVzCi0gICAqKm1faW50ZXJjZXB0Kio6IHRoZSBpbnRlcmNlcHQgKHBoZW5vdHlwaWMgbWVhbikgZm9yIG1hbGVzCi0gICAqKm1faW50ZXJjZXB0X3NlKio6IHN0YW5kYXJkIGVycm9yIGZvciB0aGUgaW50ZXJjZXB0IChwaGVub3R5cGljIG1lYW4pIGZvciBtYWxlcwotICAgKiptX3Nsb3BlKio6IHRoZSBzbG9wZSBmb3IgbWFsZXMKLSAgICoqbV9zbG9wZV9zZSoqOiBzdGFuZGFyZCBlcnJvciBmb3IgdGhlIHNsb3BlIGZvciBtYWxlcwotICAgKipmbV9kaWZmX2ludCoqOiBkaWZmZXJlbmNlIGluIGludGVyY2VwdHMgYmV0d2VlbiBmZW1hbGVzIGFuZCBtYWxlcwotICAgKipmbV9kaWZmX2ludF9zZSoqOiBzdGFuZGFyZCBlcnJvciBmb3IgdGhlIGRpZmZlcmVuY2UgaW4gaW50ZXJjZXB0cyBiZXR3ZWVuIGZlbWFsZXMgYW5kIG1hbGVzCi0gICAqKmZtX2RpZmZfaW50X3AqKjogcCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZm1fZGlmZl9pbnQKLSAgICoqZm1fZGlmZl9zbG9wZSoqOiBkaWZmZXJlbmNlIGluIHNsb3BlcyBiZXR3ZWVuIGZlbWFsZXMgYW5kIG1hbGVzCi0gICAqKmZtX2RpZmZfc2xvcGVfc2UqKjogc3RhbmRhcmQgZXJyb3IgZm9yIGZvciB0aGUgZGlmZmVyZW5jZSBpbiBpbnRlcmNlcHRzIGJldHdlZW4gZmVtYWxlcyBhbmQgbWFsZXMKLSAgICoqZm1fZGlmZl9zbG9wZV9wKio6IHAgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGZtX2RpZmZfc2xvcGUKLSAgICoqYmF0Y2hfc2QqKjogdGhlIHNxdWFyZS1yb290IG9mIHRoZSB2YXJpYW5jZSBjb21wb25lbnQgZm9yICJiYXRjaCIgKHNlZSB0aGUgdGV4dCkKLSAgICoqZl9zZCoqOiBmZW1hbGUgcmVzaWR1YWwgc3RhbmRhcmQgZGV2aWF0aW9uCi0gICAqKm1fc2QqKjogZmVtYWxlIHJlc2lkdWFsIHN0YW5kYXJkIGRldmlhdGlvbgotICAgKipyX20qKjogbWFyZ2luYWwgUiBzcXVhcmVkICh2YXJpYW5jZSBhY2NvdW50ZWQgZm9yIGJ5IGZpeGVkIGVmZmVjdHMpCi0gICAqKnJfYyoqOiBjb25kaXRpb25hbCBSIHNxdWFyZWQgKHZhcmlhbmNlIGFjY291bnRlZCBmb3IgYnkgZml4ZWQgYW5kIHJhbmRvbSBlZmZlY3RzKQotICAgKipDYXRlZ29yeSoqOiA5IGZ1bmN0aW9uIGNhdGVnb3JpZXMgKHNlZSB0aGUgdGV4dCkKLSAgICoqcGFyYW1ldGVyX2dyb3VwKio6IEdyb3VwaW5nIGZvciBub24taW5kZXBlbmRlbnQgdHJhaXRzCi0gICAqKmxuVlIqKjogbG9nIHJhdGlvIGJldHdlZW4gZl9zZCBhbmQgbV9zZAotICAgKipWbG5WUioqOiB0aGUgc2FtcGxpbmcgdmFyaWFuY2UgZm9yIGxuVlIKLSAgICoqbG93X2xuVlIqKjogbG93ZXIgY29uZmlkZW5jZSBsaW1pdCBmb3IgbG5WUgotICAgKipoaWdoX2xuVlIqKjogdXBwZXIgY29uZmlkZW5jZSBsaW1pdCBmb3IgbG5WUgotICAgKip0X3ZhbF9zZCoqOiB0IHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggbG5WUiBhbmQgVmxuVlIKLSAgICoqcF92YWxfc2QqKjogcCB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIGxuVlIgYW5kIFZsblZSCi0gICAqKlpyKio6IHRyYW5zZm9ybWVkIHZhbHVlIG9mIHNxcnQocl9jKQotICAgKipWWnIqKjogc2FtcGxpbmcgdmFyaWFuY2UgZm9yIFpyCi0gICAqKm9icyoqOiB1bmlxdWUgb2JzZXJ2YXRpb24gbGV2ZWwgSUQKCiMjIEV4dHJhOiBkYXRhc2V0IGZvciBjb21wYXJpbmcgbW9kZWxzIHdpdGggYW5kIHdpaG91dCBzdWJzdHJhaW5zCgpgYGB7ciwgZXZhbCA9IEZBTFNFfQoKc2hvcnRfbGlzdCA8LSBkaXNjYXJkKGRhdF9saXN0LCB+IC54W1sibnN0cmFpbiJdXVtbMV1dID09IDEpCgpwcm9jZXNzaW5nMiA8LW1hcF9kZnIoc2hvcnRfbGlzdCwgZ2V0X3BhcmFfcG9zczIpCmRhdF9zaG9ydCA8LSBkYXRhLmZyYW1lKHByb2Nlc3NpbmcyLCByb3cubmFtZXMgPSBOVUxMKQoKZGF0X3Nob3J0ICU+JSBsZWZ0X2pvaW4oZGF0X2NhdGVnb3J5LCBieSA9ICgicGFyYW1ldGVyX25hbWUiID0gInBhcmFtZXRlcl9uYW1lIikgKSAlPiUgYXJyYW5nZShDYXRlZ29yeSkgIC0+IGRhdF9zaG9ydAoKZGltKGRhdF9zaG9ydCkKCiN3cml0ZV9jc3YoZGF0LCBoZXJlKCJkYXRhL3Rlc3Q0LmNzdiIpKQp3cml0ZV9jc3YoZGF0X3Nob3J0LCBoZXJlKCJkYXRhL2RhdGFfY29tcGFyaXNpb24uY3N2IikpCmBgYAoKIyMgRGF0YXNldCAoU01EICYgbG5SUikgYW5kIG1ldGEtZGF0YQoKYGBge3J9CiMgbG9hZGluZyBkYXRhCmV4dHJhIDwtIHJlYWRfY3N2KGhlcmUoImRhdGEvZGF0YV9zbWRfbG5yci5jc3YiKSkKCiMgbWFraW5nIGNoYXJhY3RlciBzdHJpbmdzIGludG8gZmFjdG9ycwpleHRyYSA8LSBleHRyYSAlPiUgbXV0YXRlX2lmKGlzLmNoYXJhY3RlciwgYXMuZmFjdG9yKSAKIyB2aXN1YWxpemluZwprYWJsZShleHRyYSwgImh0bWwiLCBkaWdpdHMgPSAzKSAlPiUgCiAga2FibGVfc3R5bGluZygic3RyaXBlZCIsIHBvc2l0aW9uID0gImxlZnQiKSAlPiUgCiAgc2Nyb2xsX2JveCh3aWR0aCA9ICIxMDAlIiwgCiAgICBoZWlnaHQgPSAiMjUwcHgiKQoKIyBjb21iaW5pbmcgbWFpbiBkYXRhIGFuZCBleHRyYSBkYXRhCgpkYXRfZXh0cmEgPC0gY2JpbmQoZGF0LCBleHRyYVssIDg6MTFdKQoKCndyaXRlX2NzdihkYXRfZXh0cmEsIGhlcmUoImRhdGEvZGF0YV9wYXJhbWV0ZXJzX2V4dHJhLmNzdiIpKQpgYGAKCi0gICAqKnBhcmFtZXRlcl9uYW1lKio6IHRoZSBuYW1lIG9mIHBoZW5vdHlwaWMgdHJhaXRzCi0gICAqKm1lYW5fZmVtYWxlKio6IGZlbWFsZSBtZWFuIGZvciBhIHBhcnRpY3VsYXIgcGhlbm90eXBpYyB0cmFpdAotICAgKiptZWFuX21hbGUqKjogbWFsZSBtZWFuIGZvciBhIHBhcnRpY3VsYXIgcGhlbm90eXBpYyB0cmFpdAotICAgKipzZF9mZW1hbGUqKjogZmVtYWxlIHN0YW5kYXJkIGRldmlhdGlvbiBmb3IgIGEgcGFydGljdWxhciB0cmFpdAotICAgKipzZF9tYWxlKio6IG1hbGUgc3RhbmRhcmQgZGV2aWF0aW9uIGZvciAgYSBwYXJ0aWN1bGFyIHRyYWl0Ci0gICAqKm5fZmVtYWxlKio6IHRoZSBudW1iZXIgb2YgZmVtYWxlcyBmb3IgYSBwYXJ0aWN1bGFyIHRyYWl0Ci0gICAqKm5fbWFsZSoqOiB0aGUgbnVtYmVyIG9mIG1hbGVzIGZvciBhIHBhcnRpY3VsYXIgdHJhaXQKLSAgICoqU01EKio6IHN0YW5kYXJkaXplZCBtZWFuIGRpZmZlcmVuY2UgYmV0d2VlbiBtYWxlcyBhbmQgZmVtYWxlcwotICAgKip2X1NNRCoqOiBzYW1wbGluZyB2YXJpYW5jZSBmb3IgU01ECi0gICAqKmxuUlIqKjogbG9nIHJlc3BvbnNlIHJhdGlvIGJldHdlZW4gbWFsZXMgYW5kIGZlbWFsZXMKLSAgICoqdl9sblJSKio6IHNhbXBsaW5nIHZhcmlhbmNlIGZvciBsblJSCgojIERhdGEgYW5hbHlzaXMgey50YWJzZXR9CgojIyBQcmVwYXJhdGlvbiBmb3IgY2F0ZWdvcml6aW5nIGludG8gc2NlbmFyaW9zCgpIZXJlLCB3ZSBtZXJnZSBwIHZhbHVlcyBmb3Igbm9uLWluZGVwZW5kZW50IChjbG9zZWx5IHJlbGF0ZWQgdHJhaXRzKSB1c2luZyB0aGUgY3VzdG9tIGZ1bmN0aW9ucyBmb3IgbWVyZ2luZyBwIHZhbHVlcyB2aWEgdGhlIGBwb29scmAgcGFja2FnZS4KCmBgYHtyfQojIGhlcmUgd2UgbmVlZCB0byBjb2xsYXBzZSBwIHZhbHVlcyB3aGljaCBhcmUgcmVsYXRlZAojIHNwbGl0IGRhdGEgaW50byAyIG9uZXMgd2l0aCByZXBsaWNhdGlvbnMgd2l0aGluIHBhcmFtZXRlcl9ncm91cAoKZGF0ICU+JSBncm91cF9ieShwYXJhbWV0ZXJfZ3JvdXApICU+JSBtdXRhdGUoY291bnQgPSBuKCkpIC0+IGRhdAojIApkYXQxIDwtIGRhdFt3aGljaChkYXQkY291bnQgPT0gMSksIF0KIyAKI2RpbShkYXQxKQoKIyAgdGFraW5nIG91dCBpbmRlcGVuZGVudCB0cmFpdHMKZGF0MiA8LSBkYXRbLXdoaWNoKGRhdCRjb3VudCA9PSAxKSwgXQoKIyBuZXN0aW5nIGRhdGEgaW50byBhIGxvdCBvZiBkYXRhIHNldHMgYW5kIGFwcGx5IHBfbW9kIGZ1bmN0aW9uCm5fZGF0MiA8LSBkYXQyICU+JSBncm91cF9ieShwYXJhbWV0ZXJfZ3JvdXApICU+JSAgbmVzdCgpCgojIGZ1bmN0aW9uIHRvIGdldCBtZXJnZWQgcCB2YWx1ZSBmb3IgaW50ZXJjZXB0cwpwX21vZF9pbnQgPC1mdW5jdGlvbihkYXRhKXsKICAKICBsZW4gPC0gZGltKGRhdGEpWzFdCiAgUm1hdCA8LSBtYXRyaXgoMC44LCBucm93ID0gbGVuLCBuY29sID0gbGVuKQogIGRpYWcoUm1hdCkgPC0gMQogIAogIHBfbW9kIDwtIGZpc2hlcihkYXRhJGZtX2RpZmZfaW50X3AsIGFkanVzdCA9ICJsaWppIiwgUiA9IFJtYXQpCiAgcDwtIHBfbW9kJHAKICByZXR1cm4ocCkKICAKfQoKCiMgZnVuY3Rpb24gdG8gZ2V0IG1lcmdlZCBwIHZhbHVlIGZvciBzbG9wZXMKcF9tb2Rfc2xwIDwtZnVuY3Rpb24oZGF0YSl7CiAgCiAgbGVuIDwtIGRpbShkYXRhKVsxXQogIFJtYXQgPC0gbWF0cml4KDAuOCwgbnJvdyA9IGxlbiwgbmNvbCA9IGxlbikKICBkaWFnKFJtYXQpIDwtIDEKICAKICBwX21vZCA8LSBmaXNoZXIoZGF0YSRmbV9kaWZmX3Nsb3BlX3AsIGFkanVzdCA9ICJsaWppIiwgUiA9IFJtYXQpCiAgcDwtIHBfbW9kJHAKICByZXR1cm4ocCkKICAKfQoKIyBmdW5jdGlvbiB0byBnZXQgbWVyZ2VkIHAgdmFsdWUgZm9yIFNECnBfbW9kX3NkIDwtZnVuY3Rpb24oZGF0YSl7CiAgCiAgbGVuIDwtIGRpbShkYXRhKVsxXQogIFJtYXQgPC0gbWF0cml4KDAuOCwgbnJvdyA9IGxlbiwgbmNvbCA9IGxlbikKICBkaWFnKFJtYXQpIDwtIDEKICAKICBwX21vZCA8LSBmaXNoZXIoZGF0YSRwX3ZhbF9zZCwgYWRqdXN0ID0gImxpamkiLCBSID0gUm1hdCkKICBwPC0gcF9tb2QkcAogIHJldHVybihwKQogIAp9CgoKIyBtZXJnZWQgZGF0MgptX2RhdDIgPC0gbl9kYXQyICAlPiUgbXV0YXRlKG1lcmdlZF9wX3NkID0gbWFwX2RibChkYXRhLCBwX21vZF9zZCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlZF9wX2ludCA9IG1hcF9kYmwoZGF0YSwgcF9tb2RfaW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZWRfcF9zbHAgPSBtYXBfZGJsKGRhdGEsIHBfbW9kX3NscCkKKQoKYGBgCgojIyBUaGUgbnVtYmVyIG9mIGNhc2VzIFNjZW5hcmlvIEEKCmBgYHtyfQoKIyBmdWxsIGRhdGFzZXQKZGF0X3Nsb3BlcyA8LWRhdCAlPiUKICBmaWx0ZXIgKGZtX2RpZmZfc2xvcGVfcCA8PSAwLjA1ICYgZm1fZGlmZl9pbnRfcCA+IDAuMDUpCgojMTcgb3V0IG9mIDM2MyB0cmFpdHMgc2lnIHNsb3BlIGRpZmYgLSBzY2VuYXJpbyBBCm5yb3coZGF0X3Nsb3BlcykKCiMgcmVkdWNlZCBkYXRhc2V0CmRhdF9zbG9wZXMxIDwtZGF0MSAlPiUKICBmaWx0ZXIgKGZtX2RpZmZfc2xvcGVfcCA8PSAwLjA1ICYgZm1fZGlmZl9pbnRfcCA+IDAuMDUpCgpkYXRfc2xvcGVzMiA8LW1fZGF0MiAlPiUKICBmaWx0ZXIgKG1lcmdlZF9wX3NscCA8PSAwLjA1ICYgbWVyZ2VkX3BfaW50ID4gMC4wNSkKCiMxMSBvdXQgb2YgMjE5IHRyYWl0cyBzaWcgc2xvcGUgZGlmZiAtIHNjZW5hcmlvIEEKbnJvdyhkYXRfc2xvcGVzMSkgKyBucm93KGRhdF9zbG9wZXMyKSAKYGBgCgojIyBUaGUgbnVtYmVyIG9mIFNjZW5hcmlvIEIKCmBgYHtyfQojIGZ1bGwgZGF0YXNldApkYXRfaW50PC0gZGF0ICU+JQogIGZpbHRlciAoZm1fZGlmZl9pbnRfcCA8PSAwLjA1ICYgZm1fZGlmZl9zbG9wZV9wID4wLjA1KQoKIzE1NCBvdXQgb2YgMzYzIHRyYWl0cyBzaWcgaW50ZXJjZXB0IGRpZmYgIHNhbWUgc2xvcGUgLSBzY2VuYXJpbyBCCm5yb3coZGF0X2ludCkgCgojIHJlZHVjZWQgZGF0YXNldApkYXRfaW50MTwtIGRhdDEgJT4lCiAgZmlsdGVyIChmbV9kaWZmX2ludF9wIDw9IDAuMDUgJiBmbV9kaWZmX3Nsb3BlX3AgPjAuMDUpCgpkYXRfaW50MiA8LW1fZGF0MiAlPiUKICBmaWx0ZXIgKG1lcmdlZF9wX2ludCA8PSAwLjA1ICYgbWVyZ2VkX3Bfc2xwID4gMC4wNSkKCiM5MyBvdXQgb2YgMjE5IHRyYWl0cyBzaWcgaW50ZXJjZXB0IGRpZmYgIHNhbWUgc2xvcGUgLSBzY2VuYXJpbyBCCm5yb3coZGF0X2ludDEpICsgbnJvdyhkYXRfaW50MikgCmBgYAoKIyMgVGhlIG51bWJlciBvZiBTY2VuYXJpbyBDCgpgYGB7cn0KIyBmdWxsIGRhdGFzZXQKZGF0X2ludFNsb3BlczwtZGF0ICU+JQogIGZpbHRlciAoZm1fZGlmZl9pbnRfcCA8PSAwLjA1ICYgZm1fZGlmZl9zbG9wZV9wIDw9IDAuMDUpCgojNzAgb3V0IG9mIDM2MyBzaWcgaW50ZXJjZXB0IGFuZCBzbG9wZSBkaWZmIC0gc2NlbmFyaW8gQwpucm93KGRhdF9pbnRTbG9wZXMpCgojIHJlZHVjZWQgZGF0YXNldApkYXRfaW50U2xvcGVzMTwtZGF0MSAlPiUKICBmaWx0ZXIgKGZtX2RpZmZfaW50X3AgPD0gMC4wNSAmIGZtX2RpZmZfc2xvcGVfcCA8PSAwLjA1KQoKZGF0X2ludFNsb3BlczIgPC1tX2RhdDIgJT4lCiAgZmlsdGVyIChtZXJnZWRfcF9pbnQgPD0gMC4wNSAmIG1lcmdlZF9wX3NscCA8PSAwLjA1KQoKIzU3IG91dCBvZiAyMTkgc2lnIGludGVyY2VwdCBhbmQgc2xvcGUgZGlmZiAtIHNjZW5hcmlvIEMKbnJvdyhkYXRfaW50U2xvcGVzMSkrIG5yb3coZGF0X2ludFNsb3BlczIpIApgYGAKCiMjIE5vdCBpbiB0aGVzZSBzY2VuYXJpb3MKCmBgYHtyfQojIGZ1bGwgZGF0YXNldApkYXRfaW50c2xvcGVzTlM8LSBkYXQgJT4lCiAgZmlsdGVyIChmbV9kaWZmX3Nsb3BlX3AgPjAuMDUgJiBmbV9kaWZmX2ludF9wID4gMC4wNSkKIzEyMiBvdXQgb2YgMzYzIC0gbm8gc2lnIGRpZmZlcmVuY2UgYmV0d2VlbiBpbnRlcmNlcHQgYW5kIHNsb3BlIC0gc2NlbmFyaW8gRApucm93KGRhdF9pbnRzbG9wZXNOUykgCgojIHJlZHVjZWQgZGF0YXNldApkYXRfaW50c2xvcGVzTlMxPC0gZGF0MSAlPiUKICBmaWx0ZXIgKGZtX2RpZmZfc2xvcGVfcCA+MC4wNSAmIGZtX2RpZmZfaW50X3AgPiAwLjA1KQoKZGF0X2ludHNsb3Blc05TMiA8LW1fZGF0MiAlPiUKICBmaWx0ZXIgKG1lcmdlZF9wX2ludCA+IDAuMDUgJiBtZXJnZWRfcF9zbHAgPiAwLjA1KQoKIzU4IG91dCBvZiAyMTkgbm8gc2lnIGRpZmZlcmVuY2UgYmV0d2VlbiBpbnRlcmNlcHQgYW5kIHNsb3BlIC0gc2NlbmFyaW8gRApucm93KGRhdF9pbnRzbG9wZXNOUzEpICsgbnJvdyhkYXRfaW50c2xvcGVzTlMyKSAKYGBgCgojIyBTZXggZGlmZmVyZW5jZSBpbiByZXNpZHVhbCBTRAoKYGBge3J9CiMgZnVsbCBkYXRhc2V0CiMgMjQ5IG91dCBvZiAzNjMgc2lnbmZpY2FudCBkaWZmZXJlbmNlcyBpbiByZXNpZHVhbCBTRHMKbGVuZ3RoKHdoaWNoKGRhdCRwX3ZhbF9zZCA8PSAwLjA1KSkKI2hpc3QobG9nKGRhdCRwX3ZhbF9zZCkpICMgcCA9IDAuMDUgfiAtIDMKCiMgMTU0IG9mIG91dCBvZiAyMTkgc2lnbmZpY2FudCBkaWZmZXJlbmNlcyBpbiByZXNpZHVhbCBTRHMKbGVuZ3RoKHdoaWNoKG1fZGF0MiRtZXJnZWRfcF9zZCA8PSAwLjA1KSkgKyBsZW5ndGgod2hpY2goZGF0MSRwX3ZhbF9zZCA8PSAwLjA1KSkKYGBgCgojIyBDcmVhdGluZyBGaWd1cmUgMgoKYGBge3IsIGV2YWwgPSBGLCBmaWcuaGVpZ2h0PSA4fQoKIyBzZXQgY29sb3VyIGZvciBtYWxlcyBhbmQgZmVtYWxlcwoKY29sb3VycyA8LSBjKCIjRDU1RTAwIiwgIiMwMDlFNzMiKSAjIGMoIiM4ODIyNTUiLCIjRTY5RjAwIikgCmNvbG91cnMyIDwtYygiI0Q1NUUwMCIsICIjN0QyNkNEIiwgIiMwMDlFNzMiKQoKI3NleCBiaWFzIGluIHNsb3BlIHBhcmFtZXRlciB1bmRlciBzY2VuYXJpbyBBCmRhdF9wMTwtZGF0X3Nsb3BlcyU+JQogIGdyb3VwX2J5X2F0KHZhcnMoQ2F0ZWdvcnkpKSAlPiUKICBzdW1tYXJpc2UobWFsZWJpYXMgPSBzdW0obV9zbG9wZSA+IGZfc2xvcGUpLCAKICAgICAgICAgICAgZmVtYWxlYmlhcyA9IHN1bShmX3Nsb3BlID4gbV9zbG9wZSksIAogICAgICAgICAgICB0b3RhbD0gbWFsZWJpYXMgKyBmZW1hbGViaWFzLCAKICAgICAgICAgICAgbWFsZXBlcmNlbnQgPSBtYWxlYmlhcyoxMDAvdG90YWwsIAogICAgICAgICAgICBmZW1hbGVwZXJjZW50ID0gZmVtYWxlYmlhcyoxMDAvdG90YWwpICAKCgpkYXRfcDE8LWdhdGhlcihhcy5kYXRhLmZyYW1lKGRhdF9wMSksIAogICAgICAgICAgICAgICBrZXkgPSBzZXgsIAogICAgICAgICAgICAgICB2YWx1ZSA9IHBlcmNlbnQsIAogICAgICAgICAgICAgICBtYWxlcGVyY2VudDpmZW1hbGVwZXJjZW50LCAKICAgICAgICAgICAgICAgZmFjdG9yX2tleSA9IFRSVUUpCgoKZGF0X3AxJHNhbXBsZXNpemU8LXdpdGgoZGF0X3AxLCAKICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHNleCA9PSAibWFsZXBlcmNlbnQiLCBtYWxlYmlhcywgZmVtYWxlYmlhcykgKQoKIyBBZGRpbmcgQWxsCmRhdF9wMSAlPiUgIGdyb3VwX2J5KHNleCkgJT4lIHN1bW1hcmlzZShtYWxlYmlhcyA9IHN1bShtYWxlYmlhcyksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVtYWxlYmlhcz0gc3VtKGZlbWFsZWJpYXMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgPSBzdW0odG90YWwpLAopIC0+IHBhcnQKCnBhcnQgJT4lIG11dGF0ZShDYXRlZ29yeSA9ICJBbGwiLAogICAgICAgICAgICAgICAgc2V4ID0gYygibWFsZXBlcmNlbnQiLCAiZmVtYWxlcGVyY2VudCIpLAogICAgICAgICAgICAgICAgcGVyY2VudCA9IGMoMTAwKihtYWxlYmlhc1sxXS90b3RhbFsxXSksIDEwMCooZmVtYWxlYmlhc1sxXS90b3RhbFsxXSkpLAogICAgICAgICAgICAgICAgc2FtcGxlc2l6ZSA9IGMobWFsZWJpYXNbMV0gLCAgZmVtYWxlYmlhc1sxXSkpLT4gcGFydAoKCiNzZWxlY3QoQ2F0ZWdvcnksIG1hbGViaWFzLCBmZW1hbGViaWFzLCB0b3RhbCwgc2V4LCBwZXJjZW50LCBzYW1wbGVzaXplKQpkYXRfcDEgPC0gYmluZF9yb3dzKGRhdF9wMSwgcGFydCkKCgoKcDEgPC0gCiAgZ2dwbG90KGRhdF9wMSkgKwogIGFlcyh4ID0gQ2F0ZWdvcnksIHkgPSBwZXJjZW50LCBmaWxsID0gc2V4KSArCiAgZ2VvbV9jb2woKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gNTAsIGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImdyYXk0MCIpICsKICBnZW9tX3RleHQoZGF0YSA9IHN1YnNldChkYXRfcDEsIHNhbXBsZXNpemUgIT0gMCksIGFlcyhsYWJlbCA9IHNhbXBsZXNpemUpLCAKICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IC41KSwgCiAgICAgICAgICAgIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMuNSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGNvbG91cnMpICsKICB0aGVtZV9idyhiYXNlX3NpemUgPSAxOCkgKwogIHRoZW1lKHN0cmlwLnRleHQueSA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDI3MCwgc2l6ZSA9IDEwLCBtYXJnaW4gPSBtYXJnaW4odD0xNSwgcj0xNSwgYj0xNSwgbD0xNSkpLCAKICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwKICAgICAgICBzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGNvbG91ciA9IE5VTEwsbGluZXR5cGUgPSAiYmxhbmsiLCBmaWxsID0gImdyYXk5MCIpLAogICAgICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xNCksCiAgICAgICAgcGFuZWwuc3BhY2luZyA9IHVuaXQoMC41LCAibGluZXMiKSwKICAgICAgICBwYW5lbC5ib3JkZXI9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBheGlzLmxpbmU9ZWxlbWVudF9saW5lKCksIAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfbGluZShsaW5ldHlwZSA9ICJzb2xpZCIsIGNvbG91ciA9ICJncmF5OTUiKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2xpbmUobGluZXR5cGUgPSAic29saWQiLCBjb2xvdXIgPSAiZ3JheTk1IiksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueCA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9MTQpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKwogIGNvb3JkX2ZsaXAoKSAgKwogIGxhYnModGl0bGUgPSAiU2NlbmFyaW8gQSAtIGRpZmZlcmVudCBzbG9wZXMsIFxuICAgICAgICAgICAgICAgICAgICBzYW1lIGludGVyY2VwdHMiKQoKCgojc2V4IGJpYXMgaW4gaW50ZXJjZXB0IHBhcmFtZXRlciAtIHNjZW5hcmlvIEIKZGF0X3AyPC1kYXRfaW50JT4lCiAgZ3JvdXBfYnlfYXQodmFycyhDYXRlZ29yeSkpICU+JQogIHN1bW1hcmlzZShtYWxlYmlhcyA9IHN1bShtX2ludGVyY2VwdCA+IGZfaW50ZXJjZXB0KSwgCiAgICAgICAgICAgIGZlbWFsZWJpYXMgPSBzdW0oZl9pbnRlcmNlcHQgPiBtX2ludGVyY2VwdCksIAogICAgICAgICAgICB0b3RhbD0gbWFsZWJpYXMgKyBmZW1hbGViaWFzLCAKICAgICAgICAgICAgbWFsZXBlcmNlbnQgPSBtYWxlYmlhcyoxMDAvdG90YWwsIAogICAgICAgICAgICBmZW1hbGVwZXJjZW50ID0gZmVtYWxlYmlhcyoxMDAvdG90YWwpICAKCmRhdF9wMjwtZ2F0aGVyKGFzLmRhdGEuZnJhbWUoZGF0X3AyKSwgCiAgICAgICAgICAgICAgIGtleSA9IHNleCwgCiAgICAgICAgICAgICAgIHZhbHVlID0gcGVyY2VudCwgCiAgICAgICAgICAgICAgIG1hbGVwZXJjZW50OmZlbWFsZXBlcmNlbnQsIAogICAgICAgICAgICAgICBmYWN0b3Jfa2V5ID0gVFJVRSkKCmRhdF9wMiRzYW1wbGVzaXplPC13aXRoKGRhdF9wMiwgCiAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShzZXggPT0gIm1hbGVwZXJjZW50IiwgbWFsZWJpYXMsIGZlbWFsZWJpYXMpICkKCiMgYWRkZWluZyBBbGwKZGF0X3AyICU+JSAgZ3JvdXBfYnkoc2V4KSAlPiUgc3VtbWFyaXNlKG1hbGViaWFzID0gc3VtKG1hbGViaWFzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW1hbGViaWFzPSBzdW0oZmVtYWxlYmlhcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IHN1bSh0b3RhbCksCikgLT4gcGFydDIKCnBhcnQyICU+JSBtdXRhdGUoQ2F0ZWdvcnkgPSAiQWxsIiwKICAgICAgICAgICAgICAgICBzZXggPSBjKCJtYWxlcGVyY2VudCIsICJmZW1hbGVwZXJjZW50IiksCiAgICAgICAgICAgICAgICAgcGVyY2VudCA9IGMoMTAwKihtYWxlYmlhc1sxXS90b3RhbFsxXSksIDEwMCooZmVtYWxlYmlhc1sxXS90b3RhbFsxXSkpLAogICAgICAgICAgICAgICAgIHNhbXBsZXNpemUgPSBjKG1hbGViaWFzWzFdICwgIGZlbWFsZWJpYXNbMV0pKS0+IHBhcnQyCgoKI3NlbGVjdChDYXRlZ29yeSwgbWFsZWJpYXMsIGZlbWFsZWJpYXMsIHRvdGFsLCBzZXgsIHBlcmNlbnQsIHNhbXBsZXNpemUpCmRhdF9wMiA8LSBiaW5kX3Jvd3MoZGF0X3AyLCBwYXJ0MikKCgpwMiA8LSAKICBnZ3Bsb3QoZGF0X3AyKSArCiAgYWVzKHggPSBDYXRlZ29yeSwgeSA9IHBlcmNlbnQsIGZpbGwgPSBzZXgpICsKICBnZW9tX2NvbCgpICsKICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSA1MCwgbGluZXR5cGUgPSAiZGFzaGVkIiwgY29sb3IgPSAiZ3JheTQwIikgKwogIGdlb21fdGV4dChkYXRhID0gc3Vic2V0KGRhdF9wMiwgc2FtcGxlc2l6ZSAhPSAwKSwgYWVzKGxhYmVsID0gc2FtcGxlc2l6ZSksIAogICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gLjUpLCAKICAgICAgICAgICAgY29sb3IgPSAid2hpdGUiLCBzaXplID0gMy41KSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY29sb3VycykgKyAKICB0aGVtZV9idyhiYXNlX3NpemUgPSAxOCkgKwogIHRoZW1lKHN0cmlwLnRleHQueSA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDI3MCwgc2l6ZSA9IDEwLCBtYXJnaW4gPSBtYXJnaW4odD0xNSwgcj0xNSwgYj0xNSwgbD0xNSkpLCAKICAgICAgICBzdHJpcC50ZXh0LnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSwKICAgICAgICBzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGNvbG91ciA9IE5VTEwsbGluZXR5cGUgPSAiYmxhbmsiLCBmaWxsID0gImdyYXk5MCIpLAogICAgICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xNCksCiAgICAgICAgcGFuZWwuc3BhY2luZyA9IHVuaXQoMC41LCAibGluZXMiKSwKICAgICAgICBwYW5lbC5ib3JkZXI9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBheGlzLmxpbmU9ZWxlbWVudF9saW5lKCksIAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfbGluZShsaW5ldHlwZSA9ICJzb2xpZCIsIGNvbG91ciA9ICJncmF5OTUiKSwKICAgICAgICBwYW5lbC5ncmlkLm1ham9yLnkgPSBlbGVtZW50X2xpbmUobGluZXR5cGUgPSAic29saWQiLCBjb2xvciA9ICJncmF5OTUiKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpLCAKICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZT0xNCksCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKHRpdGxlID0gIlNjZW5hcmlvIEIgLSBzYW1lIHNsb3BlcywgXG4gICAgICAgICAgICBkaWZmZXJlbnQgaW50ZXJjZXB0cyIpCgoKI3NleCBiaWFzIGluIHNpZyBpbnRlcmNlcHQgYW5kIHNsb3BlIHBhcmFtZXRlciAtIHNjZW5hcmlvIEMKZGF0X3AzPC1kYXRfaW50U2xvcGVzJT4lCiAgZ3JvdXBfYnlfYXQodmFycyhDYXRlZ29yeSkpICU+JQogIHN1bW1hcmlzZShtYWxlYmlhcyA9IHN1bShtX2ludGVyY2VwdCA+IGZfaW50ZXJjZXB0ICYgbV9zbG9wZSA+IGZfc2xvcGUpLCAKICAgICAgICAgICAgbWl4ZWQgPSBzdW0obV9pbnRlcmNlcHQgPiBmX2ludGVyY2VwdCAmIG1fc2xvcGUgPCBmX3Nsb3BlLCAKICAgICAgICAgICAgICAgICAgICAgICAgbV9pbnRlcmNlcHQgPCBmX2ludGVyY2VwdCAmIG1fc2xvcGUgPiBmX3Nsb3BlKSwKICAgICAgICAgICAgZmVtYWxlYmlhcyA9IHN1bShmX2ludGVyY2VwdCA+IG1faW50ZXJjZXB0ICYgZl9zbG9wZSA+IG1fc2xvcGUpLCAKICAgICAgICAgICAgdG90YWw9IG1hbGViaWFzICsgbWl4ZWQgKyBmZW1hbGViaWFzLCAKICAgICAgICAgICAgbWFsZXBlcmNlbnQgPSBtYWxlYmlhcyoxMDAvdG90YWwsIAogICAgICAgICAgICBtaXhlZHBlcmNlbnQgPSBtaXhlZCoxMDAvdG90YWwsCiAgICAgICAgICAgIGZlbWFsZXBlcmNlbnQgPSBmZW1hbGViaWFzKjEwMC90b3RhbCkgIAoKZGF0X3AzPC1nYXRoZXIoYXMuZGF0YS5mcmFtZShkYXRfcDMpLCAKICAgICAgICAgICAgICAga2V5ID0gc2V4LCAKICAgICAgICAgICAgICAgdmFsdWUgPSBwZXJjZW50LCAKICAgICAgICAgICAgICAgbWFsZXBlcmNlbnQ6ZmVtYWxlcGVyY2VudCwgCiAgICAgICAgICAgICAgIGZhY3Rvcl9rZXkgPSBUUlVFKQpkYXRfcDMkc2FtcGxlc2l6ZTwtd2l0aChkYXRfcDMsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2Uoc2V4ID09ICJtYWxlcGVyY2VudCIsIG1hbGViaWFzLCBpZmVsc2Uoc2V4ID09ICJtaXhlZHBlcmNlbnQiLCBtaXhlZCwgZmVtYWxlYmlhcykpICkKCgojIGFkZGluZyBBbGwKZGF0X3AzICU+JSAgZ3JvdXBfYnkoc2V4KSAlPiUgc3VtbWFyaXNlKG1hbGViaWFzID0gc3VtKG1hbGViaWFzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXhlZCA9IHN1bShtaXhlZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW1hbGViaWFzPSBzdW0oZmVtYWxlYmlhcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IHN1bSh0b3RhbCksCikgLT4gcGFydDMKCnBhcnQzICU+JSBtdXRhdGUoQ2F0ZWdvcnkgPSAiQWxsIiwKICAgICAgICAgICAgICAgICBzZXggPSBjKCJtYWxlcGVyY2VudCIsICJtaXhlZHBlcmNlbnQiLCAiZmVtYWxlcGVyY2VudCIpLAogICAgICAgICAgICAgICAgIHBlcmNlbnQgPSBjKDEwMCoobWFsZWJpYXNbMV0vdG90YWxbMV0pLCAxMDAqKG1peGVkWzFdL3RvdGFsWzFdKSwgMTAwKihmZW1hbGViaWFzWzFdL3RvdGFsWzFdKSksCiAgICAgICAgICAgICAgICAgc2FtcGxlc2l6ZSA9IGMobWFsZWJpYXNbMV0gLCBtaXhlZFsxXSwgZmVtYWxlYmlhc1sxXSkpLT4gcGFydDMKCgojc2VsZWN0KENhdGVnb3J5LCBtYWxlYmlhcywgZmVtYWxlYmlhcywgdG90YWwsIHNleCwgcGVyY2VudCwgc2FtcGxlc2l6ZSkKZGF0X3AzIDwtIGJpbmRfcm93cyhkYXRfcDMsIHBhcnQzKQoKcDMgPC0gCiAgZ2dwbG90KGRhdF9wMykgKwogIGFlcyh4ID0gQ2F0ZWdvcnksIHkgPSBwZXJjZW50LCBmaWxsID0gc2V4KSArCiAgZ2VvbV9jb2woKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gNTAsIGxpbmV0eXBlID0gImRhc2hlZCIsIGNvbG9yID0gImdyYXk0MCIpICsKICBnZW9tX3RleHQoZGF0YSA9IHN1YnNldChkYXRfcDMsIHNhbXBsZXNpemUgIT0gMCksIGFlcyhsYWJlbCA9IHNhbXBsZXNpemUpLCAKICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IC41KSwgCiAgICAgICAgICAgIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDMuNSkgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGNvbG91cnMyKSArIAogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDE4KSArCiAgdGhlbWUoc3RyaXAudGV4dC55ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMjcwLCBzaXplID0gMTAsIG1hcmdpbiA9IG1hcmdpbih0PTE1LCByPTE1LCBiPTE1LCBsPTE1KSksIAogICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpLAogICAgICAgIHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoY29sb3VyID0gTlVMTCxsaW5ldHlwZSA9ICJibGFuayIsIGZpbGwgPSAiZ3JheTkwIiksCiAgICAgICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTE0KSwKICAgICAgICBwYW5lbC5zcGFjaW5nID0gdW5pdCgwLjUsICJsaW5lcyIpLAogICAgICAgIHBhbmVsLmJvcmRlcj0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMubGluZT1lbGVtZW50X2xpbmUoKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9saW5lKGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3VyID0gImdyYXk5NSIpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfbGluZShsaW5ldHlwZSA9ICJzb2xpZCIsIGNvbG9yID0gImdyYXk5NSIpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksIAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9MTQpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgeWxhYigiUGVyY2VudGFnZSAoJSkiKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKHRpdGxlID0gIlNjZW5hcmlvIEMgLSBkaWZmZXJlbnQgc2xvcGVzLCBcbiAgICAgICAgICAgICAgICBkaWZmZXJlbnQgaW50ZXJjZXB0cyIpIAoKI3NleCBiaWFzIGluIHNkIApkYXRfcDQ8LWRhdCU+JSBmaWx0ZXIocF92YWxfc2QgPD0gMC4wNSkgJT4lIAogIGdyb3VwX2J5X2F0KHZhcnMoQ2F0ZWdvcnkpKSAlPiUKICBzdW1tYXJpc2UobWFsZWJpYXMgPSBzdW0obV9zZCA+IGZfc2QpLCAKICAgICAgICAgICAgZmVtYWxlYmlhcyA9IHN1bShmX3NkID4gbV9zZCksIAogICAgICAgICAgICB0b3RhbD0gbWFsZWJpYXMgKyBmZW1hbGViaWFzLCAKICAgICAgICAgICAgbWFsZXBlcmNlbnQgPSBtYWxlYmlhcyoxMDAvdG90YWwsIAogICAgICAgICAgICBmZW1hbGVwZXJjZW50ID0gZmVtYWxlYmlhcyoxMDAvdG90YWwpCgoKZGF0X3A0PC1nYXRoZXIoYXMuZGF0YS5mcmFtZShkYXRfcDQpLCAKICAgICAgICAgICAgICAga2V5ID0gc2V4LCAKICAgICAgICAgICAgICAgdmFsdWUgPSBwZXJjZW50LCAKICAgICAgICAgICAgICAgbWFsZXBlcmNlbnQ6ZmVtYWxlcGVyY2VudCwgCiAgICAgICAgICAgICAgIGZhY3Rvcl9rZXkgPSBUUlVFKQoKZGF0X3A0JHNhbXBsZXNpemU8LXdpdGgoZGF0X3A0LCAKICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHNleCA9PSAibWFsZXBlcmNlbnQiLCBtYWxlYmlhcywgZmVtYWxlYmlhcykgKQoKCiMgYWRkZWluZyBBbGwKZGF0X3A0ICU+JSAgZ3JvdXBfYnkoc2V4KSAlPiUgc3VtbWFyaXNlKG1hbGViaWFzID0gc3VtKG1hbGViaWFzKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZW1hbGViaWFzPSBzdW0oZmVtYWxlYmlhcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IHN1bSh0b3RhbCksCikgLT4gcGFydDQKCnBhcnQ0ICU+JSBtdXRhdGUoQ2F0ZWdvcnkgPSAiQWxsIiwKICAgICAgICAgICAgICAgICBzZXggPSBjKCJtYWxlcGVyY2VudCIsICJmZW1hbGVwZXJjZW50IiksCiAgICAgICAgICAgICAgICAgcGVyY2VudCA9IGMoMTAwKihtYWxlYmlhc1sxXS90b3RhbFsxXSksIDEwMCooZmVtYWxlYmlhc1sxXS90b3RhbFsxXSkpLAogICAgICAgICAgICAgICAgIHNhbXBsZXNpemUgPSBjKG1hbGViaWFzWzFdICwgIGZlbWFsZWJpYXNbMV0pKS0+IHBhcnQ0CgoKI3NlbGVjdChDYXRlZ29yeSwgbWFsZWJpYXMsIGZlbWFsZWJpYXMsIHRvdGFsLCBzZXgsIHBlcmNlbnQsIHNhbXBsZXNpemUpCmRhdF9wNCA8LSBiaW5kX3Jvd3MoZGF0X3A0LCBwYXJ0NCkKCnA0IDwtIAogIGdncGxvdChkYXRfcDQpICsKICBhZXMoeCA9IENhdGVnb3J5LCB5ID0gcGVyY2VudCwgZmlsbCA9IHNleCkgKwogIGdlb21fY29sKCkgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDUwLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJncmF5NDAiKSArCiAgZ2VvbV90ZXh0KGRhdGEgPSBzdWJzZXQoZGF0X3A0LCBzYW1wbGVzaXplICE9IDApLCBhZXMobGFiZWwgPSBzYW1wbGVzaXplKSwgCiAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fc3RhY2sodmp1c3QgPSAuNSksIAogICAgICAgICAgICBjb2xvciA9ICJ3aGl0ZSIsIHNpemUgPSAzLjUpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjb2xvdXJzKSArIAogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDE4KSArCiAgdGhlbWUoc3RyaXAudGV4dC55ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gMjcwLCBzaXplID0gMTAsIG1hcmdpbiA9IG1hcmdpbih0PTE1LCByPTE1LCBiPTE1LCBsPTE1KSksIAogICAgICAgIHN0cmlwLnRleHQueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIpLAogICAgICAgIHN0cmlwLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoY29sb3VyID0gTlVMTCxsaW5ldHlwZSA9ICJibGFuayIsIGZpbGwgPSAiZ3JheTkwIiksCiAgICAgICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplPTE0KSwKICAgICAgICBwYW5lbC5zcGFjaW5nID0gdW5pdCgwLjUsICJsaW5lcyIpLAogICAgICAgIHBhbmVsLmJvcmRlcj0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMubGluZT1lbGVtZW50X2xpbmUoKSwgCiAgICAgICAgcGFuZWwuZ3JpZC5tYWpvci54ID0gZWxlbWVudF9saW5lKGxpbmV0eXBlID0gInNvbGlkIiwgY29sb3VyID0gImdyYXk5NSIpLAogICAgICAgIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfbGluZShsaW5ldHlwZSA9ICJzb2xpZCIsIGNvbG9yID0gImdyYXk5NSIpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwYW5lbC5ncmlkLm1pbm9yLnggPSBlbGVtZW50X2JsYW5rKCksIAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9MTQpLAogICAgICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikrCiAgeWxhYigiUGVyY2VudGFnZSAoJSkiKSArCiAgY29vcmRfZmxpcCgpICsKICBsYWJzKHRpdGxlID0gIlN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnRcbnNleCBkaWZmZXJlbmNlIGluIHJlc2lkdWFsIFNEcyIpIAoKIyBwdXR0aW5nIGFsbCB0b2dldGhlcgoocDEgKyBwMikgLyAocDMgKyBwNCkgKyAgIHBsb3RfYW5ub3RhdGlvbih0YWdfbGV2ZWxzID0gJ0EnKQoKIyBub3RlIHRoYXQgdGhlIGtleSB3YXMgaW5zZXJ0ZWQgdXNpbmcgSWxsdXN0cmF0b3IKCmBgYAoKIVtdKC4uL2ZpZy9GaWcyLnBuZykKCioqRmlnLiAyKiogU2V4IGJpYXNlcyBmb3IgbWljZSBwaGVub3R5cGljIHRyYWl0cyBhcnJhbmdlIGluIGZ1bmN0aW9uYWwgZ3JvdXBzIChzZWUgdGhlIG1haW4gdGV4KQoKIyMgRnVuY3Rpb25hbCBjYXRlZ29yaWVzIGluIHRoZSBkYXRhc2V0CgpgYGB7cn0KcGFyKG1hciA9IGMoNiwgNiwgNiwgNikpCnYgPSBjKCA4NSwgMzksIDIxLCAzMSwgMjUsIDExMSwgOCwgMjIsIDMzKQp0ID0gYygKICdiZWhhdmlvdXInLAogJ2V5ZScsCiAnaGVhcmluZycsCiAnaGVhcnQnLAogJ2hlbWF0b2xvZ3knLAogJ2ltbXVub2xvZ3knLAogJ21ldGFib2xpc20nLAogJ21vcnBob2xvZ3knLAogJ3BoeXNpb2xvZ3knCikKZCA9IGRhdGEuZnJhbWUodHJhaXQgPSB0LCBuID0gdikKZCA9IGRbb3JkZXIoZCRuLCBkZWNyZWFzaW5nID0gVFJVRSksIF0KYmFycGxvdCgKIGhlaWdodCA9IGQkbiwKIG5hbWVzLmFyZyA9IGQkdHJhaXQsCiBsYXMgPSAzLAogY29sID0gc2VxX2Fsb25nKGQkdHJhaXQpICsgMSwKIHlsaW0gPSBjKDAsIDgwKQopCmBgYAoKKipGaWcuIFMxKiogVGhlIG51bWJlciBvZiB0cmFpdHMgaW4gZWFjaCBvZiA5IGZ1bmN0aW9uYWwgY2F0ZWdvcmllcy4KCgojIyBFeHRyYTogQ29tcGFyaW5nIG1vZGVscyB3aXRoIGFuZCB3aWhvdXQgc3Vic3RyYWlucwoKCmBgYHtyfQojIGxvYWRpbmcgZGF0YQpkYXRfc2hvcnQgPC0gcmVhZF9jc3YoaGVyZSgiZGF0YS9kYXRhX2NvbXBhcmlzaW9uLmNzdiIpKQoKCmRhdF9zaG9ydCAlPiUgZ3JvdXBfYnkocGFyYW1ldGVyX2dyb3VwKSAlPiUgbXV0YXRlKGNvdW50ID0gbigpKSAtPiBkYXRfc2hvcnQKIyAKZGF0X3Nob3J0MSA8LSBkYXRfc2hvcnRbd2hpY2goZGF0X3Nob3J0JGNvdW50ID09IDEpLCBdCiMgCiNkaW0oZGF0MSkKCiMgIHRha2luZyBvdXQgaW5kZXBlbmRlbnQgdHJhaXRzCmRhdF9zaG9ydDIgPC0gZGF0X3Nob3J0Wy13aGljaChkYXRfc2hvcnQkY291bnQgPT0gMSksIF0KCiMgbmVzdGluZyBkYXRhIGludG8gYSBsb3Qgb2YgZGF0YSBzZXRzIGFuZCBhcHBseSBwX21vZCBmdW5jdGlvbgpuX2RhdF9zaG9ydDIgPC0gZGF0X3Nob3J0MiAlPiUgZ3JvdXBfYnkocGFyYW1ldGVyX2dyb3VwKSAlPiUgIG5lc3QoKQoKIyBmdW5jdGlvbiB0byBnZXQgbWVyZ2VkIHAgdmFsdWUgZm9yIGNvbXBhcmluZyBtb2RlbHMKcF9jb21wIDwtZnVuY3Rpb24oZGF0YSl7CiAgCiAgbGVuIDwtIGRpbShkYXRhKVsxXQogIFJtYXQgPC0gbWF0cml4KDAuOCwgbnJvdyA9IGxlbiwgbmNvbCA9IGxlbikKICBkaWFnKFJtYXQpIDwtIDEKICAKICBwX21vZCA8LSBmaXNoZXIoZGF0YSRwX3ZhbHVlLCBhZGp1c3QgPSAibGlqaSIsIFIgPSBSbWF0KQogIHA8LSBwX21vZCRwCiAgcmV0dXJuKHApCiAgCn0KCiMgbWVyZ2VkIGRhdGEKbV9kYXRfc2hvcnQyIDwtIG5fZGF0X3Nob3J0MiAgJT4lIG11dGF0ZShtZXJnZWRfcF9jb21wID0gbWFwX2RibChkYXRhLCBwX2NvbXApKQoKIyBzaG9ydCBkYXRhc2V0CmRhdF9zaWcgPC1kYXRfc2hvcnQgJT4lCiAgZmlsdGVyIChwX3ZhbHVlIDw9IDAuMDUpCgojMTU1IG91dCBvZiAyNDggdHJhaXRzIHNpZyBjb21wYXJpc29ucwpucm93KGRhdF9zaG9ydCkKbnJvdyhkYXRfc2lnKQoKIyByZWR1Y2VkIGRhdGFzZXQKZGF0X3NpZzEgPC1kYXRfc2hvcnQxICU+JQogIGZpbHRlciAocF92YWx1ZSA8PSAwLjA1KQoKZGF0X3NpZzIgPC1tX2RhdF9zaG9ydDIgJT4lCiAgZmlsdGVyIChtZXJnZWRfcF9jb21wIDw9IDAuMDUpCgojOTggb3V0IG9mIDE1NCB0cmFpdHMgc2lnIGNvbXBhcmlzb25zCm5yb3coZGF0X3Nob3J0MSkgKyBucm93KG1fZGF0X3Nob3J0MikKbnJvdyhkYXRfc2lnMSkgKyBucm93KGRhdF9zaWcyKSAKCgpgYGAKCiMgTWV0YS1hbmFseXNpcyB7LnRhYnNldH0KCiMjIENhbGN1bGF0aW5nIGFic29sdXRlIGVmZmVjdCBzaXplcwoKSGVyZSB3ZSBjb252ZXJ0IG91ciBlZmZlY3Qgc2l6ZXMgdG8gYWJzb2x1dGUgdmFsdWVzIGFzc3VtaW5nIGZvbGRlZCBub3JtYWwgZGlzdHJpYnV0aW9ucy4KCmBgYHtyfQojIyBmb3IgZm9sZGVkIG5vcm1hbCBkaXN0cmlidXRpb24gc2VlOiAKIyMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRm9sZGVkX25vcm1hbF9kaXN0cmlidXRpb24KCiMgZm9sZGVkIG1lYW4KZm9sZGVkX211IDwtZnVuY3Rpb24obWVhbiwgdmFyaWFuY2UpewogIG11IDwtIG1lYW4KICBzaWdtYSA8LSBzcXJ0KHZhcmlhbmNlKQogIGZvbGRfbXUgPC0gc2lnbWEqc3FydCgyL3BpKSpleHAoKC1tdV4yKS8oMipzaWdtYV4yKSkgKyBtdSooMSAtIDIqcG5vcm0oLW11L3NpZ21hKSkKICBmb2xkX211Cn0gCgojIGZvbGRlZCB2YXJpYW5jZQpmb2xkZWRfdiA8LWZ1bmN0aW9uKG1lYW4sIHZhcmlhbmNlKXsKICBtdSA8LSBtZWFuCiAgc2lnbWEgPC0gc3FydCh2YXJpYW5jZSkKICBmb2xkX211IDwtIHNpZ21hKnNxcnQoMi9waSkqZXhwKCgtbXVeMikvKDIqc2lnbWFeMikpICsgbXUqKDEgLSAyKnBub3JtKC1tdS9zaWdtYSkpCiAgZm9sZF9zZSA8LSBzcXJ0KG11XjIgKyBzaWdtYV4yIC0gZm9sZF9tdV4yKQogICMgYWRkaW5nIHNlIHRvIG1ha2UgYmlnZ2VyIG1lYW4KICBmb2xkX3YgPC1mb2xkX3NlXjIKICBmb2xkX3YKfSAKCgpkYXQgPC0gZGF0ICU+JSBtdXRhdGUoYWJzX2ludCA9IGZvbGRlZF9tdShmbV9kaWZmX2ludCwgZm1fZGlmZl9pbnRfc2VeMiksIAogICAgICAgICAgICAgICAgICAgICAgYWJzX3Nsb3BlID0gZm9sZGVkX211KGZtX2RpZmZfc2xvcGUsIGZtX2RpZmZfc2xvcGVfc2VeMiksCiAgICAgICAgICAgICAgICAgICAgICBhYnNfbG5WUiA9IGZvbGRlZF9tdShsblZSLCBWbG5WUiksCiAgICAgICAgICAgICAgICAgICAgICBWX2Fic19pbnQgPSBmb2xkZWRfdihmbV9kaWZmX2ludCwgZm1fZGlmZl9pbnRfc2VeMiksIAogICAgICAgICAgICAgICAgICAgICAgVl9hYnNfc2xvcGUgPSBmb2xkZWRfdihmbV9kaWZmX3Nsb3BlLCBmbV9kaWZmX3Nsb3BlX3NlXjIpLAogICAgICAgICAgICAgICAgICAgICAgVl9hYnNfbG5WUiA9IGZvbGRlZF92KGxuVlIsIFZsblZSKSwKICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX24gPSBmX24gKyBtX24pCmBgYAoKIyMgQ29tcGFyaW5nIHNleCBkaWZmZXJlbmNlIGluIGludGVyY2VwdHMKClRoaXMgaXMgYSBtZXRhLWFuYWx5dGljIG1vZGVsIG9mIHNleCBkaWZmZXJlbmNlcyBpbiBpbnRlcmNlcHRzIChtZWFuIHRyYWl0cykuIFdlIHVzZSB0aGUgYHJ1YnVzdGAgZnVuY3Rpb24gY2FsY3VsYXRlcyB0byBzZWUgd2hldGhlciBvdXIgcmVzdWx0cyBmb3JtIHRoZSBtb2RlbCBpcyByb2J1c3QgKGNvbnNpc3RlbnQpLgoKYGBge3J9Cm1vZGVsaWEgPC0gcm1hLm12KHlpID0gYWJzX2ludCwgCiAgICAgICAgICAgICAgICAgIFY9IFZfYWJzX2ludCwgCiAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QofjF8IENhdGVnb3J5LCB+MXwgcGFyYW1ldGVyX2dyb3VwLCB+MXxvYnMpLCAKICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdCkKc3VtbWFyeShtb2RlbGlhKQoKIyByb2J1c3QgdmFyaWFuY2UgZXN0aW1hdG9yCnJvYnVzdChtb2RlbGlhLCBjbHVzdGVyICA9ICBkYXQkcGFyYW1ldGVyX2dyb3VwKQoKIyBJMiAoaGV0ZXJvZ2VuZWl0eSkKaTJfbWwobW9kZWxpYSkKYGBgCgpUaGlzIGlzIGEgbWV0YS1yZWdyZXNzaW9uIG1vZGVsIG9mIHNleCBkaWZmZXJlbmNlcyBpbiBpbnRlcmNlcHRzIChtZWFuIHRyYWl0cykgd2l0aCBhIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgYXMgYSBtb2RlcmF0b3IuIFdlIHVzZWQgdGhlIGBydWJ1c3RgIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdG8gc2VlIHdoZXRoZXIgb3VyIHJlc3VsdHMgZm9ybSB0aGUgbW9kZWwgaXMgcm9idXN0IChjb25zaXN0ZW50KS4KCmBgYHtyfQptb2RlbDFhIDwtIHJtYS5tdih5aSA9IGFic19pbnQsIFY9IFZfYWJzX2ludCwgbW9kID0gfiBDYXRlZ29yeSAtIDEsCiAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QofjF8IHBhcmFtZXRlcl9ncm91cCwgfjF8b2JzKSwgCiAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXQpCnN1bW1hcnkobW9kZWwxYSkKcm9idXN0KG1vZGVsMWEsIGNsdXN0ZXIgID0gIGRhdCRwYXJhbWV0ZXJfZ3JvdXApCiMgUjIgKHZhcmlhbmNlIGV4cGxhaW5lZCkKcjJfbWwobW9kZWwxYSkKYGBgCgojIyBDb21wYXJpbmcgc2V4IGRpZmZlcmVuY2UgaW4gc2xvcGVzCgpUaGlzIGlzIGEgbWV0YS1hbmFseXRpYyBtb2RlbCBvZiBzZXggZGlmZmVyZW5jZXMgaW4gc2xvcGVzLiBXZSB1c2VkIHRoZSBgcnVidXN0YCBmdW5jdGlvbiBjYWxjdWxhdGVzIHRvIHNlZSB3aGV0aGVyIG91ciByZXN1bHRzIGZvcm0gdGhlIG1vZGVsIGlzIHJvYnVzdCAoY29uc2lzdGVudCkuCgpgYGB7cn0KbW9kZWxzYSA8LSBybWEubXYoeWkgPSBhYnNfc2xvcGUsIFY9IFZfYWJzX3Nsb3BlLCAKICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCh+MXwgQ2F0ZWdvcnksIH4xfCBwYXJhbWV0ZXJfZ3JvdXAsIH4xfG9icyksIAogICAgICAgICAgICAgICAgICBkYXRhID0gZGF0KQpzdW1tYXJ5KG1vZGVsc2EpICMgbm90IHNpZyB0aGlzIG1lYW5zIHNvbWV0aW1lcyBtYWxlIGlzIGhpZ2ggb3RoZXIgdGltZXMgZmVtYWxlIGhhcyBzdGVhcGVyIHNsb3BzCnJvYnVzdChtb2RlbHNhLCBjbHVzdGVyICA9ICBkYXQkcGFyYW1ldGVyX2dyb3VwKQoKIyBJMiAoaGV0ZXJvZ2VuZWl0eSkKaTJfbWwobW9kZWxpYSkKYGBgCgpUaGlzIGlzIGEgbWV0YS1yZWdyZXNzaW9uIG1vZGVsIG9mIHNleCBkaWZmZXJlbmNlcyBpbiBzbG9wZXMgd2l0aCBhIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgYXMgYSBtb2RlcmF0b3IuIFdlIHVzZSB0aGUgYHJ1YnVzdGAgZnVuY3Rpb24gY2FsY3VsYXRlcyB0byBzZWUgd2hldGhlciBvdXIgcmVzdWx0cyBmb3JtIHRoZSBtb2RlbCBpcyByb2J1c3QgKGNvbnNpc3RlbnQpLgoKYGBge3J9Cm1vZGVsMmEgPC0gcm1hLm12KHlpID0gYWJzX3Nsb3BlLCBWPSBWX2Fic19zbG9wZSwKICAgICAgICAgICAgICAgICAgbW9kID0gfiBDYXRlZ29yeSAtIDEsCiAgICAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QofjF8IHBhcmFtZXRlcl9ncm91cCwgfjF8b2JzKSwgCiAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXQpCnN1bW1hcnkobW9kZWwyYSkKcm9idXN0KG1vZGVsMmEsIGNsdXN0ZXIgID0gIGRhdCRwYXJhbWV0ZXJfZ3JvdXApCiMgUjIgKHZhcmlhbmNlIGV4cGxhaW5lZCkKcjJfbWwobW9kZWwyYSkKYGBgCgojIyBDb21wYXJpbmcgc2V4IGRpZmZlcmVuY2UgaW4gcmVzZGlhdWwgU0RzCgpUaGlzIGlzIGEgbWV0YS1hbmFseXRpYyBtb2RlbCBvZiBzZXggZGlmZmVyZW5jZXMgaW4gcmVzaWR1YWwgU0RzLiBXZSB1c2UgdGhlIGBydWJ1c3RgIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdG8gc2VlIHdoZXRoZXIgb3VyIHJlc3VsdHMgZm9ybSB0aGUgbW9kZWwgaXMgcm9idXN0IChjb25zaXN0ZW50KS4KCmBgYHtyfQptb2RlbHNkYSA8LSBybWEubXYoeWkgPSBhYnNfbG5WUiwgVj0gVl9hYnNfbG5WUiwgCiAgICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KH4xfCBDYXRlZ29yeSwgfjF8IHBhcmFtZXRlcl9ncm91cCwgfjF8b2JzKSwgCiAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0KQpzdW1tYXJ5KG1vZGVsc2RhKQpyb2J1c3QobW9kZWxzZGEsIGNsdXN0ZXIgID0gIGRhdCRwYXJhbWV0ZXJfZ3JvdXApCgojIEkyIChoZXRlcm9nZW5laXR5KQppMl9tbChtb2RlbHNkYSkKYGBgCgpUaGlzIGlzIGEgbWV0YS1yZWdyZXNzaW9uIG1vZGVsIG9mIHNleCBkaWZmZXJlbmNlcyBpbiByZXNpZHVhbCBTRHMgd2l0aCBhIGZ1bmN0aW9uYWwgY2F0ZWdvcnkgYXMgYSBtb2RlcmF0b3IuIFdlIHVzZSB0aGUgYHJ1YnVzdGAgZnVuY3Rpb24gY2FsY3VsYXRlcyB0byBzZWUgd2hldGhlciBvdXIgcmVzdWx0cyBmb3JtIHRoZSBtb2RlbCBpcyByb2J1c3QgKGNvbnNpc3RlbnQpLgoKYGBge3J9CiMgbWV0YS1yZWdyZXNzaW9uCm1vZGVsM2EgPC0gcm1hLm12KHlpID0gYWJzX2xuVlIsIFY9IFZfYWJzX2xuVlIsIG1vZCA9IH4gQ2F0ZWdvcnkgLSAxLAogICAgICAgICAgICAgICAgICByYW5kb20gPSBsaXN0KH4xfCBwYXJhbWV0ZXJfZ3JvdXAsIH4xfG9icyksIAogICAgICAgICAgICAgICAgICBkYXRhID0gZGF0KQpzdW1tYXJ5KG1vZGVsM2EpCiMgUjIgKHZhcmlhbmNlIGV4cGxhaW5lZCkKcjJfbWwobW9kZWwzYSkKYGBgCgojIyBDb21wYXJpbmcgbW9kZWwgZml0cwoKVGhpcyBpcyBhIG1ldGEtYW5hbHl0aWMgbW9kZWwgb2YgWnIgKHRyYW5zZm9ybWVkIG1vZGVsIGZpdHMpLiBXZSB1c2UgdGhlIGBydWJ1c3RgIGZ1bmN0aW9uIGNhbGN1bGF0ZXMgdG8gc2VlIHdoZXRoZXIgb3VyIHJlc3VsdHMgZm9ybSB0aGUgbW9kZWwgaXMgcm9idXN0IChjb25zaXN0ZW50KS4KCmBgYHtyfQptb2RlbHIwIDwtIHJtYS5tdih5aSA9IFpyLCAKICAgICAgICAgICAgICAgICAgVj0gVlpyLCAKICAgICAgICAgICAgICAgICAgcmFuZG9tID0gbGlzdCh+MXwgQ2F0ZWdvcnksIH4xfCBwYXJhbWV0ZXJfZ3JvdXAsIH4xfG9icyksIAogICAgICAgICAgICAgICAgICBkYXRhID0gZGF0KQpzdW1tYXJ5KG1vZGVscjApCnJvYnVzdChtb2RlbHIwLCBjbHVzdGVyICA9ICBkYXQkcGFyYW1ldGVyX2dyb3VwKQoKI2Z1bm5lbChtb2RlbHIwKQppMl9tbChtb2RlbHIwKQpgYGAKClRoaXMgaXMgYSBtZXRhLXJlZ3Jlc3Npb24gbW9kZWwgb2YgWnIgKHRyYW5zZm9ybWVkIG1vZGVsIGZpdHMpLiB3aXRoIGEgZnVuY3Rpb25hbCBjYXRlZ29yeSBhcyBhIG1vZGVyYXRvci4gV2UgdXNlIHRoZSBgcnVidXN0YCBmdW5jdGlvbiBjYWxjdWxhdGVzIHRvIHNlZSB3aGV0aGVyIG91ciByZXN1bHRzIGZvcm0gdGhlIG1vZGVsIGlzIHJvYnVzdCAoY29uc2lzdGVudCkuCgpgYGB7cn0KIyBtZXRhLXJlZ3Jlc3Npb24KbW9kZWxyMSA8LSBybWEubXYoeWkgPSBaciwgbW9kID0gfiBDYXRlZ29yeSAtIDEsCiAgICAgICAgICAgICAgIFY9IFZaciwgCiAgICAgICAgICAgICAgIHJhbmRvbSA9IGxpc3QofjF8IHBhcmFtZXRlcl9ncm91cCwgfjF8b2JzKSwgCiAgICAgICAgICAgICAgIGRhdGEgPSBkYXQpCgpzdW1tYXJ5KG1vZGVscjEpCiMgUjIgKHZhcmlhbmNlIGV4cGxhaW5lZCkKcjJfbWwobW9kZWxyMSkKYGBgCgojIyBPYnRhaW5pbmcgY29ycmVsYXRpb25zIGFtb25nIGludGVyY2VwdHMsIHNsb3BlcywgU0RzIGFuZCBtb2RlbCBmaXRzCgpgYGB7ciwgZXZhbCA9IEZBTFNFfQoKIyBxdWFkLXZhcmlhdGUgbW9kZWwKCm1vZF9sbnNkIDwtIGJmKGxvZyhhYnNfbG5WUikgfCBzZShzcXJ0KFZfYWJzX2xuVlIpL2Fic19sblZSKSAgfiAtIDEgKyAgQ2F0ZWdvcnkrICgxfHF8cGFyYW1ldGVyX2dyb3VwKSkKbW9kX2xuc2xwIDwtIGJmKGxvZyhhYnNfc2xvcGUpIHwgc2Uoc3FydChWX2Fic19zbG9wZSkvYWJzX3Nsb3BlKSAgfiAgLSAxICsgIENhdGVnb3J5ICsgKDF8cXxwYXJhbWV0ZXJfZ3JvdXApKQptb2RfbG5pbnQgPC0gYmYobG9nKGFic19pbnQpIHwgc2Uoc3FydChWX2Fic19pbnQpL2Fic19pbnQpICB+ICAtIDEgKyAgQ2F0ZWdvcnkgKyAoMXxxfHBhcmFtZXRlcl9ncm91cCkpCm1vZF9sbnpyIDwtIGJmKGxvZyhacikgfCBzZShzcXJ0KFZacikvWnIpICB+ICAtIDEgKyAgQ2F0ZWdvcnkgKyAoMXxxfHBhcmFtZXRlcl9ncm91cCkpCgpmaXRfNGIgPC0gYnJtKG1vZF9sbnNkICsgbW9kX2xuc2xwICsgbW9kX2xuaW50ICsgbW9kX2xuenIsCiAgICAgICAgICAgICAgZGF0YSA9IGRhdCwKICAgICAgICAgICAgICBjaGFpbnMgPSAyLCBjb3JlcyA9IDIsIGl0ZXIgPSA0MDAwLCB3YXJtdXAgPSAxMDAwLAogICAgICAgICAgICAgIGJhY2tlbmQgPSAiY21kc3RhbnIiCiAgICAgICAgICAgICAgKQoKc3VtbWFyeShmaXRfNGIpCgojIHNhdmluZyB0aGUgbW9kZWwKc2F2ZVJEUyhmaXRfNGIsIGZpbGUgPSBoZXJlKCJkYXRhIiwgImZpdF80Yi5yZHMiKSkKYGBgCgpgYGB7ciwgZWNobyA9IEZBTFNFfQpmaXRfNGIgPC0gcmVhZFJEUyhoZXJlKCJkYXRhIiwgImZpdF80Yi5yZHMiKSkKCnN1bW1hcnkoZml0XzRiKQpgYGAKCiMjIENyZWF0aW5nIEZpZ3VyZSAzCgpgYGB7ciwgZXZhbCA9IEZ9CiMgIGNvbG91ci1ibGluZCBmcmVpbmRseSBjb2xvdXIKY2JwbCA8LSBjKCIjRTY5RjAwIiwgIiMwMDlFNzMiLCAiI0YwRTQ0MiIsICIjMDA3MkIyIiwgIiNENTVFMDAiLCAKICAgICAgICAgICIjQ0M3OUE3IiwgIiM1NkI0RTkiLCAiI0FBNDQ5OSIsICIjRERDQzc3IikKCnBvaW50LnNpemUgPSAyCmJyYW5jaC5zaXplID0gMy41CgojIGludGVyY2VwdCBtZXRhLWFuYWx5c2lzCnAxIDwtIG9yY2hhcmRfcGxvdDIobW9kZWxpYSwgbW9kID0gIkludCIsIHhsYWIgPSAiQWJzb2x1dGUgZGlmZmVyZW5jZSBpbiBzdGFuZGFyZGl6ZWQgaW50ZXJjZXB0cyAgKEYtTSkiLCBhbmdsZSA9IDQ1LCBwb2ludC5zaXplID0gcG9pbnQuc2l6ZSwgTiA9IGRhdCR0b3RhbF9uLCBsZWdlbmQub24gPSBUUlVFLCBicmFuY2guc2l6ZSA9IGJyYW5jaC5zaXplLCkgKwogIHNjYWxlX3lfZGlzY3JldGUobGFiZWxzID0gIk92ZXJhbGwiKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gIiM5OTk5OTkiKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSAiIzk5OTk5OSIpICMrCiAgI3hsaW0oYygtMC41LCAxLjUpKQoKIyBpbnRlcmNlcHQgbWV0YS1yZWdyZXNzaW9uCnAyIDwtIG9yY2hhcmRfcGxvdDIobW9kZWwxYSwgbW9kID0gIkNhdGVnb3J5IiwgeGxhYiA9ICJBYnNvbHV0ZSBkaWZmZXJlbmNlIGluIHN0YW5kYXJkaXplZCBpbnRlcmNlcHRzICAoRi1NKSIsIGFuZ2xlID0gNDUsICBwb2ludC5zaXplID0gcG9pbnQuc2l6ZSwgTiA9IGRhdCR0b3RhbF9uLCBsZWdlbmQub24gPSBUUlVFLCBicmFuY2guc2l6ZSA9IGJyYW5jaC5zaXplLCkgKyAKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSAjKwogICN4bGltKGMoLTAuNSwgMS41KSkKCiMgc2xvcGUgbWV0YS1hbmFseXNpcwpwMyA8LSBvcmNoYXJkX3Bsb3QyKG1vZGVsc2EsIG1vZCA9ICJJbnQiLCB4bGFiID0gIkFic29sdXRlIGRpZmZlcmVuY2UgaW4gc3RhbmRhcmRpemVkIHNsb3BlcyAoRi1NKSIsIGFuZ2xlID0gNDUsICBwb2ludC5zaXplID0gcG9pbnQuc2l6ZSwgayA9IEYsIE4gPSBkYXQkdG90YWxfbiwgbGVnZW5kLm9uID0gRkFMU0UsIGJyYW5jaC5zaXplID0gYnJhbmNoLnNpemUsKSArCiAgc2NhbGVfeV9kaXNjcmV0ZShsYWJlbHMgPSAiIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9ICIjOTk5OTk5IikgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gIiM5OTk5OTkiKSAjKwogICN4bGltKGMoLTEuNSwgMTApKQoKIyBzbG9wZSBtZXRhLXJlZ3Jlc3Npb24KcDQgPC0gb3JjaGFyZF9wbG90Mihtb2RlbDJhLCBtb2QgPSAiQ2F0ZWdvcnkiLCB4bGFiID0gIkFic29sdXRlIGRpZmZlcmVuY2UgaW4gc3RhbmRhcmRpemVkIHNsb3BlcyAoRi1NKSIsIGFuZ2xlID0gNDUsIGNiID0gRiwgIHBvaW50LnNpemUgPSBwb2ludC5zaXplLCBrID0gRiwgTiA9IGRhdCR0b3RhbF9uLCBsZWdlbmQub24gPSBGQUxTRSwgYnJhbmNoLnNpemUgPSBicmFuY2guc2l6ZSwpICsgCiAgc2NhbGVfeV9kaXNjcmV0ZShsYWJlbHMgPSByZXAoIiIsIDkpKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgIysKICAjeGxpbShjKC0xLjUsIDEwKSkKCiMgU0QgbWV0YS1hbmFseXNpcwpwNSA8LSBvcmNoYXJkX3Bsb3QyKG1vZGVsc2RhLCBtb2QgPSAiQ2F0ZWdvcnkiLCB4bGFiID0gIkFic29sdXRlIHJlbGF0aXZlIGRpZmZlcmVuY2UgaW4gU0QgKGxuVlI6IEYvTSkiLCBhbmdsZSA9IDQ1LCAgcG9pbnQuc2l6ZSA9IHBvaW50LnNpemUsIGsgPSBGLCBOID0gZGF0JHRvdGFsX24sIGxlZ2VuZC5vbiA9IEZBTFNFLCBicmFuY2guc2l6ZSA9IGJyYW5jaC5zaXplLCkgKwogIHNjYWxlX3lfZGlzY3JldGUobGFiZWxzID0gIiIpICsKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSAiIzk5OTk5OSIpICsKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9ICIjOTk5OTk5IikgIysKICAjeGxpbShjKC0wLjIsIDEuOSkpCgojIFNEIG1ldGEtcmVncmVzc2lvbgpwNiA8LSBvcmNoYXJkX3Bsb3QyKG1vZGVsM2EsIG1vZCA9ICJDYXRlZ29yeSIsIHhsYWIgPSAiQWJzb2x1dGUgcmVsYXRpdmUgZGlmZmVyZW5jZSBpbiBTRCAobG5WUjogRi9NKSIsIGFuZ2xlID0gNDUsIGNiID0gRiwgIHBvaW50LnNpemUgPSBwb2ludC5zaXplLCBrID0gRiwgTiA9IGRhdCR0b3RhbF9uLCBsZWdlbmQub24gPSBGQUxTRSwgYnJhbmNoLnNpemUgPSBicmFuY2guc2l6ZSwpICsgCiAgc2NhbGVfeV9kaXNjcmV0ZShsYWJlbHMgPSByZXAoIiIsIDkpKSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgIysKICAjeGxpbShjKC0wLjIsIDEuOSkpCgoKIyBwdXR0aW5nIGl0IHRvZ2V0aGVyCihwMSB8IHAzIHwgcDUpIC8gKHAyIHwgcDQgfCBwNikgICsgcGxvdF9sYXlvdXQoaGVpZ2h0cyA9IGMoMSwgMykpICsgcGxvdF9hbm5vdGF0aW9uKHRhZ19sZXZlbHMgPSAnQScpCgpgYGAKCiFbXSguLi9maWcvRmlnMy5wbmcpCgoqKkZpZy4gMyoqIE9yY2hhcmQgcGxvdHMgaWxsdXN0cmF0aW5nIHJlc3VsdHMgb2YgbXVsdGlsZXZlbCBtZXRhLWFuYWx5c2VzIChzZWUgdGhlIG1haW4gdGV4dCkKCgojIyBDcmVhdGluZyBGaWd1cmUgUzEKCmBgYHtyLCBldmFsID0gRn0KIyBtZXRhLWFuYWx5c2lzIHdpdGggbW9kZWwgZml0CnQxIDwtIG9yY2hhcmRfcGxvdDIobW9kZWxyMCwgbW9kID0gIkludCIsIHhsYWIgPSAiWnIgKHRyYW5zZm9ybWVkIHZhcmlhbmNlIGFjY291bnRlZCBmb3IpIiwgYW5nbGUgPSA0NSwgCiAgICAgICAgICAgICAgICAgICAgcG9pbnQuc2l6ZSA9IHBvaW50LnNpemUsIGJyYW5jaC5zaXplID0gYnJhbmNoLnNpemUsIGsgPSBGLCBOID0gZGF0JHRvdGFsX24pICsKICBzY2FsZV95X2Rpc2NyZXRlKGxhYmVscyA9ICJPdmVyYWxsIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9ICIjOTk5OTk5IikgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gIiM5OTk5OTkiKSAjKwogICN4bGltKGMoLTAuNSwgMS41KSkKCiMgbWV0YS1yZWdyZXNzaW9uIHdpdGggbW9kZWwgZml0CnQyIDwtIG9yY2hhcmRfcGxvdDIobW9kZWxyMSwgbW9kID0gIkNhdGVnb3J5IiwgeGxhYiA9ICJaciAodHJhbnNmb3JtZWQgdmFyaWFuY2UgYWNjb3VudGVkIGZvcikiLCBhbmdsZSA9IDQ1LCAgcG9pbnQuc2l6ZSA9IHBvaW50LnNpemUsIGsgPSBGLCBOID0gZGF0JHRvdGFsX24sIGJyYW5jaC5zaXplID0gYnJhbmNoLnNpemUsKSArIAogICNzY2FsZV95X2Rpc2NyZXRlKGxhYmVscyA9ICJPdmVyYWxsIikgKwogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGNicGwpICsKICBzY2FsZV9jb2xvdXJfbWFudWFsKHZhbHVlcyA9IGNicGwpICMrCiAgI3hsaW0oYygtMC41LCAxLjUpKQoKKHQxKSAvICh0MikgICsgcGxvdF9sYXlvdXQoaGVpZ2h0cyA9IGMoMSwgMykpICsgcGxvdF9hbm5vdGF0aW9uKHRhZ19sZXZlbHMgPSAnQScpCmBgYAoKCiFbXSguLi9maWcvRmlnUzEucG5nKQoKKipGaWcuIFMxKiogT3JjaGFyZCBwbG90cyBpbGx1c3RyYXRpbmcgcmVzdWx0cyBvZiBtdWx0aWxldmVsIG1ldGEtYW5hbHlzZXMgZm9yIFpyIChtb2RlbCBmaXQpCgojIyBDcmVhdGluZyBGaWd1cmUgNAoKYGBge3IsIGZpZy5oZWlnaHQ9IDEyfQojIGNyZWF0aW5nIGFkZGVkIHByZWNpc2lvbgoKIyBkYXQgJT4lICBtdXRhdGUocHJlX3NscF9pbnQgPSAxL3NxcnQoVl9hYnNfaW50L2Fic19pbnReMiArIFZfYWJzX3Nsb3BlL2Fic19zbG9wZV4yKSwKIyAgICAgICAgICAgICAgICAgcHJlX3NscF9zZCA9ICAxL3NxcnQoVl9hYnNfc2xvcGUvYWJzX3Nsb3BlXjIgKyBWX2Fic19sblZSL2Fic19sblZSXjIpLAojICAgICAgICAgICAgICAgICBwcmVfaW50X3NkID0gMS9zcXJ0KFZfYWJzX2ludC9hYnNfaW50XjIgKyBWX2Fic19sblZSL2Fic19sblZSXjIpCiMgKSAtPiBkYXQgCgojICBjb2xvdXItYmxpbmQgZnJlaW5kbHkgY29sb3VyCmNicGwgPC0gYygiI0U2OUYwMCIsICIjMDA5RTczIiwgIiNGMEU0NDIiLCAiIzAwNzJCMiIsICIjRDU1RTAwIiwgCiAgICAgICAgICAiI0NDNzlBNyIsICIjNTZCNEU5IiwgIiNBQTQ0OTkiLCAiI0REQ0M3NyIpCgpmMSA8LSBnZ3Bsb3QoZGF0YSA9IGRhdCkgKwogIGdlb21fcG9pbnQoYWVzKHggPSBsb2coYWJzX3Nsb3BlKSwgeSA9IGxvZyhhYnNfaW50KSwgY29sID0gQ2F0ZWdvcnksIHNpemUgPSB0b3RhbF9uKSkgKyAKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArCiAgbGFicyh4ID0gImxuKEFic29sdXRlIGRpZmZlcmVuY2UgaW4gc3RhbmRhcmRpemVkIHNsb3BlcykiICwgeSA9ICJsbihBYnNvbHV0ZSBkaWZmZXJlbmNlIGluIHN0YW5kYXJkaXplZCBpbnRlcmNlcHRzKSIpKwogIGxhYnMoY29sb3I9J1RyYWl0IHR5cGVzJywgc2l6ZSA9ICJTYW1wbGUgc2l6ZSAoTikiKSArCiAgYW5ub3RhdGUoZ2VvbT0idGV4dCIsIHggPSAtIDEwLCB5ID0gLTAuNSwgbGFiZWw9InIgPSAwLjgyIFswLjc2LCAwLjg4XSIsIHNpemUgPSAzKSsKICB0aGVtZV9idygpICArCiAgdGhlbWUobGVnZW5kLmtleS5zaXplID0gdW5pdCgwLjUsICdjbScpLCBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZT0xMCkpICsKICBndWlkZXMoY29sID0gIm5vbmUiKSAKCmYyIDwtIGdncGxvdChkYXRhID0gZGF0KSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGxvZyhhYnNfc2xvcGUpLCB5ID0gbG9nKGFic19sblZSKSwgY29sID0gQ2F0ZWdvcnksIHNpemUgPSB0b3RhbF9uKSkgKyAKICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjYnBsKSArCiAgbGFicyh4ID0gImxuKEFic29sdXRlIGRpZmZlcmVuY2UgaW4gc3RhbmRhcmRpemVkIHNsb3BlcykiICwgeSA9ICJsbihBYnNvbHV0ZSByZWxhdGl2ZSBkaWZmZXJlbmNlIGluIFNEKSIpICsKICBsYWJzKGNvbG9yPSdUcmFpdCB0eXBlcycsIHNpemUgPSAiU2FtcGxlIHNpemUgKE4pIikgKwogIGFubm90YXRlKGdlb209InRleHQiLCB4PSAtOS44LCB5ID0gMC41LCBsYWJlbD0iciA9IDAuMTQgWy0wLjAxLiwgMC4zMF0iLCBzaXplID0gMykrCiAgdGhlbWVfYncoKSAgICsKICB0aGVtZShsZWdlbmQua2V5LnNpemUgPSB1bml0KDAuNSwgJ2NtJyksIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPTEwKSkgKyAKICBndWlkZXMoY29sID0gIm5vbmUiLCBzaXplID0gIm5vbmUiKSAKICAjc2NhbGVfc2l6ZV9jb250aW51b3VzKGJyZWFrcyA9IGMoMjAwLCAyMDAwLCAyMDAwMCksIGd1aWRlID0gZ3VpZGVfbGVnZW5kKCkpICsKCmYzIDwtIGdncGxvdChkYXRhID0gZGF0KSArCiAgZ2VvbV9wb2ludChhZXMoeCA9IGxvZyhhYnNfaW50KSwgeSA9IGxvZyhhYnNfbG5WUiksIGNvbCA9IENhdGVnb3J5LCBzaXplID0gdG90YWxfbikpICsgCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIGxhYnMoeCA9ICJsbihBYnNvbHV0ZSBkaWZmZXJlbmNlIGluIHN0YW5kYXJkaXplZCBpbnRlcmNlcHRzKSIgLCB5ID0gImxuKEFic29sdXRlIHJlbGF0aXZlIGRpZmZlcmVuY2UgaW4gU0QpIikgKwogIGxhYnMoY29sb3I9J1RyYWl0IHR5cGVzJywgc2l6ZSA9ICJTYW1wbGUgc2l6ZSAoTikiKSArCiAgYW5ub3RhdGUoZ2VvbT0idGV4dCIsIHg9IC0gOS41LCB5ID0gMC41LCBsYWJlbD0iciA9IDAuMDcgWy0wLjA4LCAwLjIyXSIsIHNpemUgPSAzKSsKICB0aGVtZV9idygpICsKICB0aGVtZShsZWdlbmQua2V5LnNpemUgPSB1bml0KDAuNSwgJ2NtJyksIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPTEwKSkgKwogIGd1aWRlcyhzaXplID0gIm5vbmUiKSAKCgogKGYzL2YyL2YxKSAgKyBwbG90X2Fubm90YXRpb24odGFnX2xldmVscyA9ICdBJykKCmBgYAoKKipGaWcuIDQqKiBCaXZhcmlhdGUgb3JkaW5hdGlvbnMgb2YgbG9nIGFic29sdXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBtYWxlcyBhbmQgZmVtYWxlcyAoc2VlIHRoZSBtYWluIHRleHQpCgojIyBDcmVhdGluZyBGaWd1cmUgUzIKCmBgYHtyLCBmaWcuaGVpZ2h0PSAxMn0KCmY0IDwtIGdncGxvdChkYXRhID0gZGF0KSArCiAgZ2VvbV9wb2ludChhZXMoeSA9IGxvZyhaciksIHggPSBsb2coYWJzX2ludCksIGNvbCA9IENhdGVnb3J5LCBzaXplID0gdG90YWxfbikpICsgCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIGxhYnMoeSA9ICJaciAodHJhbnNmb3JtZWQgdmFyaWFuY2UgYWNjb3VudGVkIGZvcikiLCB4ID0gICAibG4oQWJzb2x1dGUgZGlmZmVyZW5jZSBpbiBzdGFuZGFyZGl6ZWQgaW50ZXJjZXB0cykiKSArCiAgbGFicyhjb2xvcj0nVHJhaXQgdHlwZXMnLHNpemUgPSAiU2FtcGxlIHNpemUgKE4pIikgKwogIGFubm90YXRlKGdlb209InRleHQiLCB4PSAtMi41LCB5ID0gLTYsIGxhYmVsPSJyID0gMC41MyBbMC40MS4sIDAuNjNdIiwgc2l6ZSA9IDMpKwogIHRoZW1lX2J3KCkgICArCiAgdGhlbWUobGVnZW5kLmtleS5zaXplID0gdW5pdCgwLjUsICdjbScpLCBsZWdlbmQudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZT0xMCkpICsKICBndWlkZXMoc2l6ZSA9ICJub25lIikgIysKICAjdGhlbWUobGVnZW5kLnBvc2l0aW9uPSBjKDAuMDMsIDAuOTcpLCBsZWdlbmQuanVzdGlmaWNhdGlvbiA9IGMoMCwgMC45NykpCiAgCgpmNSA8LSBnZ3Bsb3QoZGF0YSA9IGRhdCkgKwogIGdlb21fcG9pbnQoYWVzKHkgPSBsb2coWnIpLCB4ID0gbG9nKGFic19zbG9wZSksIGNvbCA9IENhdGVnb3J5LCBzaXplID0gdG90YWxfbikpICsgCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIGxhYnMoeSA9ICJaciAodHJhbnNmb3JtZWQgdmFyaWFuY2UgYWNjb3VudGVkIGZvcikiICwgeCA9ICJsbihBYnNvbHV0ZSBkaWZmZXJlbmNlIGluIHN0YW5kYXJkaXplZCBzbG9wZXMpIikgKwogIGxhYnMoY29sb3I9J1RyYWl0IHR5cGVzJywgc2l6ZSA9ICJTYW1wbGUgc2l6ZSAoTikiKSArCiAgYW5ub3RhdGUoZ2VvbT0idGV4dCIsIHg9ICAtMiwgeSA9IC02LCBsYWJlbD0iciA9IDAuMzcgWzAuMjMsIDAuNDFdIiwgc2l6ZSA9IDMpKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZSA9IHVuaXQoMC41LCAnY20nKSwgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemU9MTApKSsKICBndWlkZXMoY29sID0gIm5vbmUiLCBzaXplID0gIm5vbmUiKSArCiAgc2NhbGVfc2l6ZV9jb250aW51b3VzKGJyZWFrcyA9IGMoMjAwLCAyMDAwLCAyMDAwMCksIGd1aWRlID0gZ3VpZGVfbGVnZW5kKCkpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSBjKDAuMDMsIDAuOTcpLCBsZWdlbmQuanVzdGlmaWNhdGlvbiA9IGMoMCwgMC45NykpCgoKZjYgPC0gZ2dwbG90KGRhdGEgPSBkYXQpICsKICBnZW9tX3BvaW50KGFlcyh5ID0gbG9nKFpyKSwgeCA9IGxvZyhhYnNfbG5WUiksIGNvbCA9IENhdGVnb3J5LCBzaXplID0gdG90YWxfbikpICsgCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gY2JwbCkgKwogIGxhYnMoeSA9ICJaciAodHJhbnNmb3JtZWQgdmFyaWFuY2UgYWNjb3VudGVkIGZvcikiLCB4ID0gImxuKEFic29sdXRlIHJlbGF0aXZlIGRpZmZlcmVuY2UgaW4gU0QpIiApKwogIGxhYnMoY29sb3I9J1RyYWl0IHR5cGVzJywgc2l6ZSA9ICJTYW1wbGUgc2l6ZSAoTikiKSArCiAgYW5ub3RhdGUoZ2VvbT0idGV4dCIsIHg9IC0wLjI1LCB5ID0gLSA1LCBsYWJlbD0iciA9IDAuMTggWzAuMDIsIDAuMzNdIiwgc2l6ZSA9IDMpKwogIHRoZW1lX2J3KCkgICsKICB0aGVtZShsZWdlbmQua2V5LnNpemUgPSB1bml0KDAuNSwgJ2NtJyksIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplPTEwKSkrCiAgZ3VpZGVzKGNvbCA9ICJub25lIikgIysKICAjc2NhbGVfc2l6ZV9jb250aW51b3VzKGJyZWFrcyA9IGMoMjAwLCAyMDAwLCAyMDAwMCksIGd1aWRlID0gZ3VpZGVfbGVnZW5kKCkpIAoKCihmNC9mNS9mNikgKyBwbG90X2Fubm90YXRpb24odGFnX2xldmVscyA9ICdBJykKYGBgCgoqKkZpZy4gUzIqKiBCaXZhcmlhdGUgb3JkaW5hdGlvbnMgb2YgbG9nIGFic29sdXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBtYWxlcyBhbmQgZmVtYWxlcyAoc2VlIHRoZSBtYWluIHRleHQpCgojIFNvZnR3YXJlIGFuZCBwYWNrYWdlIHZlcnNpb25zCgpgYGB7cn0Kc2Vzc2lvbkluZm8oKSAlPiUgcGFuZGVyKCkKYGBgCg==